diff --git a/README.md b/README.md index b82ee1229..ff46a6aa6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Impeccable -Design guidance for AI coding agents. 1 skill, 23 commands, live browser iteration, and 59 deterministic detector rules for AI-generated frontend design. +Design guidance for AI coding agents. 1 skill, 23 commands, live browser iteration, and 61 deterministic detector rules for AI-generated frontend design. > **Quick start:** From your project root, run `npx impeccable install`, then run `/impeccable init` inside your AI coding tool. Full docs: [impeccable.style](https://impeccable.style). @@ -13,7 +13,7 @@ Every model trained on the same SaaS templates. Skip the guidance and you get th Impeccable adds: - **One setup flow.** `/impeccable init` writes `PRODUCT.md` and offers `DESIGN.md`, so later commands know the audience, brand/product lane, voice, anti-references, colors, type, and components. - **23 commands.** A shared design vocabulary with your AI: `polish`, `audit`, `critique`, `distill`, `animate`, `bolder`, `quieter`, and more. -- **59 deterministic detector rules** plus LLM-only critique checks. The CLI and browser extension run the deterministic rules with no LLM and no API key. +- **61 deterministic detector rules** plus LLM-only critique checks. The CLI and browser extension run the deterministic rules with no LLM and no API key. ## What's Included @@ -402,7 +402,7 @@ npx impeccable ignores add-file "src/legacy/**" npx impeccable ignores add-value overused-font Inter --reason "Brand font" ``` -The detector catches 59 deterministic issues across AI slop (side-tab borders, purple gradients, bounce easing, dark glows) and general design quality (line length, cramped padding, small touch targets, skipped headings, and more). +The detector catches 61 deterministic issues across AI slop (side-tab borders, purple gradients, bounce easing, dark glows) and general design quality (line length, cramped padding, small touch targets, skipped headings, and more). By default, `detect` respects the same `.impeccable/config.json` and `.impeccable/config.local.json` detector config as the design hook: `detector.ignoreRules`, `detector.ignoreFiles`, `detector.ignoreValues`, and `detector.designSystem.enabled`. Hook lifecycle settings such as `hook.enabled` only affect automatic hook execution. diff --git a/README.npm.md b/README.npm.md index 3f16a1a7d..fac2704e7 100644 --- a/README.npm.md +++ b/README.npm.md @@ -1,6 +1,6 @@ # Impeccable CLI -Detect UI anti-patterns and design quality issues from the command line. Scans HTML, CSS, JSX, TSX, Vue, and Svelte files for 59 deterministic rules, including AI-generated UI tells, accessibility violations, and general design quality problems. +Detect UI anti-patterns and design quality issues from the command line. Scans HTML, CSS, JSX, TSX, Vue, and Svelte files for 61 deterministic rules, including AI-generated UI tells, accessibility violations, and general design quality problems. ## Quick Start @@ -56,7 +56,7 @@ npx impeccable detect --fast src/ **Quality**: tiny body text, cramped padding, long line lengths, small touch targets -59 deterministic detector rules in total. See the full catalog at [impeccable.style/slop](https://impeccable.style/slop). +61 deterministic detector rules in total. See the full catalog at [impeccable.style/slop](https://impeccable.style/slop). ## Exit Codes diff --git a/cli/engine/detect-antipatterns-browser.js b/cli/engine/detect-antipatterns-browser.js index 7df671eb5..62f5b87f1 100644 --- a/cli/engine/detect-antipatterns-browser.js +++ b/cli/engine/detect-antipatterns-browser.js @@ -232,6 +232,24 @@ const ANTIPATTERNS = [ 'A large inline SVG that builds a pictorial scene from a pile of primitive shapes reads as placeholder clip art, not illustration. Icons, logos, and data graphics are fine at their scale; a hero-sized visual deserves real artwork, a photograph, or a deliberately drawn graphic.', skillSection: 'Imagery', }, + { + id: 'organic-clip-path', + category: 'quality', + name: 'Organic contour drawn as clip-path', + description: + 'A clip-path polygon with many arbitrary vertices, or a curved clip-path path(), is CSS approximating a torn edge, blob, or silhouette. It reads as the cheap version of the effect and is usually a produced or photographic material replaced with code. Derive an alpha matte from the real image, or ship the shape as a cut-out raster; keep clip-path for geometry (cut corners, diagonals, hexagons).', + skillSection: 'Imagery', + skillGuideline: 'geometric masks standing in for organic contours', + }, + { + id: 'buried-raster', + category: 'quality', + name: 'Raster buried under a wash or opacity', + description: + 'A background image under a near-opaque gradient wash, or a raster on an element at near-zero opacity, never reaches the screen: the page shows the wash, and the produced texture or photo ships as a compliance token. Let the material show (a tint under 0.9 alpha, a blend mode, an opacity you can see) or remove the file.', + skillSection: 'Imagery', + skillGuideline: 'a produced material must survive to the screen', + }, { id: 'dark-glow', category: 'slop', @@ -1924,8 +1942,13 @@ function enclosingCssSelector(cssText, index) { if (!cssText || !Number.isFinite(index)) return null; const open = cssText.lastIndexOf('{', index); if (open === -1) return null; + // A match inside an inline style fragment (`style="…"` appended to the + // corpus by buildHtmlPatternCorpora) has no enclosing rule; the previous + // `{` belongs to some other selector. + const closeBeforeIndex = cssText.lastIndexOf('}', index); + if (closeBeforeIndex > open) return null; const prevClose = Math.max(cssText.lastIndexOf('}', open - 1), cssText.lastIndexOf(';', open - 1)); - const raw = cssText.slice(prevClose + 1, open).trim().replace(/\s+/g, ' '); + const raw = cssText.slice(prevClose + 1, open).replace(/\/\*[\s\S]*?\*\//g, '').trim().replace(/\s+/g, ' '); if (!raw || raw.startsWith('@') || /^\d/.test(raw) || /[{}<]/.test(raw)) return null; // Keyframe steps: percentage steps fail the digit test above, but `from` // and `to` would read as (never-matching) type selectors and get a valid @@ -2691,6 +2714,95 @@ function scanHtmlForShapeAssembledIllustration(html) { return findings; } + +// --- Organic clip-path polygons ---------------------------------------------- +// A `clip-path: polygon(...)` with many vertices, or `clip-path: path(...)` +// with curves, is CSS approximating an organic contour: a torn edge, a blob, +// a silhouette. The approximation reads as the cheap version of the effect +// (the craft floor's geometric-occlusion-mask ban), and it is the signature +// of a comp's produced material being replaced with code. Geometric clips +// (cut corners, diagonals, hexagons, arrows: few vertices, or vertices on +// the 0/50/100 grid) pass; circle()/inset()/ellipse() pass; a mask-image +// from an alpha matte passes. +const ORGANIC_POLYGON_MIN_VERTICES = 10; +function scanCssTextForOrganicClipPath(styleText) { + const findings = []; + const re = /clip-path\s*:\s*(polygon|path)\s*\(([^)]*(?:\)[^;}]*)?)/gi; + let m; + while ((m = re.exec(styleText)) !== null) { + const kind = m[1].toLowerCase(); + const body = m[2]; + if (kind === 'path') { + // curves (C, S, Q, T, A, absolute or relative) drawing a contour, not a + // rectilinear M/L/Z outline; letters in path data are only commands + const curves = (body.match(/[CSQTA]/gi) || []).length; + if (curves < 3) continue; + findings.push({ id: 'organic-clip-path', snippet: `clip-path: path() with ${curves} curve segments`, selector: enclosingCssSelector(styleText, m.index) || undefined }); + continue; + } + const points = body.split(',').map((p) => p.trim()).filter(Boolean); + if (points.length < ORGANIC_POLYGON_MIN_VERTICES) continue; + // Vertices sitting on a coarse grid (multiples of 25%) are geometric; a + // contour has arbitrary values. + let offGrid = 0; + for (const p of points) { + const nums = p.match(/-?[\d.]+/g) || []; + for (const n of nums) { const v = parseFloat(n); if (Math.abs(v - Math.round(v / 25) * 25) > 0.5) offGrid++; } + } + if (offGrid < points.length) continue; + findings.push({ id: 'organic-clip-path', snippet: `clip-path: polygon() with ${points.length} vertices approximating an organic contour`, selector: enclosingCssSelector(styleText, m.index) || undefined }); + } + return findings; +} + +// --- Buried raster ------------------------------------------------------------ +// A raster (background-image url or ) that never reaches the screen: +// under a near-opaque gradient wash in the same background stack, or on an +// element at near-zero opacity. It is how a produced texture "ships" while +// the page shows flat color, and the finish reviewer cannot see it either. +// A tint under 0.9 alpha passes (hero darkening); a blend mode passes +// (multiply/overlay keep the material visible); opacity >= 0.15 passes. +function scanCssTextForBuriedRaster(styleText) { + const findings = []; + // background stacks: split declarations, look for url() + a gradient whose + // stops all carry alpha >= 0.9 (or opaque hex/named colors) + const declRe = /background(?:-image)?\s*:\s*([^;}]+)/gi; + let m; + while ((m = declRe.exec(styleText)) !== null) { + const value = m[1]; + if (!/url\(/i.test(value) || !/gradient\(/i.test(value)) continue; + // a blend mode declared in the same rule keeps the raster visible + const ruleStart = styleText.lastIndexOf('{', m.index); + const ruleEnd = styleText.indexOf('}', m.index); + const rule = styleText.slice(ruleStart < 0 ? 0 : ruleStart, ruleEnd < 0 ? styleText.length : ruleEnd); + if (/background-blend-mode\s*:\s*(?!normal)/i.test(rule) || /mix-blend-mode\s*:\s*(?!normal)/i.test(rule)) continue; + // Layers are painted first-on-top: only a wash listed BEFORE the url() + // covers it. An image on top of a gradient is not buried. + const firstUrl = value.search(/url\(/i); + const gradients = [...value.matchAll(/(?:linear|radial|conic)-gradient\([^()]*(?:\([^()]*\)[^()]*)*\)/gi)].filter((gm) => gm.index < firstUrl).map((gm) => gm[0]); + let opaqueWash = false; + // an alpha token normalized to 0..1: '0.8' -> 0.8, '80%' -> 0.8 + const alphaOf = (a) => { if (a == null) return 1; const v = parseFloat(a); return String(a).trim().endsWith('%') ? v / 100 : v; }; + for (const g of gradients) { + const alphas = [...g.matchAll(/rgba?\(\s*[\d.]+%?\s*,?\s*[\d.]+%?\s*,?\s*[\d.]+%?\s*(?:[,/]\s*([\d.]+%?))?\s*\)|hsla?\([^)]*?(?:[,/]\s*([\d.]+%?))?\s*\)/gi)].map((a) => alphaOf(a[1] ?? a[2])); + const stripped = g.replace(/rgba?\([^)]*\)|hsla?\([^)]*\)/gi, ''); + // hex stops: 4- and 8-digit forms carry their own alpha + for (const h of stripped.matchAll(/#([0-9a-f]{3,8})\b/gi)) { + const hex = h[1]; + if (hex.length === 4) alphas.push(parseInt(hex[3] + hex[3], 16) / 255); + else if (hex.length === 8) alphas.push(parseInt(hex.slice(6), 16) / 255); + else alphas.push(1); + } + const named = /\b(?:white|black|ivory|beige|linen|snow|cream)\b/i.test(stripped); + if (named) alphas.push(1); + if (alphas.length && alphas.every((a) => !Number.isFinite(a) || a >= 0.9)) { opaqueWash = true; break; } + } + if (!opaqueWash) continue; + findings.push({ id: 'buried-raster', snippet: `raster under a near-opaque gradient wash: ${value.trim().slice(0, 90)}`, selector: enclosingCssSelector(styleText, m.index) || undefined }); + } + return findings; +} + // Scoped scan corpora for the page-level pattern checks. CSS-property // regexes run over the whole source string fire on documentation ABOUT // css — `background-clip: text` prose,
 samples, HTML
@@ -2863,6 +2975,10 @@ function checkHtmlPatterns(html, corpora) {
   // Shape-assembled illustrations (large pictorial SVGs built from primitives)
   findings.push(...scanHtmlForShapeAssembledIllustration(html));
 
+  // Organic clip-path contours and rasters buried under washes or opacity
+  findings.push(...scanCssTextForOrganicClipPath(styleText));
+  findings.push(...scanCssTextForBuriedRaster(styleText));
+
   // Auto-scrolling marquees ( or infinite horizontal loop animations)
   findings.push(...scanCssTextForMarquee(styleText, html));
 
@@ -4333,14 +4449,30 @@ function isNonRenderedText(el, tag, style) {
 function checkQuality(opts) {
   const { el, tag, style, hasDirectText, textLen, fontSize, lineHeightPx, letterSpacingPx, rect, lineMax = 80, viewportWidth = 0, win = null } = opts;
   const findings = [];
-  // Skip browser extension injected elements. Read the id via getAttribute
-  // whenever `el.id` is not a string: on a 
(and other - // [LegacyOverrideBuiltIns] hosts) a named control like - // shadows the builtin `id` getter and returns the control element, whose - // `.startsWith` is undefined and throws (issue #407 — every Shopify product - // form ships an ). + // A raster (, or an element with a background url) at near-zero + // opacity never reaches the screen: the produced material ships as a + // compliance token. The CSS-text scan catches the stylesheet form; this + // catches computed opacity on the element itself (both engines). + // Skip browser extension injected elements BEFORE any finding is pushed + // (a low-opacity raster those hosts inject used to be recorded and then + // returned by this very skip). Read the id via getAttribute whenever + // `el.id` is not a string: on a (and other [LegacyOverrideBuiltIns] + // hosts) a named control like shadows the builtin `id` + // getter and returns the control element, whose `.startsWith` is undefined + // and throws (issue #407 — every Shopify product form ships an + // ). const elId = typeof el.id === 'string' ? el.id : (el.getAttribute?.('id') || ''); if (elId.startsWith('claude-') || elId.startsWith('cic-')) return findings; + { + const op = parseFloat(style.opacity); + if (Number.isFinite(op) && op < 0.15 && op >= 0) { + const bg = String(style.backgroundImage || ''); + if (tag === 'img' || /url\(/i.test(bg)) { + const label = tag === 'img' ? (el.getAttribute && el.getAttribute('alt')) || '' : (el.textContent || '').trim().slice(0, 40); + findings.push({ id: 'buried-raster', snippet: `${tag === 'img' ? '' : 'raster background'} at opacity ${op}${label ? ` "${label}"` : ''}` }); + } + } + } // --- Line length too long --- (browser-only: needs rect.width) if (rect && hasDirectText && QUALITY_TEXT_TAGS.has(tag) && rect.width > 0 && textLen > lineMax) { @@ -6404,6 +6536,36 @@ function checkTextOcclusionDOM() { // reads as an opaque box. const effectiveOpacity = effectiveOpacityDOM; + // The part of an element that is actually painted, after every scrolling or + // clipping ancestor has had its say. + // + // getBoundingClientRect reports where a box would be if nothing cut it off, + // so a paragraph half scrolled out of a panel still reports its full height, + // and the half that is clipped away lands wherever the page continues below + // the panel. The elementFromPoint probe then samples coordinates the text is + // not painted at, finds whatever genuinely is painted there, and reports the + // text as buried under it. Any sticky footer or toolbar beneath a scroll + // region produces this, and it is the shape most likely to be waved off as + // noise, which costs the rule its credibility on the findings that are real. + // + // Border box rather than padding box on purpose: it errs toward probing, and + // giving up a scrollbar gutter's width would drop true findings at the right + // edge of a scroller. + const paintedRect = (el, rect) => { + let left = rect.left, top = rect.top, right = rect.right, bottom = rect.bottom; + for (let cur = el.parentElement; cur && cur !== document.documentElement; cur = cur.parentElement) { + let cs; try { cs = getComputedStyle(cur); } catch { continue; } + const clipsX = String(cs.overflowX || 'visible') !== 'visible'; + const clipsY = String(cs.overflowY || 'visible') !== 'visible'; + if (!clipsX && !clipsY) continue; + let b; try { b = cur.getBoundingClientRect(); } catch { continue; } + if (clipsX) { left = Math.max(left, b.left); right = Math.min(right, b.right); } + if (clipsY) { top = Math.max(top, b.top); bottom = Math.min(bottom, b.bottom); } + if (right - left < 1 || bottom - top < 1) return null; + } + return { left, top, right, bottom, width: right - left, height: bottom - top }; + }; + // Collect renderable text owners in / near the first viewport for the // elementFromPoint probe. SVG counts too. const textEls = []; @@ -6416,8 +6578,13 @@ function checkTextOcclusionDOM() { if (text.length < 2) continue; if (!isPaintedForOcclusion(el)) continue; if (effectiveOpacity(el) <= 0.02) continue; - let rect; try { rect = el.getBoundingClientRect(); } catch { continue; } - if (rect.width < 6 || rect.height < 6) continue; + let full; try { full = el.getBoundingClientRect(); } catch { continue; } + if (full.width < 6 || full.height < 6) continue; + // Probe only where the text is on screen. A run clipped down to a sliver is + // dropped rather than sampled: a few pixels of visible text cannot support + // a coverage fraction worth reporting either way. + const rect = paintedRect(el, full); + if (!rect || rect.width < 6 || rect.height < 6) continue; // Viewport-bound probe: keep text whose box overlaps the live viewport. if (rect.bottom <= 0 || rect.top >= vh) continue; textEls.push({ el, rect, text, inSvg }); diff --git a/cli/engine/registry/antipatterns.mjs b/cli/engine/registry/antipatterns.mjs index 003614786..88ff84a07 100644 --- a/cli/engine/registry/antipatterns.mjs +++ b/cli/engine/registry/antipatterns.mjs @@ -121,6 +121,24 @@ const ANTIPATTERNS = [ 'A large inline SVG that builds a pictorial scene from a pile of primitive shapes reads as placeholder clip art, not illustration. Icons, logos, and data graphics are fine at their scale; a hero-sized visual deserves real artwork, a photograph, or a deliberately drawn graphic.', skillSection: 'Imagery', }, + { + id: 'organic-clip-path', + category: 'quality', + name: 'Organic contour drawn as clip-path', + description: + 'A clip-path polygon with many arbitrary vertices, or a curved clip-path path(), is CSS approximating a torn edge, blob, or silhouette. It reads as the cheap version of the effect and is usually a produced or photographic material replaced with code. Derive an alpha matte from the real image, or ship the shape as a cut-out raster; keep clip-path for geometry (cut corners, diagonals, hexagons).', + skillSection: 'Imagery', + skillGuideline: 'geometric masks standing in for organic contours', + }, + { + id: 'buried-raster', + category: 'quality', + name: 'Raster buried under a wash or opacity', + description: + 'A background image under a near-opaque gradient wash, or a raster on an element at near-zero opacity, never reaches the screen: the page shows the wash, and the produced texture or photo ships as a compliance token. Let the material show (a tint under 0.9 alpha, a blend mode, an opacity you can see) or remove the file.', + skillSection: 'Imagery', + skillGuideline: 'a produced material must survive to the screen', + }, { id: 'dark-glow', category: 'slop', diff --git a/cli/engine/rules/checks.mjs b/cli/engine/rules/checks.mjs index ee65af7af..f15957b92 100644 --- a/cli/engine/rules/checks.mjs +++ b/cli/engine/rules/checks.mjs @@ -682,8 +682,13 @@ function enclosingCssSelector(cssText, index) { if (!cssText || !Number.isFinite(index)) return null; const open = cssText.lastIndexOf('{', index); if (open === -1) return null; + // A match inside an inline style fragment (`style="…"` appended to the + // corpus by buildHtmlPatternCorpora) has no enclosing rule; the previous + // `{` belongs to some other selector. + const closeBeforeIndex = cssText.lastIndexOf('}', index); + if (closeBeforeIndex > open) return null; const prevClose = Math.max(cssText.lastIndexOf('}', open - 1), cssText.lastIndexOf(';', open - 1)); - const raw = cssText.slice(prevClose + 1, open).trim().replace(/\s+/g, ' '); + const raw = cssText.slice(prevClose + 1, open).replace(/\/\*[\s\S]*?\*\//g, '').trim().replace(/\s+/g, ' '); if (!raw || raw.startsWith('@') || /^\d/.test(raw) || /[{}<]/.test(raw)) return null; // Keyframe steps: percentage steps fail the digit test above, but `from` // and `to` would read as (never-matching) type selectors and get a valid @@ -1449,6 +1454,95 @@ function scanHtmlForShapeAssembledIllustration(html) { return findings; } + +// --- Organic clip-path polygons ---------------------------------------------- +// A `clip-path: polygon(...)` with many vertices, or `clip-path: path(...)` +// with curves, is CSS approximating an organic contour: a torn edge, a blob, +// a silhouette. The approximation reads as the cheap version of the effect +// (the craft floor's geometric-occlusion-mask ban), and it is the signature +// of a comp's produced material being replaced with code. Geometric clips +// (cut corners, diagonals, hexagons, arrows: few vertices, or vertices on +// the 0/50/100 grid) pass; circle()/inset()/ellipse() pass; a mask-image +// from an alpha matte passes. +const ORGANIC_POLYGON_MIN_VERTICES = 10; +function scanCssTextForOrganicClipPath(styleText) { + const findings = []; + const re = /clip-path\s*:\s*(polygon|path)\s*\(([^)]*(?:\)[^;}]*)?)/gi; + let m; + while ((m = re.exec(styleText)) !== null) { + const kind = m[1].toLowerCase(); + const body = m[2]; + if (kind === 'path') { + // curves (C, S, Q, T, A, absolute or relative) drawing a contour, not a + // rectilinear M/L/Z outline; letters in path data are only commands + const curves = (body.match(/[CSQTA]/gi) || []).length; + if (curves < 3) continue; + findings.push({ id: 'organic-clip-path', snippet: `clip-path: path() with ${curves} curve segments`, selector: enclosingCssSelector(styleText, m.index) || undefined }); + continue; + } + const points = body.split(',').map((p) => p.trim()).filter(Boolean); + if (points.length < ORGANIC_POLYGON_MIN_VERTICES) continue; + // Vertices sitting on a coarse grid (multiples of 25%) are geometric; a + // contour has arbitrary values. + let offGrid = 0; + for (const p of points) { + const nums = p.match(/-?[\d.]+/g) || []; + for (const n of nums) { const v = parseFloat(n); if (Math.abs(v - Math.round(v / 25) * 25) > 0.5) offGrid++; } + } + if (offGrid < points.length) continue; + findings.push({ id: 'organic-clip-path', snippet: `clip-path: polygon() with ${points.length} vertices approximating an organic contour`, selector: enclosingCssSelector(styleText, m.index) || undefined }); + } + return findings; +} + +// --- Buried raster ------------------------------------------------------------ +// A raster (background-image url or ) that never reaches the screen: +// under a near-opaque gradient wash in the same background stack, or on an +// element at near-zero opacity. It is how a produced texture "ships" while +// the page shows flat color, and the finish reviewer cannot see it either. +// A tint under 0.9 alpha passes (hero darkening); a blend mode passes +// (multiply/overlay keep the material visible); opacity >= 0.15 passes. +function scanCssTextForBuriedRaster(styleText) { + const findings = []; + // background stacks: split declarations, look for url() + a gradient whose + // stops all carry alpha >= 0.9 (or opaque hex/named colors) + const declRe = /background(?:-image)?\s*:\s*([^;}]+)/gi; + let m; + while ((m = declRe.exec(styleText)) !== null) { + const value = m[1]; + if (!/url\(/i.test(value) || !/gradient\(/i.test(value)) continue; + // a blend mode declared in the same rule keeps the raster visible + const ruleStart = styleText.lastIndexOf('{', m.index); + const ruleEnd = styleText.indexOf('}', m.index); + const rule = styleText.slice(ruleStart < 0 ? 0 : ruleStart, ruleEnd < 0 ? styleText.length : ruleEnd); + if (/background-blend-mode\s*:\s*(?!normal)/i.test(rule) || /mix-blend-mode\s*:\s*(?!normal)/i.test(rule)) continue; + // Layers are painted first-on-top: only a wash listed BEFORE the url() + // covers it. An image on top of a gradient is not buried. + const firstUrl = value.search(/url\(/i); + const gradients = [...value.matchAll(/(?:linear|radial|conic)-gradient\([^()]*(?:\([^()]*\)[^()]*)*\)/gi)].filter((gm) => gm.index < firstUrl).map((gm) => gm[0]); + let opaqueWash = false; + // an alpha token normalized to 0..1: '0.8' -> 0.8, '80%' -> 0.8 + const alphaOf = (a) => { if (a == null) return 1; const v = parseFloat(a); return String(a).trim().endsWith('%') ? v / 100 : v; }; + for (const g of gradients) { + const alphas = [...g.matchAll(/rgba?\(\s*[\d.]+%?\s*,?\s*[\d.]+%?\s*,?\s*[\d.]+%?\s*(?:[,/]\s*([\d.]+%?))?\s*\)|hsla?\([^)]*?(?:[,/]\s*([\d.]+%?))?\s*\)/gi)].map((a) => alphaOf(a[1] ?? a[2])); + const stripped = g.replace(/rgba?\([^)]*\)|hsla?\([^)]*\)/gi, ''); + // hex stops: 4- and 8-digit forms carry their own alpha + for (const h of stripped.matchAll(/#([0-9a-f]{3,8})\b/gi)) { + const hex = h[1]; + if (hex.length === 4) alphas.push(parseInt(hex[3] + hex[3], 16) / 255); + else if (hex.length === 8) alphas.push(parseInt(hex.slice(6), 16) / 255); + else alphas.push(1); + } + const named = /\b(?:white|black|ivory|beige|linen|snow|cream)\b/i.test(stripped); + if (named) alphas.push(1); + if (alphas.length && alphas.every((a) => !Number.isFinite(a) || a >= 0.9)) { opaqueWash = true; break; } + } + if (!opaqueWash) continue; + findings.push({ id: 'buried-raster', snippet: `raster under a near-opaque gradient wash: ${value.trim().slice(0, 90)}`, selector: enclosingCssSelector(styleText, m.index) || undefined }); + } + return findings; +} + // Scoped scan corpora for the page-level pattern checks. CSS-property // regexes run over the whole source string fire on documentation ABOUT // css — `background-clip: text` prose,
 samples, HTML
@@ -1621,6 +1715,10 @@ function checkHtmlPatterns(html, corpora) {
   // Shape-assembled illustrations (large pictorial SVGs built from primitives)
   findings.push(...scanHtmlForShapeAssembledIllustration(html));
 
+  // Organic clip-path contours and rasters buried under washes or opacity
+  findings.push(...scanCssTextForOrganicClipPath(styleText));
+  findings.push(...scanCssTextForBuriedRaster(styleText));
+
   // Auto-scrolling marquees ( or infinite horizontal loop animations)
   findings.push(...scanCssTextForMarquee(styleText, html));
 
@@ -3091,14 +3189,30 @@ function isNonRenderedText(el, tag, style) {
 function checkQuality(opts) {
   const { el, tag, style, hasDirectText, textLen, fontSize, lineHeightPx, letterSpacingPx, rect, lineMax = 80, viewportWidth = 0, win = null } = opts;
   const findings = [];
-  // Skip browser extension injected elements. Read the id via getAttribute
-  // whenever `el.id` is not a string: on a  (and other
-  // [LegacyOverrideBuiltIns] hosts) a named control like 
-  // shadows the builtin `id` getter and returns the control element, whose
-  // `.startsWith` is undefined and throws (issue #407 — every Shopify product
-  // form ships an ).
+  // A raster (, or an element with a background url) at near-zero
+  // opacity never reaches the screen: the produced material ships as a
+  // compliance token. The CSS-text scan catches the stylesheet form; this
+  // catches computed opacity on the element itself (both engines).
+  // Skip browser extension injected elements BEFORE any finding is pushed
+  // (a low-opacity raster those hosts inject used to be recorded and then
+  // returned by this very skip). Read the id via getAttribute whenever
+  // `el.id` is not a string: on a  (and other [LegacyOverrideBuiltIns]
+  // hosts) a named control like  shadows the builtin `id`
+  // getter and returns the control element, whose `.startsWith` is undefined
+  // and throws (issue #407 — every Shopify product form ships an
+  // ).
   const elId = typeof el.id === 'string' ? el.id : (el.getAttribute?.('id') || '');
   if (elId.startsWith('claude-') || elId.startsWith('cic-')) return findings;
+  {
+    const op = parseFloat(style.opacity);
+    if (Number.isFinite(op) && op < 0.15 && op >= 0) {
+      const bg = String(style.backgroundImage || '');
+      if (tag === 'img' || /url\(/i.test(bg)) {
+        const label = tag === 'img' ? (el.getAttribute && el.getAttribute('alt')) || '' : (el.textContent || '').trim().slice(0, 40);
+        findings.push({ id: 'buried-raster', snippet: `${tag === 'img' ? '' : 'raster background'} at opacity ${op}${label ? ` "${label}"` : ''}` });
+      }
+    }
+  }
 
   // --- Line length too long --- (browser-only: needs rect.width)
   if (rect && hasDirectText && QUALITY_TEXT_TAGS.has(tag) && rect.width > 0 && textLen > lineMax) {
@@ -5162,6 +5276,36 @@ function checkTextOcclusionDOM() {
   // reads as an opaque box.
   const effectiveOpacity = effectiveOpacityDOM;
 
+  // The part of an element that is actually painted, after every scrolling or
+  // clipping ancestor has had its say.
+  //
+  // getBoundingClientRect reports where a box would be if nothing cut it off,
+  // so a paragraph half scrolled out of a panel still reports its full height,
+  // and the half that is clipped away lands wherever the page continues below
+  // the panel. The elementFromPoint probe then samples coordinates the text is
+  // not painted at, finds whatever genuinely is painted there, and reports the
+  // text as buried under it. Any sticky footer or toolbar beneath a scroll
+  // region produces this, and it is the shape most likely to be waved off as
+  // noise, which costs the rule its credibility on the findings that are real.
+  //
+  // Border box rather than padding box on purpose: it errs toward probing, and
+  // giving up a scrollbar gutter's width would drop true findings at the right
+  // edge of a scroller.
+  const paintedRect = (el, rect) => {
+    let left = rect.left, top = rect.top, right = rect.right, bottom = rect.bottom;
+    for (let cur = el.parentElement; cur && cur !== document.documentElement; cur = cur.parentElement) {
+      let cs; try { cs = getComputedStyle(cur); } catch { continue; }
+      const clipsX = String(cs.overflowX || 'visible') !== 'visible';
+      const clipsY = String(cs.overflowY || 'visible') !== 'visible';
+      if (!clipsX && !clipsY) continue;
+      let b; try { b = cur.getBoundingClientRect(); } catch { continue; }
+      if (clipsX) { left = Math.max(left, b.left); right = Math.min(right, b.right); }
+      if (clipsY) { top = Math.max(top, b.top); bottom = Math.min(bottom, b.bottom); }
+      if (right - left < 1 || bottom - top < 1) return null;
+    }
+    return { left, top, right, bottom, width: right - left, height: bottom - top };
+  };
+
   // Collect renderable text owners in / near the first viewport for the
   // elementFromPoint probe. SVG  counts too.
   const textEls = [];
@@ -5174,8 +5318,13 @@ function checkTextOcclusionDOM() {
     if (text.length < 2) continue;
     if (!isPaintedForOcclusion(el)) continue;
     if (effectiveOpacity(el) <= 0.02) continue;
-    let rect; try { rect = el.getBoundingClientRect(); } catch { continue; }
-    if (rect.width < 6 || rect.height < 6) continue;
+    let full; try { full = el.getBoundingClientRect(); } catch { continue; }
+    if (full.width < 6 || full.height < 6) continue;
+    // Probe only where the text is on screen. A run clipped down to a sliver is
+    // dropped rather than sampled: a few pixels of visible text cannot support
+    // a coverage fraction worth reporting either way.
+    const rect = paintedRect(el, full);
+    if (!rect || rect.width < 6 || rect.height < 6) continue;
     // Viewport-bound probe: keep text whose box overlaps the live viewport.
     if (rect.bottom <= 0 || rect.top >= vh) continue;
     textEls.push({ el, rect, text, inSvg });
@@ -5444,6 +5593,8 @@ export {
   cssLengthToPx,
   scanCssTextForPulsingDot,
   scanHtmlForShapeAssembledIllustration,
+  scanCssTextForOrganicClipPath,
+  scanCssTextForBuriedRaster,
   buildHtmlPatternCorpora,
   checkHtmlPatterns,
   readOwnBackgroundColor,
diff --git a/docs/COMP-FIDELITY.md b/docs/COMP-FIDELITY.md
new file mode 100644
index 000000000..efe15523a
--- /dev/null
+++ b/docs/COMP-FIDELITY.md
@@ -0,0 +1,301 @@
+# Comp fidelity: measuring the build against the comp
+
+Status: shipped on `feat/comp-fidelity` (2026-08). Owner: skill (`skill/scripts/comp-*.mjs`, `build-phase.mjs`) plus two detector rules.
+
+## The problem
+
+v4's direction round and comp round produce beautiful comps. The build that follows is a lossy translation of them: invented chrome the comp never showed, materials flattened to CSS, illustrations approximated as SVG or `clip-path`, produced textures buried under opaque washes, and a first viewport that has the comp's section order and none of its craft. The finish reviewer catches this and orders a rebuild; the rebuild has the same problem; runs hit the turn cap.
+
+Two recent factory runs (07-vintage-moto-forum and 05-experimental-album, gpt-5.6-sol, 2026-08) show the shape:
+
+- 183 KB of skill prose read before the first write; the page written in one 1,500-line write at turn 30; no reproduction phase, no `hero-repro.png`, no side-by-side; turns 31-61 spent on servers, screenshots, and reviewer plumbing until the cap.
+- A torn-paper arch shipped as a 17-vertex `clip-path: polygon`; a vellum slip as a flat gray rectangle; both produced paper textures unused on disk.
+
+The root: every fidelity check in the build phase was the model judging its own reproduction from memory of an image, and the prose kept growing to argue it into behavior it cannot perform. Code-led builds "look better" only because they have no target to fail against.
+
+## The change
+
+Stop asking the model to reproduce pixels it can see but not render, and stop asking it to grade a reproduction it cannot see clearly. Make the translation mechanical wherever pixels are involved; keep the model's job to what it is good at (structure, semantics, controls, motion, responsive logic).
+
+### 1. `comp-diff.mjs`: numbers and crops instead of conviction
+
+Dependency-free (own PNG codec in `lib/png.mjs`). Given the comp and a build capture:
+
+- aligns the build (scale to comp width, take the first-viewport rows; `--align stretch|cover` for other uses),
+- scores structure (SSIM over blurred grayscale with a small translation search), color (quantized histogram intersection + Lab dominant-palette match), detail (high-frequency energy ratio per cell: did the material survive?), and bands (horizontal section boundaries line up?),
+- per region (from the spec, or from the comp's own bands), with region-kind weights: a `plate` region is judged mostly on detail, a `text` region on structure,
+- writes `side-by-side.png`, `heatmap.png`, `regions/.png` paired crops at legible scale, and `report.json` with a verdict per region in the reviewer's vocabulary: `match` / `drift` / `missing` / `contradicted`,
+- `--threshold` exits 3 below the bar.
+
+Calibration on the moto run: comp vs itself 100%; comp shifted 12px 87% (match); comp with the illustration erased 90% overall but the plate region `missing` at 30%; comp recolored to navy 34% (`missing`); the real build 59% (`contradicted`, plate `missing`, index `contradicted`). Sibling comps of the same world score 55-59% against each other, so the metric separates "same design" from "same world, different composition." Runs in ~0.3-0.8 s.
+
+### 2. `comp-spec.mjs`: the comp becomes a measured spec
+
+`--grid` writes the comp with a labeled 10x10 grid; the model names regions by grid span (`E0:J4`) with a kind (`plate` / `image` / `texture` / `text` / `control` / `chrome`) in a small JSON file; `--regions` measures each region (normalized and pixel box, sampled palette, detail energy, aspect) and writes `.impeccable/build/spec.json`. Raster kinds get a `plate` path under `assets/plates/`. `--crop ` extracts the reference crop; `--plate-prompt ` prints the regeneration prompt; `--print` is the compact spec the build codes against. The spec is what "anything not in this list does not exist on the page" refers to.
+
+### 3. `build-phase.mjs`: phases as a state machine on disk
+
+`.impeccable/build/state.json`, phases `spec → plates → hero → sections → motion → responsive → review`, advanced only by the script:
+
+- `spec` gate: spec.json exists, measures this comp, has regions.
+- `plates` gate: every raster region's plate exists, decodes, is at least 1.5x the region's pixel width, and scores against the comp crop (`cover` alignment, kind-weighted, min 0.5).
+- `hero` gate: `.impeccable/review/hero-repro.png` exists and comp-diff scores at least 0.72 with no region `missing` and at most a third `contradicted`. Writes `.impeccable/review/diff/hero/`. Attempts and scores are recorded.
+- later phases record the moment; `--force --reason` is allowed and recorded, never silent.
+
+`status` prints a NEXT line for the current phase, so the prose does not have to.
+
+### 4. Plates: `generate-image.mjs --plate `
+
+One raster region end to end: crop the comp region, send the crop as the edits-endpoint reference with the spec's plate prompt (remove UI text and chrome, keep everything else), pick the closest supported size to the region's aspect, write to the plate path, embed the prompt, score against the crop, warn under 50%, refuse under `--min`. `IMPECCABLE_IMAGE_GEN_FAKE=1` yields the crop at 2x so offline pipelines walk the plate gate. Harness-native image tools use the crop and prompt the same way.
+
+The asset producer agent's job shrinks to: produce the spec's plates, one line per plate, `blockers`, `assumptions`. No inventory of its own (the spec is the inventory), no strategy taxonomy.
+
+### 4b. Type: `font-match.mjs` and the catalog fingerprint index
+
+Faces used to be chosen by name, and the first-round misses said so: headline wider and lighter than the comp, footer heavier. `font-match.mjs --measure ` fingerprints the comp crop with `lib/font-fingerprint.mjs`: per-line, size-invariant shape features (glyph width and x-height against the reference height, stem width, stroke contrast, serif ratio, ink density, vertical ink profile, run-length quantiles), all normalized so the same face gives the same numbers at any point size and on different text. The MEASURE line prints cap height, width class, weight class, and tracking, and the spec keeps the summary on the region.
+
+`--rank ` no longer starts from a hand-written shortlist. `skill/scripts/data/font-index.json` holds the same fingerprint for ~3,100 Google Fonts faces (every latin family at 300 / 400 / 700 where shipped) rendered at two cap heights, 48px and 14px, because the features hold within a factor of two in size but not across that span; a crop under 22px cap queries the 14px index. The 25 nearest faces by a noise-normalized weighted distance (fitted on 299 held-out probes with different text; 42% top-1 and 72% top-5 family recall at ~30px cap, 52 / 71 at 14px) become the candidates, together with whatever names the model passes in. Those are then rendered with the region's own text at the comp's cap height, fingerprinted again, and ranked by the same distance, so the CATALOG line is the index's guess and the RANK lines are measured on the actual words. Below 10px cap the script says to size by the box and stops. The index is ~700 KB, packed base-36, rebuilt at release time by `scripts/build-font-index.mjs` (network + Playwright); the per-width-class shortlist stays only as the fallback when the index file is missing.
+
+On the moto comp: headline (72px cap, condensed heavy mixed case) ranks League Gothic first with Karantina and Medula One behind it, where the old width/weight formula gave Anton SC and BBH Bogle; for the subhead the index puts Akshar 300 and Reddit Sans Condensed 300 on top, credible condensed light faces where before the class was wrong altogether.
+
+### 5. Two detector rules
+
+- `organic-clip-path`: `clip-path: polygon()` with 10+ off-grid vertices, or `clip-path: path()` with 3+ curve segments. Geometric clips (cut corners, diagonals, hexagons, arrows) pass; `circle()`/`inset()` pass.
+- `buried-raster`: a `url()` layer under a gradient wash whose stops are all >= 0.9 alpha (or opaque), no blend mode; or a raster background / `` at opacity < 0.15. Tints under 0.9, blends, and visible opacities pass.
+
+Both in both engines (static jsdom + browser bundle), fixtures under `tests/fixtures/antipatterns/`.
+
+### 6. Prose
+
+`new-work.md` section 6 is now the phase list with its gates; the reproduction paragraph, the hero checkpoint paragraph, and visualize.md's inventory / medium-gate / produce sections are gone in favor of the scripts that enforce them. `visualize.md` dropped from 55 to 44 lines and new-work.md's section 6 from ~1,900 to ~1,300 words while gaining the actual mechanism. The finish reviewer reads the state file and the diff report first and starts its matrix from the measured verdicts.
+
+## What this does not do
+
+- It does not judge lettering character, ornament, or motion. The reviewer still owns those.
+- It does not decide plates for the model: the model still names regions on the grid. The gate only refuses to proceed when a named raster region has no plate.
+- The hero threshold (0.72) and plate threshold (0.5) are calibrated on two runs and synthetic perturbations; they will move with evidence. Both are constants at the top of `build-phase.mjs`.
+- Operate surfaces (dashboards, editors) have few or no plates; the spec/diff still apply, the plates gate is trivially satisfied.
+
+## Evaluating it: first sweep (2026-08-16, gpt-5.6-sol, openai lane)
+
+Same niche (07-vintage-moto-forum), same approved comp C, main skill vs this branch, scored with `comp-diff.mjs` against the approved comp. Small numbers, one sample each; read as a smoke, not a verdict.
+
+| Run | Skill | Turns / cost | comp-diff overall | Notes |
+|---|---|---|---|---|
+| exec cut, packet C, "Continue." | main | 9 / $0.88 | **55%** (contradicted; plate + index `missing`) | one 45 KB write, no plates, generic split hero |
+| exec cut, packet C, "Continue." | branch | 17 / $0.95 | **54%** (contradicted; plate `missing`) | the packet's prefix predates the phase machinery; the model never re-read new-work.md and behaved like main |
+| exec cut, packet C, ask names the phased build | branch | 96 / $5.24 (cost cap) | **66%** (drift; plate region 43%) | walked spec → grid → regions → plates → hero gate (72% fail, fix, 77% pass) → sections → motion → responsive; 12 turns lost hunting a screenshot the harness wrote host-side only (fixed in impeccable-evals); the exploded plate was produced (62% vs crop) but the page drew the region in SVG anyway (fixed: hero gate now refuses unreferenced plates) |
+| full journey, comp-led | main | 49 / $3.23 | **56%** (contradicted; two bands `missing`) | dark comp with paper fiche rail; build keeps the section order and flattens the material |
+| full journey, comp-led | branch (before the force/reference fixes) | 61 / $3.04 (turn cap) | **65-66%** (drift) | forced past the plates gate with "single-file delivery" (now refused); hero 44% structure but 83% color, plate placed |
+| full journey, comp-led (after fixes), sample 2 | branch | 60 / $3.00 (30-min wall clock) | **59%** (contradicted; hero gate 61 → 63 → 62%) | three plates produced (paper 52%, carburetor 61%, photo), hero gate failed three times, model asked the simulated user, got "truthful translation", forced with the user's words (recorded), wall clock ended it in sections |
+| full journey, sample 1 | branch | 37 / $2.5 | n/a | direction round, then wrote code with no comp round at all: a routing gap in the direction round that predates this branch (also seen on main in cf-full-branch-07b) |
+| full journey, comp-led | main (2nd sample) | 24 / $1.38 | n/a (no comps: model went code-led) | same routing gap |
+| exec cut, 01-observability composed checkpoint | main / branch | 9 / $0.68 vs 10 / $0.84 | 52% vs 48% | composed checkpoint quotes the OLD visualize.md verbatim into the prefix, so the branch text never reaches the model; not a test of this change |
+
+Sweep totals: 12 runs, about $32 of OpenAI spend (gpt-5.6-sol + gpt-image-2).
+
+What it says so far:
+
+- When the phase machinery actually runs, fidelity moves from the mid-50s to the mid-60s on this comp, and the region rows say why the rest is missing (the exploded plate, the parts table, the CTA treatment). Same model, same comp.
+- Execution-cut packets and composed checkpoints carry the old skill's text in their prefix; a resumed session follows the conversation it is in, not the mounted files. Comparisons of Setup-adjacent skill changes need full journeys or a fresh packet cut on the new skill.
+- Two of the three run-time defects the sweep found were harness (screenshot not visible in the sandbox; packet workspace path) and are fixed in impeccable-evals `paul/packet-niche-execution-preflight`. The third (model forcing a gate, model ignoring its plate) is now refused by the script.
+- Cost: the phased build spends more turns before the first write and more image calls (plates). The 96-turn run is dominated by the screenshot hunt and a font-inlining tangent, not by the gates. The 30-minute wall clock and 60-turn cap in the harness are tuned for the old one-write build; a phased build with three plates and a hero loop needs the execution cut kind's 100-turn budget or a longer wall clock.
+- The hero gate at 72% is reachable (77% on the ask run) but the model's second and third attempts moved the score by one point each: it edits CSS values when the diff says a region is missing. The gate's message now names the region and the failure mode; the next lever is making the region crops the thing the model looks at (it opened the side-by-side once and the crops never).
+- Whether a greenfield session enters comp-led at all is decided in the direction round, before any of this. Two of five full-journey samples (one per skill) skipped the comp round and wrote code; the config default is comp-led and image generation was on. That routing gap is separate from this change and worth its own fix.
+
+## Second sweep (2026-08-16, sol + opus-5, three niches, n=2-3): the packets, not the skill
+
+37 execution-cut runs on 05-experimental-album, 07-vintage-moto-forum, 11-analytics-dashboard, main vs branch, about $210. Result: 33 of 37 samples never entered the phase machine (`nostate`: no `.impeccable/build/state.json` at the end), so main and branch scored the same (50-60% overall, mostly `contradicted`) and the sweep measured nothing about the change. The four samples that did run the phases (11-opus-branch, 11-opus-branch-b) reached hero 69-72% and 63-66% overall, the highest opus scores in the sweep, at 80-100 turns and $9-12.
+
+Why the machinery was skipped, in order of blame:
+
+1. **The packets carried no state.** The 07 packet was cut on 2026-08-12, before `build-phase.mjs start` existed; the 05 and 11 packets were cut on the branch, but the session generated its comps before running `start`, so `pending.json` was written and `state.json` never was. Every gate reads `state.json`; a resume with none has nothing to follow. Two fixes: `generate-image.mjs` refuses to write a comp under `.impeccable/mocks/` while `pending.json` is set and no state exists (the direction pick must be recorded first), and impeccable-evals `factory-validation` fails a `composition-approved` candidate whose workspace lacks a closed comps phase.
+2. **Prefix inertia.** A resumed model follows the conversation it is in. When the prefix ends on "translating comp C into HTML now", the mounted skill files are not re-read whatever they say. The procedure has to be on disk at the resume point (state.json + the `NEXT` line), which is what (1) restores.
+3. **WebP comps.** gpt-image returned WebP for some cuts; `comp-spec` demanded PNG, so the session rewrote the `.webp` in place with PNG bytes, which broke replay ("a later step rewrites this path beyond the cut"). `loadRaster()` now converts through a sibling `.png` cache and never touches the source.
+
+Read the earlier "exec cut, packet C, ask names the phased build" row and this sweep's four phased samples together: same model, same comp, and the phased build lands 10-15 points above the one-write build every time it actually runs. The open question is not whether the phases help but whether a resumed session enters them; that is a packet property, and it is now validated at cut time.
+
+## Third sweep (2026-08-17, gpt-5.6-sol, re-cut packets carrying state.json, n=2-3): the phases run, and they win
+
+Packets re-cut with the phase state reconstructed at the pick (replay now re-executes `build-phase.mjs` verbs and the OpenAI worker pulls the sandbox's `.impeccable/build/` before close). Baseline = main skill via `IMPECCABLE_SKILL_DIR`, branch = this branch's dist. About $60.
+
+| Niche | main (n=3) | branch (n=2) | branch hero |
+|---|---|---|---|
+| 05-experimental-album | 53%, 53%, 56% (all contradicted) | **66%, 77%** (drift) | 77%, 78% |
+| 07-vintage-moto-forum | 46%, 47% (contradicted) | **62%, 64%** (drift; hero open at 63/68%) | 63%, 68% |
+| 11-analytics-dashboard | 66%, 61%, 66% (drift) | **72%, 71%** (drift) | 76%, 80% |
+
+Every branch sample ran the phase machine (`state.json` at hero or later); every main sample resumed at `comps` and wrote the page in one pass. Mean delta on comp-diff overall: 05 +18, 07 +17, 11 +7. Branch runs cost 2-4x (turn cap at 100-110 on four of six; wall clock 60 min).
+
+What the traces said, and what changed from them:
+
+- **Font ranking without a browser was a dead end.** Sessions spent 6-10 turns installing Playwright or hand-typed a `chosen` face into spec.json. Now: the catalog index has an all-caps render (`48c`), non-text faces are excluded, the distance carries a gross width/weight gap, and with no browser `--rank` records the catalog's nearest face; the gate refuses a `chosen` it did not stamp. The eval worker lends its Playwright to the sandbox.
+- **Painted material filed as chrome.** 07's exploded carburetor and rack drawing were `chrome` regions "drawn in code", then scored missing at the hero with no fix available. `comp-spec` now refuses a code kind whose note names painted material.
+- **A passed plate is placed material.** With the plates referenced and passing the plates gate, comp-diff at the region box still called them `missing` on detail (the plate's carburetor is not the comp's carburetor at pixel level). The hero now scores a passed plate on placement (present in the box, at the box) and says the box as numbers.
+- **The control ink-box veto blocked a full-width bar six times** ("1376x87 vs 1382x102"), unmovable by any edit. It now applies only to discrete controls.
+- **Plate generation polled turn by turn** (8 `write_stdin` empty polls per plate); the NEXT line now says to wait long.
+
+## Fourth sweep (2026-08-17, gpt-5.6-sol, same packets, n=3 both arms, after the font/plate-placement/control-veto fixes)
+
+| Niche | main | branch | branch turns |
+|---|---|---|---|
+| 05-experimental-album | 52 / 43 / 50 | **64 / 63 / 58** | 101 (forced twice) / 79 / 29 (stopped at spec) |
+| 07-vintage-moto-forum | 53 / 44 / 48 | **62 / 68 / 64** | 86 / 101 / 54 (hero open at 63-67 in all three) |
+| 11-analytics-dashboard | 63 / 65 / 65 | **66 / 74 / 62** | 52 / 41 / 68 (all reached review; hero 74-75) |
+
+Branch over main on every niche, every sample; 11 now finishes the whole machine in 41-68 turns (was 68-101). The 07 hero sits at 63-68 against a 72 floor across five samples in two sweeps: that comp (a service-manual page with three plates and a rotated spine) is where the remaining points are, and the traces named the reasons:
+
+- A body-copy region measured at cap 160px off the carburetor drawing sharing its crop, and a track list measured at 389px because staff rules and a black page edge fused eight rows into one line. `font-fingerprint` now drops full-height inked columns from the row profile, sets tall non-text runs aside, and measures the lettering class holding the most ink (multi-line first). Both crops now read 15px and 21px.
+- Passed plates scored `missing` at the hero on content, then again at responsive. Both gates now score a passed plate on placement.
+- One session forced two gates by quoting a brief line ("should feel like an extension of her artwork") as user permission. `forceAllowed` now requires the user's words reported or quoted, a downgrade verb, and the comp noun in one reason.
+- One session spent 25 turns keying plates with `magick` after using the harness image tool; the plates NEXT line now names `generate-image.mjs --plate` as the tool and the harness tool as the fallback.
+
+## Fifth sweep (2026-08-17): claude-opus-5 arm (n=2) and a sol re-pass on 07 (n=3)
+
+Same packets, both arms. Opus runs 2-3x the cost of sol ($9-15 per branch sample; turn cap 110 hit on four of six branch samples, salvaged and scored).
+
+| Niche | opus main | opus branch | branch hero |
+|---|---|---|---|
+| 05-experimental-album | 73 / 61 | **64 / 86** | 81, 87 |
+| 07-vintage-moto-forum | 59 / 60 | **67 / 74** | 72, 74 |
+| 11-analytics-dashboard | 61 / 64 | **70** (second sample lost to an SDK flake) | 74 |
+
+Opus on the branch produced the first `match` verdict of every sweep (05 sample 2, 86% overall, hero 87%) and cleared the 07 hero at 72 and 74, which sol never did. Opus on main writes in one pass like sol on main; its best one-pass sample (05, 73%) is above sol's best branch sample on that niche, which is the ceiling a stronger model reaches without the machinery.
+
+Sol re-pass on 07 with the mixed-crop measurement fixes: 67 / 62 / 69, hero 63-70. Still under 72. The best sample's spec named seven regions for the whole page (`parts-column` chrome at 30% of the comp, `live-thread` chrome at 24%), so the hero gate had nothing specific to say. `comp-spec` now refuses a text/control/chrome region larger than a quarter of the comp (`container: true` opts out).
+
+Both anthropic-lane readings of "skill loaded" were false-invalid: Claude Code 2.1.x stopped listing personal skills in the init payload while loading them. The evidence reader now counts a session that runs the mounted skill's files as loaded.
+
+Where this leaves the numbers, all sweeps, comp-diff overall against the approved comp, main vs branch:
+
+| | sol main | sol branch | opus main | opus branch (sweeps 5-8) |
+|---|---|---|---|---|
+| 05 | 43-56 (n=6) | 57-77 (n=8) | 61-73 (n=2) | 64-86 (n=6; sweep 8: 84, 84) |
+| 07 | 44-53 (n=5) | 48-69 (n=13) | 59-60 (n=2) | 43-79 (n=6; sweep 8: 79, 78) |
+| 11 | 61-66 (n=6) | 62-74 (n=5) | 61-64 (n=2) | 70 (n=1) |
+
+The branch is above main on every niche and every model; the gap is largest where the comp is most painted (05, 07) and smallest on the flat dashboard (11). Cost is 2-4x in turns and image calls.
+
+## Sixth sweep (2026-08-17, gpt-5.6-sol, 05 and 07, branch only, after the first human review)
+
+Paul annotated 12 sweep-3 builds with pins (fonts at the wrong size, weight, colour, or place; nav bars too tall; kickers and dividers the comp did not have; a footer strip pushed off the frame; a drawing filed as chrome with no note). Each became a hero-gate reading (`lib/hero-checks.mjs`): text cap height, line count, ink density, ink colour, and first-line offset against the comp crop; strip height off the first rule row; build ink over a calm comp cell; every region needs a note; a region with under 15% of the comp's detail is `missing` before any palette relaxation. Turn cap raised to 160.
+
+| Sample | overall | hero | what happened |
+|---|---|---|---|
+| 05-001 | 57 | 59 (1 attempt) | readings were right (artist-name cap 10 vs 15.9, track-list 3 lines vs 4, listen rule 25 vs 60, colophon ink); the model forced with a brief quote, was refused, and stopped |
+| 05-002 | 64 | 64 (1 attempt) | same: one attempt, quit |
+| 05-003 | 62 | 73 → responsive 74 → review | walked the machine |
+| 07-001 | 68 | 72 at the turn cap, 28 attempts | three readings unchanged for 20+ attempts (`browse-link` underline read as a rule; `right-part-code` cap and ink); the score printed as "72% < 72%" |
+| 07-002 | 47 | never entered (page at turn 5) | ignored the state |
+| 07-003 | 65 | 70 (7 attempts), then shipped | left the hero open and captured responsive anyway |
+
+Two lessons: the readings are the right numbers (they read as the pins did), and sol's discipline, not the gate, is the floor on this niche: it quits after a refused force, writes the page over an open phase, or ships from an open hero. Fixes from this sweep: readings print as an ordered "each one CSS edit" list capped at eight; a reading unchanged for three attempts becomes advisory and stops blocking; a refused force says the readings are the edits; a single link or button is not a strip; the overall shows a decimal near the floor. What the scripts cannot do is make a model keep going: that is the finish reviewer's backstop and, in the harness, a completion the run declared for itself.
+
+## The human review (2026-08-17): 32 builds, 230 pins
+
+Paul reviewed every sweep-3/4/5 build against its comp on a click-to-annotate page (pin + note per spot, pass / unsure / fail per sample). What the verdicts said about the score:
+
+| verdict | comp-diff overall of those samples |
+|---|---|
+| pass (4) | 73 (opus main 05), 70 (opus branch 11), **80 (opus branch 05, sweep 7: "by far the best result so far")**, 68 (opus branch 07, sweep 7: "borderline pass") |
+| "pass except one bug" (1) | 86 (opus branch 05: cover arch clipped by its box) |
+| unsure (10) | 61-74 |
+| fail (27) | 43-68 |
+
+So the human pass line sits at about 68-73 on comp-diff, and `HERO_MIN` at 0.72 is inside it. Every main build was a fail except one opus sample; branch builds were the only ones rated pass or unsure on 07 and 11, and the sweep-7 opus builds (with the readings from this review) hold three of the four passes.
+
+The pins, grouped, and what each became:
+
+| Pins (count, paraphrased) | Mechanised as |
+|---|---|
+| bad font / too thick / wrong size / wrong line height / wraps differently (≈40) | `textRegionCheck`: cap height, line count, ink density, line pitch vs the comp crop, per text region, as numbers |
+| text in the wrong place / too much spacing above (≈15) | first-line offset in px |
+| black text rendered white; text colour changed (7) | ink colour compare, also on unmeasurable (rotated) text |
+| bottom menu / footer missing, content pushed below the fold (12) | detail under 15% is `missing` before any palette relaxation |
+| menu too tall / header divider too far down (6) | strip height off the first rule row |
+| hallucinated kicker / dividers / legend / button / squares / extra copy (≈25) | invented-ink cells over a calm comp; veto at 4% of the frame or two strongly inked cells |
+| svg instead of asset, "terrible svg", drawing named as chrome (≈15) | painted-material note refusal; every region needs a note; code regions over 25% refused |
+| shape cut off / cropped / bleeds into the next element / clipping bug (9) | spec refuses a plate box whose artwork runs off it (edge contact against the page ground) |
+| button in wrong spot / not in its box (5) | control ink box and rule row |
+| "white letterboxing" on the build (7) | a review artefact: the side-by-side drew the shift-padded copy; fixed |
+| wrong / small / missing icons, arrow and dropdown style (≈15) | not mechanised: the icon concession stands; raise if icons should be held to the comp |
+| shadow / depth the comp does not have; "flat on the comp" (3) | not mechanised |
+| chart lines less dense (1) | not mechanised (a chart drawn in code) |
+| "arguably better" deviations: a colour that fixes contrast, a label moved (3) | by design: the contract wins at the hero; a stated second pass after it may change it |
+| a note by the model itself: "the grid boxes straddle two elements, CSS cannot fix the structure penalty" | it was right: text and control regions now snap to the largest ink mass in their span |
+| "bad asset crop (crops are never allowed)" (2) | plates gate refuses a file that resamples the comp region (structure 95%+ against the raw crop) |
+| "letter spacing way too wide" (1) | tracking reading (glyph gap in cap units) |
+
+Two verdict boundaries the review drew: close-enough icon glyphs are acceptable; arrows, chevrons, dropdown chrome, and control borders and fills are the comp's (controls are held like text at the hero now).
+
+## Seventh sweep (2026-08-17, claude-opus-5, 05 and 07, branch, after all pins, 160 turns)
+
+| Sample | overall | hero | what happened |
+|---|---|---|---|
+| 05-001 | 67 | 73 in 22 attempts, turn cap | passed the hero, ran out of turns before responsive |
+| 05-002 | **80 (match)** | 81 in 13 attempts, then asked the user, was told to build as written, forced (recorded, legitimate) | stalled on eight per-row readings of the track list; those now fold into one line |
+| 07-001 | 43 | 39, one look | API connection dropped at turn 52 |
+| 07-002 | 68 | 67 in 2 attempts, then declared done | wrote a note diagnosing the grid boxes as the structure penalty (correct; fixed by snapping) |
+
+Opus with the readings reaches the human pass line on 05 (73-81 at the hero, 80 overall on the second) at 13-22 attempts, and the model's own diagnosis of the remaining structure penalty pointed at the region boxes, which now snap to their ink.
+
+## Eighth sweep (2026-08-17 night): SVG ban, crop refusal, snapping, folded readings, control chrome, finish guard, scaffold
+
+After Paul's full review and his rulings (close-enough icons fine; arrows and dropdown chrome are not; ban SVG illustrations; the scaffold as a reference, never the page), everything landed and this sweep ran with all of it. Turn cap 160.
+
+| Sample | overall | hero | notes |
+|---|---|---|---|
+| 07 opus 001 | **79** | 79 in 12 attempts | scaffold used; turn cap in hero |
+| 07 opus 002 | **78** | 79 in 13 attempts, sections, motion, responsive 78 | scaffold used; every region at its place, real plates at the right size |
+| 05 opus 001 | **84 (match)** | **85** in 10 attempts, responsive 84, review | scaffold used |
+| 05 opus 002 | **84 (match)** | **87** in 14 attempts, sections | scaffold used; turn cap |
+| 07 sol 001 | 48 | never entered (page at turn 5) | ignored the state |
+| 07 sol 002 | 66 | 67 in one attempt, stopped | scaffold used: for the first time on sol every region sat where the comp has it (spine, headline, thread box, table, footer); the two carburetor drawings were still inline SVG, named "countable ... geometry" chrome, and the SVG ban had not run because `state.artifact` is null on a `--direction` start. Both fixed after this sample (the code scans default to `index.html`; the painted-note regex knows "geometry", "leader lines", "thumbnail"). |
+
+Four of four opus samples above Paul's pass line, two of them `match`. 07, the comp that sat at 63-70 across every earlier sweep and both models, reads 78-79 on opus with the scaffold: above Paul's borderline pass (68) by ten points, at the level of the 05 build he called "by far the best result so far". The scaffold did on sol what no reading could: the positions are right; what remains on sol is the SVG reflex, and that is now refused.
+
+## Ninth sweep (2026-08-28): sol with the artifact fix, on the rebased branch
+
+The branch was rebased onto main first (109 commits behind; main's GROUND matrix row grafted into the finish reviewer, main's two prose colour rules dropped as superseded by the measuring gates). This is the handoff's first paid check: does sol produce plates once its SVGs are refused? Four samples, n=2 per niche, $11.13, turn cap 160.
+
+| Sample | overall | hero | plates | notes |
+|---|---|---|---|---|
+| 05 sol 001 | 54 | never opened | 3 produced, 0 placed | quit with plates open; 6.7 MB of correct plates sat unused while the page drew the aperture in CSS |
+| 05 sol 002 | **71** | 0.7086 in 6 records, 0 advances | 3 produced, 2 placed | closest of the four; left two type findings unfixed across four attempts, then declared complete at 34 of 90 minutes |
+| 07 sol 001 | 63 | 0.6543 in 3 attempts | 3 produced, 3 placed | shaded technical illustrations as real rasters where sweep 8 drew wireframes |
+| 07 sol 002 | 62 | 0.6053 in 2 records, 0 advances | 1 produced, 0 placed | filed both carburetor illustrations as `chrome` with "countable ... line diagram" notes, got past comp-spec's refusal with `codeDrawn` and `container`, shipped 23 inline SVG paths |
+
+The artifact fix is confirmed in production conditions. All four packets start `--direction` with `artifact: null`, the state that silenced the ban in sweep 8, and the hero code scan now defaults to `index.html` and caught both of 07 002's illustrations by name ("artifact draws an illustration in inline SVG (rack-diagram)... 15 shapes, 227 chars of path data"). Plates moved with it: 4 of 4 samples produced real rasters, 2 of 4 placed them.
+
+The finding is not about plates. Every gate that should have fired did fire, and every sample ignored it. All four received `COMP_ROUND_OPEN` ("a detector pass is not a finish") plus explicit gate failures, and all four declared completion anyway at 40 to 72 turns with most of the budget unspent. Sol's remaining failure is compliance, not knowledge or capability, so further sol rounds are not worth buying.
+
+Two defects surfaced that belong to the skill rather than to sol. The spec gate's escape hatches hide their own use: `codeDrawn: true` and `container: true` in `regions.json` override the painted-material refusal, and neither key persists into `spec.json`, so the shipped spec shows a clean classification with no trace that a refusal was overridden. And `font-match.mjs` cannot reach a browser inside the OpenAI sandbox (`browserType.launch: EPERM` on `mkdtemp /tmp/playwright-artifacts-*`), so every sample fell back to an estimated size and rendered headlines at 186 to 247 percent of the comp's cap height, which is a large share of the structure gap the hero gate then reports.
+
+## Tenth sweep (2026-08-28): opus confirmation on the rebased branch
+
+The handoff's second paid check, and the first frontier run on the rebased tree. Four samples, n=2 per niche, turn cap 160, wall clock 90 minutes. Zero forced phases across all 32 phase records; no `--force` or `--min` in any trace.
+
+| Sample | overall | hero | plates | notes |
+|---|---|---|---|---|
+| 05 opus 001 | **90 (match)** | 0.9025 in 8 attempts, open | 4 / 4 | the highest fidelity score the program has recorded; held open by three text ink colours the gate calls "each one CSS edit" |
+| 05 opus 002 | **86 (match)** | 0.8647 in 4 attempts, **closed** | 4 / 4 | sections, motion, responsive 0.8144, review, all closed, `finish disposition: ship` |
+| 07 opus 001 | 78 | 0.7892 in 18 attempts, open | 4 / 4 | held by two contradicted text regions and one ink reading; cut off by the cost cap at turn 158 |
+| 07 opus 002 | 76 | 0.777 in 10 attempts, open | 5 / 5 | held by a plate off its box, a plate clipped left, and 11 readings; cut off by the cost cap at turn 150 |
+
+05 opus 002 walked the entire machine, comps through review, every phase closed and unforced, ending with a recorded ship. Of the twenty state files in the run corpus it is the only one past hero, and it is the first complete traversal in the program.
+
+Plate discipline was perfect: 17 raster regions specced across the four samples, 17 files on disk, 17 referenced live by the shipped pages. The inline SVG on the 07 pages is icon-sized and legitimate (12 and 11 elements, one path each, 13 to 42px: crosshair, wrench, star, paperclip, book, person, tag). Font ranking worked on this lane, zero EPERM lines, so the estimated-size drag that inflated sol's headlines is absent from this data.
+
+On the handoff's question, whether 07 clears 72 without a force, the answer is that its fidelity did and its gate did not. Both 07 samples measured above the threshold, 0.7892 and 0.777, with nothing forced, and no sample's reasons contain a "hero overall below 72%" line. `HERO_MIN` at 0.72 is one veto among many: the gate returns `ok` only when the reason list is empty (`build-phase.mjs:82` and `:651`), so a build can sit well above the fidelity floor and still be held by per-region readings. Both 07 runs were then cut off mid-loop by the harness cost guard rather than by the machinery: "Error: Claude Code process aborted by user" is `anthropic-native.ts:1288` computing `sliceCapUsd * 1.15`, $23.00 for this launch, and `:2005` aborting on it. Replaying the raw messages against the same estimator puts 07 001 across on its final turn (turn 157 at $22.90, turn 158 at $25.27 on a 364k-token cache write) and 07 002 at turn 150 ($22.95 to $23.16). The turn cap (160 against 158 and 150), the wall clock (90 minutes against 60.4 and 70.2) and the stall guard (10 minutes against idle stretches of 5.3 and 7.1) are each excluded.
+
+So 07's gate closure is unproven, not regressed. Fidelity is equal or better than sweep 8 on both niches (05 rose from 84/84 to 90/86; 07's hero readings sit at 0.789/0.777 against 0.79/0.79), plate discipline is perfect, the staged skill under each sample is byte-identical to the repo, and one sample carried a build through every phase to a ship. Settling the exact sentence takes a 07-only re-run at a realistic budget (`--slice-cap-usd 35`, roughly $50 to $70): opus costs $22 to $25 per sample on these niches, not the $15 the original estimate assumed, and `--batch-budget-usd` only blocks launching new slices rather than aborting running ones, so a four-slice launch's worst case is four times the per-slice cap.
+
+One design question falls out of this round rather than out of any defect. A build measuring 0.9025 held open by three colour edits, and a hero loop that ran 18 attempts without converging, suggest the gate's all-or-nothing pass condition and its per-region reading list interact badly with real turn and cost budgets. The gate teaches well; inside a bounded run it does not converge.
+
+## Ninth and tenth sweeps, and the pass-condition decision (2026-08-28)
+
+Abdul ran both handoff checks on the rebased branch (full write-ups in PR #599's comments): sol with the artifact fix (plates now produced, the SVG ban fires by name, 07's floor 48 to 62, but sol still declares done over open gates: compliance, not capability, and no further sol rounds are worth buying), and an opus confirmation (05 at **90 and 86, both `match`**, with the first complete traversal of the machine ending in a recorded ship; 07 at **78 and 76**, above the bar with zero forces, held open only by numeric readings and then cut by the eval cost cap mid-climb).
+
+The decision that followed, made by Paul on return: **above `HERO_MIN`, the numeric readings advise instead of block.** Hard vetoes stay unconditional at any score (a missing region, a contradicted plate or text block, an inline-SVG illustration, a clipped plate, invented ink); ink colours, letter-spacing, line pitch, strip heights, and box positions print as advisories with the pass and belong to the polish pass before responsive. Under this condition every sweep-10 sample closes its hero, which settles 07 without another paid round.
+
+Two ninth-sweep defects are fixed with it: the spec's escape hatches (`codeDrawn`, `container`, `bleed`) now persist into `spec.json` and announce themselves as WARN lines (an overridden refusal used to vanish from the record), and `font-match` probes `os.tmpdir()` before launching a browser and points `TMPDIR` at `.impeccable/tmp` when the sandbox's `/tmp` is unwritable (every ninth-sweep rank had silently fallen back to the catalog and set headlines at twice the comp's cap).
\ No newline at end of file
diff --git a/docs/comp-fidelity-review-2026-08-17.json b/docs/comp-fidelity-review-2026-08-17.json
new file mode 100644
index 000000000..ba5be0462
--- /dev/null
+++ b/docs/comp-fidelity-review-2026-08-17.json
@@ -0,0 +1,580 @@
+{
+ "date": "2026-08-17",
+ "reviewer": "pbakaus",
+ "method": "click-to-annotate side-by-side page: comp left, build right; pass/unsure/fail per sample; pin coordinates omitted here, notes kept",
+ "samples": {
+  "cf3-05-05-sol-branch-001": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "bad font",
+    "shape is different",
+    "asset has wrong bg color",
+    "button in wrong spot",
+    "mini shape on cover should not be there",
+    "text in the wrong place",
+    "paper rip texture missing",
+    "bottom menu entirely missing"
+   ]
+  },
+  "cf3-05-05-sol-branch-002": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "good font, but bad line height",
+    "yua komiyama in wrong font size and too much spacing to heading)",
+    "button too far down, also too much spacing above",
+    "looks like sol tried to replace the music sheet with html? lots of stuff missing, squiggles etc...",
+    "shape is cut off on both sides, terrible treatment",
+    "soft cathedrals in the wrong spot, very small",
+    "that double shape appears again",
+    "bottom menu missing entirely"
+   ]
+  },
+  "cf3-05-05-sol-branch-003": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "bad font",
+    "extra content not in comp",
+    "extra content not in comp (worse even, section kickers are banned)",
+    "terrible html/svg rendition of music sheet",
+    "shape cut off at the top, very different quality as original",
+    "cover missing texture, text in wrong spot",
+    "bottom menu entirely missing"
+   ]
+  },
+  "cf3-05-05-sol-main-001": {
+   "verdict": "fail",
+   "note": "by far the worst of all of them in this niche",
+   "pins": [
+    "extra content",
+    "extra content",
+    "extra content",
+    "extra content (section kicker)",
+    "bad font, improvised font treatment",
+    "completely replaced style of listen button",
+    "completely different music sheet",
+    "terrible approximated shape",
+    "bad cover in wrong location, with wrong content",
+    "bottom menu missing"
+   ]
+  },
+  "cf3-05-05-sol-main-002": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "improvised bad font and treatment (actually doesn't look bad, but fail because very different as the comp)",
+    "extra content",
+    "improvised button, not in comp",
+    "completely different music sheet",
+    "terrible shape",
+    "extra content",
+    "menu missing",
+    "extra shape and other content in the cover",
+    "extra content",
+    "extra content"
+   ]
+  },
+  "cf3-05-05-sol-main-003": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "extra content",
+    "bad font, improvised",
+    "improvised button",
+    "completely different than music sheet notation",
+    "bad cut off shape",
+    "bad cover with wrong content in bad position",
+    "bottom menu entirely missing again"
+   ]
+  },
+  "cf3-07-07-sol-branch-001": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "texture of red element entirely missing",
+    "text in wrong location",
+    "text size and font wrong, mirrored, and in the wrong location",
+    "missing from build",
+    "menu to tall in build",
+    "menu dividers don't exist in comp",
+    "line way too low, too much spacing above",
+    "text cut off on the side. bolded parts don't exist in comp",
+    "button too far below, again too much spacing above",
+    "wrong icon",
+    "bad svg approximation",
+    "missing card containment, and bad positioning",
+    "label is outside the box in comp",
+    "very weird font compared to comp",
+    "\"today\" is wrongly positioned (arguably could make more sense there, but still violates the contract; the user should decide in the next round)",
+    "terrible approximation of asset",
+    "lines don't point to the right thing",
+    "this graphic is so bad it's almost offensive",
+    "this whole bottom area is not visible in the build because the content above pushes it all down"
+   ]
+  },
+  "cf3-07-07-sol-branch-002": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "content missing in build",
+    "wrong color, but arguably might be better (user decision; if the comp violates detector rules like contrast, maybe a stated second pass)",
+    "bad font (too thick) but at least roughly in the right place",
+    "nav area too tall",
+    "hallucinated dividers",
+    "font only ok, not great approximation",
+    "too much spacing (width)",
+    "card in wrong location (needs to be further up and to the left), and bad icon",
+    "terrible svg approximation of asset",
+    "line sticks out of its box",
+    "bad font (too thick)",
+    "label wrongly positioned, not out of the box",
+    "bad svg approximation of asset",
+    "this whole container is too wide, text wraps at completely different breakpoints",
+    "table text too small, looks quite a bit different",
+    "this top card doesn't sit in its own visual card, like in the comp",
+    "absolutely atrocious svg instead of asset",
+    "font on button too small"
+   ]
+  },
+  "cf3-07-07-sol-branch-003": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "white borders (review artefact, since fixed)",
+    "this text was black in the comp",
+    "texture missing",
+    "bad font size",
+    "made up dividers",
+    "top nav too tall",
+    "invented section kicker",
+    "text size wrong, overall makes this heading way too short",
+    "service note box entirely missing",
+    "thread box missing",
+    "bad svg instead of asset",
+    "lines point nowhere",
+    "table is different, and some content missing",
+    "terrible svg"
+   ]
+  },
+  "cf3-07-07-sol-main-001": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "this is basically an entirely different build!"
+   ]
+  },
+  "cf3-07-07-sol-main-002": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "also entirely different build"
+   ]
+  },
+  "cf3-07-07-sol-main-003": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "entirely different build"
+   ]
+  },
+  "cf3-11-11-sol-branch-001": {
+   "verdict": "unsure",
+   "note": "mostly passing, but a bunch of nits",
+   "pins": [
+    "white letterboxing (review artefact)",
+    "different icons, and too small. also, some missing",
+    "right side legend is missing (arguably redundant, but it's in the comp)",
+    "bottom legend missing",
+    "different arrow style",
+    "no spacing",
+    "acknowledge button not present in comp",
+    "side tab borders are missing in the comp (these side tabs are legitimate: not rounded)",
+    "this legend is arguably a useful addition, but wasn't in the comp"
+   ]
+  },
+  "cf3-11-11-sol-branch-002": {
+   "verdict": "unsure",
+   "note": "mostly pass, with nits",
+   "pins": [
+    "wrong icons again, and some missing",
+    "wrong dropdown style",
+    "wrong live style, no pause button",
+    "utc is above, but not in the comp",
+    "wrong label, and input not vertically centered",
+    "silenced is missing in the build",
+    "wrong arrow styles",
+    "invented box colors",
+    "font size too small",
+    "font size too small",
+    "lines are much less fuzzy (much less data points maybe?)",
+    "legend not in comp"
+   ]
+  },
+  "cf3-11-11-sol-branch-003": {
+   "verdict": "unsure",
+   "note": "ok with nits",
+   "pins": [
+    "wrong dropdown style",
+    "these don't wrap on the comp",
+    "header too tall in build",
+    "best icons so far, mostly good",
+    "settings icon missing in build",
+    "help icon missing in build",
+    "text is overlapping lines",
+    "font size too small",
+    "font size too small (\"errors\")",
+    "these aren't in boxes with a border",
+    "hallucinated legend",
+    "hallucinated little squares",
+    "wrong arrow style"
+   ]
+  },
+  "cf3-11-11-sol-main-001": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "bad menu",
+    "completely different looking chart structure",
+    "very different looking visualization",
+    "letterboxing (review artefact)",
+    "nav missing",
+    "hallucinated legend",
+    "hallucinated trend lines"
+   ]
+  },
+  "cf3-11-11-sol-main-002": {
+   "verdict": "fail",
+   "note": "didn't leave annotations because very similarly bad to 001",
+   "pins": []
+  },
+  "cf3-11-11-sol-main-003": {
+   "verdict": "fail",
+   "note": "didn't leave annotations because very similarly bad to 001",
+   "pins": []
+  },
+  "cf4-05-05-opus-branch-001": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "shadow doesn't exist in comp",
+    "button too far down",
+    "music notation lines bleed into the album cover",
+    "bottom menu is entirely missing"
+   ]
+  },
+  "cf4-05-05-opus-branch-002": {
+   "verdict": "fail",
+   "note": "this would be a pass if the black shape wouldnt have a horrible clipping bug",
+   "pins": [
+    "shape cropped at the left and bottom, looks like a bug",
+    "the paper rip effect is bolder than in the comp, but first time the details at the bottom actually come through, nice!"
+   ]
+  },
+  "cf4-05-05-opus-main-001": {
+   "verdict": "pass",
+   "note": "",
+   "pins": [
+    "wrong bg color",
+    "text too cramped towards the top",
+    "mini arc within the cover",
+    "bad font size and position"
+   ]
+  },
+  "cf4-05-05-opus-main-002": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "bad font",
+    "the grain is too heavy here",
+    "this shape should not go all the way to the bottom",
+    "these artifacts make no sense",
+    "mini arc should be there",
+    "wrong font size in the wrong place",
+    "music notes cut off",
+    "bottom menu missing"
+   ]
+  },
+  "cf4-07-07-opus-branch-001": {
+   "verdict": "unsure",
+   "note": "",
+   "pins": [
+    "white instead of black",
+    "table style is off",
+    "line wrap is different",
+    "image is different",
+    "font is bad - bold",
+    "texture missing",
+    "white letterboxing (review artefact)",
+    "pretty good but looks a bit different",
+    "these stick out"
+   ]
+  },
+  "cf4-07-07-opus-branch-002": {
+   "verdict": "unsure",
+   "note": "",
+   "pins": [
+    "white text, overlaps",
+    "the style of those components is very different, almost as if we didn't pass in the crop of the original or the prompt",
+    "this is flat on the comp",
+    "bad asset",
+    "whole index shown is hallucinated",
+    "font is too different, spacing between lines is too much"
+   ]
+  },
+  "cf4-07-07-opus-main-001": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "text is wrongly positioned",
+    "bad asset",
+    "bad font weight",
+    "asset in diff style",
+    "asset in diff style",
+    "table is completely off",
+    "invented"
+   ]
+  },
+  "cf4-07-07-opus-main-002": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "terrible font",
+    "table gone",
+    "bad heading",
+    "should be below button",
+    "hallucinated",
+    "hallucinated",
+    "bad layout",
+    "different copy",
+    "different copy"
+   ]
+  },
+  "cf4-11-11-opus-branch-001": {
+   "verdict": "pass",
+   "note": "mostly nits, would give this a pass",
+   "pins": [
+    "slightly different dropdown styles",
+    "hallucinated side tab",
+    "icons smaller than in comp",
+    "table looks quite different",
+    "number is in the wrong place",
+    "font size too large",
+    "box style is slightly different",
+    "help icon missing"
+   ]
+  },
+  "cf4-11-11-opus-main-001": {
+   "verdict": "unsure",
+   "note": "worse than branch, but also not terrible",
+   "pins": [
+    "hallucinated scope field",
+    "slow traces not in the original comp",
+    "table style and grid is different",
+    "help icon missing",
+    "icons a bit too small",
+    "active style looks different",
+    "button does not exist in comp",
+    "text not vertically aligned",
+    "search bar too long",
+    "background grid lines are missing",
+    "this chart area overall is too tall, pushes everything below further down",
+    "different box style, too tall boxes"
+   ]
+  },
+  "cf4-11-11-opus-main-002": {
+   "verdict": "unsure",
+   "note": "",
+   "pins": [
+    "letterboxing (review artefact)",
+    "button doesn't exist in comp",
+    "chart area way too tall",
+    "box style different",
+    "logo not flush on the left",
+    "icons are too small",
+    "help icon missing"
+   ]
+  },
+  "cf5-07-07-sol-branch-001": {
+   "verdict": "unsure",
+   "note": "",
+   "pins": [
+    "white instead of black text",
+    "font feels very off, too bold, not tall enough etc",
+    "texture missing",
+    "header divider line is much too far down",
+    "font too bold",
+    "line wrap here is terrible, not like in the comp",
+    "this is below the button in the comp",
+    "bad icon",
+    "text a bit too small",
+    "asset is badly positioned",
+    "text too bold",
+    "this whole thing is not in a visual box",
+    "looks like a weird crop",
+    "non-sensical lines that point nowhere",
+    "weird hallucinated buttons",
+    "table too small, font too small, looks different",
+    "asset looks too low res (like a crop), positioned badly, overflows at the top"
+   ]
+  },
+  "cf5-07-07-sol-branch-002": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "letterboxing (review artefact)",
+    "black text at the bottom missing",
+    "font-size too small",
+    "should be below button",
+    "line height too low",
+    "hallucinated section kicker",
+    "hallucinated dividers",
+    "table entirely missing",
+    "terrible svg",
+    "weird divider",
+    "weird artifacts",
+    "service note box out of viewport",
+    "terrible svg",
+    "header too tall"
+   ]
+  },
+  "cf5-07-07-sol-branch-003": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "letterboxing (review artefact)",
+    "bad divider lines",
+    "white instead of black text",
+    "texture missing",
+    "bottom text missing",
+    "hallucinated section kicker",
+    "red line too thick",
+    "weird bolding",
+    "service note icon bad, box missing, asset missing",
+    "cardinal clipping sins",
+    "terrible svg",
+    "terrible svg",
+    "hallucinated table header and color",
+    "table overflowing"
+   ]
+  },
+  "cf6-05-05-sol-branch-001": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "bad section kicker",
+    "font too small",
+    "terrible approximation of music notation sheet",
+    "bottom row missing",
+    "bad bg color",
+    "terrible cover, double arc",
+    "weird white space",
+    "extra text",
+    "extra text",
+    "extra text"
+   ]
+  },
+  "cf6-05-05-sol-branch-002": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "letter spacing way too wide",
+    "font size too small",
+    "pretty bad approximation of music notation sheet",
+    "bottom row missing",
+    "terrible cover asset",
+    "extra arc"
+   ]
+  },
+  "cf6-05-05-sol-branch-003": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "bad font, but better than other passes",
+    "terrible approximation again of music notation",
+    "bad cover, but at least soft cathedrals is positioned correctly",
+    "arc shape is wrong and badly positioned",
+    "bottom row missing"
+   ]
+  },
+  "cf6-07-07-sol-branch-001": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "texture missing",
+    "bad font, too small",
+    "bad font, comp is not bold at all in the header",
+    "too bold font",
+    "wraps on the wrong words",
+    "service note looks different, misses icon, text etc",
+    "stick out of the box",
+    "text overflows the container",
+    "font size way too large",
+    "bad asset crop (crops are never allowed)",
+    "bad asset crop (crops are never allowed) and badly positioned",
+    "lines overflowing, badly positioned",
+    "table header is comically tall",
+    "thread index is overlapping lines",
+    "'thread' label is within the box, not outside"
+   ]
+  },
+  "cf6-07-07-sol-branch-002": {
+   "verdict": "fail",
+   "note": "dramatic fail. invented a completely different layout.",
+   "pins": []
+  },
+  "cf6-07-07-sol-branch-003": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "texture missing",
+    "font size too big",
+    "heading overflows on the right",
+    "bad line width",
+    "text overflows, box looks super different",
+    "asset terribly positioned",
+    "this whole thing is not in a visible bordered box anymore",
+    "non-sensical lines pointing to wrong things",
+    "asset has bad bg color",
+    "these elements are way too far below and unreadable"
+   ]
+  },
+  "cf7-05-05-opus-branch-001": {
+   "verdict": "fail",
+   "note": "",
+   "pins": [
+    "button too far down",
+    "music notation ok but not perfect; doesn't flow into the arc shape on the right",
+    "font too small",
+    "arc shape cut off on the right and extending too far below",
+    "bottom row entirely missing"
+   ]
+  },
+  "cf7-05-05-opus-branch-002": {
+   "verdict": "pass",
+   "note": "wow - by far the best result so far!",
+   "pins": [
+    "text not present in comp"
+   ]
+  },
+  "cf7-07-07-opus-branch-001": {
+   "verdict": "fail",
+   "note": "absolutely insane fail. it's like a toddler sprinkled assets on a page",
+   "pins": []
+  },
+  "cf7-07-07-opus-branch-002": {
+   "verdict": "pass",
+   "note": "this is a borderline pass",
+   "pins": [
+    "white text instead of black",
+    "texture missing",
+    "bottom text way too far below",
+    "service note box way too far below",
+    "heading way more compressed (short) than in comp",
+    "label not on the left edge",
+    "line missing"
+   ]
+  }
+ }
+}
\ No newline at end of file
diff --git a/scripts/build-font-index.mjs b/scripts/build-font-index.mjs
new file mode 100644
index 000000000..a2acc0a0d
--- /dev/null
+++ b/scripts/build-font-index.mjs
@@ -0,0 +1,166 @@
+#!/usr/bin/env node
+/**
+ * build-font-index: rebuild skill/scripts/data/font-index.json, the fingerprint
+ * index of the Google Fonts catalog that `font-match.mjs --rank` uses as its
+ * candidate generator.
+ *
+ * This is a RELEASE-TIME step, not part of `bun run build`. It needs the
+ * network (Google Fonts metadata + CSS) and Playwright Chromium, renders every
+ * latin family at up to three weights (300 / 400 / 700, whichever the family
+ * ships) at two cap heights (48px and 14px), fingerprints each render with
+ * skill/scripts/lib/font-fingerprint.mjs, and packs the vectors with
+ * skill/scripts/lib/font-index.mjs. A full run is ~6,000 renders and takes
+ * 20-40 minutes. Rerun it when the fingerprint's FEATURES or STATS change
+ * (the index stores only the features the fitted distance weights) or when
+ * the catalog has moved on enough to matter; commit the regenerated JSON.
+ *
+ *   node scripts/build-font-index.mjs [--out skill/scripts/data/font-index.json]
+ *                                     [--sample N]        # first N families only (tests, smoke)
+ *                                     [--families "Inter,Oswald"]
+ *                                     [--metadata path]   # cached fonts.google.com/metadata/fonts JSON
+ *                                     [--resume]          # keep entries already in --out
+ *
+ * One-time setup: `npx playwright install chromium`.
+ */
+import fs from 'node:fs';
+import path from 'node:path';
+import { fileURLToPath } from 'node:url';
+import { createRequire } from 'node:module';
+import { fingerprint } from '../skill/scripts/lib/font-fingerprint.mjs';
+import { decodePng } from '../skill/scripts/lib/png.mjs';
+import { INDEX_PATH, INDEX_SIZES, INDEX_FEATURES, CATEGORIES, packVector } from '../skill/scripts/lib/font-index.mjs';
+
+const require = createRequire(import.meta.url);
+const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
+
+/** Text every catalog face is rendered with; covers caps, x-height letters, ascenders, descenders, digits. */
+export const INDEX_TEXT = 'The quick brown fox jumps over the lazy dog 0123456789 HAMBURGEVONS';
+/** All-caps variant, rendered at the large cap size only: a caps headline
+ *  crop has no x-height band, so its features (advance, run lengths, vertical
+ *  profile) belong to a different distribution than mixed-case text; matching
+ *  a caps crop against mixed-case renders ranked barcode faces above the
+ *  headline's own family. */
+export const INDEX_TEXT_CAPS = 'THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 0123456789 HAMBURGEVONS';
+export const INDEX_WEIGHTS = [300, 400, 700];
+const METADATA_URL = 'https://fonts.google.com/metadata/fonts';
+const CATEGORY_MAP = { 'Sans Serif': 'sans', Serif: 'serif', Display: 'display', Handwriting: 'handwriting', Monospace: 'mono' };
+
+function arg(name, fallback = null) {
+  const i = process.argv.indexOf(`--${name}`);
+  if (i === -1) return fallback;
+  const v = process.argv[i + 1];
+  return v && !v.startsWith('--') ? v : fallback;
+}
+const has = (name) => process.argv.includes(`--${name}`);
+
+/** Catalog entries [{ family, weight, category, variable }] from the Google Fonts metadata document. */
+export function entriesFromMetadata(meta, { weights = INDEX_WEIGHTS } = {}) {
+  const list = (meta.familyMetadataList || []).filter((x) => (x.subsets || []).includes('latin'));
+  const out = [];
+  for (const x of list) {
+    const ax = (x.axes || []).find((a) => a.tag === 'wght');
+    const ks = Object.keys(x.fonts || {}).filter((k) => !k.endsWith('i')).map(Number);
+    const ws = weights.filter((t) => (ax ? t >= ax.min && t <= ax.max : ks.includes(t)));
+    for (const w of ws) out.push({ family: x.family, weight: w, category: CATEGORY_MAP[x.category] || String(x.category || '').toLowerCase(), variable: !!ax });
+  }
+  return out;
+}
+
+/** Serialize decoded entries into the on-disk shape (see lib/font-index.mjs). */
+export function serializeIndex(entries, { text = INDEX_TEXT, textCaps = INDEX_TEXT_CAPS, sizes = INDEX_SIZES } = {}) {
+  const rows = entries.map((e) => [e.family, e.weight, Math.max(0, CATEGORIES.indexOf(e.category)), e.variable ? 1 : 0, ...sizes.map((sz) => (e.fp?.[sz] ? packVector(e.fp[sz]) : null))]);
+  return JSON.stringify({ schema: 2, text, textCaps, sizes, features: INDEX_FEATURES, categories: CATEGORIES, entries: rows });
+}
+
+const gfHref = (f, w) => `https://fonts.googleapis.com/css2?family=${encodeURIComponent(f).replace(/%20/g, '+')}:wght@${w}&display=block`;
+
+/** Render one face at a target cap height on an open page and return its fingerprint (or null when the face did not load). */
+async function fingerprintFace(page, e, targetCap, text) {
+  let size = Math.round(targetCap * 1.4), fp = null;
+  for (let pass = 0; pass < 2; pass++) {
+    await page.evaluate(({ family, weight, size, text }) => {
+      document.body.innerHTML = `
${text}
`; + }, { family: e.family, weight: e.weight, size, text }); + let loaded = false; + try { + loaded = await Promise.race([page.evaluate(async (f) => { + const faces = await document.fonts.load(`${f.weight} 32px '${f.family}'`); + await document.fonts.ready; + const covers = (face) => { const w = String(face.weight || '400').split(/\s+/).map(Number); const lo = w[0], hi = w[1] ?? w[0]; return f.weight >= lo - 50 && f.weight <= hi + 50; }; + return faces.some((face) => face.family.replace(/["']/g, '') === f.family && face.status === 'loaded' && covers(face)); + }, e), new Promise((r) => setTimeout(() => r(false), 8000))]); + } catch { loaded = false; } + if (!loaded) return null; + const box = await page.evaluate(() => { const r = document.querySelector('div.s').getBoundingClientRect(); return { w: Math.ceil(r.width) + 8, h: Math.ceil(r.height) + 8 }; }); + const buf = await page.screenshot({ clip: { x: 0, y: 0, width: Math.min(3000, box.w), height: Math.min(300, box.h) } }); + fp = fingerprint(decodePng(buf)); + if (!fp || pass === 1) break; + size = Math.max(6, Math.round(size * (targetCap / fp.capHeightPx))); + } + return fp; +} + +async function main() { + const out = path.resolve(ROOT, arg('out', INDEX_PATH)); + const sample = arg('sample') ? parseInt(arg('sample'), 10) : null; + const only = arg('families') ? new Set(arg('families').split(',').map((s) => s.trim())) : null; + const metaPath = arg('metadata'); + const meta = metaPath ? JSON.parse(fs.readFileSync(metaPath, 'utf8')) : await (await fetch(METADATA_URL)).json(); + let entries = entriesFromMetadata(meta); + if (only) entries = entries.filter((e) => only.has(e.family)); + if (sample) { const fams = [...new Set(entries.map((e) => e.family))].slice(0, sample); const keep = new Set(fams); entries = entries.filter((e) => keep.has(e.family)); } + // --resume keeps entries already in --out. An entry whose fp is missing a + // size the current INDEX_SIZES names (a schema-1 index before `48c`) is + // re-rendered for the missing sizes only. + const done = new Map(); + if (has('resume') && fs.existsSync(out)) { + const { loadFontIndex } = await import('../skill/scripts/lib/font-index.mjs'); + for (const e of loadFontIndex(out).entries) { + const missing = INDEX_SIZES.filter((sz) => !e.fp[sz]); + if (missing.length && missing.length < INDEX_SIZES.length) e.missing = missing; + done.set(`${e.family}:${e.weight}`, e); + } + } + const renderSize = async (e, sz) => (typeof sz === 'string' && sz.endsWith('c') ? fingerprintFace(page, e, parseInt(sz, 10), INDEX_TEXT_CAPS) : fingerprintFace(page, e, sz, INDEX_TEXT)); + const pw = require('playwright'); + const browser = await pw.chromium.launch(); + const page = await browser.newPage({ viewport: { width: 3000, height: 300 }, deviceScaleFactor: 1 }); + const results = [...done.values()].filter((e) => !e.missing); + const failures = []; + const byFam = new Map(); + for (const e of entries) { + const prev = done.get(`${e.family}:${e.weight}`); + if (prev && !prev.missing) continue; + if (!byFam.has(e.family)) byFam.set(e.family, []); + byFam.get(e.family).push(prev ? { ...e, prev } : e); + } + const fams = [...byFam.keys()]; + const t0 = Date.now(); let n = 0; + for (let i = 0; i < fams.length; i += 20) { + const todo = fams.slice(i, i + 20).flatMap((f) => byFam.get(f)); + const links = todo.map((e) => ``).join(''); + const html = `${links}`; + try { await page.setContent(html, { waitUntil: 'load', timeout: 30000 }); } catch (err) { console.error(`batch at ${i}: ${err.message}`); } + for (const e of todo) { + n++; + try { + const fp = e.prev ? { ...e.prev.fp } : {}; + for (const sz of (e.prev ? e.prev.missing : INDEX_SIZES)) fp[sz] = await renderSize(e, sz); + if (!fp[INDEX_SIZES[0]]) { failures.push({ ...e, reason: 'not loaded or no lettering' }); continue; } + const { prev, ...clean } = e; + results.push({ ...clean, fp }); + } catch (err) { failures.push({ ...e, reason: err.message.slice(0, 120) }); } + } + fs.mkdirSync(path.dirname(out), { recursive: true }); + fs.writeFileSync(out, serializeIndex(results)); + const el = (Date.now() - t0) / 1000; + console.error(`${n}/${entries.length - done.size} rendered, ${results.length} indexed, ${failures.length} failed, ${el.toFixed(0)}s`); + } + await browser.close(); + fs.writeFileSync(out, serializeIndex(results)); + if (failures.length) fs.writeFileSync(out.replace(/\.json$/, '-failures.json'), JSON.stringify(failures, null, 1)); + console.error(`DONE ${results.length} faces -> ${out} (${(fs.statSync(out).size / 1024).toFixed(0)} KB), ${failures.length} failed`); +} + +const isMain = (() => { try { return !!process.argv[1] && fs.realpathSync(process.argv[1]) === fs.realpathSync(fileURLToPath(import.meta.url)); } catch { return false; } })(); +if (isMain) main().catch((e) => { console.error(`build-font-index: ${e.message}`); process.exit(1); }); diff --git a/scripts/test-suites.mjs b/scripts/test-suites.mjs index 5be924d3e..af5463804 100644 --- a/scripts/test-suites.mjs +++ b/scripts/test-suites.mjs @@ -26,7 +26,7 @@ export const SUITES = { triggers: [ ...COMMON_INFRA_PATTERNS, /^scripts\/(?!benchmark-detector|build-browser-detector|build-extension)/, - /^skill\/(SKILL\.src\.md|agents\/|reference\/|scripts\/(cleanup-deprecated|concept-seed|context|context-signals|critique-storage|design-parser|doctor|hook|impeccable-paths|is-generated|lib\/(artifact-schema|composition-catalog|concept-catalog|provider|staleness|staleness-deep|staleness-notice|surface-briefs|target-slug|template-extensions)|pin|surface-brief))/, + /^skill\/(SKILL\.src\.md|agents\/|reference\/|scripts\/(cleanup-deprecated|comp-diff|comp-spec|build-phase|font-match|data\/font-index|concept-seed|context|context-signals|critique-storage|design-parser|doctor|hook|impeccable-paths|is-generated|lib\/(artifact-schema|png|raster|image-metrics|font-fingerprint|font-index|hero-checks|composition-catalog|concept-catalog|provider|staleness|staleness-deep|staleness-notice|surface-briefs|target-slug|template-extensions)|pin|surface-brief))/, /^README(\.npm)?\.md$/, /^cli\/bin\//, ], @@ -54,6 +54,10 @@ export const SUITES = { 'tests/ci-test-plan.test.mjs', 'tests/cli-args.test.mjs', 'tests/concept-seed.test.mjs', + 'tests/comp-diff.test.mjs', + 'tests/build-phase.test.mjs', + 'tests/font-match.test.mjs', + 'tests/hero-checks.test.mjs', 'tests/serve-question.test.mjs', 'tests/context.test.mjs', 'tests/context-signals.test.mjs', diff --git a/skill/agents/impeccable-asset-producer.md b/skill/agents/impeccable-asset-producer.md index 645b9c2a4..91ffb8a96 100644 --- a/skill/agents/impeccable-asset-producer.md +++ b/skill/agents/impeccable-asset-producer.md @@ -26,77 +26,27 @@ When the parent hands you a decision card packet instead of an approved mock, th ## Input Contract -Expect: +Expect the measured spec (`.impeccable/build/spec.json`, written by `comp-spec.mjs` from the approved comp), the approved comp path, and the skill scripts path. Optionally: a subset of region ids to produce, extra prompt notes per region, and format or transparency needs. Everything else you need is in the spec: each raster region's id, kind (plate, image, texture), pixel box, sampled palette, aspect, note, and the plate path it must land on. -- Approved mock path or screenshot reference. -- Crop paths or a contact sheet with crop ids. -- Output directory. -- Required dimensions, format, transparency needs, and avoid list. -- Notes on what should remain semantic HTML/CSS/SVG instead of raster. +If there is no spec, stop and return one line asking the parent to run `comp-spec.mjs` first. You do not inventory the comp yourself; the spec is the inventory, and a second inventory disagrees with the first. -If the source mock is attached but has no filesystem path, use it for visual planning; ask for a path only before cropping or writing assets. +## The job -Defaults unless contradicted: +Every region with `medium: raster` in the spec ships as a plate at its `plate` path. A plate is the region regenerated at asset resolution from the comp crop as reference: same subject, same composition, same palette, same lighting and material, with the UI text and page chrome removed, at 1.5x the comp region's pixel size or more. The page draws text, controls, radius, shadow, and layout in code; the plate carries what code cannot draw. Crops from the comp are references, never shipping pixels: a comp is reference grade and a shipped crop is how a beautiful comp becomes a blurry site. -- `.webp` for opaque photos, backgrounds, and textures. -- `.png` for transparent cutouts, seals, tickets, and illustrations. -- Target production size, or at least 2x display size when dimensions are known. Never default to the small size of a full-page mock crop. -- Remove UI text, navigation, buttons, labels, and body copy. -- Keep physical marks only when the parent says they are part of the asset. -- Remove letterboxing, empty padding, baked card corners, borders, shadows, caption bands, and layout background unless the parent says those pixels are intrinsic. -- Keep the final assets directory clean: only files the build will consume. Source crops, reference crops, masks, and contact sheets go in a sibling `_sources`, `sources`, or review folder. +Per region, in the spec's order: -Ask blockers once, globally. Missing source path/crops or output directory blocks production. Exact dimensions, compression targets, retina variants, and format preferences do not; choose defaults and report them. - -## Workflow - -1. Inventory the full approved mock or every assigned crop. -2. Put each visual role in exactly one bucket: - - `produce`: needs generation, image editing, cleanup, cutout work, or a clean plate before it can ship. - - `direct`: ships after format conversion, compression, or renaming because the parent supplied a real standalone source: a project file, stock, or prior production art. A crop from the approved mock is never `direct`, whatever its apparent size. - - `semantic`: build in HTML/CSS/SVG/canvas, no raster output. -3. Crops from the mock are binding visual references, never shipping pixels: a full-page mock's effective resolution is reference grade, and a shipped crop, however close it looks, is how a beautiful comp becomes a blurry site. Every mock-derived asset goes through `produce` as a clean regeneration. -4. Give the parent an execution order for the `produce` bucket. -5. For produced assets, choose the least inventive strategy: image-to-image clean plate, faithful regeneration from crop reference, transparent cutout, texture/pattern reconstruction, stock/project source, or a semantic HTML/CSS/SVG recommendation when raster is wrong. -6. Use the harness's native image tool by default when generation or editing is needed; otherwise use the skill's generate-image.mjs. +1. `node {{scripts_path}}/comp-spec.mjs --crop ` writes the reference crop under `.impeccable/build/crops/`. +2. Produce the plate. With the API fallback: `node {{scripts_path}}/generate-image.mjs --plate --quality high` does the whole step (crop as reference, the spec's plate prompt, output size chosen from the region's aspect, the file written to its plate path, prompt embedded, and the plate scored against the crop). With a harness-native image tool: use the crop as the input image and `node {{scripts_path}}/comp-spec.mjs --plate-prompt ` as the prompt, write the result to the plate path, then run `node {{scripts_path}}/embed-prompt.mjs --prompt ""`. +3. Read the score line. `PLATE-SCORE` under 50%, or a `PLATE-WARN`, means the plate does not read as the region: open the plate beside the crop, name what drifted (subject, framing, palette, style), tighten the prompt with that, and regenerate once. Two misses on one region: keep the better plate, mark it `needs_parent_review`, and say why in one line. +4. Transparent cutouts (a figure or object on the page ground): generate on a flat chroma color absent from the subject and key it to alpha before writing the PNG; never ship the keyed background. -Codex: the imagegen skill's built-in `image_gen` path is the native tool here; prefer it for generation, editing, and the chroma-key workflow. +Codex: the imagegen skill's built-in `image_gen` path is the native tool here; prefer it for generation and editing, with the crop as the input image. -7. Remove baked-in UI text, navigation, buttons, body copy, and mock chrome unless the text is part of the asset. -8. Think through the final DOM/CSS representation before generating. If CSS will own radius, clipping, shadows, borders, perspective, responsive cropping, captions, or card frames, do not bake those into the bitmap. -9. Save outputs non-destructively in the requested project directory, and leave the intent with the file: after every generation, run `node {{scripts_path}}/embed-prompt.mjs --prompt ""` so the prompt lives inside the image itself. The build thread composes what you made and needs to know what it is looking at, and the embedding survives copies where sidecars get lost. -10. Compare each output against its source crop, opening every image by its workspace-relative path; sandboxed viewers reject absolute paths. If a review/QA tool is available, run it before the final manifest, then retry each major/fatal finding once before finalizing. -Use `texture/pattern extraction` only when the source region is already clean enough to sample as texture. If UI, cards, labels, headings, body copy, or footer chrome must be removed first, classify it as crop-derived cleanup or clean-plate work. - -Use `semantic` for dashboards, charts, controls, screenshots of whole UI sections, data widgets, card chrome, app frames, icon toolbars, logos, wordmarks, and anything the final implementation can render crisply in HTML/CSS/SVG/canvas. Ship a screenshot raster only when the parent explicitly says the screenshot itself is the final asset. - -Semantic does not mean ignored. For every semantic role, write a concrete implementation handoff for the parent craft agent: the DOM/component layers, CSS-owned visual treatment, SVG/canvas/icon-library pieces, responsive behavior, and which nearby produced raster assets it composes with. For logos and icons, prefer inline SVG/vector or icon-library implementation unless the parent provides a production logo raster. - -## Prompt Pattern - -Use this shape for image-to-image work: - -```text -Use the provided crop as the approved visual reference. -Recreate the same asset as a clean reusable production image at the target component aspect ratio and at least 2x display resolution. -Preserve silhouette, object/scene perspective, camera angle, palette, lighting, material, texture, and visual role. -Remove baked-in UI copy, navigation, buttons, labels, body text, watermarks, and mock chrome unless explicitly part of the asset. -Remove letterboxing, padding, card borders, rounded clipping, CSS shadows, perspective transforms, caption bands, and layout backgrounds that the implementation should create in code. -Do not add new objects. Do not change the concept. Do not redesign the composition. -``` - -For transparent cutouts: use true alpha when the tool supports it; otherwise generate on a flat chroma-key color that cannot appear in the subject and post-process that color to alpha before shipping the PNG/WebP. Never ship the keyed background as the final asset. +Do not redesign. Do not add objects, restyle, or reinterpret; the comp was approved as it is. Do not touch the page code, the spec, or the comp. Do not produce anything the spec does not list; a region the parent forgot goes back as a one-line note, not a plate. ## Output Contract -Return a complete manifest, grouped by `produce`, `direct`, and `semantic`. For each asset include: `id`, `source_crop`, `output_path` when applicable, `strategy`, `prompt_used` when applicable, `dimensions`, `format`, `transparency`, `deviations`, and `qa_status`. - -For each semantic row include `id`, `implementation`, `notes`, and `qa_status`. The `implementation` is a concrete build handoff, not a note that no asset was produced: name the likely HTML/CSS/SVG/canvas/icon/component pieces and the visual responsibilities code owns. - -`qa_status` is `accepted`, `needs_parent_review`, or `blocked`. `accepted` only after visual comparison passes. `needs_parent_review` for cut-off subjects, unwanted borders or rounded-card chrome, letterboxing, baked semantic text, low-resolution output, perspective that should have been CSS, missing transparency, or drift from the crop. `blocked` when inputs, permissions, image capability, or asset source quality prevent a credible result. - -End with `execution_order`, `blockers`, and `assumptions` sections. Keep blockers global and minimal; per-asset rows carry only asset-specific risks or decisions. - -Do not modify implementation code. Do not edit the approved mock. Do not produce final page copy. The parent craft agent owns implementation and final mock fidelity. +Return one line per raster region: ` % `. Then `blockers` (missing spec, missing comp, no image capability, exhausted key) and `assumptions`, each global and minimal. Nothing else: no summary, no praise, no implementation advice. The parent runs `build-phase.mjs advance` to verify the plates against the same spec; your line and its line must agree. diff --git a/skill/agents/impeccable-finish-reviewer.md b/skill/agents/impeccable-finish-reviewer.md index 97025c63e..8f9855349 100644 --- a/skill/agents/impeccable-finish-reviewer.md +++ b/skill/agents/impeccable-finish-reviewer.md @@ -22,16 +22,16 @@ A hard turn ceiling ends the run without warning; a run that ends before its con ## Input Contract -Expect: the original request; the confirmed user answers; the artifact path(s); the screenshots the parent captured, in `.impeccable/review/` (web: `desktop.png` and `mobile.png`; native: device-class names such as `phone.png` and `tablet.png`, suffixed per OS on adaptive). A screenshot path the calling brief names is authoritative when the file exists; `.impeccable/review/` is where to look when the brief names none or a named path is missing, never a filename you invent. Also expect: the direction contract (THESIS, OWN-WORLD, STORY, FIRST VIEWPORT, FORM); the PRODUCT.md path; existing hook or detector findings; the chosen world's QUALITY BAR card paths; on a comp-led build the approved comp path (a code-led build has none; it passes the chosen decision comp as a separate critique-reference input, labeled as such, and nothing here that binds "the approved comp" binds it); and the skill's `reference/craft-floor.md` path. On a native (`ios` / `android` / `adaptive`) build the packet adds the platform reference path(s) (`reference/ios.md` / `reference/android.md`) and a line saying no detector ran: read the platform reference alongside the craft floor, judge every check in the platform's own conventions, treat the screenshots as device captures, and know your floor check is the build's only slop gate. When the harness can view images, open the screenshots, the comp, and the card first, and inventory the comp's salient elements in your own words before reading the direction contract or any builder-authored summary: a review anchored on the contract inherits whatever the builder's abstraction dropped. +Expect: the original request; the confirmed user answers; the artifact path(s); the screenshots the parent captured, in `.impeccable/review/` (web: `desktop.png` and `mobile.png`; native: device-class names such as `phone.png` and `tablet.png`, suffixed per OS on adaptive). A screenshot path the calling brief names is authoritative when the file exists; `.impeccable/review/` is where to look when the brief names none or a named path is missing, never a filename you invent. Also expect: the direction contract (THESIS, OWN-WORLD, STORY, FIRST VIEWPORT, FORM); the PRODUCT.md path; existing hook or detector findings; the chosen world's QUALITY BAR card paths; on a comp-led build the approved comp path (a code-led build has none; it passes the chosen decision comp as a separate critique-reference input, labeled as such, and nothing here that binds "the approved comp" binds it); on a comp-led build the build state (`.impeccable/build/state.json`), the measured spec (`.impeccable/build/spec.json`), and the diff directories `.impeccable/review/diff/hero/` and `.impeccable/review/diff/final/` (each holds `side-by-side.png`, `heatmap.png`, `regions/.png` paired crops, and `report.json` with per-region scores and verdicts from `comp-diff.mjs`); and the skill's `reference/craft-floor.md` path. On a native (`ios` / `android` / `adaptive`) build the packet adds the platform reference path(s) (`reference/ios.md` / `reference/android.md`) and a line saying no detector ran: read the platform reference alongside the craft floor, judge every check in the platform's own conventions, treat the screenshots as device captures, and know your floor check is the build's only slop gate. When the harness can view images, open the screenshots, the comp, and the card first, and inventory the comp's salient elements in your own words before reading the direction contract or any builder-authored summary: a review anchored on the contract inherits whatever the builder's abstraction dropped. ## Checks, in order 0. **Evidence.** Before any other check, verify the required captures exist and every capture is valid. Required: the platform's full viewport set (web: `desktop.png` and `mobile.png`; native: one capture per shipped device class), plus every capture the calling brief names as required, a reported user viewport (`user-.png`) included. Valid: no black or blank regions, content matching what the filename claims (a visit capture showing the About section is invalid), the document top visible where the file claims a full page, dimensions that make sense for the named viewport. A required capture that is absent fails exactly like one that is malformed: a viewport nobody captured is a viewport nobody inspected, and it cannot ship. When any capture fails, the whole review changes shape: return `disposition: recapture` as the first line, then one section, `recapture`, listing each missing or invalid file and what a valid capture of it shows, and stop. Never build a matrix on malformed evidence; a verdict derived from a broken capture launders the breakage into an approval, and the parent owes you a full re-review on valid captures, not a scoring round. -1. **Persistence.** PRODUCT.md exists. On a comp-led build, `.impeccable/review/hero-repro.png` exists: the hero reproduction checkpoint's capture at the comp's own dimensions; its absence means the reproduction phase ran unproven, a material finding. When DESIGN.md predates this build (an extension or redesign), it matches the built world; on a new world it is written after this review by the documenter, so its absence here is not a finding. When comp-round comps exist under `.impeccable/mocks/`, an approval record exists too: the surface brief naming the approved comp, or an `approved` flag in its sidecar. Comp-round comps with no recorded pick mean the approval point was skipped, a material finding. Files under `.impeccable/mocks/decision/` are exempt: they are the direction round's dealt hand, produced before any comp round, and imply no approval whatever the build path; a code-led build has no comp round at all. -2. **Fidelity.** Against your own element inventory of the approved comp, never against the contract's summary of it: topology, reading order, focal scale, overlaps and z-order, density, signature geometry, the primary action's treatment (a CTA the comp physically works, dissolves, or stamps is a signature element; its plain-rectangle rendition is contradicted), navigation items and icons, headline levels and scale relationships. Classify every salient element: match, acceptable adaptation, missing, contradicted, or added without approval. Three rows are mandatory in every matrix. TYPE: the display lettering's character, compression, width, weight, contrast, terminals, against the comp's; a face of a different character is contradicted however the layout matches. MATERIAL: an element rendered as flat CSS or clean vector where the comp shows painted, textured, dimensional, or photographic material is contradicted regardless of placement; medium is part of the promise. GROUND: the page field's value and temperature against the comp's, sampled from pixels on both sides when tooling allows rather than judged from memory, and read as the net on-screen result where a texture or tile paints over the base color; a ground warmer or cooler than the comp's is contradicted however faithfully the layout matches, and drift toward the rendition prior (warm cream on light grounds, blue-black slate on dark) is the direction to hunt. With no approved comp, TYPE and MATERIAL do not lapse: judge them against the contract's OWN-WORLD and the world's real materials, and treat faked physicality (CSS bevels, embossing, stamped-metal or chalk effects imitating a material the page never renders) as contradicted on its face; imitation material is the single most reliable mark of machine-made design. GROUND narrows rather than lapses: with no comp to sample, a color OWN-WORLD names is the target and the same warmer-or-cooler judgment applies; when OWN-WORLD names none, there is no GROUND authority, and the review says so in place of a verdict, because a target the reviewer invents turns the check into taste. A critique-reference comp on such a build is provocation, not spec: no element matrix, no adaptation citations, no asset obligations; its one contribution is what the image dared that the build did not, and dares worth adopting enter material_fixes as ordinary ordered fixes. An adaptation counts as intentional only when it cites the user answer, surface brief, accessibility need, or product truth that forced it; an uncited deviation is a defect. A missing signature element, a changed topology, or content added without approval fails fidelity and outranks every craft point in material_fixes. When MATERIAL is contradicted on the focal element, or contradiction is the page rather than the exception, stop ordering repairs: make the first material fix a rebuild directive naming the comp regions to re-derive and the assets to produce; a list of patches against a rejected page launders the rejection into an approval. A fix that requires producing an asset says so explicitly ("produce: as a raster asset"), never phrased as a style adjustment the parent will answer with CSS. The comp is the spec for composition, topology, element inventory, density, lettering character, and material; it is not a pixel spec for semantics, accessibility, or responsive reflow, and that allowance covers translation, never replacement. +1. **Persistence.** PRODUCT.md exists. On a comp-led build, `.impeccable/build/state.json` exists and its `comps` (or `skipped` when a surface round locked the comp), `spec`, `plates`, and `hero` phases are `closed`; a comp-led config with no state file, or a state whose `comps` phase never closed, means the comp round was skipped and the build ran from a world description alone, a material finding that outranks craft; a phase closed with a `forced` record is disclosed as a material finding unless the user downgraded the comp in words the packet quotes; a state file whose `hero.gate.score` sits under 0.72, or a missing state file, means the reproduction ran unproven, a material finding, and `.impeccable/review/hero-repro.png` must exist either way. When DESIGN.md predates this build (an extension or redesign), it matches the built world; on a new world it is written after this review by the documenter, so its absence here is not a finding. When comp-round comps exist under `.impeccable/mocks/`, an approval record exists too: the surface brief naming the approved comp, or an `approved` flag in its sidecar. Comp-round comps with no recorded pick mean the approval point was skipped, a material finding. Files under `.impeccable/mocks/decision/` are exempt: they are the direction round's dealt hand, produced before any comp round, and imply no approval whatever the build path; a code-led build has no comp round at all. +2. **Fidelity.** Start from the measurement, then judge what it cannot: read `.impeccable/review/diff/final/report.json` (and hero) first; every region scored `missing` or `contradicted` is a matrix row in that state unless the paired crop under `regions/` shows the score is wrong, and you say why; a region scored `match` still gets your eye for lettering character and material, which the numbers do not measure. Then, against your own element inventory of the approved comp, never against the contract's summary of it: topology, reading order, focal scale, overlaps and z-order, density, signature geometry, the primary action's treatment (a CTA the comp physically works, dissolves, or stamps is a signature element; its plain-rectangle rendition is contradicted), navigation items and icons, headline levels and scale relationships. Classify every salient element: match, acceptable adaptation, missing, contradicted, or added without approval. Three rows are mandatory in every matrix. TYPE: the display lettering's character, compression, width, weight, contrast, terminals, against the comp's; a face of a different character is contradicted however the layout matches. MATERIAL: an element rendered as flat CSS or clean vector where the comp shows painted, textured, dimensional, or photographic material is contradicted regardless of placement; medium is part of the promise. GROUND: the page field's value and temperature against the comp's, sampled from pixels on both sides when tooling allows rather than judged from memory, and read as the net on-screen result where a texture or tile paints over the base color; a ground warmer or cooler than the comp's is contradicted however faithfully the layout matches, and drift toward the rendition prior (warm cream on light grounds, blue-black slate on dark) is the direction to hunt. With no approved comp, TYPE and MATERIAL do not lapse: judge them against the contract's OWN-WORLD and the world's real materials, and treat faked physicality (CSS bevels, embossing, stamped-metal or chalk effects imitating a material the page never renders) as contradicted on its face; imitation material is the single most reliable mark of machine-made design. GROUND narrows rather than lapses: with no comp to sample, a color OWN-WORLD names is the target and the same warmer-or-cooler judgment applies; when OWN-WORLD names none, there is no GROUND authority, and the review says so in place of a verdict, because a target the reviewer invents turns the check into taste. A critique-reference comp on such a build is provocation, not spec: no element matrix, no adaptation citations, no asset obligations; its one contribution is what the image dared that the build did not, and dares worth adopting enter material_fixes as ordinary ordered fixes. An adaptation counts as intentional only when it cites the user answer, surface brief, accessibility need, or product truth that forced it; an uncited deviation is a defect. A missing signature element, a changed topology, or content added without approval fails fidelity and outranks every craft point in material_fixes. When MATERIAL is contradicted on the focal element, or contradiction is the page rather than the exception, stop ordering repairs: make the first material fix a rebuild directive naming the comp regions to re-derive and the assets to produce; a list of patches against a rejected page launders the rejection into an approval. A fix that requires producing an asset says so explicitly ("produce: as a raster asset"), never phrased as a style adjustment the parent will answer with CSS. The comp is the spec for composition, topology, element inventory, density, lettering character, and material; it is not a pixel spec for semantics, accessibility, or responsive reflow, and that allowance covers translation, never replacement. 3. **Ceiling.** Against the QUALITY BAR card: name the world's native devices the build left unused, frame, depth, lettering treatment, ornament density, motion. The card governs commitment and finish, never composition. 4. **Contract, promise by promise.** First verify FORM carries the seed key the concept roll printed; a contract with no seed key, or one the parent cannot corroborate, means the roll was skipped, a material fix ahead of any craft point. Then, for each of the five blocks: does the render keep the promise? Apply the memory test to the first viewport. -5. **Truth.** Demonstration data authored and labeled synthetic; no invented commercial claims; unanswered claims present as marked placeholders, not omissions. Every image-native region of the approved comp shipped as a real asset, not a gradient standing in for one, and every produced asset visibly present in the screenshots; an asset applied at near-zero opacity or buried behind other paint is a compliance token, not a shipped material. +5. **Truth.** Demonstration data authored and labeled synthetic; no invented commercial claims; unanswered claims present as marked placeholders, not omissions. Every raster region of the spec shipped as its plate (the spec names the file; the page references it; the region's diff row is not `missing`), not a gradient, an inline SVG, or a many-vertex `clip-path` standing in for it, and every produced asset visibly present in the screenshots; an asset applied at near-zero opacity or buried behind a wash is a compliance token, not a shipped material, and the detector's `buried-raster` and `organic-clip-path` findings in the packet are material fixes. 6. **Floor.** Read the craft floor's Refuse list and hold the screenshots against it: kickers and eyebrows, hard offset shadows outside a neobrutalist world, glyph icons, system display faces, gradient text, side stripes, and the rest. A banned element is a material fix even when it matches nothing in the comp: the builder loaded the same ban before writing it, and fidelity to a comp cannot authorize what the floor refuses. The parent's hook findings cover this mechanically where hooks run; this check exists because hookless harnesses reach you with none, and the last two live sessions shipped five kickers past a reviewer that never looked. Do not run a second detector pass; mechanical findings belong to the parent's hooks. diff --git a/skill/reference/new-work.md b/skill/reference/new-work.md index 7fbdd96a5..619d17f97 100644 --- a/skill/reference/new-work.md +++ b/skill/reference/new-work.md @@ -90,30 +90,51 @@ For `shape`, return the selected direction to [shape.md](shape.md) and stop befo ## 6. Build with full commitment -When an approved comp exists, the comp is king, and the build happens in phases. The comp is a spatial contract, not a mood board: only the user can downgrade its authority, in explicit words, and difficulty never infers a downgrade. Phase one is reproduction: rebuild the comp at its own breakpoint until a screenshot at the comp's width and height overlaps it near pixel-perfectly, materials, components, elevation, assets, and implied design language included. Exactly three concessions exist: fonts (the closest obtainable face), icons (exact match unless the user already chose an icon library), and genuine defects in the generated comp such as spelling errors. Everything else must match, and models systematically believe their HTML, CSS, and SVG recreation succeeded when it did not, so the overlap comparison is the authority, never your conviction: set the screenshot beside the freshly reopened comp image at identical dimensions after every region, never beside your memory of it, and when a region keeps losing that comparison, stop recreating it in code and produce it as a rendered asset composited into the page. The comp also outranks every written record of it: when the recorded brief or inventory commits to less than the comp shows, a softer texture, a sparser field, a sculpted plate reduced to flat CSS, correct the record upward to the comp; qualifiers like subtle, restrained, and low-contrast, and counts rounded down to a comfortable fraction, are how approved materials die between approval and build. A produced material must then survive to the screen: a texture buried under a nearly opaque color wash ships the wash, not the material, so judge every material by the screenshot beside the comp, never by the stylesheet. Every color the brief records gets that comparison by number, not by eye: sample the build screenshot's ground, dominant fields, and accents the same way each record was taken (an interior patch average where the record is an average, both end colors where the record is a gradient) and set each value against its recorded counterpart (sampled from the comp itself when the brief lacks one), and when a texture or tile paints over a base token, measure the net on-screen value, because the eye files a drifted color under the same color word and the number is what catches it. Judge the gap like a colorist, not a diff tool: a difference with a color name (warmer, grayer, darker than the record) is drift to fix, while a few digits of render and compression noise are the same color. Only when reproduction holds does phase two begin: static regions that should live become animated or interactive, reveals and motion are added, then responsiveness across the surface's devices. Where the comp does not cover the whole surface, continue building the remainder inside the comp's recorded world and design language; a component the comp never shows inherits the recorded system's corner language, line weights, and materials, and may not introduce container styles, border weights, or chrome the comp never uses. +Build the assigned direction, not a safer interpretation of it. The form supplies structure, reading order, component conventions, and native motion; the product supplies every fact. Commit every atom: nav, buttons, inputs, and links are rebuilt in the form's vocabulary, and a stock component inside a committed form is a lapse. Land the first build fully committed; the passes that follow exist to make the committed thing clear and effective, never to dilute it. In unattended work, the safe rendition is the known risk. -Build the assigned direction, not a safer interpretation of it. The form supplies structure, reading order, component conventions, and native motion; the product supplies every fact. Commit every atom: nav, buttons, inputs, and links are rebuilt in the form's vocabulary, and a stock component inside a committed form is a lapse. Land the first build fully committed; committing is the hard part, and the passes that follow exist to make the committed thing clear and effective, never to dilute it. In unattended work, the safe rendition is the known risk. +### Comp-led: the comp is a measured contract + +When an approved comp exists, it is a spatial contract, not a mood board: only the user can downgrade its authority, in explicit words. Models systematically believe their HTML, CSS, and SVG recreation of an image succeeded when it did not, so the build runs as a state machine on disk whose gates measure the screen against the comp instead of asking you to remember it. Start it once, and let it tell you what is next: + +`node {{scripts_path}}/build-phase.mjs start --direction --kind ` right after the direction choice (this is also the choice ping; the roll's output names the exact command), or `start --comp ` when a surface round already locked one. + +Then, in order, each closed by `node {{scripts_path}}/build-phase.mjs advance` (every script below lives under `{{scripts_path}}/` and runs with `node`; exit 2 means the gate failed and printed why; fix that and advance again; write nothing for a later phase while an earlier gate is open): + +0. **comps.** The comp round from [visualize.md](visualize.md): three compositional comps of the requested surface at its own viewport under `.impeccable/mocks/`, each with a prompt sidecar, put in front of the user; the chosen one's sidecar gets `"approved": true`. The gate counts them and reads the approval; a `start --comp` skips this phase because it already happened. +The comp-led path is a frontier-tier job: it asks the builder to hold a measured layout, place plates at their boxes, and act on numeric readings across a dozen attempts. Smaller or faster models produce a recognisable page and stall under the hero gate; if the model in hand is one of those, say so before the direction round and take the code-led path, or expect the run to end at the hero with its readings unmet. + +1. **spec.** Measure the comp: `comp-spec.mjs --comp --grid` writes a coordinate grid over the comp; open it, name every salient region by grid span in a regions file (text and control regions snap to the largest ink mass inside their span, so a headline named B1:E4 measures as the headline and not the column beside it; `snap: false` keeps the span, and an explicit `box` is taken as drawn) (kind `plate` / `image` / `texture` for anything painted: every illustration, photograph, figure, product object, and material texture; `text` / `control` / `chrome` for what code draws; every region carries a `note` saying what the comp shows there, which the plate prompt and the gate messages read), and run `comp-spec.mjs --comp --regions `. The spec carries each region's box, sampled palette, and medium; `comp-spec.mjs --print` is the build's reference from here on. Type is measured, not guessed: `font-match.mjs --measure ` reads the comp's cap height, width class, and weight off the pixels, and `font-match.mjs --rank --text "..."` takes its candidates from a fingerprint index of the Google Fonts catalog (the nearest faces to the crop's shape) plus any names you pass with `--candidates`, renders them at that cap height with the region's words, and ranks them by fingerprint distance (its `USE` line is the CSS; its proof sheet shows the comp over the top three); with no browser resolvable it records the catalog's nearest face and says the size is estimated, which is still the choice to build on. Do not install a browser to rank, and never write a `chosen` face into the spec by hand: the gate accepts only what font-match wrote. The spec gate refuses to close until the lead text region is measured and ranked. A region note that describes painted material (a diagram, drawing, photograph, texture) under a code kind is refused at the spec: reclassify it as a plate, or reword the note if code really draws it. The script refuses a regions file that leaves comp ink unnamed (callouts, a parts table, a notes block): what is never named can never be missing, so everything the comp shows gets a region. It also refuses a `text` / `control` / `chrome` region larger than a quarter of the comp: that is a column, not an element, and a column scored as one region hides the plates, tables, and notes inside it. Name each element inside it (`container: true` only when it truly is one undivided element). Anything drawn is a plate: an inline SVG past an icon's budget (a diagram, notation, leader lines with arrows, a "quick approximation" of the artwork) is refused at the hero; icon-sized SVG (under 64px, a few paths) is fine, and a chart the page draws from data at runtime is a chart, not an illustration. Callout lines and arrows that annotate a drawing belong to that drawing's plate, with only their labels set as text. A crop of the comp is never a plate (the plates gate refuses a file that is a resample of the comp region: the comp's grain, its neighbours' edges, and its resolution would ship as the artwork); the crop is the reference the plate is generated from. A plate region's box has to hold its whole artwork with a margin: the spec measures the artwork's contact with the box edges and refuses a box that cuts through it (`bleed: true` only when the page really crops it there), because a plate placed with `object-fit: cover` on such a box shows the artwork minus the side the box lost. Anything not in the spec does not exist on the page: no borders, rules, containers, or chrome the comp does not show. Only three concessions exist: fonts (the closest obtainable face), icon glyphs (close enough, exact if the user chose an icon library; this covers the pictogram only, never a control's chrome, so a chevron, an arrow, a dropdown's border and fill, a button's shape are the comp's), and genuine defects in the comp such as spelling errors. +2. **plates.** Every raster region ships as a plate: an illustration, photo, or figure regenerated at asset resolution from its comp crop, UI text removed, at its `plate` path (ink on flat ground is generated on a chroma key and keyed to alpha, so it sits on the page's own ground rather than a second paper); a texture (paper, cloth, grain) is a clean patch of the comp region mirror-tiled to size, generated only when no clean patch exists. `generate-image.mjs --plate ` does one region end to end and scores it against the crop; a harness-native image tool takes the crop (`comp-spec.mjs --crop `) as its input image and `comp-spec.mjs --plate-prompt ` as its prompt, then `embed-prompt.mjs`. With parallel subagents, spawn the shipped asset producer (`impeccable-asset-producer`; `impeccable_asset_producer` in codex; `/impeccable-asset-producer` in Cursor; on GitHub Copilot say "Use the impeccable-asset-producer agent") with the spec path and let it produce them all; without subagents, produce them here. A crop of the comp is a reference, never a shipping pixel. The gate checks every plate exists, is at least 1.5x the region's size, and reads as the region. Page code waits for this gate: a page written before its plates exist is a page that draws its material in CSS. A single-file deliverable changes nothing here: the plate is produced the same way and inlined as a data URI. `--force` exists for one case only, the user downgrading the comp's authority in words you quote in `--reason`; the script refuses every other reason. +3. **hero.** `build-phase.mjs scaffold` first: it writes the measured layout as CSS custom properties (`.impeccable/build/scaffold/layout.css`: `--r--x/y/w/h` in % of the comp, plus cap height, font-size, family, and weight where measured) and a reference page (`hero-reference.html`) with every region at its box and every plate placed. Bind the numbers to your own semantic structure, an element per region; the reference is a check on positions, never the page, and overlapping boxes are overlapping boxes. Then build only the first viewport, at the comp's own dimensions, the comp's words copied verbatim (the user approved that comp with those words; rewording is a stated decision after the hero passes, never a silent one inside it), every text region sized from its measured cap height and set in its ranked face, plates first: place every plate at its spec box (`object-fit: cover`, an ``, a background image, or an inlined data URI named for it) before any text or control, capture into `.impeccable/review/hero-repro.png`, run `build-phase.mjs record hero` once so you see the plate regions read as match before any text exists, then lay the semantic layer over the plates from the spec's palette and boxes and advance. The gate first refuses while any plate is unreferenced by the source, then runs `comp-diff.mjs`, writes `.impeccable/review/diff/hero/` (side-by-side, heatmap, one paired crop per region, `report.json`), and passes at 72% overall with no hard veto outstanding (a missing region, a contradicted plate or text block, an SVG illustration, a clipped plate, invented ink block at any score); above the bar, the numeric readings become advisories printed with the pass, and the polish pass before responsive is where they get fixed: the gate also reads each text region's cap height, line count, weight, ink colour, and position against the comp, each chrome strip's height off its rule, and the frame for ink where the comp is calm (a kicker, an extra nav item, a divider), and says each miss as a number ("cap height 78px in the build, 103px in the comp"); those numbers are the edit. When it fails, open the region crops it lists, in order, before editing: a region scored `missing` needs its material, `contradicted` needs its structure re-derived from the spec box, `drift` is where size and spacing edits belong; the gate refuses a third attempt that only nudges values on the same region. This is where the run's ambition is won or lost, and a retry here costs minutes where a rebuild verdict at the finish costs the run. +4. **sections.** Build the rest of the surface inside the spec's system: the same corner language, line weights, and palette, and nothing the comp never shows. Where the comp does not cover a region, it inherits the recorded system. +5. **motion.** The signature interaction, reveals, and motion, orchestrated once rather than scattered. +6. **responsive.** The other viewports, and the first viewport at common desktop widths (1280 to 1600), not only at the comp's exact size: fluid columns, no fixed-pixel grid that wraps a hundred pixels narrower. Capture `desktop.png` (1440 wide, full page) and `mobile.png` (390 wide) into `.impeccable/review/`; the gate diffs the desktop capture against the comp and refuses a first viewport that only held at the comp's width. A comp'd surface that is mobile-first was comped portrait; the plates were produced for that frame. + +### Code-led + +No comp and no apology for it: the ambition lives in the direction contract's FIRST VIEWPORT block and the named signature interaction, and the finish reviewer audits those promises in behavior. The chosen decision comp rides to the finish review as the critique reference. + +### Both paths - **The first viewport is a thesis, not a header.** Demonstrate the mechanism immediately, at the scale the form has in life; do not trap the concept inside a standard hero or card shell. The memory test: if someone left after one viewport, what would they describe an hour later? If the honest answer is a mood, the concept has not committed yet. -- **Prove the hero before building past it.** When an approved comp exists, render the first viewport, capture it at the comp's own pixel dimensions, and set it beside the comp's first viewport before any later section: the hero carries the run's ambition, and every following section inherits its shortfall. Save that capture as `.impeccable/review/hero-repro.png` (create the directory); the finish reviewer verifies it exists, so a skipped checkpoint is a visible checkpoint. Judge scale and density as quantities, a field at a tenth of the comp's coverage or type at half its weight is a different design, and a five-minute retry here is what a rebuild verdict at the finish costs when this check is skipped. -- **Prove, don't claim.** Show the subject doing its job: the interface at work, the mechanism dramatized, specifics a competitor could not copy-paste. Sections that restate a claim in different words add length, not substance. Demonstration data is design material: author it at full fidelity and label it synthetic; claims stay uninventable. -- **Author the assets; never substitute chrome.** Great surfaces live on carefully made content: names, entries, copy, covers, thumbnails, textures. In greenfield work every blank the ask round left open is yours to author at production fidelity; content is authorable, claims are labelable, no section is omittable. An unanswered commercial claim ships as a clearly marked placeholder on the user's replacement list. When image generation exists, producing the design's imagery is part of building, at the scale the composition needs: a viewport that wants atmosphere gets a full-bleed layered scene, and a library of small centered subjects standardized for tidiness forecloses it. Gradients, glass, and generic icon tiles where an authored asset belongs are the gap wearing chrome; icons drawn in the world's own grammar are the remedy, not the target. -- **Build the form's web leverage.** When the chosen world names a technique (canvas, WebGL, view transitions, generative motion), build the technique itself, not a static imitation of it; the graceful fallback serves constrained clients, it is not the default experience. +- **Prove, don't claim.** Show the subject doing its job: the interface at work, the mechanism dramatized, specifics a competitor could not copy-paste. Demonstration data is design material: author it at full fidelity and label it synthetic; claims stay uninventable. +- **Author the assets; never substitute chrome.** Great surfaces live on carefully made content: names, entries, copy, covers, thumbnails, textures. In greenfield work every blank the ask round left open is yours to author at production fidelity; content is authorable, claims are labelable, no section is omittable. Gradients, glass, generic icon tiles, and many-vertex `clip-path` polygons where an authored asset belongs are the gap wearing chrome; the detector flags the last two. +- **Build the form's web leverage.** When the chosen world names a technique (canvas, WebGL, view transitions, generative motion), build the technique itself, not a static imitation of it. - **Pace the scroll like a studio.** Vary density, scale, image, motion, and quiet inside one grammar; a dense passage earns a quiet one, and the page ends anchored by a real close. One spacing rhythm throughout, with more space above a heading than below it. - **Use real, verified imagery when the brief implies it.** Search for the subject's physical object rather than the category; one decisive photo beats five mediocre ones. Verify stock URLs resolve. -- **Author motion as material.** The form has native motion, what it does in life between states; give the page that motion once, orchestrated, rather than scattered hover effects. Bound expensive effects and keep content visible by default. +- **Author motion as material.** Give the page the form's native motion once, orchestrated, rather than scattered hover effects. Bound expensive effects and keep content visible by default. Preserve semantics, accessibility, performance, responsiveness, project conventions, and working behavior. ## 7. Inspect and finish -Inspect the surface's target sizes in one batched screenshot round: desktop and mobile on the web; on a native platform (`ios` / `android` / `adaptive`), the shipped device classes per OS, captured from the simulator or emulator the way the platform reference's Verifying the build section describes. When the harness reports the user's actual viewport (an in-app browser's size, a named resolution), add that width to the set: the width that breaks is the one the user sees first. Critique the render against the user's request and the direction contract, fix material gaps, and confirm with one final round; two rounds is the ceiling, and fixes batch between them rather than earning per-tweak screenshots. When an approved comp exists, the critique is a side-by-side: view the comp region and the build region together, the hero and each section as its own crop at legible scale, never one full-page thumbnail, which hides exactly the failures that matter, crude controls, wrong lettering character, flattened material, behind a superficially similar section order. On a Persuade surface, verify the mode did its job: a first-time visitor should know what this is, why it matters, and what to do within seconds, in the form's own vocabulary. +Inspect the surface's target sizes in one batched screenshot round: desktop and mobile on the web; on a native platform (`ios` / `android` / `adaptive`), the shipped device classes per OS, captured from the simulator or emulator the way the platform reference's Verifying the build section describes. When the harness reports the user's actual viewport (an in-app browser's size, a named resolution), add that width to the set: the width that breaks is the one the user sees first. Critique the render against the user's request and the direction contract, fix material gaps, and confirm with one final round; two rounds is the ceiling, and fixes batch between them rather than earning per-tweak screenshots. On a comp-led build, run `node {{scripts_path}}/comp-diff.mjs --comp --build .impeccable/review/desktop.png --spec .impeccable/build/spec.json --out-dir .impeccable/review/diff/final` and read its region rows and paired crops as the critique: the side-by-side is the view the build thread never has on its own, and a region it scores missing or contradicted is a fix whatever the page looks like from memory. Never judge fidelity from one full-page thumbnail; it hides exactly the failures that matter. On a Persuade surface, verify the mode did its job: a first-time visitor should know what this is, why it matters, and what to do within seconds, in the form's own vocabulary. A capture is evidence only when it is valid, and you validate before you send. Settle or disable entrance motion first: an element hidden by animation timing reads as a missing element and gets fixed into a regression. Capture full-page shots from the document top. Capture the comp comparison at the comp's own pixel dimensions. Then open every file once and confirm it shows what its name claims: no black or blank regions, no wrong section behind a right filename, no half-loaded state. A malformed capture sent onward costs the whole round; the reviewer answers it with `disposition: recapture` and nothing it reviewed binds. After the second inspection round the build thread's polishing is over: no further defect hunts, micro-edit scripts, or rebuilds here; whatever remains ships through the handoffs, where a fresh context does the finding better and cheaper. On the web, where this harness runs no design hook, run `node {{scripts_path}}/detect.mjs --json` on the changed targets once here, fix what is mechanical, and pass the remaining findings to the reviewer; a hookless web build that skips this ships every tell the hook exists to catch. A native platform skips the detector entirely: it reads HTML and CSS and has no verdict on native code, so the reviewer's floor check is the only slop gate and the input packet says so. Capture the screenshots into `.impeccable/review/`, one file per captured viewport (on the web, `desktop.png` and `mobile.png`, plus `user-.png` whenever the user's viewport joined the inspected set; on native, one per device class, such as `phone.png` and `tablet.png`, suffixed per OS on adaptive), creating that directory when the harness does not; the paths you pass the reviewer are its spec, every viewport you inspected is named required in the packet, and that directory is where it looks when a passed path is missing. -Then spawn the shipped finish reviewer, `impeccable-finish-reviewer` (`impeccable_finish_reviewer` in codex; `/impeccable-finish-reviewer` in Cursor; on GitHub Copilot say "Use the impeccable-finish-reviewer agent"), with the original request, confirmed answers, the artifact path, the screenshot paths, the direction contract, existing hook findings, the QUALITY BAR card and approved comp paths (a code-led build has no approved comp; the chosen decision comp rides in that slot as the critique reference, named as such), the craft-floor reference path, and on a native platform the platform reference path(s), [ios.md](ios.md) / [android.md](android.md), both on adaptive, plus one line saying no detector ran, so the reviewer judges in the platform's conventions rather than the web's. The reviewer has no browser; screenshots you fail to pass are checks it cannot run. Never read the shipped agents' definition files before spawning; the harness loads them at spawn, and you owe only the input packet. Wait on any agent with one long timeout rather than a loop of short polls, and spend the wait on the next independent step. Verify the return carries the five contract sections (a recapture return carries one, its recapture list); on an empty or thrashed return, respawn once with the same inputs. This review never runs inside the build thread and never inherits it: spawn the reviewer fresh, with no forked conversation history (`fork_turns: 0` in codex); a reviewer that inherits your transcript inherits your framing, your optimism, and your abstractions, and everything it needs travels in the inputs above. Only a harness with no subagent capability at all substitutes a fresh in-thread pass after stepping fully out of the build context, run from [degraded/finish-reviewer.md](degraded/finish-reviewer.md), and a substituted or failed-and-replaced review is disclosed in one line at finish, never silently. +Then spawn the shipped finish reviewer, `impeccable-finish-reviewer` (`impeccable_finish_reviewer` in codex; `/impeccable-finish-reviewer` in Cursor; on GitHub Copilot say "Use the impeccable-finish-reviewer agent"), with the original request, confirmed answers, the artifact path, the screenshot paths, the direction contract, existing hook findings, the QUALITY BAR card and approved comp paths (a code-led build has no approved comp; the chosen decision comp rides in that slot as the critique reference, named as such), on a comp-led build the build state (`.impeccable/build/state.json`), the spec, and the diff directories (`.impeccable/review/diff/hero/` and `.impeccable/review/diff/final/`, whose side-by-side, heatmap, region pairs, and `report.json` are the fidelity evidence), the craft-floor reference path, and on a native platform the platform reference path(s), [ios.md](ios.md) / [android.md](android.md), both on adaptive, plus one line saying no detector ran, so the reviewer judges in the platform's conventions rather than the web's. The reviewer has no browser; screenshots you fail to pass are checks it cannot run. Never read the shipped agents' definition files before spawning; the harness loads them at spawn, and you owe only the input packet. Wait on any agent with one long timeout rather than a loop of short polls, and spend the wait on the next independent step. Verify the return carries the five contract sections (a recapture return carries one, its recapture list); on an empty or thrashed return, respawn once with the same inputs. This review never runs inside the build thread and never inherits it: spawn the reviewer fresh, with no forked conversation history (`fork_turns: 0` in codex); a reviewer that inherits your transcript inherits your framing, your optimism, and your abstractions, and everything it needs travels in the inputs above. Only a harness with no subagent capability at all substitutes a fresh in-thread pass after stepping fully out of the build context, run from [degraded/finish-reviewer.md](degraded/finish-reviewer.md), and a substituted or failed-and-replaced review is disclosed in one line at finish, never silently. Act on the disposition word; there are exactly four. **recapture**: the evidence failed, not the build. Recapture what the return names under the capture-validity rules, then run a full review over the new evidence. A review conducted on invalid evidence binds nothing, and a verdict pass may never follow it. **rebuild**: fidelity failed wholesale, not in patches. Skip the fix batch and execute the rebuild immediately: re-derive the named regions, produce the named assets, and send the result back for a fresh full review, never a verdict pass; a rebuild replaces regions wholesale, so the whole matrix runs again over the recaptures. Tell the user what is happening rather than asking permission to fix a failure. Consult the user only on a second rebuild directive, both verdicts on the table, or when rebuilding would discard content the user approved. **ship**: nothing is owed; report the verdict at its scope and continue to the documenter. **fix**: apply the material fixes in one batch, rebuild once, and recapture the same viewports over the same files. A recapture measures positions, loading, and overflow; it cannot measure whether a fix reached the quality the finding named, so send the recaptured screenshots back to the same reviewer for a verdict scoring every material fix resolved, partial, or unresolved (through the harness's agent continuation; without one, run the scoring fresh from [degraded/finish-reviewer.md](degraded/finish-reviewer.md)'s Verdict Pass). Fixes scored partial or unresolved get another batch, recapture, and verdict. Two rounds is the budget an unattended run ends at; an attended session's ceiling belongs to the user, so when the second verdict still lists open items, put the table in front of them and let them choose between shipping as it stands and funding another round. Whoever decides, stop the moment a round resolves nothing, and the reviewer's findings are the only list you work from, never your own re-opened hunt. Do not run a second detector. diff --git a/skill/reference/visualize.md b/skill/reference/visualize.md index fa3c2eead..2217f4538 100644 --- a/skill/reference/visualize.md +++ b/skill/reference/visualize.md @@ -6,6 +6,8 @@ A probe tests composition, narrative, hierarchy, density, focal moment, signatur ## Generate three compositional options +The comp round runs inside the build's phase state: `build-phase.mjs start --direction --kind <...>` has already run (the roll's output names the command) and its `comps` phase is open before the first comp is generated; a comp rendered before that sits outside the state, and a session resumed from that point has no phases to follow. `generate-image.mjs` refuses to write under `.impeccable/mocks/` until start has run; a harness-native image tool is bound by the same order. + Render three distinct high-fidelity north-star comps of the requested surface, saved under `.impeccable/mocks/` so they survive the session. Comp at the surface's own viewport: portrait at device size for a native app or mobile-first surface, desktop landscape otherwise; a phone screen comped landscape misstates the composition before anything is built against it. Comps are the build thread's own work, never delegated: the thread that writes the prompts holds the direction's full context and has seen every comp when the build starts. Open every image by its workspace-relative path; sandboxed viewers reject absolute paths, and everything under the project root has a relative one. Base the comps on real content and the surface concepts already developed with the user. On an established world, anchor every comp on the real identity: capture a screenshot of a representative existing page and pass it as a reference image (the harness image tool's input image, or `generate-image.mjs --ref`); the prompt leads with the new surface's structure while the reference carries palette, type, and component character, because DESIGN.md words alone drift where a pixel reference does not. Name what the reference contributes and what it must not: chrome, palette, type, and component character carry over; the reference page's own content does not, and a banner, hero, or card lifted verbatim is the reference leaking, not fidelity. Three is the number: one comp invites rubber-stamping; the spread between three surfaces the composition worth building. The chosen card's decision comp is the first of the three: it already renders this direction at full fidelity under this discipline, so generate two more that vary what the first held fixed, and send all three to the approval point together. Only a round arriving with no decision comp (a degraded roll, an identity-mode page, a direction pinned without the decision round) renders all three here. - A comp is a designed surface, not a picture of the subject. Lead the prompt with the surface's own structure: the regions this design has, named in order with their scale relationships; a page with no navigation says so instead of inventing one, and an unconventional surface states its unconventional skeleton. A prompt that leads with atmosphere gets a vignette back: the model paints the fish market instead of the fish market's website. Self-check every render: if it could hang as a poster, or reads as a photograph with some text on it, it is not a comp; regenerate with the layout scaffold stated more literally. @@ -27,30 +29,18 @@ Do not begin code until the user approves a direction or explicitly delegates th This approval point has no substitute and no skip condition. When the structured question tool errors, fall back to the decision page; only after both fail may you treat the choice as delegated, and a delegated pick is recorded exactly as an approval is and disclosed in your first reply, not your last. The finish reviewer treats comp-round comps with no recorded approval as a material finding; decision comps under `.impeccable/mocks/decision/` are the direction round's hand, not comp-round output, and imply no approval on their own. -After approval, record the choice where tools can find it: the approved comp's path goes in the surface brief, and its `.json` prompt sidecar gains `"approved": true` (every comp generated through `generate-image.mjs` has one; create it if a native tool didn't). The sidecar travels with the mocks folder, so the approval survives sessions and machines that never see the brief. Summarize the composition and the parts of the comp that must not be literalized, return to new-work.md, record the direction contract from the approved concept, and build. +After approval, record the choice where tools can find it: the approved comp's path goes in the surface brief, and its `.json` prompt sidecar gains `"approved": true` (every comp generated through `generate-image.mjs` has one; create it if a native tool didn't). The sidecar travels with the mocks folder, so the approval survives sessions and machines that never see the brief, and it is what `build-phase.mjs advance` reads to close the comps phase. Summarize the composition and the parts of the comp that must not be literalized, return to new-work.md, record the direction contract from the approved concept, and build. -## Inventory implementation fidelity +## After approval: the comp becomes a spec -Before building, read the approved comp as a design system and record it in the brief: component grammar, corner language, line weights, elevation treatment, and the type ramp. Everything the comp does not show gets built from this record; without it the fallback is the model's stock kit of square boxes, 1px grids, bento cells, and hard shadows. Then inventory the comp's major visible ingredients in writing (a short table in the surface brief or working notes; the finish reviewer audits shipped assets against it) and choose an implementation medium for each: semantic HTML/CSS/SVG, existing project asset, generated raster, sourced raster, icon library, canvas/WebGL, or accepted omission. The same inventory names the comp's compositional commitments: navigation items and icons, headline levels and their scale relationship, signature geometry such as seams, masks, and overlaps, and each section's arrangement and density. The primary action gets its own row with its own medium: when the comp dissolves, stamps, erodes, or otherwise physically works the main CTA, that treatment is signature material on the page's most important element, and shrinking it to a border trick is the compliance-token version of commitment. An element never written down is the element the build silently drops; the direction contract's 150 words cannot carry this list, so it lives here. +The approved comp is a north star for translation into semantic, responsive, accessible code, never a license to recompose: keeping the palette and mood while redrawing the topology is a second art direction. Do not rasterize core UI text or controls. Do not substitute a different visual driver after approval without asking. -The record is sampled, never estimated: read the comp's page **ground**, each dominant field, and each accent's actual hex from its pixels (ImageMagick, Python with PIL, any pixel-reading tool on the machine) and write the values into the same record. Take a flat field from any interior pixel, a textured or grainy one as the average of an interior patch (crop a swatch, scale it to one pixel), and a gradient as its two end colors; never sample an edge, where antialiasing blends neighbors into colors the design never chose. An adjective is a direction, not a record: cream covers everything from near-white to beige, charcoal a third of the value scale, and wherever no number pins a color, the rendition prior picks the spot. Sampled values supersede the palette chips on the decision and composition cards: those were authored before this comp existed, and a chip that disagrees with the comp's pixels is a draft the approval retired. +What the comp shows is measured, not remembered. new-work.md section 6 runs the build as phases (`build-phase.mjs`): the spec phase turns the comp into region boxes with sampled palettes (`comp-spec.mjs`), and the medium of every region follows from what the pixels are, never from what feels buildable: a figure, a product object, machinery, any illustration with perspective, shading, or drawing skill in it, and any texture by name (woven cloth, paper grain, fabric, leather, brushed metal) is a `plate` / `image` / `texture` region and ships as a raster; text, controls, chrome, diagrams with countable elements, flat shape systems, and anything that must move, scale, or respond are semantic. Writing "CSS" for a sculpted panel's finish, or a many-vertex `clip-path` for a torn edge, is the quiet deletion of the approved design; the detector's organic-clip-path and buried-raster rules and the hero gate's region scores catch it. Dropping an image-native region is a scope decision the user makes at the approval point, never a silent flattening after it. Generated imagery is a material, not a claim: evidence rules bind assertions, specs, testimonials, and photographs presented as real, never render fidelity. -The medium column is where an approved design most often dies, so it obeys a gate: the medium is decided by what the comp region shows, never by what feels buildable in the current stack. A human figure, a product object, machinery, or any material with lighting and depth is raster whatever the stack; so is any texture by name alone: woven cloth, paper grain, fabric, leather, brushed metal need no depth argument, because a CSS gradient is not a texture medium and "layered CSS textures" is not a medium at all. Writing "silhouette" for a photographic figure, or "CSS" for a sculpted panel's finish, is not a medium choice; it is the quiet deletion of the approved design, and it is how a comp full of physical material becomes a flat page with the same section order. Style does not move this boundary: a comp region with perspective, shading, figure drawing, or dense mechanical detail is illustration however line-drawn it looks, and no build session can author illustration as vectors, so it regenerates as raster like any photograph. Authored SVG covers what a session can specify exactly (diagrams with countable elements, controls, flat shape systems) and ends where drawing skill begins; an instruction-manual world keeps its illustrations as line-art illustrations, not diagrams. Produce such regions by regenerating them cleanly, with the approved comp and its embedded prompt as the reference for a fresh render at asset resolution; never crop pixels out of the comp itself, whose effective resolution sits far below asset grade. Dropping an image-native region is a scope decision the user makes at the approval point, never a silent flattening after it. Generated imagery is a material, not a claim: evidence rules bind assertions, specs, testimonials, and photographs presented as real, never render fidelity; "no photography on hand" forbids fake proof, not an illustrated hero. +## Plates and provenance -The gate runs both ways: precise geometry, hard-edged shape systems, diagrams, expressive motion, shaders, and anything interactive are vector and GPU territory (SVG, canvas, WebGL), where a raster flattens what should move, scale, and respond. A field or texture built from many small elements carries a quantity commitment either way: write down its approximate density and coverage ("thousands of glyphs over two-thirds of the fold, dense at the top fading into the path"), because a field rebuilt at a tenth of its density passes every checklist and still is not the design. TYPE rows carry the same discipline: name the face's compression class, and render one headline word against the comp before building on it; a visibly wider or lighter silhouette means the face is wrong, and every section built on it inherits the miss. Raster is for what the world paints; code is for what the world draws, animates, or reacts with, and choosing code there is ambition, not economy. Every `produce` entry is produced before the build ships, through the asset producer or in the current thread; an inventory with unproduced entries is an unfinished build, and this gate is where imagery-free pages come from when it is skipped. - -Pay special attention to the dominant composition, signature use, image-native content, second-fold system, and any interaction the still image only implies. - -The comp is a north star, not something to trace, and know what that allows: translation into semantic, responsive, accessible code, never recomposition. Keeping the palette and mood while redrawing the topology is a second art direction, not an adaptation. Do not rasterize core UI text or controls. Do not substitute a different visual driver after approval without asking. - -## Produce only the assets the build needs - -Generation context is part of the asset: a build composed by a thread that never saw the prompts places assets it does not understand. Prefer generating build-critical imagery in the build thread when the budget allows; when a subagent produces assets instead, every asset carries its prompt, and the builder reads those prompts before composing. The carrier is uniform across harnesses: after generating any image with any tool, native or `generate-image.mjs` (which does it automatically), run `node {{scripts_path}}/embed-prompt.mjs --prompt ""` with the exact string the generation tool received, pasted whole, so the intent lives inside the file and survives copies between machines and harnesses; a summary reconstructed from memory records an asset that was never made. `--read` recovers the prompt from any impeccable-generated image, and `--scan ` lists every raster in a directory still missing one. The embedded prompt plus the asset's row in the written inventory is the raster's **provenance**, and every raster the artifact references carries it; a sourced, stock, or pre-existing raster with no generation prompt embeds its origin instead. - -Provenance is owed for the run, not the build phase: a raster created or replaced later, in a fix batch or a reviewer's rebuild, is produced under this same section, prompt embedded and inventory row added, because the inventory is how the next thread knows what ships. A raster a fix abandons or supersedes is deleted from the assets directory in the same batch; an unreferenced raster with no record is a provenance leak, not a spare. - -When the harness runs subagents, spawn the shipped asset producer every time, even when the inventory's produce bucket looks empty: its manifest is the independent second opinion on your media, and the runs that skipped the spawn are the runs whose cotton became CSS. An honestly empty manifest costs one cheap spawn; a wrongly empty produce bucket costs the build its materials. Use `impeccable-asset-producer` (`impeccable_asset_producer` in codex; `/impeccable-asset-producer` in Cursor; on GitHub Copilot say "Use the impeccable-asset-producer agent"): give it the approved comp, output paths, required dimensions and formats, transparency needs, crop notes, and what must remain semantic code. Without subagents, produce the minimum required assets in the current thread by the book: load [degraded/asset-producer.md](degraded/asset-producer.md) and follow it inline, with whatever generation exists. +Every raster region's plate is produced in the plates phase, before any page code, by the shipped asset producer or in the current thread (`generate-image.mjs --plate `, or the harness image tool with the crop as input and the spec's plate prompt). Generation context is part of the asset: after generating any image with any tool, run `node {{scripts_path}}/embed-prompt.mjs --prompt ""` with the exact string the tool received (`generate-image.mjs` does this itself), so the intent lives inside the file; `--read` recovers it, `--scan ` lists rasters still missing one. The embedded prompt plus the region's row in the spec is the raster's **provenance**, and every raster the artifact references carries it; a sourced, stock, or pre-existing raster embeds its origin instead. A raster created or replaced later, in a fix batch or a reviewer's rebuild, is produced the same way; a raster a fix abandons is deleted in the same batch. Convert images with a converter context.mjs reported at boot (the IMAGE_TOOLS line); probe only when it reported none, at most once per session, never per image. -Return to [new-work.md](new-work.md) for the direction contract, implementation, and the finishing pass. +Return to [new-work.md](new-work.md) for the direction contract, the phased build, and the finishing pass. diff --git a/skill/scripts/build-phase.mjs b/skill/scripts/build-phase.mjs new file mode 100644 index 000000000..6f3a9bd9d --- /dev/null +++ b/skill/scripts/build-phase.mjs @@ -0,0 +1,1022 @@ +#!/usr/bin/env node +/** + * build-phase: the comp-led build as a state machine on disk, so the phases + * new-work.md names are gated by scripts instead of remembered by the model. + * + * State lives at .impeccable/build/state.json. Phases, in order: + * + * comps the comp round: three comps of the chosen direction under + * .impeccable/mocks/ with prompt sidecars, one approved by the + * user (sidecar "approved": true). Skipped when start names an + * approved --comp (a surface round already locked one). + * spec the approved comp is measured (comp-spec.mjs wrote spec.json) + * plates every raster region in the spec has its plate on disk + * hero the first viewport is reproduced: comp-diff of hero-repro.png + * against the comp clears the gate + * sections the rest of the surface is built inside the spec's system + * motion interaction, reveals, motion + * responsive the other viewports + * review the finish reviewer ran; disposition recorded + * + * node build-phase.mjs start --comp [--breakpoint 1440x900] [--artifact index.html] + * node build-phase.mjs start --direction # no comp yet: opens the comps phase first + * node build-phase.mjs status # human-readable, plus NEXT line + * node build-phase.mjs status --json + * node build-phase.mjs advance # try to close the current phase; runs its gate + * node build-phase.mjs advance --force --reason "" # skip a gate; recorded, never silent + * node build-phase.mjs record hero --build .impeccable/review/hero-repro.png # run the hero gate explicitly + * node build-phase.mjs note "" # append a note to the current phase + * node build-phase.mjs finish --disposition ship|fix|rebuild|recapture + * + * Gates: + * comps -> >= 3 comp rasters (png/webp/jpg) directly under + * .impeccable/mocks/ (decision/ excluded), each with a .json + * sidecar, and exactly one sidecar carrying "approved": true; + * closing records that file as the state's comp. + * spec -> spec.json exists and has >= 1 region + * plates -> every region with medium raster has its plate file, decodable, + * at least 1.5x the comp region's pixel width (textures + * exempt), and reads as the region against the masked comp + * crop: structure >= PLATE_STRUCTURE_MIN and comp-diff overall + * >= PLATE_MIN (textures: palette + grain only). Structure is + * the floor because it is what a wrong-but-busy plate cannot + * fake: noise, a mirror, a mosaic, another region all keep + * the palette and the energy and lose structure. A missing + * or thin plate names itself. + * hero -> every plate is referenced by a source file (the artifact + * named at start, else a bounded walk of the project), and + * .impeccable/review/hero-repro.png exists and comp-diff overall + * >= HERO_MIN (default 0.72) with no region `missing`. The + * score, the report path, and the attempt count are recorded. + * responsive -> .impeccable/review/desktop.png and mobile.png exist, and + * the desktop capture still scores >= RESPONSIVE_MIN against + * the comp with no region missing: a first viewport that only + * holds at the comp's exact width is not built. + * sections / motion -> no mechanical gate; advancing records the moment, + * and the finish reviewer reads the timeline. + * + * Exit codes: 0 ok / advanced, 2 gate failed (state unchanged, reasons + * printed), 1 usage. + * + * Nothing here needs a browser. Screenshots come from the harness; this + * script only measures them. + */ +import fs from 'node:fs'; +import path from 'node:path'; +import { spawnSync } from 'node:child_process'; +import { fileURLToPath } from 'node:url'; +import { createRequire } from 'node:module'; +import { decodePng, loadRaster } from './lib/png.mjs'; +const require = createRequire(import.meta.url); +import { crop, createImage, blit, resize } from './lib/raster.mjs'; +import { structureScore } from './lib/image-metrics.mjs'; +import { compare, verdictFor, alignBuild, bestShift } from './comp-diff.mjs'; +import { textRegionCheck, chromeStripCheck, inventedInk, plateClipCheck, svgIllustrations } from './lib/hero-checks.mjs'; +import { SPEC_PATH, BUILD_DIR, loadSpec, plateReference } from './comp-spec.mjs'; +import { choiceStamped } from './font-match.mjs'; + +const HERE = path.dirname(fileURLToPath(import.meta.url)); +export const STATE_PATH = path.join(BUILD_DIR, 'state.json'); +export const PHASES = ['comps', 'spec', 'plates', 'hero', 'sections', 'motion', 'responsive', 'review']; +export const MOCKS_DIR = path.join('.impeccable', 'mocks'); +export const HERO_MIN = 0.72; +export const RESPONSIVE_MIN = 0.65; +export const PLATE_MIN = 0.4; +export const PLATE_STRUCTURE_MIN = 0.4; +export const HERO_REPRO = path.join('.impeccable', 'review', 'hero-repro.png'); + +function arg(name, fallback = null) { + const i = process.argv.indexOf(`--${name}`); + if (i === -1) return fallback; + const v = process.argv[i + 1]; + return v && !v.startsWith('--') ? v : fallback; +} +const flag = (name) => process.argv.includes(`--${name}`); +const now = () => new Date().toISOString(); + +/** The recorded build path (config.local.json over config.json), or null. */ +export function readBuildPath(cwd = process.cwd()) { + let value = null; + for (const name of ['config.json', 'config.local.json']) { + try { + const raw = JSON.parse(fs.readFileSync(path.join(cwd, '.impeccable', name), 'utf8')); + if (raw?.buildPath === 'comp' || raw?.buildPath === 'code') value = raw.buildPath; + } catch { /* absent */ } + } + return value; +} + +/** + * Whether a direction was dealt and the build never started, or started and + * stopped before the hero gate: the condition context.mjs and detect.mjs + * report as COMP_ROUND_OPEN when page code exists. Returns null when the + * build path is code-led (no round owed) or nothing is pending. + */ +export function compRoundOpen(cwd = process.cwd()) { + const buildPath = readBuildPath(cwd); + if (buildPath === 'code') return null; + const pending = path.join(cwd, BUILD_DIR, 'pending.json'); + const statePath = path.join(cwd, STATE_PATH); + if (fs.existsSync(pending) && !fs.existsSync(statePath)) return { reason: 'a direction was chosen (concept-seed rolled) but build-phase.mjs start never ran', pending }; + if (fs.existsSync(statePath)) { + try { + const st = JSON.parse(fs.readFileSync(statePath, 'utf8')); + const idx = PHASES.indexOf(st.phase); + if (idx !== -1 && idx <= PHASES.indexOf('hero') && st.phases?.comps?.status !== 'skipped' && st.phases?.comps?.status !== 'closed') return { reason: `build-phase is at ${st.phase}; the comps phase never closed`, state: statePath }; + if (idx !== -1 && idx <= PHASES.indexOf('hero')) return { reason: `build-phase is at ${st.phase}; the hero gate has not passed`, state: statePath }; + } catch { /* unreadable: say nothing */ } + } + return null; +} + +export function loadState(statePath = STATE_PATH) { + if (!fs.existsSync(statePath)) return null; + return JSON.parse(fs.readFileSync(statePath, 'utf8')); +} + +export function saveState(state, statePath = STATE_PATH) { + fs.mkdirSync(path.dirname(statePath), { recursive: true }); + fs.writeFileSync(statePath, JSON.stringify(state, null, 2)); +} + +export function newState({ comp = null, breakpoint = null, artifact = null, direction = null }) { + const first = comp ? 'spec' : 'comps'; + const phases = Object.fromEntries(PHASES.map((p) => [p, { status: p === first ? 'open' : 'pending', openedAt: p === first ? now() : null, closedAt: null, attempts: 0, notes: [], gate: null, forced: null }])); + if (comp) { phases.comps.status = 'skipped'; phases.comps.notes.push({ at: now(), text: 'started with an approved comp; the comp round happened before this state (surface round or manual)' }); } + return { + tool: 'build-phase', + version: 2, + startedAt: now(), + comp, + direction, + breakpoint, + artifact, + phase: first, + phases, + finish: null, + }; +} + +// ---- gates ----------------------------------------------------------------- + +/** Comp rasters directly under the mocks dir, with their sidecars. */ +export function listComps(mocksDir = MOCKS_DIR) { + if (!fs.existsSync(mocksDir)) return []; + const out = []; + for (const name of fs.readdirSync(mocksDir)) { + if (!/\.(png|webp|jpe?g)$/i.test(name)) continue; + const file = path.join(mocksDir, name); + if (!fs.statSync(file).isFile()) continue; + const sidecarPath = `${file}.json`; + let sidecar = null; + if (fs.existsSync(sidecarPath)) { try { sidecar = JSON.parse(fs.readFileSync(sidecarPath, 'utf8')); } catch { sidecar = null; } } + out.push({ file, sidecarPath, sidecar, approved: !!(sidecar && sidecar.approved === true) }); + } + return out; +} + +export function gateComps(state, { mocksDir = MOCKS_DIR } = {}) { + const comps = listComps(mocksDir); + const reasons = []; + if (comps.length < 3) reasons.push(`${comps.length} comp${comps.length === 1 ? '' : 's'} under ${mocksDir}; the comp round puts three compositional options of the chosen direction in front of the user (reference/visualize.md). Generate the missing ones (harness image tool or generate-image.mjs), each with a .json sidecar holding its prompt.`); + const noSidecar = comps.filter((c) => !c.sidecar); + if (noSidecar.length) reasons.push(`no prompt sidecar for: ${noSidecar.map((c) => path.basename(c.file)).join(', ')} (write .json with { "prompt": "..." }; generate-image.mjs does this itself)`); + const approved = comps.filter((c) => c.approved); + if (approved.length === 0) reasons.push('no comp is approved: put the three comps in front of the user (decision page via serve-question.mjs, or the structured question tool), then set "approved": true in the chosen comp\'s sidecar. A delegated pick is recorded the same way and disclosed.'); + if (approved.length > 1) reasons.push(`${approved.length} comps carry "approved": true; exactly one is the approved comp: ${approved.map((c) => path.basename(c.file)).join(', ')}`); + return { ok: reasons.length === 0, reasons, summary: `${comps.length} comps, ${approved.length} approved`, approved: approved.length === 1 ? approved[0].file : null }; +} + +export function gateSpec(state, { specPath = SPEC_PATH } = {}) { + const spec = loadSpec(specPath); + if (!spec) return { ok: false, reasons: [`no spec at ${specPath}: run comp-spec.mjs --comp ${state.comp} --grid, name the regions, then --regions regions.json`] }; + if (!spec.regions || spec.regions.length < 1) return { ok: false, reasons: ['spec has no regions'] }; + if (spec.comp && state.comp && path.resolve(spec.comp) !== path.resolve(state.comp)) { + return { ok: false, reasons: [`spec measures ${spec.comp}, but this build started on ${state.comp}; re-run comp-spec on the approved comp`] }; + } + const plates = spec.regions.filter((r) => r.medium === 'raster').length; + // A plate box that cuts its artwork is a plate the page will crop. + const cut = spec.regions.filter((r) => r.medium === 'raster' && r.clipped && r.clipped.length); + if (cut.length) return { ok: false, reasons: cut.map((r) => `region ${r.id}: the comp's artwork runs off its box on the ${r.clipped.join(' and ')}; widen the region's span so the box holds the whole shape with a margin (or set "bleed": true if the page really crops it there), then re-run comp-spec.mjs --regions`) }; + // Type is measured, not guessed: the largest text region must carry a + // font-match measurement and a ranked choice before page code exists. + // Three of six misses a human called on a first-round build were the + // headline face wider and lighter than the comp's, the parts list smaller, + // the footer heavier: ratios font-match reads off pixels. + // The lead text region is the display type: the region whose measured cap + // height is largest (a headline), not the biggest box (a table of rows). + // Unmeasured regions sort by box height as a proxy until measured. + const textRegions = spec.regions.filter((r) => r.kind === 'text').sort((a, b) => { + const ca = a.type && a.type.comp ? a.type.comp.capHeightPx : a.px.h * 0.4; + const cb = b.type && b.type.comp ? b.type.comp.capHeightPx : b.px.h * 0.4; + return cb - ca; + }); + const reasons = []; + if (textRegions.length) { + // when nothing is measured yet, ask for all measurements first; the lead + // is only knowable once cap heights exist + const anyMeasured = textRegions.some((r) => r.type); + if (!anyMeasured) { + reasons.push(`measure the type before closing the spec: node ${HERE}/font-match.mjs --measure for each text region (${textRegions.map((r) => r.id).join(', ')}); the region with the largest cap height is the lead and gets --rank.`); + return { ok: false, reasons }; + } + const measurable = textRegions.filter((r) => r.type && r.type.comp); + const lead = measurable[0] || textRegions[0]; + if (!lead.type) reasons.push(`the lead text region ${lead.id} has no type measurement: run node ${HERE}/font-match.mjs --measure ${lead.id} (and --rank ${lead.id} --text "" to choose the face by metrics). Set font-size from the printed cap height; do not pick a face by name.`); + else if (lead.type.comp && !lead.type.chosen) reasons.push(`the lead text region ${lead.id} is measured (${lead.type.widthClass} ${lead.type.weightClass}, cap ${lead.type.comp.capHeightPx}px) but no face is ranked: run node ${HERE}/font-match.mjs --rank ${lead.id} --text "" [--candidates "Family:weight,..."] and use the USE line.`); + else if (lead.type.comp && lead.type.chosen && !choiceStamped(lead.id, lead.type.chosen)) reasons.push(`the lead text region ${lead.id} carries a "chosen" face that font-match did not write (${lead.type.chosen.family || '?'}). A face typed into spec.json is the guess this gate exists to refuse; run node ${HERE}/font-match.mjs --rank ${lead.id} --text "" and let it record the choice (with no browser it records the catalog's nearest face).`); + const unmeasured = textRegions.slice(1).filter((r) => !r.type).map((r) => r.id); + if (unmeasured.length && !reasons.length) reasons.push(`measure the other text regions too, each sets its own font-size and weight class: node ${HERE}/font-match.mjs --measure for ${unmeasured.join(', ')}`); + } + if (reasons.length) return { ok: false, reasons }; + return { ok: true, reasons: [], summary: `${spec.regions.length} regions, ${plates} plates, ${textRegions.length} text regions measured` }; +} + +/** + * The one plate rule, shared by the plates gate and generate-image's + * PLATE-WARN so they never disagree. `score` is compare().whole against the + * masked comp crop under cover alignment. + */ +export function plateVerdict(region, score) { + const isTexture = region.kind === 'texture'; + const reasons = []; + if (isTexture) { + const effective = 0.5 * score.color + 0.5 * Math.min(1, score.detail / 0.6); + if (effective < PLATE_MIN) reasons.push(`scores ${(effective * 100).toFixed(0)}% as the material of region ${region.id} (color ${(score.color * 100).toFixed(0)}%, detail ${(score.detail * 100).toFixed(0)}%); crop a clean patch of the comp region (comp-spec.mjs --crop ${region.id} --raw) and mirror-tile it, generate only when no clean patch exists`); + return { ok: reasons.length === 0, reasons, effective }; + } + // Added detail is invented material only when the comp region is calm; + // a paper sleeve is grainy in the comp too, and its plate is allowed the + // same grain. Comp energy travels on the region (comp-spec's detail.energy). + const compCalm = !region.detail || region.detail.energy < 12; + if (compCalm && score.detailAdded > 0.45) reasons.push(`carries detail the comp region ${region.id} does not have (added-detail ${(score.detailAdded * 100).toFixed(0)}% of cells): noise, grain, or a busier subject where the comp is calm; regenerate from the crop reference without adding texture`); + if (score.structure < PLATE_STRUCTURE_MIN) reasons.push(`structure ${(score.structure * 100).toFixed(0)}% against the comp region ${region.id}: the composition of the plate is not the region's (different subject, orientation, or crop); regenerate with comp-spec.mjs --crop ${region.id} as the reference image`); + if (score.overall < PLATE_MIN) reasons.push(`scores ${(score.overall * 100).toFixed(0)}% against the comp region ${region.id} (structure ${(score.structure * 100).toFixed(0)}%, color ${(score.color * 100).toFixed(0)}%, detail ${(score.detail * 100).toFixed(0)}%); regenerate with the crop as --ref and the comp-spec plate prompt`); + return { ok: reasons.length === 0, reasons, effective: score.overall }; +} + +export function gatePlates(state, { specPath = SPEC_PATH } = {}) { + const spec = loadSpec(specPath); + if (!spec) return { ok: false, reasons: ['no spec'] }; + const rasterRegions = spec.regions.filter((r) => r.medium === 'raster'); + if (!rasterRegions.length) return { ok: true, reasons: [], summary: 'no plates owed', plates: [] }; + let comp = null; + try { comp = loadRaster(spec.comp).image; } catch { /* scored without the comp crop below */ } + const reasons = [], plates = []; + for (const r of rasterRegions) { + const file = r.plate; + if (!file || !fs.existsSync(file)) { reasons.push(`plate missing for ${r.id}: expected ${file || '(no path)'}; produce it from comp-spec.mjs --crop ${r.id} with generate-image.mjs --plate`); plates.push({ id: r.id, file, status: 'missing' }); continue; } + let img; + try { img = decodePng(fs.readFileSync(file)); } catch (e) { reasons.push(`plate ${file} is not a decodable PNG: ${e.message}`); plates.push({ id: r.id, file, status: 'unreadable' }); continue; } + // A texture tiles, so it owes no size floor and no structural match: + // it is judged on palette and grain only. Every other plate must be at + // least 1.5x the region (capped at 1536px, the largest size the + // generators emit; past that the region is a full-bleed field the page + // scales) and read as the region under object-fit: cover. + const isTexture = r.kind === 'texture'; + const minW = Math.min(1536, r.px.w * 1.5); + if (!isTexture && img.width < minW) reasons.push(`plate ${file} is ${img.width}px wide; the comp region is ${r.px.w}px and a shipping plate needs at least ${Math.round(minW)}px. Regenerate at asset size, do not crop the comp.`); + let score = null; + if (comp) { + const ref = plateReference(comp, spec, r); + // a keyed (alpha) plate ships over the page ground: score it composited + // over the region's sampled ground, the way it will show + let build = img; + let transparent = 0; for (let i = 3; i < img.data.length; i += 4) if (img.data[i] < 128) transparent++; + if (transparent > (img.data.length / 4) * 0.05) { + const g = (r.palette && r.palette[0] && r.palette[0].hex) || '#ffffff'; + const m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(g); + const ground = m ? [parseInt(m[1], 16), parseInt(m[2], 16), parseInt(m[3], 16), 255] : [255, 255, 255, 255]; + const over = createImage(img.width, img.height, ground); + blit(over, img, 0, 0); + build = over; + } + const res = compare({ comp: ref, build, align: 'cover', spec: null, kind: r.kind }); + score = res.whole; + const v = plateVerdict(r, score); + for (const reason of v.reasons) reasons.push(`plate ${file}: ${reason}`); + // A plate that matches the comp crop almost exactly is the comp crop, + // upscaled past the size floor: the comp's grain, its neighbours' + // edges, and its resolution ship as the artwork. Crops are never + // plates; the crop is the reference the plate is generated from. + // A fake-mode plate (offline pipelines, eval fixtures) IS the crop by + // design and says so in its tEXt; the identity refusal is for models + // shipping the comp's pixels as artwork, not for the deterministic + // stand-in. + const isFake = img.text && img.text['impeccable:fake'] === '1'; + if (!isTexture && !isFake) { + const raw = crop(comp, r.px.x, r.px.y, r.px.w, r.px.h); + const same = structureScore(raw, resize(img, raw.width, raw.height)); + if (same >= 0.95) reasons.push(`plate ${file} is the comp crop of region ${r.id} (structure ${(same * 100).toFixed(0)}% against the raw region, a resample of the same pixels): a crop of the comp is never a plate; generate the plate from the crop as reference (generate-image.mjs --plate ${r.id})`); + } + } + plates.push({ id: r.id, file, status: 'ok', size: `${img.width}x${img.height}`, score: score ? score.overall : null }); + } + return { ok: reasons.length === 0, reasons, summary: `${plates.filter((p) => p.status === 'ok').length}/${rasterRegions.length} plates`, plates }; +} + +/** Source files that could reference a plate: bounded walk, skipping deps and build output. */ +function sourceFiles(root = '.', limit = 400) { + const out = []; + // `assets` is walked: the extension filter already keeps binaries out, and + // a stylesheet at assets/hero.css may be the one file that references a + // plate (Greptile P1 on #599: the gate refused a valid build for it). + const skip = new Set(['node_modules', '.git', 'dist', 'build', 'out', '.next', '.svelte-kit', '.impeccable', 'coverage']); + const exts = /\.(html?|css|scss|jsx?|tsx?|svelte|vue|astro|mdx?|php|erb|hbs)$/i; + const walk = (dir, depth) => { + if (out.length >= limit || depth > 6) return; + let entries = []; + try { entries = fs.readdirSync(dir, { withFileTypes: true }); } catch { return; } + for (const e of entries) { + if (out.length >= limit) return; + if (e.isDirectory()) { if (!skip.has(e.name) && !e.name.startsWith('.')) walk(path.join(dir, e.name), depth + 1); } + else if (exts.test(e.name)) out.push(path.join(dir, e.name)); + } + }; + walk(root, 0); + return out; +} + +/** Plates the artifact never references: a plate on disk that no source names ships nothing. */ +export function unreferencedPlates(spec, artifact = null) { + const plates = (spec?.regions || []).filter((r) => r.medium === 'raster' && r.plate); + if (!plates.length) return []; + // The artifact narrows nothing: a plate may be referenced only from a + // stylesheet the artifact links, so the source walk runs either way, the + // artifact keeps a seat in the corpus, and the stylesheets it links are + // added by name (resolved against the artifact's own directory), which + // covers a stylesheet outside the walk's root, depth, or file limit. + const linked = []; + if (artifact && fs.existsSync(artifact)) { + linked.push(artifact); + try { + const html = fs.readFileSync(artifact, 'utf8'); + for (const m of html.matchAll(/]*href=["']([^"']+)["'][^>]*>/gi)) { + const href = m[1]; + if (/^(https?:|data:|\/\/)/i.test(href)) continue; + if (!/rel=["']?stylesheet/i.test(m[0]) && !/\.css(\?|$)/i.test(href)) continue; + const clean = href.split('?')[0]; + // a root-relative href serves from the project root, not the drive + // root: try the working directory and the artifact's own directory + // (unreadable candidates are skipped by the corpus loop) + if (clean.startsWith('/')) { linked.push(path.join(process.cwd(), clean), path.join(path.dirname(artifact), clean)); } + else linked.push(path.resolve(path.dirname(artifact), clean)); + } + } catch { /* the artifact still counts */ } + } + const files = [...new Set([...linked, ...sourceFiles()])]; + let corpus = ''; + for (const f of files) { try { corpus += fs.readFileSync(f, 'utf8') + '\n'; } catch { /* skip */ } } + const missing = []; + for (const r of plates) { + const base = path.basename(r.plate); + const stem = base.replace(/\.[a-z0-9]+$/i, ''); + // a data URI inline copy counts when the region id or file stem is named beside it + if (corpus.includes(base) || (corpus.includes('data:image/') && (corpus.includes(stem) || corpus.includes(r.id)))) continue; + missing.push(r); + } + return missing; +} + +/** Organic clip-path findings whose selector's element the artifact places (by class/id name) on a raster region. Cheap heuristic: the finding's selector or the surrounding rule mentions the region id or its plate stem. */ +export function organicClipRegions(artifactFile, spec) { + let scan; + try { + const mod = require(path.join(HERE, '..', '..', 'cli', 'engine', 'rules', 'checks.mjs')); + scan = mod.scanCssTextForOrganicClipPath; + } catch { scan = null; } + if (!scan) return []; + let html = ''; + try { html = fs.readFileSync(artifactFile, 'utf8'); } catch { return []; } + const findings = scan(html); + if (!findings.length) return []; + const rasterRegions = (spec.regions || []).filter((r) => r.medium === 'raster'); + const out = []; + for (const f of findings) { + const sel = String(f.selector || '').toLowerCase(); + for (const r of rasterRegions) { + const stem = path.basename(r.plate || '', path.extname(r.plate || '')).toLowerCase(); + if ((sel && (sel.includes(r.id.toLowerCase()) || (stem && sel.includes(stem)))) || rasterRegions.length === 1) { out.push({ id: r.id, snippet: f.snippet }); break; } + } + } + return out; +} + +/** + * The scaffold: the measured layout as CSS custom properties and one + * reference page. Positions in % of the comp so the frame scales; plates at + * their boxes with object-fit: contain (never cover: cover is how the arch + * lost its left side); text slots sized from the measured cap height (cap / + * 0.70 as the em estimate when font-match gave no size) in the ranked face. + * A reference for a builder that cannot lay out to a box, and a check for + * one that can; the gate reads pixels either way. + */ +export function writeScaffold(spec, state, { dir = path.join(BUILD_DIR, 'scaffold') } = {}) { + fs.mkdirSync(dir, { recursive: true }); + const W = spec.compSize.width, H = spec.compSize.height; + const pct = (v) => `${(v * 100).toFixed(3)}%`; + const vars = [':root {']; + const rules = []; + const bodyParts = []; + const fontLinks = new Set(); + for (const r of spec.regions) { + if (r.kind === 'band') continue; + const b = r.box, id = r.id; + vars.push(` --r-${id}-x: ${pct(b.x)}; --r-${id}-y: ${pct(b.y)}; --r-${id}-w: ${pct(b.w)}; --r-${id}-h: ${pct(b.h)};`); + const type = r.type || {}; + const cap = type.comp && type.comp.capHeightPx; + const chosen = type.chosen || null; + const fontPx = chosen && chosen.fontSizePx ? chosen.fontSizePx : (cap ? Math.round(cap / 0.7) : null); + if (cap) vars.push(` --r-${id}-cap: ${cap}px;${fontPx ? ` --r-${id}-font: ${fontPx}px;` : ''}${chosen ? ` --r-${id}-family: '${chosen.family}'; --r-${id}-weight: ${chosen.weight};` : ''}`); + if (chosen && chosen.family) fontLinks.add(`${chosen.family}:${chosen.weight}`); + rules.push(`.r-${id} { position: absolute; left: var(--r-${id}-x); top: var(--r-${id}-y); width: var(--r-${id}-w); height: var(--r-${id}-h); }`); + const label = (r.note || id).replace(/`); + } else if (r.kind === 'texture') { + const src = r.plate ? path.relative(dir, r.plate) : ''; + bodyParts.push(`
`); + } else if (r.kind === 'text') { + const style = [fontPx ? `font-size:var(--r-${id}-font)` : '', chosen ? `font-family:var(--r-${id}-family),sans-serif;font-weight:var(--r-${id}-weight)` : '', 'line-height:1.05', 'margin:0'].filter(Boolean).join(';'); + // the slot shows the region's own words when the spec has them, else its id + // at the measured size (a slot, not a caption: the note goes in a comment) + bodyParts.push(`

${(r.text || '').replace(/

`); + } else if (r.kind === 'control') { + bodyParts.push(`
`); + } else { + bodyParts.push(`
`); + } + } + vars.push('}'); + const css = [ + '/* Impeccable scaffold: the measured layout of the approved comp as custom properties. Generated by build-phase.mjs scaffold; regenerate after comp-spec.mjs --regions changes. Bind these to your own markup; positions are % of the comp frame so they scale with it. */', + ...vars, + '', + `.comp-frame { position: relative; width: 100%; aspect-ratio: ${W} / ${H}; overflow: hidden; }`, + ...rules, + '', + ].join('\n'); + const cssPath = path.join(dir, 'layout.css'); + fs.writeFileSync(cssPath, css); + const link = fontLinks.size ? ` \n` : ''; + const html = `\n\n\n \n Scaffold reference: ${path.basename(spec.comp)}\n${link} \n \n\n\n\n
\n${bodyParts.join('\n')}\n
\n\n\n`; + const htmlPath = path.join(dir, 'hero-reference.html'); + fs.writeFileSync(htmlPath, html); + return { dir, css: cssPath, html: htmlPath }; +} + +/** Fraction of grid cells with invented ink that fails the hero. */ +export const INVENTED_MIN = 0.04; + +/** + * Text, chrome and invented-ink readings for the hero: the comp and the + * build aligned the way comp-diff aligns them, then per-region checks from + * lib/hero-checks.mjs. Returns { text: [], chrome: [], invented }. + */ +export function heroReadings(state, spec, buildPath) { + if (!spec || !state.comp) return null; + const comp = loadRaster(state.comp).image; + const build = loadRaster(buildPath).image; + let aligned = alignBuild(comp, build, 'top'); + const shift = bestShift(comp, aligned); + if (shift.dx || shift.dy) { const shifted = createImage(aligned.width, aligned.height, [255, 255, 255, 255]); blit(shifted, aligned, -shift.dx, -shift.dy); aligned = shifted; } + const text = [], chrome = [], plates = []; + for (const r of spec.regions) { + if (!r.px) continue; + const a = crop(comp, r.px.x, r.px.y, r.px.w, r.px.h), b = crop(aligned, r.px.x, r.px.y, r.px.w, r.px.h); + if (r.kind === 'text') { const t = textRegionCheck(r, a, b); text.push(...t.findings); } + else if (r.kind === 'chrome' || r.kind === 'control') { const c = chromeStripCheck(r, a, b); chrome.push(...c.findings); } + else if (r.kind === 'plate' || r.kind === 'image') { + const c = plateClipCheck(r, a, b); + if (c.sides.length) plates.push(`plate ${r.id} is clipped at the ${c.sides.join(' and ')}: the comp's artwork keeps a margin there (ink box ${c.comp.w}x${c.comp.h} at ${c.comp.x},${c.comp.y} in the region) and the build's runs to the edge (${c.build.w}x${c.build.h} at ${c.build.x},${c.build.y}); size the box to the artwork's aspect and use object-fit: contain, or place the at the artwork's own size, never cover on a narrower box`); + } + } + const invented = inventedInk(comp, aligned); + return { text, chrome, plates, invented }; +} + +export function gateHero(state, { buildPath = HERO_REPRO, specPath = SPEC_PATH, min = HERO_MIN, outDir = path.join('.impeccable', 'review', 'diff', 'hero'), artifact = null } = {}) { + if (!fs.existsSync(buildPath)) return { ok: false, reasons: [`no hero capture at ${buildPath}: screenshot the first viewport at the comp's own dimensions (${state.breakpoint || 'comp size'}) into that path`] }; + const specForRefs = loadSpec(specPath); + // Resolve the page first: with an artifact in hand, unreferencedPlates + // follows its linked stylesheets exactly (wherever they live), and the + // bounded source walk is only the fallback for a build with no page yet. + let pageFile = artifact || state.artifact || null; + if (!pageFile || !fs.existsSync(pageFile)) { + if (fs.existsSync('index.html')) pageFile = 'index.html'; + else { try { const htmls = fs.readdirSync('.').filter((f) => /\.html?$/i.test(f)); if (htmls.length === 1) pageFile = htmls[0]; } catch { /* fall back to the walk */ } } + } + const unreferenced = unreferencedPlates(specForRefs, pageFile && fs.existsSync(pageFile) ? pageFile : null); + if (unreferenced.length) { + return { ok: false, reasons: unreferenced.map((r) => `plate ${r.plate} (region ${r.id}) is not referenced by any source file this scan can see: the page draws that region in code while the produced plate sits unused. Place the plate (an , a background-image, or an inlined data URI named for it) and recapture. If the plate IS referenced from a file the scan missed (your page is not index.html, or the reference lives in a stylesheet outside the project walk), re-run with --artifact : its linked stylesheets are followed exactly.`) }; + } + const script = path.join(HERE, 'comp-diff.mjs'); + const args = [script, '--comp', state.comp, '--build', buildPath, '--out-dir', outDir, '--label', 'hero', '--json']; + const spec = loadSpec(specPath); + if (spec) args.push('--spec', specPath); + const res = spawnSync(process.execPath, args, { encoding: 'utf8' }); + if (res.status !== 0 && res.status !== 3) return { ok: false, reasons: [`comp-diff failed: ${res.stderr || res.stdout}`] }; + let report; + try { report = JSON.parse(res.stdout); } catch { return { ok: false, reasons: ['comp-diff produced no report'] }; } + const reasons = []; + const advisories = []; + // The capture must be the comp's own frame: a 1440-wide capture of a + // 1536x1024 comp is a different composition before anything is compared. + const [cw, ch] = String(report.compSize || '').split('x').map(Number); + const [bw, bh] = String(report.buildSize || '').split('x').map(Number); + if (cw && ch && bw && bh) { + const compAspect = cw / ch, buildAspect = bw / bh; + if (bw < cw * 0.9 || Math.abs(buildAspect - compAspect) / compAspect > 0.08) reasons.push(`hero capture is ${bw}x${bh}; the comp is ${cw}x${ch}. Capture the first viewport at the comp's own dimensions (viewport ${cw}x${ch}, not full page) into ${buildPath}.`); + } + // Above the fidelity bar, the numeric readings advise instead of block + // (Paul's calibration: builds at 68-73+ with colour and spacing nits were + // passes; a 90% build sat open behind three ink colours and a cost cap + // ended two 76-79% runs mid-loop). Hard vetoes stay unconditional: a + // missing region, a contradicted plate or text block, an SVG illustration, + // a clipped plate, invented ink are the wrong page at any score. + const aboveBar = report.overall >= min; + if (!aboveBar) reasons.push(`hero overall ${(report.overall * 100).toFixed(1)}% < ${(min * 100).toFixed(0)}% (structure ${(report.scores.structure * 100).toFixed(0)}%, color ${(report.scores.color * 100).toFixed(0)}%, detail ${(report.scores.detail * 100).toFixed(0)}%)`); + if (report.scores.colorIntersection != null && report.scores.colorIntersection < 0.2) reasons.push(`the palette is not the comp's (color intersection ${(report.scores.colorIntersection * 100).toFixed(0)}%): comp ${(report.palette.comp || []).slice(0, 3).map((c) => c.hex).join(' ')} vs build ${(report.palette.build || []).slice(0, 3).map((c) => c.hex).join(' ')}. Use the spec's sampled palette values, not a rendition of them.`); + // A texture band that shares its box with a text/control region carries + // that region's ink in the comp crop; when the overlapping ink regions are + // present in the build, a low detail score on the texture is the ink + // metric measuring the wrong thing, not missing material. + const specRegions = specForRefs ? specForRefs.regions : []; + const overlaps = (a, b) => a.box.x < b.box.x + b.box.w && b.box.x < a.box.x + a.box.w && a.box.y < b.box.y + b.box.h && b.box.y < a.box.y + a.box.h; + const verdictOf = Object.fromEntries(report.regions.map((r) => [r.id, r.verdict])); + const missing = report.regions.filter((r) => { + if (r.verdict !== 'missing') return false; + if (r.kind !== 'texture') return true; + const me = specRegions.find((x) => x.id === r.id); + if (!me) return true; + const inkOver = specRegions.filter((x) => x.id !== r.id && (x.kind === 'text' || x.kind === 'control' || x.kind === 'chrome') && overlaps(me, x)); + const inkPresent = inkOver.length > 0 && inkOver.every((x) => verdictOf[x.id] && verdictOf[x.id] !== 'missing'); + if (inkPresent) { r.verdict = 'drift'; return false; } + return true; + }); + // A plate that passed the plates gate and is referenced by the page is + // placed material, not missing material: comp-diff at the region box + // re-litigates the plate's content (an exploded diagram of a different + // carburetor scores 'missing' on detail against the comp's), and no CSS + // edit can move that score. What the hero owes for a passed plate is its + // placement: material present in the box, at the box. Say that as a box. + const passedPlate = (id) => state.plates && state.plates[id] && state.plates[id].status === 'ok' && (state.plates[id].score == null || state.plates[id].score >= PLATE_MIN); + const placementNotes = []; + for (const r of report.regions) { + if (!(r.kind === 'plate' || r.kind === 'image' || r.kind === 'texture') || !passedPlate(r.id)) continue; + if (r.verdict !== 'missing' && r.verdict !== 'contradicted') continue; + // a texture's presence is its ground: palette and structure held means + // the material is there (grain reads flatter at capture scale); a plate + // or image needs its own energy in the box + const present = r.kind === 'texture' + ? (r.score.structure >= 0.85 && r.score.color >= 0.6) + : (r.score.detailRaw != null ? r.score.detailRaw >= 0.3 : r.score.detail >= 0.3); + if (!present) continue; // nothing drawn there: still missing + r.verdict = 'drift'; + r.placed = true; + if (r.inkBox && r.inkBox.comp && r.inkBox.build) { + const c = r.inkBox.comp, b = r.inkBox.build; + const off = Math.abs(b.w - c.w) > c.w * 0.2 || Math.abs(b.h - c.h) > c.h * 0.2 || Math.abs(b.x - c.x) > c.w * 0.15 || Math.abs(b.y - c.y) > c.h * 0.15; + if (off) placementNotes.push(`plate ${r.id} is placed but not at the comp's box: its ink spans ${c.w}x${c.h}px at (${c.x},${c.y}) in the comp region and ${b.w}x${b.h}px at (${b.x},${b.y}) in the build; size and position the to the spec box (object-fit: cover), not to the surrounding layout`); + } + } + const missingAfter = missing.filter((r) => r.verdict === 'missing'); + for (const r of missingAfter) reasons.push(`region ${r.id} is missing (detail ${(r.score.detail * 100).toFixed(0)}%, structure ${(r.score.structure * 100).toFixed(0)}%): the comp shows material the build does not`); + for (const n of placementNotes) (aboveBar ? advisories : reasons).push(aboveBar ? `(advisory, above the ${(min * 100).toFixed(0)}% bar) ${n}` : n); + const contradicted = report.regions.filter((r) => r.verdict === 'contradicted'); + // A contradicted plate, image, or text region is the wrong page whatever + // the mean says; chrome and controls get the one-third allowance. + // Controls are held like text: their chrome (border, fill, chevron, arrow, + // the dropdown's shape) is the comp's, and a control that reads as a + // different control is a contradiction of its own. Only icon glyphs carry + // the closest-obtainable concession, and those live inside the region. + const directionContradicted = contradicted.filter((r) => r.kind === 'plate' || r.kind === 'image' || r.kind === 'text' || r.kind === 'control'); + for (const r of directionContradicted) reasons.push(`region ${r.id} (${r.kind}) is contradicted (structure ${(r.score.structure * 100).toFixed(0)}%, detail added ${(r.score.detailAdded * 100).toFixed(0)}%): ${r.kind === 'text' ? 'the composition of this text region differs from the comp; re-derive it from the spec box' : r.kind === 'control' ? 'this control does not read as the comp\'s: rebuild its chrome from the crop (border, fill, radius, chevron or arrow, label size) rather than from a component default' : 'the plate here does not read as the comp region; regenerate it with the crop as reference (generate-image.mjs --plate ' + r.id + ') and place it at its box'}`); + // a control that drifts far is a different control too: name it + for (const r of report.regions) { + if (r.kind !== 'control' || r.verdict !== 'drift' || r.score.overall >= 0.65) continue; + reasons.push(`control ${r.id} drifts to ${(r.score.overall * 100).toFixed(0)}% (structure ${(r.score.structure * 100).toFixed(0)}%, color ${(r.score.color * 100).toFixed(0)}%): its chrome differs from the comp's; open ${path.join(outDir, 'regions', `${r.id}.png`)} and match the border, fill, radius, chevron or arrow, and label size`); + } + // Controls: report the ink box in comp vs build so a button in a 63px row + // built into a 41px row is named as numbers, not as a drift score. + for (const r of report.regions) { + // whatever the region's verdict: a small button in a large region scores + // match on the region mean while being half its comp height + if (r.kind !== 'control') continue; + if (r.inkBox && r.inkBox.comp && r.inkBox.build) { + // Only when the comp's ink is a discrete element inside its region (a + // button, a tab), not when it fills the region edge to edge (a control + // drawn over a plate's edge, a full-width bar): then the box says nothing. + // report regions carry normalized x/y/w/h at the top level + const rwN = r.w ?? (r.box && r.box.w) ?? 1, rhN = r.h ?? (r.box && r.box.h) ?? 1; + const rw = rwN * (report.compSize ? parseInt(String(report.compSize).split('x')[0], 10) : 1536); + const rh = rhN * (report.compSize ? parseInt(String(report.compSize).split('x')[1], 10) : 1024); + // A bar that spans the region in either axis is not a discrete + // control: its ink box is the region box clipped, and the build's + // box is whatever the region clips there. Comparing the two told one + // session six times that a 1376x87 strip was 1382x102, and no edit it + // made could move that number. + if (r.inkBox.comp.w >= rw * 0.85 || r.inkBox.comp.h >= rh * 0.85) continue; + const dh = r.inkBox.build.h - r.inkBox.comp.h, dw = r.inkBox.build.w - r.inkBox.comp.w; + // the build's box is only comparable when it is discrete too + if (r.inkBox.build.w >= rw * 0.98 || r.inkBox.build.h >= rh * 0.98) continue; + if (Math.abs(dh) > Math.max(6, r.inkBox.comp.h * 0.15) || Math.abs(dw) > Math.max(12, r.inkBox.comp.w * 0.15)) (aboveBar ? advisories : reasons).push(`${aboveBar ? `(advisory, above the ${(min * 100).toFixed(0)}% bar) ` : ''}region ${r.id}: its ink sits in a ${r.inkBox.comp.w}x${r.inkBox.comp.h}px box in the comp and ${r.inkBox.build.w}x${r.inkBox.build.h}px in the build (padding, row height, or size); match the box, not only the position`); + } + } + const otherContradicted = contradicted.filter((r) => !directionContradicted.includes(r)); + if (otherContradicted.length > Math.max(1, Math.floor(report.regions.length / 3))) reasons.push(`${otherContradicted.length} of ${report.regions.length} regions contradicted: ${otherContradicted.map((r) => r.id).join(', ')}`); + // A CSS-drawn organic contour sitting on a raster region's box is the plate + // replaced by code, whatever the pixels score. + // The page resolved above serves the code scans too. + const artifactFile = pageFile; + if (artifactFile && fs.existsSync(artifactFile) && specForRefs) { + const organic = organicClipRegions(artifactFile, specForRefs); + for (const r of organic) reasons.push(`artifact draws an organic clip-path (${r.snippet}) inside raster region ${r.id}'s box; that region ships as its plate, never as a polygon`); + // Inline SVG past an icon's budget is a drawing in code: the single most + // repeated pin of the human review ("terrible svg instead of asset", + // "lines that point nowhere"), on every model. Icons, arrows and + // chevrons pass; diagrams, notation, and leader lines do not; those are + // plates, or part of the plate they annotate. + let svgs = []; + try { svgs = svgIllustrations(fs.readFileSync(artifactFile, 'utf8')); } catch { svgs = []; } + for (const v of svgs.slice(0, 6)) reasons.push(`artifact draws an illustration in inline SVG${v.label ? ` (${v.label})` : ''}: ${v.snippet}. Drawings, diagrams, notation, and leader lines are plates or belong to the plate they annotate; only icon-sized SVG (under 64px, a few paths) is code`); + if (svgs.length > 6) reasons.push(`...and ${svgs.length - 6} more inline SVG illustrations`); + } + // Numbers a designer reads off the side-by-side: type set at the wrong + // size, weight, colour, or place; a nav bar too tall; ink where the comp + // has none (a kicker, a divider, a second row). Each was a pin in the + // first human review of builds the region scores had passed. + let readings = null; + try { readings = heroReadings(state, specForRefs, buildPath); } catch (e) { reasons.push(`hero readings errored (${e.message}); the region scores above stand`); } + if (readings) { + // the numbers are the edit list: keep it short enough to act on in one + // pass (the worst first: size, then lines, then colour and place) + const order = (f) => (/cap height/.test(f) ? 0 : /lines? in the build/.test(f) ? 1 : /heavier|lighter/.test(f) ? 2 : /ink is/.test(f) ? 3 : 4); + // sibling regions (row-1 ... row-8, item-a / item-b) with the same kind + // of finding are one edit: fold them into one line naming the siblings + const folded = new Map(); + for (const f of readings.text) { + const m = /^text ([a-z0-9]+(?:-[a-z0-9]+)*?)(?:-(?:\d+|[a-z]))?: (cap height|\d+ lines? in the build|the face renders|ink is|its first line|it starts|line pitch)/i.exec(f); + const key = m ? `${m[1]}|${m[2].replace(/\d+/g, 'N')}` : f; + if (!folded.has(key)) folded.set(key, { first: f, ids: [] }); + const idm = /^text ([^:]+):/.exec(f); if (idm) folded.get(key).ids.push(idm[1]); + } + const text = [...folded.values()].map((v) => (v.ids.length > 1 ? `${v.first} (also ${v.ids.slice(1).join(', ')})` : v.first)).sort((a, b) => order(a) - order(b)); + // A reading that has come back unchanged three attempts running is one + // the session is not acting on (or cannot: a measured "rule" that is + // really an underline the layout does not have). It stays in the message + // as advisory and stops blocking; the fresh readings still do. One + // session spent 27 attempts on the same three lines. + const seen = state.phases.hero.readingsSeen || (state.phases.hero.readingsSeen = {}); + const stale = (f) => { const k = f.replace(/\s+/g, ' ').trim(); seen[k] = (seen[k] || 0) + 1; return seen[k] > 3; }; + const all = [...text, ...readings.chrome]; + const fresh = all.filter((f) => !stale(f)); + const advisory = all.filter((f) => !fresh.includes(f)); + const kept = fresh.slice(0, 8); + if (aboveBar) { + if (kept.length) advisories.push(`(advisory, above the ${(min * 100).toFixed(0)}% bar; fix in the polish pass before responsive) ${kept.length} reading${kept.length === 1 ? '' : 's'}:`); + for (const f of kept) advisories.push(` ${f}`); + } else { + if (kept.length) reasons.push(`READINGS, each one CSS edit (${fresh.length > kept.length ? `${kept.length} of ${fresh.length}, the rest after these` : `${kept.length}`}):`); + for (const f of kept) reasons.push(f); + } + if (advisory.length) advisories.push(...advisory.map((f) => `(advisory, unchanged for 3+ attempts) ${f}`)); + for (const f of readings.plates || []) reasons.push(f); + // invented ink: enough cells, or a couple of strongly inked ones (a + // legend, a badge, a second control in a calm corner) + const strongCells = (readings.invented ? readings.invented.cells : []).filter((c) => c.build >= 22); + if (readings.invented && (readings.invented.fraction >= INVENTED_MIN || strongCells.length >= 2)) { + const cells = readings.invented.cells.map((c) => c.label); + reasons.push(`the build carries ink in ${cells.length} grid cells where the comp is calm (${cells.slice(0, 12).join(', ')}${cells.length > 12 ? ', ...' : ''}); nothing exists on the page that the comp does not show (a kicker, an extra nav item, a divider, a second row of controls); remove it or name it in a stated decision after the hero passes`); + } + } + const worstRegions = [...report.regions].sort((a, b) => a.score.overall - b.score.overall).slice(0, 3); + const regionDir = path.join(outDir, 'regions'); + return { + ok: reasons.length === 0, + reasons, + summary: `hero ${(report.overall * 100).toFixed(0)}% (${report.verdict})`, + score: report.overall, + verdict: report.verdict, + report: path.join(outDir, 'report.json'), + sideBySide: report.files ? report.files.sideBySide : null, + worst: worstRegions.map((r) => `${r.id} ${r.verdict} ${(r.score.overall * 100).toFixed(0)}%`), + worstIds: worstRegions.map((r) => r.id), + worstCrops: worstRegions.map((r) => ({ id: r.id, verdict: r.verdict, score: r.score, file: path.join(regionDir, `${r.id}.png`) })), + advisories, + regionVerdicts: Object.fromEntries(report.regions.map((r) => [r.id, r.verdict])), + }; +} + +/** + * The hero attempt loop: after two failed advances where the same region is + * still missing/contradicted and the artifact changed only in CSS values, + * refuse a third of the same kind. Missing material is not a layout + * tolerance problem; the fix is a plate, a placed plate, or a rebuilt region. + */ +export function heroLoopVerdict(state, gate, artifactPath) { + const p = state.phases.hero; + const history = p.history || []; + const entry = { at: now(), score: gate.score ?? null, worstIds: gate.worstIds || [], regionVerdicts: gate.regionVerdicts || {}, artifactHash: hashFile(artifactPath) }; + history.push(entry); + p.history = history.slice(-6); + if (history.length < 3) return null; + const last3 = history.slice(-3); + const stuck = last3[0].worstIds[0] && last3.every((h) => h.worstIds[0] === last3[0].worstIds[0]); + const scores = last3.map((h) => h.score ?? 0); + const noProgress = Math.max(...scores) - Math.min(...scores) < 0.03; + if (stuck && noProgress) { + return `region ${last3[0].worstIds[0]} has been the worst region for three attempts and the score moved less than 3 points: value edits are not reaching it. Open ${path.join('.impeccable', 'review', 'diff', 'hero', 'regions', `${last3[0].worstIds[0]}.png`)} and rebuild that region from the comp crop (place its plate, or produce one with generate-image.mjs --plate, or re-derive its structure from the spec box), then recapture.`; + } + return null; +} + +function hashFile(file) { + try { + const crypto = require('node:crypto'); + return crypto.createHash('sha1').update(fs.readFileSync(file)).digest('hex').slice(0, 12); + } catch { return null; } +} + +/** + * Responsive gate: the desktop capture (whatever common width the build + * used, 1440 typically) must still read as the comp. A first viewport that + * only holds at the comp's exact width and collapses to one column 96px + * narrower passed every earlier gate in the first simulated round. + */ +export function gateResponsive(state, { specPath = SPEC_PATH, min = RESPONSIVE_MIN, outDir = path.join('.impeccable', 'review', 'diff', 'desktop') } = {}) { + const desktop = path.join('.impeccable', 'review', 'desktop.png'); + const mobile = path.join('.impeccable', 'review', 'mobile.png'); + const reasons = []; + if (!fs.existsSync(desktop)) reasons.push(`no ${desktop}: capture the page at a common desktop width (1440 wide, full page) into that path`); + if (!fs.existsSync(mobile)) reasons.push(`no ${mobile}: capture the page at 390 wide, full page, into that path`); + if (reasons.length) return { ok: false, reasons }; + const script = path.join(HERE, 'comp-diff.mjs'); + const args = [script, '--comp', state.comp, '--build', desktop, '--out-dir', outDir, '--label', 'desktop', '--json']; + if (loadSpec(specPath)) args.push('--spec', specPath); + const res = spawnSync(process.execPath, args, { encoding: 'utf8' }); + let report; + try { report = JSON.parse(res.stdout); } catch { return { ok: false, reasons: [`comp-diff failed on ${desktop}: ${res.stderr || res.stdout}`] }; } + // A texture read at 1440 differs from itself at 1536 by resampling alone; + // it passed at the hero and cannot block responsive on its own. + // Likewise a plate or image that passed the plates gate: it read 'missing' + // on detail at 1440 in a run where the hero had just accepted it at 1536, + // structure 94%. Only a region with no energy in its box is missing here. + const missing = report.regions.filter((r) => { + if (r.verdict !== 'missing' || r.kind === 'texture') return false; + const passed = state.plates && state.plates[r.id] && state.plates[r.id].status === 'ok'; + if ((r.kind === 'plate' || r.kind === 'image') && passed) { + const present = r.score.detailRaw != null ? r.score.detailRaw >= 0.3 : r.score.detail >= 0.3; + if (present && r.score.structure >= 0.5) return false; + } + return true; + }); + // A plate placed and passed at the hero is not re-litigated at 1440: the + // rescale alone drops SSIM on a busy region. Text can still contradict + // (a wrapped headline is a different composition). + const contradictedDirection = report.regions.filter((r) => r.verdict === 'contradicted' && r.kind === 'text'); + if (report.overall < min) reasons.push(`the desktop capture (${report.buildSize}; the top ${report.compSize} rows scaled to the comp's width are compared, a full-page capture is fine) scores ${(report.overall * 100).toFixed(0)}% against the comp, under ${(min * 100).toFixed(0)}%: the first viewport does not survive a common desktop width. The hero passed at ${state.breakpoint || 'the comp size'}; the layout must hold from ~1280 up, not only at the comp's exact width (grid columns in fr / minmax, not fixed px that overflow and wrap).`); + for (const r of missing) reasons.push(`at desktop width, region ${r.id} is missing`); + for (const r of contradictedDirection) reasons.push(`at desktop width, region ${r.id} (${r.kind}) is contradicted (structure ${(r.score.structure * 100).toFixed(0)}%)`); + return { ok: reasons.length === 0, reasons, summary: `desktop ${(report.overall * 100).toFixed(0)}% (${report.verdict})`, score: report.overall, sideBySide: report.files ? report.files.sideBySide : null }; +} + +const GATES = { comps: gateComps, spec: gateSpec, plates: gatePlates, hero: gateHero, responsive: gateResponsive }; + +// ---- transitions ----------------------------------------------------------- + +export function runGate(state, phase, opts = {}) { + const gate = GATES[phase]; + if (!gate) return { ok: true, reasons: [], summary: 'no mechanical gate' }; + // A gate that throws is a bug in the gate, never a verdict on the build: + // return it as a refusal that names itself, so the model sees one line + // and the state stays consistent instead of a stack trace and a half-run. + try { return gate(state, opts); } + catch (e) { return { ok: false, reasons: [`gate ${phase} errored (${e.message}); this is a tool bug, not a finding about the page. Re-run with the same inputs; if it repeats, note it and continue with build-phase.mjs advance --force --reason "user: gate ${phase} errored, proceeding" so the run is not lost.`], error: String(e && e.stack || e) }; } +} + +/** Reasons a gate may be forced past. The user downgrading the comp's authority + * in words is the only one; the parent quotes it. A reason that does not name + * the user is a model talking itself past its own gate, and it is refused. */ +export function forceAllowed(reason) { + if (typeof reason !== 'string' || reason.trim().length < 20) return false; + if (/gate \w+ errored/i.test(reason)) return true; + const namesUser = /\buser\b|\bthey (said|asked|told|chose|picked)\b|\bpaul\b/i.test(reason); + // The user must be downgrading the comp itself, not "approving" a + // translation the model proposed. A reason that keeps the comp's + // topology/palette while dropping "pixel-level" is a translation, and + // translation is what the gate measures; it is not a downgrade. + const aboutComp = /\b(comp|mock|mockup|composition|fidelity|plate|region)\b/i.test(reason); + const isTranslationDodge = /truthful|semantic|pixel-level|prioriti[sz]e (facts|semantics|accessibility)/i.test(reason) && !/(drop|skip|remove|without|not needed|don't need|do not need|ignore) (the )?(comp|plate|region|fidelity)/i.test(reason); + // The user's words have to be a downgrade of the comp, said as such: a + // brief line quoted back ("should feel like an extension of her artwork") + // is the direction the comp already serves, not permission to leave it. + // One session forced two gates on that sentence. Ask for a downgrade verb + // in the same reason as the comp noun. + const downgrades = /\b(don't|do not|doesn't|does not|no longer|not) (need|have to|want|care|require|match|follow|hold)|\b(drop|skip|remove|ignore|waive|relax|override|approve|approved|accept|accepted|fine|okay|ok|good enough|ship it|move on|proceed|go ahead|instead of|rather than)\b/i.test(reason); + // and the user's words are quoted or reported, not paraphrased into a + // principle ("the user made the artwork binding" is the model's reading) + const reported = /["'\u201c\u2018].{6,}["'\u201d\u2019]|\b(user|they|paul) (said|says|asked|asks|told|wrote|replied|answered|chose|picked|approved|confirmed)\b/i.test(reason); + const briefQuoteOnly = /\b(should feel|feel like|not a .* page|extension of)\b/i.test(reason) && !/\b(comp|mock|fidelity|gate|plate)\b.*\b(approved|accept|fine|ok|okay|skip|drop|waive|relax|override|move on|proceed)\b/i.test(reason); + return namesUser && aboutComp && downgrades && reported && !isTranslationDodge && !briefQuoteOnly; +} + +export function advance(state, { force = false, reason = null, gateOpts = {} } = {}) { + const phase = state.phase; + const idx = PHASES.indexOf(phase); + if (idx === -1 || phase === 'review') return { ok: false, reasons: [`phase ${phase} cannot advance; use finish`] }; + const p = state.phases[phase]; + p.attempts += 1; + const gate = runGate(state, phase, gateOpts); + const { plates: _p, ...gateRecord } = gate; + p.gate = { ...gateRecord, at: now() }; + // the plates gate's per-plate scores are what the hero gate reads to tell + // a placed plate from a missing one, so they travel on the state + if (phase === 'plates' && Array.isArray(gate.plates)) state.plates = Object.fromEntries(gate.plates.map((pl) => [pl.id, { status: pl.status, score: pl.score, size: pl.size }])); + if (!gate.ok && force && !forceAllowed(reason)) { + p.status = 'open'; + return { ok: false, phase, reasons: [...gate.reasons, `--force refused: "${reason || ''}" does not quote the user downgrading the comp. A single-file deliverable, a missing tool, or difficulty is not a reason, and a refused force is not the end of the phase: the readings above are the edits, each one a CSS value; make them, recapture, advance. Ask the user only when a reading contradicts something they said about this comp.`], gate }; + } + if (phase === 'hero' && (gate.score != null)) { + const stuck = heroLoopVerdict(state, gate, gateOpts.artifact || state.artifact || 'index.html'); + if (stuck && !gate.ok) gate.reasons = [stuck, ...gate.reasons]; + } + if (!gate.ok && !force) { p.status = 'open'; return { ok: false, phase, reasons: gate.reasons, gate }; } + if (!gate.ok && force) p.forced = { at: now(), reason, reasons: gate.reasons }; + p.status = 'closed'; p.closedAt = now(); + if (phase === 'comps' && gate.approved) { + state.comp = gate.approved; + if (!state.breakpoint) { try { const i = loadRaster(gate.approved).image; state.breakpoint = `${i.width}x${i.height}`; } catch { /* non-png comp: breakpoint stays unset */ } } + } + const next = PHASES[idx + 1]; + state.phase = next; + state.phases[next].status = 'open'; state.phases[next].openedAt = now(); + return { ok: true, phase, next, gate, forced: !!p.forced }; +} + +export function nextInstruction(state) { + switch (state.phase) { + case 'comps': return `Comp round for the chosen direction${state.direction ? ` (seed ${state.direction})` : ''}: read reference/visualize.md, generate three compositional comps of the requested surface at its own viewport into ${MOCKS_DIR}/ (each with a prompt sidecar), put them in front of the user, and set "approved": true in the chosen comp's sidecar. Then build-phase.mjs advance. No page code before this closes.`; + case 'spec': return `Measure the comp: node comp-spec.mjs --comp ${state.comp} --grid, open ${path.join(BUILD_DIR, 'comp-grid.png')}, write regions.json (every illustration, photo, texture as its own plate region; every text block its own text region), run comp-spec.mjs --comp ${state.comp} --regions regions.json. Then measure the type: node font-match.mjs --measure for each text region (cap height, width class, weight class) and font-match.mjs --rank --text "" to choose the headline face by metrics (the USE line is the CSS; with no browser it records the catalog's nearest face, which is the choice; do not install one, and do not write a chosen face into the spec by hand). Then build-phase.mjs advance.`; + case 'plates': return 'Produce every plate in the spec (comp-spec.mjs --print lists them). Illustrations, photos, figures: node generate-image.mjs --plate , one call per plate. It crops the comp region itself, sends the crop as the edit reference, sizes the plate, keys ink-on-ground to alpha, scores the result against the crop (PLATE-SCORE) and embeds the prompt; nothing else does all of that. Only when it errors (no key, no network) fall back to the harness image tool with comp-spec.mjs --crop as its reference image and comp-spec.mjs --plate-prompt as its prompt, then embed-prompt.mjs; do not post-process a plate with magick or write your own keying. A generation takes 30 to 90 seconds: run it with a long wait (a 90 s yield, or all plates in one command joined with &&) rather than polling an open session turn after turn. A line drawing or figure on flat ground is keyed to alpha automatically (PLATE-CHROMA): place it with a plain over the page\'s own ground, never on a second paper. An opaque plate whose ground differs from the page goes in with mix-blend-mode: multiply. Textures (paper, cloth, grain): do not generate first; crop a clean patch of the comp region (comp-spec.mjs --crop --raw, then cut a patch free of ink), mirror-tile it to the plate size, and save it as the plate; generate only when no clean patch exists. The gate scores a texture against its whole region box, so a texture region should be drawn around clean ground (a sample cell), not around the ink it sits under; the page tiles it wherever the material goes. Then build-phase.mjs advance. Write no page code before this passes.'; + case 'hero': return `Run build-phase.mjs scaffold first: it writes the measured layout as CSS custom properties (.impeccable/build/scaffold/layout.css, --r--x/y/w/h in % of the comp, plus cap height, font-size, family, and weight where measured) and a reference page with every region at its box. Bind those numbers to your own markup (an element per region, its box from the properties); the reference is a check, not the page, and overlapping boxes are overlapping boxes. Build only the first viewport at ${state.breakpoint || 'the comp size'}. Copy the comp's words verbatim in this phase (headline, labels, table cells, footer): the user approved that comp with those words, and rewriting is a later, stated decision, never a silent one here. Set every text region's font-size from its measured cap height and its face from the ranking. Plates first: place every plate at its spec box (comp-spec.mjs --print lists boxes as percentages of the viewport) with object-fit: cover before writing a line of text or a control, capture into ${HERO_REPRO}, and run build-phase.mjs record hero (not advance) once so you see the plate regions read as match before text exists; then lay the semantic layer (text, controls, rules) over the plates from the spec's palette and boxes, capture, advance. When it fails, open the region crops it lists first, in order, then fix; do not build past the hero until it passes.`; + case 'sections': return 'Build the remaining sections inside the spec system (same corner language, rules, and palette; nothing the comp does not show). The hero passed with the comp\'s words verbatim; from here, content beyond the comp is yours to author at full fidelity, and any change to words the comp showed is a stated decision in your report, never silent. Then build-phase.mjs advance.'; + case 'motion': return 'Add the signature interaction, reveals, and motion. Then build-phase.mjs advance.'; + case 'responsive': return 'Build the other viewports (mobile first if the surface is mobile). The first viewport must hold at common desktop widths (1280 to 1600), not only at the comp\'s exact size: fluid columns, no fixed-px grid that wraps 96px narrower. Settle or disable entrance motion before capturing (an element mid-animation reads as missing). Capture desktop.png (1440 wide, full page) and mobile.png (390 wide, full page) into .impeccable/review/; the gate diffs the top of desktop.png (scaled to the comp\'s width) against the comp. Then build-phase.mjs advance.'; + case 'review': return 'Spawn the finish reviewer with the state file, the hero diff report, and the captures; record its disposition with build-phase.mjs finish --disposition .'; + default: return ''; + } +} + +export function renderStatus(state) { + const lines = [`BUILD-PHASE ${state.phase.toUpperCase()} comp ${state.comp || '(pending comp round)'}${state.direction ? ` direction ${state.direction}` : ''}${state.breakpoint ? ` breakpoint ${state.breakpoint}` : ''}`]; + for (const p of PHASES) { + const s = state.phases[p]; + let line = ` ${p.padEnd(11)} ${s.status.padEnd(8)}`; + if (s.gate && s.gate.summary) line += ` ${s.gate.summary}`; + if (s.attempts > 1) line += ` (${s.attempts} attempts)`; + if (s.forced) line += ` FORCED: ${s.forced.reason}`; + lines.push(line); + } + if (state.finish) lines.push(` finish ${state.finish.disposition} at ${state.finish.at}`); + lines.push(`NEXT ${nextInstruction(state)}`); + return lines.join('\n'); +} + +async function main() { + const cmd = process.argv[2]; + if (!cmd || flag('help')) { + console.error('usage: build-phase.mjs start --comp [--breakpoint WxH] | status [--json] | advance [--force --reason "..."] | record hero --build | scaffold | note "" | finish --disposition '); + process.exit(1); + } + if (cmd === 'start') { + const comp = arg('comp'); + const direction = arg('direction'); + if (!comp && !direction) { console.error('build-phase: start needs --comp (comp already approved) or --direction (comp round still to run)'); process.exit(1); } + if (comp && !fs.existsSync(comp)) { console.error(`build-phase: comp ${comp} does not exist`); process.exit(1); } + // The direction choice ping rides on start (see concept-seed.mjs): one + // command records the choice and opens the phases. Never fatal. + if (direction && arg('kind')) { + try { + const { pingChosen } = await import('./concept-seed.mjs'); + const sent = await pingChosen({ chosenId: arg('chosen') || undefined, key: direction, scope: 'direction', mode: arg('mode') || undefined, kind: arg('kind'), register: arg('register') || undefined }); + console.log(sent ? 'choice recorded' : 'choice ping skipped'); + } catch { console.log('choice ping skipped'); } + } + // Clear the roll's pending marker: the build has started. + try { fs.rmSync(path.join(BUILD_DIR, 'pending.json'), { force: true }); } catch { /* absent */ } + // Code-led: no phase machine to run; say what comes next and stop. + const buildPath = readBuildPath(); + if (direction && !comp && buildPath === 'code') { + console.log('CODE-LED (from .impeccable config): no comp round and no phase gates. Write the direction contract (reference/new-work.md section 5), build, and finish per section 7. The chosen decision comp, if any, rides to the finish review as the critique reference.'); + return; + } + let breakpoint = arg('breakpoint'); + if (!breakpoint && comp) { try { const i = loadRaster(comp).image; breakpoint = `${i.width}x${i.height}`; } catch { /* leave null */ } } + const existing = loadState(); + if (existing && !flag('reset')) { + console.log(`build-phase: state exists (phase ${existing.phase}); pass --reset to start over`); + console.log(renderStatus(existing)); + return; + } + const state = newState({ comp, breakpoint, artifact: arg('artifact'), direction }); + saveState(state); + console.log(renderStatus(state)); + return; + } + const state = loadState(); + if (!state) { console.error(`build-phase: no state at ${STATE_PATH}; run build-phase.mjs start --comp `); process.exit(1); } + if (cmd === 'status') { + if (flag('json')) console.log(JSON.stringify(state, null, 2)); else console.log(renderStatus(state)); + return; + } + if (cmd === 'scaffold') { + const spec = loadSpec(); + if (!spec) { console.error(`build-phase: no spec at ${SPEC_PATH}; run comp-spec.mjs first`); process.exit(1); } + const out = writeScaffold(spec, state); + console.log(`SCAFFOLD ${out.dir}`); + console.log(` ${out.css} one custom property set per region (--r--x/y/w/h in % of the comp; --r--cap, --r--font, --r--weight where measured); bind these to your own markup`); + console.log(` ${out.html} a reference page: every region positioned at its box inside a ${state.breakpoint || spec.compSize.width + 'x' + spec.compSize.height} frame, plates placed with object-fit: contain, text slots at the measured cap height in the ranked face`); + console.log(' The reference is a check, not the page: keep your own semantic structure and bind the numbers to it (an element per region, its box from the properties). Overlapping boxes are overlapping boxes. What the gate reads is pixels; a page that lands each region at its box passes whatever markup it uses.'); + return; + } + if (cmd === 'note') { + const text = process.argv.slice(3).filter((a) => !a.startsWith('--')).join(' '); + state.phases[state.phase].notes.push({ at: now(), text }); + saveState(state); + console.log(`noted on ${state.phase}`); + return; + } + if (cmd === 'record') { + const which = process.argv[3]; + if (which !== 'hero') { console.error('build-phase: record hero --build '); process.exit(1); } + const gate = gateHero(state, { buildPath: arg('build', HERO_REPRO), min: arg('min') ? parseFloat(arg('min')) : HERO_MIN }); + // record is a look, not an attempt: the plates-only capture is expected + // to fail on every text region, and counting it muddied the tally. + state.phases.hero.records = (state.phases.hero.records || 0) + 1; + state.phases.hero.gate = { ...gate, at: now() }; + saveState(state); + // record is the look, advance is the gate: on the plates-only capture, + // every text region reads missing by design, so say what the plates did. + const plateRows = Object.entries(gate.regionVerdicts || {}).filter(([id]) => { const spec = loadSpec(); const r = spec && spec.regions.find((x) => x.id === id); return r && r.medium === 'raster'; }); + if (plateRows.length) console.log(`PLATES ${plateRows.map(([id, v]) => `${id}:${v}`).join(' ')}`); + console.log(`${gate.ok ? 'PASS' : 'FAIL'} ${gate.summary || ''} (record: nothing advanced)`); + for (const r of gate.reasons) console.log(` - ${r}`); + if (gate.advisories) for (const a of gate.advisories) console.log(` ${a}`); + if (gate.worst) console.log(` worst: ${gate.worst.join('; ')}`); + if (gate.sideBySide) console.log(` open ${gate.sideBySide}`); + process.exit(gate.ok ? 0 : 2); + } + if (cmd === 'advance') { + const gateOpts = {}; + if (arg('build')) gateOpts.buildPath = arg('build'); + if (arg('min')) gateOpts.min = parseFloat(arg('min')); + if (arg('artifact')) gateOpts.artifact = arg('artifact'); + const res = advance(state, { force: flag('force'), reason: arg('reason'), gateOpts }); + saveState(state); + if (!res.ok) { + console.log(`GATE ${res.phase ? res.phase.toUpperCase() : ''} FAILED (state unchanged)`); + if (res.gate && res.gate.worstCrops && res.gate.worstCrops.length) { + console.log(' LOOK FIRST, in this order, before editing anything (comp on the left, your build on the right):'); + for (const c of res.gate.worstCrops) console.log(` ${c.file} ${c.id}: ${c.verdict} ${(c.score.overall * 100).toFixed(0)}% (structure ${(c.score.structure * 100).toFixed(0)}%, color ${(c.score.color * 100).toFixed(0)}%, detail ${(c.score.detail * 100).toFixed(0)}%)`); + console.log(' A region scored missing needs its material (a plate placed, or produced), not a value change; contradicted needs its structure re-derived from the spec box; drift is where padding and size edits belong. When a thin chrome strip (masthead, breadcrumb, table header) is the worst region, check its box height in the spec against the comp first: a strip one grid row tall in the spec but 53px in the comp compares your build against ground it never had.'); + } + for (const r of res.reasons) console.log(` - ${r}`); + if (res.gate && res.gate.advisories && res.gate.advisories.length) for (const a of res.gate.advisories) console.log(` ${a}`); + if (res.gate && res.gate.sideBySide) console.log(` then ${res.gate.sideBySide} for the whole viewport`); + process.exit(2); + } + console.log(`ADVANCED ${res.phase} -> ${res.next}${res.forced ? ' (FORCED; recorded)' : ''}${res.gate.summary ? ` ${res.gate.summary}` : ''}`); + if (res.gate && res.gate.advisories && res.gate.advisories.length) for (const a of res.gate.advisories) console.log(` ${a}`); + console.log(`NEXT ${nextInstruction(state)}`); + return; + } + if (cmd === 'finish') { + const disposition = arg('disposition'); + if (!['ship', 'fix', 'rebuild', 'recapture'].includes(disposition)) { console.error('build-phase: finish --disposition ship|fix|rebuild|recapture'); process.exit(1); } + // A ship cannot be recorded over an open phase. The model can still stop + // talking, but it cannot write "ship" into the state with the hero open; + // sessions did exactly that and summarised the build as complete. + const openBefore = PHASES.filter((ph) => ph !== 'review' && state.phases[ph] && state.phases[ph].status !== 'closed' && state.phases[ph].status !== 'skipped'); + if (disposition === 'ship' && openBefore.length) { + console.error(`build-phase: finish --disposition ship refused: ${openBefore.join(', ')} ${openBefore.length === 1 ? 'is' : 'are'} not closed (phase ${state.phase}). Record fix or rebuild, or close the phases first; a page shipped over an open hero is a page shipped against its own gate.`); + process.exit(2); + } + state.finish = { disposition, at: now(), phaseAtFinish: state.phase }; + if (state.phase === 'review') { state.phases.review.status = 'closed'; state.phases.review.closedAt = now(); } + saveState(state); + console.log(renderStatus(state)); + return; + } + console.error(`build-phase: unknown command ${cmd}`); + process.exit(1); +} + +// realpath on both sides: a skill mounted through a symlink (Cursor, a +// worktree, an eval stage) must still run as a CLI. +const isMain = (() => { + try { return !!process.argv[1] && fs.realpathSync(process.argv[1]) === fs.realpathSync(fileURLToPath(import.meta.url)); } + catch { return !!process.argv[1] && path.resolve(process.argv[1]) === path.resolve(new URL(import.meta.url).pathname); } +})(); +if (isMain) main(); diff --git a/skill/scripts/comp-diff.mjs b/skill/scripts/comp-diff.mjs new file mode 100644 index 000000000..082dfe172 --- /dev/null +++ b/skill/scripts/comp-diff.mjs @@ -0,0 +1,391 @@ +#!/usr/bin/env node +/** + * comp-diff: measure a build screenshot against its approved comp and produce + * the evidence a reviewer (human or model) needs to judge fidelity without + * trusting anyone's memory of the image. + * + * node comp-diff.mjs --comp .impeccable/mocks/approved.png --build .impeccable/review/hero-repro.png + * node comp-diff.mjs --comp comp.png --build desktop.png --spec .impeccable/build/spec.json --out-dir .impeccable/review/diff + * node comp-diff.mjs ... --json # machine-readable report on stdout + * node comp-diff.mjs ... --threshold 0.75 # exit 3 when the overall score is below + * + * Inputs: two PNGs. The build capture may be taller than the comp (a full-page + * screenshot); it is scaled to the comp's width and the top comp-height rows + * are compared, because the comp is the first viewport. `--align stretch` + * squashes the whole build onto the comp instead, for a comp that covers a + * whole page. + * + * Outputs (in --out-dir, default .impeccable/review/diff): + * side-by-side.png comp | build, same size, labeled, with the score + * heatmap.png build with the difference painted over it (red = wrong) + * regions/.png paired crops per region at legible scale, scored + * report.json every number below, plus per-region rows + * + * Scores (0..1): structure (blurred SSIM: is the composition the same?), + * color (histogram + dominant palette: is it the same palette at the same + * coverage?), detail (high-frequency energy ratio: did the material survive, + * or did an illustration become a gradient?), bands (do the horizontal + * sections line up?). `overall` weights them 0.35 / 0.25 / 0.25 / 0.15. + * + * Regions come from --spec (comp-spec.mjs output: normalized boxes) or, with + * none, from the comp's own horizontal bands, so the per-region crops exist + * either way. Every region row carries the same four scores plus `verdict`: + * match (>= 0.8), drift (>= 0.6), missing (detail ratio < 0.35 with structure + * < 0.6), or contradicted (everything else). The words are the finish + * reviewer's fidelity vocabulary on purpose. + * + * Exit codes: 0 measured (and above threshold when one is given), 1 usage or + * unreadable input, 3 below threshold. + */ +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { decodePng, encodePng, loadRaster } from './lib/png.mjs'; +import { crop, resize, fit, blit, createImage, fillRect, strokeRect, drawLabel } from './lib/raster.mjs'; +import { structureScore, colorScore, detailScore, diffMap, horizontalBands, bandScore, dominantColors, toGray, blurGray, ssimShifted } from './lib/image-metrics.mjs'; + +function arg(name, fallback = null) { + const i = process.argv.indexOf(`--${name}`); + if (i === -1) return fallback; + const v = process.argv[i + 1]; + return v && !v.startsWith('--') ? v : fallback; +} +const flag = (name) => process.argv.includes(`--${name}`); + +export function readPng(file) { + return loadRaster(file).image; +} + +/** + * Scale the build to the comp's width; take the top comp-height rows + * (align=top), squash the whole build onto the comp (align=stretch), or scale + * to cover and center-crop (align=cover, the way `object-fit: cover` will show + * a plate whose aspect differs from its region). + */ +export function alignBuild(comp, build, align = 'top') { + if (align === 'stretch') return resize(build, comp.width, comp.height); + if (align === 'cover') { + const s = Math.max(comp.width / build.width, comp.height / build.height); + const scaled = resize(build, build.width * s, build.height * s); + return crop(scaled, (scaled.width - comp.width) / 2, (scaled.height - comp.height) / 2, comp.width, comp.height); + } + const scaled = build.width === comp.width ? build : resize(build, comp.width, Math.round((build.height / build.width) * comp.width)); + if (scaled.height === comp.height) return scaled; + if (scaled.height > comp.height) return crop(scaled, 0, 0, comp.width, comp.height); + // shorter than the comp: pad with white so a short page reads as missing content, not as a resize + const out = createImage(comp.width, comp.height, [255, 255, 255, 255]); + blit(out, scaled, 0, 0); + return out; +} + +/** Weights per region kind: what a region is made of decides what losing it looks like. */ +const WEIGHTS = { + default: { structure: 0.35, color: 0.25, detail: 0.25, bands: 0.15 }, + plate: { structure: 0.25, color: 0.2, detail: 0.5, bands: 0.05 }, + image: { structure: 0.25, color: 0.2, detail: 0.5, bands: 0.05 }, + texture: { structure: 0.15, color: 0.35, detail: 0.5, bands: 0 }, + text: { structure: 0.5, color: 0.25, detail: 0.15, bands: 0.1 }, + control: { structure: 0.45, color: 0.35, detail: 0.2, bands: 0 }, +}; + +export function scorePair(a, b, kind = null) { + const structure = structureScore(a, b); + const color = colorScore(a, b); + const detail = detailScore(a, b); + const bandsA = horizontalBands(a), bandsB = horizontalBands(b); + const bands = bandScore(bandsA, bandsB); + const w = WEIGHTS[kind] || WEIGHTS.default; + const overall = w.structure * structure + w.color * color.score + w.detail * detail.score + w.bands * bands; + return { + overall: r4(overall), + structure: r4(structure), + color: r4(color.score), + colorIntersection: r4(color.intersection), + paletteMatch: r4(color.paletteMatch), + detail: r4(detail.score), + detailRaw: r4(detail.rawScore ?? detail.score), + detailAdded: r4(detail.addedFraction), + bands: r4(bands), + _detail: detail, + _bands: { comp: bandsA, build: bandsB }, + }; +} + +/** Kinds that carry the direction: a wrong one is the wrong page, whatever the mean says. */ +export const DIRECTION_KINDS = new Set(['plate', 'image', 'text']); + +/** Best small global translation (build relative to comp), in pixels, by blurred-gray SSIM. */ +export function bestShift(comp, build, workWidth = 256) { + const h = Math.max(8, Math.round((comp.height / comp.width) * workWidth)); + const a = blurGray(toGray(resize(comp, workWidth, h)), 2); + const b = blurGray(toGray(resize(build, workWidth, h)), 2); + const maxShift = Math.max(2, Math.round(workWidth * 0.04)); + let best = { dx: 0, dy: 0, score: ssimShifted(a, b, 0, 0) }; + for (const dy of [-maxShift, -maxShift / 2, 0, maxShift / 2, maxShift]) { + for (const dx of [-maxShift, -maxShift / 2, 0, maxShift / 2, maxShift]) { + const sc = ssimShifted(a, b, Math.round(dx), Math.round(dy)); + if (sc > best.score + 0.01) best = { dx: Math.round(dx), dy: Math.round(dy), score: sc }; + } + } + const scale = comp.width / workWidth; + return { dx: Math.round(best.dx * scale), dy: Math.round(best.dy * scale), score: best.score }; +} + +export function verdictFor(s, kind = null) { + const painted = kind === 'plate' || kind === 'image' || kind === 'texture'; + // Nothing drawn where the comp drew something is missing whatever the + // palette says: a footer strip the build pushed below the fold read as + // 'drift' on ground colour alone (detail 4%, structure 92%). detailRaw is + // 1 when the comp region itself is calm, so a low value already means the + // comp had material there. + if (s.detailRaw != null && s.detailRaw < 0.15) return 'missing'; + if (painted && s.detail < 0.5) return 'missing'; + // For text, chrome, and controls "missing" means the build has nothing + // there, not that a thin strip sits a few pixels off: require the build's + // own energy to be near zero relative to the comp (rawScore, before the + // added-detail penalty), and drift for a mere misalignment. + if (!painted && s.detail < 0.35 && s.structure < 0.6) { + if (s.detailRaw != null && s.detailRaw < 0.2) return 'missing'; + // low detail with structure and palette both holding is grain the build + // renders flatter (a spine of rotated type on textured red), not a + // different composition + if (s.structure >= 0.5 && s.color >= 0.5) return 'drift'; + return 'contradicted'; + } + if (s.detail < 0.35 && s.structure < 0.6) return 'missing'; + // Structure is the one thing a wrong-but-busy region cannot fake: noise, + // a mirrored crop, a swapped column, a tile shuffle all keep color and + // energy and lose structure. Below the floor it is contradicted whatever + // the weighted mean says; painted regions with invented detail likewise. + if (s.structure < 0.3) return 'contradicted'; + if (painted && (s.structure < 0.45 || s.detailAdded > 0.4)) return 'contradicted'; + // Text is set in a substitute face at a slightly different metric almost + // always, and blurred SSIM reads glyph shape; a text region with its + // structure above the swap floor and its palette intact is drift at worst. + // Chasing it past that point is what burned eight to thirteen hero attempts + // per build in the first simulated round. + if (kind === 'text' && s.color >= 0.5) return s.overall >= 0.8 ? 'match' : 'drift'; + // Chrome and controls are thin strips whose "detail" is mostly ground grain + // (a paper texture the build renders flatter, a scanline). When their + // structure and palette hold, low detail is drift, not contradiction. + if ((kind === 'chrome' || kind === 'control') && s.structure >= 0.5 && s.color >= 0.5) return s.overall >= 0.8 ? 'match' : 'drift'; + if (s.overall >= 0.8) return 'match'; + if (s.overall >= 0.6) return 'drift'; + return 'contradicted'; +} + +const r4 = (v) => Math.round(v * 10000) / 10000; + +/** Regions from a spec (normalized boxes) or derived from the comp's bands. */ +export function resolveRegions(comp, spec) { + const regions = []; + if (spec && Array.isArray(spec.regions) && spec.regions.length) { + for (const r of spec.regions) { + const box = r.box || r; + if ([box.x, box.y, box.w, box.h].some((v) => typeof v !== 'number')) continue; + regions.push({ id: r.id || `region-${regions.length + 1}`, x: box.x, y: box.y, w: box.w, h: box.h, kind: r.kind || null }); + } + if (regions.length) return regions; + } + const bands = horizontalBands(comp).filter((b) => b.strength > 0.2); + const cuts = [0, ...bands.map((b) => b.y), 1].filter((v, i, arr) => i === 0 || v - arr[i - 1] > 0.06); + if (cuts[cuts.length - 1] !== 1) cuts.push(1); + for (let i = 0; i + 1 < cuts.length; i++) { + regions.push({ id: `band-${i + 1}`, x: 0, y: cuts[i], w: 1, h: cuts[i + 1] - cuts[i], kind: 'band' }); + } + if (regions.length < 2) { + return [ + { id: 'top', x: 0, y: 0, w: 1, h: 0.5, kind: 'band' }, + { id: 'bottom', x: 0, y: 0.5, w: 1, h: 0.5, kind: 'band' }, + ]; + } + return regions; +} + +/** Crop a normalized region; regions thinner than 48px in either axis are grown to that so tiny strips do not swing on subpixel noise. */ +/** Bounding box of ink (pixels darker/lighter than the region's ground by a margin) within a crop, in px. */ +export function inkBox(img) { + const g = toGray(img); + // ground = median gray; ink = |v - ground| > 48 + const sample = []; for (let i = 0; i < g.data.length; i += Math.max(1, Math.floor(g.data.length / 4000))) sample.push(g.data[i]); + sample.sort((p, q) => p - q); const ground = sample[Math.floor(sample.length / 2)] || 255; + let x0 = img.width, y0 = img.height, x1 = -1, y1 = -1; + for (let y = 0; y < img.height; y++) for (let x = 0; x < img.width; x++) { + if (Math.abs(g.data[y * img.width + x] - ground) > 48) { if (x < x0) x0 = x; if (x > x1) x1 = x; if (y < y0) y0 = y; if (y > y1) y1 = y; } + } + if (x1 < 0) return null; + return { x: x0, y: y0, w: x1 - x0 + 1, h: y1 - y0 + 1 }; +} + +function regionCrop(img, r) { + const minPx = 48; + let x = r.x * img.width, y = r.y * img.height, w = r.w * img.width, h = r.h * img.height; + if (h < minPx) { y -= (minPx - h) / 2; h = minPx; } + if (w < minPx) { x -= (minPx - w) / 2; w = minPx; } + return crop(img, x, y, w, h); +} + +const HEAT_LABEL = { match: [40, 160, 80, 255], drift: [220, 160, 30, 255], missing: [200, 40, 40, 255], contradicted: [200, 40, 40, 255] }; + +export function renderSideBySide(comp, build, label, score) { + const gap = 24, pad = 48; + const targetW = Math.min(comp.width, 1400); + const a = fit(comp, targetW, 100000), b = resize(build, a.width, a.height); + const out = createImage(a.width * 2 + gap + pad * 2, a.height + pad * 2 + 24, [24, 24, 28, 255]); + blit(out, a, pad, pad + 24); + blit(out, b, pad + a.width + gap, pad + 24); + drawLabel(out, 'COMP', pad, pad - 4, { scale: 2 }); + drawLabel(out, `BUILD ${label ? label.toUpperCase() : ''}`.trim(), pad + a.width + gap, pad - 4, { scale: 2 }); + const s = `OVERALL ${(score.overall * 100).toFixed(0)}% STRUCT ${(score.structure * 100).toFixed(0)}% COLOR ${(score.color * 100).toFixed(0)}% DETAIL ${(score.detail * 100).toFixed(0)}% BANDS ${(score.bands * 100).toFixed(0)}%`; + drawLabel(out, s, pad, out.height - pad + 8, { scale: 2, bg: HEAT_LABEL[verdictFor(score)] }); + return out; +} + +export function renderHeatmap(comp, build) { + const map = diffMap(comp, build); + const base = resize(build, map.width, map.height); + const out = { width: base.width, height: base.height, data: new Uint8Array(base.data) }; + for (let i = 0, p = 0; i < map.data.length; i++, p += 4) { + const d = map.data[i]; + if (d < 0.12) { // dim what matches so wrong stands out + out.data[p] = out.data[p] * 0.55 + 255 * 0.45 * 0.2; out.data[p + 1] = out.data[p + 1] * 0.55; out.data[p + 2] = out.data[p + 2] * 0.55; continue; + } + const a = Math.min(1, (d - 0.12) / 0.5); + out.data[p] = out.data[p] * (1 - a) + 235 * a; out.data[p + 1] = out.data[p + 1] * (1 - a) + 40 * a; out.data[p + 2] = out.data[p + 2] * (1 - a) + 40 * a; + } + const scaled = resize(out, comp.width, comp.height); + drawLabel(scaled, 'DIFF: RED = DIFFERS FROM COMP', 12, 12, { scale: 2 }); + return scaled; +} + +export function renderRegionPair(compCrop, buildCrop, id, score) { + const gap = 16, pad = 12; + const maxW = 700; + const a = fit(compCrop, maxW, 700, true), b = resize(buildCrop, a.width, a.height); + const out = createImage(a.width * 2 + gap + pad * 2, a.height + pad * 2 + 30, [24, 24, 28, 255]); + blit(out, a, pad, pad + 30); + blit(out, b, pad + a.width + gap, pad + 30); + const v = verdictFor(score); + drawLabel(out, `${id.toUpperCase()} COMP`, pad, pad, { scale: 2 }); + drawLabel(out, `BUILD ${v.toUpperCase()} ${(score.overall * 100).toFixed(0)}%`, pad + a.width + gap, pad, { scale: 2, bg: HEAT_LABEL[v] }); + return out; +} + +export function compare({ comp, build, spec = null, align = 'top', label = '', kind = null }) { + let aligned = alignBuild(comp, build, align); + const whole = scorePair(comp, aligned, kind); + // Region crops are taken at fixed boxes, so a small global offset (a + // taller masthead, a scrollbar) would read every thin region as + // contradicted while the whole-image search forgives it. Find the best + // global translation once and shift the aligned build by it before + // cropping regions; the whole score above stays as measured. + // The side-by-side and heatmap show the build as captured; only the + // region crops read the shifted copy. (The shifted copy used to be what the + // side-by-side drew, and its padding read as a white "letterbox" on the + // build in every human review.) + const asCaptured = aligned; + const shift = bestShift(comp, aligned); + if (shift.dx || shift.dy) { + const shifted = createImage(aligned.width, aligned.height, [255, 255, 255, 255]); + blit(shifted, aligned, -shift.dx, -shift.dy); + aligned = shifted; + } + const regions = resolveRegions(comp, spec).map((r) => { + const a = regionCrop(comp, r), b = regionCrop(aligned, r); + const s = scorePair(a, b, r.kind); + return { ...r, score: strip(s), verdict: verdictFor(s, r.kind), inkBox: { comp: inkBox(a), build: inkBox(b) }, _a: a, _b: b }; + }); + const compPalette = dominantColors(comp), buildPalette = dominantColors(aligned); + return { label, align, whole: strip(whole), regions, aligned: asCaptured, alignedShifted: aligned, shift, compPalette, buildPalette, _whole: whole }; +} + +function strip(s) { + const { _detail, _bands, ...rest } = s; + return rest; +} + +export function writeArtifacts(result, comp, outDir) { + fs.mkdirSync(path.join(outDir, 'regions'), { recursive: true }); + const side = renderSideBySide(comp, result.aligned, result.label, result.whole); + fs.writeFileSync(path.join(outDir, 'side-by-side.png'), encodePng(side)); + fs.writeFileSync(path.join(outDir, 'heatmap.png'), encodePng(renderHeatmap(comp, result.aligned))); + const regionFiles = []; + for (const r of result.regions) { + const file = path.join(outDir, 'regions', `${r.id}.png`); + fs.writeFileSync(file, encodePng(renderRegionPair(r._a, r._b, r.id, r.score))); + regionFiles.push(file); + } + return { sideBySide: path.join(outDir, 'side-by-side.png'), heatmap: path.join(outDir, 'heatmap.png'), regionFiles }; +} + +export function buildReport(result, files, meta) { + return { + tool: 'comp-diff', + version: 1, + createdAt: new Date().toISOString(), + ...meta, + align: result.align, + overall: result.whole.overall, + verdict: verdictFor(result.whole), + scores: result.whole, + palette: { comp: result.compPalette.map(({ hex, coverage }) => ({ hex, coverage })), build: result.buildPalette.map(({ hex, coverage }) => ({ hex, coverage })) }, + regions: result.regions.map(({ _a, _b, ...r }) => r), + files, + }; +} + +function summarize(report) { + const lines = []; + lines.push(`COMP-DIFF ${report.label ? `[${report.label}] ` : ''}overall ${(report.overall * 100).toFixed(0)}% (${report.verdict}) structure ${(report.scores.structure * 100).toFixed(0)}% color ${(report.scores.color * 100).toFixed(0)}% detail ${(report.scores.detail * 100).toFixed(0)}% bands ${(report.scores.bands * 100).toFixed(0)}%`); + lines.push(`PALETTE comp ${report.palette.comp.slice(0, 5).map((c) => `${c.hex}(${Math.round(c.coverage * 100)}%)`).join(' ')}`); + lines.push(`PALETTE build ${report.palette.build.slice(0, 5).map((c) => `${c.hex}(${Math.round(c.coverage * 100)}%)`).join(' ')}`); + for (const r of report.regions) { + lines.push(`REGION ${r.id.padEnd(18)} ${r.verdict.padEnd(12)} ${(r.score.overall * 100).toFixed(0).padStart(3)}% structure ${(r.score.structure * 100).toFixed(0).padStart(3)}% color ${(r.score.color * 100).toFixed(0).padStart(3)}% detail ${(r.score.detail * 100).toFixed(0).padStart(3)}%${r.score.detailAdded > 0.25 ? ' +invented detail' : ''}`); + } + if (report.files) { + lines.push(`FILES side-by-side ${report.files.sideBySide}`); + lines.push(`FILES heatmap ${report.files.heatmap}`); + lines.push(`FILES regions ${report.files.regionFiles.length} under ${path.dirname(report.files.regionFiles[0] || report.files.heatmap)}`); + } + const worst = [...report.regions].sort((a, b) => a.score.overall - b.score.overall).slice(0, 3); + if (worst.length) lines.push(`WORST ${worst.map((r) => `${r.id} (${r.verdict}, ${(r.score.overall * 100).toFixed(0)}%)`).join('; ')}`); + lines.push('OPEN the side-by-side and the worst region pairs before deciding anything; the numbers rank, the crops decide.'); + return lines.join('\n'); +} + +async function main() { + const compPath = arg('comp'), buildPath = arg('build'); + if (!compPath || !buildPath) { + console.error('usage: comp-diff.mjs --comp --build [--spec spec.json] [--out-dir dir] [--align top|stretch] [--label name] [--threshold 0.75] [--json]'); + process.exit(1); + } + let comp, build; + try { comp = readPng(compPath); } catch (e) { console.error(`comp-diff: cannot read comp ${compPath}: ${e.message}`); process.exit(1); } + try { build = readPng(buildPath); } catch (e) { console.error(`comp-diff: cannot read build ${buildPath}: ${e.message}`); process.exit(1); } + let spec = null; + const specPath = arg('spec'); + if (specPath) { + try { spec = JSON.parse(fs.readFileSync(specPath, 'utf8')); } catch (e) { console.error(`comp-diff: cannot read spec ${specPath}: ${e.message}`); process.exit(1); } + } + const outDir = arg('out-dir', path.join(path.dirname(buildPath), 'diff')); + const label = arg('label', path.basename(buildPath, '.png')); + const result = compare({ comp, build, spec, align: arg('align', 'top'), label }); + const files = flag('no-files') ? null : writeArtifacts(result, comp, outDir); + const report = buildReport(result, files, { label, comp: compPath, build: buildPath, spec: specPath || null, compSize: `${comp.width}x${comp.height}`, buildSize: `${build.width}x${build.height}` }); + if (files) fs.writeFileSync(path.join(outDir, 'report.json'), JSON.stringify(report, null, 2)); + if (flag('json')) console.log(JSON.stringify(report, null, 2)); + else console.log(summarize(report)); + const threshold = arg('threshold') ? parseFloat(arg('threshold')) : null; + if (threshold != null && report.overall < threshold) { + if (!flag('json')) console.log(`BELOW THRESHOLD ${(threshold * 100).toFixed(0)}%: the reproduction is not done. Fix the worst regions and re-run; do not build past the hero.`); + process.exit(3); + } +} + +// realpath on both sides: a skill mounted through a symlink (Cursor, a +// worktree, an eval stage) must still run as a CLI. +const isMain = (() => { + try { return !!process.argv[1] && fs.realpathSync(process.argv[1]) === fs.realpathSync(fileURLToPath(import.meta.url)); } + catch { return !!process.argv[1] && path.resolve(process.argv[1]) === path.resolve(new URL(import.meta.url).pathname); } +})(); +if (isMain) main(); diff --git a/skill/scripts/comp-spec.mjs b/skill/scripts/comp-spec.mjs new file mode 100644 index 000000000..46d5118cd --- /dev/null +++ b/skill/scripts/comp-spec.mjs @@ -0,0 +1,513 @@ +#!/usr/bin/env node +/** + * comp-spec: turn an approved comp into a measured build spec, so the build + * codes against numbers and crops instead of a memory of the image. + * + * Step 1, look at the comp with a coordinate grid on it: + * node comp-spec.mjs --comp .impeccable/mocks/approved.png --grid + * writes .impeccable/build/comp-grid.png (10x10 labeled grid, A-J / 0-9) + * and prints the measured palette and horizontal bands. Open the grid + * image and name every salient region by its grid span. + * + * Step 2, write the regions file (JSON) and measure it: + * node comp-spec.mjs --comp --regions regions.json + * regions.json: { "regions": [ { "id": "exploded-plate", "kind": "plate", + * "grid": "E0:J4", "note": "exploded carburetor line drawing" }, ... ] } + * `grid` is ":" inclusive (A0 top-left cell to J9 bottom + * right); `box` { x, y, w, h } normalized 0..1 is accepted instead. `kind` + * is one of plate | image | texture | text | control | chrome | band. + * Writes .impeccable/build/spec.json: every region with its normalized + * box, pixel box, sampled palette, detail energy, and its medium: raster + * for plate / image / texture (produced as a plate, never CSS), semantic + * for text / control / chrome. `--auto` proposes band regions from the + * comp itself when you have no regions file yet. + * + * Step 3, use it: + * node comp-spec.mjs --print # compact spec for the build thread + * node comp-spec.mjs --crop exploded-plate --out tmp/plate-src.png [--scale 2] [--raw] + * crops the region from the comp (reference for a plate regeneration; a + * crop is never a shipping asset, its resolution is comp grade). For a + * raster region the crop has overlapping text/control/chrome regions + * painted out, matching what the plate prompt asks the generator to + * remove; --raw keeps them. + * node comp-spec.mjs --plate-prompt exploded-plate # the regeneration prompt for that region + * + * comp-diff.mjs reads the same spec (`--spec`) so its region rows and this + * file's rows are the same rows. + */ +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { decodePng, encodePng, loadRaster } from './lib/png.mjs'; +import { crop, resize, fillRect, strokeRect, drawLabel, drawText } from './lib/raster.mjs'; +import { dominantColors, horizontalBands, detailGrid } from './lib/image-metrics.mjs'; + +function arg(name, fallback = null) { + const i = process.argv.indexOf(`--${name}`); + if (i === -1) return fallback; + const v = process.argv[i + 1]; + return v && !v.startsWith('--') ? v : fallback; +} +const flag = (name) => process.argv.includes(`--${name}`); + +export const BUILD_DIR = path.join('.impeccable', 'build'); +export const SPEC_PATH = path.join(BUILD_DIR, 'spec.json'); +export const GRID_PATH = path.join(BUILD_DIR, 'comp-grid.png'); +export const PLATES_DIR = path.join('assets', 'plates'); + +export const RASTER_KINDS = new Set(['plate', 'image', 'texture']); +export const KINDS = new Set(['plate', 'image', 'texture', 'text', 'control', 'chrome', 'band']); +const COLS = 'ABCDEFGHIJ'; + +/** "E0:J4" -> normalized box (inclusive cell span on a 10x10 grid). */ +export function gridToBox(span) { + const m = /^([A-J])(\d):([A-J])(\d)$/i.exec(String(span).trim()); + if (!m) throw new Error(`grid span "${span}" is not :, e.g. E0:J4`); + const c0 = COLS.indexOf(m[1].toUpperCase()), r0 = +m[2], c1 = COLS.indexOf(m[3].toUpperCase()), r1 = +m[4]; + const x0 = Math.min(c0, c1), x1 = Math.max(c0, c1), y0 = Math.min(r0, r1), y1 = Math.max(r0, r1); + return { x: x0 / 10, y: y0 / 10, w: (x1 - x0 + 1) / 10, h: (y1 - y0 + 1) / 10 }; +} + +export function renderGrid(comp) { + const targetW = Math.min(1536, comp.width); + const img = resize(comp, targetW, Math.round((comp.height / comp.width) * targetW)); + const cw = img.width / 10, ch = img.height / 10; + const line = [255, 40, 40, 200]; + for (let i = 1; i < 10; i++) { + fillRect(img, Math.round(i * cw), 0, 1, img.height, line); + fillRect(img, 0, Math.round(i * ch), img.width, 1, line); + } + for (let r = 0; r < 10; r++) for (let c = 0; c < 10; c++) { + drawLabel(img, `${COLS[c]}${r}`, Math.round(c * cw) + 3, Math.round(r * ch) + 3, { scale: 2, bg: [0, 0, 0, 170], fg: [255, 230, 120, 255] }); + } + return img; +} + +function paletteOf(img) { + return dominantColors(img, 5).map(({ hex, coverage }) => ({ hex, coverage })); +} + +/** Words in a region note that name painted material rather than code-drawn UI. */ +export const PAINTED_NOTE = /\b(diagram|drawing|drawn|illustration|illustrations|illustrated|figure|schematic|exploded|photo|photos|photograph\w*|picture|painting|painted|render|rendered|rendering|artwork|engraving|etching|linework|line art|texture|textured|textures|grain|fabric|halftone|watercolou?r|sketch|sketched|blueprint|geometry|leader lines?|callout lines?|thumbnail|silhouette|product shot|hero image|3d)\b/i; + +/** A text/control/chrome region larger than this fraction of the comp is a column, not an element. */ +export const MAX_CODE_REGION_AREA = 0.25; + +/** Fraction of an edge's length the artwork's dark mass has to touch to count as running off the box. */ +export const EDGE_CONTACT_MIN = 0.35; + +/** + * Which edges of a plate region crop the artwork touches. 'Artwork' is the + * region's non-ground mass: pixels far from the crop's median gray. A margin + * of paper along an edge means the shape ends inside the box; a long run of + * ink along it means the shape continues past it. + */ +export function artworkTouchesEdges(img, { contact = EDGE_CONTACT_MIN, band = 2, ground = null } = {}) { + const W = img.width, H = img.height; + const gray = new Float32Array(W * H); + for (let i = 0, j = 0; i < img.data.length; i += 4, j++) gray[j] = 0.299 * img.data[i] + 0.587 * img.data[i + 1] + 0.114 * img.data[i + 2]; + // ground is the page's, not the crop's: a region that is mostly a black + // arch on paper has a mid-gray median and every edge reads as ink + if (ground == null) { + const sample = []; for (let i = 0; i < gray.length; i += Math.max(1, Math.floor(gray.length / 5000))) sample.push(gray[i]); + sample.sort((a, b) => a - b); ground = sample[Math.floor(sample.length / 2)]; + } + const ink = (x, y) => Math.abs(gray[y * W + x] - ground) > 60; + const sides = []; + // the longest contiguous run of ink along the edge, as a fraction of it: + // an arch cut by the box leaves a long unbroken contact; grain, a rule + // crossing, or a line of small type leave short ones + const run = (n, at) => { let best = 0, cur = 0; for (let i = 0; i < n; i++) { if (at(i)) { cur++; if (cur > best) best = cur; } else cur = 0; } return best / n; }; + if (run(H, (y) => { for (let x = 0; x < band; x++) if (ink(x, y)) return true; return false; }) >= contact) sides.push('left'); + if (run(H, (y) => { for (let x = W - band; x < W; x++) if (ink(x, y)) return true; return false; }) >= contact) sides.push('right'); + if (run(W, (x) => { for (let y = 0; y < band; y++) if (ink(x, y)) return true; return false; }) >= contact) sides.push('top'); + if (run(W, (x) => { for (let y = H - band; y < H; y++) if (ink(x, y)) return true; return false; }) >= contact) sides.push('bottom'); + return sides; +} + +/** + * Shrink a normalized box to the ink inside it (pixels far from the page + * ground), padded by `pad` px, never grown. Returns null when the crop has no + * ink or the ink fills the box already. + */ +export function snapBoxToInk(comp, box, ground, { pad = 6, minShrink = 0.06 } = {}) { + const px = { x: Math.round(box.x * comp.width), y: Math.round(box.y * comp.height), w: Math.round(box.w * comp.width), h: Math.round(box.h * comp.height) }; + if (px.w < 8 || px.h < 8) return null; + const c = crop(comp, px.x, px.y, px.w, px.h); + const W = c.width, H = c.height; + let x0 = W, y0 = H, x1 = -1, y1 = -1; + for (let y = 0; y < H; y++) for (let x = 0; x < W; x++) { + const i = (y * W + x) * 4; + const g = 0.299 * c.data[i] + 0.587 * c.data[i + 1] + 0.114 * c.data[i + 2]; + if (Math.abs(g - ground) > 60) { if (x < x0) x0 = x; if (x > x1) x1 = x; if (y < y0) y0 = y; if (y > y1) y1 = y; } + } + if (x1 < 0) return null; + // The bounding box of all ink cannot shed a neighbour that shares the + // span (a spine at the left edge, the next column's text at the right). + // Take the largest connected ink mass instead: cells of `cell` px are + // inked when 4% of their pixels are; 8-connected components; the one + // with the most inked cells is the element the region names. + const cell = Math.max(6, Math.round(Math.min(W, H) / 40)); + const cw = Math.ceil(W / cell), ch = Math.ceil(H / cell); + const on = new Uint8Array(cw * ch), cnt = new Uint16Array(cw * ch); + for (let y = 0; y < H; y++) for (let x = 0; x < W; x++) { + const i = (y * W + x) * 4; + const g = 0.299 * c.data[i] + 0.587 * c.data[i + 1] + 0.114 * c.data[i + 2]; + if (Math.abs(g - ground) > 60) cnt[Math.floor(y / cell) * cw + Math.floor(x / cell)]++; + } + for (let i = 0; i < on.length; i++) on[i] = cnt[i] >= cell * cell * 0.04 ? 1 : 0; + // dilate by one cell so the letters of a word and the lines of a block + // join into one mass; a neighbouring column a few cells away stays apart + const grown = new Uint8Array(on.length); + for (let y = 0; y < ch; y++) for (let x = 0; x < cw; x++) { + if (!on[y * cw + x]) continue; + for (let dy = -1; dy <= 1; dy++) for (let dx = -1; dx <= 1; dx++) { const nx = x + dx, ny = y + dy; if (nx >= 0 && ny >= 0 && nx < cw && ny < ch) grown[ny * cw + nx] = 1; } + } + const mask = grown; + const label = new Int32Array(cw * ch).fill(-1); + let best = null; + for (let s0 = 0; s0 < on.length; s0++) { + if (!mask[s0] || label[s0] >= 0) continue; + const stack = [s0]; label[s0] = s0; let n = 0, bx0 = cw, by0 = ch, bx1 = -1, by1 = -1; + while (stack.length) { + const k = stack.pop(); + const kx = k % cw, ky = (k / cw) | 0; + if (on[k]) { n += cnt[k]; if (kx < bx0) bx0 = kx; if (kx > bx1) bx1 = kx; if (ky < by0) by0 = ky; if (ky > by1) by1 = ky; } + for (let dy = -1; dy <= 1; dy++) for (let dx = -1; dx <= 1; dx++) { + const nx = kx + dx, ny = ky + dy; if (nx < 0 || ny < 0 || nx >= cw || ny >= ch) continue; + const nk = ny * cw + nx; if (mask[nk] && label[nk] < 0) { label[nk] = s0; stack.push(nk); } + } + } + // a mass touching the span's left or right edge continues past it (the + // spine, the next column); the element the region names sits inside. + // Prefer an inside mass unless the edge mass is far heavier. + const touchesSide = bx0 === 0 || bx1 === cw - 1; + const cand = { n, bx0, by0, bx1, by1, touchesSide }; + if (!best) best = cand; + else if (best.touchesSide && !cand.touchesSide && cand.n * 3 >= best.n) best = cand; + else if (!best.touchesSide && cand.touchesSide && cand.n < best.n * 3) { /* keep inside */ } + else if (cand.n > best.n) best = cand; + } + if (best) { x0 = best.bx0 * cell; y0 = best.by0 * cell; x1 = Math.min(W - 1, (best.bx1 + 1) * cell - 1); y1 = Math.min(H - 1, (best.by1 + 1) * cell - 1); } + const nx0 = Math.max(0, x0 - pad), ny0 = Math.max(0, y0 - pad), nx1 = Math.min(W, x1 + 1 + pad), ny1 = Math.min(H, y1 + 1 + pad); + const shrink = 1 - ((nx1 - nx0) * (ny1 - ny0)) / (W * H); + if (shrink < minShrink) return null; + return { x: (px.x + nx0) / comp.width, y: (px.y + ny0) / comp.height, w: (nx1 - nx0) / comp.width, h: (ny1 - ny0) / comp.height }; +} + +function medianGray(img) { + const sample = []; + const step = Math.max(1, Math.floor((img.width * img.height) / 6000)); + for (let j = 0; j < img.width * img.height; j += step) { const i = j * 4; sample.push(0.299 * img.data[i] + 0.587 * img.data[i + 1] + 0.114 * img.data[i + 2]); } + sample.sort((a, b) => a - b); + return sample[Math.floor(sample.length / 2)]; +} + +function energyOf(img) { + const g = detailGrid(img, 4, 4, 256); + let s = 0; for (const v of g.cells) s += v; + return s / g.cells.length; +} + + +/** + * Grid cells (10x10) that carry ink the regions do not name. A regions file + * that omits the comp's callouts, notes block, or parts table makes those + * elements invisible to every later gate (they are never 'missing' if they + * were never named), so the spec refuses to close over them. Texture and + * band regions do not cover: a full-bleed paper texture names the ground, + * not the drawing on it. + */ +export function uncoveredInkCells(comp, regions) { + const grid = detailGrid(comp, 10, 10, 512); + const cells = []; + // The ground's own energy (paper grain, gradient) is the quietest tenth of + // cells; ink is anything clearly above that. Median-relative thresholds + // fail on textured comps where every cell carries grain. + const energies = [...grid.cells].sort((a, b) => a - b); + const ground = energies[Math.floor(energies.length * 0.1)] || 0; + const threshold = Math.max(4, ground * 2.2, ground + 12); + for (let r = 0; r < 10; r++) for (let c = 0; c < 10; c++) { + const e = grid.cells[r * 10 + c]; + if (e < threshold) continue; + const cx = (c + 0.5) / 10, cy = (r + 0.5) / 10; + const covered = regions.some((reg) => { const b = reg.coverBox || reg.box; return reg.kind !== 'texture' && reg.kind !== 'band' && cx >= b.x && cx <= b.x + b.w && cy >= b.y && cy <= b.y + b.h; }); + if (!covered) cells.push(`${COLS[c]}${r}`); + } + return cells; +} + +export function measureRegions(comp, regionsInput, compPath) { + const regions = []; + const warnings = []; + const seen = new Set(); + const pageGround = medianGray(comp); + for (const raw of regionsInput.regions || []) { + if (!raw.id) throw new Error('every region needs an id'); + if (seen.has(raw.id)) throw new Error(`duplicate region id ${raw.id}`); + seen.add(raw.id); + const kind = raw.kind && KINDS.has(raw.kind) ? raw.kind : 'band'; + // Every region says what it is. The note is what the plate prompt, the + // gate messages, and the painted-material check read; a regions file of + // bare ids and kinds is a list of boxes, and a session that named a + // carburetor drawing "chrome" with no note was caught by nothing. + if (kind !== 'band' && !(raw.note && String(raw.note).trim().length >= 8)) { + throw new Error(`region ${raw.id} has no note. Say in a few words what the comp shows there (the element, its material, its role): the note drives the plate prompt and the gate's messages, and a drawing named as chrome is only caught by what its note says.`); + } + // The note is the model's own reading of the region. A note that names + // painted material (a drawing, diagram, photo, illustration, texture) + // filed under a code kind is a plate about to be redrawn in SVG: the + // exploded carburetor "chrome" that the hero gate then scores missing. + // Refuse at the spec, where the fix is one word, not at the hero. + // Escape hatches persist into the spec and announce themselves: a + // refusal overridden in regions.json used to vanish from spec.json, so + // the shipped spec showed a clean classification with no trace (found in + // the ninth sweep, where both carburetor illustrations were filed as + // chrome behind codeDrawn: true). + for (const key of ['codeDrawn', 'container', 'bleed']) { + if (raw[key]) warnings.push(`region ${raw.id}: "${key}": true set in the regions file${key === 'codeDrawn' ? ' (the painted-material refusal is overridden: code draws this region)' : key === 'container' ? ' (the region-size refusal is overridden: one undivided element)' : ' (the clipped-artwork refusal is overridden: the page crops it there)'}`); + } + if (raw.note && !RASTER_KINDS.has(kind) && kind !== 'band' && PAINTED_NOTE.test(raw.note) && !raw.codeDrawn) { + throw new Error(`region ${raw.id} is kind "${kind}" but its note describes painted material ("${raw.note}"). Anything drawn, photographed, or textured ships as a raster plate: set kind to plate (illustration, diagram, figure), image (photograph), or texture (ground). If the note is wrong and code really draws it (a table, a rule, a chrome bar), reword the note or set "codeDrawn": true on the region.`); + } + let box = raw.box && typeof raw.box.x === 'number' ? raw.box : gridToBox(raw.grid); + // A grid span over-covers: a headline named B1:E4 carries the deck below + // it and a slice of the next column, and every measurement downstream + // (cap height, line count, structure) inherits that slop; a session + // wrote a note saying its hero sat at 67 because the boxes straddled + // elements, and it was right. Text and control regions snap to the ink + // inside their span (page ground as the reference, a small pad); plates, + // textures, chrome, and any region given an explicit box are left as + // drawn. The grid stays on the record. + let coverBox = null; + if (!raw.box && raw.grid && (kind === 'text' || kind === 'control') && raw.snap !== false) { + const snapped = snapBoxToInk(comp, box, pageGround); + if (snapped) { coverBox = box; box = snapped; } + } + // A code region is one element the page draws: a headline, a table, a + // button, a bar. A "chrome" region covering a third of the comp is a + // column, and a column scored as one region hides everything inside it + // (a session named seven regions for a page with three plates, a table, + // a note, callouts and a spine, and the hero gate could name nothing). + // Raster regions may be as large as the material; a texture is a sample. + const area = box.w * box.h; + if (!RASTER_KINDS.has(kind) && kind !== 'band' && area > MAX_CODE_REGION_AREA && !raw.container) { + throw new Error(`region ${raw.id} (${kind}) covers ${Math.round(area * 100)}% of the comp; a code region is one element (a headline, a table, a control, a rule, a bar), and one this large is a column holding several. Name each element inside it as its own region (every illustration or photo as a plate), or set "container": true on the region if it truly is one undivided element.`); + } + const px = { x: Math.round(box.x * comp.width), y: Math.round(box.y * comp.height), w: Math.round(box.w * comp.width), h: Math.round(box.h * comp.height) }; + const c = crop(comp, px.x, px.y, px.w, px.h); + const energy = energyOf(c); + const raster = RASTER_KINDS.has(kind); + // A plate box that cuts through its own artwork is a plate the page will + // crop: object-fit: cover on that box shows the artwork with the side the + // box lost, and the hero passed a cover arch cut flat on the left and + // bleeding into the footer at 87%. Measure the artwork's edge contact + // and say it here, where the fix is a wider grid span. + // sides on the comp's own edge do not count: the comp crops there too + const atCompEdge = { left: px.x <= 1, top: px.y <= 1, right: px.x + px.w >= comp.width - 1, bottom: px.y + px.h >= comp.height - 1 }; + const clipped = raster && kind !== 'texture' && !raw.bleed ? artworkTouchesEdges(c, { ground: pageGround }).filter((side) => !atCompEdge[side]) : []; + if (clipped.length) warnings.push(`region ${raw.id}: the artwork runs off the box on the ${clipped.join(' and ')} (its ink reaches the edge over ${EDGE_CONTACT_MIN * 100}% of that side). Widen the region so the box holds the whole shape with a margin; a plate placed with object-fit: cover on this box would be cut there.`); + regions.push({ + id: raw.id, + kind, + note: raw.note || null, + grid: raw.grid || null, + codeDrawn: raw.codeDrawn ? true : undefined, + container: raw.container ? true : undefined, + bleed: raw.bleed ? true : undefined, + snap: raw.snap === false ? false : undefined, + coverBox: coverBox ? { x: r4(coverBox.x), y: r4(coverBox.y), w: r4(coverBox.w), h: r4(coverBox.h) } : undefined, + box: { x: r4(box.x), y: r4(box.y), w: r4(box.w), h: r4(box.h) }, + px, + aspect: r4(px.w / px.h), + palette: paletteOf(c), + detail: { energy: r4(energy) }, + medium: raw.medium || (raster ? 'raster' : 'semantic'), + clipped: clipped.length ? clipped : undefined, + plate: raster ? (raw.plate || path.join(PLATES_DIR, `${raw.id}.png`)) : null, + text: raw.text || null, + }); + } + const uncovered = uncoveredInkCells(comp, regions); + if (uncovered.length > 3 && !regionsInput.allowUncovered) { + throw new Error(`grid cells ${uncovered.join(', ')} carry ink no region names. Every element the comp shows must be in a region (text, control, chrome, or a plate) so its absence in the build can be measured; add regions for them, or set "allowUncovered": true in the regions file after confirming those cells are empty ground.`); + } + return { + tool: 'comp-spec', + version: 1, + createdAt: new Date().toISOString(), + comp: compPath, + warnings, + uncoveredInkCells: uncovered, + compSize: { width: comp.width, height: comp.height }, + aspect: r4(comp.width / comp.height), + orientation: comp.width >= comp.height ? 'landscape' : 'portrait', + palette: paletteOf(comp), + bands: horizontalBands(comp).filter((b) => b.strength > 0.2).map((b) => ({ y: r4(b.y), strength: r4(b.strength) })), + regions, + }; +} + +/** Propose regions from the comp's bands when no regions file exists yet. */ +export function autoRegions(comp) { + const bands = horizontalBands(comp).filter((b) => b.strength > 0.2); + const cuts = [0, ...bands.map((b) => b.y), 1].filter((v, i, arr) => i === 0 || v - arr[i - 1] > 0.06); + if (cuts[cuts.length - 1] !== 1) cuts.push(1); + const regions = []; + for (let i = 0; i + 1 < cuts.length; i++) regions.push({ id: `band-${i + 1}`, kind: 'band', box: { x: 0, y: cuts[i], w: 1, h: cuts[i + 1] - cuts[i] } }); + return { regions }; +} + +const r4 = (v) => Math.round(v * 10000) / 10000; + +/** + * The comp crop of a raster region, with every overlapping semantic region + * (text, control, chrome) painted out in the crop's own ground color. The + * plate prompt tells the generator to remove UI text and chrome, so a good + * plate must be scored against a crop that has them removed too; otherwise + * the plate loses structure points for obeying the spec. + */ +export function plateReference(comp, spec, region) { + const c = crop(comp, region.px.x, region.px.y, region.px.w, region.px.h); + const ground = (region.palette && region.palette[0] && hexToRgb(region.palette[0].hex)) || [255, 255, 255]; + for (const other of spec.regions || []) { + if (other.id === region.id || RASTER_KINDS.has(other.kind) || other.kind === 'band') continue; + const ox = Math.max(0, other.px.x - region.px.x), oy = Math.max(0, other.px.y - region.px.y); + const ox2 = Math.min(region.px.w, other.px.x + other.px.w - region.px.x), oy2 = Math.min(region.px.h, other.px.y + other.px.h - region.px.y); + if (ox2 <= ox || oy2 <= oy) continue; + fillRect(c, ox, oy, ox2 - ox, oy2 - oy, [...ground, 255]); + } + return c; +} + +function hexToRgb(hex) { + const m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(hex || ''); + return m ? [parseInt(m[1], 16), parseInt(m[2], 16), parseInt(m[3], 16)] : null; +} + +export function platePrompt(spec, region) { + const world = spec.palette.slice(0, 3).map((c) => c.hex).join(', '); + const kindLine = region.kind === 'texture' + ? 'This is a seamless surface texture. Output a tileable texture plate with no objects, no text, no vignette.' + : region.kind === 'image' + ? 'This is a photographic or illustrated image region. Output the same subject, same framing, same lighting.' + : 'This is a designed illustration plate. Output the same drawing, same style, same line weight and shading.'; + return [ + 'Use the provided crop as the approved visual reference and recreate it as a clean production asset at the target aspect ratio.', + kindLine, + `Preserve silhouette, composition, perspective, palette (${world}), lighting, material, and texture exactly.`, + 'Remove every piece of UI text, label, caption, button, and interface chrome that is not part of the artwork itself.', + 'Remove letterboxing, borders, card corners, drop shadows, and any layout background that the page will draw in code.', + 'Do not add objects. Do not change the concept. Do not restyle. The artwork fills the whole frame edge to edge at the same scale as the reference; no margins, no border, no background band.', + region.note ? `Region: ${region.note}.` : '', + ].filter(Boolean).join(' '); +} + +export function printSpec(spec) { + const lines = []; + lines.push(`SPEC comp ${spec.comp} ${spec.compSize.width}x${spec.compSize.height} ${spec.orientation}`); + lines.push(`PALETTE ${spec.palette.map((c) => `${c.hex}(${Math.round(c.coverage * 100)}%)`).join(' ')}`); + lines.push(`BANDS ${spec.bands.map((b) => `${Math.round(b.y * 100)}%`).join(' ') || 'none'}`); + for (const r of spec.regions) { + const b = r.box; + lines.push(`REGION ${r.id.padEnd(18)} ${r.kind.padEnd(8)} ${r.medium.padEnd(8)} box x${Math.round(b.x * 100)}% y${Math.round(b.y * 100)}% w${Math.round(b.w * 100)}% h${Math.round(b.h * 100)}% (${r.px.w}x${r.px.h}px, ${r.aspect}:1) palette ${r.palette.slice(0, 3).map((c) => c.hex).join(' ')}${r.plate ? ` plate ${r.plate}` : ''}${r.note ? ` # ${r.note}` : ''}`); + } + const plates = spec.regions.filter((r) => r.medium === 'raster'); + lines.push(`PLATES ${plates.length} to produce: ${plates.map((r) => r.id).join(', ') || 'none'}`); + for (const w of spec.warnings || []) lines.push(`WARN ${w}`); + lines.push('RULE anything not in this list does not exist on the page: no borders, rules, chrome, or containers the comp does not show. Every raster region ships as its plate, never as CSS.'); + return lines.join('\n'); +} + +export function loadSpec(specPath = SPEC_PATH) { + if (!fs.existsSync(specPath)) return null; + return JSON.parse(fs.readFileSync(specPath, 'utf8')); +} + +async function main() { + const specPath = arg('spec', SPEC_PATH); + if (flag('help') || process.argv.length <= 2) { + console.log(`usage: comp-spec.mjs --comp --grid write .impeccable/build/comp-grid.png (10x10 labeled grid) + palette + bands + comp-spec.mjs --comp --regions measure regions -> .impeccable/build/spec.json + regions json: { "regions": [ { "id": "art", "kind": "plate|image|texture|text|control|chrome", "grid": "E0:J4", "note": "..." } ] } + comp-spec.mjs --comp --auto band regions when you have no regions file + comp-spec.mjs --print the compact spec + comp-spec.mjs --crop [--out f] [--scale n] reference crop of a region (never a shipping asset) + comp-spec.mjs --plate-prompt the regeneration prompt for a raster region`); + return; + } + if (flag('print')) { + const spec = loadSpec(specPath); + if (!spec) { console.error(`comp-spec: no spec at ${specPath}; run with --comp --regions first`); process.exit(1); } + console.log(printSpec(spec)); + return; + } + if (arg('plate-prompt')) { + const spec = loadSpec(specPath); + if (!spec) { console.error(`comp-spec: no spec at ${specPath}`); process.exit(1); } + const region = spec.regions.find((r) => r.id === arg('plate-prompt')); + if (!region) { console.error(`comp-spec: no region ${arg('plate-prompt')}`); process.exit(1); } + console.log(platePrompt(spec, region)); + return; + } + if (arg('crop')) { + const spec = loadSpec(specPath); + if (!spec) { console.error(`comp-spec: no spec at ${specPath}`); process.exit(1); } + const region = spec.regions.find((r) => r.id === arg('crop')); + if (!region) { console.error(`comp-spec: no region ${arg('crop')}; ids: ${spec.regions.map((r) => r.id).join(', ')}`); process.exit(1); } + const comp = loadRaster(spec.comp).image; + let c = region.medium === 'raster' && !flag('raw') ? plateReference(comp, spec, region) : crop(comp, region.px.x, region.px.y, region.px.w, region.px.h); + const scale = parseFloat(arg('scale', '1')); + if (scale > 1) c = resize(c, c.width * scale, c.height * scale); + const out = arg('out', path.join(BUILD_DIR, 'crops', `${region.id}.png`)); + fs.mkdirSync(path.dirname(out), { recursive: true }); + fs.writeFileSync(out, encodePng(c, { text: { 'impeccable:crop-of': `${spec.comp}#${region.id}` } })); + console.log(`CROP ${out} (${c.width}x${c.height}) region ${region.id} of ${spec.comp}. Reference only: regenerate the plate from it, never ship it.`); + return; + } + + const compPath = arg('comp'); + if (!compPath) { + console.error('usage: comp-spec.mjs --comp (--grid | --regions | --auto) [--spec out.json]\n comp-spec.mjs --print | --crop [--out file] [--scale n] | --plate-prompt '); + process.exit(1); + } + let comp; + try { comp = loadRaster(compPath).image; } catch (e) { console.error(`comp-spec: cannot read ${compPath}: ${e.message}`); process.exit(1); } + + if (flag('grid')) { + fs.mkdirSync(path.dirname(GRID_PATH), { recursive: true }); + fs.writeFileSync(GRID_PATH, encodePng(renderGrid(comp))); + console.log(`GRID ${GRID_PATH} (${comp.width}x${comp.height} comp; cells A0 top-left to J9 bottom-right)`); + console.log(`PALETTE ${paletteOf(comp).map((c) => `${c.hex}(${Math.round(c.coverage * 100)}%)`).join(' ')}`); + console.log(`BANDS ${horizontalBands(comp).filter((b) => b.strength > 0.2).map((b) => `${Math.round(b.y * 100)}%`).join(' ') || 'none'}`); + console.log('NEXT open the grid image, then write regions.json in exactly this shape and run --regions regions.json:'); + console.log(' { "regions": [ { "id": "exploded-plate", "kind": "plate", "grid": "E0:H4", "note": "exploded carburetor drawing" }, { "id": "masthead", "kind": "chrome", "grid": "A0:J0", "note": "navy bar" } ] }'); + console.log(' kind: plate | image | texture (painted material: every illustration, photograph, figure, product object, texture; each ships as a raster plate) or text | control | chrome (code draws it). grid: :, A0 top-left to J9 bottom-right, inclusive.'); + console.log(' A texture region is a clean sample cell of the material (ground with no ink on it), not the whole band it covers; the page tiles it. Ink that sits on the material gets its own text/control region.'); + return; + } + + let regionsInput; + if (arg('regions')) { + try { regionsInput = JSON.parse(fs.readFileSync(arg('regions'), 'utf8')); } catch (e) { console.error(`comp-spec: cannot read regions ${arg('regions')}: ${e.message}`); process.exit(1); } + } else if (flag('auto')) { + regionsInput = autoRegions(comp); + } else { + console.error('comp-spec: pass --grid to get the coordinate grid, then --regions (or --auto for band regions)'); + process.exit(1); + } + let spec; + try { spec = measureRegions(comp, regionsInput, compPath); } catch (e) { console.error(`comp-spec: ${e.message}`); process.exit(1); } + fs.mkdirSync(path.dirname(specPath), { recursive: true }); + fs.writeFileSync(specPath, JSON.stringify(spec, null, 2)); + console.log(`WROTE ${specPath}`); + console.log(printSpec(spec)); +} + +// realpath on both sides: a skill mounted through a symlink (Cursor, a +// worktree, an eval stage) must still run as a CLI. +const isMain = (() => { + try { return !!process.argv[1] && fs.realpathSync(process.argv[1]) === fs.realpathSync(fileURLToPath(import.meta.url)); } + catch { return !!process.argv[1] && path.resolve(process.argv[1]) === path.resolve(new URL(import.meta.url).pathname); } +})(); +if (isMain) main(); diff --git a/skill/scripts/concept-seed.mjs b/skill/scripts/concept-seed.mjs index fc44ed067..991dc629b 100644 --- a/skill/scripts/concept-seed.mjs +++ b/skill/scripts/concept-seed.mjs @@ -90,7 +90,8 @@ */ import crypto from 'node:crypto'; -import { dirname, join, resolve } from 'node:path'; +import { dirname, join, relative, resolve } from 'node:path'; +import { readFileSync } from 'node:fs'; import { fileURLToPath } from 'node:url'; import { approvedPoolRevision, @@ -613,16 +614,22 @@ rivals to your habitual layout, and keep only what makes this product clearer.${ assignment by deal order, so the dice still choose. Verdicts and donations apply between the challengers, weighed against the leader. The pick card sits out; the canon stays, as always.`; - const telemetryBlock = data.source === 'api' - ? `TELEMETRY: after the user's choice resolves, rerun this script once with - --kind --from ${key} --scope ${scope}${mode ? ` --mode ${mode}` : ''}, - adding --chosen when a dealt challenger won and keeping - --register when the resolved round came from a steered hand. - One ping per resolved attended round. The ping is anonymous, the card kind - plus the catalog id when one won; your grounded candidates' names never - leave the machine, and the ping is skipped automatically when DO_NOT_TRACK - or IMPECCABLE_NO_TELEMETRY is set.\n` - : ''; + // The one command that follows a resolved choice. It records the choice + // (anonymous telemetry on API-dealt rolls; skipped under DO_NOT_TRACK / + // IMPECCABLE_NO_TELEMETRY) and opens the build's phase machine, whose + // first gate is the comp round on a comp-led build. Every run that skipped + // the comp round did so by treating a separate "telemetry ping" as + // bookkeeping: suppressed with >/dev/null, run after the page was written, + // or never run. So there is no separate ping; the start command is the + // ping, and it is not optional. + const nextCommand = scope === 'direction' + ? `AFTER THE CHOICE, run exactly one command and follow what it prints (do not suppress its output; do not write page code before it): + node ${relative(process.cwd(), here) || '.'}/build-phase.mjs start --direction ${key} --kind ${data.source === 'api' ? ' [--chosen ]' : ''}${register ? ` --register ${register}` : ''} + It records the choice${data.source === 'api' ? ' (anonymous: card kind plus catalog id; skipped under DO_NOT_TRACK / IMPECCABLE_NO_TELEMETRY)' : ''} and opens the build phases: on a comp-led build the comp round is the first gate (three comps, one approved) and no page code is written before it closes; on a code-led build it prints the contract step. A build without this state file is a build the finish reviewer treats as having skipped the round.\n` + : (data.source === 'api' + ? `AFTER THE CHOICE, run once: node ${relative(process.cwd(), here) || '.'}/concept-seed.mjs --kind --from ${key} --scope ${scope}${mode ? ` --mode ${mode}` : ''} (records the choice; the locked card's comp is the approved comp, so then: node ${relative(process.cwd(), here) || '.'}/build-phase.mjs start --comp ).\n` + : `AFTER THE CHOICE: the locked card's comp is the approved comp; run node ${relative(process.cwd(), here) || '.'}/build-phase.mjs start --comp and follow what it prints.\n`); + const telemetryBlock = nextCommand; const assignedBlock = register === null ? `${scope === 'direction' ? `ASSIGNED INDEX: ${buildIndex}` : `DEALT INDICES: ${dealtIndices.join(', ')} (index ${buildIndex} leads)`} ${promotedInstruction} @@ -666,6 +673,36 @@ ${restated} `; } +/** + * What the model must do next, once a direction (or surface structure) is + * chosen. Read from the same config the boot directive reads: + * `.impeccable/config.local.json` over `.impeccable/config.json`, + * `buildPath` comp|code; with neither, comp-led whenever image generation + * exists (an OpenAI key here; a harness-native image tool is invisible to + * this script, so the text names it too), code-led otherwise. + */ +export function nextStepAfterChoice({ key, scope, cwd = process.cwd(), env = process.env } = {}) { + let buildPath = null; + for (const name of ['config.json', 'config.local.json']) { + try { + const raw = JSON.parse(readFileSync(resolve(cwd, '.impeccable', name), 'utf8')); + if (raw?.buildPath === 'comp' || raw?.buildPath === 'code') buildPath = raw.buildPath; + } catch { /* absent */ } + } + const scriptsDir = dirname(fileURLToPath(import.meta.url)); + const scripts = relative(cwd, scriptsDir) || '.'; + const imageGen = !!env.OPENAI_API_KEY; + const seed = key ? ` --direction ${key}` : ''; + if (buildPath === 'code') { + return `NEXT (code-led, from .impeccable config): write the direction contract, then build; no comp round. Load reference/new-work.md section 5 and 6.\n`; + } + const why = buildPath === 'comp' ? 'from .impeccable config' : imageGen ? 'default: image generation is available' : 'default: comp-led unless no image tool exists; if your harness truly has none and there is no OpenAI key, this is code-led and you say so in one line'; + if (scope === 'surface') { + return `NEXT (comp-led, ${why}): the locked card's comp is the approved comp. Run: node ${scripts}/build-phase.mjs start --comp and follow its NEXT lines. Do not write page code before build-phase.mjs advance has closed the spec, plates, and hero gates.\n`; + } + return `NEXT (comp-led, ${why}): the world is chosen; the composition is not. Run: node ${scripts}/build-phase.mjs start${seed} and follow its NEXT lines: it opens the comps phase (three comps under .impeccable/mocks/, one approved by the user through the decision page or structured question, sidecar "approved": true), then spec, plates, hero, sections, motion, responsive, review. Do not write page code before those gates close. Reference: reference/visualize.md for the comp round.\n`; +} + if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.url)) { const args = process.argv.slice(2); const fromIdx = args.indexOf('--from'); @@ -692,7 +729,27 @@ if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.ur register: registerIdx !== -1 ? args[registerIdx + 1] : undefined, }); process.stdout.write(sent ? 'choice recorded\n' : 'choice ping skipped\n'); + // The choice is resolved; this is the last script output the model + // reads before it decides what to do next, and every run that skipped + // the comp round did so right here: prose 20 KB into new-work.md lost + // to "direction locked, building now". So the ping prints the next + // mandatory step from the recorded build path, and the phase machine + // takes it from there. + process.stdout.write(nextStepAfterChoice({ + key: fromIdx !== -1 ? args[fromIdx + 1] : undefined, + scope: scopeIdx !== -1 ? args[scopeIdx + 1] : undefined, + })); } else { + // A dealt roll leaves a marker the build phase clears: context.mjs and + // detect.mjs read it and refuse to treat page work as done while a + // direction is chosen but the build never started (COMP_ROUND_OPEN). + try { + const { mkdirSync, writeFileSync: wf } = await import('node:fs'); + if (scopeIdx !== -1 && args[scopeIdx + 1] === 'direction') { + mkdirSync(resolve(process.cwd(), '.impeccable', 'build'), { recursive: true }); + wf(resolve(process.cwd(), '.impeccable', 'build', 'pending.json'), JSON.stringify({ scope: 'direction', at: new Date().toISOString() }, null, 2)); + } + } catch { /* marker is best-effort */ } // Mechanical init gate: prose alone does not keep a model from dealing // before init, and fresh repos produced exactly that skip (the model // rolled directions with no PRODUCT.md, so nothing grounded the fusion). diff --git a/skill/scripts/context.mjs b/skill/scripts/context.mjs index ea5cad4c0..41112429a 100644 --- a/skill/scripts/context.mjs +++ b/skill/scripts/context.mjs @@ -1172,6 +1172,7 @@ async function cli() { appendDetectorFallback(parts, ctx); appendImageGenDirective(parts); appendBuildPathDirective(parts, ctx); + await appendCompRoundOpenDirective(parts, ctx); appendAutonomyCounterDirective(parts); appendSubagentAuthorizationDirective(parts); if (shouldWarnMissingTarget(ctx, targetProvided, targetExists)) { @@ -1191,6 +1192,7 @@ async function cli() { appendDetectorFallback(parts, ctx); appendImageGenDirective(parts); appendBuildPathDirective(parts, ctx); + await appendCompRoundOpenDirective(parts, ctx); appendAutonomyCounterDirective(parts); appendSubagentAuthorizationDirective(parts); if (shouldWarnMissingTarget(ctx, targetProvided, targetExists)) { @@ -1329,6 +1331,25 @@ function readBuildPathAt(root) { // selecting another workspace, cwd is the caller's app, not the target's, and // letting it rank above the repo root hands one workspace another's workflow. // It stands in only when no project resolved at all. +// A direction was dealt for a comp-led build and the phase machine never +// started, or stopped short of the hero gate: the comp round is open. Said +// here because every model in the corpus ran context.mjs unprompted, and +// the run that skipped the round did so between the roll and the first +// write; a boot that names the open round is a boot the write cannot claim +// it never saw. Reads build-phase's own helper so the two agree. +async function appendCompRoundOpenDirective(parts, ctx) { + try { + const { compRoundOpen } = await import('./build-phase.mjs'); + const roots = [...new Set([ctx?.projectRoot || process.cwd(), ctx?.repoRoot].filter(Boolean).map((r) => path.resolve(r)))]; + for (const root of roots) { + const open = compRoundOpen(root); + if (!open) continue; + parts.push(`COMP_ROUND_OPEN: ${open.reason}. On a comp-led build no page code is written before build-phase.mjs closes the comps, spec, plates, and hero gates; run \`node ${path.dirname(fileURLToPath(import.meta.url))}/build-phase.mjs status\` and follow its NEXT line. A page written past an open round is what the finish reviewer sends back.`); + return; + } + } catch { /* build-phase absent: nothing to say */ } +} + function appendBuildPathDirective(parts, ctx) { const roots = [...new Set( [ctx?.projectRoot || process.cwd(), ctx?.repoRoot].filter(Boolean).map((root) => path.resolve(root)), diff --git a/skill/scripts/data/font-index-failures.json b/skill/scripts/data/font-index-failures.json new file mode 100644 index 000000000..1aca67220 --- /dev/null +++ b/skill/scripts/data/font-index-failures.json @@ -0,0 +1,121 @@ +[ + { + "family": "Betania Patmos GDL", + "weight": 400, + "category": "handwriting", + "variable": false, + "reason": "not loaded or no lettering" + }, + { + "family": "Betania Patmos In GDL", + "weight": 400, + "category": "handwriting", + "variable": false, + "reason": "not loaded or no lettering" + }, + { + "family": "Doto", + "weight": 300, + "category": "sans", + "variable": true, + "reason": "not loaded or no lettering" + }, + { + "family": "Doto", + "weight": 700, + "category": "sans", + "variable": true, + "reason": "not loaded or no lettering" + }, + { + "family": "Jacquard 12 Charted", + "weight": 400, + "category": "display", + "variable": false, + "reason": "not loaded or no lettering" + }, + { + "family": "Jacquard 24 Charted", + "weight": 400, + "category": "display", + "variable": false, + "reason": "not loaded or no lettering" + }, + { + "family": "Jacquarda Bastarda 9 Charted", + "weight": 400, + "category": "display", + "variable": false, + "reason": "not loaded or no lettering" + }, + { + "family": "Jersey 10 Charted", + "weight": 400, + "category": "display", + "variable": false, + "reason": "not loaded or no lettering" + }, + { + "family": "Jersey 15 Charted", + "weight": 400, + "category": "display", + "variable": false, + "reason": "not loaded or no lettering" + }, + { + "family": "Jersey 20 Charted", + "weight": 400, + "category": "display", + "variable": false, + "reason": "not loaded or no lettering" + }, + { + "family": "Jersey 25 Charted", + "weight": 400, + "category": "display", + "variable": false, + "reason": "not loaded or no lettering" + }, + { + "family": "Micro 5 Charted", + "weight": 400, + "category": "display", + "variable": false, + "reason": "not loaded or no lettering" + }, + { + "family": "Montserrat Underline", + "weight": 400, + "category": "sans", + "variable": true, + "reason": "not loaded or no lettering" + }, + { + "family": "Montserrat Underline", + "weight": 700, + "category": "sans", + "variable": true, + "reason": "not loaded or no lettering" + }, + { + "family": "Redacted", + "weight": 400, + "category": "display", + "variable": false, + "reason": "not loaded or no lettering" + }, + { + "family": "Yarndings 12 Charted", + "weight": 400, + "category": "display", + "variable": false, + "reason": "not loaded or no lettering" + }, + { + "family": "Yarndings 20 Charted", + "weight": 400, + "category": "display", + "variable": false, + "reason": "not loaded or no lettering" + } +] \ No newline at end of file diff --git a/skill/scripts/data/font-index.json b/skill/scripts/data/font-index.json new file mode 100644 index 000000000..9d2029971 --- /dev/null +++ b/skill/scripts/data/font-index.json @@ -0,0 +1 @@ +{"schema":2,"text":"The quick brown fox jumps over the lazy dog 0123456789 HAMBURGEVONS","textCaps":"THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 0123456789 HAMBURGEVONS","sizes":[48,14,"48c"],"features":["advance","advTall","advX","advCV","gap","xRatio","descRatio","stemW","contrast","serif","roundFrac","densTall","densX","runDensity","vprof0","vprof1","vprof2","vprof3","vprof4","vprof5","vprof6","vprof7","vprof8","vprof9","hrun25","hrun50","hrun75","hrun90","vrun25","vrun50","vrun75","vrun90","colq25","colq75","wq25","wq75"],"categories":["sans","serif","display","handwriting","mono"],"entries":[["ABeeZee",400,0,0,"0hy0hd0j408u04n0ke08w0410tz0rs0660cc0d41he00800802c04v03w04903y04a02c01h03v04305309h03i0460890h00ij0ra0fn0k9","0ir0ir0ir07g03y0kf09604r0tp0my06o0e50ff1h900700902i04t04104e04y03d02k00s04k04u0680cu04a0520ah0i10i80qw0gs0jq","0j10j1___0az057______0460uo0rs03n0cp___1ch00000002104d03g03w03m03904403304204705409y03k04a08e0i90kx0rs0ef0kr"],["ADLaM Display",400,2,0,"0i30id0ht08d03g0il08n0660xz0rw08r0gx0ik1h600600a02305704i04s04i03002q00j0600680800ez04z06l0fi0ni0hv0pv0ex0k3","0hs0is0hs07g02z0jh08f06j0x10kj04t0hu0jr1fq00400a02905504g04r05603802b00406a06p0a40fc05e07p0gn0mg0iy0pt0gt0js","0jb0jb___0an041___08n06o0xe0rh02p0h0___17u00100301m04f03p04303h03j04k02b06i06u08m0g705g07g0gh0qq0nt0rs0f00n2"],["AR One Sans",400,0,1,"0ig0ig0hv0880570k808n03q0u20ww0420bm0cw1gx00800802j04n03s04a03q04e02601v03o03w04k09c03b03q07c0fz0io0rq0g50j1","0hs0hs0hs07903y0kc07p04j0ti___03r0dy0fs1hd00300b01e05403w04e04s04402b01g04e04o05x0cj04304p0ah0hg0iw0rm0gs0ir","0i60ig___09l05s______03u0u30wy01b0bn___1bn00000002904b03b03y03i03404203b03o03y04h0ag03e03v07b0f90l10rs0f00mi"],["AR One Sans",700,0,1,"0jm0jm0jw06j04m0k808n05q0vl0uz08k0fz0hb1ef00700902404x03z04c04403x02f01k05n06007r0fq04y05v0el0ke0jn0rs0hv0lc","0jj0kj0jj06c03x0l509506a0vs0of09m0gs0i41as00600902804s03y04a04q03p02e01e06506m0a70gl05c06m0fv0l50jt0rq0ik0li","0k70k7___07r057______05v0ux0v203l0g6___18d00000001u04k03i04003i03a04h02n05q0680820gu0540640ej0pz0ns0rs0hb0nn"],["Abel",400,0,0,"0du0f00d905x04m0jr08302s0qq0rs0150az0c61vn00500802n04m03w04903u04802201w02q02t03b05n02p03606m0gz0j10rp0d90fk","0di0ff0di06g03v0jr07c03w0qp___0140ec0g01x300200a01k05103z04d04q03z02b01l03i03x04r09903q04h09q0hz0j80qz0di0ff","0fn0fn___048058______02u0rf0rs0000aw___1q300000002e04603h04203e03a03x03402s02v03b05l02o03706f0j00m80rs0f20fn"],["Abhaya Libre",400,1,0,"0j10kr0ig07f02w0i408303r1fn22t0d00aa0bb1ly00900e03d04f04804k04503h02d00l03i03u04a06501j02b05f0cf0hb0ph0g50lx","0is0k90ia0b402z0hq08a04u16u1fq0c00dc0f11le00700e03o04l04d04l05c02i02100604k04y05v08o02i03v07x0fs0h30ow0gt0mq","0lo0lo___09b04z___05c04a1rw25v0b80af___1d300000703503q03j03903x03l03b03503w04a04t06d01k02a0670cj0ni0rs0hk0ri"],["Abhaya Libre",700,1,0,"0jm0lx0jm07502b0ig0830551vv1hu0dl0c40de1kj00800e03404h04f04q04203i02d00k04r05605n07j01l02w0800h40hw0py0hb0mh","0it0ks0it0bb01z0i208905w1gg1470cc0ee0h91km00600d03e04m04j04s05802j02100605f05z06p09102f04k0a60i60h70oy0gt0ks","0p60p6___07i04z___05j05y2f71p70dw0cb___1br00000702r03t03p03d03y03s03e02v04z05y06f08001m02t08y0k40ol0rs0l30sp"],["Aboreto",400,2,0,"0gq0gq___0br07i___0570311370rs03f07x___1a700000202j03k03k03x03r03k03k03b03003103d03y01j02h0550ab0hl0rs0cp0mh","0ge0ge___0cs06r___07c048113___02q0bc___1cj00100301b04303k03u04d03l03t03603v04904m06402g03y07e0fo0ja0rs0bk0l7","0gq0gq___0br07i___0570311370rs03f07x___1a700000202j03k03k03x03r03k03k03b03003103d03y01j02h0550ab0hl0rs0cp0mh"],["Abril Fatface",400,2,0,"0ku0ku0ij0dm01r0hh09907432j0z10cz0f30g81qj00900b02g04q04v05104702t02m00k05q07407g08401c04x0e10lz0hl0q20hd0nq","0iq0jq0i90c802z0hg09607j1xp0tt0cq0hl0hw1lw00700b02q04q04u04z04t02g02m00706o07j07z09i02k06t0gj0nv0h60pt0fs0mo","0mi0mi___08q02w___09607x3p715m0990fa___1hf00100202103u03z04003g03u03y02o05707z08108v01b04f0en0rh0q10rs0j10qj"],["Abyssinica SIL",400,1,0,"0hk0jk0if07n02b0ij08n04316b1ss0930c30d11jf00900903504m04304n04903c02l00n03v04704w08m02903606x0ff0hu0pb0gp0k5","0hp0io0hp0lg01z0jc09104y11t1j507f0ej0g21if00800903904n04404l05702v02h00804p05306a0a303704d0930hm0hz0pp0fq0jo","0ks0ks___07u042______04h1811yk07v0by___1c500000002q04003d03u03803d04003b04b04j05809e02d03d07v0g20nr0rs0gr0pz"],["Aclonica",400,0,0,"0jo0g70j406l02w0ij08p05u1bm0rs0fd0f00fh1le00500a02e05604z05504h03l01j00305o05z06q09p03704s0c40ju0hj0n50gs0m0","0kd0gb0jd08u0210i408l06i1920z20hw0gm0hh1i200400b02t05e05704105g03h01000206806u07q0cp03q05h0de0jq0hj0mp0hb0mf","0ow0ow___091042___0a807u1kq0rt0c90ft___17i00300401v04603r04303h03m04602i07l07v08a0dv03t0640fa0rk0nx0rs0hd0qm"],["Acme",400,0,0,"0fn0hd0fn07t02b0ij07s04q0sh0v901n0fh0h41tf00500c02305e04j05404o03602600804j04y0650bj04905g0ba0ib0hd0nq0eh0hd","0fr0gq0er0dx02y0je08705f0sn0l302h0h60j51p500400b02805404f04w05603c02200605405l0860cv04z06k0dx0ji0i20nw0er0ip","0iq0iq___09j04e___02x05h0u10wp00h0ff___1fj00000001s04i03n03l04303n04302g05805o0720dw04m0670cz0p20my0rs0em0l2"],["Actor",400,0,0,"0fm0g70fm08t03h0ii08o03h0tr0rs0580bj0d01r900a00l02u05004g04o04q02x02500703a03j04808103003l07j0f90gs0n80eg0hx","0fc0fc0fc08q03d0jn07g0480s70pk02d0e70fu1s800300l01n05504a04f04y04701x00m04104a05i0au03y04t0a70h90i40ou0df0h9","0hn0hy___0as058___07s03v0tt0rs02v0bm___1f400400d02b04e03j03x03d03h03s02l03p03w04q09403g04007v0g30iq0rs0eh0ku"],["Adamina",400,1,0,"0hw0hw0hb08i02b0ip09603t1861z507v0as0c11nq00b00703f04503v04904503802802203l03z04g07702002s0650e90hz0rs0f00k7","0h90i70ft0i001x0jn09504j12m0d905c0dl0ev1o500700901s04s03s04304f04502302904c04p05k08k02s04308p0he0j50rr0ee0j6","0k70k7___0dw04m___07r0411ad1xh07l0as___1gm00200603003n03c03o03703c03o03r03t04204k06y02102u06u0d40nr0rs0ef0qj"],["Advent Pro",300,0,1,"0f00fk0ep06002w0ju0870240r50rs01607x0961wo00400703d04503o04403y04f01t02002202502k04302102a04109x0hv0rb0ef0gq","0ff0gd0ff0ch01x0ju07d03g0rj18i04j0c50di1y200100701u04u03t04a04p04902501q03803i04d07o03403v08b0ga0i90qu0ff0ib","0gs0gs___05902w0gb___0240qv0rs000087___1se00000002v03o03504103p03603d03w02202502j03y02102b0450960gy0rs0db0gs"],["Advent Pro",400,0,1,"0f00g50f006802w0ju08702l0rg0rs01609r0b51vt00400702y04i03s04204104d01v02002k02m03405a02g02t0560f80i20ro0ef0gq","0ff0ge0ff0hj01x0js07c03s0rq0yu04j0d00em1wu00100701o05103x04904r04602501n03h03u04q08t03e04809g0hf0id0qv0di0hd","0gq0gq___05702w0gc04102l0rh0rs00009x___1r100000102j04103603v03w03503c03t02k02m03305402h02t05a0eb0ik0rs0d90hb"],["Advent Pro",700,0,1,"0fa0g50f007t02w0k708a04q0rx1h90130gw0iq1q000400802404x04304g04703t02e01h04o04t06g0cj04m05r0fo0p40jm0rs0f00gq","0fn0g40eo09u02y0kc08805f0sy0m90280hy0jk1mg00300802904t04204g04u03i02d01905705j07t0de0540720gt0od0jt0rp0eo0hl","0gq0gq___07s02w___04m04q0rr0rs0000gu___1jl00000101t04f03m04203f03e04d02o04o04z06o0d504n05s0fn0rf0oe0rs0du0hb"],["Afacad",400,0,1,"0hq0hq0ic08q04q0ic09g03w0s50rs07c0bg0dc1kz00800802a05303l04h05t02802b01l03n03y04t09803h04807x0eh0gs0qv0fd0ji","0ho0ho0ho08v03x0hi09a04o0s90lm08q0du0gj1mi00600802h05404a04q05q01z02k00j04d04q0620bz04c05809p0g60gv0pr0eq0in","0gr0gr___0eb057______03y0sa0rs02p0c5___1dw00000001z04d03i03r03j03n04502w03t04104s09t03h04g07v0g10jq0rs0da0jn"],["Afacad",700,0,1,"0ix0ix0ix09l03k0il09i05t0u40rd08c0fi0ig1hh00700902405503q04m05k02902j01e05m05z07t0ex05606e0dl0k10hs0rs0fz0k3","0id0id0id0bj0320ia09m06c0tp0ls08v0gr0ka1fy00600a02905604i03o05j02p02i01006206j09q0ft05o07b0f80lr0hs0qw0hc0ke","0jn0jn___0c004x______0600tf0rs04k0g2___1a000000001p04g03o03u03m03o04g02e05o06408g0ez05b06u0e30pk0m40rs0f10oa"],["Afacad Flux",300,0,1,"0hc0hc0hc06p0570hx09902t0r10rs07j08w0ag1mp00900702p04v03z04e05802f02701k02m02v03e05n02j03304w09l0fs0q50fm0ii","0fu0fu0gu08103z0hh08i0410rn___0690c90ef1pd00300901h05i04e04u05v02302q00m03o04305409j03l04h0820dk0gp0pp0ev0hu","0gr0hc___0c306d______02u0qo0rs037098___1ep00000002e04203a03q03m03k03n03j02q02w03h05j02j03604z09f0im0rs0f10k8"],["Afacad Flux",400,0,1,"0hq0hq0ic08r04q0ic09g03w0sb0rs07c0bh0d81l200800802a05303l04h05t02802c01l03n03y04t09b03h04907u0eg0gs0qv0fd0ji","0hn0hn0h509103x0hi09a04o0sd0l407n0ds0gn1ma00600902i05304a04q05r01z02k00k04c04q0600c104b05509q0g40gv0pr0fp0im","0gr0gr___0eb057______03y0sb0rs02p0c3___1du00000002004c03i03r03j03n04502w03t04004s09r03h04f07w0g10jq0rs0da0jn"],["Afacad Flux",700,0,1,"0ix0ix0ic0bh03k0il09i05s0u30rj07y0fk0ii1hj00700902405503q04m05k02902j01e05m05z07t0ey05606f0dk0k60ht0rs0fz0k3","0ic0ic0iv0cj0320ia09n06d0ue0ls08a0gu0k31fz00600a02a05704i03n05j02p02i01106106i09q0fs05n0790f50la0hr0qx0gb0ke","0jn0jn___0c004x______0600tf0rs04k0g1___19z00000001p04g03o03u03m03o04h02e05o06408h0ez05b06u0e20pm0m40rs0f10oa"],["Agbalumo",400,2,0,"0ke0ke0ke07r01r0jh08106w11k0uq0d80h80i91mz00500o02e05804j03v05503301t00y06j0730840cd04m07e0fh0k00hx0q40j80mq","0ju0ju0iu0bf01z0je08907910j0ia0a10i90k91j500300j02605704n04n05502x01k00y06t07f0990f705808a0gn0ll0i10pw0hu0mt","0mm0n7___07r02w___05p0730y10ti01m0ha___1fn00000e02104n03x03703s03u04e01m06h07508u0e605g07q0es0o00mb0rq0hz0ns"],["Agdasima",400,0,0,"0c20cn0c205s02v0il06q02v0s01o60150di0eq2cg00200b03g04804604f04903202901m02u02z03405t02o03109l0iy0il0rs0bh0ds","0cp0do0cp0bl01y0jb0700400rr1px02f0go0i128c00100b02l04k04404c04w03602b01i03t04304v0ag03s04y0dp0kk0iy0ro0cp0en","0ds0ds___05t03g0ev03s0310tg2mh0000d8___27t00000103003o03j04103603e03v03502z03103505g02u0330a70pb0pi0rs0bh0ed"],["Agdasima",700,0,0,"0ec0fh0ec07702b0im06r04l0t81b50120hz0j324t00300b02t04p04b04k05102802k01a04k04s0540bp04505t0gk0p00iq0rs0dr0g1","0ep0fp0ep0fu01z0j906h05e0um1820330j90ke1wz00100b02b04r04b04j04x03202i01505605k08c0dc04t07u0hz0ot0iy0ro0dq0go","0fy0fy___07602a___04804t0ue1jx0000hw___1xs00000101s04b03l03y03v03g03n03804r04u0540d004e05s0i90rq0qa0rs0d40gj"],["Agu Display",400,2,0,"0j10i60k609103h0jr0bj02o0qp1we08x0cm0ei27p00800502b04i04b04s04503z02301e02f02s04w06i02b03105e0bk0j10ql0f00kr","0j90i80k908d0310k00cg06u19u0ws07c0g80if1fo00900502d04k04i03q05403u02801304x06u07p0c803m05k0du0jr0io0ql0f70k9","0k60k6___09804m______02m0qs1za04k0c0___1xv00000002403z03g03y03s03n03w03202c02o03x06s02b02w04y09o0n60rs0g50n2"],["Aguafina Script",400,3,0,"0yk0sj1ao0hp01g0g50j903i0rz0wd0fg0aj0cp2y400b00c02005605605103f02a02d01o02w03f04004v01x03n06007y0fp0r60ig1ao","13h0sv13h___01x0dx0fz04y0s709w0rs0cv0hv1mw00c00d01u05s06105o03102n01y00503w04q0890c103j06m09v0d30dm0nw0sv3cb","15o15o___0dm01r___05d03t0uj10b0j80b6___2eg00000402204304003w03f03q04002j03103p04405a02803t06j0950n60rs0ml1ed"],["Akatab",400,0,0,"0fn0fn0fn06x04n0iq08g03b0tu0rs03c0bc0cn1ow00800a02s04w04904p04e03a02u00803903c03y07102u03d06l0ec0h30ow0eh0hd","0gi0gi0gi0770440j208004j0tv___01m0ej0gd1ly00300c01k05h03a05005h03k02v00704a04l05w0b303u04q09v0gm0hn0pl0fh0hj","0hy0hy___0a0058______03m0u10rs0000bt___1f600000002704a03d03y03n03904403103k03n04707x03403s0770gg0kh0rs0dw0jo"],["Akatab",700,0,0,"0gs0hd0gs0700420j908b04n0vo0rs04a0er0fy1lj00600a02d05404c04r04e03g02q00904l04o05o0bc03w04r0ap0jc0i20p00g70ij","0gq0hp0gq07903y0jg08b05f0we0rs03t0gb0hs1ip00500b02h04w04b04q04z03a02j00605505h07d0cw04i05i0cv0jp0i50pp0fq0ip","0ij0ij___09904n______04z0vb0rs0000ex___1c300000001v04g03h04203k03c04l02h04x0510610dv0480580bi0nm0mm0rs0f20ku"],["Akaya Kanadaka",400,2,0,"0hn0hy0gs08a02w0h10bl04c0ob12q07j0dj0f61lx00o00m02i05n03y04v04r01o02600z03y04s06u0ce04o0580870fm0fu0q40f20jo","0i70i70h709l02j0gx0bg0540qa0rj07g0gh0ht1jl00k00q02p05p04c04305901q02800k04n05g08n0dg05805y0au0gm0fm0pl0f60k8","0ij0ij___0br03h___09904g0ns0wp01j0dx___1dw00900d02205203903n03b02y04o02a03z04s06x0dt04y05g08a0gc0jq0rs0dw0ml"],["Akaya Telivigala",400,2,0,"0h30hy0g708j02w0h10bl04c0o912j07j0dp0fd1lk00o00n02i05m03y04v04s01o02600z03y04s06v0cd04o0580830fh0ft0q30fn0jo","0hr0hr0gs09u02z0gl0b50510q60ra08e0gf0i91kn00k00p02p05p04c05n04601s02300404j05c08g0d805405u0ao0g70f80oz0dt0jq","0ij0it___0bq03h___09904g0nt0wl01j0dx___1dk00900d02205203903n03b02z04n02903z04s06x0dt04y05g08b0ge0jo0rs0dw0ml"],["Akronim",400,2,0,"0k90ku0eh0g90160hy0bl01w0ge0dz0a00c70ep3vn00b00b01v04h04v05x04l02u02100o01n02503s05o02203k06609v0g80nd0eh0sy","0vk0yj1fb0h306f0hm0bg05j0qy0lz0lm0ez0hu1jl00b00c02204o05605q04u02g01r00j0470680a10f305j0960en0ik0gw0nt0oo12h","0kr0lb0ez0f40160n106c01y0hm0bm09j0c80df3cx00000601k03t03z04j03h04704701x01o02803p05m01w03c05n09e0kw0rn0hv0vp"],["Akshar",300,0,1,"0du0du0du07403h0k60830300q60rs0130c40d520z00300b02k04k03z04903v04b02301s02y03103h06202y03k08n0i30j30rp0cp0ef","0di0di0di07u02w0js07903w0p8___0130et0g222o00100901i04x04404e04v04002801i03n04004y09e04204x0bg0iw0j40qy0di0eg","0d90d9___04p04m0fm___02y0rb0rs0000cd___1xh00000002904103l03y03g03d03v03c02y03003b05w02x03k0920ne0nb0rs0c40f0"],["Akshar",400,0,1,"0eh0eh0er07z0420k907r03w0tc0rs01n0ef0fl1wz00300b02b04s04404d04503w02a01k03v03x04j08j03i04i0bw0jx0j80rs0dw0fn","0et0et0fs0a502z0jl08404p0s11c603h0g60hg1vk00200a02g04t04904i04z03602f00w04i04s0610bj04k05q0e50l60j20r10dt0fs","0eh0eh___08i042______03w0uj0rs0000ep___1tl00000002004703o04003h03h04602t03v03w04d08903i04p0dc0q70oe0rs0b00fn"],["Akshar",700,0,1,"0hl0hl0hl06p03j0kj08806o0ym0s102q0iy0k51jf00400b01z04v04f03x05003c02e01h06o06r0930en05c08w0jy0rq0k00rs0gf0i7","0hq0hq0hq07e03y0jn0860730w80lk02s0k70li1fc00400a02304r04f04k04x03902f01106x07a0bi0ff0660c90jn0q70jw0rr0gq0hq","0hl0hl___06c044___05a06o0z50w800i0jt___1g200000101p04c03v03k04503804e02j06o06o09n0eh05a0af0ox0rs0pt0rs0eo0is"],["Akt",300,0,1,"0hv0ir0hl09j04m0ju08703k0se0rs04k0bi0cv1k100600902e04t03v04a04104002801t03g03n04f09603903r06m0f20ik0rp0g50jm","0hr0j90ha08903y0k707k04g0sh___02o0e10fc1ke00200a01b05603z04b04y03u02f01j04804j05w0c904504u09f0gu0iv0rj0gs0kq","0jw0k6___0a405s______03m0t60rs00g0b1___1cy00000002704903c04403i03403z03c03h03n04b09f03a03r06g0cs0kw0rs0f00lx"],["Akt",400,0,1,"0ig0jm0hv09204m0ju08704b0tj0rs0520dk0et1j700500902604x03y04a04703u02g01m04604f05i0bm03x04k0980hs0j10rq0g50k6","0jj0ki0i208w03x0k80880510tg0n105k0fb0gm1ha00400902904q03w04904v03f02g01k04s05606l0e804j05d0b20ir0j00rn0hk0lh","0k60k6___09m057______04d0u50rs00v0d1___1bj00000001y04f03d04203i03804c02y04a04g05e0dp03y04j08n0il0m50rs0fk0mh"],["Akt",700,0,1,"0jm0l20i60c203h0ju0850690wg0rs05o0hc0j41gd00500901x04x04604h04b03n02l01f06306d08a0gh05906j0f80mb0jm0rs0hv0mi","0jk0lj0il09e03x0k808806q0vx0la07d0i70jv1d000400902204v04604f04y03802k01806j06y0az0h705r0770ga0n30jr0rp0hm0nh","0lc0lc___0a5041___05v06e0w40rs01c0gq___18c00000101p04g03l04303h03f04k02i06d06g08m0il05c06m0er0qw0o80rs0g50nn"],["Aladin",400,2,0,"0ef0ep0du0hm01q0hv0b504k0wr0vh02f0fr0hd25100800901w05704g04g04j02l02l01n04804x05m08f0370570bk0j60hg0ro0c40hv","0n30qx0dh0l402w0ht0b205c0x00b40da0h10jo20000800901h05304g04j05602l02k01i04v05o06w0b904406e0e40lu0he0qz0hb10j","0hi0hi___0f601r___04i05b0zm13j02d0fz___1so00000102404g03s03704803m03i02w04z05e06408u03h05w0d90pa0o80rv09c0io"],["Alan Sans",300,0,1,"0j10jl0ha07h0570kf08n02z0sn0rs05409e0af1gw00900702r04d03j04503v04j01z02802v03203p06h02n03104z0aa0ij0ro0gq0kr","0hy0iy0hg0a00400kg07p0460t9___03a0cl0e01i700300a01k05103t04e04x03j02902103x04905f0aq03l04a07c0f80j00qy0fy0jy","0lc0lc___06p06c______0310tz0rs04709a___19800000002j04003403o03y03003j04002x03403n06b02m02z05009r0kv0rs0jm0n2"],["Alan Sans",400,0,1,"0jb0k60ig09e0410kf08n04i0uz0rs05o0d80dw1fe00700802804q03o04804004a02g01s04904n05t0bv03v04g0890hc0j70rq0hb0lc","0je0ke0hv0840430k508j0570uu0mn05w0f20ga1fs00500a02h04t04203g05103u02u00x04v05c06y0ec04i0570ac0i90it0qu0hc0mg","0lx0lx___0ab057______04n0vy0rs05h0d1___17s00000001z04c03803v03p03604h03204g04q05x0ey03x04h07r0ii0mj0rs0hb0nn"],["Alan Sans",700,0,1,"0lf0m00jo0bo02w0k908e06v0w70rs0bl0hn0iu1bp00500a01w04u04004h04d03u02p01806j0760ap0ii05q06w0fh0ns0jq0rh0j40ow","0ka0mb0i90b60320jy08h0780w90kf07j0ih0jw1a600400b02605004803j05703v02o00r06q07k0cy0ie06407f0gc0mz0jj0qn0i90nc","0o80o8___09q041___07i0780wg0rs05v0hx___13l00000201m04d03j04203k03g04r02f06x07j0cj0l40610770fl0ra0oc0rs0kr0ot"],["Alata",400,0,0,"0hy0ij0gs08u0420hd09c04p0v70rh08k0dj0fg1lj00800902805304h04v04w01z02g01d04g04r05p0bc03y04t0ad0hd0ge0r90f20j4","0hn0im0hn0cf03x0hg0a105h0vu0ms08q0fd0hn1ja00800902c04w04f04s05e01w02f01905105i06y0dk04j05s0c70hw0gz0rl0ep0im","0ij0ij___0be042______04s0uw0rs04q0da___1du00000001t04h03p04403j03e04b02h04h04t05n0c90430560af0kb0kb0rs0dw0lf"],["Alatsi",400,0,0,"0g70gs0fn07i03h0i30840540w20rs04d0fs0hm1rb00400902a05704k05004s02o02q00804u0560650c104705d0d20k50hl0ph0eh0hy","0fr0gq0fr07d02y0je08805p0vk12h0130hi0jm1ny00400902c04x04b04s05903602i00605e05t07o0d904v06o0f30ly0j00pr0ds0hp","0je0je___07304n___05805m0wf0rs00i0fw___1e500000101s04d03k04403m03h04c02i05f05n06q0e104o0630ds0q40ms0rs0fn0m0"],["Albert Sans",300,0,1,"0ix0ix0ic0660560jr08c02u0rs0rs0840930ab1jj00600603f04803w04704w03001y01x02q02v03f05c02i02z04s09r0hi0r70gm0k2","0ir0ir0hs06q03y0ji0850430s60li05o0c90dz1kn00300802n04r04204d05803102i00x03p04505409s03p04c07u0en0i00qr0gs0jr","0ja0ja___06o069______02t0st0rs05508z___1du00000002b04203e03p04003503l03m02q02u03a05e02g02v04s0960ji0rs0hl0lk"],["Albert Sans",400,0,1,"0ix0ix0in09j04l0jr08c03l0sm0rs0770bd0cf1ih00500702z04j03z04904z02t02a01o03i03n04i08403603r06n0ed0i10rd0gm0k2","0ja0ja0i908h0420jy08f04l0sv0le05c0dp0f41i600300802g05004503a05003t02a01j04c04n05v0ck04804y09f0gm0ig0ri0g80ka","0j70ji___0aw056______03l0tg0rs04s0b3___1cg00000002r03x03f03z03r02p04803303i03o04907k03503p06o0cu0ki0rs0ec0ls"],["Albert Sans",700,0,1,"0k20kd0ji0810410jr08c05t0w80t509m0fv0hb1f500500802h04v04604e05102n02i01e05n05x07n0fo04v0620cx0k40ip0rs0hs0ls","0jm0kl0j408003x0k708a06d0vn0lq09m0gs0iv1cj00300802204w04704e05003702g01a06306h0980ga05e06s0em0kn0jm0ro0hn0ll","0l80l8___08i04l______05u0wq0rs06y0fh___18b00000002804b03l04003v02w04j02g05o05y07l0ga04u05z0cl0on0mu0rs0ix0p8"],["Aldrich",400,0,0,"0ij0ku0hy08p06d0jy08y0470r22fc05s0eo0fq1c600700703404i03l04303u04002k01r04604b0550hj04604c0980kw0ka0rs0hy0m0","0jd0le0ic07u0530k308o04v0s129f04t0g50h71cf00400802p04s03t03704n04502q01h04r04y06z0hm04p0510b00kl0kg0rq0ic0mf","0lp0m0___09n06y0g9___04c0rq3iq00v0eq___17j00000002x04303303z03502v04m03304b04d05b0jn04c04d08x0q00o00rs0hd0ob"],["Alef",400,0,0,"0hd0h30hd08w04n0k908403t0uw0rs0280cu0dp1jl00600j02p04t04204b04304d01r01303n03w04l09603903q0800h00hm0ow0eh0hy","0ge0ge0ge08k03v0ju07d04j0u30vi02d0ef0g11kd00200g01n05804504f04x04901p01104a04k05y0bp03y04q0al0h80ia0p10eh0ja","0hd0ij___0a6058___05803y0vm0rs00z0bs___1e900000a02a04c03h03t03t03j03s02i03w03z04p08v03904008g0io0im0rs0eh0m0"],["Alef",700,0,0,"0j40jo0j407l04n0k908505l10d0s00an0g10gq1eu00600k02g04y04904f04c03z01s01005j05m06y0dr0470570dh0k90ik0po0hd0ku","0j80j80j807h0420k208f0670zz0yg08v0hv0iu1de00500i02p04x04d03e05104301s00v06106a08h0er04p0660f00km0io0ps0g70k9","0j40j4___09804n___05805o10c0rs01y0fi___19t00000a02204f03o03w03r03m03y02605m05q06w0ee04805m0du0p50kd0rs0fn0ml"],["Alegreya",400,1,1,"0h30hn0g70cm02w0hd08u0340vv1y208u0ah0c41tt00a00e03n04w04904p05902401z00c03003e04d07n02a02y05l0bb0gf0ob0eh0j3","0gt0ht0eu0ka01z0ib08f0470uk1060500e40gf1u200400c02205l04d04q05o02u01v00804004j06309i03b04c0870fo0hs0ol0cv0js","0ku0n50hy06v04n0lf07p03n0xy2kl08c0ay0b11e500200803104203803m02x03g03k03p03f03v04w09k02j03906s0c40m00rs0ij0qm"],["Alegreya",700,1,1,"0i80jo0hd0d001r0hk08u04y10j1ex09x0f30fy1s900900d02x05b04j04u04z02e01x00b04q05d07e0ba03a04i09u0hm0hd0oh0f20m0","0kn0m40fq0nl01z0hl09705r0zr16u0bn0gu0j21p300800d03305804h04t05j02301r00905i06a08w0d604405g0bz0i60ht0ou0fq0vg","0n50o10j409302w0lf08505x1361nh0bu0ff0ep1dm00200702e04f03i03r03403o04702i05m06c08g0dl03t0570b70nk0o00rs0k90q2"],["Alegreya SC",400,1,0,"0k90lf0jz06403h0lh06203n0z02c00bx0b60bu1j000000a03804i03t04903c05j01p01703f03t04w09502g03806l0c90kb0m20hd0n5","0j90jq0j90e002w0lm05e04k0vp___09h0dy0fc1j900000501r05403u04903x05a02a01704c04x0700ay03f04h08d0g50k60m30hc0m5","0ku0n50hy06v04n0lf07p03n0xs2kl08c0ay0b11e500200903104103803m02x03g03k03p03f03v04w09k02j03a06s0c50m00rs0ij0qm"],["Alegreya SC",700,1,0,"0m00nq0l408y02b0lf06d05o13r1kq0es0fj0g71if00100802o04y04504c03n05f01l00v05e06408t0d803k0510b10l00l00ne0j40ob","0lp0mp0kq0jl02h0lg06a06f11y18h0fz0h90ia1g700000702s04t04404a04d05201j00p06507009x0ep04e0630d60lc0l00nt0ir0no","0n50o10j409302w0lf08505x13a1nf0bu0fg0eq1dl00200702e04f03i03r03403o04702i05m06b08g0dl03t0560b70nj0o00rs0k90q2"],["Alegreya Sans",300,0,0,"0ew0ew0ec07w04b0i107r02b0ri0tu02h08g09q1ty00700j03y04c04e04n05p01r02300702902e02t04e02402f04a08i0fb0ki0dr0g2","0ew0fw0ew07z02z0ie07h03r0sh___01v0ck0eu1tq00100e01v05d04l04y05o02z01i00j03g03u04q08f03b0470850eq0gv0mp0dw0gv","0fv0h0___09305o___05402j0ru0tj00008l___1is00100a02i03z03f03t03v03m03c03102h02k03204m02a02p04p08r0h50rs0er0kf"],["Alegreya Sans",400,0,0,"0f10fb0fm09n0420i507j03b0t20u802a0be0cu1sk00400h02p05404h04r04u03202200803803e04207102w03g06y0es0gb0mj0db0g7","0fo0go0fo08k03x0ik08404b0t10o403k0dy0fw1py00400g02v05104i04o05g02n01x00604604f05j0ap03t04p09u0h40h00no0ep0hn","0hl0hl___0ag05a___05a03n0sx0tl00k0bg___1h200100902804d03l03f04203903r02w03k03r04f07u03803w07l0f60je0rs0e30lp"],["Alegreya Sans",700,0,0,"0gs0ij0gs08j02w0ij07j0590vq0ua0790g80hc1p700400f02e05904n04u04t03302000905505f06n0cw04d05k0cz0iv0hi0oj0g70j4","0hp0jn0gp0a502y0ja08505z0wi0o30520ha0iu1kz00300f02l05404l04r05f02r01v00705s06508u0dz05006m0em0k50hx0ow0gp0jn","0j40jo___09g042___05s05s0w20tw00j0g7___1d000000701x04g03p04203f03r04602605n06307j0f804x0650dw0pv0li0rs0g70ml"],["Alegreya Sans SC",300,0,0,"0gn0gn0gn07d0560kw04j02i0rx0st03e08n09a1ls00000e03o04204804h03y04u01900z02f02k03204r02902o04q0910f60lh0ex0id","0gd0ia0gd08o03v0ll03o03u0rq___02u0co0dg1m300000401j04x04504p04805702000z03k03x04u09y03h0480840et0gi0m20eg0j9","0fv0h0___09305o___05402j0ru0tj00008l___1is00100a02i03z03f03t03v03m03c03102h02k03204m02a02p04p08r0h50rs0er0kf"],["Alegreya Sans SC",400,0,0,"0hl0hl0hl08h04p0lb04703k0tc0t10370c70cm1k800000a02h04u04d04204804q01x00y03g03o04e09a03503r07h0f30h60lt0eo0jd","0hs0jr0gs07f03y0lf04d04k0tc0mv03w0dm0f71it00000702m04u04e04n04704x01g00k04b04m05z0bs04504y09x0hw0h60lw0fs0jr","0hl0hl___0ag05a___05a03n0sx0tl00k0bg___1h200100902804d03l03f04203903r02w03k03r04f07u03803w07l0f60je0rs0e30lp"],["Alegreya Sans SC",700,0,0,"0j40ku0j406l03r0lf04505o0wg0u107s0g70h31hn00000702605004g04p03t05601m00q05g05w07w0ex04p05y0dl0lo0jd0m00hd0lf","0jr0kr0j907u02z0lg04c06d0vm0o80a20hp0ik1e900000602c04v04h04n04o04n01h00j06106j0a70fa05c06x0ew0lm0jy0lx0hs0lq","0j40jo___09g042___05s05s0w20tw00j0g7___1d000000701x04g03p04203f03r04602605n06307j0f804x0650dw0pv0li0rs0g70ml"],["Aleo",300,1,1,"0hv0iq0hl08t02u0jb07102f0up2md06f07v09b1jr00500903i04203f03u04504301z02e02b02i03105h01x02903t06m0hu0rs0gg0lk","0ia0ia0hb0ex01x0jr07a03l0sm___07d0bj0cw1kw00100b01q05203j03y04g04902502d03f03x05708703103t0660c30i80ro0gc0k7","0jn0jn___0av057______02j0v72o505x07w___1d400000003d03r03203i03502w03i04l02g02m03206i02002b03y06j0lk0rs0eg0o9"],["Aleo",400,1,1,"0jb0jb0j009t02c0jl07b03y0vu1t509t0bt0d71hx00400a03l04f03s03h04s03b02501x03t04505j09k03203n06w0eb0in0rs0hk0m8","0j80jq0i90f802z0jg07e04s0ui1id07l0dw0fr1hz00200b02t04t03p04204u03a02m01d04l05207a0cc04204r08i0gw0ix0rq0gs0mp","0ku0ku___09k04n______0440vx1u308a0by___1c500000002c04g03703n03403404d03k04104805k0a403a03u06y0db0nf0rs0hy0q2"],["Aleo",700,1,1,"0jr0kc0jr0bp02c0ji07905e0yd1mn0as0en0g61gv00400b03104t03v03j04s03d02o01d05705o0830dc04004x0a90ji0j20rs0il0n8","0jq0jq0j80rt02z0jh07b0600xn12107y0fz0hn1gk00100b02j04x03u04504t03a02n01b05u06f09e0ef04j05q0br0jy0j30rq0gs0mp","0lh0lh___0c3042___05j05p0y61nw0990ez___19t00000102p04d03c03703m03c04u02e05m05u08t0ex04b05a0a40m80ou0rs0j60rv"],["Alex Brush",400,3,0,"0np0lz___0he057___07j02s0zd___0go072___28j00700o03705005e05402l02r02i00e02902u03l04w01n02703r05k0c50oa0lz13w","0tt0m4___12v03v___06l04m0y5___0dw0ai___1tb00200e02g05e05k05703602t02f00c03u04r06s0aa02v04106r09b0cj0ny0k71c3","24y24y___0es03j___05a02i0yy___0ij06y___1yo00000702b03x04a04204a03l04c00v02702p03c04r01i0200370530k50p90lq2at"],["Alexandria",300,0,1,"0k50kq0jl0a90570kb08403l0ua0rs0880ak0bv1f800700802z04g03s04503p04c02601u03g03n04f07k03303h05z0cw0i80rf0ha0lb","0ju0ju0iu0bu03z0ke08904i0u80lo0840cy0ee1g400400a02g04y04104c04t03e02k00y04904l05t0bd03x04h08f0fk0i80qv0hu0mt","0ko0ko___0ai05r___05u03m0uf0rs0530ae___19l00000302t03w03f03z03603004803903i03o04f07m03303j0640bg0jz0rs0g30nj"],["Alexandria",400,0,1,"0la0la0kp09904m0kw0840520w40rs09t0dr0es1dp00600902j04r03x04803u04502f01l04x05506g0db04a04w09y0j80j60rs0jk0mf","0kl0l30jm0bo03x0k808605l0wq0lu0a70ex0gi1ei00300b02704x04404g04w03g02r00o05705n07b0ev04l05g0bb0ir0iv0qn0in0mk","0lc0lc___0a104m___05s0540wd0rs0440dq___17900000201r04i03j04203d03804i02u04y05606e0g104a04z09l0ji0m50rs0gq0o8"],["Alexandria",700,0,1,"0kt0le0kt0f302w0k807j0730yr0rr0bu0hs0j71c400300b01u05404e04n04c03x02m00k06w0790a00id05m0730ga0nl0jc0q90k80np","0ll0mk0kl0eo02y0kd08707o0yp0li0bq0io0k818j00300a02104w04a04j04v03q02h00o07b07w0cf0iz06407x0hb0nm0jr0qp0kl0nj","0ob0ob___07n04c___06d07j0yj0rs09x0hm___13o00000201l04g03r04403d03h04s02907f07r0bl0kn05y07h0g90ri0o10rs0m00q2"],["Alfa Slab One",400,2,0,"0mu0nf0le0680160jv08709213e0pk0dd0l00lu19y00500b02004x04b04b04403l02q01f08x0ae0f60ke06i0aw0jy0rs0jy0rs0kt0oa","12x12g23w0qj01z0jf08809412k___0lm0ln0m813500400a02804w04804g04n03902m01508z0at0i00ni06t0bl0jj0r90jt0rs0no23w","0oa0oa___07l02b___02w0a818o0uv0c40mg___15900000001p04d03u03s03703u04n02g0a70bf0fz0m606q0bp0qy0rs0rb0rs0lz0rr"],["Alice",400,1,0,"0i60kr0ig0bz02b0hw08b0411aa1xf0ak0ba0c31n900900a03j04o04k04p04l02w01z00d03u04604v07g02002t06d0dm0gs0ny0fk0lc","0hb0j80gc0kr01x0ht07f04t1420s70810do0fz1o900300c01x05h04g04u05c03002100d04k04x06109602u03y08a0fz0h80nx0ef0k7","0mp0og0hg0al03i0my08604l1bw22l0ah0bl0ce1av00200402z04003k03803p03p03203f04h04u05j09a02803507e0eh0my0rt0im0rx"],["Alien Block",400,2,0,"0rq0rq0rq0an00l0kt06y0ca1bj___0r70p50p90oy00400e01w04g04n04l03z04602f0180mn0qd0rr0rs0ih0l20rs0rs0kx0rs0rq0sb","2by2by1jb1090et0ki07b_________0rs0m70o90fc00300d02404e04l04j04j03u02e0100kz0pg1ei2380ij0l30rm0ro0kz0rs1jb3v9","0rq0rq___07d00l______0ca13v___0q70q3___0p300000001i03y04604603l0490430230ni0qy0rs0rs0np0rs0rs0rs0rq0rs0rq0sb"],["Alike",400,1,0,"0in0j80hh0fs02c0jm09g04719r1rr06i0bk0cs1m800900803b04704103s04n03q01v01s04304b04u07x02602z0720g20iu0r00gb0lk","0hc0hc0is0nj01x0jq09404q1250bu06h0ej0f91p100500a01v04u03z04d04p04702j00y04m04v05t0930310490910ho0j60py0eg0l6","0kz0kz___0bk03r___07r04d1d31vm05y0bm___1gb00100302y03n03d03u03a03d03o03l03z04f04w07w02502y07c0ef0o10rs0fj0oq"],["Alike Angular",400,1,0,"0ii0j30is0cj02d0jr09t0421781w207s0be0co1mb00a00803e04703x03q04l03h02501x03u04604t07y02802y06w0f80iz0r80fu0lq","0i90ha0i90l601x0js09104o1140ob08e0ed0fc1pg00500a01y04w03x04a04m04802l00x04g04t05u09903104408m0h90j90py0ee0k6","0l00l0___0ds03r___07q04419728705g0b3___1gb00100303203m03b03q03903a03q03r03s04804x08b02802x0750dd0od0rs0ey0oq"],["Alkalami",400,1,0,"0jz0jz0jd0dr02n0i70au0641gi1f30dw0e20g31ga00b00802p04u04b04005e02102f01l05s06b07i0c002r04g0ab0i60ho0ro0is0p9","0hm0ni0hm0wx03x0gg0a406a17u1as0cf0f80il1ir00d00903305004m05704702f02f00a05x06g08i0db03d0570bs0i60fy0ox0gn0oh","0ni0ni___09u05a___08t06f1l81n40bb0eh___1a200200502d04503n03b03u03304103805q06h07d0cx02s04b0ai0mq0pb0rt0jz0rn"],["Alkatra",400,2,1,"0it0jz0hn08r02d0jg08s0550wu0uj05g0eb0ft1oi00800b02e04y04903s04y02w02f01n04t05806909t03w0550b50jp0i90ro0gg0l6","0jo0jo0hp0f702h0jh09405w0xo0s206s0fv0hw1kp00700c02d04w04504f04x02x02i01405e06007m0cj04j05y0d40k20i40rq0gq0mm","0jo0jo___0by03h___06o05c0y20xy03n0e5___1fc00000402304f03l03t03e03f04e02l05505g06d0a603v05c0aw0ld0lk0rt0db0ml"],["Alkatra",700,2,1,"0kj0lp0jd08s02d0je08r06o12e0xe08v0gf0i51ld00700c02804y04d03w04y02v02i01k06a06u07y0bw04j06g0ey0ks0it0rm0i70ma","0kn0ln0jo0mi01z0jh09407812l0rr0au0h90jy1go00600c02604w04a04j04w02y02j01206q07e09a0ep05107f0gm0n90ix0rr0io0ol","0m00m0___0b702w___07807115j11e04z0gc___1d400100401w04c03o03y03h03k04e02e06p0740830da04h06o0f30pq0na0ru0hy0ob"],["Allan",400,2,0,"0tj0sn0zb0by02w0j407j03h0nv0r70fv0c10f32et00300c01z04u04j04p04c03d02i01503b03h03y06e03b05a09l0dh0he0q20dw0zw","10e10e10e0d903y0jf08404g0ol0js0jm0e80i523u00200b02304s04j04r04y03102h00u04704g06909n04h0710bt0fx0i00py0fr12d","0fn0fn___0e801r___03h03i0pl0q80450c9___22100000201t04203s04103n03p04c02e03h03i03v06k03205a09p0dn0jw0rs0db0j4"],["Allan",700,2,0,"12h13d11m0f502w0kj07k05m0ti0r80ij0fs0iw1wy00200b01q04o04i04n04504602j01405d05n06z0bm05308q0f00jo0jv0qm0gs17z","14514n11o0ey03z0jo08806d0v00ia0ku0i10j01jl00200a01y04p04m04t04w03h02h00m05v06f0bd0dh05t0ai0hb0kd0jw0py0tq17m","0hd0hd___0j6021___04605n0v30qx0850ha___1q900000301k04403w04203n03w04i02305m05r06q0cp04w08u0fb0le0n80rs0g70v9"],["Allerta",400,0,0,"0ix0ib0j70700600kp09p04y0x00rs06f0ea0ft1fk00800902q04p03l04j03x04d02001j04w0500600ay03z0520bo0lb0jj0rh0gt0jt","0hz0hz0hz06u04q0kf09305g0xe0mu04t0fj0gz1gk00500902704m04204e04k04n02d00m05405h06u0ch04e05m0d10k90j30qk0g30ix","0i40i4___09106c______04y0xn0rs0000e9___1av00000002e04503k04303d03e04902m04x04z05o0ce03u04y0bb0nt0m70rs0g40la"],["Allerta Stencil",400,0,0,"09c09c09c0cj04d0jz09704q0wk0rs00z0ee0fk1l800800902r04s04d04104t03l02800u04o04q05906z03t0500bm0kk0it0qe0700c9","0hz0hz0hz06o04q0kf09305h0yb0ni04q0fg0gw1h400500902804m04204e05q03e02d00m05505i06m0b604805k0d60ka0j30qj0g30ix","0ad0ad___0c504w______04y0xj0rs0000dw___1e100000002c04603l04303d03g04902k04v04y05f07h03t0520bw0o30m90rs0560co"],["Allison",400,3,0,"0m90ur___0gr03j___08t02b0ty___0lu07n___27n00e00r03505i05i03l03803201q00z02002f03604g01m02503i05f0ak0nf0ir0w8","11f10y___09s04m___09o0470tg0b60rs0b9___1oq00d00m02j05a06i03w03302u01w00u03k04g06l09n02z04a07609k0b70o010y1m7","0ue0vj___0bj021___06y0280tp___0nm06s___1xs00300g02903i03l04r03m04a03v01g02202f03404n01m0230390500jo0q20ml16u"],["Allura",400,3,0,"0ku0ku___0rj03h___0ge02t0w50wi0d307t___1zl00k00y03c04l04h04y02b02h02x01902b02w03r05001w02h04306t0c60oz0f211m","0xs0xs___0g805z___0fi04q0xn0nj0ij0br___1oh00h00r02k05504m05302y02l02a01e03y04y0720ac03804a07d0b80d30oy0kv1ap","0en0en___0py02x___0aq02n0ts___07s07v___1is00g01502w03e02w03g03c03o03o02z02b02v03r05d01v02j03s06c0k20qz09y0nf"],["Almarai",300,0,0,"0hn0h30hy06e04n0k906y0310sn0rs01609v0b01p300200a02q04l03s04a03x04c02101u02u03203k05y02o03605e0c00i40rc0fn0ij","0hh0ii0hh08l0440l30600490sp___02w0dg0eg1oi00000801l05403004e04v04y02801g03v04c05a09r03m04n0910gm0jj0rm0gg0kk","0k90k9___06005s______0330tt0rs00j09n___1hj00000002h04303b03v03m03403s03l03103403n05p02p03305g0bd0jv0rs0fn0m0"],["Almarai",400,0,0,"0gs0gs0hy0a10420jt08603s0t70rs0210c10do1of00600902d04v03x04c04303z02a01m03m03u04m08c03e04007l0gr0ij0rs0fn0hy","0hq0hq0hq09e03y0jn08804l0t00mb04d0e80gm1nv00400902g04u04004e04y03902f01504d04p0600by0490510ah0hz0iz0rp0fr0jp","0jo0jo___0ai04n______03v0u90rs02m0bw___1fo00000002404d03e03y03h03804803203t03y04q08v03g03y07f0fs0l20rs0f20m0"],["Almarai",700,0,0,"0j40ij0j407t03h0kf08605s0vv0rs08k0g20hh1j500500a02004x04204e04604402g01c05l05y0790e704r05u0e40kx0jr0rs0hd0ku","0ir0jr0ir08503y0ki08a06d0wq0lz09g0gw0ix1gm00400a02604u04404g04v03h02i00z05z06f0950fm05906o0fi0md0jw0rq0hs0lq","0ku0ku___09g04c______05z0wp0rs03h0g0___1b100000001q04g03k04003j03f04m02j05y06007r0hf05105y0db0qo0nt0rs0f20ml"],["Almendra",400,1,0,"0gr0hm0g60cw02w0j208703d0zg1nj06s0aq0bw1uk00900j03704y04404e04a03d02300p03503i04a06s01x03105y0eg0hl0q00eg0j2","0fw0gd0ff0ht02w0it07d04b0vw0oy02j0dz0fd1tw00300g01z05i04704j05c02z02300p04104h05w08l03404f08t0hf0hf0pv0dh0gd","0k90l40f20e30420k405x03q1572pw08a0am0cf1jx00100c02z04503c03i03903903f03k03i03w04o08201w03206g0d90ob0rs0hy0q2"],["Almendra",700,1,0,"0kf0lk0j90lb01q0jk08306i1j312n0c90ff0fn1rf00600h02k04y04k04r04703o01v00k05w06o07f0a202q0550dt0ko0iz0pv0ht0wr","0k20li0jk0hq01y0jj0870741b811y0d30hu0if1l300600g02p04w04f04n04x03801u00k06t07d08t0d303t06h0go0n00iy0pw0hm0tc","0ow0ow0qm0ax02b0kv06d07b1q41ax0aq0fh0fg1gg00100a02904603s04003i03q03k02i06807f0860br02s0580e20rb0of0rs0k90sd"],["Almendra Display",400,2,0,"0cn0ft0cn0b402v0h807i0100ob0xf02y04s0542ak00d00s04i04403u04c05002802b00d00y01201b01x00x01501p02v0fl0nk0ax0g3","0dr0fq0cs08v01z0h507d02v0op1070500by0cu22r00500t03405i04804q05e02b01g00502n03904o07p02o03c05b0as0fw0mq0bt0gq","0bt0bi0c30qc0150mg06c0100pm1a904a05h05k2uj00100o03x03q03r04c03f04203n00900x01201a01w00x01401t0360ka0mg0820g4"],["Almendra SC",400,1,0,"0il0n20ia0er0300m607j03o1102ay0990b70bf1ne00100803804i03f04c03c05802401e03f03t04m08701z03706b0df0ll0ms0gs0nd","0hv0jv0hv0np02z0mb06u04n0wv___07a0e10ex1md00000601p05203y04c03w05802501b04f04x06w0af03704k08q0hj0kx0mt0fw0ku","0f014z0sl1i902b0ld06d02z0wl2jh0b407z0am23600100i03f04j04904b04706300f00302p03303s06i01t02p0550a00hj0lj0c412o"],["Alumni Sans",300,0,1,"0bl0cq0bl06f0420lm05802g0vx0rs0160b90c92aj00000802r04c04304e03m04v02y00k02f02h02n03u01x02j07k0jq0l20q20bl0db","0cv0cv0cv0c002z0m804s03u0tr0w202j0fi0g728x00000501k04s04804c04e04v02z00j03i03v04f07c03904s0cf0l60lq0pu0bw0dv","0dw0dw___05n0580fu___02m0xp0rs0000ba___20600000002i03n03m03u03m03l03p03b02l02n02s04202102k0870mj0ny0rs0af0dw"],["Alumni Sans",400,0,1,"0c60db0c606003h0ln0580310xy0rs0160dc0ef29500000802j04i04604f03p04w02u00j03103203904x02a0370ac0li0lf0q20c60db","0cw0dv0cw0as02z0m804q0460us0vt01s0gt0ht27r00000501d04t04b04g04g04v02y00i03y04804v08b03j05b0ee0lo0lr0pv0bw0dv","0dw0dw___06r04n______03a0zc0ua0000dm___1zb00000002a03u03r03v03j03o03s03303803a03h05902g03e0at0q20oz0rs0b00eh"],["Alumni Sans",700,0,1,"0dw0eh0dw06f02b0ln05805a11b0rv0130jr0kk23l00000802104q04e04i03u04v02r00h05a05c05p0a303y0930lf0q10m00q20dw0f2","0fa0fa0e90lt0210m105k0620y213o06l0kj0l91yg00000702904s04g03i04m04u02p00g05s0640880cu0500ar0lb0pc0lo0pu0e90ga","0fn0fn___07h03h___04n05p12e15s0000jw___1vo00000101t04403v04003h03u04802g05p05r0690bq0460a10pr0rq0qo0rs0cq0g7"],["Alumni Sans Collegiate One",400,0,0,"0rs0rs0r70s600l0m004n08l0z40r70f60nx0q610l00000601x04k04o04m04304r02k00g0am0ex0ft0sd0f50lv0pz0qd0m00q20fn14i","1n41sq1n40uu0640m304m08u0y90l20rs0lv0nr0j400000502604m04p03j04t04s02m00g08v0fc0vo1s80iy0m30pt0qa0mi0ql17u49v","0gs0gs___0r2016___04n0950ya0s706s0p3___12e00000101m04104204203i0450480260ck0g50gt0mv0do0ra0rl0rt0rs0rs0dw0n5"],["Alumni Sans Inline One",400,2,0,"0ef0ef0ef0hk0160k604o06m1040sf0360ml0mw23600000702405104u04w04c04g01u00406j06o07w0d706t0f70ku0o80kb0o80du0fk","17k16m1kt12e0660kj05409p1d20js0m80jw0n70wd00000602604r04r04p04u04z01g0010760ci0il0tq08f0ip0ll0oc0k80o412u1se","0gs0gs___09j01r___04n07p13113g0240n8___1q300000101n04404004203h04004b02807m07u0a50ew0820ia0rq0rq0ra0rs0dw0hy"],["Alumni Sans Pinstripe",400,0,0,"0bs0cy0b606n05b0mk05b0150n90rs01605t06c28v00000903a04003k03f04503d03z01t01501601c02001601f02q04y0l90qo0b60cy","0cu0du0cu06y02z0ne05j02u0mt10q0170cz0dl27200000601t04q03o03z04404e03m01d02r02w03n06703503u0840i20lw0qs0bv0du","0db0db___06j06d0fb___0160p20rs00005q___22l00000003903j03b03i03q03603g03u01401601b01v01601d02t05e0i60rs0af0db"],["Alumni Sans SC",300,0,1,"0db0dw0db04l0580n5___02l0xh0rs00j0b60bj20c00000002r04004004l03m03y03f01i02k02m02u04b01z02g07g0k00l20qt0cq0eh","0dg0ef0dg08v03u0nf___03v0w8___00j0ey0f71ye00000001d04g03y04d04d03y03s01l03k03x04k07j03304k0bk0lj0m40qy0dg0ef","0dw0dw___05n0580fu___02m0xp0rs0000ba___20600000002i03n03m03u03m03l03p03b02l02n02s04202102k0870mj0ny0rs0af0dw"],["Alumni Sans SC",400,0,1,"0dw0eh0dw05904c0n5___0390zc1s800i0da0dl1zj00000002i04604404j03o04503b01d03703903i05g02e0380a30me0m10r70cq0eh","0ef0ef0ef0bm03u0nf___0480wh___0110ga0gr1wr00000001804h04104e04d04503p01i04204905608u03d0510dh0me0m50qz0dg0ef","0dw0dw___06r04n______03a0zc0ua0000dm___1zb00000002a03u03r03v03j03o03s03303803a03h05902g03e0at0q20oz0rs0b00eh"],["Alumni Sans SC",700,0,1,"0fn0fn0f205b02w0n503h05p1281ch00i0jo0jv1ul00000001z04j04a04k03q04i03601205l05q06e0bv04509p0mm0ov0n70ri0f20g7","0fr0fr0fr0gn02y0nc03x06710a18102a0l30l31p100000002304h04904h04a04j02w00t06206b08z0dp04v0am0lz0od0my0r10es0fr","0fn0fn___07h03h___04n05p12e15s0000jw___1vo00000101t04403v04003h03u04802g05p05r0690bq0460a10pr0rq0qo0rs0cq0g7"],["Alyamama",300,1,1,"0h30hd0gs07y02w0i50990300yn25w07h09p0b51nl00b00803j04i04204m04d03202w00a02x03704006s01v02l0500a50h10ow0fn0k9","0gh0gz0fz0bf0300ih08k0480xv0rn0500de0fm1op00500b01u05g04b04r05a02d03100b04104f05s08x03003z07o0fd0h40ov0ez0iz","0it0j4___08o058______03k1232fc03h09x___1cz00000003103u03903m03203403u04303303k04d07d01z02t05u0ac0nb0rs0dw0ob"],["Alyamama",400,1,1,"0hy0hy0hy07l02w0i709903t14w1wh08k0b60cp1mm00b00803b04o04604o04d03102s00a03n04004s07v0230300660e60he0ow0fn0ku","0if0hf0if0c90330iy08p04s10l0m307p0ef0fx1m200500b01r05g03a04r05503p02z00b04m04z06h0a003704h08r0hl0id0pi0fd0kh","0ku0ku___07f058______04f18x22v05x0bb___1bv00000002r03x03e03p03603703w03t03u04g05b08v02703706v0e50nw0rs0g70ow"],["Alyamama",700,1,1,"0jb0k60ig0da02l0im09605p1eq1ct0af0ea0fu1k100a00902w04v04d04t04903702l00d05c05v06t0aw02k04d0a30j10i50p30gq0mh","0jp0jp0i70hl02y0im09706b18a18f09p0fw0hh1iu00800903204w04d04r05302o02b00805y06f07u0cq03f05b0c90jd0i00p00gq0ln","0mh0mh___0aw05s______06g1lj1ks0ax0e4___1a800000002e04203k03v03903f03y03b05k06i07g0ci02q04e0a80ny0ph0rs0jl0r3"],["Amarante",400,2,0,"0g70g70f206o03h0i408404h13j13t0370dz0fr1th00400702b04k04a04f04i03602i01s04604o05506t02m04m0b90ik0i10rs0eh0hd","0gx0gx0ge08i0360iu08u05k10u10102q0gj0iq1nz00400802k04t03c04n05f02g02q01j05705s06h0a703r0620eq0m60if0rr0et0hz","0fn0fn___0ay042___06104m16x16800v0ea___1ou00000201y03w03m03m03904704603304d04t05706x02j04k0bu0om0ph0rs08p0gs"],["Amaranth",400,0,0,"0hc0hc0hc08s0360jn08d0500z50rs05s0f10gc1nv00800e02605404b04m04b03n02h00l04s05205t0b003t04x0cy0jo0i70p00g70jn","0ht0ht0ht07p02z0kf08j05u0yl0v304q0gi0hx1kb00700e02d04w04604g04u03e02e00r05g05w0730cv04j05y0f10ko0j40pw0gt0js","0ic0ic___0ad040___08y05b0zd0s80210ey___1f100600702e04403l04103y02y04b02505605f0660d004105f0cs0p00lm0rs0fh0l8"],["Amaranth",700,0,0,"0ih0ih0hw07702w0jn08a06q0zw0ud06i0i10jr1k800700f01z05404g04q04c03n02e00l06h06s08a0es05307x0ib0om0j20pe0gr0k7","0is0js0is07n01z0kh08h07c0yg0lx06s0it0l71e300600f02604x04b04j04u03f02c00q07307j0bd0g805w09d0iy0ov0jv0px0ht0lr","0jo0jo___09m042___08p07611p0rs02o0i5___1ac00400801n04c03r04503j03n04e02207007d08w0gg0590870j30rs0ne0rs0ij0n5"],["Amarna",300,0,1,"0fn0hd0eh07e0420iq0ax02r0rv0v001p09d0av1p600a00702y04s04204m04e03502u00k02n02u03b05602e02y05f0az0gd0pi0eh0hd","0ft0ha0et0a103y0kb0ah03z0rw___02s0d00ed1oi00800801j05203y04h04v04402i00v03n04204v09103i04f08n0g00ip0qk0et0is","0j10j1___07b057___04m0300tc0v002l092___1dr00000202i04503a03t03h03603k03s02v03203l05902i03205d09s0i30rs0gq0mh"],["Amarna",400,0,1,"0ft0ge0f809i04p0ix0ax03g0sy0ug02l0b60cv1mw00a00702l05104603z05703102f00y03c03k04506y02y03q07d0fd0h10px0e20hk","0ff0gd0ex09203v0jr0a80480ru___0250e80ft1nu00800801d05604204g05003z02k00t03z04b0580a503v04q09o0hg0ib0pw0eg0hc","0ig0ig___0at057___05703r0uc0uo0270az___1ct00000202704d03d03w03f03904003a03l03t04i07e03303s06y0dn0ja0rs0du0lx"],["Amarna",700,0,1,"0g70g70fn0980420ip0au0460sw0ue02l0d90fc1mm00a00702c05604a04p04m02x02u00h04104a05109t03p04k09s0ia0hd0q20eh0hd","0fs0gr0fa0a203y0ji0ae04t0sn0ny02q0fd0hj1ll00900802g04z04704m05503302q00504m04w0660by04f05j0bt0j90i40pu0es0hr","0ig0ig___0ae04m___04m04k0tw0u10270d6___1av00000201x04k03g03w03g03c04a02w04f04n05j0bx03z04u09m0j60kz0rs0f00mi"],["Amatic SC",400,3,0,"07i07i07707q0410nb05201i0ka0wk00009o0ag2ug00000302r04104204903l04203r01901e01j01o02101j02u0750h30fw0p306c08n","08607p08n07w02w0ng0720310mz0p50000fw0h92h800000301j04i04504804904303o01b02q03204805v03f06j0fe0mg0l30q306q09m","06w06w___07504m___04h01j0jo0up00009x___2s800000202i03u03v03q03i03p03m03201e01j01o02001k02u07c0g00h20rs05r097"],["Amatic SC",700,3,0,"08308308307003h0nb04002a0nv0uo0000ci0dg2ph00000202g04804904b03p04703k01202502b02i03p02a04q0b80lw0iu0pr06y09t","08n08n08n0c002w0ng06103l0pm0mn00k0gb0it2c800000201a04b04b04e04c04803r01703803l05006l03t09e0iv0mx0lz0pz07o0ak","087087___06r043___04w0290mg0v00000ct___2mu00000202b03x03v03c04103w03a03302502b02j03u02f04u0bo0nl0k50rt07009y"],["Amethysta",400,1,0,"0j20jn0ih07r02w0ja09v03x15p25b0860bd0c61ig00b00803904603w04603r03t02202703s04104n08602b03006u0el0im0rs0gr0n3","0hw0iw0hw0aq02z0ie09i04p11i0tr07y0ds0fo1jh00700901w05304804i05702o01v01y04h04v06109j03304508p0gb0hy0qu0fx0kw","0jt0jt___085043___06903y15x2bu04b0bb___1df00000202z03s03g03803u03b03504203q04004n08002c0300720d70oq0rs0fr0nw"],["Amiko",400,0,0,"0hc0hc0hc08k05s0j708s03q0tq0rs0550c30dt1i300800802j05204604n04703i02x00c03j03u04l09803b03r07m0gj0hx0pk0fm0ii","0hp0hp0h807k05f0ji09404l0te0mp02o0et0gg1hi00600902l04x04804m04x03602t00604b04p0600cw04704u0ab0hs0i40ps0fq0ip","0j40j4___09r07t______0440uk0rs00v0bx___18e00000002304c03e04303h03604703103t04404x0ah03m0420890h80ky0rs0f20lf"],["Amiko",700,0,0,"0ii0j20ii07j04m0j708r05d0vz0rs0930fi0h31gt00700a02705904c04p04f03d02t00b05505g06z0ey04j05b0co0je0i70po0hc0k8","0hr0ir0hr07e03y0jg09505y0vy0mp05w0gz0iv1f500500a02c05204a04o05103902k00605l06208t0ez0520650ec0kn0iw0pt0hr0jq","0k90k9___090063______05s0vj0rs03x0fg___15g00000001s04j03i04303h03b04l02j05j05w0830hb04x05u0db0pk0mt0rs0hd0nq"],["Amiri",400,1,0,"0h30gs0hy0by02w0hy09b03o15n21i08k0aa0cb1j800a00803304j04404f04n02i02b01q03i03w04j07601v02v05r0cr0h00qt0f20k9","0ha0ha0ha0j90420hz09l04q0zr1h408p0db0fn1ik00800903b04q04903k05g02j02o00v04h04v06209302x04d08d0gh0gn0ql0e80jb","0lf0lf___0c305s___08603y1bf21b07t0ae___1cr00200402s03p03i03w03903a03t03g03j03z04o06i01u02r0630c70ms0rs0eh0q2"],["Amiri",700,1,0,"0ij0ij0hd0ie0370ij08x05s1jt1jr0b40cz0fr1g200800902m04o04d04p04j02q02b01h05a05y06u0a302b04609o0i10hf0r90gs0nq","0ha0ha0ha0so0420i008o06e1bm1cr0al0fn0i51fp00600a02y04t04k03o05g02m02k00s06106m0800bn0390570c60im0hh0qk0g90md","0mu0mu___0hb05a___07r0681t31k90ak0d2___19t00100402d03u03p03f04203m03a03e0560680720a702903v09r0mf0o10s30hk0so"],["Amiri Quran",400,1,0,"0h30gs0hy0by02w0hy05s03o15r21p08k0ae0cc1jd00000803404j04604i04p02j02c01q03i03w04j07801w02w05t0cx0h00qr0f20k9","0hb0hb0hb0ij03k0i009l04r10c1js0840dl0fw1iq00800903b04q04a03k05g02h02o00w04g04w06209402x04d08g0gi0go0qm0f90kd","0kk0kk___0e205s___05s03y1b321d07g0af___1cu00000402s03q03i03v03903b03u03h03j03y04o06j01u02r0630c90mt0rs0f20ph"],["Amita",400,3,0,"0dw0dw0dw09i02w0f308u0340vx0sb0540aw0ch27200a00a03605n05905x03903500o00802y03403s05c02403205b0cj0dd0le0bk0g7","0ds0ds0ds0bc01z0fl09604a0us0v405c0ep0gs1z400900a03b05h05a05w03q03000g00603v04b05b08503704j0900fd0e50lt09u0fr","0jd0jn___0dr042___05703x0yv0qy0100b3___1kk00200702904f03o03x03203d04a02l03p03x04m06802j03l0690fw0m30rd0570kt"],["Amita",700,3,0,"0f20f20f209001r0f408s04111i0yd0840cg0du24500a00b02x05q05f05x03803300q00803q04204o06902c03m07n0fc0dw0lf0cq0gs","0es0es0es09p01z0fj09704w0yx0tv07v0fb0he1wx00800b03605m05d05v03o02z00i00604m04x05x09f03a04x0b50gb0e60lu0au0gr","0k90k9___0bn03h___05s0511630qw0370db___1jw00200702404g03u04003703l04f01z04r05105n07g02r0490940kz0mq0r70990m0"],["Anaheim",400,0,1,"0gb0gb0g106l04d0l90920350v30rt0130ag0c71k300b00803h03y03r03o04604o01l02203403603j06602n03006c0g10ji0ro0f50gw","0g90g90fr05i0420k508i0490td0py0130dg0fp1mh00600b02v04n04503i04m04a02m00o03v04a05d0ai03n04h09p0hx0io0qj0e80g9","0g70gi___08a04n______0330vg0rs0000ar___1h800000002b03y03f03y03m03903x03d03203303g05v02m03006g0g70l00rs0db0hy"],["Anaheim",700,0,1,"0hy0hy0hn05m03h0k908405o0wg0si0250gh0ie1gg00500b02205304504k04604302o00l05l05r07v0ey04t05s0ek0l10jp0q40gs0j4","0ho0in0ho06f02y0l608c06c0vz0ld02q0hz0j41d100500b02804x04204f04r03x02h00l06506h0a30fi05d06x0g50md0jw0qn0ho0jn","0j40j4___07n042______0620wr0se0000gy___19a00000001q04i03k04103j03h04l02e06106408c0g005306l0fy0rf0oe0rs0g70ku"],["Ancizar Sans",300,0,1,"0f20fc0eh07z04n0i508p0320ub0rs03r0aq0c41p900800a02y04s04a04y04i02y02r00702z03603o06h02k0320680dk0gw0ow0dw0gs","0fd0ge0fd09f0440iz07v04a0tp0o802s0dz0fw1o400200c01o05d03c04z05c03n02w00704204c05g0af03m04j09x0gd0hk0pg0ec0ig","0h30hd___09s06d______03k0vt0rs00w0av___1d000000002b04503h04103g03a03z03603i03l04506x02x03h0750eg0jw0rs0eh0k9"],["Ancizar Sans",400,0,1,"0fn0fn0f208v0420i708x03v0w80rs0420co0e61nt00800a02q04z04e04w04k02w02q00703r03z04l09503403s08r0gi0hd0ow0db0hd","0gf0gf0fe0a00440iz08004t0uy0k304j0fl0gu1mw00200c01k05e03e05105f03j02w00804n04w06g0bl0450540bc0ia0if0pj0ed0ih","0hy0hy___09y05s______04h0xi0rs02m0cp___1c200000002304903j03z03h03d04802w04e04h0570a303l04c09v0k80l30rs0f20lf"],["Ancizar Sans",700,0,1,"0hn0ii0g708k03h0ij09805h0yn0t50640g40hj1lt00800b02h05504i04v04j03302h00705d05l06u0df04605i0dk0jb0hy0ow0g70jo","0hi0hi0gj0bc02x0iq08u05z0y811405o0go0j81jk00600b02k05104l04x05702s02300605t0650930dz04q06f0em0kj0i40oz0fk0jg","0j20j2___0a404m______0670z50st03z0g6___19400000001v04e03m04103g03h04h02k06706b07t0fn04t06c0ev0qt0nd0rs0g60n3"],["Ancizar Serif",300,1,1,"0h30hd0gs07u02w0i60990300yj25w07h09s0bb1mp00b00803i04j04204m04d03202v00a02y03704006u01w02l0510a90h20ow0f20k9","0h00h00gi0cq0300ii08j0480xg0qz0690dk0fh1nh00500b01u05g04904r05b02e03300b03x04f05t09303104207m0f30hw0ox0f00j0","0j40j4___08k04x______03k1242fb03h09t___1cb00000003103t03903n03203303u04203303k04d07d01z02s05u0ag0n90rs0dw0ob"],["Ancizar Serif",400,1,1,"0hy0hy0hy07j02w0i809903t14v1wh08k0b90cp1m300b00803b04o04704o04d03102s00a03n04004s07v0230300660e60he0ow0fn0ku","0hf0if0hf0ht03l0iy08q04t10a0gs0610ef0gc1ld00500b01s05h03904q05403q02z00b04n05006i0aa03704i08x0hm0ie0pi0fd0jg","0ku0ku___07f04n______04g19022a05x0b8___1bi00000002r03x03e03p03603703w03t03u04g05b08v02703706x0e80o10rs0g70ow"],["Ancizar Serif",700,1,1,"0jk0k50if0dl02w0il09505p1fd1cm0b80ea0g21kd00a00802w04v04d04t04903802l00c05c05v06s0ar02j04b09x0j00i40p20gp0mg","0jo0jo0jo0hv02y0im09706b1821870ac0fz0hl1ja00900903104w04d04s05202p02c00705y06f07u0ci03g05b0ca0j80i00p00hq0mn","0mi0mi___0b505s______06h1lm1kp0bf0e1___1ae00000002e04203k03v03903f03y03a05k06i07g0ch02p04g0a80nt0p60rs0jm0r4"],["Andada Pro",400,1,1,"0h00ig0gq08303h0i108n03g0zh28a08p0b40cn1ms00900b03g04o04004e04e02z02r00o03603n04g08m02f02y0650c90hg0py0ez0kr","0gq0ip0gq0az03y0hk08d04f0w21ph08a0du0fv1ly00600c03l04q04504k05a02602o00804904q06e09w03904c08f0fa0h40ps0es0ko","0k90k9___07a06y___06y03w12v2bb04t0bc___1c300000602y03z03803q03003503y03p03o04204q09n02j03606t0cv0od0rs0hy0ph"],["Andada Pro",700,1,1,"0hv0jl0hv07n03h0i508n04x1411mw0990dv0g41kz00800b02x04z04904l04g02y02l00k04m05406j0aa03004909n0hk0hw0py0g50lc","0hq0ip0gr08703y0hi08c05k1031af0an0ft0ik1jx00600c03505004c04q05602a02i00705805w0840bw03y0570aw0hm0h50ps0fr0ko","0lf0lf___06x06d___07805a1781rf0810dz___1b900100502h04803d03u03303c04803304y05h06e0b703304c09p0kx0ol0rs0ij0q2"],["Andika",400,0,0,"0g50g50g508c0410hv08n03n0sb0si04k0bx0dw1p100700a02l05704a04v04u02c02z00903j03q04k08y03a03y07h0fi0gb0pd0ee0ha","0g90ha0g90700420i408h04m0sn0n204t0ea0gr1n200500b02r05904h03q05m02o02s00504d04p06c0ca0490530ai0ho0gq0ou0f90ia","0ie0ie___097056___02b0400tm0un0000c1___1d100000002604g03d03t03k03604203903x04304v0at03h04707r0hi0kr0rs0ey0l9"],["Andika",700,0,0,"0hv0ig0ha06g0410hv08n0580vs0tg07h0f90hm1kl00600b02905c04g04z04n02i02w00905505b06q0dd04d05d0co0i50gz0pe0g50j0","0hc0id0gb06j0430i208k05x0vx0tj05c0gy0js1ij00500c02i05a04l03v05i02v02l00605k06108k0e905006c0ea0k70hm0ov0gb0id","0jj0jj___08d056___02v05q0w10u000w0fg___19h00000001v04k03i03v03h03b04g02s05o05t07a0fz04p05t0cx0pf0n00rs0fj0mf"],["Anek Bangla",300,0,1,"0hd0hd0hd06s04n0lf0840320ul0rs0150a60b31m700600902s04d03m04503k04u02102202y03203j05w02m02x05g0e40jq0rs0gs0j4","0gz0hz0gz06j0400la07k0460vr___01o0d50eb1od00100a01l05303y04g04j03w02d01o03u0470520aj03e04608m0hh0k00qw0fz0iz","0ij0ij___07o0580fw___0320us0rs0000a6___1i000000002j03y03904003j03203s03p03003203h05p02m02x05v0e60ln0rs0gs0jo"],["Anek Bangla",400,0,1,"0hy0hy0hy0910420lf08403w0vj0rs01k0cj0de1l900500902g04n03p04703k04s02801u03t03y04l09m03b03q0840ib0k90rs0fn0j4","0hz0hz0hh07k0400la07k04o0uk___01m0ev0g21mb00100a01d05704104h04o03r02i01i04h04r0650cq04204p0as0ic0k30qw0gz0iz","0j40j4___09o058______03y0vq0rz0000ci___1gl00000002804a03b04103h03504503803v03z04j09y03d03r08i0kh0n90rs0db0k9"],["Anek Bangla",700,0,1,"0ku0l40k906n03h0lf08406y0wz0rs08k0id0jj1f700400a02004u03y04a03y04d02m01g06v07209y0ht05q06y0ih0q80l40rs0j40ml","0kc0kv0jc0720320kb08d0770wk0lu0990jk0kk1dh00200b02a05204a03h04y04302n00n07107g0ct0i60620850ik0oi0kj0qp0jc0ld","0ku0ku___08e042______0720x00rs01c0ip___19e00000001r04h03k04303f03d04o02i06z0760am0j805x0770ja0rq0pp0rs0fn0n5"],["Anek Devanagari",300,0,1,"0hd0hy0hd06l04n0lf0840310uj0rs0150a30b41lo00600902s04c03n04603k04u02102202y03203j05y02m02x05g0e40jq0rs0gs0j4","0gz0hz0gz07y0400la07k0460vg___0280d80ek1nk00100a01m05203y04f04j03x02e01o03v0470540as03f04708n0ha0k10qw0fz0iz","0ij0j4___07p05i0f6___0320ut0rs0000a6___1he00000002j03y03904003j03303s03o03003203h05r02m02x05v0e80ln0rs0g70jo"],["Anek Devanagari",400,0,1,"0hy0hy0hy0910420lf08403w0vi0rs01k0co0de1kl00500902g04n03p04703l04s02901u03t03y04l09h03c03r0890ie0k90rs0g70jo","0hz0hz0hz07m0400la07j04n0uf___01m0ex0fw1lr00100a01e05804004h04p03q02i01i04g04q06a0cq04204q0ap0il0k10qw0gz0iz","0it0it___09n058______03y0vr0s00000ch___1g200000002804903b04103h03504503803v03z04j09z03d03r08j0ku0n90rs0dw0k9"],["Anek Devanagari",700,0,1,"0ku0l40k906k03h0lf08406y0x00rs0930ib0jh1ei00400a02004u03y04b03y04c02m01g06v07209z0hs05q06y0ii0q90l20rs0jo0ml","0kc0kc0jc0bg0320kn08d0790wr0lj08p0jp0kt1ct00200b02a05204a03h04z04302n00n07207j0cw0i40620830ip0od0kj0qp0jc0me","0k80k8___09v042______0720x00rs01u0ir___18w00000001r04g03k04303f03e04n02h06y0760al0j605x0760j40ro0pp0rs0fm0n4"],["Anek Gujarati",300,0,1,"0hd0hy0hd06n04n0lf0840320ui0rs0150a30ba1lu00600902s04e03n04503k04u02102202y03203j05w02m02x05g0dv0js0rs0gs0j4","0gz0hz0gz07b0400la07k0450vi___01n0d20eb1nt00100a01l05303x04f04j03w02e01o03y0470540ar03e04808n0hi0k10qw0fz0iz","0ij0ij___07j0580g2___0320us0rs0000a3___1hh00000002j03y03903z03j03303s03p03003203h05o02m02x05w0e70ln0rs0g70jo"],["Anek Gujarati",400,0,1,"0hy0hy0hy0940420lf08403w0vl0rs01k0cl0dh1ks00500902g04n03p04703k04s02901u03t03y04m09l03c03q08g0ii0k90rs0g70jo","0hy0ig0hy08n0400la07j04n0uf___02s0ew0g21m300100a01d05904004h04p03r02i01i04h04q0660cm04104o0as0ig0k10qv0gy0jy","0j40j4___09u0580g2___03y0vq0rz0000ci___1g700000002804a03b04003g03504603803v03z04k0a003d03q08i0ki0n80rs0db0k9"],["Anek Gujarati",700,0,1,"0ku0ku0k906k03h0lf08406y0x00rs08k0ib0jh1en00400a02004u03y04b03y04c02m01g06v07209z0hv05q06y0ik0qa0l30rs0jo0ml","0kc0kc0jc0b10320kb08e0770wn0le08v0jl0ks1d900200a02a05304a03i04y04302n00n07207h0cv0i30620840iq0oh0kj0qp0jc0me","0ku0ku___08e042______0720wz0rs01c0is___19000000001r04g03k04303g03e04n02h06z0760al0j705x0760je0rq0pp0rs0f20n5"],["Anek Gurmukhi",300,0,1,"0hd0hy0hd06k04n0lf0840320ul0rs0150a60b31kg00600902s04d03m04503k04v02002202y03203j05w02m02x05g0ds0jq0rs0gs0ij","0gz0hz0gz07t0300la07k0450vd___01m0d70ef1mf00100a01l05303y04g04i03w02e01n03s0470530ar03f04708r0h90k00qw0fz0iz","0ij0ij___0870580f8___0320us0rs0000a3___1ge00000002j03y03904003j03303s03o03003203h05r02m02x05v0eh0lp0rs0g70jo"],["Anek Gurmukhi",400,0,1,"0hy0hy0hy0910420lf08403w0vi0rs01k0ck0dc1jd00500902g04n03p04703l04r02801u03t03y04l09i03c03q08e0ii0k90rs0g70jo","0hz0ih0hh07k0400la07k04o0ul___01m0ey0g01kf00100a01d05804004h04o03s02i01j04h04r0670cq04204p0at0ie0k30qw0gz0iz","0j40j4___09r04n______03y0vt0ry0000ci___1f200000002704903b04103h03504603803v03z04j09y03d03q08i0kr0n70rs0db0k9"],["Anek Gurmukhi",700,0,1,"0ku0l40k906k0370lf08406y0x20rs08k0ib0jh1dl00400a02004u03y04b03y04c02m01g06v0720a00hu05q06z0ii0q90l10rs0jo0ml","0kc0kc0jc08n0320kb08d0770wm0lo08i0jl0ks1bu00200a02a05204a03h04z04402o00n07107h0cu0i30620830ip0od0kj0qp0ib0me","0kk0kk___08d042______0730x30rs00w0iq___18300000001r04g03k04303f03e04n02h06y0760aj0j805x0780je0rq0pq0rs0f20n5"],["Anek Kannada",300,0,1,"0hd0hy0hd06l04n0lf0840310uj0rs0150a30b41l600600902s04c03n04603k04u02102202y03203j05y02m02x05g0e40jq0rs0gs0j4","0gz0hz0gz08d0400la07k0450ve___0260d80e91n100100b01l05303y04e04j03x02e01n03t0460530an03e04708g0he0k00qw0fz0iz","0ij0it___07n0580fw___0320uq0rs0000a5___1gz00000002j03y03904003j03303s03o03003203h05r02m02x05v0e90ln0rs0g70jo"],["Anek Kannada",400,0,1,"0hy0hy0hy08z0420lf08403w0vj0rs01k0ci0dg1k300500902h04n03p04703l04r02801u03t03y04l09k03c03q0880if0k90rs0fn0jo","0hz0hz0hz07b0400lb07k04o0ua___0250et0fz1la00100a01d05904104g04q03p02h01i04h04r06a0cq04204q0aq0ij0k30qw0gz0iz","0j40j4___09o058______03y0vs0rz0000cf___1fn00000002704903c04103h03604603703w03z04j09x03d03q08i0ke0n70rs0db0k9"],["Anek Kannada",700,0,1,"0ku0ku0k907v03h0lf08406y0wy0rs08q0i80jj1e300400a02004v03y04b03y04c02m01g06v07209y0hs05q06y0ib0qa0l00rs0j40ml","0kd0kd0ju0bz0320kb08e0790wq0lx0aa0ji0ko1c400200a02a05204a03h04y04402n00n07207i0cy0i90630800ij0og0kj0qp0jc0me","0ks0ks___08e03h______0720x10rs00w0is___18l00000001r04h03k04303f03e04n02h06y0750am0j605w0760j90rn0pn0rs0fl0n3"],["Anek Latin",300,0,1,"0hd0hy0hd06k04n0lf0840320ui0rs0150a60b31lp00600902s04d03n04603k04u02002202y03203j05x02m02x05h0dm0jq0rs0gs0ij","0gz0hz0gz0790400la07l0460vd___01n0d30eg1nk00100a01n05203x04f04i03w02e01o03u0470540ao03f04808m0h90k10qw0fz0iz","0ij0ij___08k0580fw___0320us0rs0000a6___1hd00000002j03y03903z03j03303s03p03003203h05p02m02x05w0e00ln0rs0eh0jo"],["Anek Latin",400,0,1,"0hy0hy0hy0900420lf08403w0vh0rs01k0cl0dc1kn00500902h04n03p04703l04r02901u03t03y04l09i03c03q08g0ii0k90rs0g70jo","0hz0hz0hz07i0400la07k04m0uc___0250et0fx1lx00100a01e05704004f04p03r02i01j04g04p0620cn04104o0ai0im0k20qw0gz0iz","0j40j4___09s058______03y0vt0ry0000ci___1g300000002704903b04103h03504603803v03z04j09x03d03q08i0kr0mu0rs0db0k9"],["Anek Latin",700,0,1,"0ku0l40k906l03h0lf08406y0x00rs0930if0ji1ek00400a02004u03y04b03y04c02m01g06v0730a00hs05q0710il0q90l20rs0j40ml","0kc0kc0kc07l0320kb08d0770wj0lo08c0jj0ku1d600200a02a05204903i04y04402n00n07107h0cq0i20620840ik0oi0kj0qp0ib0md","0k80k8___08d03r______0720x10rs00w0is___18y00000001r04g03k04303f03d04n02h06y0760ak0j605x0760je0ro0pq0rs0fl0n4"],["Anek Malayalam",300,0,1,"0hd0hn0hd07a04n0lf0840320uj0rs0140a60az1l700600902s04d03n04503k04u02002302y03203j05w02m02x05h0dl0jq0rs0gs0ij","0gz0gz0gz0760400la07k0460vo___01n0da0eh1nb00100b01m05303w04e04k03w02e01o03y0470540at03f04808x0he0k10qw0fz0iy","0ij0ij___0840580fr___0320ur0rs0000a5___1h200000002j03y03904003j03203s03p03003203h05o02m02x05v0e20lo0rs0g70jo"],["Anek Malayalam",400,0,1,"0hy0hy0hy08z0420lf08403w0vi0rs0110cf0dg1k300500902h04o03p04703l04r02801u03t03y04l09j03c03q08b0ie0k90rs0fn0j4","0hz0hz0hz07l0400la07j04o0ub___0250ew0fp1lc00100a01d05803z04g04p03r02i01i04h04r0660cq04204q0as0if0k30qw0gz0iz","0j40j4___09s04n______03y0vu0rx0000ci___1fn00000002804a03c04103h03504503703w03z04j09y03d03q08j0l60mu0rs0db0k9"],["Anek Malayalam",700,0,1,"0ku0l40k906l0370lf08406y0wy0rs08k0ib0jh1dw00400a02004u03y04a03y04c02m01g06v07209z0hu05q06y0im0q90l30rs0j40ml","0kc0kc0jc0b50320kn08d0770wk0lp0a20jm0kt1c400200a02a05204903h04z04402o00n07107h0cw0i70620830ij0oe0kj0qp0jc0me","0kt0kt___09r042______0720x30rs01d0ir___18f00000001r04g03k04303f03d04o02i06y0760al0j605x0750ja0ro0pp0rs0fl0n4"],["Anek Odia",300,0,1,"0hd0hy0hd06l04n0lf0840320ul0rs0150a60b31lm00600902s04d03n04503j04v02002302y03203j05w02m02x05g0dg0jq0rs0gs0j4","0gz0hz0gh06q0400la07k0460vu___01o0d80e91nk00100b01l05303y04e04k03w02e01n03t0480530ak03e04708v0hp0k10qw0fz0hz","0ij0ij___0830580fx___0320uq0rs0000a7___1hb00000002j03y03904003j03303s03p03003203h05o02m02x05w0e50lj0rs0g70jo"],["Anek Odia",400,0,1,"0hy0hy0hy0940420lf08403w0vk0rs01k0ck0dj1ki00500902g04n03p04703l04s02901u03t03y04m09l03c03q08d0if0k90rs0g70jo","0hz0hz0hz07k0400la07k04o0uf___01m0ev0fx1lr00100a01d05904004h04p03q02i01i04h04q0680cp04204q0as0ip0k10qv0gz0iz","0j40j4___09r058______03y0vq0rx0000ci___1g300000002804a03c04003g03504603803v03z04j0a003d03r08i0kc0n90rs0dw0k9"],["Anek Odia",700,0,1,"0ku0l40k907x03h0lf08406y0wy0rs0860if0jj1ek00400a02004u03y04a03y04d02m01g06v07209z0hu05q06y0ih0qa0l30rs0j40ml","0kc0kc0kc09o0320kb08d0770wk0ls08i0jg0kq1d300200a02a05304903i04z04402o00n07107g0cq0i20620820ii0of0kj0qp0ib0md","0k80k8___09v042______0720x00rs01d0iw___19100000001r04g03k04303f03e04n02h06y0760ak0j705x0760jf0ro0pp0rs0fl0n4"],["Anek Tamil",300,0,1,"0hd0hy0hd06m04n0lf0840320uj0rs0150a30b41kg00600902s04d03n04503k04u02102202y03203j05y02m02x05h0dv0jq0rs0gs0ij","0gz0hz0gz07s03i0la07k0450ve___01m0d20ek1mf00100b01l05403y04f04i03w02d01n03r0460530an03e04608b0h20k00qw0fz0iz","0ij0ij___0870580f8___0320us0rs0000a3___1ge00000002j03y03904003j03303s03o03003203h05r02m02x05v0eh0lp0rs0g70jo"],["Anek Tamil",400,0,1,"0hy0hy0hy0900420lf08403w0vg0rs01k0cl0dc1je00500902h04n03p04703l04r02901u03t03y04l09i03c03q08h0ik0k90rs0g70jo","0hz0ih0hh07k0400la07k04o0um___01m0ey0g31kf00100a01d05804104h04o03r02i01i04h04r0660cq04204p0as0ie0k30qw0gz0iz","0j40j4___09r04n______03y0vt0ry0000ci___1f200000002704903b04103h03504603803v03z04j09y03d03q08i0kr0n70rs0db0k9"],["Anek Tamil",700,0,1,"0ku0l40k906k0370lf08406y0x20rs08k0ib0jh1dl00400a02004u03y04b03y04c02m01g06v0720a00hu05q06z0ii0q90l10rs0jo0ml","0kc0kc0jc08n0320kb08d0770wm0lo08i0jl0ks1bu00200a02a05204a03h04z04402o00n07107h0cu0i30620830ip0od0kj0qp0ib0me","0kk0kk___08d042______0730x30rs00w0iq___18300000001r04g03k04303f03e04n02h06y0760aj0j805x0780je0rq0pq0rs0f20n5"],["Anek Telugu",300,0,1,"0hd0hy0hd06o04n0lf0840310ul0rs0150a30b61lc00600802s04d03n04603k04u02102202y03203j05y02m02x05g0ed0jq0rs0gs0ij","0gz0hh0gz07s0400la07k0460vi___01m0d80eg1nc00100a01l05303y04f04j03x02d01n03x0480540au03f0470930hd0k10qw0fz0iz","0ij0ij___07n0580fr___0320us0rs0000a3___1h600000002j03y03904003j03203s03p03003203h05q02m02x05u0ed0ln0rs0gs0jo"],["Anek Telugu",400,0,1,"0hy0hy0hy0920420lf08403w0vh0rs0110cn0dd1k900500902h04o03p04703k04r02801u03t03y04m09m03c03r08a0ii0k90rs0fn0j4","0hz0hz0hh07b0300la07j04n0ub___0250f30g31lf00100a01e05804004g04p03r02i01j04g04p0640ci04104n0aj0ix0k30qw0gz0iz","0j40j4___09q058______03y0vr0rz0000cg___1fs00000002704a03b04103h03504603803w03z04j09y03d03r08i0ki0n70rs0db0k9"],["Anek Telugu",700,0,1,"0ku0ku0k906m03h0lf08406y0x00rs0930i90ji1e200400a02004u03y04b03y04c02m01g06v07209y0ht05q06y0ii0qd0l20rs0jo0ml","0kc0kc0ju0ak0320kb08d0790wo0lm0840jq0kl1cc00200a02a05204a03i04z04402n00n07207k0d00i80630830in0oh0kj0qp0ib0md","0ki0ki___08e042______0720x00rs01c0is___18j00000001r04g03k04303f03e04o02h06y0760ai0j705x0770jf0ro0po0rs0fm0n4"],["Angkor",400,2,0,"0lf0p60ku09e02b0il06y08q15q0t70ij0jr0lb19h00200c02205a04f04o04e03402h01108m09z0e30iz05s08v0ik0pn0il0r70j40ph","0ka0n20jd0gm01u0i406x08o1510qw0ch0kn0ld18700200a02604t05704i04l02n02c01808h0a00ev0j305x0a60i70oz0hu0r10ig0nz","0r70rs0ku08s02b0nb___09a1470t60j10ju0ks15l00000001r04k03s03u03803t04l02a0950ax0fa0la06f0ac0mi0rs0ow0rs0m00tj"],["Annapurna SIL",400,1,0,"0ij0iu0i907402d0iu08b04315t1s10930bs0d41ll00800903004s04404005402o02w00s03u04604w0890280380700f30ht0pw0fw0k0","0hv0hv0hd0ab02z0il08c04z0z10sr07d0en0gd1ma00500b02k05304304n05902n02a00u04p05506f09y03g04m09o0hq0hz0pt0fw0iv","0kr0kr___07x04m______04g17i___0990c5___1de00000002204803c03t03d03c03r03y04d04i05709602c03e07t0fj0og0rs0gq0px"],["Annapurna SIL",700,1,0,"0jo0jo0jo06n02b0ij08705i1as1eq0ap0e90g01j300800a02l04x04c04q04e03502w00b05a05m06h0ak02o04h0a30ih0hz0ph0hd0lf","0iw0iw0iw0cu0200jb08e0681580m20b80g20he1ix00300c02c05404904r05502u02700s05u06c07t0ce03s05o0ck0j30i10pt0hw0jw","0lw0lw___06z04m___0730641h80z10a80eo___1b100100201s04a03i03w03c03i03z03h05x0670700c402u04r0b00ni0pi0rs0k60ro"],["Annie Use Your Telescope",400,3,0,"0bg0ab___05u015___0cv01y0oi0qc01s081___2d300d00903005n05m06t03m02000e00401q02002j04g01u02c04308x0bd0i10ab0d6","0ph0im___0hf02y___0ca03k0pa0ih0j00c8___1xl00d00803105h05l06i03x02c00b00303103l06308y03b04g0870dc0d60jr0br0xb","0gr0hw0gr08e01q0na04k0280p70px03h0810881ti00000203504703t05403d04d03f00c01z02a02q04r02202m04j0a00es0ns0f00hw"],["Anonymous Pro",400,4,0,"0j40ij0jo06p0420jq08703c0tw0rs0990ax0c41cq00700a02t04p03r04303v04a02601p03803g04i08c02v03d05s0cy0ij0rf0hy0k9","0ib0ib0j903m03v0jr07e04a0t1___08k0dg0eq1du00200c01i05603p04504o04b02801q04404f05y0c503u04f0880fx0j50qz0hc0j9","0ij0ij___08i04n______03b0tz0rs0000b7___1cr00000002f04503c03s03f03e04003b03903d04207r02t03g0740dz0m40rs0f20k9"],["Anonymous Pro",700,4,0,"0j40ij0ku0360420jq08604t0tx0rs09m0eu0gk1by00600b02a05303v04704903t02g01e04o04x06z0di0490500aa0jn0j40rs0hy0ku","0ir0ir0jr03203y0jj08805i0ty0q508k0ga0i719y00400b02g04y03z04b05503702j00u05705q08r0fm04w05x0c60js0j30r00hs0kr","0ij0ij___05q04n______04r0u10rs0000fq___19q00000001y04g03f03u03e03k04k02n04o04u06e0du04905c0bd0ny0o00rs0hd0k9"],["Anta",400,0,0,"0j10j10jb09h04m0jm08904j0rx1mr09m0e80fw1ec00500902v04s03g04504b03o02k01o04h04k0610gh04h04l09v0jv0jm0rs0hb0lx","0jq0lp0jq08403y0ka08b0530sb0m509z0fl0gy1do00400902e05003j04605003i02g01e05105907d0gb04z0580bh0jj0jt0rq0iq0lp","0lx0lx___0bf04w0g0___04i0rv0rs01r0eb___17k00000002o04d02u03t03k02w04n03104i04k05q0hx04g04i08l0ny0nv0rs0d90n2"],["Antic",400,0,0,"0fr0fr0fr06w03i0i809s02w0t60rs03m09t0bm1po00b00903p04b04704205e02s02c00h02r02x03g05m02j02z05p0bx0gk0on0el0i3","0gt0gt0gt0bq03y0jh0a70440s30nf02y0d00f31nd00900902p04o04204h05303702i00n03u0460550a603q04h08r0fq0i20pv0eu0is","0ha0hv___05w04m___08i0320tb0rs00009s___1fw00200203103q03f04203903804402v02y03203j05l02q0360600ch0in0rs0fk0k5"],["Antic Didone",400,1,0,"0go0fj0i40cl02w0i809r02t1n20t606p0850911op00c00903u04604a04l03x03c02h00n02r02u02z03r01301i03p09e0gy0ow0ad0if","0gs0ha0ha0cv02z0hm0a404617r17p0840c90e71pv00a00903m04g04e04p05b02302j00603t04904p06f02203806x0f50h10oq0fs0ir","0ig0ig___07v03h___03h0301qt1xs00y07o___1jm00000102w03k03l03u03b03d03s03f02r03003303o01501i0420940mm0rs0du0lc"],["Antic Slab",400,1,0,"0hv0ig0hv07k02b0i009o02u0ul28307n09y0bf1o800e00804h04103u04e04k02u02t00a02q02x03s07q02d02p04z0a20gy0oc0ez0jl","0hs0hs0hs0n802h0hm0a403z0te1r70bt0cz0er1nr00c00903f04t04104m05i02302m00603r04905y0af03c04507d0e80h00oq0ft0op","0j00j0___07w02w___02q0320uo29b01y0a1___1gt00000003s03h03503t02z02y03z03p02x03303q08402k02x05m0ae0m70rs0g40n1"],["Anton",400,0,0,"0d50d50df05u01n0lr04605n0ua17200j0lx0m229g00000503004h04704a04b04l02j00b05j05o06h0bp05d0d60mf0q80m50pz0d50dp","0l912k0du13j01z0le04c06e0to0lc0dw0lz0my1lr00000402304q04l04k04r04p02a00106506u0c60h806o0fy0lr0po0ls0pu0du14k","0e30e3___06001r___02505w0sv1970000mf___20e00000002504803x03g04303d04f02805s05x08f0cf05u0f40rv0s30qu0rs0cb0eo"],["Anton SC",400,0,0,"0dw0dw0dw05w01r0n9___05t0sx0rs0100m00mb21000000001o04k04804d03p04f03w00z05q05w08q0ca05q0e60ol0r00oh0rs0db0eh","0ro0ro0ro0jl01z0ne02k06l0sn0h10fv0md0m31h800000001t04g04a04904904g03j00s06807q0cj0ei06w0fm0nx0pw0nx0rp0du10k","0e30e3___06001r___02505w0sv1970000mf___20e00000002504803x03g04303d04f02805s05x08f0cf05u0f40rv0s30qu0rs0cb0eo"],["Antonio",300,0,1,"09u0af09u06s03h0nb0470350tc1fr0000gp0h72k400000502204e04504303m04c03n01f03303503804x02v0690ha0or0n60rs09u0af","0au0au0au06702y0ne04c0430pl18p0000ja0jt2dl00000402604e04204404704f03901303s04404n08b04d08g0jl0p90n20rr09u0au","0aj0aj___05x0430ga0220360u01yk0000ga___2hb00000002k03y03v03d04203u03i02p03403603905402u0660g80ro0p20rs0870aj"],["Antonio",400,0,1,"0aj0au0aj06k03t0nb04m03k0u81rw0000hy0ie2g700000702n04d04303j04704i02w01e03i03l03o05p03707c0k30qw0n40rs09y0b4","0au0au0au06h02y0nd04e04a0q516f0000jt0k32ax00000402404f04304504704f03901304504b05008o04j08z0kh0pm0n10rq09u0bt","0b00b0___06903h______03k0un1fw0000hh___2fg00000001s04403x03x03i03w04302l03g03k03n05v03607x0it0rq0pl0rs0990bl"],["Antonio",700,0,1,"0ca0ca0ca06j0380nb04z04i0uw1ir0000k00kd2b900000702h04g04603k04904i02x01c04h04j04q08j04209j0mv0rr0nb0rs0bp0ca","0bu0bu0bu06402z0nc04i0500r50st0000kv0l826f00000402204g04404404804h03801204r05006h0aj0540ac0ly0qo0n20rq0bu0cu","0ca0ca___07g03i___03t04j0uw1j30000k2___29x00000102a04603x03f04203v03q02e04h04j04v0960440a70p20s00q90rs0aj0cv"],["Anuphan",300,0,1,"0hx0hx0hc0610570ke08a02u0sx0rs01509a0ap1k900700802u04h03m04a03n04f02102302r02w03c05h02j02y0500aw0i70rg0fm0j3","0hd0hd0hd06k04c0kj07g03x0rx___0140cp0dj1m700200a01j05203r04b04h04c02c01p03j03z04r09u03g04907n0ey0if0qu0ff0ib","0j30j3___05d063______02x0tp0rs000099___1e100000002k03y03603z03h03503n03w02t02y03c05702j02z05c0az0kj0rs0g70k8"],["Anuphan",400,0,1,"0hx0hx0i808t0570kt08903n0tw0rs01k0bk0cr1jj00600902f04q03q04a03p04f02b01t03i03p04d08o03903r0710g10ip0rr0g70j3","0i70j80i70760420kw08g04l0t20nh0260dw0fn1im00500a02k04v03x03b04q04702e01f04e04p05x0bv04704v0a30hv0ji0rk0g70k8","0is0j3___09e05s______03q0uh0rs0000bk___1d000000002604b03803w03i03604903a03n03r04e09m03903s0710fs0m00rs0f10kt"],["Anuphan",700,0,1,"0jo0kt0jo06l03h0kv08806a0wa0sj07h0gm0i01f800500a01z04v03z04e04004702j01h06506d0850g605506k0fq0nd0k90rs0ii0le","0io0jn0io06i03g0kb08806i0w30m90810hm0j71el00400a02804x04604j04w03h02l00m06b06o09c0fu05g0740fu0mr0jr0qq0io0km","0kt0kt___089042______06g0vr0rs01c0h1___17t00000001p04h03h04303i03f04o02i06a06l08z0hz05m06p0fj0ri0od0rs0gs0mk"],["Anybody",300,2,1,"0ga0f40gv04h03i0kl08j02l0uw0rs01p0940a81x300800803j04904203y04905202300502j02m02y04k01y02j0580cb0iw0nn0ej0gv","0ga0fr0ga0a20210l708h0400v60o402w0cv0e41wu00500a02x04m04a03n04j05602400503o04204r07z03604908n0hq0jn0nv0f90ib","0hl0i5___05g04j______02v0xk0rs00009p___1m700000002f03y03g03p03x03a03l03i02u02w03704w02502o05m0cm0kn0rs0fv0ju"],["Anybody",400,2,1,"0hq0gu0ib06p02x0km08i03y0yo0tw0370cq0dr1ro00700903604n04704004e05101s00503x04004j08502w03s08p0j10jg0o10g90il","0i40hm0il06902y0l908a04r0w20nv03r0fg0fu1px00500a02h04s04404h04b05501x00704o04u05x0bn03v04y0b60jn0jy0oj0gn0jk","0it0j4___097042______04i1160rs0000do___1h700000001y04d03l03x03c03g04902y04g04i05109603804309p0n10na0rs0fn0lf"],["Anybody",700,2,1,"0km0jr0lh05e02x0kn08j06c12j1ax0ez0gn0i71jm00700a02p05004b04104r04v01k00606a06e07q0gq04g0650g00mt0k20o10j60lh","0kl0kl0l308k01z0l808d06v10r0lr0dw0io0j51go00400a02804x04904k04m04y01p00806r07009r0h80530710hp0mb0kr0ol0jm0ll","0ml0ml___08603h___03s07c13m1p40720io___18d00000102a04e03o04203b03k04l01y07b07d08v0jv0530740ih0s30pd0rs0ij0ox"],["Aoboshi One",400,1,0,"0iw0k20ia08o02y0h40au05b0us1030a40ei0gu1i000900802d05503q04q05901r02p01n05305n0760en04l05h0b00h60h40rs0gj0l9","0io0jn0ho08j03x0hi0b105w0u50qd0ak0fw0is1gp00900802e04x04c04v04z02002m01905m06408z0f105706g0dp0k20h30rq0gp0lm","0kk0kk___09j03h______05h0uf10b0580ek___19300000001w04g03k03s03j03a04i02s05a05q07g0gc04o05q0ay0lt0n60rs0g70ob"],["Arapey",400,1,0,"0hy0hn0hy07r02w0j409u03o1g01s707v0a70b51nb00a00803404904704l03u03o02b01c03g03o03z05601i02e05r0d90hl0q20f20k9","0gs0gs0gs0ag03g0k209g04n13v0pg02o0do0en1np00700a01o05104904j04u03h02e01604e04q05d07k02n0480910hb0hu0pn0et0ir","0jo0jo___091042___07j03w1nw1x503f0a6___1ik00100302u03o03m03y03903j03v03003f03w04405401k0290650cp0mo0rs0fn0nq"],["Arbutus",400,1,0,"0o30oo0mx05n02y0id09x07r17x1b90mz0hz0ja17w00e00b02o05f04604405a02l02k00b07a08e0bl0hh04k05y0cw0kc0id0ou0kk0qf","0my0nx0m008x02v0ir09w08415d10h0m00jc0ku17m00b00c02e05703y04b04z03g02n00b07p08t0ca0j005006r0f60me0j40ow0m00pu","0ri0ri___05m03h___07j08v1at16w0ku0ia___10m00100201j04s03j03q03803j04x02i08509a0dp0ji04u06g0e90qw0r90rs0ph0uo"],["Arbutus Slab",400,1,0,"0iq0jc0i509703i0iq09d04i14m1ql09t0cx0eg1iz00b00902s04q04103m04z03301y02304b04p05m09l02n03q07u0gn0id0rs0gz0lo","0j00j00i20k802v0ip09q05710t1ds07v0f50go1jh00a00902u04o03v04304v03h02m00w04v05g06v0as03d04o0990hf0i80qw0h40lv","0lo0lo___07u044___05v04l15z21a08h0ci___1dk00000202j04903h03703s03h03a03s04f04w05k0ac02m03o0810gh0om0rs0ge0pr"],["Architects Daughter",400,3,0,"0hy0ij___07w01r___0f403d0vz0pw0f00ab___1nj00700702c06105906j03m02r00s00402y03d04i08c02l03105309p0d10jk0gs0k9","0l70jq___0jp01z___0ed04m0vu0k30hl0at___1hz00800702o05v05b06j04202g00h00204004m07b0bg03l04a0800cz0dx0jz0hr11g","0o60o60o605p01q0n103203q0wj0ty0ip0ad0a11al00000102j04t03v04s03c04d03s00c03f03u05809402v03a05j09y0fr0o60mg0pb"],["Archivo",300,0,1,"0iu0iu0iu0930440la07a03g0u30rs0330b40bt1ku00300a02l04n03q03n04904702c02203b03j04507g03103h06e0ed0jl0rq0h20k0","0if0ix0hx09503i0lg06s04c0u5___04g0dv0eq1m700000a01e05603w04e04f03p02l02004604g05k0az03p04i0940h30k00qz0gy0lx","0l60l6___0a005b______03k0vb0rs05b0ax___1bz00000002e04a03f03b04602q03w03n03i03n04d08a03303f0650cz0la0rs0fb0nj"],["Archivo",400,0,1,"0jf0jf0j408t0440la07a0440v30rs0660ct0dc1jn00300a02e04t03u03o04904602g01v03y04604z0a903k0440820i00k00rs0h20k0","0je0je0id08w0430la07l04w0uk0mt06o0f60fy1js00200a02j04w04203b04i04g02l01604n04y0690dh0480530ay0iz0jw0qz0hd0mg","0l60l6___0a205b______0490w40rs0580ck___1bb00000002604f03g03f04302s04803a04504a0580c103n04307k0gn0lz0rs0fw0nj"],["Archivo",700,0,1,"0kl0kl0kl07e0440la07n0650ws0rs0ap0gj0hd1ev00400a02104y04103q04j03x02n01l05x06c07y0gi04z0660ef0lo0kn0rs0jf0md","0kd0kd0kd07m0320l407o06j0xi0lv0bc0ho0ik1e000200b02b05004803f04r04702o00u06806o09d0gj05a06o0fm0ma0kj0qu0jc0nf","0md0md___09304p___05b06e0xi0rs0720gm___16i00000101t04l03m03g04302x04o02o06a06i08s0k00580680e50qb0o70rs0hn0pb"],["Archivo Black",400,0,0,"0o20o20o20ae03j0la08d08e10v0rs0fb0j20ke15d00500a01x04t04803s04n03u02o01i0890920d70l506608f0jm0r70l40rs0mb0r0","0nd0nd0nd0ch0420l308h08k10e0m00fp0jv0kr13p00400b02604y04f03g04v04802k00t08c0980fc0ku06i09f0jw0pr0kj0qu0md0pf","0r00r0___07q04p___05a09610q0rs0ez0jy___0z300000101o04e03y03i04303504m02f09509g0fg0o106w08t0ms0rs0pe0rs0nh0rl"],["Archivo Narrow",400,0,1,"0fl0fw0fb08103u0la07a03t0se0rs0130dx0f11uf00300a02b04p04003p04d04302g01t03n03v04g08j03k04i0ag0jz0k80rs0e40hn","0fb0ie0fb0f60320la07l04n0s30wl0360g90hd1tn00200b02g04v04803c04l04e02k01304f04p05u0bf04e05m0dh0kk0kn0r00eb0jf","0hn0hn___0ai04p______03w0ta0rs00g0di___1lc00000002304d03l03c04602x04803403v03z04m0a403k04f09e0lj0n00rs0cd0jf"],["Archivo Narrow",700,0,1,"0gh0gh0gh07603j0la07a05d0uf0sh0130gv0i31po00300b02204u04503r04j03z02k01l05605g06h0cu04u06m0fr0mx0kp0rs0fw0i9","0ge0if0ge0cq0330l707m05y0uo0lc0310if0jw1m700100b02904x03904j04s04702k00z05l06108d0ds05b07l0h80ng0kn0qz0fd0jg","0hn0hn___09503j___04y05i0v90rs0000gu___1h600000101t04h03p03f04503204i02n05g05m06y0ex04w06g0f70r40oa0rs0dj0k0"],["Are You Serious",400,3,0,"0fx12s___0jr02b___0di0320yd0qb0a40at___2do00l01703404u05205802k02s01v00n02m03403v06a02002m04m08w0cd0mr0cq0q2","0h812h___0e1021___0dh04t0wi0of0660cc___1ss00l01503j04z05c03z03802r01u00g0460500830c003h05309g0e00cm0mo0f70i8","0eh0zw___0nb02b___0b50310vi0tk07q0b2___27k00a01702j03l03r04d03l03t03f01c02j03403x06502502u04o08l0ka0qm08p0vu"],["Aref Ruqaa",400,1,0,"0hn0hn0gh0fn02y0iu09f03l10s1br05809w0cc1k300900802s05203y03k05c02e02502403d03q04h06w02603605v0eq0gi0r90fw0jf","0ho0ho0ho0mg02y0jb0a004k0xt13b07r0ca0da1ir00900802w04w03v04605b02d02d01i04a04p05t09203504e07v0gn0h20ro0fp0ll","0hn0hn___0h4044___09b03u12z1bi04b0a3___1d200300302h04403h03404002u03p03x03l03x04p06n0260390660dv0jl0rs0fb0my"],["Aref Ruqaa",700,1,0,"0jx0j20k80cx02m0j809g04r17o0zz0990bp0da1gg00900802c04z04104a04903e02a01t04h05205z08m02e03s08b0im0hf0rd0ih0ld","0k90k90ob0ic0310jw09k05m1440w00az0do0en1f300700802m04z04503a05303902h01j05805w0740aj03c0500av0jb0ho0rj0i80rc","0je0je___0ah03r___07j05b1ca12d08j0c0___18w00100302604603n03v03d03i04003004z05g06e08r02g03z08j0l20lh0rs0gs0q2"],["Aref Ruqaa Ink",400,1,0,"0hf0hq0hf09s0300i60a203616j16r07d08e09z1hz00a00803j04p03k04c04o02j01y02102r03c03r05601j02c04h0c10ff0r60g80kf","0cp0fw09j0h80490iu0aw04511w0v10350ba0dd1g100700902p04w03f04s05802802e01r04004a04t06102903r0830h30gc0ro07f0i0","0hf0hf___0aa047___05v03d15q10f05n08f___1bt00000203303y03203s03d03d03c03s02z03d03z05601j02j04w0az0hv0rs0fm0p8"],["Aref Ruqaa Ink",700,1,0,"0j80j80jj09t02v0iy0ac04d1ek10e0ap0af0aw1ex00a00802r04q04304904403a02701y03v04j05906z01s02y06q0h80gt0rk0ht0l8","0gt0hs0eu0c503y0jd0aa0571ce0jg0500cp0da1dg00700802804s04a04f04y03102b01d04i05705j06x02e04409v0ih0h00qy09w0is","0je0je___0b204k___07l04z1hq17o0820au___17l00100302l03u03l03q03t03g03703i04c05305p07601z03507l0ik0k80s30fe0q8"],["Arima",300,2,1,"0hy0hy0hy07e04n0k909902t0x40u701o08x09r1nr00a00903004803x04303v04d01y01u02o02v03504e01x02l0520b60i40r80g70ij","0ht0ht0ht07v03y0kd08n0420x6___0370cv0dr1o700500c01l04v04004b04o04802801h03s04504r07a02y0430820gp0ix0qv0fu0it","0ij0ij___07d06d______02r0wp0un00008t___1ig00000002o03p03i03t03o03d03p03f02o02v03204601w02k05b0ah0ir0rs0eh0j4"],["Arima",400,2,1,"0hw0hw0ih0890410k709803m1020uk03r0ax0bj1nc00900a02q04d03y04803v04c02201r03h03o03y05e02903606q0gt0io0rc0gr0jm","0ht0ht0ht09y03z0ke08h04i0zd___02q0do0f71ny00400b01f04w04304d04r04702801g04c04k05607z03404d09k0id0iz0qw0gu0jt","0ij0ij___09105s___05s03j0z70v10000an___1hw00000302e03t03l03x03k03f03v03603h03o03x0590290390740g30ke0rs0eh0jo"],["Arima",700,2,1,"0jo0jo0j407102w0kc08p05r17b0w506f0f90g41mc00700b02a04m04704e03y04602b01d05m05u06908t03705l0dw0l50jp0re0hy0ku","0j80j80j80cb0310k808j06e15c10405o0gz0ie1kt00500c02c04p04a03e04s04302e01e06606f0750b203z06g0fv0na0jp0rn0i70l8","0k70k7___08704m___06c05u18o0u00000f9___1h200000301y04003q03x03i03m04402v05p05w06c09503905n0dr0ql0nw0ry0gq0lx"],["Arimo",400,0,1,"0is0is0is09f0440la08a0420we0rs0310c80dc1j700600902c04t03q03q04c04302h01x03v04304r08b03b03w07p0ie0jl0rp0h00kj","0jj0jj0jj08u03x0la08904s0ux0nf07n0ej0fq1if00400902f04p03p04a04704g02e01d04l04w0600cf04504y0aj0iz0jw0rk0hl0mh","0l40l4___0a504p______0440wu0rs04s0bv___1b700000002504i03e03e04602q04303f04204504u09y03d03w06z0f30le0rs0f90nh"],["Arimo",700,0,1,"0jy0jy0jy07h03j0l808a0630z60rs0a50fx0gt1f900500a01z04y04003t04i03y02l01n05t0630780ds04m05q0e30lf0k80rs0jd0mw","0kh0li0kh0cr0430l708l06j0ym0mr0cf0h10if1dk00400a02a04z03304i04q04802l01206b06l08o0fs05506h0fk0ly0kk0qz0jg0ol","0mb0mb___09b044___07s0630yo0rs06m0g2___17r00100201s04l03k03i04302v04l02s06306507s0ie04s05r0cn0pn0nk0rs0gf0on"],["Arizonia",400,3,0,"0zk10f___0gl04f___0b603o1110kn0m807w___1ws00j00r03405j05d04102v02002901e02403o04v06b01n02u04x0700br0ni0mc199","17k0tw___0gd07l___0aj05r1190lb0m80bg___1ix00k00p03g05q05m03e02z02902800w03p05l07m0bn03104s07i0af0cd0mq0nb1mr","0pt0pt___0be02d___0a202q0q20gl0hv07y___1ff00a00m02903w03b03c03o02x04i03201x03304n07w02102y04b05x0jd0rk0fu0ym"],["Armata",400,0,0,"0g60fl0g608405s0j707k0330u70rs0120b80cg1ni00500902s04s04504p03z04102r00803103503l07a02p03106j0gi0i60ow0ef0g6","0fu0fu0fu08e04y0kb07h0450ta___01m0ek0g01nd00100a01h05904504r04r04f02k00603v0460510b903l04d0ah0if0js0os0dv0gu","0hy0hy___08606d______03g0vq0rs0000b9___1f600000002b04503e04503d03803w03d03d03i03u07c02y03c07c0hv0kz0rs0dw0jo"],["Arsenal",400,0,0,"0f20dw0eh06303h0ij09f0340yp0rs0150ax0bk1w500b00902z04o04o04w04a03902c00702z03503f05502402u06g0fa0gw0nx0dw0g7","0eh0di0eh08w02w0jr0980440wx0sz0260e40fp1w700700b01h05004h04u04p04g02600703u04504p08903404c09q0ho0ic0nz0di0ff","0hd0hd___08l05s______03l1060rs0000a6___1gk00000002c04103k04003h03e03n03d03i03l03y05q02d03906y0fj0jr0rs0f10jo"],["Arsenal",700,0,0,"0gi0fn0fn07b03h0ij09h05d18k0rx05w0fe0gl1qz00a00902f04z04v05204e03802300805605d05u09h0340570do0kj0hy0ob0f20hd","0ft0ft0ft08w02z0jj0a405y13t13c03e0h00io1pi00900a02k04v04q04y04z03n01g00505j05z06r0bc04006o0fz0kw0j00nw0eu0hs","0ii0ii___09f04n___0840671c70rs0000fi___1d000100201v04603r04403h03m04302n06506a06t0b803f05y0ew0rb0n80rs0fm0le"],["Arsenal SC",400,0,0,"0gs0hd0g70760570le___03k10v0rs00z0a00bd1lm00000002m04j04904p03q04n01r01l03d03l03x06102b0390730fw0h20qm0eh0ii","0gz0hy0fz07y0400lb___04i0zg___02h0d90en1ll00000001b05204g04z04k03n02601n04504j05708z03604h0a10hp0i40qs0ez0iy","0hd0hd___08l05s______03l1090rs0000a6___1gk00000002c04103k04003i03e03n03d03i03l03y05q02d03906y0fj0jr0rs0f10jo"],["Arsenal SC",700,0,0,"0ii0jo0hx06q0420le06y0661cv0s704z0fh0g61h800000202404p04i04r03u04k02101905w06706q0bq03e05y0f20lg0jw0ra0gs0k9","0hq0jp0hq06u03y0le06s06o17w10603z0gz0i91f000000202904p04g04q04f04a02100y06b06p0850da0450740gn0lp0k00qz0gr0jp","0ii0ii___09f04n___0840671cf0rs0000fh___1d200100201v04603r04403h03m04402n06506906t0b803e05x0ev0rc0n80rs0fm0le"],["Artifika",400,1,0,"0jk0ja0jk0800410iz08t04j15m15o0ad0bu0cs1gb00c00b02t04m04b04i04703a02r00p04g04k05808502o03j07u0h80he0pw0hu0la","0jk0jk0jk0bg03x0je09905f12o18009g0dr0f51dm00b00b02w04h04604d04s03502k00u05705k06p0b003j04k0ai0j80i00qm0il0li","0k50k5___09805r___09204v1420uu05h0c4___1a600200402804703i03x03c03a04403404p05005n08q03103z08s0jz0l50rs0g40nm"],["Arvo",400,1,0,"0j40jo0hy08203h0j408p03x0u41u60810c10dt1j000900802q05403l04204a03502i01y03v0460690a203h03w07k0f80i80rs0gs0lf","0in0jm0ho08102y0jg08a04l0su1iw0730e60g31k300600902u04y03n04104u03102m01h04h04z07b0c904604w0970gv0iv0rr0go0km","0k90k9___09v04n___05s0430u91u406u0cj___1dr00000302d04l03403i03303104j03h03w04a0600ai03h04407r0e20nx0rs0hd0ow"],["Arvo",700,1,0,"0k90lf0k908n02w0j408p06b0vw0rb0e60h70ib1dx00800a02405b03x04704f03502q01i06706z0bd0gt05b06d0dd0kc0j40rs0j40nq","0k00lx0jj09602e0iy08w06r0ve0jy0dw0ho0jo1bt00700b02905203u04204w02z03801106j07r0by0gw05s06u0er0lk0ij0r40j20nu","0m00m0___07f042___06y06n0vp0r00a40i0___18p00000301t04o03h03m03303g04y02o06c0760by0hq05f0720dp0qa0pp0rs0j40qm"],["Arya",400,0,0,"0ic0ic0ic07q05c0la08v04r1600rs01k0cs0ec1j800800902j04j03m04h04a04602e01d04o04s04y07c02n04209x0kk0k50r70gk0ji","0ia0ia0ia0860420la08m05h13j19803a0f70h31iw00600a02m04n04a03h04g04m02g00w05a05k0640a903h05c0ce0kx0kj0qq0h90ja","0j40j4___07z05i___04204v1aw0rs0000cm___1g200000102704103r04103e03j03x02x04o04w04z07102m0470a50o20m70rs0f20k9"],["Arya",700,0,0,"0iw0iw0ia07404q0ky08v05q18j0rw02m0f00gq1j200700a02d04p03q04k04g04502g00z05m05q05z09j03505c0cw0l90k50qr0hp0k2","0ja0ja0i906k0420l908l06d15513304d0gn0im1hv00500a02h04q04d03g04i04k02h00u06706e0720c904106g0ez0mi0kj0qp0i90ka","0jo0jo___09k04n___04205y1e80ru00g0eo___1f900000102004303u04203f03m04202p05q05y06309e03305m0d90qp0na0rs0eh0ku"],["Asap",300,0,1,"0fw0fw0fw0630570je08602v0tj0rs0150a00bj1n300700804b03q03z04f04g03b02n00k02s02w03f05t02h02v05f0cz0he0pk0et0gg","0fs0fs0fs06w03y0jk0880400st0ni0130dh0f61nm00400a02t04l04604n04w03e02r00403o04305309x03h04d0920gz0i50pt0et0hr","0ht0ie___08f06c___04z0320t10rs00j09x___1dp00000203303n03b03y03c03703w03b03103603p06902q03505s0bs0j90rs0g30ko"],["Asap",400,0,1,"0ge0ge0go07804d0jc08503n0v50rs0130c20df1ml00600903y04104304f04o03302n00h03j03o04d08803303n07y0gw0hp0pk0fb0hi","0gp0gp0gp07d03x0k808a04k0tr0ly0250e30g21k400500a02i04u04304h04v03g02j00o04e04m05y0bp04204x0ag0ii0iy0ql0fq0io","0h80h8___0b5056___04z03y0v60rs00h0c4___1da00000202o03z03e04003e03a04702u03w03z04t09u03f03z08c0iq0kl0rs0ey0l9"],["Asap",700,0,1,"0h70hr0h706y03g0j707z05y0x314m06j0h80j51ki00600b02n05004e04s05502k02l00805u0600820es04t06i0fw0nr0im0pl0gm0ix","0h60i40h607402v0iy08106f0x20ju03c0hu0ku1he00400a02504z04a04n04z03902z00606706k09y0f005a07o0gt0mn0j30pw0h60j2","0iq0iq___08w03z___05406f0wh0r002a0h6___19u00000101k04f03k03z04303f04k02806e06j0990gl05h0760gb0r90nj0rs0fv0mo"],["Asap Condensed",300,0,0,"0dq0e90d605j03u0je08502u0t90rs0150ba0c720300700804303u04404h04j03902j00k02s02w03705a02i0320740g50hv0pz0cm0e9","0eu0eu0du06x03y0ke08b0430sv0ko01p0e70g71vr00500902m04k04604i04p03l02g00u03w04504w09003m04u0au0j30j50qw0du0ft","0ey0ey___06l04l___05j0330tk0rs0000b4___1pl00000202x03p03f04003e03d03v03303203403g05u02q03f07g0hy0kl0rs0cn0go"],["Asap Condensed",400,0,0,"0ea0eu0e006403b0jg08703n0uq0rs0130d90f01ys00600903s04204604i04o03402l00i03k03o04607o03503x0a50iz0id0q10d70eu","0eq0eq0eq07702y0k608904h0t40ma01o0fh0hl1vb00500a02g04r04804k04w03e02h00o04d04j05r0am04305c0ci0jy0j00qn0dr0fp","0fi0fi___0a003q___06403y0v80rs00h0dp___1os00000302l03y03h04103g03f04302p03w03y04g09203f04b0ad0nl0m50rs0c20h8"],["Asap Condensed",700,0,0,"0fh0fh0ew06n01q0j708005v0wz13501o0ic0k21wt00600a02m04x04k04u05302l02k00805t05w07j0cu04v08m0iy0ph0iq0pn0ew0gm","0g70hn0f90q901x0ix08006e0wf0js0ay0j30m61p800400a02504w04e04p04y03b02x00606606i0ag0dx05k0aw0iu0oo0j50pw0eb0ui","0hs0hs___0ai02v___06106g0wd15r01l0in___1ko00000202404903m04404103204f02606c06h0960ej05j0990mz0ry0p50rs0g20k2"],["Asar",400,1,0,"0hl0i60h00ec02y0i70a903p11x1ti06t0bk0cz1p900900903g04m04f03z05f02302z00f03k03s04q07v02c03206l0e50h40pg0f90jd","0hj0il0h10in0330j409u04p0zb0j803s0e00fx1o500500b01y05a03904s05b03k02y00904i04v06609q03c04h09d0gx0ik0pt0gi0kn","0ki0ki___0d5044___06z04313g28o03j0bm___1f700000302u04103f03703t03803803z03s04304u08u02j0390750dv0nr0rs0fu0o1"],["Asimovian",400,0,0,"0g30fi0g308903g0i109k04c0t90rs0420es0fv1n000500a02w05004f04o04n03c02a00604704d05s0cp04004i0ag0is0i30oc0cn0h8","0gd0fv0gv08p02z0jg09h0500sf0n001k0fo0h91mz00200a02e05304d04q05803z01n00404t05206w0d804m05n0cv0ju0j40nz0cw0gv","0j40j4___09z04n0gg___0520tf0rs00w0f5___19n00000002904d03903o03g03904q02v04y05406m0fq04q0550b10o90oz0rs0eh0ku"],["Asset",400,2,0,"18316c18p0fr01s0id0890340rv___0qo0fk0ih0td00c00j03505g05604p05z01g00z0050ew0fz0hz0nl02o06g0hf0j60ha0in1111c8","1c01ci1dg09702x0ne08q04c0wc___0rs0h40ja0qg00800b03504v04m04s04z03j01a0040fh0he0kt0sm03a07c0hz0mk0j30n115p1hc","1mg1mg___04h042___09h04j105___0rs0iy___0lq00200201n04803n03u03903r0490330i60mu0p80yy03a07g0on0qz0rs0rs1c11te"],["Assistant",300,0,1,"0fn0fn0f206e04n0il08p02e0ru0rs01p08u09z1t800900903a04g04804o04a03a02w00802c02f02v04m02402i04d0940gg0ow0dw0gs","0fe0fe0fe08r03v0jl08b03s0t30s102b0ct0dt1t900400b01s05404404o04z03j02n00k03f03t04l08303803y07x0ef0hd0oz0eg0hc","0i80i8___05z05v______02l0rp0rs00008q___1ik00000002r04003d03804h02r03m03m02k02m03104j02902r04x09l0ix0rs0fv0it"],["Assistant",400,0,1,"0fn0g70fn06804n0iq08p0360tk0rs03e0ay0c71rh00800a02u04u04904p04d03a02u00803303703s06j02r0380650e20gy0ow0eh0hd","0ff0ff0fw07c03v0jl0860460ti0rz0130dy0f51rf00400b01j05804604q05203j02p00i03x0470570a703m04e09a0g00hh0oy0eg0hc","0hn0i9___09305b______03h0tx0rs0000b8___1he00000002b04c03f03e04802t04103a03f03i04106t02z03m06w0f90k70rs0ep0k0"],["Assistant",700,0,1,"0hn0hy0hd06k03h0jo08405p0wy0rs04a0gh0hh1lb00500b02605504e04r04d03o02k00905k05p0770e104o05u0e70kq0in0p20gs0j4","0hl0il0hl06q03x0ji08906a0wu0l903t0hk0j31gu00500b02b04z04a04n04w03g02h00d06206e09a0et05806s0fm0m60jn0pm0hl0jk","0j10j1___08j04m___07i0640w00rs0000gv___1as00100301q04j03k04203i03e04k02f0620680830gd05706l0ez0r40nq0rs0gq0lx"],["Asta Sans",300,0,1,"0hy0hy0hd05t0580jo08402p0sd0rs0420900ac1m100700802t04k03v04903w04201y02102m02r03905802d02u04t0a40hk0rc0g70j4","0hb0ia0gd08k03v0jr07e03x0s3___03a0c60ds1nm00200a01h05303w04a04p03z02601x03l03z04u09t03h0490810ew0i90qz0fe0j9","0j40j4___05605s______02r0t10rs00008z___1ga00000002l04003c04303c03403j03u02o02s03505102d02s04z09k0ja0rs0fn0ku"],["Asta Sans",400,0,1,"0hy0ij0hy09j04n0js08503p0ub0rs04k0bh0d41ki00600902d04u03y04c04103x02801r03l03r04h08e03703r07d0g10ij0rs0g70j4","0hr0ir0hr08803y0jk08904l0tn0mm04a0du0fv1ks00400a02i04w04104f04x03502g01204d04o05r0c404504v09y0hh0i70qz0gs0jq","0j40j4___09s058______03r0uk0rs0000bh___1eo00000002504a03g04403f03804103603o03s04e08w03803s07c0f90ky0rs0fn0lf"],["Asta Sans",700,0,1,"0jo0jo0j407r0420k908e0560wb0rs0810er0g21hn00500a02104z04104d04403y02h01h05205806g0cz04d0590br0kb0j60rs0hy0ku","0js0js0it08l03y0jm08d05u0wd0my06o0fu0i41hu00400a02904v04704h04v03802l00x05g05x07n0eq04s0600dj0k60j30r10ht0ks","0jo0jo___09304n___02b0580wd0rs00v0er___1at00000001t04h03k04203e03d04j02n05605a06k0fr04f05e0bl0o90mq0rs0g70ml"],["Astloch",400,2,0,"0b20ix09w0ix02x0kd___01a0k40to04k06m07c2gg00000002n04s03y03k04t04q01z01d01901e01u02e01h01s02f04e0i60p608q0hg","0bv0eu0ae16701z0ke05o02z0l70tp0630dn0en2bi00000l01x05203v04305104602e00q02t03704e07503b04706h0de0iv0qj09w0lr","0n40n4___0b402w___06y01j0ny0vg0a0065___1vx00300i03603p03c03h03d03i03h03701d01l02302w01g01s02f03u0ld0rq0cq0r5"],["Astloch",700,2,0,"0c60ng0af0gf02b0k905u03b0lz0u904v0ej0fh29t00000s02005403z04d04g04102m00h03703g04n07m03n04h07s0g90io0pl09u0nq","0da0lt0ax0ep01w0kk0600420mr0lk06d0h50i924000000n02804q03y04304r04n02d00g03w04906r09u04j05u0by0iw0j70py09i0ms","0q00ql___08a02w___06y03z0pe0xz0f60dp___1pm00200i02504g03e03n03g03q04902803m04406309m03r04m0790c90n70rr0k80sb"],["Asul",400,1,0,"0hy0hy0hy08x0420j409m04910913605k0c60dg1l300800802m04t04304f04c03802a01o04004e05608602v03u08i0h00hy0rg0f20j4","0hr0iq0h90b103y0ip0a20500y80x605k0e80gp1kt00700802q04v04804i05702e02k00y04q0550640b203o04t0b50ij0hy0qz0fs0iq","0ig0ig___0cc057___04104g11u0zf02s0cb___1fg00000102a04a03g03u03i03c03u03b04604j05907k02y04008p0k60lm0rs0f00lc"],["Asul",700,1,0,"0k60kr0j108j0410j509o05n15y1120ad0e20g71g500800902f04t04604g04b03b02d01i05c05v06v0bd03h04t0bp0ja0ik0rh0hv0lw","0k90k90i80ba0420jx0ab06f14f10107d0fl0hq1dx00700902m04u04903e05103d02e01h06406k07r0dr04705p0dp0k30ik0rp0i80l9","0kr0kr___0c005s___04105y17x0ye04n0ee___19z00000102204c03j03x03h03f04202z05p0620700bd03k04z0bw0ob0mp0rt0g50o8"],["Athiti",300,0,0,"0fn0fx0f206705s0jo07o02a0si0rs01608o09d1lw00700803704b04104u03l04902x00902802a02m04i02402a04b0980hd0ow0eh0gs","0fu0gt0fu06403y0k807j03p0rk___0150cr0dx1m300200b01p05303z04q04r04402s00c03d03r04i08v03e04407j0ff0is0ov0eu0ht","0i80ij___06c06d______02h0sq0rs00008o___1c700000002s03p03504f03c03303n03p02g02i02v04l02b02h04q09c0hj0rs0g70k9"],["Athiti",400,0,0,"0g60gh0fm07b0570jn07u02x0t70rs0140aj0bd1lc00600902r04q04104s03r04402y00a02t02y03d06d02n02v05n0d30hl0ow0f10hc","0gs0gs0ft07103y0k607j0440s5___0130dx0ef1lz00200c01h05904204r04r04102r00d03r04504y0au03q04d08t0gz0iq0ou0et0hs","0ij0ij___08f05s______0370th0rs0000an___1bw00000002d04403804803d03604303a03503803o07102y03606a0cx0ja0rs0fn0ku"],["Athiti",700,0,0,"0jo0k90ij06203h0ja08a06e0u90rs0ap0i50je1cu00500c01z05a04e04s04f03t02f00806c06g0a30h905q06x0g20n30ir0p10ij0ku","0k90k90j907o0310jx08g0700u80lt08w0i60ki19e00400c02805704h03l05403z02e00e06u0780cr0hv06e08m0hl0mv0io0pk0i80l9","0m00m0___08k042___06e06y0u70rs04n0il___14e00000301m04h03n04503e03k04s02506w0700b30jr06d07q0ga0qz0nz0rs0j40ob"],["Atkinson Hyperlegible",400,0,0,"0j30j30it0910420kg07r0470vc0rs0620cj0dj1i900300b02904r03x04903u04e02c01p03z04905709d03l04708g0h50j30rs0gs0k9","0ir0jq0hr07903y0kf08304x0ui0m50600eb0fy1ir00200b02e04t04204e04v03e02n00y04n05006d0ci04a0550am0hu0j20qy0gs0kq","0jz0k9___09u04n______04c0w90rs03h0cf___1c600000002204d03j03v03j03704903004704e05b0bs03o04908f0hw0m00rs0f20mk"],["Atkinson Hyperlegible",700,0,0,"0jo0k90jo06n02b0j407j06a0xc0rs0bz0h40i21gl00100c02205a04h04u04l03g02o00406306e08p0g90500670et0m70ij0ph0ij0lf","0jp0ko0jp08q01z0jd08506v0wz0kg0bu0i30ji1ck00100b02805504e04t05603802f00306k0730bd0gz05m0740fy0ll0i40pq0ip0mn","0ma0ma___08u02w______06z0w20rs04s0h6___15b00000001o04i03m04003i03e04o02f06t0790ag0k005v06y0fv0rd0nz0rs0hd0ow"],["Atkinson Hyperlegible Mono",300,0,1,"0hy0hy0ii04n06o0jo0760350tn0rs05w0a60br1af00300d02s04u03x04g04104002m00q03103703z07502q03605b0bq0hf0q10g70jo","0hc0hc0ib04n05s0jp06i0460t4___05w0cw0ef1b500000b01i05903y04g04x04202m00s03w04805e0ap03l04a0850f60i70pv0gd0j9","0j30j3___06z06y______03b0ty0rs0000a6___18i00000002e04603g03v03g03503w03g03703c03z06h02w03d0640dg0kg0rs0gs0lf"],["Atkinson Hyperlegible Mono",400,0,1,"0ii0i80ii06x05s0jo07703r0v20rs06k0br0d61a200200c02k04z04104g04803u02o00o03n03t04q09g03503p06u0er0hy0q20g70jo","0ib0ib0ib04e04t0jo06j04k0uc___05w0dz0fz1at00000b01d05b04104j04y03x02o00r04c04n0630c204004l09d0gc0i70pv0gd0j9","0jo0jo___09g05s______03z0v90rs0000bx___18000000002604c03h03u03j03704603303t04004q0aq03h04007q0hg0lm0rs0f20lf"],["Atkinson Hyperlegible Mono",700,0,1,"0k90k90k903q04n0jo07k05y0xo0rs09m0g10h818j00200d02405604804j04g03m02o00m05s06007z0fj04o05m0da0jv0il0q80ii0ku","0kk0kk0kk03l04w0ji08406m0xu0l70a50gv0iy15c00100c02805004504g04z03d02i00s06c06s09v0go05906h0f00kn0jp0qr0im0lk","0lf0lf___08r042______06b0vm0rs0000gk___14n00000001r04k03k03z03h03d04n02i05x06c0850h705b06a0ew0r40ny0rs0fm0mk"],["Atkinson Hyperlegible Next",300,0,1,"0ii0it0i808x04n0ki07n03d0ti0rs04n0an0bp1k800300b02h04l03s04903r04h02601x03803e04306p02x03f0610dj0il0rs0g70jo","0hd0hd0gv08703v0jp06j0460su___02u0de0eq1ot00000a01f05504504j04y03v02r00q03w0470560ag03r04g08p0fh0i90px0ff0ja","0jo0jo___08504n______03f0u70rs00h0ae___1eg00000002b04703g03w03g03403y03f03c03g04606t02x03f0640ch0kg0rs0fm0lz"],["Atkinson Hyperlegible Next",400,0,1,"0ih0ih0is08z0420k807l0450v30rs0620cg0dc1j400300b02a04t03y04d03x04602i01g03v04605309b03j0440850gp0im0ra0g60jn","0ir0jr0hr07l02z0kf08404y0uu0m20600ec0g41is00200b02d04s04104d04w03e02l01204n05106c0ch04b0530ac0hw0j20r00gs0kq","0jo0jo___09x04n______04b0vx0rs0310cf___1cc00000002204d03i03v03j03704903104704d0590bs03o04808c0hs0lp0rs0f20mk"],["Atkinson Hyperlegible Next",700,0,1,"0k90k90jo06r02w0jo07l0600x40rs0aw0g40h91gm00200c02205404b04n04f03l02r00k05s0620800fa04u05v0dz0kf0ip0q80hy0lz","0ko0ln0jo07f02y0ke08606o0x90l909g0gz0iw1cj00100b02604x04704i05003c02m00r06d06v09w0gd05d06q0fl0lm0js0qw0hq0mn","0lz0lz___0ac03h______06g0w20rs04f0gh___16o00000001q04j03l04003i03c04o02h06c06p09i0ie05h06f0ed0qj0nt0rs0fm0ob"],["Atma",300,2,0,"0cq0db0cq08v0370j408402d0oh0qj01t09n0b427s00400d02e04n04804l04804002f00u02a02g02q03z02403005e0b10hi0oi0c60eh","0dg0ee0dg0br01x0jr07b03p0p70qj03w0dn0ey25t00200c02304n04404d04q04302d01203e03s04a07m03g04t08p0gc0i70ov0ch0ha","0eq0f0___08v03j___02z02g0qp0sf000092___1w500000402s03v03s03m04503a04f01u02c02i02s03x02402w05g0ar0k90qk0cd0gh"],["Atma",400,2,0,"0ds0di0di08202v0jj0810350s40rf0130br0d323d00400d02704o04804l04704402g00y03103803j05a02m03s0720ew0i10oy0c20ex","0dh0ef0dh0cq01x0jt07b0460rm0re0360e80g122d00200c01y04n04804g04v04302d00x03x04704s08c03o05309y0h90ib0ot0dh0hb","0h30h30eq06x03j0nf0300380ts0s201b0b00bq1te00000302k03z03u03o04703f04g01l03203a03k05602m03q0740en0l70qj0fb0i9"],["Atma",700,2,0,"0ij0jo0hn0by02b0k908407d1020qt05p0iq0jr1kw00400c01t04r04k04v04f04302b00k07207j08u0f005m0920i20op0j90ph0hd0lf","0j70jp0hq09401z0jm08907w0zx0nw05k0jp0kx1dy00400c02m04p04g04u05103d02100c07i0850co0ge0670az0im0ov0iy0oz0hq0lo","0jk0jk0if0ch02b0ng02w07e0zj0ry04j0iy0if1gp00000101h04a04404e03r04f04c01107007j0970f005r09n0k40pi0n60ql0if0kq"],["Atomic Age",400,2,0,"0it0gs0j408b04n0ij0ai04q11m1uk0b80ek0fm1gk00b00903d04i03z04f03x03602901n04p04q04x0dj03h03i0eu0nt0hy0rs0g70k9","0i60ga0j509u03u0ir0a205b0zw1kn08q0g60hp1h300b00902q04r03w04d04g03502601s05205c0650eo04304u0fo0n80id0r20ga0k3","0hy0hy___0ab06d0cq06y04q11m1yw02v0eh___1bf00000302x03w03f04b02s03e04502x04p04q04u0cy03h03i0de0rr0mp0rs0db0lf"],["Aubrey",400,2,0,"0fm0eh0fm08x03h0k909e03f0sv0rv0110ch0d01rx00900802n04r03p03y03x04e02601u03803h03y08k03603m0980jb0io0rs0af0g7","0ey0ey0ey07z0300kd08o0490rm10a0120fg0g01uv00400a01g05b03y04604z03i02b01t04204c0550an0430530cb0jo0j00qx0cy0fy","0fm0fm___09y04n0i5___03i0t50rs0000ch___1ni00000002704e03803a04003i03z03903g03j03y08n03803r0a80o80mr0rs0c50gs"],["Audiowide",400,2,0,"0m00nq0m009i0420ir0990520rt18r0id0h50gh19l00800902w05303r04t04f03303100805105308n0jk05105209o0je0iq0pp0hy0ob","0lv0mt0lv08v03t0iu08z05l0sz0lq0i60gt0j518000600a02c05b03n04h04z03r02q00605b05q0cc0jl05905l0av0iv0j40pw0jz0po","0pd0pd___0ae04m0gx04805c0rx0rs0gv0g1___11a00000101w04q03104d03k02p04p02v05b05f08o0na05b05c0950nd0n90rs0lx0ro"],["Autour One",400,2,0,"0if0j00if07q0410j00820400sm1ad0990d50dq1jm00500d02l05d04304c04u03e02e00b03v04605z0b303o04907j0f40hc0o80gp0jk","0i20ij0i20a903t0iu07v04l0sm10u0780f20gb1kf00500d02l05503y04a05c03r02400704d04t06l0cy04904z09l0gi0hh0ow0g50j0","0k90k9___09805s______04i0tg0uj01u0cz___19t00000002104i03o03n03i03f04c02p04b04k05k0d104204u09n0hb0k90rs0g70ml"],["Average",400,1,0,"0i80i80i80dn02d0i80al03u13y24g08p0al0c61lc00b00703f04k03y03n05602a02802103g04104r07w02803006d0d20hn0rc0fv0mc","0gx0hx0fy0qc0300ig09n04p0zn0un07r0dm0fz1mc00900801v05b04204d05802402b02404f04z06b0a003804a08n0g70hz0qw0ey0kx","0md0md___0bp05b___07n04718r29q0ap0at___1dq00100403403x03f03403r02s03r03t03y04a04y08602603006o0cu0o70rt0h20ro"],["Average Sans",400,0,0,"0g70gs0fx09o0420i609g03t0vf0rs0420c50e51ma00b00802l04s04604m04k02o02l01b03p03w04o09503803r0890gc0h10qm0dw0hy","0gn0hm0gn09903x0il0a004o0uw0no0470e70h11kt00a00802m04s04404k05502e02l01504h04t05z0bo04204w0as0ht0hv0qu0fo0hm","0hd0hd___0bi04n___08403z0vz0rs02q0bv___1f700200402704a03f04703d03b04b02l03r04004t09903b03x07x0gn0ke0rs0fn0lf"],["Averia Gruesa Libre",400,2,0,"0hn0hn0h207h0440jf08u04l0x81010470da0eo1i000600902005704b04005502t02n01b04e04q05o09o03g04k09y0hm0hv0qh0gh0i9","0hq0hq0hq07603y0jf09805f0xg0ut03a0f70h81h100500902604y04904m05302u02n00t05205j06o0c804905k0bt0iu0hz0pz0gr0iq","0ig0ig___095057___04d04y0xr1fu00h0d8___1b500000201r04h03i03z03i03f04b02t04l04z05w09y03p04t09n0kr0m00rt0f00lx"],["Averia Libre",300,2,0,"0hm0hm0hm08804m0j209l04d0wv14w0550d40dx1h600800802o04s04504i04a03802k01804404i05a08x03a04b0960hh0hw0q80fl0ih","0hr0hr0ha07503y0jf08n0540wh14l0250f30gf1hh00500902505004904n05202w02o00r04s05806c0bk0430570b60hz0hy0py0fs0ir","0hx0hx___09605s___04e04l0xc2id0000d4___1bg00000201p04g03j04103l03e04902t04804n05g08v03g04i0920jx0lo0rt0eg0kt"],["Averia Libre",400,2,0,"0hn0hn0hn07n04p0jf08q04o0xa10t0590dh0ex1ho00600901y05604a04005502x02m01b04f04t05q0a903j04l0a70hz0i90qh0gh0i8","0hq0i80hq07b03y0jg08j05g0x40r703r0fi0h11gt00500902504y04a04m05202y02n00u05405l06r0cg04a05n0c40im0i20q00gr0jp","0ig0ig___095057___04f0500xv1fa00h0dj___1b300000201p04h03j04003j03e04c02t04m05205z0ap03r04w0a30m80m50rt0ef0lx"],["Averia Libre",700,2,0,"0it0it0ii06s0440jz08a05j0y716q07h0fi0gh1g100500a02305304803w05103302m01e05c05r06x0de04705e0cq0jm0iw0r10hn0jz","0ip0ip0ip06s03y0jm08b0660yd11h06y0gu0i21f900400a02804v04604i04z03502m00x05w06c0820ea04p0670e50lh0j00qw0hq0jp","0jk0jk___08t057___04105y0z319m00h0fk___19100000101s04g03j03z03h03e04g02q05k0600760ek04g05p0cl0pr0np0rv0fj0mg"],["Averia Sans Libre",300,2,0,"0gs0gs0gi07y04n0j409v0440uh0r403o0cy0dy1iw00800802g04u04a04q04f03202k01003t04805209803d04d0970gz0hf0q40fn0hy","0gr0gr0fr07403y0jg09f0500ur13n0140er0gk1iy00500901x04y04c04q05602x02l00s04k05206e0bv04805d0bf0hh0hx0py0es0hq","0i80i8___09k05s___04004c0uf1zk00h0cm___1c400000102404503l04803n03h04702e03x04c05409p03j04n0980k00ki0rs0eh0k9"],["Averia Sans Libre",400,2,0,"0gs0gs0gs07r04n0j408v04f0v50sw0240dk0es1jq00600901s05404c04s04i03902n00z04404h05f0af03l04n0a00hd0hy0q50fn0hy","0gr0hq0gr07203y0jg09c0580v30wv0260fk0gz1id00500901y04y04b04p05502z02l00u04t05b06u0cm04e05s0bt0i50i00qp0fr0hq","0hy0hy___09e05s___03g04n0um1za00h0dn___1c400000101j04g03n04803q03k04g02904804n05m0bg03s04z0a30ll0lm0rs0dw0k9"],["Averia Sans Libre",700,2,0,"0hy0i80hn0710420jo0850580w312b04t0fj0gc1hi00500a01z05104804l04d03j02o01105005b06q0dx04c05c0ch0jb0io0qm0gs0jo","0io0io0i606p03y0jm08905x0we0v205w0gn0i91fv00400902604u04704j05003702l00y05i0600860ec04u06b0dy0k30j10qw0gp0jn","0je0je___094058___03h05i0wc1as00h0f1___19w00000101q04g03l04403l03g04k02c05805i06x0f304i05r0ch0ox0mv0rs0fn0lf"],["Averia Serif Libre",300,2,0,"0i50i50i50810430iy09104c13m1hy0730c10da1gy00900802w04p04303t04w03702401m04404h05b07x02j03k0780gh0i50ql0ft0kh","0ip0jp0ip07k03y0jd09b05810c19y0840en0ft1gt00800902z04n04404f05002s02g01005005g06l09n03g04q09x0id0hz0q10gr0ko","0jz0jz___08t04n___05s04o14a1ly05e0c4___1aw00000402j04603e03t03b03a04503404b04r05k08b02o03s07c0gi0mq0rt0eh0ob"],["Averia Serif Libre",400,2,0,"0ic0ic0ix07u03k0ix08y04t13j1e40770cu0e51gn00900902q04v03k04h05102p02k01e04m05006108s02v04208j0hr0ic0qn0gk0la","0iq0jp0iq07l03y0je09a05l10w17x0840fi0ge1g100800902u04r04304f04z02r02k00z05a05v0730aq03p0520as0iw0i10q10hq0kp","0k90k9___08l04n___05s0571461lq06q0d1___1ad00000402c04903f03u03b03c04a02y04u05a06d09f03004a08k0k50n90rt0f20ow"],["Averia Serif Libre",700,2,0,"0j40ij0j407902w0ij08p05q14z1ba0br0et0g11gx00700a02i05204b04m04g02w02s00p05g05y07d0at03e04v0b70io0hy0q20gs0lf","0is0is0is07102z0hq08f06913711v09m0gm0ih1gh00500b02r05204g04r05702d02m00605z06i0890ct04305p0cx0k60hx0ps0gs0kr","0m00m0___089042___05s06c1641d508o0ex___19200000302304f03h03w03b03d04h02p05x06g07y0bp03o05c0bf0ol0oe0rs0g70q2"],["Azeret Mono",300,4,1,"0j40j40jo05404n0ki07003m0u80rs06a0bl0c51bs00200b02l04x03s04c03p04u02m00n03g03r04k08h03403o06h0e20ik0q20hy0k9","0j90j90j903y0420k407h04m0ti0lt06f0e10f11af00100c02q04z03w03f04v04b02l00o04d04s06f0d604304w08o0gl0il0pt0i90ka","0k80k8___09a04n______03y0vm0ss0000c6___19100000002604c03e03s03h03904803703r04004r0an03b03z07j0ga0ml0rs0fm0le"],["Azeret Mono",400,4,1,"0j40j40jo03t04n0ku07004c0vd0rs06f0d10dv1bh00200c02d05103v04e03r04r02m00m04404g05m0b303o04d08a0hh0j40q30ij0k9","0j30j30j30370490ky06x0570ug0nj04a0ff0gb1ab00000c02o05903304m05103t02s00704w05b07d0et04j05g0ao0j30jh0pp0i10k5","0k80k8___08y04n______04q0wn0rs0000dy___17y00000001z04g03g03t03f03d04g02w04i04s05r0dr03w04r09g0la0n90rs0fm0lz"],["Azeret Mono",700,4,1,"0iv0iv0jg0310350jg06h0600x60rz09m0h00ii1ca00100d02605f04e04r05903b02000405q06608i0g704y0650e20li0ij0oa0ib0k0","0is0is0is05d02z0jh06h06e0vv0l50860gw0jm18y00000b02f05d04i04v05b03o01c00206606q0bo0gi05d06x0fz0ll0i70nv0ht0js","0lz0lz___05j03h______0700y10rs0000i5___13x00000001o04i03n03w03f03l04o02f06t0750a60is05n07h0hr0rs0oy0rs0kt0np"],["B612",400,0,0,"0fs0fs0fs07r04o0iz09303t0uv0rs0440cu0df1lm00900803504p04d04205902v02g00i03n03x04j08803603x08h0gs0hd0q00e10hj","0fs0gs0fs07304y0ji09504l0ti0ny01n0ez0gd1kd00600902h04v04804l05403b02p00504d04o0600bi0450500b50iq0i40pt0et0hr","0hd0hd___09y05s______0460vx0rs00g0cw___1dy00000001x04e03k03u03n03f04502w04204604q08y03a04808d0iy0li0rs0dw0j4"],["B612",700,0,0,"0hb0hl0gg0a003h0j108o05y12f0rs0640gj0ht1l300700a02005104j04u04i03a02p00h05v06406x0cw0470660eo0mi0ih0py0g50jm","0hs0is0ft0c703y0jh09806g10i0ud04y0hg0ka1gp00500a02904u04h04r05303a02j00506a06n08x0e304s0760g70m40j10pt0ft0jr","0ku0ku___0cf042______06q1350rw0590hc___1ac00000001m04d03r03z03m03n04e02g06l06r07w0f804j06r0fq0rn0oc0rs0hy0m0"],["B612 Mono",400,4,0,"0g70g70g705905s0j408r03n0u30rs01l0ck0dh1da00800802d05004504m04j03g02o00j03g03r04i08u03403p0780fp0hh0q20fn0hd","0gr0gr0gr04504x0ji09704i0t10n90130en0fx1bo00700902k04v04404h05603e02o00604a04m0690cb04604v0a60hd0i20ps0fs0hr","0hd0hd___08v05s______03y0ul0rs0000cv___19o00000002004e03g03t03o03d04503003s04104m09a03a0420840iz0m50rs0fn0ij"],["B612 Mono",700,4,0,"0i10i10ib03q04d0iz09806311b1bw0a50gj0hz1b800900a02n04v04e04105703502b00r05x06607c0e804c05v0ec0lq0ig0qg0hg0j7","0hu0hu0hu03r03z0jh09906e0zl0w804a0hf0j518o00600a02904w04c04q05703b02i00506906k0980eq04t06p0fw0m90j10pv0gu0it","0jw0jw___04w04o___02n06q13l0t80000h3___15w00000001n04d03p03c04a03m03q03606g06r07r0fg04l06p0fy0rz0oi0rs0i50l2"],["BBH Bartle",400,0,0,"1cy1cy___097041______0ch14i0rs0px0k4___0ju00000001j04004603u03604304l02g0ch0fq1591cv08909f0gk0rr0py0rs1cd1cy","1cw1cw___0bb03x______0co16t0le0qq0k8___0jy00000001o04204803u03n04004d0220cv0ge13i1ae08809i0h40pz0pn0rs1bx1cw","1cy1cy___097041______0ch14i0rs0px0k4___0ju00000001j04004603u03604304l02g0ch0fq1591cv08909f0gk0rr0py0rs1cd1cy"],["BBH Bogle",400,0,0,"0fk0fk___06t01q______0630td0rs0100kq___1s100000001p04e03q03z03f03n04j02g0600650990eg05r09t0p90rr0qn0rs0fk0g5","0fn0fn___0vr01y______06l0so0jo05f0ll___1ie00000001r04903p03w03x03o04j02206g0700da0fk06g0al0oq0rm0qs0rs0fn0gn","0fk0fk___06t01q______0630td0rs0100kq___1s100000001p04e03q03z03f03n04j02g0600650990eg05r09t0p90rr0qn0rs0fk0g5"],["BBH Hegarty",400,0,0,"0rn0t30or0am01q0k708m0ap1360rh0lv0kv0l311d00500a01t04m04l04m04403t02k01b0ai0bi0ja0pm07s0bn0jx0rr0k70rs0or0uj","0uc0uc0vs0tl01y0jj08b0b61460lu0qu0l60mf0w000400a01y04h04m04m04p03h02h0150av0cm0mq0rr0880f90kc0rl0jv0rs0re125","0tz0tz___08502b______0be12e0rs0nf0lg___0wr00000001j04204903z03c04404b0280bb0cp0nh0s80890bo0pm0rs0q40rs0r40wa"],["BIZ UDGothic",400,0,0,"0dg0dg0d503y03i0kb0390370qm0rv0000cz0el1t500000402p04l04503w04n04001x01u03203903m05l0300400980iy0j20rr0ca0dg","0cf0cx0bx0dr02z0kd02l0460rm___0160fx0h31rg00000001c04x04a04r04y03v01s01w03y04705209f0430560dc0iz0jt0rp0bx0dx","0dh0dh___05f03i______0370rt0sz0000cr___1te00000002c04303p03f04503j03h03603403903l05f03004109b0mh0mp0rs0bp0en"],["BIZ UDGothic",700,0,0,"0da0dv0da05m0360kg02w0490sn1690000fm0hf1sd00000201r04v04804m04204802c01o04204a04u08h03y05k0e70kp0jt0rs0da0eg","0cy0cy0cg0d20300kf02k04s0rg18r0150hk0i61nh00000001805004b04t05503702c01t04j04t06c0av04q06e0g00ll0jw0rq0by0dy","0eg0eg___07202m______0490te1a30000g0___1rt00000001f04d03p04303m03m04a02q04304a04r08o03x05n0e60r80oc0rs0c50f0"],["BIZ UDMincho",400,1,0,"0d90d90d905604m0jx04402r0rm1rt0000bo0cu1rq00000903604f03t04703q04302502102n02w03c05702a03906s0f30j70rs0c40ez","0cz0cz0cz0800400kf03p03y0rc1oz00k0fj0gf1q600000301w05504304f04u03702a01w03m04305208k03l0500av0in0j50r30bz0ez","0du0du___06g041___02602r0sk1vl0000c2___1vi00000002u03v03f03p03a03a03t03n02n02v03605102803907q0g70p20rs0c40ez"],["BIZ UDMincho",700,1,0,"0ez0fk0ef04203g0jw04404c0zs1av00j0ex0gq1qh00000802q04m04304c03v03w02b01s04604f05007902t04q0bk0jz0jq0rs0d90g5","0fq0fq0eq0ff02y0kb04d0540wy18d0180h40i01l300000602w04o04104b04o03c02f01c04x05706n0b303r0630ea0l40jv0rr0dr0fq","0f90f9___04n02b___03b04a11c1hw0000f9___1ts00000102e04203l03t03903i04003604404d04x07602p04y0bw0pf0q40rs0ee0g4"],["BIZ UDPGothic",400,0,0,"0jb0jb0ip08r0590ka03a03p0u90rs07v0b40cl1fv00000402s04n03x03t04o03z01x02003g03r04i07n03303n06g0e20if0rq0gy0kh","0iw0iw0hw07n03z0kh02l04i0ud___05c0dc0ek1gp00000001c05304104m04x03w01u02304704l05r0ak03w04j08v0fn0iy0r10gw0jw","0k60kh___0af05v______03q0vb0rs0410bb___1b400000002i04503g03d04603803h03h03g03s04g07j03403m06g0di0kq0rs0e10ln"],["BIZ UDPGothic",700,0,0,"0jn0jn0jn08n04m0kh02w04y0wo1es08r0dt0f81em00000201s05003z04h04304802f01s04p0510670bo03z04s0a30j10j40rs0hc0ks","0ix0jx0if07803z0kd02k05h0w7___06f0ez0gm1e100000001805804404n05203802d01y05405j0750dz04j05d0bb0il0j30rq0hx0jx","0ks0ks___09u04m______0510xb___0410dw___19a00000001h04k03h03z03m03b04f03004p0520630dl04104t09p0km0ml0rs0f00mj"],["BIZ UDPMincho",400,1,0,"0j00k60iq07z03g0jw0440350x52hx0br09m0b21ha00000903m04e03g04103n04602002a02w03b04407n02702u04u0920im0rs0ig0mh","0j60j60j60ho03d0ki03p0460w50jm06y0cl0dd1hg00000302105603j03x04904e01z02h03u04c05k09d03204106t0dm0j60rr0i80m2","0lx0lx___08g057___02s0350xa2pn08009i___1e000000003d03t03303h03602x03k04f02v03c03y07n02702t0530950nu0rs0ef0py"],["BIZ UDPMincho",700,1,0,"0lv0mg0lv06j03g0jw04305s1ee1kg0ef0du0et1c600000702u04o03x04903s03y02b01w05g05w06w0b002l0410920iq0jq0rs0jk0or","0ln0ln0ln0km02y0jo04d06d1911bw0cq0f20gh1b200000603204j03x04804k03g02g01g06106k0810cn03a04y0aj0ju0ju0rs0jo0nl","0o70o7___07v057___03c05v1hi1tr0d40dy___19c00000102m04203g03p03503c03z03j05n0650700bk02k03w09c0kq0pq0rs0lb0st"],["BJCree",400,1,0,"0hu0hu0g40cp02w0hu07j03q18922l0730b10c71ge00600903e04a04404d04l02i02a01x03e03u04i06x01x02o05y0cu0ha0rb0fk0lb","0hg0ig0gf0ie0220iu07p04s1310q605o0e20fa1fw00100c01u05903704h05f02w02h01x04e04y05z09802v04108g0g10hj0rm0gf0ki","0n10n1___0b0041______04b1gi29a0990ba___1b300000003103o03g03o03a03e03l03r03i04c04u07d01y02m06j0cy0ov0rs0ha0px"],["BJCree",700,1,0,"0k90k90k907u02w0hy07j05p1lf1hb0ef0dr0f21by00500a02w04m04b04j04g02l02e01m05705u06l0a002b03p0940hn0hl0ra0hd0nq","0jp0ip0jp0gk02y0ho08306b1dv1860dc0fl0hr1ba00500b03104j04b04j05402602k01505p06k07n0bh03304u0av0i50hw0r10hq0mn","0ow0ow___07e042___06y0661v01ns0cl0e5___18800000202l03x03n03r03703k03t03b05506706v0aw02a03k0a00n00pm0rs0hy0sd"],["Babylonica",400,3,0,"0fm0ii___07x03h___0fm02g0zu___0b4071___1ri00z01s03m04u05h03f02t02f01u00o01q02h03e04s01c01w03004n09d0ly0bk0ii","15s0q0______04n___0eg04j0xh1h50rs09z___1hw00t01e03905205b04h03502701s00f03h04p06i09d02n03x05x08e0a80li0q01vt","0ow0ml___0b103h___0b002g12e___0dw056___1j100f01802p03v04d04503o03m03400q01r02i03d04t01b01s02r0460gc0ob0m00wf"],["Bacasime Antique",400,1,0,"0ij0l40gi09u03h0ij08703m1ls1zg0b80900aw1k000900j03j04h04a04n04503902c00d03c03n03y0540190230560c50h20ph0f20m0","0ic0ic0hc09y0430ia08j04r16w1et09u0cw0fn1ia00700j03u04q04g03m05e02r02400804l04u05p08402d03z0890gj0gn0op0d90ke","0pa0pv___097088___0910401u92lz0fd08k___16g00600f03c03s03g03303t02z03803k03h04004d05c01701v04l0a20lz0rt0fv0xi"],["Bad Script",400,3,0,"0aw0bh0aw0ih02b0ec___01v0lg0pi04q07p0ba2mc00000003i05d05806103301f01p01g01q01v02803g01s02i04w08f0c10le08l0dr","0dy0j90al0qp02f0eq___03b0my0yr0900bg0h82e300000001y06805g06703301q01u01c02x03a04p07f03604u08i0c60co0n70al0pz","0er0fb___0gu02u___0bx01s0mx0sv04i06c___22g00k00f03803p03k04003o02q03a02o01o01s02303301p02804b07v0dm0rc0bx0gg"],["Badeen Display",400,2,0,"0ow0ow0ow0bt00l0n504n0cg27f0rs0f60qr0qu11g00000702904704c04a03p04c03c0170cf0gb0ox0p80bq0o30rq0sb0nq0rs0ow0ph","2si2xy2si0r803y0nd04f_________0rs0oh0qj06600000402004604b04b04c04c0370120ky1sf2r03sv0nr0nz0rs0rw0nu0rs1xz6ij","0ow0ow___0cy00l______0cf19h0rs0520qy___0zd00000002303y04204003h0410420270cf0cv0ou0p80cb0qz0sb0sb0rs0rs0k90ow"],["Bagel Fat One",400,2,0,"0lc0ln0j10b901q0jp08907s0rz0me0bl0jb0lb1dp00400b02004x04r04f04403f02o01207f0860cx0ja07h0910g00nw0j50ra0j10nn","0mt0mt0ws0wp01w0iq0800810to0av0f20jv0m615o00300a01o04o04z04j04q03z02e00i07a08l0gd0js07h09k0hk0o80ia0qm0jy1bj","0nn0nn___09201q___09108c0sl0lw06t0k0___17500100201m04a04g03p03103z04n02207w08i0fz0lj08209m0fp0qe0pe0rt0mh0pd"],["Bahiana",400,2,0,"099099___05503h______0320qt1vr0000hn___2o400000002q03w03j03u03h03j04002u02t03403f05w03005u0hd0s40qx0rs08409u","09x09x___0co01z___0430460qn1ff00k0ks___2ci00000002404403o03z04403p04c01r03w04907409104d0af0ne0rd0q30rt08x0aw","099099___05l03h______0360r11ur0000hb___2nz00000002o03y03l03v03i03j03y02s02w03703i05v0330690io0s50r70rs08p09u"],["Bahianita",400,2,0,"08p08z08406502w0m506o02z0ra1zo0000hh0it2w500100a02x04603u04803i04702z01n02t03003a06902y05r0jb0rb0mm0rs08409u","09w09w08x0os01z0mf06d0480q015t0250k60lr2en00000802c04h04204c04904e02q01003w04a07m08s04o0c50le0qe0m30rr08x0aw","099099___05v02w______0360re1v80000h8___2u900000002k04003m03x03g03j03y02r02u03603j05y03406q0ky0s40qv0rs08p09u"],["Bai Jamjuree",300,0,0,"0hb0ir0hb06d0570jn08302i0sf0rs01608w0a41lj00800803304b03m04603r04a01x02702h02k03105402a02l04a0as0ii0rp0g50k6","0gv0ht0gd07303v0jr07e03q0ri___01o0cm0e91nn00200c01r04y03p04704m04202c01t03f03u04s09403d04406v0fs0ig0qx0gd0j9","0k60k6___05406c______02j0tm0rs00008n___1fo00000002u03q03803y03j02z03d04802i02k02z04s02a02h04f09c0k90rs0hv0kr"],["Bai Jamjuree",400,0,0,"0hv0j10hl07y04m0jn0830380ta0rs03a0av0c41k700700a02n04p03p04603u04702501y03703a03y08802x03b05p0fm0ir0rq0gq0kr","0hd0it0gw07r03v0jq07d0460sf___0250dk0f51me00200c01f05603w04804v03x02c01n03x04805e0c003u04e0850h80j40qy0ge0k9","0kr0kr___07t057______03a0u60rs0000ao___1em00000002e04603b03y03g03203s03o03803a03t07502x03505v0eh0li0rs0ig0lx"],["Bai Jamjuree",700,0,0,"0kr0lx0k708603h0jn08305r0vb0rt0ad0gd0i31et00500b02005103z04a04b03o02l01h05o05v0860i705105o0d00ki0jm0rs0jm0nn","0l20mi0jl0el02y0k908806c0vm0lo0bh0hi0jf1c600500b02704y04004804x03902k01a06506k0a70ia05f06h0eq0ml0jr0ro0jl0oh","0n20n2___09u041______05t0vj0rs02v0gc___17w00000001r04i03h04303h03904n02o05q05v0830jt05205m0c90q10o80rs0jm0o8"],["Bakbak One",400,2,0,"0k90k90k906q03h0jr08406x0xj0rj0ca0in0k91b800500a02705404604n04a04002k00f06w0730bk0ir05o06v0hj0ow0jr0pk0jo0m0","0ju0kc0ju09n02z0jl07l07b0wy0gd0cq0j40la18k00200a02405304b04r05203l01w00n07207p0dv0ih0630810i00nb0ju0pr0ju0lt","0n50n5___083042___06307b0x70rs04k0iq___13d00000101t04j03j04303e03f04t02807a07i0cm0kq05z0770j40rt0ph0rs0jo0ob"],["Ballet",400,3,0,"0cx0it___11d03d0a90g001x19q___0b4076___2y001b01i03c04w04x03s02x02402001001401n02h03500v01602a0330ag0ko07b0ub","0oe0oe______01t09h0e203p0zo0mj0ij0c0___1xb00x01b02z05906i03b02o02s01i00l02c03q05o09h01r03205b08809u0mh03m105","2tv2tv______0130n506m01910v___0rs05n___38z00200d01o02r04b04a04i04603m02300w01901v02v00q00y01j02l0mw0qp2tv2tv"],["Baloo 2",400,2,1,"0hn0hn0hn09304n0jo08b03t0v40q904n0c20d01jl00500902l04u04504p04203u02w00e03p03v04l09o03703p0760fy0i10pj0g70j4","0ir0ir0i907i03y0ke07p04s0uw___05w0ec0fh1hw00200901d05404104l04s04302o00v04j04v0650cc04304r09t0hv0iw0qk0gs0jq","0k90k9___0a306d___05s0450vg0rb02s0c5___1ah00000202504803c04203j03604303604104604y0an03h04107n0ha0l40rt0gs0lz"],["Baloo 2",700,2,1,"0jy0k90jy06403j0kk08606p0yh15b0930he0i51f000400a02205304d04404z03n02o00j06i06t09m0gp05c06v0ga0nx0ji0pu0is0lp","0kl0kl0k406002y0kl08607b0yh0hi0br0i80jr1c400400a02304z04c04r04w03u02d00806y07k0bv0gz05t07p0gx0mx0jt0pr0in0ll","0lu0lu___08r04m___06r07b0yf0oz04n0hu___15900000201p04f03m04403i03h04k02e07507h0ay0iv05t07j0hc0qz0oh0rv0ie0o5"],["Baloo Bhai 2",400,2,1,"0hn0hn0hn09304n0jo08b03t0v40q904n0c20d01jl00500902l04u04504p04203u02w00e03p03v04l09o03703p0760fy0i10pj0g70j4","0ir0ir0i907i03y0ke07p04s0uw___05w0ec0fh1hw00200901d05404104l04s04302o00v04j04v0650cc04304r09t0hv0iw0qk0gs0jq","0k90k9___0a306d___05s0450vg0rb02s0c5___1ah00000202504803c04203j03604303604104604y0an03h04107o0ha0l40rt0gs0lz"],["Baloo Bhai 2",700,2,1,"0jy0kj0jy06703j0kk08606t0yk1060930hp0ii1ew00400a02205304d04404z03n02n00j06m06y09z0gs05f0710gg0o00jk0pu0is0lp","0kd0kd0jw06202x0ko07q07d0ys0j60b80il0jt1c900400a02404z04d04q04v03u02d00806y07k0c10h005u07y0h30mw0jy0ps0if0lc","0lv0lv___08q04m___06r07e0yi0oz0460i0___15600000201o04e03n04403i03h04k02e07807l0b10j005w07m0he0r10oi0rv0ie0o5"],["Baloo Bhaijaan 2",400,2,1,"0hn0hn0hn09504n0jo08b03t0v60qi04n0c30cz1jh00500902l04u04504o04303u02w00d03p03v04l09r03703p07d0g10i10pj0g70j4","0ir0ir0hs07t03y0kf07o04s0uu___05w0e90ff1hq00200a01e05304004m04r04302o00w04i04v0660cf04304q09x0hq0iv0ql0gs0jr","0k90k9___0a306d___05s0450vg0rb02s0c5___1ah00000202504803c04203j03604303604104604y0an03h04107o0ha0l40rt0gs0lz"],["Baloo Bhaijaan 2",700,2,1,"0jx0k80jx06703j0kk08606p0yg1640930hi0im1ez00400a02205304d04404z03n02n00j06i06t09l0go05c06u0g60ny0ji0pu0ir0lp","0kd0kd0kd05t0320k808e07a0yp0iw0ca0hy0jr1cg00300a02705404m03q05504102d00906w07i0bm0gp05q07r0gu0n30jl0pp0ib0ld","0lu0lu___08r04m___06r07b0yf0oz04n0hu___15900000201p04f03m04403i03h04k02e07507h0ay0iv05t07j0hc0qz0oh0rv0ie0o5"],["Baloo Bhaina 2",400,2,1,"0hd0hd0hn09604n0jo08b03s0vc0q904n0c00d01jo00600902m04u04504o04303u02v00e03o03u04i09e03603m0700fq0i10pj0g70j4","0ir0ir0i907j03y0ke07p04r0ux___05w0e40fi1i400200901d05404004k04s04502n00v04i04t0640c004104o09p0hu0jn0qk0gs0jq","0k90k9___0a206d___05s0430vk0r902s0c0___1ai00000202604803d04203j03604203703z04504w0ac03g03z07i0gw0l40rt0gs0lz"],["Baloo Bhaina 2",700,2,1,"0k80ki0jy0740420ku08606k0ye1dr0930h10i51en00400a02104z04704m04604202m00q06e06m08y0gl05706l0fi0n30jq0q20j20ly","0k60ko0jo06503g0kl0870740y80h70a50hn0ju1ce00400a02404x04a04p04v03m02h00f06r0790b70go05m07c0gj0mv0jw0pu0ip0ln","0lv0lv___08q04m___06r0700yc0px03p0ha___15x00000201q04g03m04603k03h04l02806t07409s0ia05k0700g40qk0o00rs0hu0nl"],["Baloo Chettan 2",400,2,1,"0hn0hn0hn09304n0jo08b03t0v40q904n0c20d01jl00500902l04u04504p04203u02w00e03p03v04l09o03703p0760fy0i10pj0g70j4","0ir0ir0i907i03y0ke07p04s0uw___05w0ec0fh1hw00200901d05404104l04s04302o00v04j04v0650cc04304r09t0hv0iw0qk0gs0jq","0k90k9___0a306d___05s0450vg0rb02s0c5___1ah00000202504803c04203j03604303604104604y0an03h04107o0ha0l40rt0gs0lz"],["Baloo Chettan 2",700,2,1,"0jy0k90jy06403j0kk08606p0yh15b0930he0i51f000400a02205304d04404z03n02o00j06i06t09m0gp05c06v0ga0nx0ji0pu0is0lp","0kc0kc0kc0600320k708e0790yo0iy09m0hs0k01cn00300b02705404m03q05404102e00806v07h0bi0go05p07v0gz0mu0jl0po0ib0ld","0lu0lu___08r04m___06r07b0yf0oz04n0hv___15900000201p04f03m04403i03h04k02e07507h0ay0iv05t07j0hc0qz0oh0rv0ie0o5"],["Baloo Da 2",400,2,1,"0hn0hn0hn09304n0jo08b03t0v40q904n0c20d01jl00500902l04u04504p04203u02w00e03p03v04l09o03703p0760fy0i10pj0g70j4","0ir0ir0i907i03y0ke07p04s0ux___05w0ec0fh1hw00200901d05404004l04s04302o00v04j04v0650cc04304r09t0hv0iw0qk0gs0jq","0k90k9___0a306d___05s0450vg0rb02s0c5___1ah00000202504803c04203j03604303604104604y0an03h04107o0ha0l40rt0gs0lz"],["Baloo Da 2",700,2,1,"0jy0k80jy06903j0kk08606o0yd16909m0hb0ih1f300400a02205304d04404y03n02o00j06h06s09j0gm05c06r0g30np0ji0pu0ir0l4","0kc0kc0kc06l0320k708e0790yp0im0bg0hr0jy1cl00300b02705404m03r05504002e00906u07h0bh0gp05p07t0gx0mu0it0po0ib0ld","0lv0lv___08p04m___06s07a0yh0oz04n0hq___15900000201p04e03m04303j03h04k02e07407h0as0iv05u07g0h40qz0of0rv0hu0o6"],["Baloo Paaji 2",400,2,1,"0hn0hn0hn09304n0jo08b03t0v40q904n0c20d01jl00500902l04u04504p04203u02w00e03p03v04l09o03703p0760fy0i10pj0g70j4","0ir0ir0i907i03y0ke07p04s0uw___05w0ec0fh1hw00200901d05404104l04s04302o00v04j04v0650cc04304r09t0hv0iw0qk0gs0jq","0k90k9___0a306d___05s0450vg0rb02s0c5___1ah00000202504803c04203j03604303604104604y0an03h04107o0ha0l40rt0gs0lz"],["Baloo Paaji 2",700,2,1,"0jy0k90jy06403j0kk08606p0yh15b0930he0i51f000400a02205304d04404z03n02o00j06i06t09m0gp05c06v0ga0nx0ji0pu0is0lp","0kc0kc0kc0600320k708e0790yo0iy09m0hs0k01cn00300b02705404m03q05404102e00806v07h0bi0go05p07v0gz0mu0jl0po0ib0ld","0lu0lu___08r04m___06r07b0yf0oz04n0hv___15900000201p04f03m04403i03h04k02e07507h0ay0iv05t07j0hc0qz0oh0rv0ie0o5"],["Baloo Tamma 2",400,2,1,"0hd0hd0hn09404n0jo08b03s0va0q90440c40d51hy00500902m04u04504p04303u02v00e03o03u04i09h03603n0700fq0i30pj0g70j4","0ib0ib0ib07o03v0jx07i04n0uv___06f0ea0fg1hn00200a01e05304004m04t04402m00v04e04p05y0bo03x04k09e0hd0ih0py0gd0j9","0k90k9___0a105s___05s0430vl0r802s0c3___19600000202604803c04203j03704103704004504w0ad03g03z07i0gt0l40rt0g70mk"],["Baloo Tamma 2",700,2,1,"0jy0kj0jy07603j0kl08706f0ye17c09m0gq0hx1eg00400a02205004904104w03m02o00w06706g08p0gf05306b0f90mq0jn0q30is0lp","0jg0kf0jg06902x0ko07s06v0yj0jd0a50hd0jh1da00400a02504x04a04p04w03m02i00e06g06z0ag0g705d06y0fw0lv0jx0pv0ih0le","0lw0lw___08v04m___06t06t0y70qr03p0gw___16600000201q04g03m04503j03h04l02806n06x09b0hx05f06t0ff0qi0ny0rs0hv0nn"],["Baloo Tammudu 2",400,2,1,"0ij0ij0j40980580kx08v0420ve0qr05o0c90d11g100700802f04p03u04d03o04n02a01i03x04404v0ar03e03x07v0gx0ja0r90hd0k9","0ir0ir0i907i03y0ke07p04s0uw___05w0ec0fh1hw00200901d05404104l04s04302o00v04j04v0650cc04304r09t0hv0iw0qk0gs0jq","0k90k9___0a306d___05s0450vg0rb02s0c5___1ah00000202504803c04203j03604303604104604y0an03h04107o0ha0l40rt0gs0lz"],["Baloo Tammudu 2",700,2,1,"0l20lc0ks06r0410lp08k06q0yg0ro0930h10i21cz00500901y04t03z04g03w04g02o01806i06u0920h805d06n0g30nt0kv0re0jm0mi","0jm0km0jm06402y0kk08706z0yq0iy0ap0hw0jh1de00400a02504y04c04r04w03s02f00806l0740ax0gc05h0720gc0m20js0ps0ho0ll","0lm0lm___08t057___06u06x0yf0pz03p0h7___16000000201q04e03l04303i03f04k02g06r07209s0i605j06z0fw0qt0o00rv0hv0o8"],["Baloo Thambi 2",400,2,1,"0hn0hn0hn09304n0jo08b03t0v40q904n0c20d01jl00500902l04u04504p04203u02w00e03p03v04l09o03703p0760fy0i10pj0g70j4","0ir0ir0i907i03y0ke07p04s0uw___05w0ec0fh1hw00200901d05404104l04s04302o00v04j04v0650cc04304r09t0hv0iw0qk0gs0jq","0k90k9___0a306d___05s0450vg0rb02s0c5___1ah00000202504803c04203j03604303604104604y0an03h04107o0ha0l40rt0gs0lz"],["Baloo Thambi 2",700,2,1,"0jy0k80jy06903j0kk08606o0yd16909m0hb0ih1f200400a02205304d04404y03n02o00j06h06s09k0gm05c06r0g30np0ji0pu0ir0l4","0kc0kc0kc06l0320k708e0780yo0in0bg0hr0jy1cl00300b02705404m03r05504002e00906u07h0bh0gp05p07t0gx0mu0it0po0ib0ld","0lv0lv___08p04m___06s07a0yh0p304n0hq___15900000201p04e03m04303j03h04k02e07407h0as0iv05u07g0h40qz0of0rv0hu0o6"],["Balsamiq Sans",400,2,0,"0j00jv0j007z0410ka08i04i0rb0ql0780di0ex1is00500902b04r03x04f04a03w02g01c04904m0650cv04c0540990hw0ip0r80ha0lw","0it0jb0ht0bq02z0kd08a0540ri0fp05o0f20h71iy00300a01z04u04204k05503e02n00v04t0590790e204y05w0b90ir0j10qx0gu0ls","0kz0kz___0cn04o______04h0ru0ql0460d7___1ai00000002804a03903l04603e04102w04904l05z0e304a04x0880h20m00rt0gb0nb"],["Balsamiq Sans",700,2,0,"0j40j40ij0700370k907q05s0ru0l506f0gh0ia1fg00300a01l04y04604j04j03u02o01605o05y08x0g505o06o0e70lv0ja0r80hd0ku","0it0it0it07j02z0jo0890680ru0ew0730hc0jv1df00300a01u04u04904l05a03902l00u05y06h0ba0g706507h0g40mv0j50qz0gt0lr","0l40l4___0c5042______05w0sf0ky05a0fz___17r00000001c04f03j04403s03m04u02605o06509g0i605o06m0cq0ow0n60rs0gs0nq"],["Balthazar",400,1,0,"0ig0j10hw07v03h0ik09p0440y51mp08v0c70e01l800a00b03504m04104d04e03702301e03x04b05808l02x03o07c0fh0hz0r80gq0jm","0hr0hr0hr08003y0ij0a204z0wc1c30920ei0gh1jx00900a03a04q04804h05b02f02100t04r05806n0cf03x04x09z0hv0hy0px0gs0ir","0lc0m80hw0a904m0mu05o0440x81r707d0c50ca1dt00000402o04703a03s03b03f03y03403y04i05c09003803s07l0fz0m70rs0jm0pe"],["Bangers",400,2,0,"19a19a___0ik05s______06h0si0s10ku0iv___1s800000001m04b03w03y03e03v04g02d06606n09u0e706a09i0hk0or0py0rw0v51rg","1sb1sb___0nv04y0nd___0760tj0es0rs0jr___16100000001b04504304003y04304f01t06q09o0eh0lg06x0bd0kw0pd0px0rt1dh2m0","19k19k___0k005h______06g0sg0rl0kh0it___1sd00000001l04a03w03x03e03v04h02d06606n09t0e806909f0hh0oo0py0rw0ig1tr"],["Barlow",300,0,0,"0fk0fk0fk05j05s0ju07s02g0q90rs0170920aq1pc00500702n04i03q04703w04e01z02402f02j03005102902q04n0bi0ij0ro0f00gq","0ff0ff0ff05804u0jr07d03r0qj___0160cs0eo1r300100901d05003x04904t04502b01r03f03s04l09e03f04907z0fq0j40qx0ff0hd","0hv0hv___04s077______02g0rz0rs00008y___1i600000002i03w03a03r03l03703k04202f02i02v04l02702n04m09m0li0rs0fk0ig"],["Barlow",400,0,0,"0g50g50g507g0570k607s0360s10rs0140b30cq1og00500802b04r03w04703z04a02701v03503903v06m02u03h06l0gf0j10rp0fk0hb","0g70g70g707f0420k008f04b0rn0lp0130e00fk1ng00400802i04r04103904x04302c01l04504d05f0b604304v0a50im0jg0rl0g70i8","0ig0ig___09n06c______0360tl0rs0000b3___1hj00000002404703d03r03m03b03z03h03503803q06g02s03d06b0hg0ml0rs0d90j1"],["Barlow",700,0,0,"0ig0ir0ig07103h0ka07p05z0vc0rs04t0hh0ij1j700400a01t04v04404c04b04202k01e05v06307y0ft05606n0gc0on0jt0rs0hw0k7","0in0jm0in08402y0l508806k0up0ky05g0ip0jo1fb00400a02004s04504c04v03p02h01606c06r0am0gb05u07o0hc0nu0jw0rp0in0kl","0jw0jw___08c041___03u05x0vq0rs0000hp___1ce00000101m04f03l03y03k03k04n02j05v0610850gk05406s0gf0r80ox0rs0g50kr"],["Barlow Condensed",300,0,0,"0c40c40c405604m0ju08302g0q20rs0170b10co26a00500802i04i03z04b03v04d02101w02f02g02t04b02a03006p0h50j50rp0bj0cp","0cu0cu0cc05i02z0k807i03q0p7___0150f40gp26a00200801b04w04504f04t04302c01j03h03s04f08703q04y0c80iz0jr0rl0bv0du","0cp0cp___04f057______02g0rr0rs0000ba___1zy00000002803x03j03u03j03i03r03j02g02g02p04302702z06l0iz0nu0rs0c40d9"],["Barlow Condensed",400,0,0,"0cp0cp0cp06u0410k60830350s10rs0140dn0f724400500902904r04204a03x04802701q03403503l05v02v03w0ah0jj0jm0rq0c40d9","0do0do0cp07203f0ke0870470r91b50130gj0hr21k00400802b04o03y04904o03t02901l03y04804z0a204205g0ea0ki0ju0ro0cp0eo","0d90d9___06b057______0350t00rs0000dn___1xt00000001z04503l03s03i03k04203703403603h05q02t03y09w0oq0ot0rs0cp0du"],["Barlow Condensed",700,0,0,"0f00fk0f006d02b0k808305v0us0td0130k60la1uf00400a01u04t04a04e04504302i01d05v05w07a0dp05a09f0kc0ri0kc0rs0f00fk","0fp0fp0fp0gd01z0l408906i0tc0kg04n0kp0lo1mr00300902104o04b04c04r03q02f01606c06m0bc0el0680bq0k60qj0kp0rp0fp0go","0fl0fl___07402w___04105v0vf0w30000kd___1ok00000101l04b03r03x03g03r04k02h05v05w07d0du05609g0oq0rs0qj0rs0ef0g5"],["Barlow Semi Condensed",300,0,0,"0du0du0du05504m0ju08302g0px0rs01709w0bi1wv00500802l04h03v04703v04e02102002f02i02x04p02902v05g0ev0j10ro0d90f0","0di0eh0di06903v0jr07c03r0q8___0150e00fr1yq00200901c04z04204c04q04402c01n03f03s04h08l03h04j09o0h30j60qy0di0eh","0fk0fk___04t06c______02g0rk0rs00009y___1pu00000002d03w03f03s03j03c03n03t02g02g02s04c02702s05g0cz0m70rs0du0fk"],["Barlow Semi Condensed",400,0,0,"0ef0ef0ef05v04m0k60830350ru0rs0160by0dl1v700500802a04s04004903x04902701t03403703r06902u03n07r0ht0j40rp0du0f0","0fn0fn0en07f03x0ke0870480re0m50130et0gg1tf00400802c04o03x04504n03u02901n0420490540aa03y0510bb0jl0jr0rn0en0gm","0g50g5___04g05s______0350tc0rs0000c5___1oo00000002204603g03r03k03f04103e03403503m06302s03j0780li0nc0rs0ef0g5"],["Barlow Semi Condensed",700,0,0,"0gq0gq0gq06n02w0k808305w0uw0rt0130ix0jo1o700400a01t04v04804d04804202j01d05v05z07j0eo05707k0ie0qb0k70rs0g50hw","0hn0hn0hn08l02y0l508806f0ty0ku02w0jb0kb1js00300a02104r04704b04u03q02g01606a06m0aa0fg05x08q0it0ph0jy0rp0go0in","0hw0hw___07n03h___04105w0vm0rs0000id___1hr00000101l04d03o03x03i03n04m02i05v05x07o0f405407o0k90rs0pk0rs0gq0ig"],["Barriecito",400,2,0,"0gr0hc0gr07u02w0mk06d04h0u90sn01n0cq0fp1n400000902504k04104d03l04m0330170330510750d503405v0ba0mn0kv0r60g70hx","0gq0gq0gq09x02y0mk0680570v90mm01s0ev0ib1k400000902b04h04404g04904k02n00s03p05l0870e703r06l0dc0mj0l00qu0fr0hp","0hy0hy___09j03h______0470rt0sr01j0e1___1hs00000001u04603s04603b03p04f02f02u04w07n0dz03305k0au0qc0ma0rs0g70jo"],["Barrio",400,2,0,"0hy0hy___07203h______03y0pu0sr0000d9___1h300000002004d03q04303c03i04a02j02t0470750cl03005h0950ob0l30rs0f20k9","0i80i8___07w03k___02a04r0s60o300i0ed___1du00000002504b03u03304203l04a02h03j05b08n0e503q06b0ax0od0lp0rs0g70k9","0hy0hy___06k03h______04g0pt0ss0000fc___1f200000001u04a03v04603c03n04b02d02w05807z0eb03b05z0b10qs0ln0rs0fn0k9"],["Basic",400,0,0,"0hy0hd0ij08s03h0kk09m04p0x90uh03m0e00f31km00700902a04q04104f03q04f02g01c04l04u05e0bv03r04m0bx0k00jq0r70eh0j4","0hr0hr0hr0cs03y0kk0a305e0wm13h0540g40hj1k400600902h04p04504f04o03o02l00r05505j06q0d004f05h0dt0k90jx0qx0fs0iq","0hy0hy___099042___05704x0xi0sc0000ey___1fm00000201z04b03i04103h03d04c02r04u04x05l0ct03w04y0ch0oc0nr0rs0eh0k9"],["Baskervville",400,1,1,"0hv0jl0hk0as02w0ha0b50381b32h40bh09o0ai1o900l00k03m04c04504f05001s01r01n03103e03z05z01k02404m0ab0g80rn0ez0lw","0ip0ip0ip0j701z0hh0b804d1331nq0990cw0eh1ny00k00j03o04g04504i05a01j01x01804504m05i08302h03p07d0ep0g20r00fr0ln","0lw0mh___0cr041___0ad03m1hc2mx0aw09h___1fq00b00c03603m03e03p03i03203703k02z03n04705w01k02504x0ai0mm0rt0ez0r3"],["Baskervville",700,1,1,"0jv0m60ig0nv02w0hv0b705t1nz1ee0eo0dx0fd1lf00k00m02z04m04e04r04n01z01u01f05h06106v09m02a03s09z0ht0ha0rq0ha0px","0k70lp0hr0uz02y0hi0b806g1dz1850dw0fi0hj1kb00j00m03404l04e04t05301p02001006406o07r0ay0310560c40i40h20rq0gr0wj","0nm0nm___0gj04m___09t06b1st1l20bu0dx___1dz00a00d02j03y03l03w03h03a03f03305a06c0710ad02b03p0a10mc0o90rt0hv0st"],["Baskervville SC",400,1,1,"0ig0lw0hk0dy02w0hy___03a1e92ju0fo09q0ao1op00000003r04q04t04k04y02d01a01d02z03g03z06601h02004n09u0ha0ii0du0k6","0ip0ln0h80jh02y0hm07k04d13z1l30fv0d10ey1mc00100403t04t04q04m06401501e01304604l05p09002d03f06r0dr0h30ix0er0ln","0lw0mr0du0a20410hy___03m1ie2kv0a209g0bh1ev00000003603s03j03s03k03603603n03703n04705x01j02304x0ag0in0rt0du0r3"],["Baskervville SC",700,1,1,"0kr0pc0k60jy01q0i5___05t1rd1h30i50dc0f41my00000003005104x04x04s02m01b01704z06106u0a902403n0970hu0hv0l00g50nm","0kq0oo0ir0pq01z0hp08a06g1gs16m0h20ex0if1ka00100403605504y05005p01b01k00w06006p0800b502y04y0ay0i40hv0l20gs0oo","0nm0os0ep0fv04m0i3___06b1u11l10bb0dq0fi1dn00000002i04303q03z03k03e03f03605506c0710a602b03o09w0mb0l10rt0g50st"],["Battambang",300,2,0,"0h00hl0h008c02u0iz07k02h0u42kj05c09a0a11nm00800803p04d03o04504i03o02z00f02g02l03b06d02302e0470820ho0pp0fb0ju","0hc0hc0hc08o02w0jr07d03r0u9___0600cp0dj1nh00300b01t05703r04604g04e02k01303k03w05808g03203u06n0ef0if0py0fe0j9","0jw0jw___082041______02o0uz2m003p092___1et00000003903y03203g03602u03g04n02l02q03907l02802h04m0860nb0rs0gq0n2"],["Battambang",400,2,0,"0hd0hy0h308202w0j407l03t0wt1xb05c0cp0dq1li00600a02w05003y04a04503k02y00n03t03x05j09i03103j06w0g10ij0q20g70ku","0hq0ip0hq0an02y0jg08604m0uf1kq04x0f80g41kl00500a02z04y03x04704v03c02x00804k04y07i0c103z04p0990i40j00pu0fr0ko","0l10l1___06y03h______0430x51yp04b0ct___1d500000002g04e03903l03703304403q04104505c0a803803q0780fk0oz0rs0hv0n2"],["Battambang",700,2,0,"0hy0j40hy08201r0j407l05h0z01cn08k0g60hf1jl00500b02e05804504e04a03f02y00k05g05o0910dr0440540bu0ja0j40q20gs0m0","0jr0kq0ha0jx01z0jf0880620y816009i0hi0it1hm00400b02m05304404d04w03c02r00805v06i09u0eh04n05u0dr0k80j20pu0gs0mp","0mh0mh___06o02w___02w05w0zl1jt05d0gf___19r00000002104n03e03o03503a04n03105u0610a70fg04k05e0bh0oh0pz0rs0j10pd"],["Baumans",400,2,0,"0g50fv0gg0a70410j108x0420sp0rs03f0de0f61nw00800802805304104804i03602g01o03w0420540au03s04a08q0i70i20ro0bj0j1","0gm0hm0gm09a03x0jc09c04s0sp0mw03m0f60gf1m800800902d04v03z04704z02z02h01k04l04w0680cx04h0550aq0j20iq0rn0dp0jk","0fk0fk___0de04m___05s0430sd0rs02i0dp___1gq00000201w04i03d03w03l03904b02y0400460560ay03t04j09j0m40nc0rs0410jm"],["Bayon",400,0,0,"0fn0fn___04b02b0na___0540ra0rx0000i6___1qd00000001l04e03o03z03i03p04k02e05305506p0db05607e0lr0rr0pk0rs0fn0fn","0fq0fq___0hh01z0mf01x05t0r20lm0280jp___1kc00000001p04a03o03w04303p04h02005k05w09m0e205w07z0ld0qs0pr0rt0er0gq","0fn0fn___04c02b0nb___0540ra0rx0000i3___1ql00000001l04e03o03z03j03p04k02e05305506p0db05607c0lg0rr0pj0rs0fn0g7"],["Be Vietnam Pro",300,0,0,"0ij0j40hn07h0580jr07o03a0ry0rs04j0al0bp1kk00400a02e04s03v04704004602801s03603d04406x02x03j05x0d00i30rf0fn0j4","0hn0in0hn08d03x0jg0830490rs0lw04t0dn0f91l700300b02i04p03z04d05303702b01c04204b05g0am03y04q08h0g50i30rn0fp0in","0j40j4___08i058______03d0so0rs02z0ak___1dy00000002604603g03x03h03a04203b03703f03z07702x03i0610bv0kx0rs0gs0lf"],["Be Vietnam Pro",400,0,0,"0ij0j40hy09o04n0jr07n0420th0rs05o0ck0di1j400300b02604w04104b04703u02e01m03x04505409r03k04b07y0gk0ij0rs0g70jo","0j20j20hm08704a0jt07x04t0to0lj06f0ef0fs1jb00400a02a04p03w04604t03l03101004j04v06a0cc04a0550a20hb0ih0qz0g70k0","0jo0jo___0af058______0450u40rs02p0cf___1bx00000001y04b03j04003g03d04c02x03z0480530bo03k04a07q0g40lm0rs0f20lf"],["Be Vietnam Pro",700,0,0,"0kk0lf0jo07h0420jr07m0650w40rs09m0gd0hy1eq00300b01v04y04804g04e03k02l01e06006a08f0g805506e0e60l60j90rs0hy0m0","0k20k20j307703u0jt07y06k0vv0lj0a50h90ix1cu00300a02104r04404a04w03e02h01h06906p09p0gi05j06x0f40lv0j90r10i50ly","0m00m0___08t04n______0680vv0rs05n0ge___17600000001m04f03n04203i03i04n02f06106e0950hy05b06j0dp0qf0nr0rs0j40nq"],["Beau Rivage",400,3,0,"0o70kg___0cf04m___0a102e0xt___0fg07d___29o00d00u03s04v04s04r02302u03200h02402f02y04301h01z03g05z0cx0oh0g50st","0y213t13c0ap04t0dx0970470x10am0ku0bu0i41ql00b00i03005104l05202r02j03400y03m04b06j09q02r03y06r0ap0e80p20ss1eu","0r70r70w40i60420n508q02a0y50w60gc06j06m1kv00700i03403s03b03w02u03t05d01102102e03204t01g01v02v05a0m00q10gs0yp"],["Bebas Neue",400,0,0,"0d90d9___08e02l___02b04n0ts1d10000iy___23l00000001q04803s03y03j03q04c02l04n04n0570ap04b0830ng0rs0qj0rs0980du","0dp0dp___0bn01z___02005c0sk0lh01l0kp___1xd00000001v04603p03w04103o04a02705605f07q0c80570910na0ri0qr0rt0cq0dp","0d90d9___08e02l___02b04n0ts1d10000iy___23l00000001q04803s03y03j03q04c02l04n04n0570ap04b0830ng0rs0qj0rs0980du"],["Beiruti",300,0,1,"0eq0fl0eq07i0500ho09i02q0sn0qt01409e0bn1qd00900703504i04703r05u01s02002602n02s03705a02e02u05h0dh0gl0ro0dj0gh","0eu0fu0eu07l03z0ia08r0400sb___0130d20fi1rc00400801o05404704k05q02f02b01h03m04104y0ak03l04e09e0ga0gy0rk0dv0gu","0gj0gj___07n05w___02d02q0tb0r100009h___1jg00000002p03t03303p04d02t03i03w02o02r03305302f02s05y0ch0k70rs0e60ib"],["Beiruti",400,0,1,"0fb0fw0fb08m04q0ht09i03j0u20p40120bo0e11pa00800702p04u04903u05p01v02801z03f03k04808403303l08b0gj0h30ro0e40gh","0fv0fv0ew08b03z0ib08p04i0te___0280e10gg1pd00400901f05c04904n05m02f01q02304804j05w0bq04304w0at0hh0hr0qx0dw0hv","0gu0h4___0aj05x___02y03l0v30p800h0bs___1ia00000002b04403303v04802v03x03e03i03l04107703403m08h0jz0ly0rs0cz0ib"],["Beiruti",700,0,1,"0hm0i70h107203t0ib09h05v0vs19506y0gi0j51jz00700902405504d03z05d02702m01k05m05w0810fe05106a0fh0ou0hu0rl0gg0jd","0hb0ic0hb0au0320i609l06h0vx0h808p0i70kx1ij00600902805604k03s05e02m02n01106406l0ar0fl05k07g0gg0o40hs0qx0hb0kd","0iw0iw___0bn04q___06a05z0ve0n400h0gu___1cm00000201r04i03404204802z04k02j05w06007u0g905806f0g30qx0ot0rs0er0ko"],["Belanosima",400,0,0,"0hy0jo0hn08k02w0hy06y05a0t40s009m0eo0gz1ja00200a02205c04f05104r02r02800x05005d0790dl04o05p0bt0i60gx0nu0g70jo","0hr0iq0hr08z02z0hn07a05z0tq0kg08q0ft0iq1hs00100902a05904h05505902c02400p05i06208l0ew05906r0dr0jw0h40nu0fs0kp","0ku0m00ho05z03h0n404g05j0tj0t505k0em0gk1au00000202904j03p04h03d03n04701l05b05o07j0g305305z0cj0o80km0rs0hy0oc"],["Belanosima",700,0,0,"0jo0ku0hy07f02b0ij07j08e0zt0sd0d30kh0ku19c00300c02105805205d04l03a01j00b08908l0dz0iu06o0b50ik0oo0i60nq0hy0m0","0kd0jc0iu0am0210i108c08w1190mg0fn0k60mo14p00200c02d05f05d04705h03001d00908k09f0g20jg07f0dt0ig0o00ho0np0ib0ne","0ob0ob___06d03h___04n09b0ws0sb0bm0kr___0ye00000101h04704e04803g04b04101o0970a10if0mf08a0az0n60ri0n80rs0jo0rs"],["Belgrano",400,1,0,"0ii0jo0ii0ba03h0i409v03y0xb21a0aw0cr0ds1j300e00803305003u04e04k02t03500c03t0460610ai03203j06j0dw0hn0po0g70lf","0ip0jo0ip0hi02y0jg0a604s0ut1np08i0ey0g81hy00d00803204u03q04704w03b03000704m05707w0dd04004n08j0gv0iz0pt0gq0ln","0ma0ma___0ay04x______04d0ym22009x0ct___1aq00000002k04f03103p03403204a03n04904k0640bq03a03s07f0f00ox0rs0jo0r7"],["Bellefair",400,1,0,"0f10fm0eg09n03h0eg09a0320xc16r06k09e0ch1qr00a00903804s04m05l02q02402e01u02v03603s05f02002u0580az0dw0rb0c50g6","0dx0ef0df0a803z0f908q04a0wy0sb04n0d40hg1q700500b01q05h04m05n03j02701t02c03y04c05608c0340470870e70eu0qz0bx0fw","0gf0gf___0bh05l___05l0390yx17m04109d___1d800000302q03s03k03e03y02y03o03o03503b04005a02202w05d0at0k40rs0eo0lp"],["Belleza",400,0,0,"0gs0hd0gs08s04n0j408p03w11x0rs0420bc0cc1l800900i02r04h04a04j04703h02401903s04204l06402d0390760ge0gx0ph0fn0ij","0gp0i80g709h0420j509a04y1110nr04u0e00fj1k700700g02z04k04e03g05203f02701304o05105t09603a04h0a00hw0hm0ps0g70k8","0jo0k9___08r06d___05t04d16u0rs04a0ag___1cv00200b02d03u03r03w03i03p03r02p04104e04v05x02903a0790hm0is0rs0fn0nq"],["Bellota",300,2,0,"0hn0hn0i808c03h0jo0b00240qj0rs06f07407v1l500c00a03m04703t03y03q04802c01c02102702o04d01y02a03l06j0fp0ph0g70jo","0hw0hw0je0b302z0kf0ao03m0qz0vv07s0bc0c91lj00a00901x04z03w04604l04501t01u03f03q04t08303c0400700dk0gy0pw0fw0jv","0hy0ij___09b063______0280rk0rs03s071___1cg00000003403m03403o03g03103t04102202902o04b01z02b03p06k0gh0rs0dw0ku"],["Bellota",400,2,0,"0hy0hy0ij07z02w0ju0b002s0r20s006f09409q1k200d00a03204n03t04203q04702j01702p02v03k06802k02z04x0ah0ga0pk0gs0k9","0hw0hw0hw0br02z0ke0ag0410rp___08p0cg0dd1kp00900a01p05b03x04604q04001u01m03r04405c09y03o04c08a0er0h10pw0gw0kv","0ij0ij___08s05i______02v0rb0rs03s08v___1bs00000002n04103703o03b03404903m02r02w03i05x02m03005108p0i10rs0eh0lf"],["Bellota",700,2,0,"0ih0hx0jn09102w0k80aj03o0s50rz0730bm0bw1ip00c00a02k05003v04503t04602k01203k03r04u09503d03w0750f70gy0pi0fl0k8","0jc0jc0kd0ae0320k70ak04m0sb1060990dz0em1hx00b00b02q05204003704r04002m00v04g04t06l0cp04c04z0ad0hh0hp0pt0hb0le","0i90i9___0ba05b______03r0sh0rs03q0b3___1b200000002904g03c03704002u04f03b03n03t04q08s03f03x0710cy0jl0rs0dj0l6"],["Bellota Text",300,2,0,"0hc0hx0gr06h0420jn0af0240qq0rs0450790831ld00c00703d04403r04b03t04c02c01802102702m04101y02a03i06l0gu0pg0fm0j3","0hc0hc0ge09c03v0js09e03i0r918u04n0bd0co1n200900901s04v03y04j04o04302g01003903l04k08503803v06p0d80he0p30ff0ja","0ij0j4___07206d______0280rf0rs03706r___1ch00000003403n03503s03o03403s03m02202902o03x01z02b03n06n0gg0rs0g70m0"],["Bellota Text",400,2,0,"0hw0hw0hb0640410jr0ae02r0r90rs0450960ab1kl00c00802v04i03u04d03v04a02g01302p02u03h05y02k02y04t0a60hc0pg0g60j1","0hx0hx0gx09s03z0ke09m0420rq11y03w0cl0dy1km00800901l05303y04g04w03l02901j03q0440560ak03o04d0810et0i20px0fx0jw","0ij0j4___070063______02v0r90rs03708g___1cc00000002m04203803v03k03704303802r02w03i05n02m03104x09g0i10rs0g70m0"],["Bellota Text",700,2,0,"0hv0ig0hl0900410k60ad03o0sb0rs04q0c10ch1j100c00802f04u03x04e03y04a02h01003k03r04n09k03d03v0730f00i20pg0g50jl","0ic0ic0ic08g0430k70aj04n0s90lo03c0e00fm1ho00b00902l04x04403e04w04002j00t04c04r06a0cs04d0520ae0h40in0pt0ga0kd","0iu0iu___0bq05b______03s0sl0rs02k0bh___1b400000002a04h03d03c04902v04902y03m03u04p09403g03z06x0e10jg0rs0e40ls"],["BenchNine",300,0,0,"0ah0bc09w06m02x0j408202g0re0rs0000bc0di2jd00200b03704b04b03t04w03a01t01v02e02i02n03q02803308h0hq0ib0ro09w0ct","0am0c20am07l01y0jo06o03o0q2___0000ft0hv2jf00000701b04u04a04n05303j02d01l03d03q04c07e03l04z0du0jw0if0r009n0ck","0ci0ci___05n03s___03t02j0tg0rs0000bc___28m00000102z03m03m03g04b03h03203902i02j02p03v02702w08t0l30mm0rs09w0de"],["BenchNine",400,0,0,"0b20bn0ah07g03i0j307h0350ro0sb00k0e60fo2eg00200a02y04h04b03w04y03501z01s03003703i05a02x0460ci0jt0ig0rq0ah0ct","0bq0cp0ar09002y0jh07d0470rj0p60130gt0iv29g00000902a04m04704h04w03702b01l03x04a05108q04105u0fw0nf0jn0rp0ar0dp","0c80c8___08s03i___03u03g0va1lu0000eb___24p00000102n03w03o03i04703k03a03203d03h03n05t02y0470dg0qb0od0rs09b0dz"],["BenchNine",700,0,0,"0bn0ci0bc07u02x0j406z03r0s40uv00j0fz0he2bp00200a02r04m04d03x04z03302401o03k03t04706w03i0580fc0og0iv0rr0ah0dz","0bq0cq0bq07m02y0jf07404m0rw0pv00j0hs0k026r00000902604m04804h04y03502f01k04e04p05q09o04h06m0hf0p40jn0rp0bq0dp","0cs0cs___09003i___03t0460vq1jn0000g9___22g00000102h04103p03i04503l03k02t04004604g07x03l05h0hh0rp0pd0rs08q0dy"],["Benne",400,1,0,"0h50j70g90fy02d0gj0bf03c1391yu0a409s0bn1p700a00g03t04y03r04t05901d02201303503l04e06x01v02n0580bb0fd0q40dl0k3","0gw0id0ge0hw02z0hi0bg04j10k0rx0a60d00fo1mt00c00g02305j04a04m05p01l01c01v04704q05z09702x04207v0ey0gq0qv0dw0lv","0n20p3___0e504m___09g03r16y2i50e709r___1co00700903703w03d03s03c02x03703p03n03y04t07e01z02q05s0b50jx0rt0gq0su"],["Bentham",400,1,0,"0jk0kq0if08403g0i009r0471oo1uv0e70ag0bz1k000l00k03b04i04d04p04j02501o01h03q04704t06101g02b05w0e20gd0re0g40la","0ip0jo0ip08k03y0hm0a30551aw1au0bl0dt0fr1jb00l00k03h04j04904n05b01k01q01604r05d06608a02g0400930gu0g80r10gq0jo","0kp0kz___09504u___09304k1yw0ex0b80a7___1cg00a00e02803t03o03v04303a03902z03j04j05506c01d02606a0dy0kg0rs0h00rs"],["Berkshire Swash",400,3,0,"0e11n00eb0nz01r0f307n0501j112o0b409m0g720n00b01603j05b05f05104602c00h00304l05005j06t01z03w0at0g50ed0lu0ca0gd","0eh___0eh0cq0220g807t05v1ab0yc0av___0iw1uy00401203c05a04005n05c02c00m00405g05y06s0a603305e0dl0i80fr0m20cf0mr","0ks23k0ks0xo0160m307i0591pa0tq0ez0ac0e61uw00400z02h04604c04t04r04k01f00604205805j06l01t03g08u0j60im0mi0g50ot"],["Besley",400,1,1,"0ij0j40hd0bv02b0j409e03u16e25p08q0aw0cr1k300c00903504h03r04403x03k02402603n04104m08h02c02u0650df0im0rs0gs0ml","0ho0jm0ho0qq01z0jg0a004p11y1qj0640di0fo1k900b00a03604d03o04304p03a02901o04h04w06109w0330450870gw0iz0rr0go0ll","0lf0lf___0c1042___03h03u16o2hi0990ar___1dx00000102z03y03a03k03503603k04603q04104n0a102d02r0650c00ox0rs0gs0qm"],["Besley",700,1,1,"0ku0lf0jz0g901r0j909g06017t1dn0dm0ei0gg1fn00b00a02k04y03x04704003b02i01t05t06a0820ce03f04n0a90ja0j40rs0j40ow","0ln0m50jo0rf01z0jf0a206f14v15m0cu0ft0h91fm00a00a02p04s03u04504p03302k01g06606q08w0dz04405d0bw0jp0j10rs0ip0rj","0q20q2___0ai03h___04n06e1a61qp0f70f2___19n00000102904l03d03l03103a04j03605w06k0890er03t04l0al0md0q20rs0jo0uo"],["Betania Patmos",400,3,0,"0g20gd20b15j07h0el0dj02w0qv1fb04409o0b51qj00f00f04305304905902x01m02501n02o02w03w07202l03905x0bk0770qb0d70iy","0gy0gy20213407f0en0e204g0ry11g03z0cy0gc1kl00c00g03f05z03i05j03701m02g01c03w04h07b0b603u05109p0ei0at0qs0ds0k5","0gg0gr___080072______02s0r00rw00009p___1eg00000002z03q03i03k04602v03l03g02p02v03b05902j03505r0aj0if0rs0di0it"],["Betania Patmos In",400,3,0,"0gn0gn26l14s07h0el0dj02w0r22az04409o0b41pz00f00f04605504805702x01m02401n02p02x03y07302l03905u0bn0670q40d70iy","0gy0gy27h14306d0en0e204h0s10zj03z0d20fr1k300d00g03h06403l05h03301k02f01b04004j07b0b503u05109m0ef09w0qs0ds0k5","0gg0gr___080072______02s0r00rw00009p___1eg00000002z03q03i03k04602v03l03g02p02v03b05902j03505r0aj0if0rs0di0it"],["Beth Ellen",400,3,0,"0hs0wf___18105g___08m03y0s81770al0az___1r500a00g02x06304u04d02s02l02u00n03d04505r09203104e07p0b509t0o40fi0yf","0ep0js___08b053___0ad0540ty0p70000dm___1f100e00h04905w04v03502t03202g00h04j05m08n0cl04405x09x0dt09i0oh0c60mb","0tc22h0n910c08l0m507c03d0pi___0j809p09e1re00200703505704703p04f05901k00302z03j05608d02u03x06s09j0f70md0gm1wo"],["Bevan",400,1,0,"0m00ph0l406s01r0ik07008m14q0uo0js0k20kz1ak00300c02405b04d04n04a03602h01108l09x0e60j805r0830i90p90il0r70jo0ph","0pg0r10l70ht0240is07q09b1570ng0p20jn0lr15i00200c02k05k03g04y05602e02h00v0960az0gu0lg06a09q0ip0pp0j60qw0l70to","0rs0sd0ku05901r0nb___09a14y0r60ji0js0k416l00000001s04n03r03u03603t04l0290930ah0f50m006a09h0kd0rs0of0rs0ob0ti"],["BhuTuka Expanded One",400,1,0,"0x40vx0ya08c05x0j009g01v0up8hf0mw04w05q0ve00s00806i03l02t03704404j00z01501q02203j08a01m01p01x02w0gk0ji0uq147","0xn0x515k0b704y0j909e03u0x50gx0nz09408m0w800a00b02r05803403p04o03k02l01o03a04806o0g90310390400680hw0qn0tp15k","347347___0lx0ec0jg0fj0b613b0rs0ho0ee___02u00g00c01z04y06e05j02o03601x00g0bi0gr2p45wr0bh0ep0jt0nm0cx0l30dk47u"],["Big Shoulders",300,2,1,"0ac0ac0ac04o02v0kb07b02t0u41o90000eg0fl2pg00400a03604404404a03m04e02501n02s02t02v04802i03c0ct0l10ke0rs0ac0ax","0at0at0at0a701z0lg07803y0rg1go0000i10j52l200100b02g04e04304904904m02701803m03z04g07v03m06e0i50np0lr0rr0at0bt","0ac0ac___03303g______02s0tq24d0000fa___2ng00000002t03o03q04003p03303x02x02r02t02v03z02l03b0dz0r40q60rs0960ac"],["Big Shoulders",400,2,1,"0aw0b70aw06302v0kc07b0380uq1je00k0fi0gs2kt00400a03004804404a04803t02801k03703903c05g02u03u0f40nm0kg0rs0ac0bh","0bt0bt0au0bv01z0lg07a0460rs1aw02h0in0jq2fl00100a02c04f04404a04a04m02901703z04805108t04107l0in0om0lr0rr0au0bt","0b50b5___07302y______0380uc1vf0000gh___2im00000002p03w03t03h03v03704002w03703903c05p02z0470fq0rq0qm0rs09e0bq"],["Big Shoulders",700,2,1,"0dw0dw0dw07s02b0ku07004q0va1950100iq0jg27o00200b02204p04a04g03s04e02d01f04p04s04z09z04207j0jm0qs0ku0rs0bl0dw","0dt0dt0db0eo01z0le07e05a0ur14v03m0k70kr21700100a02704i04704c04e04g02c01405505e0750c004q08r0k80q10lr0rr0cu0et","0db0db___07m02w___05104q0v31k20000j6___24w00000101s04903t04203d03p04b02k04o04q04y0ax04808c0ne0ro0qo0rs0b00dw"],["Big Shoulders Inline",300,2,1,"0ak0ak0ak04h02x0kg07d02q0sr1qd0000ef0fp2ov00400a03804a04803q04a04901s01o02o02q02x04y02i03l0db0l50kr0rs09z0ak","0at0at0at05q01z0lh07a03n0o71jh0000hx0it2js00100a02g04f04104704b04o02701803h03r04j08804006b0gs0o00ls0rr09u0bt","0af0af___03d03h______02p0tn1ln0000ew___2oj00000002304103r04103c03p03u03202n02p02u04i02i03n0eh0oh0qa0rs08p0af"],["Big Shoulders Inline",400,2,1,"0b40b40b407q02x0kr07c0300s01np00j0f00g82k100400a03104e04903r04d04701w01k02x03303b05y02u04d0eh0l10kr0rs09y0bp","0bt0bt0bt0ae01z0lh0780430ph1gc0170iu0jt2dv00100a02c04h04204904c04m02801703y04405b09d04d0780ih0ol0ls0rr0au0bt","0b00b0___06q02w______0300tf1jo0000ft___2kr00000001y04303s04103e03o04102v02w03103905z02s04n0gc0pn0qn0rs0990bl"],["Big Shoulders Inline",700,2,1,"0db0dm0db04z03h0ku07101f0gx0rs0160es0fg5ty00300b02504q04604b03t04h02d01f01a01g01m03i01j02i04s0bg0ku0rs0c60eh","0er0ea0er0g501z0lh07d05o0to0mk0690ke0ky1va00200b02704j04704a04j04d02a01405905r0a50cx05b0a30kq0qe0ls0rr0ds0mn","0db0db___055037___05801e0h60rs0000fa___5up00000101v04b03p04003b03n04c02l01a01f01j02v01e02b04y0bk0q70rs0bl0eh"],["Big Shoulders Stencil",300,2,1,"05r06b05r0f00360kb07b02t0tt0yz0000f30fb2s200400a02z04704804b03p04b02501k02s02t02v03j02k03v0dx0la0kf0rs04l09r","0bc0bu0au0e001z0lj07d0430xj18k01a0if0iv2jn00100a02f04904604b04e04k02501903r04404c07j03906p0hq0p00ls0rr0au0bu","04l04l___0gb03g0ek___02s0tk0yu0000fp___2p900000002m03r03v03y03a03q03x02p02s02t02v03j02l0410et0qg0pq0rs04l07h"],["Big Shoulders Stencil",400,2,1,"06b05606b0e402v0kc07b0380u80w500f0hb0gd2nl00400a02u04a04904c04c03q02601h03703803b04002x04p0fl0nz0ke0rs04l0ac","0bu0bu0bu0cl01z0lg07d0480wo0qw01t0i60ja2g100100a02c04c04704c04b04m02701704104a04n08203e07g0ig0ny0ls0rr0av0bu","056056___0es02v______0380uh0vr0000hi___2kb00000002i03v03v03z03a03r04002k03703803b04202y0510gt0r40ps0rs04l081"],["Big Shoulders Stencil",700,2,1,"06g06g0710gc02c0kg07h04t0vb0rs00c0kg0jn29k00400b02m04j04g03w04l03z02001e04r04u04w05o0490820jt0q10kr0rs05a07m","09w07x0cv0l801z0le07g05c0xj0ma02d0lc0kn23a00100b02404h04a04f04g04e02901305605c05t09a04f09t0kn0qh0l20rr05y0du","06b06b___0e102b___05i04s0v90rs0000ko___27h00000102904003w04003v03904702b04p04s04w05n0490920me0rn0q90rs056081"],["Bigelow Rules",400,2,0,"09k09k0eh0md01r0m007s02a16916z03p0av0az32n00500e02004504b04k03y04a02k01j02502a02e03201601t0630et0jo0r70840af","0av0av___0ky01z0lm08603y0wv1ag03p0gv___2m900400d02604904b04l04r03v02h00x03g03y04t07r02z0530dl0kp0jy0qz09v0lp","098098___0fp02b___06g02918n18b00k0ax___2xh00000502v03o03l03u03903k03t03302202902b02r01401o0690he0q00rm0820ad"],["Bigshot One",400,2,0,"0jo0jo0jo0al02b0j406z0741yg1bi09n0g20i41hk00200902l04p04j04r04303r02k00k06z0780830bp02r06h0fa0ny0j40qb0hd0nq","0jr0lq0is0k102z0ih0770781lq13x09x0hc0jf1iy00100902x04u04q04z05702p02400107107f08k0d003906u0ft0m60i10oz0gs0mq","0n50m00ma04z0210n5___06w21y1g40dn0fg0g81fq00000002i04d04804h03i04j04600206h06w07w0c802l05c0da0o70mn0ob0k90ob"],["Bilbo",400,3,0,"0iq0ju0fv0d804j0fd0d70280qu0zs09907a09a2ck00g00n03704p04p05s03v01s01x00t02102c02u03s01o02e04h0790d70nt0dm0n9","0ku0ku0bw0ew03z0ge0cq0400ru0no0990bl0em1up00a00o02305a04p05p04j01r01c01j03i04305f09h03504n0820cg0ez0pk0cw0rr","0jf0jf___0cl03j___09b0290w40ze06406v___1kb00400903803w03j04803h02n04a02702302d02v03w01m02203d07b0ey0qh0fb0l6"],["Bilbo Swash Caps",400,3,0,"0h10cc___0lj03j___0cz02c0sk___0bg07h___21q00d01603804804404b04302c02d01m02402g03104c01p02b03y06p0ep0n60cc0o3","0vp0nr___0c403z0gb0bn0410tr0pp0ij0cz___1qa00b00s02q04m04505004302s02b01403k04805v09q03304a07d0bf0fu0nm0ms15l","1111111jk0dq01r0n50b00280v5___0ml06i06l1jf00800k02j03x02u03o02y03n04c03502002b02v04p01m02003005j0lf0ra0sy1o7"],["BioRhyme",300,1,1,"0kw0lr0kl08v02y0jf09f02o0ug3eb0fi08c09k1db00e00704204a03e03d04g03802702802k02s03z08z02b02h03j06r0hy0rn0i80qh","0ld0lv0jv0n502h0jg08n0400wg0rl0a40bo0d51eo00700b02605f03k04304t03a01t02603n04605w0ay03703k05i0ai0it0qv0hw0pu","0pb0pb___07v04p______02o0vk4440en08g___17g00000003y03w02q03303802b03g05602m02q03j0b302b02d03n0700oe0rs0k00rn"],["BioRhyme",400,1,1,"0md0my0l607x02y0j309f04i0x025s0hg0cn0e01c800b00902w05703l03j04w02v02o01n04b04s07x0dj03o03x06m0d60ig0rq0jf0r2","0lh0nf0jj0n301y0jc09x05a0wv1s30gt0em0ga1bg00a00a02x05203j04304s03202o01605105p09e0f404a04p0850fs0ir0rj0jj0qd","0qh0qh___072044___04404l0yb2kc0hb0cw___16o00000102p04s03003603d02n04m03k04h04q0790es03p03v06x0ck0oy0rs0ls0tf"],["BioRhyme",700,1,1,"0md0o40lh07402d0j309f05n0ye1qk0ij0ex0gc1ad00a00a02k05g03p03m05002t02q01f05d0630a30f904h04u08w0h40iu0rs0kl0rn","0nh0og0lj0o201y0jc09b06a0ya19k0ia0g60hh19a00900b02n05503n04504u03202p01206006x0b90gy04w05l0a30il0iu0rk0lj0vb","0qh0qh___06u03j___04405p0yq0rs0hu0fa___14f00000102c05403503603f02s04s03205l0600bu0gw04j04u09n0i60oz0rs0md0u0"],["BioRhyme Expanded",300,1,0,"0xt0wd0y407v04p0jf09f02s0x45lz0np06s07r0vz00q00905004k03f02v04s04501101302l03305f0by02802c02n04b0gj0jm0vr14l","0xr0xr0xr0ge04z0jh08n0480zf0nc0og0a20az0wk00800b02d05v03703s04o03901p02f03u04m07l0gq03503d04506y0hz0qt0us14p","13f13f___090072______02q0ws6cl0j2079___0sw00000004i03p02b02j03002002j07802l02u0430gu02902b02v04s0qi0rs0md17j"],["BioRhyme Expanded",400,1,0,"0z00x80zb07f04f0jf09f04o0zj3am0np0a50bp0vr00l00c03i05r03k03505p03401a00t04a05e0af0j703i03o04907w0h20jm0wy15s","0yx0zf0yx0g903w0ji09j05p10h2tx0p00co0db0vc00b00903905b03703t04r02z02q01905706e0ca0lb04704e05c09z0i40rn0w115q","16d16d___08e07n___08904m0z33vc0k70b8___0s500100303104u02j02q03202604f04w04g04v07x0m103o03o05309c0r20rs0o419w"],["BioRhyme Expanded",700,1,0,"0zw0xu0zw0730440jf09f05x10y2la0oi0bz0dr0vn00i00f03006203n03b06102u01b00p05g0770da0l804b04j05c0ab0h60jm0wy15s","0zd10c0zd0g503x0jf09a06v1211h40p00dt0fe0u700a00a02u05f03b03w04x02y02u01406b0800f40nn04s05406n0ch0i20ro0wf178","17j17j___08806h___08905v0zq___0l20dg___0r400100302k05d02n02s03402904u04305n06b0en0n204j04k06p0be0r40rs0pw19w"],["Birthstone",400,3,0,"12d10w___0ei05a0f80fg0380w00ve0ku09p___2gm00e00e02u05d05h04m03t02m02a00202m03703o04r01x02x05l07i0dr0o10om14f","1nq1s7___0i104z___0el04u0tv___0op0dw___20c00e00f01q05o05b05i03w01x02s00904704v06o0ac03f05e08i0bs0ey0os12t24n","0mu0n5___0ik01q______03k0rk0mh0bt09e___1pm00000001e03u03v04i03d03t03y03403403k03z05a02h03u06a08b0jp0rr0gs126"],["Birthstone Bounce",400,3,0,"125_________02y___0cc02j0tj___0rs______2q900p01z03804y05904303l02201o00c02102l03504201p02f04b0660cc0mb0l41sj","1ko_________02p___0aj0480se0gv0rs______24g00o01c02z04n06704g03902s01c00703g04906d08r02x04p07s0aw0df0mf0xa282","0ha0nt___0ou02u___08502f0t0___0dw084___2co00600p01v03v04304y04h04e03300801y02i03504801m02c03o05w0ho0oe08i0zq"],["Biryani",300,0,0,"0er0g60fb07e0540i508202x0sx0rs0540a50bp1qd00700803204u04404z05e02v01z00702t02y03j06u02n03005h0cr0g20m50e60h0","0fv0gd0fv07v03z0if07m0440sx___03r0dp0eu1ot00200b01t05f04e05605k03501p00a03q04605a0ar03m04f08y0fi0gy0mr0dw0hv","0hx0ii___08x05s___02v0390ts0rs02h0aj___1d100000102k04203b04403i03b04502s03403b03v06x02v03c05v0c80jt0rs0f10k9"],["Biryani",400,0,0,"0fb0fv0fv09d04j0i508203k0u00rs04n0cd0do1ov00600902r05004904y05d02x01y00703g03m04f09a03603n07l0fr0gl0mc0dm0hl","0fv0gv0fv07w03z0id07l04k0tt___03r0e60gc1np00200b01k05m04i05605k03401r00504804l0600bx04104s09v0gj0gx0mq0ev0hu","0gs0ii___0ax05s___03g03z0v10rs02b0ce___1c600000102a04a03d04503k03e04b02i03u04104t0ay03g04007f0he0kj0rs0eg0kt"],["Biryani",700,0,0,"0h00hl0h007k03z0ic08204w0vl0rs08k0fb0gm1m700600a02f05904e04y05e03101s00704p04y06m0d50480520br0ie0hl0mo0fb0iq","0ha0ha0ha07b03k0i308f05o0vt0n108k0g20if1ji00500b02p05d04r04005l03501n00505b05t08h0dv04s0630d10ig0gr0mm0f90jb","0ii0j3___09o057___05705f0w50se03p0ff___19200000101z04g03h04603j03k04g02605b05i0780fs04o05l0ca0oh0m60rs0fm0mk"],["Bitcount",300,2,1,"04304304302600l0mv05h03k0s2___0000gs0bc1n900000f03503o03k04g04i03y02b01t02s03j03w04502n03j03w0460lt0r704304o","0mu0mu0mu02j04z0nb04j07f1df0920ap0g10gk14e00000702304803y04k04l04c02701q03r07a0980dx03m04s09v0lh0m20r20lu0mu","04304304302500l0mv___03k0s2___0000gs0f51mf00000002t03b03904504503e02q04102s03j03w04502m03j03x0440n40s304304o"],["Bitcount",400,2,1,"0oa0oa0oa0320420mo05903y0st0q80bu0ff0fq1dp00000c02i04803y04d03y04c02z01703i0400970a303304204v0e60m30ra0nq0oa","0nq0nq0nq00u03y0nc05d09b1dl0id0ap0ic0ig13p00000702504i03w04504704g03801205n09q0at0id0500600et0nv0mw0rr0nq0nq","0oa0oa___03y0420mo___03y0t30q70000fs___1cq00000002503u03o04403n03s04402i03e0410950a303204004u0e70n60rs0nq0oa"],["Bitcount",700,2,1,"0lh0lh0lh00s0110kh04g09d17k0pv0ap0kd0lc18o00000602s04m04r05004l04c01j00106f09v0dx0k205q07u0hm0nu0k60o80lh0lh","1461e81460hu01x0kl03f09s15r03n0mi0k40n00v300000101604p05004u05304r02600108h0ca0i90qn06w0es0kd0nr0ka0ot0j51p8","0oj0oj___0100160ne03b0am1920o60000kr___12p00000001v04503y03i04404703r0290780b70fj0mt06j0960mt0s10pk0rv0oj0oj"],["Bitcount Grid Double",300,2,1,"04304304302600l0mv05h03k0s2___0000gs0bb1n900000f03503o03j04g04i03y02b01v02s03j03w04502n03j03w0460lt0ri04304o","0mu0mu0mu02j04z0nb04j07f1dk0920ap0fx0gk14e00000702304803y04k04l04b02801q03r0790980dx03m04s09v0lj0m20r20lu0mu","04304304302400l0mv___03k0s2___0000gs0f51mf00000002s03b03904504503e02q04102s03j03w04502m03j03x0440n40s304304o"],["Bitcount Grid Double",400,2,1,"0oa0oa0oa0320420mo05903y0st0q80bu0ff0fq1dp00000c02i04803y04d03y04c03001803i0400970a303304204v0e70m30ra0nq0oa","0nq0nq0nq00u03y0nc05d09b1dg0id0ap0i80ig13p00000702504i03w04504704g03901205n09q0at0ic0510600et0nw0mw0rr0nq0nq","0oa0oa___0450420mo___03y0t30q70000ft___1cq00000002503u03o04403o03s04502i03e0410950a303204004u0e60n60rs0nq0oa"],["Bitcount Grid Double",700,2,1,"0oj0oj0oj00s0160ne0530an18j0o60ap0kd0lc13400000802604i04803p04i04j02s01707c0b90fx0mx06l0960k50ra0n10ro0oj0oj","2b11z62mv0tg03y0nc04a0bn16v07f0ob0jg0l80ng00000301e04604k04f04m04m03400v09y0fa0lk11i07z0i00na0qw0mv0rr1z65ti","0oj0oj___0180160ne03b0am1960o60000kr___12o00000001u04503y03i04404703s0290780b70fj0mt06j0980mv0s10pk0rv0oj0oj"],["Bitcount Grid Double Ink",300,2,1,"0t20t2___04z0a90mx___08p0w7___0qb0jl___0cs00000001e03o04103x04u04k03r01n09d0e40mq0pz09i0e50mr0py0nj0rs0su0t3","0nb0nb0nb03x0530n404l04u10q15n09z0en0fi17x00000702h03t03u03h04s04m03201l03b04u08x0bi02z04508a0h60mj0ro0nb0nb","0ss0ss___04f0a40mz___08u0wl___0qm0jl___0e000000001d03n04104204u04k03w01h09j0e20mj0pr09f0e00mj0pr0nj0rs0sf0su"],["Bitcount Grid Double Ink",400,2,1,"0nq0nq0nq02o04n0ml05f03b0sw1ls0c30dk0dn1wu00000c02k04503w04c03y04a03001b02i03d04608h02d03a04404j0m00rb0nq0nq","0nr0nr0nr00q03z0nd05c0931gg0po0ap0hf0hw13t00000702804904104a04d04f03300z0590930a70ev04b05l0dp0ni0mw0rr0nr0nr","0nq0nq___03v04n0ml___03b0t31ma0000dk___1wo00000002803s03m04203n03q04002r02g03d04608h02d03a04104g0n50rs0nq0nq"],["Bitcount Grid Double Ink",700,2,1,"0nz0nz0nz01s01q0n804r0691be0nm0ap0iv0jb1dh00000701p04d04604804c03r03n01f03e06f0aj0ik03b05z0ad0me0n80rs0nz0nz","2da2132pg0tg0420no04d0be19a0bb0ob0iv0ks0o800000401l04e04o03f04q04r03a00x0ai0ey0ky0yk07f0gf0mr0qg0ml0ro2135z7","0nt0nt___01z01p0n9___0681d50n10000j7___1df00000001e03z03x03z04104104e02403d06e0ah0ia03a05q0a30ot0pr0rs0nt0nt"],["Bitcount Grid Single",300,2,1,"04204204202300l0mm05g03j0s2___00009g07l15m00000d03n03t03404104b04202w01l02r03i03u04302k03h03v0440hy0qa04204m","0mt0mt0mt03004z0nb04i04e0sm0g60ap0co0ci15w00000602g04k03b04804d04b02f02103904a0500cg03m04e04z0cv0i50r20lu0mt","04304304302000l0mv___03k0s2___00009f0f615100000003903e02t03t04502w02p04t02s03j03w04502j03j03x0430mv0s304304o"],["Bitcount Grid Single",400,2,1,"0oa0oa0oa03x0420mo05904j0us0qh0bu0c90by17100000a02u04i03h04103r04e03601c03j04604x09n03604704w05b0ij0qu0nq0oa","0np0np0np00y03y0nc05d05h0rv0im0ap0f20f514y00000602b04z03i03r03y04j03h01505305r0970g205205m0690ij0jz0rq0np0np","0oa0oa___05c0420mo___04j0uw0qj0000cb___16f00000002h04203603u03n03904f02z03i04b04x09003304504v05d0n60rs0nq0oa"],["Bitcount Grid Single",700,2,1,"0o40o40o400p0150n704y0700sb0ob0ap0i70ic16300000602804s03x04003p04j03f01306o0790dn0lx06f0750b90n00m50rg0o40o4","2mv2mv2mv0qt03y0nd04a07z0sx___0rs0hm0it0qq00000201c04c04j04604m04q03600u07y0d90jj0ug07n0ai0ko0ob0mv0rq1z56l6","0oj0oj___01n0160ne03b06z0sd0o60000hx___14x00000001y04e03o03b04103z04302f06m0760dp0mc06f0750bb0qt0nq0ru0oj0oj"],["Bitcount Grid Single Ink",300,2,1,"0ss0ss___04l0a00n5___08z0x8___0pr0jj___09h00000001903i04h03v04q04q03o01m0960dk0md0po09g0e10mh0pn0nh0rq0se0ss","0ia0nc0ia07z0530n304l04b0vy1kg04s0bl0b513o00000602x04503d03904h04h03801t03a04b04w09l03104004u0b30ii0rl0e70nc","0ss0ss___0410a20n8___0940xr___0q70ji___0as00000001a03j04b04004q04p03o01m09c0e20mf0pr09c0dz0mk0po0nk0rq0se0sx"],["Bitcount Grid Single Ink",400,2,1,"0nq0nq0nq03o04n0ml05f0360rv0t60c30ap0a91i700000b02x04e03g04103s04c03501g02d03c04604i02b03804304f0ij0qq0nq0nq","0nq0nq0nq00q03y0ne05c0580tx0my0ap0dp0e815n00000602j04f03l03y04704i03d01304m05b0640dt04c05305w0ek0j20r20nq0nq","0nq0nq___05504n0ml___0360rx0t70000ap___1hl00000002k03y03503u03o03704603a02c03c04704i02b03804204f0mu0rs0nq0nq"],["Bitcount Grid Single Ink",700,2,1,"0nz0nz0nz01s01q0n804r0620vy0ml0ap0gh0gh1c400000501r04p03z03x04803t03t01g03e06607v0hj03a06006o0h70m50rs0nz0nz","2pd2pd2pd0qt0420no04d07r0u108a0rs0h90il0rk00000301k04m04j03704o04w03e00w07l0cg0iz0t007709w0jv0nz0mj0rn2106rd","0nt0nt___02901p0n9___05u0wk0n00000gl___1c200000001g04903n03r03y03q04s02a03e06407n0hn03905x06l0ib0nt0rs0nt0nt"],["Bitcount Ink",300,2,1,"0t20t2___0510a90mx___08p0w7___0qa0jl___0cs00000001e03o04103x04u04k03s01o09c0e40mq0pz09i0e50mr0py0nj0rs0su0t3","0nb0nb0nb03x0530n404l04u10j15n09z0eq0fi17x00000702h03t03u03h04s04m03101l03b04u08x0bh03004508a0h60mj0ro0nb0nb","0ss0ss___04f0a40mz___08u0wl___0qm0jl___0e000000001d03n04104204u04k03w01h09j0e20mj0pr09f0e00mj0pr0nj0rs0sf0su"],["Bitcount Ink",400,2,1,"0nq0nq0nq02o04n0ml05f03b0sy1ls0c30dk0dn1wu00000c02k04603w04d03z04a02z01a02i03d04608h02d03a04404j0m00rb0nq0nq","0nr0nr0nr00q03z0nd05c0931gh0po0ap0hj0hw13t00000702804904104a04d04f03200z0590930a70ev04b05l0do0nd0mw0rr0nr0nr","0nq0nq___03n04n0ml___03b0t31ma0000dk___1wn00000002803s03m04203n03q04002r02g03d04608h02d03a04104g0n50rs0nq0nq"],["Bitcount Ink",700,2,1,"0kt0kt0kt00p01q0jw04n05g1c50o00ap0eb0jo1kq00000702h05404m04z04g04a01n00102x05q09e0h002v05c0bb0k00jx0oa0kt0kt","1ti1t02fc0xd01z0le03i09s18f0a50op0ia0k70tz00000201u05004y05005904d01b00207m0b10hx0r506a0c30jj0my0jx0nz1ri2z6","0nt0nt___01u01p0n9___0681cd0n10000j7___1df00000001e04003x03z04104004e02403d06e0ah0ia03a05q09z0ot0pr0rs0nt0nt"],["Bitcount Prop Double",300,2,1,"03h05s03h0bv00l0j504t0310rs___0000fp0bu28c00000c03k04i04r04t03p04401y00302h03103g03n02a03103g03o0i90na03h042","0jn07v0jn05603x0jz04607q1gj0fk0a50mn0hu1dk00000602e04o04v05505403x01g00204d07r08b0cg04304l0dd0k10ju0nv0jn0jn","04204204202800l0mm___03i0s2___0000gs0e91u700000002q03b03b04504503f03n03502r03h03u04302l03h03v0430mt0rs04204m"],["Bitcount Prop Double",400,2,1,"0k00k00k00560400jt04a03l0z50nw0a50fx0g11si00000702004q04s05405303o02400302i0370840aq02u03t07m0gk0jb0ns0k00k0","0je07r0je04m03w0k003w0821gd0me0ap0na0iu1e700000602k04r04s05305403v01e00204t08408p0d304905l0e10kf0jx0nw0je0je","0oa0oa___04v0420mo05803y0sz0qf0210fr___1i900000202403r03o04403q03t04402h03e0410970a303204104u0e30n60rs0nq0oa"],["Bitcount Prop Double",700,2,1,"0le0ae0le0400160k804b09g17t0pp0ap0nt0kt1do00000602905004t05404h04b01l00206g09r0dd0jq05w08x0il0nu0jx0nz0le0le","1321cd0im0i801v0k003b09i15b___0m80gu0mc0y000000101404j05106705404401m0020840bm0hr0px07b0f50js0n40jp0o50im1qb","0oj0oj___03c0160ne04t0ao1910o80310ks___15y00000201u04303z03i04504803r02907c0b70fe0mo06l09r0n00s20pk0rv0oj0oj"],["Bitcount Prop Double Ink",300,2,1,"0t30t3___00c09p0mq___0970y1___0rs0jl___0en00000001f03o04003w04t04k03s01o0b30ed0ms0q209b0e10mr0py0np0rs0su0t3","0jg07s0jg04m03w0k403v07w1fz0p80ap0my0i11ds00000702m04p04t05305203v01f00204807w0840c804804o0ee0jt0jy0nw0jg0jg","0ss0ss___00a0a40ms___0970xy___0rs0jm___0gc00000001d03n04104104t04k03w01h0aw0eb0ml0pu09e0dx0mk0ps0nl0rs0sf0su"],["Bitcount Prop Double Ink",400,2,1,"0k60820k60560410ja04h03e0ta0up0a50im0dw20p00000a02t04o04v05404704401q00302d03e03o07j02f03b03k0790iv0nr0k60k6","0jg07s0jg04m03w0k403v07v1fq0pk0ap0my0i21dr00000702m04p04t05305203v01f00204807v0850c904804o0eg0jt0jy0nw0jg0jg","0nq0nq___04w04n0ml05f03b0t31ma0220dj___24p00000202603p03n04303p03r03z02q02g03d04608h02d03a03z04i0n50rs0nq0nq"],["Bitcount Prop Double Ink",700,2,1,"0l209y0l204101r0jw04b05d1cu0ne0ap0ly0j41tl00000602f05304s04g05604901f00202z05o0980g402t04u09p0jn0jw0o00l20l2","1sg1sg1uf0r60ax0l903h09k16w07h0p90i80kr0xx00000101l04u05105605d04f01c00306k0a90hp0ql06c0cb0jb0mv0jz0ny1oh2c9","0ny0ny___03e01q0n804q0691d60p00310j8___1hc00000201e03x03x04004104003s02q03e06f0aj0ib03b05s0a70oy0q20rs0ny0ny"],["Bitcount Prop Single",300,2,1,"04204204202200l0mm___03j0s2___00009f0a119600000003d03p03a04904f04103001s02r03h03u04402l03h03w0440hz0qq04204m","0jn03x0jn07n07v0kd04504i0ty0e309g0mc0dt1cg00000502n04s04f04u05404801m00103z04i04p0cc04504604x0ea0g40nt0jn0jn","04204204202200l0mm___03j0s2___00009f0ea14500000003603d02u03u04702x03r03q02r03h03u04402i03h03w0420ml0rs04204m"],["Bitcount Prop Single",400,2,1,"0k20k20k208d0810jv04b03l0q60n009g0co0c51jt00000602904y04c04s04z03w02e00202j03l04c08c02u03t0480bh0g10nd0k20k2","0kf0kf0kf06u0650k104k04z0sl0kh09m0ff0ff1cj00000402l04y04g03p05h04p01s00104s05206g0dq04r0510680g50hn0ns0kf0kf","0oa0oa___07608o0mo05704j0v40qq01r0c3___15b00000202g04003603t03r03b04d02x03j04c04x05e03304604v05c0mp0rs0nq0oa"],["Bitcount Prop Single",700,2,1,"0lf06d0lf06504n0k904a0690sk0og09m0nh0hw1e300000502b05a04j04u04l04i01l00105u06e0av0ib05r06d0bk0kg0j80nv0ku0lf","0k30k312q0os04s0kl03f06n0rm___07t0j70ih14o00000101504o05104n05504w02700206607t0f10j006o0930hd0lm0jb0os0j50qs","0oj0oj___04h0590ne04t06z0sd0o601k0hu___13s00000101w04b03q03c04304004202d06l0760cu0lu06g0760bc0qt0nn0ru0ny0oj"],["Bitcount Prop Single Ink",300,2,1,"0t30t3___05o0a60mv___08k0vr___0pw0jl___09900000001e03o04103x04u04k03r01n0900e30mo0py09d0e40mr0px0nh0rs0su0t3","0jg03w0jg07n07s0k403w04b0t50p909g0mj0dy1cx00000502w04s04e04t05104501l00104404b04t0c304404b0500f60ga0nv0jg0jg","0ss0ss___0300a40n4___0900x8___0r90jn___0b500000001d03n04104204t04k03v01i0a10e50mk0pt09e0e00mk0pq0nl0rs0sf0su"],["Bitcount Prop Single Ink",400,2,1,"0nq0nq0nq08i0580ml05f0340ro0t609t0ap0a91mm00000902o04703l04503u04b03901l02d03b04704i02b03804204g0ij0r70nq0nq","0jg03w0jg07n07s0k303x04b0t70pj09g0mi0dy1cx00000502x04s04e04t05004501l00104404b04t0c304404b0500f80gb0nv0jg0jg","0nq0nq___0880990ml___0360rv0t701o0ap___1g300000002i03x03603s03s03904503902c03c04704i02b03804204f0mq0rs0nq0nq"],["Bitcount Prop Single Ink",700,2,1,"0kt05s0kt06d0570jw04m05b0vn0n309m0mb0gm1mn00000602f05804f04t04l04h01p00102x05g07h0fg02v05f07j0gg0j20nv0kt0kt","0lt0lt25a0vg03z0l903h06m0sl07y0660ie0hy13m00000101o04y04x04r05e04n01f00106b07b0f20jl06e08q0fl0kj0jv0nw0lt0lt","0ny0ny___05j05p0n804q05w0wk0ml01l0ga___19y00000101g04503p03s04003q04302w03e06607m0hm03a05z0760ik0ns0rs0ny0ny"],["Bitcount Single",300,2,1,"04204204202300l0mm05g03j0s2___00009g07l15200000d03n03t03404104504702y01j02r03i03u04302k03h03v0440hz0q604204m","0jn0jn0jn00w03x0kd04504h0ty0e30ap09y0dx19g00000502w04y04904n05104a01l00103z04h0610cc04504604j0e90g40nt0jn0jn","04304304302000l0mv___03k0s2___00009f0f615100000003903e02t03t04502w02p04t02s03j03w04502j03j03x0430mv0s304304o"],["Bitcount Single",400,2,1,"0k20k20k203j0400jv04b03l0q60n00ap0cl0c71gp00000602g05604604l04w03y02d00202j03l04c08j02u03t04808l0g10nd0k20k2","0ky0ky0ky00y0350kl04o0540sn0la0ap0fb0fk18m00000502s05103604q05e04102i00204x05807z0ed04v0550690h00i60of0ky0ky","0oa0oa___05c0420mo___04j0uw0qj0000cb___16f00000002h04203603u03n03904f02z03i04b04x09003304504v05d0n60rs0nq0oa"],["Bitcount Single",700,2,1,"0le0le0le00q0160k904b0650s70oj0ap0d00hx1be00000502h05h04c04o04k04j01k00105u06f0ci0je05q06d0af0kd0j90nv0le0le","1461o80tn0hw01x0kl03f06n0rv___0nt0ib0jq0z500000101904x04y04h05004y02600206608z0fv0js06l08m0hl0l70k40os0j41p7","0oj0oj___01n0160ne03b06z0sd0o60000hx___14x00000001y04e03o03b04103z04302f06m0760dp0mc06f0750bb0qt0nq0ru0oj0oj"],["Bitcount Single Ink",300,2,1,"0ss0ss___04l0a00n5___0900xb___0pr0jj___08700000001903i04h03u04q04p03o01n0970dk0md0po09f0e00mi0po0nh0rq0se0ss","0jg0jg0jg00s03w0k403w04b0t50p90ap0a40e319w00000603504x04704l04z04701k00104404b0660c304404b04o0f60ga0nv0jg0jg","0ss0ss___0410a20n8___0940xr___0q70ji___0as00000001a03j04b04004q04p03o01m09c0e20mf0pr09c0dz0mk0po0nk0rq0se0sx"],["Bitcount Single Ink",400,2,1,"0kn0kn0kn03g0410ji04l0380ty0qd0ap07g0a81lm00000903e04v04704e04w03l02600202103303m04301z03203m03x0g20nj0kn0kn","0jg0jg0jg00s03w0k303x04b0t70pj0ap0a30e319w00000603504x04704l04z04701k00104304b0630c304304b04l0f80gb0nv0jg0jg","0nq0nq___05504n0ml___0360rx0t70000ap___1hl00000002k03y03503u03o03704603a02c03c04704i02b03804204f0mu0rs0nq0nq"],["Bitcount Single Ink",700,2,1,"0kt0kt0kt00p01q0jw04m05b0un0n20ap0bw0gt1j800000602m05e04804n04j04i01o00102x05g07n0fv02v05c0650gl0ja0nv0kt0kt","1tf1qg23u0yj0100l903i06s0tg07y0rs0gn0i60wr00000101u05504t04m05904o01e00106c08u0g00oe06d0890fm0kj0jv0nw1oh2e8","0nt0nt___02901p0n9___05u0wk0n00000gl___1c200000001g04903n03r03y03q04s02a03e06407n0hn03905x06l0ib0nt0rs0nt0nt"],["Bitter",300,1,1,"0h80h80gn0aw03g0io08y0260vk2l60730820891ob00c00704s03n03q04a04o02v03000b02302902q05101r01y03d06n0hj0p00fi0kn","0hu0iw0gs0oe0350iu08v03n0uj1zu0850cd0dq1mi00900903w04d03404p05802i03600b03i03w05908p02y03l06c0d20i80pi0gs0kz","0ji0ji___09s04l___06b02c0vp3jy03b080___1dl00000403o03b02y03b03j02e03d05702a02f02x05z01w02303s06q0o40s40d70o3"],["Bitter",400,1,1,"0ha0ig0ha09102w0j108n03a0y024k06j0b50c01nx00b00803804m03v04e03x03v03400b03703g04g08n02h02t05h0c20ig0pd0g50kr","0i50io0gl0ou0340ii08q04f0xe1pq08c0ec0fk1mg00800b03h04t03604o05b03002j00b04c04p06c0be03e04907q0fv0i00p70gl0mt","0k90k9___08y04n___06q03l0xn2dy04e0b4___1de00000402q04403403j03503003x04503k03s04p0aa02r03406c0c10p10rt0g70ow"],["Bitter",700,1,1,"0j40j40ij0e101r0j408p05f10l1fi07p0fr0go1ms00800a02j05504504j04a03k02u00a05b05o0820d903u04v0b40jb0is0p40gs0m0","0kf0kf0hd0on0220k508l0630zt1780990h40j11kn00600c02t05204903f04x04c02c00705w06e09e0ep04j05n0dh0kk0jq0ou0hd0wp","0lp0lp___09w042___07c06110q1le0440g5___1bg00100402304g03b03p03603d04p02v05v06b09o0f204b05c0bx0os0q40rs0jo0ph"],["Black And White Picture",400,2,0,"0fn0g70eh0kt0160hd09u03s0sr0ub0750ei0f82ga00900f02e05f04l04v04902v02b00h02z03x05107p02704306n0d20gh0ob0db0hd","0h40k10tb18v02g0hh0a10570qs0vm09x0h70iu1qh00900f02k05504j04r04r02p02800i04o05n09o0d804y06v0dq0jd0h20ot0eo18y","0ob0wz0i816e01g0nb03h03w0rt16y0eg0e20dz27v00000102e05004204303f04j03v00h03604305608602c04d0750e60l40ov0g711m"],["Black Han Sans",400,0,0,"0le0lz0kj08q02w0m006w08o11f0rs0aw0kz0lm19z00200b02404x04g04o04404q01v00k08n0910ey0jk06i0ck0l50qc0l10qc0ii0mk","0l80lr0k80d50310m107d08y11m0ls0an0l20md16400100b02a04w04j03j04t04r02700i08u09f0gg0k10740fv0lt0q90ll0qg0i70m9","0no0no0jn08p02w0n6___0970yv0rs0730li0lf14b00000001r04c04004703h04004202109209n0hf0lp07c0da0qn0rn0nr0rs0jn0o9"],["Black Ops One",400,2,0,"0c60cg0c60ek02b0jb07m08p1970rs05z0l30l91fm00400902l04y04i04y04903s02700808k08p08x0bl05d08x0ja0pe0jt0ow08p0gs","0mt0nt0lu06q02z0jg07j08y19p0n40l40kq0lu17p00100902a05304i04y05003n01s00a08s0910cx0jt05g09y0jl0ok0jv0oz0lu0nt","0gq0gq___0dv02w0n305s09o19b0rs0950kp___16v00000102604a03q03z03b03k04g02b09n09o0ae0em05x08w0lh0sd0q10rs0da0py"],["Blaka",400,2,0,"0i70i70hm05x0160l509k06w0ru0o102h0j00jc1ll00700c02205904i03x04z03r02700o06w0780bm0gb06o0860k70pw0jz0pu0gg0je","0j10mc0e90i801w0kn09207c0w009w0bb0jq0j61d500500a01q04v04k04c04r04902h00f0710860ex0h806y0ey0l10pe0k30ps0g60y8","0j40j40hd04v0160lf08a06q0rl0nv01f0j40ir1k400300902104w03x04403b04f04200r06p0710bo0gt06p0740o90pw0mp0qm0hd0jo"],["Blaka Hollow",400,2,0,"0i80iu0h205t0160l609j03f0qc0rs01v0it0i72zd00700c02605704h03v04w03s02700p03703j06j09l03e04j0af0j70k00pw0gh0jf","0i20j00po0ie01w0ko09207k0x00bh0ax0kp0kj1c400500a01s04u04k04c04q04y01u00f07608o0f60hd0750fm0ld0pk0k30pt0g60wb","0j40j40hy04u0160lf08a0390qb0w101f0i50ho2z200300902504u03x04103b04g04200s03403c06b0a103a03p08f0kr0mp0qm0hy0jo"],["Blaka Ink",400,2,0,"0hy0i80hd05s01r0ku09u06o0u70kb02d0hr0ij1mp00700c01y05804d04j04804a02400l06706q09d0f605s0730ib0ng0jp0pn0fn0j4","0ht0ia0ht0dk02z0lc09j0750ua09v06d0iw0km1eq00400a01k04v04i04i04z04b02300m06r07q0dh0gj06r0bx0kg0ou0k10px0gt0kr","0ij0j40hy05501r0lf08c06g0t60kk01h0hy0h71kw00300801z04w03u04403b04f04600s06406l09s0fm05p06s0k30o60mp0qm0hy0jo"],["Blinker",300,0,0,"0i50iq0i506t04j0lk06x0330t30rs0280a10b51k700300a02i04i03g04a03u04y02a01n03003503n08602t03105k0ef0jw0r90gg0ju","0i90i90h807o0320l107a0480t10lx04a0dp0et1lk00100b02t04o04103h04b04r02q00q04304a0580c903o04d08r0hi0jp0qj0g80j9","0jl0jl___077057______0380tq0rs00i0a2___1dl00000002c04503904303g03203n03u03503903u08902x03505p0cz0j90rs0gp0lw"],["Blinker",400,0,0,"0j40j40ij07u0420ln06z0400tt0rs04t0cl0dj1j900200a02904s03l04c03d04v02l01o03w04204v0cb03n03y08n0j80kf0rs0gs0k9","0is0is0is08w02z0lg07904p0tb0u504g0ek0fk1js00100b02i04q03t04e04704k02l00p04l04s0610dq04b04v0ah0jw0k30qv0gt0kr","0j40j4___09z04n______0440tx0rs00w0cf___1cv00000002204f03c04703c03504c02y0410450500df03p04208e0jj0l40rs0fn0m0"],["Blinker",700,0,0,"0k90ku0jo0by02b0ln06z06x0uj0rs05o0iz0k81ej00200a01y04t04104b03v04h02q01c06v0740bs0ib06707l0jm0qg0lh0rs0hy0ml","0lf0lf0ke0cj0210m307g07d0un0m208u0jb0ki1bn00100a02604u04603d04o04k02o01307907t0e10ip06n08w0jt0pf0lm0rr0jd0ng","0lp0lp___09603h___05s0730ul0rs0550iv___18800000101p04f03q04403g03f04o02a07207d0cc0ix06e07q0j00rk0ow0rs0j40nq"],["Bodoni Moda",400,1,1,"0hd0hy0h307v02w0gw09f03u2171lj07q09q0bb1nu00b00903004f04f04r04j02202701w03f03t04304o01301v0550d60gd0rs0eh0jo","0gt0gt0gt0ak03y0hh0a704r1dv10k0660ct0eu1lo00a00903704d04904k05501x02801o04h04s05d06o02003j08h0gx0h10rr0bv0hs","0jo0jo___08q03h______03t2961zu02p09k___1hp00000002o03l03m03u03e03k03p03h03203u04604p01301m0570cm0ox0rs0cq0nq"],["Bodoni Moda",700,1,1,"0jo0jo0hy08802b0gw09e05o2qr14e0bj0ck0es1ks00a00a02l04j04n04w04b02702g01n04q05k06406w01502t0990h40gt0rs0gs0lf","0hr0hr0hr0ah03y0hh0a506d1s90ue08l0f30gk1hp00800a02s04g04i04r04v02302f01f05r06e06x0800230590cq0ka0h20rq0bu0jr","0ku0ku___09102w___0930603gz1ha0870ce___1eq00100202903p03t03y03e03r03w02z04406006b07001302c09a0me0pm0rs0eh0ph"],["Bodoni Moda SC",400,1,1,"0j40hy0jo07902w0iq___03u2591ud0d609l0bh1o300000003004h04p04o04003m01t01k02z03u04b04x01301s05f0cp0ij0r70gs0lf","0hs0i90hs09m03y0ji02304w1dd13g0720ce0ei1k700000003404f04h04i04m03h01t01e04m04v05h07e02103m08t0gp0ix0rp0et0jr","0jo0jo___08q03h______03t2961zu02p09k___1hp00000002o03l03m03u03e03k03p03h03203u04604p01301m0570cm0ox0rs0cq0nq"],["Bodoni Moda SC",700,1,1,"0ku0jo0ku07p02w0iq___0603821b90id0cg0ed1k400000002l04n04w04t04203h01z01d04806006907501302n09m0ir0is0rd0hy0n5","0ir0ir0ir09i03y0jh08l06k1v00uw08y0em0ge1ee00100202s04j04n04m04n03e01y01605t06j07508t02104s0cd0jw0iz0r20et0kq","0ku0ku___09102w___0930603gz1ha0870ce___1eq00100202903p03t03y03e03r03w02z04406006b07001302c09a0me0pm0rs0eh0ph"],["Bokor",400,2,0,"0cp0cp0cp09b01q0k807304s16x0rx0160hb0hv26d00200b02104w04504h04004102j01b04r04t05807m02v05u0j00pt0jm0r40c40ef","0cw0cw0cw0ly01z0ld06j05d0xj0e103k0jl0kj22z00000901s04x04304c04n04c02k00x05805g06a0bi04c08k0k10ph0ky0r10bw0dv","0co0co___0a502b___06z04s17w0wh00z0i2___22v00100401v04b03k03x03a03t04n02c04r04s05306y02s05m0nz0r40q00rs0ay0ef"],["Boldonse",400,2,0,"0ev0ev0jg0hi01q0k807d05n0se0rs06i0jh0j41xk00400902e04v04804a04r03202j01c05i05r07n0d905e07j0i40r10js0rs0dq0jg","0je0hj0je0py01u0jy07205v0ro0l20bx0k00k71qq00200801x04m05304304i03h02c01j05o0620ae0do05t0850hw0pj0jm0rr0cx14m",null],["Bona Nova",400,1,0,"0fn0hd0f208x02w0g708c03711v20y0an0980c51sw00g00j03s05604j05f04501q01s00903503d04206q01s02l05a0b00ej0ns0db0j4","0ff0gd0ff0dy02w0fx07e0480zd0iu0990d10g41t900600n02405y04l05c05501o01y00b03z04e05p08d02r03z07o0ej0el0nz0dh0k8","0n50ob___07k04c___0c603v18d24k09t0a1___1cw00d00903103w03e03i03n03503503h03q04104p07301w02u0680bw0ju0rs0gs0q2"],["Bona Nova",700,1,0,"0hy0je0gs0af02b0gs08d05r1ic1a00ev0dp0fo1oq00e00k02z05f04z05k04e01u01k00605c05v06p09h02604m0ak0gz0fb0nt0fn0mk","0io0io0gp09p02g0hf08c06f19p10h0cx0g30ig1l400c00k03205a04r05a05a01s01d00606306k07s0bg03705w0d50ip0g30nw0fq0ml","0ol0pg___08k042___0c406x1ys1ch0dw0dw___19g00d00a02d03z03q03x03q03i03902p06b06y07s0au02904q0bp0pd0li0rs0j30sc"],["Bona Nova SC",400,1,0,"0lf0ow0jz05x03h0m00cb03r1792130dn0a80b31gv00400303c04904004g03h05201w01403n03v04m07e01x02s05y0bt0ja0ml0ij0n5","0km0np0jl09z03m0m20b604s129___0bx0di0eg1f500500401q05b03704r04i05d01t00w04k04z06a09a02w0470870gi0jh0mn0hj0mo","0mv0ow0g707504c0m00ci03v18x24o0aa09y0b21by00400303003t03i03o03g03k03703g03r04004o07101w02t0690by0l10rs0hd0q2"],["Bona Nova SC",700,1,0,"0mk0qb0m907r03h0m00cp06t1x819w0hn0do0f21d400500402l04i04h04s03u04u01p00v06506w07o0av02a04m0bs0lx0k90ml0j30q1","0na0qb0ma06y0420m20cj07e1l710w0j20fm0h61a100500402q04m04h03n04k04v01z00q06y07j08p0cj03805s0f30mb0jl0mi0k90qb","0ov0ql0i80820420m00cp06y20y1ch0e50dp0eq19c00500402b03x03v04103m03u03b02o06d06y07s0ap02804j0bu0p80m00rs0j30sc"],["Bonbon",400,3,0,"0gr0g70hx09y02b0ii0c502g0p417x09t09u0bk27l00f00i03405104i04g04f03601u00e02b02l03k05m02802s04n0760fu0mq0eg0lz","0gd0gd0fe10701x0hy0b703w0nw0k70900e10gi1yc00e00h01v05j04n04d05203501z00d03h04807109w03m0570850bt0gc0n50dh0qy","0q30n60q30db0210n80c802k0pj___0ic09x09u21h00500902y04n04803l04604b03j00102e02o03l05w02b02v04m0750gz0oc0ij0xm"],["Bonheur Royale",400,3,0,"0tt0x0___0je04x___0e502k0xi___0n507d___25a00k01e03r04u04r04n02602702201e02602o03b04b01i02503w05x0cq0ph0ku1ab","17t1ea______08z___0cs04q0yt0sa0rs0b1___1lg00k00u03d05a05104w02p01p02201e03u04p06s0a602v04a07c0aj0cz0pt0vv1wp","0m50q6___0jf02w___09702i0za0wq0ij073___1po00600p02x03r03g04103303e04402602402m03d04p01e01z03a0540k60qm0go0xc"],["Boogaloo",400,2,0,"0db0fb0cq08p02w0ii08o0510s40tu01n0ha0ja1xr00600a01o04x04n05004e03402q00v04t0570640ab04u07l0g20o60hx0q00c50gr","0dt0fs0bu0g902z0hr09a05t0sd0nv02n0iz0lf1rk00600902f04x04q05504u02n02c00d05b05y0960c405p09f0h40o00hx0pu0bu0gs","0gr0gr___08z03h___02b05m0ug0t200y0hf___1m800000001g04a03w04803j03x04i02005d05m06l0c50520840gd0qg0ns0rp0da0hb"],["Borel",400,3,0,"0n00n0___12007o0mr0o504z0s40rs0ax0c7___18d00c00e02h05j03703o04804702q01204q05106x0cd04k05u0ab0k10e90ox0kn0u3","0ew1930dm0yf03f0ku0df03s0qs0ei05c0a20f01pb00f00l01o07604d06p03b02o00l00c03l03t0630ad03n04g08o0d80cp0l50dm0h0","0n00n0___09y05w0jj___04y0t90rs0am0by___12r00000002504z03503s04n03n03g02104q04y05t09p04g05t0au0mt0ea0rs0ia0qj"],["Bowlby One",400,2,0,"0px0pd0qi07n0160mh0980b21900ru0hs0kn0l815000300a01j04i04h04g03y04g02r01e0ag0ba0ep0mn0720d10lq0ri0m10ro0os0r3","0qj0pl0rh0tr01w0mg09r0b018a0m80ga0ki0lt0zf00400a02204d04804b04f05302800s0aj0bo0jp0o007f0e80ll0r30l80qx0on1i1","0q20q2___0br02b______0at16b0rd0g10lc___12e00000001j04704104003g03u04f02c0ab0b30g50mg0780c90qw0ro0qn0ru0nq0sd"],["Bowlby One SC",400,2,0,"0ow0ow___0a502w______0am1400rt0g90lx___12p00000001f04d04c04c03n04f04d00y0ab0bb0i90md07l0ed0of0ri0p10re0n50qm","0pn0pn___0lo02z___01l0az1440nv0gt0mk___0xx00000001f04804a04804404f04900x0as0c50kr0o20830fx0or0re0oy0rn0mo0wj","0q20q2___0a102b______0ba14m0rs0fy0m5___11800000001i04404504203g04004d0280au0bn0ii0nl07y0ec0rb0ro0qo0rt0nq0rs"],["Bpmf Huninn",400,0,0,"0j40jo0ij08v04n0k909a0420sx0ph0520c90dn1ep00800702805003t04c04103y02g01l03z04505d0bl03r04607s0g70il0r90gs0ku","0ix0jx0if07o04z0kb08k04s0t4___06f0dt0fm1et00400901805d03y04k05103402b01w04k04x06r0du04e04y0a40hc0j10r00gx0kw","0ku0ku___09p05i______0420sx0pi03h0by___18e00000001z04h03b04503f03404l02s03z0450550d003r04607c0f00kz0rs0gs0ml"],["Bpmf Iansui",400,3,0,"0hb0ig0hb07v04m0j40640350s10rk03t09v0bz1im00000c02704z03w04804h03m02701w03103703x06l02s03c05u0c10gz0r40g50j1","0hr0ir0gs08103y0jd06e0480sp0i801l0ch0ey1hx00000a01u05404104b05b03302h01d03y04b05f0a003p04k08m0ff0hu0qr0fs0jr","0k50k5___0a2057______0370ss0tq01x09t___1bv00000002s04203903g03v03403u03i03303903x06602t03a05p0av0i70rs0ez0lv"],["Bpmf Zihi Kai Std",400,0,0,"0hd0hd0hd07t02w0i40990371342au07h09p0b61no00d00703r04a04204h04j02q02x00i02z03a03r06l01v02f04y0ai0he0pn0fm0k9","0gd0gd0gv0iq02w0ia08j0450za0th05c0ct0ez1oq00700a01y05604104i05802s02u00w03y04b05d08i02r03l0790em0hg0pu0ff0ib","0lf0lf___075058___08k03j1972mv04z09y___1ef00200303a03l03703n03603503h04703a03l04106p01z02e05u0av0p40rs0hd0ow"],["Braah One",400,0,0,"0lm0lm0lm05z02h0lm08107h0yd0rs0as0i00ip19x00400902004h04h04304904p02e01107707p0c70it05y07n0i90pp0ko0r60jr0mu","0jk0jk0il06j02y0ke08307k0y20m50b90jp0k919r00200902705204d04p04x03v02c00207507u0da0hz06308a0hx0ng0jq0pk0il0lj","0ml0ml___08z042___04n07u0ys0rs0730iw___13v00000101l04f03u04503g03m04n02407m0860cq0jy06508b0ju0rg0ol0rs0k90ph"],["Brawler",400,1,0,"0ju0ju0j90f602v0k409904614t20k0840b90cd1je00b00803004h03q04303j04g02601u03s04905409602i03706u0eq0jj0ra0ht0mf","0j90j90hb0mt02w0kj08h04u0z90ru0740dq0ex1k200600b01n05403s04204b04c02c01s04h05106i0b303904808e0h40jd0r00hb0l6","0lc0lc___09p04m______04a17d23d08s0bo___1dw00000002t04003d03n03703803n03z04904g05309x02i03507b0dt0oe0rs0j10py"],["Brawler",700,1,0,"0k90k90kk0cq02b0jr08v05k17j1lf09u0eg0ey1fm00a00a02o04q04304d03v03z02m00y05i05q07b0c203504d09k0jg0j60qn0ij0ow","0j90jq0j90jf01z0ji09306213o1bv0aq0ft0gt1fq00700b02w04q04604e04u03f02q00705v06b08e0dr03w0550bc0jm0j10pw0hr0np","0mi0mi___09n03h___06c05y1bo1r10b40ek___19w00000302d04803h03r03603e04103b05l06407c0cy03804g0a10m70pf0rs0jm0rp"],["Bree Serif",400,1,0,"0ht0ie0ht07202b0jp0850500xo1hi05w0fb0gq1mk00800c02l05603x04c03y03y02s00j04x05807q0ce03u04q0b40jp0j70pv0g30l9","0hr0hr0h90of01z0jj08705n0wx1ad04f0gl0ih1m400700d02s05403z04c04t03i02j00705f06008u0dp04h05j0cm0jr0j30ps0fs0kp","0k90k9___08o042___06a05h0xf1jt03z0fs___1d900000202604o03c03q03403904p02t05c05n09e0et04c0580b50nk0p40rs0hy0ob"],["Bricolage Grotesque",300,0,1,"0jc0jx0jc08n05a0lo07403i0sd0rs03o0ba0bo1ix00300d02h04r03p03k04604s01x02103f03k04907203503o0650dk0jf0rp0hl0l3","0it0js0ht07w04g0m606o04h0ss___0250dm0ek1i700000c01d05503v04604e04m02i01g04904i05w0ag04204u08o0gy0jw0rn0ht0ks","0ki0ki___09d05v___06003j0ti0si0000b0___1d600000602c04a03g03c04003803g03l03f03k04507503403m06b0da0kl0rs0ft0lo"],["Bricolage Grotesque",400,0,1,"0ji0k30ji09204q0lv0760470to0rs03j0cj0d71if00300d02b04u03a04604904502n01q04404905409o03m04b07l0gv0jq0rs0ic0la","0jm0k50j407q0450m206t0510tp___03r0fb0fz1gt00000b01c05b03304c04k05101v01z04u05306m0db04g05c0aa0ii0kn0rq0hk0ko","0l30l3___0a305v___06a0490uv0sr00g0co___1c700000502504e03i03e03z03a03q03904604b0520b503n04907t0h60ld0rs0f80m9"],["Bricolage Grotesque",700,0,1,"0ku0lf0jo07603h0kd06y05w0x60rs0br0gb0gz1jd00200d02505504804l04504602p00a05s05z07b0dp04r05x0ch0ke0jb0pk0j40m0","0ki0li0ki07003x0l907z06n0wy0lq0b80hf0it1dm00200c02504w04104b04m04802i00p06d06t09d0gk05c06v0ep0lb0jy0qo0jj0mh","0mu0mu___09604p___07306f0xb0sl05q0gv___17f00100501t04k03o03g03y03h04202q06b06k0880is05806e0db0pn0o10rs0hl0om"],["Bruno Ace",400,2,0,"0ob0ob0ph0bh0420jo0840430s10rs0hk0ds0dd16b00800a03904m03i04f03r03y03l00704204605x0jr04204205h0eg0j40po0ku0q2","0os0os0os0c203t0ki08104t0sp0nf0jm0eg0er16a00600c02k04l03904904a04c03x00504n04z07l0jm04m04p06f0fk0j90py0mw0sl","0qm0qm___0f904n0fv___04f0s80rs0fl0dj___0xb00000002x04602q04102z02h05203g04c04g0660my04c04d05p0ed0nq0rs04n0v9"],["Bruno Ace SC",400,2,0,"0ph0q20ph0a30420lf___04e0ry0rs0kd0dy0e214500000003204l03p04d03205102k01h04c04g06q0ld04c04d05s0g60kf0rh0n50r7","0ph0ri0ph08u0430lx___0560sw0m30n30ep0fa13500000002j04o03v03i04004q03701b04y05e08m0lj04v05206w0ge0kj0rm0nf0sj","0q20qm___0fd04n0fv___04f0s70rs0fl0dm___0xb00000002x04602q04102z02h05203g04c04g0660mw04c04d05p0ed0nr0rs04n0uo"],["Brygada 1918",400,1,1,"0i60ih0hl09t03j0hl09o03o1ar23q0bo0av0bg1mj00c00903m04i04c04305i01x02x00d03c03q04a06w01p02h05d0bp0h00ph0gf0l4","0il0j30hm0fl03x0hk0a204l13m1lx0av0du0f71kq00d00903g04h04604m05a02402w00704b04q05z09502r03x07l0fb0h40pp0gn0lj","0lx0lx___07y057______0411dr24309q0ao___1dw00000003003r03f03q03803a03m03t03v04204k08001t02l06c0c60o80rs0hb0qj"],["Brygada 1918",700,1,1,"0ki0ki0jc0hf02x0i609o0631vn1as0cc0ea0ew1kr00b00a02t04p04q04905502z02b00d05o06406k08r01y03t09y0ih0i60pg0i60mu","0jm0jm0jm0lx02y0ih0a606m1k31140aq0g70h31j200c00a02w04l04h04r05002r02k00806906r07j0ae02u05h0cw0j20hx0po0in0ll","0n30n3___08e04c______06o24m1dz0c70ea___1cn00000002b03u03s03x03d03p03u03205u06p07909u01y0410ae0nh0ou0rs0lc0sa"],["Bubblegum Sans",400,2,0,"0gs0ij0fn08r02b0hy0b805b0ub0v503r0fm0h71os00a00802905604d04r04a02m02r01304y05j07g0co04p0670db0ju0gv0qx0dw0jo","0fc0i70fc0ha01x0hs0a705r0ui0i70560gv0if1og00800802105704i04z04s02j02r00k05505w0900da0500720dz0ke0gg0pw0df0j6","0it0it___0cf02w______05k0w00uf01x0fm___1h700000001g04l03n03x03r03l04e02j05b05p07r0dx04n0630d70ol0n90rs0eh0m0"],["Bubbler One",400,0,0,"0dl0dl0dl06503t0i80a801r0o50rs01s07u08i22000d00704803s03n04i05502s03200601p01s02903k01r02503f07s0gm0or0d10e4","0du0du0du0bq02z0if09i0390oo0zq02h0ci0e721b00800a01g05604204w05m02r02p00o03203c04e07w03404307b0e90hs0pr0du0eu","0eh0eh___059058______01x0ow0rs00007y___1s400000003803h03303y03s03503n03i01u01x02b03m01w02903r0930li0rs0eh0fn"],["Buda",300,2,0,"0f20gs0f209d0420gs08402h0qx0rs03a08q0a71oi00500802s04q03w04r04w01y02e02302c02o03a04n01z02o04c09q0f90rb0dw0j4","0ez0fh0dz0cy0400hd07l03w0tb___0260cn0eh1ov00100901j05d04704z05d01k02g02303i04104s07s03704607h0e20g30qy0dz0iy","0j40jo___09606d___08m02u0sy0rs01108j___1cx00300302f03w03604303903703y03n02o02y03g04s02502w04w09d0hn0rs0f20ml"],["Buenard",400,1,1,"0g60jd0fw09w02b0gs09s03n1522040an0as0cl1re00d00l03q04s04h04v04p01m02a00f03f03s04i07f02202r0680cw0fp0pj0eg0k8","0gt0i90gc0ee01x0gv09604i10n0tj08u0dr0fi1se00900l02705g04i04t05h01p02700p04804o05w09603104308l0fd0g80p40dg0j8","0kz0lu___09k041___08104418g26y08r0b2___1ev00500d03303v03e03q03d03403803j04004705208q02b02y0770d70kv0ru0fi0qf"],["Buenard",700,1,1,"0hx0kt0fm0f601q0gt09t0551cg1ik09x0dg0f91ph00d00m03a04z04p04z04n01p02700e04z05c06a09m02j03s09g0gw0g80pk0fm0le","0iq0jq0hr0kz01z0gn0a205v17e1b30cf0fg0i01ok00b00o03d05204q05804g01r02500605i06107n0bk03e0550br0h90g10p40fs0kp","0n10nm___08p041___08905r1g11qd0cs0dp___1d100500d02o04203k03t03f03a03e03505k05v06u0bo02u0400a10lj0mo0rv0hv0st"],["Bungee",400,2,0,"0np0np___04204m0ei03h08z0ww0qp01i0m6___11t00000101n04703w04703g03q04e02a08y0970jb0mb07m0e80r80rs0r50rs0ld0np","0nn0nn___04503y___03j0940w70im01i0m3___11500000001r04503z04703x03w04801r08y09i0j30m007y0eb0py0rm0q10rs0lo0nn","0np0np___04204m0ei03h08z0ww0qp01i0m6___11t00000101n04703w04703g03q04e02a08y0970jb0mb07m0e80r80rs0r50rs0ld0np"],["Bungee Hairline",400,2,0,"0ij0it0cq07c0f20dw___00z0q6___00003p03u0y900000003a02x02z03v03m02q02r05p00w00z01401j00w0110190270eh0rs0gs0ku","0kk0kk___03t0ee0fz02e02t0qs___0000a9___10900000002c04h02403z04k03003e03z02t02t03m06n02t03204t0bk0gf0rs0ii0kk","0ij0it0cq07c0f20dw___00z0q6___00003p03u0y900000003a02x02z03v03m02q02r05p00w00z01401j00w0110190270eh0rs0gs0ku"],["Bungee Inline",400,2,0,"0np0np___04204m0ei03h08y0wv0qs01i0m5___11t00000101n04703w04703g03q04e02a08x0960jb0ma07m0e60r10rs0r50rs0ld0np","0nn0nn___04503y___03j0940w70im01i0m3___11500000001r04503z04703x03w04801r08y09i0j30m007y0eb0py0rm0q10rs0lo0nn","0np0np___04204m0ei03h08y0wv0qs01i0m5___11t00000101n04703w04703g03q04e02a08x0960jb0ma07m0e60r10rs0r50rs0ld0np"],["Bungee Outline",400,2,0,"0nq0nq___03y037______00w0rl___01h06i___3c800000003d03103m03q03403w03703u00t00w01001j00v00x0140240qt0rs0m00nq","0nq0nq___0h501w___03b02l0m81we07l0ic___3d500000002b03y03t03r03p04o03b02b02i02m03x09c02n03m06l0do0qp0rt0ms0ri","0nq0nq___03y037______00w0rl___01h06i___3c800000003d03103m03q03403w03703u00t00w01001j00v00x0140240qt0rs0m00nq"],["Bungee Shade",400,2,0,"0ow0ow___03701r___0310100q41f60ee0c6___2jk00000103705h03n04103404a02v01700p01104w06f00p01d0480b60pu0rs0n60ph","0n70n70co0bq0480mz02v05w0zk0to06f0e90fk14600000003a06j02h04303f03b03o01105405w06u0bh03p04w09y0kh05m0pk0m50pb","0ow0ow___03701r___0310100q41f60ee0c6___2jk00000103705h03n04103404a02v01700p01104w06f00p01d0480b60pu0rs0n60ph"],["Bungee Spice",400,2,0,"0n30n3___05204m0el03h08t10e0qj00h0jj___11k00000101o04b03x04903f03l04e02908008t0fa0kz06w0by0o30oy0ql0rs0ld0o9","0ok0ok___04303y___03w09x12y0p40cw0ki___0zt00000002204b04304803z03g04101o08s09w0gm0mq07s0dd0p10qf0oy0rs0mm0pk","0n30n3___05204m0el03h08t10e0qj00h0jj___11k00000101o04b03x04903f03l04e02908008t0fa0kz06w0by0o30oy0ql0rs0ld0o9"],["Bungee Tint",400,2,0,"0n10n1___06004m0ek03g08l0xe0r100h0ld___11x00000101n04803v04703g03o04f02c08k08s0hy0le07a0cm0ps0rj0r20rs0kq0nm","0ns0ns___04603z___03t0950wg0j301i0lr___12000000001v04603v04803w03x04901n08y09c0ih0m007x0ep0pp0rp0pz0rs0lt0ns","0n10n1___06004m0ek03g08l0xe0r100h0ld___11x00000101n04803v04703g03o04f02c08k08s0hy0le07a0cm0ps0rj0r20rs0kq0nm"],["Butcherman",400,2,0,"0fb0fb___05b06j___04k05u11p0lr0000ks___1ff00000201d03903803k04504r05102f05l06z0bb0g704u0c20li0rh0qo0rs0d10h0","0ew0ew___05n05y___02n08h18e09i0000lo___17800000000z03d03i03p04c04u03u03906f0900d90gc06r0dr0or0qi0qw0rt0dw0gv","0f20f2___05a06y___05w05r13709e0000kt___1g200000401e03d03a03m03k04t05202m05h06t0b10fu04u0bx0lx0rj0qq0rt0cq0g7"],["Butterfly Kids",400,3,0,"0bl09u___0fb01r___0b001o0nu0pf07b08v___2qu00i00u03o05a05c04k02l02501x01001i01p02803j01k01z03605x0bl0ob0990f2","09n0am08o1ay02w0cx09903d0na0ld07h0ep0jz2cp00c00r02s05p05b05803202801y00h02w03s06008h03904p07u0br0cj0m707q0ja","0h00ih0jy0ru01r0mv04q01i0m40vw0aa07d06r2j000000a03404q03w03003y03e04i00y01f01l02203c01j01x0340580ic0pa0b511j"],["Bytesized",400,0,0,"0kz0kz0kz03806f0kp___0770rt0rs0cc0in0lh0v600000002204v04m03l04m04c02201p0760770e10kv0770ax0kw0og0ku0rs0kz0kz","0l50l50l500906c0l1___07z0sw0ng0bp0ji0lu0uy00000002e04x03l04m04t03n02l01907s0880f20li07o0e20l60on0lb0rs0l50l5","0kz0kz___05606f0kp___0770rt0rs0000kr___0x600000001s04603x03003q03w04003b0760770e10kv0770780kw0rr0rs0rs0kz0kz"],["Cabin",400,0,1,"0h90h90hk09b03g0j109j0440tz0rs0660cl0dx1lh00900902e04u03y04g04f03d02g01f03y0490530a803n04808n0gi0hu0r50ez0j0","0hq0ip0hq0b202y0je0a104x0u50nm0580e70g81l800800902k04u04404l05602p02n00r04l05106h0cj04b0550aw0hn0hz0qv0fr0lo","0ig0ir___0f304m______04c0u70rs03b0cr___1cq00000002204b03e03x03l03b04603104304d0530ck03q04g08k0ic0ld0rs0du0n2"],["Cabin",700,0,1,"0if0iz0if08203g0jk09s05c0tu0rs06j0f00gg1j600900902504y04304h04d03i02k01a05505f06x0ei04m05k0cs0jm0il0ra0go0kp","0i80iq0hq08r02y0jg0a105z0uw0my0500g70i31i000700902b04u04904m05402x02m00p05n06108h0en05606f0dz0k20i60qw0gr0kp","0jm0jm___0do041___06c05j0th0rs03d0fj___19v00000201s04g03h03z03j03d04k02n05d05n07g0gb05605t0cr0of0ml0rs0fk0n2"],["Cabin Condensed",400,0,0,"0fj0fj0fj09p02w0j109h03w0s50rs0250d10e91tv00900902d04t04104i04e03e02f01e03s04104o09003l04e0a50hy0hw0r70dt0go","0fs0fs0es0i302y0je0a204s0sq0n302h0f00h61sf00800902i04t04704n05702q02k00q04h04v0670b804e05o0ch0ix0i20qu0dt0jq","0gq0gq___0bc041______0450t80rs00g0dj___1k900000002104903h03z03m03f04502y03y04604u0ap03o04m0a40l50lm0rs0cp0k7"],["Cabin Condensed",700,0,0,"0fn0gs0fn08b02w0j609e0510t90rs0260fv0h21s500800902504x04804m04e03e02k01504x05306b0c904m0600ef0lk0ik0r70eh0hy","0ft0ft0ft0gb02z0jf0a405s0ud0pf0330h00io1ot00700902b04s04b04o05302y02l00o05e05u07w0cz0540740fn0m40i70qx0et0hs","0hl0hl___0cv03r___05s0590sa0s800z0gb___1gv00000101s04d03l04003j03h04f02l05405e06w0e404u0690ei0qj0n70rs0d90k7"],["Cabin Sketch",400,2,0,"0if0if0hu07r04m0j009s02k0na1i40810bw0dx27300800902m04x04004m04g03b02g01101s02u04m06r01y03d04x0970hu0qh0gp0jl","0gv0hv0fv0aj03z0ii08r05b0u709t05g0ew0i91hx00300b01l05a04904u05f02y02101204n05d07f0do04m05q0bn0ho0hx0pu0fv0iv","0j30j3___0ad04n______02b0kn2aa02n0bu___21600000001s04h03b03y03n03c04e02x01s02o04i06i01y03c04t08t0l40rt0eh0n5"],["Cabin Sketch",700,2,0,"0j40j40je08h02w0j40b00360uh0x008w0ec0gj2ho00800a02605304e04s04i03a02h00n01t03g05w08701o03705a08z0hz0ph0hd0ku","0jn0jn0j608002y0je0b70750ws0t306l0hp0jd1cg00700a02x04t04904q04w02y02b00i06h07e0ba0ga05x08f0gq0mw0i10ps0hp0lm","0ku0ku___07v03h___02w02j0s40v30520eg___2iv00000001l04n03x04d03p04004t00u01l02p05907201i02o04r07c0li0q20hy0ml"],["Cactus Classical Serif",400,1,0,"0h30hd0gs08002w0i309903511j2b607h09x0ba1nr00d00803s04b04104h04j02r02x00e02y03903r06w01x02g04x0a60hd0ph0fn0k9","0gz0gz0gz0ba0300ih08p0490yf0sz05o0dl0eu1oe00700b01y05a04604j05f02a02x00r04204f05j08u02y03v07f0f10hw0oz0ez0iy","0lf0lf___07305i___08g03i17r2js04h0a1___1f100200303703n03703n03303403m04603b03k04107k02302i05y0ar0ow0rs0gs0ow"],["Caesar Dressing",400,2,0,"0g70g7___0hk02w___02b05l0qr0qm03w0fn___1hr00000001h03x04604l03v03y03z01v05205j06u0a105g0860de0op0jd0rs0db0jo","0gp0gp___0k902y___02i06a0rr0lx06h0h9___1dm00000001j03u04604k04f03w03u01l05i06908b0ck0630930ge0oj0k10rr0dr0lm","0gs0gs___0h602w___02b05k0rj0qo04j0fw___1gv00000001g04004604g03t03y04301w05105i0730ah05g0860dt0q00ju0rs0db0k9"],["Cagliostro",400,0,0,"0gf0gq0g50ao04m0ha0ae0470wj0r50990bv0e81i100a00902j04u04604m04w02302b01t03w04804z08h03504207i0fo0g50r90d90ig","0h70i70g60ai0420hv0ae0530vy13208c0dv0gy1h900a00902p04x04d03m05k02802g01f04p0540690be0410590a00h10gg0qr0f60k8","0ih0ir___0cr057___08404c0w40r50640be___19z00200402104a03h03s03n03d04103104004c05808g03b04c07f0g80hk0rs0dv0ot"],["Cairo",300,0,1,"0g70h30fx05w04n0js09c02d0ta0rs01608509u1nt00800803d04203q04b03k04e02501s02b02f02q05002502b04609c0ij0qb0f20j4","0ge0ge0ff09a03v0jv08l03m0t30ys0280c90dz1q400400901v04s03u04e04h04602h01g03c03p04e09i03703v07o0f70if0q00eg0ja","0hy0ij___05k05s0f703h02e0tr0rs000086___1ht00000102y03q03904303c03003l03v02b02f02q04j02602b04h0980kc0rs0gs0jo"],["Cairo",400,0,1,"0gs0gs0gi09f04n0ju09903i0ud0s80100by0de1ma00700802o04m03w04e03r04502i01e03g03j04309t03403g0830gh0j40qm0eh0ij","0ge0gw0fw09n03z0kb08o04c0t3___0250ew0g61ms00300901h05603z04f04q03y01v01w04a04f05e0cg03z04k0al0i70js0qq0ew0iv","0hy0hy___0a20580fn03h03k0uu0s60000bm___1h100000102c04603e04503d03604d02w03i03m04108w03503h07p0hm0m70rs0cq0jo"],["Cairo",700,0,1,"0ij0j40ij07n03h0k909905u0wp1c704t0h10i51il00600902604w04104g04203w02m01a05o05v07s0g304u05s0fu0no0k90r70hy0k9","0iq0jq0iq07z02y0ki09c06a0wo0l606j0hr0jl1gd00500902c04t04304f04p03i02m00z06506f0a70fy05906m0gp0nm0jy0r00hr0kp","0j40j4___08u042___04n05v0wk0rs0000gu___1bx00000101v04h03j04503d03d04p02e05u05y07p0gx04y05v0fw0r40p10rs0eh0ku"],["Cairo Play",300,0,1,"0fv0g60fv06g05w0j50af01v0t50rs02506k07r1dq00c00904603o04503t04c03t01f01u01s01w02002s01l01s02y06g0gq0ob0ep0hn","0fd0fd0gc08203u0kc07l0300t90r60130as0cc1qs00300b01r04v03v04y04a04901x01k02w03103o05x02l03305p0dq0i30po0ef0ha","0i80i8___05w0720ef___01w0tm0rs00006a___19700000003q03703903s03t02k03604c01s01w02002f01s01s03906d0gb0rs0fv0jz"],["Cairo Play",400,0,1,"0gb0gw0gb07b05j0ji0a40330wu0rs02309y0bw1by00c00a03s03y04303r04e04301a01w03203303b05v02l02u06j0g20hu0qz0fq0i2","0gq0gq0gq07z04x0jj08b03j0uv0om01z0c30dl1gd00600c02w04j04304n04r03d01x01503i03l04b07f03103i07o0fi0h30pp0er0hp","0j70j7___05d06e0ey03c0330wv0s500009t___17v00000103c03g03c03i03w03602w04703203303c04u02m02u0690fx0k80rs0f50kd"],["Cairo Play",700,0,1,"0hy0hn0hy08p0420k90930590xv16k03s0fw0hh1bl00800b02c04w04704h04504102101605305a05y0dw04b0570fd0ml0jc0rc0fn0j4","0hv0hv0hv08303z0jf08f0580vm0mv03b0gd0hf1b300500c02h05204c04n05703501q00q05305a06b0d604i0570du0kb0i50p30fv0iu","0iq0iq___09o04p0g202c05c0xw0rs0000g7___15u00000001x04e03l03j03z03f03w03405505d05x0fj04d05a0ex0rn0o80rs0dh0l3"],["Cal Sans",400,0,0,"0kr0kh0l20g702b0kr0860600un0rs0a40fy0h11jn00500b01x04x04104b04704802f01e05o0660850fq05906d0dq0kr0jn0rr0jm0mi","0li0li0jk0r801y0l708906n0v40la0b40h30i31g100400a02104s04104704s04002d01806806x0a30gs05t0760f30lh0jv0rn0il152","0jm0jm___0he02w___02b0620uq0rs05g0g2___1c700000001p04g03n04003k03f04k02h05u06b08o0gf05b06o0di0q90mp0rs0g50mi"],["Caladea",400,1,0,"0j40j40j40fj02b0jb08w03z15o1wm07f0bu0cx1nj00a00902y04f03v04703v03t02502103v04204r08m02d03207b0fr0is0rs0g70lf","0ja0js0gt0nq01z0jg09704t0zr1kv0820e70fp1nk00900a03204g03v04904w03002m01504o05106b0a003c04e09n0i30i60r20ft0mq","0js0js___0bl056___07s04014y2at04t0bx___1il00100203k03i03a03m03j02r03s03r03z04604t08z02g03107f0ex0pj0rs0hs0o3"],["Caladea",700,1,0,"0k90ku0k90dx0210jz08x0681ii1c20920f60ga1ig00900902c04k04404e03w04202a01p06406d0770at02w04q0cj0ke0jo0rs0hy0nq","0ka0lb0js0si0320k109h06t1aj14f08k0gq0i81gv00700a02n04l04503b04p04302e01i06o06z08f0d403p05z0ex0lj0jn0rr0i90nc","0lf0lf___098042___07j06e1km1fg0550fj___1ff00100302404203m03w03e03m03z03206b06j07a0bo02x04w0co0q30q20rs0j40ow"],["Calistoga",400,2,0,"0jm0jm0hw0lg01q0j107o0631ad17t06h0fv0ie1qe00400b02d05004j04r04a03j02m00b05u06907a0b503705q0d40jq0il0ow0g60ks","0jc0jc0ha0r60210k208e06k14u0zl08q0he0kk1o900200b02n04z04k03j04y04902a00806c06t08m0d904606v0fm0lr0jo0oo0ha0wk","0mk0mk___0g503h___06y06y1ee1ba04d0gl___1fd00000301z04a03o03v03903l04802w06n07308k0dd03l0610dk0qp0q20rs0k90ov"],["Calligraffitti",400,3,0,"0g40hj0dt0tt04m0hc0gq02b0ob0zd0b407409h1zz00e00i02n04t03q04a04h02o02f01v02502d02x04c02302p04d06v0f50ql0ed12j","0gb0gb___16f07x0hg0fg03s0pc0l60bl0ba___1y300k00g02005c04304q04y02h02r00j03d03w05808p03f04k07n0b30fy0pt0eu1df","0me0me___0h404b___0jj02c0pg0rz09k074___1iv00700f03303m02v03e03e03o04d02u02702f03104l02202l03y06n0jk0r00ey0s5"],["Cambay",400,0,0,"0gg0gq0gq0980440jd0ak03o0ul0rs04n0c00d31jt00900702m04w04604105003g02101703m03r04j09c03503q07c0g60ht0nh0eo0is","0gc0ie0gv0880430ja0aj04o0u50n004t0eb0g31ja00a00702r04y04f03o05703m02000p04f04t0650bx03y04u0a90hf0hu0my0fc0jf","0jy0l50g507y04p0mz___03q0u50rs04e0b80ce1cs00000002704g03j03k04703403w02w03n03x04p09q03903u0730g20k30rs0gg0mw"],["Cambay",700,0,0,"0i70is0i708i03j0jd0aa0580v10rs07q0f30gk1h400a00802a05304a03z05603602a01205405b0700eb04c0580bw0ji0ii0ow0fv0jz","0ip0ko0ip07n03y0jg0ab05x0vx0m708i0g80ic1fa00a00802d04w04604j05403c02400t05j06208u0en04x0620dh0ju0iv0oz0hq0ko","0lq0mw0gg07b04p0n6___05a0tx0rs05v0em0fd1a600000001w04n03k03n04403404h02e05705f07a0g704s05g0ax0mm0ls0rs0i70oo"],["Cambo",400,1,0,"0ha0j00ha08802w0j908w03y15y1we06f0c20dj1lq00b00903204j04004f03u04002t00m03v04104q08l02b02y0760fe0im0pk0g40lb","0hq0iq0hq0cf02y0jg09c04s10u1nt06y0e70fv1kr00a00a03604k03y04b04s03k02r00804n0500690a80370480960hh0ix0pq0gr0ko","0lp0lp___07304n___06y04815w2a606y0by___1cz00000202p04203b03m03903903w03o04604g0570b702k03007q0ei0p20rs0hy0ph"],["Candal",400,0,0,"0lf0lf0m006j0420jo08e08514z0rs0cu0it0je19700500b02205404h04u04e03p02g00c08008b0b10hm05g0810j60pi0j70pi0ij0n5","0l50l50l506203y0jf08a08b1320m40b80ka0ld17600400b02805104f04s05003d02c00808108l0db0i805w09n0iw0oz0j20pt0hp0mn","0ob0ob___06f058___07j08y15e0rs09x0jl___13000000201n04903r04603k03o04i02708w0900cq0jf06009q0o20ri0ph0rs0jo0q2"],["Cantarell",400,0,0,"0gs0h30gi09c06d0j40af03m0te0rs0440bc0cz1fd00900702i04q03z04904903f02f01t03i03p04h09903703r0720fa0i30rh0f20j4","0hs0ia0g907u0630j90ai04k0tf0n104a0di0fy1et00900702o04t04403c05703a02m01d04e04p0600c004004u09o0hc0ii0rl0g90kb","0it0j4___0a707j______03q0tv0rs02p0bc___17j00000002504c03c03w03i03804a03303m03s04n09n03903u06v0dz0kj0rs0f20lf"],["Cantarell",700,0,0,"0k90k90je08m0630j50af0590u10rs0at0eb0gf18x00900702505303z04904k03602p01i05405k07q0gs04s05a0ai0ix0ij0rs0ij0m0","0ke0lf0jw07c0640j80ak05z0uu0ld0ca0fu0i017h00900802e05304603c05b03302s01605l06809j0h30590610c60j30ik0qy0jd0ng","0ml0ml___09807j______05f0ur0rs06c0ef___10r00000001t04l03c03z03l03804p02l05705m07o0if04t05a09p0lw0m70rs0hy0ob"],["Cantata One",400,1,0,"0i50jm0hk0a902x0gz09d04o1qy1nu0ad0bv0dn1l300a00903a04m04s04a05302a02n00b04g04p05407k01q02p0780fj0ge0pa0ft0l3","0iy0k00hw0f50360gk09x05m1cu19u0af0ep0h71ix00800a03k04x03r05604s01t03200a05e05p06h09e02n04809j0h20g50pg0gu0l2","0ma0ma___07y042___07j0551vs1tv0990bm___1bq00100502o03l03l03w03a03h03r03d04g05505k07k01r02t07t0gm0oc0rs0fn0qm"],["Cantora One",400,0,0,"0g70g70gs08e02w0i508504z0yf0vw05s0f40go1st00500b02c05604l04t04g02v02v00a04t05205k0ak03r0540d10j40hf0ph0eh0hd","0gr0gr0g909602y0jg08805i0wn0xf02s0hj0ip1px00500b02f04w04f04m05203802l00605b05n0740cb04h0670f60kz0ix0pr0es0hq","0j10j1___08j04c___05005k10h0u800h0f6___1g500000301y04b03k03z03e03g04802w05f05m0640d404605l0ds0qq0nw0ru0fk0mi"],["Caprasimo",400,2,0,"0m00n50ma0c601r0jr07j08v1db0z50e70jo0ka1dh00400c02705004g04n04603s02j00n08e09c0bp0h204t08w0ic0p50jd0qb0k90qm","0lq0np0l80kz01z0jh0840921a90sz0dw0j60li1a200300c02g05004h04q04y03d02900608p09q0dr0is05g09r0j00ot0j30pv0jr0rn","0qb0qb___05902x___0530a11io12y0go0ji___15j00000101w04j03v03g03t03w03y02e08y0ac0dk0j305008z0jr0rl0pg0rs0ln0tt"],["Capriola",400,0,0,"0fl0fl0fl0870420hw08q04a0u90r70730dg0fb1pz00800h02k05g04r05105102k01i00704404b05e0aw03r04j09u0gm0g90mj0f00hw","0fs0fs0fs08403y0hi0950530us0mf0730er0ho1n900700h02v05e04w05605h02501200504r05506y0cw04f05f0bl0h50g50m20es0iq","0hy0hy___0a7058___04u04u0u00rr03s0e5___1ba00000a01y04i03o04603b03o04502504s0510650dz04a0580al0l50k90rs0f20m0"],["Caramel",400,3,0,"0z10z1___0gd044___08u03o0v5___0go09o___22m00b00h02z04n04o04i04702a02m01402j03q04l05z01y03b0530770er0ot0fw1o3","14o0vi___0e3053___08k05k0w80lf0m80bo___1n900900f03605204w04404302r02f00n04d05o07l0c703m05d0880ax0en0om0vi1ly","0sa0wb___0oz041___08p03b0t30j00gc085___1hx00300b02f03q03903y03h03e04a02w02j03i04i06a02803704k0710kt0re0ks1es"],["Carattere",400,3,0,"0db0cg09u0v00370cq0a302r0ws0n106o09h0c92iq00f00l03b04z05504t02l02z02c00o02802s03a04601i02e04n06v0c70nv09u0ku","0k80fs16f0lr02z0do0a504h0up0s10dw0e00hr23m00e00i03j04y04z05302y02t02900f03w04j05y08t02v04o0830az0d70n00dt10i","0kp0r1___0ox01q___09e02r10o___0cn08p___21n00a00e02004303j03j03p04b04c01m02602t03k04n01e02503s0690lz0qg0d812j"],["Cardo",400,1,0,"0fm0hc0gr0d802b0fm0az03113h20k08c08s0b21rq00c00803p04o04m05d03v02c02e00a02v03904005w01n02c04w0ai0em0ns0cq0hx","0eg0ff0eg0dq02w0fw0a404710u0sv0600cv0g31st00c00901z05h04n05905102c02b00903t04e05e07x02l03o07f0dz0ff0nx0cj0gd","0nr0nr___09i04p___0bq0451fl2et0bf09z___1as00300303003p03h03904002w03o03p03b04604s06o01r02i0620bz0n20rs0h00tw"],["Cardo",700,1,0,"0g70ii0h20hy02m0fq0am04c1bp1p70aa0av0do1of00c00903c04y04r05e03u02f02b00804404l05k08f0210330750f10f20oa0eg0le","0gs0hr0gs0ls01z0fm0ac05716t1bm0b40dk0h31no00d00a03h05104t05n03s02m01q00504v05k06q09t02x04709k0g80f40nw0et0jq","0ox0ox___0c804p___0bt05w1mq1vz0dw0cn___18u00200302p03w03k03c03y03003r03h04r05x06j0a402b03f08p0j80ob0rs0i60vo"],["Carlito",400,0,0,"0gz0gz0gz07z0430j207b03y0ve0rs06f0ca0dr1mw00300a03504o04b04105303802h00k03t03z04k08c03603y0830gp0hu0po0f80iq","0gr0gr0h908q03y0jf07a04q0uc0nb04g0eo0g41mo00100a02j04w04804k05303a02q00804k04r05s0bs0430500a30i90i20ps0fs0iq","0hl0hl___0bx04p______0470ux0rs01u0ca___1e600000001y04f03l03h04503g03n03604504904w09z03g04c0890io0ko0rs0en0l3"],["Carlito",700,0,0,"0hs0i20hh07l02x0iz06x05f0xa0sz07h0fe0h51lu00300a02r04y04g04305503902c00i05905g06g0d404a05l0ck0jk0ic0px0gb0j8","0hp0hp0hp0d902y0jf0780610x00mi0790ge0j31jq00100a02a04z04b04o05303c02l00a05s06407u0e004v06g0ef0kd0iy0pt0gq0ln","0iq0iq___0b303e___05905r0wk0rs0390fe___1br00000101m04d03k03y03x03h04l02c05p05u06y0er04o0630cv0pu0md0rs0fb0m4"],["Carme",400,0,0,"0h90h90h909x04m0jl09s03s0tw0rs0550bx0d21i100900702j04r03v04b04304102a01j03n03v04l09j03b03u0740fz0ig0r60fj0jj","0hb0hb0gc08a03u0jp09604h0t6___04a0do0eu1j000600901g05303y04c04t04302801i04a04k05p0bo04204p09s0hq0id0qw0gc0k7","0ig0ig___0bd057___04103z0un0rs0370bx___1a800000102804803b03r03m03e03z03b03v03z04u09403003z0710fr0lf0rs0ef0mh"],["Carrois Gothic",400,0,0,"0fl0f10g607k0570kx07i03i0ux0rs0130c40d21o500400a02e04n03v04e03p04p02701j03e03l04506t02y03o08q0hr0jo0r50eg0gr","0gi0gi0gi0730440l407004j0tt0s70130ea0gb1mz00000b01d05603404i04p04y02h01a04c04l05p0a903x0500bn0ji0kh0rn0fh0gi","0fl0fl___09j057___04203l0vq0rs0000ch___1k500000102704503l04003j03e03z02y03k03l04206o02y03s0930k20lm0rs0bk0hc"],["Carrois Gothic SC",400,0,0,"0g60g60g60610570ly04203k0vu0rs0100c60cg1l300000102i04o04404o03o04p02901803g03l04707902w03m08g0h40i60q00fm0hx","0gr0gr0gr09o04y0li04y04h0u81e003m0eh0ff1ih00000102l04n04704n04904n01z00u04b04k05y0aw03w04y0b30j90j30pz0fs0hr","0fl0fl___09j057___04203l0vq0rs0000ch___1k500000102704503l04003j03e03z02y03k03l04206o02y03s0930k20lm0rs0bk0hc"],["Carter One",400,2,0,"0k90ku0k90c701r0jo08p0770zr0o409g0hj0io1ho00300a01n05004n04u04h03u02j00i06x07c09d0ff05h0840ho0np0is0pq0hd0ml","0ko0ln0ko0f001z0jf09b07r10j0s50d70i40jn1e600400a02i04v04k04s05103302c00a07b07w0bq0gv05u09l0i00nz0i30pt0ip0ol","0lp0lp___0am03h______07t0yu0k00770i0___18n00000001e04904104a03h04104q01m07j0830bd0ha06508v0iq0pz0nu0r90ij0ph"],["Cascadia Code",300,0,1,"0hn0hn0hn0320580k908z02z0sy0rs03w0a20bs1d900900702y04k03n04803o04g02b01l02v03103n07902p0310550cy0i30qw0hd0ij","0hd0hd0hd03x03v0kk08e0400tm___03r0cu0er1e300500901j05503r04b04h04h02a01i03o0420570aw03f04707z0fv0ih0q50ge0ib","0hy0hy___04005s______02z0t20rs0000a6___1bw00000002j04403904103903303y03k02v03003g06702q03205u0d70lk0rs0hd0j4"],["Cascadia Code",400,0,1,"0hu0hu0i505p0410k508w04f0uk0rs04q0do0fp1cq00800902d04z03v04a03x04302i01b04b04h05p0bx03x04e09m0ja0j00r20ha0j0","0ib0ib0ib03s0420k909j05b0v216w03r0fn0i01ai00700a02l04v03z03b04r04202k01a05005f07d0ex04m05e0c30kb0jp0qw0ib0jc","0ij0ij___08e042______04f0uk0rs0000e4___1af00000002104g03d04303a03904j02t04c04h05d0d604004l09z0nh0nv0rs0hd0jo"],["Cascadia Code",700,0,1,"0i60i60ig06502x0ji08s05g0u014a0880gj0i81cs00700a02805b04503x05303g02f00t05a05j07s0ey04w05p0d60k00it0qd0hk0jc","0ip0ip0ip05y02y0jj0970650uh0kb0730hz0ke18500600a02c05504204i04y03702l00l05u06e0ax0g705e06j0fc0lf0j30qp0hp0jo","0j40j4___08103h______05k0tl0rs0000gu___18z00000001t04m03i04003a03c04r02i05f05p07n0g10510640eh0qv0ox0rs0hd0k9"],["Cascadia Mono",300,0,1,"0hn0hn0hn0320580k908z02z0sy0rs03w0a20bs1d900900702y04k03n04803o04g02b01l02v03103n07902p0310550cy0i30qw0hd0ij","0hd0hd0hd03x03v0kk08e0400tm___03r0cu0er1e300500901j05503r04b04h04h02a01i03o0420570aw03f04707z0fv0ih0q50ge0ib","0hy0hy___04005s______02z0t20rs0000a6___1bw00000002j04403904103903303y03k02v03003g06702q03205u0d70lk0rs0hd0j4"],["Cascadia Mono",400,0,1,"0hu0hu0i505p0410k508w04f0uk0rs04q0do0fp1cq00800902d04z03v04a03x04302i01b04b04h05p0bx03x04e09m0ja0j00r20ha0j0","0ib0ib0ib03s0420k909j05b0v216w03r0fn0i01ai00700a02l04v03z03b04r04202k01a05005f07d0ex04m05e0c30kb0jp0qw0ib0jc","0ij0ij___08e042______04f0uk0rs0000e4___1af00000002104g03d04303a03904j02t04c04h05d0d604004l09z0nh0nv0rs0hd0jo"],["Cascadia Mono",700,0,1,"0i60i60ig06502x0ji08s05g0u014a0880gj0i81cs00700a02805b04503x05303g02f00t05a05j07s0ey04w05p0d60k00it0qd0hk0jc","0ip0ip0ip05y02y0jj0970650uh0kb0730hz0ke18500600a02c05504204i04y03702l00l05u06e0ax0g705e06j0fc0lf0j30qp0hp0jo","0j40j4___08103h______05k0tl0rs0000gu___18z00000001t04m03i04003a03c04r02i05f05p07n0g10510640eh0qv0ox0rs0hd0k9"],["Castoro",400,1,0,"0ih0k80ih0rz02w0ih09j0491ay1si08s0bc0cs1m400c00h03804f04704g04d02z02901404304f05208901z03306j0f80hk0qk0fl0ld","0in0jm0i50t902y0ik0a105515g1f308i0dq0fs1kf00c00h03904f04504f05402m02900v04x05c06i09y02w04d08v0hn0hv0qv0go0lk","0mi0mi___0kx05s___09804o1ht22809w0bi___1dr00400b02w03o03g03p03703c03o03h04a04p05a08c02002z06t0ef0o90rs0hw0rp"],["Castoro Titling",400,2,0,"0hw0hw___0ck062___08603i1d222f072090___1bc00300402w03l03f03s03d03a03j03p03f03j03y05c01l02d0590am0mn0rs0ef0pe","0ik0ik___0bh05v___08a04j13c1ei06l0c7___19v00300402v03l03b03m03u03603j03o04f04q05d07m02k04007i0gd0ky0sh0fm0pe","0hw0hw___0ck062___08603i1d222f072090___1bc00300402w03l03f03s03d03a03j03p03f03j03y05c01l02d0590am0mn0rs0ef0pe"],["Catamaran",300,0,1,"0hb0hl0h00690410k608u02x0t90rs05609j0az1nv00800a03104g03t04i03s04h01y01b02v02z03j05s02h02y0540c50hj0nn0g50ig","0h00h00g007s0300ke07s0450tz0wf01v0dc0e71oe00300a01y05304404r04z03d02001703s04605209a03g04a08c0ft0i30o30f00i0","0j10j1___05z05h___03002z0tw0rs03109d___1fm00000302n03y03f04303f03h03k03502v03103i05i02g0310560ah0ip0rs0g50lc"],["Catamaran",400,0,1,"0hl0hv0hb08m03h0k608t03m0ua0rs04n0bh0cx1lv00800a02p04p03x04j03w04e01z01803j03o04g07s03303m06y0fr0hy0o80g50j1","0hf0hx0hf08d0330kv07y04m0ub0rv02f0dw0f71lg00300a01r05703304r04v04o02401104e04n0630be03w04r09r0hb0ik0pg0ge0jh","0i60ir___0b2057___03003n0uv0rs03h0b9___1e900000302e04503f04403g03l03t02u03i03p04d07i03003o06o0eg0jm0rs0f00lc"],["Catamaran",700,0,1,"0j10jb0j107j0360k708t05q0wa0rs0a20fk0h51gb00600b02904z04504j04c04102201105k05t07s0fa04t05s0dj0kb0il0ph0hv0lc","0iq0j80iq07d02y0jn0940680wg0m909w0gp0j21ew00500b02h04x04804m05303f01x00p05y06c09d0fj05806i0es0k20iy0pr0hq0kp","0lx0m70ig06n0410n503005o0wf0rs05g0fd0f21ab00000202004f03l04503h03q04602905j05t07k0fj04o05r0cg0pe0lf0rs0jm0nn"],["Caudex",400,1,0,"0jf0jf0jf08o03j0iu0bh03w14v1ik0b00ai0bq1i800a00703204g04603u05502h02402303v04004o06i02203606d0ez0h70rr0gh0km","0ix0ix0hx08l03z0ii0aq04r11c0u40930cw0f01j500900801p05204804l05702702702704l04w05s08902y04b08q0hf0h20qy0fx0jw","0jw0jw___0ah04p___06803w1371is07r0ad___1bk00000402s03w03h03604403b03803q03u04204s06f02603806a0cy0lg0rs0ge0pr"],["Caudex",700,1,0,"0jm0j10jw0d202w0j10az04p14h1dh0ak0cg0dp1jm00a00802g04s04304f04b03802b01r04o04w05s08d02r04308g0ib0hw0rc0g50kr","0js0js0ja08r02z0j70an05i1280kd09u0ef0gq1jh00900801t05004704k05802t02i01905705n06p0b703k0500ay0j30hz0qt0hs0lr","0ks0ks___0dw041___05s04s13i1dq0990ce___1cr00000302b04703g03q03g03a03y03c04o04y06008f02v0490830im0mp0rs0hw0rp"],["Cause",300,3,1,"0hb0hb0hw05c0570js08602l0pr0rj01s08e09s1mq00700802l04n03t04a03x04d01w01y02g02n03905902e02y04q08t0hd0qt0gr0hw","0ge0ge0gw08203v0jr07h03r0q0___0130c50dl1oq00200a01d05303x04d04v04302701l03e03u04s09803k04a07d0dt0hh0q40ff0hd","0hb0hb___06005s___02w02m0q80ra00008h___1i300000002b04103h04103f03803k03q02g02m03505402d02y04z0920ih0rs0du0ks"],["Cause",400,3,1,"0hc0hc0hw08s04m0js08503a0ql0q902l0ao0bt1m500600902804x03y04a04204602201q03403c04607503103r06b0d40hl0r60eg0ih","0hk0hk0hk07w03x0kb08a04b0rf0ka04a0d50ep1kt00500902c04t03w04604v03o02601k04004d05i0ba04004x0920fz0i10rk0gl0ik","0gq0h1___0a5057___02w03b0re0q10000an___1ho00000001z04b03i04203h03b03x03a03403b04007103003q06j0cm0jq0rt0da0k7"],["Cause",700,3,1,"0j20j20jc0770420js08805g0vq0o509m0ex0gd1iq00500b01t05004704g04g03o02e01d05805i0700dk04j05r0c80jy0il0r90ih0k7","0jm0im0jm07w03x0jj08b0620w60hq09t0gd0hl1fi00400b02004w04604g05203a02c01705r06508e0f005206i0dr0k20ix0rm0im0kl","0j20j2___07a04m___02w05h0wm0of00z0et___1ch00000001k04f03p04603j03h04h02i05805i0700dl04i0610ca0nr0mk0rt0g60mi"],["Caveat",400,3,1,"0e60fv___064034___08k03c0os0wx04x09l___1tz00a00l02p04z04x05q03702l02400r03103d04506m03004206v09o0cn0ma0ch0fb","0ew0fv___0b802w___05i04i0q512307y0cj___1mw00900i02x04x04v05m03c02h02200w04304i06009q04505r09e0cj0dc0m50dg0hb","0gs0ij___0fb03h___02j0330n50ys05k09m___1p100000301r04f03k04903r03y04d01p02x03603q06602v03y06r09g0i10qm0c60jo"],["Caveat",700,3,1,"0fn0hf___09002d___08f04i0rp0wu07h0c9___1rb00800k02n05a04c05v03l02b02900r04704j05o09e04005e09e0d10dn0n40e60hq","0e70g3___0gk02u___07x0580ry0mc05b0et___1m200700e02d05104y05n03q03601x00f04s05707y0bj04s06y0b80ec0dm0mv0e70g3","0ha0jl___0f802b___02w0450qq0wg0640c6___1oe00100301x04f03o04b03p03x04b01g04004905108f03r05a08y0co0j70qi0du0kq"],["Caveat Brush",400,3,0,"0eh0f20e609i03h0hd09b0560t714a02u0gs0ib1um00900a01y04z04o04z04902o02q01204p05a06q0a704i06x0ek0lb0gs0qm0cq0hd","0fr0fr0fr0md02y0hh0a10620u20um0610i60l01kg00a00a02s04u04j04y04f02h02j00r05f06809v0dd05h0900gb0n00g70qv0cs0ip","0hk0hk___0b503i___02x05h0u516s01o0gt___1nj00000101i04h03y03l04903w04102305305m0750b704o0740f70ow0nh0rj0en0i5"],["Cedarville Cursive",400,3,0,"0fd0hf___0y504q___0gj02l0rd0p906h082___1uo00f00j04006q04u04m02g02401u00a02802l03q05r02502r04m08l06k0kt0a10pe","0bu0hs___1d003y___0f603z0sa0h50660c1___1qx00i00j03907205i04g02h02j01f00303b04306009603b04g08o0cd0930lv08w0np","0g60hw___0hd02w___0g602a0pn1d305c084___1vb00700702u04v04b04q03f04b02q00602302c03404q02102l0450820cc0mr0ae0hw"],["Ceviche One",400,2,0,"0r21an0lw0oy01q0jl06c08e12u0i90m80hb0ho1fw00000901i04p04w05004e04002h00l07i08p0bm0ii05v09d0g30li0ii0ph0lw1ip","14y1qp0j8___0210k106i09513e0j20rs0fa0j115l00000902904t04w03t05403u02c00j08h0a40hb0lb07c0bk0iy0nu0ii0pn0j81qp","18c18c___0az01s0n703n09b15m0ha0rs0hz___19h00000201d04b03x04b04f04d04600x08i09x0ed0l106p0aa0i00ov0mo0qo0ql1ff"],["Chakra Petch",300,0,0,"0hd0ij0gs04r05s0j409a02m0tl0rs01709j0av1l300c00703v04003m04403t03v01x02502l02n03a05802e02l04b0dt0i60rs0gs0j4","0ht0is0gt05j03y0jg09503x0sy0rs0150cr0es1ms00900902v04n03r04b05103102m01403j03y04t0c703j04607f0h90iy0r10gt0is","0j40jo___05606d0f4___02o0u70rs00009k___1g800000003o03b03404503702w03e04302n02p03103z02f02g04q0by0l40rs0hd0k9"],["Chakra Petch",400,0,0,"0hy0ij0hd07s0580j409a03c0u011f04x0bm0d01jq00c00703d04f03o04704203k02701v03a03d04709f03003d05u0ha0ij0rs0gs0jo","0hv0ic0gv07e03z0jf08l04a0sy1km0130e90fr1le00600b02p04x03u04b05202z01u01r04504c05k0dg03x04j0930ie0iz0r10gv0ju","0jo0jz___09605s0f7___03e0ui0rs0000bm___1eu00000003503r03704503902z03w03h03d03e03x06q0320330680kj0mv0rs0eh0ku"],["Chakra Petch",700,0,0,"0k90ku0jo06x0420j409e05o0vp1hh0ap0ha0ik1fh00a00a02m04v03w04904b03902n01g05l05r07v0i204w05p0e90o80jo0rs0j40m0","0jo0kn0jo09o03y0je09e0660wf0ll0bx0ig0jh1do00700b02804z03z04804z03402l01906006c09r0hy0570690fn0nj0jq0rr0jo0mm","0m00m0___07k04n___04205r0w823a01f0h2___18t00000102d04d03b04103b03704n02k05r05s07c0je04y05h0e00sa0ol0rs0hy0n5"],["Changa",300,0,1,"0h60h60g206r05j0l307503m0wz1850130c50dg1jt00200b03s03t03w04g03q04g02n00p03l03m03u09z02z03308q0jo0k20q20fi0i9","0gs0hs0gs07r04y0l906o04h0w40w201n0en0g51jy00000b01p04y03y04n04504p02p00q04d04j05b0ca03o0470b40ju0kn0qi0et0hs","0ig0ig___09y05r0fb___03u0wz19a00g0ch___1d100000002l03z03e04503e03703k03l03u03u0440c403803b08z0ns0mt0rs0co0k6"],["Changa",400,0,1,"0hn0hx0hc07d0570ku07404h0xr1d80250ea0f31ie00300b02n04m04104k03g04r02q00o04f04h04s0d503l03t0bv0kv0kb0q20gs0j3","0i80i80h807304k0l507g0580wl1ld02o0fp0he1h600200b02v04q04703j04a04j02m00q05405a06o0ee04b04t0dm0l20ki0qj0g70j8","0j10j1___09i05r0fx02804q0wx2f700g0el___1c200000002b04703f04203c03904203604p04q0580f403y0420cj0qo0oe0rs0d90kr"],["Changa",700,0,1,"0ij0hy0hy05w02w0it06j06y0zf0ss09m0jt0kt1h600100c02d05f04r05104f03t01n00206u0740bh0gt05d08d0io0nh0it0nq0hy0jo","0im0im0im08w02y0jc07307g0y20lt0a00ky0lm1de00100b02g05a04n04w04z03q01i00107607q0di0h90630ak0it0na0j10nt0hm0jl","0n20n2___06p041___0290830xk0rs04h0k2___14m00000001t04e03r04203e03e04k02h08108h0f30kn06p08q0pi0rq0qp0rs0kr0os"],["Changa One",400,2,0,"0ml0mw0mb05j02y0lv07108z0zr0rs0b80l40lx18700200b02104q04b03w04l03w02v01708w09e0gs0kx0760cx0lr0r40lt0r60lq0nh","0ll0ml0ll0em02y0le0770940zn0m10bq0la0n516900100a02604n04e04i04m04a02d00j08y09o0ho0kg07e0g70li0qd0l20qr0ll0ml","0nn0nn___08p036______09b0z50rs06k0lm___13700000001p04703x04303f03r04d02d09409q0i80m307h0dc0r90rq0r60rs0lc0os"],["Chango",400,2,0,"0sq0sq0sg06503j0k607f0ck1im0pj0or0ks0lo0wa00200b01z04v04r0450510380280160cd0d30j00qk06z0ev0kv0rg0jq0rs0p80tb","0se0te0rv05z0320k408a0co1hn0je0o10kw0m50tq00100a02504r04q03l04w03u02g0150cj0ep0ln0r507e0fk0l70rg0jr0rq0pc0uf","0vd0vd___05v03h______0bl1ba___0ng0l6___0p600000001k04604903k04204104b01u0ee0gp0no0tl07k0fd0qw0ro0ps0s30sh11r"],["Charis SIL",400,1,0,"0j00j00ig07402l0j208o0471631sm0930bx0cz1kj00a00803404g03w04f04303h02o01603y04a04x08m02a03b0750fm0i20qj0gp0kr","0ia0ia0ia0hn02w0jj08704u1280r10790e10fz1lu00400b01q05603y04g04x03g02q01004k04z06109i03404a08o0h00i80px0gc0j8","0ks0ks___07s042______04h17q1yt07v0bv___1dr00000002r03y03a03s03803a03u03p04d04j05809h02d03e07u0fv0oe0rs0gr0pz"],["Charis SIL",700,1,0,"0jn0jn0jn06q02b0ij08o05l1bk1ff0b80eh0fx1ii00800a02s04s04a04p04c03602w00d05d05p06m0at02p04h0a70ir0i00pj0hx0lz","0jo0jo0j60kq01z0jc09306917a17309g0g00hh1ha00700a02x04p04804l05002v02t00805z06e07u0ct03i0580c80jg0i30pu0hp0ln","0mj0mj___06q04x______0641gp1lb0aj0eg___1bh00000002d04203i03v03703h04603705y0680700c402w04q0b30nd0ph0rs0k80rq"],["Charm",400,3,0,"0db0eg0fm0i601r0m50cq02n0td11f05909i0ad24v00h00c02t05m04u05w03203401800f02e02p03804u02502p05n0au0e60mk0bk0j3","0gj0lq0g20oq01w0mj0ch03x0t40un09m0cn0ek1vq00h00c02u05d04o05m04403201100b03g04005b07q03604d0930ek0ek0mx0bc0ok","0gs0j40gs0g901r0m008402r0vn1qf06s08u09t1x100600a02p04q04304m03e06201d00d02j02s03905q02402l0540ax0ja0m30fn0lf"],["Charm",700,3,0,"0h00o70ig0k70160m20co03n0wt0ya0cz0b40cr21300i00d02h05v04y05y02z03601300h03e03p04m06s02s03i0830e30ei0mh0d90os","0pk0z00g30nh01w0mh0cl04h0ug0om0go0d60fz1r600i00d02n05j04q05p03g03m00y00c04604m06b09r03p04z0ba0fk0ei0mv0cb1d7","0ij0wf0hy0l801g0m008403q0y61hd0bg0ar0cn1ub00500b02b05204804n03j06201800d03i03s04o07u02r03c0700e10jq0m40gs0yq"],["Charmonman",400,3,0,"0dm0th___0yx03z___0h00260qr0ud06y06d___27e00j00l03x05h05805k02c02x01100802002902r04b01t02b04607e0a80l60bx0q3","0uq10v___0h7044___0et03q0rd___0j80ax___26c00h00p02l07304z06603a01o00m00c03703v06208q03804d07s0ba0bd0jb0ge0ws","0gi0jo___0rc04n___08702g0sv0wv06y07d___1j300a00o03h04303d04502q03m05600a02902j03304l01y02f04007j0he0ow0cq0ob"],["Charmonman",700,3,0,"0er0ww___0xo03e___0h00390y30vl079086___23c00k00n03e05p05g05k02k02s00y00903303b03w06202703105w0b60b00lk0dm0rs","0vl188___0fv036___0f504g0vl1fy0j80aj___1ze00g00t04d06p05g05103800u00o00b03v04k06o09o03b04r09f0cn0az0j40er188","0gs0jz___0qx03r___0dw03p0z118s07g0a0___1ia00h00p02x04903l04503103s04o00a03g03s04b06h02f03a05l0b60ij0ow0dw0ow"],["Chathura",300,0,0,"0cf0e70cf07j05x0jn06q01u0mr0rs01709009a1u200100a03y03o03804904603y02002b01r01z02803f02102b0460av0j00rg0cf0es","0db0fc0db0710430k906e03g0on1tq0160ec0f11uf00000902r04i04603e04u04a02g01803903n04l08y03n04l0a40ij0jq0qz0db0fc","0es0fd___05606i0ev___0240pf0rs000099___1mm00000003m03902x04503t02p03e04002102502f03g02902d04v0ao0kb0rs0d00fd"],["Chathura",400,0,0,"0dl0es0d006t05c0k306k02h0o00rs0170ax0bf1tk00100a03k03x03e04a04c03u02a01x02d02n02w05d02n02x06j0h80j50rg0d00fd","0ed0fe0dc06v0440k706h03x0p81ms0150f70g41ta00000902m04p03404g04w04402m01303o0420560aw04504y0bj0je0jq0qz0dc0gf","0fd0fd___04805x______02q0px0rs0000b7___1lt00000003503n02y04303x02t03w03d02n02r03505t02v02z06u0j60m30rs0dl0fz"],["Chathura",700,0,0,"0dl0fd0dl07s04q0k306k0330pf2rc0150db0dl1sn00100a03704b03f04c04k03m02f01o02z03903n09303603h08w0j40jj0rf0dl0fz","0dw0ev0dw08j03z0jl06c0480q51h00130g60hc1sw00000802f04n04404h04x03g02k01004104d05p0bs04d0550cq0k40ju0r10dw0fv","0fz0fz___07g04q______03d0r22yt0000d7___1l100000002r03y03104303y02w04802y03a03e03u0a503f03l08r0od0n50rs0dl0gk"],["Chau Philomene One",400,0,0,"0eg0f00eg07402b0ih08q05j0wl1f00130ho0jg1sj00700a02h04r04904k04f02x02e01j05a05k0690cn04m07o0i60r10ih0rq0da0gr","0ef0fe0ef0bt01x0jp08705v0w60fk0310il0kc1pz00300a01a04r04604g04y03v02e01m05k05w08o0cm05209c0ic0p40jd0rr0dh0hb","0gr0gr___06802w___07005k0wb1i800i0hd___1kc00100501z04803g04003k03j04602p05e05o06k0dp04q06s0k10rp0p00sa0f00hw"],["Chela One",400,2,0,"0gs0ij0g707t0160k905906d0vl0ug0380jm0jp1sv00000a02904x04l04l04d04202100s06b06r09a0df05n0a50kb0q60jb0qm0f20ku","0hd0je0gc0uj0220k604r06y0ux0eh0bl0kk0m51hk00000502304y04s03l05704702200t06m07v0ch0h006j0ce0k80pl0jo0qo0gc16v","0l40l4___06601r___04w07t0xl11501p0kq___1gg00000301t04704403j04003v04602107k08p0br0gm06t0bo0op0s20o40ru0hl0mv"],["Chelsea Market",400,2,0,"0jn0hx0kt08a02w0le07t05a0t50u50930ej0f81g600200b01r04v04104d04104o02h01a04r05e06u0cx04m05s0as0jb0j90r60hc0le","0jy0j00lu0ax02v0kr07v05v0td0sn0ci0fg0gp1ek00400b02i04j03w04604k04s02a00o05905z07z0en05606h0co0kc0j90qr0i20lu","0ij0ij___0dq03h___02b05h0uc18106g0en___1c700000001i04i03q03z03k03h04r02b04v05j06u0dn04q05q0at0lc0m20rs0gs0ob"],["Cherish",400,3,0,"0u510w___0fk03i___02x02f0tx___0fv080___2hr00000502o04l04x04l03g03a03900x01v02o03q04z01k02903s05c0eo0p60en13t","12j11i___09l03k___0aj05a11x08a0rs0d4___1if00i00e02304u04x03z03q03203g00w03w05d07r0bd02w04g07h0au0gc0pq0zi1nt","1kq1kq______02w0nb08403012v___0rs07c___1my00700m02q03g03a03t02z04d05i00v02603704c06701j02603y05m0mu0pq0n52ia"],["Cherry Bomb One",400,2,0,"0le0m90jo07p0160ii07j08h0xi0ke0fb0k00kq16f00200901r04l04p05604603902q01407y09v0gv0kp07c0az0ig0q80i00r90jo0pg","0n90nq0ht1hs01z0ij06m08t0y809y0dw0j80mh0z400000801i04g04w05804v03502m00x0830ar0hr0mt07z0dq0ir0pq0hz0ro0js15j","0ph0ph___08p01g0na___09v11r0hw0e50kj___12200000001c03x04804903h04n04b01n09d0bi0jf0nm08c0c60o20r80oh0rt0n50sd"],["Cherry Cream Soda",400,2,0,"0ml0rs0jo0gd02b0g708405g13i0uz0jx0d80g01dl00500c02d05l04t05i03y02l02h00205705t07k0fl03l0470860en0fb0of0j40sd","0n50rl0jp0ko02y0fr08706612s0qm0k50e60ik1am00500b02p05l04x05l04002z01j00105t06h0970hi04604w09t0fi0f80nw0jp0sl","0th0th___0c602w______06h15s0vx0kf0di___11700000001r04i03i03w03h03g04f02u06206r08m0hu04204q0980i00lz0rs0oa0wd"],["Cherry Swash",400,2,0,"0j20kh0j20kg01q0jm08o03q0ug24i0b40c60d11it00b00m02p04p03g03q04904j02501e03n03u05x0an03903l06c0cy0j20r40gq0n3","0i90kp0hr0x301z0hk08804j0th1oz0g70ej0gw1kx00600p03104s03w04e06202702g00604c04y07r0co04004l0880fd0h60p30gr0wj","0po0tf0ig0dp02b0mm07003u0um2aq0ej0c30cr1fx00300c02703w02l03204704904703103o03w05s0av03a03p06p0bk0np0rs0lc0wv"],["Cherry Swash",700,2,0,"0j40ku0j40xs01r0ij08405b0uf1j30d80fz0gz1gk00700p02b05303v04i05003502m00e05405z0a90f004q05b0aa0i30ij0pn0g70ml","0j10nb0ij19b01w0ip0820610u50py0dw0gz0j01d100600n02g04x03p04705g03a02v00705q0750bm0fw0560640bx0is0ic0pt0h4121","0yb10x0ig0wy02b0mn07005n0ul19w0hv0fu0gi1cf00200d01o03z02n03p04603y04w02f05g06b0bn0hm05205o0aa0je0ou0rs0mi1yx"],["Chewy",400,2,0,"0gp0ha0g40f201q0lb0ad06b0sm0g903s0hk0jb1mz00900a01904k04h04o04d04b02m01105p06e08u0eh06108s0i20or0jr0qp0fj0jk","0ik0j20gm0yb01y0l80b706u0sw0fg0880i50ku1fp00a00901v04j04d04l04x03v02d00t0670730cg0ft06l09y0j40oz0js0qq0fn0pf","0hx0hx___0bc01q______06r0s80he0250iy___1i000000001404204504c03q04504h01t06b06x0ac0f406p0ab0k20qc0nz0rq0g60k8"],["Chicle",400,2,0,"0sw0sm1k20m50360j30a105h0rh0t50gc0i70i21zg00700c01p05604r04h04b02y02m01b05605u08f0cg05b0830hh0px0ii0rd0fm1d4","1ir1ep1ir0jl07m0i10ag06b0r60iz0nt0ia0jo1fm00700b02h05904t03n04x02k02n00z05x0700ca0jg06h0a20hs0pp0hm0qu0se273","0go0go___0qf015___05s0600tw0sj09j0j0___1sd00000301i04c04903r03f03p04d02d05f06208n0cp05j09i0k70r90pj0rw0dt0ws"],["Chilanka",400,3,0,"0ii0j30ii08v03h0jo0b00330qn0r009309p0b41j200a00602b05503u04h04a03h02e01h02w03404807102y03d0520b40h20q40gs0k9","0jk0jk0j308w02y0k70b80480rg0l909t0cr0ec1hd00a00602f05003q04b05003502f01b03x04905v0b804104j06u0ev0hy0qq0hm0lj","0k80k8___08404x______0300r20rp05c09l___1by00000002b04g03204a03f03304303402v03103y07202w03804v0a10jb0rq0hx0n4"],["Chiron GoRound TC",300,0,1,"0hd0ij0gs06g04x0j407802y0t70qk03h09e0ba1jr00300902k04q04004e04d03d02601w02u02z03k06702k02z04z0bg0h20r70fn0j4","0hr0j80h907703y0je07g0450su0iu03c0ch0ea1jv00200a02o04q04404k05902g02n01203r0460550a903m04907j0f20h70qu0fs0kp","0k90k9___05d06d______02z0sy0qk00j08y___1cn00000002b04003d04503h03403u03k02v03003i05w02k02z04x09k0jp0rs0hd0ml"],["Chiron GoRound TC",400,0,1,"0hy0ij0hn09904n0j40780450va0py0660cr0dw1hu00300a02605004304h04h03802h01l04104605109z03f04107v0gu0hy0ra0fn0jo","0is0is0hs07o03y0je07f0500vn0kr0600ee0fz1hx00200a02f04z04904m05802g02n00x04p05106a0cg04604x0a30i00i00qx0ft0kr","0jo0jo___0ac058______0460uv0pv03l0bv___1ag00000001v04e03g04603i03904c02v04204904z0bh03j04407e0gu0l10rs0fn0ml"],["Chiron GoRound TC",700,0,1,"0jo0k90j407703r0j60790680xc0nl0a50gb0hr1dz00200a01u05404a04l04j03502o01b06206a0840g004y05z0dt0lw0ij0rd0ij0m0","0jt0kb0it08303z0jf07g06o0xg0gw09u0gm0is1by00100a02405204c04s05602l02q00r06c06r09t0gd05d06m0eg0lr0i40qx0it0nr","0m00m0___07v04n___05806a0ws0ne0560fy___16000000101j04i03m04603m03f04p02906506g08j0i80580660dk0pu0n80rs0j40ob"],["Chiron Hei HK",300,0,1,"0f70fs0f706m04o0ik08v02f0rs0rs03h08u0aa1so00900703s04b04904205602x02m00802c02g02w04f02502j04g09r0gm0os0em0gy","0gd0gd0gd08o0430jt08v03u0t90em01p0cx0dx1qb00500a02904z04b03l05103x02t00i03k03z04u08203d04808b0fl0if0pm0fd0he","0hy0i8___05v05s______02l0rp0rs00008l___1j300000002f04303b03u03o03703q03k02j02l03004j02902r04v09n0j70rs0fn0j4"],["Chiron Hei HK",400,0,1,"0gd0gd0gd08d04o0ix08k03l0ui0rs03o0ch0d71px00800803604r04d04405603002j00903j03m04907q03203o07o0g40hd0ov0f70i4","0fu0fu0fu08d03y0jd08a04h0uu0qb01o0ev0ft1pl00300b01v05904d04x05b03202j00504a04i05n0au03s04o0a70hi0i10ov0eu0ht","0hx0hx___0a8057______03v0ub0rs0000cf___1gm00000001x04f03e03y03m03a04a02y03t03v04h08l03b0410830i80lj0rs0db0k8"],["Chiron Hei HK",700,0,1,"0i20i20hh0720430jh08305l0wn0vp05w0gi0hp1kz00500a02n05204f04305203f02a00f05j05m0720ds04n05s0e20l90iw0pb0gb0j8","0ic0ic0hb06m0430jc08h0650wc0xu05w0h40ix1hp00500b02o05404k03s05903h02d00605y0690900en05706p0f20ky0im0ou0ga0jc","0j40j4___09604n___07605y0vs0rs0000gp___1bc00100301n04j03l04303j03f04o02a05s05y07n0fl05106c0ei0qp0nr0rs0f20lf"],["Chiron Sung HK",300,1,1,"0gp0ha0gp07t02w0i009d02w1312eh07h0950a91pz00d00804004604804j04n02h02w00c02q02y03b05m01n02604e09b0gw0oy0ez0k6","0g90ia0ia0fp0320i309j0450yh1n005x0cx0ez1pd00a00903k04m04b03g05c02u02t00d03u04905a07z02s03q0760ej0hg0oo0f80ia","0jt0jt___08o04l______0381ao2rw03p094___1fw00000003k03e03803o03503403l04502z03903k05d01p02405409s0ol0rs0fi0op"],["Chiron Sung HK",400,1,1,"0h00hl0h007s02y0hz09903c15x23v07h09x0bi1oz00d00803w04c04b03x05c02f02j00h03703f03s06601q02f0550ba0h90pe0fu0jx","0fu0hu0gu0cu02z0hm09c04b1031hl0690d40fp1q100a00903f04p04f04o05c02702f00504404f05h08502s03u07m0fj0h40o30ev0it","0l50l5___07e05a___05p03q1ex2gb04v0a4___1fp00000303g03i03e03803r02t03p03w03f03r04206a01u02e05z0bq0ov0rs0h10oo"],["Chiron Sung HK",700,1,1,"0im0iw0im06p02c0if0950591h01gb09m0dn0fh1mi00b00803c04l04h04105302u02b00m04y05b05t09102503t09a0ii0hx0ps0gv0kx","0it0ht0it0b001z0ij09g05w18r14c0730fk0h71mj00800a02w04v04f04q05602j02i00705h05y0720a803304u0b90it0hy0p10fu0js","0l40l4___06o04n___07w05t1u21o305y0dg___1ey00100302104103n03w03c03j03v03c05105t06709l02703o09p0m80ph0rs0ij0ph"],["Chivo",300,0,1,"0iu0iu0iu08d05l0km07n03v0vr0rs0440ca0cj1hj00400a02e04q03y03q04h04102701w03q03x04l08i03703s07m0gu0j10ro0hn0kl","0il0j20il07k04w0l608304n0ub0n305c0ej0es1hb00400a02h04m03w04a04f04002f01c04i04q05t0bu04204v09s0i90j10rk0hl0kj","0iu0j4___08y06h______03z0wk0rs00w0cd___1cw00000002604a03k03f04702w04003b03w04004o09z03803v07w0ir0lx0rs0fw0l6"],["Chivo",400,0,1,"0jf0jf0j408405b0km07n04i0wq0rs05o0do0dv1gp00400a02904t04103r04j03y02c01s04d04m05e0ae03n04e09r0iz0jg0rr0i90kl","0jg0jg0if0730430ka08e05a0vx0mw05c0fn0gi1h200300a02h04v04703c04u04102m01305105d06v0dj04e05c0c60k10jp0qy0if0kg","0jf0jf___08z05b______04p0xp0rs00v0dv___1bk00000002004e03n03f04502x04903104l04r05h0ck03p04j0a30me0mk0rs0fw0ls"],["Chivo",700,0,1,"0l60l60l606p03j0km07n06w0zz0rs0a50ho0i31dy00300a01y04x04803w04r03n02j01j06m07008p0gl05406u0gv0p20k40rs0k00md","0kb0kb0kb06i03k0k207o0740zv0my0930it0jl1dd00200b02904z04e03j04x03y02n00t06v07a0a20gp05f07m0hg0nt0jo0qq0jb0lc","0m20m2___07g044___0650730zo0rs01v0hx___17600000201p04i03q03i04503304k02i06z07d0ah0in05g0760i50rs0os0rs0iu0nj"],["Chivo Mono",300,4,1,"0iu0i80iu05c05b0kl07n03t0vi0rs04q0c40cn1bk00400a02o04u03s03m04a04502601y03p03w04n09l03403n0730g80jf0rq0i80k0","0ie0ie0ie03z0430kb08d04r0uv0n604t0eg0g61ax00300a02s04u04103904o04702i01604l04v06f0d004104q09q0hv0jp0qy0ie0je","0iu0iu___08q04p______03x0vv0rs0000ct___1bw00000002704e03i03d04602u04003d03t03x04l0ae03a03t07w0k90n40rs0fb0kl"],["Chivo Mono",400,4,1,"0j40jf0iu04004p0kl07n04g0wi0rs04t0dk0e81b000400a02h04z03w03m04e04102a01t04c04i05h0bn03i04608o0in0jj0rr0i90k0","0jf0ix0jf03v0430kb08e0580vy0nu06f0fi0h51aj00300b02p04z04203904p04402j01405105c0750e804c0520ba0jp0jr0qz0ie0kg","0jf0jf___09b044______04l0wz0rs0000ee___1ar00000002204g03l03d04302w04903304f04l05e0ch03s04g09x0nl0nr0rs0fw0l6"],["Chivo Mono",700,4,1,"0l60kl0l605n03j0km07n06p0zm0rs0ad0hk0id18v00300b02405404403r04n03o02h01k06m06v08y0hg04x06b0g90ow0k70rs0k00l6","0ka0ka0ka08k0320k207o0721010u20bc0ia0jf17g00200b02f05604a03f04v03y02k00u06t0790b60hj05a0730gz0ns0jn0qq0ja0ka","0kw0kw___09r02y___06506x0yg0rs00z0ia___16q00000201r04l03q03g04303204k02k06p0720980ia05h0730iz0rs0pe0rs0i90md"],["Chocolate Classical Sans",400,0,0,"0g30g30g307x0410iz08m03k0un0rs03o0c20cz1q100800902m04w04904p04a03g02s00e03i03l04907r03103l07e0fq0hf0ox0ey0ht","0gr0gr0g907e03y0je08c04g0u60nj01o0ei0g21pa00600a02q04x04f04v05502u02d00404a04i05r0am03w04n0a80hr0hy0ox0fs0hr","0i50i5___09z05a______03u0ul0rs0000cj___1gl00000002504e03g03f04b03c03l03603t03w04i08v03b0410820if0la0rs0e10kh"],["Chokokutai",400,2,0,"0is0i80jo08f02w0gt03m0421g51j40at0d30cv1in00000403n02t03w04h04v02e03402i03704v06q09502502q08z0gm0hd0rs0eg0le","0iq0iq0iq09b02z0hg03l04t16v1hx0ah0f00ft1hd00000102z03903v04g05n02e03702004205k07c0b802p0440as0hi0hw0rs0es0kp","0km0km___0a504v______03l1aa2gq08u0cp___1c900000003902502r03q04403d04m03u03a05807308u02502f09v0jf0rq0rs0d60qd"],["Chonburi",400,2,0,"0nn0nn0nx07c02w0jm09c08638w1710hu0eb0fo18t00800902g04a04f04p04003n02701m07308608h0a901o04e0dv0ku0j10rs0jm0qj","0of0of0mz07903x0jg0a008o2gq0x30eo0g10hx17r00700902m04804b04k04n03e02701f07v08o0970b002d0600gd0nr0iz0ro0jk0qe","0o80o8___07y041______08b3gz18i0bl0e6___16400000002503r03v04103j03s03x02u06i08b08q09r01l03s0du0qy0p20rs0g50tf"],["Cinzel",400,1,1,"0lf0ij0nq0ec0420nb08602w1461qv0dc08b0811fz00300503703w03p04f03c03p04201b02t03303j04r01k02804k08t0hl0ok0hy0q2","0l70i80m60cq03y0ne0890480z31cw0cq0bp0c01ek00200603504003q04e03r04003n00x03y04g05a07402o03u0780ei0i10o10gr0pm","0ig0ig___0g104m___09a02y13g1sb06u082___1dn00500402z03m03d03y03703c03g03o02w03503k04l01k02b04o0960jq0rs0ef0os"],["Cinzel",700,1,1,"0nn0mi0py0ix02w0nb09i0671yx16d0e70cj0co1cg00400602i04204504k03m03v03l01805j06706p08l01z03o09n0le0ks0q50lc0ro","0mq0kr0nq0j003y0nf09h06m1ek14o0e80ex0fu1au00200502n04504204n04204403900o06806o07g0a102y0570cf0md0j60p10is0ro","0n20n2___0jl057___0ap0681yy18b0an0cj___19n00500502c03q03r04303h03l03m02z05w06906t08n02103q09x0n90mr0rs0j10uk"],["Cinzel Decorative",400,2,0,"0l60kk0lg0bc02y0n707202n12v1lu0di06907h1mt00400p03f04604604103w03h03o00602h02s03504601e02104207m0gi0ni0fa0pv","0k60k60kp0hw0370n906s0470y817z0d10a40cv1j700500k03m03g04g04y03504g02z00303t04f05607802p03s07d0eh0h90nm0ev0nc","0gu0gk0gk0da02o0ku05w02910j1kh09905x06x1uu00101f04904004404b04j04g00l00502802f02r03l01901u03k06k0f50ky0dw0mg"],["Cinzel Decorative",700,2,0,"0mu0ob0nf0se02c0m906h0511qm14q0gh09a0c21li00300q02y04l04u04c04k04o00z00304n05405i07201p03507o0ho0hs0m90gz0wt","0lp0mp0mp0d502z0ne0760601g414g0h10ap0ep1fp00300o02y04c04f04q04704302b00205i06106m09302l04o0aw0jx0i60nv0hr0sm","0j60lf0j60c301p0ll06r04w1oh1530at0910b71nn00701j02y04b04j04o04b04g00q00603z04x05e06m01p0310700ga0hp0lz0gw0o8"],["Clicker Script",400,3,0,"0gg0fl___0sj02u___09q01w0t40vg06j07u___2l600s01k03g05k05a04a02l02f01r00601g01w02f03501c01v03706f08q0lp07d0h0","163______0b603f___0990420vm0t00rs______21f00p01703u06605u03x02r02p00o00103304205c08i02q0400780b309z0jy0xa1tk","0fm0bk0hx0f001q0n408o01w0xy0no02s06706v26m00600u03204h04f04y03j04d01w00401f01x02902u01601l02p0530gf0ml0da0hx"],["Climate Crisis",400,2,0,"0xi0zu0vs0i700l0nb0480cq19w0lj0pj0ly0lg0zl00000401e04c04p04b03x04p0370160cq0eg0lp0vq09g0dh0mt0r70n50rs0u212q","2md2md38z0kz06w0nd0560cr1gt0lw0rs0l10kx0mm00000302004804i04904h04g02q0110d50ip0uf1990ab0jk0oi0ro0mw0rs2al43g","0zu104___0bl016___04c0bt15p___0nq0mx___0qv00000101603x04c04103c04d04a02c0f70gg0ug0zb09w0dy0r70r70rb0rs0um13a"],["Coda",400,2,0,"0gs0hd0gi08z04n0kh07003y0yq0rs0110d00ew1oi00200a02h04n03v04c03r04f02901r03u03z04808z02z03e0a00k80k90rs0g70ij","0ho0i50gp08303x0l907b04r0ww1yg01m0f60gk1n200100a02n04k03s04a04b04802c01e04m04t05j0ci03u04l0c00kk0k10rq0gp0jm","0hy0hy___09r04n______0420yz0rs0000cy___1iw00000002a04203f03x03k03904203803w04204d09f03703g09t0nz0ng0rs0dw0k9"],["Codystar",300,2,0,"04p044___0a602y______01f0sm___00002u___0mj00000004003702q03104502l03e04q01501g01l01p01301e01j01m0cl0rf03j05v","0bu0bu___0nf03y___0230320r70j201m09d___1ct00000002f04103103t03u03004j03602e03503x05d02a03604105s0iw0rn06x0ir","04p044___0a602y______01f0sm___00002u___0mj00000004003702q03104502l03e04q01501g01l01p01301e01j01m0cl0rf03j05v"],["Codystar",400,2,0,"06n06d___0fa05i______01r0sj___00003v___0qk00000003j03c02m03j03p02w03e04t01d01r01w01z01d01p01u01x0dz0rq05s0ae","0fb0fb___0kl03u___0250330r00jk01a09y___1ev00000002f03x02v03o04402w03o04a02j03704005r02c03804406d0k10rs07n0j5","06n06d___0fa05i______01r0sj___00003v___0qk00000003j03c02m03j03p02w03e04t01d01r01w01z01d01p01u01x0dz0rq05s0ae"],["Coiny",400,2,0,"0mm0mm0m106g03h0je09009f15313o0g10ke0l217c00700b02104v04m04504x03402l01009609o0e30kf06l0bz0jr0r30ix0ri0lg0ox","0lt0lt0kt07002z0jf08e09f13d0cv0dm0kw0lz15m00400c01r04s04s04y04x03102h00p09009q0fo0k10700d70ja0py0iz0r00kt0os","0p90p9___06q04l___0ag09q1350n90en0kj___11o00200201o04704004804103e04f01t09m0a10er0m006x0bt0pb0rh0p30rt0md0rj"],["Combo",400,2,0,"0db0db0cq07604n0j408p0380vv0tt0120by0dd1x800700902p04o04n04u04403x02c00602w03903j04e02a03n0830fv0i10nq0cq0eh","0di0di0cj08b03v0js07k0460sy___01k0ez0gy1y700200a01g04x04j04t04q04f02f00803u04804o07i03f0560b90hu0j70nz0cj0ff","0ez0ez___09k05s___04w03l0y80ty00g0c1___1l500000202603s03u04303303o04503003903p03y04r02f03u08r0je0mr0rs0du0gq"],["Comfortaa",300,2,1,"0hw0hl0i606704m0j908502n0qr0pw08i08f09p1kn00500902i04t03x04504603x02001x02h02p03905f02h02w04p0810gg0qk0gq0k7","0ip0i70ip07d03y0jj08503u0qa0i10840bt0dm1la00300a02l04o04404905503602801903h03w04v09603j04a07e0dm0h30qx0fr0jo","0ig0jb___07705r______02n0r50q0033084___1f400000002f04503h03w03e03303j03u02h02n03405302g02u04m08f0hi0rs0gp0lw"],["Comfortaa",400,2,1,"0ir0hw0ir07r04p0j308q0380r50ri08k0a30bb1j200700903204m04403n05902t02701o03403b03z07k03103j0620c80gr0qp0h00kj","0im0hn0jm08o03x0jc08c04a0rv0hj08e0cw0ep1i500400a02c04v04204805403202701k04304d05f0bk04104n08e0er0h00rj0go0jm","0iq0jl___08u05s______0380rq0nz02v0a2___1ec00000002304e03k03v03h03603y03c03303803v06q03003h05w0ap0ip0rs0g50mh"],["Comfortaa",700,2,1,"0j10ig0j108504m0j508r0430s60qt08x0c80dg1ib00700902m04u04404b04j03502g01e03z0450530a903r04e0830fr0hf0qv0gq0k6","0jo0jo0j608x03y0jc08e04w0t40g40a70e50fu1h400400902404u04504c05503102g01e04o04y06b0d104g05a09t0gw0hv0rk0hp0kn","0ig0ig___0ap057______0410s80nr02m0c7___1cn00000001s04j03l03z03k03904a02u03z04204x0bf03p04d07q0fd0ju0rs0g50n2"],["Comforter",400,3,0,"0fv0me___0oz03e___0fc02d0qg0z00b40aa___2p800g01f03005204x04z03802802200i01y02i03704c01v02l04208b0b20ju0dm0sx","0pw0pw______05r___0e404b0si0ou0990eq___1w100g01403705004y04x03602602300r03h04g06a09f03f04u08c0dq0bn0l70df167","0w70w7___0e602x___07m02b0rc___0lu07m___1y700200c01k03w04303d04304804702001x02g03805a01r02e03905x0jd0qc0o0192"],["Comforter Brush",400,3,0,"0fv0m4___0oh034___0fd02f0qs0yj0b40ab___2oa00h01f03005204w04z03802802200h01y02j03904f01v02n04208b0bc0jy0d10sc","0qt0qt______05r___0d704d0sk0ks0ij0eb___1vd00g01503805304y04w03302802300o03j04g06e09o03j04u08c0dx0bi0k80ed164","0wa0wa___0dp02d___07q02b0r6___0m807t___1y500200c01m03v04203d04403k04u02101x02h03905801r02f03b0620jg0qe0o2196"],["Comic Neue",300,3,0,"0gs0gs0gs0al04n0js0860280pq0rs02b07q08u1m200600802r04f03r04804004e01y01x02402a02t04a02502i03z0750gt0qn0fn0jo","0hg0hg0hg0db0440ky07t03s0qr___0360bv0d51lo00200a01h05202y04e04x04v02901l03h03u04y09003i04c07p0dn0ig0rj0gf0kj","0jm0k7___07n04m______02d0r80rs00x07m___1dt00000002l03y03803w03l03403g03z02502e02v04j02602i0400730hc0rs0du0lx"],["Comic Neue",400,3,0,"0h00h00h00ac04j0k007y0310q80qa02b0a60bk1lh00400902704q03q04604o04502601m02x03403w06d02x03f05t0by0hm0qw0fv0ju","0gs0gs0gs0c303y0jp0860460qx0jz0420cv0eu1kt00300a02e04s03y04e05803b02g00y03v04905l0ag04304r08r0f30i30qs0ft0jr","0jm0jm___07c04m______0380s00qd01e0a0___1d800000002304b03d03y03m03703x03d02z03803y07602y03e05l0a50ir0rs0ef0mi"],["Comic Neue",700,3,0,"0i40ie0i40ay03i0k707y04m0rn0r004g0dy0fr1ih00400a02h04s04003r05203q02501i04f04r06a0c704g05c0ad0jc0ii0r70gy0l1","0i70hq0ip0eh03g0kh08605c0s30hk06n0fn0hh1fs00200a02004s03y04d05103p02f01805005h07r0e10530680ct0ju0j10rn0gq0ln","0ju0ju___08i03e______04n0sq0on01b0ds___1b000000001l04i03i03z04203b04l02904e04r06d0de04e05309n0i30l20rs0er0m4"],["Comic Relief",400,2,0,"0gs0hy0g707y0420j309i0410r20p90470cu0f21kc00a00902005003t04k04n03c02f01j03u04505d0bj03w04k08u0gv0hy0r80g70ii","0ga0h80fb07q03u0jt09304o0r209b01n0ea0gy1k900700901p04v03s04b05303s02d01i04c04q06f0cq04k05g0b20ht0ie0qv0fb0i7","0hy0hy___08z04n______04a0t00os02m0cx___1bp00000001w04k03d04103n03904h02m03v04a05l0cx04004k08l0fy0jy0rs0dw0m0"],["Comic Relief",700,2,0,"0ii0jo0hx08602b0j709u05k0t60nq06j0fk0i21f200900a01s05004004l04o03a02n01d05c05s08h0fk0560620d80k40ii0rc0gs0lz","0i80j70gs0cn01x0ju09405u0sj09i07f0g10ir1d900600a01i04s04104g05903p02j01505i0620a70fg05e06r0eh0jx0ii0q70gb0n1","0ku0ku___07i02w______05z0um0nv04q0fu___17200000001m04m03j04003p03h04p02805h0630960hd0580650cn0mf0m90rs0ij0ow"],["Coming Soon",400,3,0,"0hy0ii0g709l03h0ku0f602j0p60rf01n0890941o900800602d04n03i04c03x04j02402102e02k03505802f02y04v09p0gz0qv0f10k9","0f80g6___0fs02v___0er03n0pn0hl0240cw___1ow00800601y04i03h04404f04l02v01i03c03p04m08803f04a07h0e80i90rl05q0i3","0iz0ja___0dz041______02i0qa0rw00x088___1hm00000002q04103204303d03703p03n02e02l03105202f02s04n0880gv0rs0co0kq"],["Comme",300,0,1,"0hd0hd0hd07z0580kd08q03b0vj0rs01m0a80bg1il00600702k04j03t04e03u04c02601t03803e03v06702n0350610dv0i70r80g70ij","0h00h00gj07d04q0jq08s0450u40ml03r0cw0el1kl00500702n04i03v04e05u02y02o00n04004804y09x03e04808p0g70i70py0g20hy","0ig0ig___09306c___07i03h0wr0rs0000aa___1c200100302b04403d03u03p03803m03k03e03h03x06e02p03906a0cr0kf0rs0fk0lc"],["Comme",400,0,1,"0hq0hq0hg08n05c0k708x03u0wj0rs0220bo0d01i900500802g04s03e04i04o03r02g01h03p03x04h07q03103o07x0gw0ij0r70fz0ic","0h10hz0gk07a04q0jq08x04j0ux0nv03r0du0fm1jp00500802h04o03x04d04m04602m00m04e04l05k0an03u04n09z0hg0ie0pz0g30hz","0j10j1___09i05r___07i0410xm0rs0000bp___1b800100302404603d03w03q03903y03803z04104m09003403t07t0gg0lk0rs0g50lc"],["Comme",700,0,1,"0j40j40ij06l04n0jp09906711v0rs08k0ge0hk1fi00600802005004c04n04903o02o00v06506g07f0eg04f0660f90ny0j50qo0hy0ku","0it0it0ht06n03z0jg09b06j10n0rw05g0hf0je1ep00500902b04y04e04r05203902k00606d06q08s0ep04s06o0fu0mm0iz0pu0ht0js","0kr0kr___080057___08v06s1390sp03s0go___15t00200301p04c03m04003l03i04e02k06p06x08c0hh04o06n0fi0rq0od0rs0ig0nn"],["Commissioner",300,0,1,"0hd0i80gs07604n0j407o02z0sf0rs05009k0ax1kx00400902r04n03z04804603k02h01m02v03203q06e02o0310510b30hg0qm0fn0j4","0ha0hs0gc08v04c0jn07c0420sb___04a0co0eq1li00100901g05203w04904w03w02b01s03r0450540ay03o0490890er0i90qs0fd0j8","0j40j4___08105s___06a0340te0rs02h09l___1dt00000302g04703e03x03b03504603703003603r06b02p03405g0ax0jd0rs0g70lf"],["Commissioner",400,0,1,"0hd0hy0gs09i04n0j607n03q0u00rs04k0bl0cv1k700400902h04u04104c04c03f02l01h03j03s04l09203803p0760en0hy0qm0fn0jo","0hq0ip0gq08t03y0jg08504k0t50my04a0e60fl1jj00300902l04s04204d05102z02p00y04d04o05v0cr04604t09s0gs0i40qr0fr0ko","0iz0iz___0ab056___06603x0uv0rt0290bl___1cp00000302604d03f03u03f03704503603s03z04o09c03b03u07a0eb0ku0rs0ey0lu"],["Commissioner",700,0,1,"0ju0ke0ht07x03g0jj07o06d0wl0rs0810gx0il1g400400902204z04404f04b03h02q01f06406n08o0gm05c06i0fh0nc0j40r70ht0lu","0ir0k80hr08g02z0jg08506t0wc0kw06j0ht0jz1dk00300902904y04704j04z03302o00v06g0720az0gt05r0770g60ng0j10qw0hr0lp","0ke0ke___08t041___06c06o0x60rs03l0ha___17w00000301r04h03l03z03f03f04n02g06m06y09a0ic05j06t0fo0r00o60rs0g30nk"],["Concert One",400,2,0,"0ha0ha0gz06b03g0jq08i06h0w90re01m0il0ka1h100600a02304t04b04n04e03c02l01706906i07t0ey05k0910is0qq0j50rs0g40if","0gu0gu0gu06c02z0jh08c06u0vb0e40130jq0lr1ek00400b01u04s04e04o05303502l00w06i06y0as0fc0640b50iz0pt0j40rq0fv0hu","0hv0hv___087041______06g0uk18b00g0jw___1d400000001u04703r04203h03r04m02406a06v08g0f905v09s0mq0rm0pn0ru0ez0j0"],["Condiment",400,3,0,"1rw1sr1rw0eh01q0g40n804o0tr1120nt0df0cg22e00f00h02804v04p04x03602d02q01y04404u05o08j0350500810ag0fk0rn1di30t","1ug1gh1f10k902w0dz0it05b0s00550rs0f50gw1u200i00j02205c05f05f03002z02a00a04l05d08x0c204906p09h0c70eb0ny1f13to","1ru1ru___0de02b___02b0540ue1480n50cv___1t000000001v04b03n03o03f03l04803304s05605u08r03f05f08n0bc0nm0rv1cw2g0"],["Contrail One",400,2,0,"0dt0dj0dt05v0310ji08n04g0sf1500130hi0hg21l00600903d04j04a04g04r03902h00b04e04i05209m04906y0fc0kc0io0pl0c50ew","0du0dd0eb08202v0ko08w0580sq0lx01o0ht0j51sy00500902404l04204b04j04c02s00r04z05907d0b30500860hm0mp0k70qt0ce0f9","0ei0ei___05t03h______04w0rh1hk0000ht___1sr00000002a04a03q03g04103l04b02604u04w05m0as04w08u0gt0qd0n40s30cr0fo"],["Convergence",400,0,0,"0hj0h90ie07w04m0kp08a04n0xe0rt02o0dn0ep1ig00800b02b04s03z04a03s04h02d01c04f04o05d0ay03o04i0az0kd0jj0qg0g30jj","0gm0gm0h207503p0jc07s04y0w515a0600fi0h11le00600b02g04p05304d04t03402b00h04q0520640c60440500bx0j80il0oc0fo0ig","0hx0hx___09p057___08904q0wl0sr00h0e0___1ce00300501y04c03j04103h03d04c02k04o04u05h0cb03w04p0b10ng0m50rs0eg0kt"],["Cookie",400,3,0,"0gb0o1___0ui02v___0cq03b0us0zf07l0az___2ll00e00g02v05p05p05j02t02k01q00302v03d04205o02f03b0670co0bp0mc0eb0t7","0ho157___0xv02y___0cz04o0tx0uc0bg0eb___1yx00e00g03305v05w05d02o03101100104604r06m0aw03o0540ac0ev0d30m10eq176","0q11gd0hn0nf02b0mk0c50370u111g0go09t0az23f00500a02v04r04t04403k05802000202u03a04105u02803805f0bb0gu0mr0g71kp"],["Copse",400,1,0,"0i80ij0gs06t02w0i80840450xu21w0780d30ew1mi00800b02u04y03v04104k02p02f01y03w04i05y0at03403r07j0fe0hy0rs0g70lf","0jk0jk0gm0fh02y0j70890510wj1qq05t0f00gg1jn00700c02x04w03s03z05102l02e01r04o05e07p0cu03z04u0990gx0hz0rq0gm0li","0ku0ku___07u05s___07x04h11828g04q0d5___1go00200402g04c03903k03303504b03i04504l05t0b303403u07w0fg0p20rs0hy0nq"],["Coral Pixels",400,2,0,"0lc0lc0lc0hu03h0ll09405j1d31oc09x0e90f91ev00b00802o04h03y04803q04e02d01i04x05p06b0b202x04r0aj0jc0iq0rs0ig0ro","0kv0jw0lv0n202z0kg09i06o16207f0a10h10i91ej00700a01l05704404g04r03y01w01f06906t0940dz03z05x0dz0kk0jv0qu0hw0wt","0le0le___0ki05s0fl09805j1dr1lh07p0eg___1bc00200302f04403i03t03203i04b02y05c05n06h0b402n03p0a50lq0ok0rs0fm0rr"],["Corben",400,2,0,"0l40lp0jo0bk02b0hy08404811u1me0dw0bi0da1j900500a02w04y03v04f04n02l02u01903z04h05v09b02o03g06a0dd0he0qm0gs0qm","0lo0m50j70ju02y0id0850540z119y0dk0e70fy1i600400a03004x03y04h05c02202z00r04u05g0780b903g04j0850fh0hw0q20hq0rk","0rk0rk___08l03g______04m1461qz0hv0bn___1aj00000002h04k03803r03903704g02x04h04o0670a902s03i06m0ci0n50r40ko0ug"],["Corben",700,2,0,"0nq0ow0ml0ho0160j808p09b1me0v10k50g50j81ee00500b01y05c04r05004h03w01o00a08q09d0bi0g904707r0il0nd0it0nq0j40v9","0o70yk0o70v301z0jf08h09j1je0m70i60hv0kn1bs00400b02905604n04x05503o01f00809109u0ci0ht04s09h0j20no0j10nu0kq1gc","0sy0sy___09u03h___07j0bw1uf0yl0jo0jv___13f00000201g04f03t04103d03v04m0270a90c40em0jy04w09g0p20rm0q20rs0ph0zb"],["Corinthia",400,3,0,"0qt0qt___0le04c___0i402e0wa1f50hv074___2bv00i00m03005d05a04x02m02b02d00v02102g03404d01n02303g05t0bm0os0co1fb","18a15w___0en03v___0h204h0x5___0jg0bm___1qg00k00l02q05l05a04r03202a02d00n03r04l06y09u03204707j0ay0ce0o50p11g0","0ws0xc___0gc04m___0d802d0xg___0jc06y___1qe00c00b02n03s04005003g03p04900c02402h03804u01l01z02w04x0hj0oq0dt15z"],["Corinthia",700,3,0,"16911x___0fp04n___0hn03c1491j80j8084___1vw00i00m02x05g05e05002p02c02e00k02u03e04d06601r02c04006s0bt0oc0ij1s9","1bt165___0k3055___0i405h13m0gt0m80c2___1f300f00l02p05q03z05g03c02f02g00r04l05l08g0c203204a07s0bd0d70pk0ww1yy","146146___0i205y___0dq03f15a___0hv083___1cp00800f03303t03h04y03i03s03x00p03003l04l06v01s02c03g0600hc0p00fh1de"],["Cormorant",300,1,1,"0g30hj0ey0el02b0f40al02c15u21309w06y09e1tv00i00h04804v04n05j03p01n01v00d02502f02z04701401o03c06h0ds0ns0cn0ht","0fe0gd0dh0dt01x0fu0a603u0yj0s208g0bo0ei1u700h00h02c05r04k05b04z01m01z00c03e03z04x06z02b03f0600cp0ec0n60ci0gd","0kj0le___0f6042___0bk02q19u2lh0bl06z___1dt00900903h03o03f03j03l02w03303o02a02q03g04f01601s03s0710i40rs0fm0ti"],["Cormorant",400,1,1,"0fv0hv0ef0gu02l0f60am02r19w1ul09h07m0a31tc00i00i04204z04r05n03j01o01v00c02i02t03e04r01601u03r07z0du0o80d90ig","0fe0gd0dy0c401x0fu0a604511k0rb08v0by0ev1to00g00h02905q04p05f04w01n01x00c03o04805207202903l06o0d30ee0nw0ci0gd","0ku0l4___0eq042___0bk0371f82b60bc07u___1dc00900a03903q03h03l03l03003603j02o03803x04x01901x04b0870ir0rt0fm0sc"],["Cormorant",700,1,1,"0g70hn0eh0k402b0f20ai0461jz1ct0910ah0co1ss00i00i03f05705406103301v01v00803r04a04w06k01f02n06m0dj0dx0ob0dw0j4","0gs0gs0et0fe02z0fi0af05718915g0a40e10gq1qc00i00j03m05804z06403c01w01i00604o05a06808a02k04e09h0fd0e30nv0dt0hs","0mk0mk___0dl042___0bl0581zg1kv0bl0b1___1c100900a02p03s03r03w03k03903d03104205805w07b01k02s07p0g50l40rt0hd0ti"],["Cormorant Garamond",300,1,1,"0g30hj0ey0ek02b0f40al02c15v21309w06y09f1u100i00g04904v04n05j03p01o01v00d02502f02z04601401n03c06g0dt0nu0cn0ht","0fe0gd0dh0ds01x0fu0a603u0yz0r108g0bx0eh1uv00h00h02d05t04m05a04y01n01y00c03d04004w06s02a03e0620c70ec0n60ci0gd","0k90l4___0f8042___0bk02p19p2lk0bc06y___1dt00c00a03h03n03e03k03i02w03303o02c02q03f04e01601s03q0700i70rs0fm0sc"],["Cormorant Garamond",400,1,1,"0fv0hv0ef0gt02l0f60am02r19s1un09h07m0ae1tf00i00h04204y04r05n03k01p01u00c02i02u03e04p01601v03s0810dv0o80d90ig","0fe0fw0dy0bo01x0fu0a60451120rb0840c70f11ud00g00h02905r04p05e04w01o01w00c03o04805206x02b03o06m0d90ee0nw0ci0hc","0kt0l4___0em042___0bk0371ey2bw0bc07s___1d800c00a03803o03i03o03j02z03603h02p03903x04x01801y04b0870jc0rs0fm0sx"],["Cormorant Garamond",700,1,1,"0g70hn0eh0k802b0f20ai0461k91cr0910ah0d71sp00h00i03f05605705z03401v01v00803s04a04w06l01f02n06l0dj0dz0ob0dw0j4","0gs0gs0et0fi01z0fi0ae05718915h0a40dv0gr1r100i00i03m05705206003c01x01i00604o05a06608602j04f09h0fc0e40nw0dt0gs","0lz0mk___0cw042___0b80581z51ky0bx0ay___1br00b00a02o03r03q03x03j03803c03004405805v07b01k02s07h0g00l20rt0hd0ti"],["Cormorant Infant",300,1,1,"0fq0fq0ek0dz02x0f50am02d17220d07y07l0951sn00c00804404q04j04j04b02402l00d02502e02y04401401n03c06y0dz0og0ct0hg","0fe0fe0ex0db02w0fu0a603r0zb0r10860c00ed1u600c00802305o04h05704r02202o00b03d03x04v06q02803a0670cu0eg0o00ci0gd","0jo0jo___0fd042___0af02p1aq2lh0a4076___1c700600403f03j03a03h03b03303e04002h02q03e04d01601r03s0730lg0rs0f10rr"],["Cormorant Infant",400,1,1,"0fj0fu0fj0ge02l0f50an02r1bk1u808c0850a71rx00b00803v04u04m05i03h02502k00c02j02t03d04n01601t03t0900dz0od0d90hu","0fe0fe0fe0ac02w0fu0a604412g0rf08e0cb0fb1t800c00802005o04k05b04n02502n00b03o04705106w02903g06u0dq0ei0o10ci0gd","0jo0jo___0fb042___0af0371ga28y0a407y___1bs00600403603k03e03l03c03803h03s02x03803w04x01901x04g08p0m70rs0f10rr"],["Cormorant Infant",700,1,1,"0fc0gs0dw0lo02b0f20aj04a1nj1ct06n0b30cw1r100c00803905405105p03402f02e00803w04e04w06k01f02m0720el0e50ob0dw0ij","0fs0fs0fs0e002z0fi0b105618l1490990eb0gk1q100d00803f05404x05t03f02h01v00604p05a06508202j04e0ai0g30e80nz0dt0gs","0ku0ku___0ex042___0b005820j1hy0at0b2___1ab00600402l03p03m03t03d03i03q03704k05905v07c01k02s07y0ht0nd0rt0g70ti"],["Cormorant SC",300,1,0,"0l40kj0lp09e02w0ku09u02o19d2lw0fn07607z1i700600b03v04403y04c03i05601501802b02q03a04i01401r03o06x0hz0lf0hy0ob","0ka0ks0ka0d40320kz08k04711y1x30g20b80ct1h100500d03x04e04803d04804z01b00w03o04d05c07p02b03g06i0d30gn0ld0h80mb","0k90kt___0f805s___08p02q1a02o10as06x___1d100500a03h03l03e03j03b03f03103m02c02q03g04e01601s03r0700jw0rs0fm0sc"],["Cormorant SC",400,1,0,"0lf0lf0lf0ab02w0ku09g0331e629w0gk07w08q1hu00600b03m04704204e03l05501701602n03703r05001601w0460880i50lg0hy0ov","0kb0kt0kb0dd0320ka08m04g13f1lb0go0bj0dm1fy00500d03q04g04c03f04b04w01d00v04204n05n07u02c03m0730eq0go0lh0h90mc","0ku0le___0ew05s___08r0371f82bt0c607x___1cj00500a03803n03h03l03d03i03403g02o03903x04w01901x04c0870kc0rs0g70u3"],["Cormorant SC",700,1,0,"0mk0mk0lz0ce02w0ku09u04y1v81ku0go0b20c81ge00600c03104d04d04l03t04w01901104405205l07b01h02q0770fu0j50m50ii0pg","0kx0lf0kf0f10430kb09o05w1dx14s0gf0e10fz1dm00500c03a04l04k03j04m04l01f00r05a06206z09302j04n09x0ic0hr0ku0hc0nh","0ma0mk___0dt04n___09u0581zr1kr0bl0b2___1bb00500a02o03q03q03u03f03q03c02z04405905v07b01j02s07t0gs0le0rt0hd0ti"],["Cormorant Unicase",300,1,0,"0ku0kj0le0a702w0ku09u02o1ae2gz0es07607z1gt00600c03v04703z04303m05801401802j02q03a04k01501q03k06z0ii0lg0hd0ob","0jt0kb0jt0b202z0l407n04411i___0dw0b40cq1hr00300c02405b04404904c05101c00w03n04905607h02903e06d0d00ht0lp0gu0ls","0k90kt___0f805s___08p02q1a02o10as06x___1d100500a03h03l03e03j03b03f03103m02c02q03g04e01601s03r0700jw0rs0fm0sc"],["Cormorant Unicase",400,1,0,"0lf0lf0lf0ay02w0ku09i0351fk2720f407w08u1gj00600d03l04804304603p05601601602y03703r05001601v04308d0im0lg0gs0ov","0kb0ku0kb09w0320ky08j04h13i1hs0es0bl0d91gb00400e03r04h04903a04g04w01d00u04504p05l07q02c03n0720et0hp0lk0ha0md","0ku0le___0ew05s___08r0371f82bt0c607x___1cj00500a03803n03h03l03d03i03403g02o03903x04w01901x04c0870kc0rs0g70u3"],["Cormorant Unicase",700,1,0,"0lz0ma0lz0au02w0ku09u04y1x11hq0f40b20c11f900600d02z04f04e04g03x04v01801104k05305k07b01h02q07e0gs0j90ml0hy0ob","0kw0kd0le08n0320kc09f05v1ff13i0f20dt0fg1eh00500e03904l04i03h04q04m01e00q05e06106v08w02i04k0a80jd0im0ll0hb0mf","0ma0mk___0dt04n___09u0581zr1kr0bl0b2___1bb00500a02o03q03q03u03f03q03c02z04405905v07b01j02s07t0gs0le0rt0hd0ti"],["Cormorant Upright",300,1,0,"0f20fn0dw0f702b0f20ah0290yp1iy09i07609121k00n00i04505004m05m03f01m01y00a01x02c02t04001b01x03c07d0cs0nc0c60hy","0fd0gt0ci0fz02w0fv09f03w0xk0is09r0c60ef1xm00k00i02a05w04k05c04s01n01x00c03b04005107002k03n06e0dk0ec0n80ci0n2","0kt0mk___0e303r___0bk02n19e2hd0cq071___1ex00b00b03j03p03d03g03j02v03403o02c02o03904c01701s03r0750i20rs0gs0sc"],["Cormorant Upright",400,1,0,"0fj0g30e30fq02l0f40aj02n11y1de09r07v09t1zz00n00i03w05404q05k03k01o01t00d02a02q03804g01d02403t0990cx0o50cn0k4","0fv0k70ci0qg02w0fu09f0420ym0o20c60aq0ej1xk00k00i02405w04o05j04r01n01v00b03i04505307002g03o06k0dr0eb0n40dg0py","0le0n5___0dl03h___0bk0351fg26i0cq07z___1eg00b00b03b03r03g03k03k02z03603g02p03703s04v01801w04a08c0iq0rt0gs0sc"],["Cormorant Upright",700,1,0,"0gs0fx0f20e302b0f20ah0431bc15j0bl0aa0d01yg00n00j03b05i05105x03101t01t00703k04604t06901n03206p0ev0dg0ob0dw0ow","0hq0fs0hq0g302y0fi0a905715c11c0cc0e50gs1sh00n00j03g05j05006103801u01f00604n05906808902q04j0a80fs0e20nu0dt0on","0mk0oa___0cn03h___0bk0541yg1hl0cq0b6___1cv00a00a02q03v03q03v03j03903d02y04a05505r06t01h02t07j0gc0lg0rt0hd0sx"],["Cossette Texte",400,0,0,"0fn0g70fn08o03h0ku07003i0on0rs0110d40dy1uc00200a02304w03v04a03v04i02g01i03e03k04f09d03r04e08d0hs0jc0ri0dw0hd","0fr0gr0fr0bt03y0le07c04b0p60l101r0fm0gc1tj00100a02804p03u04804i04h02e01604204e05r0ba04k05i0b90jh0k30rp0es0hq","0g70g7___09h042______03h0oh0rs0000d1___1o700000001w04c03g04203i03804i02t03e03j0490ai03r04e08b0hu0m60rs0cq0hy"],["Cossette Texte",700,0,0,"0hd0hy0hd08802w0ku07005h0q70rs0260hf0it1mo00200a01t04x04604d04704502m01905g05n08j0ez05q06w0gc0o30k90rs0g70ij","0gs0hs0gs06z02z0ld07d0600q40ko01m0il0k21ka00100901z04p04504b04q04602i01005r0670an0f606b07w0hr0o90ky0rq0ft0is","0hy0hy___09z02w______05i0q00rs00g0i0___1g800000001k04h03q04203g03k04p02a05g05p0960g205t0750g30r00od0rs0dw0j4"],["Cossette Titre",400,0,0,"0cq0cq0c608602b0ku0710330lh0rs01p0e30f92f600200a02204u04104c03w04g02h01f03203403s07803s04q0a90ji0jr0rs0c60dw","0ds0ds0ct0q301z0lf07c0450mx0lo07t0g30hy28h00100902604m04004c04k04d02e01303v0460600a104r0600dz0le0ku0rp0ct0pm","0db0db___06x02w______0330lg0rs00j0dh___25m00000001u04b03l04003i03e04h02p03203303p08e03s04o09o0l80mt0rs0c60dw"],["Cossette Titre",700,0,0,"0db0dw0db0bh01r0ku07004s0mx0rs01p0ii0iz23l00200a01t04u04804f04504602l01904r04u0770bt05t07m0ik0q30kf0rs0db0eh","0et0et0q60yn01z0ld07d05i0n80ke0c80js0ko1pp00100901z04m04904d04q04702f00z05705v0ao0df06j0910js0pi0l10rq0du10j","0eh0eh___09001r______04v0mr0rs00g0j6___1ux00000001k04e03s04203h03o04m02a04u04y07v0cp05t07z0j80ro0oz0rs0c60f2"],["Courgette",400,3,0,"0gp0ha0fk0o401q0gi09o0480vp16g09j0c60ew1wp00800902w04z04r05a04502f02r00603y04904y06x03304j08r0cf0fb0ow0ee0jl","0gt0gt0gb0ve01z0hh09g0540u80u408z0eq0gr1sx00600802c05404l05505402f02m00504t05706d0ab0450630av0et0g50oz0eu0un","0kq0kq___0kq02b___0a904h0u51ab09q0c9___1nn00300502603x03i04103e03v04e02c04804m05a07m03e04x08p0cx0l20rs0h90xy"],["Courier Prime",400,4,0,"0k90jz0k903l0580jo08p03q0tg2360cj0c40cp17z00b00a03205603l04504404202s00c03i03y0690au03603o05z0c30ij0p60ij0ml","0jp0jp0kp08y04x0ji08b04o0te1hj0af0ew0fo18200700b03505703p04505503i02900704f05208e0ec04504m0820fv0i80ox0hq0lo","0mj0mj___07805s___0610400ul2rf04j0cr___14500000502m04n02w03f03103104c03r03t0430690d303h03v0790da0q40rs0jn0ou"],["Courier Prime",700,4,0,"0lf0ku0lf0650420jo08p05z0ws1ce0ep0gq0h815o00800d02d05k03w04b04g03v02i00a05l06k0an0h404q05i0au0jo0j40p60jo0n5","0kr0kr0kr0h503y0jh08c06j0wl0mj0cp0hn0iv13j00600d02m05g03y04f05803g01z00706807a0ca0hm05a0660d30jp0iz0oy0jr0mq","0o90o9___06i04m___06h06i0y30ol09n0hj___10d00000402104x03503l03003a04v02v06506x0bw0iz05405z0cc0pm0qr0rs0ld0pz"],["Cousine",400,4,0,"0hy0hy0hy03z04n0k907t03u0wn0rs0370cn0d61dk00500a02l04z04104o03q04k02m00903o03w04k08p03203n0770h70ij0p10gs0ij","0i70ip0hq03r03y0ki08704r0v40ng04t0f20g01cb00500b02m04w03y04j04k04202k00704j04u0610c103y04r0a00ij0j10pp0hq0ip","0jy0jy___09104p______0490wv0rs00g0d3___18r00000002404d03f03e04802t04903904804c0500bc03i04308e0kk0n10rs0hm0l4"],["Cousine",700,4,0,"0j40ij0j403l03h0k907t05q0zc0ru06y0gc0gl1ci00400b02605604904p04404b02e00905i05s06y0du04605b0cw0kf0j50p40hy0jo","0iq0iq0jp02502y0kg08806b0y90s707h0hu0ih19800400b02b04z04704m04s04102a00706306e08w0fq04u0650et0l20jt0pp0hq0jp","0kj0kj___08c044___08506d0z01b601e0hl___15g00100201r04h03n03h04403004k02p06b06g07z0he04z06b0ed0rg0op0rs0is0mb"],["Coustard",400,1,0,"0l40ml0ku07l0160jw08v04o0wo1ok0cu0dm0ec1h000500b02l05203k03x03x03z02k01t04j05007h0az03p0480800ge0jb0rs0j40ob","0nj0p00kl0ts02y0kc09a05h0xs17l0h10fl0gd1fn00500b02q04y03l03x04o03g02n01g05605w08s0em0490540980hv0jt0rq0jm0sg","0nq0nq___08y02m______04u0wj1s80c90dl___1bz00000002b04q03403g03603404l03b04k05207l0b803r04d08a0g50ow0ru0hd0rs"],["Covered By Your Grace",400,3,0,"0dk0cz___0an016___0en03o0pk0sg0520cw___20900a00h02505505r05q04602j01800c03d03n05007503d04u09h0h30de0kd0ay0g5","0hq0ko___0cc01z___0eb04y0rx0g70880fb___1mb00900e01t05305t05q04w02f01500a04604q07x0b004e06r0cv0iz0ew0lm0ds0rk","0dv0da___0b101q___05a03h0qi0s503a0e1___1uw00000801v04k05b05504c04b01x00703a03h04p07303504707y0iq0eo0mq0az0fl"],["Crafty Girls",400,3,0,"0j40hd0jo0b302w0jo0cu02p0q80s30bd09r0971ly00d00g02t04m03v04d03z03v02g01302i02s03n05w02i03004n0900gy0ph0fn0lf","0jq0hr0jq0i302y0k90cc0430s40mm0b40ds0ck1in00c00f02604y03x04g04u03b02l00u03l04605q09v03n04c06q0dd0ht0pt0es0on","0h30hd___0e1042___07j02p0qq0sl0480a7___1et00300d02204d03i04203b03904k02b02f02o03h05w02g02x04j08b0l20qq07j0k9"],["Creepster",400,2,0,"0fk0fk___06i01q______0670so0i500i0k7___1my00000001a03j03n04003e04q04t02h05y06v0al0e30750bx0no0rq0qj0ry0d90g5","0fr0fr___0fd01z___0290700w30en04r0lc___1eo00000001d03h03o03z04304v04m01r06e0810d90fm0890dc0of0r70q00rt0ct0gq","0f20f2___06i01r______0620ru0g300i0ki___1o300000000w03k03q04403i04v04x02905q06p0ap0e006z0bp0nb0r20qm0rs0db0fn"],["Crete Round",400,1,0,"0hy0jo0gs09f02b0ij08p04h0yd1n80aa0dy0fu1qa00a00j03205d04904g04u02r02300904f04o06u0ap03d04108w0hg0hd0oy0fn0ku","0ie0kg0hd0g00220i808p05f0xa1de0ai0fs0i31mi00800k03d05g04h03i05n02n01u00605805s08w0di04a0560ao0i90hk0oo0gc0lg","0lo0ly___08u042___06d04y0z01v20610f2___1f800200c02g04j03c03n03603f03w02y04v05607g0c703l04j09i0kz0mq0rs0hc0ou"],["Crimson Pro",300,1,1,"0gs0hd0gs08103h0hd0990370xz26j08109p0br1pa00b00803g04v04c04s04y02b02b00b02w03d04a07k02602t05a0ad0gb0nw0f20jo","0h70h70g60e90310hx09g04i0w31nw08a0cz0fh1mz00900903e04w04g03n05k02t02b00a04704r06909u03c04f0870f20gj0og0f60k8","0ku0ku___09h05s___09403t11e28007t0ax___1cq00200402q04003903q03603503w03r03l04104x09102h03806m0bu0n90rs0g70q2"],["Crimson Pro",400,1,1,"0hd0h30hd07q03h0hd09903r10s1xv0990ao0cy1o900b00903705104e04u04u02f02900b03h03x05008g02c0360670da0gh0nw0f20k9","0h00i00g00gc0300hq09c04t0xh1lj08g0dn0fz1n700900903a05304i04y05601v02800a04i05306s0ak03f04k08r0g50ge0o50f00jz","0ml0ml___08a05s___09504h14s1vs08l0c6___1c400200502j04403c03s03603703z03i04904p05r0a002o03m07l0ej0ns0rs0hy0qm"],["Crimson Pro",700,1,1,"0j40j40it0b302b0hy09905r18h1gm0ch0dw0g61jo00a00902n05a04m05004p02q02000b05i05z07p0bi02z04m09v0hw0gz0nw0gs0ml","0ja0kb0is0lm0210hy09j06j15218a0bx0et0ir1hg00800a02x05904o03q05e03102100a06706x09d0e204105u0cq0j10hg0og0h90nc","0ow0ow___07p05i___09906t1f11i90cc0ex___18l00200502404b03j03w03803g04902w06k07208s0df03c0580b80o20ow0rs0ku0sy"],["Crimson Text",400,1,0,"0hy0hy0i808t02w0hy09b03s14721t08q0al0cc1la00a00703304j04304h04q02f02c01o03i03x04n07r02402z0630d40hd0qu0fn0ku","0hr0hr0iq0el02z0ho0a404r0zp1kl08a0db0g41jt00900803404k04204i05d01y02k01704h04z06h09n03504a08g0h10hu0qv0fs0kp","0l20l2___0b504o___07q04016n24408s0as___1dq00200402s03u03f03703w03903904103s04304q07k02703106j0c90nj0s30ft0qx"],["Crimson Text",700,1,0,"0jo0je0jo0a90210i708x05v1fz1kq0ch0di0gf1ho00800902k04o04c04o04k02q02a01h05l06306x0b102o04a0a10i10hn0ra0gs0nq","0jr0jr0k90iu02z0ig09b06i18v1ar0aq0fj0ii1g700700902r04p04a04o05a02502g01306906q08c0cz03k0580cq0jr0hx0r00gs0po","0n50n5___0az04n___07t0641k81k50bj0dn___1c500100402a03z03n03z03b03k04102w05g06506y0b402o04509s0mq0oc0rs0hy0r7"],["Croissant One",400,2,0,"0jn0jn0jn07e03h0ii09f05t1ne16u0bu0dx0ek1jf00a00e02u04r04f04m04703502j00n05b05t06208902a03y0b60ix0hi0q00hx0ly","0io0jo0io09w03y0jg0a006b1ea12i0930ga0h61j200800e02u04o04b04h04v03902k00806106b06y09j03505a0dw0jw0i60pt0hp0kn","0kr0kr___09404m___0980681ur1i609m0e5___1dl00500602j03z03q03u03003j03v03205j06806i09602303y0b60oq0oz0rs0j10py"],["Crushed",400,2,0,"0dm0dm___0af03h______03n0wp0xf0000dc___1x400000002a04303k03q03k03j04502y03g03q03z06102t03w0au0nl0o10rs09u0fn","0ef0ef___0fa033______04m0v9___02l0gi___1u300000001804k02u03x04j03t04g02i04e04n05f09i03q05h0du0nf0ou0rt0bc0gi","0dw0dw___09z03h______03n0xc0x700g0db___1z500000002a04403p03r03j03j04002x03f03q03z06102r0410az0nh0nf0rs09u0f2"],["Cuprum",400,0,1,"0ef0ef0e407q0410jr08403w0z70rs01m0e50f11ua00700802g04g04804j03v04302201r03v03x04b07m02w03y0br0jy0jm0rs0du0fk","0en0fm0en08x03w0kc08804p0xm1e40280fs0hu1sb00600802h04f04704f04l03m02301m04n04r05l09w03o0590ee0l00jr0rp0do0gl","0f00f0___096041______03x0za0rs0000e1___1ov00000002403x03q04303l03j03p03603v03x04c07l03204a0bx0p20n90rs0c40g5"],["Cuprum",700,0,1,"0fk0fk0fa07a0410jr08305114a1bh01m0gc0gy1q300700902904k04c04k03y03x02701l05105305j0ac03b05g0gc0om0jm0rs0f00gq","0fn0gm0fn08f03x0ka08905s12r14j0260hu0ik1o200500902d04j04b04j04o03f02801d05i05t06t0bs04106h0h40ok0js0rp0eo0hl","0g50g5___08l041______05214g0st0000g6___1l400000001x04103t04403k03n03x02u05105305m0ad03h05t0fj0rh0oc0rs0d90hb"],["Cute Font",400,2,0,"0ex0kn0ex09w05q0ji07g04u1c51xd0110f60he1fd00400802e04k03x04k04w02y02n01j04p04u05d0bp02q03d0ei0o60jl0qy0d70kn","0gl0l00fh08m05j0jm08705v15z1fu0120he0k21du00400702r03t04b03r05h03102u01k05q05y07b0dq03o0580gw0ok0k20rr0ed0l0","0lc0lc___09805s______04w1bj2rf00g0ek___17r00000002504203603v03x03b03x03f04t04w05m0fa02u03709u0qp0qm0rs0jl0lc"],["Cutive",400,1,0,"0k50la0k508v02l0j009703x0xi27q0e60bs0cs1hc00a00903005103h03x04g03202902303n04305p0b403503g0670cn0hy0rm0h90nl","0io0km0i60r802y0jf09c04m0uh1wb09i0dt0ff1i500800a03704v03g03u05102x02j01i04e04y07a0ci03v04g07p0ft0i40rp0gp0ml","0qh0qh___08g04m___05r0430z12lp0e50bu___1bc00000302u04i03003f03302y03x04103x04905f0cd03503h06n0ca0or0rs0gp0ss"],["Cutive Mono",400,4,0,"0jw0iq0kh06e08s0it08s02p0v62vx0da08m0a611s00c00a04404g03e03b05903801d02302m02u03v08g02b02g03q07z0hk0r20i50nf","0js0js0js08c07x0j408f0430vv___0aw0ck0ej14500400c01y05m03h04005503302g01n03w04a06b0bi03a03u06j0d50io0rl0ht0mr","0ln0ln___06k087______02o0ux42804x09d___13c00000003p03x02v02s03n02z02u05302m02q03f09802d02g04708y0p70rs0i50ol"],["DM Mono",300,4,0,"0hv0hv0hv03105s0jo08w0390s90rs05o0ah0c91c300b00902q04r03q04403w04202301w03303c04508102x03f05x0cj0i20rd0gq0j1","0hd0hd0gv02v04u0jp0890470s3___02s0d70ez1dh00400c01i05703v04704w03w02801l03x04905j0bq03u04i08a0f70ib0qw0ge0ib","0ig0ig___05p057______0390t70rs0000ai___1by00000002b04603e03u03i03903x03g03303a03t06k02w03h0650ec0lj0rs0hb0k6"],["DM Mono",400,4,0,"0ig0ig0ig06q0570jo08w03t0sx0rs05s0c40dt1bo00a00a02i04w03t04404503v02801q03n03x04y0a603d03y06z0fd0ig0ro0hb0j1","0i70j80i703x0420jz09a04r0t70mi03t0eh0gb1au00700b02n04z04003504z03u02d01d04g04v06i0dk04c05409w0h30il0rj0h70j8","0ig0ig___09604m______03t0tn0rs0000c5___1bi00000002404c03e03u03j03a04703503n03u04l09t03c04207m0hr0m30rs0f00k6"],["DM Sans",300,0,1,"0ig0ir0i607y04m0k608z0380sd0rs04g0a80b91kh00800802j04o03t04803w04b02001y03403b03z06t02s03e05m0c10i40rd0gq0jm","0ib0ja0hd07b03v0js08a0460s3___05k0d30ei1m200300901d05204004904v04102901n03v04805c0ai03s04j0850f70ic0qv0ge0ja","0j10j1___081057______0390t70rs03109z___1fm00000002c04603h03v03h03903p03k03303a03s06902q03b05z0bg0kf0rs0g50lc"],["DM Sans",400,0,1,"0j10ir0j109m0410k608z03s0te0rs06p0bk0cm1jh00700802c04s03x04803z04702601s03n03v04o08q03903x0700fb0ii0ro0g50k6","0j70j70i70870420k109c04q0t90mf05w0e90fo1in00500902h04x04503904y03z02b01f04h04t0680cc04a05209r0h50im0ri0i70k8","0j10j1___0ap04m______03t0ua0rs0350bl___1et00000002404a03k03u03h03a04103803n03u04g08e03603w0780ex0ld0rs0ef0kr"],["DM Sans",700,0,1,"0k70k70k707t04m0k708x05t0vp0rs0ap0fn0gx1et00700901z04y04404b04b03s02h01h05m05w07r0f204v0620cr0k40j40rs0jm0lc","0kj0kj0kj07m03x0kd09906d0vp0ls0ap0gy0ib1ch00600902404t04404904x03h02f01a06506j09c0g205c06u0eb0kr0jp0ro0jk0lj","0k70k7___09g04m___04b05t0vj0rs0440fv___19h00000101q04g03o03x03h03g04j02k05m05x07s0gi04r0660cl0pk0n90rs0gq0n2"],["DM Serif Display",400,1,0,"0kp0jt0kp09h0230ka09m06727615e0ak0cq0ee1j800a00902m04f03t04o04m03g02801h05306706l07t01k03q0b90kf0ji0r70ic0mh","0jb0jb0kb08h0210k60ac06s1pr0y907v0ew0gf1hk00a00902u04g04g03i04n04102a01506406t07b08w02m0560dy0ks0is0qo0f80lc","0kf0kf___0c8037______06g2q316u08a0cj___1fk00000002a03u03y03k04603s03f02u04g06g06p07l01c03c0b80of0on0rs0f60q8"],["DM Serif Text",400,1,0,"0kp0k30kp09g01s0k809o05y1ud1ap0a00d00ej1jj00b00902q04f03p04l04k03k02801k05705y06c08601v03v0aq0k80ji0r70ic0mh","0kb0kb0jt0fu0210k60ac06l1ig10w08p0f70gv1in00a00902w04g04b03g04m04102c01706006n07a09j02t0560d10ko0jj0qq0ia0lb","0kh0kh___0ar03h______0642661bz0770cu___1g600000002d03r03r04203f03m03x02w04s06506g07u01p03k0ao0na0oc0rs0f00pe"],["Dai Banna SIL",300,1,0,"0f20eh0er07d02b0g708d02x0xb1qt05009r0c11w700b00a03m04w04l05304f02n01a00q02v03103p06001z02n0520bh0f70m00db0hd","0fd0fd0fd0i60220gy07x04a0wc0i702f0dk0g11tp00400e01z05r03f05505x02n01m00t03z04f05n09503904a08p0g00gc0mo0ec0ge","0ij0f20ij05h01r0lk05s0311092d307v09q0ai1qg00000503e04h04604p03m05u00y00l02v03203n06d01v02j05a0au0jo0m00f20k9"],["Dai Banna SIL",400,1,0,"0f20f20fn08502b0g708903i1161m40730aw0db1uy00a00b03e05104q05704b02o01a00n03e03l04b06x02302x06b0e10fn0m00dw0ij","0fd0fd0fd0hw0220gw07v04n0y4___0450dy0gt1sa00400e01w05s03i05705v02o01n00r04e04q06409m03b04g09f0gr0gd0mn0ec0hf","0ij0er0j407i02b0lk06d03n14s22008x0be0bq1pl00000503604n04904q03o05r00x00i03e03o04707c02202u06e0ei0jw0m00f20lf"],["Dai Banna SIL",700,1,0,"0gs0fn0h307b01r0g708405b1ah1d20cj0du0gi1rt00900d02v05d05105e04202q01c00i04w05d06409h02p04d0ao0gs0fp0m00fn0jo","0gq0fr0gq0po01z0gi08906215v14a0be0fu0jg1oa00700d03205a04w05g04802o01900e05o06507n0c603h0570cs0j80g00ly0fr0jo","0k90fc0l40b101r0lj06n05h1fo1be0g40em0eo1mu00100502o04v04h04t03u05p00w00e04t05h06309w02n0470a60ku0ki0m00g70m0"],["Damion",400,3,0,"0it0m01tz0zz03h0dw0b204n0v315408c0bo0fx1wh00c00n02z06o05b05c02b01t01s00p04604q06f0am03n04p07z0am0c90n60eh0zb","0mj0mj1ul0ua02y0dp0b605n0vj0xw0ap0eb0j11l300b00m03506i05e05802k01q01q00n05005r08z0dh04j0690ad0da0d20ns0gn109","0ob0ob___0nx02w___07p04u0ug1jr0bs0bi___1iw00200902b04x04103q03d03d03x01v04c04v05y09u03u04w07y0bd0hd0rd0g7153"],["Dancing Script",400,3,1,"0cf0f1___19x03h___08902x0wa0t506b08h___2co00c00g03h05a04s04l02702i02i01q02d02x03h04b01u02r05i0980am0qr07j0jo","0hm0fa___0yd039___07u0470up1iu0cn0cn___24500600g02k05804o05k02k02e02g01s03m04805d07902z04k0950cl0bz0qx09a11z","0hu0hu___0fc02w___04102x0v90rx04d08q___1sq00000202n03x03h03o03a03t04402u02d02v03d04101s02u05o09i0l20rs0ez0kq"],["Dancing Script",700,3,1,"0dv0e6___15703h___08o03k0wk0u206109q___26x00c00h03d05a04s04m02702i02l01o03003l04b05p02b03f06p0an0b20qu08o0le","0ik0ik___0r803q___07t04j0vf10v09t0ci___1yp00600g02f05b04p05l02m02f02j01n04004l06608w03c05509r0da0c20qw0gp0um","0j00j0___0e602b___04103i0wk0rd04x0ac___1p000000202i03z03h03o03903v04802t02z03h04205b02903e06l0az0m10rs0g40lv"],["Danfo",400,1,0,"0i70i7___07n01r______0bn2dc0rs0000oc___13e00000002a04f04l03y04c02l03f0280890bo0jn0m00490hb0ls0s30ri0rs0bq0ma","0jt0jt___0h501z______0c42610lw05d0nl___0wx00000001u04904h04i04a03403m01q0900cg0jr0mt05l0hq0q10rm0qz0rs0bw0ms","0i70i7___07n01r______0bn2dc0rs0000oc___13e00000002a04f04l03y04c02l03f0280890bo0jn0m00490hb0ls0s30ri0rs0bq0ma"],["Dangrek",400,2,0,"0gz0ha0gp06e0410jq08i06h0w80re01m0ip0kg1jm00600b02404t04b04m04e03c02m01706906i07t0ey05k0960iv0qp0j50ri0g40if","0gu0gu0gu06b02z0jh08c06u0v00dm01m0ji0ld1h000300b01u04s04d04p05303402l00w06i06y0at0fa0650am0ip0po0j30rq0fv0hu","0hv0hv___086041______06h0uv18i00g0k0___1fg00000001u04703q04203h03r04m02406a06v08h0fb05u09o0mh0rm0pn0ru0ee0j0"],["Darker Grotesque",300,0,1,"0ij0k90hy06m0420jo08401t0q80rs0540650791mk00700603l04203g04903w04701u02601o01u02803901o01y02z0510ge0qs0gs0ku","0hw0jv0hw0dc02z0kb07o03j0qa___02y0bo0cr1nj00200801w04z03v04e04y03s01j02503903m04n08703903y06a0cr0hx0qs0gw0lv","0k70ks___06m057______01r0rm0rs03h05p___1fc00000003o03d03103t03e02y03a04c01o01s02203401n01s02x04z0gt0rs0hw0mi"],["Darker Grotesque",400,0,1,"0ij0k90hy06a0420jo08p02o0s00rs06908m09y1l600600603104j03o04603y04401z02102l02p03905602e02s04h0940hd0r70hd0ku","0iy0jy0hz08f0300kc07p0410sj___04j0c30dr1mf00200901m05b03x04f05103602201z03l04205508y03h0490730ec0i40qx0gz0ky","0l40lf___065058______02m0sf0rs03z08c___1eg00000002z03x03703s03c03103i04202k02o03505302c02o04h0880is0rs0ij0ml"],["Darker Grotesque",700,0,1,"0k90k90jo08g03h0ju09905f0vt0rs09m0er0gq1gw00700802505504004904503p02k01h05905h06s0dd04j05g0bk0k10it0rs0hd0ml","0l10n50jz07h0360ko09s06a0vr0lf0aw0gg0i51ds00500902f05903704h05503102j01e05y06d08h0gn05906h0e60ks0ja0ro0jz0n5","0ml0ml___091042______05f0va1440580er___19x00000001z04p03h03u03803a04n02p05a05i0700gh04m05h0av0ma0n60rs0g70ob"],["Darumadrop One",400,2,0,"0j40j4___07b03h___0840780t80nx0990i3___15z00300901r04k04h04z04904302n00s06o07s0d10hc06q08w0gb0n20ij0q20hd0m0","0jo0ip___07603y___08607p0tp0mr0ca0j2___14s00200801z04i04g04x04w03v02e00k07308b0e50i007c0a20h40nx0i30pq0hq0mn","0n50n5___06r042______07r0ti0nw09r0im___11w00000001a04304604e03o04904j01g07c08h0el0j307a09g0hl0pk0na0r90ij0ph"],["Datatype",300,4,1,"0fm0f10fw03v04n0ko0880330q10rs0000bh0cu1p700800902o04r03l04403k04p02501u02z03503t07x03403j0690fv0j40rs0eg0g7","0ff0ey0ff03o03v0kk07f0420qh___0000el0g51pj00300b01e05d03r04804l04b02b01h03s04305c0b204004n09v0hp0jd0qy0eh0ff","0f10f1___05i057______0360q80rs0000c6___1ou00000002804b03a03x03j03804003b03303703l07q03703r07w0jc0nc0rs0eg0g7"],["Datatype",400,4,1,"0fm0f10fw03v04n0ko0880330q10rs0000bh0cu1p700800902o04r03l04403k04p02501u02z03503t07x03403j0690fv0j40rs0eg0g7","0ff0ey0ff03o03v0kk07f0420qh___0000el0g51pj00300b01e05d03r04804l04b02b01h03s04305c0b204004n09v0hp0jd0qy0eh0ff","0f10f1___05i057______0360q80rs0000c6___1ou00000002804b03a03x03j03804003b03303703l07q03703r07w0jc0nc0rs0eg0g7"],["Datatype",700,4,1,"0fm0f10fw03v04n0ko0880330q10rs0000bh0cu1p700800902o04r03l04403k04p02501u02z03503t07x03403j0690fv0j40rs0eg0g7","0ff0ey0ff03o03v0kk07f0420qh___0000el0g51pj00300b01e05d03r04804l04b02b01h03s04305c0b204004n09v0hp0jd0qy0eh0ff","0f10f1___05i057______0360q80rs0000c6___1ou00000002804b03a03x03j03804003b03303703l07q03703r07w0jc0nc0rs0eg0g7"],["David Libre",400,1,0,"0fm0g70fm07j02w0hd08x0360w31wf06f09q0bw1sr00c00903i04v04f05004w02j01p00b03203804607h02103105e0b80fw0n50dw0j3","0fd0gb0fd07002w0ht08b0430tm0rh0250cx0fj1tw00600c01u05g04a04w05f02v02900c03v04a05u08w03704d08k0fi0gh0nx0dg0ha","0kj0kj___07005s___07h03t0zw27e03z0am___1ds00100402u04003703n03d03503q03s03n03u04m09002b03h06f0ch0nr0rs0hc0np"],["David Libre",700,1,0,"0h30hd0hd06x02b0hd08s04q1501j708k0ci0ez1p900b00a02z05804n05304s02o01k00a04o04w06g0a502l04a08v0h50gf0n50f20k9","0fq0i70gq0f202y0hi09205e1161ao0840f30hz1ot00900c03105204l05105802j01l00705505l07n0bo03j05j0bu0i70gy0nv0er0io","0ly0ly___08c057___08b05s1bq1nr0620dx___1bb00200402b04603g03r03b03f03z03a05e05s0730br02x04z0a40n10om0rs0hc0pf"],["Dawning of a New Day",400,3,0,"0or0or___0g404o___04l01l0m0___0dw05b___26t00o00p04m07205l03303501y00n00b01e01n02e03k01i02203805n04n0hs0f50wn","12g13e___0ge0al___0b803g0nv___0op099___1u800l00q02w07s05x03q03602200p00902q03p05i08c03304d07r0ab07r0id0ts1gu","0gp0k5___0qr02w___0eg01k0md0se07f05t___23z00e00m03o04f04504y03q03r01n00i01d01l02403601h01z0300540b00li0ad0ty"],["Days One",400,0,0,"0n20q80mh07n03h0lc06x07d0zl0qv0kb0hu0hx16o00200a01s04w04004d03x04a02t01g06z07k0b80kr05k06i0fo0ol0ks0rr0lx0s9","0ni0qg0mj0eo02y0lb07b07s0ze0kl0j40ih0j715i00100a01y04p03z04904k04402q01907h0840dp0l10600740gj0nu0kx0rq0mj0sf","0ro0ro___08x041______07m10p0pk0j00ho___0zp00000001k04k03j04203g03c04u02i07j07u0ck0od05r06i0fa0qs0pd0rs0kr0su"],["Dekko",400,3,0,"0ez0du0fk0790410if09b0380l60rm01m0by0dy1tx00900902g05r04b04z05303601c00802z03904m09z04004g0700ec0fo0mg0du0fk","0f70f70f70aj0310i509h04a0n90l202a0dt0gn1rj00700a02o05k04n03x05s03b01a00703x04c06q0c204w05p0ah0ge0gi0ml0e60g7","0hy0hy___07605s___02b03r0kw0pg0000d7___1e000000001w04u03704303j03804n02f03j03u05f0cp04s05a08o0gd0je0rs0fn0k9"],["Dela Gothic One",400,2,0,"0rp0su0nd0ah02b0jb09808i0z30s70lv0j30kf16c00500a01v05204i04q04a03r02o00j08e0940eb0mv06i07s0h70oj0j50pz0lx0u0","0qp0qp0lr0d401z0jf08j08n0ym0lx0m80jy0ld13x00400a02304z04l04s04u03j02h00608c09d0h80n506x0980iq0og0j10pv0lr0so","0uo0uo___08h02w___05809q1080tt0m40jx___0w600000101k04904303w03b03s04l02b09f0ac0k10sw07d08f0i10rn0p60rs0r70vu"],["Delicious Handrawn",400,3,0,"0ba0c6___08l02b___0cr03s0p717102b0ez___2a900900e02k05t05r05v02t01z01q00o03c03q04y07k03q05m0ba0gv0d00mt0af0cq","0b40ci___0c001v___0bj04m0qd0ei0380gm___1zz00700c01y05d06r05l03i01v01l00p03w04e07g09p04p0870de0j20e40nd0a60et","0da0e5___0ag02b______03q0pi0m50100dr___1z700000001h04e04704g03u03o03u01z03d03r04b07a03m0520af0jo0hz0r70bk0gr"],["Delius",400,3,0,"0hd0hd0hd08t03h0ii08b0360r70sb06f0aq0bt1pd00700802p04w03w04h04t02w02h01903103a04106g02w03j05x0c40gs0q10f10ii","0hb0hb0gc07p02w0jp07f0440rg___0130dt0eu1qd00200a01e05403s04a05404002e01d03t04705b0a003v04n08j0fq0ib0py0fe0i9","0ii0ii___09t04n______03a0s50s600h0ad___1he00000002d04703a04003q03704402y03403c03z06o02y03j06b0bg0ja0rr0f10ku"],["Delius Swash Caps",400,3,0,"0h80gy0h807t03g0ie0890360qs0sh07y0ak0bm1qo00600902p04v03y04j04p02u02j01903003a04306v02w03k05s0bt0ft0pv0g30ht","0gt0hb0gt09302w0jp07d0450r4___0280dg0el1pi00200a01f05403v04e05103y02f01c03v04805p0ac03z04r08o0fl0i40px0fd0i9","0k40k4___08s041___08e03a0qw0t403o0ac___1ll00200402c04803h04503l03604202n03303c04807m02z03n0630av0gs0rk0g30mz"],["Delius Unicase",400,3,0,"0j30j3___0ay06d______0420su0rn00g0br___1au00000002304f03703u03k03a04e03103u04405309p03l04a07e0fb0l20rt0cq0n5","0ia0ia___0a805s______04o0sv___00g0dt___19b00000000z04m03b03p04803c04c03c04d04r05z0cg04905108q0i60m70rs0ef0m4","0j30j3___09u05s______0400t60rq00g0bs___1bm00000002404c03a04003p03804503003s04104y0au03k04807l0f40kf0rt0f10le"],["Delius Unicase",700,3,0,"0kj0kj___08y057______05t0uz0ny0390f4___17h00000001n04j03f03y03k03h04s02f05j05v07s0fi0520650c70o50n70rt0gs0oa","0jq0jq___08s04x___0200670tz0gh01v0gk___16n00000001q04g03g04104103k04x01m05x06d0930g605j06p0e70nl0n10rs0gr0no","0ku0ku___06e057______05s0va0nx02g0fc___18f00000001o04h03i04403p03e04l02e05i05t07u0g20510610cb0pf0mq0rt0j30nq"],["Della Respira",400,1,0,"0fn0eh0gs0ad02w0g706y03d0tx1co09s0b40c71q000300a02r04v04604r04f02302k01u03403l04c06q02l03b05y0c20f50r90db0hd","0fq0er0g80f102y0fj07c04g0u10zn08p0e20fc1pg00200a02v04w04905903y02202r01g04604k05p09j03l04j08h0e90f00rn0bs0jn","0i80ij___0b4042___02w03l0tu1al0610b4___1ci00000002d04003703g03x03c04403e03k03p04o07703203k0680by0kv0rs0eh0ml"],["Denk One",400,0,0,"0ek0f50ek07803i0je07f05814d1lo0120id0js1z900300802i04904a03z05203n02701m05105e05x09503k08x0j60qy0jg0rq0dz0fq","0du0eb0du06c02z0je06k05i0yu10b0130jh0l51y900000802304d04904o05303e02k01705b05q06k0bn04e0a10iz0pq0js0rr0du0et","0f50f5___070043___0530591521lo0000ix___1s500000102403o03p03i04404403u02s05805p06509k03k0a00oc0s10qz0rt0bo0fq"],["Devonshire",400,3,0,"0dh0dh0cw0id01r0gz0e60410kw0jz0580fv0ie2e100c00c02005e04u04a04h02f02h01803c04705y08p04l06h0ab0gc0fy0qg0cb0jx","0du0du___0zs02z___0e60650sp0dw08p0i3___1jx00c00c02605a05105104002i02n00i04a06609w0dq05k08e0en0j50fz0pz0bv10k","0fk0fk___0lf01q___03b0400mb14p04n0fr___24c00000101u04a03s04003a03v04t01w03d04a05v08o04706109s0go0n70r80cp0hb"],["Dhurjati",400,0,0,"0k30k30ji08f0450jl07p06g1a21le0f70gr0j219r00100802g04y03k04k05203b02h01706e06g07h0he03v04k0fe0ow0k30qt0ji0n2","0k60k60j808103u0jr07606t17d1540f70hx0ke1a600000601g04u04604e04v04102g01g06r06w08u0hn04b05u0go0ni0k40qv0j80m3","0la0la___07q04q___02d06n19x1oo06y0hw___15x00000002204803503t04803304403506m06o07g0h503z04n0g30rp0ql0rs0k30ql"],["Didact Gothic",400,0,0,"0ii0ii0hx07m0420j408203b0s30rs05g0ai0bu1nn00600702n04p03x04a04f03f02a01r03403d04307c02x03k0630de0he0r80fm0j3","0hz0hz0hz0c70300jb07m04c0sv___03z0dl0en1ol00200901j05804504h05g02j02c01t04204e05h0aq03s04p0930gb0i10qw0ez0jz","0i80ii___09b04n______03e0s70rs0000au___1gx00000002b04903h03v03h03904203503c03e03z06w02x03o06l0dw0ju0rs0f10k8"],["Diphylleia",400,1,0,"0im0ix0i107u02d0ji08v0360x21cl07h09909t1l200a00c02z04o03c04504q03602402202u03a03u05p02902v0530ap0ha0rb0fz0kp","0hu0hu0hc0ce02z0k607n04a0wf0os04n0cb0dw1m200300g01m05b04004b05003a02n01403z04f05f08b03704707f0er0hv0qq0fu0it","0jo0jo___0as03h___0840390zb2is05n09b___1cz00600803003t03703k03403303m04103403d03z06k02202q05c09o0ml0rs0c60ml"],["Diplomata",400,2,0,"0um0l00x80bh02x0is06z04116r20l0pl0f50fp1s000300h03d04w05104i05t02w00k00602h06c07z0b901z03607v0i80i70la0sk0ye","0wg0k50vg0eg02y0lf07c0aw2lx12x0q00hi0g60yx00100d03b04s04z05805i03500f00209t0ba0dl0ig02p0530ds0ix0i00ls0si12c","1gu1gu___06a07h___08205a1fg1jj0rs0f0___13k00200201q04403a03k03i03p04103s03b0800bw0f502b03o09e0ql0rs0rs10r1q1"],["Diplomata SC",400,2,0,"19y17n1at0h20360ne06w0471571l20rs0dk0eu19s00100201z04o03r04903k04c05100503407u0ai0fw02903l08h0mp0o40o41471j5","18q16a1b70hp03y0ne02y06k1dz1z60rs0fu0gs0xz00000002u04003q04304304903p01505d0c30fo0mp0310540ck0ni0nv0rs13b1j2","1gu1gu___06a07h___08205a1f91jj0rs0f0___13k00200201q04403a03k03i03p04103r03l0800bv0ex02b03u09b0ql0rs0rs10r1q1"],["Do Hyeon",400,0,0,"0h90ja0h907k02w0kd07i0560rr1kw0130ha0i51iz00400902i04p03w04804703z02l01e05305e07q0g005305v0fn0nv0kb0rs0h90jk","0ht0it0ht0g002z0kh07g05v0s10ks02d0i40ir1gk00200902404t04004c04x03m02p01205i06009w0fy05m06q0g80n80jz0rr0fu0js","0jk0jk___07303g______05h0t11ob00h0hc___1d000000002a04e03c04003h03804n02h05b05i07i0hf05505u0fs0r70p10rs0iz0jk"],["Dokdo",400,2,0,"0lk0m4___08c07y___09q07i14o0w209v0gi___0x700600b01o03t04u05504l03o02r00u06807g09l0hh04l06o0cv0lb0gj0pi0ju0nt","0l60m8___08207f___09w08913v0il0bb0hz___0vr00500a02104503y05j04u03303100u07208e0cl0i905i0800eo0nd0h70pl0j20oc","0mr0mr___08j09g___04w07s1270uu07y0gh___0vf00000401r04b03o04h04d03b04d01g06i07t0al0ij0530780e30p10k40qr0ji0ou"],["Domine",400,1,1,"0hb0hw0hb08a02w0j406i03v14w1tj07h0bw0co1oi00200d03304m04104d03s03z02w00n03r03y04p08502c03006x0ev0ih0py0g50lc","0hr0hr0gr0i102h0jj06d04m10u1gq05x0em0fq1p500000d03604j04404g04p03i02t00704h04t05x0980350490900hm0iy0pw0fs0jq","0ld0ld___07o042______04617c21k06y0c0___1g000000002q04303d03n03503903l03z04204a04z09t02j03007p0ec0p00rs0hc0pf"],["Domine",700,1,1,"0ir0j10ih07f01q0j406k04w1741kx09m0e50ez1n900200d02s04x04504g04003t02x00d04t05206609x02w03w0900ib0ip0po0hb0lx","0hr0i90hr0km01z0jh06d05f11h1d005p0g10ha1ny00000d02z04u04404d04t03e02t00705805p07a0bm03k04x0ay0jo0j20pv0fs0kp","0np0np___07o057______05b19a1rl0bx0eb___1en00000002d04d03h03o03303d04003i05605l06i0br03404209j0l80q10rs0jn0qk"],["Donegal One",400,1,0,"0hy0j40hy0b602w0ij08x04512f1wt07s0bw0dl1ix00a00803304q04004b04f02y02b01j04204905f09g02k03e0760f30hl0qu0fn0lf","0ia0j90ia0f502w0hs08d04t0zj0sp07y0ea0gk1j900500a01s05h04704i05d02s02i00r04o05206v0al03704a08m0fy0hc0pt0fe0k7","0lf0lf___0c303h___06y04712y21w06p0bv___1cv00000402s04703d03q03203904003b04104805f09s02m03g07c0do0mp0rs0gs0ow"],["Dongle",300,0,0,"0ij0ij0j509204i0jf09603n0sk0r609z0b70c61gb00800702s04v03f04g04j03n02301m03h03q04n08s03903u06p0dw0hm0qn0g50jr","0j80j80j80920370ju08604z0t2___08q0ec0fc1h300500801k04c04e04q04704g02m01704m05206r0da04i05d0a80h30ic0qr0h30ka","0j50jg___0ao050______03s0te0rn03l0b6___1aw00000002c04b03f03f04702q04703803n03t04m09603b03x06z0dr0jo0rs0eq0mz"],["Dongle",400,0,0,"0j50iv0j507v03l0iv09804z0tw0q80ap0ea0ft1ha00700902f05b03q04q04v03302e00t04r05206p0dr04g0590av0ib0hm0pu0ik0kd","0ip0ip0jq0ht0340iz08h0630ux0m80ai0gl0ih1fc00500a02g05c03g05305n02x02000j05k06609g0fd05b06j0dh0j90id0pp0gm0ks","0jr0jr___09v045______0580uk0qf03l0ec___18w00000001y04m03404104502x04o02d05205b06t0ey04k05j0b70m70lh0rs0fx0nl"],["Dongle",700,0,0,"0jh0jh0jh07c03j0ix09f0640tx0p80b80gl0hw1da00700a02505b03r04t05h02n02n00k05y0680980ge05k06n0ea0lq0i00q00ia0kn","0jt0jt0jt0cx0350jv08i0700tu0jb0bu0i60kg19f00500b02705f03i05605g03301x00n06m07a0cz0hk06g0890go0mh0il0qn0is0lw","0kx0kx___09404s______06l0us0oh05h0gr___15100000001q04p03904703o03m04602i06f06p0a30hn05u0740f80q40n10rs0hc0oi"],["Doppio One",400,0,0,"0go0go0go08o04l0iy08s04n0uc1580440fi0gk1l700800802h04z04a04n04e03b02z00c04k04r05o0di04204p0cl0jb0ih0pj0ed0ie","0gp0gp0h707l03y0jg0950580ui1f80250gy0hw1kc00700a02k04t04804n05203502r00605205d07e0dw04m05p0e30jw0j10pu0fq0io","0ij0ij___09d0580gv___0540up1e60000fd___1b700000001z04d03d04303g03a04g02v04y05706b0fc04n0590dm0qg0oc0rs0f20lf"],["Dorsa",400,0,0,"06906906904s01p0j108b01q15u0sc0000cl0dh4kk00700902w04g04h04f04l03g02500z01p01q01q01w00z02f0c30jo0j70r005o069","0jr0jr0sn0mt03y0jh08803s0r813h0bl0jb0kf2f900400902h04p04j04l04s03c02700w03704008b0c004e0cl0jq0q70ju0r00et12i","06c06c___05h02b______01r19d0s10000cy___4cu00000002j03w03x03u03g03t03t02l01r01r01s01x0110260ca0rn0qa0rs06c06c"],["Dosis",300,0,1,"0e20ft0e205x0440hs09902a0pq0rs01709d0af1y600a00803o04604903m05o01z01v02402902d02s04e02702m04v0b60ga0r90dh0ft","0fa0fa0eb0ab02v0hw08z03k0rw0k60330cu0dz1yg00700902o04m04704c05f02602901p03b03m04g08r03704507s0ej0go0qz0eb0g8","0fi0fi___03y05r______02a0q70rs00k094___1rb00000003c03i03b03u03e03503n03o02802b02n03z02902l0500ai0l30rs0fi0fi"],["Dosis",400,0,1,"0em0fs0em05o03i0ht09402x0r80rs0170at0c71wd00a00903c04e04b03q05n02102001v02u02y03h05s02o03806a0ds0go0ra0e10gd","0fn0gm0eo0bz02y0i90940410rl0j502h0dl0f01va00700902j04r04a04d05f02602f01f03o04205009r03l04j0990fz0hp0rj0eo0gm","0g30g3___03u056______02w0rz0rs0000ao___1pz00000002x03t03e03x03f03804003402u02x03b05m02p03806b0hg0m80rs0g30g3"],["Dosis",700,0,1,"0gs0hx0g707302w0hx0880590v10or03r0gj0i21p900600b01u05504h04p04n02i02p01e05705b06t0d804n0610dk0ne0he0rh0g70hx","0h90hr0g90dw02y0hm08e05x0vb0gm0480hm0j71n400500b02404z04f04q05502602p01605n05z08g0eb05406v0eb0nc0ht0rp0fs0iq","0ie0ie___065041______05a0ut1nz00i0gr___1ji00000002504c03m04003e03j04k02805905b06l0e304o06d0eq0qs0oe0rs0ht0iz"],["DotGothic16",400,0,0,"0fn0fn0fn03d0160jg02002u0rq0rs0000b30bn1vg00000002904s04704k04e03t02b01h02s02u02y06x02t02u0550dj0hf0px0fn0fn","0ns0fv0vp0yk05y0k802e04e0sw___0dw0er0fm1i100000001d05504k04l05903g02g01004604s08f0b903z04z0au0ir0jq0pz0bw1bk","0f90f9___0170150nm___02t0rr0rs0000b6___1w800000001x04003l04104603e03x02t02q02t02t06c02r02t06w0j90nt0rs0f90f9"],["Doto",400,0,1,"0s00s0___000000_______________0rs0rg___02m00000002703o03o03o04e03o03o02x0s00s00s00s00rt0rt0rt0rt0rs0rs0s00s0","0jq0jq0jq04503y0jx08a04g0th0hj0ap0cf0dz1a100600b02n04h04104g04r03a02a01f04304h04s0bs0450470510eb0g10rp0jq0jq","0rt0rt___003000_______________0rs0ri___05f00000002703o03o04e03o03o04602f0ru0ru0rz0rz0rt0rt0ry0ry0rs0rs0rt0ry"],["Dr Sugiyama",400,3,0,"0ja0i510v0o70540a70bk03a0p70gx0ap0am0gr2kd00h00j03h08t05q02p02701w01o00d01v02y04i07e02k03u06809406x0ko09n0z5","0rw0il___0sh05l___0bm04j0pb___0fv0dk___1dy00f00i02g08w06b03j02801z01d00702y04e0740c203z05s08c0bo07j0ke0il1s5","0jm0jm___0ts057___04p03f0p912j08s0b6___23500000702p06i04j03n02o03003l00y01z02v04q07v02r04306f0a50cc0pd0cp0tz"],["Duru Sans",400,0,0,"0h80gn0h809l0560ko09a03i0uf0rs02l0ax0c41ha00900802e04m03u04803o04n02201w03e03k04407x03203j0750fn0iy0rk0ds0iy","0hl0hl0hl08g04w0lb09b04c0sq0mj03a0ds0f01gu00700802g04i03q04504804p02b01c04704g05g0b504004t0a90i60jv0rj0fm0jj","0h80h8___0b0056______03k0u70rs02p0b2___1da00000002504903g03x03i03803x03e03e03l04407f03503m0710ee0kc0rs0ds0l9"],["DynaPuff",400,2,1,"0j30j30je05102w0lz06z05n0tj0lt03r0fr0gs1lf00200b01q05b04a04p03w05102b00a05805q07j0ea05005x0by0k20jv0oe0hd0jo","0j70ip0jo06k02y0lg07d0680to0e806o0h40i71gg00100a01v05404804n04o04o02100905u06b09a0fo05i06n0dk0ki0jz0ov0hq0jo","0jl0jl___08h03g______0670tl0lr01u0g9___1c000000001k04o03x04a03d03i04u01q05j06608i0fq05g06f0c00mj0n70r50hv0lb"],["DynaPuff",700,2,1,"0lf0lf0m00ax0160m006z08m0x30iw0d00k00kq1cw00200901j04u04w04t04b04t02200908108y0en0jf07a0a00j90nq0kd0ok0jo0n5","1t21uj15e0d507e0le07e0910yx0d80rs0jb0kl10d00100901p04o04x04s05004f01u00808b09u0ho0lo07p0cb0ka0og0k00ov18d33d","0n20n2___08p01q___01r09n0yk0kn07l0kc___14t00000001b04604h04d03f04f04901e08q0a80hh0lk0850az0l80qg0o80r60kr0pd"],["Dynalight",400,2,0,"0j30hx___0so04m___0af02u0zk0ro0bg086___2sz00d00j02j05n05q05c02702k02400t02e02w03704501r02a05h07h0cq0np0f10z9","0se0pd___0h90630dy0aj04p0xo0jb0h30ck___1ix00c00h02t05u06304002w02m02300o04704l06e0b103505q0a10cq0dj0nr0g812k","0nd0nd1er0ph01q0nb09t02z0zc1a70cc08708j1pl00600f02d03v03x03x03304404002002m02y03503r01o02f05h07i0ke0r40k6163"],["EB Garamond",400,1,1,"0hq0ic0hq0f902y0gk0bg03d13e20809o09o0ba1o200800803s04n03n04o05201p02t01303503k04e06x01v02p0550b80fm0q20e70lv","0hl0im0hl0gp0340h70b304n10a0gs0a40cy0fp1mq00900902405h03a04n05q02102102104d04u06a09502x0480800ft0gn0qn0dg0pu","0mi0mi___0bh057___0a603r16o2kn0bj09o___1bt00400303703p03903p03503403o03t03n03w04t07l01y02q05l0b40na0rt0gr0sv"],["EB Garamond",700,1,1,"0j70ke0ib0ev02o0h50bh05o1gp1dq0aa0d90g31k000900903104v03x04x05401x02p00v05805w06z09y02f04509w0hj0gr0ql0fd0rr","0jd0jd0ig0ra03p0gl0bc0651ad15q0890fh0ij1jl00c00902y04l05c04r04d02402i00o05r06f07q0b903204x0bn0hp0gs0pz0er0m4","0nc0nc___0g304m___0ad06t1sz1nj0bl0db___19n00400402i03w03k03x03903g03u03705o06t07j0b102g04009y0mk0ow0rt0ig0v4"],["Eagle Lake",400,3,0,"0jh0jh0ib0cn02y0fd0ce04418u1130d309m0bd1nj00e00l03c05l04l06203z02500t00c03i04405b07o01t02w05t0ci0d30kt0gj0n1","0h70gq0h70d202v0fw0b504t13l0e70c00cx0ew1lp00d00k02105k05105i05302601300f04c04w06909202p0410840f20ee0lw0fa0k2","0oa0oa___0cm05i___0b304v18n12n0aw0aj___17a00a00902004d03q04003j03g03y02a03v04x06h09402903f0790el0j60r60hc0sx"],["East Sea Dokdo",400,3,0,"0hd0it___06803h___0e605x1690ve0920em___1di00k00m02905104s05a03l02h02p00k05b0620760bq03k05m0c80ik0eh0ph0f20jo","0ia0kb___05r032___0ej07815d0zq0c10gr___18700k00m03305004w04004602j02i00h06g07b09z0f104q08h0ep0m60ek0ot0f80kb","0jz0jz___031044___0e706718d0wb0360ey___1a500j00o02d04c03w04204503a03v00o05o06f07l0c903n0630dv0lf0ia0pj0it0lr"],["Eater",400,2,0,"0hs0l40iw05y01o0nc07804y1760xf06y0dq0be1lp00701002l04503204003u03y04c00q03a04y06l09p01o03x07y0g40lo0p40go0l4","0ln0ln___0g201z0nf06c0631010zu0990ex___1d000500l02m03v03m04503y04804400l04y06e08w0db04105y0bp0kk0lt0pq0jo0nm","0j40k90jo05u02m0n508y05415117003z0eq0be1kg00a00l02j03s03e04003f04104v00y03h05706y0a101y04c08h0gy0n50q30eh0lf"],["Economica",400,0,0,"0b40bp0aj05k0430kf08102o0sn28v0170cd0eg28h00800903e03z03y03r04f04c01o01w02n02r02z04q02i0380ae0kg0k50rs0aj0bp","0bs0bs0at06m02y0la08303v0rt1ja0150fx0hn26000500b02l04e04204f04i04402401803l03x04l08003l05c0f80l60jz0rp0at0cr","0ca0ca___04m059___06r02v0tj28n0000cs___1z300200602z03k03h03604d03m03203d02r02w03204j02j03j09d0oo0m20rs0aj0cv"],["Economica",700,0,0,"0cb0cl0cb06y03j0kg07j03v0sf1vs0130g90i222z00500a02y04h04103s04m04302001h03t03z04g09x03p0560gf0of0ka0re0bq0dh","0cu0cu0cu06h02z0kn07g04l0r11950130hy0j91zt00200b02e04m03z04g04r03v02c01204h04p0620aw04l06y0hu0oj0k30rr0bv0du","0dg0dg___07x03t___07d0420th1wl0000fv___1w400200602k04003j03a04903l03k02t03z04304i0a403r05f0f50rl0og0rs0bp0em"],["Eczar",400,1,1,"0hd0hn0g70ni02m0i408p03u0yo1td07l0cb0d01ov00700a03904x04304n04k02q02v00a03p03z05909302o03f06s0e60hd0ow0fn0lf","0h80h80io0ym02v0ip07l04o0we___06y0el0ft1o500300b01r05g03y04e05003602u00u04f04w06u0b003i04i08u0gj0i20pp0fb0mz","0lu0lu___0fy04l___0640470ze26j0860cc___1ez00000302t04a03a03t02z03404403d04604g05a0at02v03m07k0ec0oi0rs0ie0pa"],["Eczar",700,1,1,"0kf0kf0nl0ui0210il08r06t1ah17i0bl0gb0hj1iy00600b02j05204h04t04f03402o00b06r07208z0dp03m0660e20ks0i20ph0j013p","0lk0mk0hn10l01z0jc09707f1791350cg0h80jo1ej00600b02p04y04d04p05002x02j00807307p0ao0fn04j0720ft0lq0i10pp0jm147","0ni0ni___0hp040___07207p1e61fr0bx0gu___19o00000302604903n03w03m03504802s07d07q09q0fs03x06a0dp0qm0q20rs0l70ri"],["Edu AU VIC WA NT Arrows",400,3,1,"0e40fv0d80fk03j0ev0c600v0jt___04u05y08k45s00a00803904r04d04t03p01p02o02300t00v01401s00u01701z0450dv0r70br0i8","0h60ho0dq0nk02y0fl0e204b0p40qc0660du0ir1vr00c00802j05604d05403w02102j01m04104i06c0bc04c05r0a90f10f30rm0cr0jm","0hd0hd___09d042______00v0l7___00g05u___3dq00000002p03x03503g03f03304m03i00t00w01301p00t01501x0440hy0rs0bl0j4"],["Edu AU VIC WA NT Arrows",700,3,1,"0fm0hc0fm0co02b0f10bk0120md___04q06k0913sp00d00902s04e04b05d03f02302x01x01001401e02401101b02604b0ep0rc0da0k8","0js0js0ed0o702h0g70bn02z0g70cq09l0fq0j72k800e00c01j05704s05c03u02b02x01802o03j06n0aw03y05w09e0dx0fm0qt0fu0wn","0k70k7___0a003h______0120nw18z01z06g___30i00000002803y03903s03303b04x03b01001301b01x00z01902703y0lk0ru0hw0lx"],["Edu AU VIC WA NT Dots",400,3,1,"0dl0g60cq0gg03h0ei0c301n0qo___03105m07e27400900803m04m04f05a03e01w02102501f01o01s02q01d01q02r0600dc0q909u0hx","0fo0gn0dq0hy03x0fh0d70370p60lx04e0b10ek23300a00802v04u04g05604601y02501s02y03804906n03103u06q0c30ew0rl0br0jl","0gi0gs___09u042______01n0qj___00g05j___1rx00000003b03g03803904603003g03y01g01o01r02g01c01q02v0570fr0rs0af0ij"],["Edu AU VIC WA NT Dots",700,3,1,"0di0gg0d70hz03t0ev0c501y0r60sv04c06z09224700900803o04n04f04i04301s02302501t01z02803f01t02103g0810dp0qn0ak0i7","0et0fa0de0hs03u0fq0c903a0os___03h0bd0f822600c00801d05604804q05502402002i03103c04d0720330400700cg0f60rk0ai0j4","0gq0hl___0a4041______01x0ra0st00x06m___1qf00000003803i03a03a04303403h03u01t01y02203201s01z03j07l0gi0rs0az0j1"],["Edu AU VIC WA NT Guides",400,3,1,"0go0go______00l0g30c002k12n___00007f___25u00b00803804t04303q05x01v01m02202d02k03204r00s02003g07c0fi0q90f70i5","0ip0ip0ds0jq02y0fg0e50480rf13l09l0dj0j81zo00900803m04r04505104d01v02401g03r04d05d09t03604s0890f20f60rp0ds0rk","1ri1ri___12e00k0fw___02i10j___0ld07t___1sc00000002v03x03403105i02y03903602c02j02w04900s02003e06m0fe0rs0th3ah"],["Edu AU VIC WA NT Guides",700,3,1,"1fb1fb___0uw00l0fu0b00524gyzzz0dw0e5___1ub00e00a02705404h05404d02302401q04q05306i0bh00s0430750eq0fc0r80ho45d","0kq0l80eb0qh01z0fg0e60650wb0os0cg0hb0ns1kb00d00a02q05204i05903x02302h01605v06c0an0ej05207k0ey0jo0fu0rq0ft0zj","27l27l___18t01r0g7___0514kenju0jg0d1___1iv00000001u04d03k03m04e03f04a02d04r05306d0cz00s0420730eh0hd0rs0ku46h"],["Edu AU VIC WA NT Hand",400,3,1,"0dh0fu0cw0gf02y0ew0c30290p90rw04c07z0b124300a00903m04s04k04o03t01r02501z02702a02r04402102p04o0a60dq0qu0ak0i6","0fq0gp0d90e102y0fp0d703n0pv0kh02q0br0g721u00a00902r04z04g05204b02102c01d03c03p04o07w03b04e07u0ds0f40qy0bs0hp","0go0go___0ab041______0290ps0ru00x07s___1qk00000003203o03d03d04003903m03h02702902n03s01y02n04o0a10gv0rs0bi0ie"],["Edu AU VIC WA NT Hand",700,3,1,"0fb0h20ep0f602n0eu0c804s0u714c05g0ec0id1to00e00a02o05d04t04y03e01w02p01e04o04s0670av04705g0b40fs0eb0r70cy0k0","0fu0ht0dv0du02z0fi0d905g0tr0fe0480fk0k91nt00e00a02605a04n05f03t02502n01205305g07t0ck04u06m0d90hh0f40r10cv0jt","0j40j4___08n03h______04t0ul0qv00g0e7___1hq00000002604a03k03t03r03f04i02d04q04v0610c204705k0ad0ip0kh0rs0db0ku"],["Edu AU VIC WA NT Pre",400,3,1,"0fu0gf0fu0ci03j0ew0c40290p80zd05207w0am22z00a00a03r04w04f04r03r01p02301w02702a02s04a02102n04l0a90dd0qo0b50hm","0gd0gd0gu0im03d0fy0cd03l0po0nc05p0bw0f71zu00f00a01f05m04a04m05302302002003903n04r08203a04807n0dq0fb0qy0bk0j9","0go0go___09v041______0280pe0s300g07t___1qm00000003203p03f03d04003a03m03e02702902n03s01y02o04o0a40gh0rs0bi0ie"],["Edu AU VIC WA NT Pre",700,3,1,"0hb0ir0h00ct02y0ew0c304r0tr14b03s0e40gw1tt00g00b02p05n04q05003a01u02l01c04n04s06i0ar04605e0ak0fd0dz0r70cw0jd","0it0it0hb0oc02z0fi0da05i0tz0fv0660ex0ig1kp00g00b02705i04k05h03q02202k01005405j08k0d304u0660cy0gy0ez0qy0fu0ks","0jo0jo___08r03h______04t0ug0qt00g0e7___1ht00000002604a03l03t03s03g04h02a04q04u0600bw04705o0aj0iz0jy0rs0db0ku"],["Edu NSW ACT Cursive",400,3,1,"0ex0ex1hw0t104l0el0bs0260n40sp04s08j0a82ar00a00903q05104o05d03701m01z01q02302702p04d02402u04i0ac0cf0qn0aw0hs","0fa0es1gh0qf03t0fq0cw03l0oc___03p0c20f522900d00901f05m04l04t04n02001w02803703j04w08303d04n08e0e30ed0rj0cf0h6","0fi0fi___09z04l______0240o80s600g081___1u900000003003p03h03j04j02t03l03802302502h03i01y02q04p0af0gb0rs0c20h8"],["Edu NSW ACT Cursive",700,3,1,"0hs0hi1mj0pc0410el0bt04n0sp10f03u0en0gf1uj00d00a02r05l04r05h02l02502k01b04k04p06k0bo04805t0bs0gx0e20r80ec0ji","0hp0hp1m10pf03y0ff0d905b0s70fb04z0fo0iw1jh00e00a02a05i04q05d03j02202g01805005d08k0dr0510710de0j10ex0ro0ds0jo","0id0id___07z041______04n0ta0rz00w0em___1k700000002504903n03w04902y04f02904m04q05q0aq04805w0b80ks0l00rs0ec0ix"],["Edu NSW ACT Foundation",400,3,1,"0c30dt0bs0b702w0el0da02m0ni0rk0130a20dm25p00800703b04y04o05t02z02502b01802j02m03a05g02l03f0640ck0dy0od0ax0g4","0bz0bz0b20hl02s0el0cd03n0o40ja04f0de0in26b00e00702f05205m05i03202202901b03903m04u08o03o04w08y0eg0e50oy0b20gl","0g30go___09903g______02k0oq0ru00009d___1rw00000002u03t03j03x03s03e03p02t02j02l03204o02f03a05w0cs0h10rr0c30h9"],["Edu NSW ACT Foundation",700,3,1,"0dt0eo0d90ae02w0ej0db04p0sx11104q0eu0hz1tz00c00802m05e04t05v02p02f02h01004i04q0640aw04905u0by0i00e80p50co0hu","0ev0ev0dv0et02z0fi0db05g0sr0ey05s0gm0k41n300d00802505c04u05n03t02f02a00q05205g08r0c20530760dz0kc0f50ps0cv0it","0if0iz___08004m______04q0tb19600x0et___1ht00000002404d03q04803i03k04702304p04t0630b804d0610bl0l60kh0rr0ey0jk"],["Edu NSW ACT Hand Pre",400,3,1,"0dr0ex0dr0at03g0el0bs0250n80u106008k0ar26f00900803n04y04g05i03a01o02201t02202602n04302402s04i0ar0cz0qn0aw0fh","0eb0eb0eb0cr02v0fp0ca03h0nt0rz04n0cg0fd22f00c00901f05l04b04t04r02201y02c03703i04m08103d04g0800e60ee0rk0bg0g8","0fi0fi___09z04l______0240o80s600g081___1u900000003003p03h03j04j02t03l03802302502h03i01y02q04p0af0gb0rs0c20h8"],["Edu NSW ACT Hand Pre",700,3,1,"0g20gx0g208z03g0el0bt04m0st13405o0en0hj1vm00d00902p05k04m05k02y01v02m01c04i04n0690as04605k0bg0h80e20r70d70hs","0g80gq0fr0bh02y0fc0d905a0sg0fo06y0g30io1mx00e00902805j04k05d03i02702k01905105d08b0c804w06n0dg0jc0e30rn0ds0ip","0id0id___07z041______04n0ta0rz00w0em___1k700000002504903n03w04902y04f02904m04q05q0aq04805w0b80ks0l00rs0ec0ix"],["Edu QLD Beginner",400,3,1,"0ey0ge0ee0e803g0ei0d902p0nc0s005t09h0cs26d00900703905005205x02s02102501702l02p03h05d02k03k05n0bf0d20ob0ax0hu","0eq0eq0ea0fm02r0ek0ce03s0op0jn0500cy0hj21b00e00702d05506205o02r02002201803b03p05g08e03k04w08p0dy0dy0ow0b20hi","0gc0gx___0aw03i______02n0pn0rr01d09e___1ra00000002z03t03n03m04703g03602z02l02n03604p02c03c05u0ce0gr0rp0bo0i3"],["Edu QLD Beginner",700,3,1,"0fu0gp0ez0bk02b0el0d904u0tk0qy06o0eh0ho1q400b00802l05g05305w02n02c02d00z04l04t06q0ae04905q0au0fx0e10og0d80iz","0fu0jb0fc0ix02z0fh0dc05s0ub0es0740g30k21hs00d00802405e05305r03k02e02700q05405n08s0d504z0780de0i30f00os0dv0jt","0iq0j0___07r03i______04s0tz19b0000ek___1er00000002804b03r03s04303m03o02e04q04u0670bt04b05r0ao0j40jn0rr0dg0jw"],["Edu QLD Hand",400,3,1,"0ej0f40dy0bn03i0es0ck0280mo0sm05s08c0b92bq00900703f04t05004m03s01y01p02402502802q03z02402y04o09y0cp0qn0bn0hg","0eg0eg0d00dr02f0fq0c903l0og0hz03p0ch0f124c00c00701d05c04x05b04f02102101x03603j04y07j03e04l07p0d60eb0qy0bk0gd","0ga0ga___08y03i______0270oy0to00g07u___1va00000002x03m03j02z04j03902y04102502802j03k01y02r04v0am0g60rs0bm0i1"],["Edu QLD Hand",700,3,1,"0f50gb0dz0aj02c0et0cl04s0te0ru07j0eh0i81vc00b00802l05e05204u03d02702801m04j04s06j0a004805q0b00fx0e80r90cu0in","0hu0hu0hc0c702z0fe0d805g0tk0fp08s0ft0j21o600c00802705f05405m03302702m01004z05e07z0ca04v06v0cy0hm0e20qz0ev0kt","0ix0ix___08b02x______04r0tx18l00g0eb___1j300000002504703o03d04c03g03t02u04p04t0640bd04905t0av0jb0k60rt0dz0ke"],["Edu SA Beginner",400,3,1,"0bk0bk0bk09r02w0ei0dg02n0p00rp0100a60do22200900803d04v04m05t02y02502e01902k02n03905202h0390610cd0dy0oc0az0eg","0bj0cx0b20c402s0ej0cf03q0pc0m201m0d20ic23900e00702f04y05n05n03002102a01a03a03n04q08m03m04n08s0ek0e50oy0b20er","0fr0gc___087043______02l0q00rq00009b___1op00000003203u03j03704l03f03a02w02j02m03104m02d03505z0cf0hb0rp0bo0hi"],["Edu SA Beginner",700,3,1,"0dv0dv0db07u02w0f20dg04t0tf16802j0f00iv1q500d00802l05e04t05t02r02g02i00z04n04s0640bc04c05y0cc0hz0ei0oy0c50g7","0dv0gc0cv0di02z0fg0db05i0tn0f301n0ge0kn1l000e00902505e04u05r03m02i02900q05305h0910c90510740e10k60f30p20cv0hu","0i30io___07a043______04q0tw0z50000eb___1fy00000002704e03o03n04503p03r02b04o04r0610by04805p0ay0kt0ku0rs0df0j9"],["Edu SA Hand",400,3,1,"0bh0c20b709f04w0el0bs0250nq0rx01208g0bt23q00900703k04n04j05j03c01r02501w02302502l03s02002q04y0as0dl0qv0ac0ex","0by0dd0bh0ag03u0fq0ca03j0pj___01m0cj0gi20v00c00701e05504g04y04r02302102i03703i04b07x03604b08b0dv0f50rl0ai0fa","0f70fi___08l056______0250ph0rz00007w___1og00000003203o03e03g04j02t03m03b02302502g03e01w02l04y0a30gh0rs0aw0h8"],["Edu SA Hand",700,3,1,"0ds0ec0d708g03g0el0bt04p0t715p04n0f00jc1ti00d00802m05a04p05o02o02802p01d04k04o05t0au04805u0c50i50el0r80c20h8","0ds0er0da09e02y0fc0d805e0th0fd01m0g40ka1mt00e00902505a04o05i03i02702n01b05105d08c0bx04y0710dr0kb0ey0ro0bt0ip","0hs0hs___07d04w______04o0tx1bo0000e4___1gi00000002604a03k04303j03g04f02c04l04o05q0b604505m0au0kk0kz0rs0ds0iy"],["Edu TAS Beginner",400,3,1,"0dw0f10db0b302w0ej0dh02q0o20yn03z09a0cu22a00a00803605304q05h02x02002501s02n02q03905202i03j06i0al0db0qq0bk0g7","0er0fo0cg0el03p0ej0cc03r0p20wo03o0c20hx21j00f00702b05805n05d02w01y02001u03d03q04t08e03q04w0980d80e00qz0bz0hj","0g70g7___08f03h______02p0ox0sc00g08x___1nk00000002u03v03j03q03q03a03m03902n02p03604r02e03k0660an0fw0rr0db0ii"],["Edu TAS Beginner",700,3,1,"0f20g70dw0bj02b0eq0dh04x0r512k0610er0it1s300d00802e05e04y05h02u02802m01b04p04z06n0bc04m0760cc0gq0eh0r80db0hy","0dw0fr0ci0ap02s0eg0cf05g0rh0ci02y0fw0ks1nc00e00801x05304u06g02v02402g01i04t05c08x0bg05c08a0dh0hj0e20r10c10go","0hn0hn___07m02w______04z0s718401g0ep___1gh00000002004c03r04003l03i04e02804w05106n0c604l0750ce0iw0j90rs0fm0k9"],["Edu VIC WA NT Beginner",400,3,1,"0dt0fk0cy0e702w0el0da02n0pa0rs04509b0cq20300a00903f04x04k05v02x02302b01802l02o03b05a02g03605p0bj0dy0od0bj0ha","0dt0er0cg0ij02b0ek0ce03p0pu0j60420cu0gr21i00f00902i05305j05n02t02102a01903b03p04u08g03k04o08d0dq0e40ox0b20gl","0gs0hd___09y03h______02n0pv0rm00w08w___1o000000002z03t03g04003i03c03r02z02l02o03504t02d03605n0bj0h10rr0bk0j3"],["Edu VIC WA NT Beginner",700,3,1,"0fk0fk0ez0am02b0eq0da04t0tl0uh0590e30ii1pm00e00a02m05e04s05v02q02d02g00y04p04t06e0at04805n0b50g10e90oi0co0ha","0dw0ec0dw0ct02b0eg0cg05a0tm0f00640g00jc1na00h00a02405505y05f02s02a02a01304u05707u0bt04q06n0cv0i00e30oz0c10gn","0ii0jo___08n02w______04v0uj0r100g0ee___1e800000002604c03m04703g03k04b02604r04v06b0cb04905n0af0iy0jy0rs0db0ku"],["Edu VIC WA NT Hand",400,3,1,"0dh0fu0dh0ej02y0ew0c30290p70rt04q0850ar26g00a00903l04r04k04o03t01r02601z02702a02r04402102p04o0a10dq0qu0ak0hl","0e70fo0dp0k102y0fh0d503o0qc0kl04n0c30fe23900a00902r04z04k05703w02102801n03b03p04o07t03a04d07w0db0e60rl0br0il","0gz0h9___0bv041______0290pt0rw00x07t___1t400000003203o03e03d04003a03l03h02702902n03t01y02n04o09w0h30rs0bi0if"],["Edu VIC WA NT Hand",700,3,1,"0f90h00eo0gs02d0ew0c404s0ub13x05g0ec0id1vi00e00a02o05d04t04y03d01w02o01e04o04s0670at04605h0az0fo0ec0r70cx0jy","0hs0ir0eb0ew02z0fe0d905g0tz0fb0690f40jz1pv00e00a02605b04q05i03h02602m01605205g07q0ck04s06h0d50hn0ew0ro0du0lq","0je0je___09503h______04t0um0qv00w0e6___1is00000002604903k03t03r03f04i02d04q04u0610c104705k0ad0iu0kh0rs0db0ku"],["Edu VIC WA NT Hand Pre",400,3,1,"0gf0gf0fu0ne03j0ew0c40290pa12r04r07z0am26100b00a03r04x04f04q03r01p02301w02702a02s04902102o04m0a40dd0qq0b50hl","0gn0gn0fo0sx02y0fh0d603p0q60ry07d0bz0fe1zf00b00a02u05804d05903v01z02601k03d03q05007w03c04c07p0dv0e50rl0br0jl","0gz0h9___0bv041______0290pt0rw00x07t___1t400000003203o03e03d04003a03l03h02702902n03t01y02n04o09w0h30rs0bi0if"],["Edu VIC WA NT Hand Pre",700,3,1,"0i60is0is0aj02c0ew0c304r0ts1480520e40g81vj00g00b02o05n04q05003a01u02l01c04n04s06h0aq04605c0an0fg0dx0r70cw0jy","0is0is0ja0f202z0fd0da05h0u00gh07i0f50i31ms00g00b02805k04m05j03f02302i01405305i08c0cz04t06d0cs0h10e40ro0ft0lq","0je0je___09503h______04t0um0qv00w0e6___1is00000002604903k03t03r03f04i02d04q04u0610c104705k0ad0iu0kh0rs0db0ku"],["El Messiri",400,0,1,"0ir0ir0ir08b0440jx0890451ac0rs06t0ax0cd1j300500902m04804a03v04o04001u01x04304804m0680230340720gz0is0rp0ge0jx","0ht0ht0hb0bj03z0k807l04z13c0sh05k0dt0fm1jn00200901h04l04704i04t04202d01h04s05205r09103104i0a50i90iv0rm0fu0js","0j60j6___0ao05t___07x0431a90rs04z0af___1dh00100302h03n03p03a04803k03803k04104604l05w02103306r0f00k90rs0ga0of"],["El Messiri",700,0,1,"0jx0jx0ir0e303j0jx08905r1m60rs07d0db0eo1h300500902d04d04i03z04q03w01v01r05n05r06607r02c0460bd0jo0ix0rq0i60lo","0ja0ja0ja0ca0320k108f06g1cr12h07f0fg0gy1gh00400a02l04c04j03h04v03w02d01d06806h0740at03b05b0db0jy0iq0rn0h90lb","0kx0kx___0c7058___07x05p1mg0rs0830cp___1bt00100302803t03v03e04703r03a03705h05q06807l0290420a60mx0ly0rs0gv0pl"],["Electrolize",400,0,0,"0hy0ij0hd09a0580j50b003p0wj38v0420cf0e21h700900603m04403s04203t03p02b01z03p03p0420bx0350360730ja0j90rs0fn0jo","0hv0iv0gv07x04z0jf0af04g0u92c801m0en0gp1j300b00602v04w03t04504v03201t01w04d04i05d0ex03x04a0aj0jf0j40r30fw0ku","0j40j4___09w06y0fs___03p0wi3ot0000cf___1az00000003b03n03504003302x04703k03p03p0410b20350360760no0nf0rs0eh0lf"],["Elms Sans",300,0,1,"0jl0k60jl05o03g0j809s02s0rt0rs09u08k09m1is00a00702x04h03v04104a03s01x02402n02u03g05a02g02w04l08e0gs0r60ig0kr","0ja0jr0ib07902w0jm09703y0sk___0990bp0cj1kv00600901l05103x04605703h02801t03i04004z08p03h04606y0da0ha0qs0hc0k8","0k60kr___06r041______02t0si0rs05508m___1co00000002n03w03e03r03l03503g03y02n02u03d05202g02v04p0880hw0rs0hv0o7"],["Elms Sans",400,0,1,"0jl0jw0jl07803g0j809s03c0rx0rs0a00a00ba1hw00900802m04r03x04404g03j02301x03703e04907003003j05o0bp0gx0rb0hv0kr","0ja0ja0ib09f02w0jm0960490sm___09u0cl0dh1jv00500901h05504004b05803d02901p03v04a05i0a503t04h0820e70hd0qw0ib0n5","0kr0kr___08304m______03e0sy0rs05v0a1___1bm00000002c04603g03v03h03503t03k03803f04406t03003i05q0ao0il0rs0ig0o7"],["Elms Sans",700,0,1,"0k60k60k608k03g0j809r05g0th0rs0c20ew0gn1d800800902205204404c04n03602g01i05905n07j0fn04z05x0bw0j50hy0rs0if0lb","0kh0lg0k008402x0jd09z0620ts0lu0br0g30i01b500800902504v04304a05902z02f01d05s0690930g705e06n0db0jn0i10ro0ij0lg","0lc0lc___0ar041______05g0to0rs0720eo___16j00000001s04k03l03x03j03b04h02n05905m07c0hd04z05u0bi0m10ld0rs0ha0px"],["Elsie",400,2,0,"0ht0iz0h90be0410iq08n03y1wh1cm08g0as0bp1pe00f00n03804f04d04n04c03601y00o03c03w04f0540160220560fg0hj0q20ey0kp","0ho0ho0h70c303x0jd09b0521ck10s04d0eq0eq1mu00e00n03a04d04904f04x03101y00i04o05205p06v02604a09x0ij0hw0pv09u0io","0li0li___0ad05t___09404p2he1kq05g0am___1i000a00h02r03m03p03d04603o03d02g03104p05205g01401z06a0gi0os0rs0fp0of"],["Elsie Swash Caps",400,2,0,"0fd0gt0fn0c80370gl08003l1nd0w108g0an0c01xc00c00t03f05204z04l05402601b00103303k04004r01602304q0d80fd0mq0dc0ik","0fk0gj0fk0c303f0hb08304n18m10807v0eb0fj1so00b00s03h04t04n05005g01z01c00104f04q05h06q02504508x0gl0fz0mr0dm0gj","0jd10d0jd0gt03j0n107o03y1r01a907g09m0aw1qw00500k03204o04f04204504002o00402t03y04f05301602a04z0bz0hw0n30f90lp"],["Emblema One",400,2,0,"0j40ij0ml09h03h0k909909n1tb0sa0940hr0j818600700c01v04n04m04p04204002901607w09l0a40b004409v0j60pl0jo0rd0cq0ob","0nl0nl0nl07a03y0l809d0a41pj0ls0cy0is0iq16w00700b02304i04h04j04m03s0270150860a10ao0bq04t0ar0jm0q30jv0rp0io0pk","0fn0fn___0bv042______09y1xv0sc04p0id___17l00000001n04404204503d04304902707309s0al0b50460ah0kj0ri0nq0rs0cq0n5"],["Emilys Candy",400,2,0,"0gs0hd0f211e02w0ij09903y1pi1um07t0as0ay1vi00700a02o04c04e04k04703402g01n02v03x04x06801h02305l0ea0hm0r70f20x0","0fq0fq0er0kg02y0ho0a004x1ah16d04h0e00ib1sj00700b03e04904b04e04u02b02g01e04d05006607z02c04209n0hg0h70rp0dr0io","0j10j1___0wn041___06c04r21p2ab0bq0au___1kd00000202g03l03m03w03g03m03q03g02j04u05q06q01i0250650fl0pd0rx0g50ro"],["Encode Sans",300,0,1,"0en0fj0ec06b0440if07r02f0sq0rs01s08v0az1up00500803304h04e04505403102o00l02e02h02w04x02502h04j0aa0h00pa0e20gz","0gb0hw0er0fr0360jj08003r0t70wp03z0cj0el1sk00100901o05803a05005e03b02m01003l03v04p08i0370470810fc0i00q70er0k0","0ij0j4___04x058___03p02o0u10rs00008o___1hy00000202l03u03c03y03l03603f03w02j02p03304v02b02n04n09c0ja0rs0g70k9"],["Encode Sans",400,0,1,"0ft0ft0en06e03j0ir07q0340ua0rs02b0an0cv1st00400902q04t04g04405702z02n00j03203503o06p02o03406b0f00h60pd0en0hk","0fp0go0fp0bc02y0jg0860460sp0ma03h0dq0fp1rr00400902p04m04a04n05103b02r00603y0470540ao03j04i09j0ha0i20pq0eq0jm","0i80ij___09n04n___04603e0v00rs0000al___1gr00000202a04303e04103i03803v03e03c03g03y07202x03c06f0e90kf0rs0f20k9"],["Encode Sans",700,0,1,"0i60i60h00b002x0ir07q05s0xe0rs0840gt0i31kd00400a02505904l04905c03302g00c05q05v07m0eo04o05v0en0lh0ib0ph0h00ki","0hq0iq0hq0ay02h0je0870680x20lz0580hq0ju1in00300902a04z04e04r05203902l00606306c09m0et05506s0g20lj0j00pr0fr0kp","0k90k9___0bm03h___05s06e0xh0rs03d0gm___19900000301q04f03k04303i03f04k02h06906h08k0ho05806c0ez0r40nw0rs0hd0n5"],["Encode Sans Condensed",300,0,0,"0dh0dh0cb05z02x0if07p02e0s00rs01709b0bv25000500803004i04i04705103202m00k02b02f02q04j02602l0590cq0h30pb0cb0en","0dh0fj0dh0jg0230j807v03o0sr1030420d00fo23j00100a01m05903f05105e03t02200y03g03q04f07y03704b0920g80ij0ps0cg0gl","0gs0gs___06k04n___03s02k0si0rs00k098___1pw00000202i03t03d04003m03903h03r02i02m02y04q02c02p05b0ax0j90rs0eh0hy"],["Encode Sans Condensed",400,0,0,"0dh0e20cw06t02x0ir07r0300tm0rs0160b10df22o00400902o04s04j04605602z02m00j02x03003f06702o0350740g60hk0pd0cw0f8","0dr0f80dr0e602y0jh0860430s31bx03m0el0ha21900400902n04m04a04p05103b02p00603t04404v09p03l04t0aw0ic0iw0pr0cr0ho","0h30hd___07604c___0430380tv0rs00k0b0___1og00000202804203h04203i03a03u03b03603903p06d02w03e0730h40kx0rs0f20ij"],["Encode Sans Condensed",700,0,0,"0f80ge0en0ay02c0ir07q05d0vz0rs03e0h50il1ty00400a02505704n04a05903302h00c05a05e06p0cn04j0650g10mo0if0ph0en0hl","0gr0hq0es0h501z0je08705x0w40my06y0i50kl1qx00300902b04v04g04r05103902m00705q06008o0d705207n0h70mj0j10pr0es0nn","0hy0hy___0fg02w___05j05u0vt0rs0210gy___1gk00000301q04d03l04403i03g04i02h05r05y07m0f705306k0fk0rg0oc0rs0eh0ku"],["Encode Sans Expanded",300,0,0,"0gz0hk0g405q04p0if07p02j0ts0rs05x08d0ai1mx00500803604i04b04205503102p00l02h02l03505f02602g04408v0gn0p70ft0ir","0hi0ij0gh08l0330j307u03v0us___04u0bv0eb1mn00100a01p05803904y05d03v02v00903m03w04s09103503x0770e20hk0pm0gh0kl","0l40lf___05206d___03s02r0uy0rs01o08b___1bw00000202o03v03903y03l03203e04002o02t03a05802c02n04g08e0io0rs0ij0ml"],["Encode Sans Expanded",400,0,0,"0hk0hk0gz0870440ir07p03a0v70rs06j0ae0cd1l500400802r04v04e04205902y02o00j03803b03z07o02q03305s0d90h30pb0ft0jc","0hn0in0h608z03x0jh0850490th0m604g0dg0f31ku00400902s04n04504j05203c02t00504404b0590bk03k04b08p0ge0i10pq0go0kl","0k90k9___0a9058___04803k0vr0rs03s0a8___1ar00000202b04503c04003h03503v03g03i03m04807o02y03c05v0ca0jv0rs0g70n5"],["Encode Sans Expanded",700,0,0,"0ki0kt0jc08e03j0ir07p0690yh0rs0dm0gi0hu1db00400a02405c04j04705e03402g00b06706d08w0gy04w05u0dy0k20i70ph0i60mu","0ko0ko0jp0ba02y0je08606p0yi0mb0e70hk0jd1c000300a02a05104a04p05603902k00606h06v0ax0gu05806l0f60kz0iy0pr0ip0nm","0ml0ml___0aw04n___06006w0yz0rs08y0ge___13m00000301q04g03j04403i03d04m02h06u07109v0k405e06d0e30qn0ng0rs0j40q2"],["Encode Sans SC",300,0,1,"0hd0ij0hd06f0420m203702n0ua0rs02808c09r1ly00000102t04803u04o03i04c02l01s02k02o03405b02a02k04n0960gx0qa0g70jo","0hd0ja0hd0ds02w0lr03j03s0td___02q0c80da1mw00000101e04s03y04s04904g02n01j03i03v04l09p03504007i0em0i90pz0ge0ja","0ij0j4___04x058___03p02o0u10rs00008o___1hy00000202l03u03c03y03l03603f03w02j02p03304v02b02n04n09c0ja0rs0g70k9"],["Encode Sans SC",400,0,1,"0hy0ij0hy08q0420m303l03e0vb0rs0310aj0bm1k500000202g04h03x04r03j04g02n01j03b03f03z07w02u03906g0e90i40qn0g70k9","0i20jz0i20d203t0mj0430490u80mo02o0cu0dv1jh00000202i04e03v04k04005902a00x04304b05b0az03m04g08e0gu0ii0qs0h40kx","0i80ij___09n04n___04603e0v00rs0000al___1gr00000202a04303e04103i03803v03e03c03g03y07202x03c06f0e90kf0rs0f20k9"],["Encode Sans SC",700,0,1,"0ku0lf0ku09c03h0m505306c0y90rs0a50go0hv1d900000201w04u04604o03n04l02s01406806g09b0gx0500690ez0md0kx0ra0ij0n5","0l00mx0l00e002v0mj05806s0yc0lk0bx0hc0ie1bq00000202204p04304j04704g02k01706l06w0b60gr05a06y0fx0m80kf0qw0j30mx","0k90k9___0bm03h___05s06e0xh0rs03d0gm___19900000301q04f03k04303i03f04k02h06906h08k0ho05806c0ez0r40nw0rs0hd0n5"],["Encode Sans Semi Condensed",300,0,0,"0e20en0dh06703j0if07q02f0sh0rs01708y0bf1ze00500803204i04g04605303102n00k02d02h02t04p02502i04w0b80gz0pa0cw0ft","0ew0h10ew0cl0250jr08303v0th0zl04j0cw0ez1wf00300801m04504h05203y04p02k01103l03w04n08u03a04c0910g40i80qh0du0j5","0hy0hy___06p04n___03r02m0tf0rs00k08v___1lq00000202k03t03d03y03l03703g03u02k02n03104t02b02n04v0a80j90rs0f20j4"],["Encode Sans Semi Condensed",400,0,0,"0en0ey0e206q02x0ir07q0320u10rs0170ar0d41xg00400802q04s04i04605602y02n00j03003303j06b02n03406o0ff0h70pe0dh0ge","0eq0fq0e908s02y0jh0860440s50oe02a0dy0g31w700400802o04m04a04m05103d02r00603v04504z0a203l04m0a30ht0iu0pr0dr0ho","0hy0hy___07504n___04403b0ul0rs0000ao___1kb00000202904203g04203i03a03u03c03903d03t06l02w03c06q0el0kz0rs0fn0jo"],["Encode Sans Semi Condensed",700,0,0,"0h00ha0ft09q02c0ir07q05l0wn0rs03e0gz0ic1od00400a02505904m04905a03402g00c05j05m0790dv04n0630fc0m60ic0ph0ft0jc","0hq0ip0gr0ik01z0je0870630wf0n206s0i10jx1mq00300902a04x04e04s05203902l00705w0660990e305406x0gg0md0j00pr0fr0mn","0j40j4___0ej03h___05p0640wh0rs01i0gn___1co00000301q04e03l04403i03f04j02h0610680870gf05706f0fj0r80nw0rs0fn0m0"],["Encode Sans Semi Expanded",300,0,0,"0ge0gp0f805j0440if07q02i0t80rs02d08p0as1qi00500803404j04c04405403102o00k02f02k03105a02702i04c09u0gz0p90f80hk","0h20io0g008r0370js08403z0u2___02y0bz0e71nz00300801p04504e04z03v04t02l01103p04104x09e03b04907y0fg0i80qj0g00k9","0jo0k9___05505s___03r02q0u40rs00008j___1et00000202m03u03a03z03l03403f03y02n02r03805002d02o04m0910is0rs0hd0lf"],["Encode Sans Semi Expanded",400,0,0,"0ge0gz0ft0760440ir07q0370uf0rs02u0ag0ck1ot00400902r04v04e04305702y02o00j03503903t07a02q0340610e70h50pd0ft0ir","0go0ho0fp09w02y0jg0860470sz0m703e0dk0fq1o400400802r04n04704l05103b02s0050400490540b403k04d0910gn0i30pq0fp0jm","0j40je___09e058___04603h0v10rs00z0ad___1dl00000202b04403d04103i03503v03g03e03i04307g02z03d0600cb0jw0rs0hd0m0"],["Encode Sans Semi Expanded",700,0,0,"0jc0jm0i608i02x0ir07q0610y00rs0bg0gr0ic1gn00400a02505a04k04805d03402g00c0600650870ft04s05v0ef0kr0i80ph0hl0lo","0jp0jp0ip09w02y0je08606h0xf0lr09g0hj0j51ev00300902a05004c04p05303902l00606b06l0ab0g005706t0ff0lh0iz0pr0hq0mn","0lp0lp___0bo042___05s06o0yf0rs04b0gf___16600000301q04g03k04403h03e04k02h06l06s0960ix05b06e0eq0qu0ns0rs0hy0ob"],["Engagement",400,3,0,"0i60hv___0m005a0cb0cw03m0sx0w905k0bt___2he00j00q03005604u03k02v02n02m01w03603q04b05o02v04208a0da0bq0qy0ft0lo","0ho0ho___0o604x0ch0d004w0st11j07y0ei___1qb00j00n03b05404t03x02p02j03001904e04x06h0b204805z0b40hu0c10qw0gp0th","0hd0hd___08s0210nb08b03q0u40v400r0bl___1vm00500j01t03v03c03t03j03t04k02e03e03r04606202t03s0760ep0nd0rs0fn0j4"],["Englebert",400,0,0,"0fl0f00g605k02w0k70bu03l0rj0qn0140d90dp21600600b02404j03x04i03v04i02c01l03d03r04d06n03704b0940i50j90r90eg0gr","0fr0fr0es0bt01z0jn0c304i0s50lu04u0g80hs1yk00500b02d04m03z04j04q03t02h00v04604n05q0a704505m0bs0ja0jt0qw0es0gr","0ez0ez___0ab036______03r0v50u100i0dz___1wd00000001x03v03o04503503s04a03003n03x04f06n03504m0b80nm0ov0rp0c40g5"],["Enriqueta",400,1,0,"0gq0hw0g508502l0hb08o03a0v523908v0bp0d21s500e00l03b05204804e05901n02e00k03603h04w08k02o0330620c90g70pj0ef0jm","0hq0hq0fr0q401z0hi08c0470t31o809j0ek0g31sq00800m03d04z04904g05t01m02b00704304j06i0aq03j04d08c0fj0gy0pr0ds0ln","0ki0kt___08o042___07403n0w22780500bt___1hb00300e02q04g03703f03a03203l03m03i03r04u09p02z03d06p0ci0lj0rs0gr0no"],["Enriqueta",700,1,0,"0ih0jc0hb0a401q0hb08o05b0zh1fh0a40gj0h61ph00b00n02n05g04i04p04x01z02d00a05405n08h0cs03w04y0b50hh0gt0po0fl0k7","0iq0iq0hr0t701z0hg08c05u0yi1510aa0h70jb1or00600n02w05904i04t05b01u02700705j0680980do04g05v0cu0i50gz0ps0fs0uk","0ly0mj___09f03h___08305y0zj1ja09u0gq___1cd00400d02304q03i03n03903b04602o05u06d0ae0f004i05l0bz0nv0ny0rs0jn0q0"],["Ephesis",400,3,0,"0it0le0u30pu04n0c50b702l0zv___07l06s09j20c00c00z03c04q05404q02e02p02t00q02802n03c04m01j02103j05t0bo0ov0af0ti","0m60lo___1060450d10ay04t10n0cm0af0bh___1l200a00n02o05d03q05o03202u02x00n03x04u06x0ak02x04807f0al0d80po0bc115","0lf0ma___0g203h___09f02j10p0ww06y06b___1g100801702w03803b04i03203l04d01h02902m03c04r01i01y03305i0kb0q20bl0u3"],["Epilogue",300,0,1,"0gs0gi0it05j0580jp08902q0r50rs06d09k0af1oa00800802m04n03w04603v04d02001u02n02r03b05i02i02z0550bc0i20r70f20j4","0ga0fb0h807w03u0jn07f03t0r5___04t0de0e11qb00300b01d04z03z04904m04901x02203i03v04t09a03f0490820f80ib0rl0ed0i7","0gi0gs___05w058______02q0rj0rs00009w___1nb00000002d04203i03z03d03c03r03g02n02q03304y02e03005y0c60ki0rs0eh0ij"],["Epilogue",400,0,1,"0hd0g70j408y04n0jq08a03l0s80rs05o0cd0d51mo00700902b04u03x04804404402901n03i03n04i08r03903v07b0fn0ij0re0fn0j4","0h20g40hj07p03s0ir07z0480ru0le05c0f90fh1pm00500a02h04t04104a04z03n02j00o04104a05k0bt04204r09i0hb0hh0qo0f60iy","0gs0gs___09k04n______03k0so0rs0000cd___1lk00000002104903i04103e03d04b02y03i03m04407q0360400870hs0m70rs0dw0j4"],["Epilogue",700,0,1,"0jo0j40lf09f03h0js08p0660xi0rs0880hh0il1h200600a01z04x04804d04b03r02g01e0620680830fz04x06b0ex0o00jc0rs0gs0lf","0i10hk0je0ca0380i807s0620w90l408p0i70jk1jb00500a02704u05b04m04t02j02h00m05u0660970ex05006q0f80mk0ht0q00hk0kc","0j40j4___0ac042___05s0640xp0rs00g0hg___1dw00000101q04e03q04103d03m04j02f06206707n0fl04x0700gv0ro0ok0rs0f20ku"],["Epunda Sans",300,0,1,"0g70gs0g707d03h0ku08b02y0s50rs01t0ab0bf1oq00700b02p04k03t04b03n04m02d01c02v03003j06602t03305w0d70i70p20f20hd","0gz0hi0gh08f0330l407u0450r20tb03s0d70ew1p600200a01o05403104j04n05002j00z03r04905b0as03u04j09a0go0ip0pm0fg0jk","0gs0h3___07u04n___0350330st0rs0000a9___1i600000402h04603f03u03n03704102z02x03703o06c02u03706d0cg0ir0rs0dw0j4"],["Epunda Sans",400,0,1,"0gs0gs0gs08q03r0ku08a03s0v00rs01p0c40dk1nl00700b02g04o03y04d03o04j02f01903n03u04f08103803p08g0hl0it0ph0fn0hy","0gt0ht0gt0a102z0kh08b04n0u90ne03s0ei0fv1n800500b02p04r04404h04m03r02a00n04e04q05w0bv04204t0bi0i90iz0pu0fu0js","0hd0hd___09k042___03603y0wg0rs0000ce___1h500000302904903g03y03l03b04802n03q04204l09i03d03u08a0ho0ke0rs0db0jo"],["Epunda Sans",700,0,1,"0j40j40hy0dj02b0ku08b0671110rs05f0gs0hr1jt00600c02504s04504i03y04b02e01406306907e0ek04i0640gn0nl0jr0r70hy0lf","0ir0ir0hr0nq02z0ke08906l1050rf08c0hu0jd1i400500b02h04t04b04m04t03l02900j06b06q0900ew04y0700go0mw0j60pz0gs0lq","0jo0jo___0aw02m___08506i1080rs03j0hi___1by00100401x04f03m04103j03k04d02706706m0810fy04u0670gc0r30n60rs0f20lf"],["Epunda Slab",300,1,1,"0ij0j40hd0du02b0ku08c02y0sn2ad05p0a80aw1pk00900b03804f03l03v03g04r02a01p02v03303x07n02o02y05b0bn0j90r90fn0lf","0ip0jo0gq0m601z0ki0890410sf1nr07d0d40eh1pm00700c03904i03n04004b04402f01103v04905p09t03k04a07s0fr0j10q20gq0ln","0j40j4___09503h___0350310t92aj0240ae___1jg00000303004303403k03d02z03w03q02y03903y08l02s03105s0b60n90rs0eh0n5"],["Epunda Slab",400,1,1,"0jo0jo0hn0eu02b0ku08d03r0vi1y806h0c50ct1nn00900c02w04p03n03y03h04o02d01k03n03w05609e03203i06v0fx0jp0rs0g70m0","0jq0jq0fs0jd01z0ki08904l0u01l707t0ec0fm1nb00600c03204r03o04104f03z02e00z04f04u06r0c103z04q0960hu0ju0qv0gr0tk","0k90k9___08003h___03503v0vv1ym03a0ch___1ht00000302o04c03703n03a03304703c03r04405a09j03803m07f0f50nv0rs0hd0nq"],["Epunda Slab",700,1,1,"0lf0lf0ij0fb0160ku08e06710z17807u0gm0hm1im00700d02d05103t04403s04e02g01c06306g09f0f004h05t0es0mb0ke0rs0j40nq","0ks0ks19i0z702z0kg08c06n0zm0yp0b40hq0jo1go00500c02p04z03w04704o03p02f00t06f0710aj0ft04z06f0fn0mq0jy0r00it19i","0lp0lp___07c02w___08506h1181hd0780hs___1bv00100402404n03c03q03803f04m02l06706o0b00g504m05z0ds0ql0p30rs0jo0q2"],["Erica One",400,2,0,"0n10nm0n106v01q0lx03g0as11s0rs0gw0nu0ng12r00000401u04k04q04n04504o02o00h0ay0d10ky0n20an0kk0ox0pt0m40px0lb0pc","0nu0nu0rn0fe01x0ls0440bb1fs0lo0fo0nr0od0u400000402004c04k04l04o04g02y0060bt0j30me0pa0ha0lu0p10pi0m10pv0mv0we","0qx0qx___04701r___02w0d926h___0hv0ob___0w300000001j03y04804303k04b0450210d90f20nr0qz0bx0pi0rj0rj0r70rs0ob0sd"],["Esteban",400,1,0,"0g70gs0fn0ek02b0hm0ah03h10b26k0690ai0cd1qb00e00803f04t04604g04p02902s00n03703k04c07l02a02w05y0ca0gs0q20eh0k9","0gq0h80fr0oo02y0hk0ab04f0xs1ll06h0dx0fq1pg00e00903e04v04904i05901w02u00704704n06209k03804a08g0fj0gy0pv0es0ko","0jz0jz___0g2058___05y03r10q23b05k0av___1i600000602v04603e03p03403203r03k03803s04h08002h03506p0c00n60rs0fn0nq"],["Estedad",300,0,1,"0iy0ji0iy07l0560kd0a603d0us0rs0730ad0bf1j600b00703504c03q04604903r02501t03403e03y06602s03905n0ct0im0ra0h80k3","0ix0ix0hz07q03s0kf09t0470t80lq0730d50do1lk00a00702h04q03t04705m03802k00p03z04905809i03j04c0810fu0ic0ql0g30ix","0jj0jj___09d06b______03b0u30rs02q0a8___1dz00000002y03w03d04203403604003803403d03v06c02s03b05u0c80jy0rs0g30l9"],["Estedad",400,0,1,"0jr0jr0jh09d04n0kl0a80470w60rs0730cc0df1hu00b00802w04m03w03m04d04601y01s03x04804y09403c04207z0h00iy0rk0hg0kx","0ix0ix0hz07k04q0ke09s04r0v20l30730eh0f11ju00a00802a04t03x04805n03802j00o04h04v05x0c804104v09z0hm0j10qk0h10jv","0js0js___0a705u______0450vp0rs03h0c8___1cn00000002p04803i03i03t03c03m03403w04704u09303d04207q0gd0la0rs0f50m4"],["Estedad",700,0,1,"0k00l60k008802y0k009106c0yy0rs0ad0gy0i51hm00800b01x05404e03y05103d02p00u06406f07y0fi04w06a0eq0mn0jf0qp0iu0ls","0kl0kl0jn08802t0k709n06r0y50la0as0hm0is1ej00800a02004r04305d04o03f02g00n06g06w09l0gq05b06s0fy0mj0iz0qb0iq0mg","0mf0mf___09v041______06m0ys0rs05b0gq___18700000002604e03m04203b03i04k02906d06r08s0ia05506o0ef0r60na0rs0go0o5"],["Estonia",400,3,0,"0iv0e50mz0i50160jg0ds01x0rs___0f205907v26c00h00d04605u06304q03a02700e00b01l02102m03p01c01y03x0690b70j10e50yr","19g0yl___10d07x0j70de03p0rx0bc0rs09j___1xy00j00e02c06n06105w03b02300f00703703x05708u02v04707h0av0cp0jm0yl204","0ix0ix___0dr03m______02n0tv12f05e07l___1c300000003604a02j03b03a03403m04i02602v04005r01w02n05009b0gu0rq0c00nf"],["Euphoria Script",400,3,0,"0bk09u0cq0jl02b0hc0b702u0vj0lv01r09w0b429i00e01g02t04504l04o04402m02600u02902s03403q01s02t05a0ap0fs0nq08o0eg","0d80f9___0a3021___0an04g0uy0rf0000fw___20j00h01a03c04g04o03l04r02q02300g03t04f05d07k03a05009q0f60gi0nq0530f9","0ka0jq1040fy01o0nc05l02i0vt___09908908324x00000c01e04103c04504a04904c01p01y02g02s03m01j02c04708e0k20q40fk0tg"],["Ewert",400,2,0,"0q00q0___09g01s0d0___0370rv1t20fq0do___29m00000002r04n03505e02x03703h02b01y03805007d01r03d04y08d0qa0rs0mh0sz","0rw0rw___0xk03v______04x0w9___0gi0hj___1nl00000001604v03f05403l03j03e02q03c04p07x0dd02n04p07s0fw0q10rs0l61it","0q00q0___0c201s0d0___0370rv1sv0fi0dq___29m00000002r04n03505e02x03703h02b01x03805007c01r03d04z08f0q80rs0n20sz"],["Exile",400,2,0,"0n40n40nz0ch0160nb0a407o0x40nn0fb0j00iv1ht00200201z05904c03q03404z04a00107d08u0bb0g006b08k0bo0ez0ng0p20le0pf","15q15q___0fj01z0ne0a80890yu0jw0kd0k7___1ep00200202004y04c03o03m04v04900107r0990cg0in06i0970d80o30nv0pq0ml1pv","0n40n40nz09g0160nb0a407o0x40nn0ep0j00j11hs00200201y05904c03q03404z04a00107d08t0bb0g006b08l0bp0ez0ne0p20le0pf"],["Exo",300,0,1,"0gx0gx0gm07a0590k109p02k0u50rs01n08w0a51ko00900704103q03u03n04704301h02c02j02l02x04q02802g04c0b40ic0rn0f60io","0hb0hs0gb06p03y0kb08q03w0us___01o0cl0e01m100400901l04y03u04d04j04b02601o03k03y04j0at03703u07y0gc0jl0rk0ft0is","0i20i2___07v0590ed___02k0to0rs00008v___1gf00000003q03c03903o03u03102s04702j02l02w04d02b02i04u0am0j10rs0dz0jt"],["Exo",400,0,1,"0hg0hg0gv08k04o0jz09o03d0uc0rs01k0bc0cm1k700900803j04503w03n04d03x01q02403c03e03t08g02w03806m0gs0iu0ro0fp0im","0h60i50h607y03t0jy09t0480u90pg0370dk0f81kt00800802p04i03s04704d03v02401u0420490530c203l0470950i10j90r10g80j3","0im0im___09404n0f1___03d0ua0rs0000b6___1fh00000003503t03c03l03w03303903p03c03e03s06s03203a06x0fg0kp0rs0cs0kd"],["Exo",700,0,1,"0iz0iz0ie07903g0jq09m05w0vd16e06f0h50j51hi00900802o04r04004d04703e02k01e05v05x07v0gi04z05y0gg0og0jq0rs0h90k4","0i60j40i607e02v0jw09w0680vd0lx06j0ht0k31f800700902904r03y04a04q03h02f01j06406c09q0g805c06n0go0nn0jc0r20h80k3","0jj0jj___07r041______05w0uq0sb00x0gw___1ax00000002b04e03g04603c03704n02c05v05y07y0ha05a0610g40qv0oe0rs0ht0lu"],["Exo 2",300,0,1,"0gs0hd0gs07h0580jc08402y0uj0rs04g0a10b61ko00600803204e03v04604003x02001z02v02z03c06p02k02s05i0cu0i10rg0g70ij","0gu0hu0gu09303z0k807l0450u0___0110d70e81l400200a01r05103w04d05103n02901j03y04604y0bb03j04508o0h60it0rl0fv0hu","0i80ij___07u05s0fr___02z0tz0rs0000a9___1gm00000002o03w03803w03n03403q03n02x03003b05r02m02w0650d70kz0rs0g70jo"],["Exo 2",400,0,1,"0hd0hd0hd08x04n0jo08403t0vg0rs0440ci0du1ju00500a02o04o03x04804703p02a01q03q03u04c0an03803l08a0hn0il0ri0g70ij","0hv0hv0gv08b03z0k807j04l0uc___0220ee0g01k000200a01i05803z04e05003k01p02404f04n05p0cq04104n0ap0i60iw0qy0fv0iu","0if0iq___09y05v0gk___03v0v00rs0000cn___1fe00000002a04903d03904b03803d03s03u03x04c0ap03c03s08i0l30mi0s30e10jw"],["Exo 2",700,0,1,"0jo0jo0je07n03h0jp07o0690zh14209g0h80it1g100300a02704z04304f04b03l02k01b06506d07q0gz04s05r0gb0nz0jo0rh0ij0lf","0jn0jn0jn06x03x0jy08406u0zo0ms0a50i80ji1dy00300a02b04t04104e04w03a02j01806k06w0a00gz05706r0h40o70jv0rr0io0lm","0kh0kh___08p043______06f0yt1dy01c0hg___1ae00000001v04i03k03f04703f03x02z06c06g07k0hj05306b0h90re0pd0s30ft0m8"],["Expletus Sans",400,2,1,"0eh0g70d10ck0420jo09903y0wl0rs0300cf0ck1m000900702e04q04404d04203u02e01i03u04004f07k03403x08q0hi0i40qp06d0hd","0g70g70dc0aw03t0j109q04n0vo0nh03b0ds0gs1lv00800702i04o04304e04p03c03200n04h04p05k09903t04u0as0iq0ic0q50ah0i3","0fn0fn___0dd04x______03y0xc0rs00s0br___1fg00000002604603n03s03j03g04602x03w04104k07c03303z08j0hi0l00rs0580jo"],["Expletus Sans",700,2,1,"0gs0hn0f20b503h0jp09a05n0zn0rs04f0fe0g01jv00800802504w04704g04603n02i01c05k05r06l0aj04805q0dt0k90j40qv0840k9","0hm0i30h50c103t0j009q0621010r905w0ga0ig1jp00700902a04q04704g04u03903300k05t06607f0c404i0670ef0jk0ii0q40f90k0","0fn0fn___0cr04c___06105r10j0rs02d0f3___1ci00000201w04c03p03w03h03k04g02i05m05t06q0ax04905w0dh0pr0n60rs06d0ku"],["Explora",400,3,0,"0hb0jd0cb0ll02y0h20eo01e0pj___04z05307227s00b00c03p04903u03y05401m02702k01b01k01x02h01201j02y04d0eq0rk0cb0mv","0tr0tr1eu0gb02w0hr0d903i0pk0j90ij0al0dk22h00d00b02305203v04d04z02c02b02503303q04p07702t04407209q0ge0rp0oy1a2","0gk0h5___0ed02y___0es01k0t91my03t053___1m300400d03j03m02p03l03h02m03y03w01e01q02002m00z01i02n0410h80rf0a20la"],["Faculty Glyphic",400,0,0,"0ij0j40hy0dt02w0jo09u03x0ur1030500bv0de1mp00b00802h04t03s04e04403r02a01o03u04404w08h03903y07d0fd0i30re0gs0jo","0hp0hp0gp0fk02y0jh0a004l0ts0rs04q0e30g41nk00800902l04q03w04g04z03102f01a04f04r05y0bg04204x0a30hg0i20ro0fq0kn","0it0j4___0ae042___05t0440vn0zz03l0bs___1fm00100602704903d03x03f03704603303x04905008j03904207i0fd0l00rs0g70ml"],["Fahkwang",300,0,0,"0lc0ms0k608y04m0jm07i03f1410rs0cj0940ah1fc00500802s04f03x04c04303w02501v03803k03x05i02002l04q0ac0hg0r40j10o8","0k90lp0ja09403v0jn07a04h11e___09z0c20d01hb00100a01f04t04004e04x03u02b01s04504j05808802v03s06r0dz0i70q50hc0n5","0nn0nn___09a05s______03k1710rs08t08z___18q00000002l03s03g03o03w03b03k03k03k03k03y05h02102j0510a50jr0rs0ig0pd"],["Fahkwang",400,0,0,"0lx0nd0kr09l04m0jm07j04518l0rs0cl0af0bo1dn00500902l04g04204e04303u02701u03y04d04p06k02702y05v0dt0hx0r50jm0ot","0lp0no0kq08l03y0jg08305315a0nf0d30cs0e11eq00300a02q04f04604k05102z02n00w04r05705y09802y04407s0fv0i00q50ir0oo","0o80o8___09u057______04g1e60rs0an0a9___17b00000002c03u03l03q03s03g03n03i04e04g04s06n02802v0680dz0kz0rs0j10py"],["Fahkwang",700,0,0,"0nn0py0mi08l04m0jm07l06a1kk0rs0ip0dy0eg19d00400902704l04a04l04403r02c01m06506p0760ab02r04g0al0jl0ik0ro0lc0ro","0of0qe0mh07x03x0jg08406z1hc0ng0k60f30gk18m00400a02d04j04604g04t03e02a01g06n07b07z0bt0380570c20jz0ix0rm0li0rd","0qj0qj___0au057______0701uo0rs0gl0dv___13b00000001x04003r03z03o03o03w02x06z07007c0ba02s04f0bk0p90n30rs0j10s9"],["Familjen Grotesk",400,0,1,"0ii0j30ii08s0420le07j04a0v60rs0100d70e91k700300902b04t03t04503q04q02b01o04504c05109003l04f0970it0jp0rs0gs0k9","0io0jo0io08l03y0lf07h0530v30nh03a0eu0gt1jy00200902c04r03w04504e04f02d01704u0550620cf04d05m0bg0je0jz0rq0hp0kn","0jo0jo___09n04n___05a04b0wr0sl0000cq___1f800000202404c03g03q03m03b04603204904d04z0a803n04908t0it0m30rs0fm0lz"],["Familjen Grotesk",700,0,1,"0k90k90k908103h0le07j0690yy0v007l0gj0hg1gy00300902104w04104a03t04j02h01g06106a07a0dt04r06c0fk0lo0ke0rs0ii0le","0ko0ko0jp08002y0lf08306q0y10mw09g0hp0jb1g900200902604q04304b04k04602g01206g06u08n0fz05b07b0gp0lu0k40rr0jp0mn","0l40l4___08r03h___05a0690yx0rs03l0gf___1bj00000201u04i03l03v03i03g04i02k06606d07k0gq04z06b0en0qx0nt0rs0gs0nq"],["Fanwood Text",400,1,0,"0g50gq0g509n02w0g90bn03h16y1y40b409y0bx1oy00h00h03s04n04a04o04b01m01u01r03b03m04f06x01s02k0580c00f60rs0du0jl","0gh0hi0fg0ad0330gx0b204n11f0i107p0de0ga1oz00c00j02b05m03f04t05n01p02101f04d04w05x08r02w04608f0f60fj0ro0ef0lm","0m00ml___084058___08u0421gd22u09309w___1dz00800b03403r03g03r03c03103a03j03j04504p06z01t02i05s0c70kd0rs0fn0q2"],["Farro",300,0,0,"0gs0gs0gs07r0570lf0760390s20um0120bt0ci1od00200902m04p03w04e03e05002k00y03603c03v07o03203i0710gy0js0qm0f20hd","0fw0ff0gd07c03v0ln06g0430rh___01m0eo0fh1p100000801f05303w04b04704v03200s03y0460560ar03x04j0af0im0kb0px0ff0hc","0hd0hd___09x05s___04s03i0sd0ux0000c1___1iv00000202b04903g03w03d03604303903d03k04108b03703u07x0h50m30rs0cq0j4"],["Farro",400,0,0,"0gf0gf0hb07m0440l407503y0sb0v10120dt0em1p600200902f04y03z03u04604h02p00y03v04304s0b403q0490a00jn0k30qe0f90hm","0gr0gr0gr08103y0lh07904m0s60ol0260g30gl1o700100902j04v04204d04a04o02m00604h04q0650ce04f0580c90kc0k60pu0fs0hq","0hy0hy___09e04n___05s0490su0uu0000e1___1hv00000202304f03g03z03d03704c02w04404c0530ce03z04l0aq0n30na0rs0cq0jo"],["Farro",700,0,0,"0hd0h30hd08b02w0ku0740590sl0vm0260h60i11py00200902505404304h04004j02n00i05705h07e0ea05105t0fv0ml0kd0q20fn0ij","0hr0h90hr08p02z0lg07905u0t30oe03e0ie0jc1m600100802a05004404g04o04h02f00605n06209w0ek05g0710h70mr0ky0pu0fs0ir","0hy0hy___0a303h___05s05r0tg0v500g0h9___1fz00000201u04i03k04003e03c04l02k05l05w08h0fv05d06d0gj0rp0p20rs0dw0k9"],["Farsan",400,2,0,"0db0db0cq0bv02m0ij08402v0op0rw02s0aw0cu24p00700a02j04v04404r04n02r02k01302s02w03e05t02u03o07j0ed0gx0p00c60fn","0du0du0cu0hk01z0i807i0400q00rj03z0ep0h026t00200d01e05f04e05105h02q02h00i03l04004z0920400510a50gv0gw0om0cu0gt","0fc0fc___0bd03h______02y0pj0s400x0az___1ry00000002704503d04a03g03e04702t02u02z03f05u02s03q0760e90jy0rs0cq0gs"],["Fascinate",400,2,0,"0iw0hq0js08u01s0h506n0b72ei0rp0e80m20jo1hu00200o02i05h04q05m05301v01k00903l0c00ce0ew03r0bf0hp0nk0gj0nm0hq0k3","0if0gk0if0b801u0gd06r0bf2aw0n20e90m40l51hg00200m02m05706j05g04502301000604u0bm0ca0fd0440bz0h10md0fx0mc0gk0k9","0mr0n10jl06h02b0ju07c0400t50rn0500kj0jf16p00200701s04704404503l04103r01y0460e70eg0hp04j0fm0r50re0oh0rs0kq0o7"],["Fascinate Inline",400,2,0,"0ij0hd0jo06302b0gs06m0330oa1330cz0kc0ja2e500300o02j05f05c05h04f02501i00901x04c09l0b903c07b0gu0nf0gc0nq0hd0k9","0ib0ib0jc0m20210i306l0be1yt0pm0f30l70la1ec00000l02o05905904105e02m01p00c05z0bs0cr0g70510dh0ir0os0hm0oo0ha0md","0mr0n10jl06h02b0ju07c03z0t81190500je0iu1wn00200701v04904304303j03z03q02202504k0bb0co03n08g0nx0re0oh0rs0kq0o7"],["Faster One",400,2,0,"9v1hcy6k00m40150na___08a3u50qy0rs0fb0h213l00000002t04804504503l04b03n01008009c0h00l601b01s02b0f90nl0rs9brobm","1uv2mf1k50h20430n801r09s3c3___0rs0j70kf0ta00000002g04n04i03904i04j03300w09t0es0ks0p602302f09u0ml0ms0qy0wo2v3","3qj3qj___0vm01g___02b08z46p0r40rs0h3___0za00000002j03t03q03s03b03n04c02p08x09i0hz0mc01a01s02b0g80rs0rs2x84nb"],["Fasthand",400,2,0,"0uy0u3___0he06d___0db03p0qh0tt0fv0bp___26t00g00h02705v05204f02802o03101f03903t04t06z03304706u09k0c50qm0f216t","0wk0w3___0no06p___0d104y0ra0ce0j80e7___1pt00f00h02005l05304e02n02k02v01s04f05507r0br04c06909v0ck0cj0qt0h81lg","0r30r3___0k601s___04q03o0p524c0dw0bi___1w000000702004e03k03a03s03f04u02c03b03t04p07603704c06x09e0me0rd0eq14m"],["Fauna One",400,1,0,"0j30ii0j307n0420lz09903d0ws1fg02m0al0b31hn00900703104e03l04103a04m02e02203c03f04507602n0330600dh0jq0rr0hd0ku","0iu0iu0iu09703z0mc08j04b0uy___03t0d30dz1ih00400a01o05103q04104004p02302704704f05n09g03i04b08l0hh0ks0qy0hv0ju","0ii0ii___099057______03d0xc1va00g0al___1ga00000002p04303e03s03603503p03u03c03f04006q02j03506h0d40m40rs0eh0le"],["Faustina",300,1,1,"0hu0i40hk0gk02w0k506w0370x22cw0610ar0bc1o100300b03704j03p04403f04l02k01b03403c04008m02e02w05s0bo0j40qg0fj0la","0if0if0if0nf02r0k006v0430ue1vr08k0dw0eh1oe00200b03304h04g03z04703q02o00w03y04c0610a803904107n0fv0ir0q00fn0nx","0k90k9___09k04n______03f0z22eh03s0ao___1fi00000003004303503l03502z03l04b03c03l04409o02i02x0670b70ow0rs0eh0ow"],["Faustina",400,1,1,"0ii0je0hd0h102b0k906y03s10724a06s0bw0c31mp00300b03104m03r04703h04i02l01903o03x04r09s02l03706x0ev0jo0qm0g70mk","0ie0jb0h00ls02r0k006u04i0wk1rl07g0ea0ey1nl00200b02y04h04k04104903p02n00u04c04q06k0au03f04808x0h60it0pz0fn0l5","0ku0ku___09e04n___06d04111z25305v0bt___1f800000202s04503803n03503203s03z03y04704u0ao02q03907a0dv0p40rs0f20ow"],["Faustina",700,1,1,"0k30la0ji0hy02d0k806r05s17a1im0a40f90fp1k600200c02q04v03h04e04i03r02p01305n0610870cz03e04o0bm0kl0k30ql0hq0o8","0ma0nb0i80qm0310l107d06l14j1gp0ay0gl0i51go00200b02v04t04103904g04d02k01306c06u0a30f904805i0e40l50kj0qs0j90qc","0mg0mg___0ap04m___06m06b19l1lh0aa0fx___1e400000202c04a03h03r03603c04603906806j08h0de03k0520by0pi0qo0rs0j00r2"],["Federant",400,2,0,"0gr0gh0h209b03h0jo09a04r1jv1pn0440ek0dz1l400a00803904503z04003r04902001w04r04u05507z02902m0cg0nu0jo0rq0f10k8","0gd0gd0gd09x02w0jr08f0571cb07q04d0fu0h61nn00600a01r04r03x04104g04a02702005505d06208s02s03q0ft0o20k30rr0dh0k8","0ii0ii___097057___09904z1l319o00h0eo___1fy00600503203r03g03e03k03e03g03g04z05005e08002d02k0az0rg0ql0rv0990kt"],["Federo",400,0,0,"0fn0gs0f209h0420hf07j04318k0rs04d0bv0d91oh00400a02m04p04k04q04t02d02h01604204804o06702603b07s0hn0gv0ph0eh0ij","0fq0hp0er09u03y0hl08404w14r0o104d0dx0g21ne00400a02t04l04h04n05d02702e00y04q05205q08t02y04m0ak0i30h40pq0er0io","0j40j4___0ba058___05804e1am0rs0590bm___1cz00000302d04003l03u03p03m03v02r04c04e04t06902703707k0hw0l30rs0g70lf"],["Felipa",400,3,0,"0eh0k90fm0tj02b0gs06y02d0u30ok09o08t0af2ku00600p02l05804z04z04k02202900b02002e02u04001s02904e0a00f20ob0b00rs","0ir0oo0t40sh02z0fn07e0430wk0s40a80bw0g023h00500q02w05o05105n03u02c01g00603d04305e08e03503z0830e50f20nv0cu15g","0f20ij___0oj03h___07j02w0wr0u0042091___1ix00500n02g03n03303703r03s03q03e02g02x03c05k02402l04v09r0lg0rs0bl0lf"],["Fenix",400,1,0,"0ic0ic0hg0cd02d0iz0a203w0zh23v08i0b50d21k700a00803104m03b04804x02x02902103r04205409w02l03c06n0ef0ic0rs0fz0lv","0j00j00i20hx01w0ir09t04m0wb1re0990e60fs1l400a00703104k03t04304v03j02p00s04g04w06p0bi03k04c08q0go0hi0qt0g60mt","0le0le___0cl057___08o03z10g27208e0bn___1dq00200302p04203803p03803503u03u03x0460530a802l03906w0dh0ox0rs0gs0pg"],["Festive",400,3,0,"0gr0j3___0al021___0c502d0ww0si0bp0ae___2y300m00x02l05805904k03002p02800r01n02g03303z01e02503p07e0bn0oj0db0jo","0p00qx___0et02w___0b404a0sn0gf0ez0ev___21500k00t02005205604l03i02t02e00x03i04k06e0a403304u08n0dg0cd0ox0gc0tt","0j810n___0iy01s0n20d002q11f0r40jg08r___2dg00f01202j03m03b04604i03l03o01001s02p03c04j01d02603n07i0ky0q00h510n"],["Figtree",300,0,1,"0ig0ig0i606004m0ju08802w0r50rs07309a0ai1jv00800702o04n03l04c03y04702002002t02z03n06502m0340510aa0hw0r80gq0jm","0hd0ib0hd07y03v0jr07g0410rk___04x0cc0dp1lu00200a01h05303r04d04y03y02b01n03n0440550ac03q04b07i0eu0ia0qs0ff0ja","0jb0jm___069062______0300rt0rs04t095___1cc00000002f04503803x03j03403p03q02v03203m05w02n03405209p0jq0rs0gq0lx"],["Figtree",400,0,1,"0ig0ig0ig09v0410ju08803q0sb0rs0770bt0cr1iy00700802c04u03q04b04504002b01r03l03u04r09303d03y06j0et0i30ro0g50k6","0j10ji0ij08f03w0kc08a04n0t30ma08k0e10ev1hl00500902d04t03r04a04t03i02a01m04d04r0620cy04604z0940gs0iw0rl0hk0kh","0j10j1___0av057______03v0th0rs04h0bh___1bn00000002304b03a03x03k03704903603o03x04r09w03d03z06j0ds0kw0rs0g50lx"],["Figtree",700,0,1,"0k70k70jm08s03h0ju08805u0ut0rs09t0g40ho1ew00600a01x05004204e04e03n02k01f05m0600890g10550650cy0jz0j20rr0hv0lx","0jk0k20jk07t03x0jh08b06d0uo0lk0bg0hg0il1cy00500a02304x04304c05003902i01806406n0af0gp05n06t0ew0l40jp0ro0il0li","0k70k7___09s041______05x0v30rs05e0g1___17q00000001o04h03j04003h03f04o02j05p06408m0gw05906a0ce0pk0n40rs0hb0nn"],["Finger Paint",400,2,0,"0fv0er___06s02a___09u0470ry0r80580cq___1pm00a00d02c05g05105l05k02g00o00403w04805t0ap03v04k08g0e20ez0ju0e60h0","0gz0ez___078020___0ab0520rx1g807f0fa___1km00b00e03f05d05605p05301k00p00404p0570860cu04o05z0at0fr0f90k40ez0hz","0hp0jh___09c02y___03j04q0sf0pr03p0dp___1dm00000502f04k03j04k04h03m03w00n04h04t06j0ci04e05009c0gc0hx0pk0fc0mf"],["Finlandica Headline",300,0,1,"0fb0g60eg05o04m0jn08302t0sg0rs01409w0bu1q000500802t04h03t04f04004202401r02s02v03805y02k02y05i0dz0ii0rb0dv0gr","0ff0ge0eg06t03v0jr07f03y0rv___01o0cz0f31qy00200901i04x03r04f04w04102601t03n04004s0a903l04908y0gt0ig0qz0eg0hc","0gq0gq___04j05s0fk___02x0th0rs0000a1___1j200000002h04203903x03o03603e03v02v02y03a05i02n02y05s0co0ll0rs0fk0hv"],["Finlandica Headline",400,0,1,"0fl0gr0eg06z0420jn0830380t60rs0130az0cz1ok00500802m04n03u04g04303y02801n03503a03p07602w03b06n0gc0ik0rc0eg0gr","0ff0ge0eg07e03v0jq07e0450s6___0280dx0fu1pp00200a01d05103t04e05003z02801q03x0470560ap03v04h09t0hm0j40qz0eg0hc","0gq0gq___0860570fv___03c0tm0rs0000bc___1if00000002a04503903w03r03703s03i03a03c03q08j03103e06v0h70mm0rs0ef0hv"],["Finlandica Headline",700,0,1,"0ha0hv0gq05n03h0ju08505l0uv0rz0130gi0id1j400400a02104y03z04i04c03r02k01b05j05u0770f004v05x0fk0nd0jm0rd0gq0j1","0hp0hp0gq05f02y0jf0880640vb0lz01n0hl0jq1gj00400a02904v04504n05403402m00p05w06909r0f505b06t0gj0n90j30qu0gq0jo","0j10j1___04s04c___02b05y0ve0rs0000hp___1bu00000001r04g03g04303l03d04i02m05v05z07r0ga0590640ft0rr0pf0rs0hb0kr"],["Finlandica Text",300,0,1,"0j20jn0i706e0570kt0860330th0rs03z09c0al1hh00500702p04k03l04e03n04r02401q02z03503o06o02o0310530bh0in0r60gr0k8","0it0ja0gv07l03v0kt07f0450to___04a0c60dt1iv00200901f05003l04e04d04m02801v03w0470530ag03j04607e0fe0ja0qy0ge0k9","0k60k6___06e06c______0350to0rs03m09d___1an00000002f04503604403f03403o03t03203803q06e02t0340550ac0k70rs0hv0mh"],["Finlandica Text",400,0,1,"0j20jn0ih08804m0kt08603t0u20rs0470bd0cn1gb00500802e04r03o04f03p04o02b01l03o03v04o09803b03r06m0fb0j70rb0gr0ks","0jp0jp0h807h04x0ko08804o0u00mv05w0dl0fk1gs00400802i04r03u04g04o03s02l00u04e04r05z0c804304s0920gw0j50qw0gr0lo","0kr0kr___09z057______03x0uf0rs0410bc___19l00000002404c03804603i03504103a03t04104p0bk03i03v06i0e40l20rs0fk0mh"],["Finlandica Text",700,0,1,"0jz0k90j40700420jv07r05k0vp0rs08k0fe0h11fh00400902405404504o04a03v02s00h05d05o07d0fk04m05e0bs0jz0j40q20hy0lf","0kl0ll0in07303x0l708806b0wd0lz0990gm0ig1bb00400902704v04104i04s03r02m00q06106f09c0gu05a0690e30kn0jv0qr0hn0mk","0lx0lx___08x04m______0640vt0rs0410fq___14r00000001q04i03f04403j03b04l02n06106808a0ir05705v0c40ob0no0rs0hv0nn"],["Fira Code",300,4,1,"0fn0fn0fx05b06d0jo07o02t0tc0rs01m09t0be1el00500a02v04l04204i03v04702p00l02o02v03d06602g02u0550c90hm0pi0eh0gs","0fe0fe0fe03405s0jr07c03w0so___0130cu0ff1f900200c01j05304004i04p04a02h00v03j03z05309y03c04508s0fu0ic0pu0ef0gc","0h10h1___07f06h______0300tc0rs0000a5___1ar00000002g04203j03904c02t03k03t02w03203f05r02o03305s0dg0lc0rs0fa0it"],["Fira Code",400,4,1,"0gh0g70gr05y05s0jn07s03k0vi0rs0220c20dh1ea00500b02n04s04404k03z04302o00l03g03n04b08h02z03h07c0g90i60pn0f10hc","0gq0gq0fr03z04x0jj08404f0tw1gv0130eh0gd1dr00400b02p04p04804l05203b02n00804904i0600bg03u04m0ae0hv0i70pt0fr0gq","0hl0hl___08z05a______03v0vo0rs0000c6___1al00000002804903k03d04a02v03w03e03s03x04g08q03703t08i0iw0mj0rs0eo0jc"],["Fira Code",700,4,1,"0ii0ii0j306903h0jr08206810h17m07n0ha0ie1dy00500b02a05304c04n04b03r02m00c06306b07u0f304o05y0fk0lv0j60pm0hc0j3","0ir0hr0ir0ak02z0jj08506l0yv0yf08i0i30jq19f00400b02f05004d04q05203b02a00706f06s0ao0fj05306u0g50lv0j00pt0hr0ir","0k70k7___07803h___04j06t10g19v00i0he___17t00000101t04f03n04003i03h04h02h06r06v08f0gh05306s0hi0rj0p20rs0hw0lx"],["Fira Mono",400,4,0,"0gh0g60gr05y05s0jn07s03l0vl0rs0220c30de1e600500b02n04s04304k03z04302o00l03g03n04b08j02z03g07b0ga0i60po0f10hc","0gq0gq0fr04004x0ji08404h0tz1ec0130ej0gp1dv00400b02p04q04704m05103a02n00804904j05y0be03v04n0ab0hp0i60pt0fr0gq","0hl0hl___08x05a______03v0vt0rs0000c8___1ah00000002704a03j03d04a03b03f03e03s03w04g08y03703s08h0iy0mi0rs0en0jc"],["Fira Mono",700,4,0,"0ii0ii0j306a03h0js08206810d1ax0730ha0ii1dx00500b02a05304c04o04b03r02m00c06306c07s0f204n05y0fq0m30j60pm0hc0j3","0hr0hr0ir0bd02z0jj08606m0yt0w707y0i50k019700400b02f05104e04q05103b02a00706f06s0av0fo05506q0g50lz0iz0pt0hr0ir","0k70k7___07803h___04j06t10f19y00i0he___17q00000101t04f03m04003i03g04h02h06r06v08c0gi05306q0hn0rj0p20rs0hw0lx"],["Fira Sans",300,0,0,"0fn0fc0fn06q04n0jo07k02m0ss0rs01409j0ad1px00500a02x04i04704m03s04a02s00b02i02n03204r02902o0580bf0hl0oy0dw0gs","0fe0fe0fe06f03u0jr07a03s0t9___0150ct0e81rd00100b01l04z04504j04n04a02j00s03h03v04n08003804408y0fj0ib0ps0ef0gc","0hy0hy___07t05i___03m02t0t60rs00009q___1hp00000102i03x03i03v03n03803r03d02q02u03704u02e02u05p0br0jx0rs0eh0ij"],["Fira Sans",400,0,0,"0g40g40gp0860410jm07t03v0w20rs01l0d20e31oi00500a02g04w04904n04004202o00g03r03x04i08803603u0920hp0ig0oz0ez0ha","0fr0fr0fr06x03y0ji08504n0u70rp01m0f20gs1o600400b02j04t04d04o04x03b02l00704g04o05w0b504304w0be0ij0i50pq0er0hp","0i60i6___09z05k___0410470w90rv0000dd___1g900000102304c03m03e04a03f03o03004404804s09d03g04709l0ko0mc0rs0cw0jc"],["Fira Sans",700,0,0,"0ii0ii0hx09y02w0jr0820681030wk05o0hk0ij1no00500b02705104g04r04a03v02j00a06306b07h0eg04p06e0ge0n00ja0ph0gs0jo","0iq0iq0hr0el02z0ji08506o0z70nn05t0i50k61jm00400b02c04z04i04t05203g02300706e06q09r0f305607h0h60mg0j20oz0fs0jq","0jm0jm___0ey03h___05g06t1020t80210hs___1cx00000201s04d03o04203i03j04j02b06r06v08f0gc0540770hs0rj0ol0rs0dv0ly"],["Fira Sans Condensed",300,0,0,"0dw0dw0dw06w0420jo07j02i0s00rs01409w0as1wl00500a02x04i04a04n03u04902p00a02f02j02v04e02702o05h0co0hy0oz0cq0f2","0dh0dh0eg07703v0jt07b03q0sp___0140dk0ez1xl00100b01l04x04604k04n04b02j00s03e03s04g07o03a04909p0gu0j30pu0ci0eg","0fx0g7___07p058___03n02p0sj0rs0000a1___1ni00000102h03w03j03u03n03b03s03b02n02p03004l02c02v0640d10kh0rs0cq0gs"],["Fira Sans Condensed",400,0,0,"0ez0ez0ez07n03h0jn07q03q0vm0ru0120di0e71v000400a02h04t04b04n04004202o00g03o03s04807b03203u09i0i70ij0p00du0g5","0er0er0er07c02y0ji08304i0tl15o01o0fk0hg1tz00300a02j04r04g04p04y03b02j00704e04k05q0ac0420540ck0jf0i70pq0dr0fq","0gq0gq___09o04p___0450430w70sb0000dm___1lz00000102404b03o03e04902y04303004104304i08703c0490ai0m30ml0rs0bq0hm"],["Fira Sans Condensed",700,0,0,"0hc0hc0gr0am02b0jq0820600zj0yj03k0hr0iz1t500400b02705004i04r04a03u02i00a05x0640720da04m06u0hs0o10je0ph0fm0ii","0hr0hr0gr0h501z0ji08506g0y80sj07i0io0kk1n800400b02c04z04k04u05103f02300606706j09t0e80560890hr0mv0j30p00fs0no","0j20j2___0ec02w___05e06m0zx1aj02m0iq___1i400000201s04b03q04303i03l04h02a06j06o07w0ez05207r0kp0rj0p20rs0da0k7"],["Fira Sans Extra Condensed",300,0,0,"0d10cq0db06v03h0jo07k02h0re0rs0140ae0bb22u00500a02v04i04b04o03w04802n00a02f02i02r04902702q0640e20i00oz0bl0dw","0dh0dh0dh08q02w0jt07b03q0st___02f0e70fh23200100a01l04w04904l04o04802h00s03f03s04f07v03b04d0av0h50j50pu0cj0eg","0eh0eh___07k04n___03h02n0s70rs0000ag___1t000000102f03w03l03v03n03e03s03802m02p02x04g02c02y06n0eg0l20rs0c60fn"],["Fira Sans Extra Condensed",400,0,0,"0du0du0du07902w0jm07s03n0uw0rs0130dt0eq20d00400a02f04t04c04p04104102n00g03l03p04307003303y0aj0iy0ip0p10cp0f0","0ds0ds0ds07t02y0ji08404g0t115801o0fy0hu1yr00300a02i04s04f04r04y03c02i00704a04h05o09s0430580d20jm0j00pr0ct0er","0f80f8___09f044___04403z0vi0sc0000e3___1qs00000102204a03p03f04a03j03l02x03x04004c07s03d04c0bg0nn0n30rs0ak0ge"],["Fira Sans Extra Condensed",700,0,0,"0g70g70fm0dr02b0jr08205v0z00xu0560i00j11yl00400b02704z04k04t04903u02h00a05t05y06q0cf04l07o0ip0ol0jp0ph0eg0j3","0h90jq0fs0kv01z0ji08506d0xm0n30c60j30kp1q200400b02c04y04l04w05003f02100706606g09u0dw05909q0ie0nd0j50p10fs0tl","0hw0hw___0ez02w___05m06i0zt19p03t0jf___1ml00000201s04a03s04403j03n04e02a06d06j07m0dz05008p0md0rj0pi0rs0cp0j2"],["Fjalla One",400,0,0,"0c20cn0bs06f02v0kh0790460v61hm0130hq0j12cg00400a02n04p04a04h03v04i02j00h04504704h07m03k06z0i00p90kf0q20bh0cn","0c80d90c80an0210k306r04v0rd10002d0ja0ks26p00000a02b04y04h03l04y04702k00j04q04w0680ac04u07w0i80o30jq0qi0c80d9","0dg0dg___07c03i______04l0x81j80000i5___22200000002b04403v03g04003u03p02j04j04m04u08w03s0860ka0s40pi0rs0b40e1"],["Fjord One",400,1,0,"0g70j30g707x02w0gr0ah03e11421208p0bb0cx1rg00e00e03u04u04b04n05001s02a00c03803h04808a02a02p05w0cw0g70p30dv0jn","0gx0if0fx0gc02i0gk09n04e1000rm09p0e20gh1qf00c00c02g05s04o05105701e02900e04804k06309u03403y08e0eq0g10ou0dy0ix","0ku0l4___07d04x___08p03r11q26m0310bc___1fx00300803104603b03q03203803903q03q03v04k09i02k02z06y0dg0l30rs0eh0nq"],["Flamenco",300,2,0,"0cn0d80cn09202v0df0900150px0uw0b804y06p1zn00r00j05104b04k07d01a01r01o00k01101701i02f01201801u02p0bp0lm0ax0ey","0f80fq0dr0hy02y0dq08v02z0qm1bj0dw09h0g41z400k00o04904y04w07601m02f00w00f02o03704a08y02r03b05108y0d20ly0dr0jn","0l80lj___07m05r___0ao0190r70rs07j04h___1cd00b00803x03502w04803i02502x04j01601b01m02b01601b02302z0gz0rs0gn0oo"],["Flamenco",400,2,0,"0eh0eh0db07d02w0dw08a02f0t51m30dk08l0bm1yj00j00n03q05604x07101q02a01800j02c02j03a05s02302f04407u0cr0m80db0hd","0ef0fe0dh0gk01x0e007j03v0uu0o70ai0bc0gq1yy00600t02905x05306o02u02501e00j03g03y05d09z03403y06t0c20de0m40ci0hb","0ku0f20ku07o02b0ml08a02f0ti0rs0fb0a90811ls00900c03704e04105402u05602d00402c02j03305902302d04206p0f90ml0j40m0"],["Flavors",400,2,0,"0gs0gs0gi16t0160n50a00410t10xn07l0e20es28n00800a01v04k04904d03w04a03b00t03604605e08702a04e0700dv0jo0q30g70m0","0fr0fr___0qp02h___0a305d0r50vz06f0h9___1nw00700a02104g04904b04g04603100n04r05q08u0d505006v0dc0ku0k50q10ds0hq","0i50i5___0ju02n___04304c0t90z30520ek___25s00000102604p03s03803s03o04402b03g04e05m09002j04q07s0f10nh0ri0en0ne"],["Fleur De Leah",400,3,0,"0nq0s2___0p30580c60e302s13w___0fv07o___2q300u01e03504s04x04a02l02w02k00g01v02n03804401c01y03o05a0bu0ob09919q","0ur0o1___0hl04t0c50d204n0wu0oy0go0bv___22d00o01402o04t04s04h02z02u02q00s03r04r0730a002p04e07d0a90cf0ow0hb16a","1rw1rw0go___0280nc0b802d11h0jc0dw07307r2pr00k01402504103304303v04203o01701q02f03504d01601s03404m0ms0pk0go334"],["Flow Block",400,2,0,"4lh4lh___09e000_______________0rs0r9___03i00000001s04503j04504503j04502g3vb3vc6rv6s10rr0rr0rr0s10rs0rs3v86rm","53d53d___0p4000_______________0rs0qu___02o00000002503804a04a03804a04a0243q253u6ice4n0ra0ra0ra0rp0rs0rs3qc6ij","4yc4yc___0ax000_______________0rs0r9___03i00000001s04503j04504503j04502g3v93x06rr7hz0rq0rq0rq0s10rs0rs3v56s3"],["Flow Circular",400,2,0,"54x54x___08a000_______________0rs0qn___03g00000002804303l04803n04703j02a44s5b474t7ae0s50s50s50s50rs0rs4el7bb","5k05k0___0mn000______01404e___0rs0q6___02r00000002203704c04d03a04c0490204515gj6vsef50rd0rd0rd0rn0rs0rs46t6x7","5hs5hs___09j000_______________0rs0qm___03g00000002804303l04803n04703j02a44q60q77z7qp0s50s50s50s50rs0rs4f77bb"],["Flow Rounded",400,2,0,"4w94w9___092000_______________0rs0r2___03g00000002b04503k04603k04603k02d41z5ec73973r0s50s50s50s80rs0rs45m73j","5ch5ch___0o0000_______________0rs0qo___02n00000002403704b04b03804b04a0233y45cj6q2ee60rd0rd0rd0rq0rs0rs3y86qq","59f59f___0am000_______________0rs0r3___03g00000002b04503k04603k04603k02d41z65573r7sa0s50s50s50s80rs0rs45m745"],["Foldit",300,2,1,"08n0a308d07a0410j908n02b0sr1vo0000b50dm2op00800703m04004804k03s03l01z01n01w02b02h03102202b09k0h20io0r20820ay","09v0av08w0a802z0jh0860370pl1h20000eb0ho2qg00500602s04m04g04t05102r02i00l02r03a04206e03404o0bx0i90i20pz08w0bu","0aj0b4___03x0430ey___02e0t02h10000ay___2bi00000003e03j03k03e04e03c02u03d01x02c02i03602402c07z0md0k80ru09y0b4"],["Foldit",400,2,1,"0cc0cc0cc08703j0jh08t03k0st1kf0100cw0ed24a00800702y04i04704104y03102e01c03003l03q07403503j0bc0gv0ii0r10al0dj","0cu0dt0cu08g02z0jj08804h0sg1bb01r0fa0hs24i00400902h05104g04s04x02t02h00i03v04m0570950470510d40k80h80pw0cu0et","0dv0dv___08d03h0f7___03m0tj0wj0000cx___1vf00000002s04103g04303k03d04002j03003l03s07n03503h0ad0mf0og0rs0ae0eg"],["Foldit",700,2,1,"0k90jz0kk06502w0hy0840640tc0xl0b80f90gi1f000500b02l05h04d05904c03102600505q06609h0e705705y0bo0g40gz0oh0j40ku","0kp0kp0kp0g802y0ig08706v0uc0sg0bx0gl0i51ae00300b02805k04i05e04x02p02100406e0750ca0g005z06p0dq0iz0h20ox0iq0on","0mz0mz___05u03g______06j0t10rd03w0fp___18600000002004l03f04c03i03d04u01r05x06m09t0fa05n06c0d00l60na0rs0kp0nk"],["Fondamento",400,3,0,"0g70fm0g70e702b0g709y03k12h12c0aq09w0c01sc00f00l02x05704x05704701z02500903b03l05207g01v02p05o0cs0em0nq0eh0ku","0g90fs0fs0bd02y0fl0a804l0zu0xg0a40cr0gk1pb00f00m03605c04x05l03t02801l00704b04s06f09j02x04a0890fn0e80nu0dt0kp","0ob0ob___0ec04n___07n04112d1ht0bu0aq___1b400500b02j04103h03u03503c03m03e03n04106709b02602x05u0ci0m60rs0ij0sd"],["Fontdiner Swanky",400,2,0,"16j1ai___0dg054___0d205c1a31ba0ij0c4___1o800d00p02z05004o04z04l03a01300804s05n07d0df02m03n07i0dt0fv0m50i51eg","0jr______01405i___0bh05r1541bh0dw______1mf00g00p03y04t05s04z03y02k00m00205b0650920eo03f04i09j0g10ez0kh0jb0k8","0uo0sn0v90dl0420n506h0671el1cl0lm0d40dm1hj00200i03304d03x04a03c04q03h00405006h08c0fd02n03v08e0gk0m00ow0qm153"],["Forum",400,2,0,"0hk0gz0hk08y03j0hk0950340zd1as08309n0aw1o300900903704j04i03s05n02502301g03203503w05b01w02o0500ap0gg0px0e20ir","0hb0ht0gt0a002z0i908o04c0y20tr06f0dd0f51oi00400b01p05404d04j05k02j02l01104004e05808h03004307y0fb0gt0qj0du0is","0hk0hk___0at03j___0710351021br02a09i___1in00100702v03s03k03504a03e03c03803303603s05201v02o05g0aa0la0rs0cw0ki"],["Fragment Mono",400,4,0,"0ie0ie0ie05705r0kz08i03v0tj0rs0240cl0ds1b500700802i04n03n04403p04t02701s03n03z04s09y03g04307m0hb0jp0rr0h90iz","0i80i80i80440520kz08j04r0t90nf02o0em0fr1ac00500a02p04r03u03604k04m02c01f04h04w06d0ct04a0570a70iw0jp0rm0h70j8","0ie0ip___099056______0400uf0rs0000d8___1aq00000002604703e03w03k03b04603403x04304s0al03j04808f0kd0mt0rs0fj0jk"],["Francois One",400,0,0,"0fn0g70fn06503h0kk06d05h0w00so0130hm0ij1r500100b02004s04504j04104802h01b05f05k06i0bn04o0760i90pt0kb0rh0f20gs","0fr0fr0fr05x02y0ld06c05z0v50ls0130iz0jx1oa00000a02404m04104g04n04902d01105r06008d0cw05a08l0jc0pf0kz0rq0es0gr","0g70g7___08n042___05805o0wm0v400h0i7___1lv00000101p04903r04203j03q04f02b05k05p06v0c904s07y0kp0rh0p30rs0dw0hd"],["Frank Ruhl Libre",300,1,1,"0hk0i60hk07w03j0jx08s03f19v28p05c0a00as1l800900903h04003v03m04f03z01s02603403h03v05v01o02e0560c50iw0rs0gz0l3","0hs0hs0hs0b703y0k707p04e1130tm04j0d90er1lq00400c01r04x03s04a04l04102b01q04804j05908402o04207t0gu0is0rp0gt0js","0k70k7___07v04p___08k03h1b72aa04b0a4___1f400200503503m03e03904203a03403t03f03k04005k01p02e05m0bn0o40rs0gz0o0"],["Frank Ruhl Libre",400,1,1,"0ir0ir0i608i03j0jx08s0441dy1wj0600b60c61jx00900903804703y03o04i03x01u02203v04604n06q01u02s06d0fx0iz0rs0gz0lo","0i90j90i90880420k108k05114n1ij0600dz0ff1j700700a03704b04103804o03z02d01m04s05506008v02v04d0990iv0im0rq0h80la","0l30l3___07t04p___08c0471h520205r0b7___1eb00200402x03o03h03a04103e03703n04304a04t06i01u02q06y0ez0on0rs0gz0p7"],["Frank Ruhl Libre",700,1,1,"0kt0l30ki08302x0jx08s06a1vv1e90ak0ds0fu1gi00800a02p04e04803w04m03r01x01v06106e06y0940230460bo0k30jd0rs0ir0o1","0ku0lc0kc0ea0320k108l06w1is17008u0fp0hs1fs00600a02v04g04903f04r03s02d01g06m07007w0au03205h0ds0kw0ji0rr0ib0oe","0nf0nf___06s04e___08m06n26e1i709x0dx___1bf00200402g03s03p03f04303n03c03806406o07209602103s0bf0p30pt0rs0jc0rj"],["Fraunces",300,1,1,"0j10jm0j108103h0ig09i03817t20y09m0980a51lo00c00903h04a03v04904003302402703303d03s05u01n02b04s0al0hi0rr0gq0kr","0ib0ib0ib08p03v0im09704710c0w60730cp0e71nd00700b01t05503z04b04z02p02c02204004c05707m02j03s06v0ds0i50r30ff0k8","0kp0kp___08504m______03e1b927i07a096___1f700000003903n03c03y03003503l03x03703f03z05l01l02b0590an0ns0rs0go0pv"],["Fraunces",400,1,1,"0k60kr0jw07g02w0il09h04k1dr1ki0ca0bv0cw1jl00b00903004g04104c04203402802104g04r05c08002103807a0fu0hx0rs0hb0lx","0k80k80jq09c0310i70ab05f16b1bd0ak0eh0g71in00a00a03504n04703e04z02s02f01p05605l06i09j02x04k0930hs0id0rq0h70l9","0lu0lu___07e04b___04h04v1ii1q50aq0bi___1dm00000102s03u03h03z03403a03p03m04d04w05o08402003307f0fk0ov0rs0ie0r0"],["Fraunces",700,1,1,"0m60n20la06s02d0ix09g0781lq16m0ef0ft0hd1fr00900b02i04t03r04k04t02l02h01q06y07j08i0c302y05z0d50ju0ij0rs0ji0o8","0lp0lp0kq06t02h0il09c07l1ec0z10dw0h40j71fr00800b02n04t04e04n04t02j02o00t07407u0920dg03q06v0ex0lj0i10r00ir0mp","0og0og___068043___04j07v1un1az0cw0fq___1ap00000102904703s03g03t03n03f03806r07v0920cz02w05l0d50qi0qc0rs0mq0sj"],["Freckle Face",400,2,0,"0hd0i8___0az01g___08t06d0xd0pq05b0hf___1ji00600f01s05404x04x04f03h02a00c04w06n0980fn04r07h0db0k60hd0ok0gs0jo","0ir0jr___0qz01z___08j0700xc0ht0d80i5___1co00500d02104z04u04w04z03802300a05h07g0ci0gw05i08c0en0lg0hs0ou0hs15h","0jo0k90hx0h90160n506l06k0x20xx05t0hd0jf1ll00000301g04y04h04i03r04n03l00d05d06x09i0fl05407q0ey0n30ky0pg0hx0lz"],["Fredericka the Great",400,2,0,"0hx0j20g616r02b0ih08v02z17n18s07o0b10c92bc00800a02p04a04h04i04703202d01s01s03b05506e01b02805209l0hz0rq0g60tg","0hr0hr0fs0qt01z0ji08d0601kc0xs0590f80g61ph00600a02t04a04f04i04t03102e01404y06106z08802804q0c20ji0i60r20fs0kp","0lb0lb___0us02w___07h0311671yc0ca0bs___21400100202k03k03o03s03h03k03t03b01p03705o06q01b02c05509u0py0rw0ha0ui"],["Fredoka",300,0,1,"0i70it0i706g04p0it08802u0r80ro08p0990ae1iv00500803504o03v03m05j02h02202302p02w03k05z02n03104p09r0gm0r40gg0je","0hy0hy0hy09b03z0im07j0410sg18y06t0cl0e01k500200a01s05903x04i05o02702602003n0430570a103h04a06x0dz0h40qx0fy0ix","0je0je___06j06h______02v0qq0rq04a092___1ap00000002y04203603b04202p03o03v02q02w03g05p02q03304t08r0j30rs0hm0mc"],["Fredoka",400,0,1,"0is0i70is09603j0iy0880440rz0qr0990cn0dv1i200500902h05103y03s05h02n02e01p03w04605c0ay03v04f07t0fr0hm0r90fu0jy","0io0jn0io09402y0jd08804x0sx0m50860eo0fq1gw00400902g04v03x04e05c02s02i01704l04z06n0dk04k05909y0hh0hz0ro0ho0kn","0jy0jy___0ak04p______0430rm0qw03l0ck___19x00000002b04h03c03f04102u04d03203x0460550c803x04i07d0g00kq0rs0f90mw"],["Fredoka",700,0,1,"0ku0l40k90fl01r0jo08p07n0si0o30aq0jb0kz1a500500a01t04p04k04u04d03i02j01307h0810f70j707g09p0id0q80j40ra0jo0ow","0oy0si0jd0yq0210k308j0840td0hz0f20jc0kr13i00400a02004s04s03t05603l02h00u07s08v0gh0k407s0cf0iz0py0is0qv0jd1n2","0m30m3___0b402c______07q0se0o606p0jd___15500000001l04904103j04404004j01r07k0870ei0kq07k09c0j00r40o20s30kx0oz"],["Freehand",400,2,0,"0uy0u3___0he06d___0db03p0qh0tt0fv0bp___26t00g00h02705v05204f02802o03101f03903t04t06z03304706u09k0c50qm0f216t","0wk0w3___0no06p___0d104y0ra0ce0j80e7___1pt00f00h02005l05304e02n02k02v01s04f05507r0br04c06909v0ck0cj0qt0h81lg","0r30r3___0k601s___04q03o0p524c0dw0bi___1w000000702004e03k03a03s03f04u02c03b03t04p07603704c06x09e0me0rd0eq14m"],["Freeman",400,2,0,"0fn0g70f206n02w0ku06d05k0vv0u20130i20j01ub00000b01z04s04904g04104802i01c05f05m06f0bu04r07d0id0q60kc0rs0f20gs","0ft0ft0ft0c801z0lg06a0620ts0m503m0jb0ke1q900000a02404n04604e04n04a02f00v05s06408n0d405k08d0j90p50l30r40et0hs","0gs0gs___07v03h___04n05q0wh16j0000i2___1mk00000101p04a03s04203h03q04e02d05m05r06u0cs04t0800km0rp0p30rs0dw0hd"],["Fresca",400,0,0,"0f20f20f208002w0hy08p03q0t10t00250d50ec1v900900b02a05604l04w04t02n02k00c03k03t04m08803a03z08c0g20gt0oj0eh0g7","0fq0fq0fq08p01z0id08h04p0td0sf01n0fh0gr1s000700c02g05404k04w05d02f02a00904f04r0690av0480540bb0hv0h30ou0ds0gq","0g70gi___09i03h______0470t00t900g0da___1kq00000001v04e03n04403h03f04802n04104904x09a03s04v0ad0kv0lj0rs0db0j4"],["Frijole",400,2,0,"0v20v20ur0cy02c0n504509e2gv0ro0ph0h10ge1ai00000d02d04i04703w04404k03300q01z08f0b60gy01v04x0bn0md0me0oo0qy0yk","0th1ft0sy0h80320n904e0au1fd1660qg0ib0jg0wc00000c02w04g04703b04204i03h00k0a70c80gq0o605t09d0lq0qm0mh0ok0pe14n","0rs0rs___07603h___0350811ur0lj0gj0ia___1be00000201q04g03z04c03i03y04l01901x08i0c30hl01w05g0co0oa0of0qu0lf0xk"],["Fruktur",400,2,0,"0j20ks0hb0a20160ld07m06m0uz0xu06f0ig0jn1th00300l01s04s04804e04e04l02300w06407108q0cb05m0860hh0m30k70qk0hb0ld","0lt0ke1vb10301w0kk07u06s0vy0mr0d30k90jw1hk00300i01z04m04804d05204p01v00f06c07e0bg0gg05u0960iv0ns0j90pu0i11cd","0jz0k90hy08z02b0lf07306q0ua0y802w0iz0ji1ld00100a01m04e03p03t03b04504l01z06f07909d0ez05w08f0hb0qq0ph0rt0ij0ml"],["Fugaz One",400,2,0,"0ld0mj0jn06j01q0io0cx0770vv0rs0a70i40jw1d900d00d02405404804j04902w02l01e06x07e0c40i106508g0gq0me0ij0rs0jn0n4","0jt0kr0iv0as01w0hv0ck0740vr0l00bq0jf0la1dw00d00d02905104b04o05o02b02d00j06w07k0ds0hb0670910gt0mn0hc0qk0iv0lp","0mj0mj___07a02w___08o07b0w90rt02l0ik___18500100201o04c03s04103e03n04n02b07907l0cg0jf06b08w0he0qd0nx0rs0ld0n4"],["Fuggles",400,3,0,"0c60cq___0nt037___0af01r0rh0td079074___2dq00d00u04b05i05o04j02702601s00g01g01r02a03701c01t02z04t0a30lh0990f2","1021gw___0l106q___0a90450um0fz0ku0a5___1qk00b00k03f06305r04r02r02801l00d03904406508x02x04406t0a40aq0l50p0231","0o50o50o50bx02d0mz0am01u0sj14l0g705n06x1qm00500703904a03q04103o03b04b00w01k01y02h03q01d01t02q04d0fy0nt0me0wz"],["Funnel Display",300,2,1,"0jo0jo0k908904n0kf08d03m0td0rs09g0ap0bs1gu00700902f04u03m04903r04h02a01r03j03p04h08s03403o05v0dq0ij0ra0ij0ku","0jo0jo0jo07s03y0ki08a04j0t20ml0b80dg0eb1h300500a02j04v03r04a04p03o02h01504b04m05t0c604404p0840g70iy0qz0ip0ln","0jo0jo___0bm058______03n0u90rs0410ao___1bo00000002804a03904103f03404a03803l03o04c08s03403l05z0ck0kh0rs0gs0n5"],["Funnel Display",400,2,1,"0k90jo0ku08z0420kf08b0490ul0rs09m0c10d51g300600902804z03r04803v04e02c01m04404c05b0b403n04907d0gj0in0rg0ij0m0","0kp0kp0kp0bo02y0kh08b0510uj0lx0b40eh0fe1g600500902e04x03v04b04u03k02h01304s05306i0de04d05309y0ho0iy0r00iq0mo","0k90k9___0bg04n______0490v60rs04f0c4___1ab00000002104f03d04103h03804c02x04704c0570cd03n04707o0gp0lh0rs0hd0nq"],["Funnel Display",700,2,1,"0lp0lf0m007b02w0kf08a0630vq0rs0ca0fo0gx1co00500a01x05004004a04904202i01e05y06808i0gu0570630d30kl0ja0rs0ku0nq","0lr0lr0lr0du02z0kg08c06n0vb0lb0bq0go0i31ad00400a02505004404d05003b02k00y06c06t0ar0hq05r06p0ek0ki0j50r20kr0oq","0lf0lf___0al042______0660w40rs0660fw___16i00000001p04j03j04203i03f04o02f06106c08o0j605c0650cz0px0n80rs0ij0ow"],["Funnel Sans",300,0,1,"0hy0hy0hy0880580kf08c03h0s80rs03o0b50cb1jl00700902d04u03o04b03s04f02b01q03e03j04a07w03403q06f0eq0il0rd0gs0j4","0hq0hq0hq07y03y0ki08b04f0rz0lr05c0e10f01jg00500a02g04w03u04c04p03m02h01404904i05m0c404504y0980gp0j10qz0hq0ko","0hy0i8___0bj058______03j0t60rs01c0ax___1dz00000002604903b04103f03704a03503g03j04607w03403o06g0dy0kw0rs0f20ku"],["Funnel Sans",400,0,1,"0ij0ij0ij08u04n0kf08b0440tp0rs04k0cj0du1is00600902604x03v04a03v04c02d01l04004505209z03n04d08e0hi0iq0rh0gs0jo","0hr0i90hr07w03y0kh08c04w0te0n005w0eu0fy1ie00500a02d04v03x04d04u03i02h01204n04y0660d204f05a0aj0io0j30r10hr0jq","0ij0ij___0bf058______0450u90rs01c0cj___1cl00000001z04e03f04103h03a04d02v04304604z0b403n04b0820ib0ll0rs0fn0m0"],["Funnel Sans",700,0,1,"0jo0jo0j407a0420kf08a05y0uy0rs09m0g80ho1fc00500a01w04y04404c04704102j01d05t0620800fq05706e0ef0l70jo0rs0ij0lf","0js0js0is08b03y0k008c06g0ud0l809t0hk0j21dd00400a02404x04704g04y03b02k00x06706m0ag0gf05t0730fr0mh0jv0r30is0lr","0jo0jo___0af04n______0600va0rs03j0gc___18d00000001o04i03l04203i03i04m02e05w06608c0hl05c06e0e10qs0nc0rs0gs0ml"],["Fustat",300,0,1,"0ig0ir0i605s04m0jn08302o0qg0rs06y08r09y1ne00600802o04o03t04503z04402002102j02r03d05g02h02y04n08h0hi0r40gq0jm","0hc0ib0hc07l03v0jp07d03u0qp___04j0c80de1pc00100a01g05303x04704z03w02a01q03i03x04y0aa03o04907b0dz0i80qt0ge0ja","0j10jm___05t05s______02p0r50rs02208n___1hj00000002h04303e03u03i03503l03t02i02r03705302g02v04x08e0j90rs0hb0kr"],["Fustat",400,0,1,"0j10j10j108s0410ju08303j0r70rs06a0az0ca1m100500902d04v03w04604304202701s03a03m04j08u03903u06g0dk0i30rb0gq0jm","0ir0ir0hr09203y0jj08504g0ru0lf0690ds0ex1mm00300a02i04y04304d05303302i00w04404j05w0c904804y0910fw0i50qu0gs0jq","0j10j1___08n04m______03l0rx0rs02u0av___1gf00000002504f03g03u03j03603z03903b03m04908s03803s06p0cs0ku0rs0g50kr"],["Fustat",700,0,1,"0jw0jw0jw07y03h0k70830530ts0rs0930em0fo1im00500902304x04104804803x02g01i04v05606u0e304n05g0ay0jh0j20rq0ig0kr","0j90j90j907p0310k308c05q0tr0ln0990g60hg1h000400a02a04w04603b05203u02l01b05c05y08e0f70550670cz0jr0ji0rn0i80k9","0k70k7___09104m______0550u10rs04h0em___1ce00000001u04i03l03y03i03b04h02o04u05706p0fx04o05k0b90m70mj0rs0gq0mi"],["Fuzzy Bubbles",400,3,0,"0j40jo___08s03h___0bl03g0ro0p608k0aa___1ik00a00702j05004k04x04g02y02l00b03503i04m07n03403q05z0bf0f50nx0gs0lf","0iu0iu___08b02z___0ah04g0se0o708a0cr___1gg00900802205704l05005802u01x00h04104i06c0ap04104r0830ds0g20ny0fv0ku","0jo0jo___09y042___01y03r0s30on03n0ap___1ad00000001s04h03n04g03k03a04x01p03j03s04x09003e04206m0cb0hm0qp0eh0n5"],["Fuzzy Bubbles",700,3,0,"0je0jo___07t03h___0cq04v0s215f08k0dn___1f600a00802305a04o05204k03202d00a04g04y07a0c904i05f09r0g40g90ob0gs0lf","0j00j0___07o03t___0c405h0sw0m307j0f1___1cz00800901m05104j04u05603u02200804y05m08g0dq0500640bd0gn0h40oq0h40kw","0kq0kq___09c041___02105a0sb0ow04k0ec___17m00000001d04h03u04f03m03i04u01q05005e07t0e904z05x0at0j70k90r20j00o6"],["GFS Didot",400,1,0,"0jc0jc0j107n03j0ir0as03u1a425r09m0ai0bn1id00a00703d04a04303o05402y01u02103l03y04n06w01q02q05v0dc0hn0rs0ge0mu","0jm0jm0j407f03g0jc0b704t13t1k00930dv0ej1h900a00703c04b04004805402i02701n04i04z05y09b02o04408c0g40hz0rq0go0lk","0m90m9___07x044___06g03y1j228u0680ag___1cn00000403603j03j03604203e03303t03q04004p06501n02d0670d70os0rs0ge0om"],["GFS Neohellenic",400,0,0,"0gi0h30g709o03h0hd09u03a0ry0wx06y0as0c61ia00c00702q04t04004j04y02102d01v03503f04407302w03i0620ca0g70ra0eh0ij","0gw0gw0fw09k02z0hi09h04c0ss___04x0de0g61iu00700901h05e04804r05i02501v02204404g05q0az03t04r0950fq0gu0qu0dw0hw","0hy0hy___0b305s______03f0ri0yv0350al___1ad00000002d04703803s03i03704203h03a03k04606u03203t0660c20kb0rs0eh0lf"],["GFS Neohellenic",700,0,0,"0hy0jo0hn09502w0hd09u05i0uu0vb0990g30h41f500a00802605304704r04g02802u01m04r05y07s0e404o05z0bv0j50gt0rs0dw0k9","0id0je0hc09a0210h80ae0670us0mx0ak0h50io1bx00800902f05604i03u05202a02y01505e06l09y0fd05d0730dz0lo0gn0qz0gb0mg","0lf0lf___09b03h______0640ub0vo06u0fw___14y00000001s04f03k03z03g03g04l02m05w06g08l0h605306s0ct0q50nc0rs0hy0n5"],["Ga Maamli",400,2,0,"0hn0hn___0cm02w___02b05n0p40ao0250gg___1kq00000001704g03x04f03s03q04j01s04205p08i0de05k07g0dt0ll0ll0rs0fn0ij","0h70h7___0c102g___02z06b0qa07v01m0il___1h400000001d04903y04b04903u04901m04v06g0ak0eh06b08k0g40o00lz0rr0fq0io","0hc0hc___09l02b___03h05w0qb08m01l0gp___1jy00000101d04n03t04703l03m04l02004905z08i0do05g07b0dc0mu0lm0rr0fm0j3"],["Gabarito",400,2,1,"0j00j00j008u03g0ju07t04k0t20rs08q0dw0fd1jd00400902205203z04g04803t02e01i04e04m05z0cf04704w0a50ii0il0rn0gp0k6","0ir0ir0ir09n03y0jl08705a0th0lu0780f90hd1in00300902804w04304j04z03402k01204y05f07b0e604q05r0bw0jc0iy0r10gs0kq","0j00j0___0a304m______04k0sz0rs0580di___1bg00000001u04j03k04303c03804g02t04e04l05y0e704704y09i0hx0lh0rs0ez0lw"],["Gabarito",700,2,1,"0k60k60k608h02w0k608206d0te0rs0990hq0il1e700400a01v04z04704i04c03o02k01d06806h0a10hd05y06z0fr0mt0ja0rs0hv0lb","0jq0jq0jq0ea02z0jm08706y0u70lt09w0i60ki1c000300a02204w04904n05003502i00z06l0790c70hg06b07v0gw0n60j40rq0ir0kq","0kq0kq___09v036___01w06g0th0rs06c0gy___17w00000001n04i03q04503d03f04n02e06806m0af0hs0600760ff0qj0nn0rs0hv0o7"],["Gabriela",400,1,0,"0ir0jd0i607h03j0ir0a504311w1dq08c0bs0cb1mt00h00f02y04q04103p04v02k02f01m03q04904z07l02l03i07h0ga0hl0qz0gf0lp","0hz0iz0hz0fz0300ht0aa04w0y618706y0e90g01lu00h00f03204x04604m04y01i02q00y04m05406709v03e04l09j0h20h80qa0fz0jz","0k90k9___09304n___0aj04b12v1x303f0bq___1gf00600602m04303c03p03203803t03o04404h05a08u02n03q07u0ff0oc0rs0fn0nq"],["Gaegu",300,3,0,"0fx0gi___09a05w___0am02o0ro0r808508i___1dp00d00h03704v04k04g04z01x02i00i02i02q03c05a02c02t04i0990dl0mz0eq0i9","0ga0f9___087053___09p0460rz0q309r0bu___1ea00b00d03005804t04405302k02400903p04705909s03o04e07o0d10ef0mm0f90ib","0jt0jt___0af070___04o02t0sc0s504n08f___16t00000k03703y03n03s03z03n03z01302m02v03e05h02f02w04p09c0em0oq0de0kz"],["Gaegu",400,3,0,"0fv0fv___092068___0as03t0rz0ry07a0bj___1c200c00g02s04y04j05604n02d02900d03k03u04s08z03g0450760dg0e70n80fb0ip","0gd0gv___08005g___0ab04p0s60pq0990da___1bg00b00d02j05504q05h04k02k01o00h04f04t0690br04e0560a00fb0ex0n10ew0ju","0k00k0___0b2072___04p0400se0rx04c0bk___14z00000h02z04403r03v04303804g00w03s04205009j03n04c07e0ep0g40pa0e40lr"],["Gaegu",700,3,0,"0fv0fv___08i069___0as04x0s60se0850eb___19e00c00h02j05304n05b04h02k02400b04n05106o0cs04n05m0az0gs0et0ne0er0i5","0ft0gb___07r05y___0a705o0sk0iw06y0fg___18o00a00f02c05704x05l04f02o01t00605705r08u0do05c06n0cy0ho0f60n40eu0is","0iu0j5___06v06s___04404x0sb0rp02a0et___14p00000201g04j04603x04m03m04l00v04p04z06s0cz04n05n0ap0j80jg0px0h30l7"],["Gafata",400,0,0,"0eh0er0eh0780420ij07j02u0t60rs01r0ac0bp1sa00600c02w04s04b04z04f03602k00702r02v03906902h02t05r0e90h00ob0dw0fn","0ex0ex0ex07p03z0ig07i0420ty0rs01o0dz0ff1rs00100d01n05f04i05205f02x02900703p0440500aj03i04d09c0g20hu0op0dx0fx","0hd0hn___08g05s___06y03b0ub0rs0000as___1f100000302d04303a04103h03603r03j03503b03o06n02r03906c0fe0l00rs0eh0j4"],["Gajraj One",400,2,0,"0r50pz0r507j02b0k90830c62xp1oh0jp0mz0of15v00500a02r04b04a04f03r04702701g0c50c60cj0mn03a0gh0lf0sd0ku0rs0k70rp","0qk0qk0r10ek01z0l80870ca2lx19d0kj0n80o213r00300b02e04e04804d04b04c0260190c50cj0d10pi0420hx0nc0ry0ln0rs0mm0ti","0qz0qz___07x02b___07f0ch2yn1j90h20ne___13d00100202g03v03q04003e03p03z02n0ch0ch0ci0nd03a0gu0s70s70rq0rs0me0uf"],["Galada",400,2,0,"0k80jd1pa0fq0210il09905q15m0vd0610ev0fc1yq00b00g02305204b04h04703802i01905405q05z08n03c05n0ch0iu0i40r60hc0oa","0ll0k41os0ni02g0j809f06f11o0p30d30gl0hs1rb00a00g02a04v04204d04p03202h01a06006f07l0ce04h07o0f80jq0is0rl0hn166","0ih0ih___0af01q___07r05q14y0s202s0f8___1mf00300a01r03v03j03n03p04704d02e04t05p06108603605p0bl0jt0og0ru0c40mi"],["Galdeano",400,0,0,"0fm0g70f108i0570i608p03w0wb0ze0580d20ec1nx00700j02y04u04g04q04j03302700b03q04304n08503003u08a0gz0gx0od0eh0hd","0fg0gh0fg07y0440j107x04v0vh0qd02d0f90h01my00200f01y05e03h04y05d03o02a00904n04z0620bd0420540ax0i40hn0or0ef0hj","0fk0fk___0dx05r___05o04g0x80zs03f0cl___1d600000b02c04803l03v03c03f04e02b04404n05908s03g04g08y0jv0kh0ra0ad0mh"],["Galindo",400,2,0,"0lp0mv0l308202c0jl0ak06y14u18w0ep0hd0hm1eb00a00902c04r04904004y03c02a01c06o07a08m0gx04k0650gk0pv0j30ra0ki0om","0lm0mm0lm09j01z0jk0b107f13r0tf0f60hy0ib1cg00a00902i04l04304j04s03502k01307007t09t0h805106n0h60p40j20ro0jn0pk","0mv0mv___09e02m___04n07u19j16g06a0i6___17j00000101n04d03t04803b03r04d02c07a07x0940gx04n06h0hx0r70ox0rs0gs0ow"],["Gamja Flower",400,3,0,"0gh0gh0gh08q0440gh09f0480s60rk09s0d10fb1hy00800c02d05604j04n04s02002p01304004905e0az03w04o0980f90fc0pz0eq0ho","0gq0gq0gq0bx03y0fp0a00550sm1eo0ay0fu0ix1eo00a00b03604w04d05f04202702l00k04t05706y0dt04s05u0c60h90f70pu0fq0hp","0h00h0___09z04j___01v0480sm0s401t0dd___1dt00000001j04e03t04e04003m04p01e0400490550a403v04t09m0h90jk0qo0e60ja"],["Gantari",300,0,1,"0j30jo0ii05z05s0jo07r02v0st0rs07j08u0a41h300500902r04m03s04804203z01z02202r02x03h05x02h02w04l09d0hl0ra0gs0ku","0ij0jk0hi08k0440k007r0460u9___04a0c80dp1i300100b01j05e03204i05403y02g01i03u0480590a903h04c07n0eg0ij0rm0gh0kl","0ku0l4___07t06d______02x0ti0rs04708p___1b100000002j04203a03t03o03103k03v02s02y03h05m02i02w04p08u0j90rs0hy0mk"],["Gantari",400,0,1,"0j30jo0j309s0570jo07p03x0u20rs06k0bo0cw1gh00500a02b04x03w04904c03l02c01q03s04004w09t03d03x06u0f40i20rs0g70lf","0ir0jr0hr09e03y0jh08504r0u50ln0730dr0fg1gu00300a02h04y04304f05402t02m00x04g04t0650dc04704t09n0gj0i30qy0gs0lq","0k90k9___0bt057______0410v80rs03z0bk___1ac00000002204e03c03w03m03404903603w04304u0as03f03y06z0e60l10rs0fm0n5"],["Gantari",700,0,1,"0k90l40je0e103r0jo07o06c0wp0rs07s0gh0ih1df00400b01x05204504f04h03c02n01f06406h0940h805a0670eb0lu0j30rs0hd0nq","0ka0ks0j90aq0420jx08d06u0vw0md08w0hq0jp1ap00300b02705304803f05703g02m01906j0750bf0hq05t06y0fr0mn0io0ro0i90nb","0lf0lf___0ak042______06h0wi0rs04v0gp___16300000001o04k03j03z03k03c04o02h06c06p09i0j305e06d0ea0qi0ny0rs0gs0ow"],["Gasoek One",400,0,0,"0n50nq0mk0fa0160lh06d0ad1180rs0fi0n10n616v00000901w04k04o04k04204n02g00r0ab0bf0jv0m909q0hh0nn0qm0li0qm0lz0pg","2eb2lx2da0ho0950m206g0bc1bs0mc0rs0lg0mw0kk00000802204i04q03h04q04n02o00s0bn0j60ph1ap0e20ly0qb0r50ls0qu2143bt","0pw0pw___0d8015___0330bv13k0rs0gs0oa___10d00000101l04004804003f0470460280bv0d50m60ow0ac0j70rs0rs0rb0rs0mf0r1"],["Gayathri",400,0,0,"0jo0jo0jo0dt03h0ju08403q12a0rs09n0ae0az1kd00700902t04g03y04i03v04402001o03m03s04b06e02803406f0e60i40r90ij0m0","0jr0jr0k80ic02z0k907j04p101___08e0d00dy1kk00200c01h04u04204g04o04702901i04f04s05p09903404a0890gp0ir0ri0hs0mp","0lp0m0___09703h______03p14l0rs04n09q___1f000000002j03v03j04403g03e03k03d03m03q04805z02602w06h0bt0kj0rs0hd0nq"],["Gayathri",700,0,0,"0k90k90lp0ad02w0jv08404k14m0rs0aw0c30d11i400700a02k04l04204i03y04202401j04f04l05c08c02o03u0800hd0ij0rb0j40n5","0k90l90k90j20310k308d05h11v0o909p0ef0fk1h400500b02k04p04703f04r04402a01e05605k06m0c303j04w0a60il0in0rj0j80oa","0ml0ml___0ad03h______04i17a0rs0580bk___1cz00000002a03x03l04503i03h03u03104e04j05508002m03k07p0h60lk0rs0hd0ow"],["Geist",300,0,1,"0ih0jm0i607404m0ks0640350ra0rs0140ad0bc1m000000a02k04p03p04803q04m02401x02z03703t06e02x03e05n0cc0ip0rp0g60jm","0ia0ia0hb08803v0kn05h0420ri___01n0d30du1nc00000701f05203t04804f04j02a01v03v0450560a103t04j0810fl0j80qz0gd0k7","0k70k7___05e057______0370rz0rs0000a0___1gn00000002f04503b03z03f03403v03k02z03803r06a02x03e05p0bt0kf0rs0hb0lx"],["Geist",400,0,1,"0j10jm0ir08b0410ks06503v0sg0rs02m0cp0d61kg00000a02b04v03u04b03q04j02a01p03o03y04v09j03l04507g0ga0j30rq0gq0k7","0ir0j80ir09o03g0kl06904o0sh0me06o0ed0fk1kk00000902h04v03y04c04q03o02h01204e04r0600cv04c05309z0hn0j40r00gs0lp","0jm0jm___0a6057______03x0t40rs0000c3___1f600000002504d03e04103e03704603603o03z04r0b303l04507b0fo0lg0rs0g50lc"],["Geist",700,0,1,"0lc0ln0l206s03h0ky06306d0xf0rs09m0h30ho1ez00000a01y04w04404d03z04b02j01f06706g08e0gm05706g0f30mc0k80rs0j10mi","0kr0lr0js07m02z0km06a06s0wu0mk09t0ho0iu1dd00000902504v04704g04q03n02l00x06g06v09z0gt05h0720g00ml0jz0r30is0lr","0mi0mi___09b04m______06d0x70rs05a0h5___18p00000001q04g03n04103f03h04j02j06806h0940is05a06l0el0qx0nt0rs0jm0no"],["Geist Mono",300,4,1,"0ih0ih0hw02u0570ks0630340sd0rs01o0an0be1dq00000b02t04r03m04403l04r02201v02z03603v07i02v03a05f0c70iq0rf0hb0j1","0hb0ia0hb02r03v0kn05g0420s1___0130d10ec1e800000801j05603p04604a04q02801u03t04505c0ay03m04d07q0fj0jb0qz0hb0ia","0ig0ig___05304m______0340ry0rs0000ar___1el00000002f04503d03z03e03603u03i02z03503n06402x03f0680dr0lk0rs0hb0jm"],["Geist Mono",400,4,1,"0ih0ih0j105304m0ks06203u0sx0rs0240ck0dk1cy00000b02h04x03q04603m04p02901n03o03w0500ab03j04106z0gc0j50rp0hb0jm","0iq0iq0hr03m03y0kl06804p0t10nn04t0ef0g11c800000b02n04w03v04804n03t02f01104d04s06g0dk04a04z09t0hx0j60qz0hr0iq","0ig0ig___08w041______03u0si0rs0000cx___1dk00000002504c03f04103e03904603303o03v04n0aq03l04708a0j80mq0rs0hb0jm"],["Geist Mono",700,4,1,"0jx0jm0k703f03h0ky06205v0uv0rs0810gz0i01aa00000b02305203z04803w04g02g01d05p0610880g90510610dt0lm0k80rs0j10k7","0jr0is0jr05m02z0kn06906c0uo0ly07n0hv0jb18200000a02a05104204b04q03q02i00w06306i0ai0gk05h06r0fl0lw0k00r20hs0jr","0jm0jm___04s03h______05y0v60rs0000hb___18k00000001r04g03m04103g03i04i02i05t0620870gn05a06n0fr0rq0og0rs0ig0kr"],["Geist Pixel",400,2,0,"0hy0hy0hy07n0420jx06h03d0rk0sz0420bh0db1iy00100b03404q03t04403v04202801k03a03f04r09603b03h05d0cd0ip0rs0f20jo","0is0ja0hs06603y0kg06f04i0rh0km04d0e10fy1ij00000a02h04w03y04804q03t02c01504904k0660d804f04z0930gq0j30ro0ft0jr","0jo0jo___09m058______03e0ri0t10000bc___1dj00000002s04203804203h03404403003b03e04109r03b03h0680bf0ke0rs0f20ku"],["Gelasio",400,1,1,"0h80iy0fs0f102v0ht08103v17u1wq07y0bm0cx1pi00a00l03i04h04e04h04l02w02900d03n03z04l07t02302v06m0en0h80pd0ex0k3","0h80hq0ga0l602e0hq07c04n12v0sx05p0dv0g51py00300m02005504b04i05403202500v04d04s05r09302v04108o0g90h70ps0fb0k4","0m00ml___08c04x___07q04c1ao27p0aw0bm___1ek00400b02x03t03f03o03503f03h03j04504f05409702903007f0ev0n60rs0ij0q2"],["Gelasio",700,1,1,"0kt0m90k80db02w0hx0830651rk1g00g50dv0fr1h400900l03204p04k04r04m02u02300d05t06a06y0af02803y09z0i10hf0pk0ii0ov","0kn0ln0jo0ib02y0hh08606o1i216x0fo0fo0ik1gp00700m03604o04j04q05a02b02300a06906r07q0bi0300540bs0i40h20pt0hp0pk","0ph0q2___07y04n___07o06t1zb1k90fb0dn___18300300a02k03v03n03t03a03q03j03106606t07j0b602b03u0aj0mx0nb0rs0lf0sy"],["Gemunu Libre",300,0,1,"0fg0gm0ek06c0460l108u0360vh3cu0150bh0dc1qs00a00703z03o03c04903h04r02a01m03503703c08w02o02w06m0le0l10rk0e90ht","0et0fs0dt0a402z0kd0880430wg2b202u0eq0fm1w300600903304f04504m04h03p02t00503t04504g0bp03c03n0b70k80jy0px0dt0hr","0h00h0___06o05o0ex___0390vk3cs00j0bi___1is00000002k03w03503v04003303m03m03703a03c0aq02u02x06g0pd0ma0rs0fb0i5"],["Gemunu Libre",400,0,1,"0eu0fp0ea07p0400jw08e03l0vc2tq0130dh0fb1sq00a00703n04404104h04603j02p00p03k03m03t0bp03203a0aa0kl0k90q50ea0h5","0et0ft0du07a02z0jp08904e0tu20f0130ft0hr1u500600a02w04n04504m04i03f02z00504a04g0510cm03r04a0d10ks0jy0pw0du0gs","0gq0gq___09m0570g7___03x0vd2s900g0dg___1hm00000002g04803903z03i03603t03g03u03y0410e903e03j0970r20o70ru0ef0j1"],["Gemunu Libre",700,0,1,"0ft0h90f807703i0kh0870500vd1gx01m0h10ir1pm00600a02f04x04503w04k04002h00y04z05205m0ek04a04o0hy0pe0kh0qd0f80iq","0gb0hs0ft08z02z0jp08905j0vw1h50420i50jt1qe00500a02l04u04804o04q03h02o00505b05l0780eg04o05j0hb0np0jy0pw0eu0is","0ig0ig___08u04m0gy___05g0vm21p00g0h6___1de00000002004f03b04203k03a04d02u05e05i0600gh04r04y0fo0rs0pk0rt0ez0k6"],["Genos",300,0,1,"0ku0ku0k90650580m006303212n0rn09g09709o1ci00000b03904703o04p03804o03j00802y03503i05u0220290440c80ka0ph0j40ml","0k70ko0k707a04t0mf05i04610n___0810cu0d61dl00000901o05003l04b04404d03n00v03z04905409s03003f06g0hb0l20pu0j80m4","0nq0nq___0a706y0fa___03g1540rs0am098___13y00000002v03r03904003l03103d03z03e03i03v06a02a02e04s0cg0lk0rs0fn0q2"],["Genos",400,0,1,"0lp0ma0lf07904n0lz0640471610rr0fi0bu0cb1ak00000b02p04l03r04p03e04q03f00904504c04w09x02n02w06f0j50kj0pg0k90ob","0ln0mn0ln06303y0mb06a05411z1x80gk0ee0ew1aj00000b02s04l03p04l03x04t02x00604y05a06f0fe03g0430930k20kz0pr0ko0nm","0ol0ow___0b10630fv___04x1970rs0cw0bu___11n00000002d04403c03x03p03403r03j04v04y05l0ar02z03507t0k50nb0rs0f20rs"],["Genos",700,0,1,"0pg0r60pg05f03h0lz06e08j1bu1fm0nw0i60iy14200000c02005104204n03p04x02v00a08f08s0b80mv04u05o0iy0oj0lf0pg0ov0sc","0po0s40oo05d02z0ll06g09119o0lm0oi0j10ks12k00000a02804y04104n04d04r02d00708u09i0e70mw05b06o0iu0o20ls0pq0oo0ul","0wf0wf___0af058___0420a41fe0rs0ko0iq___0tl00000101q04i03h04003j03a04o02l0a30ad0et0t605g0620i10ri0qb0rs0ow0xk"],["Gentium Book Plus",400,1,0,"0g70g70g708c02w0hd08u03n10y1sr07n0as0d71sp00c00a03f04x04j05104x02j01j00b03l03t04o07p0280310670ds0g80mo0eh0jo","0fa0h70fa0jk02v0hp08804g0xc0qy03m0dz0g21up00600d01t05f04d04u05h02v02700c04904l05v08w03804b09a0h40h40nr0de0h7","0kt0kt___073057___07j04g15p1yq04h0bs___1dv00100402q04003c03n03d03903s03k04804i05809f02i03f07g0g00ny0rs0hc0o9"],["Gentium Book Plus",700,1,0,"0hd0k90hn0b902b0hd08p05918z1ea0bl0dc0ft1pd00b00b02z05804r05404r02n01g00a05505e06i0a002r04009c0hh0gs0mv0g70ku","0gn0j30gn0gr02y0hf08c05t13l18407p0fp0j11od00800c03205204m05305602k01h00805i05y07g0c803n0510bv0ii0h00np0fo0jl","0mj0mj___08404m___08m06f1fk1h80930el___1bc00200402a04603i03r03c03g04103405x06g07f0c803504p0aq0o90ox0rs0j20pz"],["Gentium Plus",400,1,0,"0fn0g70g707s02w0hd08y0350y51xo07309r0bo1u500d00903n04t04g04z04y02g01l00b03103904106o02002q0560b80fx0mm0dw0j4","0fa0g80fa0ay02v0hq0890420ve0sd04n0d10fe1vm00600c01w05f04904u05i02v02700d03s04805k08c03504408a0fb0h20nq0dd0i5","0k80k8___07k057___07g03t11b26y03w0as___1eq00100402x03w03a03m03e03703p03q03l03u04j08j02a03306b0cl0ne0rs0g60no"],["Gentium Plus",700,1,0,"0h30hd0hd06x02b0hd08s04q16c1j20810ci0ez1qa00b00b03405504p05304t02l01h00a04n04v05x09g02k03n08b0h10gg0mt0fn0k9","0gn0jl0gn0lm02y0hg09005b1121at0990ev0i51py00900c03405004k05105902j01i00805205h0720b903g04v0b10i00gx0np0eo0jl","0ly0ly___06r04m___08a05r1ck1n906y0ds___1c900200402e04403h03p03d03e03z03905c05s06n0ba02x04809s0mh0oi0rs0j20pf"],["Geo",400,0,0,"0db0db0db08706d0i309v03n0tj2u001l0eb0i71oj00a00b03x04s04j04k05303101500703h03n04c0dd03c03j0bq0iy0ij0ne0db0db","0du0du0du07v05x0ik09i04e0sl2a70120g10ks1nz00600c03405704h04o05u02p01500604904g06j0dc0460500fr0jd0iz0nq0du0du","0fm0fm0fm08b07j0lk0830480tp2js00h0gz0jb1di00200403304503a03p03g03s03k02o0410480550fq03u0450e90s60lp0rs0fm0fm"],["Geologica",300,0,1,"0ig0ig0ir09r04m0jm08r0440tr0rs0770c10d91g200800902f04r03x04904c03p02701r03z0490570az03m04507g0fe0ig0ro0fk0kr","0ir0ir0hs08603y0k508e04w0u6___05w0e00g11fj00300b01e05504004e05503k02f01d04m05006m0da04c05009u0gq0is0rk0hs0kq","0jb0jm___0aw05s______0480tx0rs03l0ce___19x00000002304b03f03w03m03704603404104b0540c203o04907g0fm0l00rs0f00lx"],["Geologica",400,0,1,"0jm0jw0jm08304m0js08q04t0uo0rs0930dj0eu1f700800902904v03z04a04c03o02c01n04o04y0690d904704t09f0ho0im0rr0hv0lc","0ji0ji0ji08003w0ji09405l0vj0lp0930ev0gr1dt00700a02c04o03y04b05103b02b01e05905q07l0fa04o05m0be0iq0j00rn0hk0lg","0jw0jw___0ag057______04y0ub0rs03l0dy___18l00000001x04f03i03w03l03904d02v04q0510660f104904z0960js0lz0rs0fk0mi"],["Geologica",700,0,1,"0lc0lc0lc06v03h0kr08q06u0vv0rs0a50gv0ig1ab00700b01z04u04304d04b03u02h01g06r0750an0i305v0700fi0m30jr0rs0jm0n2","0lb0lb0ka06x0420k508l0790vt0lt09t0hk0k117x00500b02704x04903g05303t02i01707207p0cz0ib06907w0g90ms0jp0rp0ja0mb","0mi0mi___07a057______06y0ux0rs06u0h9___14i00000001n04f03p04003j03g04n02f06u07e0bc0j706107b0fo0rd0nu0rs0jm0pd"],["Geom",300,0,1,"0ij0it0i80a00420j407j03q0t90rs07q0b70cb1jx00400902d04x04004d04l03602b01s03k03t04m08y03a03v06i0dz0hd0rf0f20k9","0ir0ir0hr0bz03y0je08304m0tn0mk0690di0fj1k200200902i04y04404k05d02e02j01104d04q05z0b804304u0930fl0h80qy0gs0jq","0j40j4___0ed04n______03t0th0rs04n0b5___1c000000002604b03d03w03i03804703503m03v04l09e03c03y06d0cr0jq0rs0fn0m0"],["Geom",400,0,1,"0j40je0it09m03h0jb07904g0uk0rs0880co0e61is00300902604z04204d04j03c02f01n04904j05l0b203t04i08j0ge0hn0rh0fn0ku","0ir0jq0i90bm03y0jg07d0560up0nb08i0eo0g41if00200902c04x04404i05b02p02o00z04v05906t0cw04g05c0ai0hv0i10r00hr0kq","0j40je___0ch04n______04j0uq0rs04k0cl___1al00000001z04f03f03z03j03a04f02t04c04m05m0cz03x04n07y0hb0ki0rs0g70ml"],["Geom",700,0,1,"0lf0lp0kk07f02w0kf06m06i0wd0rs0ap0g20hs1cs00100a01v04x04604e04b03v02l01f06b06p0910h305f06q0ep0kw0j80rs0jo0n5","0lh0lh0ki0ab02y0l60760720we0ll0bc0h80ir19800100901z04q04104904t03v02h01e06t07d0ay0ia05y07k0g20m50ju0rq0jj0ng","0ma0ma___0bp042______06o0vz0rs05r0ge___15a00000001o04h03l04203j03g04q02c06g06x09y0je05m06t0dx0qo0n60rs0jo0ow"],["Geomini",300,0,1,"0k90ku0jz05703r0m404b0360s50rs05409f0a51gn00000602k04i03m04403g04t02o01w02x03904206n02u03a05a0am0jd0r80hy0lf","0jv0jv0id06n02z0mc03r04a0ss___03t0cb0cz1hj00000201h04y03t04804b05001z02003s04c05g0ae03r04f07u0er0jx0qt0hv0lu","0ku0ku___06u058______0390so0rs04a09n___1cw00000002f04803b03s03g03403y03k02y03a03y06w02u03c05k0an0js0rs0hy0m0"],["Geomini",400,0,1,"0ku0ku0k907e0420mk04h03w0sl0rs06f0bj0bz1fk00000602c04o03o04603h04u02t01p03m04205309t03j0430730eg0k90rg0hx0lz","0kk0lj0k207803f0m904g04s0tc0m406f0dm0dx1ef00000502g04k03o04604204r02p01c04d04y0670dm04b04z0970h30k10rn0il0mi","0ku0ku___0a604c______03z0t50rs03l0bs___1bh00000002504e03d03w03f03604a03503o0430510bu03i0440780eg0ku0rs0dw0lz"],["Geomini",700,0,1,"0lv0lv0la06003g0m804n0610t70rs07h0gb0h91cl00000602004t03w04a03q04o02y01a05p06e0960h305k06h0dl0lz0l10rs0ie0mf","0l90l90l905u02w0n804u06k0tn0l407h0h80hr1a100000502404n03v04604d04g02x01606106y0b90hk0610720f00m10ls0ro0jb0m8","0m00m0___092042______0650tg0rs0440gf___16l00000001q04j03k04103e03f04s02d05s06l09n0if05m06n0di0qe0ne0rs0hy0ml"],["Georama",300,0,1,"0hy0jo0hy06103h0kv08h02t0u70rs01r0910a81lr00600803404a03l04a03g04s02101w02r02u03d05w02e02o04r0aq0j40ra0gs0k9","0ib0j90gd0ck02w0lj07k03z0tv___0330ca0dj1n100200901q04v03k04904804n02c01v03q04004u0ac03c03x07g0gi0jc0qy0gd0k8","0k60k6___05b04c______02w0uy0rs00008y___1e500000002s03v03704303b03303e04302t02x03d05m02i02p0500ac0js0rs0hv0lc"],["Georama",400,0,1,"0ij0jo0hy09x02w0kx08g03o0v50rs0370bj0cv1jy00600802n04m03n04d03i04r02901n03l03q04h09n03203h06k0gt0jo0re0gs0ku","0jq0jq0hr07y02z0ld08b04i0ui0no0480dm0f31jw00500902t04m03s04j04904302i00w04c04l05t0c603u04h0930id0jy0qy0hr0lp","0kr0kr___08r041______03s0v30s30000be___1d000000002b04803904503a03403z03i03p03u04j0ab03903k06n0fz0lh0rs0fk0lx"],["Georama",700,0,1,"0le0lz0ku0ay02b0le08d06v0xu0rs07j0hh0iu1dl00500a02004z03x04d03v04e02m01906o06z0a50i605i06p0he0p50kw0rg0j30n5","0lr0lr0js0b101z0ld08b0750xk0mb0920i70jv1bx00400902804z04104e04m03z02j00p06y07d0bv0hy05u07g0hu0o10k50qz0js0nq","0n20n2___07603h___07d0710ww0rs0310hi___16900000201q04k03j04203d03c04m02k06y0780au0jv05t06w0ga0rs0p10rs0kr0o8"],["Geostar",400,2,0,"0ui0wt0pw07t03g0iu09r0250rj8wf0nx09e0bn1oa00n00806m02v03403k03p03a01f02g02502502803902502602608k0io0rs0pb0xd","0vn0wn0pq0go02h0ig09b03d0sv5oa0ob0d30fw1mz00e00804204303403u04u02f03101t03a03h06w0es03003e04r0ik0iv0rs0oq0zm","0wz0x9___06k03r______0250r6bmu0n908t___1ie00000004h03l02c03b02z02c02j06902402502704e02502702907m0rs0rs0we10g"],["Geostar Fill",400,2,0,"0ui0wt0pw07t03g0iu09r0722iz3940nx0be0dw11m00k00a05g03e03l03x03t03501n0210270720730cw02502502g0j80io0rs0pc0xe","0we0we0pi0aj02y0jc09f07f24b2y40oy0ct0f212300e00804703i03c03p04u03j01v02803707h0810es02m02p0460jl0jo0rs0pi0xd","0wz0x9___06k03r______06x2h73mi0n90aq___0yb00000003q03p02s03k03602s02x05602606x06y0ep02402502d0q90rs0rs0we10g"],["Germania One",400,2,0,"0ez0f90ez07602w0l509s05j0t50rs0100hm0ii1tc00900b01n04v04b04f04104i02k00x05f05n06f0cg05006y0ij0p00k70q30ee0g4","0et0et0et0aa01z0kl0a40600s10ln02q0jl0ka1qh00700c01v04v04f04j04w03w02e00g05s06407y0d705x08e0is0o70jz0pu0dt0gs","0gq0gq___04j02w0na04m05s0su0rs00i0hw___1n200000101j04a03x04003i03v04p01y05q05s06r0cx05607k0m20qn0of0rs0fk0hb"],["Gideon Roman",400,2,0,"0ij0it0hy0lq02w0jo07q03615k2z607n08k09k1ib00600903j04c03m03y03o04602302102w03d04506401m02c04o09y0j40rh0gs0ph","0hj0ik0gi0uw0330k207r04g10l0w50640ce0ec1i600200b02005j02x04604l04802f01m04404n05w09a02r03u06z0fd0im0rp0gi0mp","0mv0mv___0eh04n___02w03j1bh3130ak08g___1b600000003d03u03a03h03303403q03x03503n04e05x01l02a04y09x0mr0rs0hd0tj"],["Gidole",400,0,0,"0g70g70g70750580ku08503c0ss0rs0130bd0cl1m000700802a04l03s04f03o04u02801n03903e03x07e03203m07x0hi0jb0rb0f20gs","0ga0ga0ga07i0430l508i04e0t50mg0130ec0fp1kw00500902i04p04303e04j04n02c01804904g05b0ap03z04t0aw0iw0jp0qv0fa0hb","0gs0gs___09d058______03e0tc0rs0000bo___1gt00000002304503h04503j03a04603003c03f03u07n03203m07q0j00kj0rs0eh0hy"],["Gidugu",400,0,0,"0jc0jc0i407w0480kl08j06o1bq0rz0930hn0ia1fm00500b02d05203y04y04504502900l06k06p07j0d203n0620f30ly0jy0ns0i40nk","0ip0ip0ip07y03y0kk08b07516j0u90cj0iq0kn1en00400b02e04x04g04r04t03z01z00606z07b09c0fd04j0780hd0me0jx0nt0ip0mn","0kz0kz___09s04g___0450721fb0yj04x0gp___1b700000102004d03f04804503c04702406v07207u0cs03m06h0fh0rb0n20rs0es0n2"],["Gilda Display",400,1,0,"0hv0hv0hv0dp03r0j10b00371ap1wd08w08t09w1k000b00803c04903y04e03t03l02c01m03303a03r05201g02504e0a10hx0qq0fk0lx","0hs0hs0ha0cd04g0ig0b504d12g1hz07j0cn0ez1kb00d00903f04e04104i05002b02h01204504i05e07m02i03q0770fg0hw0pv0ft0jr","0jm0jm___0fn06c___0570381bj2bx08l08e___1dc00000303503r03f03r03603903v03f03203d03t05101c02304f09h0n40rs0f00ro"],["Girassol",400,2,0,"0g70g70g70ej02b0k9___04c1fj1k502o0dp0e720n00000002x04g04h04d03s04g01w01h03z04c04l06o01y03608t0ju0jy0r90eh0hd","0fr0fr0g90sy02y0jj___05416q1cp0640gt0h91wo00000002y04k04j04h04p03i02301104u05706408o02y04v0ch0k00j70qz0er0gq","0f20f2___08303h______04e1ge1jr00h0dv___1xj00000002h03t03o03s03d03k03u03c04104e04k06f01z03b0ak0pr0q50rs0db0gs"],["Give You Glory",400,3,0,"0ha0g5___0cx01q___0kr02c0mw0ym07v086___1ut00900902a05g04204s04603a02801301z02e03304v02d02y04l09a0bt0nn0d90lw","0l40l4___0sb02w___0jv03w0pn___0f20c3___1og00900a01c05g04a04s04p03b02b01503503w05o08203m04l0720ds0dk0nx0ee159","0iq0l1___0bq02w___03b02e0p010g05o07p___1k400000102y04f03f04303n03d03z01x02202h03505302a02r04107r0fp0qn0du0mg"],["Glass Antiqua",400,2,0,"0hy0hy0jo0cp01r0ku05f02u0sp1wg0610a20az1sf00000a02z04o03p03o03b05302901v02s03103x06o02h02z0510bh0je0r90dw0jo","0i00i00mj0ug0200kk05j0410rd___0cg0dy0fe1td00000501o05g04003x03705f02j01h03t04c05v09803g04k08a0go0jx0qv0f00x1","0h30h3___0c502b___04n02x0t31wy00w0a2___1o900000102r04a03j03502m03p04003r02s03003v06q02h03105e0aj0ml0rs06y0k9"],["Glegoo",400,1,0,"0ii0i80ii07b04n0lz0990320vf1xu03r0au0b01ip00b00703b04d03f04303204r02s01j03003303v07h02k02t05l0c60ku0q10gs0le","0hu0hu0it08e03z0mc08i0430u9___03t0dk0e81jw00400a01v05303n04203u04u03301103y04805k09303f04607y0i40kz0px0gu0kt","0ii0ii___08j05s______0330vs1x701f0aw___1h700000003104303503u03003103x03r03203403o07k02k02u05z0c90nu0rs0eh0le"],["Glegoo",700,1,0,"0j30it0j306w0420lz08o0470xi1lk04t0do0dt1ho00800802r04p03l04403704s02v01c04504905v0a603c03u08d0jp0l10qb0hd0lz","0jl0jl0jl09603x0ma09304w0vr1gr04d0fi0fe1h000700902t04q03k04103q04t02m01304u05607g0dj04304t0aj0kn0lp0qs0hm0lj","0jo0jo___07i05s______0480xd1lj01y0dm___1fm00000002h04g03a03u03203804f03304704a05x0ax03e03y08s0m30ox0rs0hd0lz"],["Gloock",400,1,0,"0lf0l41zr0w302w0j408405n28r11i0cc0b50cn1p300600902n04i04h04l04203b02801m04p05m06306z01b02x09h0iv0ij0rs0hd15o","0fr0fr0fr0gp01z0jh0860691n30zh0540eb0g71jh00500902s04h04b04e04k03a02901d05v06906p07u02a04u0dn0k50iw0rp0au0jp","0lf0lf___0np03h___05t05y2iw1ah0c00b9___1hx00000402a03o03t03y03j03p03s02y04805y06a06z01702m0970lb0of0rs0f20v9"],["Gloria Hallelujah",400,3,0,"0g50hv___0bv01q___0cn03p0qx0q306n0am___1pp00600902805b05c05p03m02s01x00j03703o04v08e03b04707w0d40cr0mn0f00ig","0ia0sn___0wm02z___0ie04r0sm0dv0dw0ch___1io00500801u05c05f05t04a02s01n00c04304n07m0b704705709s0er0du0mt0et14i","0fa0dv___08j01p______0310qy0qn02j0a7___1tv00000001f05j05605n04y04200z00202m03003t07102p03c05r0b20cg0ko0d10gz"],["Glory",300,0,1,"0f20fn0f20720420j405f02p0tf0rs0150990b81qe00000a02q04i03y04f04003z02201w02n02r03405f02b02r0580c50i00r70eh0hd","0eu0fc0eu0b302z0j704u03v0uz0xa02u0d20f71t000000401j05704904r05a03902n00s03l03x04o09603704408g0fo0hy0qk0dv0gt","0h30hd___08v0580f7___02r0t70s400i09e___1jo00000002g04103f04003j03a03o03f02n02r03305b02a02t05e0c20j70rs0db0j4"],["Glory",400,0,1,"0fn0fn0f20940420j505c03c0uq0rs0110be0d11pl00000a02f04q04304g04703q02901p03a03e03v07m02s03d0700ft0i60r80db0hd","0fr0gr0fr08n03g0jg06404d0td0mr01o0dy0fu1pd00000802k04n04604j05403202g01204604f05b0az03x04m0ag0hc0i40qx0es0iq","0g70g7___0ac04n______03f0uq0s200g0b8___1it00000002504803h04003j03d04103003b03f03u07102r03i0760h90kh0rs0db0j4"],["Glory",700,0,1,"0h30hy0gs07u02w0j905805p0xd0s402s0gw0iu1mf00000801y04y04a04n04h03e02j01d05l05s0750dt04j0640fp0mx0j40rs0fn0jo","0gt0ht0gt08j02z0jf05e0680wr0lj02a0hp0jt1jy00000602804v04b04o05702w02l00w06206a08w0e90550750gc0n00iz0r10fu0js","0jo0jo___073042___07a05v0y00rz00i0gm___1dj00100201o04f03n04503m03k04f02b05p05w07i0e904m06h0gc0r10ng0rs0g70lf"],["Gluten",300,2,1,"0m00ku0n507w02w0ku08x04r0xz0k10bj0bq0ck1cm00700902a04y03v04e04204802h01404c04t05v0at03i04a0790fc0i20q40jo0nq","0kw0jw___0a802z___08p05i0x90ev0aa0do___1bm00500a02005204104i04x03q01y01805205k06y0do0480530960gf0i00ps0hw0nv","0l40l4___0ag03h___02b04z0xf0ks05e0bw___18y00000002204j03h04203q03d04e02804h04y05z0b903n04o07t0gp0kw0r80hy0ob"],["Gluten",400,2,1,"0ml0m00ol06q02w0lf0990650zr0jm0dd0e20el19r00700a02105204104g04404502k00y05j06807p0f204c05g0aa0i80ij0q60k90q2","0n70lp___09602z___0a206r0zc0ld0bt0f9___17b00800902u04q04104h04r03j02f00l06706w08u0gn04z0680bi0iu0i60px0jq0qn","0ma0ma___09k02w___02b06g0zp0kv0820e9___15700000001s04m03p04503o03j04i01w05t06g0810ga04l0640b50lr0lo0r80jo0q2"],["Gluten",700,2,1,"0qc0ow___06402b___09a0a31480hi0iw0ix___0z800700b01q04p04n04q04904102i00r0950am0gi0ms07009v0i10o10j80q80ml0sd","0qm0q5___08p02h___0a20ag14u0gg0is0io___0y000700b02f04p04i04p04q03n02700g09m0b00hz0n70790aq0ij0o90j20py0mo0uk","0r70r7___06w02w___02w0af14o0hk0ij0jb___0wb00000001e04504c04e03p04404901g09p0b70i30o507g0bc0kp0qb0nc0ra0n50v9"],["Goblin One",400,2,0,"0r60sw0pg0eg02w0hy07i08j1oj1bl0o80e90hf16e00500e02u05c04o05104o03401k00307w08w0b80hx03m0500c80ih0hj0n50oa0u2","0qm0pm0pm07u02y0hj08208s1jn13c0p20gf0iu15j00400e03305b04r05505302x00y0020860960bo0jn04405y0dx0k00h50mz0nn0sl","0yx0yx___0bb05u___0800af1ra18l0lp0gy___0w600100202504c03n03803v03k03v0350a60b90du0n804d05z0ev0rf0qx0rs0sj11u"],["Gochi Hand",400,3,0,"0kp0iz___0lh02b___0c40580vh0qj0dh0dd___1hp00f00g02205c04z05904l03f01500604u05f07v0dq04c05509h0fw0f70lb0if0n0","0jv0iv___0sw02z___0ao05u0vj0ge0ek0f3___1do00b00g01i05c05605g05g03400t00705d0640a10fn04x0600bd0gf0fz0ls0iv0yr","0r70qc0uo0m802w0n507505k0vk1pd0jg0ct0dy19900100401s04q04a04r03p04l03h00e05a05u0940hk04r05e09e0gz0i80ow0n512s"],["Goldman",400,2,0,"0ob0q20nq07k04n0j408x05u1051w00l90fd0g416r00800903804v03z04h04903c03000705o06307w0mm04404j0aw0jr0j40ph0n50rs","0nu0os0mw07f03t0ir08806a12h10i0ld0h80ht16i00500a02p05103w04g04r03d03200505z06i09o0lq04d04w0bv0jb0j40oz0mw0rn","0tt0u3___0ae06d0fq04n06h11l0rs0jo0f9___0w400000202304m03603x03d02w04u02v06g06l08x0q704s04x0a90q10nt0rs0ml0uo"],["Goldman",700,2,0,"0q10rr0pg07204c0j308s08f1310rs0n90iw0lc10r00700b02r05904504m04c03g02j00808d08u0jw0p505u06g0i50p60j30pg0ob0sx","0pt0qt0ot05s03z0je08e08s12o0ma0nz0jc0l810i00400b02e05a04a04r05003i01y00908f09a0ib0o806a07s0i90o30j30p30ot0ss","0vu0vu___08f06y___06209d12x0rs0m40jd___0sa00000201s04j03n03v03a03b04u02h09b09u0mz0to06n06w0hl0rk0q90rs0sy0wf"],["Golos Text",400,0,1,"0jm0jm0jm07k04m0kx0860420tv0rs06a0cb0d81gr00600902604v03p04703p04u02b01m03w0450520af03k04707l0h30j90ro0hv0k6","0jj0jj0j206v04w0la08a04u0t80mn05w0ei0fd1ff00400902a04o03p04504904j02d01j04m05006c0dp04d05309p0i70jv0rm0hl0li","0jw0k7___09o05s______0480uu0rs0000c8___1ai00000001z04c03f03y03k03a04a03004104a0500bq03k04907n0hk0lg0rs0fk0lx"],["Golos Text",700,0,1,"0lc0lm0kr06j02w0l208a0730x80rs0b80hs0in1bt00500901v04u04204b03z04g02l01d06j07f0ab0ih05r0780gq0pr0kg0rs0k70n2","0lj0mi0l107602y0la08a07g0x00lm0bz0ir0jd19a00400902004o04104804n04802j01606x07w0cn0iv06507w0hu0p20ku0rp0jl0mi","0nd0nd___06004m______07i0y00rs06p0ia___14600000001m04d03q04203h03k04l02e07e07u0c50k206407x0hr0rs0oi0rs0kr0pd"],["Google Sans",400,0,1,"0hy0hd0ij09s03h0jv08q03q0rj0rs06k0bu0cn1m300600802e04w03w04c04503u02b01l03l03u04t08x03g04507e0f30i30rb0g70jo","0i90hs0i909902w0ju08604g0s6___07s0dp0f51m400300901a05403w04a04u04202701t04804j05r0c504704x0970g80ie0r00gc0k6","0i80ij___0b7042______03s0s70rs03h0bp___1fs00000002404d03h03z03f03504903203l03u04k09l03h0450710dx0kd0rs0f20ku"],["Google Sans",700,0,1,"0jo0je0jo07v03r0ju08p05l0tp0rs0ap0fh0h21gv00600a02105104404f04f03k02j01c05d05u07p0f70520630cl0jt0is0rs0ij0lf","0ip0j70ip08d03y0jm08b0660tw0lb08q0gq0ij1en00400a02604y04504g05303402k00z05u06c09j0fu05i06q0ef0k40j30r20hq0ko","0je0je___09r04n______05q0u20rs04x0fx___19d00000001r04i03m04203g03c04m02h05i05x0850gg05806a0cv0p90mr0rs0gs0mk"],["Google Sans Code",300,4,1,"0hd0hd0hy02r0580ka0ar0380rl0rs0280ah0c81cq00a00802r04l03n04703q04i02401s03403b04407y03003i05r0ci0ik0rc0g70ij","0gy0gy0gy03z04i0kg09p04a0s2___01m0dp0eu1dg00500b01l05503x04d04x03m02d01g04104d05o0by03y04l08t0g90j10qt0fy0hy","0hd0hd___05205s___06d0380ri0rs0000al___1ca00000302c04303b04003j03703z03903403803s06w03003l0690dd0l20rs0g70j4"],["Google Sans Code",400,4,1,"0hl0hl0hv04x04j0jy0aj03w0sq0rs03o0cf0e51d800900902i04r03p04704o03s02g01803r03y04z0aa03j04407n0g70id0qx0gg0ip","0gy0gy0gy03t0400ke09n04q0sy___0370ek0ge1cb00500c01f05904004f04y03h02h01d04h04t0680d904c0510a70hq0j00qt0fy0iy","0hn0hn___08s04c___06y03z0sk0rs0000cx___1bn00000302304a03d04103j03904b02w03w04004s0aw03p04f08e0kl0m60rs0fm0jo"],["Google Sans Code",700,4,1,"0ih0hw0ih03f02z0j309v05r0u70rs07h0h20i41da00600c02c05d03t04s04p03i02c00h05o05v0850f804x0640di0kd0i40pn0hb0j3","0ju0ju0ju07m03b0jk0b906w0vs0lr0a00i90k016u00900a02l04804r03s05l02y02s00o06m0790c60gx05u07b0fu0m80j10qo0iq0ju","0jf0jf___05v02y___07m06a0tp0rs0000hs___17n00000301s04j03o03h04303004p02h06806d08u0gt05u07d0g70rq0oe0rs0ho0km"],["Google Sans Flex",300,0,1,"0i80i80i805y03h0jq08p0330r00rs06y09w0ax1n600700802o04o03s04c04004102501s02x03503u06f02u03e05h0b80hl0r70gs0jo","0hf0hf0hx09e0330l107x0490r8___0540de0e01ne00200a01k05502z04804t05302801h03u04c05c0au03x04q08i0fs0jf0rk0ge0jh","0ij0ij___07b058______0340rc0rs04409s___1h400000002e04703e03z03d03403y03f02x03503q06602u03e05l0an0it0rs0fn0ku"],["Google Sans Flex",400,0,1,"0hy0hd0ij09u03h0ju08q03r0ro0rs0730bs0co1m900700802f04w03v04b04503v02a01m03l03u04s09203g04507b0ev0i20rc0fm0jo","0i90i90ha0a503u0ju08704i0sf___06t0dl0f71mn00300a01c05303w04904v04302601s04804l05r0c404704y09g0gl0ie0r00gc0k6","0i80ij___0b704n______03s0sh0rs03h0bp___1g100000002404c03h04003f03604903203l03u04k09s03h0450760ea0ka0rs0f20ku"],["Google Sans Flex",700,0,1,"0km0km0k00bv02y0k508s06f0vf0rs0a70gw0hv1fc00600a02105104903u05303902j01e06b06l08t0gu05h06v0ew0mo0jh0rs0iu0md","0jp0jp0jp0ex03y0jp08d06v0vg0ky0a20hv0k41cr00500a02404y04704h05303502h00z06l0750b20hd05y07n0fo0n80j60rq0ip0lo","0k00k0___0bb044______06i0u90rs04f0h6___18600000001q04m03r03i04203004p02h06c06q09r0hn05y07a0eo0rk0n60rs0gh0my"],["Gorditas",400,2,0,"0ks0l20k707302b0io09805t0u21990ez0go0hq1fo00a00d02905s03s04d04g02x02y00o05g06j09y0eq04v05y09o0im0i00q00ih0o8","0ln0ln0jo0b701z0jc0a406l0va0ua0da0hk0j41cg00a00c02f05g03r04904y02v02r00s06507a0aw0gk05f06o0c70jl0i30qr0ip0ol","0np0np___07a042___06d06j0vq12r0b40gv___17200000201v04y03803n03803405002p0620710a60ha05a06i0au0mm0p50rt0lz0ql"],["Gorditas",700,2,0,"0ll0lw0kq08x01q0j009c07j0y30nq0f00j90jo1bu00a00d02305i04604j04a03802r00m07608q0cn0i705q07d0f20o10if0q00jl0pc","0lr0lr0ks0g401z0hk09f07t0xz0jp0fz0k20l119e00800e02g05h04c04z04p02p02g00607i09h0e60ip0640810g50nu0h60pt0is0pq","0nq0nq___0a003h___07j08f0yx0oo0b00jw___14y00000201q04n03s03o03503m04s02f07z09e0dy0kw06908r0gk0rl0q80ru0lf0r7"],["Gothic A1",300,0,0,"0h00hm0h005i04p0k208q02s0sh0rs01709a0ak1nk00700702z04e03x03m04m03s01z02502p02v03b04w02d02y0560b50ia0rn0fu0hm","0h00h00gi0a80400kj07t0410u1___03h0d30ea1oo00200901p04x03z04f03m04x02201w03r04305108803e04c08l0g90j10qz0f00j0","0jd0jd___05f05a______02u0t90rs000096___1hb00000002q03w03f03c04a02q03k03w02p02v03a04t02d02w05a0as0jq0rs0gf0kj"],["Gothic A1",400,0,0,"0hk0hk0hk06t0430k508q03c0t40rs01p0av0cd1ni00700702o04p03x03p04o04001s02003903f03z06c02u03j06c0ex0is0ro0ft0i5","0gu0hc0gu09603z0kc07p04d0ti___0260dp0ev1o600200901j05104004e04w03z02b01e04604f05b0aa03s04n09o0hr0ix0qx0fv0ju","0j00jb___08x05a______03d0u50rs0000b5___1h200000002f04803g03c04c03803603m03903f03y06802v03g06h0ef0kt0rs0f80kh"],["Gothic A1",700,0,0,"0ii0ii0ii07603h0ka08304x0v30rs04a0ev0g71mq00500902504v04004c04404102h01h04r0510620bw0470560by0k80jd0rs0gs0jo","0ic0ic0hu0710430k608f05o0v80rg01m0g30hv1kt00400a02d04w04803e05203t02n01305b05r07c0e104v0640dw0l10jo0qz0gb0jd","0ii0ii___09h042______0510w30rs0000et___1fk00000001x04d03i04003i03c04j02n04w0530640df0480560br0od0mv0rs0eg0le"],["Gotu",400,0,0,"0il0iw0h407505b0k409z03f0z30rs04g0a10an1i400a00802x04c03j04f04n03m02701m03b03g03z05l02a03205t0cw0ht0qp0h40k2","0hv0hv0gw08204z0kf09i04e0xd0t70370d00e31j800700901q04t04504g04q04801o01o04504f05508003704d0870g70iv0qq0gw0jv","0jd0jd___0a1066___08r03h1070rs02d0a5___1c100500502l03q03n03f04502x03p03e03d03i04205c02a0320630cd0j10rt0e30lp"],["Goudy Bookletter 1911",400,1,0,"0gs0it0gs0mm0160hd08a0380wj1e40b90a40ci1rz00b00h02r05a04304c05c01o01w01o03103l04q07w02a02y05j0aq0g70qu0f20lf","0nu0pb0ge0qe0200h908j04g0xq0xk0cw0c30er1qm00600j02b05l04804i05l01m01g01u04204p06609x03904707p0e60gr0qs0gw0zr","0nq0p6___09502b___07j03t11d1zu0dm0ak___1gt00300a02904o03d03j03o03003h03j03f03y04x08s02d0320660aq0ja0rs0j40r7"],["Gowun Batang",400,1,0,"0hd0hy0hd08602m0ij07j02p0t92ft08k0930ai1lx00600b03f04l03m04004i02y02202902l02v03q06s02702o04f08s0he0rh0fn0jo","0hr0hr0gs0ca02z0ja07b0440sx0pr04n0ct0eg1lo00100d02e05a03n04105602y02901r03t04a05t09q03g0480790eh0i00rp0fs0jq","0j40j4___08o03h___06402q0t32im04q08v___1fy00000503004303203g03902x03m04a02o02u03l06x02402o04y0850lo0rs0dw0nq"],["Gowun Batang",700,1,0,"0j40j40ij07l02b0il07j04610j1sh0990bn0do1je00500b02t04w03v04704h02x02602104304b05g09702q03j0730f40hz0rs0gs0lf","0i90i90i90lz01x0ip07804y0ye0kq0740dv0fg1lb00100c01s05b03w04905602z02d01o04o05206j0b303k04i0900go0i60qx0fd0k6","0lf0lf___08p04c___06h04611f1x808r0bj___1dh00000502i04903903n03a03403u03s04304a05709702p03i06z0dl0nb0rs0j40qm"],["Gowun Dodum",400,0,0,"0fx0hd0fn08004n0ij07j02x0s20rs03w09r0b91lz00400b02o04r03z04c04p02x02701v02t02z03j06j02l03105b0bz0gw0r80f20hd","0ft0ha0ft08b03y0ja06n0450sf0k801n0d60es1m400000c01t05303y04e05f02y02f01h03s0480520ae03u04b08h0fh0hu0rm0eu0hs","0hy0hy___08s058___05x02z0sv0rs02l09h___1dz00000502b04603d03s03o03803w03c02w03003i05o02l03105h0ao0ip0rs0g70k9"],["Graduate",400,1,0,"0ij0hy0it06e0580na___03r0tm2k506c0dq0eb1em00000003h04g03f04102x03w04901e03q03s0570cc03b03k07p0jv0nt0rf0hd0lf","0ir0hs0jr07603y0nd___04e0rq21b04z0fh0gh1ez00000002q04r03h04103i04d03w01404c04q0870dx04804p09d0ky0nq0rn0hs0kq","0hy0hy___06g06d______03s0tr2k300x0ds___1fp00000003904503303n02u03004e03g03r03s0520am03b03j0830m10q20rs0fn0jo"],["Grand Hotel",400,3,0,"0cz0cp0l20o802w0fl0f603e0p81f305y0f30f72he00j00j02u05504b04r03102i02n01i03b03f04806o03c04g09o0fw0e00r40bj0gq","0d90cr0yb0vx02y0gb0ey04d0p70sh0840h50h223500k00j02i05a04e04u03g02i02p01204504d0620ap04f06d0dm0ko0ez0qs0bs0qh","0cq0cq___0do02b0nb0c503c0or0u900k0ds___24200b00j01l03p03304003904804l02k03a03f04206g03d04908d0ic0nx0rr07j0g7"],["Grandiflora One",400,1,0,"0hk0i50hk0af02x0h20ag0190r03iy08k04p05p1m900d00705103q03n03b06001k01m02e01501b01p02o01301b0200390fe0rs0em0jw","0hd0hu0gv0ev01x0gp09e0310qu0ia06s0a70cn1p400b00802o05803i04205n01m02a02b02p03904f06z02s03a04x08w0g80qy0eh0k9","0iq0jb___09j043______0180sp4w806a04e___1d500000004w03402u02p04902p02p04n01401a01j02g0130180200390ku0rs0em0ne"],["Grandstander",300,2,1,"0hy0h30j406d04n0ku09u03l0sn0sv05c0be0cc1ke00d00a02g05503s04j03t04b02o00h03f03n04e08c03603q06e0f90hy0p10g70j4","0ip0hq0jp08a03y0lh0a604l0sm0on0640dy0e21gv00d00a02k04y03n04d04b04702h00p04d04n05v0c404704u08z0hc0iw0px0gr0jp","0h10h1___09o05a______03v0sz0sy0000cc___1go00000002604k03g03904b02u04203703p03x04h08r03e04407z0i80lw0rq0di0jd"],["Grandstander",400,2,1,"0hx0hx0j30690420kt09u04b0ta0su06y0cy0e31jq00d00a02a05903w04l03x04702n00g04304e05d0ar03r04h08a0hh0i10p40gs0jo","0ip0hq0jp07w03y0lg0a50550t30oa06o0et0f71fr00c00a02e05103t04e04f04202i00m04w05906p0dt04l05g0ar0it0j10px0gq0jp","0hw0hw___08s04p______04p0te0sn0000eg___1f900000001z04p03k03c04802w04902w04h04r05k0c70420520a70mr0mx0rr0f90jy"],["Grandstander",700,2,1,"0jm0j10k606v02w0kr09t06i0v30sc0860gx0hv1eg00b00c01y05504b04n04504202h00g06406n09i0gd05i06y0f20nw0j10pf0hv0k6","0jp0jp0ko07a02y0ld0a70730uv0m808w0hp0j71a800b00c02404v04804g04n03y02e00k06o07b0by0h906607u0gw0o70jw0pz0hq0ko","0ki0ki___06303j______0760vy0s903w0iq___19m00000001n04j04003h04303o04102e06u07d0aq0h506408a0im0qx0os0rs0i60ma"],["Grape Nuts",400,3,0,"0k90k9___0ba021___09r02u0r70ta08f07o___1qa00a00801n04u05205x03u02j02r00s02i02v03p05r02f02y04h0700df0ob0fn0n5","0kd0ld___0kq021___09r04i0sl0ly0990b4___1k300700a01i04x05604k04w02p02p00w03u04i0660a903u04n07b0ai0ei0or0e90wk","0kr0kr___0by02l___04002s0qy0wt05x07h___1h300000202404f03o04903903t04o01l02h02v03n05a02d02x04d06e0he0px0ez0nm"],["Gravitas One",400,2,0,"0r40qj0rp06o02w0kv0800b23ex12j0nn0im0iu14h00500a02i04i04l04p03z04c02700m09g0b20bw0e702607t0j10pq0kd0q20pe0v6","0rc0sb0rc06902x0l80820be2vb0xf0p20j00jn12x00500902k04a04d04j04g04802c00o09p0bh0cw0ft02y0910kg0q00ks0qm0pd0v8","0uj0uj___07y04m______0c543c12j0lm0is___11300000002003s03z04003d04103z02p08n0cl0dj0g202308n0m80rg0qs0rs0r30xf"],["Great Vibes",400,3,0,"0bt0ad___0xn0410c30ay02o0zo18k07y07i___2lq00h01203b05605504j02o02k01y00z02502n03403z01h02303y0680c30og0ad0pc","0bt______2w902y0bn0a804f0yg0w10b4______21b00h00x03s05g05b04902y02c01y00f03q04h06109102o04407j0al0c00nv0au12e","0i50oe___1dy03e___0as02l11d___09x06t___1s800b01102l03l03g04804303i03m01e02602m03804g01f01y03805q0k40q90bx134"],["Grechen Fuemen",400,3,0,"0ma0ow___0gb02w___09904b16l0h20ij08l___1g500700a02804n04x05s03702q02w00x03e04j05o07q02203505o0ab0db0p00j40wf","0sj0t1___0cb02y___08705o13j0ji0ne0bj___1b100800b03204j04w05i03b02n02q00m04p05x07g0ak03504n0830cp0d70ov0ko0yg","0mv0ob___0dv02w___06l03x13l0ia0ek08m___18x00100902803s03f04f03k04b05100u03g04c05907802103105809y0j40pl0j40rs"],["Grenze",300,1,1,"0g50gg0g507x03h0jm07o03f0z717202d0br0ci1us00600d03104r04404h03s04b01y00w03d03h04406f02e03007j0fw0i40q10du0hb","0gl0gl0gl0av02x0k808304g0wi17302h0f50fx1sg00500d03004s04404g04m03r01w00o04c04k05p09e03e04g0at0i90ix0pu0en0hl","0jz0kk0fa06k0440ld04z03n11t1zf0280c30cn1jr00000702w04703h03a03p03403e03l03n03p04509402e03007n0fx0mf0rs0gg0l5"],["Grenze",400,1,1,"0g70gs0gi08202w0jo07o04a11v11102y0e00eu1ts00500e02q05104b04n04303x02100k04804c05908k02v03v0ah0ix0ij0q40eh0hd","0gn0gn0gn0fu02y0k70850580yz0zw02j0gg0hg1q800500d02r04w04904i04q03m01v00p05205d06l0ao03w05c0dg0k30j00qn0eo0il","0ku0ku0fn06f0420lf05804j14r1rc03c0dw0ej1j000000702i04c03j03s03303n03p03304i04l05d0ab02u03m09h0kt0nq0rs0gs0m0"],["Grenze",700,1,1,"0ii0ii0ii0bt0210jo07n06a18r0yh0990h30i01oq00400e02g05404i04o04703s02200i06806n07v0c203p06k0g20mg0j30q10g70k8","0iq0iq0iq0r101z0ji08506v15l0up08k0ig0jm1ls00400d02n05104i04o05103802200706p07509j0dz04h07h0hb0mj0j20pu0gr0lp","0ob0ob0hy05s02b0m006d0751cq1dr07s0hf0i91d700000702604h03o03u03603q03x02n06z0780a60df03w05z0fu0rs0p10rs0k90pg"],["Grenze Gotisch",300,2,1,"0g50gg0fu0870470kc07x03k0xp1dl0170e40ci1zu00500g02v04q03l04i03q04t01m01g03h03l04306d02m03c08e0jk0iu0qj0ck0hy","0ff0gd0ff08m02w0kk07c04h0vo0r901t0ho0g61vu00200c01m04y04404g04d04o02001a04a04k06009r03j04t0cx0k80je0q30dh0hc","0i50i50f708205a0lc08w03n0xp28n00i0e00co27f00100702d04503o03f03v03v03403602f03n03v06h02o03j0a40pv0lt0s30f70kh"],["Grenze Gotisch",400,2,1,"0gs0h30gi07w03h0k908404g1071890170g10eq1yh00500g02g04t04804f03s04i01y01404b04h05407n03404g0bv0l80j60qp0cq0ij","0gs0hr0ga07l02z0ke08705b0y10xo0170iy0hj1rf00400f02l04q04a04g04q03r02100r05305j07t0bc04505y0fx0mj0jw0q30cu0hr","0j40jo0g707o04n0lf09i04j10227200i0g00ek25q00200702404903r04003b03v03x02d02q04j04v07f03804o0dv0qn0m80rs0g70ku"],["Grenze Gotisch",700,2,1,"0ij0ij0j408402w0kb08406215z0zd0610i20hg1ut00500g02b04u04c04h03y04c01y01105w06b0760ah03s06n0h80pb0jp0qx0fn0ku","0hr0ir0hr0a401z0ji08506i12f0v205t0kx0ju1ms00300g02i04w04l04n05303c02100806b06x09t0dv04l0880i90o30j40pu0et0kq","0lf0lf0gs07d0420lf09u06f15w10s00i0iu0h521000300701y04b03u04103e03x04102203706g06w09z0420780lc0ri0nu0rs0gs0n5"],["Grey Qo",400,3,0,"0wl16i___0k602m___0fq0220s6___0ju07f___2pt00p00s03t05k05r03z02w03601100701n02502q03v01g02203g05k0bc0ls0i216i","0us14e___0li02f___0e904a0u70ta0j80d6___22300p00q02i06105q04t02z03201500503904906g09903204d07b0am0ci0m30ia14e","1341j00um0j802a0n90d20210o20xy0pt07c08e21o00900c02o04b03f04703d03t05200f01p02902z04p01p02d03p05i0kz0oy0r81xq"],["Griffy",400,2,0,"0jy0kj0h00pb02d0is0cy02z0wx22808w0ax0az1y800f00n02z04903g03o04o02u02t02302j03b04706701x02q04w0ac0ic0r50h00ui","0jx0kf12v0vp0300ii0bq04a0tk15i08s0f60fq1rk00i00m02504s03j04h04y02a02y01m03x04p0680ar03804u08i0f20i10qs0fy12v","0ji0ji___0qe02y___0c003e0za2xb07u0b0___1o200800d02z03t02n03n03703004p03b02r03j04h07702302x05a0b20q80rs0es0q0"],["Gruppo",400,0,0,"0ma0ma0ma06f06g0jd08b02g0wo0pe0g706z07y18100800803n04403m03g04v03l01q02e02c02h03204x01y02402z05v0h30r60l40p8","0ms0ms0ls07m04y0k507o0400wn___0fb0aq0bp19h00200c01u05203k04d05903g02a01l03i0420560as03603j0560be0hv0qs0kt0or","0ox0q4___08206g0ff___02h0x30oz0fn06k___12900000003m03h03602w04h02g03404m02g02h03004m01z02403905d0g10rs0l40vo"],["Gudea",400,0,0,"0g30gn0fs08s0560jr09u03d0tp0rs0120bc0cw1lj00900703804c03u04b04003s02501r03b03g03y07q02z03g0730fw0i90rs0ex0ht","0h40hl0fn07m04w0kb0a204d0tf0mi01m0dn0fp1kg00700702i04r03s04604q03o02601p04804g05f0bg03v04p0aa0hz0jn0rn0fn0ik","0ht0i3___089056______03g0ua0rs0000ay___1g400000002x03u03b03w03l03703w03703b03h04007m02z03h06t0en0ki0rs0ex0jj"],["Gudea",700,0,0,"0hs0i20h70740410jr09o05p0w917b04a0gi0i61i600800702k04s04204e04y02p02i01e05i05z07i0eh04t05y0f30nd0j80rs0gn0ji","0hn0in0go0cr03x0k90a406b0wo0lc02a0hl0jt1en00600802604w04404e04x03a02f01905w06h09s0fb05806w0g50ni0jq0rp0go0jm","0jt0jt___07c041______0640y10rs01z0gu___1cn00000002904803k04003k03e04f02g0620670870fq04x06c0ey0s30ny0rs0ht0me"],["Gugi",400,2,0,"0gq0fk0h009c0410kr05704e0vz0r801j0ga0fj1qp00000802204u04104803o04u02e01j04604f04y0al03q04j0d90ku0kg0ro0co0ha","0gv0fv0gv08t03z0li05g04y0u017h0250hd0ht1q700000702904o03z04704a04s02k00x04p05005y0c204g05r0eo0lh0lt0r10ev0hu","0ef0ef___0du04m______04g0w81o900e0fz___1ke00000001u04h03m03v03h03g04902v04f04g0510a803t0500dq0qs0p10rs04m0ig"],["Gulzar",400,1,0,"0j50k10ij08401t0i108z04c16p1r40930bm0dk1lq00800803404n03m04l04l02q02102204404m05808z02903f0730fi0hd0ri0g50lj","0ip0jp0h80mt01z0hp0940581201dd08v0e60h51l100700903304m04404k05502102l01804w05h06n0al03604m09d0hp0h70qy0fr0ko","0ml0ml___0co04n___06y04m1c01wi08x0bi___1ej00100302p03u03g03v03603d03t03j04904q05a09j02903b07m0ec0ne0rs0hy0r7"],["Gupter",400,1,0,"0g70gi0fn08h03h0js09u03k10k24u04a0b90cp1o200b00803804b03u04403o04402501w03e03o04907002503306r0fu0j60rg0eh0k9","0fv0gv0fv0du02z0ka08q04h0xk0rp03e0e30fr1ns00400b01p05103x04804j04302f01j04d04n05z09103a04e09r0it0jq0rq0dw0iu","0j20j2___07h057___06c03q11s23t0100bi___1gx00000402u03t03e03o03803903o03w03l03s04f07z02a03a0770eg0oi0rt0fl0ly"],["Gupter",700,1,0,"0hw0hw0hm09l02w0ku09705619r1m804g0dv0f31k300900802s04g03x04603m04k02701o05005e06609t02m0430a30kn0k90rf0g60mi","0jb0jb0ia0er0320l509g05z15k1hx06s0fo0ha1ij00700902z04j03z03804g04d02e01g05k06707r0bn03j05a0cn0la0kk0rq0g90nd","0kt0kt___070042___06y05h1dp1qk04h0ea___1ei00000402h03z03i03s03803e03u03i05605j06f0b302p0480ab0nn0q10ru0hc0np"],["Gurajada",400,0,0,"0gs0hy0gs07t02w0ij07j0590vp0u705x0fq0ha1p900300f02f05a04k04t04t03402100905505f06o0cv04c05h0cv0io0hj0oj0g70ij","0hc0id0gu0fg0320i907n0650wa0nr07b0hr0k71ls00200f02p05c04u03s05m03001v00705x06c09k0ee0570700fa0kt0hq0op0gb0lf","0jc0jx___0ad044___05g05u0w00u302o0gi___1ce00000701y04i03q03j04303s03n02f05p06607k0fg04y0660dz0pw0lp0rs0gf0ng"],["Gveret Levin",400,3,0,"0k90k90hd0pg01r0j30db04o0rd18b0ay0cn0el1pp00d00b02e05h04s05904k03501d00704904r06l0ad04605h0940el0fp0lh0hd0sx","0ju0jd___0hc01w___0cr05b0sk16l0990eu___1m200c00a02g05404i04w06802q01700504p05g07s0cb04s06g0az0g80ge0m30h00sc","0lp0m0___0dm02w______04x0sh0k10550d5___1bs00000001i04n03o04703x03t04601x04o05206q0d804i05s09h0ge0hz0re0gs0ow"],["Gwendolyn",400,3,0,"0mv0le___0ns01r___0cd0230ys___0cu06h___2jq00k01103k05205404803302a02e00k01m02302j03b01801p03305j0b50ng0f90vo","1em_________067___0bx04a0y80vx0rs______23d00g00t02u05r03s05g03f02x01t00l03n04h06e08w02r04107r0ba0cf0no10523e","1511e416s0ez02c0n509302411i___0lm06l06c27p00700r02j03w03q03t04f03903y01b01n02402m03d01501l02q04z0k20py0rk1n7"],["Gwendolyn",700,3,0,"15n0nh___0gj04p___0cg032146___0fv08j___2cs00k01003i05305604b03602b02900i02703003k04n01l02604f07s0be0ni0f91m2","1ia1ia___06z07w___0bj04q12d0zb0rs0ct___1z800l00t02n05j05004z03602t01x00c04204v06t09n02r04208d0bw0cp0nn1ia1j9","1tf1n91u009p01r0n60am03015m0jq0rs07v07y23c00600q02f03z03u03w04g03c03u01602a02z03k04l01f02203u0740l40q20xg20r"],["Habibi",400,1,0,"0h90hu0go08z03g0gv09f03b0z21vo09u0ae0c91n800j00h03l04t04704j05e01i02700n03303h04g07f02d02u05i0au0fk0pb0ey0iz","0gb0ha0gb0kp02w0hr0960490wi1he06s0di0g21o900b00k01x05g04504f05s02g02000t04204g05u09k03704507z0eq0gd0pr0fd0i9","0j40j4___09o04n___09y03r12c26z0830an___1cs00a00a02y04203a03p03d02y03e03l03o03s04p08q02i0300660b20in0rs0fn0qm"],["Hachi Maru Pop",400,3,0,"0lq0lq___08u044___04k02s0rc0rh0bu085___18100000603904e04103k04203y02w01i02k02t03v06v02k02w0400840hp0pv0i70ni","0m50m5___08o02w___04d03z0sl0dk0bj0bb___17h00000302g04m03x04004104d02t01k03i04005f0ak03i04105p0bh0i60pu0ia0n3","0o40o4___09203q______02p0rx0pp09s07t___13m00000002704c03k03z02p02y04k03i02i02p03p06v02i02q03q0740lb0qz0k30pu"],["Hahmlet",300,1,1,"0j40jo0hy08q03h0i608803a1112d80br09h0bb1id00700803g04f03t04704c02v02802303303g04607t02202m04u09p0he0rc0gs0ml","0jj0jj0i20jn03x0j708d04f0yp1ni0840cp0dq1go00600903b04d03m04404x02t02902104704n05u09r03403x0740e40hs0rn0hl0mg","0nq0nq___07805s___06n03h13t2xv0ax09d___1bo00000303903s03403m03203103n04903903k04309002302j05408z0oc0rs0j40r7"],["Hahmlet",400,1,1,"0jd0k80ii08n0360ii08603y13l1zp09m0aq0c41hq00600803404k03x04b04e02v02901z03r04305109502d0340650ct0hm0rg0gr0n4","0j00jz0ij0d402v0ip08404t0zi1hm0930dc0f21hk00500903304i03q04504w03b02l01804i05106c0aj0370470840ft0hf0qx0h40lv","0nz0nz___073057___06s04716k2hi0ax0ao___1az00000302y03x03803p03603503p03x03y04a0500ak02e02z06h0be0ok0rs0j30r6"],["Hahmlet",700,1,1,"0ku0lp0j40k802w0ij08406a1a81cl0aq0eg0fz1f000500902m04t04704j04e02t02i01l06406i0850d503804t0ad0is0i00rh0hy0ph","0l60m80l60sq0480is08u07c17f13a0bj0gf0iz1b900400a02w05103c04r05802402q01d07107q09u0fm04c0600da0k40id0rq0j20pe","0ob0ob___0c9042___07706l1ed1oz0d40ej___18400100302c04603g03w03703f04503406806x0870e703804l09y0mj0p60rs0k90sy"],["Halant",300,1,0,"0fo0fz0g90bu03h0i809402e0w92eo04x08b09j1r000d00804r04204204105802l02900a02c02h02y04v01p02503w07e0gh0o10dx0il","0fl0gl0g30g902x0i408h03s0uz1fo03e0cl0er1s200600b02905b04904t05a02y02900803h04004x07t02y03p0740e20gp0nk0dn0hk","0is0is___08q044___07d02m0xf2se02a08g___1ey00100503k03j03803403w02n03g04802j02q03604z01p02b04l0820lv0rs0cx0ma"],["Halant",400,1,0,"0gs0fn0gs07r02w0i108s03710x21u06y0ab0bp1ps00b00803g04o04804s04k02u02h00a03403b03x06h01z02n0580c00gu0ob0eh0jo","0gt0gt0gt0f802z0ic08l04d0yi18l04j0e60fh1pf00600b02305b04a04t05c02y02d00804704j05l08v0330430850fy0gz0ol0du0is","0iz0iz___086043___08203m13j26r0290ai___1dm00200503603n03c03803v03903504003j03r04807202102u0670c90n50rs0e00ny"],["Halant",700,1,0,"0jo0je0jo0a302b0i509i06i1d91a30ch0ft0hk1id00a00902k05104f04u04h02t02r00c06c06m0810c80390580cp0k00hm0pk0gs0nq","0jk0jk0lz0l801y0ii0a107518s14t0ac0gx0ie1fe00a00a02t04s04b04p05102n02n00c06v07f09h0ds0420630f20m90hv0pr0fn0ng","0nl0nl___06l041___0970731hi1ej0bm0g0___19g00200502104603i03w03c03k04103306u07a08e0d503a05g0dc0qy0py0rs0if0r1"],["Hammersmith One",400,0,0,"0ij0ij0j407l03h0jb0d10580u70se0810fu0gp1i600600a02505604d04u04j03t02c00704y05e0780ef04o05e0c10jj0ij0ow0gs0k9","0iq0iq0iq09i03y0jj0db05y0ul0mr0780h30iq1eo00500a02b05104c04t05503l02200505j06309e0fa0580650dq0jy0ix0oz0gr0jq","0k80k8___08j057___02b0620uv0rs03p0ga___16t00000001s04g03i03y03n03f04j02k05s06508g0fw05b06b0eg0qt0nd0rt0g70np"],["Hanalei",400,2,0,"0k90k9___0gk01r___02b01i0r716o0580ab___3aw00000002i03l04404202x04h03e02r01e01j02904m01d01k02q05j0ob0rs0hy0nq","11j11j___13w04y___05403l0ry___0fv0i1___23m00000101c04104604803n04f03t02702y0430830cx03604p09a0fu0pn0rr0gs1hc","0k90k9___0ht01r___02b01i0rb15i05x0a7___3b200000002i03l04404202x04i03e02r01e01j02904m01d01k02q05j0ob0rs0hy0nq"],["Hanalei Fill",400,2,0,"0k90k9___0gq01r___05k07k0vt0m805c0j3___1a200000101j04k04504103c03x04e01u06y07p0db0i806j08u0kr0rp0ob0rs0hy0nq","0nk0nk___0n701z___05n07v0v20gp0ck0k9___11w00000101r04e04403x03s03x04601r07d08f0ft0k40740b00ol0rs0oo0ro0fp157","0k90k9___0hz01r___05k07j0vr0m80610j1___19x00000101j04k04504203c03x04e01u06y07o0dc0i906i08t0kq0rp0ob0rs0hy0n5"],["Handjet",300,2,1,"0bl0bl0bl05c04n0ih07302b0q80rs0150b60ck28h00500a02m04t04g04x04b03802u00802b02b02b04n02f02g04s0e10g80pf0bl0bl","0bw0bw0bw0a101z0hi08c04h0s20rs02a0hc0hw26000400b02k05704o04z04w02a02400p03y04h04z09g0400570d40lo0hv0pt0bw0dw","0cy0cy___04v04p0f5___02i0q60rs0000bv___1yp00000002w03s03i03l04003203l03f02d02j02x04q02d02x0590ef0ou0rs0cy0cy"],["Handjet",400,2,1,"0c80c80c807503i0ir0760350r81e20130f10g427f00400b02c04x04j04605g03202b00m02x03503h07l02x03c07z0iv0gq0pg0c80ct","0dw0dw0dw0c901z0jc08f04g0p419d04c0ij0ja21300500a02g05504e04u05202u01z00p04b04i06k0bv04r06k0f60n70i20ps0bw0dw","0d50d5___08u0400f1___03f0rs1vd0000ex___20c00000001w03y03k04703t03003w03j03303f03f08403f03f0ai0pu0p20rs0aa0d5"],["Handjet",700,2,1,"0da0da0da09002b0j006u04j0rb14a02b0is0kk28300300c02605504f04u04e03a02o00g04104m06d0cp04k06n0h70po0j40q20cp0da","0pz0pz0vj0m801v0ib06105v0rk0fg0ij0jr0ms1kb00000b01y04x04j05r04t02v02900f05b0610bb0id0600bo0id0oa0ij0p80cz12y","0e10e1___06n02c___04z04o0rs1jk00i0j9___1xu00000201m04903q03k04103o03r03504o04o05v0cd04o0980n80ry0pg0rs0e10e1"],["Handlee",400,3,0,"0g70hx0fm0ao0370ii08o0300up0pn0450950bf1t300900702g05104a05404702p02v00q02u03103k05a02d02y0590c60fs0ov0eg0kt","0fo0jd0er0bh02s0i408n03z0tn0mu03m0cd0en1tj00800702n04u05604v04j02a02o00e03o04004y08c03a04207p0eh0fx0o50du0ka","0kr0l2___0aa04m______0340v50pm04q094___1cq00000001w04d03a04a03f03804103b03003603u06602i02x04s09s0jt0rp0gq0o8"],["Hanken Grotesk",300,0,1,"0hy0ij0hd05q04n0jo08902z0rf0rs04n09s0av1l100600802h04r03z04604203y02801t02w03103m06702o03705j0b30hg0r80fn0j4","0il0il0hm08703x0k508c0450rl0m304d0cr0ed1jd00500902k04m03y04604s03g02a01m03y0480580a903n04k0880ff0i00rl0gm0jk","0it0j4___05i05s______0320s20rs00j09m___1fl00000002904903h03r03j03503z03g02x03303n06c02q03805n0am0jw0rs0hy0m0"],["Hanken Grotesk",400,0,1,"0hy0i80hn09504n0jo08903u0so0rs0440c50d71jz00600902704w04304804903q02e01m03q03x04q09903h04407n0ff0i20rg0fn0j4","0im0jm0i509c03x0ji08e04p0t00m90730e00fs1ia00500902c04r04304804y03b02g01c04i04t0630d704a05309w0hd0ir0rm0go0jm","0j40j4___0ac058______03x0t70rs01c0by___1dz00000002004f03k03q03i03a04b03003t03z04p0ah03h04707o0ff0l30rs0eh0ku"],["Hanken Grotesk",700,0,1,"0je0jz0ij06y03h0jo08d05g0u60rs0930ff0ge1ha00500902004y04704f04d03l02j01e05a05l07e0eu04w05u0cu0jr0ip0rs0hy0ku","0jm0jm0in0bj02y0ji08e0620uf0lk0ak0gs0io1ed00400902504u04504c05103702j01605u06b09e0fp05b06r0dz0k30iz0ro0hn0kl","0k90k9___0b0042______05l0tz0rs03n0fi___1a400000001r04h03m03y03j03f04j02j05f05r07n0gi04x0630cq0pg0ms0rs0fn0m0"],["Hanuman",300,1,1,"0h00hl0h008a0340iz07k02z0v629r05c0al0bl1mg00700803a04o03r04704n03h03000e02y03303z08302g02t0540as0i50pq0fv0kf","0hp0io0hp07p02y0ji0840450tp1lx05c0dw0f21lf00500a03704o03v04704v03g02x00804204c05z09s03e04607i0g10ix0pu0fq0kn","0k60k6___07t03h______0370vw2ae0460aj___1dv00000002v04403503j03602z03m04d03603903w09702l02y05o0ap0o80rs0gq0n2"],["Hanuman",400,1,1,"0hd0hy0hd08002w0j407l03u0ww1x905c0cp0dl1le00600a02w05103y04a04503k02x00n03t03x05j09i03103j06y0fw0ij0q20g70ku","0hq0iq0hq08x02h0jh08604n0ui1kk0640fb0g41kg00500a03004w03x04804v03c02x00804k04y07h0c503y04n09b0i20j00pu0gr0lo","0lc0lc___06w03h______0430x81yi04b0ct___1d500000002g04e03803l03703304403q04104505d0a703803q0780fk0oz0rs0hv0n2"],["Hanuman",700,1,1,"0hy0ij0hy07p01r0j407l05e0yq1d10810g60h41kk00500b02f05904504e04a03f02x00k05b05k08p0d70430530bo0ja0j40q20gs0lf","0hr0ir0gs0le01z0jf08705z0xs17006s0hk0ip1iv00400b02n05304404e04v03c02r00805s06c09f0e904m05v0dj0jx0j30pu0gs0lp","0lw0lw___06k02b___02w05s0z21k305d0g9___1ah00000002104n03e03o03503904m03205m05u09t0f904j05d0bc0oe0py0rs0ig0nn"],["Happy Monkey",400,2,0,"0kf0hv0kf07e03e0ip09903d0r70q90990ay0b41kc00c00902c05503v04h05m02r02n00f03203e04r08q03403m05a0bf0gh0oz0h00kz","0kt0jt0ls08902z0jj0a804h0s00i80ak0da0dt1h700b00902g05303u04f05g02x02g00o04404j06d0cg04804s07m0ek0hx0pz0hu0ls","0ly0ly___08004m___06803f0r30qs0000am___1bk00000301z04e03203w04303704303303903i04i09703a03p05u0c90jo0rt0hc0mj"],["Harmattan",400,0,0,"0gk0g90gk08p0450hq08i03n0sm0t805k0c60dz1o200700b02o05703t04y05n01v02z00703j03q04l09803903w07d0f60gk0ou0es0hq","0gs0ha0fs08403y0hl08d04o0t90ov04x0ep0h21ml00600c02o05604i05205a02b02800404d04r06j0ch0480500aa0h40gx0o50fs0hr","0il0iv___09i05m___02d0410tr0ut0000c1___1d800000002704i03003t04502u04c03003x04304v0af03h04807v0h80ku0rs0e60l8"],["Harmattan",700,0,0,"0hg0ic0h506x0450hq08f0570vv0tn0810fo0hs1jy00600d02c05e03y05305g02102t00805505b06r0dl04c05b0c50i20h50ov0fz0ix","0ht0ht0gt06o03h0hj08e05y0vn0o70810ha0k41hf00500d02h05604k05c05002k02100505n0620940ec05306c0dx0k20h40o50ft0is","0jh0jh___08p05b___02y05q0w40t000w0fj___19400000001w04m03303y04402y04m02l05p05u07b0fy04q05u0d80ph0n40rs0fc0mf"],["Headland One",400,1,0,"0ip0jv0ip07l02x0jk08q03v10o1xi0b80br0d51jb00a00f04004c03y03q04o03y02400d03n04204x08r02h03a06n0dz0ig0pe0gd0kg","0ig0ig0hx0i10330k808m04q0y71l905p0ei0g81iz00600d03d04v03004f04m04o02300804i05106j0ab03a04g08z0h80iv0ot0ge0kh","0m20m2___06y042___07004c14n2d50a40bz___1at00100903k03p03903603n03a04502s04704j05909w02l03g07m0ea0nn0rs0gu0q5"],["Hedvig Letters Sans",400,0,0,"0ig0ig0ig09e04m0kr09y0420vw0rs04k0ci0d91ld00a00802804q03r04f03s04g02a01p03w04404p08f03704308c0hi0j70rp0g50jm","0ik0j20ik08003x0l60a704w0v00ne05c0em0fh1jx00900802a04o03p04a04c04902a01k04o04z05x0c10440560al0ja0ju0rm0hl0ki","0ir0j1___0ab05s______0430wt0rs02m0c7___1g100000002204903d04303i03b04303604004504q08i0360440820h70m20rs0fk0lc"],["Hedvig Letters Serif",400,1,0,"0hp0hp0jf0hf02a0i908r03i14i20f0990a90b51pv00b00803e04m04204n05402f02q00c03h03m04a07a01u02n05b0c00hp0op0ff0l4","0iq0k90hq0r002j0i109c04m11g1kc09i0cm0ff1nj00900903k04t04903o05d02y02h00904e04r06308z02u04007e0f90hk0ok0g70qb","0kh0kh___0g103h___02b0411ax2cg06p0ai___1ee00000003103q03903p03b03603l04103t04204t07k01x02t05z0bw0ot0rs0f00ot"],["Heebo",300,0,1,"0ha0ha0ha07504m0kr0830320sq0rs01409x0aw1mn00600802i04i03r04903q04n02102002z03303n06402m03605p0d40iq0ro0g50ig","0hp0hp0gq07403y0kj0870450ss0n203w0da0e71ms00500902k04k03x04c04k03t02i01703t04605209r03l04h08k0gk0j20qz0fr0ip","0j10jl___06b05r______0320tg0rs00009u___1gi00000002b04003h03y03j03a03p03m03103303n05k02l03405v0c40jv0rs0gq0kr"],["Heebo",400,0,1,"0hv0hv0hl08c04m0kr08203z0ux0rs01m0cn0d81l200600902704p03x04b03t04k02801r03w04004o08r03a04108q0i80j80ro0gq0j1","0hr0hr0gs07u03y0kh08804q0tx0nh03r0ey0fp1la00400a02c04s04104d04r03n02h01304l04s05v0c20460550aq0j90j60r10gs0jq","0hv0hv___09t057___02w0410vt0rs0000ca___1f300000001z04a03k03z03j03d04203203z04104q08y03b04208b0jl0ld0rs0ez0kr"],["Heebo",700,0,1,"0j10j10j107f03h0kr08305z0xj0rs05c0gg0ha1hn00500a01v04u04404d04304702g01i05u06207f0fe04x06b0fd0o20k60rs0hv0k6","0is0is0ht07002z0kh08906e0we0lf05g0hd0j91gl00400a02404u04704h04u03e02m00z06706i0930f905c06x0gh0nd0jx0r30ht0ks","0jb0jb___08e041___02w0630xr0rs00w0gm___1an00000001o04f03p04103j03j04h02i06106507v0gf04y06g0el0r80nv0rs0g50mh"],["Henny Penny",400,2,0,"0i50pi___0i503z___0dm03w1df0x60dw09s___1x500f01b03404k04o04u04102s01q00c03103t04k06401i02m05w0c60er0m40er0oe","0eb0ww___14n02v___09z04e11x11g0bx0b4___25c00h00q03h05p05r05m03k01y00j00203o04e05c08002b03y0830cr0cj0ib0bg1cm","0i80hy1ed0o002w0m005s03x1ft0yg0a40a409k1nd00400f02i04603v04803e04803z00y02y03z04t06c01g02j05o0c80kv0ph0bl0zb"],["Hepta Slab",300,1,1,"0k90kk0k908q03h0jo0840250tj3yz0ca0750861gq00a00704a03w03803o03f04a01w02o02002802t06501v02203105c0il0rs0j40ob","0j40jl0j40n802v0jo07d03c0sw___0an0am0cg1i200400b01y05903c03r04504d01v02s03403n05309i02r03c05409g0j40rp0i50mx","0lf0lf___0av058______0260tu4kl0bs077___1cc00000004603c02r03602y02q03c05d02002702q05f01w02103505e0ow0rs0g70sd"],["Hepta Slab",400,1,1,"0k90ku0k908d03h0jo0840360tk2o00ca0a50aw1g800800903604v03c03q03j04302a02c03203c04j0a902r03304s0900j40rs0j40ob","0iy0jw0iy0jn02u0it07w0430sr1xl0b00d00el1hp00600a03504t03g03u04o03o02v00y03x04e06q0bl03i04406l0d40id0qt0i00mr","0m00m0___0aa04n______0390tr31r0bs0ak___1bs00000002y04i02t03902x02t04304h03303c04g0bw02w0340500950p60rs0gs0sd"],["Hepta Slab",700,1,1,"0me0me0lt06t02b0k30810680xi1gd0dw0gg0hk1cf00500b02605d03o03x03y03w02n01q05z06q0b60fw05005u0b70k90k50rs0l90p9","0lq0lq0l80l401z0jg08906s0wj0i10bq0hh0im1ai00500c02f05803r04104r03402u01a06h07m0br0hx05d06h0co0jv0j40rs0kq0np","0q50q5___089041______06c0y3___0ee0h9___17600000001y05003903g02x03a04x03105z06o0cc0hp0550640b70mq0qf0rs0lu0ta"],["Herr Von Muellerhoff",400,3,0,"1050s4___0hp041___0bn0250y5___0rs07l___2sn00k00r03706805k03e03b02502000o01l02102i03301601q02p03e09r0nj10529g","0ti0pp______03t___0az0480oc___0rs0dw___1ly00i00o03i05z05e03g03c02k02600903d04g06g0aq03105a07q09z09x0n50pp0xb","13v13v___0dk02l___0cw01x0vf___0rs063___2ir00400f02403u03s04j04p03j03n01701h02002g02x01501p02p03d0jk0pt105261"],["Hi Melody",400,3,0,"0fd0es0hg0ax03k0hq0au03p0ra0qh06h0bv0d31jp00a00902305903q04q05n01w02f01j03j03q04l08s03h04507j0dz0ff0qo0an0ic","0hg0gf0hg0800330i30au04v0s30mt0810e80g21ie00900902b05503f04z05i02e02n00x04j04v06f0bu04j05h0a80ge0fs0qt0fe0ih","0eh0eh___0cm042______03r0rh0pc0000c2___1cv00000001l04h03j04703i03m04502r03k03r04e08903k04a07s0ga0ip0rs04n0ij"],["Hibur Mono",400,4,0,"0hy0hd0ij06j04n0kb09903s0v30rs0550cb0dr1cv00b00702k04s03s04c03p04g02d01f03q03u04q09o03803n0740gw0j40r70gs0ij","0gm0gm0hj06g03p0jy09f04e0u80n506j0eg0g21e200a00802n04o04s04b04o03402h00o04704h05x0c803u04f09l0gs0il0px0gm0hj","0hd0hn___08q058______03u0uf0rs0000ck___1bq00000002404803d04103k03a04803003r03v04g09t03f03x0870kf0ml0rs0f20ij"],["Hina Mincho",400,1,0,"0hy0j40fx0a901r0f208403b1681qh0bl0920bz1om00700804504a04804y03502102602g03003f03u05y01m02f04v0al0ei0rs0f20ob","0hr0hr0fs0g201z0fh08704h1231pr08t0ce0gl1nx00400a03i04l04705203q02302f01v04504m05i09b02l03w07a0dn0f20rr0dt0no","0nq0nq___07j03h___05f03e1bp27t0aq08x___1cp00000503s03b03603k02y03303f04e02z03i03v05h01k02604s09l0pk0rs0hy0rs"],["Hind",300,0,0,"0h30hd0gs07e04n0ku0840310rf0rs01o09y0b51me00500902i04p03u04a03p04o02701k02v03203n06b02s03a05n0cn0im0qr0f20ij","0hq0hq0gq08303y0kn0850460se0n004x0d60ed1lt00400a02m04n03x04c04i04102g00y03x04805a09v03q04j08q0g20j10qq0fr0jp","0h30hd___08605s______02z0rj0rs00009y___1h200000002b04703f04103f03604203702v03103h06302p03805o0bk0je0rs0eh0jo"],["Hind",400,0,0,"0gs0gs0hn09o04n0ku08403r0t60rs0310c10cl1kz00500a02904u03y04c03r04k02c01g03l03t04i08e03b03y07w0gc0j40qu0f20ij","0hr0hr0ha08g03y0kl08704n0td0ms04t0e30fm1kr00400a02f04s04204b04n03u02h00w04d04p05x0bu0460500al0i20j40qs0fs0jq","0gi0gs___0aq04x___04n03q0sq0rs0000bv___1fp00000102204e03i04303f03904c02s03m03t04h08z03b04007u0gd0kj0rs0dw0k9"],["Hind",700,0,0,"0ij0it0i807m03h0jo07l06b0wc0rs06y0he0iv1hi00300b01w05304e04n04c03v02m00m06006d08d0f905506u0g10nu0j50q20gs0k9","0jt0jt0jb08a02z0kj08b0720ww0lp0990i70jv1cg00300a02304v04904j04u03o02f00s06n0770ay0gd05v07z0hi0o60jy0qv0hu0kt","0jo0jo___08m042___05806n0vs0rs03p0hk___18000000101m04g03r04503i03l04l02506k06z09n0h505n07l0gs0rc0nr0rs0gs0n5"],["Hind Guntur",300,0,0,"0h30hd0gs07e04n0ku0840310rh0rs01o09y0b51me00500902i04p03u04a03p04o02701k02v03203n06b02s03a05m0cs0im0qr0f20ij","0hp0hp0gq08303y0kn0850460sd0n004x0d60ed1lu00400a02m04n03x04c04i04102g00y03x04805a09v03q04j08q0g30j10qq0fr0jo","0h30hd___08805s______02z0ri0rs00009y___1h200000002b04703f04103f03604203702v03103h06302p03805o0bk0jb0rs0eh0jo"],["Hind Guntur",400,0,0,"0gs0gs0hn09o04n0ku08403r0t70rs0310c10cl1kz00500a02904u03y04c03r04k02c01g03l03t04i08e03b03y07x0gc0j40qu0f20ij","0hs0hs0ha08g03y0kl08804n0tc0ml04t0e30fm1kq00400a02f04s04204b04n03u02h00w04d04p05x0bu0460500al0i20j40qs0ft0jr","0gi0gs___0aq04x___04n03q0sq0rs0000bv___1fp00000102204e03i04303f03904c02s03m03t04h08z03b04007u0gd0kj0rs0dw0k9"],["Hind Guntur",700,0,0,"0ij0it0i807m03h0jo07l06b0wd0rs06y0he0iv1hm00300b01w05204e04n04c03v02m00m06006d08e0f305506u0g10nu0j50q20gs0k9","0jt0jt0jb08a02z0ki08a0720ww0lq0990i70jv1cg00300a02304v04904j04u03o02f00s06n0770az0gc05v07z0hi0o60jy0qv0hu0kt","0jo0jo___08m042___05806n0vs0rs03p0hk___18000000101m04g03r04503i03l04m02506k06z09n0h505n07l0gr0rc0nr0rs0gs0n5"],["Hind Madurai",300,0,0,"0h30hd0gs07e04n0ku0840310rh0rs01o09y0b51me00500902i04p03u04a03p04o02701k02v03203n06b02s03a05m0cs0im0qr0f20ij","0hp0hp0gq08303y0kn0850460sd0n004x0d60ed1lu00400a02m04n03x04c04i04102g00y03x04805a09v03q04j08q0g30j10qq0fr0jo","0h30hd___08805s______02z0ri0rs00009y___1h200000002b04703f04103f03604203702v03103h06302p03805o0bk0jb0rs0eh0jo"],["Hind Madurai",400,0,0,"0gs0gs0hn09o04n0ku08403r0t70rs0310c10cl1kz00500a02904u03y04c03r04k02c01g03l03t04i08e03b03y07x0gc0j40qu0f20ij","0hs0hs0ha08g03y0kl08804n0tc0ml04t0e30fm1kq00400a02f04s04204b04n03u02h00w04d04p05x0bu0460500al0i20j40qs0ft0jr","0gi0gs___0aq04x___04n03q0sq0rs0000bv___1fp00000102204e03i04303f03904c02s03m03t04h08z03b04007u0gd0kj0rs0dw0k9"],["Hind Madurai",700,0,0,"0ij0it0i807m03h0jo07l06b0wd0rs06y0he0iv1hm00300b01w05204e04n04c03v02m00m06006d08e0f305506u0g10nu0j50q20gs0k9","0jt0jt0jb08a02z0ki08a0720ww0lq0990i70jv1cg00300a02304v04904j04u03o02f00s06n0770az0gc05v07z0hi0o60jy0qv0hu0kt","0jo0jo___08m042___05806n0vs0rs03p0hk___18000000101m04g03r04503i03l04m02506k06z09n0h505n07l0gr0rc0nr0rs0gs0n5"],["Hind Mysuru",300,0,0,"0h30hd0gs07e04n0ku0840310rf0rs01o09y0b51me00500902i04p03u04a03p04o02701k02v03203n06c02s03a05n0cn0im0qr0f20ij","0hq0hq0gr08303y0kn0860460sf0n204x0d70ec1lr00400a02m04n03x04c04h04102g00y03x04805a09v03q04j08q0g30j00qq0fr0jp","0h30hd___08805s______02z0rg0rs00009x___1h200000002b04703f04103f03604203702v03103h06202p03805n0bk0jb0rs0eh0jo"],["Hind Mysuru",400,0,0,"0gs0gs0hn09o04n0ku08403r0t60rs0310c50cl1kz00500a02804u03y04c03r04k02c01g03l03s04j08e03b03y07w0gc0j40qu0f20ij","0hs0hs0ha08g03y0kk08804n0tf0mp04t0e40fm1kr00400a02f04s04204b04n03u02h00w04d04p05w0bv0460500al0i20j40qs0ft0jr","0gi0gs___0aq04x___04n03q0sq0rs0000bv___1fp00000102204e03i04203f03904c02s03m03u04h08z03b04007u0gd0kj0rs0dw0k9"],["Hind Mysuru",700,0,0,"0ij0it0i807m03h0jo07l06a0wd0rs06y0he0iv1hn00300b01w05204e04n04c03v02m00m06006d08d0f205506u0g00nv0j50q20gs0k9","0jt0jt0jb08a02z0ki08a0720wx0lq0990i70jv1cj00300a02304v04904i04u03o02f00s06n0780aw0gc05v0800hh0o70jy0qv0hu0kt","0jo0jo___08m042___05806n0vt0rs03p0hr___18100000101m04g03r04503i03k04m02506k06z09n0h505n07l0gr0rb0nr0rs0gs0n5"],["Hind Siliguri",300,0,0,"0h30h30h307404n0ku0840300rj0rs02s09y0ay1mr00500902i04o03t04903q04p02801l02v03203n06c02r03a05m0ca0il0qq0f20ij","0hq0hq0h807h03y0kn0860450s80mw04g0d60eb1mb00400a02m04o03x04c04h03z02g00z03t04705809t03q04k08q0g40j10qq0fr0iq","0hd0hd___08505s______02z0ri0rs00009r___1hd00000002b04803f04103f03604203702v03103h06302p03805n0be0ja0rs0f20jo"],["Hind Siliguri",400,0,0,"0hd0gs0hn09i04n0ku08403r0t40rs0310by0ct1l900500a02804t03y04b03r04k02c01g03l03t04i08e03b03y07t0gk0is0qu0f20j4","0hr0hr0h908p03y0kl08704n0t50ml04t0ee0ff1ky00400a02f04s04104c04o03t02h00w04d04p05x0bu0460510ab0if0j40qs0fs0jq","0gs0gs___0am04x___04n03q0sv0rs0000bu___1fz00000102204e03i04203e03904c02s03m03t04h09303a03z07v0ga0kk0rs0dw0k9"],["Hind Siliguri",700,0,0,"0ij0it0i807m03h0jo07l06b0wd0rs06y0he0iv1hm00300b01w05204e04n04c03v02m00m06006d08e0f305506u0g10nu0j50q20gs0k9","0jt0jt0jb08a02z0ki08a0720ww0lq0990i70jv1cg00300a02304v04904j04u03o02f00s06n0770az0gc05v07z0hi0o60jy0qv0hu0kt","0jo0jo___08m042___05806n0vs0rs03p0hk___18000000101m04g03r04503i03l04m02506k06z09n0h505n07l0gr0rc0nr0rs0gs0n5"],["Hind Vadodara",300,0,0,"0h30hd0gs07e04n0ku0840310rh0rs01o09y0b51me00500902i04p03u04a03p04o02701k02v03203n06b02s03a05m0cs0im0qr0f20ij","0hp0hp0gq08303y0kn0850460sd0n004x0d60ed1lu00400a02m04n03x04c04i04102g00y03x04805a09v03q04j08q0g30j10qq0fr0jo","0h30hd___08805s______02z0ri0rs00009y___1h200000002b04703f04103f03604203702v03103h06302p03805o0bk0jb0rs0eh0jo"],["Hind Vadodara",400,0,0,"0gs0gs0hn09o04n0ku08403r0t70rs0310c10cl1kz00500a02904u03y04c03r04k02c01g03l03t04i08e03b03y07x0gc0j40qu0f20ij","0hs0hs0ha08g03y0kl08804n0tc0ml04t0e30fm1kq00400a02f04s04204b04n03u02h00w04d04p05x0bu0460500al0i20j40qs0ft0jr","0gi0gs___0aq04x___04n03q0sq0rs0000bv___1fp00000102204e03i04303f03904c02s03m03t04h08z03b04007u0gd0kj0rs0dw0k9"],["Hind Vadodara",700,0,0,"0ij0it0i807m03h0jo07l06b0wd0rs06y0he0iv1hm00300b01w05204e04n04c03v02m00m06006d08e0f305506u0g10nu0j50q20gs0k9","0jt0jt0jb08a02z0ki08a0720ww0lq0990i70jv1cg00300a02304v04904j04u03o02f00s06n0770az0gc05v07z0hi0o60jy0qv0hu0kt","0jo0jo___08m042___05806n0vs0rs03p0hk___18000000101m04g03r04503i03l04m02506k06z09n0h505n07l0gr0rc0nr0rs0gs0n5"],["Holtwood One SC",400,1,0,"0r70r7___05x02b___0780b81490x60iv0lz___0yg00000201o04g04903y03b04l04o00x0b50dh0ih0om07t0ak0ov0pn0ph0rf0n50u3","0rr0rr___0d402z___07i0bq15x___0iw0m4___0vx00000101u04c04703y03x04n04800o0bk0dy0km0pd0810bm0oe0pl0p10r10ns0uq","0sd0sd___06702b___0860bq13l0yg0ic0m2___0x800100201l04804503o03604204l02b0bq0ej0ix0pe08a0at0qc0rp0r70rs0ob0vu"],["Homemade Apple",400,3,0,"1f410o___0j4050___0go03e0sx0yb0ij0a6___1v800k00m02m06j04k04i03402h01t01202q03a04o07402n03f05n08s09k0ma0a0244","1lf1hg___0dh05y___0ke04n0t717p0m80br___1o000j00m02p06705q04n03302c01m00e03r04r07k0b203t05808o0ce0a00kq1di1wb","0xg0xg___0n803z___0h003i0sr18w0fv0af___1nr00600801m04m04b04803s03w03901q02r03b04j06w02p03m0620980fc0rs0bc1qx"],["Homenaje",400,0,0,"0c20cn0c20940410kb06o03j0we23k0110f50fn23e00300902y04704104e03u04602901o03i03s03x07302z03q0e20nw0jy0rs09r0ed","0dp0dp0cq07s02y0l606g04j0uq1a000k0gv0i520c00000802a04f03z04c04j04702801m04d04n05c09g03z05u0g00np0kn0rp0br0fo","0ds0ds___09e04l______03t0yq1cr0000ex___1ub00000002m03q03l03z04503003w02w03t03t0410770310410d20qy0ok0rs0ac0fi"],["Honk",400,2,0,"28i2ch28i0qz08i0nt02a0250zm___0rs0fq0ht0tt00000102h06g06l05x01i01602301l01t02806012p01o04q0bb0co0nt0rs1lu5c6","23m28f23m0rb06p0n502e03w12v___0rs0im0kt0o700000001u05e05i05i03d01o02f02402x04709p1im02s0bo0e80im0n80rs1kh52u","2a72a7___0l008i___02a_________0rs0fy___06t00000002e06d06i05v01g01a00z03001s02104e0jf01m0440ba0d20rs0rs1qd30a"],["Host Grotesk",300,0,1,"0jb0k60ig06f04m0jo08x0380sm0rs08c09w0bg1iv00900802m04q03s04904004002101y03303b04206y02s03b05h0bi0hw0rb0hb0k6","0ib0ja0hd07w03v0jp0890470sm___05w0cx0ed1kr00300a01f05403y04905003t02901m03w04905b0ab03q04e07w0f90i80qu0ge0k9","0k60k6___07w057______0370tg0rs03u0a3___1dv00000002e04703f03x03h03603p03k03303a03r06c02p03705w0b20ju0rs0gq0kr"],["Host Grotesk",400,0,1,"0jm0k60j108m0410jo08v0400u00rs07q0c10d91i200800902c04x03w04904703r02901q03v0430520a903g0430730fp0i10ro0gq0kr","0k80l80j707t0310jz08m04y0u70m80730eb0fp1hh00500a02i05104303b05303o02e01c04o05006i0d404c0550a10hf0ii0rh0h70l8","0kh0kr___09z041______0400uk0rs03h0c0___1cz00000002304e03h03x03h03904303403v04204u0a303c03z07i0f80le0rs0f00lc"],["Host Grotesk",700,0,1,"0lc0lc0k70ds02w0jo08v05l0vn0rs09g0f50hj1go00700a02005304304b04d03i02h01i05g05o07k0fb04p05m0br0js0in0rs0ig0mi","0li0li0jk0ij02y0jh0960690wd0lh09x0g50hk1dy00700a02604z04304b04z03702e01a06006c0950ge0550690dc0k30iy0ro0jk0nh","0lc0lc___0a703h______05i0v20rs04h0fd___1a700000001r04j03k03y03g03e04j02m05g05n07e0gv04l05o0br0o50ms0rs0g50mi"],["Hubballi",400,0,0,"0iq0iq0hl06p0690ja09302z0qs0or07s09c0b01d500600802c04z03w04e05603502m00x02s03303x07z02u03704z0ab0gm0q30gg0ju","0jf0jf0if08e0650k309m04d0re0hj05w0cp0eb1b800500802m04z04503g05503n02j00y04304g05z0ct04704q08f0er0hq0qr0he0lh","0kn0kx___07s07o______0360ru0os02z09b___15d00000002a04a02w03s04e02p03v03n02x03803y07102y03b05g0a60ia0rs0h30n0"],["Hubot Sans",300,0,1,"0j40jo0ij06403h0jo06h02t0tn0rs06y08x0a81nt00200b02q04o03s04803y04202002302p02u03f05f02g02r04n0a80hz0re0hd0ku","0i80j60i809e02w0jp05k03v0s7___06d0c50ds1r100000901g05403w04704q04201x02803j03x04u09i03b0430700em0ib0ro0gb0l3","0ku0lf___05j04n______02u0uj0rs01j08z___1fm00000002l04103b03u03h03203j03z02q02w03h05f02h02q04r09p0kh0rs0ij0n5"],["Hubot Sans",400,0,1,"0j40jo0j40aq03h0ju06h03s0vk0rs07q0by0d11m400100b02c04w03w04804004102d01r03o03u04m08p03603n06y0fx0ik0rs0gs0ku","0kl0kl0jm09002y0kc06g04o0ui0mn0930dt0fb1l300000a02g04x03w04804r03g02i01c04h04q05y0cl04204p09c0gx0j00rn0in0nj","0kk0ku___09y042______03u0vz0rs0310bb___1e500000002604e03e03u03d03404903a03o03w04n0a103b03m06m0eh0m20rs0fn0n5"],["Hubot Sans",700,0,1,"0m00m00lp09u02w0kc06e06s0z30rs0ca0h10i21et00100b01x04y04504e04603y02l01d06j06v08u0hk05606d0g00n90jw0rs0ku0ob","0lo0mn0lo09p02y0kj06g0790z30m00dm0i80j11cd00000a02404w04504c04q03m02m01406z07g0ak0ib05h0720gs0nc0jx0rq0lo0pl","0ml0ml___0a503h______06x0z00rs08u0gw___16r00000001p04j03l04003f03g04n02h06u07309q0k205h06h0fa0r10og0rs0g70ph"],["Huninn",400,0,0,"0j40jo0ij08y04n0k909a0420sy0pj06k0ca0dn1er00800702805003t04c04103x02g01l03z04505d0bm03r04607t0g60il0r90gs0ku","0ix0jx0hx08903z0kf08j04t0t6___0600dw0fm1f000400901805d03z04k05203402b01w04l04x06r0dn04e05009z0hd0j00r00gx0kw","0ku0ku___09s05s______0410st0pi03h0by___18j00000001z04h03b04503f03404l02s03z0440540cz03r04607b0eh0l10rs0gs0ml"],["Hurricane",400,3,0,"16l1cn___0mf041___0ej02j0un___0mq081___2gm00f00g03205x05v04s02n03301i00502502n03g04o01r02b03s05b0bi0lc0pc1ur","1870ur___15s03u___0d704h0um___0rs0e4___1mn00f00g01v06705z05303603201i00403l04p07w0bj03604n07p0a90cg0m00yl3hu","0r40re___0f902w___04102p0sx___0hd07f___1db00000302f03n03504003903m04903f02j03604206802202n04n06a0jr0rp0ig0wv"],["IBM Plex Mono",300,4,0,"0hx0hx0hx02p05s0kj08902q0u20rs02s0920ab1bi00900703a04b03h04303i04r01w02302m02s03a05d02c02m04b09w0im0rh0gs0j3","0hc0hc0hc02904t0kl07g03t0tc___0260cc0dn1d500300b01r05403j04704804l02801t03i03w04w09u03603y0760eo0j90qx0ge0ib","0hx0hx___03z063______02r0tt0rs00009f___1be00000002p03v03604003i03303i04002p02s03605302e02q0510av0lj0rs0gs0j3"],["IBM Plex Mono",400,4,0,"0ii0i80ii06j0570kj08903n0uv0rs02l0bo0ct1b800700902p04s03l04403j04o02501u03i03p04i09g03403i06e0fa0j40rs0hc0j3","0hs0hs0hs03m03y0l207l04h0tg___0250dw0fj1b600300c01g05f03p04604i04d02a01i04a04l0600co03x04l0910h70jr0rm0hs0ir","0hx0hx___08s04n______03p0ux0rs0000c6___1b100000002804c03a03x03k03703z03b03n03r04909303703p07f0j70mu0rs0g70jo"],["IBM Plex Mono",700,4,0,"0jo0jy0jo03803h0ki0880690y010409m0ge0hz1a300600b02505003v04704104602g01i06506d0840gc04v05v0eg0mo0k80rs0j30kt","0jm0jm0jm05m02y0ji08706k0ye0ln0ad0hk0k518p00500b02e05204204d04y03b02j00p06c06s0ae0gh05506d0fj0mc0jq0qr0in0jm","0jo0jo___07y03h______06c0xr0z90000hr___18800000001r04f03i04003h03i04k02k06806i0840h205706i0g00rs0p40rs0hx0kt"],["IBM Plex Sans",300,0,1,"0hx0hx0hc0660570kd08902p0st0rs0150930a51kf00700802x04d03m04a03n04g02002402m02r03605502f02r04n0af0i40rd0fm0ii","0hd0hd0ge08004u0kj07h03u0s6___01n0c10dc1m800200a01l05103q04b04g04b02b01r03g03v04p09503c04407f0es0id0qu0ff0ib","0j30j3___05906d______02r0t70rs00008v___1e400000002m03x03603z03g03403l03y02p02t03705002f02u0530ab0kg0rs0g70k8"],["IBM Plex Sans",400,0,1,"0ii0i80ii08q04n0kj08903n0tx0rs01k0bk0cr1jb00600902f04q03q04a03p04f02b01t03i03p04d08l03903r0720ft0ip0rr0g70j3","0i70j80i70770420kw08f04l0sv0n60260dw0fn1il00400a02k04v03w03b04q04802e01f04e04p05x0bv04704x0a00hz0jj0rk0g70j8","0is0j3___09e05s______03q0ui0rs0000bk___1d000000002604b03803w03i03604903a03n03r04e09m03903s0720fs0m00rs0f10kt"],["IBM Plex Sans",700,0,1,"0jo0kt0jo06l03h0kv08806a0wa0s707h0gm0i01f800500a01z04v03z04e04004702j01h06506d0850g605606k0fq0nd0k90rs0ii0le","0io0jn0io06i03g0kb08806i0w30m90810hm0j71el00400a02804y04604j04w03h02l00m06b06n09c0fs05g0740ft0mq0jr0qq0io0km","0kt0kt___089042______06g0vr0rs01c0gz___17t00000001o04h03h04303i03f04o02h06a06k08z0hz05l06p0fj0ri0od0rs0gs0mk"],["IBM Plex Sans Arabic",300,0,0,"0hc0hx0hc06b05s0kd08a02q0so0rs0150900a71ke00700702x04d03k04903o04g02102402m02s03705602f02t04q0ac0i40rg0fm0ii","0hd0hu0hd06y04u0kj07g03v0s0___01p0c40dd1ma00200a01n05003q04904h04c02a01s03h03x04q09803c04507c0f60id0qw0ff0ib","0j30j3___05906d______02s0sz0rs00008u___1e400000002n03x03503z03g03303l03z02p02t03705202f02u0530ad0kg0rs0g70k8"],["IBM Plex Sans Arabic",400,0,0,"0ii0i80ii08q04n0kj08a03o0tw0rs01k0bk0cv1ja00600902g04q03q04a03p04f02b01t03i03p04e08p03903s0720ft0io0rr0g70j3","0hs0ia0hs07703y0l207l04i0t1___0130e00fw1j700200a01c05703u04c04q04902e01f04a04m05s0bn04304v09s0hj0jp0rm0ft0is","0is0j3___09e05s______03q0ub0rs0000bo___1d000000002704b03803w03i03604903a03n03s04e09o03903s0720fq0m20rs0f10kt"],["IBM Plex Sans Arabic",700,0,0,"0jo0kt0jo06l03h0kv08806a0wd0sj07h0go0i11f600500a01z04v03z04e03z04702j01h06506d0880g805606k0fr0ne0k90rs0ii0le","0ip0jo0ip06i02y0kd08806j0w30lr0810hr0ji1ed00400a02804y04604j04w03h02k00n06b06r09l0g505i0790fy0mv0jt0qt0ip0ko","0kt0kt___089042______06h0vu0rs01c0h1___17s00000001p04h03h04203i03f04o02i06a06m0920i005m06o0fl0rn0od0rs0gs0mk"],["IBM Plex Sans Condensed",300,0,0,"0g70g70fm06304n0kd08a02m0se0rs01509f0aq1qj00700702y04b03n04b03o04e02102302j02n02z04p02c02r04v0bz0ik0rr0dw0gs","0ff0ff0ff07q03v0kj07g03s0s0___01o0co0e21sh00200a01n04x03r04c04j04a02b01q03i03u04j08l03c04708e0gp0j50qx0eg0hc","0hc0hc___058057______02n0sk0rs00009c___1jt00000002n03t03704003h03603l03x02m02o03004m02c02s0590bn0l10rs0f10ii"],["IBM Plex Sans Condensed",400,0,0,"0g70g70g707t04n0kj08903h0tq0rs0130bw0d01pj00600902i04n03q04b03q04f02801u03c03i03z07d03303n07f0hj0j60rs0eg0hc","0gs0gs0ft06x03y0l207l04d0sf___0130ea0g51pe00200a01c05403w04d04p04802e01g04704f05f0af04004v0ai0ik0jt0rm0et0hs","0hc0hc___09804n______03j0u90rs0000bv___1iv00000002804603b03x03k03904103c03h03l04008003303n0790hz0ml0rs0dw0ii"],["IBM Plex Sans Condensed",700,0,0,"0hx0is0hn06i02w0kv08805x0w20s30250h30ik1lz00500a02004u03z04d03y04802i01i05u05z0740dp04z06h0gm0on0kd0rs0hc0jo","0hq0hq0gr07z02y0ke0880680vz0ls0280hv0jv1k000400a02904w04704k04t03g02l00n06006c08r0es05b07d0h00nn0jv0qu0gr0jp","0j30j3___082042______0600vp0rs0000h1___1dt00000001r04g03h04103j03f04l02k05y06407o0fz05906l0g30rr0ow0rs0fm0kt"],["IBM Plex Sans Devanagari",300,0,0,"0hc0hx0hc06b05s0kd08a02q0so0rs0150900a71ke00700702x04d03k04903o04g02102402m02s03705602f02t04q0ac0i40rg0fm0ii","0hd0hu0hd06y04u0kj07g03v0s0___01p0c40dd1ma00200a01n05003q04904h04c02a01s03h03x04q09803c04507c0f60id0qw0ff0ib","0j30j3___05906d______02s0sz0rs00008u___1e400000002n03x03503z03g03303l03z02p02t03705202f02u0530ad0kg0rs0g70k8"],["IBM Plex Sans Devanagari",400,0,0,"0ii0i80ii08q04n0kj08a03o0tw0rs01k0bk0cv1ja00600902g04q03q04a03p04f02b01t03i03p04e08p03903s0720ft0io0rr0g70j3","0hs0ia0hs07703y0l207l04i0t1___0130e00fw1j700200a01c05703u04c04q04902e01f04a04m05s0bn04304v09s0hj0jp0rm0ft0is","0is0j3___09e05s______03q0ub0rs0000bo___1d000000002704b03803w03i03604903a03n03s04e09o03903s0720fq0m20rs0f10kt"],["IBM Plex Sans Devanagari",700,0,0,"0jo0kt0jo06l03h0kv08806a0wd0sj07h0go0i11f600500a01z04v03z04e03z04702j01h06506d0880g805606k0fr0ne0k90rs0ii0le","0ip0jo0ip06i02y0kd08806j0w30lr0810hr0ji1ed00400a02804y04604j04w03h02k00n06b06r09l0g505i0790fy0mv0jt0qt0ip0ko","0kt0kt___089042______06h0vu0rs01c0h1___17s00000001p04h03h04203i03f04o02i06a06m0920i005m06o0fl0rn0od0rs0gs0mk"],["IBM Plex Sans Hebrew",300,0,0,"0hc0hx0hc06b05s0kd08a02q0so0rs0150900a71ke00700702x04d03k04903o04g02102402m02s03705602f02t04q0ac0i40rg0fm0ii","0hd0hu0hd06y04u0kj07g03v0s0___01p0c40dd1ma00200a01n05003q04904h04c02a01s03h03x04q09803c04507c0f60id0qw0ff0ib","0j30j3___05906d______02s0sz0rs00008u___1e400000002n03x03503z03g03303l03z02p02t03705202f02u0530ad0kg0rs0g70k8"],["IBM Plex Sans Hebrew",400,0,0,"0ii0i80ii08q04n0kj08a03o0tw0rs01k0bk0cv1ja00600902g04q03q04a03p04f02b01t03i03p04e08p03903s0720ft0io0rr0g70j3","0hs0ia0hs07703y0l207l04i0t1___0130e00fw1j700200a01c05703u04c04q04902e01f04a04m05s0bn04304v09s0hj0jp0rm0ft0is","0is0j3___09e05s______03q0ub0rs0000bo___1d000000002704b03803w03i03604903a03n03s04e09o03903s0720fq0m20rs0f10kt"],["IBM Plex Sans Hebrew",700,0,0,"0jo0kt0jo06l03h0kv08806a0wd0sj07h0go0i11f600500a01z04v03z04e03z04702j01h06506d0880g805606k0fr0ne0k90rs0ii0le","0ip0jo0ip06i02y0kd08806j0w30lr0810hr0ji1ed00400a02804y04604j04w03h02k00n06b06r09l0g505i0790fy0mv0jt0qt0ip0ko","0kt0kt___089042______06h0vu0rs01c0h1___17s00000001p04h03h04203i03f04o02i06a06m0920i005m06o0fl0rn0od0rs0gs0mk"],["IBM Plex Sans JP",300,0,0,"0hd0hd0hd0650580k908702l0sh0rs01508s09u1l300700803104b03n04b03p04e02202002h02m03104q02b02n04e09j0i20r70fn0ij","0hs0hs0gt07704y0kb07n03x0sf___01p0c80dj1l700200a01p05003q04d04m04702d01j03l03z04s09403e04607f0f30is0rg0ft0is","0ij0ij___05b063______02m0sm0rs00008o___1em00000002q03t03604203h03403p03s02k02o03204u02b02p04o09l0jw0rs0g70k9"],["IBM Plex Sans JP",400,0,0,"0i50i50i508d04o0kh08a03i0tq0rs0120b80c71jg00600902j04q03r03q04f04c01x02003e03k04507i03403m06p0f30iq0rn0ft0iq","0hs0hs0gs07b03y0k807l04e0so___02o0dv0fd1k300200b01d05703z04g04v04102r00u04604h05m0bc03y04n0970gm0ir0ql0ft0ir","0jb0jb___09505v______03l0uf0rs0000bc___1da00000002a04903903e04a03803i03m03i03m04608n03403n06o0en0lc0rs0f80kh"],["IBM Plex Sans JP",700,0,0,"0jw0kh0jb06j0430l20890600w40rs04a0ga0hf1g200500a02104x04003s04o04602801m05v06207m0fa04y0680ey0lc0k20rs0iq0l2","0is0jr0hs06j03y0jg08906b0we0lv0600hc0j61f900400a02b05204a04p05003e02i00606306f09d0fl05806m0f10ky0iz0pu0hs0kr","0ks0ks___08c04p______0670vx0rs01c0gi___18p00000001r04j03j03j04603h04402p06106a08b0h905d06d0en0rb0o60rs0ge0m8"],["IBM Plex Sans KR",300,0,0,"0hc0hx0hc06b05s0kd08a02q0so0rs0150900a71ke00700702x04d03k04903o04g02102402m02s03705602f02t04q0ac0i40rg0fm0ii","0hd0hu0hd06y04u0kj07g03v0s0___01p0c40dd1ma00200a01n05003q04904h04c02a01s03h03x04q09803c04507c0f60id0qw0ff0ib","0j30j3___05906d______02s0sz0rs00008u___1e400000002n03x03503z03g03303l03z02p02t03705202f02u0530ad0kg0rs0g70k8"],["IBM Plex Sans KR",400,0,0,"0ii0i80ii08q04n0kj08a03o0tw0rs01k0bk0cv1ja00600902g04q03q04a03p04f02b01t03i03p04e08p03903s0720ft0io0rr0g70j3","0hs0ia0hs07703y0l207l04i0t1___0130e00fw1j700200a01c05703u04c04q04902e01f04a04m05s0bn04304v09s0hj0jp0rm0ft0is","0is0j3___09e05s______03q0ub0rs0000bo___1d000000002704b03803w03i03604903a03n03s04e09o03903s0720fq0m20rs0f10kt"],["IBM Plex Sans KR",700,0,0,"0jo0kt0jo06l03h0kv08806a0wd0sj07h0go0i11f600500a01z04v03z04e03z04702j01h06506d0880g805606k0fr0ne0k90rs0ii0le","0ip0jo0ip06i02y0kd08806j0w30lr0810hr0ji1ed00400a02804y04604j04w03h02k00n06b06r09l0g505i0790fy0mv0jt0qt0ip0ko","0kt0kt___089042______06h0vu0rs01c0h1___17s00000001p04h03h04203i03f04o02i06a06m0920i005m06o0fl0rn0od0rs0gs0mk"],["IBM Plex Sans Thai",300,0,0,"0hc0hx0hc06b05s0kd08a02q0so0rs0150900a71ke00700702x04d03k04903o04g02102402m02s03705602f02t04q0ac0i40rg0fm0ii","0hd0hu0hd06y04u0kj07g03v0s0___01p0c40dd1ma00200a01n05003q04904h04c02a01s03h03x04q09803c04507c0f60id0qw0ff0ib","0j30j3___05906d______02s0sz0rs00008u___1e400000002n03x03503z03g03303l03z02p02t03705202f02u0530ad0kg0rs0g70k8"],["IBM Plex Sans Thai",400,0,0,"0ii0i80ii08q04n0kj08a03o0tw0rs01k0bk0cv1ja00600902g04q03q04a03p04f02b01t03i03p04e08p03903s0720ft0io0rr0g70j3","0hs0ia0hs07703y0l207l04i0t1___0130e00fw1j700200a01c05703u04c04q04902e01f04a04m05s0bn04304v09s0hj0jp0rm0ft0is","0is0j3___09e05s______03q0ub0rs0000bo___1d000000002704b03803w03i03604903a03n03s04e09o03903s0720fq0m20rs0f10kt"],["IBM Plex Sans Thai",700,0,0,"0jo0kt0jo06l03h0kv08806a0wd0sj07h0go0i11f600500a01z04v03z04e03z04702j01h06506d0880g805606k0fr0ne0k90rs0ii0le","0ip0jo0ip06i02y0kd08806j0w30lr0810hr0ji1ed00400a02804y04604j04w03h02k00n06b06r09l0g505i0790fy0mv0jt0qt0ip0ko","0kt0kt___089042______06h0vu0rs01c0h1___17s00000001p04h03h04203i03f04o02i06a06m0920i005m06o0fl0rn0od0rs0gs0mk"],["IBM Plex Sans Thai Looped",300,0,0,"0hc0hx0hc06b05s0kd08a02q0so0rs0150900a71ke00700702x04d03k04903o04g02102402m02s03705602f02t04q0ac0i40rg0fm0ii","0hd0hu0hd06y04u0kj07g03v0s0___01p0c40dd1ma00200a01n05003q04904h04c02a01s03h03x04q09803c04507c0f60id0qw0ff0ib","0j30j3___05906d______02s0sz0rs00008u___1e400000002n03x03503z03g03303l03z02p02t03705202f02u0530ad0kg0rs0g70k8"],["IBM Plex Sans Thai Looped",400,0,0,"0ii0i80ii08q04n0kj08a03o0tw0rs01k0bk0cv1ja00600902g04q03q04a03p04f02b01t03i03p04e08p03903s0720ft0io0rr0g70j3","0hs0ia0hs07703y0l207l04i0t1___0130e00fw1j700200a01c05703u04c04q04902e01f04a04m05s0bn04304v09s0hj0jp0rm0ft0is","0is0j3___09e05s______03q0ub0rs0000bo___1d000000002704b03803w03i03604903a03n03s04e09o03903s0720fq0m20rs0f10kt"],["IBM Plex Sans Thai Looped",700,0,0,"0jo0kt0jo06l03h0kv08806a0wd0sj07h0go0i11f600500a01z04v03z04e03z04702j01h06506d0880g805606k0fr0ne0k90rs0ii0le","0ip0jo0ip06i02y0kd08806j0w30lr0810hr0ji1ed00400a02804y04604j04w03h02k00n06b06r09l0g505i0790fy0mv0jt0qt0ip0ko","0kt0kt___089042______06h0vu0rs01c0h1___17s00000001p04h03h04203i03f04o02i06a06m0920i005m06o0fl0rn0od0rs0gs0mk"],["IBM Plex Serif",300,1,0,"0gs0hy0gs07x0420j407p02l0zz2jg05c08u09l1nl00900903y04103s04b03p03w02w00s02h02n03305c01p02303y08b0hz0q20fn0k9","0gc0ha0gc08y03u0jr07c03q0wa___03t0cd0dz1oc00300d01w05203q04604d04h02l01303g03w04r07r02q03h06h0ec0j60pw0fd0j7","0j30j3___08f057______02s1202rx02908p___1e800000003h03f03303m03a03003j04f02q02t03705e01s02404l08l0nw0rs0db0np"],["IBM Plex Serif",400,1,0,"0hn0i80hd07c03r0j407o03h12j1zi06f0ay0bw1ms00700b03c04d03y04f03w03t02w00o03c03k04507m02502r05z0cv0i80q20g70k9","0hb0hs0gu08403v0jp07b04a0ye___04x0ds0f31ni00300d01p05403u04904j04d02m01004704g05l08v03104207r0gh0j70px0fe0j8","0k80k8___07t057______03r14t22u02q0at___1dx00000002v03x03803l03903403o04703p03t04c08b02a02u06q0ci0oj0rs0eg0oa"],["IBM Plex Serif",700,1,0,"0jn0jn0j206j02b0jn07s0601cz1a90b80fb0gg1iw00600b02i04u04504i04003v02s00o05y0680750b30310520bt0ju0j40q50ih0mj","0ir0jr0ir0ai01z0jh08506g16e12h0a00ha0ie1jd00500c02q04r04604i04u03d02s00706a06n0850d703y05v0di0k70j30pw0hs0lq","0lz0lz___06w04c___07806p1jc1fc09f0fn___1bn00100202604503i03t03b03h04603606b06q07n0c80350520c20pk0q10rs0hc0ql"],["IM Fell DW Pica",400,1,0,"0g70it0fn09b02w0gs0b803y0yl1rf0aa0bt0e41q100j00j03805904404y04i01n02e00r03m04605b08h02i03l06m0ds0fr0q20dw0ku","0gq0hq0fr0jf02h0gm0c004v0x91fu0920ee0gt1oi00h00j03g05504305504l01n02g00c04i05206r0an03c04o08y0fy0g10pv0es0lo","0ou0ou___06l042___09t04g13j26v0d10bn___1d400a00c02s04803903o03902z03l03g04004n05o0a702k03l0710dr0mn0rr0hx0q0"],["IM Fell DW Pica SC",400,1,0,"0hd0nq0hd07t02w0hd0af04410d1rs0h00bu0e71mq00800d03b05904i04m05301i01l01d03q04e05n08z02j03l06s0dp0gd0q20g70jo","0gr0mn0gr0d402y0hl0a90500xz1d50fd0e60hc1kf00700d03g05504h04q05d01b01u00y04p05f0780ay03f04q08z0gc0g60pv0fr0lo","0ou0pf___06m042___09t04f13g2790er0bn___1d400a00c02s04803803o03902z03l03g04004n05p0a702k03l0710dl0mn0rr0hw0pz"],["IM Fell Double Pica",400,1,0,"0gs0hy0fn0f602b0gs0b003p1791rf0b90au0cf1q800f00g03704n04804v04p01s01v01o03h03x05007901s02w0610da0fp0r70dw0ow","0gk0hl0g10hy0230h60a604t11w0lf09z0dr0g21od00b00g02005l03c04x05z01u01l01s04j05706j09c02s04e08n0g70gj0qv0eh0qw","0o90ou___09e041___09u04e1ii27k0bl0ap___1e700600e02w03m03g03y03e03603d03h03n04k05g07e01s02o06f0dm0mm0rv0gr0rp"],["IM Fell Double Pica SC",400,1,0,"0gs0oa0g70cs02b0hd09903p18s22o0fz0ak0cd1qt00500e03e04r04n04t05401n01i01g03803z05107f01r02s05z0cm0ge0q20f10k9","0gp0lm0g70k502y0hi09b04r12m1b80ca0dv0fx1nj00500e03h04r04l04s05k01e01m01404e05406h09s02o04708m0fr0g60px0eq0kn","0o90ou___09e041___09u04e1ii27k0bl0ap___1e700600e02w03m03g03y03e03603d03h03n04k05g07e01s02o06f0dm0mm0rv0gr0rp"],["IM Fell English",400,1,0,"0ig0kr0gq0ep02b0hv0b003z11n20f0bn0an0d11mx00g00f03705204004i04n02401x01i03k04705g08h02a0390670cx0g90qj0ef0n2","0j80m90h70m40310i10bf04x0zb1qc0cf0cp0g71lc00g00g03k05004403i05b02502301604m05906v0a403604f08d0g30gj0ql0f60qb","0ph0pr___0bq04p___0ar04k1722lu0gx0al___1c000c00b02y04d03d03803j02y03303p03u04q05w09b02d03906h0c90mf0ro0gz0tv"],["IM Fell English SC",400,1,0,"0hy0ph0h30dr02w0hd09903u10j2a90gk0al0cz1np00b00e03f05304j04p05301i01n01603c04505h08j02b0370630br0g70ph0f20m0","0hn0oi0hn0n902y0hk09904x0zs1dt0gj0cu0gm1jy00a00e03i04y04h04n05j01b01n01304k05d0770a503704e08h0fg0g40pq0fp0jm","0pr0pr___0d505a___0at04k1722ln0go0al___1c400c00b02z04d03d03803j02y03203p03u04q05w09b02d03906h0c80mc0ro0gz0tv"],["IM Fell French Canon",400,1,0,"0hm0ks0hm0q402b0ih08r03q1ec21w0a809t0at1nt00a00f03004q04204f04f03601u01i03f03u04p06l01i02h0520d10hc0qp0fl0ly","0ht0it0ht0ng02z0ie09504m14r1cc0cu0da0ep1nr00800g03d04t04504l05k01w02300q04e04x06408602f03w07w0ga0g90pz0fu0nr","0ng0nq___0g704c___08404e1pr2710bd0ad___1fy00300a02u03y03j03w03i03e03h02w03h04j05106g01j02f05u0d90m20rs0hd0rs"],["IM Fell French Canon SC",400,1,0,"0j20m80hw0m102w0j208603q1i02060fi0ae0ax1oa00500b03704q04i04l04503i01h01a03b03u04o06e01f02905c0cd0hc0ow0gr0ly","0ht0kr0ht0k602z0ie08804r15z1ag0e80d70ev1mh00400b03k04w04o04p05h01s01n00o04f05106508002d03y08f0g50g20nx0fu0kr","0ng0nq___0g704c___08404e1pr2710bd0ad___1fy00300a02u03y03j03w03i03e03h02w03h04j05106g01j02f05u0d90m20rs0hd0rs"],["IM Fell Great Primer",400,1,0,"0hx0i80hd0fp02b0ii09u03w15f20p0az0am0cg1nv00h00f03704r03y04d04s02h01t01l03k04505007r0210330640dk0gs0r70eh0le","0i80j90gq0l70210i50ad04u11b1jo0az0dc0fp1m500f00h03h04r04203e05j02f01z01c04l05706f0a502z04d08a0h60gn0qn0e60qc","0ow0ph___0ca05i___09g04d1cs2em0et0al___1e700a00a03403u03c03r03f03403f03b03z04i05608g02202y06f0da0m70rt0ij0r7"],["IM Fell Great Primer SC",400,1,0,"0ij0m00ij0dc02b0ij09903s15x24f0ic0al0cd1nf00700d03l04o04e04f04q02q01i01903d04404z08901y02z0610ch0hd0po0gs0ku","0ik0ny0ik0dt02y0ja09y04t11i1i20ha0d50fq1k900700c03n04m04a04d05f02a01h01804f05506e0a602v04907y0fh0h20pq0gm0kj","0ow0ph___0ca05i___09g04d1cs2em0et0al___1e700a00a03403u03c03r03f03403f03b03z04i05608g02202y06f0da0m70rt0ij0r7"],["Iansui",400,3,0,"0hv0ig0hb07s04m0j40640350rx0rq04x09v0bv1is00000c02705003w04704h03m02701w03103703x06i02s03d05s0c30gy0r30g50j1","0hr0hr0ha0bk04y0jd06e0480sv0mf0260cr0ez1i600000a01u05404004b05b03402h01d03y04b05f09s03p04j08q0ff0hu0qr0fs0jq","0k50k5___0a2057______0370ss0tq01x09t___1bv00000002s04203903g03v03403u03i03303903x06602t03a05p0av0i70rs0ez0lv"],["Ibarra Real Nova",400,1,1,"0hd0j40gs0dk02w0hd0af03f19724009909l0b01kq00c00703904a04104h04m02702802803203o04c06a01j02f0520bf0gt0rs0f20k9","0hq0hq0gr0cy02y0hi0ab04k1271dh08c0cx0fa1jo00c00803c04d04004g05201z02g01n04604t05r08d02i03z07h0fj0h00rr0fr0jp","0ob0ob___0b1058___0620401ku2qc0bb09d___19u00000503303k03d03n03803803i04103r04304k06j01j0280530b50ok0rs0gs0tj"],["Ibarra Real Nova",700,1,1,"0jo0lf0i80fz02b0i30af05d1ni1hn0bh0cb0eo1i300c00802q04g04a04k04b02s02a01w05105j06d08o01w03l08t0hp0hn0rs0gs0ow","0js0js0ja0f302z0hp0ad0621cc12z0aa0em0hg1h400c00902y04i04a04l05102202h01e05k06f0790ae02q0510bi0ig0hv0rs0ft0qp","0ow0ow___0c504n___0840612301v60cu0c5___19100100502m03o03l03t03d03i03p03f05d06106l08z01t0300890jj0p40rs0j40u3"],["Iceberg",400,2,0,"0cq0cq0db0800580hy09v03w0v51c90100eb0h41wk00c00703704t04e04t04h03002g00503v03w03y09l03g03h0dm0kb0hy0ok0cq0db","0dr0dr0dr06i04x0jc0a704k0tg1fj0120hc0j41w100a00802j04v04604h04z03a02u00604i04l05c0bp0480520fj0m10jn0po0cs0dr","0fc0fc___09v06d______04d0v41tn00g0fn___1ih00000002m04603903r03j03a04902z04c04d04e0cc03v03w0dg0pw0q20rs0cq0hy"],["Iceland",400,2,0,"0hy0hy0hy08m06y0gs0b103v0s41bc07l0bg0ez1f700b00703p04u04704m04w02d02j00503u04b04q0f903c03v08l0hq0h30ob0f20ij","0hu0hu0hu07505y0hf0ag04s0te2b508x0dd0ho1f700d00703105604e04t05c02p01n00604l0500770ga04604l0b20hn0h50nz0hu0iu","0k90k9___09y0990f2___04w0ve2mk00h0fe___13i00000002w04103903w03102y04m03604v04w05g0j104b04c09p0q30qm0rs0gs0ob"],["Idiqlat",300,1,0,"0ig0ig0ig0am02w0hw09805e17o1hb0b40da0fu1ix00a00902o05704j04w04o02q02a00c05505k0740at02u04b0940hh0gz0o80g50lx","0is0kr0hs0hw02z0hi09d06113u19g0bh0ev0i41hf00800a02z05504l05205602i01n00805t06f08h0cq03q0570bj0i10h00nw0gt0kr","0o80o8___08804m___09806c1dp1kb0at0eh___17e00200502704a03i03t03803e04203606406m07z0cn03704w0ag0n20ou0rs0j10su"],["Idiqlat",400,1,0,"0jk0jk0iz0aq02l0hu09705y18u1du0d10e20gq1hh00900902k05904l04x04m02t02700c05p06507z0bu03004s0ad0i20h90o60h90n0","0ir0lq0ir0i502z0hh09d06i15s14t0aa0fa0ip1fy00800a02v05704m05205402l01m00806906x09d0dv03x05t0cd0j30h00nw0ft0lq","0pe0pe___07x05s___0980711gi1hk0ca0f2___16100200502304b03j03v03803f04403106t07b0960dv03e05c0bs0p00oz0rs0ks0tf"],["Imbue",300,1,1,"0ad0an0a309g0210ju09i02n0zd1uh00k0c90d52qh00b00a03204504104d03s04602601l02k02n02t04b01o02o0830ih0js0r20980bj","0bc0au0om0r001z0jl0a003s0un1eq0580gy0hl2l800a00b02y04g04404k04t03h02n00703j03w04s07l03404s0dr0l40jw0pw09u0lo","0ay0ay___0ah03h______02o13d1vv0100cd___2is00000002p03o03j03t03d03g03u03i02k02p02v04d01n02j08d0k10q70rs0980cp"],["Imbue",400,1,1,"0as0b20as09b01z0jp09c03515k1mp0140d50ea2mf00b00a02v04604404f04h03t02c01202y03503b04t01p03209l0jj0jj0qn09n0ch","0au0au09v0v301z0ji0a10430x41ay05e0hm0ii2i000900b02v04h04804m04t03h02m00703u04604z07s0340510es0kx0jv0pv09v0jp","0bj0bj___0a803h______0391ak1n40100dl___2ea00000002i03q03n03w03e03k03w03902y03a03g04y01q02z0ah0o00qj0rs09t0cp"],["Imbue",700,1,1,"0ch0ch0ch08501z0ja09304o1ik18u0140fo0gi2as00a00c02j04f04g04t04q03h02h00d04504o04u06i01x04u0ev0mk0ja0pq0bc0e6","0bv0cu0bv0qk01z0ji09f05b13f1dv0590il0it24c00800c02n04i04e04q04t03h02g00805505d06g0a603d06y0i40ni0jv0pv0bv0et","0dk0dk___09i02w______04z1tk1cg0100gj___24k00000002503t03s03z03g03s03z02w04405005806w01w0550g80rs0qq0rs0bj0f0"],["Imperial Script",400,3,0,"10i0xv___0ct03j___0b702l18u0pb0lm06x___2k400h00s03704u05404j03902e02d00v01j02d03003n01401m03205q0dn0pc0v818r","0yo0yo___0hk02z0eb09o04k1290n80j80cv___26q00e00l02h05104w05a03g02t02b00l03i04k05t08n02e03r0730ac0ep0oq0hu1ih","0ow0qx0m00ke02m0n50bn02513p___0ju07008e26e00900l02u03p03u04f03i03u03o01801k02802y03u01101i02i04u0m00q20m01lb"],["Imprima",400,0,0,"0hb0hl0hb07w04m0kr09i03m0sw0rs01m0bw0cs1l000a00802l04p03v04c03q04h02e01903i03o04h08u03903t07u0gm0ij0pf0g50ig","0he0he0he07g0430kz08w04m0te___02a0ej0fg1l400400a01j05604503f04q04w02i01204d04o0650bo04604x0al0i80jg0po0gd0if","0hu0hu___0ck056______03o0t80rs00h0c4___1g200000002b04b03e04603h03804502s03k03p04a0a003903u07y0gb0k90rs0dt0k5"],["Inclusive Sans",300,0,1,"0hv0ig0hv0670570ju09802u0rm0rs02b09g0ab1la00a00702q04i03t04603y04b01z01x02p02x03f05h02j03205m0aa0hk0r60g50j1","0hd0hu0hd07e03v0js08c03x0rc___02q0cn0da1nb00400a01h05003x04a04u04402901k03l04105209903l04d0890f10i80q60ge0ib","0ig0ig___05v05s______02x0rx0rs00009u___1g800000002i04203g03s03j03803k03p02u02y03e05l02j03405p0ak0j20rs0g50kr"],["Inclusive Sans",400,0,1,"0ig0i60ig09204m0ju09803x0tm0rs0660cc0de1j600900802a04v03w04904504202901n03r04104y09303i04708f0gc0i40rp0f00jm","0i70k80hp07j0420k009e04u0tc0ma03r0eb0fw1ia00700902f04z04503a04z03y02e01904j04y06d0d204e05b0ay0i40ik0rh0g60k8","0jb0jm___09i057______0410ub0rs0000ci___1dv00000002104e03i03v03j03b04503203t04204w0b803i04b08i0h40l00rs0du0kr"],["Inclusive Sans",700,0,1,"0k70kr0k708e03r0k70980640w00rs0ad0gd0ha1ed00800a01w04y04404d04a03w02g01d05x06d08d0g605a06m0ex0lz0j40rs0j10mi","0kk0l10kk08a03x0kg09d06p0vq0lf0990hl0ji1b900700a02204v04504b04u03k02e01606d06y0ad0h005r07i0g80n90js0ro0il0mi","0lm0lm___07304m______06d0wz0rs04n0gr___17000000001o04i03p04003i03h04i02h06206i09b0hu05b06r0f60qw0nb0rs0ig0n2"],["Inconsolata",300,4,1,"0fn0fn0g702x04n0j407202f0ru0rs00k08y0a41hs00400c03504i03z04i04903o02s00h02c02h03004n02502j04308u0gx0p50f20gs","0ft0ft0ft04003y0jb06q03x0tx___00k0ct0ej1hb00000d01q05504404n05603h02l00m03l03z04x09w03d04008e0fa0im0pn0ft0gt","0hd0hd___05e05s______02k0si0rs000092___1dp00000002m03s03a03p03v03903o03n02h02l02x04s02a02p0530a90lm0rs0fn0hy"],["Inconsolata",400,4,1,"0hi0gx0hi0570480k407g03l0u30rs02o0bo0dd1ef00400d02m04v03e04i04404002b01l03e03m04f08203203n06w0fj0ir0r70fp0i4","0fu0fu0fu05203z0k406n04e0tw___00j0ea0fz1gw00000d01g05b04304o05803h02n00m04704f05p0b603s04h09t0hi0ir0ps0fu0gu","0hd0hd___05v04n______03k0u90rs0000bj___1d500000002704403c03v03r03b04303503d03l04207x03203p0780h70ma0rs0gs0ij"],["Inconsolata",700,4,1,"0hd0gs0hd04i02w0j407304z0wl0rs04t0fd0gi1gz00300d02a05404b04o04k03d02r00b04v0500690cu04304z0ba0j60ij0pl0g70hy","0gt0ft0hb08c02z0jf07d05i0vc0oa02s0gm0ie1e600200d02h04z04a04s05c03002e00605a05n0860e204p05r0d70jj0i50p40ft0hs","0ij0ij___08l02w______05d0wp0rs0000fj___1at00000001u04e03f03y03n03f04k02m05605d06j0eg04g05m0cy0qf0oe0rs0f20jo"],["Inder",400,0,0,"0hd0hd0gs08004n0j407m0440v70rs05c0d80ec1hy00400902b05104704r04f03i02w00d0400470520ao03g04108s0gv0hz0ph0g70jo","0hr0hr0gs07b03y0jh08804y0uy0nq04t0f20ga1gl00400902j04y04304n05303802r00604r05106b0d304a0550ap0i70i40ps0gs0jq","0ih0ih___0a9057______04e0uv0rs03l0cx___18i00000001x04h03f03w03j03e04d02u04a04g05d0cz03s04d08k0ii0m20rs0f00lc"],["Indie Flower",400,3,0,"0gs0g7___06x01q___0im02t0qx0td0av08t___1se00900903n05t04z05r03l02b01400402h02t03r07502j02z04e09b0bv0jp0dw0hx","0j30j3___0j701x___0hp0440sd0h80dw0ce___1mq00900802t06304r05o04c02b01700603j04406n0av03n04806u0cb0cs0k80fa0pr","0hx0j30hc0b101q0ml03g02m0q00qv0ai08o09d1kh00000203o05504a05a03r03x01l00502e02p03p07002g02u03z08d0dc0m30eg0le"],["Ingrid Darling",400,3,0,"0ms0r4___0by02w___0eg02f0td0u90bl08b___2iu00n01203804w05004g02p02v02600t01u02d03204d01q02d0430740b10nt0g60xh","0gu0qq___0om03h___0df04h0v20sv0a40d3___1x300m00r02t05805104m03d02x02300f03i04n0710ap03b04x08s0cv0by0ol0eu0zm","0h30u3___0h802b___0dy0290st0sb07l08l___29500b00q02o03r03r04b03j03v03l01b01s02a03004h01p02803j06a0jd0q20eh0u3"],["Inika",400,1,0,"0hd0i80hd0bo02b0j408r03p0zf1yj06d0c60cx1np00c00i03304p03v04704c03u02900q03k03u04w09b02o03606f0ds0ij0q90fn0lf","0i40j20h60gu01x0jl08c04i0w00r605f0eg0fu1ma00600h01p05503q04104m04m02h00v04e04r06x0b203g04b08u0gr0j40qq0f90lx","0jm0jm___08602w___06l03u0xf23f03d0c6___1g800000b02m04803703g03703e03o03s03r0440510ac02u03i06y0dn0ns0rs0du0nn"],["Inika",700,1,0,"0k70mi0hl0ci01q0k709a05i10w1ic0850eu0gg1jj00b00j02f04w03s04303z04g01v01j05d05s08t0d903x04w0b20k00jp0rr0hb0nn","0jk0kj0gn0v001y0je09705z0zf18n06a0gl0ig1j900900j02p04v03z04905403d02500o05t06c09t0ef04e05q0da0jw0iz0qq0gn0nh","0lm0lx___06j02l___07605h0zd1ib04n0g1___1db00100b02404i03f03l03a03l04202y05e05r0970dn0410580b00n80p00rs0gq0o8"],["Inknut Antiqua",300,1,0,"0hx0k90gs07t03h0hd08603x10y1vs0bu0ay0dh1md00b00f03405604d04q05101u02e00f03t04105a08402g03e0660dk0fm0pg0fm0k9","0hn0jl0gn08003x0hf08a04r0xc1gx0an0dp0gy1ld00800h03705304b04n05i01r02900e04m05206j09p03c04l08b0fs0g00po0fo0kk","0l50lr___06l04p___08803y1261zy0c80b3___1gd00400903304h03q03o03v02y05i00703n04005208f02c03606e0bv0iy0pa0it0oo"],["Inknut Antiqua",400,1,0,"0ij0ku0h207h03h0hd08604811g1s80cf0br0e31m500b00g03005904e04s04z01v02e00e04504e05u08u02m03n06s0ek0fn0pg0g70ku","0hn0jl0gn0bj03x0hd08b0500yg1fm0av0ed0hd1l200900h03505404b04o05f01s02900d04t05a06v0a303f04r08p0g50fz0po0fo0kl","0lc0lx___06n04m___08504b13e1vk0c80by___1g200400902w04g03o04503a03h05e00504004d05j08w02i03f06w0d50j90pd0j10pd"],["Inknut Antiqua",700,1,0,"0k80ly0is07402m0hc08505y14316o0gk0eg0hb1id00a00i02k05i04j05004p02002e00d05q06908d0cn03k05509z0hh0g60pf0hc0mj","0jn0ll0in0bw02y0hd08b06k12p15r0gf0g10j81gq00800i02t05904g05105301v02b00b06706y0940du04a0630bw0i00g20pp0ho0ml","0n50nq___06903r___0870641771iy0g40fi___1d700400a02f04r03t04603d03o05600405y06d0860cd03c04x09p0kg0ll0pg0ku0r7"],["Inria Sans",300,0,0,"0er0f20eh05y0580i608602q0sk0rs0160ac0bt1qr00700802x04n04d04r04m02v03000a02l02s03706b02i02t05c0cu0gx0ph0dw0fn","0eu0fc0eu07803y0ic07l03z0se___0130de0fm1qd00200b01m05a04e04y05h02n02t00903k0400500a403j04b0910fw0hr0po0dv0fu","0hb0hb___05506x______0320td0rs0000ah___1gd00000002c04003f04303j03503o03m02z03303i05r02q03506g0ej0kz0rs0f00ig"],["Inria Sans",400,0,0,"0f20fn0f208e0580ij08503j0t40rs01l0cv0ea1pn00600902j04y04d04r04k02y03000903e03l04809i03a03o08e0gs0hk0pi0dw0g7","0fn0gm0fn07k04e0ja08b04j0sw0mv01m0fa0gw1mo00500902j04u04904p05302x02t00a04a04k05w0cd0480500av0i60i00pq0eo0hl","0hb0hb___09s06c______03y0tq0rs0000d2___1fe00000002004903h04403j03804403403u03z04j0as03n0450950m20m60rs0cp0j1"],["Inria Sans",700,0,0,"0g70gs0g707a04n0j408504r0t50s302o0fy0h11nn00600a02705604c04s04j03c02t00904l04u0650de04e0510cb0j40ij0pj0fn0hd","0gn0hn0gn06y03x0jb08b05k0u40lj01m0h40is1jg00500a02c04x04904p05303902m00905905o08c0dy0500650e70kr0iv0pq0fo0hn","0hw0hw___09205s______05b0tg0rs0000g9___1c100000001q04h03i04503k03c04g02n05605d06v0f804z05t0ed0qc0nu0rs0du0k7"],["Inria Serif",300,1,0,"0g70g70fn0870420i608602o15d2gw05w09a09u1q600a00803k04804504i04703e02y00d02k02r03304v01i01y04109s0hg0pj0eh0jo","0gm0h30f707j03t0ir08203z0zp1jy04t0db0e31pp00800a03f04804004e04s03r02l00703o04304q07n02l03g0770fw0hf0p10f70j0","0hv0hv___09l05s______02z1b22eb01d096___1io00000003703g03d03t03c03a03l03u02s02z03a04q01k01y04x0af0oc0rs0cp0kr"],["Inria Serif",400,1,0,"0gs0hd0g707x03r0ij08603g1ec22305w0ah0b41pm00900903a04c04b04n03z03j02v00d03d03k03u06201k02905h0dy0hz0pj0f20k9","0h60h60h608603t0is08504g14m1hm04x0dz0ew1os00800903704b04204i04m03h03000604b04j05708302j03u0860gz0hk0p30f90k1","0j10j1___09a05s______03u1lw21403b0ak___1ht00000002w03j03g03u03b03f03o03p03h03u04605t01n02706e0eb0ou0rs0du0lx"],["Inria Serif",700,1,0,"0hd0hn0h309002w0j408604n1pa1os0600ck0dh1of00800902z04f04d04o03x03t02s00d04g04p05107e01q02u0820hw0im0pj0g70lf","0h60i40h60ft02v0iu08305f1da19n04q0fl0gb1ny00700903104d04704k04l03n02t00705305g06309702j04a0aa0ix0ii0p20f90kz","0k60k6___08y057______05622g1pa0490ci___1gi00000002l03l03l03x03d03k03t03e04k05605h07g01s02p08s0m40pi0rs0f00n2"],["Inspiration",400,3,0,"0b0083___0hn04n___0dc01r0pd0sl0bx06z___2ps00o01n03g05204y04e02p02c01x00q01j01u02b03401f01z0380600ak0kf0830j3","0ry_________05s___0ba03u0s40uc0rs______1xb00j01703305a04y04k03a02d01u00r03203s05u08h03004e07q0cd0cf0l90m50xq","0cq0cq___0l604x___06y01q0rh0vq02b06i___29000901f02t04603x03s03h03q03m00p01i01t02803401b01s02y0570fs0oi0990j4"],["Instrument Sans",400,0,1,"0ih0j20ih08e04m0jn08303k0sw0rs06y0bb0c71lg00500902b04v03z04804703u02901r03f03o04g08103303q06f0eb0i00rq0gr0jn","0ip0jo0i708c03y0jj08904h0sq0mf06f0dx0ez1kw00400902f04s04004905203702j01704904m05v0bz04304s09c0gd0i50ro0gq0ko","0jn0jn___0a904x______03m0ta0rs03j0ay___1er00000002504a03g03v03m03704103803h03m04d08903303q06c0cn0ki0rs0f10ly"],["Instrument Sans",700,0,1,"0kt0kt0k80cb02w0jn08306b0yv0rs0990gg0hl1h200400a01w04z04804e04g03j02k01e06206f0870gb04u06b0ea0lm0j20rs0hc0np","0kq0lq0jr0f902z0jh08b06w0y00kr0990he0jn1en00400a02304w04804f05203302l01206h0720a10gs05c06y0fn0mh0j10rq0ir0np","0ly0ly___0an02w______06a0yn0rs05b0gg___1aj00000001p04g03n03y03j03i04j02j06706e08e0i304u06c0dn0qg0nq0rs0fl0np"],["Instrument Serif",400,1,0,"0dv0dv0da0p101q0jn08302z12x21104209x0bc27c00800902z04904104b03x03w02001y02p03003a04v01j02i05s0e30im0rr0c50gr","0f80gp0d90w402y0ji0870450xj1e609k0dr0gk25300700a03104d03y04a04q03e02701g03s04604u07402x04809j0i40j00rq0bs0tg","0eg0eg___0hm03h___08603116e2dt02o0a9___21600300302s03j03j03p03g03f03l03o02l03203a04k01i02e06b0cs0p30rs09u0hx"],["Intel One Mono",300,4,1,"0hw0hb0i604h06c0i409802s0tx0rs09t0990ax1as00b00603804m04604l04w02l02u00f02n02v03m06h02c02p04809d0ft0ph0g50ih","0hc0hc0ia04704t0il08i03y0tx___06f0ch0ep1b800600901p05b04004k05j02t02p00s03n04205f09z03803z0750dh0gh0p50gd0ia","0j40j4___06o06y______02z0ut0sq00009f___17e00000002q03u03b04303f03603j03r02w03003j05k02h02v0570ao0jz0rs0hy0k9"],["Intel One Mono",400,4,1,"0i60hw0j106l0570ih09803t0vi0rs09s0c10ds1a800b00802p05104604k04u02t02t00e03o03u0500a603503l06h0et0gq0pm0gq0j1","0hc0hc0ia04304t0im08g04l0uj___07h0dx0gm1aa00600a01h05j04504m05i02r02m00q04b04o06h0c903w04i0940fq0hb0p60gd0j9","0jo0jo___08s063______0410vy0sc0000c5___16p00000002904a03d04203f03804403403y04304w0ac03d03v07r0ii0lp0rs0gs0k9"],["Intel One Mono",700,4,1,"0jm0j10k703e04c0j10980610wz0si0ap0gp0hy17400900a02805c04b04p04n03402n00d05w0670930gf05005v0dk0kr0hx0pn0ih0k7","0iq0iq0jq03703y0ig09906l0x00kx0ap0hf0jw15800700b02f05904f04z05602m02b00706a06t0bu0gk05e06k0ej0kw0hz0p40iq0jq","0k90k9___06r058___05s06g0xc0sq0000ha___12t00000101u04i03j04203g03f04i02h06c06i08o0hc05c06k0fe0rn0oi0rs0j40lf"],["Inter",300,0,1,"0hy0i80hy05e0580ku08102z0r10rs01609r0au1kx00500802h04p03s04c03o04k02601s02w03203o06502q03a05i0bn0il0ra0g70ij","0ii0ii0i00720440l307u0480rr___01o0d50ei1jr00100b01e05903004f04l04z02f01f03v04b05e0a603q04n0880ge0jj0rm0gg0jj","0j40j4___06n05s______0310rb0rs00009q___1f800000002904903f04203b03704003b02y03303m06902q03b05k0aw0jt0rs0g70lf"],["Inter",400,0,1,"0hy0ij0hy09c04n0ku08403u0sw0rs0310c60d71jr00500902704w03t04a03q04i02d01l03p03x04s08m03g04407n0gg0j40rh0g70jo","0in0in0in08d03x0l908804n0sr0n104d0el0f11i700400902b04s03u04a04g04402g01904g04q05w0c60490520a00ie0jt0ro0go0jm","0j40j4___09y05i______03v0sw0rs0000c1___1dn00000001z04g03h04203b03a04c02w03t03y04n0ad03h04707i0fm0l20rs0fn0lf"],["Inter",700,0,1,"0k90ku0jz07g03h0ku0840610xa0rs0a50g80hj1gd00400a01v04z04404d04204502k01d05v06407l0ey04x0660ed0lc0ju0rs0ij0m0","0jp0l60jp07303y0l908906j0x20m70930hj0ih1dp00400a02204u04304b04r03s02i01406b06o0910g705b06u0fp0mf0jy0rp0iq0lo","0l40l4___08z042______0620vy0rs03x0ga___19g00000001n04i03o04203e03h04o02e05x06a0800h905006e0do0qi0ne0rs0gs0n5"],["Inter Tight",300,0,1,"0hy0hy0hn05j0420ku08402v0qs0rs01609j0ai1om00500902j04n03s04b03n04k02601t02s02x03i05t02n0360570aw0il0r80g70ij","0ii0ii0hh08b0330l307u0470rm___02q0d50ee1n900100a01e05803104f04l05002f01f03t04905b0a303p04n08g0g30ji0rm0gg0jj","0ij0j4___05e04n______02x0r10rs00009b___1hx00000002c04403e04403a03504003f02u02y03h05s02n03505d0ab0jc0rs0g70lf"],["Inter Tight",400,0,1,"0hy0i80hd09u0370ku08403n0sd0rs0370bq0cu1oy00500902904w03t04b03q04h02d01m03j03q04m08j03b03y0740g30j40rf0g70jo","0im0im0hn0fr02y0l908604j0sa0mb0360e70f91nb00400902c04t03u04904f04402g01904d04m05t0c104705009w0hk0jt0rn0hn0kl","0it0j4___0a1042______03p0sg0rs0000bl___1hy00000002104f03g04403c03804b02y03n03r04j09b03b03z0740et0ky0rs0f20lf"],["Inter Tight",700,0,1,"0k90lf0jo0b902b0ku0840660xa0rs0930gi0i81ix00400a01u04y04604e04304402k01c06106b07y0ff05106d0ef0lo0ju0rs0j40m0","0km0ll0jm0by01z0l608706r0x80lr08a0hm0iu1fx00400a02104t04504d04q03r02i01406g06w09t0gj05f0730fq0m10jw0rm0in0nk","0lf0lf___08602w___02906c0wt0rs03l0gi___1au00000001m04i03p04203e03i04n02d06406h08k0hl05606l0e00qu0nr0rs0hy0n5"],["Iosevka Charon",300,4,0,"0en0en0en04q04p0j808l02o0q00rs0150aj0bu1rg00a00903g04604303l05203c01w01p02m02p03805702h03405r0eg0hw0r80e20en","0en0en0fm05o03x0k708z03u0ry0ni0130dm0f21qp00700a02m04l03v04304u03n02301n03i03w04s08v03e04h09a0hl0j00rm0en0fm","0en0en___04v04p______02o0qs0rs0000b5___1rk00000003303m03i03h04503e03c03b02m02o03104m02g03606j0ie0mm0rs0e20en"],["Iosevka Charon",400,4,0,"0em0em0em06704o0j808l03a0rb0s10130ct0e61qs00900a03304j04403p05503602101j03903b04107803103v0850hp0if0rd0e10em","0eo0eo0fn06103x0k709004a0rm0we0130f70gm1q400600b02f04p03y04604w03f02a01h04204a05j0ak03y0550bl0jc0j10rn0eo0fn","0dw0dw___06i04n______0390rv0rs0000de___1rn00000001z04503l04103k03f04602x03803903p06i02y03y09j0o10nv0rs0dw0eh"],["Iosevka Charon",700,4,0,"0f80en0f806n0440j808l04j0tc1380120g90hq1ps00800b02o04t04803t05703202601c04i04k05n0ae04105k0ds0mi0ip0rs0e20f8","0fp0ep0fp05n03x0ji08e0570t40vp0130hp0jh1nr00600c02804r04404b05003a02f01805105906y0cv04o06i0fm0mx0jq0rp0ep0fp","0eh0eh___08e042______04h0uh0s90000gz___1pa00000001p04a03p04203k03m04g02h04g04i0580ac03y0640fd0rj0p00rs0cq0f2"],["Iosevka Charon Mono",300,4,0,"0en0en0f80390430j808l02o0q40rs0000ac0c51nh00a00903h04604303l05103c01v01q02m02o03805402h0340590ec0hu0r70e10f8","0en0en0f404603w0k708y03v0sl0nd0000dm0fe1mb00700a02l04k03v04304u03n02501n03l03w04s09103e04g0990hu0jo0rn0en0fm","0ds0ds___046056______02m0qx0rs0000bb___1n700000002703x03f03x03p03e03q03l02m02m03004t02f03406f0i70n60rs0ds0ey"],["Iosevka Charon Mono",400,4,0,"0ed0ed0ey05w0410jj0890390rd0rs0000ch0ec1n300700b02804r04004704603x02a01q03903b04207a03003u0890hw0il0ro0ed0ey","0eo0eo0f604r03x0k708e04a0re0t50000f00gq1lm00600b02f04p03y04504w03f02b01i04304a05i0au03y0540bk0jj0jp0ro0eo0fo","0dw0dw___06l04n0fb___0390si0rs0000dg___1n300000002004503i04203m03g04502x03803903p06l02y03w0970o20nw0rs0dw0eh"],["Iosevka Charon Mono",700,4,0,"0f70f70f705d03i0j808k04k0to1b70000fs0hu1lq00800c02o04r04803t05603302701d04i04l05k0ap04105k0e40mp0j00rs0em0f7","0f70eq0fp04e03x0ji08e0580tj0ur0000hj0jx1j700600c02904q04304c05003902g0180510590730cz04p06d0fp0na0jq0ro0eq0fp","0f20f2___06l03h______04h0uq0se0000gv___1ky00000001p04a03o04103k03n04g02h04g04i0590al03y05x0fg0ri0p40rs0eh0f2"],["Irish Grover",400,2,0,"0ja0kf0hl0ru02a0h008205l1761bi0990ff0di1ni00600c01t04t04d04s04q03402w00t04l05p0750ad03004g09u0ge0h10q60h00nt","0ka0ka___0mo01z___07h06a1310zi09x0he___1ix00300c01m04v04i04w04u03402x00n05a06e08b0dc04105u0c80jp0h40q00ht0vo","0mx0mx___0oc02n___02y06a17n1pv0990fc___1hj00000001u04e03r03f03v03804l02q05g06j08a0bs03k05j0bs0oc0py0rn0it0rm"],["Island Moments",400,3,0,"0ki0qy___0pw03j___0e202h0wi___0cu06f___21q00g01403c05504x04w03a02n01n00f01x02m03d04j01h02403h0520cw0ma0h012o","14c14c___0ew04t___0d304p0w50bv0m809x___1n700d00q02s05504v05e03i02p01w00h03t04r06g0a803004a06n09r0e90mu0uq1fv","0wz0ze___0a0030___09002o0y5___0ku06f___1di00a00u02v04203103u02w04g03s01t01y02r03s05a01k02603b04x0jf0pu0ms13l"],["Istok Web",400,0,0,"0hb0hv0hb09i0410k708303z0vj0rh03j0cg0d61jl00500802b04q03x04c03u04602c01t03q04104o08e03b03v0890hf0j20ro0fk0j1","0i80i80h80800420k408e04t0ug0lb03r0el0ft1if00400902k04q04603d04p04202h01e04k04x0680bu0450520az0if0jj0rm0g70j9","0jm0jm___0aa04w______0440vy0qz02m0cj___1cg00000002504903d03x03l03704603704004904v0ap03h04107w0hz0m40rs0du0lx"],["Istok Web",700,0,0,"0jm0k60j107n0410k808305z0x50rs06y0gc0h61fe00500902104v04304f04103y02i01j05p06107d0f204r05x0f40mr0jo0ro0hv0kr","0jk0k10j207603x0l508806j0xs0jf0810h40i61ca00400902504q04104d04r03o02g01c06806o09j0g505906t0g40n60ju0ro0il0li","0k50k5___09604m______0640xd0q703x0gl___17n00000001s04g03i04003k03d04k02m05x06a0870h90520620e30qh0nx0rs0g40n1"],["Italiana",400,0,0,"08209s0820hk02w0i009o02y1xw0rs00f0al09e1ta00900d03604t04x05204h02w01o00702t02y03c03j00r01g04n0c90el0jf07i0ez","09x06y0cw0j502z0jh0a804d19x0p403b0fh0c31nk00700a02q04r04s04t05003801i00k04104d04q05d01w0470aq0io0ez0jz06y0gu","0bj0bj___0dc041___08403n2ct0rs00008q___1iv00200602j03x04304403r03t03802403903n03o03x00s01o05w0c60gc0rs08n0gp"],["Italianno",400,3,0,"0gs0gs1ex0yh04n0cq0fp02i0x71b20d307f0a12kb00f00d03n05k05c04z01t02i02p00i01z02k03604d01l02403z05z0ce0ow0cq0tj","1d614h___0ai04u___0f104l0wj___0rs0bb___1ug00g00e02506705e05d02802i02o00i03n04j06e09r0320490750a40co0o813j1wg","10610626f10j04n0kx0g702v1151190hv06y08p1i800800803j03z03903w02k03h05001n02702y03g04m01l0260440600kz0q70gs2a6"],["Itim",400,3,0,"0jd0jy0i707j03j0ht09s04u0ua0ti0ah0ds0fn1i100a00902n05804g04505e01v02y00n04m04x06i0d504504w09n0g80g60q10h10lq","0j60jo0hp07902y0hv09h05l0v10ij0930fk0gw1fx00600a02605804e04t05a02702t00h05605q07u0ea04r05s0bu0gx0gw0pr0gp0lm","0la0la___09604m______0570uc0ru04v0du___18700000002204i03h04203d03b04o02d04y05906u0f504h05a09j0ja0lk0rs0gp0o6"],["Jacquard 12",400,2,0,"____________02d0i107y05b1ft1um_________1k600g00z04504i03x04705101f02501005b05b07t0ab02u05607t0if0fc0pb______","0jt0nr0it09d01z0ii07g05y12f0co0ez0hg0hf1gf00200k02005m04504h05d02e02e00v05j0670a30f703v05i0ec0jo0h50qv0gu0pq","0n60pi___08k02b0na07004w1fy0rs0dd0el___1ps00200e01q04h03c03g04a03j04702c02o04w05909i02m02u04x0ib0pi0rs0ik0q3"],["Jacquard 24",400,2,0,"0i80i80i808y02d0i907b04u14b0rt0an0fk0f71qw00400m02g05e04503w05h02b02c01204s04u06109c02l03x08t0j00h80qm0dj0my","0iq0no0hr0g401z0ja07c05t0y60r308i0hs0hz1js00100k02405d03w04a05e02w02901205f05z09c0e204505v0fc0jw0hz0rm0gr0pn","0nj0nj___08o02d___07b04t15u0w505s0fr___1ph00200e02804b03c03d04703404i02d03204t05z09c02l03p05y0in0pj0rs0fw0op"],["Jacquarda Bastarda 9",400,2,0,"0if0if0if0ah02w0it09903e0rn0s90ca0bq0cc1my00h00m02j05803s04c04d02l02f01h03e03e03t06h03e03f05d0ck0fk0oy0fj0or","0j60j60j60a501z0ii0a604j0rf0x40d90f50g11mq00d00p02k05503p04605f02c02d01304e04m06p0b504d04u07x0eu0gz0qv0fq0pk","0os0pc0bj06x02b0me0890340rs0ry0gf0b80f91m900900n02d04e03a03w03e03q05p00603403405u08l03303405u08l0mg0pb0lw0uj"],["Jacques Francois",400,1,0,"0gs0jo0g70as0370gs0af0401bg21o0b80aj0d11kq00k00k03f04l04804m04q01q01r01m03p04705407j01s02t05z0dq0g70rs0f20lf","0gz0ij0fy0co0440h009u05115a0tw0aq0dw0gs1iz00c00n02405i03e04s05u01u01y01f04q05a06i09q02s04e08m0ga0gk0rp0ef0mn","0ps0rk___07l04p___08r04h1kq2db0ez0af___1bc00900d03203r03k03b03y03802v03h04304m05b07j01q02o0610cr0ml0rt0hl0sq"],["Jacques Francois Shadow",400,2,0,"0jo0mb0i708d02d0hb09x01n0ul0s50f40a60c530600j00o03304s04804105801o01x01p01902903303v01601k02u0680h50rp0gg0ni","0jf0kc0gn0tc02s0i708104b0so0ia09t0f30hu29500900n01y04w04y04c04x02e01r01q02s04h06h0be03d05009m0gj0ih0rr0et0o1","0r40rp___061041___08301n0vl___0hs0a1___2ke00600e02c04503f03r03103d03n03m01801x03303u01501i02n0590ou0rt0lc0tf"],["Jaini",400,2,0,"0eh0eh0e60fh02b0ik0870490ux0rs03e0fm0g425b00500b02105204j04u04m03n02d00a04604b05o0a903i04h0av0i70il0oj0db0g7","0dw0ee0cx0n30200jb08c0500t90d60590i60ir20b00200b01u05204j04v05c03j01y00c04s05406y0bn04j05t0en0kb0ix0ou0cx0gv","0g60g6___08s03h___06r04v0wf0q00100gm___1r900000301e04a03m03z03g03j04k02w04r04w06b0br03z0540ct0ps0pz0rs0f00hb"],["Jaini Purva",400,2,0,"0eh0eh0e60fh02b0ik0870490ux0rs03e0fm0g425b00500b02105204j04u04m03n02d00a04604b05o0a903i04h0av0i70il0oj0db0g7","0dw0ee0cx0n30200jb08c0500t90d60590i60ir20b00200b01u05204j04v05c03j01y00c04s05406y0bn04j05t0en0kb0ix0ou0cx0gv","0g60g6___08s03h___06r04v0wf0q00100gm___1r900000301e04a03m03z03g03j04k02w04r04w06b0br03z0540ct0ps0pz0rs0f00hb"],["Jaldi",400,0,0,"0g40g40ge08s04m0j508603m0uh0rs0110c40dm1mo00700903804i04904n04a03a02s00f03h03o04f08d03503n07u0gj0hj0ph0ey0h9","0ht0ht0hb07603z0kg08d04o0tm0km01m0e40gb1je00500a02g04q04104f04r03l02g00z04h04r0640c90470510ax0is0j40qw0fu0it","0h90hj___0aa056___04z03y0v20rs0000bx___1d900000202q03z03f04003e03a04902q03t04104s09803d03z07t0i80ke0rs0ey0l9"],["Jaldi",700,0,0,"0h70h70h706w03g0j708005x0wf12c05c0hb0iv1jt00600a02n04z04e04r05302k02l00e05s0610830ep04v06m0fz0nr0im0po0gm0ic","0gt0gt0gt07d02z0je08806g0vn0k903a0i30k61g900300b02805004e04u05503902f00606806l0ad0f905l0820gz0ms0iw0pt0gt0is","0ju0ju___09203z___04j06d0wg0qz01y0ha___19k00000101l04f03k03z04303g04k02506b06i09e0go05g0750gb0r30nu0rs0hl0mo"],["Jaro",400,0,0,"0ha0hv0ha06k04m0mh07k0700ym0rs01m0ko0ld1kb00300902804j03y04d03p04a03701906z07b0850fc05r0dh0nh0sd0n10rs0g50j0","0hq0hq0hq06g03y0n407f07h0xx0lk01m0lr0ln1j700100901x04h03z04b04d04803801207b07i09h0fv06b0fl0n60rq0mv0rr0fr0ip","0ig0ig___08s04m___04307c0ye0rs00g0ll___1ed00000102504803l04403g03j04h02a07b07c08w0g005y0c20rj0sd0ql0rs0co0j0"],["Jersey 10",400,2,0,"0jm0jm0jm05m02b0md05u05u0rr0rs01m0iw0jg1gf00000901v04u04004803p04m03401905u05u0ah0ji05u0630gv0p50mg0rs0hb0jm","0jv0jv0jv0as0200lg06d06i0sj0kz0920j00ka1de00000702204t04104c04n04j01u01e06a06p0dh0iq06c0800i90of0lu0r40gw0jv","0jp0jp___06b02b0h305y05v0rq0rs00i0jo___1cx00000201n04d03s04103d03j04o02d05u05v0bd0gx05v08l0kf0ry0p10rs0hd0jp"],["Jersey 15",400,2,0,"0it0it0it06o03f0ko07k05u0rr0rs06y0jq0ji1fa00300901r04x04704605003r02601k05u05v0aa0gv05u07o0gw0pu0ke0rs0h40it","0ip0ip0ip06h02y0kd08906e0rc0kt09m0kf0ki1dp00300901z04q04b04805103q02h01006a06q0cr0hf06g08x0iu0pt0kq0rq0hq0ip","0it0it___07q03f___03t05u0rp0rs00h0k3___1d500000101i04a03o03x04103m03w02w05u05v09q0gv05v07p0km0rx0q20rs0gj0it"],["Jersey 20",400,2,0,"0ij0ij0ij06h0420kf07k05x0ru0vm01m0jp0jh1io00300a02g04t04004904204202k01905x05y07s0gi05x07b0ih0pw0ku0rs0hd0ij","0hv0hv0hv06z03z0kg07g06b0s40lo03a0kj0kb1il00100902304w04404b04v03s01y01k06706f09n0gg0640820iu0pe0k40rr0hv0hv","0ij0ij___04d0420nc04r05x0ru0rs01i0jp___1ea00000102504903l04103c03l04l02905x05y0a30h305x07n0mo0sa0qa0rs0hd0ij"],["Jersey 25",400,2,0,"0hy0hy0hy06r0420kd07j05x0rt0x001m0jf0jm1ik00300a02d04t04104c03z04402l01905x05x07y0g205w0710j70qb0kw0rs0hy0ij","0i70i70i709f03u0kn07706b0s40ly03h0k90k41gn00100901z04o04204604k04a02h01d06606f0bo0gj06607w0iq0p80l10r10h90i7","0i80i8___04n0420n405705x0rs0rs01i0jl___1cv00000202404c03i04203b03h04n02b05x05x09f0h205w0770mt0s80pn0rs0hy0j3"],["JetBrains Mono",300,4,1,"0fx0g70fm05006d0ku06y03d0ta0rs00j0bs0dk1dx00300b02f04r03m04403r04u02501t03b03e04007x03203l06x0h50jp0rs0fm0gs","0gn0gn0gn03d05w0la07a04d0s70ms00j0em0fu1ck00200a02f04q03o04504e04l02801d04704h05g0bu04304y0ah0il0jw0ro0gn0hm","0fm0fm___07606d0gc___03d0td0rs0000cg___1d200000002704803c03t03j03904303d03a03d03u07f03203m07f0le0nv0rs0fm0gs"],["JetBrains Mono",400,4,1,"0gs0gs0gs03o05s0ku06y03q0tj0rs01m0cl0eq1dl00300a02804s03q04703t04t02901o03p03t04i09r03f04008l0io0jo0rs0g70hd","0go0go0go03804w0la07a04n0sq0qo00j0ez0gj1c400200a02c04p03r04404g04h02c01b04i04r05v0cg04a0550b90j70jx0ro0go0hn","0g70g7___08u06d0g7___03q0tr0rv0000du___1cz00000002104b03d03v03m03b04903303p03q04d09s03g0430910ni0nx0rs0db0gs"],["JetBrains Mono",700,4,1,"0hx0hx0hx03904n0ku06y0520uh0rs01m0fm0h31cv00200a02004z03u04904304h02e01h05105406b0de04h05d0co0l00k90rs0hd0ii","0ho0i60ho03103x0l907b05t0uq0m001m0h50i919t00200a02504t03u04704t04602d01605j05x0860f10540690ei0lb0k00rp0ho0io","0hx0hx___08404n______0520tz0s30000gn___1as00000001s04g03g03x03l03e04j02p0510530600ea04j05j0d90qw0oz0rs0eh0hx"],["Jim Nightshade",400,3,0,"0e60dv0fm0wr0160lz0ii02v0ws0vu08c0ah0aa2eg00f00e02d05j05805m03z03000z00c02f02w03g04u01x02r05u0bx0dv0ln0az0le","0ew0j7___0qf01x___0in0470u90m906h0dv___22o00d00e02005k05705p04i02u00y00b03m04805q08f03604p09s0f30ei0m10ch0n1","0h70h7___0ee02v___06s03g10f1qx03r0a0___1ow00000302a04i03v04903q03205900s02v03i04c06i01z02y0600cc0ji0ps0ew0mc"],["Joan",400,1,0,"0gs0j40fc0h602b0g709u03911923u09909z0c81va00g00h03l04z04i04y04o01m02b00b03703f04c07902202r05s0be0er0p00db0jo","0fx0hx0dx0p30200gh09j04e0yn0td08k0df0gu1tz00a00j02505r04q05705501802700n04504k0600900330440810ez0f30ou0cy0ix","0l40lf___0dg042___08p03q15n28c0b40a1___1f900600803503v03f03p03d03403503o03k03r04q08202902t06a0b80j90rs0f20sy"],["Jockey One",400,0,0,"0g70g70g706o02m0jo06k05r0w81ea0130hr0ju1ta00100b02k04p04904g04303q02e01b05n05t06m0dg04z0850ja0qh0jy0rs0eh0hd","0gq0gq0gq0a201z0kb06e0690wr0lm03m0iw0kj1pf00000a02704p04904h04s03n02d01406206c08h0dv05a09i0jg0pn0jw0rq0er0hp","0gs0gs___06902w___05805w0vn1e50000if___1ml00000102704403o04303g03j04c02e05s05z0700dp0560930lf0sb0p40rs0eh0hy"],["Jolly Lodger",400,2,0,"0bl0bl___07z01r___06y03x0nw0jk0000gr___2bi00000901c03u04l04m04304j03c01903m04504x08h0470730f80n70jw0r70af0db","0gd0ev___0h802z___06g04p0oy0e407h0j7___1ys00000601503p04o04q04x04g03400y04e05408u0bm05608v0gs0o00k20r10bw0ps","0co0co___0ai02b___03g0420m00gb00j0hd___26100000001b03q03v03z03f04205302e03v04f05h09604o07h0g80q00pb0rn0bi0dt"],["Jomhuria",400,2,0,"0if0iq0hk0ip01r0i907907d17u0rz0880jb0k41o700200b02505704x04f05b02w02800c07707j08m0eq04p0a20ie0p70i80p90ft0kh","11c0zs1xf0nd08f0io07q08e1540mk0hd0lf0lc18u00100b02e05b03r05c05e02f02k00a08308v0fo0ko0620d70j20pa0j10pj0k026w","0l30l3___0bx02c___07m08c14a0zl02m0ks___1dp00000201o04a03x03l04703t03t02i08208k0ab0gq05u0bx0pw0rs0q00rs0gz0mu"],["Jomolhari",400,1,0,"0ij0j40ij0cm02m0j408z03u18d1ss09g0af0by1k900a00803104b04104a04303e02602103l04204x06y01u02w0640e60i00rs0gs0ku","0ho0i60ho0a002y0jg09704m11q1bj06t0e40ff1l000900903104903y04704q03c02801m04f04z05w08o02r04608m0i50iw0rq0fp0mk","0ob0ob___07q058___07d04j1i920l0aq0aq___1bv00100202s03k03g03s03e03e03n03p03p04m05707l01y02t06l0dx0of0rs0hy0r7"],["Josefin Sans",300,0,1,"0f40ga0ej0790580ej06z0290r70rs07p07t0af1pp00300a03904x04p05204302702e00v02402a02u04g02202e03p07l0de0of0ct0ga","0ff0ge0eh07104u0fy06j03j0q30mp04q0br0f91qg00000901l05e04j05905f02902j00l03803k04n08c0360430780cg0fd0o50cj0ge","0hw0i6___08206x______02d0qz0rs03t07m___1bb00000002p03y03904703g03703r03c02902e02v04i02602k04006l0hg0rs0g50lx"],["Josefin Sans",400,0,1,"0fx0gi0fn09l0420f207303x0th0rs07q0c70eu1nz00300b02h05h04w06703402f02h00d03o03x04z09603f04107t0es0e50nq0db0gs","0ft0ft0eu08s03y0fk07c04n0sl18d07c0ea0hu1n900100b02p05c04w06103s02f02700504c04p0640bh04b0590an0fo0f10ny0du0gt","0j70j7___0a405t___03t0490sz0rs0390ch___18v00000101w04j03i03j04903c03k03704204d05e0c703x04k08a0gy0jl0rs0gv0n9"],["Josefin Sans",700,0,1,"0hd0hy0h307t0420fp07j05k0ts0rs0a50fh0i41hq00300b02705k04z06303i02l02600c05805m07n0e004r05x0d00kk0f90nd0fn0hy","0gt0hs0gb07q03y0fj07j0620uh0y40930gm0jt1fv00200b02g05j05206503j02o01z00505m06509g0em05c07b0e40ko0f30nu0eu0hs","0l20l2___07n05a___04n0630u60zz04h0g6___15s00000102804l03q03u04003l03x01w05s06b0940h605l06m0dx0pb0l20rs0iq0ol"],["Josefin Slab",300,1,1,"0fx0g70f20a202w0eo09u01m0re3v10990690891oj00e00604b04403t05a03n01r02c02001h01p02903t01g01o02j03x0dx0pk0cq0ij","0fq0gp0f80gk02y0dp0a20330qq20z0990az0f11rv00c00704e04o04b06m02302302w00802t03c04j07802r03d05209k0dx0o20cs0ho","0i80ij___0a7042______01l0s744405k05n___1ew00000003s03902u03k03202s03q04u01h01n02103j01g01l02m03x0jt0rs0fn0m0"],["Josefin Slab",400,1,1,"0fn0hd0f209g02b0dw0990210rt32y09907h0a41rv00c00704i04f04706p01v02002y00o01v02302v06601t0220370510db0ob0c60hd","0fd0gb0ee0fp01x0e009603d0sj0ho0990bc0g41sv00900902405x04c06003a02102r00v03003i04w07q02t03f05g0a70e80oq0dg0i9","0ij0ij___09v03h______0240si38q05k078___1el00000003q03c02v03n03502t03p04m01z02502p05s01w02303f0590kc0rs0fn0m0"],["Josefin Slab",700,1,1,"0g70hn0eh09n02b0dw09903o0ta1xq09g0c40fo1pd00c00803205t04h06c01z02802v00i03e03x06409703903p06a0c70dl0ob0c60ij","0fs0hr0et0jd01z0dl09f04o0ts1af09o0ek0j41kn00900903b05q04o06b02502c02m00704904y08b0cg04504u0950dx0dw0o30cu0ir","0k60k6___08t036___04m03r0ss23v06p0c5___1c900000102g04o03303m03602z04h03a03m03z06409u03h03t06e0c50m40rs0hb0ot"],["Jost",300,0,1,"0f00fl0ep07y03r0ga08302e0qc0rs06908r0a61ul00600a03104z04n04x04t02202r00702902g02z04l02602n04608c0eo0o80cp0gq","0ff0fx0ex0eh0300gh07n03t0rl___0610ce0f71u100200b01o05p04u05805401o02x00a03g03t04t08q03804907l0d10fs0oq0cy0gx","0hb0hv___09q04m______02p0qh0rs04208k___1g700000002d04203d03q03q03803n03p02i02q03805102f02z04y0800ii0rs0f00kr"],["Jost",400,0,1,"0g50gq0f009n0410gb08303g0ro0rs06j0bi0df1rk00500b02j05c04p05504m02602q00703903j04b08e03503r06u0db0f40oh0da0hb","0gc0gu0fb0f00320g408h04m0sm0m70790eh0hh1on00400b02s05k05004b04w02g02a00404604n06a0bx04505009d0fg0fh0on0da0id","0ig0ig___0b904m______03x0rq0rs03l0bk___1dd00000001x04c03j03u03p03c04702y03o03z04r09v03i04b07f0e90js0rs0du0kr"],["Jost",700,0,1,"0ih0jm0hb0ct03h0gq08a0670w00rs0as0go0iv1h500500b02605i04u05j04202n02f00705q06b08c0fn05006h0d90lr0g50ox0g50ks","0ie0jf0hd0c50320g408j06p0wk0lf0ch0i60km1dp00400c02k05n05604h04i02v02200506906x0as0g305j07i0ek0lu0fp0oo0gc0kf","0m00m0___0aq04n___0880700vo___06p0h3___14t00100301704d03w04203n03m04o02a06s07c0ae0i305x07h0et0qj0mr0rs0ij0ow"],["Joti One",400,2,0,"0hr0i10gw07g04o0js07l06g1910q804a0gj0gu1i000300901s04i04g04605804402i00r04w06n07v0ac03r07c0f30lj0iu0pn0gw0js","0i70j70h70720420k308e07817t0n703z0hk0i11cd00300802k04e04g03m05404202p00m05u07f08x0dr04i08p0gz0n80io0qf0g60k8","0j40j4___08o063___06106114t0y300g0gu___1ai00000201h03u03i04203h04704q02h05607208q0bu03z08m0gj0qg0oz0rs0eh0k9"],["Jua",400,0,0,"0i80jo0gs06u02w0ij09005i0tg0mk06f0g50hv1fc00500901n05504d04w04m02m02r01d05705p0830ez04y0640cs0kr0hd0re0fn0ku","0ht0js0gt06p02z0hp0980610t10fi05c0h70jv1f800400901y05404e05404z02a02u00t05k0690a00f605k06z0e50kv0h60qy0fu0js","0jz0jz___08e02w______05n0u50n40000gb___19w00000001e04h03o04103q03k04p02a05g05z0800gf04z06b0cz0pc0nt0rs0hy0lf"],["Judson",400,1,0,"0k30ji0la08f03k0k809004j1m61r70bg0ao0c71g300900903304a03j04g04g03t02401k04f04j05207b01w02r06t0gz0j60r70hq0n2","0j90ir0kq0be03y0jo09505819y1bk0af0dv0fm1gv00800a03504d04504k04l03m02m00905205f06708z02q04009b0ik0j10py0gs0lp","0l40l4___0bo05a______04o1ov1r50a80b0___1bl00000002r03q03n03c04503103o03h04c04p05907e01y02p0700ft0ng0rs0i60qe"],["Judson",700,1,0,"0km0k00lh0ez02y0k508y06124f1hy0bq0cd0du1ey00900a02r04d04d03z04l03o02501e05n06106g08m01w03c0a00ju0jf0r30i90pw","0jq0ir0m70lk03y0jm09506i1lq15n0ac0ee0gf1fg00700a02y04h04d04o04o03j02h00806a06j07a09y02n04n0ck0k20j10px0hr0no","0lp0lp___0bw04p______06a28n1hx0bp0ck___1aq00000002g03u03t03g04603603s03505706a06r08j01x03c09u0mf0o20rs0is0s5"],["Julee",400,3,0,"0fq0gw0f507j03i0k00ab03i0oe0o70130bh0dj1vl00a00602904l04a03y05203f02h01d02z03r04n07003804e0840eu0h80qe0el0i2","0fq0gp0eq07a02y0j609g04k0qj0d301p0e50g41rg00700801x04t04h04u05602x02u00g03v04o06509h04605i0au0h90h10pp0dr0ho","0hc0hc___0an042___07903f0p50kk00x0br___1mt00200701l04103i04003h03m04p02o03503v04s07503704c0810fi0l00rq0bk0j2"],["Julius Sans One",400,0,0,"0hd0hy___08t05s___05z02c0sf0rs02l07h___1da00100603203u03j04703h03h04e01n02602d02r04101z02f04506r0fo0ph0dw0lf","0hg0hg___0cu055___05s03t0t5___04j0bj___1cs00000501m04o02u04a04m03t04k01b03g03u04q07a03504707f0cr0hi0pq0ed0lk","0hd0j4___09g06d___06d02e0sv0rs02l077___1ar00200502z03m03b03o03n03703e03s02702f02t04302102g04a06r0fx0rs0eh0ml"],["Junge",400,1,0,"0g50fl0h008x03h0hz09x02x16617w06p09609r1od00c00903e04d04d04p04l02n02v00c02t03003f04t01m02604p0aj0ga0p00du0ig","0gf0gf0gx08w0440j109w04a10g0mx06f0cs0e01lq00800b01x05403a04l05303v02r00o03x04f05407802p03v07u0g20hh0po0ed0ih","0go0go___0b507h______03917w18e03x090___1d100000002s03p03j03l03j03d03m03q03603a03q04y01n02e05e0ah0jf0rs0d80nl"],["Jura",300,0,1,"0hy0ij0hn05m0630hy08p0240qx0rs0af08309c1kf00d00704i03s03t04f04l02v03600502302602n04m02402703j07n0gt0p20hd0j4","0iq0jp0iq06o04x0jd08e03n0rs0jx0730c60dq1ki00700a03204r03x04g05c02u02w00403b03n04m0cj03a03r05x0ei0hy0ps0hq0jp","0kp0kp___05l06x0f1___0290rf0rs00007v___1bs00000004003703403v03d02y03a04202702a02r04302802b04007c0io0rt0iz0n0"],["Jura",400,0,1,"0ij0j40hy05h06d0ij08p02j0r80rs09u09b0aj1id00c00803z04003t04b04g03803100h02h02k03505t02i02m0490ac0he0pk0hd0jo","0ix0ix0ig06f04q0jg08t03r0rg0f809g0cb0ee1i500900a02q04n03k04506302r02r00n03g03t04r0ct03h03z0650ew0ia0pv0hz0jv","0ku0lf___05e06y0f6___02o0re0rs000094___1aq00000003g03o03203u03802x03v03s02m02p03905i02o02r04s0960jd0rs0j40n5"],["Jura",700,0,1,"0jo0k90jo07n06d0k908s03u0ro0qn08k0cf0df1bs00a00902v04s03l04303u04902d01i03s03v04x0f703t03y06t0ib0j80ra0ij0lf","0jt0jt0jb06w05y0kg08f04k0rs0hu0930ei0fz1cb00600b02f04s03r04704w03r02g01304f04o06b0fw04i04v09h0ip0jv0r00it0ks","0k90k9___09z06y______03u0ro0qu0000cp___17b00000002o04a03703z03b03304j02r03s03v04q0fb03t03y06y0k70ln0rs0g70n5"],["Just Another Hand",400,3,0,"0ae0ao0980ey01q0g60dh0390nw11403h0em0hd2vd00e00d01t05d04u05c03j02e02f01d03203a03u06303605k0cu0k80f20r40980dv","0gn0eo___0mv02y0fi0ea04d0pg15o0b40gr___1vh00e00d02n05504u05703k02802e01304104d0760bn04l08q0f70nm0f20qt0br0td","0db0db___0cg02b___02w03d0sd0uo0250ds___2ci00000002004803t04403j03l04302f03803e03s06a02w04z0bp0n40ma0rr0b00eh"],["Just Me Again Down Here",400,3,0,"0bl______0bc01r___0ek02v0nu0s503h______28z00i00n03o05t06704t03802700o00302o02w03s05w02t03w07g0cv0ap0jp0ag0dc","0bb______0f001z___0e004c0r30rz06y______1rk00h00l04005v06905503301v00h00303r04907f09j04405x0b80g00b80j50at0ip","0eu0eu___08u01q___08202q0nz16o0210ak___20600200902p04y04x05404j03s01b00802l02t03l05s02q03g06f0cv0ck0lv0d40fe"],["K2D",300,0,0,"0gq0j10gq09f04m0jp08403e0sx0p80100az0ce1ld00600802c04s03x04703t04902901x03803h04407h03203h06c0f80ii0ro0g50kr","0hs0k90gt08103y0ji08804b0sb0jv0260dm0fa1lx00400a02i04t04204d05103502n00v04604e05l0be04004p0920gx0i60qv0ft0kr","0kr0kr___0a404m______03i0ts0of0000b0___1ed00000002304903h03y03d03a03y03h03g03i04508303303h06f0e30lh0rs0ef0lx"],["K2D",400,0,0,"0hb0kr0gq08i0410jq08403x0tl0oc02m0cd0dz1kd00600902504v03y04b03z04202e01r03r04104v09m03j04208a0h90ik0ro0gq0lc","0hm0li0hm08g03x0ka08904s0tg0jo02q0ee0fz1j200500902a04q03x04704p03k02g01l04k04u0640d704d0530a90ic0iz0rm0gm0mh","0l20lc___09t04m______0410ud0nu0000cc___1cy00000001w04e03h04203c03b04803504004304z0bj03k0420800iq0m50rs0f00mi"],["K2D",700,0,0,"0ir0lx0hv08p03h0jq08505h0v80ny03w0fd0h81i100500a01u04z04404e04903s02m01h05805l0730fd04r05k0ca0k30j20ro0hv0n2","0jm0mk0in0bb03g0k908a0640vl0i205o0gk0ii1ev00400a02104v04404d04v03e02l01905t06808p0fy05706f0e30ks0jp0rn0hn0mk","0mi0mi___07t041______05m0vi0m900x0fa___19a00000001k04g03m04403g03g04k02m05k05o07f0hn04u05m0c40p30nq0rs0jm0nn"],["Kablammo",400,2,0,"0i80i80fa04j01s0n804p03x0tw0uq01w0f10ew20400000602404s04b03w04803v04a00703c04506i09m03104407j0dr0lr0ow0gh0k0","0jr0jr0jr09r01z0ne04a05u0vl0mi07s0hg0if1qs00000402a04p04804e04a04p03200204h06908z0da04a06z0bj0jn0l70oz0gs0np","0i80i80fa04j01s0n804p03x0tw0uq01w0f10ew20400000602404s04b03w04803v04a00703c04506i09m03104407j0dr0lr0ow0gh0k0"],["Kadwa",400,1,0,"0hw0ih0hw0ah02w0j308t0430xh1va0730d20e51kt00a00902u04z03w04d04403p03300c03x04b0690aj03503l07a0gg0il0pe0gq0lx","0hm0il0hm0im02y0jc09704u0vs1iz06i0eu0gb1kc00800902z04u03v04704t03f02y00904n05507v0cy03z04p09f0i30iv0po0gn0lj","0ld0ld___082057___06y04k0ye2140730df___1av00000402f04f03603j03603404b03l04g04s06j0c803h03z0800hb0pi0ru0ih0pf"],["Kadwa",700,1,0,"0j40j40ij06102b0j608s05u0yz1di08q0gb0i41ir00800b02f05a04304h04b03n02s00a05o06809v0ev04b05e0cj0jl0j40p60hy0ml","0i80jp0hq0og02y0je08g0660xf16t0690hl0iz1hd00600b02m05004204f04x03g02p00805z06o0ac0f104w0650ek0lc0j20ps0gr0lo","0ml0ml___076058___07j06n10c1dj0730hj___17j00100402004l03c03p03603d04s02s06c06z0bl0h104z0620d90qi0q90rs0jo0ph"],["Kaisei Decol",400,1,0,"0kj0jd0kj07p02y0k308303y1la14x0b409x0aa1hk00600a03i04403z03o04h03j02302103l03z04d05q01j02805n0dp0ii0rq0i70mw","0jl0jl0kk0bz03f0k408504t19e1d408v0cx0dh1h700400b03004803t04604f03u02501s04l04y05k08202e03m0820h90iw0rm0hm0lj","0n10n1___087041___06g0471oc1fw09r09s___1ce00000503b03j03f03p03a03b03m03k03r04904k05z01k02805t0cl0nz0rs0j00r2"],["Kaisei Decol",700,1,0,"0jz0jo0k907c02b0jt0750551v61in0ak0c60d61j600300b02l04d04704i03x04002a01l04q05605l07401p02z08m0iq0j40r80hy0m0","0j00j00jy0bn03c0j807v05q1hn14l08v0eo0f11io00300b02s04904104904g04902h00w05c05t06a08q02f0460ao0js0j30qs0h30kw","0mk0mk___07u04c___06k05g20k1pq09r0c4___1cv00000402f03s03o03q03f03l03v03a04x05i05t07s01q02y08p0kf0oy0ru0ii0qm"],["Kaisei HarunoUmi",400,1,0,"0kj0jd0kj07p02y0k308303y1la14x0b409x0aa1hk00600a03i04403z03o04h03j02302103l03z04d05q01j02805n0dp0ii0rq0i70mw","0jl0jl0kk0bz03f0k408504t19e1d408v0cx0dh1h700400b03004803t04604f03u02501s04l04y05k08202e03m0820h90iw0rm0hm0lj","0n10n1___087041___06g0471oc1fw09r09s___1ce00000503b03j03f03p03a03b03m03k03r04904k05z01k02805t0cl0nz0rs0j00r2"],["Kaisei HarunoUmi",700,1,0,"0jz0jo0k907c02b0jt0750551v61in0ak0c60d61j600300b02l04d04704i03x04002a01l04q05605l07401p02z08m0iq0j40r80hy0m0","0j00j00jy0bn03c0j807v05q1hn14l08v0eo0f11io00300b02s04904104904g04902h00w05c05t06a08q02f0460ao0js0j30qs0h30kw","0mk0mk___07u04c___06k05g20k1pq09r0c4___1cv00000402f03s03o03q03f03l03v03a04x05i05t07s01q02y08p0kf0oy0ru0ii0qm"],["Kaisei Opti",400,1,0,"0kj0jd0kj07p02y0k308303y1la14x0b409x0aa1hk00600a03i04403z03o04h03j02302103l03z04d05q01j02805n0dp0ii0rq0i70mw","0jl0jl0kk0bz03f0k408504t19e1d408v0cx0dh1h700400b03004803t04604f03u02501s04l04y05k08202e03m0820h90iw0rm0hm0lj","0n10n1___087041___06g0471oc1fw09r09s___1ce00000503b03j03f03p03a03b03m03k03r04904k05z01k02805t0cl0nz0rs0j00r2"],["Kaisei Opti",700,1,0,"0jz0jo0k907c02b0jt0750551v61in0ak0c60d61j600300b02l04d04704i03x04002a01l04q05605l07401p02z08m0iq0j40r80hy0m0","0j00j00jy0bn03c0j807v05q1hn14l08v0eo0f11io00300b02s04904104904g04902h00w05c05t06a08q02f0460ao0js0j30qs0h30kw","0mk0mk___07u04c___06k05g20k1pq09r0c4___1cv00000402f03s03o03q03f03l03v03a04x05i05t07s01q02y08p0kf0oy0ru0ii0qm"],["Kaisei Tokumin",400,1,0,"0kj0jd0kj07p02y0k308303y1la14x0b409x0aa1hk00600a03i04403z03o04h03j02302103l03z04d05q01j02805n0dp0ii0rq0i70mw","0jl0jl0kk0bz03f0k408504t19e1d408v0cx0dh1h700400b03004803t04604f03u02501s04l04y05k08202e03m0820h90iw0rm0hm0lj","0n10n1___087041___06g0471oc1fw09r09s___1ce00000503b03j03f03p03a03b03m03k03r04904k05z01k02805t0cl0nz0rs0j00r2"],["Kaisei Tokumin",700,1,0,"0jz0jo0k907c02b0jt0750551v61in0ak0c60d61j600300b02l04d04704i03x04002a01l04q05605l07401p02z08m0iq0j40r80hy0m0","0j00j00jy0bn03c0j807v05q1hn14l08v0eo0f11io00300b02s04904104904g04902h00w05c05t06a08q02f0460ao0js0j30qs0h30kw","0mk0mk___07u04c___06k05g20k1pq09r0c4___1cv00000402f03s03o03q03f03l03v03a04x05i05t07s01q02y08p0kf0oy0ru0ii0qm"],["Kalam",300,3,0,"0fl0fv0ef07g02w0hb09x02t0of0tc03c0930ba1tc00e00902s05204o05604k02402o00602m02t03j05b02m03g0600a50dy0nw0du0hb","0fv0fv0ev0ae02h0i909e0470q70k00330cl0fj1qh00800c01k05f04o05c05c02702400o03o04605e08n03v05508t0dc0fv0ov0ev0gv","0ig0ig___08a04m___04m0300pj0o000h098___1dt00000201z04c03e04503j03f03p03902w03303v06002s03o06e0aw0g50rp0ee0kr"],["Kalam",400,3,0,"0g70gs0fn08t02b0hd0a203r0q00nj0580ba0dr1s200d00a02g05804s05a04f02902m00503i03s04v07e03g04m0860d60em0ob0f20hy","0fv0gu0ev08i01z0id09f04s0rr0i003m0e00gs1n600700c01c05e04q05c05b02d02n00604c04r06f0a404c05v0a80ew0fy0oy0ev0hu","0j00j0___07h041___0570440r70is00h0bn___1dc00000201p04g03i04703i03i04302u03y04705f08r03q04y08x0ez0hj0rr0fk0kq"],["Kalam",700,3,0,"0ht0io0g30dx02b0hk0a805m0tr0sv0al0f20hk1mz00c00b02405904v05g04802m02h00705305n07o0bj04w06x0c50h00fv0ou0g30l9","0hi0ih0fk0em01y0iw09f06a0um07k06f0gb0hn1ft00700d01505004u05c05502t02j00g05h06908z0di05f0880e60hy0gp0pc0fk0kf","0k80k8___08v02b___04k0630ub0gx03a0fc___1b500000101i04f03t04b03i03q04k01x05r06708h0dq05b07g0do0kb0kk0rs0hw0mj"],["Kalnia",300,1,1,"0jo0k90jo0840420jq08902r1du1kr0a507s0811iz00700c03704303t04403p04502402402m02r03204801301o03n07m0ij0rs0hd0lz","0j80ia0j808z03u0jr07d0431440e008l0c90ck1jl00300d01q04q03t04304e04902602703r04604w06e02303b06f0du0j20rq0dh0k7","0le0le___078057______02s1ia1sx03u07e___1fq00000003103l03g03q03303e03n03x02f02s03203r01101l03q0820nr0rs0ii0ob"],["Kalnia",400,1,1,"0ku0le0ku07j02w0jq08904m1yn17b0ap0as0bi1hm00600c02o04c04504d03u03v02c01t03v04m05006601502f06a0fo0j30rs0jo0nq","0iq0iq0jq09t03y0jj08505g1c90wc06h0dp0e01f900600c02q04d04304d04k03g02g01c05205g06407502404j0920i00ix0rq0au0kp","0mk0mk___06t04n______04t28c1aj05v0al___1e800000002f03u03p03v03703n03x03903k04t04z06401202b06u0dq0ph0rs0ku0pg"],["Kalnia",700,1,1,"0nq0ob0n50cy01r0jq08909g2zf0se0bx0hd0hy1db00500c02404g04j04n03x03q02i01h06z09g09u0at01u07a0ge0ns0jo0rs0lf0qm","0kq0m80kq0au01z0ji08609k1v20q60930j60k71b100500b02a04i04i04o04k03d02h00z07u09h0a40bg03t09f0is0pa0j60rs0bv0np","0ov0ov___0aq02w______09t3b70ux0bu0h8___19l00000001u03z04003x03904104702m06j09t09v0b801l06t0fv0rs0qu0rs0lz0sc"],["Kalnia Glaze",300,2,1,"0ij0hn0j409v0420jo08p02h1kv10p08x06p06v1jn00900c03204603y04403o04102402302202g02o03h00w01b02y06p0i00rs0eh0lf","0jm0jm0jm07z0450jx07t04610w0lf07q0ca0ca1gu00300d02j05303104504m03y02701u03q04a05006k02a03i06c0do0ig0rp0gi0kn","0hn0hy___0aw04x______02g1mk16602e06d___1g000000002v03m03j03o03103f03o04001w02e02o03800u01902x06l0m90rs09u0ml"],["Kalnia Glaze",400,2,1,"0jo0jo0jo0a603h0jo08p0492350wh07f09k09t1is00700c02m04f04904e03t03r02b01q03103z04l05501001z0550d30ij0rs0af0ml","0hu0ib0is08y03v0jo07d0581ab0hg0610d00da1gl00300d02304u04604704d03s02701r04g05405t06u02b04308h0h50i60r10am0k8","0jo0jo___09p04n______04525d0x703809h___1eq00000002b03w03u03v03603n03x03602u03z04n05900y01z05x0cq0og0rs0b00nq"],["Kalnia Glaze",700,2,1,"0n50n50ma0cy01r0jo08c0522hn0lu0a50dw0eo1t600600c02c04d04z05403v03e01w01c01d03b08009d01902707z0ez0j50rs0dw0q2","0n30n30n30iz02w0jo07c09e1rl0e20au0hn0hl1ck00200b01k04l04i04m04i03r02f01i06p0900a00bu03q08c0h80mz0ja0rq0dh0p0","0nq0nq___0ay037______0421zm0mc09k0dp___1p800000002203v04a04m03l03m03a02i01c03508809l01902807w0gc0q70rs0dw0r7"],["Kameron",400,1,1,"0k90k90k90bl03h0jb08t03z1342170cj0bb0ck1h000a00803704n03o04103x03j02502503v04605409r02j0320640dh0il0rs0ij0nq","0js0js0js0jk03y0k508f04u0zr___09o0e60e91hp00400a01p05f03r04404u03h02h01o04o05006m0aq03f0470860g50iu0rp0ht0lr","0lf0lf___0b8058___05804715426n09r0bm___1cz00000302v04503403j03403203u04203t0480510at02n03406y0cq0p60rs0hd0rs"],["Kameron",700,1,1,"0ml0ml0ng08i02w0jc08r06u17z1dq0gw0fo0h41bk00800902g05703w04804603902j01m06l07509k0e30410590ca0jk0j40rs0ku0qm","0lq0mq0lq0m903g0jg08f07c16214i0dw0gr0id1b900600a02m05203z04b04y02n02q01307007o0ah0ga04h05v0du0l30iz0rs0jr0qo","0ob0ob___09h04x___06d07618i1gi0cc0gi___17c00000402504m03b03n03303c04n02z06d07b0a60fb04a05j0ch0q00q80rs0ku0tj"],["Kanchenjunga",400,0,0,"0g50gf0g508c0410hv08n03n0sj0t80420c10dw1of00800b02m05404b04u04u02c02z00903j03q04l09803903w07c0f80gb0pd0ee0ha","0gs0ha0g906u0420i408m04m0sp0ny04t0em0gs1ml00600c02s05604i03p05m02n02t00504d04q06e0ce0480510a90h60gr0ou0f90ib","0ie0ie___097056___02b0400tm0un0000c1___1d100000002604g03d03t03k03604203903x04304v0at03h04707r0hi0kr0rs0ey0l9"],["Kanchenjunga",700,0,0,"0h00ha0gp07c03r0hv08n04p0v50th06p0e90gh1m400800c02e05904e04w04q02e02y00904l04s05z0cb04004s0aj0hu0gv0pe0ez0ig","0hb0ic0gt06m0430i208l05h0vc0z405w0fw0ii1jx00500d02n05604k03t05j02u02m00605805k07q0dp04q05t0cr0il0hi0ov0ga0ic","0jj0jj___08l056___02v0550va0u300w0ea___1au00000001y04j03g03u03i03a04c02x05305806d0ep04b05b0bb0n70mj0rs0fj0lu"],["Kanit",300,0,0,"0j40j40j409604n0k909u03u0vp0rs06p0bi0cy1gp00800902k04l03v04903o04f02701s03t03w04k0af03603j0700gk0j40rh0gs0k9","0ix0ix0hx07f03z0kd08p04m0ul___04t0dx0ft1hw00300b01e05604104i04v03l02901n04i04q05z0d603y04l09l0hk0j10qv0gy0jx","0jz0k9___0a904n______03v0vr0rs02p0bg___1bm00000002a04503c04603c03604803603t03v04j0a303303l0710gk0l20rs0f20m0"],["Kanit",400,0,0,"0jz0kk0jo07a0420k909u04z0wx0rs09m0dw0fk1f900800a02a04t03z04b03y04302c01k04x0510670eg03x04j0a80jr0jb0rs0ij0lf","0jb0kc0jb0760420k209o05o0wy17r0810fp0he1fc00600b02k04u04a03f05003t02n00t05f05r07l0fc04j05c0c20jv0ir0qq0ib0lc","0ku0ku___09o042______04z0wa0rs03l0du___19400000001z04f03g04703e03804f02r04x0510630fs03x04n09r0n20mn0rs0g70n5"],["Kanit",700,0,0,"0m00ml0m00ei02w0k909u08b10i0rs0cf0j50kh17x00700b01x04s04904h04903t02j01c08a08n0em0kq06808g0jo0qx0k90rs0k90ph","0lr0lr0lr0l001z0jg09g08e10w0lz0ez0ju0la17q00500b02804z04i04u05003a02e00608308r0f70jx06b09v0io0on0j30py0js0qp","0nq0nq___08602w___07808f0zw0rs0am0jk___13800000201l04b03v04603h03l04l02708a08r0er0ld06i08o0lr0rj0p20rs0ku0q2"],["Kantumruy Pro",300,0,1,"0gs0gs0gs06b04n0j308402l0re0rs01p09909w1nl00800902y04r04604r04003s02r00702g02m03704x02b02r04h0930gx0ov0fm0hd","0gz0hh0fz0890400kh07o03v0r9___0280cq0du1nb00200c01l05804504o04r03t02r00h03k03z05309703g04c0820fg0iy0ov0fz0hz","0jm0k7___05p06g______02t0rq0rs000096___1db00000002k04503d03e04403503504002o02u03c05602j02y05909e0jk0rs0hk0l3"],["Kantumruy Pro",400,0,1,"0hd0hd0h205z0570j30840360rx0rs04j0az0bn1lb00700a02m04z04604r04a03m02r00803203804007002v03d05v0cr0hd0ox0g70hx","0hp0io0h707j04f0jg08904a0ry0lo03r0du0eu1jc00600a02l04t04504m05003b02q00604304d05p0bg04104n08v0fy0hy0p10gp0io","0jc0jm___08l06g______03h0sg0rs0000ax___1bn00000002804d03e03g04603603j03j03c03j04607z03603n06h0ch0ko0rs0ft0lo"],["Kantumruy Pro",700,0,1,"0k50kq0jv06n03g0jk08806y0z80rs0b80hu0iq1ei00600b01z05204d04p04b03s02o00h06v0700920gx05b06w0gk0o00j30pw0jk0mg","0js0ks0js09702z0jf08c07c0yg0lr0a70im0kg1bl00500c02905304g04s04z03e02b00607307g0bm0h405v07p0ha0n20iy0ps0it0lr","0m90m9___08p04p______07j0zf0rs0630i6___15900000001n04j03q03j04103m04602j07e07n0ab0jx05w07k0hq0rs0on0rs0h00p7"],["Kapakana",300,3,1,"0n90n9___0lt067___0eq01h0sx___0dw04o___2a700j00q04205e04q04003002702u00c01a01h01u02k01301f01u02h0au0o50fw1jc","0ln0ln___0ma04x___0e703x0rn___0990ac___1vw00k00o03c05b04t04k03202k02q00903b04306a09003204206008d0c30ow0gq13d","0q00q0___0hz042___06d01h0tx___0fa04q___1ss00100e03103m03203w03k04004702201a01j01v02r01201e01t02e0l00qa0le1a8"],["Kapakana",400,3,1,"0n50ow___0v906d___0eh02s170___0f606m___28t00k00o03e05k05d04d02o02n02d00901r02n03903r01601t03m04h0b50ns0hd1ie","0ks18j___18o05y0bp0e50500y30qh0dw0cq___1xb00l00o03405o05e04h03302s01x00504005306m09s02n04j06z09s0c00nw0it1gg","0oq0oq___0kk044___08e02s162___0ci06q___1pt00300d02h03m03k03j04g03l03y02601r02n03e03z01801v03604l0ls0r30iu1ai"],["Karantina",300,2,0,"0960960960670150je05k02g0rk2h80000eg0fg36o00000c03f04604c04m04i03602501402g02g02i04s02g02p0dc0kp0jh0qc08m09r","0qe0qe1150p406u0k806503w0rr1340g70g50ix29p00000902j04n04804l04m03v02401003j04407k0aj03r06k0hw0nh0ju0ri0kj1gs","09609609604e01q0nc03002g0rd2j00000f10e330e00000102w03k03q04903r03603s02n02g02g02j04n02g02u0d60qr0ns0rs09609r"],["Karantina",400,2,0,"0ad0ad0ad09h0150jd05p0440s81q30130ky0kv2rm00000c02s04q04d04m04403s02500y04304404v09d0420at0k70rp0jq0rs09s0ay","0wd0vw1850e106v0k80670530r70nq0ld0lc0ko1kv00000902a04s04d04o04w03n02300w04u07l0cn0js05l0f40kb0qv0jv0rl0rh185","0ac0ac09r0760150nb03r0430s81ol0000ln0j52m500000102c04203t04603v03e04002504304404m0950410cd0qa0s20nu0rs09r0bh"],["Karantina",700,2,0,"0d90du0d905s0160jm05y05o0sg0rs00k0mm0ms23h00000b02105004g04p04a03x02700x05n05p0980cn05k0ex0k10rq0jt0rq0bj0du","0sx0sx0xb0rr05w0jh06a06d0t50j20gz0m70mm18z00000a02704u04k04q04w03j02200s06a08m0dg0ob0790i40ml0qy0jv0rm0ep137","0da0du0c404s0160nb04805p0sg0rs0000m00mx20l00000101o04c03w04803h04004502205n05p0900c705k0fq0re0rs0o80rs0c40ef"],["Karla",300,0,1,"0hb0hv0gq05f05s0jm09t02u0s80rs01s09p0aj1lg00e00802u04o04204n03s04302w00802q02w03h05s02h02z04z0a10hi0ox0g50ig","0hi0ij0gh06z0550k409u0480u2___01o0dd0ec1l400800b01l05c03904v04w04b02w00703s04a0590aa03j04i0830fg0in0pm0gh0ij","0jm0jm___04r078______0340sq0rs00009o___1cu00000002d04103g04003h03503p03n02x03503q06002n03705j0am0kg0rs0gr0ly"],["Karla",400,0,1,"0hd0hn0gs09h05s0jb09u03n0ta0rs0440bw0d51jz00d00802i04x04404m04403t02w00903h03p04i08j03603s06x0er0hy0ph0fn0ij","0io0js0io08205i0kt0b604z0tu0mk03r0en0ft1fi00d00702r04104f03p05103n02r00z04p05406l0cq04a0580a90i70k00qq0hl0kw","0jo0jo___0a306d______03y0ty0rs0000bw___1bu00000002304b03i04303d03704c02x03r04004v09t03e04307j0fj0lo0rs0f20lf"],["Karla",700,0,1,"0k30kz0ji07r05m0kp0an05i0uo0rs06y0fj0gl1dl00b00902404x03h04c04q03o02l01h05b05n07d0e704r05r0c90kp0jo0rs0ic0mh","0jc0kc0ib07o0530k80ah0640vn0l805c0gr0iy1c600b00a02a04y04903f04x03y02n00u05o06a08y0fo05706d0dl0kk0jp0qt0ib0ld","0lf0lf___09i05s______05l0v00rs00x0fg___17r00000001s04g03l04003e03e04m02l05b05q07j0gp04u05w0cb0o50nb0rs0gs0n5"],["Karma",300,1,0,"0hd0hd0hd08802m0k908x02q0ut2je04t09d0ae1mv00c00703s04203j04303f04m02601n02l02u03h06r02602k04k0950il0ph0f10le","0he0if0he0c90330kx08m0430uu___04q0d50dk1n100400c02205603v03804e04y02e01b03q04905c08i03b04507n0ft0je0po0fc0kg","0hx0hx___08b03h___05702r0vz2io00h09j___1ie00000203f03o03103p03203103r04102o02t03e06x02602j0510930ms0rs0db0le"],["Karma",400,1,0,"0hx0hx0hx07x02b0k909803a0xg27c04t0ao0bt1lf00b00703d04e03m04603g04l02601k03503f04607z02f02x05r0c50j40pq0fm0lz","0he0hx0he0bo0220kx07z04f0vv0o10420do0ez1lq00400c01x05703w03904f05002e01a04704l05t09p03e04d08f0gy0jj0qo0fc0kh","0ii0ii___08103h___05703a0yl27n01e0ao___1hb00000203403x03603r03303503s03t03803c04208802e02u0650bc0n90rs0db0lz"],["Karma",700,1,0,"0j30j30j307m02b0kj09905b13d1kt0860e40fx1i100a00902o04s03u04a03o04g02a01b05705g0760be03c04g09y0jy0jt0r70hd0n5","0ie0ie0jf0du0220ka09h06010z1bo07p0gc0ig1h900700b02v04x04303d04p04802b00v05q06908v0dh04a05f0cc0kk0js0qt0gd0mh","0k90k9___06n02w___05805c15m1n403w0e6___1ef00000202f04d03e03v03403g04902x05a05h06q0bb03604b09r0m60of0rs0hd0ow"],["Katibeh",400,2,0,"0k30kp0k307602d0j609l05y1pq17f0b00d60en1j300a00b02m04l03s04h04q02w02d01s05m05z06i08g02604d0b70jh0ih0rs0hq0nn","0kc0kc0ld0by0210ja09n06q1f00zl08p0g20i21i700900b02o04p04f03e04v03b02j01f06g06w07q0b303a05y0ef0l90im0rr0ib0ne","0kp0kp___09o045______05z1ow1gv0870d9___1ek00000002g04003903w03t03604203805n06206m08x02404b0ap0mt0oz0rs0gk0q0"],["Kaushan Script",400,3,0,"0gi0ho___0f0022___0b70470u00pc05e0bt___23x00b00b02y04x04y05103z02b02u00803d04a05006i02v04k0800bq0eq0o50e50l7","0v30tk0pi07h0210g40ap05b0u90rp0n50dj0h31sf00a00c03u04r05604e03x02s02600504i05d06q0a604706c0at0e90eo0nv0sk10p","0hy0hy___0bm02w___05s04f0vj0p802h0bw___1ku00000301o04a03d03p03o03j04q02t03h04m05a07z03b04k0880d50m00rs0db0lf"],["Kavivanar",400,3,0,"0ey0ge0ed07k02n0hy09a02p0oo0ps01m0ap0c920k00400d03904y04f04905c02h02k00602m02p03n06i02r03e05w0d00g00op0e20ge","0es0fs0es0cb01z0j808g03w0px___02b0dl0ev1z800200b01l05904b04t05903502p00f03g03x05709w03t04u0900fu0hp0pl0dt0hr","0hd0hd___09d03h______02v0pn0m40000ah___1nr00000002004b03g04903i03b04202y02q02v03w06u02z03d06b0df0ir0rs0cq0j3"],["Kavoon",400,2,0,"0j10ks0j109n01q0ks07k0790xl0o30560j80jt1k000400m01v04s04604c04b04f02301406t07l09x0fx05s0840hp0n30k80rb0hw0lx","0jr0jr0hs0ls01z0ld08607m0xc0j60820ka0kg1cc00300k02204n04504b04y04802000v0780830cz0hg06a0970jk0p30k40r10gs10j","0m00ml0ij0b202b0l307j0790wz0nr05k0jk0jv1fx00100c01m04d03t03u03a04004i02106x07u0al0hg06208q0iu0rb0pp0rs0jo0n5"],["Kay Pho Du",400,1,0,"0fs0gd0em07502x0hy09q02o0rf2fd04x0ai0ct1pn00e00704l04303v03n05f02c02v00e02m02r03q08602k02u04s0ak0hq0pj0e00i4","0gd0gd0eb0ic02k0i809j03t0r81w503p0dn0gy1pq00a00803f04z04003f05m02s02y00603n0460640a703i04a07g0g50ij0oz0eb0he","0ht0ht___06r04l______02v0sa2he00y0am___1hb00000003s03o02w03i02z02t04404302s02x03i08v02q02x05o0aj0p40rs0gn0jj"],["Kay Pho Du",700,1,0,"0gd0gd0ew06j02x0hy09q0410tp1ok04t0ee0gy1on00c00803i05004103u05e02f02s00c04004706j0as03o04608n0i30hz0pj0em0ip","0fs0gs0et0mg02z0je09g04r0s21cw0360gd0iv1nf00900902q05403v04805403a02t00704n0560820co04g0580av0jp0j20pr0et0hr","0ie0ie___060041______04c0u21p200z0ew___1g600000002u04b03503l03203404p03204a04f06s0bp03y04h0930me0po0rs0h80k4"],["Kdam Thmor Pro",400,0,0,"0ff0gm0eu07k03k0k208m04e0vd2dj0130fi0hd1q400900803c04j03m04k04i03e02v00k04d04f04n0dk03q0430eh0o50kg0qe0eu0ht","0es0fp0es07803p0k307w04p0ut1n50130gf0i81t300600902k04h04t04b04703r02j00r04n04s05e0d204604m0et0lr0ke0q10es0hj","0hw0hw___0980570gl___04r0vm2ah00g0fg___1f500000002504c03a04103j03804803204o04r04y0fo0440490d10rn0pe0rt0f00jm"],["Keania One",400,2,0,"09u09k09u0ar03h0ik09906916v0rn00z0k00jt1pi00900902r04p04504g04103302l01k06506c06k08z04209h0jh0s30j30rs06d0b0","0hu0iu0gu07402z0jc08m06o15811o0240j90kx1np00500a02e04t04504g04q02y02n01a06h06r07g0ew04g08w0j40ra0j20rs0gu0jt","099099___0bk042______06j16m0rj00a0k6___1iv00000002d04603j03v03g03j04c02k06j06j0790a804609g0ps0sb0r90rs06y0bk"],["Kedebideri",400,0,0,"0fn0fn0fc06c04n0iq08p02z0tb0rs02u0ad0bn1q500800902x04q04804q04c03c02u00802x03003k06002k03105j0cs0gy0ow0eh0hd","0gh0gh0gh0770440j308104c0tv___02q0dk0f81n400300c01m05j03804z05e03k02w00704304d05h0aj03m04i09c0gb0hl0pl0fg0ik","0ih0ih___070057______0390tp0rs0000a9___1gd00000002b04603b03w03o03703z03a03603903r06402s03d06b0du0jv0rs0f00jn"],["Kedebideri",700,0,0,"0h00h00h006y0440jd08b04l0vk0rs04a0eh0fk1mb00500a02d05404e04405403102t00f04j04n05n0b403v04p0ao0ja0i70p80fu0i7","0h70ho0gp06s03x0jf08b05c0vz0qp02o0g60hs1k100500b02h04x04a04p05003b02j00605305e06w0cr04i05n0ct0jp0i40po0fq0io","0ij0ij___09804n______04y0v50rs0000er___1cm00000001w04h03h04203k03c04h02j04v04z05z0dx0480560be0nl0mn0rs0f20ku"],["Kelly Slab",400,2,0,"0g70g70dw07903h0hy09u03d0w629404a0cx0ew1qm00d00804004c03l03z04k02m02701y03b03d04p08402w0330790iq0i20rs0dw0hy","0gz0gz0fx0710370it0a804j0ta21u03r0fp0hz1lp00900b03905102y04605k02602i01m04g04t0760ci03r04p0a50jm0j50rr0ev0j3","0g70g7___07704n______03d0wa37y00z0d4___1lj00000003q03l03003k03703203w03s03a03d03u08402u02w0790nk0qs0rs0fn0ij"],["Kenia",400,2,0,"08z06d0eh0ec02w0j30b005k0yl0mg00f0ll0k122n00900902704x04e04i04703602o01a05g05k05x06s04q0bf0je0rb0j30rs05s0eh","0dw0dw0dw08k02z0jd0af0660vk0dh01k0lj0kp1uk00700a01y04w04f04i04u03202o01105v06706v0cz05u0c80je0qw0j20rr0cw0ev","084084___0ep03h______05x1170mh0000lh___1xk00000001t04b03t03v03b03u04p02605s05x05y06r0540d50qu0rw0qb0rt05s0eh"],["Khand",300,0,0,"0c60c60c606404n0ln05s02a0sa0rs0160aj0bi25o00000b02t04903w04n03f04y03200j02902b02h04802502f0690hy0ku0pp0bl0cq","0cj0cj0cj08l02w0lt05h03j0su___01p0eq0fq24t00000801f04t03w04n04904r03500q03a03l04408c0380470bc0jn0la0pw0bk0dh","0cq0cq___05405s0f904n02f0t30rs0000ar___1x000000202g03q03f04603f03e03k03n02e02g02n04502a02j06v0kc0ne0rs0bl0db"],["Khand",400,0,0,"0cp0cp0cp05t0420ly05s0320t00rs0160de0ef23w00000b02f04k03z04l03h04v03200k03103203b06v02u0380aa0ky0ld0q00c50da","0cu0cu0cu06y02z0ma06a0450se1d80130fz0hq21400000b02h04l04304l04404v02n00603x04605209p03w04s0e70li0ls0pu0bu0dt","0dw0dw___062058___04n0390th0rs0000dc___1vr00000202504103j04603f03g04003103703903j06202y03h0am0pc0og0rs0c60dw"],["Khand",700,0,0,"0eh0f20dw05p02b0lm05f05v0uj0rs0130kr0lv1ww00000901z04v04904o03w04w02s00905t05v08h0d405d0bg0lq0pl0lp0pl0dw0f2","0f80f80ea0hv01x0lp0610690tu0l205k0l30mi1q200000902404o04304f04e04l03500606406f0ax0dx05x0cu0la0p20l90pu0ea0h4","0g70g7___07202w___05v06b0ui0rs00j0ks___1m700000201o04a03o04503i03m04j02c06806b0920e705s0bd0qb0rm0qn0rs0eh0gs"],["Khula",300,0,0,"0hd0hd0gs05m0580kh09902d0s30rs01607p0931kw00a00703304303k04d03o04n01u02402902f02u04f02402g0450880i50r80g70hy","0gs0gs0ft07s03y0k808h03p0s8___02b0bz0d51n700400a01r04u03z04m04s04502l00r03e03t04p08v03804207s0e20ip0qi0ft0hs","0hy0ij___06405s______02f0so0rs00007r___1fk00000002s03p03704003m03403g03y02a02g02t04c02502f04a0810is0rs0fn0ku"],["Khula",400,0,0,"0hd0hy0hd09a04n0ku09903m0ui0rs02l0b60c51i600a00802g04l03p04c03p04m02701q03h03n04a08q03503l0700fj0j50rg0fn0j4","0hr0hr0hr08703y0kj09a04j0u50mv04t0dk0f51im00800802k04m03x04h04p03o02h00z04a04l05s0b903y04o09z0hm0j40qy0gs0jq","0hy0hy___0a905i___06i03n0uf0rs0000b7___1dm00100302604603c04003k03704603503j03p04908v03703n0740ef0l00rs0f20ku"],["Khula",700,0,0,"0jg0jg0k107d04f0l809f0660x00rs0810gm0hn1e200800a01z04u04203s04o03y02i01j06206a07z0ff05406c0fc0m60km0rr0ia0l8","0jn0jn0jn08t03x0kh09b06m0xi0l50as0hq0j61db00700a02704u04504i04t03p02h00o06906p09v0fm05d0780g90ml0jt0qr0ho0km","0je0je___09a058___0720650wq0rs03l0gu___19400100401q04g03l04103i03g04k02e06406e08e0g105606n0fc0ro0nu0rs0fn0ml"],["Kings",400,3,0,"0jb0jb0vf12703h0ig0ay03k1691f709909x09k1z600d00b02z04q04h04i04202v02z00k03103o04i06401p02o05k0bw0hd0pl0hv0vp","0o50mo___0pk03y___0aa05514y0vb0dw0dm___1os00b00c02n04r04j04l04s02n03000904e05406d09r02s04a08n0f70hv0pr0hq15d","0ow0ow___0lt037___03204i1iv35e0dw09j___1ab00000103a04303803b03403703u03r03g04k05g07s01d02p05o0c40p50rs0jo111"],["Kirang Haerang",400,2,0,"0fo0es0e708y02o0fe0ac05g1110pl05w0d70hg1kx00700902g05r04s06703w02f01s00404d05f0750bv03k05z0cg0i90e70n90d10hr","0fx0gf0ex0az0200fk09m06610r0gn07f0f50iu1h900400901p05k05k06804102402400504u06509m0d104b07e0dd0jo0ey0nu0dx0hx","0jf0k0___0a402y___02o0671570rz02d0fq___17600000001v04a03x03m04703f04b02705g06l08t0f903u06m0ep0ql0ko0rc0e40nj"],["Kite One",400,0,0,"0eh0fn0dm09203h0g70b002z0sv0rm01l09u0cu1v400f00a03204v04b04n04702002a01t02t03003l05x02j03706r0cq0f40r70cq0hy","0eg0gu0eg09902w0fy0ad0420te0uu03a0cq0gf1tt00f00a01n05d04904p04t02102a02103q04305009003d04e08u0eq0ff0r10ci0hb","0hd0hd___0az042___04e02y0t40rs00x09n___1m900000302m04203g03o03r03b03n03b02u02z03g05i02g0390700di0i70rs0cq0j4"],["Kiwi Maru",300,1,0,"0k90kk0k907803h0j409j02w0s52jx0br09z0a71hq00c00a03k04j03g03q03w03q02602502t03204a08t02o02x04p08j0i00ri0hy0ml","0km0km0km0cc0330j40940480sd0sm0bu0cu0dn1hl00600d02805j02t03z05203h02q01i04204j06k0b803n04d06r0d70ii0rp0ik0mp","0ku0ku___09i04n______02y0sb2rg09909w___1d700000003a04603003h02y02t03w04702v03104409t02s02z05208u0nw0ru0j40q2"],["Kiwi Maru",400,1,0,"0k70ks0k707y03h0j509q03c0sd29q0bz0b70bm1hd00d00a03m04i03k03t04103i02e01r03803j05609f03303e05n0ad0i40rb0hw0n3","0kk0kk0kk08w0330j509o04j0sp0yf0as0dg0ev1ge00800c02f05f02t04105303d02r01e04b04x07g0cq04004m07d0e80ik0rp0ii0mm","0ks0ks___07p04m______03d0se2hk09l0b8___1ct00000003f04403203i02v02w04g03k03903i04u0a703603f05v0ah0nw0rs0j10pz"],["Klee One",400,3,0,"0hw0ih0hb06p04m0j306w02p0qm0tm08i08p0am1i400200b03204j03u04304m03902302002l02s03f05d02h02z04u0970gf0r60g60j2","0hr0hr0ha09p03y0jc06e03y0rq0ra01p0c10e81ip00000a01p05603y04905f03502d01k03k04105208k03g04b07o0e00hq0qs0fs0ir","0k80k8___083057______02q0rr0tt01008l___1c800000002u03z03703d03x03103n03t02n02s03e05b02g02v04t08o0gy0rs0gr0lz"],["Knewave",400,2,0,"12s17z0hd0s008p0hy08p07q0yq0nd0ij0hr0l41fa00500c01s04x04v05a04102r02o01106y0840cn0ga06e0ae0ga0k70hd0qu0hy1wv","1am1am___0o209f0ho08d08d1300dr0m80i7___12z00300b01r04y05205d04i02o01z0150730950el0id06u0cq0h40m10h40q40xq1ye","0zw0zw___0j501g___02b07s0wv0nl0gh0ix___1d100000001h04604204c03o04b04b01i0770880cq0gq06z0bh0hz0mp0nc0rc0hy1pc"],["KoHo",300,0,0,"0g50ig0fk07s04m0im08n02d0sw0rs01508209k1me00900703b04a03u04504c03b01z02702a02f02u04d02102e03q0910gz0ro0f00j1","0gd0ia0fe08803v0it07e03n0th___0130bl0eg1pf00300901s05103v04a05802z02e01x03c03q04i07o03603t06q0f50hg0qx0eg0ia","0k60k6___05x05s0f8___02f0tq0rs00007z___1eg00000002v03s03104103p03103e03z02e02g02u04b02202e04008g0ja0rs0hv0lc"],["KoHo",400,0,0,"0gq0j10fv08204m0im08n0330ux0rs0280a20bo1l800800702s04n03x04804i03402302403003703p06e02l0310530e40hf0ro0fk0jm","0ff0ib0ff08u03v0iq07i0430u1___0130cu0fq1ns00400a01j05903y04a05a02w02g01s03t0450500a303g04607w0g10i60qx0eg0ib","0kr0kr___06s05s______0370vo0rs00j0a1___1du00000002f04503604003m03403l03r03503703q06602m03205n0ci0kz0rs0j10lx"],["KoHo",700,0,0,"0j10k70hb07z03h0in08o05k0x70rs06t0fv0hq1hb00800902405204704d04h02w02m01m05g05t0700et04f05e0dh0m00i30rs0g50lc","0ja0ka0i908h0320iz08m0670xc0tz05o0gs0jc1ga00600a02c05204d03g05a02s02t01b06006d08e0ff04z0680ex0ms0if0ro0h90mc","0l20l2___09204m___05s05v0yd0rs00x0g0___19w00000201s04g03g04103i03c04j02n05u05v0790gu04n05n0d50q00oa0rs0ig0mi"],["Kodchasan",300,0,0,"0jo0k90ij04t04c0i00am02r0t00r00bh08p0a71ix00c00702z04v03y04k04r02i03500j02o02t03l06k02f02q03u09i0gw0pk0hd0ku","0k90k90ja09s03v0jn0ab0410ta___0730bw0de1hy00900901f05903m04704w03l02e01z03p0420530ay03l04105t0e50ib0qx0hd0l7","0mh0mh___04m057______02x0tq0qp03w08n___19600000002g04103404003e02y03l04a02u02z03l06c02j02v0450a80mq0rs0kr0n2"],["Kodchasan",400,0,0,"0jo0k90j40770420i00ap0360u20qa0as09q0ba1is00c00802r04y04104l04t02h03700h03203804607x02p03204g0bp0h10pk0hd0k9","0kp0kp0kp0am03y0jg0b904d0tz0l70880cx0e11gi00b00802p04t03t04c05502n02s01304604g05p0bp03s04906j0fd0i30qw0dt0lp","0mh0mh___0a4057______03d0un0q203s09r___19000000002804703504303c02z03z03v03a03f04708m02u03704v0cc0n50rs0ig0nn"],["Kodchasan",700,0,0,"0k90lf0jz0a802w0hz0aq05a0xv0ph0cl0eh0g71gt00a00a02505f04a04r04p02j03200e05605d0720fc04604s09j0ia0hg0po0ij0ml","0ks0mr0ks0cv02z0je0bb0650ww0ix0b80fn0hc1cy00a00a02805204304i05802i02z00p05u06708h0he04x05m0ba0j90i40qw0is0nq","0o80o8___0an041______05m0y50p506y0er___16i00000001p04j03g04303e03704o02t05j05o07a0hr04e05309n0mz0ob0rs0ef0pd"],["Kode Mono",400,4,1,"0gz0gz0gz04b05k0jb08s03d0uh31k0130c60dn1b900800903u04703o03p04u03x02j00o03d03e0430by03103405k0ig0iy0pz0gz0gz","0gt0gt0gt04u04y0ji08b0490sy27o0120er0gu1d200400a02y04y03m04904z03k02z00504104b05m0dk03w04e08r0j90ju0pw0gt0gt","0hy0hy___09g05s0fn02w03k0uh1yk0000df___18v00000003403u02v03l03o03404803f03j03l0430cj03903a0610nt0p00rs0hd0hy"],["Kode Mono",700,4,1,"0hx0hx0hx03d0420jo08o04r0tl27v09m0g00i51cj00700b03404z03o04f04803s02u00c04q04r06u0fl04g04o0b60kh0jr0pg0hx0hx","0hp0hp0hp03c03y0jf08b05b0tn0n30370hc0j21cm00400b02o04z03s04h04y03i02o00e05505f0990fm04u05n0dh0kg0jp0pn0hp0hp","0jo0jo___08e04n___03h0560tg26y0000he___17600000102k04603003s03j03a04j02x05505606v0gw04u0510cu0sb0pr0rs0hy0jo"],["Koh Santepheap",300,1,0,"0hd0hd0hd08r03h0ku09902w0zi2qd05c08z09x1kr00b00703l04103i03w03e04o02002702t02z03g06301x02g04p0a00jp0rs0fn0m0","0gd0hb0fe0j902w0jq08d03u0x5___0450cd0en1o700500a01u05903p04504b04h02l01403k04004y08c02s03n06r0es0j80py0ef0j8","0jo0jo___07p058___08y02z1282wy03w093___1gn00200203e03l03603j03503003m04802x03303i06201u02c05209e0o00rs0g70n5"],["Koh Santepheap",400,1,0,"0hv0hl0i608602y0ki09004013j22m05c0bi0ck1js00a00803304j03s03m04804e01y01s03w04504u08402d03806u0g90jl0r40gf0ma","0gr0hr0gr0lk02y0jj09704o0zv1k704y0e30fp1ko00900903704l03w04904p03l02v00a04l04x0670ac03604908p0hy0j40px0fs0kp","0ku0ku___070058___08t04817v28s03z0bn___1ev00200302s03z03a03l03403603v03v04504c04z09402a03407a0f00oz0rs0gs0ob"],["Koh Santepheap",700,1,0,"0ix0j80ix0a402b0jl08o05v1f91e609t0eb0g91iy00900902m04q04304e04n03a02m00z05p05y06q0as02q04b0ag0jp0jj0qe0hs0my","0iq0iq0i90it01z0ji09806c17t15a08n0g60in1hr00800902v04p04504e04r03i02q00906606j0810cl03h0540cc0k00js0pw0hr0mo","0ml0ml___06i04n___09906e1nd1mt0af0eg___1c000300302b04403h03q03703g04403905w06e0720cg02p0470an0oo0q20rs0ij0q2"],["Kolker Brush",400,3,0,"16p_________043___07k02w0vf12c0rs______24u00h00s03f06305z03m04502q00i00502a03504g06301s02m04b06n09p0j916p16p","0xj_________050___08k05b0xt0sk0rs______1hj00f00o03v06d05y03z03202u00l00404c05t08c0d803e04v07y0al0ae0k50p1161","0qm______0l602e___0960380zg0vq0rs______1pl00b00q02y04d03r04x04k05101000702g03m04s06v01u02l0440760hh0ls0nc1ud"],["Konkhmer Sleokchher",400,2,0,"0k90l40jo07c03h0kk0840670xb0rs09m0gn0i11fp00400a01u04y04604e04204402j01c06106b07z0ff05106d0eo0m80jv0rs0j40m0","0jp0l60jp07203y0l908806r0x20m60a50hm0iv1cz00300a02104t04504c04q03r02i01406g06w09i0gm05g0740fp0mz0jy0rp0iq0lo","0lf0lf___088042______06c0wr0rs0410gk___18e00000001m04i03q04203e03i04n02d06406h08i0hl05606k0e10qr0ne0rs0hy0nq"],["Kosugi",400,0,0,"0fl0fl0g508d02w0j505303l0si0rs00i0dq0e91of00000902p04r04204c04f03c02e01j03i03p04d07w03b04308x0i30i80rs0cp0g5","0ft0ft0ft0hm02z0jg04j04j0s00kg02f0fx0h31lu00000502904u04404i05403802g01604604m0690bw04b05b0c60jp0iz0ro0du0ft","0g50g5___09v02b______03n0sn0rs0000du___1p200000002d04603j03w03g03d04902t03k03n04807x03e04b09n0ms0nd0rs0az0g5"],["Kosugi Maru",400,0,0,"0g50g50g506k02w0j505403s0sp0qb0000dv0eu1on00000902k04t04604e04h03a02h01f03n03t04j08703e04d09e0if0i50r90f00g5","0fu0fu0fu0d101z0jh04j04n0s70i601r0fo0hc1n600000502604x04a04l05403502h01104b04o0640bv04d05k0ca0jk0iz0r00dv0fu","0g50g5___09s02b______03v0t90qo0000ea___1ou00000002604603m03z03h03h04e02j03r03v04e08703j04m0as0nc0nt0rs0az0g5"],["Kotta One",400,1,0,"0g70g70fx0by02w0gs08u0340us1pw0640aj0c81w000c00703h05004e04o04p02302o00a02z03703y06z02h02z05r0cq0fq0oc0db0hy","0fv0gd0fv0c502z0gf08i04b0ux09l06y0e50gk1tp00500b01v05w04l05704r02d02h00704104f05y08z03e04c08e0g20fv0oo0cw0hu","0k40k4___0fg03g___09k03k0wk26p04x0au___1ir00500403604a03603i02x02z03w03o03d03m04i09c02j03a06a0dc0mp0rs0go0op"],["Koulen",400,2,0,"0fn0fn___04b02b0na___0540ra0rx0000i6___1qd00000001l04e03o03z03i03p04k02e05305506p0db05607e0lr0rr0pk0rs0fn0fn","0fq0fq___0hh01z0mf01x05t0r20lm0280jp___1kc00000001p04a03o03w04303p04h02005k05w09m0e205w07z0ld0qs0pr0rt0er0gq","0fn0fn___04c02b0nb___0540ra0rx0000i3___1ql00000001l04e03o03z03j03p04k02e05305506p0db05607c0lg0rr0pj0rs0fn0g7"],["Kranky",400,2,0,"0hx0jd0hc0op02w0f108301s0qn3z507i08h09u2lz00800b03j04q04005003u02202f01q01o01s02804101n01x03h07f0em0ql0f10kt","0j20jj0h50xa02v0er07b04b11s0th08w0d60e51vc00400c02w04v04205104402102w01g03705706g09i02t03o08g0f80ee0qv0f8106","0ig0ig___0ir03h___04m01q0qo50v02408p___2ey00000603g03r03503s03003803v03e01n01r01z03f01l01w03p07n0oe0rp0c40lc"],["Kreon",300,1,1,"0ha0ha0gf06u02w0iq0bf0330ru23203r0az0cc1pe00b00703y04803p03y04303102e02102x03a04a07q02u03805w0bp0i10rs0ez0if","0hd0hd0gc0840220j20bi0490sg1mk03w0e50fr1pj00d00803404u03y03404y03302q01f04204i0640au03r04j0900g50ii0rm0fb0id","0hv0hv___07e04b______0390sk23300g0bb___1jn00000003k03y03003n02x02y04803l03303c04707z03103f06n0bu0nx0rs0dt0kq"],["Kreon",400,1,1,"0if0if0ha06m02b0j50bf04d0va1ot03r0dp0et1nb00b00703b04n03s04204203402l01s04504l0640b103k04a0990hn0ik0rs0fk0jl","0hx0if0he0d00220j50aw0540ui1f90610fn0h51mp00a00802u05103104a04x03502t01b04v05h0870cq04e0580bh0j60ik0qy0ge0jg","0jb0jb___07t04e______04n0wx1qd00y0eb___1h600000003004e03903703i03a04003604e04r06p0ay03t04j09g0jd0oz0rs0ge0m9"],["Kreon",700,1,1,"0io0io0gc06a01r0i80az05a0xb1ih06f0fr0h81o000d00803504y04603r05002q02l00w05005n07y0cx0440580c00j40i80qi0fr0ju","0ig0iz0ge0fp0220j90aw0620wp1gr0450gw0j71iu00900902m05403304c04x03802t01705t06j0a10ee04w0670em0ll0io0qz0fd0ki","0kq0kq___07704b______05v0z31ir03f0gc___1dz00000002m04g03c03n02z03d04p02q05m06009g0eo04l05r0ct0ow0pk0rs0if0nm"],["Kristi",400,3,0,"0k80um___0eb03h___0e202i0is1350cc09i___2sd00g00s02d05g05e05g03t02u01700302902k03e05702g03v06f09a0dd0ly0990um","0tm______0eq05x___0dc04s0s40dm0go______1vu00e00p02805o05q05j04c02q00i00103e04m07009t03u06o0be0ev0et0kv09v11i","0hd___0hd1ip0580n90bp02m0ij0vw0dw___0b22di00700m02f04e04704h03x04e03400302g02n03405402d04807i0ab0fs0nq0af19q"],["Krona One",400,0,0,"0ph0ph0ow0800580ku0990600vs0rs0hn0eb0ff14c00800901y05403q04204204g02j01h05n06a0920kh05205j0a20jw0jv0rs0n50qm","0nj0nz0mm07d04m0k108s0600uy0lr0ip0fm0gv15900600902504z04l04304t03l02l00o05r06e0ah0ji05605q0b50ig0it0pz0m50pu","0r70r7___07y05s0l0___0610vm0rs0i60er___0zp00000001q04n03f03q03g03g04u02l05w06c09b0lz05805n09y0mg0ms0rs0nq0sy"],["Krub",300,0,0,"0g70g70g706w0420j707j02d0s50rs01408n09n1qx00300c03304j04604s03q04a02n00602b02f02w04w02302g04508y0gw0nw0f10hd","0gu0gu0gu06303h0kd06s03o0su0wk01p0c90dm1qb00000c01o05204304v04m04m02e00603f03r04l08o03504007e0f10is0on0fu0ht","0j10j1___089057______02o0sv0rs00008q___1f100000002l03w03b03x03n03403i03v02l02q03505302b02p04u09r0ip0rs0gq0lc"],["Krub",400,0,0,"0gh0g70gs06n0420j807m02v0te0rs0140a00b51qe00300c02t04s04704u03u04502l00602r02x03f06202f02v0580by0he0oa0fm0hc","0gu0gu0fu07b03z0kb06t0400sw0u201n0dd0f51q000000b01i05a04504v04q04k02a00603o04204w09q03e04a08m0fw0iu0on0eu0ht","0j10j1___08w057______0390tz0rs0000aa___1eq00000002a04503d04003m03703q03h03603a03s06k02p0390630cv0jv0rs0f00lc"],["Krub",700,0,0,"0hx0hx0hx06i02w0j708305k10z0sh07h0fx0h71n800400c02505404j04w04c03v02800905h05o06d0cu04005m0dp0ke0il0ov0gs0j3","0ia0hr0ia0b00320jy08g0660zv0wq03e0ge0iu1l400200c02f05304n03p05304b02000805w06907q0e704n06k0fg0ky0ji0oj0g90ja","0k70k7___08k041___02w06e11x10100h0gs___1as00000001p04b03o04403k03k04e02h06d06i07j0fm04n06j0fw0r30o80rs0fk0mi"],["Kufam",400,0,1,"0j20ih0j207u0570ky0990400uj0rs0350c80dp1g800800702d04o03m04d03j04o02801y03w04204w0bs03j03x07k0iq0js0rs0hc0jn","0i00i00i007004q0kl08x04j0tm0n304a0e60fb1ho00600702h04o03q04d04904n02n00q04f04m05u0cz04404o09i0ip0j80qq0h10iy","0j20jd___0a3057______0420u40rs0370co___1a600000002804c03704303d03704603804004504x0d303j04007c0kr0mk0rs0fl0kt"],["Kufam",700,0,1,"0k90k90jo06m03h0jx08p06q0xr0rs09m0hp0j41dn00600a02205304b04o04703s02p00l06n06u0ak0h105f06o0gv0p50jo0q60ij0lf","0jr0jr0jr06303h0jh08f0750x60lq09m0j00ju1b900400a02805204d04p04y03f02j00606z07b0c90h905v07h0h30nq0j30pw0is0kr","0ld0ld___09g04m___0620740vy0rs03w0i3___14m00000201p04h03n04303b03e04p02g07307a0c60ix0640730ip0rs0p10rs0ih0np"],["Kulim Park",300,0,0,"0hv0ig0hl06z02w0jm0830310qi0rs05x0a30b91ky00400902g04t03r04a03x04702701t02x03403t07102w03c05p0bg0i00r70g50j1","0hs0hb0is0al01z0k607j0430r1___05x0d90dt1lc00100901c05703x04d04w03x02e01j03v04705a0au03z04j08i0f60ip0qs0ft0jr","0ig0ig___06y03h______0350rj0rs03709r___1fm00000002704b03g04003b03603v03i02x03503q06l02v03c05u0ad0k80rs0f00lc"],["Kulim Park",400,0,0,"0hv0hl0i60a902w0jm08303k0r00rs05o0bz0cr1kb00400902904y03v04b04404002d01n03g03o04k09a03f03y0750f10ig0rd0ef0j1","0ij0ij0j10bi02x0k808504j0ru0m905o0dw0f41i500300902c04s03t04804v03i02g01j04a04l05x0dd04c05009w0gv0iv0rl0fm0ji","0ig0ig___0b203h______03p0ry0rs02p0bq___1em00000001z04f03h04003c03804903503g03q04g08t03e0410760ds0kz0rs0d90kr"],["Kulim Park",700,0,0,"0i60hv0ir09i02w0jm0830550rf0rs0660g60gx1h000300a01x05104304d04c03r02l01d05105b07f0ev05005x0cu0jy0j20rq0f00j1","0in0in0in09402y0ju08805u0ry0lf07n0h60ih1ea00300a02404y04304c05003b02j01505i06109t0fj05h06t0en0kg0jo0rn0go0jm","0ig0ig___0am03h______05c0s00rs0370g5___1ai00000001n04j03n04103d03h04n02i05105e07l0f40520650cn0pj0n50rs0du0lc"],["Kumar One",400,2,0,"0ja0kz0iq07v02a0i90b007n3my16f0dn0g20i01ja00a00c03104o04m04q04o03302400a07g07n07v08z01m06k0hv0p30it0p50i50m4","0j60jo0ip0d502y0j90af0802n60zh09g0hv0jp1ij00800c02q04l04k04m04h03l02g00a07t07y08a0ae02a07d0in0oy0jo0pk0hp0ln","0mk0mk___07f042___08n08b3p31jp08s0fv___1d800200402s03t03s03x03503q03u02p07o08b08c0aa01q03k0i20s30qu0rs0jo0pg"],["Kumar One Outline",400,2,0,"0ja0kz0iq07y02a0i90b101s0tp4zi0dn09r0ay2v900d00b04h04103t04504f03902n00d01s01s02002o01n01v03m0cl0it0p60i50m4","0kd0lw0kv0nl0210ia0al0310nl3o70d80eq0i22sp00a00d03j04x04703f05303102o00b02y03304009203d04609b0ic0in0or0ic0me","0ml0ml___07f03r___08p01y0ux5pr08s09v___2g700300404603b03503k02q03503h04501y01y02502v01r01r04c0ah0qv0rs0jo0ph"],["Kumbh Sans",300,0,1,"0hk0hv0i506p0440if09e02v0sb0rs0an0900ad1kf00900702s04q04503n05j02q01p02402r02x03k05x02j02y04s09r0gg0r40gz0jb","0ii0ii0ii07k0440j10940460sx___0780c90dx1j400500901j05c03504h05k03g02d01l03r04905c0ae03i04e07l0dm0hg0rl0gg0jj","0jb0jw___07305a___04402y0t70rs05k090___1d800000302l03y03f03d04603603303z02r02y03k05j02j02z04z08z0ie0rs0gz0mu"],["Kumbh Sans",400,0,1,"0hv0hk0iq0a20440if09d03o0t80rs0990bd0cm1jw00900702g04z04903q05j02o01w01w03j03q04k08u03703r06i0dl0go0rj0ft0jb","0il0i40il08y03x0j80a104l0tv0l409g0df0f11iu00800702j04v04204d05902j02c01f04c04o05x0c404104s0900ft0h30rl0gn0jl","0ig0iq___0bk04p___04b03q0tu0rs04n0b7___1ci00000302804703i03g04703903g03h03l03r04l08203703t06l0ct0k10rs0ft0mu"],["Kumbh Sans",700,0,1,"0jc0jm0jc08702x0if09d0600vo0rb0b00fu0hu1fx00800902005604e03y05e02n02a01i05t0660870fk0580680dm0kq0hq0rr0hk0ki","0jn0jn0jn07v02y0j80a306i0vm0m10b80go0je1cz00800902505004904k05702f02k01606906p0a00g505i06w0eq0lk0hx0ro0hp0lm","0k70k7___09z03j___05c0660w80rs0530gk___18300000301r04g03o03k04303h04202n05z06b08j0hb05a06e0da0qq0n10rs0hk0o0"],["Kurale",400,1,0,"0hw0ih0hc07g03h0hw09t03y1241cv07s0bu0c91mt00h00f03104u04504h04d02l02v00o03m04404t07c02h03f0760fk0gv0pz0g60ks","0ht0ht0hb0fq03h0ib09g04v0y00rs05x0eq0gh1mz00b00h01p05e04804j05402m02w00m04i0510610a003h04o09z0h90hq0pv0fu0it","0k90k9___093057___0al04b12v1wy03w0bv___1eu00600502n04303c03o03303703t03p04404h05908q02m03p07u0f70og0rs0fm0nq"],["LINE Seed JP",400,0,0,"0ih0ir0hw09d04c0ip08l03n0ry0rs07v0b90cx1iu00800902m04t04204a04l03102d01m03f03p04i08c03a03w06j0e50h20r90g60jm","0hr0iq0hr0ab03y0ih08b04h0sd0ee06t0d50es1k500400a02804z04704j05h02h02q00v04704j05s0bi04304t08u0fy0h40qr0gr0kp","0jc0jc___0a505a______03q0s70rs04n0b0___1al00000002g04703i03e04102q03y03k03j03t04d09303c03y06m0cx0kl0rs0fu0ma"],["LINE Seed JP",700,0,0,"0k80k80jn07o03r0jn08o05o0uc0rs0a50fe0gp1el00600a02005004404e04h03f02k01f05b05t07o0fr0520600ch0js0il0rr0ii0le","0jt0jt0iu07q03z0jd08c0640tv09k08q0g70hr1c700300b01j05004c04i05903202m01405o0690910g505i06n0dl0jd0iu0rq0hu0lt","0k70k7___09t04m______05q0tr0rs04x0ff___16j00000001r04h03l04103f03d04o02j05e05x07z0hc0540670c00om0mk0rs0g60no"],["LXGW Marker Gothic",400,0,0,"0hd0h30hd08o0420i208o03z14p0rs07q0c80d41mq00600902v04h04b04l04g02v02b01k03w03z04906k02903k0920hf0hd0r90fn0hy","0gs0gs0gs06z03y0hn08704q11l0mw06y0ed0g11mt00300a02f04q04g04t05702702g01704m04q05e09b03504l0ba0ie0h20rp0ft0hs","0gr0gr___097042______03w1730rs0000c8___1l400000001x03w03s04603h03s03v02y03u03w04306d02503g09b0l80mt0ru0cq0hx"],["LXGW WenKai Mono TC",300,4,0,"0g60fw0g605b0420j306x02o0qh0tf00j09e0bc1m600200d03104j03v04504l03c02101v02k02q03c05b02h03105b0bk0gs0r60f10gr","0fs0fs0fs02u02z0jb06e03y0sb___0000cl0ej1l800000a01p05904004b05c03702901h03k04004z09703h04d08y0fa0ht0qu0et0gs","0g70g7___07l03h______02m0r80u000009q___1lk00000002p03y03b03k03w03803n03k02k02o03604t02g03005s0cq0jb0ru0dw0gs"],["LXGW WenKai Mono TC",400,4,0,"0g30g30g306103g0j206t0330rj0tn00j0at0cd1lz00200d02w04o03w04504j03c02301u02z03503t06f02u03g06d0ec0h00r60ey0go","0fs0fs0fs06b02z0jc06f0470si0mq00k0dj0fc1kt00000a01o05704104c05c03602c01g03x04805b0a903r04m09u0gt0hx0qu0et0gs","0ge0go___09802w0gd___0330s20tp0000b0___1ll00000002j04103d03k03v03a03s03f03003503n05y02v03f0730f80kg0rv0bi0h9"],["LXGW WenKai Mono TC",700,4,0,"0gg0gg0g604402w0j306d03i0rq0sc00j0bu0dk1mp00100d02505103z04704k03l02801q03d03k04g08703803y07r0fy0hk0r80fl0gq","0fe0fe0gd0cv02w0ix06b04d0sa0nh01r0e30g81ls00000a01s05504004a05903802b01j04504f05q0b404004w0an0hr0i60qw0ef0gd","0gr0gr___09102w______03i0sm0sc0000cj___1lx00000001v04d03g03m03y03c04103703e03j04907k03803x08c0jv0m30rv0c50gr"],["LXGW WenKai TC",300,3,0,"0hm0ih0hb07904m0j306w02p0qn0tk08c08q0al1i500200b03204k03u04304m03902202002l02s03g05e02g02y04u0970gd0r60g60j2","0hr0hr0h909w03y0jb06d03y0rs0qh0280c20e71ik00000a01q05703y04905e03302d01k03k04105208m03g04b07p0e00hr0qs0fs0iq","0k80k8___084057______02q0rr0tt01008l___1c600000002u04003803d03x03203m03t02n02s03f05c02g02u04t08o0gy0rs0gr0lz"],["LXGW WenKai TC",400,3,0,"0ht0ie0h908404m0j306s0350rq0tn05w09x0bo1hy00200c02x04p03w04304l03702401y03103803x06d02t03d05p0c00gu0r50g30iz","0hq0hq0h80be03y0jb06d0480sj0q40260cs0ev1i200000901p05704104905d03302e01j03y04a05d0a703p04j08o0fd0ht0qs0fr0jp","0k40k4___09z05r______0370so0tl01y09u___1bz00000002n04503903f03w03403r03n03303903x06702t03905q0as0i60rt0ey0lu"],["LXGW WenKai TC",700,3,0,"0hm0hw0hb08w0410j306d03k0rz0sc0550ba0cv1iw00000c02505103y04704m03g02b01s03g03n04i08203803w06w0ey0hc0r70g60j2","0hb0ia0hb0bb03u0iy06c04f0sq0ib03a0d50ft1j700000901s05604004905a03402d01m04704j05s0b003z04t09d0g10hg0qv0gc0j8","0k70k7___0b004m______03m0su0sc00x0b5___1cp00000001x04h03d03h03z03804203d03i03o04h08703703q06n0dg0j50ru0f00ld"],["La Belle Aurore",400,3,0,"0gw0os___0mq01p___0mj0360q013v0bx08o___1q900f00h03b06b04z04n02z02i01t00d02s03604706u02p03h05l07z0900lj0di0ta","0eb______0qp038___0kk0410qd___0dw______1pp00l00i03806v07303q02z02900k00303e04206c08y03i04p07q0ab08o0jm0cx0wb","0i30km___0ni029___0ap0300ol0vw07y092___1me00400b02m04u04604204704002z00k02m03003s06102p03h05i07o0bz0nu0e40td"],["Labrada",300,1,1,"0g70je0fn09h02w0hl08802d0uw34c08a08i09r1qx00a00g04204g04204c04o02n02i00c02902h03405x01u02803u07h0g70ow0eh0k9","0gd0ia0gd0k002w0hv07h03m0tp0sm05t0by0e11rz00400e02905h04404e05a02x02a00k03e03x05c08702z03p06d0d00gg0o50eg0j9","0ku0l4___07h058___06d02o0x13mq07n08b___1f600100a03n03q03503i02u03a03b04202i02r03b06k02002c04g0800lo0rs0hd0ph"],["Labrada",400,1,1,"0gv0js0gv08v02c0i108903m0ws21a08v0bv0cp1p500900h03d05004803u05f02k02300m03f03v05609402m03d06h0cq0gv0p90f50ky","0ge0it0ff0ig01x0hu07e04i0w10wc05p0e70gk1px00300f02005n04a04i05h02t02a00c04804t06l0a103e04e08e0fk0h90o90eh0ja","0ln0mt___06r05a___06g0481092i50860bu___1cz00100a02v04b03c03403h03g03203x03v04d05j0b602v03k07h0dn0ma0s30iq0pr"],["Labrada",700,1,1,"0j20ki0ih07e01q0ih08o05x1e41bl0bu0ff0gi1na00800h02u04w04k04p04e03302400l05n06607a0aa02s04x0bh0it0hw0pz0gr0ly","0jj0ki0i20i401y0j809006n19q12i0au0gp0in1jj00700f02y04t04g04l05102r02200l06a06x08h0co03i05r0dl0kb0hy0pt0hl0lh","0nm0o7___065041___06j06v1ke1h90dc0fe___1c000000902d04703o03t03403s03p02x06c07208a0cy0320560c40pn0o80ru0k60ro"],["Lacquer",400,2,0,"0g70f2___08i03h___07804a0qg0se01y0dm___1gj00300701w04t04805203u04f03000a03x04c0650al04205m0a80hm0gt0ob0eh0hy","0gq0gq___07v02y___0590520rq0ms02b0g8___1co00300502404n04604z04g04d02n00804k05608g0cv04r06q0cq0jb0hw0o10er0hp","0ir0ki0hv0aj02x0n508s04d0om0q40330db0cg1jq00800h01z04m04304104b04j03400h03v04h06t0b804d06d0bo0iq0hm0ov0ft0mu"],["Laila",300,1,0,"0gs0h30gs09d04n0jb09902w0su0yr03509h0am1m400b00a02n04l03u04a04103s02501v02s02y03i05f02g02z0530as0hh0r70eh0hy","0hp0hp0gq08f03y0ji09d0440s60p902a0cx0eq1ll00900a02p04n03v04b04y03502g01803v04705609103l04e08i0fh0i20qx0fr0ip","0hu0if___0ae06c___04102w0t10yr000099___1fb00000202b04303g03v03f03603m03v02t02y03i05b02f02y05c0a40jm0rs0ee0k5"],["Laila",400,1,0,"0hc0hm0hc08z04m0jn09e03l0uu0wh02m0aw0ca1ks00b00a02g04p03x04a04303t02701s03i03o04b06y02w03j06o0ey0hz0ra0f10ih","0hp0io0hp08903y0ji0a104j0tt0oy03w0do0fn1jz00a00b02j04p04004a04x03502f01904e04m05p0ai03y04u09n0h40i20r00fq0jo","0ij0ij___09r05s___08703l0uq0wm0000au___1ec00200402404803j03y03f03a04003503j03o04d06y02x03l06o0dr0kg0rs0f20ku"],["Laila",700,1,0,"0jd0jy0j307o03h0jn09v06610f0rs06y0fm0h81gv00c00b02104u04704j04903i02h01e06506a07g0cp04d06b0et0l60iq0rd0hc0lz","0j20jj0j207n03t0jo09w06k0zv0n906o0gv0j11f400b00c02404q04404e04v03703100s06e06p08h0ea04v0720fp0md0ih0qw0h50ky","0k90k9___083058___07j0680y60rp00y0fx___19100100401p04f03o04003i03l04i02b06506e07t0eh04n0660e00ph0ns0rs0g70n5"],["Lakki Reddy",400,3,0,"0jz0lf0ij0t002b0hy08p05u18a1dc08p0fm0dh1lv00600c01r04q04b04o04503h02q01j04t05z07h0ar03304m0a90h70hy0rf0hy0nq","0js0ks___0uc01z___07f06a12z1080ap0h5___1jv00300c01m04v04g04v04w03502x00n05b06e08c0dd04005v0by0jc0h40pz0gt0vn","0ml0ml___0rt02w___02w06d19a1ls09i0fo___1hs00000001s04d03p03w03a03p04g02n05j06m08e0bu03f05g0bt0ol0q90rs0j40r7"],["Lalezar",400,0,0,"0ku0ku0k908e02b0k908p07t1270rs0dw0je0ku1ez00400b02305404h04r04904b02900607r0810bn0i105o0970k90p20k90p20j30mk","0kl0kl0kl0c501z0ki09208911p0ld0bu0k80lv1bd00400b02804x04f04n04u04102900508408k0e70ir0650ax0k20oo0jy0pn0jm0mj","0mw0mw___095044___0440901490rs07v0k6___14t00000101r04e03t03j04503404l02h0900970dw0kc0690aa0p20rs0q00rs0i70p9"],["Lancelot",400,2,0,"0f70fs0ex09q02x0gj0de02z0zj26h06h0ab0bc1t200l00o03w04m04g04005g01q02300d02u03403r06d01v02k04y0aa0fj0om0cv0ip","0ft0gs0eb0km01z0h50cn0480y00rs06d0do0fq1tb00f00s02e05f04k04s05c01s02300903v04e05j08p02z03w07l0e70gm0oj0cu0hs","0i10i1___09304o___09603h11y23y0740a8___1eq00o00m03103i03c02x03y03502t03v03d03l04506n01x02w05g0ab0lc0rj0f50og"],["Langar",400,2,0,"0hd0hd0eh0fj01r0hd07t04h0sr0xn02q0fg0gz1x000500b02705s04c05b04k02j02e00904704n06m0bc04304t09x0hn0gb0ob0f20ij","0gr0hq0fr0w101z0hj0850570sx0u506a0h40ik1ri00500b02g05m04e05e04x02k01v00604s05e0840dq04o05p0ce0hy0g80o00fr0jp","0jn0jn___08p036___0780560sw0r700h0fv___1hh00100401r04r03f03w03703b04r02n04q05406l0f204p05l0bg0p90og0rw0cq0k8"],["Lateef",300,1,0,"0hd0hd0hd07s03h0hd09903n1031z508k0ai0cu1np00a00803704y04c04r04v02e02g00c03c03t04s08602b0340610d00gs0ob0f20k9","0gs0hs0hs0ib02z0hi09904q0wq1lz07p0ds0g51nc00900903905204h04y05802k01n00604g05206t0b003f04k08v0ga0g80nv0et0jr","0lf0lf___08z06y___09904a13w21u08g0bw___1bf00200502l04403b03r03703603r03q04304h05i09w02m03j07e0dq0nt0rs0hd0qm"],["Lateef",400,1,0,"0hy0hy0hd0af02w0hj09904g13m1pv09t0bx0el1m200a00902x05204f04u04r02m02c00c04604n05u09b02j03n07f0fj0gt0ob0fn0lf","0hs0is0hs0gv02z0hi09905c0zg1dt09h0ea0h11lt00900903205504l04z05702m01l00605205r07p0bp03o04z0a90h90gy0nv0ft0lr","0n50n5___08206d___09905918p1pj0a40d4___1ae00200502d04703f03t03803a03z03e05005g06q0b802w04408r0iu0oc0rs0j40r7"],["Lateef",700,1,0,"0j20j20j20b602b0hw09805y19m1ei0dm0e30gz1it00a00902l05804l04y04n02s02700c05q06507z0bu03104u0ag0i30hb0o90gq0mi","0it0ks0it0kr01z0hk09a06o15w17i0cv0eg0jb1hh00800a02u05a04o05205602m01i00606c07309n0eg04305v0dc0jr0h40nv0ht0mr","0pe0pe___07p05x___09d0721gf1hi0e50f7___17h00200502404e03303y03v03004603206u07c09c0dx03f05h0bt0ox0ox0rs0ko0tj"],["Lato",300,0,0,"0gs0hn0gi06604x0je07402c0tb0rs04207g0911ls00300902z04903t04b03x04102102402702d02q04201y02a03r06t0gx0qs0f20ij","0gd0hb0gd06t03v0jp07903o0se___03e0bd0de1nf00100a01j04u03t04b04p04602402203c03s04i07n03403w06n0dx0i70qy0fe0ia","0ij0j4___06o06y______02g0tk0rs03507c___1de00000002s03p03d03w03j03703m03s02c02h02t04502002f03z06r0hf0rs0g70lf"],["Lato",400,0,0,"0hd0hn0hd09b0420jo06y03y0v60rs0550bu0dd1kj00200a02804v03z04f04703q02g01n03r04204o08j03603v07i0fz0i10rb0fn0j4","0hr0iq0gr08103y0jh07b04t0uh0mc04d0dp0ga1k100100902g04s04004e05103702i01604k04v05v0c604604z09v0hq0i40r10gr0jq","0ij0ij___0ai058______0440v40rs03l0bp___1ci00000001y04e03h03z03f03c04c02w04104504t0a603f04507d0fg0kb0rs0f20ml"],["Lato",700,0,0,"0im0j70ib07t03i0jh07a05b0wn0s308k0ei0gj1iu00300a02o04s04603t04z03902901k05205h06e0d804805c0bg0jy0ii0ro0hg0kx","0iq0iq0hr0e403y0jh07905y0wt0mr06n0fs0ib1if00100a02904s04504g04y03702m01505m06107k0e504o0640cs0jv0iy0rp0gr0mo","0j30j3___09y04c___05j05j0wh0rs03n0eh___1a900000101p04h03k04003h03g04h02n05g05m06p0f504g05n0b40nl0m00rs0fm0nq"],["Lavishly Yours",400,3,0,"12709u___0eh02w___09g0240yd0rr0ij04t___27300j01a04b05e04n03e02i02k02m00m01i02302n03o01901q02s05207k0nv09u16u","16x1a5___04p03p___0ch0480y40f50rs0a7___1rr00l00v03d05g05l03a02v02g02l00s03604806009c02l03t06k0a60950o413p1hj","1uo1oy______02f0ne06c01z0wd___0rs06f___2ho00200r02v04403e04s03c03i04a00r01a01z02h03m01701q02p04q0jz0ow1oy20e"],["League Gothic",400,0,0,"0ah0b109w06j01r0km07v0460px1b50000kn0kp2nh00500b02k04n04a03s04l04102i01104504c04p08m04h09w0ky0rz0kn0rs09w0b1","0dr0bs0vf0sh02g0l708505a0qh0ko0790kn0kq1mc00200a02104j04d04g04n04002d01305105m0a40et05y0dd0ky0qx0kv0rq0at0ok","0b10b1___06002x___02204f0r319z0000l9___2dp00000002804603v03g04103v04e01u04e04f05109304k0b30q30s30qi0rs09v0bm"],["League Script",400,3,0,"0dw0eh___19c04n___0em01b0s1___07q04j___1yk00j01004404j04804m02j02n02v00r01501d01s02l01201a01r02d0bl0nq0af0sy","0q10mj___0nd0300en0cs03r0rz___0fg0b3___1r900m00s03605f04g04r02e02v02w00j03804006608y02w03w06308a0d20n50g11e2","0tj0tj___0ay03r0nb08x0180ro___0fg044___1px00700t03h03h02z03303204f05g00w01301b01o02n01001801q02c0kd0ow0ij0yq"],["League Spartan",300,0,1,"0hk0hk0gp05k0440hk09002v0rp0rs08409a0ax1nz00900802x04s04603t05x01u01s02502q02w03i05p02k0320570ao0fu0r70f80i6","0gt0ha0gt08l02z0i608k0430sg___0600ck0eh1os00400901k05c04804m05p02502e01i03n04405409s03l04d0840dx0gs0qt0et0hs","0hk0hv___07a05a___03w02v0rg0rs03o095___1h100000202l04403g03904703703403u02p02w03f05a02k0330590a00id0rs0ft0ki"],["League Spartan",400,0,1,"0hv0i60hl09s0440hl08z0440u30rs0990c90dx1ll00800902g05304b03x05n01x02401v03x04505409m03j0480830fc0gf0rm0f80ir","0i90i90h908c0320hy09d0510ue0n30930e50gf1kx00600902l05604g03l05i02402m01c04q05306t0cb04b0580as0gq0gl0rk0g80ja","0i60i6___0at044___04p0450tf0rs0330cn___1ef00000302304i03j03c04503a03p03603w0470500ay03k04d0820gv0kr0rs0e20l3"],["League Spartan",700,0,1,"0jx0ki0jc08b02x0hl09006q0wh0rm0ap0gv0in1dd00700a02105604k04b05702502d01k06l06x09t0gw05m0790fi0oj0h20rs0i60l3","0k00k00j109x02v0gy08z0710wn0kg0b00hp0ka1c300700a02504z04g05004t02303800o06t07d0c00h105z08b0fy0nk0gl0qw0j10ky","0l30l3___08o03t___06g06t0vo0rs0530ho___17m00000301o04j03s03h04403m04102i06k0740ad0hs05t07o0gg0rs0o20rs0hl0mu"],["Leckerli One",400,3,0,"0ng0n520c0pc03r0hd09y05s1080vy0af0e40g21l100f00i02506004c04j03t02902n01605505w07u0cr0430580aw0hg0fw0qr0j40zw","0mq0mq1z30uc03y0hj0a706c0y30oi0ci0fe0ig1fm00d00i02f05y04c04j04602402m00t05u06j09t0f504y06n0ec0ib0g30qv0ir19f","0n50n5___0gf03h___09w05w11s0qc08v0en___1es00900b01t05103j03l03503l04m01y05605y07s0d903z0540af0ht0n60rh0ij0r7"],["Ledger",400,1,0,"0ij0je0hy08x0420hy0bu03z1aq1tb0a50b00ca1it00800803a04e04204e04g02i02702403r04404m07m02002r0680dx0hd0rs0g70lf","0in0jn0ho08m03x0hh0c304s14q1hr0990di0fs1i600900903b04e04204h05501y02d01o04l05006109002q0400800g00h20rq0fp0km","0ku0ku___08g05s___08g0461dk24j09l0b0___1ak00200202x03o03e03p03603b03n03w03z04704o08a02002n06u0d30oh0rs0hd0q2"],["Lekton",400,4,0,"0g70g70fn02n04n0jw08b02s0sj0rs01409m0bk1g800700803604i03r04803m04g02501k02m02u03b06t02j02t0500c60ik0qr0f20g7","0fv0fv0fv03s03z0kb07o0400s7___00j0dj0fn1gr00200b01n05903x04d04s04401n01r03s0460530bp03l04a09c0gp0iy0qq0fv0fv","0g70g7___04w0580fb___02s0t00rs0000a7___1g700000002m03y03e04703d03703s03c02m02t03605b02h02u05v0ce0lo0rs0eh0hd"],["Lekton",700,4,0,"0hd0hd0hd04o02w0jw08d04s0ua1g40240et0hs1fi00600a02f05303y04a04403v02g01804n04x06c0ej04904s0bv0k50jd0qr0g70ij","0hp0hp0hp0a602y0ke08c05h0u60z702s0g90j91cx00500b02k04z03x04b04v03c02g00z05705p0870f104r05s0dv0kc0ju0qz0gq0io","0hy0hy___08d02m0gd___04s0um0s90000fh___1e100000001y04g03g04503f03b04l02i04p04t05q0e404904w0c50pl0nz0rs0f20ij"],["Lemon",400,2,0,"0lk0m50lk06i02m0k207207g1270tx0i30ie0ii1g600200m02l05204l04205604101h00607407m0950ez05207s0g40l80iy0nr0jt0m5","0l30l30l30cg02w0jp07307n11n07n0jn0ho0j91d800100g01v05104o04r05604501l00507707v0a20gb05e08a0gv0lg0if0n60j60m2","0nf0nf___0a802a0n405e07v10h0oz0gy0iu___1c400000d01r04k04404a03z04404d00b07r0860ae0hl05t08o0he0p00n40pp0ma0pp"],["Lemonada",300,2,1,"0jn0jn0jn07q05i0le06y03x0w50ug0330bv0bu1hq00200o02c04o04104d03q04w02n00i03q04004n06r02u04007v0ew0il0ox0hc0k8","0j50j50j507104s0lp06904k0uv0bn02j0e20e01j300100j02304m03x04904704s02v00m04c04n05h08u03o0530ad0gr0jb0p00h80j5","0iy0iy___09o056___05t03w0uw0v600j0c4___1hd00100h02b04b03s04a03703t05500g03u04104p07a02y0470830fd0in0pu0ds0ko"],["Lemonada",400,2,1,"0k60k60k606x04m0lc06l04n0xi0uh08u0df0d51hh00200n02704q04304d03r04x02m00h04f04q05i07z03904p09l0gj0j10ow0ig0kr","0j60j60j607904s0lo06a0540w00ar03w0ev0f81i800100i02004o04004904804r02u00l04w05806309x04005m0bh0i50je0p00i70k4","0ji0ji___09704l___05w04n0wq0us0350dr___1ga00100h02604f03t04a03q03g05100f04m04s05l08q03e04v09r0hf0k40pt0ec0l8"],["Lemonada",700,2,1,"0lp0l40l406j02d0jo06f07611p0uq0i30hj0id1h000200o02o05204n04405a03j01p00406z07g08s0e304s07b0fd0kq0ip0no0jd0ma","0l20l20l208202v0lm06707k10p07h0b90i50iy1ed00000f01r04l04904d04k04s02k00i07507q09h0fz05i0880he0mn0k90p20k40m1","0nk0nk___06202b0n906x07v11x11g0hi0i7___1bv00100f01t04j04004803c04p04g00b07m07z09k0gg05d0800gm0p50n70pv0lu0pa"],["Lexend",300,0,1,"0j10j10jm09t04m0kr09003j0rp0rs07c0ay0bg1hd00700702804t03l04b03r04r02601s03d03n04i08j03a03t06b0dp0ih0r60gq0kr","0is0ja0is0bu03y0kh09704g0s80lp0780db0ek1if00500802g04v03v04e04y03l02g00w04804i05q0bv04304t08g0g10i60q40gt0kr","0k60kh___09e05s______03m0s40rs0490av___1af00000002204e03a04303i03504603703e03q04f0ax03c03u0640c80jt0rs0gq0mh"],["Lexend",400,0,1,"0k60jm0k607i04m0kr09804n0sv0rs08k0df0e31fh00600801z04y03r04b03x04l02c01l04g04s0610ci04904z09a0ie0j20ro0hv0lc","0j70iq0jp07d03y0kd0970560sz0ly09m0ex0g61fr00500902904v03z04i05103i02n00o04w05c0720ec04q05p0b60jb0ix0qp0hq0kp","0k70k7___09k057______04s0t50rs0500dq___17m00000001s04k03d04303j03a04g02s04l04x0670f804f05408x0j90ll0rs0hb0mi"],["Lexend",700,0,1,"0jo0ku0jo06z03h0ju08p06i0vm0rs0ap0h30hx1cj00500a01v05404a04n04h03w02k00m06b06p09b0gv05l06x0fc0n50j40q90ij0m0","0j30l00j308103u0jt08906w0vo0li0bz0hg0j919p00400902104w04704j05103n02f00q06l0730bk0h505y07h0fw0mc0j70q00i50ly","0n20n2___08204w______0710ve0rq08g0ha___12n00000001k04f03q04003h03h04p02h06z07c0c40jh06407h0fq0rr0nu0rs0k70pd"],["Lexend Deca",300,0,1,"0j10j10jm09t04m0kr09003j0rp0rs07c0ay0bg1hd00700702804t03l04b03r04r02601s03d03n04i08j03a03t06b0dp0ih0r60gq0kr","0is0ja0is0bu03y0kh09704g0s80lp0780db0ek1if00500802g04v03v04e04y03l02g00w04804i05q0bv04304t08g0g10i60q40gt0kr","0k60kh___09e05s______03m0s40rs0490av___1af00000002204e03a04303i03504603703e03q04f0ax03c03u0640c80jt0rs0gq0mh"],["Lexend Deca",400,0,1,"0k60jm0k607i04m0kr09804n0sv0rs08k0df0e31fh00600801z04y03r04b03x04l02c01l04g04s0610ci04904z09a0ie0j20ro0hv0lc","0j70iq0jp07d03y0kd0970560sz0ly09m0ex0g61fr00500902904v03z04i05103i02n00o04w05c0720ec04q05p0b60jb0ix0qp0hq0kp","0k70k7___09k057______04s0t50rs0500dq___17m00000001s04k03d04303j03a04g02s04l04x0670f804f05408x0j90ll0rs0hb0mi"],["Lexend Deca",700,0,1,"0jo0ku0jo06z03h0ju08p06i0vm0rs0ap0h30hx1cj00500a01v05404a04n04h03w02k00m06b06p09b0gv05l06x0fc0n50j40q90ij0m0","0j30l00j308103u0jt08906w0vo0li0bz0hg0j919p00400902104w04704j05103n02f00q06l0730bk0h505y07h0fw0mc0j70q00i50ly","0n20n2___08204w______0710ve0rq08g0ha___12n00000001k04f03q04003h03h04p02h06z07c0c40jh06407h0fq0rr0nu0rs0k70pd"],["Lexend Exa",300,0,1,"0kr0k60m709106x0kr08z03l0sf0rs09g0ac0b317w00700702a04v03h04803r04w02501t03e03p04o09903a03o05o0bo0i50r40j10n2","0l80jr0lq07o05x0ki09704i0sz0lj0b80cv0e118s00500802i04w03r04c04y03m02h00x04804l05x0d004204n07q0ey0i50q40is0mq","0mh0mh___09o07i______03n0sn0rs06p0ak___13700000002404f03604303f03104703c03e03q04m0bz03c03q05s0az0j90rs0j10o8"],["Lexend Exa",400,0,1,"0lx0kr0mi07v06x0kr08z04o0t80rs0b80d00di16j00600802005003n04803z04p02a01l04g04u0690dg04904t0830h10ip0rc0jm0nn","0lp0jq0lp07506x0ke09705a0tm0lw0ca0ef0fg16p00400802a04w03w04g05203k02o00o04x05f07b0ff04q05g0a20h80iy0qr0jq0mp","0mi0n2___09n07i______04t0tp0rs0660da___10y00000001t04k03a04303k03704h02v04k04y06c0gc04f04y0830hn0kv0rs0j10ot"],["Lexend Exa",700,0,1,"0m00lp0m006t06d0ju08p06k0vx0rs0fi0ge0hj14e00500a01v05604704l04j03w02k00l06b06s09u0ii05j06i0dj0k90iq0q90k90nq","0ly0lh0ly06k05q0jt08906y0w40lq0ef0h10ih12j00400902104x04404g05303o02f00r06n0760c20if05w06y0em0ku0j60q00k20nv","0pd0pd___06e06x______0700vb0rs0d10gv___0ww00000001l04g03o04003g03e04s02j06z07c0c70l80620740e40r40n80rs0lc0ro"],["Lexend Giga",300,0,1,"0lc0kr0n20850830kr08z03m0sx0rs0b00a80au14o00700802b04v03j04803r05001y01r03e03p04p09l03903m05j0b10i10ql0jm0nn","0lq0kr0m807o06x0ki08j04j0t20ll0cu0cq0do15q00400802i04x03q04c04y03n02h00x04504m0600d304204m0790e70i50q30jr0np","0lx0m7___0a4083______03o0t00rs0730ag___10n00000002504e03404003i03104703e03f03r04p0ci03c03o05p0ak0ja0rs0ig0py"],["Lexend Giga",400,0,1,"0lf0jo0ml07n07j0jo08p04g0td0rs0dm0cu0dd16500500902505603y04j04i03v02q00k04704m0610dp04104j07f0fs0hn0pr0j40n5","0lo0ko0mn07i07w0ke09605b0tu0lj0dw0ep0fa14300500802a04x03x04e05303i02o00p04x05g07f0fw04p05d09j0h00i50q00jp0nn","0lx0mi___0ab083______04u0tw0rs09t0d0___0yg00000001t04k03b04203j03604i02w04k05006h0gh04f04w07t0g60kt0rs0j10qj"],["Lexend Giga",700,0,1,"0m00lf0n507406y0ju08p06l0w70rr0fb0g00h411p00500a01w05904604l04m03v02e00l06b06s09n0j805h06b0d30k00il0q90ku0ow","0mx0ly0mx06g06p0ju08x06z0wf0lw0fi0h00ib10600400902204y04404g05303n02e00r06m0780c30iz05u06u0e40jz0ii0pz0l00ot","0po0po___079083______0720vi0ru0eh0gi___0uj00000001l04i03o03y03e03c04u02l06z07f0cf0lw0630710dj0ph0n70rs0lc0su"],["Lexend Mega",300,0,1,"0lc0l20nn09i08n0kr09003m0sq0rs0bl0ad0aq13h00700802b04w03j04803r05501v01o03e03p04r09g03903n05h0b00i10py0jm0o8","0m80l80mp07q07w0kj09704j0t20ll0ca0cu0dj14f00500802i04y03p04c04z03m02g00x04804n0620dg04204l0710e50i30q20jr0oo","0n20nn___0a108n______03p0t60rs09g0ae___0zc00000002504f03604003g03004703f03f03r04q0cc03c03o05m0a90ja0rs0j10py"],["Lexend Mega",400,0,1,"0lf0k90ml0830840jo08p04h0th0rs0dc0cw0d414g00500902505603x04k04k03u02n00k04804n0600dx04104h07g0fc0hm0pm0jo0nq","0mo0lo0nn07g07w0ke09705a0tu0ll0dd0e30f112t00500802b04x03w04d05303i02o00p04w05g07f0g304p05909a0gm0i40q00jp0nn","0mi0n2___09a08n______04v0u30rs0a00cs___0x500000001u04n03a04003i03304i02y04l05006k0gx04e04u07o0f80ku0rs0j10qj"],["Lexend Mega",700,0,1,"0ng0m80ng07707q0jt08n06n0wa0rr0f90fy0h710d00600902104s04h04404v04202b00s06c06u0a10jk05i06e0cx0k10io0qk0l00pb","0mx0lz0mx06j07n0jt08y06z0wf0ky0gk0h10ib0z600400902205004304f05303n02f00q06n07b0c50jc05u06t0dx0jz0ih0pz0l00ou","0py0py___07908n______0720vi0rs0ei0gh___0tr00000001l04j03m03w03d03b04x02m07007i0cr0m906306y0cw0p20np0rs0lx0su"],["Lexend Peta",300,0,1,"0lm0l20o809808n0kr09003l0su0rs0cp0ab0au12800800802c04x03k04503t05b01q01m03d03p04s09g03803m05f0b90hy0ow0j10o8","0mq0lq0mq07l07x0kj09704k0t60lw0dd0cj0dm13800500802j04z03o04b04z03n02g00x04804n0640dp04204k06z0dy0i40q20kr0op","0lx0mh___09w098______03p0tf0rs0930a9___0yb00000002704i03203z03g02y04703i03f03s04s0cy03b03m05g09z0jo0rs0j10py"],["Lexend Peta",400,0,1,"0lp0kk0n507z0990jo08p04g0tc0rs0eh0cr0d413700600a02605803x04k04l03u02j00k04704m0650e204104f0780fa0hm0pi0j40ob","0n50l60nn07c08v0kd09705c0u00lr0ef0e60f311o00500902b04y03v04d05303j02n00o04y05i07k0ge04p05a0930gd0i40pz0ko0om","0mi0n2___09l09j______04v0u60rs0bl0cw___0w200000001v04p03703z03g03204l03004l05206q0he04f04t07i0ev0ld0rs0k60r4"],["Lexend Peta",700,0,1,"0ng0m80ng06w0810jt08n06n0we0ro0fb0g20h40z200600a02104t04h04604x04002700s06c06u0a50jx05h0690co0k10il0qk0lm0pb","0ne0mx0nv06o0840jt08x0720wr0l80gk0gv0ie0y600400902205104304e05303n02e00r06n07d0c70jl05u06s0do0jz0ih0q00l00ot","0qj0qj___07b08y______0720vh0rs0et0gf___0sw00000001l04l03n03v03c03a04x02m06z07k0cz0mo06406w0cf0oj0na0rs0mi0tz"],["Lexend Tera",300,0,1,"0lx0lx0os08i0980kr09003m0sz0rs0dk0a00an11000800902c04x03k04403u05e01n01k03d03q04u09l03803l0580ah0hz0oa0kr0os","0mq0lq0np07r08w0kj09704l0tl0ln0dw0cq0dg12400500802k04y03o04b04z03n02g00y04904o0660dr04104j06t0dr0i40q30kq0po","0m70mh___0a109t______03q0tp0rs09u0ab___0xi00000002804j03203x03d02x04803k03e03t04u0d703b03l05e09o0k90rs0jm0qj"],["Lexend Tera",400,0,1,"0m00ku0nq07t0990jo08p04g0td0rs0ei0cr0cz12300600a02605703x04j04r03w02d00j04704m0630e604004f0760f30hi0ow0jo0ob","0n60lp0no07b09v0kf09705f0ue0lc0ef0e70f610k00400802b04y03w04d05403h02o00o05005l07n0gj04p05a0920gf0i40q10kp0on","0m70mi___09r09t______04w0u40rs0bl0cx___0vp00000001v04q03703y03e03104m03104l05306s0ht04f04s07g0ek0lk0rs0jm0r4"],["Lexend Tera",700,0,1,"0ld0ku0mq07f07l0ij0840660wg0r10f60fz0gx10v00400c02o05704604m05n03c01n00405w06d0980il05305r0bd0ip0hb0nt0k10oc","0nv0mx0ot06n08l0ju08x0700wn0lc0h30gr0id0x900400902205004204e05303o02e00r06n07c0c80jv05t06r0da0jz0ih0pz0ly0ps","0r40r4___07g09t______0730vl0rt0fs0gd___0s400000001m04l03m03u03c03904y02n06z07n0d50n906506w0cb0o10n90rs0mi0tz"],["Lexend Zetta",300,0,1,"0mh0lx0py0800ao0kr09003n0t80rs0d709w0ai0xs00800902f05403h04003s05o01e01i03c03r0500ac03803k04v09a0i30lc0lx0py","0np0mp0p607o0av0ke09704o0tx0lp0ef0cd0d60zd00500802k04y03o04b04y03o02f00y04904q06d0ek04204j06r0d50i20q10lq0qn","0pd0pd___08m0b9______03q0tx0rs0dk09p___0uv00000002b04l03203u03b02v04803l03f03t04y0dz03b03k0580990jq0rs0k60s9"],["Lexend Zetta",400,0,1,"0m00lf0p608c0a50jo08p04h0tr0rr0dk0cn0cs0zb00700b02805b03z04c04w03y02300j04704n0660e203y04d06l0e20hg0m30jo0ph","0o40mn0pl07h0au0ke09705e0ui0lo0fi0dy0eu0y300400802c04z03t04c05503i02o00p04x05k07r0h704p05608i0fo0i20pz0ko0ql","0ot0ot___09j0bj______04x0ub0rs0d90ca___0t900000001y04s03603w03c02z04n03304l05306y0iw04e04q0760em0lc0rs0kr0su"],["Lexend Zetta",700,0,1,"0md0ls0o507p0940iu0890690wo0r20ha0fu0gd0xu00500c02405n04j04a06202n01y00405x06h09j0j705305q0b10it0h70nr0l70pb","0ot0oc0ps06n09k0ju08y0720wv0ky0j80gn0hz0v300400902205104104e05503o02e00r06p07f0ci0kt05t06o0cw0js0ih0q00ly0qq","0s90s9___0800ay______0770w30rs0ib0g4___0q900000001o04o03k03u03803705102m07007o0cv0oj06706v0bg0nr0nc0rs0n20v5"],["Libertinus Keyboard",400,2,0,"0pm0pm___00b06c______0330zc6420rs09y___1wp00000005f03c03l04003g02s01y03a01e03303503u01d02k02m09s0ro0rs0pc0pw","0pn0pn___00r05f______03v0w04jt0em0cu___1wk00000003y03z03l04503u02p02103m02303w04c08502303d04g0e80rq0rs0oo0pn","0pm0pm___00b06c______03310b6450rs0ao___1vw00000005403103h03w03d04101s03401e03303603w01d02k02o0c80ro0rs0pc0pw"],["Libertinus Mono",400,4,0,"0lc0jm0ln03y04m0jm09f03y18z1yr0ef0ac0be17a00a00903f04d03u04c03r04802p00o03s04304t08d02302p05b0cl0i40pe0j10nn","0kp0jp0l70av04g0jk0a204u13p1l90dw0d60ez17400a00a03f04f03t04d04s03k02j00e04p05406e09y02v03z07d0g10i40p40jp0mo","0n50n5___07a04n______04a1co2lm0cl0ak___16000000003503w03f04003a03e05201m03x04b04v08m02202s0660cs0nq0qb0jo0ow"],["Libertinus Sans",400,0,0,"0g40g40g409f04m0hf09h03s10w0wm0620b60d31m400a00902s04r04g04v04q02g02k00q03k03u04d06602d03b06v0f60g60oq0ee0h9","0gw0gw0ge09l04z0id09i04r0yq0vx04d0dt0gg1kv00700a01i05504f04t05h02q01x01d04k04u05m09n03c04m09v0hc0ht0pr0ew0hw","0gs0h3___0bj06d___05e04411e0x802q0b0___1bw00000402a04103l03y03k03f04102t03w04704s06902m03j0750g60jq0rs0fn0ml"],["Libertinus Sans",700,0,0,"0ij0ij0ij08r04n0hk09i05u1c00w00a40ec0ft1gd00a00a02h04x04p04w04k02j02i00p05l05z06k09102w04s0bv0i40gv0p00g70k9","0is0is0is09303y0hk0a406f1700yo0bg0g10i61fd00a00a02o04x04p05005502802d00806506k07d0bz03q05p0dh0k80h30oz0gt0jr","0jo0jo___0ad058___06y06h1e50vo07r0dx___17o00100301z04403r04103j03n04602h05z06k07509p0360540c20oh0m10rs0hy0ph"],["Libertinus Serif",400,1,0,"0hb0h00hb08x02w0hh09f03n17g23i0930an0cc1n600c00703f04i04404l04p02g02j01003j03s04f07001y02p05q0cz0gs0py0f00kr","0gr0gr0gr0nn02z0hl0a304m11n1kb07y0dy0g81m100c00903f04m04704p05c02302m00b04e04s05w09402v04307w0fv0h20pv0es0jq","0lf0lf___08b042___08p03z1a52el07j0ae___1e900300502z03q03c03o03a03903s03m03l04104p07j02102t0650cb0n60rs0fn0qm"],["Libertinus Serif",700,1,0,"0j20ih0j20c702w0hw09g05n1mf1ea0bz0d20fg1he00b00902x04q04f04s04i02n02h00v05c05s06i09t02803t09l0hy0hc0q70gr0no","0hq0hq0iq0p602y0hl0a206a1dz1990b80ff0ik1gx00b00903304s04e04t05602802i00a05z06f07l0bc03304w0bj0ia0h50pu0fs0mo","0ob0ob___06w03r___09j0691ud1pz0bp0d5___19g00300402i03u03k03x03d03j03w03205i06a06x0a802903m09d0ls0ob0rs0ij0sd"],["Libertinus Serif Display",400,2,0,"0g40g40g40c002w0gp09v03c19t27b08k09s0bi1oi00c00803f04h04b04p04o02402i01303203h04005r01k02c0500bk0g40px0ee0jl","0fn0hh0fn0on02r0gg09m04812e1h507d0cq0ft1or00c00803d04d05504k04j02202i00r03z04e05907r02f03n0720eg0fz0p60eq0hh","0m00m0___09j042___08p03s1fs2kc09909n___1e600300502w03o03e03q03d03b03s03h03f03v04d05v01k02f05i0bs0mu0rs0fn0qm"],["Libre Barcode 128",400,2,0,"04m04m___06706d______034___0rs0000q1___46h00000001q04204204203h04204202b01r03403604l0ry0ry0ry0ry0rs0rs03h05s","07f07f___0s402z______04k___0kc0150ol___21p00000001w04204204204204204101o03805e09k0fq0m50r80rw0s40r30ru03z0cw","04c04c___041057______035___0rs0000q4___46h00000001q04204204203h04204202b01r03503604k0ry0ry0ry0ry0rs0rs03h04m"],["Libre Barcode 128 Text",400,2,0,"04m04m___06b06d______034___0rs0000q2___46g00000001q04204204203h04204202b01r03403604l0ry0ry0ry0ry0rs0rs03h04m","07g07g___0s402z______04m___0k70150ot___21o00000001w04104104104104104101p03a05e09n0fv0ml0rb0ry0s50r30ru03z0cw","042042___03w057______034___0rs0000q4___46g00000001q04204204203h04204202b01r03403704k0ry0ry0ry0ry0rs0rs03h04m"],["Libre Barcode 39",400,2,0,"04m04m___01a042______01r___0rs0000r0___4ru00000001q04204204203h04204202b01q01r04j04k0ry0ry0ry0ry0rs0rs04m04m","0jt0jt___0az02z______098___0kv05t0os___0zt00000001y04104104104104104101q09n0ha0l40rc0mx0rc0rw0s60r30rt0bw0ns","04m04m___01a042______01r___0rs0000r0___4ru00000001q04204204203h04204202b01q01r04j04k0ry0ry0ry0ry0rs0rs04m04m"],["Libre Barcode 39 Extended",400,2,0,"04m04m___019042______01r___0rs0000r4___4ru00000001q04204204203h04204202b01r01r01s04k0rx0ry0ry0ry0rs0rs04m04m","0aw0aw___0gx02z______04w___0jt00m0op___1ne00000001y04104104104104104101p04l05d0fc0ie0mf0qr0rx0s50r30ru05y0hu","04m04m___01a042______01r___0rs0000r0___4ru00000001q04204204203h04204202b01q01r04j04k0ry0ry0ry0ry0rs0rs04m04m"],["Libre Barcode 39 Extended Text",400,2,0,"04m04m___019042______01r___0rs0000r5___4ru00000001q04204204203h04204202b01r01r01s04k0rx0ry0ry0ry0rs0rs04m04m","0aw0aw___0gx02z______04w___0jt00m0or___1ne00000001y04104104104104104101p04m05f0fe0ig0mn0r20ry0s60r30ru05y0hu","04m04m___01a042______01r___0rs0000r0___4ru00000001q04204204203h04204202b01q01r04j04k0ry0ry0ry0ry0rs0rs04m04m"],["Libre Barcode 39 Text",400,2,0,"04m04m___01a042______01r___0rs0000r0___4ru00000001q04204204203h04204202b01q01r04j04k0ry0ry0ry0ry0rs0rs04m04m","0jt0jt___0az02z______09b___0ky05t0oz___0zt00000001y04104104104104104101q09p0hd0l70ri0n70re0rx0s60r30rt0bw0ns","04m04m___01a042______01r___0rs0000r0___4ru00000001q04204204203h04204202b01q01r04j04k0ry0ry0ry0ry0rs0rs04m04m"],["Libre Barcode EAN13 Text",400,2,0,"0em0i50ex06z04o0ie04302e0m30rs0330bc0ee38c00101903604p04f03w04h03601p01000w02d03f04502c03u0ap0na09n0k40dg0gz","0eg0hs0fk07o03c0ic03y0550vh0r104n0ec0hi1nu00100a03h03y04x03t04z02t02m00y03p0550820c704k0aw0jq0ql0dh0l60dc0hs","0iz___0cn06r08x0ki03u02b0k80rs02s___0da3n400000v02q04b04104303j04503500z00w01y03o04o02k05i0ep0re0d20og0dt0iz"],["Libre Baskerville",400,1,1,"0ja0i50ja0b40340i508r03z1831yo09g0ay0c21kn00b00803504h03z04c05502j02j01603o04604u07j02202w0610dj0h90qn0gg0lk","0iq0iq0iq0jt02y0hj09704x14j1l20bh0da0fe1it00a00a03d04q04704k05b02002w00804k05506809002t04307x0f30gy0pv0gr0lp","0la0la___0eq04w___09704918x29d09m0b1___1cf00400502u03v03c03n03a03903k03s04004l05808l02403106m0cv0no0rs0fj0sr"],["Libre Baskerville",700,1,1,"0ju0ju0j00js02u0i508s05b1fx1no0cf0cn0eh1j500a00902t04n04504g05202k02k01205105g06909r02f03p08b0gz0hn0qn0hl0n9","0ka0kq0if0ls02s0i609f05u18y1cg0bn0ew0gg1ik00a00902v04i04y04904u02h02i00w05l0610790aw03204k0a70hw0hr0q00hi0ny","0o50o5___0h2056___09705n1i41wb0dc0cy___1b800400502j04003i03q03a03e03o03h05a05x06p0ay02i03p08n0j50or0rs0jk0uh"],["Libre Bodoni",400,1,1,"0hx0ii0hc0qe02b0gr0bq04n2331l607f0b30d81pa00900802z04e04m04t04a02802f01n03y04m05906k01c02b0720fv0gg0rq0eg0k8","0hr0ir0fs0qw02z0hj0c805f1ih17g06h0e00g21o700900703604904e04m05402402d01c04x05i06908h0290410ae0i40h50rq0cu0lp","0k80k8___0o404m___04m0572nc22b0690b3___1hn00000202k03j03r03w03h03p03r03303l05705i06k01902007q0i20pl0rs0gr0pf"],["Libre Bodoni",700,1,1,"0k80k80ii0ka02b0gr0bn05m28h1df0aq0co0dm1mh00a00802t04g04n04v04a02a02h01i04x05p06h08301m03109c0gr0gr0rq0gr0n4","0jq0jq0hr0kt01z0hi0c606a1p919h0920f00gj1lk00a00703104b04g04p05002702e01905p06f07909r02d04i0c40ip0h60rq0fs0mo","0n40n4___0g204m___08j0632of1qr0a50cr___1fc00100302e03l03s03z03i03s03u02v04g06306s07z01f02m09l0m40pi0rs0j20r6"],["Libre Caslon Display",400,1,0,"0g70gs0fn0jc02w0gu09u0341ih16m04x08s0at1t300b00802z04e04d04o04j02402901z02u03503n04g00z01x04s0bk0gc0rs0bl0hd","0d80b60e80bk0320h10ae04d10m11d0350cs0fq1qf00a00803704p04k03q05502602f01e03z04g05106202g04a0900h20fj0qu0850g9","0hc0hc___0jm042___05v03e27p17l02x08h___1ij00000702h03j03m03w03i03i03n03f02l03e03t04c00w01k04x0af0na0rs0c50np"],["Libre Caslon Text",400,1,0,"0hv0i50ha0bg02u0i508r03s1ba1uz08c0ao0bx1oz00a00803004c04404l05002o02h01303k03w04h06m01p02o05x0dq0hl0qn0fb0ju","0gr0hq0gr0db02y0hj09704r14619y08q0ds0fb1n300900903804k04a04u05702502w00604f04w05s08h02q04808x0go0h20pu0es0iq","0j90j9___0fj056___08n0431id23y08r0an___1fi00200502r03j03h03r03h03e03n03l03p04404t06w01r02m06l0d30o60rs0dt0qg"],["Libre Caslon Text",700,1,0,"0ip0ip0iz0lk02a0i508q05q1m81fw0ai0dk0fd1k700a00902m04l04a04o05202n02j00x05j05x06z0ad02a0440ak0ig0hr0qn0h00mo","0ig0ig0iw0of02s0i608u0671cq1990au0fm0hw1ju00900902r04e05404h04t02k02f00s05x06f07m0bh02y04z0c90iq0hs0pz0hj0m5","0lv0lv___0hx04m___08p06g1wt1hw08k0e1___1bx00200502b03s03m03w03g03l03s03905k06i07g0be02d0420b90nx0pe0rs0g40s6"],["Libre Franklin",300,0,1,"0hx0ii0hx06904m0jq06e0300u50rs05009j0aa1l300100b02n04o03s04c03w04302301z02t03403m06202k02y0570av0hy0rc0g70jn","0ha0ip0gb06f03u0jp05l03z0ta___03w0cg0e01n400000801e05303u04c04p04201z02703o04304z09o03c04407w0el0i90ro0fd0j7","0jn0jn___06q06d______0360v50rs00009q___1er00000002d04303d03z03l03703o03k03403803o05y02l03205n0ba0kb0rs0g70k8"],["Libre Franklin",400,0,1,"0hx0hx0hx09004m0jq06d03n0vi0rs04k0bc0bv1k700100b02d04t03w04d03z04002b01s03h03v04f07s02z03i06v0f10i60rr0g70k8","0hp0j60hp07i03y0jh06d04j0uf0mw04t0dv0ew1kz00000a02j04r04104f04x03202i01b04904n05t0as03t04j09d0h80i40rp0gq0jo","0jn0jn___09u05s___03h03y0xc0rs0000bi___1dv00000102504903e03z03m03904103503v04004j08f03303p07j0gg0ln0rs0eg0kt"],["Libre Franklin",700,0,1,"0jn0mj0jn08903h0js06d0670yj0rn08q0g30gr1gg00100a01y04z04504j04803k02o01f06006r07y0fd04q05x0ed0n10j50rr0ii0mj","0k10ly0j309j02v0js06a06o0z30m208w0h30ig1eq00000a02404s04004e04t03e02j01i06806z0900fr05206i0f70mx0j80r00i50mw","0mj0mj___09v042___04206v11d0ro0370gg___18700000101o04h03l04303j03i04j02f06s07008q0ht05206h0fq0rn0oa0rs0g70n4"],["Licorice",400,3,0,"0ij0ku___0ff042___0c801r0me0ug07q077___2ll00f00r02y04j04n05703502l02s00t01m01v02e03e01o02803i0660cq0ow09u0ml","0nl0nl___0iy03y___0ca03t0qa0sy0fv0cb___1th00f00l02u04q04m05703l02n02o00k03904406408v03804k07w0cl0e30po0dr10d","0j40k9___0f002w___08401r0pm0ru04a06f___1vr00500l02g03603g04j03q03u04601r01n01w02f03k01j01x02w04z0j60q70gs0n5"],["Life Savers",400,2,0,"0fm0gr0dv0g802w0fm08301v0vl38904207209b20x00800c04i04303y04r03q01v02102d01s01y02c03q01f01p02y05n0ej0rf0db0jn","0lk0mj0i80o803u0fx07b03a0ss1jg0cu0bl0f022l00100e02i05404004r04o01v02002g03203f04k08402o03e0600bg0fa0rq0df0vn","0i70i7___08q04p___02n01v0vc44u010073___1rc00000104403c03902v03q02n03j04b01s01x02803b01h01q03606d0oa0rt0fa0kk"],["Life Savers",700,2,0,"0hc0hc0f10gj02b0fm08302x0v227c0900a10c21xg00700d03y04n04105103d01y02602602s03003w08102d02r04u0a00ek0rg0eg0le","0jo0jo0mj0p604t0fv07903y0ul18e0cu0cs0g11xe00100e02c05c04404x04b01x02402c03k04105s0a003604107r0de0f60rp0fc0wm","0je0je___0bo05a___03j02v0ul2u503r0a6___1om00000203i03s03c03003l02q03r04402r02y03i07s02g02s05e0a40ov0rt0gg0l5"],["Lilex",300,4,1,"0hx0hx0ii02p05s0ko08802u0u60rs02s09c0ah1bm00900803504e03h04403i04q01x02302r02w03e05t02f02q04k0ab0im0rr0gs0j3","0hc0hc0hc02904t0kk07g03w0tf___0260cl0e41d300300b01n05603l04704a04k02701s03m03y04x0ak03904107i0f40j90qy0ge0ib","0hx0hx___03y05s______02w0u60rs00009r___1bb00000002m03x03803z03h03403j03x02t02x03b05602i02v05f0bq0ln0rs0gs0j3"],["Lilex",400,4,1,"0ii0i80ii06j0570kj08803n0us0rs02l0bl0ct1b800800902o04s03l04403j04p02501u03i03o04g09f03403i06d0f40j30rs0hc0j3","0hs0hs0hs03l03y0l107l04h0tl___0250e10fh1b600300c01f05f03q04704i04d02a01i04a04m0600cl03x04j0910h40jq0rl0hs0ir","0hx0hx___08s04n______03p0v00rs0000c6___1b100000002804c03903x03k03703z03c03n03r04809303703p07f0j30ms0rs0g70jo"],["Lilex",700,4,1,"0jo0jy0jo03803h0ki0880690y40rs09m0ge0hz1a400600b02405003v04704104602g01i06506d0840g004v05w0eh0mn0jy0rs0j30kt","0jm0jm0jm05m02y0ji08706i0y80lo0ad0hb0k218s00500b02e05204304d04y03b02k00p06c06r0a90gd05406d0fh0mb0jp0qr0in0jm","0jo0jo___07y03h______06b0xp0yv0000hr___18800000001r04f03i04003i03i04k02k06806i0840h205706i0fz0rs0p30rs0hx0kt"],["Lilita One",400,2,0,"0ir0jb0ig07402b0jr07j07k0uc0rs05w0k20ky1ej00300a01s04p04j04k04603q02m01d07c08a0dj0gx0720bp0k10rf0jq0rq0gq0lc","0in0jm0ho09001z0ka0860830uc0kn05g0kf0lo19c00300a01y04k04j04k04q03h02i01607r0950ey0hn07r0ej0k20r30jt0rq0gp0ll","0kh0kh___06p03h___06c08g0vf0rc01z0ky___17n00000101h04604404003d03x04h02908908z0ej0i807p0cg0pp0rr0q20rs0hw0mi"],["Lily Script One",400,2,0,"0ky0l90id0ny02v0hf0bb05i0zn1bl0ap0et0h91w500f00g02u05904a04g04302802k01a05b05n06w0b703w05d0bi0hv0gb0r80ht131","0ku0ku21d0vv02z0hk0b906a0yz0sb09q0ge0is1og00e00g02g05e04f04g04o02802101d05v06i09c0ed04p06r0e70j20gy0qv0iu1dl","0lk0lk___0rd02b___0ad05p10t1au07q0fa___1q100800702904h03q03m03603s04a02405b05x07i0b303w0560at0j60ma0rs0ey0v1"],["Limelight",400,2,0,"0l60l60l607p0400ji06c08538h0sc0b80el0f41dk00100902704i04w05704y03602400i04d08509k0ae01t04e0h70ov0il0pw0ib0lr","0jr0jr0jr09y03y0je06c08b2tm0nj08k0g00h31e700000902j04k04x05504y03c02400205s08909l0ar02705e0hj0nx0i30pp0hs0kq","0ku0ku___0aj04x______09j3so0sc06h0ea___18800000001t03q04204c03q04703n02b02d09m0a60bp01u03d0i80rj0m10rs0cq0ph"],["Linden Hill",400,1,0,"0g70h30f20cd02w0f209w0361121zk0bd09z0ce1u500r00h04104w04c05g03b01l02d00m03103g04a07601x02m0500as0e60pi0dw0ku","0hb0ir0fe0kz02w0ft09b04e0zc0kz0bx0dk0fq1tk00k00j02a05q04c05404s01j02500u03v04j05s09d02y03z07c0e30ek0pt0fe0py","0lv0m5___089041___0ae03n14p2d30cl0a4___1ek00d00903b03u03903j03d02v03603v03a03o04p07x02502r05j0ae0ke0rs0gp0r1"],["Lisu Bosa",300,1,0,"0hd0k90hd08702w0i809903u12i1y60810b60cx1lp00d00803904p04604m04l03a02800f03n04104v08s02903b06f0e30hk0ph0eh0ku","0gx0k40hz0kh0360iv09t04v0zg1ir07f0dy0g81kg00a00a03i04y03f04v05p02a02b00904n05506o0al03d04l09c0hf0hc0pl0et0k4","0m00ml___07w03h___08p04d1a425e04z0bs___1co00200302s04003d03r03403h03j03m03z04g0500ab02d03f07k0er0nv0rs0fn0ph"],["Lisu Bosa",400,1,0,"0hy0k90hy07v02w0i80990411421uu09m0br0cz1li00c00803604s04904n04k03902800d03t04705308y02903g06o0f90hi0ph0f20ku","0hs0j90hs0gq02z0hq0a404s0zd1h307p0dy0gf1l400b00a03b04t04f04p05h02c02300604m05206s0as03704k08z0h80h90o40et0jr","0m00mv___07s03h___08p04l1bi21z04z0c3___1ch00200302q04103e03s03503i03k03k04704n0570aj02e03k07o0fq0nw0rs0g70ph"],["Lisu Bosa",700,1,0,"0ir0kt0ir07b02y0ir09004z18e1j30930da0ef1k500b00902y04w04e04205702z02600n04u05706409t02f03z08y0i70i60pt0f90lp","0i90ka0i90j70320ik09n05q13g19m08n0f80hl1iu00900a03404y04j03m05c03402700g05g06007o0bk03f0500b80iu0if0ot0f80ka","0lv0mq___07n03g___08k05o1jl1qg09x0e0___1bq00200402i04103i03v03903l03n03a05405p06c0by02j04309n0lp0o90rt0gp0pw"],["Liter",400,0,0,"0j10j10hv08x0410kr07s03x0sh0rs0240c10d11la00400902904t03q04b03t04i02b01s03s04004x09s03k04807t0gc0j60rp0gq0k6","0j80k80i70830420kx08b04r0sp0mf04a0ed0fs1kn00200902f04w03y03b04r04802i01f04j04v0690dd04f0570a70hw0jl0rl0h70k8","0jm0jm___0a3057______0410td0rs01b0bt___1e100000002104e03e03y03j03704803303u04204v0bd03k04707h0fb0lh0rs0g50mi"],["Literata",300,1,1,"0hd0hy0hd07x02w0ij0850300xa29q06y0a70b71pv00800903q04f03w04b04b03903200d02x03503x07i02502o0500al0hl0pi0f20k9","0ha0hs0ha08y02w0jp07h0400vv0tj05o0dn0e41ph00300c01w05503o04504j04d02l01203t04805k09003303z07d0fc0j60px0ef0j7","0jo0jo___08304n______0390yb2ok0440a0___1fp00000003603w03503l03103103r04703703d03z08602802u05o0ah0nv0rs0f20ow"],["Literata",400,1,1,"0hy0hy0hy07p02b0ij08603w1151wv08k0c30d61o600800903804t04104e04b03603200d03p04004x09202j03806o0el0hy0pi0fn0ku","0im0im0jl09901z0je08804p0x61le0930ej0g71mn00600a03804n03x04804w03e02v00804j04y06l0ar03e04i08x0hg0ix0ps0gn0lk","0kk0kk___07h04n______04812l26e07v0by___1e700000002q04403b03m03303704303o04604c0540ac02m03f07k0ek0oi0rs0hd0ph"],["Literata",700,1,1,"0jz0k90jo06t01r0in08606818i1d50dd0fv0hm1jy00600b02l05504a04l04d03602v00c06106d08c0cp03i0500bu0j40ij0pi0hy0n5","0kn0kn0kn0nt01z0je08806o14t14d0a60hd0ij1ij00500b02p04x04604f04w03b02q00806g06y09m0ed04905r0ds0k50iz0ps0ho0nl","0ml0ml___06k042___07e06u19y1gs0ax0gd___1b200000202504g03j03r03503h04g02u06n06z0900e903r05g0cd0pg0pm0rs0jo0r7"],["Liu Jian Mao Cao",400,3,0,"0dx0fy___0ey01r___0bb0280mw0pj03k072___2ap00c00g01y05k05804o04x03401d00801z02802u04b02602v0570aj0aw0k20ag0g8","0ey12j___0xx069___0ey03w0q7___0cn0b4___1ts00b00f01e05m05f05l04t02y01500603403u05y08e03h04z0980ey0de0kc0am0o3","0dz0fq___09a016___0800280of0vy02d08g___21b00100902e04u04r04g04o04n01l00802202a02x04n02402p04l08v0d60lz0c80gw"],["Livvic",300,0,0,"0gq0hb0gq07b04m0j908302n0ra0rk01308p0ar1my00900702s04r03u04604003s01z02202i02o03605302d02t04g09e0gy0r40fl0ih","0gp0h70gp0b603y0jg08703z0rf0lj03z0c70e71mi00600a02t04r03x04c05302w02d01703m04005009k03j04907k0f50h60qv0fq0jn","0ih0j1___08h05s______02m0rj0rs00i08f___1gw00000002l04603b03r03h03303m03u02k02n03404z02a02s04j08n0i40rs0g60lx"],["Livvic",400,0,0,"0hb0hw0hb08v04m0jb08303e0sp0rs05c0an0cp1ln00700902e05003w04904603k02801u03803f04407c02z03k05y0dx0hf0rb0g60j1","0hr0iq0h908t03y0jf08904f0sj0lz04g0da0fe1l200600b02l04x03y04f05102v02h01404604h05r0b604204n08s0ga0hx0qy0gr0jq","0ir0j1___0cx057______03e0sy0rs01v0ak___1fv00000002704f03d03x03g03504003a03b03f04307m02y03j05x0ch0j90rs0f00lx"],["Livvic",700,0,0,"0ks0lc0jm0b403h0jr08306o0vx0rq0an0gr0ir1dm00500c01w05404704g04a03k02i01e06e06u09s0gx05o06w0fa0nk0j30rs0j10o8","0js0ks0ja0f502z0jh0890720vo0jj09w0hn0kd1b500400c02505304a04k04x03002h00w06m0790c10hf06407j0ga0n50j00r20it0nr","0lx0lx___0e3041___08306r0w00rs06y0h0___17400100301o04n03o04103f03f04k02b06m06y0aq0in05s0710f10r00n30rs0jm0pz"],["Lobster",400,2,0,"0ii0ii1oq0u701r0il09905q14l0vj08g0ex0fg1y300b00g02304z04c04h04703902i01905205q05z08t03d05t0cm0is0ii0r70hy0xk","1681681pw0fi04x0j809h06f11g0ot0ld0gf0hj1qx00900h02904t04704b04p03302i01905z06g07k0ce04i07t0fb0jp0it0rm0vf1pw","0ih0ih___0ac01q___08305q1480s302s0fc___1mu00300a01q03u03k03m03p04704d02f04k05p06008a03505s0bg0j50od0ru0cp0mi"],["Lobster Two",400,2,0,"0hy0hy0ku0g602w0ij0990490zq0wo0760dj0e420n00b00f02905004304c04a03902i01e04104b04v06q02y0450ai0iv0he0r70dw0ow","0im0i41ju0qw03x0j70a20540wk0xd06o0ff0gk1vg00a00f02g04t03x04704s03202f01h04r0550600a004405p0dw0l10hx0rk0gn0oh","0gh0gh___08u02w___07l04g12j0rs0000dw___1my00300a01v03v03g03h03r04304b02n03m04d04v06202k04509u0ku0nt0ru0bk0hx"],["Lobster Two",700,2,0,"0hy0hy0mv0iu02b0ii09905o14u0x208p0f10gv1w300b00g02305104a04g04803702j01905205o06008q03j05n0fe0nj0hz0r70gs0rs","0j40in0sx0qh02y0j70a406c10n0um09m0gk0ie1pj00a00h02b04t04404a04p03102i01b05u06c0780bo04n07d0h10o90i00rl0hn0ue","0hb0hb___08n02b___08305n15y0rs0130gk___1k100400a01r03v03k03m03p04504e02f04e05n05z08603805k0d90od0od0ru0dv0ih"],["Londrina Outline",400,2,0,"0h30hd0gs0cu01g0k908b00w0pl0tb03105m06h3g500800a03o03d04804a03504o01t02700u00x01201n00v00z01k03h0jr0rs0fn0hy","1h51b91n211305x0kh07f0320pu0t50ob0ed0ha2ty00200b02h04b04f04903w04o02c01302n03e05a07m02t03i06m0c50kt0qr1a94qa","0hj0hj___06z01r______00x0po0tt01005s___36p00000003903903t03503k04802l03y00u00x01201n00v01001p03i0q80rw0gy0hj"],["Londrina Shadow",400,2,0,"10e10e0ou0h90160k807l01g0qv35w0ku07108i3bl00700b04c03g04a04d03504c01r01p00u01g01p02p00w01i02505j0k80rq0ou1eu","1xm28z1ma0q504y0jn06h0400wt1gp0rs0dj0gy2l900000d02u04o04f04m03z04402100s02w04705e08502p03r06o0cv0jy0q41af4hy","0hy0hy___0w8016______01f0q23fj089077___33l00000004703403s03m02t04e02x02z00u01f01n02j00w01j02605d0qm0rt0hd0zw"],["Londrina Sketch",400,2,0,"0gs0gs0g709u01r0jo0880160ny1qi02b07h0823i800800b03j03m04a04b03a04h01v01y01001801k02n01401e02b04u0jo0ra0fn0hd","1ew1c01lm0i305r0js07e0330p60eu0p90fn0id2zu00200c01x04e04e04b04404g01y01w02l03b05h08f02u03y07j0cw0k20rr0vp2ak","0hd0hd___08y02b______0180ou36100i07s___35300000003503a03s03m03103s03g03q01201a01m02g01301f02g05f0qa0rz0gs0hd"],["Londrina Solid",300,2,0,"0g70gs0g708z01r0jo0840420q00sk0280ey0g91x400500b02705103s04a04a03t02n01d03u04805c0c904104w09x0jr0j70r80f20hd","0lr0ns0l90mt0210k108e0500qx0oi0dw0gb0hq1oh00300b02e04w03w03a05303w02n01c04l05b0950ej04u0600c50ka0jk0ri0h710f","0gs0gs___09i02b______04f0rf0tc00h0ey___1qg00000001v04g03f03y03c03g04h02v04304g05g0cn0470590ae0pe0oj0rv0cq0hc"],["Londrina Solid",400,2,0,"0g70gs0fn06u01r0jo08405o0ph0rd01n0jk0ks1pj00400b01x04z04604f04c03p02o01605h0640a80f805z0840iq0q90jo0rb0f20hd","0i80j90g70sy0210k008d06f0qs0ki0cg0k00lo1gr00300b02604v04a03e05103y02m0160630780dg0gf06m0990is0pr0jo0rm0g70xf","0hc0hc___06502b______06f0rr0qv00i0ju___1jr00000001m04e03r03v03d03q04p02e05v06j0ax0g906f08y0my0rn0q40rw0gr0hc"],["Long Cang",400,3,0,"0l30hu___0co023___0c10400u50v10el0a9___1dm00a00802d06504r06203q02v01c00303803v06209n03b03u05o09y0bd0ke0g10nr","0kr0jp___0l5023___0c005c0uc0m20fv0da___18700900902106504d06304n02t01200604a05808r0db04i05g09a0ek0co0l00fk0qy","0o10ph0nq0bn01r0n503d03u0ri0rr0kj09n0ad18b00000101a04j04e05203w04v03c00g03c0430650av03i04205v09s0fn0nu0mk0ph"],["Lora",400,1,1,"0jg0jg0jg07i02y0jj0a903r15n1qb0810ae0bu1kv00b00703c04c03h04b04g03g02501s03n03x04i06p01z02w0630dm0if0r60h40kn","0hc0hc0hc0gp02w0jq09904h10x0vk06y0du0ex1oi00900901s05104104c04l04602i00y04904n05g08202w04107y0ga0ig0py0gd0j9","0kq0kq___08j041______03u15s1z605u0al___1f000000002z03t03f03n03803903n03u03n03z04j06m02002y06h0c30n70rs0ez0or"],["Lora",700,1,1,"0jf0k00jf08702d0jf0a905u17r1dx0bz0f10g61is00d00902m04v04303u04s03302f01i05o05y07a0b603a04w0ay0jn0iu0r30i80mc","0jo0jo0ip0dp02y0jh0a606c14115w0920g70i31ib00c00902p04t03z04e04t03402k00v06506j08j0d304405s0cw0jw0j00r00hq0mn","0mg0mg___07404m___08g0611at1hl08a0f7___1d700100202904b03i03u03603g04103805m06807f0bp03c04w0ap0nn0oy0rs0j00qi"],["Love Light",400,3,0,"0uo11m___0h205i___0f20230u90uh0dw064___2kj00i01m03h04h04s04r02i02s02c00n01j02602u03u01d01y03805f0bm0n50bl15o","12k1aq______04t___0d704s1160un0rs0a1___1qp00g01203904s04w04t03302y02500e03f04p07109u02p04407o0bf0cf0m70yp1ms","1j90xt______0240my06n0240wz0om0rs06y___2e100501f03i04603d04k03c04003200801902302p03r01901t02u04w0iu0np0xt24p"],["Love Ya Like A Sister",400,2,0,"0i50gg___0fa01f___0bc03k0qu1f00av0c4___1pw00900d02f05l03o04b05103402m00g03703r05j09b03703x0600cc0gq0of0er0kf","0uc0ut___0gy02f0hz0a604k0rk0nq0hd0dn___1md00700d02505j03r04b04z03c02l00p04504v0790c50430510870fd0ha0ox0hc1f1","0hy0hy___0i402b___01w03l0q21on0350by___1ky00000003004n03803k03003805502103803s05g08y03a04206k0cp0mo0r70eh0m0"],["Loved by the King",400,3,0,"099099___08601r___0ei01x0jl0vz00q0a4___2r500800d02j05104p05804302u02b00k01t01z02d03i02803a06o0dr0e60nw0840af","0b70dz___0mq01v___0cx03g0my0js04x0eg___22y00900a01j04z04k06b04l02p02400j02u03e05k07v03s0650cq0i40ft0oc09c0hq","09t0a4___08v01q___04101u0j613i00009f___2gk00000702b04603m04303p04204701h01r01x02803c0250340600d00hk0q608o0az"],["Lovers Quarrel",400,3,0,"0u5153___0fi05x___0fo02a10311v0ij06q___2jt00g00x03q04w04l04g03c02a02g00r01m02702t03x01c01s02w05h0ba0of0fd16k","1mt0tw___0bd07q___0e504p0zm0mm0rs0da___1rg00e00o02w05505504g03802r02h00q03j04z07q0aq02w04b07o0bb0ce0o514h1mt","0rs0v9___0eo01r___0bp01w0y40nd0hd082___2sn00900p02c04203s04503n03y03x01001a01y02m03s01601k02i04h0jx0q30n5169"],["Luckiest Guy",400,2,0,"0m90m9___0es01r___02c09d0vn0r405o0kv___16b00000001j04404a03l04504d03s02009609y0go0kf08h0cl0ox0rl0pa0rk0ir0ol","17r17r___0g6032___02209m0wo0cr0f80lk___0zx00000001a04404e03804a04h04f01m09d0bk0it0pq08l0ej0oc0qu0pk0rp0e91o1","0ml0ml___0if01r______0920vg0qo08g0kr___17h00000001604304d04503l04904f01s08z09q0g80je08a0ci0p10rb0p50rs0ij0ph"],["Lugrasimo",400,3,0,"0gr0gr0hc0e30360g609v03m13611q0ez0ay0be1oa00h00m02v05504t05a04c01u02600a03b03n05007g01t02q05u0bk0em0no0g60k7","0h80g70gq09n0310g00af04n10j0zu0ge0dw0e31m200g00m03705704y04804z01w02000a04e04v06e09d02w04908y0ev0eh0of0g70la","0ng0nq___0de04n___07l0431391hy0840a5___19300600b02j04203e03y03b03a03g03e03k04405z09502502y05s0cz0ka0rs0hd0rs"],["Lumanosimo",400,3,0,"0ml0m00ml09q02w0ku07v03t0so10r0bx0an0bo1fn00500c02f05003q04303k04e02m01j03k04505b09103903y05x0cj0hm0qt0k90ob","0kz0kz0lx0b502v0lg07604k0sw0q709h0cz0e91gc00100c01a05303r03v04504j03901j04704u06a0aq03y04q07q0ey0i90rk0j20os","0mg0mg___0dl041___06c0430ue1380a80am___18600100602b04o03703h03302u04703v03m04605c09y03903x0630cf0k60rw0g40qh"],["Lunasima",400,0,0,"0hy0j30hy09s0580ku09903x0vl0rs0520bi0cq1ek00a00702d04o03q04a03p04m02701s03q03z04p09m03b03r0790gl0j80rs0g70ku","0ir0ir0hr08104y0kg09a04q0v40mq05w0dt0fk1fo00800902k04q03z04f04q03k02m00s04g04r0610bv04004q09m0ht0j40qv0gs0kq","0ij0jo___0aj05s___06j03x0va0rs01t0bt___1az00100402404803d03y03j03604603603s03z04m0a203e03u0790fs0lj0rs0eh0ku"],["Lunasima",700,0,0,"0ku0m00jz06x04n0kv09906i0yx0rs0930go0hz1b200800a01y04w04104e04104a02j01806d06m08i0gc04z0690f60lg0ka0rd0ij0n5","0kk0lk0jl06p03x0ke09906x0zk0lo0b80hl0ji19y00700a02604x04504h04t03m02l00n06l07009y0gi05b06z0fw0m20js0qo0im0mj","0ku0ku___09c058___06j06k0zm0rs0410gq___15m00100401r04g03j03y03h03f04j02k06g06s08n0hh04z06c0es0r40od0rs0fn0ob"],["Lusitana",400,1,0,"0hd0ij0fc0d402b0gs0a403s1371sd07s0ap0cm1nj00c00803904k04304o04m01x02f01r03l03v04t0890280310670d80g70qt0eh0lf","0hb0ht0fe0n102w0hn09b04n0zp0s806y0dg0fp1o700900901p05604004k05f02102e02104d04w06509w03404a08a0fi0gf0qw0ef0m4","0lx0lx___08p03h___07v03w15023j0ax0ax___1dx00200502u03v03a03u03803703o03r03t04005009502a03006f0ce0na0rt0g60rp"],["Lusitana",700,1,0,"0it0ku0h20db0210gc09u0531851j30bh0d30fn1mg00b00902v04y04f05104502502u00x04x05d06m0ah02q03y08u0gl0g70qm0fm0lz","0hs0jr0hs0li01z0fm0a405w1471bk0cx0fa0ip1lb00b00903305204m05k03n02c02t00505g0620840c603j0520av0hk0f90pt0et0oo","0o80o8___08l04c___07t05p1bh1k30cl0dr___1bt00200502c04403g03v03703f03y03b05h05s0710be02y0450980l90ot0rt0ig0tf"],["Lustria",400,1,0,"0hc0hw0h10ds02w0hh0ah03a13s21609g0a30bb1p300a00903h04f04e04q04q02i02q00b03203f04006c01w02k0530b30gc0ou0eg0jn","0ge0hc0ge0j202w0hu09g04a0zr0t10730cd0ev1q100800901t05904e04v05e02y02e00904104g05c08402r03y07c0eo0h70o00di0ja","0lf0lf___0a204n___0af03o14827i08a09v___1e000300302u03u03d03t03c03803q03j03m03s04g06r02402w0610b90m40rs0f20q2"],["Luxurious Roman",400,2,0,"0j30j30it0vn02b0k908403j1512tt08s0950ax1i200600903k04b03j03x03l04c02202203803p04k07l01x02o0570bu0j70rr0gs0ov","0ij0jk0i10wd0330k407r04m10o0ko0900bz0dw1i800200b02205f02w04404j04c02g01o04b04u0660a802x04307e0fs0jf0rq0hi0wy","0o70o7___0fd04m___02r03v1a12xf0b0094___1bl00000003f03s03903h03403303p03y03j03z04s06y01w02m05i0bx0n70rt0ha0v4"],["Luxurious Script",400,3,0,"1g316u___0it02w0fn0bm03113s0ox0rs07p___2is00i00k02y05404u04w03o02702001302802z03h04b01i02503t05a0fn0q216u1go","18k_________0210g30ce0580ys0j10rs______1ur00i00i03705604v03v04f02702700x04l05d07y0bk03404r07d0ax0gd0qj11h1fn","26425j___08802w___09902o13a___0rs079___26600a00g02n03y03q03y03e03o04001r02102r03e04g01c01x03304t0nq0qm25j2p7"],["M PLUS 1",300,0,1,"0hx0ii0h205m04n0jp08602b0rx0rs04q07k08y1ij00700703404603o04003z04b01v02c02802e02z04t02302d03s0760hy0rd0g70k9","0h80h80gr08c03u0jp07e03i0s7___03k0b00dc1l500200901m04q03t04604o04d01v02903a03k04k08503103v06p0df0ib0rm0fb0k3","0jz0jz___06e06h______02d0sa0rs03707n___1b400000002y03s03b03204l02o03e04302802f02w04k02302d03x06d0iu0rs0i70mb"],["M PLUS 1",400,0,1,"0ii0ii0hx08504n0jp08503g0tt0rs06j0at0cd1hb00600802h04p03u04604504102701w03c03k04g08a03103g05y0e00ij0rr0g70ku","0jk0k20hm08g03x0k808904g0tj0m206j0d70eu1gd00500802j04m03v04604x03h02d01h04804j05y0ci03v04j08g0g30iz0rm0gn0lj","0jo0jy___0ah057______03j0tw0rs0370az___1ah00000002904803c03s03o03604003e03d03m04d08u03303h0620cj0kj0rs0gs0le"],["M PLUS 1",700,0,1,"0jo0k90j30780420jp08405p0w40rs0930fm0hp1fa00500902004y04204d04e03m02l01h05l05t07r0g204r05k0cv0jw0j80rs0ii0lz","0jl0k30jl07q03x0ji0890690x10lp0990h70jl1cs00400902704u04204c05003702l01706006h09j0gm05506f0em0k20jp0rm0im0lk","0ku0ku___09h042___02w05t0wc0rs0370fv___17800000001r04i03i03z03k03d04m02l05m05z0820i504x05p0c70oo0nd0rs0g70mk"],["M PLUS 1 Code",300,4,1,"0eh0eh0eh03q04n0jp0870280rc0rs00k0920ac1od00700803203z03u04503s04l01x02402702a02n04802302e04g0bg0ir0rs0dw0f1","0de0ec0de07003u0jp07c0380qz0yc00k0ci0ep1qa00200901q04m03u04304m04k01v02703403c04b07u03003z07y0fi0j60rn0de0ec","0e30e3___04p05a______0290s00s000009f___1n100000002s03i03g03704j02x03h03z02802a02j03x02302h0510c20lz0rs0di0fa"],["M PLUS 1 Code",400,4,1,"0f10f10f106q03h0jp08703d0td0rs00j0ct0e11nj00600902f04h03y04904104802701u03b03g04208v03103m08s0ij0j80rs0dw0fm","0fn0fn0f605202y0ka08704b0su1kj00j0fb0gv1kd00400902f04h03z04904w03n02a01h04504e05q0b903u0500br0j30jr0ro0eo0fn","0f10f1___08g03h______03g0u50rs0000d1___1m600000002404003h03v03o03h03y03903d03g03y07m03103s09n0ne0oe0rs0db0fm"],["M PLUS 1 Code",700,4,1,"0g70g70g704d02w0jp08705m0v31cf0130hu0jw1ju00500a01z04r04604g04d03p02i01h05j05q0820e604z0730i20q20jq0rs0fm0gs","0fo0fo0gn0bm01z0jh0880650v00lo01p0j40lk1cl00400a02404o04504g05203a02i01605z06j0bu0eu05f0840if0p20jr0rm0fo0gn","0g70g7___04y02w___05s05q0vg1c30000ij___1h800000101q04903m03z03k03m04f02k05m05r07o0e105107x0l90rs0qm0rs0eh0hd"],["M PLUS 1p",300,0,0,"0h10h10h105i0500jz08t02a0s90rs02y07m08q1jr00800703504403r03j04u03v01w02902702b02r04501z02c03t07h0ho0r90fv0je","0g90g90fs07g03u0jp07h03i0sq___0260ba0d51mi00300901m04r03u04804r04b01u02703b03k04h07h02z03w06r0dy0i90rm0ec0i5","0i70it___06y05v______02b0st0rs03707l___1dj00000002y03k03903004l02s03h04602802c02q04502002c04506y0iz0rs0fv0l5"],["M PLUS 1p",400,0,0,"0hd0hd0h209204n0jp08o03c0uc0rs0470av0c41ib00700702h04k03w04604504302501y03803f04406x02u03b05x0e40i80rr0fm0j3","0hl0hl0hl07y03x0k809004c0u40lt05c0da0ew1he00600702j04j03y04505103i02901j04504f05l0av03k04g08w0gd0ix0rm0gm0jj","0ii0ii___0ag057______03g0uu0rs02q0an___1cc00000002904303b03q03t03b03v03h03c03i04207202w03d0640dk0kw0rs0fm0k9"],["M PLUS 1p",700,0,0,"0j30j30j307404c0jp08o05i0x30rs0810fe0gy1fb00600802104v04404d04e03n02i01j05c05m0710e904e05d0cw0jw0j40rs0hd0le","0io0io0i606s03y0jk08f0650y10ma06y0gw0ix1dk00500902704q04304d05203802i01905w06908i0f604u0670ep0ks0jq0rq0hp0kn","0j30j3___09p04n___02w05q0xu0rs02a0fm___18d00000001s04e03i03w03n03g04i02o05k05s0790g704m05n0cl0pu0nc0rs0fm0lz"],["M PLUS 2",300,0,1,"0i70it0hm06v04p0jz08802b0s30rs05o07o08z1ik00700803404803r03h04t03u01w02b02802e02y04j02302d03t07m0hq0rb0fv0jz","0h70i60h708v03u0jp07d03j0sh___0420ay0d11lf00200a01n04r03u04504o04b01u02903a03m04m07y03203v06n0d80i80rl0g90k2","0je0jz___08n05l______02d0s70rs02z07o___1bu00000002y03r03b03104l02m03d04702802f02w04k02402e03x06l0ih0rs0h10lq"],["M PLUS 2",400,0,1,"0ii0it0hx08w04n0jp08803g0tp0rs0600aq0cs1hf00600902g04q03u04604404002801x03c03j04g08903203g0600dn0ii0rr0g70ku","0il0jk0hm08l03x0k808a04f0tk0mk0600d50eu1gj00500902j04n03u04504w03h02d01i04704i05v0ca03u04i08n0fv0iz0rm0gm0li","0jy0k9___09t057______03i0tr0rs03p0au___1ay00000002904903d03s03n03503y03g03d03l04d08p03303h0630cl0ke0rs0gs0lz"],["M PLUS 2",700,0,1,"0jo0k90j307f0420jp08705p0w30rs09m0fl0hv1fj00500a01z04z04204d04d03k02m01i05k05t07m0fw04r05l0cy0jw0j50rs0ii0lz","0jl0kk0jl07z03x0jh08a0680wz0lq0ad0hb0jd1dc00400a02704u04204d05003602m01806006g09d0gd0540690ei0k20jo0rm0im0lk","0ku0ku___096042___02w05t0wc0rv0370fu___17q00000001r04j03i03y03j03c04l02m05l05y07z0i304x05o0cm0nq0nd0rs0g70mk"],["M PLUS Code Latin",300,0,1,"0eh0eh0eh03q04n0jp0870280rc0rs00k0920ac1od00700803203z03u04503s04l01x02402702a02o04802302e04g0bg0ir0rs0dw0f1","0de0ec0de07003u0jp07c0380r30yc00k0ci0ep1q800200901q04m03u04304m04k01v02703403c04b07u03003z07z0fi0j60rn0de0ec","0e30e3___04z05a0g2___0290s00s000009g___1n500000002s03j03g03704j02x03h03z02802a02j03y02302h0510c20lz0rs0di0fa"],["M PLUS Code Latin",400,0,1,"0f10f10f106q03h0jp08703d0td0rs00j0ct0e11nj00600902f04h03y04904104802701u03b03g04208v03103m08s0ij0j80rs0dw0fm","0fn0fn0f605202y0ka08704b0sv1kj00j0fb0gw1kd00400902f04h03z04904w03o02a01h04504e05p0b703u0500br0j30jr0ro0eo0fn","0f10f1___08g03h______03g0u60rs0000d1___1m600000002404003h03v03o03h03y03903d03g03y07m03103s09n0ne0oe0rs0db0fm"],["M PLUS Code Latin",700,0,1,"0g70g70g704d02w0jp08705m0v31cf0130hu0jw1ju00500a01z04r04604g04d03p02i01h05j05q0820e604z0730i20q20jq0rs0fm0gs","0fo0fo0gn0bn02g0jh0880650v70lo01p0j40lk1cl00400a02504o04504g05203a02i01605z06i0bu0eu05f0840ie0p20jr0rm0fo0gn","0g70g7___04y02w___05s05q0vg1c30000ij___1h800000101q04903m03z03k03m04f02k05m05r07o0e105107y0l90rs0qm0rs0eh0hd"],["M PLUS Rounded 1c",300,0,0,"0gg0h10fv05a05a0jz08k02a0sl0qu01707u0941le00700703604303t03l04u03u01w02902802b02p04802002c03x07t0ht0rb0fa0it","0g90g90fa06q03u0jp07h03f0sj___01s0b10db1o100200801k04o03t04704u04c01v02803703i04b07502y03t06p0e40i90rl0ec0j4","0hm0hm___05w05v______02b0t60qr00007s___1fo00000002w03k03b03304m02t03h04302802b02n04202002b04807u0jl0rs0fv0jz"],["M PLUS Rounded 1c",400,0,0,"0gs0hd0gh07f0570jp08o03d0up0nl02s0ar0c81jw00700702e04k03v04b04604302501x03a03e04106w02t03b0640f00ij0rf0f10ii","0go0h60fp07m03x0jh08a0490t70hy0130dm0fc1la00400802j04i04104e05803602a01c04104a05d0ao03l04k09e0gm0i40ro0eq0in","0hx0hx___09b057______03f0uy0no0000ay___1eb00000002504203d03t03v03c03v03d03c03g03z06s02w03c06b0eq0lh0rs0f10jo"],["M PLUS Rounded 1c",700,0,0,"0hx0it0hx07304n0jp08o05k0xi0n004t0fl0gx1gd00500901x04w04604g04e03m02i01h05d05m06w0e504d05f0do0k80j40rr0hd0ku","0io0io0hp06t03y0jk08g0660y70gz05w0gz0iw1ed00400902404r04604g05303702i01605v06708d0eo04u06c0ey0ku0j30ro0gp0kn","0ii0ii___09704n___04n05q0xu0n20000ft___1a300000101o04e03k03z03o03h04h02k05k05q0710fh04l05p0dg0pz0nz0rs0eh0ku"],["M PLUS U",300,0,1,"0jz0jz0je05q05a0jz08802c0sh0rs08v07c08j1f100800803b04603o03g04r03u01u02e02802f03104t02202c03k0660hq0rm0hm0lq","0i50j40i509403u0jo07e03h0s7___07p0ap0cd1hq00200a01p04r03o04404q04e01s02c03a03k04p08t03003q05t0bw0i70rl0h70lz","0lq0lq___05v06h______02e0sz0rs05c07a___19a00000003103r03b03c04902m03c04602802g02z04p02302c03r0620it0rs0je0o3"],["M PLUS U",400,0,1,"0k90k90jo09504x0jp08803g0u20rs09t0ab0c11e800700802j04o03r04504304102701z03d03m04n09203103e05k0cv0i50rr0hx0mk","0jm0k30im08x03x0jg08604c0t40lr07y0dd0ei1fz00500a02n04l03u04805503402f01h04304g05x0d303w04g07u0fe0i30ro0hn0lk","0le0le___09405s______03m0us0rs04s0af___18e00000002a04803b03z03h03403y03h03d03o04i09f03303g05s0bl0kf0rs0jo0n5"],["M PLUS U",700,0,1,"0ku0le0k908404c0jp08705p0w90rs0bg0ff0hi1cr00500a02104z03y04b04e03l02m01k05l05w0800hd04q05f0bw0jw0j40rs0jo0n5","0lj0mi0kk08603x0jt08a06a0xd0lo0d10gx0iy1az00400a02804v03y04905203602m01a06006k09u0hl0540640di0jv0jo0rl0jl0ni","0mk0mk___09e04n___04n05w0wt0rs05k0fl___15900000101r04j03g04303g03b04m02n05m0610880je04x05k0bm0n80na0rs0j30oa"],["Ma Shan Zheng",400,3,0,"0cw0dh0cw0ir01r0hk0e60420kx0k30480fr0i12d900c00c02105e04u04a04h02f02h01803c04706008p04l06h0ac0gc0fy0qf0cb0gz","0du0du1ag0z202z0hg0e60690t00cn08p0i20ja1jg00c00c01u05805105104702h02p00n04a06409y0do05k08a0ei0jh0g10q10bv0wm","0fk0fk___0lf01q___03b0400ma14u04n0fo___24g00000101u04a03s04003a03v04t01x03d04a05v08m04706109s0go0n70r90co0ha"],["Macondo",400,2,0,"0gn0gn0fi09a03g0gf0ba03c0sd0vz06a0bn0cs1q900f00903b05504404x04802602w00d03003j04b07v02x03l05n0bm0f80nx0cn0h8","0g70g70es0at02v0gw0aw04a0sl0nh04a0ed0fr1q200e00a02j05d04304o05202703500403w04e05l0ak03s04l0840dw0fm0o50ce0h6","0i20i2___0ay04o___0bx03r0uk0w102q0br___1en00400202t04403803503x03604103803e03t04l07z03403q06a0d30mh0rs0bn0lk"],["Macondo Swash Caps",400,2,0,"0gd0gd0fs09303i0gl0b603d0rw0wc06i0bx0cg1qe00s00j03904w04304104w02e02k00f03003j04a07t02x03n05q0bm0fl0o60ca0gy","0g70g70f90b702v0gw0aw04b0s80nn0520er0ft1q500q00l02k05203y04l04x02903300403w04f05p0ad03u04p0810dq0fn0o40ce0h5","0hy0hy___0d204n______03q0u20so0440bt___1h800000001v04503903z03g03j04y02n03a03r04l08303203q05v0bw0n70rs0bl0lf"],["Mada",300,0,1,"0f10fm0er06p04x0ij08q0240r40rs01507x0911tr00900903k04b04704n04803c02v00802202602k03y01w02903s07b0gb0ok0dw0gs","0fe0fe0ex07303v0jl08b03k0rx___0130ce0dd1tj00400a01u04y04304n05203m02p00l03803o04g07m03503v07i0eb0he0oz0ef0hb","0hl0i6___06605v______02c0rk0rs00007m___1iz00000002y03p03c03804k02q03j03t02902c02p04002202i04b0830ib0rs0fu0is"],["Mada",400,0,1,"0g40g40g408d04m0j008n03k0uc0rs0350c30d11q500800902n04w04804n04a03g02t00e03i03l04807p03103m07e0fs0hf0ox0ee0h9","0ge0ge0ff07z03v0jl07k04d0tr___02a0eh0g61qe00300b01e05a04804r05203j02p00g04804f05p0al03v04l09w0hc0i70p00ff0hc","0ho0ho___09w05b______03u0ud0rs0000cd___1gj00000002604f03g03f04a02u04503203t03w04i08z03c04107z0hz0l90rs0eq0k1"],["Mada",700,0,1,"0i60ig0hv06e03h0jo0840640wo0tv05c0h00i81jc00400b02405404d04q04b03r02l00f0600650830es05106c0fh0mz0j10ph0hb0jm","0im0im0im06402y0k808806n0wj0ls06j0il0jf1ec00400b02904z04b04o04x03i02g00c06e06s0ah0fm05k07d0go0n30jo0pn0hm0jl","0jw0jw___07z04m___07l06k0wj0rs00h0hl___19q00100301p04j03l04203i03f04k02d06h06o08y0hb05k0730g50rr0nx0rs0hb0mi"],["Madimi One",400,0,0,"0gp0gp0g50ab03g0ig08a05m0um0xd02m0hv0ip1lj00700c01v05704j04y04m02u02v00g05j05p07h0dz04x0600fa0na0hy0px0ee0hv","0gu0gu0fu0am02z0hi08e0650u90i705g0ir0ka1kx00600c02505604q05a04t02i02j00505w06909c0eb05d06y0fm0mh0h40ps0dv0ht","0j10j1___0am04m___0410610u90nu00x0hx___1ci00000101j04i03h04403k03d04n02l05z06407x0fp05i06f0hu0qk0p20ry0ef0k7"],["Magra",400,0,0,"0f20fc0er07t03h0jc07203t0u80rx01p0du0en1ue00300o02n04y04e04l04c03s02100d03m03v04k09003c04109i0hv0hy0ob0dw0g7","0et0fs0et07e02z0jj07804l0sz0p901t0g60h01ss00200l02t05004g04j05603801w00504d04n06b0br0490560c90it0i50o30dt0gs","0gq0h0___09c04m___05s0450ud0rs00i0ef___1ld00000g02504c03m03z03g03n03q02i04304704u0a003n04h0a70md0kr0rs0cp0hv"],["Magra",700,0,0,"0h90ht0go06902b0jj0700650zn0w202f0ib0ik1qt00200l02b05204l04q04g03o01y00f05w06807m0dv04q06x0hb0o30iz0pd0g30ie","0hs0hs0ha0d901z0jg07a06k0ya0mz05p0jr0ka1km00100k02l04z04n04s05903301r00606906o0a40ep05908i0ht0nl0ix0oz0ft0ir","0jo0jo___06z03h___05u06o0zo0uq02u0j8___1fv00000e01v04e03s04303k03r03y02206n06t08n0fq05607x0jx0rs0mq0rs0hd0k9"],["Maiden Orange",400,1,0,"0f20fn0c60cx01r0jv08403s0q91hg01s0f40gq23z00600a02e05003q03z03s03x02q01t03p04005y09603t04k09w0jz0jw0rs0c60g7","0gm0gm0cp0mn01y0k908604m0qe1gi0520gz0j11yq00500a02l04u03o03y04g03l02o01n04g04u0800bz04k05m0c70ke0jv0rm0do0hl","0gs0gs___09c03h___02w03w0qn1qw0110f3___1uu00000002604n03903k02w03a04s03903s04006e09g03x04j09k0ly0qr0rt0f20hd"],["Maitree",300,1,0,"0hy0ij0hy08d03h0jd08t02p0yp2di07708h09o1it00900603r04003o04103q03z02002702k02s03g06601z02904308o0hy0rb0f20lf","0hs0hs0hs07u02z0k608h0400wj___04n0c00dk1iv00400a01v04z03t04704r03v02e01l03r04705c08203303s0750er0ip0rj0ft0js","0k90k9___08r04n______02s0zn2cr02m08h___1cm00000003e03k03403n03c02z03g04d02p02u03h06q02102a04g08h0m60rs0db0n5"],["Maitree",400,1,0,"0ij0j40ij0850370jo08u03g11d21n06p0a50b91hr00900703b04b03r04303r03z02502103b03j04h08102d02q05d0c50ij0rb0fn0m0","0it0js0ht0cw02z0k508h04e0yc___0690d10eg1i400400a01q05403u04904t03s02e01i04804m05v09h03a0420800fu0iq0rj0ht0lr","0ku0ku___08d042______03i11w21n0310a9___1bu00000002z03x03703r03b03203m04103h03l04g08k02g02r05t0bj0na0rs0dw0ob"],["Maitree",700,1,0,"0ku0m00k908402b0jo09905x1541hn0bz0ew0gf1ea00800802j04v03y04804203l02h01n05u06908j0d903q04q0bc0jp0j50rs0jo0ow","0lk0mj0k30jk02y0jj09z06i14417p0bh0g90ik1ct00700902n04r03x04604q03702h01h06c06z09v0f604c05i0cv0k10jr0ro0jl0oh","0nq0nq___08c03h___05806a1701in0an0fe___18c00000102804f03e03t03803b04d03106806c08x0em03z04s0b60mr0pj0rs0j40qm"],["Major Mono Display",400,4,0,"0ku0ku___05b08p______01y0qk0rs00l06f___11v00000003903903a03s03d03903m04001t02102h04301u02303c06i0ir0rs0hy0ml","0k90k9___04l078______0310qr___00009w___13500000001e04503i03x03x03d04803d02p0350490bx02q03n06d0du0kd0rs0hd0l8","0ku0ku___05o084______0240id0rs01r0aa___0zb00000002803v03o03r03a03q04f02v01u02e08q0k001w04907m0p80n90rs0hy0ml"],["Mako",400,0,0,"0g70g70g709704n0jo08p03w0x50rs0100cc0dr1mo00500802h04t04204h04303w02k01303u03x04f08u03303p08p0hw0il0q20dw0hy","0hk0hk0gl08103x0kb09604r0w50nz04a0ea0g51k800500802i04q03w04b04p03q02e01804n04u05x0bt03x04s0by0jk0jp0qp0fm0jj","0hd0hd___09t058___05s03y0x80se0000c6___1h100000202704803i04203i03c04d02k03u03z04h08j03303s08t0jv0l40rs0dw0k9"],["Mali",300,3,0,"0hv0g50hb04w04c0hv09e02e0qp0rx08a08a09u1oj00900803m04n04a04x04q02f02l00402b02f03104v02702m04308k0fk0nn0f00j1","0gf0eg___07003a___07r03i0s90p907s0b2___1uk00300c02905y04z05q04o03100r00203203i04j08d02x03s0650br0ez0lr0eg0hr","0k50k5___07505r______02o0rk0sb04n08e___1cl00000002q04103c04203103003p03w02k02o03d05l02f02t04h08t0jq0rq0hu0mg"],["Mali",400,3,0,"0g50g50g506c0410g908k02y0s00ro07y0a10ca1tk00800a03i05b04z05m03z03400s00102u02z03r06m02l03505b0b60ej0lg0ef0hb","0g40h40g408w0310fv08h04b0sw0i409t0cs0gi1qp00500c02w05x05806403a03400s00103x04b05r0b303q04i0800dy0f60lh0e30i4","0jk0jk___0ac056______03m0sr0sa0440ax___1az00000002b04d03h04103403404403a03g03m04l08l03703q0690ck0ku0rr0go0mf"],["Mali",700,3,0,"0hd0fm0h307c02w0gs0840550v60nr08x0ey0hk1nx00400c01y05v05905v04a03301000205005606u0d804805h0bl0h50fq0m60f20ij","0gq0er0fr07y02y0he08905q0uo0hh0730h00j91l200300b02805i05105n04y02w01400205c05t09b0du05106n0e10ja0g30mw0er0ip","0lw0lw___08r04m______06a0vd0qy05x0gb___14i00000001r04l03p04603b03k04q02106406g09i0ht05h06m0cx0os0mw0rs0j10nn"],["Mallanna",400,0,0,"0ih0ih0hb09s0570ja08303r0w10op0620bl0ch1iv00400802b04s04104g04903l02a01s03h03t04h07q03103k0740fh0hx0r90fl0jm","0id0je0hu08p0430k208g04s0vr0if04t0dx0f81ia00200902j04x04b03i05803a02l01604h04v0600bh03x04q09s0hj0ik0qx0gb0ke","0j40j4___0a805s______03u0w20ot02m0b8___1cr00000002204b03i03x03m03904d02s03o03u04h08b03503o0740fb0kg0rs0g70lf"],["Maname",400,1,0,"0ix0ib0ix08k03k0ji05b04210t24m08q0ci0d91jv00000803804w03c04d04r03i02v00o03s04a05h09t02m03d06s0eg0j20pp0fy0n1","0hv0id0hd0e702z0k707n04w0xx___04f0er0fb1kn00300d01r05j03z04f04w03s02800u04k05506y0ao03f04i08n0h70ix0pn0fw0lu","0ku0ku___09w04n___05804g1262ck08l0cf___1dp00000502p04d03703l03003104903j03z04k05m0b802u03l07d0e90p20rs0g70q2"],["Mandali",400,0,0,"0hy0hy0hd09x0580j808003r0vy0p40620bh0cl1im00400802d04t04204h04c03g02c01o03i03s04f07v03103k0740fc0hy0r90f20jo","0im0j30hm08u04w0ji08704p0v90id06f0e20fi1h800300802e04q04004e05103502e01e04d04s05v0b603w04o09i0h60i20rn0gn0kk","0j40j4___0a606d______03u0vt0oz0310bc___1c200000002204b03i03x03o03a04303003q03v04i08603503q0760f60kj0rs0g70lf"],["Manjari",400,0,0,"0jo0j40jo0790420k90a603k0r60qh07n0b10bw1j900900702b04y03p04g04304402d01f03b03m04o08p03d03v06c0d90hz0qq0gs0k9","0j90j90j907n03y0kd0a804h0rv0l10930db0fc1io00800802e04y03v04i05303802h00v04704k05x0d504904v08k0fm0i70q40gs0lq","0ku0ku___09804c______03k0s40q803s0ar___1cp00000002604e03704703i03504e02t03b03m04i09u03c03r0660bp0jr0rs0fn0ml"],["Manjari",700,0,0,"0k90ku0jo07q02w0ku09u04i0rw0q50730dd0em1jg00800802005103v04d04004j02f01604704k0620ce04904z08o0hb0j40qn0hd0lz","0km0km0jn0ch02y0lb0a505a0sd0jl0730f30g91hx00700902404r03u04a04r04702c01304v05e07i0eh04y05t0b20jh0ju0qu0ho0ml","0ks0ks___09y02w___06d04f0s90p002q0d7___1ci00000301w04i03d04403k03904j02i04604k05w0e804704r0890h90ku0rs0fl0mi"],["Manrope",300,0,1,"0ih0ih0is0560420kx09l02r0r10rs05808q09z1nu00900702v04i03k04703n04t01t02102k02t03f05j02i02y04r09e0il0rc0hc0jn","0ii0ii0ii0bj0330l40930430s6___0520cn0d71nd00400901n05702z04c04k04z02901k03o04605809s03j04g07s0fd0jg0rl0ii0lk","0j20jn___08304m______02r0ri0rs00j08x___1it00000002n04103c03x03e03303h03y02k02s03805902i02x04w09a0jp0rs0hc0ld"],["Manrope",400,0,1,"0ih0ih0j20700420kx09m03d0rr0rs0640az0bo1mc00900702j04q03p04603p04q02101t03603f04907g03103l0620df0j20rq0hc0jn","0ii0ii0ii07c0330l309204g0sj___0580dj0eg1lv00400901g05903104e04n04y02b01f04504i05u0c604004s08y0gw0jk0rn0hh0kk","0j20jd___09u057______03d0sn0rs00z0ak___1hf00000002b04903e03y03g03403v03i03603e04007903103j06b0bw0kf0rs0fl0ld"],["Manrope",700,0,1,"0jn0jd0jn07o0420kx09l0580u70rs0930f70g01id00800802204y03x04a03y04e02e01h04z05906v0ey04o05k0bm0km0jr0rs0ih0kt","0jo0jo0jo07303y0lc0a105u0ul0lk0930ge0h31gr00700902604u03z04b04r03t02h01205e05x0840f80550690dd0km0jy0rq0ip0kn","0k80k8___0a4042______0570u70rs04q0ez___1c500000001t04i03j03z03g03b04i02q04z05906v0fs04o05l0av0ng0mq0rs0gr0mj"],["Mansalva",400,3,0,"0fn0g7___09d042___0cs04v0vy0r90az0co___1i600d00e02005705g05g03d02w02900h04904y06h0a003k05309g0ey0dh0ns0eh0j4","0fs0hq___09k03y___0ce05o0wj0ic0a80ex___1dp00d00e02805205e05d03r02t02400d04y05t0880cd04e06c0bf0ga0dz0nw0dt0kp","0lv0lv0lv06r03g0n004v04q0wa0oz0d70b30c91ck00100902204n04q04w03t04o02l00604204v06b0a503h04n08h0dq0fp0n50ie0oq"],["Manuale",300,1,1,"0ha0gp0hv08o02w0j206x03511l2il08609s0av1o600300c03u04f04104j03m04802d00d03203903v07w02102f0500as0ig0nw0ez0lb","0ha0ha0ha0gq02w0jl06c0460yw0qw0610cs0ej1os00000c01z05904104g04n04e02f00c03x04c05o09n02y03r07o0fj0i90ny0ef0k6","0ku0ku___06x04n___06m03h11m2os04h0ad___1eu00100403603t03703m03102z03m04a03g03p04f09602b02q0640bj0ox0rs0hy0ph"],["Manuale",400,1,1,"0ht0h90ht08e02v0j006w03m14d27708q0am0c81nt00300c03k04k04204h03r04302j00e03j03r04h08q02802o05y0dh0if0o50fj0lu","0gh0gh0ik0m90330j305z04n10x0rw0880e90fo1n700000b01z05n03d04x05304702200904g04v06b0at03604208p0gv0im0np0fg0km","0ku0ku___07204n___06n04314u2d306y0bj___1ed00100402x03y03a03n03203203q04204004a0500a902i03006y0db0p50rs0hy0ph"],["Manuale",700,1,1,"0hy0lp0hd0kb02b0j306l05i1cn1gw08e0dq0fh1n900200d02v05004e04q04803q02300c05f05m0730bn02x03x0ae0j70ik0ns0g70mk","0j70wz0ip0oz02y0jd06g06616s18g0bl0eh0hw1ln00000e03205004d04p05103e01p00805x06c08e0cw03n04z0cb0jn0i60nu0gr0yh","0m00m0___0ci04n___06v06d1e71ou0b00f5___1cq00000402d04903g03r03403b04303d05z06g07r0dv03704d0b80oe0qa0rs0j40qm"],["Manufacturing Consent",400,2,0,"0j40ku0fn0fx02b0hy07105516i0qe0660ej0et1xp00200f02205a04704p04j02k03001103x05606909e02e04j09t0hv0gy0qm0fn0nq","0ht0l90eu0gv01z0if06i06010r0lc0740h90i21mj00000d01v05704604o05502m02w00w05f0690900ds03x0660ev0l40hw0qv0eu0oq","0q20q2___08c02w0n807j05410x0kj0be0et___1z700200a02004c03a04b03s03e04m01s02m05406f09u02k04k07l0i20ox0rb0ml0r7"],["Marcellus",400,1,0,"0hy0hy0ij0bo03h0jo09u03u13r0yq0930af0ba1j000900a02o04d04704j03x03y02401k03n03z04g05u02403806f0fc0he0qr0dw0ku","0hs0is0hs0ip03y0jj0a604r1150sa07a0d20fa1iy00800a02u04a04804i04t03902f00z04i04v05i08f02z04e0900gx0hx0q30ft0lq","0hv0hv___0h004m___08903z12o0ym05k0ao___1cw00100502f03t03p03w03l03j03j03603t04204n05q02803g06r0fc0i50rs0ef0nn"],["Marcellus SC",400,1,0,"0jb0l10j10dj0410kr07l03v13d0yj0c60a60bd1hv00200602n04e04f04p03v04c01q01i03o04004i05p02403e06j0el0ft0p20ef0mh","0jq0k80ir0gs02z0kf06d04s11m0rx0bq0cm0du1ht00100602u04e04l04u04i03j02200t04h04v05k09302z04m0900go0g40oy0gs0lp","0hv0hv___0gz04m___08903y12d0yk05k0as___1cv00100502f03u03o03w03l03j03j03703t04204n05p02903g06q0f00i30rs0ef0n2"],["Marck Script",400,3,0,"0eu0fp___11w015___0d503c0tm16i0dw09i___1xs00m01303k05u05g05402z02100y00702s03e04c06i02j03a05t08x0bh0if0d40i9","0om0se___11r01w___0cr04n0up0re0et0b7___1nt00k00z03605u05f05b03202l00s00403x04o06m0a503j04t08k0br0ci0j10cb0v8","0l40l4___0qd03h___0cc0400un14q08c0b5___1e700h01e02n04403r03k03203p03m01h03l04305608703003v0670a70in0qv0g70sy"],["Margarine",400,2,0,"0g60gr0fl06602b0k808o0490q30rl01m0do0fy1w800600c01p05504e04o04904e02e00c03z04a05i09u04505909z0hu0il0og0fl0hw","0fv0fv___0g401z___08c04u0qe0d20420fg___1qh00200c01705304k04s05204801v00n04g04u06q0c204u0680bx0ig0j10ow0ew0gv","0gi0fd0gi09201p0nb03z03z0qv0rk03r0ec0dq1tn00000101y05404p04r04705801u00103s0420580as03v04p09a0go0h60nb0fd0is"],["Marhey",300,2,1,"0gs0hy0gs08z04n0gs0al03y0w90po0880b80e11ks00c00702n05004k05604301z02p01503o04104t07m02v03o06l0el0f40pk0fn0k9","0h30h30g508m03t0gw0a104o0vg0p407c0dt0gz1lc00c00702p04u04d04v05102i02h00h04b04q05u0a503p04l08w0g20fl0oy0f60iz","0k50k5___09i06c______03u0vg0po00g0b0___1cd00000002504503j04703903b04902y03n04204n07902w03o06j0g30kv0rm0g40mg"],["Marhey",400,2,1,"0hw0j20hc08g0420gr0al0520yv0uv0990df0ge1j400c00802d05604m05703x02602s01204r05806409v03i04o09l0gs0fl0pn0g60ks","0h30ii0g408c03t0gv0aq05m0yt0x10880f80i51jg00b00802h04z04g04y04u02r02g00f05405p06w0c704605a0bc0i10ga0ow0f60jx","0kr0kr___09005r______0540yq0qd0370dd___1ap00000001w04e03m04603903h04g02k04t05d0650aw03l04s09k0ln0mh0ro0gq0nn"],["Marhey",700,2,1,"0kd0ko0iy0aa02b0g30al08714p0s20cu0hv0jw1d300b00a02205904z05b03l02m02p00r07n08o0af0h405g08d0fw0oo0fr0pv0id0my","0is0jr0is0a501z0fo0ab08g13h0ko0ep0k20l51a700a00b02c05e05605i03k02u02a00607v08z0cd0hj05v0960fm0no0f90p20gt0lr","0nl0nl___07u03g___04108q14o0of0990iw___15k00000101i04d04104303d03x04i02108909h0b40ix05t0930kk0qy0oq0rm0k50pv"],["Markazi Text",400,1,1,"0ia0jg0ia07002d0iv08j04i1501oa0930dm0ej1n200700903304y03r04q05402u02m00b04b04o05p09x02q03m0890hf0ia0or0gi0kn","0hr0jq0ir0h201z0jd08d05f10z1d907p0fm0hk1ly00600a03104y04d04n05302z02400705705r07j0bw03n04y0au0ir0i20o00fs0jq","0mh0mh___06t04g___07b0531871uy07g0dn___1d600100302h04a03203s03q02w04303e04z05a0690b703203x08p0jx0oz0rs0ix0q0"],["Markazi Text",700,1,1,"0jx0ki0jm0e001r0jc08i06a1aj1ap0av0fq0hq1lp00600a02k05404k04305003k02600b06206j0830cx03h05d0cs0jq0ir0op0i60m9","0l80lq0jq0uh01z0jf08e07216a13l0c60hu0jh1ju00500a02o05004h04m04x03h02200706m07b09k0f404e06n0fc0ll0iy0ow0jq12h","0nn0nn___09i03k___0820761cx1ea0at0gn___1ap00100302204f03803w03u03204c02x06z07g09d0fo03x05x0di0q40pm0rs0kp0r7"],["Marko One",400,1,0,"0kz0ke0lk08203i0jz0d905u16v10g0aw0eq0eu1es00900a02h04o04603s04x03j02501k05l05y06r09v03c05j0bh0k60it0r20j80mq","0jy0jy0kw07z03c0iw0ct06613x0xd09t0fy0gs1fj00900a02k04l04304c04x03q02m00g05w06a07c0bx03y0600co0jl0ic0q20i10lu","0k60k6___08x057___07w06517p0yt0370ev___1ak00100502304503k03v03803g04d02w05r06606u0af03j0630c80of0nz0rs0fk0nm"],["Marmelad",400,0,0,"0g70gi0g707z04n0hy08p04914d0qj03m0cr0dm1nh00700903104p04h04s04g02s02r00f04404a04l06k02e03u08m0hj0gu0pk0fn0hd","0ht0ht0gu08o03z0je08g05810f0jw03c0eo0gh1l000400802c04r04804j05003002l01004w05905x09g03f0520bg0iu0i20qx0gu0js","0ij0ij___08t04n______04l15y0qo0000ce___1fe00000002o03w03n03y03c03j04502o04b04l04w06o02i04f0930lk0lh0rs0f20ku"],["Martel",300,1,0,"0ht0kp0ht08c03g0k409703110b29b05x09b0al1ky00d00h03q04103p04603c04r01l01q02z03303o07202102h0520a50if0r20go0la","0h90j60h90ef02w0ll0940420y40ss04f0cs0dq1l900800h01z04s03l03z03w04w02c01q03u04605408d03003s07p0fu0k20qx0gb0l3","0kf0kp___07t041___06h03312l2mj02h09d___1hc00100c03e03n03b03p03503b03903r03103503m06901z02e05c09s0la0rs0dt0o5"],["Martel",400,1,0,"0id0ko0hs07p0360ji08r03g12p1z90730ai0bn1mc00b00h03j04903y04903l04f01p01c03e03i04407w02702p05s0ca0hy0qe0gn0l8","0gq0il0gq0kk03q0kw0880480zi0sw03z0da0ev1mn00600h01v04u03m04z03x05001r01804204d05e08p03003w0840fy0jg0q40fs0kg","0kz0la___08q04b___06h03k1522cp0330ad___1gx00100c03603u03d03p03403d03a03n03i03m04707l02702n0650bp0lg0rs0ed0oq"],["Martel",700,1,0,"0j40ku0j407802w0ja08s04n17m1mo09g0cw0ee1ld00a00i03304p04704f04003v01x00w04i04p05o09m02n03i08o0hd0i80qm0gs0lf","0i80k90i80p20310k109c05c12t1g306s0f10h51jj00800i03804l04803b04o04b02100p05805l0720b403g04p0au0iu0ip0qj0h80la","0mf0mp___07g041___06l04u19v1v004d0cz___1fh00100c02o04403h03s03603g03g03c04o04v05m0an02q03i08o0i20mh0rs0ie0pb"],["Martel Sans",300,0,0,"0fn0eh0fn05x04n0ij08d0310um0rs0540ao0bh1pd00800903704o04a05404g03e02000802x03203l06102g02y05e0cq0gt0n90eh0hd","0fe0eg0fe08c03v0jr07i0430tn0uo02s0dd0en1oq00300c01r05004504t04x04g02200903v04405409k03g04908u0ge0i70n80eg0hc","0ip0j0___09q06c___09b03i0uw0rs02v0ah___19w00400302g03z03803r03o03903u03h03h03j04606s02u03f05w0cp0jw0rs0ez0lv"],["Martel Sans",400,0,0,"0g70eh0fn07n04n0im08c03h0vg0rs05c0br0cm1nx00800a02y04w04b05304f03k01v00803e03j04507z02s03d06t0f10gz0nc0eh0hy","0gc0fu0fd07503u0jp07i04b0u9___0250dx0ff1o300300c01m05604504s04z04a02600a04604f05d0b803m04h09o0gy0i80nx0ef0ha","0j00ja___0ag06c___09c0430wv0rs02q0bs___19b00500302a04403b03s03m03b03z03804104404t08g03603x0750ga0kv0rs0ez0mg"],["Martel Sans",700,0,0,"0hy0g70hd0730420j408e04z0z50rs06f0er0fk1ju00700b02h05504f04z04g03y01o00904v05005z0cz03r04m0ao0j50hz0nq0g70jo","0hq0gr0gr07w03y0jh08c05j0y30s00600fs0hj1ij00600c02l05104g04y05303p01e00705a05p0790dk04e05l0cl0jc0i50nu0fr0jp","0kr0kr___09c05s___09g05u0zm0rz03s0ey___15o00400301x04c03g03w03j03f04c02q05t05x0730g104b05k0bz0po0ml0rs0hb0o8"],["Martian Mono",300,4,1,"0hq0hq0hq05t05x0kp07603q0s30rs0120co0ds1ce00200d02i04y03504e04k03z02f01g03m03s04s09x03h04307a0go0j30r90gk0ib","0gn0gn0gn03p05k0ks06c0480rg___00j0e90ft1cx00000b01a05204h04504a04l02c01d04304d05m0cb04204t0960hh0jj0qq0fq0hl","0hd0hd___08l05s______03s0sj0rs0000d4___1bb00000002504b03804403e03a04b03303q03s04g09z03j0460870j10ne0rs0eh0ij"],["Martian Mono",400,4,1,"0i10i10ic06c05f0kh0780470si0rs0220dm0f51c300200d02g05403904h04104f02701g04204a05i0bt03y04n08q0if0jf0r90gu0im","0gy0hw0gy03t04q0kj07204q0sj0nf0130f20gn1ce00200c02e04q03p04505o03n02g00q04h04u06g0d804e0590am0iz0ja0ql0gy0hw","0hy0hy___08s05s______04a0sv0zi0000eb___1a700000002004e03a04203e03c04h02w04804a0550cu04104q09u0mp0o00rs0f20j4"],["Martian Mono",700,4,1,"0j20ii0j204f0420ka06z05q0to0rs07c0gy0ii1cd00200c02505504204i04704402o00l05k05t0820g50530650dy0ky0jq0q80hx0jn","0iq0iq0iq02y03y0jh0770650tb0lq06y0ic0jw18k00100c02d05504604n05203f02i00605x06c0bj0ga05i06p0f60lx0j00pv0hr0iq","0jn0jn___07z042___06v0640tc0rk0000i1___17g00000201r04g03g04203d03h04p02i06206608b0hd05p06t0g00rm0p60rs0hc0k8"],["Marvel",400,0,0,"0c40c40c40630410jr0a202e0ox0rs0160an0bk22600a00702r04h04004b03n04h02a01e02d02g02r04x02h02u06o0gq0j20py0bj0d9","0cu0cu0cu06x02z0k909l03p0pi0yl0130ec0fm21600700801k04z04204f04o04602e01503g03r04k09403p04j0bk0j30jq0qj0bu0du","0d90dk___05605s______02j0p00rs0000ap___1up00000002d04403f04403i03a03u03702g02k02t04t02o03006s0j90ll0rs0bj0fk"],["Marvel",700,0,0,"0cp0cp0cp05j0410jr09t02w0pp0rs0160c80di21800a00702h04n04204d03s04d02f01902u02y03c06e02z03d0950ig0j40py0c40d9","0cv0cv0cv06v02z0k909i03z0q40uu00k0fb0gk20d00500901d05204204h04v04602f01103n04105409x04304v0ck0js0jt0qj0bw0dv","0du0du___05k05s______0310pn0rs0000ce___1to00000002504903g04303j03c04602v02y03203e06q03503l08r0n30mp0rs0c40fk"],["Matangi",300,0,1,"0eh0eh0dw05o02w0j408s01q0qb0r401707907t22400800803r04503y04u03p04302r00601n01r02103c01n01u0350660h00ow0db0g7","0fe0fe0ef0qx01x0jt09602z0r5___05e0bg0cc1zh00600801w04y03r04i04f04i02e00z02r03203z06v02s03b05w0cq0ic0pv0ef0j8","0g70hd___0b50420fb___01t0ql0rs00j075___1qn00000003f03h03403t03i02y03a04801r01t02303b01r01y03g05x0is0rs0f20j4"],["Matangi",400,0,1,"0eh0f20eh05s02b0j30990280s80rr01608t09n1zp00900803d04f04204s03v03v02v00602602902m04802102a04409g0hh0ox0dw0gs","0gc0gc0fd0pg01x0js09803k0tn___07l0cz0db1wf00600901t04v03w04j04j04g02f00x03a03m04k08e03103u07q0fd0ie0pv0fd0oz","0gs0hd___0ak0420fv___02g0sr0rs00j08s___1og00000002u03x03903w03d03103h04102e02g02s04n02802h04r09v0kh0rs0fn0jo"],["Matangi",700,0,1,"0fn0g70fn09h02w0j30a203x0w90rs0470ds0ei1t600900902j05004a04r04d03f02s00603p03z04m09p03803p0990i20i00p30dw0hd","0h50hn0go0ka02g0jd0aa04p0up1av0690fh0g51q100800902n04u04804k04w03802s00604i04s06h0cg04404w0ba0iy0is0po0fo0kl","0hn0hn___0cn03h______04c0w70rs00g0ds___1iz00000002104e03g04303d03a04e02v04b04d0500ci03n04a0az0nk0na0rs0dw0ku"],["Mate",400,1,0,"0g70ii0g70ee02w0gt09a03611y29p0990ad0c11qv00b00a04004k04e04k04p02b02600k02y03a03x06z02102h05h0au0fs0p30eg0jo","0fv0ha0fd0jl02w0hs08i0450yw0tg0520d80fp1rm00700a02505b04804j05b03102000t03y04c05e08t02y03t0840es0h90ps0ef0i9","0kt0le___0fv057___07103j13p2nq0990a2___1fk00100503703x03c03o03703e03803p03b03m04707t02802m0610b40lz0rt0hx0ql"],["Mate SC",400,1,0,"0hx0kt0hc0cx03h0jb05703e1312cl0b00af0bn1kz00000603l04i04904e03o04i01f01b03403h04507u02502l05o0az0ii0mr0g70kt","0hr0jq0ha0je02z0k404j04f0yr___08g0di0f91kp00000201y05c04a04m04r04501m01304604n05x0a20370460870f60hs0mn0fs0jq","0kt0le___0fv057___07103j13n2nq0990a1___1fk00100503803x03c03o03703e03803o03b03m04707t02802m0610b30lz0rt0hc0ql"],["Matemasie",400,0,0,"0lc0o70jw08501q0kz06x0811d50p50er0ir0k61bb00100801e03g04104s04n05502v0190720920em0k305m0c50j80on0kr0r90jl0s8","0to1gw0js16501z0lg0780861be0k50l60ir0lc17e00000801h03k04304v05f04x02n00m0720950eq0kj05x0bx0jl0oh0l10qw0lr1pb","0rs0rs___04z01r0na05n08z1jd0ia0fo0is___16u00000201503003k03q04505i04w01t07t0ah0eh0mn05m0cd0ju0q10oy0rt0nq0sd"],["Maven Pro",400,0,1,"0hc0hc0h205s0570jn08e0370ru0rs02y0ak0c91il00500902q04p03u04q04003z02v00m03503903z08j03003d05s0eh0i20q00g60j2","0hk0hk0gl08103w0jy07j0470rr___0130dh0f91iz00100a01i05403v04n04w03z02t00p03y04a05g0bv04004i08s0gf0ik0q70fm0ij","0j40j4___08y06d___02w03f0se0rs0000aj___1a700000002904803504603i03404103d03b03h04409e03603i05z0d10kg0rs0fn0lf"],["Maven Pro",700,0,1,"0k70kh0jw0780410kv08w06n0xa0rs09m0hc0im1bs00500902004u04004f04104b02m01706d06x09m0h505f06u0gk0pf0kb0r90j10n2","0jp0k70jp06v03y0lc0950720xd0mn09m0id0jb1a300400a02504v04304i04u03r02k00p06n07d0aw0h105s07b0gz0oe0k10qz0iq0mo","0ml0ml___08904x___0420770ys0rs03s0hr___14100000101q04d03k04403h03i04m02h06z07c0ah0j305l0750h70rs0oi0rs0j40ob"],["McLaren",400,2,0,"0j30jn0j308803h0jn09y0490st0sj0880cm0f31jp00900801p05603x04s04803r02m01604204c05j0an03u04h07u0fy0i50qm0hc0k8","0jt0jt0it08h02z0k90ad0500sq0f908w0em0gf1i500800902504u03y04n04x03f02m00u04p05306p0do04k05c09x0hr0iq0qp0hu0ls","0ku0ku___09y04n___02b04g0t60th04c0cl___19t00000001t04j03i04j02x03504h02w04804h05n0ct04004k0810ez0l30rs0f20nq"],["Mea Culpa",400,3,0,"0cu0l304k11s0400ab0bh0240zq___08c0830bl3ao00s01c03905305603v03002d01n01b01h02402p03i01601o0340590ae0ny07f0q8","0n80kr___0j403y0af09k04q1050tv0dw0ej___1rc00o01602x05e05e03x03602f01x00w03p04y0720ao02g04707o0ah0as0mr0bv0zl","0d90ha___13002b___08202111n___0bx07k___2or00e01502g03p03w04403e03i03a01z01h02402w03v01201i02o04n0mj0r204m0ty"],["Meddon",400,3,0,"0ic0y6___1ej05a___0b403415r1680dw09e___1x201001a03b06r04a03n02r02801s00s02n03704605r01p02503z07508g0ji0fk1g8","0ef09m1c319t02w08x0b605517h0c40h30f80g61v100i01d03h08005o03n02r01y00d00303o04o06s09i02e03n06q08u07n0fc09m11i","0hg0hz___0b903t___09t03a1671a60990ad___1od00r01l03s03y02y03b03j03a03601h02l03b04b05w01m02903z0760hj0qe0f90nz"],["MedievalSharp",400,2,0,"0hn0j40hd07x04n0k907l03m0o00rz01m0az0b21ly00200a02305603z04203z04602g01m03703s04s07d02o04j06a0d90hm0qt0g70jo","0hs0hs0gt0b303y0l806n04l0po0ck02a0dt0eh1m100000901v05504204404q03w02k01704604r06109o03y05i0890gf0iu0qx0ft0jr","0j40j4___09h058______03t0pu0s400g0aq___1hl00000001x04h03q03t03d03c04a02x03603u04s07602m04i06w0cx0kb0rs0eh0k9"],["Medula One",400,2,0,"09z0a909z0bm01r0kk06l03h0tp1nc00j0ha0gt2qd00100d02g04o04303q04a04502c01q03g03m03r07703605l0jh0qm0km0rk09e0b5","0b20b20g50ir01u0jz06q0480q715g03a0kq0k92qu00100c02c04k05304b04i03i02j00o04304a04v09404d07x0iq0or0jm0pz0a50jd","0b00b0___08i02b___06o03o0v31n70000hn___2le00000202304703l04003303n04602z03o03o03u06p0380560o90rr0qu0rw0990bk"],["Meera Inimai",400,0,0,"0h90i40h908y03g0k908n03t0s30rs0220ce0dp1mw00700902904u03t04d03z04602901p03n03y04s09303g04808a0h50iz0rn0g40jk","0hq0iq0gr07t02y0kd08b04l0s10mf01m0er0g21m000500a02e04v03x04g04y03a02i01204c04p05z0cl04a0550ak0i60j20r00gr0jp","0iz0iz___09z03g______03v0u40rs0000cj___1in00000002204d03f03y03p03704003403o03y04k09703c04207z0hz0li0rt0ee0k5"],["Megrim",400,2,0,"0gs0gs0gi05l0580mn07r01m0p20rs00k06b06j1mt00700803w03l03903x03d03z03e02001k01p01z02x01j01u03404r0is0qm0f20hy","0ha0ha0gb09c03u0ml07f0330q8___0150b90bp1o600200a01v04l03b03v04304j03e01u02y03804406h03103k0680av0k30q30fd0ha","0gs0gs___05r06y______01m0qe0rs000068___1jo00000003x03702v03803a03803f04o01j01o01x02v01j01r03404r0n90rs0fn0hy"],["Meie Script",400,3,0,"0le0th0cq0is07j0az0fm03q189___0ij0750b11qf00e00e04406405u03a01w02f02801502m03n04005l01i02c0490560840nu0db0y4","0mp0rn0i90fw07w0bk0ee05c0w5___0h30at0f21kc00h00f03i06905u03k02c02h02700q04l05k07o0aa02t05106y0940960nz0hr0xk","0qm0qm___0bb0af______03r16o___0ju071___11400000002w04f03i03a02u04204402p02m03m04205g01m02h04605008u0r60n50we"],["Menbere",300,0,1,"0gs0gs0g708z0420jo08p03l0u90rs01k0bo0cv1na00900802i04s04104i04303u02k01303g03m04707s03203m07e0gb0i60q70eh0ij","0gr0hq0fr08b03y0ji09404g0t60m601m0e40g31lz00700802l04p04304j05003702p00l04804j05t0b304004p0a30hp0ix0pw0fr0iq","0hl0hl___09m04j___06903l0u80rs0000br___1i700100402804a03i04a03y03d04x01603g03m04609403203m0750fj0k50q30dm0ja"],["Menbere",400,0,1,"0gs0hd0gs09a0420jo08p0430uu0rs0210cq0e01m700800802c04v04204j04503r02m01003y04504w09g03h0450980hu0ik0q60dw0ij","0hr0hr0gr08403y0jh09604u0uk0n60260f30gp1l500600902h04t04704k04z03502o00k04n04x0690cg0490520b70ip0i70pw0fs0jq","0i50i5___09r04j___0690430uz0rs0000d2___1he00100402304f03k04703y03f05101203y04504t0aw03i04608y0jw0l20q30e60ju"],["Menbere",700,0,1,"0ij0j40hy07i03h0jw08p05t0wk0rs05c0gn0i81j600700a02104z04604l04903u02n00v05o05v07d0e704t0640f00lz0jc0q60g70k9","0hs0is0hs07103h0jh09706b0wr0lt03r0hn0jq1gp00600a02904x04a04n05103702l00i06206e09i0es05906w0fy0m40j10pw0gt0jr","0iq0iq___08v03z___06y05u0wr0rs00w0gr___1dk00100401t04j03q04704103o04w00w05p05z07t0ej04v06c0en0q30mv0q30e60kf"],["Meow Script",400,3,0,"0u314i___0jn03h___0g702n0rx___0mq08w___21e00o01i03404r04f04m02r02p02l00p02b02p03k05e02502n03q05l0cs0nv0m01iz","1gq27l___0fd04z___0eq04e0tb0zd0nt0ba___1o100k01602q04x04k04o03f02v02100w03r04k07a0bc03i04h0760af0dx0o10mw27l","1kz1sm24y0gl0380mx08b02c0ta___0n506v07m1pe00800y02q03g03f03q04503e04g01d02302h03d05h01w02803204i0l80pv0mx2k8"],["Merienda",300,3,1,"0e30eo0e30850440hm09z0310ro0r201n0ab0ct1yn00f00e02x05204q04g05i02d01t00602r03203i04u02h03e06k0ct0fa0ls0cx0f9","0dz0eg0di08j02w0hr09a0430ri0lr01o0dh0g11wz00a00e01q05904q05605f02y01q00603n04304u07n03k04x08z0fi0fk0m30cj0ff","0fn0fn___0dk058___0af03c0ua0na00h0ai___1lk00900801u04a03o04103803r04c02703303c03t05902m03g0710dq0i10r70c60ij"],["Merienda",400,3,1,"0en0en0e107h03i0hk09y03l0v20qh01o0bq0ds1xf00f00f02s05304u04i05g02s01e00703a03m04105k02o03t07r0et0ff0ls0e10ft","0et0fa0dt06w02z0i609h04k0tp0nc0150eq0h21u500a00f01n05b04t05605e02y01p00604604j05b08g03p05c09t0gt0gn0mm0dt0fs","0gs0gs___0cu04n___0af03x0wb0hz00y0bv___1ke00900801q04c03q04103903u04e02403p03y04f06a02x03z08c0fu0j40r80c60j4"],["Merienda",700,3,1,"0fn0gi0eh06h02w0hd09v04g0xb0s902b0dk0ff1xr00e00f02l05704w05a04l02u01h00504004g05006t03104s09m0h40fs0lo0eh0gs","0fs0ga0et09402z0hi0a50570w00ng03w0f00i71s700d00f02r05504x05d05002n01300304q0560630a903y0650bs0ht0g30lz0dt0ir","0ij0ij___0bl042___0af04z0y30ik00z0dx___1j100700901l04c03t04203a03w04f02004o05105q08f03g0520ai0jq0kz0rc0f20k9"],["Merriweather",300,1,1,"0hd0hy0gs09302b0j408y03510y21h06j0a50bd1rb00a00803h04a04304h03y03q03000b03203a03w07502302k05c0ba0hz0ph0f20jo","0hv0hv0hv0pv0240is09o04g0zk1xe08c0dq0fe1oh00800a03l04m03c04s05c02e02z00b04904m05q09e03103y08f0fq0i80pk0fs0m3","0k70k7___09w03h___06j03f13u2e10390a9___1hk00000403003q03a03n03a03503i04503d03j04207u02602l0630bb0nt0rs0dv0o9"],["Merriweather",400,1,1,"0hy0j40hn09501r0j408v03y1611om08c0bo0d21q400900903304l04704k04303l02w00b03u04204t08a02b0300790fe0i50ph0fn0k9","0im0jl0i40w101z0je09804s1291j109j0e90ga1om00800903604f04304f04u03f02q00904n04z06209p03504609i0h80iw0pq0fo0vc","0ks0ks___0bw041___06n04d19m1zp04z0bu___1gj00000302n03w03f03r03903903m03v04904f05109t02g03307u0f80ov0rs0f00ot"],["Merriweather",700,1,1,"0ij0jo0hy0ce01r0j408v0561by1dz0an0dw0fu1o100900902q04s04c04o04803g02u00a05105c06809x02p03y0ab0iq0ij0ph0g70ml","0jn0jn0io0p701z0jd09a05w1601690a80fk0ht1m800700a02v04n04704h04v03c02q00805m06207d0b503f04z0c50ju0iy0pr0gp0ml","0m80m8___09z03h___06o05t1gy1my05g0e4___1f000000302b04303j03u03903f03y03d05l05w06o0bj02w0440az0mh0pn0rs0hb0pe"],["Merriweather Sans",300,0,1,"0fn0fx0fc07i04n0iq08b0340vv0rs01n0ag0c91q800800902p04o04c04r04a03g02x00803203603n06002i02z06c0dh0he0p00eh0hd","0gp0gp0fq07v03x0jh0920480uy0my01o0dg0ez1oe00700902s04k04904k04y03d02p0070410490520a103f04f09o0gi0i30pq0eq0hp","0hw0i6___09z05s___05703g0wg0rs0000al___1fs00000302704203i03z03i03a03s03g03d03h03x06602q03b06v0dj0js0rs0dv0ks"],["Merriweather Sans",400,0,1,"0g70gs0fn08l0420iq08b04a0xl0rs04n0df0fa1oy00700a02c04z04g04s04h03a02u00804704b05009m03d0470ab0i50hy0ph0eh0hy","0gq0h80g908603y0jf08g0500w00no01n0fc0gz1mo00500a02i04s04d04o04z03902o00604v05306d0by0470560cb0j80iu0pq0es0hq","0ih0ih___09n057___05c04r0y60sa0000dv___1dt00000301w04903l04103i03e04602x04o04r05e0as03p04p0b30lo0ln0rs0dv0ld"],["Merriweather Sans",700,0,1,"0hd0hn0gs08203h0iq08b05l0zk0rs05s0fy0hv1m400600b02505304l04u04j03a02o00805g05o06o0d104705l0dr0jb0i70ph0f20j4","0hq0hq0hq07m03y0je08f0650ym0rt05k0h10ir1j600500b02d04u04f04p05203a02i00705x0680890du04r06l0f90kh0iy0pq0fr0jp","0jn0jn___09104m___05w0670zz0tf00x0gc___1aj00000401q04c03o04203h03g04f02l06306907d0fd04q06b0f10qs0nc0rs0eg0mi"],["Metal",400,2,0,"0g70gr0eg0gn02w0hx09u03f0y712g06b0aq0cy1tq00e00a02i04s04404h04l02h02b01v03503k04606502a03a06n0cq0g90r80eg0jn","0fs0ga0et0r102z0hn0a604j0va0x40bx0dp0gc1pd00e00b02o04t04404o05401y02m01604a04r06309203f04o09h0g80g60qv0dt0sm","0lf0lf___0cp02w___07o03t14k1z006j0a5___1i600200502o03u03e03r03a03903r03o03k03v04d07j0260350690cv0m70rt0f20ph"],["Metal Mania",400,2,0,"0h00hl0gf0ga02c0mv05v04q0vt19p05k0fh0fl1uo00000701w04r04203u04c03z03901i04g04y0660ar03n04r0bf0ln0ma0rk0gf0kj","0gb0gb0pf0hv01x0mh05805c0u60oq0990hg0hk1oz00000401n04n03z04c04804h02w01j05205m0830ct04o05x0f50lt0m30rq0fc0ss","0hd0hd___0eh02b___06h0500wt19z03z0f6___1q600000801w04b03k03x03h03k04i02d04t05506h0av03x04w0bw0o80pi0rg0fn0k9"],["Metamorphous",400,2,0,"0hy0jo0hy08203h0jo08y03n11g1yq0a40b20c81l700b00g03804j04604e03t04o01u00g03j03u04f07q02703305x0e60i30oc0fn0lf","0hd0ja0hd0bs02w0js08g04i0z60r807y0e40ey1mn00500g01v05404504c04i04v01y00g04a04o05o08p0300480840gd0ie0o20ff0k9","0lf0lf___06g04n___08403s13i24o0880ai___1g200300d03004603s04803504304v00303l03x04g0810260330620d00ka0oz0ij0nq"],["Metrophobic",400,0,0,"0hd0hd0h309w0580jc07m03g0th0rs03m0bq0cs1jw00500b02n04q03t04704303n02g01u03b03n04307x03303i06j0gg0ij0rs0f20j4","0gv0hc0ge09k04t0jo07a04b0sx___01k0ea0ey1lh00200c01g05303y04704u03p02f01s04504f05d0br03y04l0930hc0ig0r10eg0ib","0j10jb___09506c0fy___03n0uz0rs0000bk___1cy00000002c04703a03t03k03304703c03m03p04609t03703l06q0fj0lq0rs0fk0lw"],["Michroma",400,0,0,"0ph0r70ol09e04c0ku07r03s0w00rs0k60aq0bd15v00400a03104o03c03y03i04s02102503r03u04r0ge03703c0540bm0jp0rs0nq0u3","0od0so0nw08o03u0ll07704g0u7___0kb0cg0e417c00100901o05203703o04904i02i02o04d04l0600j103w0450690eo0kz0rr0nw0tm","0u30uo___09o05s0ga___03s0vk0rs0kz0ad___0yn00000003104802t03m03d02j03y04c03r03u04z0lu03703c04s0900m20rs0nq0xk"],["Micro 5",400,2,0,"0gs0gs0gs06n0580mg05h05t0rr0rs02a0j30gx1co00000c02204j04104e03z03v02z01m05t05t05u0gq05t05u0gs0rq0m60rs0gs0gs","0gs0gs0hr06f03y0mc06806h0s50ko02a0js0ic1d700000d02804e04104f04m03t02p01a06e06h07x0g106e0810h50qx0lw0rs0gs0hr","0gv0gv___09c058___05m05u0rq0rl00g0kq___1b600000101w04f03a03b04303b03z03h05t05u05y0gt05u05z0mc0ru0rs0rs0b20gv"],["Milonga",400,2,0,"0fx0hd0f20di02w0fn08a03k1371ri07y0b50c31tb00a00n03i04j04704t03g02602g01t03d03m04b06l02402w0600df0er0r80db0ij","0gb0ha0ee0d802e0fv07c04a0zj0uj06r0e70gj1ww00400j02305204604n04i02502d02804204f05e08h02y04308i0f90fe0rp0ch0ha","0jo0jo___0bf058___05i03k11l25e05b0ay___1jk00100k02z03o03803o03003j03v03b03c03r04e06j02602z0660cf0nw0rs0hd0ob"],["Miltonian",400,2,0,"0l50l50kv0i90220hm0a70280m74y90cp09r0cg2k100d00c03904s03p03p05c01w02d02202202c03206902d02y0510950h10r10je0oo","0mj0nk0m10x50220hw09y03w0nu1do0dg0e30ie20000900c02r05502z04i05702i02o01h03c04707j0bd03u05a09i0gf0hi0rn0kh0so","0mv0mv___0e102y___0330280np75e08l09n___22a00000103903v02z03503o02m04004902102c02w05j02902q04t08k0ob0rp0i60s5"],["Miltonian Tattoo",400,2,0,"0l50l50kv0i702d0hm0a80741yc16c0cp0dq0g51fo00b00b02i04p04g04905702502g01k05g07808k0ay02f0430bu0iv0h10r10je0oo","0kq0kq0k80n901z0hl0ac07t1n111w0b40fh0ie1ds00b00a03f04f04d04y04n02502l00q06907x09l0cq03605b0e00li0g90q40ir0no","0mv0mv___0e002y___03407g2ak1k308l0dq___19j00000102c03r03l03m04703504303402y07i08x0bj02a03709z0o50oa0rq0i60s5"],["Mina",400,0,0,"0gs0gs0g708403h0jo0a00340ru0rs01l0az0ck1kf00900702k04n03v04c03u04802901n03303603x09s0320360630fl0is0rb0fn0ij","0gt0hr0fw06802t0ik09o03x0ro0xj0140dh0fp1o400900802p04n03x05g04z02b02n00r03p03y04z0ct03r0460900go0i30qd0ey0hr","0io0io___07p04o______0370s30rs00h0ax___1ex00000003503s03d03p03x03103a03l03503903r08p03503906o0f10lh0rs0fr0ju"],["Mina",700,0,0,"0i60j10i607c02x0jl0ag05m0vc1bt06f0gx0ij1gu00900802r04t04403u04x03802c01c05m05q07y0gg04s05k0g10nc0jl0rg0hl0jx","0gu0hu0gu08s01z0ji09j05s0vl0mf02u0ib0ji1jx00600902e04x04904p05303a02n00405m05y09d0f104z06e0gb0lz0j60pv0fu0it","0kg0kg___06x03i______05q0uc1x101h0h0___1ac00000002d04f03g03n04003804302m05o05v08g0hj05705s0gb0qv0oz0rs0ip0lm"],["Mingzat",400,0,0,"0ha0hv0ha09s04m0j907m0460vm0rs0520cw0di1fq00400a02d04t03z04b04803l02e01r03y04704v08o03f04608y0hc0ig0rr0fk0j0","0ho0ho0ho08q03x0jg08204x0ul0np04t0et0fv1f900400a02f04q04204c05003202j01904m0510620cj0490580ao0i40i60rp0gp0jn","0hv0hv___0ah05r______0480v20rs01b0cy___19d00000002204c03g03t03l03904803404604b0540at03n04b08y0jw0m50rs0ez0lw"],["Miniver",400,2,0,"0j40j4___0yp04n0hy0f203r0qq1ih07y0be___1v100f00j02e05c04004j04402e02p01e03f03v05c08g03c04j0840cd0f20qq0hd0u3","0j10j1___0q904a0ht0ev04m0r70vv07b0dq___1pp00f00h02505603x04504j02m03301c04904t0780bp04a05u0aa0fe0g30rh0i30ti","0j40j4___0bw03h___0ca03w0qz0rz02v0by___1nf00600g01v04c03m03r03103704v02i03g03v04y08d03e04i07k0bq0n50rg0gs0lf"],["Miranda Sans",400,0,1,"0ih0j20hx09c04m0k808e03w0tw0rs02j0cb0db1jx00600902804x03x04904204002c01o03s03z04u08t03f04107p0gk0ii0rq0g60k8","0iq0j80hq08r03y0kb08d04p0tb0mj04d0eg0fu1j300500a02e04x03z04904z03802i01604i04s0620de04a0510a70hw0j00rp0gr0kp","0jn0jn___0a0057______03w0u30rs0000c1___1di00000002004e03f04003h03704903303s03y04m0a903f04107l0g00lh0rs0fl0kt"],["Miranda Sans",700,0,1,"0k80ld0jn08603h0kd08d0640yn0rs07n0gh0i81gk00500a01w04x04404e04504202i01e06206607p0ed04p0620eh0lq0jp0rs0ih0mj","0jr0kq0jr07x02z0kg08f06k0yb0m70990hc0iq1e900400a02404v04504e04u03g02l01106e06p0920fx05606p0fh0m60jv0rq0ir0mq","0ly0ly___08d042___0630640ya0rs01d0gc___19k00000201p04f03m04203i03h04h02i0610660810gq04x06a0du0qx0np0rs0hx0n4"],["Miriam Libre",400,0,1,"0g30g30g307104l0kp07h03b0s20rs01m0bu0cu1mw00300a02l04u03w04i03n05102o00b03603e04808103303l06y0gd0il0p90ed0h8","0fu0fu0fu06q03u0lk0780450rh___01m0ef0fl1mw00100901c05403t04c04a04w02z00r04104805t0b203z04o0a70i20k10ps0ee0ha","0gs0gs___08j05i______03n0st0rs0000bx___1g300000002404c03f03w03n03904503003k03p04e09303e04108c0j50kk0rs0dw0jo"],["Miriam Libre",700,0,1,"0hc0hn0hc06j0420kt07a04r0so0ro0250f80gi1k400300a02505404204g04104l02l00i04n04v06y0dd04i0590cg0km0jb0q00fm0ii","0hq0hq0h806203y0le07g05e0su0ll01m0gj0hv1id00200a02b04x04204e04q04h02e00705505i0880dp0510600dl0kq0jy0ps0fr0ip","0hn0hn___07z04n___06h0530sy0rm0000fd___1co00100201r04i03k03z03l03d04k02g04z05706x0e704t05s0du0ov0mr0rs0f20k9"],["Mirza",400,1,0,"0in0j80in0720430jh08e04k0xg0xx0990dy0e91i400700c02o04x04903w04x03t02j00a04e04s05m09m03804b08q0i70ia0p20hh0jt","0iq0iq0hr07303y0ji08805c0wl0t80600g90gr1hb00600d02r04x04d04m05503g01z00205205k06q0d30450590ba0j20i50o50gr0jq","0la0la___09h05c______0560yd0yc04c0dc___19u00000002504d03203x03v02x04n02w04w05d0660b003r04x09s0kr0mm0ru0fd0mh"],["Mirza",700,1,0,"0kk0ku0jz07n02w0jc08d06e0za0w40a00h60i11g700700c02b05504e04o04f03t02f00406806p0850fy04h0660da0kb0io0ow0j40lf","0k00l00j007f0200jp08e0720zi0qz09g0if0k71d400500d02h05604h04v05102t02d00506p07b0ak0gw0580760fo0lm0if0of0j00l0","0n20n2___08604q___06y07a10n0wh0530gt___17j00000201v04i03504003w03204u02g06y07h0900hw05306u0e90qu0nu0rv0ix0ou"],["Miss Fajardose",400,3,0,"2j5___4gb___02b0n50af01r0x7___0rs___06u26b00t00x03i05704103c02y03n02z00h01k01s02b03i01401h0240330eh0oi0m04gb","0oz_________02w___09c0430u5___0rs______1qe00j00y02e05404m03h03g03q02z00m03e04g0740av02k04206c0960dk0os0l50st",null],["Mitr",300,0,0,"0k60k60k608q0410jq0840410x50qb09m0bl0d71dl00300c02m04q03x04804004002201u04004304x09p03a03m0700fz0ig0ro0hb0lx","0jz0kh0jg09v0330kv07o04v0wa___08w0dm0es1e000100a01l05b02z04g04x04e02b01m04o04y06c0du03x04l0950gt0jc0rn0if0mj","0k60kr___0ac041______0410xa0qb03v0bg___18y00000002a04903f04003i03803r03d04004204r0a203a03n07h0fm0l00rs0fk0n2"],["Mitr",400,0,0,"0lc0lc0lc08t03h0jq08405j0zt0q30ak0eh0gb1cv00300c02904v04104c04a03p02d01l05h05k06v0f704804t0b10jo0j10rp0jm0nn","0ko0ln0k60dw02y0jk0850650zq17k0bu0fg0i11cg00200c02e04r04404e05103202k01305v0670830g504l05j0cf0jr0j00rq0ip0nm","0lx0lx___0an03h______05k1020rn04n0ek___17f00000001y04c03i04203j03c04902v05h05l06n0gf04904u0as0o10mp0rs0gq0os"],["Mitr",700,0,0,"0nx0pd0mh0g50210jq0850a012z0pp0gj0kk0ln14j00300b01w04r04h04o04a03i02k01a09z0a60hx0mb0760bz0jp0r80jn0rr0mh0ro","0pn12y0mo13701z0jj0870a512s0j00iw0kv0mg0yv00200a02204o04k04s04v03802g00w0a00b40ju0n507j0ev0ju0qt0ju0rr0lp1l6","0py0py___0de02b___0780a112t0pj0fv0l7___11a00000201k04803x04203i03r04h0290a00ad0i10n90770bj0p70rr0py0rs0lx0s9"],["Mochiy Pop One",400,0,0,"0ju0ju0ju07h02a0ja06g05u0st0rq0aa0gb0ie1g900000601m05604604c05903502q01805m06008y0go05h06d0cr0jl0iq0r80i50m4","0jq0jq0jq09p02y0ji07906d0sr0mg0bo0gy0j91c300000702305404704g05503002p00x06406m0bs0hb0610730er0k00i70r10iq0mo","0mp0mp___08303i______0640t90ro05x0g7___17y00000001s04k03k03f04503e04802r05w06909i0ip05p06l0cn0nx0nm0s30kd0p1"],["Mochiy Pop P One",400,0,0,"0ju0ju0ju07h02a0ja06g05u0st0rq0aa0gb0ie1g900000601m05604604c05903502q01805m06008y0go05h06d0cr0jl0iq0r80i50m4","0jq0jq0jq09p02y0ji07906d0sr0mg0bo0gy0j91c300000702305404704g05503002p00x06406m0bs0hb0610730er0k00i70r10iq0mo","0mp0mp___08303i______0640t90ro05x0g7___17y00000001s04k03k03f04503e04802r05w06909i0ip05p06l0cn0nx0nm0s30kd0p1"],["Modak",400,2,0,"16u16u0ml0fp00l0lf0750ac12s0ma0o00lf0mx18w00200a01p04n04w04w04c04m02700809z0b60id0l008e0ev0ld0p90kw0p60n51os","2bp2j32bp0vm09d0lk07e0aq1d80ft0rs0js0md0ks00100a01t04h04t04u04y04e0210070am0ht0ly17d0dx0l80ox0pv0l30ps1p25vq","0ph0ph___0cg016___03h0ce16o0lp0db0n8___0zz00000001c03y04b04703m04c04701w0c20df0m20ov09q0ga0qs0rz0q60rx0ob0rs"],["Modern Antiqua",400,2,0,"0j40je0h30hz03h0jo08403z1621n60610am0cf1lw00600a02q04f04704f03v03x02401o03w04104l07302703106h0f20i30r70g70ml","0im0im0fu0f103q0jz07604n10m___0580dn0fp1mc00200a01f04t04105c04h03m02201q04i04r05j08e03204d08x0gu0hu0qy0fu0jk","0k90k9___0gu058___04s03z17m1nd02y0ai___1g900000202o03w03l04703403e03m03a03u04104i06u02702y06m0d70mt0rs0ij0n5"],["Moderustic",300,0,1,"0hl0i60hl06605a0jq08502r0ss0rs04j08z0a81kg00700803704b03w03u04q03s01w01r02n02s03805602e02s04r0a70he0qr0ge0jc","0hc0ia0hc08604t0ju08403x0sj___03r0cm0dp1l200300a01r04t03q04b04n04502701v03o04004y08x03e04507n0fa0id0qw0fe0j9","0jh0jr___05x06e0g4___02s0sd0rs00008x___1e600000002q03v03d03a04903503w03902p02t03905802g02u05109t0jh0rs0ga0li"],["Moderustic",400,0,1,"0i50ir0hk08j04p0jo08703w0uq0rs05s0c40dj1ju00600902n04r04203v04x03g02701h03s03x04n08u03d03v07l0gl0ia0r30ge0jx","0hs0i90hb07m03u0jq07h04o0ua___04a0dv0fb1kk00200a01i05003y04f04u03x02c01i04h04q05y0bu04104q09w0hf0id0qv0gc0k6","0jh0js___0a705t______03y0u60rs02m0bv___1dh00000002904f03h03d04703903e03h03u04004l0ao03h03y07l0gx0l60rs0f40li"],["Moderustic",700,0,1,"0jv0kg0ja06w02x0jo08506p0zx0z20aw0h70j61h500500a02505004c04105503702c01806l06t08u0fu05306q0gr0ok0jg0r30ip0l1","0jo0ko0jo06u02y0jj0890760yt0kx0a70hm0ju1dg00400a02a04v04a04o05103102j00q06z07c0b60gt05n07t0ha0o00j20qy0ip0ln","0m40m4___071043______06t0ze0rs05r0hm___19a00000001s04i03p03j04603j03x02o06r06z09h0gy05906u0g20rm0o70rs0im0p0"],["Mogra",400,2,0,"0j40k90hy0b701r0jo0dc06h0uf0k107l0fu0hh1md00b00d02005k04n04u04c03o01w00705w06n08o0d305f06y0bs0iv0hh0nv0hd0n5","0kt11o0lt0mt01z0lc0cm06z0ut09o0dw0h10j71cv00a00d01p05804s04o04z04001h00c06e0780b80fi0640850fa0kq0j00nx0gv12o","0ku0ku___09002w___07f0750vx0is03a0hb___1bk00100401j04d03z04403c03v04q01t06q07b09r0g106308d0eh0nd0nf0rs0hy0ml"],["Mohave",300,0,1,"0cq0cq0cq04y04n0jx06k02d0og0rs00l0at0c425600100a02r04i03v04f03q04e02101s02d02e02t04m02g0300690g30j60rs0cq0db","0ch0cy0ch05303u0jp06a03g0ok___00l0ec0g225700000801j04w04004a04l04602102303a03j04g08o03i04t0aq0hy0j90ro0ch0df","0cq0cq___04u05s______02e0pz0rs0000ay___1zw00000002h03u03j04803a03e03o03g02d02e02n04c02d02z06s0ji0nc0rs0bl0db"],["Mohave",400,0,1,"0cq0db0cq04w04n0k906k0320pw0rs0160di0eg23s00100a02e04p04204e03t04b02a01l03003303k06x03403v0aa0jp0jo0rs0cq0db","0ct0ct0ct06q03y0jk0730410ox1gv00k0ft0hv21900100a02i04v04204h04y03802h01003p04405e0aj04905h0cw0jm0j50r20ct0dt","0db0db___04z058______0330qi0rs0000dr___1y600000002404303o04703c03g04002z03203303h06n03303w0av0pl0oj0rs0bl0db"],["Mohave",700,0,1,"0db0db0db06b03h0ka06k0560r71bg0130jz0kd1wm00100a02004t04b04i04404002i01a04w0590740c405908j0k30r20kd0rs0cq0dw","0cs0ds0cs06502y0ld06f05j0oy0kp0130kx0lu1qs00000902204p04604c04o04802e00z05805q0a40cn0680bv0kp0qn0l40rr0cs0ds","0dw0dw___06904n___03h05a0rl1at0000ku___1px00000101q04b03u04403e03o04e02c05905a07g0bv05c0ao0pu0rp0qb0rs0c60dw"],["Moirai One",400,2,0,"0je0jo0j307q0210hd08e00x0nu0rs0bf03p04g1tq00b00904k03n03803g04x02m01z02w00w01001b02300x01301j02c0hd0rs0hd0lf","10b1280ov0y904s0hv07e02x0qd0sf0mw09h0be1nt00400c02905a03603k05103402602s02n03904y08402o03804h0870i70rq0ov1n9","0lz0lz___09702b______00y0oo___05z03n___1og00000004803c02t03402c03b03i05700w01001a01z00w01201j02f0pk0rs0db0oa"],["Molengo",400,0,0,"0g60g60g60b10420im09t03r0vl0rs05o0c40d51l000c00j02h04t04804g04g03j01p01b03l03w04m08603203q0800fd0gw0ox0dv0hw","0g90ha0g90b50320i409n04p0ui0mo04u0e90gs1ky00800k02s05004n03k05m02v01w00o04f04s06e0be03z0520ac0gm0go0or0f90ha","0g60g6___0ef057___06x03y0wf0rs03j0cc___1f800200b02504a03o03x03i03o03l02p03w03y04q08d03404008b0h10ja0rs0eg0ld"],["Momo Signature",400,0,0,"0i80i8___0zb02b___0a103q0qx0r40990bh___1x900e00j02t05o04j05403f02n02c00c03c03w05i08e03c04606x0bt0dc0nd0fm0y5","0iq0hq___12p01z___0a404n0rc0p908s0dq___1ph00d00j03205n04i05203x02p01w00704504x07i0bf04905h09p0f10e50nt0bu0xi","0jw0k6___0f302b___09t03o0qg0qd06y0bb___1n100500d02304q03d03t03a03s05001803h03r05908u03f04506t0c40jr0q60cp0pd"],["Momo Trust Display",400,0,0,"0ku0l40k90ao03h0l306y06n0vn0rs08w0ha0i01f200100901v04v04504d04204c02l01c06d06s0990hc05p0740ge0o10kc0rs0j40m0","0ko0ko0jp08502y0le06h06x0uw0lg08i0ip0iw1dj00000801z04q04504c04q04402i01206k0720bb0hb06507s0h40ns0k40rq0ip0lo","0ku0ku___08r042___02w06t0vm0rs03j0i5___17y00000001n04f03p04103h03l04n02b06q06z0ae0ir05u07h0h00r80og0rs0g70n5"],["Momo Trust Sans",300,0,1,"0hy0i80hn07d04x0jo0700320rn0rs02s0a30b21n100200902m04o03x04a04003z02801v02y03503p05y02q03a05v0by0hz0rc0g70jo","0h80io0h807z03u0jn06e0420rs___02a0d90e51oe00000701f04y04104904t03x02202603u04405109j03k04g08p0fd0ib0rn0fc0j5","0jo0jo___06j06d______0350sl0rs03109u___1f500000002d04403f03u03i03603x03h03103603q06402r03905y0am0kd0rs0gs0lf"],["Momo Trust Sans",400,0,1,"0hy0ij0hy09j04n0jo06y03z0to0rs04k0cj0de1lh00200902b04u04204b04703q02g01n03s04104u08s03h04808g0gh0i60rs0f20jo","0ho0j50ho08303x0jg07504o0t20mr02o0eo0fx1lm00100902c04u04404f04y03202k01a04g04r05w0cd0490540a90he0i40rp0fp0km","0je0jo___0a805s______0430ug0rs01b0cb___1dy00000002104a03j03x03i03b04a02z03z04404z0aa03k04908e0ha0lo0rs0eh0m0"],["Momo Trust Sans",700,0,1,"0jo0kk0j407503h0jo06y05z0va0rs08k0ge0hl1h800200901z04y04804g04d03j02n01e05p0640820fr05606e0ef0lf0j50rs0hy0lf","0jo0jo0i707e03y0jf07606c0uj0ln0780hi0il1fq00100902304v04804j05102z02q01406206i09n0g105l06z0fi0mn0iy0rq0hp0ln","0ku0ku___09104n___02b0650vi0rs03h0gs___19400000001q04f03n04103i03i04l02f06106808k0hm05906l0e70ql0ns0rs0fn0n5"],["Mona Sans",300,0,1,"0i80ij0hd06c04n0jo06j02p0so0rs0580940a61mv00100a02n04p03u04804004102601w02m02s03a04u02c02s04l0ab0hn0r70gs0j4","0im0jm0hn08f03x0ka0730400sx0lv05k0cs0dc1ln00100902n04p03t04604r03n02e01f03n04104z08x03b0480720eu0iv0rn0hn0lk","0kx0kx___06c05t______02s0tl0rs04n08z___1ev00000002h04103c03204f03403104d02o02u03b05502f02r04t09s0jt0rs0hg0mo"],["Mona Sans",400,0,1,"0ij0ij0hy09x0420jv06j03k0ud0rs05k0bf0ce1li00100a02a04w03w04b04004402d01n03f03m04a07a03003k06f0eu0i80rc0gs0jo","0io0jo0io08r03y0kc06j04k0ts0lc0860dw0ew1kd00000a02e04u03w04904u03j02j01904c04m05s0bp03z04r09c0gs0j10rp0hp0ln","0je0jo___0ax04n______03m0uq0rs03x0b6___1e600000002404d03f03y03g03804503503j03p04d07o03603l06g0dv0lg0rs0f20n5"],["Mona Sans",700,0,1,"0k90k90jo08503h0kb06h0640wn0rs0aa0gi0hz1gs00100a01v04z04404f04803z02n01a05w06807v0f70500670eu0lx0jq0rg0ij0m0","0jq0kq0jq07q02z0kj06h06l0vt0mi0ca0hj0j21dt00000902304v04204c04u03n02n01306c06s09p0gl05h06w0g20mb0jx0rr0ir0mp","0ku0ku___0b503r______06a0wi0rs05b0gh___18n00000001n04i03l04203g03h04p02f06606f08k0if05c06d0e70qq0nw0rs0f20ob"],["Monda",400,0,1,"0hd0hy0gs08f05s0k907q03y0vl0rs01k0cb0e91gp00400902g04r03t04a03s04e02901s03w04504m09d03803s08z0j00ja0rs0g70j4","0hr0hr0gr07a05x0kd08404q0us1f90250eb0gq1h900300902k04s03x04f04t03f02i01204l04u05x0c604204w0b30j60j50r10gr0iq","0ij0ij___09606y______0460x70rs0000ce___19500000002704803c03x03h03a04603704504604p0aw03a03s07r0m90ma0rs0fn0m0"],["Monda",700,0,1,"0ih0k70hw07805h0k708505f0wx0s20370fm0hy1ev00400902504u04004e03z04102i01l05e05u06l0ef04c05g0eo0m10jp0rs0hw0ld","0i70jp0hq07504x0kf0880630xv1570250gr0j91dq00300902b04t04004e04s03f02m01705v0690870f304t06a0fe0m60jw0rr0hq0ln","0k70k7___08g06d______05v0ys0rx00w0fr___16b00000001w04g03f03y03g03f04g02s05u05w0740gx04k05f0e30qs0oe0rs0hb0n3"],["Monofett",400,4,0,"2q02q0___0li057______08m1f7___0rs0mr___0p500000001t04j04p03z03i04203g01r06v0ak0gb0mb04s09r0lo0q60q50rw2183e8","2os2os___0lh04y______08t2fo___0rs0nb___0f400000001g04a04n03x04604503j01o0820dw0ke0t605d0b50mm0pv0qo0rv2033ch","2q02q0___0li057______08o1ac___0rs0mr___0pa00000001t04j04o04003i04303g01r06z0an0gb0m905709p0lp0qb0q50rw2183e8"],["Monomakh",400,2,0,"0ip0ip0ip0dd02u0hl0as04l1jg1o809u0bn0d41la00b00802x04i04g04l05a02502p00p04f04u05o07h01p03107g0gi0gn0q30fv0m4","0hp0ip0hp0dr02y0hh0ab05c1a716607d0ey0gf1la00b00903504k04h04p05902502s00905005l06k08i02l04e0aa0hw0h10pt0er0jo","0lc0lc___095041______05p1zy1be0800c2___1d300000002h03n03r03x03g03m03u03604o05p06707p01o03f09f0ks0ng0rs0hb0qj"],["Monomaniac One",400,0,0,"0fn0ij0f206i03h0ki0750590ry1vh0130ib0kr1kz00200a02f04p03x04d04304102n01b05705909e0f505805u0i60qd0ku0rh0f20j4","0fw0id0ew06g02z0kn06m05s0ro0gh0130it0lo1in00000902204s04004h04s03q02501m05h05x0ba0f005t07j0ig0p90ky0rr0ew0iv","0ij0ij___05z03h______0590ry27x0000hy___1ek00000002904d03f04403i03a04l02a05805a0800hl05805i0fz0ri0pk0rs0ij0j4"],["Monoton",400,2,0,"0n50ng0m008u02b0n902w01l0qb0rs0cl0ed0eu54d00000101g04e04h04e03r04h03u01101j01m01y03101k01q02u04g0mr0r90hy0ph","0m30ml___0dj01z___04309j12a0lb0cz0kr___11l00000102204904704a04904d03i00w0930ax0j00nz07q0d30mp0p80nu0ro0io0qj","0lf0lf___08p05s______01p0r7___08q0dp___4pi00000001c04404604303f03u04i02c01k01o01x02y01k01r03104g0ow0rs0g70r7"],["Monsieur La Doulaise",400,3,0,"1kp334___0qz015______01w166___0rs05s___2dl00000004107104l03f03f02f02200u01g01v02e03800z01902102y07d0oe0vr35y","0l5_________02f___08805h13s___0rs______1i200a00w03y07605103r03802c01200603204o07s0cl02c04706j09607r0kc0l50l5",null],["Montaga",400,1,0,"0hy0ij0h309202b0hj09903e0ye1tm08q0a60bx1nr00a00803f04q03z04m04t02302v00u03203l04i07g02403005d0b00gb0q30fn0k9","0hc0hc0gd0nt02w0hu08c04a0vu0rj0740dd0fq1ov00500a01u05c04104j05f02j02r00z04204h05w09603404807o0ek0gj0px0ff0j9","0li0li___0ax037___07r03r11824w07y09w___1di00200403404203802z03v03103804502v03s04l08102003305k0as0mg0rs0hg0pl"],["Montagu Slab",300,1,1,"0kk0lf0jo06y02w0k90840301462x50a508o09s1kx00a00903p04003l04203i04e01x02602w03103l06801r02804008x0ja0rs0ij0n5","0kh0li0if0pi0330ky07t04d10r___0740c90ec1k300300d01u05702t04104c04y02102504504i05j09b02v03m06v0dx0kd0rp0hf0mj","0n50n5___07p04n______03116x3rt09q08m___1hi00000003m03e03803l03303703c04e02k03203k05q01s0240460910ow0rs0gs0rs"],["Montagu Slab",400,1,1,"0lf0ml0ku06l02w0k908404918g2390ca0bd0ci1is00800a03004j03p04503j04e02102004304c05309e02b03206e0dp0jt0rs0j40n5","0ln0ln0jo0i802y0kf08605412l1pe0aa0du0fo1ht00700b03104g03o04404704102c01g04y05c06n0bf0360470840gv0jy0rr0io0nl","0ob0ob___06a04n______04b1bf2qg0d60be___1g100000002v03z03d03o03303b03j04003m04d0540am02d02x06m0cq0ph0rs0ku0sd"],["Montagu Slab",700,1,1,"0n50ob0n509j01r0ku08407m1fi15k0h80h10il1ef00600c02704w04104d03t04d02i01607e07y0a80fg03w06b0du0l20ki0r70ku0ph","0nj0ok0kh0nm0220kc08h0851c91500i20ie0k31cf00500c02j05004703e04o04602n00r07p08g0bz0id04i06u0g80ni0kk0qw0kh0qm","0ph0ph___07x042___06d07x1ic1fu0ex0hj___1ad00000102004g03k03s03703m04e02r07l0860ax0g903y0630dv0q90qa0rs0m00uo"],["MonteCarlo",400,3,0,"110110___0fm04n___0b802n13l0rf0ij073___2fc00g00z03h05104u04s02c02r02700z02002j02z03m01a01w03n05v0ce0pg0gs1dq","1c81fo___0as03y___0b804j0zc0og0m80b1___21t00h00v03u04y04q04n02o02q02800o03w04j05t08k02p0400780ad0cy0pr0wh1d7","14s0wi1gm09d03k0mh09g02k138___0rs06n0871ur00800c02n03u03203y04503803y02i02202k02z03r01801v0390560m20r70q01ch"],["Montenegrin Gothic One",400,1,0,"0p90qg0o309s02y0mx___05u0xf1320o60ev0e917g00000002804u03t03x04403t03m01h05f06h08u0j504405509l0jg0la0rm0ni0rm","0pk0rj0nl09p02y0na02006p0z80v30nl0gd0g015700000002904m03q04f03z04d03c0140660740ap0jq04w05x0by0lc0l10ro0nl0si","0qg0qg___0ai03j______06h10q1330h90ev___12h00000002104j03e03d04302t04j03206c06p0970lj04v05f0ax0mr0o30rs0i80ty"],["Montez",400,3,0,"0f90f90eo0f60440bu0e602y0vh0su0b409g0bh28v00u01j03j04t04p03502s02702o01o02f03203j04p01v02x05n0a30a50q50cb0l4","0fr0ds___14302y0cg0de04d0v60qa0bl0db___1y300m01f02p05704s03x02q02k02r01603q04e05j08f03504n08w0da0bs0qj0ct12e","0ge0ge___0g802c___02z02m0t80uj02908g___1zc00000802703c04003f03q04a03q02x02402o03103v01o02p04q0940lt0ri0870i5"],["Montserrat",300,0,1,"0k50kq0jk06c05r0kb08802h0s60rs07p07j08s1ez00800703o03y03o04103k04h01r02a02d02k03504o02802i03w06b0hj0r70if0la","0kq0kq0jq07h04y0kd08703u0sh0m30990bf0cf1gi00500b02r04l03w04d04i03l02j01503i03x04x09g03b0400680cd0i20qs0ir0mp","0lv0mg___05r06x______02j0t20rs05c07e___19500000003l03d03c03x03602w03d04602d02k03104o02802h04106s0i80rs0jk0o6"],["Montserrat",400,0,1,"0kp0kp0k408t0560ke08f03b0t10rs09t09r0b41e500800803404e03q04403l04g02201x03703e04807h02x03c05d0b30i30rc0iz0lu","0js0ks0js0a203y0ke08804c0sy0lw0af0ck0dw1f500400b02j04t03y04d04q03h02i01004504f05o0b003v04e07e0er0i40qu0it0mr","0l90lu___0a206c______03f0u30rs04n09s___18c00000003003v03h04103303003y03f03a03g04407102x03a05g0aa0jt0rs0ht0nk"],["Montserrat",700,0,1,"0lz0lz0kt0bx03h0k807j06c0x20rs0ch0gi0hu1by00300c01x05504b04m04b03v02p00k06406j08u0hi0550640dj0k90j30q80k80n4","0ll0mk0kl0an03x0kg08506z0xg0ln0eh0hb0it18q00400b02304z04604i04t03n02j00p06m0760am0hw05n06u0eq0l60js0qq0kl0oj","0o80o8___08104m___06906u0xp0rs0ce0gh___12w00000201o04i03n04303e03b04m02j06o0720a20ka05i06j0dv0q60n90rs0lc0qj"],["Montserrat Alternates",300,0,0,"0kp0kp0k506w05r0kb08502g0sa0rs08a07p08r1d000a00803r04203k03u03i04b01x02e02d02j03704x02802h03m0770i60r80ie0la","0jp0kp0jp09u04x0kd08503v0sf0mb0860bk0cn1f600500c02t04r03q04604f03h02s01603i03y05009u03d03z05r0dq0iy0qt0hq0lo","0mf0mf___05j05r___04i02i0su0rs04507j___17e00000703l03g03803s02z02q03n04902d02j03505902902h03j0660m70rs0kp0n0"],["Montserrat Alternates",400,0,0,"0k30ko0k30ab05r0kf08403b0t60rs08r0a30b51ch00900903604i03o03z03h04a02902003703f04a08y02x03b04v0ce0ir0rc0h80lt","0js0ks0jb0ad04y0ke08804c0t10m208e0cr0do1e500500c02k04z03s04704l03f02t01103z04e05m0bb03v04c06t0fe0j30qu0gu0ls","0me0me___0bx06b___04t03d0ts0rs04q09x___16z00000603103y03c03u02x02u04a03g03903f04707w02x03a04z0bb0ms0rs0ed0nj"],["Montserrat Alternates",700,0,0,"0le0le0le09j03r0k807i06d0wr0rs0bb0h00hx1bg00400d01y05904604h04603u02v00m06706i08r0hj0570620e40lp0jn0q80ii0mj","0lo0lo0lo08x03y0kj0850700ws0lm0c20hk0ir18d00300c02405104204e04q03o02o00q06n07809y0in05t06p0fb0mk0jy0qu0iq0mn","0o80o8___0aw04m___05706u0ww0rs0a80h0___12i00000301t04j03l03y03603704w02m06o07009i0k205l06c0e30qa0ou0rs0ig0py"],["Montserrat Underline",300,0,1,"3o13o1______01q0ke07p02g0txj1y0rs06q___1fj00600805g04103903o03a04501l02202c02j03304y01j02b03h05q02b0oa1a461y","17b17b______00z0kj07b03q0ut0fk0rs09v___1hm00200a03j05z03603p03r03t01w01o03d03t04u08v02z03h05e09u06r0p117b17b","5i35i3___11t041______02i0v5ord0rs06h___19i00000005a03m03103e02z02n03103t02c02j03004o01j02c03j05p02d0rs17r9fq"],["Moo Lah Lah",400,2,0,"0j1___0hb0uk0160j106y02o0po2fm0j8___0f83ai00100b02a05k05905l04k03i00p00201m02y05507d01r03e06g09p0hw0lx0gq14e","1dt1av0xp12008b0k307e0691070ko0k70hg0ip1p900100a02e05705605a05703e00t00204807c0al0fv03y07i0cg0i20iv0mn0hl1xc","0q20qx0lf0jt0160n5___03b0ql2240jr0g10em29d00000002304d04103o03c04603v02a01y04h07k0b302904m08i0c40n50rs0lf0v9"],["Mooli",400,0,0,"0j40j40jo09c0420jo09903o0u70rs06y0av0by1iu00c00902j04u03x04604603p02b01n03j03r04h08303403n06i0ew0hd0r70hd0k9","0jl0jl0jl08b03x0ji09z04j0tq0rr0730cz0f21hy00b00a02k04s03w04604x03602f01c04b04o05w0bm04004q0980go0hy0rk0hm0kk","0j40j4___0bq05s___04203r0uv0rs03b0b3___1ch00000202604603e03y03k03804503503l03u04f08l03503q06z0e00ke0rs0fn0m0"],["Moon Dance",400,3,0,"0k60pn___0iy041___0du02b0tj0wb09l06i___22000b00902i04x04f05i03q02f02d01e02402f02z04401n02904907q0da0ob0d90qi","0nm0n4___0km03v___0d30430un0kb0dw0ah___1sn00c00902505e04s05l03w02l02500r03i04305d08w02x04707o0c40ec0ny0hc0sw","0je0k9___0cf04n___08d02g0x00to07s06b___1d400300502s03o03b04j02y03j03y02v02a02k02y04201k02603x07q0fr0re0dw0ow"],["Moul",400,2,0,"0lf0p60ku09e02b0il06y08q15q0t70ij0jr0lb19h00200c02205a04f04o04e03402h01108m09z0e30iz05s08v0ik0pn0il0r70j40ph","0ka0n20jd0gm01u0i406x08o1510qw0ch0kn0ld18700200a02604t05704i04l02n02c01808h0a00ev0j305x0a60i70oz0hu0r10ig0nz","0r70rs0ku08s02b0nb___09a1470t60j10ju0ks15l00000001r04k03s03u03803t04l02a0950ax0fa0la06f0ac0mi0rs0ow0rs0m00tj"],["Moulpali",400,0,0,"0dr0dr0ec08a0560jr07s03r0v71zo0110e40f81qc00600a03204c04504d04v02w02601k03p03s04908u03a03y0cb0k20j60rs0bh0ex","0eo0eo0eo06k04w0k908404k0tq1be0130fz0hg1oc00300a02g04l04304b04s03k02501j04g04l05s0ao0440570ec0ki0jo0ro0cp0fn","0e20ec___08s0560fu02m03t0vr1yf0000ef___1nc00000002q03u03i04103w02v04002x03r03t04708q03903y0cj0q40oi0rs0bh0fh"],["Mountains of Christmas",400,2,0,"0b00bv___0eh01r___09j02b0ya1a302s08t___2fk00e00p02l04x05s05t03x02f01700202102a02p04201k01z04b08b0dc0kf0990cq","0cr0cr___0oz01z___0a203z0v00vc0bp0eb___24y00d00m02s04v05o05v04302b01700103e03y04y07p03204d08p0e70dz0lu0as0ue","0bl0cq___0cb03h___04702k0z613l00q09a___1vf00000e02903z04h04403d03t04g00z02802i02u04901o02504p08z0io0ph08p0eh"],["Mountains of Christmas",700,2,0,"0c60cg___0g501r___09u03g15i18f03p0c3___2am00d00q02j04u05r05v04202g01700202z03h03w05k01v02p06n0cs0e50l109u0dw","0ch0hr___0z101x___09704k0xs0my0660dz___21800a00j02004s05l05x04s02g01b00504304j05r08m03304y09m0fg0ee0l70ak0l4","0cq0f2___09603h___04603s17517d00s0ci___1tp00000d02403y04c04a03k04204800x03703u04b06602002w0780eo0kc0q20af0g7"],["Mouse Memoirs",400,0,0,"0c60c60c606m0160ku06k04g0qo16f0130ht0jb2gk00200e02104p04704h04204602i01804c04j05709104j07n0j10pz0jy0r80bl0cq","0od0od10j0ib0210k906l05a0qv0mx0d80il0jm1wi00000c02904m04a03i04w04702k01605105i09s0bq05h0a30jp0pv0ki0ro0c610j","0c40c4___0b401q___04m04k0sn16g0100i5___26t00000101t04803p04303903r04d02m04a04k05808804b07w0ko0rl0q10rv0ae0da"],["Mozilla Headline",300,0,1,"0j40j40j408w0420lf05803j0vq0ry0310bm0bl1k200000b02h04o03p04503g04w02d01t03g03l04d07x02w03d06r0ea0jc0ri0g70ku","0jm0kl0jm0a103x0lg06304g0u90n606o0e60e91j000000b02i04n03n04403z04r02h01f04c04l0650at03s04g08q0ha0k20rp0im0lk","0j40j4___09f05s______03j0vk0s50000bh___1ht00000002a04903e03p03a03904703h03i03k04007z02w03d0780e90mr0rs0eh0m0"],["Mozilla Headline",400,0,1,"0jw0jw0jl08k03i0ln05a0490x70vb03j0dh0db1ja00000a02b04t03u03l04404x02201w04404b05809d03b03z08b0hl0k00rs0gz0l2","0km0km0jn09y03x0lg06404y0vf0nq08i0f20f91ib00000a02d04p03p04404304o02k01c04t05406o0cx04604x0ai0j00k20rp0jn0lm","0jw0jw___09705a______0480wz0s10000dc___1gm00000002504h03j03403x03e03o03l04704a04t0ak03c04008g0ik0nk0rs0e10m8"],["Mozilla Headline",700,0,1,"0l20l20kh07d02x0ln05a0670ze0u00770hi0hc1h300000902004y04203o04d04m02b01l06206a0840e804m0620ei0lt0l20rs0jb0m8","0lo0lo0ko0c102y0lf06606p0yn0n308v0hx0iy1fv00000902504s03y04604d04c02n01606i06x08w0g80590710gm0n60ky0rr0ko0mn","0l20l2___08h043___05a0670ys0s20000hn___1d000000201s04j03p03903x03l04302w06506b07y0fr04m06g0ee0re0p60rs0f80mt"],["Mozilla Text",300,0,1,"0j40je0j407u0580lf06r03b0uk0rs02l0am0b11hy00100902j04k03o04703k04x02901u03703c03w06v02t03705l0d70jb0rc0gs0k9","0kc0kc0jc06l0420m106o04e0uf0m005w0dk0e61gy00000a02o04o03v03a04f04u02g01c04504g05m0aj03o04h0890gu0jr0qw0ha0kc","0jo0k9___07b05s______03b0uk0rs0000ap___1eg00000002e04603f03w03h03504103a03903c03t06p02v03805z0bq0l10rs0g70m0"],["Mozilla Text",400,0,1,"0jw0jb0jw08604o0ln06r03v0w30rs03j0c00cg1h200100a02d04s03q03o04804w01w02003q03x04k08z03803q06z0g20jw0rp0gz0kh","0ki0ki0k006b03x0lc07404n0uo0na06y0dz0f51g900100902e04o03n04604404q02f01f04i04q05w0cr04204n09c0hw0jy0rk0hk0lh","0k90k9___09b058______03u0w30rs0000c1___1e200000002604b03g03w03f03804b03103s03v04f09a03903o0720f70lp0rs0fn0lf"],["Mozilla Text",700,0,1,"0l20ln0kh07103i0ln06s0620yw0rs06p0gc0gy1fl00100a01y04v04103r04f04m02701p05v06407j0eb04p05n0dw0lm0ko0rs0iq0m8","0kg0lh0kg09c0430lb06o06k0yd0mh0930h70iz1dn00000a02704y04503e04q04f02l01406a06o08x0gm05706g0f80lt0kn0r00jf0mi","0ln0ln___08k043______0620yw0rs03h0g9___1ac00000001t04j03o03g04303h04102s05z06507i0gu04t05r0do0q20o80rs0em0mt"],["Mr Bedfort",400,3,0,"0op0mf___0o803g___0hx0390wu0pj0ez0a4___25p00j00l03106104x03c02j02m02j01o02a03904205r01u03405u0a808o0qf0g3173","1080zq___0fa03t___0fs04g0uf0nk0jg0cm___1ta00j00m02006j05403o03002s03600d03d04b05r09003104n08k0dl09o0ot0i41cm","0k30k3___0tt02b___0fn03p0zs0si0d808u___1sx00900f02e04h04003w03e03i03c02402g03l04e06c01v03705h0at0g90r40970w5"],["Mr Dafoe",400,3,0,"1gs11v______02b___0dz04x0u70t20ij0bk___1yo00i00m02c05a05504t02i02q03400s0440510730an03g04o06b08f0db0pc0my1r4","1o4_________02h___0e206g0w60lj0rs______1c800k00n03905h05g04b02t03002800305a06z0be0id04s06j09t0cp0c90o31o41o4","____________0360nb0cp0530uc____________1pe00700f01m04003g04603l04405201a04b05a07c0bk03s04r06a08a0ns0qm______"],["Mr De Haviland",400,3,0,"1021ff___09n045___0ea0240wn___0rs06l___29d00i01103z05o04103d03d02f02p00r01t02602o03r01f01t03104d09g0pf1021ff","0z416t___06g03v___0d204c0uq___0rs0bu___1kd00n00t02y06004l03i03i02s02j00h03m04e06g0ah02r04j07709s0ai0o70xo1d2","1fi1fi______04c___0dd0230wf___0rs074___2c100700l02k03q03v04703o03o03x01g01u02502j03s01f01s03104a0m00q90tj1iz"],["Mrs Saint Delafield",400,3,0,"10t10t___0eq036___0em0260x7___0lm06z___2ar00g00j02u06204l02y02t02s02q02201x02702p03x01d01t02z04b09s0r10tw149","0zt0zt___0f202z___0dr04d0rg___0lm0cd___1gc00i00i02k06m04o03503602y02a01f03o04i0770ba02x04s06x0980at0py0uu12s","12l12l___0fu04c___0d90280x2___0k7076___1xd00300902i03t03c03f03j03y04102x01y02902q04601f01v02v04a0n20rn0os1oi"],["Mrs Sheppards",400,3,0,"0sb0s1___0om02w___0c506r0vs0li0ld0ge___1k000a00d01y05f05b04402j03e03e01104v07a0b50hs0430780970c20da0ql0r61d4","181181______04w___0a40880vp0li0rs0ek___11v00a00d02o05b05603u02u03c03300y06a09k0fw0o406e0930bt0fm0d00qp181181","1aw1aw___0e602b___04c0860y80nj0ij0gl___17500200601z04e04403q03704o04h01205009h0dm0mb04o0820a80dw0n50qo0ow1go"],["Ms Madi",400,3,0,"0r70j4___0rt058___0ca0230s9___0ez06n___2fw00l00t03405m05c05102902w02100601w02502t04101m02202z04q0c60ms0j40zb","1890n3___0kf04t___0bc0410tj___0nt0cg___1tm00l00q02v05j05805102y02v01t00903f04806s0ah03104306x0al0cn0m90vr205","0lu0lk___0hs03g___0ai0200ub___0bi06g___1n700c00l02z03i03i04903804204g00w01u02402t04801j01u02m0440k90pf0ed0w7"],["Mukta",300,0,0,"0fv0g60fl06p0410ih08w0360uv0rs03c0af0c41qo00900902s04q04g04v04l02y02q00803203703p06w02m03305w0cr0gu0og0f00hb","0fs0fs0fs0a102y0ig0960490vo0m90540dx0fg1pt00700a02w04t04m05105e02h02000404104b05c0ao03e04f0970fo0h60o00es0hr","0hd0hd___0ah058___07m03j0v30rs0290at___1f400200602804303f04003h03903x03603g03m04407602x03i06v0e10jy0rs0eh0ku"],["Mukta",400,0,0,"0gq0gg0gq0970410ih08w03w0w70rs04q0cf0du1oj00800a02i04z04g04w04p02y02m00803q03x04m09j03603r08e0g10hb0ot0f00hw","0gs0gs0gs08e02z0ig09804r0vk0nh06o0ez0gk1nk00700a02q05104n05105f02j01w00404i04t0680br03y04x0al0hl0h80o00ft0hs","0i80ij___0a1058___08604d0wf0rs0350cw___1cx00200601z04803h04003j03c04802u04b04h0570b803n04e0980jr0li0rs0f20lf"],["Mukta",700,0,0,"0hy0hy0hn08403h0ij09905k0z20rs08q0fk0hn1l400800b02a05504o04z04o03702400805f05m0710de04a05j0do0jj0hy0oe0fn0j4","0hs0hs0hs07l02z0ik09c0650z00nc0860gt0iw1id00700b02j05104q05205e02u01l00505w0690940eb04q06m0ew0kj0i00o10ft0jr","0jz0jz___09704n___09806c0z40ru03l0g5___18q00300501r04c03l04103j03g04h02g06906j0850gq04y06j0f50r20nf0rs0f20ml"],["Mukta Mahee",300,0,0,"0fl0fv0fl07903r0ih08w0350uz0rs03a0aj0c41ri00900902t04s04j04y04l03602900803203603o06w02l03105x0cr0gt0n30ef0hb","0fs0gr0fs09r02z0ig0970480w00mv0540dx0fg1ql00700a02x04v04o05305f02p01j00404104a0590ai03e04d09c0fu0h60n00dt0hr","0hd0hd___0af058___07m03i0v20rs01t0at___1fm00200602804403h04303h03a04602s03g03l04307302x03g06q0dx0jv0rs0eh0ku"],["Mukta Mahee",400,0,0,"0g60gg0gq09g0410ih08w03w0wd0rs04q0ce0du1p700900a02k05104k04z04o03602500803q03w04k09903403p0860g40gx0n30ef0hw","0gt0gt0gt08a02z0if09904q0vm0nb06o0eh0gk1ob00700b02s05204p05305h02n01g00404h04s0650bh03v04t0ao0hl0h70n10et0hs","0hn0hn___0a7058___08604d0wc0rs0350ct___1d900200602004903k04103j03d04e02i04b04g0560b303n04b09c0k50l30rs0f20lf"],["Mukta Mahee",700,0,0,"0hd0hy0hn08303h0ij09905k0z60rs08q0fi0hn1lm00800b02b05704q05004o03b01u00805e05l0700d204905h0dm0jf0hy0nq0fn0j4","0hs0hs0hs07l02z0ik09d0650z20sb0860gc0iy1i700700b02j05304q05505f02w01d00505w0690950e604q06n0f20k60i00nu0ft0is","0jo0jo___09704n___09806b0yy0rt03l0g5___18y00300501s04d03m04303j03h04k02806906h0830gp04y06h0f70qp0nc0rs0f20ml"],["Mukta Malar",300,0,0,"0f00fv0fa07d03r0i608w0340v10rs03t0aj0c31re00900a02v04x04m04y04q03501u00803103503n06n02l03005w0dc0gq0k70da0gq","0fs0fs0et09x03g0ig0970480vq0n204g0dx0fm1ql00700a02y04z04t05205r02901e00404004a05c09w03f04e09o0g90h40k30dt0hr","0hd0hy0eh09w03r0m007m03h0v70rs0290am0b91fl00200602904503k04603g03m03n02s03g03k04207402x03f06p0e50jb0rs0f20ku"],["Mukta Malar",400,0,0,"0fl0gg0fl08p03h0ih08w03v0w50rs05o0ce0dx1pj00900a02k05604n05004u03201t00903q03w04k09603403p08d0gg0gu0k70cp0hb","0ft0gs0ft09h02z0ig09804q0v80nf0640en0gm1o400700a02s05804u05305s02701b00504i04t06g0bh03z04x0aw0hj0h40l50du0hs","0jo0lf0er08704n0m008604c0wb0rs0520ct0dg1di00200602104c03m04503i03o03u02h04b04g0550b203n04b0960jv0kc0rs0g70ml"],["Mukta Malar",700,0,0,"0hd0hd0h309i03h0ij09905j0z20rs08w0fp0h21lz00800b02c05b04v05204w03401i00805e05l0710d004905j0dq0j30hk0mo0eh0j4","0ht0ht0gt07t02z0ik09e0640yw0mu07n0gc0j11ii00700c02k05704x05605o02g01600605v06909a0e404r06p0f90jg0hy0n10eu0is","0lf0ml0gi07e0420ml09906a0yt0rs05k0g90gl1ah00300501s04f03o04503j03r04402606906h0850ge04y06h0f80qs0m20rs0hy0nq"],["Mukta Vaani",300,0,0,"0fv0g60fl06p0410ih08w0360uv0rs03c0af0c41qo00900902s04q04g04v04l02y02q00803203703p06w02m03305w0cr0gu0og0f00hb","0fs0fs0fs0a102y0ig0960490vo0m90540dx0fg1pt00700a02w04t04m05105e02h02000404104b05c0ao03e04f0970fo0h60o00es0hr","0hd0hd___0ah058___07m03j0v30rs0290at___1f400200602804303f04003h03903x03603g03m04407602x03i06v0e10jy0rs0eh0ku"],["Mukta Vaani",400,0,0,"0gq0gg0gq0970410ih08w03w0w70rs04q0cf0du1oj00800a02i04z04g04w04p02y02m00803q03x04m09j03603r08e0g10hb0ot0f00hw","0gs0gs0gs08e02z0ig09804r0vk0nh06o0ez0gk1nk00700a02q05104n05105f02j01w00404i04t0680br03y04x0al0hl0h80o00ft0hs","0hy0hy___0a2058___08604d0wd0rs0350ct___1cv00200601z04803h03z03j03c04802t04b04h0570bc03n04d09d0jv0l40rs0f20lf"],["Mukta Vaani",700,0,0,"0hy0hy0hn08403h0ij09905k0z20rs08q0fk0hn1l400800b02a05504o04z04o03702400805f05m0710de04a05j0do0jj0hy0oe0fn0j4","0hs0hs0hs07l02z0ik09c0650z00nc0860gt0iw1id00700b02j05104q05205e02u01l00505w0690940eb04q06m0ew0kj0i00o10ft0jr","0jz0jz___09704n___09806c0z40ru03l0g5___18q00300501r04c03l04103j03g04h02g06906j0850gq04y06j0f50r20nf0rs0f20ml"],["Mulish",300,0,1,"0i50iq0hl05r04u0jf08j02t0sn0rs05o08y0ar1jx00800702m04m03n04704l03p02601w02p02w03g05o02g02v04k0a10hl0r80gg0iq","0hc0ib0hc06n03v0jp07n03z0si___03c0ca0ef1kp00200a01e05503r04904v03y02801x03q0410500a003i04407n0ex0i90qx0gd0j9","0k90k9___05306d___07502v0t10rs01208s___1cy00100302h04103b04203h03203m03p02r02w03d05g02h02u04r08m0j60rs0hd0ml"],["Mulish",400,0,1,"0ij0j40hy08004n0jo08p03m0ug0rs06f0ay0cg1ik00700802e04w03v04b04403s02801s03h03o04e07q03203j06k0et0i00re0gs0k9","0ir0jr0hs08503y0ji08f04i0tm0mm0600dl0fc1ih00500902l04u03x04f05203002k01104b04l05q0bm04004j0910gq0i40qx0gs0kq","0jo0jz___0aw05s___07503n0u60rs0370ap___1c000100302604a03e04003j03504103603k03p04b08203303l06h0da0jx0rs0g70m0"],["Mulish",700,0,1,"0jo0k90it07k0420jq08p05c0wx0rs09m0em0ga1g200600902305203z04f04903k02j01i05605d06n0dw04a0530bc0jx0io0rs0hy0lf","0js0js0it07q03y0ji08f05w0w60ms08c0g20hu1f200500a02a04y04204j05002z02q00w05j05z07v0fa04u05t0co0js0ix0r10ht0lr","0lf0lf___08x04x___07405d0wd0rs04v0ee___18n00100301t04h03h04203j03904k02k05c05j06u0gu04h0580av0nc0m70rs0ij0ob"],["Murecho",300,0,1,"0g70gi0g707e0420jq08r02v0u80rs03c09l0ak1pk00700802u04f03x04e03v04602901j02t02x03d05902f02t05f0bu0hy0qm0fn0hy","0ga0ga0fc07s02v0jp07k03v0tg___01s0cg0dv1rw00200901i04v03x04f04p04502201v03j03x04q08f03a04808h0fi0ia0qu0fc0h9","0hd0hd___07j042______02v0tq0rs00009n___1ku00000002h03z03f03z03k03a03u03a02t02y03a05202h02x05o0bn0jx0rs0eh0j4"],["Murecho",400,0,1,"0gs0gs0gs09d0420jq08q03r0vt0rs03j0bw0d41nl00700902h04o04204f04103y02f01d03p03t04g07z03303o07x0gm0i80qm0f20ij","0hn0hn0hn0b903x0ka09504m0vb0mz03z0e70fi1mk00500902j04o04004e04t03g02g01304h04o05s0at03w04u0af0ib0iz0qs0fo0jl","0hd0hd___0a2042___03h03s0vm0rs0000c4___1j600000102604703g04103l03c04a02t03p03u04c08903703u0830ha0li0rs0dw0jo"],["Murecho",700,0,1,"0je0jz0j409f02w0jr08p06q0ya0rs0780hm0iw1h000600a02004w04a04j04b03l02m01506o06v0930g405c0780hc0pa0je0qs0hy0ku","0jo0jo0j708802y0jm0950770xz0lq0780im0kw1d900500a02704u04904h04y03902j00x06y07e0bt0gt05t08g0i00oh0jt0qw0hp0ko","0k90k9___08m03h___05s06r0xa0rs00w0hl___1b000000101p04g03n04303j03k04m02706o07109h0gz05m07b0i60rp0od0rs0fn0ml"],["MuseoModerno",300,2,1,"0j10j10j108n04m0ka08n0380t70rs08k09x0as1gd00700b02o04m03r04703r04902002203503c03z08e02v03905f0d40hw0ro0gq0lc","0ib0ja0ib09w03v0jv07h0450sq___07c0cj0do1j900200c01h05403w04a04n03z02701s03x0480550b203q04a07l0f40i90qw0eg0k9","0k60k6___09i0570fk08n03a0tl0rs0420a8___1bs00600802g04703903w03e02y03o03n03603b03z08s02w03905h0bv0j70rs0gq0mh"],["MuseoModerno",400,2,1,"0j10j10j109d04m0k808n0450uh0rs08r0cb0ct1fu00700b02b04v03w04903w04202901t0420490560bs03o0460860gx0i50ro0f00lc","0j80j80j808w0420k308i04v0tw0n907q0e10fj1g800500c02j04y04303904s03u02h01g04q0500650dn04f0530a70ht0ii0rl0f70l9","0kh0kh___0a704w0fr08n0480uu0rs03u0cm___1aa00500802404g03d03y03f0310420330430490570dg03o04607t0i20l00rs0fk0mi"],["MuseoModerno",700,2,1,"0k70k70k708903h0kc08n06r0vm0rs08r0hk0id1bo00700c01u05004604e04703o02l01g06j06y0ak0hi05u0760gv0o30jm0rs0hb0lx","0lj0kk0lj08102y0l508e0760vs0lk09m0hx0ij1a700500d02004u04304c04r03g02k01a06z07e0bv0hy06907p0hb0nk0jr0rp0im0mj","0lx0lx___091041___08n06y0wh0rs03u0i4___15900400801o04l03m04003d03c04l02c06u0740ax0iv05v0730h80q80nx0rs0hw0o8"],["My Soul",400,3,0,"0sy0sy0yq0eq0580dw09y02r0ye___0fg07h09c29400h00u03704z04z05o02a01t02f01702c02w03n05a01l02903x05v0db0q20dw13d","17z1041fv07n05k0dg08v04k0xp___0rs0az0do1tc00b00n02c05206c05e02b01q02901h03p04j06h09t02n04406u09k0cy0q01041jk","0wf0wf___0li04c___08703011k___0op08t___1qm00a00s02g03l03a04a03e03304102n02a02z03p05o01j02903l05t0nt0rb0uo127"],["Mynerve",400,3,0,"0ef041___0ay041___0fl0320q60r807q0gz___1v000900g03b05a05m05s02u02o01j00402t03303z06b02t03j05u0a40bj0ld0da0jm","0fu04y___0c402z___0ed04b0ri0nh07d0il___1od00a00b03005i05s05t03602q01700303r04a06809q03v05208m0cq0c20lv0du0js","0j20jn___080057___03i03a0r80oj03609u___1fh00000602f04g03w04c03h03n04k00u02z03b04606x02z03i05t0a80ft0pl0fm0le"],["Mystery Quest",400,2,0,"0f20f20f20kb01r0ij0bl0320xy1ee04s0aw0by25v00i00m02m04w03v04804603j02u00k02o03503v05o01u02s0520b70i00ph0db0hy","0hb0gd0sd0pu01x0jr0b60460ry0u90d30ei0ei1zt00i00n02f04q03q03v04j03z02p00q03v04d05u09f03f05409b0gw0j50p50ef14e","0gr0gr___0bj02b___0ai03c10827o0250bo___1xz00a00d02x03y03a03j03203q04k02602v03e04806301x02v05l0c40oh0r60az0k8"],["NTR",400,0,0,"0iq0ju0if09104j0k209a03z0sx0p505k0bz0dr1f300900702504y03q04804n03q02f01k03w04205a0b703o04307h0fm0if0r80gg0kz","0je0kf0id07k0430k309i04x0t50j205c0ec0fz1fd00600902h05104603h05203n02r00s04o05106t0es04i0540a90hn0io0qr0hc0kf","0kf0kf___09y05o______03z0sr0pc0310bm___18q00000001y04e03804003x03104j02r03w0410510cg03p04306w0e00kz0rs0fv0mo"],["Nabla",400,2,0,"03g05q___0n8056___05a02u0xw0rd0000d4___23200000801m04q05s06105502r01e00602c02p02x03201v0380ak0gs0dc0lb03g05q","0dr0qi___0jp01z___04e06z0xu09306y0hk___1f200000301904m05t05v05o03401a0060510670ag0cz06a0cx0gq0kr0hr0mt0dr0pj","07p06u___08o09o______02k0vo0sh0000d4___23w00000000x04b05g05d05e04x01900802802g02p02v01s03d0bo0jj0d30lm05408j"],["Namdhinggo",400,1,0,"0g50h10g507902w0hb08w03i0zs1uq07h0aj0d31pf00c00903g04u04f04x04v02a02600b03f03n04h07f02702y0630cx0g70nn0ef0j1","0ff0ge0ff0hp02w0ho08a04f0xm___0450dg0g71qy00600d01w05m04h04z05k02k01z00904604j05w09g03a04808u0gg0gb0n70di0hc","0kq0kq___08c04c___07j04a14m2060420bj___1ce00100402s03y03b03m03e03803m03t03x04b05009302g03a0760ez0oa0rs0ha0nm"],["Namdhinggo",700,1,0,"0hc0ih0hm06v02b0hc08r04y1791hk09t0cw0fe1ml00b00a02z05404l05004q02h02100a04u05606509o02o03u08y0he0gr0np0g60k8","0hk0hk0hk0ff02x0hf09605s13k19a0aa0f70ib1jm00a00b03105104i04y05902g01r00905g06007o0c203m0510be0i10h00nr0fm0jj","0lw0lw___084041___08k0611do1jp0730e6___1a500200402c04403g03o03c03f03x03e05k06206w0bp03104e0aa0nf0p00rs0j00pc"],["Nanum Brush Script",400,3,0,"0eh0d1___08f02m___0bl03e0r00oo06h0b7___1s600a00h02o05d05s06303a02p01000502u03f04807c02y03s0600br0bt0jo0cq0j4","0dt0gs___0e702z___0c404p0ry0nm06b0co___1kq00a00e02x05c05o06103r02g00w00404104p0710b204505909j0er0d30k30bu0jq","0gs0g7___0a103h___0470370oc0jw06s0ao___1iu00000502504w04g05s03o04p02000302p03904d09503403t05g0an0ei0m80eh0j4"],["Nanum Gothic",400,0,0,"0fi0gn0fi06l04w0iy05a02x0su0rs0420a10ba1of00000902v04m04704m04703o02s00m02t02y03h05o02i03205i0c80hb0pu0ex0ht","0gd0hc0gd08i03v0kj05e0440tc0p001o0cu0ds1lu00000701k04x03x04b04l04b02801s03v04504z09y03h04f08o0g70j40qx0ff0ib","0hy0hy___06s06d___02b0340t60rs00009w___1eq00000002g04303h03s03k03803p03i03203503n05u02q03905z0bz0ju0rt0f20ku"],["Nanum Gothic",700,0,0,"0fn0g70fn08u04c0j40580490tb0rs04a0em0f31nz00000902e05304e04q04k03a02u00a04304b05e0b703w04q0ai0ip0hz0pm0eh0hy","0fr0gq0fr08k03y0jh05f0500tk0mp02u0fx0h51lo00000702j04x04e04r05503102p00604q05406w0cn04l05t0cb0iz0i40pt0es0hq","0gq0h1___0ab05s___05204n0tv0rs00w0ee___1cu00000101w04d03j03z03k03d04a02s04h04r05v0cw0480560bb0mo0m20rs0dv0k7"],["Nanum Gothic Coding",400,3,0,"0f20f20g704103h0j405s0310ta0rq0000bi0bt1no00000b02s04u04704n04d03l02r00c02v03303q06p02o0350620eo0hl0pk0dw0g7","0f80f80g706s02v0jn0600420sw0fr00k0e90fe1kx00000a02k04t04504j04y03f02x00703u04405b0a803k04e09a0gt0ic0p50ea0g7","0fn0fn___07n04n______03a0tx0rs0000br___1jx00000002904303h04003l03b03y03603703a03q06902w03h07n0jc0mu0rs0c60gs"],["Nanum Gothic Coding",700,3,0,"0f20f20f204a03h0j405s04f0sp0s60000fv0gx1m700000b02h05304c04q04n03802r00a04804h05w0bg0450510bu0j30i50pj0eh0fn","0eu0eu0du03h02z0je05j0540sq0s30000h90iq1h800000802i05204a04r05d02y02i00604q0570820cs04q05v0dx0kr0i50ps0du0ft","0ft0ft___06u041___05504q0t21ga0000gw___1gv00000101e04g03l04103n03i04e02t04l04r0600c104f05k0dn0qs0ov0rs0ed0g3"],["Nanum Myeongjo",400,1,0,"0gs0gi0h209n02w0hf08d02o0z31ii07v08g09x1nq00800803704i03z04e05102302602102j02r03b05901m02804108h0g80r70dw0ij","0g80g80g809i02v0ho07j03v0x80ta05s0c90ec1p000300a01s05903u04605e02l01w02i03i04104u07n02n03o06d0do0gc0rl0eb0h7","0jo0jo___09b04n___05s02t1240rf07o08a___1eq00000402p03r03703n03g03603i04d02o02v03i04y01l02604907y0m00rs0f20ph"],["Nanum Myeongjo",700,1,0,"0gq0gq0hw09d02b0hj08o03j11t1xe08e0aa0cd1n800800903b04l04004g04u02402601v03e03n04b06y02102v05p0cj0gq0r50ef0jm","0g20gj0g20kz02u0gv08104c0zo1k608a0d30fq1p500700903904j04004f05s01v02m00x04504i05k08t02v03z0800ff0gc0qp0e60iw","0ku0ku___08q042___07q03n1592970a809z___1eg00100402v03u03903o03a03703k03z03l03r04h07102202s05x0ba0mu0rs0g70q2"],["Nanum Pen Script",400,3,0,"0hy0l4___08s03h___09d0480r10rr0iv0bk___1hr00700s03005905505f04102m01700603v04806009u03y04t08b0e70de0jw0g70ku","0hg0hz___090036___08w05f0se0r70dw0ei___1c200500m03g05l04405u04r01y01900504u05i08v0dl05006e0bm0gh0e50kh0gx0k3","0k90lf___08k042___0420470r70q00ha0at___1c300000b02b04u04c05403n04b02j00e03w04a05p0b304104q07y0eu0eo0n90hy0m0"],["Narnoor",400,0,0,"0gh0gh0gh07t0440j30890400v30rs03o0d50ef1l500600a02j05304e04305502x02t00e03x04104v08y03e04208x0hb0hq0oz0fb0hn","0gr0gr0gr07202y0jg08c04v0ur0r502o0fe0go1jd00500a02k04y04c04q05203402i00604m04x0680by0490520bb0ix0i10p20fr0iq","0i70i7___09p057______04c0v20rs0000df___1c800000002004e03f04003k03a04c02t04a04d0520b103o04i09e0l40m00rs0eg0k8"],["Narnoor",700,0,0,"0hm0hw0hc06p03h0jn08305l0wq0rs04t0ga0hf1hh00500b02605404c04q04b03o02n00e05h05m0740dx04m05q0du0kn0in0pf0gr0j2","0hs0hs0hs06f02z0jh08a0660w80m503r0hp0j51ed00400b02d05004e04t05203e02800605w06909a0eg05806s0fa0l00iy0p10gs0ir","0j40j4___08m04n___07f05y0vw0rs0000gn___18n00100301q04i03k04303i03e04m02c05v06207r0fn05406c0e90qz0nf0rs0gs0lf"],["Nata Sans",300,0,1,"0ij0it0hy06g04n0j408p02u0rk0rm0930990ae1kc00900802y04t03z04q04b03n02s00602o02v03j06702k02y04o09b0gi0ow0hd0j4","0i80j90i80920420ks07z0410qy___0420cj0dd1kb00300a01l05c03z03h04r05a02r00b03n04405d0aw03m04f07m0f30j30p80h80k9","0ki0l3___06806g______0340t10rs044096___1ae00000002k04803903d04a03303303z02w03503m06102q0350540940iy0rs0i60nf"],["Nata Sans",400,0,1,"0ij0j40ij08g0420j408q03e0rz0rs09m0av0c11js00900802n05404104q04g03h02r00603803g04d08b03203k05t0ct0gy0ow0gs0jo","0j70j70i909103u0jn08d04b0sb___08c0dl0e41j600400a01c05d03y04l04y03y02n00o04304e0600cd04004l08f0fb0i60p30ha0k6","0kt0l3___0aq05a______03r0tq0rs03x0au___19w00000002904h03903g04703403i03l03j03t04f08w03b03r0690bw0k50rs0f80nf"],["Nata Sans",700,0,1,"0k90ku0k908p02w0j408p05n0vm0rs0cs0fn0gy1g800700a02605b04a04t04j03k02i00605g05r0860fx04t05m0bo0j50i00p60j40m0","0ko0ko0ko0d102y0jf0960680ut0li0c30h50hs1cl00600a02a05404804q05503f02d00505x06e0ac0h505g06c0d10jm0i40pq0jp0nm","0mu0mu___0ah03j______0680w20rs08e0ft___14y00000001r04m03j03j04503c04602r06006c0900jo05d0660cq0om0n00rs0i60ps"],["National Park",300,0,1,"0hv0j10h005y0410kr08c02y0ql0r401p09r0au1n000700802q04m03n04603r04l01y01y02u03003m06k02r03905g0bv0ih0ra0g50jm","0hc0ia0gu06j03v0km07e03y0r0___0140ck0e61p000200b01i05203r04904k04f02801o03k04004z0a003m04g0890fg0ig0qw0fe0j9","0j10j1___05q057______02y0r40r900009q___1ig00000002g04503b03t03p03703m03l02v03003j05v02q03905j0au0j80rs0g50k6"],["National Park",400,0,1,"0ig0j10hl07s0410kr08c03n0rm0q401m0br0cr1lm00600902f04t03q04603u04h02701q03j03p04j08z03e04107a0fz0ip0rd0gq0k6","0hr0iq0h907o03y0l207k04h0s8___0130dz0fm1lr00200b01c05604004c04q04802b01e04904j0610bl04705009x0hj0jl0ri0gr0jq","0j10jb___09v04m______03o0sl0qh0000bm___1h400000002604b03e03t03p03904203503k03p04e09b03e04007g0g10ke0rs0f00k6"],["National Park",700,0,1,"0jo0k90it06s0420kb08805q0ty0no05w0fz0h71f700500b01x05204404e04c03w02j01505i05t07z0fk05706b0do0l10j50ra0hy0ku","0ji0kh0ij06p03x0l608906c0tt0gy05c0h10ij1bz00400b01y04v04204a04t03r02f01a06106j0a50gb05t0740ff0lu0jt0rm0ij0lh","0lc0lc___06h057______05s0u70nk01y0g0___19q00000001n04i03n04203k03f04j02g05q05y08c0gn05906j0dx0px0n40rs0ig0mi"],["Neonderthaw",400,3,0,"0um1j0___13406t___09w01g0sg___0j807p___42d00h00i03a05g05205902x02e02900801b01j01z03601601f01u02f0cl0nt0fv1gq","1f1______0cl05w___0a506p10v1db0rs______1as00g00i03i05v05l04r02t02b01x00405j07g0bz0ic04k05t09q0ch0c50nt1d326j","1ex1vb___0ni056___08u01h0uj___0ku07q___35k00800b02g04j03l04r03d03g04l00k01b01k02503k01501c01r02d0j40pb0tc20h"],["Nerko One",400,3,0,"0j10ih0j106301q0hw0az07m17n1510bz0io0j91hl00e00c02c05804v05804d02m02b00607607p08m0f404q08j0gy0of0gu0ox0ih0k7","0it0hu0jb0bo01z0hm0af08215b0fr0cc0jd0kc1ct00b00e02005604u05805102k02700407h0850c00gi05i0ad0h70o20hs0pp0hu0jt","0ku0ku___05k02w___02h08a19t0xp01j0ir___1a100000001u04903x04303i03y04902007r08d0940fg0520a30mt0rn0of0rt0jo0m0"],["Neucha",400,3,0,"0dv0eg0dv0d302m0jn09u0360re0s102y0by0cl1zp00800802505804204i04803m02901c02y03803u06o02u03m07l0f60hi0qn0cq0fm","0dg0dx0dg11m01x0jo0980430rc0ox04r0ed0fl1ze00600901p05104104e04v03o02401m03s04505a09p03s04y0at0hd0i50qv0ci0gc","0fn0fn___0di02w______03g0sx0r101i0c6___1qk00000001w04m03n03z03k03d03t02y03403e03z06m02w03u0830fm0jx0rs0db0hd"],["Neuton",300,1,0,"0hy0i80hd08l02b0jo08b03e12k2ek05w0ab0bj1mx00900903k04a03r04603p03u02501w03703m04c07c02302p05z0c00ij0r70fn0m0","0ia0j90hc0cq01x0jn07f04e0zd0th06i0di0ej1o600300b01v05303q04604l03w02801u04304l05t09e0300430880fx0i90qu0fe0n4","0m00m0___07l058___08f03n17f2i309f0a9___1gc00200203703q03b03q03203803o03t03h03o04d07j02102l06e0bj0nw0rs0gs0q2"],["Neuton",400,1,0,"0ij0ij0ij0bc02b0jo08b04613i21g0860bz0de1le00800903304l03u04703r03x02701s04004l05o09k02k03f07r0ga0ir0rd0g70ml","0ib0ib0fw0u502w0jp07e05010d0rt0740en0gc1mr00300c01o05903u04604j03x02b01r04n05a06u0av03b04k09j0hp0if0qy0eg0o3","0n50n5___0bd04n___08e04m19g24009g0c9___1f500100302r04203e03t03303903s03l04e04o05p0af02i03907x0g30ol0rs0hd0r7"],["Neuton",700,1,0,"0jz0ku0jo07v02b0k908a05z1521ig09m0f30gs1eg00700a02j04x03w04603y03x02f01k05n06l08s0dg03o0550bp0k70jo0rs0hd0ob","0kh0mf0ji0cq01y0jq07s06k14816b0an0gm0iy1e600500b02q04x04004904r03802m00w0620720a20e604805y0d20jv0j90r10gl0pd","0ow0ow___06r02b___08e06m1bz1o30cw0fm___18l00100302a04f03h03s03403f04a02y06d06w09a0eb03k04u0bs0o70pj0rs0j40sy"],["New Amsterdam",400,0,0,"0fk0fk___06c02b___02b0570t41p400i0je___1qv00000002504803l04103j03h04c02h05505706s0dx04y07m0nx0sd0qi0rs0ez0fk","0fv0fv___0lj01z___02305u0rx0l607a0jy___1j100000001r04803p04304503m04h01s05h0610bc0ea05t0930mk0r50pw0rt0dv0uq","0fk0fk___06d02b___02b0570t31p900i0jf___1qu00000002504803l04103j03h04c02g05505706s0dy04y07m0o40sd0qi0rs0ez0fk"],["New Rocker",400,2,0,"0fj0f90g406m02w0h909705910k10706r0fl0gc1q200900h02g05504604q04h02202o01e05405e06r0c003h04t0dy0mv0gu0r10ez0h9","0f60f60f605u02u0h109n05s0xr0xl0480ij0je1o000900f02q04x04204k04y02g02o00u05l0610850dw04h05y0fi0nh0h90qt0e80g4","0jo0jo___06e042___07o05p12815x0110f8___1hn00500c02g04803b04303b03204c02j05c05u07e0ch03c04u0b80qg0q60rs0fn0ml"],["New Tegomin",400,1,0,"0ih0hb0j105u02l0hw09b0340x11w60bj0a30b61i700b00903d04r03r04905002d03300o02x03c04d07j02702t04y0a20gq0pe0g60ks","0hs0ga0ir05u02z0i909e04a0w30mm08x0dl0eh1ja00600c01x05h03u04e05l02m02w00k03y04i06709f03604407e0dx0gu0pk0ft0jr","0hg0hg___07a03s______0330uj1xn02q0ai___1gk00000002u04e03803f03t03q05m00q02y03a04207w02a03005p0ag0ma0p90ga0kd"],["News Cycle",400,0,0,"0ex0h70ec05y03g0iu08d02y0se0rs0150ah0c41ul00700903c04804104b05102f02c01q02t03103g05u02m0340690dd0hk0ra0ds0hs","0f90h60eb0a802v0iy0830400sh0mc02w0dg0fl1tz00400a02j04l03w04a04t03b02z01103s04404x09b03i04e09h0gn0id0qz0eb0i4","0hk0hk___059044______0340te0rs0000an___1ml00000002z03r03h03d04303c03i03b03203503i05x02o03906s0dr0li0rs0f80ir"],["News Cycle",700,0,0,"0fn0gs0f207w02w0j608404j0ud0rs0130ew0g51s000400a02604w04304g04b03h02l01g04904p05o0b104004v0bv0jf0io0rs0eh0hy","0g80i50fa0c602v0ix0830550tw0pp02f0g20i61qr00400a02a04q04004d04w03702i01i04s05b0750ch04j05r0dg0jf0ij0r10ec0j4","0hy0hy___09i03h______04p0uh0rs00g0f5___1jv00000001u04d03i03y03l03i04e02o04n04s05w0cd0430550c90oo0ne0rs0cq0jo"],["Newsreader",300,1,1,"0hy0hy0hd08l02w0i00ag02l0za2rv07707l09b1kv00b00703v03z03l04504k02q01y02i02f02n03305t01o02603r0790gx0rs0dw0ku","0hv0iv0gd0hq02z0ic09l03t0vy0wh07l0bg0dy1my00a00802005603s04e05i02j01q02703h04104y08002t03n06c0cj0gz0qt0fw0ku","0k90lf___0ax058______02m11j2vp06607w___1dy00000003k03e03103k03b03103g04h02j02n03205h01r02204307c0m60rs0dw0ob"],["Newsreader",400,1,1,"0ij0j40ij08402w0i00ag03o12226708e09z0c11j300c00803904e03r04a04n02j02402b03h03t04m08q02803105p0c00hd0rs0fn0m0","0ib0ib0it0iy0320i20ag04n0yk1nl08v0d90fo1jl00c00903e04l04103g05i02f02r01404d04t06309v03904d0810fc0gq0qt0f90lc","0lf0lf___0ad04n______03s14i25p06m0a7___1ca00000002y03u03603p03a03503n04303m03t04j09502g02y06a0az0n70rs0eh0ow"],["Newsreader",700,1,1,"0lv0mh0ji0fq02y0ic0ac06a1fa1c90dl0dz0gi1et00900902o04q03m04l05502802i01v06706p07o0cq02z04w0b90ir0hu0rs0hq0q0","0l60lo0iq0it02y0ii0a906u19l1450aa0fo0j21e200a00902r04n04404k04y02a02m01e06n07808x0ec03t05u0d40k80hz0rs0gr0om","0ob0ob___0c404n___0880701lv1fz09x0dx___18m00100202c04103i03v03a03h04203706h07007z0dh03504s0bd0o40ok0rs0hy0sy"],["Niconne",400,3,0,"0er0g70dw0i601r0bl08p03o11o0uj0a80am0dy2dp00600j03105s06404p02d01w02001a03103p04e05w02302x05n0af0bl0q30c60n5","0i40qx1mp0s702y0bo08z0571200og0bl0ct0if1u200500j03505q06104j02l01v02201804j05506o0ai03704l09d0ck0bz0qm0br0wa","0ol0ph___0mj02b___09c03v1571490d80a6___1wp00500c02j04504604g03703403c02e02n03o04h06602002s04w09z0j40rs0eh0vu"],["Niramit",300,0,0,"0hb0ig0hb0780410j608n0360sx0rs03t09x0br1lz00800702k04p03y04504703r02002203203803v06d02q03905r0df0hj0ro0fk0k6","0hd0ic0ge07c03v0jm07j0450t1___01n0d90ex1ny00300a01c05504004905403i02b01s03s04705809x03n04d08p0fn0i80qz0fg0ja","0ig0ir___08p04m______0360t40rs0000ai___1h400000002b04603f03t03l03903l03o03303703q06102p03b05z0dd0kh0rs0d90kr"],["Niramit",400,0,0,"0i60j10hv08q03h0j608p03s0uk0rs06p0bn0d71l600800802c04t04004604c03m02801w03o03u04p08k03803u07f0fu0i00rp0g50kr","0i80j80i808a0310jv08k04r0ui0kv03t0e70gd1k100500902k04y04503b05603e02e01j04i04t0660bo04304x0ad0he0ii0rm0g70l9","0ig0ig___09x041______03t0v30rs0000c2___1ga00000002304b03g03u03j03b03y03b03q03u04h08u03903w07o0h20lj0rs0d90lc"],["Niramit",700,0,0,"0kr0lc0jm08v02w0j608n05o0wo0rs0a70ew0gy1hf00600a01y05004504d04h03c02j01l05j05s07h0ey04o05n0d80jh0ii0rs0j10n2","0kj0kj0jk08e02y0jc09606a0wm0lt0930gd0j41du00600a02404w04104b05303102h01f06106i0900ga05706j0et0k10ix0ro0il0mi","0lc0lc___07c03h___06d05q0wo0sm00z0fp___1b500000101q04h03j03z03i03e04h02p05l05s07d0g304t05r0df0p20n80rs0ig0n2"],["Nixie One",400,2,0,"0jz0ku0j40890370jo08401n0r54i10ap06306l1hy00c00704n03l03803n03c04j01s02j01k01s02d04l01j01q02i04r0hy0rd0hy0ob","0k60k60i90g602f0jt07h0320q00iz0920ai0bi1j500400d02805103c03s04404f02102f02x03f04z08l02x03f0570920ic0r00hb0n2","0k90k9___09z042______01o0rn4in07r05z___1eg00000004j03702q03f02t02l03705c01j01r02504601j01p02o04u0m20rs0gs0ph"],["Nobile",400,0,0,"0h80ht0h809q0410ko07k03n0xe0rs03h0b60cb1m900400f02q04m03x04e03o05201m01b03m03p04206v02u03c0750gc0if0nu0ed0iy","0hc0id0hc08m0320ka08d04k0w80ms03p0dn0fc1lg00300e03504n04903g04o04o01p00u04f04l05j0ab03n04h0a50hw0iq0ox0fb0ke","0hu0hu___0aa04m___04g03o0xt0rs00i0b5___1hv00000602n04403k03x03i03n03i02r03n03p04206w02t03d07c0gs0it0rs0ee0lb"],["Nobile",700,0,0,"0hn0is0hc07m03h0j308s0681120rv06n0h00if1la00400d02h05604p04w04q03701w00b06606e07t0e104h06h0g70m10i40pg0gr0k8","0hp0io0gq08y03y0jd08f06m10d0n60740ic0jr1hw00300c02o04z04l04u05d02z01r00906f06u09g0ec05007j0gw0m40i30po0fq0kn","0kp0lu___08x041___04r07212a0rs0240i3___1a600000401z04f03r04303o03q03v0290700720930gu04s0780hk0rs0la0rs0go0n0"],["Nokora",300,0,1,"0hy0hy0hd05d0580kj0990320tj0rs02b09h0b61j700a00702o04j03o04a03q04k02101w02x03403n06802o03205k0da0im0rb0gs0ij","0gv0hu0gv07s03z0kc08j0440tf___0260dc0ek1ks00400901e05703y04i04t04702k00v03v0460570a603h04b08r0gk0ix0qn0ev0hu","0hy0j4___06805s___06h0330tp0rs00j09r___1ed00100302g04303a03y03h03503v03h02z03403m06802o03305r0bj0kb0rs0f20ku"],["Nokora",400,0,1,"0hy0hy0hn09j0580ku09903u0v40rs03j0bo0d61il00a00702c04q03q04b03r04k02901o03p03w04m08q03b03s0810i10j60rg0f20j4","0gz0hg0gz07z03s0ke08z04i0ua0mt03r0e30fl1k700700802h04p03w04b05u03202j00m04a04k05r0bh03z04p0a20ht0j00qj0g10iv","0hy0hy___0a8058___06h03w0uz0rs0290bv___1dx00100402504a03d04003h03704803003r03z04m09r03d03w07v0hb0l40rs0f20ku"],["Nokora",700,0,1,"0j40j40j407503h0l00990650x20s805w0gl0i21h800700901x04v03z04d03y04g02f01e06106807u0f505106d0fx0nk0kb0rs0ij0ku","0iw0iw0iw08702u0kf08z06b0w50lp08c0hq0it1gi00600902404t03z04d05v03c02d00k06306h09d0fd05c06w0g00mr0j70qj0h00ju","0j40j4___090042___07j0660wt0rs0290gt___1av00100401r04h03k04103h03f04l02e06006808e0g505606i0fg0rj0nz0rs0g70ml"],["Norican",400,3,0,"0i80hy1jk0uw0420fn08s0460zw11s0at0c20de23k00900h02505s04o04n02z02i02v01i03p04c05a07e02n03s07a0cr0f20qu0gs11m","0i40hn___0yt04a0f209q0570xw0xd0bg0ed___1qx00b00i02w05g04e04h03802f03g00q04n05e07e0bh03l05309y0er0en0qv0h5141","0j40j4___1n70210mu0b604g0yy1d50bp0bq___1le00500c02204u03803i03503t04802i03x04j05k08p02p03t06k0by0n50rs0hy1os"],["Nosifer",400,2,0,"0z10z1___07v05r___0et0b016e0pm0n50ju___0t700i00j01t04103p03t03703m04c02c0ax0by0k00uw07508d0ih0rl0ph0rt0yg0zm","0x40x4___05s051___0d60b016s0p10nt0k9___0tm00g00i02804603t04203003y04a01d0ap0by0mc0u107509q0ml0qk0os0qw0w40x4","0z70z7___07a05s___0ep0b116g0pm0nt0js___0t000i00j01t04103p03t03703l04b02c0ay0by0ju0uz07608d0if0ro0pf0rt0ym0zs"],["Notable",400,0,0,"0tb0tb___0c501q___02x0cf37f0rs0kd0j8___0zu00000102603t03y04603m03y03u02b0c70du0f20hb0340cl0r80s40ph0rs0o50yh","0vy0vy___0hx01z___02l0cd2qv0m30mq0jg___0y700000001u03v03x04604903z03t0210cm0e90fn0n303s0dm0q10rx0pn0rs0qj15a","0tb0tb___0c501q___02x0cf37f0rs0kd0j8___0zu00000102603t03y04603m03y03u02b0c70du0f20hb0340cl0r80s40ph0rs0o50yh"],["Nothing You Could Do",400,3,0,"0hd0mv___0fa01r___0di02u0qr13l0bj06k___1ml00f00d02o05b05405j03d02n01q00n02f02v03u05x02a03004s06l0b00l10eh0jo","0gr0wj___0uh010___0d404c0rn0g40ed09t___1ig00f00e02a05m05a05l03v02f01n00c03l04c06809003h04p07609k0c00l30dt0vj","0l10nx___0j302b___07v02l0p9___07n06v___1em00300702704503i04703x03y03x01r02a02q03j06002602v04p06a0fs0py0fk0st"],["Noticia Text",400,1,0,"0gp0fk0gp08k02w0jl08203k10g1vo05w0cc0ck1pg00900903804s04104g03m04d02j00c03j03p04i08l02j02z06m0fe0ij0ob0fk0kr","0gr0h80h80lt02y0jj08804g0wu1ja05k0e70fb1ok00700a03a04s04504h04p04001q00704c04p06a0aa03a04a0910hk0iz0nx0fr0jp","0iq0iq___07u043___03i04711y1ty0330cm___1gf00000102o04d03c03303v03403c04104104704z09z02y03f07l0ft0ou0rs0en0ne"],["Noticia Text",700,1,0,"0j00hu0j00ao01q0jk08205h1e01fg08i0ez0fk1m000700a02r04z04c04n03w04402b00b05g05m06u0ai02w0480av0jq0j10oa0gp0mg","0ir0j90ir0l801z0jh08906316i17d0880fk0ho1ku00600b02z04z04c04l04v03t01m00705v06a0830cl03l0570cs0k20j20nx0gs0lp","0ln0ln___08s038___03v06f1fk1es0770fj___1cy00000102904f03m03903w03g03l03c06706g07n0cv03d04u0ca0p50pz0rs0hk0pr"],["Noto Kufi Arabic",300,0,1,"0hn0hy0hd05h04n0ki0990320tr0rs01609j0b31j200a00702n04h03q04c03p04j02201v02y03403m06602o03105l0ct0il0ra0gs0ij","0gu0ht0gu07n03z0kb08j0430t7___02q0cu0ef1km00500901h05403y04j04p04902l00u03r0450530aa03g04a08n0fw0iw0ql0fu0it","0hy0j4___065058___06h0320tp0rs00009l___1e100100402f04103b03y03i03503w03g02z03403l05z02p03205n0bf0jv0rs0f20ku"],["Noto Kufi Arabic",400,0,1,"0hy0hy0hy09h04n0ku09903v0v60rs02j0bq0ct1hf00a00702c04o03r04d03q04j02901o03q03w04l08v03b03t07y0h70j60rg0f20j4","0gz0gz0gz08903s0js08z04h0u90mt04t0dy0f81j300800802h04o03v04e05s03302j00m04a04k05o0b203y04n0a30h50ic0qj0g10iv","0hy0hy___0a6058___06h03v0v20rs01c0bq___1cw00100402404903d03z03i03804803003r03y04j09r03d03v07q0gm0lf0rs0f20ku"],["Noto Kufi Arabic",700,0,1,"0jo0jo0jo0770420l00990650x30rs08k0gj0hr1e100800901x04u03z04e03y04h02f01e06106807v0f305206b0ff0mf0kb0rs0hy0ku","0is0is0ia07003y0jg09806d0wy0li06y0hu0is1e100600a02a04z04c04p05303d02h00606306h09t0f105706v0fp0mi0iz0pu0gt0js","0j40j4___09304n___0700650wo0rs03l0gr___18l00100401q04g03k04103h03g04l02e06306d08d0g105506l0f20rl0nv0rs0g70ml"],["Noto Music",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Naskh Arabic",400,1,1,"0ic0ic0ic07x02y0kp09204114823d05c0bk0cb1jy00a00803304j03704504804502901s03x04604v08c02e03906x0gb0k30rd0gk0mh","0gr0hq0gr0my02y0ji09704p1031p504y0e00ft1lj00900903704k03x04a04q03k02u00904l04w0660ad03604a08o0hr0j10pv0fr0kp","0ku0ku___071058___08t04718228u03z0bk___1fi00200302s03z03a03l03403603v03v04504b04y09502a03307c0es0oz0rs0hd0ob"],["Noto Naskh Arabic",700,1,1,"0ix0ix0ix07802b0jl08m05v1fl1e40a50ei0gm1ji00900902m04r04304e04m03a02m00y05p05y06q0as02r04b0an0jp0ji0qd0hs0my","0iq0iq0i90po01z0jg08e06d18e15507r0g30ie1ig00700902w04p04504e04t03g02s00906806i07y0c803g0530cf0jv0j40pv0hr0lp","0mv0mv___06f04n___09006e1na1ku0af0ee___1cf00200302b04403i03q03703g04503905w06f0750cf02p0470as0om0q20rs0j40q2"],["Noto Nastaliq Urdu",400,1,1,"0hd0jz0hd08h0370jc04203v13v20605c0bh0cq1ob00000503204p04404g03u04d02j00m03q04004u08002903306y0gb0j40p10fn0lf","0hq0jp0gr0jx02y0jh09704r10r1lc04y0dr0fy1mt00900903404n04204e04s03q02d00904m05106b0a203504c08v0hx0iz0p20fr0kp","0ku0ku___07k058___03h04919v26e03z0bm___1ga00000102p04203e03r03503a03y03j04704f05009502a03207g0fe0od0rs0hd0ob"],["Noto Nastaliq Urdu",700,1,1,"0it0j40j407d02b0jo04205v1go1e40a50eg0g41k500000502k04w04d04m04204502i00k05s06006u0ay02q04f0bb0jn0jb0pq0hd0ml","0ir0ir0ir0n803g0jg09706g19i14609h0gi0i81ik00800902s04q04a04i04u03k02e00906b06m0800cf03h05e0d00jy0j40ps0hr0mp","0ml0ml___071058___03h06e1ov1mu0af0eo___1cl00000102804503l03u03803k04503006706g0770cn02p0460az0oo0ph0rs0ij0qm"],["Noto Rashi Hebrew",300,1,1,"0gs0hd0gs09103h0k909902y0zs2n405c0960ac1lh00b00703l04503k04203f04g02401y02v03103k06101x02h04u0ab0j90r70fn0m0","0gc0ha0fd0e102w0jq08c03y0xs___04j0cs0ep1o500500a01t05803q04704b04h02l01203o04305108d02s03n0730ff0j80pw0ef0j8","0j40j4___082058______03212c2vo03s09a___1gs00000003c03m03603k03503103o04b03003603m06g01v02f05b09v0of0rs0fn0nq"],["Noto Rashi Hebrew",400,1,1,"0i80i80i807y02y0kl09104013u23405c0bj0ca1jn00a00803204j03s03l04804502901s03w04504u08a02e03806v0g80jp0r70gg0mc","0gq0hq0gq0l902y0ji09604p10n1nv05k0e20ft1l000900803704k03y04a04p03l02u00804l04w0670ac03604908q0hy0j20pv0fr0ko","0ku0ku___070058___08t04717v28v03z0bn___1ey00300302s03z03a03l03403603v03v04504b04y09602a03407c0f00oz0rs0hd0ob"],["Noto Rashi Hebrew",700,1,1,"0ix0j70ix0a202b0jl08m05x1gc1dr0ad0ec0gh1it00900902m04r04404e04m03a02m00y05r06006t0as02s04c0av0jp0ji0qd0hs0my","0ir0ir0ir0hm01z0jg08e06g18h14l08p0g60i11hq00700a02v04q04604g04t03f02q00806b06m07z0c903j05a0cs0jy0j20pv0hr0mp","0n50n5___06f04n___09006g1nq1kl09x0eg___1bs00200302b04403i03q03703g04503805x06h0770cm02p04a0aw0op0q20rs0j40qm"],["Noto Sans",300,0,1,"0hd0hd0hd05m0580kh09902o0t70rs01608i09w1kz00a00602v04a03n04b03p04n01w02102k02p03605202c02n04o0a40ij0r80g70ij","0gz0hz0gh0600400kj08m03v0tv___02d0br0dl1lz00500901m04z03x04j04n03v02701o03i03y04u08k03904507u0fd0j00qu0fz0iz","0hy0ij___06805s___06h02o0te0rs00008m___1fh00100302n03v03903z03k03403i03s02k02q03505002c02o04u0970jb0rs0fn0ku"],["Noto Sans",400,0,1,"0hy0hy0hy09j04n0ku09903u0v40rs03j0bo0cu1il00a00702c04p03r04c03r04j02901o03q03w04l08w03b03t07z0h60j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70mk05c0dz0fj1k900800802h04o03u04d05s03202k00m04a04j05n0b803y04l09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v20rs01c0bq___1dt00100402404a03d03z03i03804802z03s03y04k09p03d03v07s0gj0l20rs0f20ku"],["Noto Sans",700,0,1,"0jo0jo0jo07a0420kz0990670x90rs08k0gn0ht1f800800901x04u03z04d03y04g02f01e06306907t0f405206c0fl0mt0ka0rs0hy0ku","0iw0iw0iw06y03s0kg09006e0wo0lg0930hn0iv1f100700902504s04104d05u03b02e00k06506h09g0f805a06t0fu0mj0j70qj0h00ju","0j40j4___091058___07j0670x20rs03l0gp___19a00100401q04h03l04103h03g04l02e06306e08e0g105606k0f70r50nv0rs0g70ml"],["Noto Sans Adlam",400,0,1,"0hy0ij0hy09j0580ku09903v0ve0rs0310bj0cw1iq00a00702d04p03r04d03r04j02801o03q03x04l08w03b03s07y0h60j40rf0f20j4","0h00hy0h009c03s0jt09004k0uo0mu04x0dx0fg1kf00800802h04p03x04e05q03102j00m04b04m05o0az03z04p0a20hj0id0qk0f40iw","0i80ij___0a505i___06h03w0v20rs0290bq___1dz00100402404903d03z03j03804803003r03y04j09r03d03u07r0h40l40rs0f20ku"],["Noto Sans Adlam",700,0,1,"0jo0jo0jo07704n0kz0990650x50rs0810gp0hy1g000800901x04t03z04d03y04h02f01e06006807u0f205206b0fc0mx0ka0rs0hy0ku","0ix0ix0ix08h03s0kg09106f0w80lw08w0hm0ir1fs00700902404s04104d05t03c02e00k06506i09g0fa05c06u0fw0ls0j70qk0h10kt","0je0je___090058___0770640wn0rs03l0gr___1a600100401q04g03l04103h03g04l02e06306d08b0g005506k0f30rl0nu0rs0fn0ml"],["Noto Sans Adlam Unjoined",400,0,1,"0hy0ij0hy09j0580ku09903v0ve0rs0310bj0cw1iq00a00702d04p03r04d03r04j02801o03q03x04l08w03b03s07y0h60j40rf0f20j4","0h00hy0h009c03s0jt09004k0uo0mu04x0dx0fg1kf00800802h04p03x04e05q03102j00m04b04m05o0az03z04p0a20hj0id0qk0f40iw","0i80ij___0a505i___06h03w0v20rs0290bq___1dz00100402404903d03z03j03804803003r03y04j09r03d03u07r0h40l40rs0f20ku"],["Noto Sans Adlam Unjoined",700,0,1,"0jo0jo0jo07704n0kz0990650x50rs0810gp0hy1g000800901x04t03z04d03y04h02f01e06006807u0f205206b0fc0mx0ka0rs0hy0ku","0ix0ix0ix08h03s0kg09106f0w80lw08w0hm0ir1fs00700902404s04104d05t03c02e00k06506i09g0fa05c06u0fw0ls0j70qk0h10kt","0je0je___090058___0770640wn0rs03l0gr___1a600100401q04g03l04103h03g04l02e06306d08b0g005506k0f30rl0nu0rs0fn0ml"],["Noto Sans Anatolian Hieroglyphs",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Arabic",300,0,1,"0hd0hd0hd05m0580kh09902o0t70rs01608i09w1kz00a00602v04a03n04b03p04n01w02102k02p03605102c02n04o0a00ij0r80g70ij","0gz0hz0gh0600400kj08m03v0tv___02d0br0dl1lz00500901m04z03x04k04n03v02701o03i03y04u08l03904507u0fd0j00qv0fz0iz","0hy0ij___06805s___06h02o0te0rs00008m___1fh00100302n03v03903z03k03403i03s02k02q03505002c02o04u0970jb0rs0fn0ku"],["Noto Sans Arabic",400,0,1,"0hy0hy0hy09j04n0ku09903u0v40rs03j0bo0cu1il00a00702c04p03r04c03r04j02901o03q03w04l08w03b03t07z0h60j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70mk05c0dz0fj1k900800802h04o03u04d05s03202k00m04a04j05n0b703y04l09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1dt00100402404903d03z03i03804802z03s03y04k09p03d03v07s0gj0l20rs0f20ku"],["Noto Sans Arabic",700,0,1,"0jo0jo0jo0780420l10990650x20rs08k0gl0hq1f600800901x04u03z04d03y04h02f01e06106707v0f205206a0fd0mt0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006d0w60ko08w0hr0iz1er00700902404r04004d05v03b02d00k06506h09o0f905a06v0fz0m60j70qj0h00ju","0j40j4___092058___0750650wo0rs03l0gp___19e00100401q04h03l04103h03g04l02e06306d08f0g105506k0f30rl0nt0rs0fn0ml"],["Noto Sans Armenian",300,0,1,"0hd0hd0hd05m0580kh09902o0t70rs01608i09w1kz00a00602v04a03n04b03p04n01w02102k02p03605202c02n04o0a40ij0r80g70ij","0gz0hz0gh0600400kj08m03v0tv___02d0br0dl1lz00500901m04z03x04j04n03v02701o03i03y04u08k03904507u0fd0j00qu0fz0iz","0hy0ij___06805s___06h02o0te0rs00008m___1fh00100302n03v03903z03k03403i03s02k02q03505002c02o04u0970jb0rs0fn0ku"],["Noto Sans Armenian",400,0,1,"0hy0hy0hy09j04n0ku09903u0v40rs03j0bo0cu1il00a00702c04p03r04c03r04j02901o03q03w04l08w03b03t07z0h60j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70mk05c0dz0fj1k900800802h04o03u04d05s03202k00m04a04j05n0b803y04l09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v20rs01c0bq___1dt00100402404a03d03z03i03804802z03s03y04k09p03d03v07s0gj0l20rs0f20ku"],["Noto Sans Armenian",700,0,1,"0jo0jo0jo0780420l10990650x20rs08k0gl0hq1f600800901x04u03z04d03y04h02f01e06106707v0f205206a0fd0mt0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006d0w60ko08w0hr0iz1er00700902404r04004d05v03c02d00k06506h09o0f905a06v0fz0m60j70qj0h00ju","0j40j4___092058___0750650wo0rs03l0gp___19e00100401q04h03l04103h03g04l02e06306d08f0g105506k0f30rl0nt0rs0fn0ml"],["Noto Sans Avestan",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Balinese",400,0,1,"0hy0hy0hy09h0580ku09903v0vd0rs0210bp0cv1ih00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rg0f20j4","0gz0hx0gz08403s0js08z04i0ue0mr04t0dw0fp1k800800802h04o03w04d05s03102j00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0br___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gr0lg0rs0f20ku"],["Noto Sans Balinese",700,0,1,"0jo0jo0jo07804n0kz0990650x50rs08k0gs0hv1f100800901x04u03z04e03y04h02f01e06106807v0f205206b0fd0mk0ka0rs0hy0ku","0is0is0is06y03y0jh09806d0wy0lf0860i60ja1f900600a02a04z04d04o05303d02h00606206h09r0f205806v0fp0lg0j00pu0gt0js","0j40j4___093058___0750650wr0rs03l0gr___19c00100401q04g03l04103h03f04l02e06306d08c0g105506i0f30rl0ns0rs0fn0ml"],["Noto Sans Bamum",400,0,1,"0hy0hy0hy09h0580ku09903v0vd0rs0210bp0cv1ih00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rg0f20j4","0gz0hx0gz08403s0js08z04i0ue0mr04t0dw0fp1k800800802h04o03w04d05s03102j00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0br___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gr0lg0rs0f20ku"],["Noto Sans Bamum",700,0,1,"0jo0jo0jo0780420l00990650x50rs08k0gj0hu1fd00800901x04u03z04e03y04h02f01e06106807u0f505306b0fh0mi0ka0rs0hy0lf","0iw0iw0iw08603s0kg09006f0w60kz0990hm0j31er00700902404r04104d05v03c02d00k06506i09i0fa05b06y0g10m60j70qj0g20ju","0j40j4___093058___07j0650wq0rs03l0gs___19l00100401q04g03l04103h03g04l02e06306d08c0g005506k0f30rl0nv0rs0fn0ml"],["Noto Sans Bassa Vah",400,0,1,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1ha00a00702d04o03r04d03r04k02801o03q03x04l08w03b03s07u0h90j50rf0f20j4","0gz0hx0gz08b04q0js08z04j0uh0mu04x0dy0fl1it00800802h04o03x04d05q03202j00m04a04l05o0az03y04n09y0hm0j00qj0g10iv","0hy0hy___0a3058___06h03w0v20rs01c0br___1cr00100402504903d03z03i03804803003r03y04j09r03d03u07s0gn0lj0rs0f20ku"],["Noto Sans Bassa Vah",700,0,1,"0jo0jo0jo0780420l00990650x50rs0810gp0hq1dz00800901x04u03z04e03y04g02f01e06106807v0f205206b0fh0n00ka0rs0hy0ku","0ix0ix0ix07003s0kg09106f0w80kr08k0hl0j61dl00700902404r04004d05v03d02e00k06506i09h0fb05c06v0g00lx0j70qk0h10jv","0je0je___08y04n___0730650wr0rs03l0gs___18h00100401q04g03l04103h03g04l02e06306d08c0g105506l0f40rh0nv0rs0g70ml"],["Noto Sans Batak",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Bengali",300,0,1,"0hd0hy0h305l04x0kg09902r0tf0rs01608s0a71kx00a00602t04c03n04c03p04m01w01z02n02t03b05902f02r04x0al0ij0r80gs0ij","0hd0hu0gv06d03z0kd08k03x0tt___0310c50dx1m800500901k04z03w04j04q04c02j00w03j03z04v09d03b04607y0fg0iw0qn0fv0iu","0hy0ij___06905s___06h02s0to0rs00008t___1fb00100302l03x03903z03k03503k03p02o02t03905802f02s05109w0jp0rs0f20ku"],["Noto Sans Bengali",400,0,1,"0hy0hy0hy09j04n0ku09903u0v50rs03j0bp0cu1il00a00702c04p03r04c03r04j02901o03q03w04l08w03b03t07z0h60j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70mk05c0dz0fj1k900800802h04o03u04d05s03202k00m04a04j05n0b803y04l09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1dt00100402404903d03z03i03804802z03s03z04k09q03d03v07s0gj0l20rs0f20ku"],["Noto Sans Bengali",700,0,1,"0jo0jo0jo0740420ku09906g0xi0rs09m0h30i71es00800a01x04w04304g04204902j01506b06j08i0fn05806t0gq0oa0k90r70ij0ku","0is0is0is06z03y0jg09906o0wr0ld09t0if0jt1dx00600a02904z04d04p05203f02g00606f06v0am0fo05i0790ga0mq0j00pu0gt0js","0jo0jo___08u04n___07j06k0x60rs03l0hh___18c00100401p04f03m04103h03i04n02c06i06v09b0g905g0750gk0rm0oc0rs0g70n5"],["Noto Sans Bhaiksuki",400,0,0,"0hy0hy0hy09k0580ku09903v0vd0rs03j0bs0cu1j200a00702c04o03r04d03r04j02901o03q03x04l08v03b03t07w0ha0j50rg0f20j4","0hq0hq0hq07r03q0k608v04h0ug0mn06j0dv0fe1lj00800802h04o03w05i04n03202j00m04804j05l0b203x04m09t0h40i50q80fu0hq","0i80ij___0a405s___06h03w0v20rs01t0bq___1e900100402404903d04003j03804803003r03y04j09p03d03u07r0g80l30rs0f20ku"],["Noto Sans Brahmi",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Buginese",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Buhid",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Canadian Aboriginal",300,0,1,"0hd0hy0h305k0580ki09902n0t30rs01608g09u1kh00a00602v04903l04b03q04o01w02202k02p03605002c02n04m09o0ij0r80g70ij","0gz0hz0gz08f0400kj08m03x0tz___0280c60ds1lf00500901m04z03x04k04o03u02701o03m03z04t08s03a0460820fi0j00qv0fz0iz","0hy0ij___06805i___06h02o0tg0rs00008h___1f100100302n03u03903z03k03403i03t02l02p03505202c02o04u0920j70rs0fn0ku"],["Noto Sans Canadian Aboriginal",400,0,1,"0hy0hy0hy09f0580ku09903v0v80rs0210br0cu1i500a00702c04o03r04d03r04k02901o03q03w04l08v03b03t07w0ha0j50rg0f20j4","0gs0gs0gs08404o0k608v04g0u70mc05g0e30f81kf00800802h04o03v05i04m03302j00m04704i05l0at03x04l09s0hi0i40pm0fu0in","0hy0hy___0a505s___06h03v0v00rs00w0br___1dd00100402404903d03z03i03804803003r03y04j09r03d03v07s0gb0li0rs0f20ku"],["Noto Sans Canadian Aboriginal",700,0,1,"0jo0jo0jo07a0420l00990680xd0rs0930gk0hl1eg00800901x04u03z04e03y04h02f01e06406b07y0f805206f0fn0n00kb0rs0ij0ku","0is0is0is09a03y0jh09706f0x50kn07s0i40j41ep00600a02a04z04d04p05203d02h00606806l09x0f40590710fn0m50j00pu0hs0jr","0j40j4___092058___0780690x70rs03l0gs___18j00100401q04g03l04003h03g04l02e06606i08j0g505806o0fe0rl0nx0rs0fn0ml"],["Noto Sans Carian",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Caucasian Albanian",400,0,0,"0hy0hy0hy09h04x0ku09903v0va0rs0310bq0cu1i000a00702d04o03r04d03r04j02801o03q03x04l08w03b03t07v0h50j50rf0fn0j4","0hx0hx0hg07x03s0js08z04j0ul0ml06f0dv0fh1jr00800802h04o03w04d05t03102k00m04a04l05n0b603y04n09x0hm0ic0qi0g10iv","0i80ij___0a2058___06h03w0v00rs01c0br___1dd00100402504903d03z03j03804803003r03y04j09q03d03u07p0ge0l40rs0f20ku"],["Noto Sans Chakma",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Cham",300,0,1,"0hd0hd0hd05m0580kh09902o0t50rs01608h09w1kz00a00602v04a03n04b03p04n01w02102k02p03605002c02n04o0a40ij0r80g70ij","0gz0hz0gh05z0400kj08m03v0u1___02d0bp0dp1lz00500901m04y03x04k04n03v02701o03i03y04t08k03904407u0ff0iy0qu0fz0iz","0hy0ij___06805s___06h02o0td0rs00008m___1fh00100302n03v03903z03k03403i03s02k02p03505002c02o04u0970jb0rs0fn0ku"],["Noto Sans Cham",400,0,1,"0hy0hy0hy09j04n0ku09903v0v70rs03j0bp0ct1il00a00702c04p03r04c03r04k02901o03q03w04l08w03b03t07y0h70j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70ml05c0e00fi1k900800802h04o03u04d05t03202k00m04a04j05o0b503y04m09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1dt00100402404903d03z03j03804802z03s03y04k09q03d03v07r0gh0l20rs0f20ku"],["Noto Sans Cham",700,0,1,"0jo0jo0jo07704n0l00990680x90rs08k0gn0hp1ey00800a01x04t03z04d03y04h02f01e06306b07x0f705206e0fq0n30kb0rs0ij0lf","0is0is0is06y03y0jh09706g0x50l50930i50je1f000600a02a04z04d04p05203d02h00606806l0a20f70590730fo0lm0j00pu0gt0jr","0j40j4___093058___07j0690x40rs03l0gs___18z00100401q04g03l04103h03g04l02e06606i08i0g505806n0fg0rl0nw0rs0g70ml"],["Noto Sans Cherokee",300,0,1,"0hd0hy0hd05m0580kh09902n0t40rs01608e09v1kw00a00702v04803n04b03q04m01w02102k02p03605002c02n04l09q0ij0r90g70ij","0gy0hy0gy06m0400ki08m03v0tm___01r0c70di1lz00500901m04y03x04i04o03v02701p03j03x04s08m03904507t0fk0iy0qu0fy0hy","0i80ij___06605s______02o0tg0rs00008h___1fj00000002n03v03a04003l03403j03s02l02q03505002c02o04v09j0jr0rs0fn0ku"],["Noto Sans Cherokee",400,0,1,"0hy0hy0hy09h0580ku09903v0v60rs0210bp0cu1ih00a00702d04p03q04c03r04k02801o03q03w04l08v03b03t07y0gv0j60rg0f20j4","0gz0hx0gz08403s0js08z04h0u90mp04t0du0fo1k700800802h04n03v04d05s03202k00m04a04j05o0b403y04m09y0hf0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03v07q0gr0lg0rs0f20ku"],["Noto Sans Cherokee",700,0,1,"0jo0jo0jo07704c0l00990680x90rs0930go0ht1en00800901x04u03z04d03y04h02f01e06306b07x0f605206f0fn0nb0kb0rs0ij0ku","0iw0iw0iw06t03s0kg09006e0wl0kv0930hh0is1eh00700902404r04104e05u03b02e00k06606k09j0fc05b0710g30mj0j70qk0hy0ju","0j40j4___092058___0720690x50rs03l0gw___18s00100401q04g03l04103h03g04l02e06606h08i0g505806n0ff0rl0ny0rs0fn0ml"],["Noto Sans Chorasmian",400,0,0,"0hy0hy0hy09h04x0ku09903v0va0rs0310bq0cu1i000a00702d04o03r04d03r04j02801o03q03x04l08w03b03t07v0h50j50rf0fn0j4","0hx0hx0hg07x03s0js08z04j0ul0ml06f0dv0fh1jr00800802h04o03w04d05t03102k00m04a04l05n0b603y04n09x0hm0ic0qi0g10iv","0i80ij___0a2058___06h03w0v00rs01c0br___1dd00100402504903d03z03j03804803003r03y04j09q03d03u07p0ge0l40rs0f20ku"],["Noto Sans Coptic",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Cuneiform",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Cypriot",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Cypro Minoan",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Deseret",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Devanagari",300,0,1,"0gs0gs0hd05w0580kh09902o0t20rs01608k09w1lb00a00602v04b03n04b03p04n01v02002k02p03605202c02o04q0a40ij0r80g70ij","0gz0gz0gh06r0400kj08m03v0tf___02b0c30dm1m700500901n04z03x04j04m03v02801o03k03y04u08n03a0450800fk0j10qu0fz0hz","0hd0ij___06j05s___06h02p0tf0rs00008l___1fq00100302n03v03903z03k03403i03r02k02q03505102c02o04v09g0j70rs0fn0ku"],["Noto Sans Devanagari",400,0,1,"0hd0hd0hy09o04n0ku09903u0ux0rs03j0bx0ct1iy00a00702d04p03r04d03r04k02801n03q03w04k08u03b03v0830hc0j40rf0f20j4","0gz0gz0gz08c03s0js08y04h0u90mm05c0dx0fj1kj00800802g04o03w04d05s03202j00m04a04j05m0b603y04n09x0hi0ic0qi0g10iu","0hd0hd___0af05i___06h03w0v20rs01c0bv___1e300100402404903d04003i03804802z03s03y04j09d03d03w07y0gy0l20rs0f20ku"],["Noto Sans Devanagari",700,0,1,"0jo0j40jo07804n0l00990680x90rs08k0gm0hq1f400800a01x04u03z04d03y04h02f01e06306a07x0f105106f0ft0nl0kb0rs0hy0ku","0is0is0is07003y0jh09706f0x50l50930i30jg1f500600a02a04z04d04p05203d02g00606806l09z0ez0590710fz0m30j00pu0gt0jr","0it0it___096058___07j0690x50rs03l0gv___19400100401q04g03l04103h03g04l02e06606i08l0g505806o0fh0rm0nx0rs0fn0ml"],["Noto Sans Display",300,0,1,"0gs0gs0g705i04n0kh09902n0su0rs01608t0a81oe00a00702t04a03p04d03q04m01w01z02k02o03404x02c02q04z0b60ij0r80fn0hd","0fz0gh0fz08w0400kj08m03x0tx___02f0cg0e11p700400a01m04y03z04l04o03t02601n03k03z04r09103b04908i0gc0j00qv0fz0hz","0gs0hd___06a058___06h02n0sx0rs00008w___1ik00100402l03u03b03z03k03603k03p02k02p03304v02c02p0520a70jd0rs0eh0jo"],["Noto Sans Display",400,0,1,"0hd0hd0h309a04n0ku09903t0un0rs0100bu0d71lw00a00702c04o03t04d03r04i02801n03o03u04g08j03b03v08n0hx0j70rg0eh0ij","0g10gz0g108w03s0js08z04f0tu0mv03a0e40fu1nj00800802g04n03x04e05s03102j00m04804i05k0at03y04p0a80ij0j00qj0f30hx","0h30hd___0a0058___06h03t0ub0rs0000c4___1gr00100402404903e04003j03904702y03q03w04h09b03d03x0880ik0lk0rs0dw0jo"],["Noto Sans Display",700,0,1,"0j40j40j40710420l009906j0z50tx05c0hc0ih1hh00800901x04s04304g03y04f02e01d06g06l07y0eo0540790i00pr0kg0rs0hd0ku","0hz0hz0ix09f02u0kf09106p0xx0l90780i30jo1gc00700902304p04404g05t03b02c00k06j06s0a10ex05d0810hw0nk0j80qk0g30jv","0ij0ij___08s04n___07606k0yx0rs00w0hn___1bq00100401q04e03n04103h03k04i02c06i06q08h0fa05607c0hv0rm0oh0rs0f20lf"],["Noto Sans Duployan",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Duployan",700,0,0,"0jo0jo0jo0780420l10990650x50rs08k0gk0hq1f700800901x04u03z04e03y04h02f01e06106807v0f205206b0ff0ms0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006f0wb0kn08w0hq0j31eq00700902304r04004d05v03c02e00k06506i09k0fd05b06v0g00m60j70qj0h00ju","0j40j4___092058___0750650ws0rs03l0gp___19e00100401q04g03l04103h03g04l02e06306d08d0g105506k0f30rl0nu0rs0fn0ml"],["Noto Sans Egyptian Hieroglyphs",400,0,0,"0hy0hy0hy09h0580ku09903v0vb0rs0210bq0cu1iv00a00702d04o03r04d03r04j02801o03q03x04l08v03b03t07q0hb0j50rg0f20j4","0gm0hj0gm08b03p0jc08s04e0ud0my04a0du0fk1lx00800802h04o04x04g04n03102j00n04604g05i0as03v04k09k0h30hx0py0fo0hj","0hy0hy___0a8058___06h03w0v20rs0290br___1e200100402404803c04003j03804903003r03y04j09s03d03u07p0gr0lh0rs0f20ku"],["Noto Sans Elbasan",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Elymaic",400,0,0,"0hy0hy0hy09h04c0ku09903v0vb0rs02j0bi0cu1gk00a00702d04p03q04c03r04k02801p03q03x04l08v03b03t07p0h90j60rh0f20j4","0gz0hx0gz08003s0ke08z04j0ug0m904t0e40fe1i600800802h04o03w04d05r03202k00m04a04l05o0b703y04o09u0hb0id0qj0g10iv","0hy0hy___0a7058___06h03v0uz0rs00g0br___1c400100402404a03d03z03i03804803003r03y04j09s03d03u07u0gb0lf0rs0f20ku"],["Noto Sans Ethiopic",300,0,1,"0hd0hy0h305m0580kh09902n0t20rs01608h09t1kv00a00602w04a03m04b03q04n01v02102k02p03605102c02o04n09m0i50r70g70ij","0gz0hz0gz07d0400kj08m03x0tw___02a0c80dn1lu00500901m04z03x04j04o03t02801p03m03z04v09403a0460850fl0iy0qv0fz0hz","0hy0ij___06905s___06h02p0ti0rs00008j___1fg00100302n03v03903z03k03403h03t02k02p03505102c02o04u0980j80rs0f20ku"],["Noto Sans Ethiopic",400,0,1,"0hy0hy0hy09h0580ku09903u0v50rs0210bo0cv1ih00a00702d04p03q04c03r04k02801o03q03w04l08v03b03t07y0gv0j60rg0f20j4","0gz0hx0gz08403s0jr09004h0u90mp04t0dw0fo1k600800802h04o03w04d05s03102k00m04a04k05n0b803y04n09y0hf0id0qj0g10iv","0hy0hy___0a705i___06h03v0uz0rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03v07r0gt0lg0rs0f20ku"],["Noto Sans Ethiopic",700,0,1,"0jo0jo0jo07804n0kz0990650x20rs08k0gr0hu1f100800901x04u03z04e03y04h02f01e06006707u0f205206b0fd0mi0ka0rs0hy0ku","0is0is0is06y03y0jh09806c0wy0lf0860i60j81fe00600a02a04z04d04o05203d02h00606206g09q0f105806v0fl0lk0j00pu0gt0js","0j40j4___093058___0750650wo0rs03l0gr___19c00100401q04g03l04103h03g04l02e06306d08f0g105506i0f30rl0ns0rs0fn0ml"],["Noto Sans Georgian",300,0,1,"0hd0hd0hd05m0580kh09902o0t70rs01608h09w1kz00a00602v04a03n04b03p04n01w02102k02p03605202c02n04o0a40ij0r80g70ij","0gz0hz0gh0600400kj08m03v0tv___02d0br0dl1lz00500901m04z03x04j04n03v02701o03j03y04u08k03904407u0fd0j00qu0fz0iz","0hy0ij___06805s___06h02o0te0rs00008m___1fh00100302n03v03903z03k03403i03s02k02q03505002c02o04u0970jb0rs0fn0ku"],["Noto Sans Georgian",400,0,1,"0hy0hy0hy09j04n0ku09903u0v50rs03j0bp0cu1il00a00702c04p03r04c03r04j02901o03q03w04l08w03b03t07z0h60j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70mk05c0dz0fj1k900800802h04o03u04d05s03202k00m04a04j05n0b803y04l09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1dt00100402404903d03z03i03804802z03s03z04k09q03d03v07s0gj0l20rs0f20ku"],["Noto Sans Georgian",700,0,1,"0jo0jo0jo07704n0l00990680x90rs08k0gn0hq1ey00800a01x04u03z04d03y04h02f01e06306b07x0f705206e0fp0n50kb0rs0ij0lf","0is0is0is06y03y0jh09906f0x30l50930i30jh1ey00600a02a05004d04p05203d02h00606806l0a20f60590700fo0ln0j00pu0gt0js","0j40j4___093058___07j0690x40rs03l0gs___18z00100401q04g03l04103h03g04l02e06606i08j0g505806n0fg0rl0nx0rs0g70ml"],["Noto Sans Glagolitic",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Gothic",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Grantha",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Gujarati",300,0,1,"0hd0hd0hd05m0580kh09902o0t70rs01608i09w1kz00a00602v04a03n04b03p04n01w02102k02p03605202c02n04o0a40ij0r80g70ij","0gz0hz0gh0600400kj08m03v0tv___02d0br0dl1lz00500901m04z03x04j04n03v02701o03i03y04u08k03904507u0fd0j00qu0fz0iz","0hy0ij___06805s___06h02o0te0rs00008m___1fh00100302n03v03903z03k03403i03s02k02q03505002c02o04u0970jb0rs0fn0ku"],["Noto Sans Gujarati",400,0,1,"0hy0hy0hy09j04n0ku09903u0v40rs03j0bo0cu1il00a00702c04p03r04c03r04j02901o03q03w04l08w03b03t07z0h60j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70mk05c0dz0fj1k900800802h04o03u04d05s03202k00m04a04j05n0b803y04l09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v20rs01c0bq___1dt00100402404a03d03z03i03804802z03s03y04k09p03d03v07s0gj0l20rs0f20ku"],["Noto Sans Gujarati",700,0,1,"0jo0jo0jo0780420l10990650x20rs08k0gl0hq1f600800901x04u03z04d03y04h02f01e06106707v0f205206a0fd0mt0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006d0w60ko08w0hr0iz1er00700902404r04004d05v03c02d00k06506h09o0f905a06v0fz0m60j70qj0h00ju","0j40j4___092058___0750650wo0rs03l0gp___19e00100401q04h03l04103h03g04l02e06306d08f0g105506k0f30rl0nt0rs0fn0ml"],["Noto Sans Gunjala Gondi",400,0,1,"0hy0hy0hy09d0580ku09903v0vc0rs02j0bh0cu1ii00a00702d04o03r04c03r04k02901o03q03x04l08w03b03t07x0hg0j50rf0fn0j4","0gs0hq0gs08d03q0jk08w04g0u70mr05c0dv0fu1ku00800802i04o03w05g04m03302k00m04804i05k0b103w04m09m0hi0is0q80fv0hq","0i80ij___0a4058___06h03w0v50rs0290br___1dp00100402504903d03z03j03804803003r03y04j09r03d03u07p0gr0l40rs0f20ku"],["Noto Sans Gunjala Gondi",700,0,1,"0jo0jo0jo0750420l00990660x60rs08k0gh0hu1fb00800901x04t03z04d03y04g02f01e06106807v0f305206b0fd0n30ka0rs0hy0ku","0is0is0ht0ab03y0jh09806e0ww0lb06t0ho0jm1fg00600a02904z04c04p05303e02h00606306i09t0f305a06x0fv0lf0j00pu0gt0js","0j40j4___094058___0710650wr0rs03l0gq___19j00100401q04g03l04103h03g04l02e06306d08b0g005506l0f90rl0nu0rs0fn0ml"],["Noto Sans Gurmukhi",300,0,1,"0gs0gs0hd05w0580kh09902o0t20rs01608k09w1lb00a00602v04b03n04b03p04n01v02002k02p03605202c02o04q0a40ij0r80g70ij","0gz0gz0gh06r0400kj08m03v0tf___02b0c30dm1m700500901n04z03x04j04n03v02801o03k03y04u08n03a0450800fk0j10qu0fz0hz","0hd0ij___06j05s___06h02p0tf0rs00008l___1fq00100302n03v03903z03k03403i03r02k02q03505102c02o04v09k0j70rs0fn0ku"],["Noto Sans Gurmukhi",400,0,1,"0hd0hd0hy09o04n0ku09903u0ux0rs03j0bx0ct1iy00a00702d04p03r04d03r04k02901n03q03w04k08u03b03u0830hd0j40rf0f20j4","0gz0gz0gz08c03s0js08y04h0u90mm05c0dx0fj1kj00800802g04p03w04c05s03202j00m04a04j05m0b603y04n09x0hi0ic0qi0g10iu","0hd0hd___0af05i___06h03w0v20rs01c0bv___1e300100402404a03d04003i03804802z03s03y04j09d03d03w07y0gy0l20rs0f20ku"],["Noto Sans Gurmukhi",700,0,1,"0jo0jo0jo07a04c0l10990650x30rs08k0gl0hq1fg00800901x04t03z04e03y04h02f01e06106707u0ey05206b0fl0n30ka0rs0hy0ku","0iw0iw0iw0a903s0kf09006d0w80kt09n0hr0iz1eu00700902404r04104e05v03b02d00k06506h09m0f505a06z0fz0m50j60qj0h00ju","0ij0ij___097058___0750650wp0rs03l0gp___19o00100401q04h03l04103h03g04l02e06306d08e0g005506n0f50rl0ns0rs0fn0ml"],["Noto Sans HK",300,0,1,"0fj0fj0f906k04m0in08n02g0rr0rs02a08w0a51sy00900803804j04704n04703h02v00902d02h02x04p02602k04i09l0gq0or0ee0gp","0ff0ff0ff07i03v0iy08903r0tj0rs01p0cg0e61tc00400b01t05304604s05303a02q00g03g03s04n08s03903y0810es0he0ov0eg0hc","0hy0ij___05t05s______02n0rz0rs00008m___1im00000002n03x03903x03m03603o03m02l02o03304q02b02t04y0a00it0rs0fn0j4"],["Noto Sans HK",400,0,1,"0g30g30g307f04m0iz08m03j0ua0rs0250c10d91q900800902n04w04804m04a03h02t00e03h03k04707m03103l0780fk0hg0ox0ey0h9","0ff0ff0ff07a03v0jl07j04b0tp0rs0130e90g41qc00300b01f05a04804r05203k02p00g04504d05j0ab03u04l09w0ha0i60oz0eg0hc","0i50i5___0a005a______03u0ua0rs0000ce___1gn00000002604f03g03e04b03b03l03603s03u04g08w03b04007z0hy0l60rs0em0kh"],["Noto Sans HK",700,0,1,"0hs0hs0h706m0410ji08705e0wi0rs04a0fz0gu1lx00500b02705304b04p04z02z02p00g05b05g06u0di04h05k0db0jz0im0p90gn0ix","0hr0hr0hr07003y0jh08905z0wh0om02s0gx0j11jb00400b02e05004f04s05303c02800605p06008e0dx0500670em0kq0i70p00gs0ir","0j30j3___08504n___07e05u0w10rs0000g7___1bt00100301s04j03k04103i03e04j02e05p05w07e0ff04x0670dx0qy0nf0rs0gs0lf"],["Noto Sans Hanifi Rohingya",400,0,1,"0hy0hy0hy09j04n0ku09903v0vb0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mk05c0e10fp1ka00800802h04o03u04d05s03202k00m04a04k05n0b503y04m09q0hi0iz0qi0g10iv","0i80ij___0a505i___06h03w0v50rs01c0bq___1ds00100402404903d03z03j03804803003s03y04k09s03d03v07r0gh0l20rs0f20ku"],["Noto Sans Hanifi Rohingya",700,0,1,"0jo0jo0jo0770420l00990660x60rs08k0gj0hu1e100800901x04u03z04e03y04h02f01e06106807w0f305206b0fh0mg0kb0rs0hy0ku","0is0is0ht08903y0jh09806d0wx0li06j0hu0iz1e300600a02a04z04d04p05303d02h00606306i09s0f005806w0fr0mb0iz0pu0gt0js","0j40j4___09304n___0700650wr0rs03l0gr___18l00100401q04g03l04103h03g04l02e06306d08c0g105506k0f20rl0nv0rs0g70ml"],["Noto Sans Hanunoo",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Hatran",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Hebrew",300,0,1,"0hy0hy0hd05d0580ki09902s0tm0rs01608t0a91kv00a00702t04c03o04c03q04m01w01z02p02u03c05b02d02r04v0ao0il0r90gs0ij","0gw0gw0gw07403z0kf08l0400ul___01p0cm0dw1m400500901l05003x04j04n04b01r01o03n04204w09903a0460830fx0iy0qq0fw0hw","0hy0ij___06905s___06h02t0tu0rs00008u___1fg00100302l03x03a04003k03603j03o02p02u03a05602d02r0550a20jd0rs0f20ku"],["Noto Sans Hebrew",400,0,1,"0hy0hy0i809d04n0ku09903t0vh0rs0210bp0cl1j300a00702d04n03s04b03r04k02701p03p03u04h08c03603p07k0h30j40rg0fn0j4","0gz0gz0gz07x03s0ke08z04f0ue0mr05g0e00fa1km00800802h04o03w04b05p03502l00n04a04i05n0as03u04l09t0h80j10qj0g10iv","0i80ij___0a5058___06h03u0vm0rs00w0bq___1ed00100302504803e04003k03804503003q03w04i09703703s07m0gh0l30rs0eh0lf"],["Noto Sans Hebrew",700,0,1,"0jo0je0jo0720420ku08z0630xm0rs08k0gj0he1fs00700a01y04v04304g04104a02j01505z06507s0es04x06b0fa0ma0jx0r70hy0ku","0iw0iw0iw06y03s0kg09006d0wv0ln0860hk0iu1er00700902404q04004c05u03f02e00k06506i09f0f705806t0fq0m50j70qj0hy0ju","0j40j4___09604x___07j0670xc0rs03l0gt___19e00100401q04g03l04003h03g04k02e06406f08g0g305306l0f90ri0nw0rs0fn0ml"],["Noto Sans Imperial Aramaic",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Indic Siyaq Numbers",400,0,0,"0hy0ij0hn09i0580ku09903v0ve0rs0310bh0cu1kp00a00702d04o03r04c03r04k02801o03q03w04l08v03b03t07o0hf0j60rg0f20j4","0h20hj0gl08303p0jc08r04f0uk0mw05w0e50fg1nu00800802h04m04w04g04p03102k00n04704h05j0at03v04k09n0h40il0py0fo0ig","0i80ij___0a505s___06h03w0v50rs01t0br___1fh00100402504903d03z03j03804803003r03y04j09r03d03u07r0h40l40rs0f20ku"],["Noto Sans Inscriptional Pahlavi",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Inscriptional Parthian",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans JP",300,0,1,"0fj0fj0f906k04m0in08n02g0rr0rs02a08w0a51sy00900803804j04704n04703h02v00902d02h02x04p02602k04i09l0gq0or0ee0gp","0ff0ff0ff07i03v0iy08903r0tj0rs01p0cg0e61tc00400b01t05304604s05303a02q00g03g03s04n08s03903y0810es0he0ov0eg0hc","0hy0ij___05t05s______02n0rz0rs00008m___1im00000002n03x03903x03m03603o03m02l02o03304q02b02t04y0a00it0rs0fn0j4"],["Noto Sans JP",400,0,1,"0g30g30g307f04m0iz08m03j0ua0rs0250c10d91q900800902n04w04804m04a03h02t00e03h03k04707m03103l0780fk0hg0ox0ey0h9","0ff0ff0ff07a03v0jl07j04b0tp0rs0130e90g41qc00300b01f05a04804r05203k02p00g04504d05j0ab03u04l09w0ha0i60oz0eg0hc","0i50i5___0a005a______03u0ua0rs0000ce___1gn00000002604f03g03e04b03b03l03603s03u04g08w03b04007z0hy0l60rs0em0kh"],["Noto Sans JP",700,0,1,"0hs0hs0h706m0410ji08705e0wi0rs04a0fz0gu1lx00500b02705304b04p04z02z02p00g05b05g06u0di04h05k0db0jz0im0p90gn0ix","0hr0hr0hr07003y0jh08905z0wh0om02s0gx0j11jb00400b02e05004f04s05303c02800605p06008e0dx0500670em0kq0i70p00gs0ir","0j30j3___08504n___07e05u0w10rs0000g7___1bt00100301s04j03k04103i03e04j02e05p05w07e0ff04x0670dx0qy0nf0rs0gs0lf"],["Noto Sans Javanese",400,0,1,"0hy0ij0hy09m0580kx09b03x0vh0rs04k0bx0cv1hq00a00702d04o03r04c03r04p02301o03s03z04o08s03903u07w0he0jd0rs0f20jo","0hx0hx0gz07z03s0jr08z04i0ue0mk05c0e10fp1ka00800802h04o03u04d05s03202k00m04a04k05n0b503y04m09q0hi0iz0qi0g10iv","0i80ij___0a605s___06l03x0vd0rs0290bv___1d500100402404a03f03z03l03803x03703t04004l09x03c03v07v0gs0ll0rs0f20lf"],["Noto Sans Javanese",700,0,1,"0jo0jo0jo07904n0lf09b0680xo0rs06y0gu0hk1e600800901x04u03z04c03x04k02g01c06406b07v0fd05006g0fk0mn0kj0rs0hy0lf","0iw0iw0iw09b03s0kf09006f0wa0kn08w0hq0j31eq00700902304r04004d05v03c02d00k06506i09k0fb05b06v0fz0m50j70qj0h00ju","0jo0jo___090058___07j0680x50rs03l0gx___18t00100401q04h03l03y03j03f04h02i06606g08h0g805706k0f70rr0o00rs0g70ml"],["Noto Sans KR",300,0,1,"0fj0fj0f906k04m0in08n02g0rr0rs02a08w0a51sy00900803804j04704n04703h02v00902d02h02x04p02602k04i09l0gq0or0ee0gp","0ff0ff0ff07i03v0iy08903r0tj0rs01p0cg0e61tc00400b01t05304604s05303a02q00g03g03s04n08s03903y0810es0he0ov0eg0hc","0hy0ij___05t05s______02n0rz0rs00008m___1im00000002n03x03903x03m03603o03m02l02o03304q02b02t04y0a00it0rs0fn0j4"],["Noto Sans KR",400,0,1,"0g30g30g307f04m0iz08m03j0ua0rs0250c10d91q900800902n04w04804m04a03h02t00e03h03k04707m03103l0780fk0hg0ox0ey0h9","0ff0ff0ff07a03v0jl07j04b0tp0rs0130e90g41qc00300b01f05a04804r05203k02p00g04504d05j0ab03u04l09w0ha0i60oz0eg0hc","0i50i5___0a005a______03u0ua0rs0000ce___1gn00000002604f03g03e04b03b03l03603s03u04g08w03b04007z0hy0l60rs0em0kh"],["Noto Sans KR",700,0,1,"0hs0hs0h706m0410ji08705e0wi0rs04a0fz0gu1lx00500b02705304b04p04z02z02p00g05b05g06u0di04h05k0db0jz0im0p90gn0ix","0hr0hr0hr07003y0jh08905z0wh0om02s0gx0j11jb00400b02e05004f04s05303c02800605p06008e0dx0500670em0kq0i70p00gs0ir","0j30j3___08504n___07e05u0w10rs0000g7___1bt00100301s04j03k04103i03e04j02e05p05w07e0ff04x0670dx0qy0nf0rs0gs0lf"],["Noto Sans Kaithi",400,0,0,"0hy0hy0hy09j0580ku09903v0vd0rs02j0bs0cw1ig00a00702d04o03r04d03q04j02901o03q03x04l08v03b03t07x0h70j50rg0f20j4","0gz0hx0gz08j03s0js08y04i0uh0mt05g0dz0fr1k700800802h04p03w04d05q03202k00m04904k05n0b603y04m09x0hj0j00qj0g10hx","0hy0hy___0a905s___06h03w0v60rs0290bs___1dq00100402404903d03z03i03804803003r03y04j09q03d03u07s0gx0lg0rs0f20lf"],["Noto Sans Kannada",300,0,1,"0hd0hy0h305n0580kh09902o0t70rs01608k09v1ki00a00702x04a03o04d03o04n02301o02k02p03705102c02n04n09w0i80qp0g70ij","0ge0hd0ge07r03v0ju08c03u0tb___01o0cg0dw1ni00400901o04z03y04k04n04a02m00s03k03v04r09503804307x0fc0id0pv0ff0hd","0i80ij___06605s______02p0ti0rs00008i___1f400000002o03w03b04103l03403p03j02l02q03505002c02o04u0960jc0rs0f20ku"],["Noto Sans Kannada",400,0,1,"0hy0hy0hy09f04n0ku09903v0v70rs02j0bq0cv1i700a00702e04p03t04f03r04k02d01e03q03w04l09103b03t07y0h50j40qp0f20j4","0hq0hq0hq09903y0jj09404k0u50mz03c0eh0fp1ka00700902m04t04504m05103b02p00504b04m0600bm04204r0a40hm0i70pr0fr0iq","0hy0hy___0a7058___06h03v0ux0rs01t0br___1di00100402504903d04003i03804d02t03r03y04k09s03d03u07n0gv0l20rs0f20ku"],["Noto Sans Kannada",700,0,1,"0hy0ij0hy09004n0ku09903w0t30rs02j0e60cv1hz00900602904s03s04f03q04j02l01b03q0400600at03d04u09b0i00j50qp0fn0jo","0hr0hr0gr08s03y0ji09504j0sy0m803a0fx0fk1k300700802i04v04504m04z03j02m00404a04o06u0cv04205i0am0i70i70p40es0iq","0j40j4___09w058___06h03z0ti0rs01t0cc___1d700100302204d03e04103i03b04f02n03r04005y0c803d04u08w0ir0l40rs0f20ku"],["Noto Sans Kawi",400,0,1,"0hy0ij0hy09m0580kx09b03x0vh0rs0420bu0d01im00a00702d04p03s04c03r04p02301o03s03z04o08s03903u0810he0jc0rs0f20jo","0gz0hx0gz08603s0js08z04i0ui0mq04t0dz0fp1l900800802h04n03w04d05r03202k00m04a04k05o0b503x04m09v0h90id0qj0g10iv","0ij0ij___0a005s___06l03x0vd0rs0290bv___1dw00100402404a03e03z03l03803x03703t04004l09x03c03w07s0gl0lo0rs0f20lf"],["Noto Sans Kawi",700,0,1,"0jo0jo0jz07904n0lf09b0680xo0rs06y0gq0hn1ea00900901x04u03z04c03w04k02g01c06406b07v0fd05006f0fl0mu0ki0rs0hy0lf","0is0is0ht0ab03y0jh09806e0ww0lb06t0ho0jm1fg00600a02904z04c04p05303e02h00606306i09t0f305a06x0fv0lf0j00pu0gt0js","0jo0jo___090058___07j0680x60rs03l0gy___18v00100401q04g03k03z03k03f04h02i06606h08h0g905706n0fa0rr0oc0rs0g70ml"],["Noto Sans Kayah Li",400,0,1,"0hy0hy0hy09j04n0ku09903v0vb0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mk05c0e10fp1ka00800802h04o03u04d05s03202k00m04a04k05n0b503y04m09q0hi0iz0qi0g10iv","0i80ij___0a505i___06h03w0v50rs01c0bq___1ds00100402404903d03z03j03804803003s03y04k09s03d03v07r0gh0l20rs0f20ku"],["Noto Sans Kayah Li",700,0,1,"0jo0jo0jo0780420l10990650x60rs08k0gk0hq1f700800901x04u03z04e03y04h02f01e06106807v0f205206b0fe0mr0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006f0wa0kn08w0hq0j31eq00700902304r04004d05v03c02d00k06506i09k0fb05b06v0fz0m50j70qj0h00ju","0j40j4___092058___0750650ws0rs03l0gp___19e00100401q04g03l04103h03g04l02e06306d08d0g105506k0f30rl0nt0rs0fn0ml"],["Noto Sans Kharoshthi",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Khmer",300,0,1,"0hd0hd0hd05m0580kh09902o0t70rs01608h09w1kz00a00602v04a03n04b03p04n01w02102k02p03605202c02n04o0a40ij0r80g70ij","0gz0hz0gh0600400kj08m03v0tv___02d0br0dl1lz00500901m04z03x04j04n03v02701o03j03y04u08k03904407u0fd0j00qu0fz0iz","0hy0ij___06805s___06h02o0te0rs00008m___1fh00100302n03v03903z03k03403i03s02k02q03505002c02o04u0970jb0rs0fn0ku"],["Noto Sans Khmer",400,0,1,"0hy0hy0hy09j04n0ku09903u0v50rs03j0bp0cu1il00a00702c04p03r04c03r04j02901o03q03w04l08w03b03t07z0h60j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70mk05c0dz0fj1k900800802h04o03u04d05s03202k00m04a04j05n0b803y04l09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1dt00100402404903d03z03i03804802z03s03z04k09q03d03v07s0gj0l20rs0f20ku"],["Noto Sans Khmer",700,0,1,"0jo0jo0jo07704n0l00990680x90rs08k0gn0hq1ey00800a01x04u03z04d03y04h02f01e06306b07x0f705206e0fp0n50kb0rs0ij0lf","0is0is0is06y03y0jh09906f0x30l50930i30jh1ey00600a02a05004d04p05203d02h00606806l0a20f60590700fo0ln0j00pu0gt0js","0j40j4___093058___07j0690x40rs03l0gs___18z00100401q04g03l04103h03g04l02e06606i08j0g505806n0fg0rl0nx0rs0g70ml"],["Noto Sans Khojki",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Khudawadi",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Lao",300,0,1,"0hd0hd0hd05m0580kh09902o0t70rs01608h09w1kz00a00602v04a03n04b03p04n01w02102k02p03605202c02n04o0a40ij0r80g70ij","0gz0hz0gh0600400kj08m03v0tv___02d0br0dl1lz00500901m04z03x04j04n03v02701o03j03y04u08k03904407u0fd0j00qu0fz0iz","0hy0ij___06805s___06h02o0te0rs00008m___1fh00100302n03v03903z03k03403i03s02k02q03505002c02o04u0970jb0rs0fn0ku"],["Noto Sans Lao",400,0,1,"0hy0hy0hy09j04n0ku09903u0v50rs03j0bp0cu1il00a00702c04p03r04c03r04j02901o03q03w04l08w03b03t07z0h60j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70mk05c0dz0fj1k900800802h04o03u04d05s03202k00m04a04j05n0b803y04l09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1dt00100402404903d03z03i03804802z03s03z04k09q03d03v07s0gj0l20rs0f20ku"],["Noto Sans Lao",700,0,1,"0jo0jo0jo07704n0l00990680x90rs08k0gn0hq1ey00800a01x04u03z04d03y04h02f01e06306b07x0f705206e0fp0n50kb0rs0ij0lf","0is0is0is06y03y0jh09906f0x30l50930i30jh1ey00600a02a05004d04p05203d02h00606806l0a20f60590700fo0ln0j00pu0gt0js","0j40j4___093058___07j0690x40rs03l0gs___18z00100401q04g03l04103h03g04l02e06606i08j0g505806n0fg0rl0nx0rs0g70ml"],["Noto Sans Lao Looped",300,0,1,"0hd0hd0hd05j0580kg09902n0t40rs01608e09v1kv00a00602w04a03m04b03p04o01w02102k02p03605202c02n04o09n0ij0r80g70ij","0gy0hy0gy06s0400ki08m03w0tv___0310bx0dn1lz00500901l05003x04j04n03v02701o03i03y04t08k03904507y0ff0iz0qt0fy0iy","0hy0ij___06805s___06h02p0tm0rs00008k___1fe00100302n03u03903z03k03303i03s02k02q03505102c02o04u0920j80rs0f20ku"],["Noto Sans Lao Looped",400,0,1,"0hy0hy0hy09j04n0ku09903u0v50rs03j0bp0cu1il00a00702c04p03r04c03r04j02901o03q03w04l08w03b03t07z0h60j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70mk05c0dz0fj1k900800802h04o03u04d05s03202k00m04a04j05n0b803y04l09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1dt00100402404903d03z03i03804802z03s03z04k09q03d03v07s0gj0l20rs0f20ku"],["Noto Sans Lao Looped",700,0,1,"0jo0jo0jo07a0420l00990680x80rs0930gm0hu1f500800901x04u03z04d03y04h02f01e06306b07y0f705206e0fp0my0ka0rs0ij0lf","0is0is0is07l03y0jh09806f0x80l907n0i10jf1f600600a02904z04d04o05203d02h00506806l0a00f705806y0fs0ma0j00pu0gt0js","0j40j4___094058___0780690x40rs03l0gr___19300100401q04g03l04003h03g04l02e06606i08i0g505806n0fc0rl0ny0rs0g70ml"],["Noto Sans Lepcha",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Limbu",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Linear A",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Linear B",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Lisu",400,0,1,"0hy0hy0hy09h0580ku09903v0vd0rs0210bp0cv1ih00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rg0f20j4","0gz0hx0gz08403s0js08z04i0ue0mr04t0dw0fp1k800800802h04o03w04d05s03102j00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0br___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gr0lg0rs0f20ku"],["Noto Sans Lisu",700,0,1,"0jo0jo0jo07804n0kz0990650x50rs08k0gs0hv1f100800901x04u03z04e03y04h02f01e06106807v0f205206b0fd0mk0ka0rs0hy0ku","0is0is0is06y03y0jh09806d0wy0lf0860i60ja1f900600a02a04z04d04o05303d02h00606206h09r0f205806v0fp0lg0j00pu0gt0js","0j40j4___093058___0750650wr0rs03l0gr___19c00100401q04g03l04103h03f04l02e06306d08c0g105506i0f30rl0ns0rs0fn0ml"],["Noto Sans Lydian",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Mahajani",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Malayalam",300,0,1,"0hd0hd0hd05l0580kh09902o0t30rs01608g09v1k700a00602w04903m04b03p04o01w02102k02p03605102c02o04p0a20ij0r80g70ij","0gz0hh0gz07z0400kj08n03u0tn___02b0bw0dg1l300500901m05003w04i04o03v02801o03h03x04t08m03904507r0f40iz0qv0fz0iz","0hy0ij___06805i___06h02p0tb0rs00008m___1et00100302n03u03903z03k03403i03t02k02p03505002c02o04u0940j90rs0f20ku"],["Noto Sans Malayalam",400,0,1,"0hy0hy0hy09h0580ku09903v0v60rs02j0bo0cs1hx00a00702d04p03q04c03r04j02801p03q03w04k08v03b03t07m0ha0j50rg0f20j4","0gz0hx0gz08104q0js08y04i0uc0mr04t0dw0fm1ji00800802h04o03v04c05s03302j00m04a04k05o0b703y04m09z0hq0ic0qj0g10iv","0hy0hy___0a805s___06h03v0uy0rs00w0br___1d800100402504903d03z03i03804803003r03y04k09s03d03u07v0gb0l40rs0f20ku"],["Noto Sans Malayalam",700,0,1,"0jo0jo0jo07504c0kz0990650x20rs08k0gj0hs1ej00800901x04u03z04d03y04h02g01e06106707u0f005206b0fg0mw0ka0rs0hy0ku","0is0is0is09803y0jh09806c0wz0lc0860hz0j71ev00600a02a04z04c04o05203d02i00606406g09o0ez05706v0fo0md0iz0pu0gt0js","0j40j4___094058___06z0650wn0rs03l0gs___18w00100401q04g03l04103h03g04l02e06306d08f0g005506l0f50rl0nv0rs0fn0ml"],["Noto Sans Mandaic",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Manichaean",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Marchen",400,0,0,"0hy0hy0hy09d0580ku09903v0vd0rs02j0bh0cv1j900a00702c04p03r04c03r04k02801o03q03x04l08v03b03t07y0h60j50rg0f20j4","0hj0hj0hj07t04m0jc08s04f0uh0ms06f0e50fd1mc00800802g04n04x04h04o03202j00m04704h05i0at03v04l09q0gz0hy0py0fo0ig","0hy0hy___0a605s___06h03v0v00rs0290bq___1ee00100402404903d03z03i03804803003r03y04j09q03d03u07r0gy0lh0rs0f20ku"],["Noto Sans Masaram Gondi",400,0,0,"0hy0hy0hy09i0420ku09903v0ve0rs0210bo0cu1gu00a00702d04p03r04c03r04j02801o03q03x04l08w03b03t07w0h90j50rg0f20j4","0hx0hg0hx08003s0jr08z04j0uk0mo06y0dx0fc1ik00800802h04o03v04e05s03102k00m04a04l05o0b803y04o0a00h70ic0pw0g10iv","0hy0hy___0aa058___06h03w0v60rs0290bs___1cd00100402404903d03z03j03804803003r03y04j09t03d03v07s0gp0lj0rs0f20lf"],["Noto Sans Mayan Numerals",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Medefaidrin",400,0,1,"0hy0hy0hy09j04n0ku09903v0vb0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mk05c0e10fp1ka00800802h04o03u04d05s03202k00m04a04k05n0b503y04m09q0hi0iz0qi0g10iv","0i80ij___0a505i___06h03w0v50rs01c0bq___1ds00100402404903d03z03j03804803003s03y04k09s03d03v07r0gh0l20rs0f20ku"],["Noto Sans Medefaidrin",700,0,1,"0jo0jo0jo0780420l10990650x60rs08k0gk0hq1f700800901x04u03z04e03y04h02f01e06106807v0f205206b0fe0mr0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006f0wa0kn08w0hq0j31eq00700902304r04004d05v03c02d00k06506i09k0fb05b06v0fz0m50j70qj0h00ju","0j40j4___092058___0750650ws0rs03l0gp___19e00100401q04g03l04103h03g04l02e06306d08d0g105506k0f30rl0nt0rs0fn0ml"],["Noto Sans Meetei Mayek",300,0,1,"0hd0hy0hd05n04x0kg09902n0t60rs01608g09v1ka00a00602v04a03n04b03q04n01v02102k02p03505002c02o04n09t0i80r80g70ij","0gz0hz0gz06q0400ki08n03w0tv___01r0c00dq1l300500901m04y03x04j04p03u02701o03k03z04u08r0390460850fi0j00qu0fz0hz","0hy0ij___06a05s___06h02o0tf0rs00008k___1ev00100302n03u03903z03l03403i03s02k02p03405102c02o04u09a0j80rs0fn0ku"],["Noto Sans Meetei Mayek",400,0,1,"0hy0ij0hy09i0580ku09903u0v70rs02j0bp0cu1ib00a00702d04p03r04d03r04j02801o03q03w04l08w03b03s07y0h60j40rf0f20j4","0hg0hx0gz08403s0js08z04h0u20mr05w0dx0fv1k100800802h04n03v04d05s03302k00n04a04k05o0b403y04n09u0hs0id0qj0g10hx","0i80ij___0a505s___06h03w0v20rs0290br___1dm00100402404903d04003j03804803003r03y04j09p03d03v07s0gz0l30rs0f20ku"],["Noto Sans Meetei Mayek",700,0,1,"0jo0jo0jo07c04c0kz0990680xa0rs08k0gn0ht1fb00800901x04t03z04d03y04h02g01e06306b07y0f805206f0fn0n20kc0rs0ij0lf","0is0is0is07403y0jh09706f0x90ld0860i00jb1fh00600a02a04z04d04o05203d02h00606706l09y0f40580700fm0mb0j00pu0hs0jr","0j40j4___094058___0750690x60rs03l0gs___19900100401q04g03l04103h03g04l02e06606i08i0g505806o0ff0rl0nx0rs0fn0ml"],["Noto Sans Mende Kikakui",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Meroitic",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Miao",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Modi",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Mongolian",400,0,0,"0hy0hy0hy09j04n0ku06d03v0ve0rs03j0bp0cv1il00200702d04q03s04e03s04l02a01p03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06d03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Mono",300,0,1,"0hd0hd0hy02y05s0kh09c02n0td0rs00k08t0a41cr00b00603504703j04803l04s01u02102k02o03605f02c02m04f09s0ij0r80gs0hy","0gt0gt0ht02s04y0kc08o03v0u3___0260cc0dl1dj00500901q05103t04h04l04f02f00y03l03z05109s03804007i0fc0is0ql0fu0ht","0gs0hd___05306d______02m0sr0rs000094___1c600000002m03t03a04103m03703j03q02k02n02z04x02d02q0570al0ke0rs0fn0hy"],["Noto Sans Mono",400,0,1,"0hy0hd0ij06j04n0kb09903s0v40rs0550cb0dr1cw00b00702k04s03s04b03p04g02d01f03q03u04q09o03803n0740gv0j40r70gs0ij","0gm0gm0hj06h03p0jy09f04e0u90n506j0ec0g21e200a00802n04o04s04b04o03402h00o04704h05x0c803u04f09k0gw0il0px0gm0hj","0hd0hn___08q058______03u0ue0rs0000ck___1bq00000002404803d04203k03a04802z03r03v04g09t03f03x0870kf0ml0rs0f20ij"],["Noto Sans Mono",700,0,1,"0ic0ic0iw03d03c0k008w05m0w90sj06f0ga0i51da00900a02205l03d04b04q03u02k00u05j05q07p0ez04p05j0dv0k90j60q40hs0jg","0is0hs0is05r02z0jh09a0680wp0ln08q0hv0jb19900600b02f05204804l05203c02g00705z06g0ah0fm05606c0et0lq0iy0pu0hs0is","0j40j4___065042___06y05w0vz0si0000gu___18q00000101r04g03j04203i03f04l02g05r05z07z0fs05406b0fe0rm0ol0rs0gs0jo"],["Noto Sans Mro",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Multani",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Myanmar",300,0,1,"0hd0hd0hd05m0580kh09902o0t70rs01608i09w1kz00a00602v04a03n04b03p04n01w02102k02p03605202c02n04o0a40ij0r80g70ij","0gz0hz0gh0600400kj08m03v0tv___02d0br0dl1lz00500901m04z03x04j04n03v02701o03i03y04u08k03904507u0fd0j00qu0fz0iz","0hy0ij___06805s___06h02o0te0rs00008m___1fh00100302n03v03903z03k03403i03s02k02q03505002c02o04u0970jb0rs0fn0ku"],["Noto Sans Myanmar",400,0,1,"0hy0hy0hy09j04n0ku09903u0v40rs03j0bo0cu1il00a00702c04p03r04c03r04j02901o03q03w04l08w03b03t07z0h60j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70mk05c0dz0fj1k900800802h04o03u04d05s03202k00m04a04j05n0b803y04l09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v20rs01c0bq___1dt00100402404a03d03z03i03804802z03s03y04k09p03d03v07s0gj0l20rs0f20ku"],["Noto Sans Myanmar",700,0,1,"0jo0jo0jo0780420l10990650x20rs08k0gl0hq1f600800901x04u03z04d03y04h02f01e06106707v0f205206a0fd0mt0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006d0w60ko08w0hr0iz1er00700902404r04004d05v03c02d00k06506h09o0f905a06v0fz0m60j70qj0h00ju","0j40j4___092058___0750650wo0rs03l0gp___19e00100401q04h03l04103h03g04l02e06306d08f0g105506k0f30rl0nt0rs0fn0ml"],["Noto Sans NKo",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans NKo Unjoined",400,0,1,"0hy0hy0hy09j04n0ku09903v0vb0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mk05c0e10fp1ka00800802h04o03u04d05s03202k00m04a04k05n0b503y04m09q0hi0iz0qi0g10iv","0i80ij___0a505i___06h03w0v50rs01c0bq___1ds00100402404903d03z03j03804803003s03y04k09s03d03v07r0gh0l20rs0f20ku"],["Noto Sans NKo Unjoined",700,0,1,"0jo0jo0jo0780420l10990650x60rs08k0gk0hq1f700800901x04u03z04e03y04h02f01e06106807v0f205206b0fe0mr0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006f0wa0kn08w0hq0j31eq00700902304r04004d05v03c02d00k06506i09k0fb05b06v0fz0m50j70qj0h00ju","0j40j4___092058___0750650ws0rs03l0gp___19e00100401q04g03l04103h03g04l02e06306d08d0g105506k0f30rl0nt0rs0fn0ml"],["Noto Sans Nabataean",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Nag Mundari",400,0,1,"0hy0ij0hy0980580ku09903v0v80rs0310bm0cu1jw00a00702d04n03q04b03r04k02901p03q03w04j08n03903t07k0gx0j70rg0f20j4","0hg0hx0gz07o03s0js08z04i0ud0mu04a0dw0fr1li00800802i04n03v04c05s03302j00n04904k05p0b603x04n09v0h90j00qj0g10iv","0ij0ij___0a605s___06h03u0uj0rs01t0br___1ez00100402504803d03z03j03804803003r03x04j09403d03v07l0gh0lk0rs0f20lf"],["Noto Sans Nag Mundari",700,0,1,"0jo0k90jo07b04n0kz0990650x70rs0810g50hy1fz00800901x04t04004d03y04i02e01e06006707r0ew04z06b0fi0mm0ka0rs0hy0ku","0ix0ix0ix08d03s0kg09106e0wp0l208w0hh0ir1fs00700902304r04204d05u03c02e00k06406i09a0f405706s0fw0m90j70qk0h10jv","0jo0jo___093058___0770640wr0rs03l0gp___1aa00100401q04f03l04003h03h04k02e06306b0870fz05506k0f30ri0ns0rs0fn0ml"],["Noto Sans Nandinagari",400,0,0,"0hy0hy0hy09h04x0ku09903v0va0rs0310bq0cu1i000a00702d04o03r04d03r04j02801o03q03x04l08w03b03t07v0h50j50rf0fn0j4","0hx0hx0hg07x03s0js08z04j0ul0ml06f0dv0fh1jr00800802h04o03w04d05t03102k00m04a04l05n0b603y04n09x0hm0ic0qi0g10iv","0i80ij___0a2058___06h03w0v00rs01c0br___1dd00100402504903d03z03j03804803003r03y04j09q03d03u07p0ge0l40rs0f20ku"],["Noto Sans New Tai Lue",400,0,1,"0hy0hy0hy09j04n0ku09903v0vb0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mk05c0e10fp1ka00800802h04o03u04d05s03202k00m04a04k05n0b503y04m09q0hi0iz0qi0g10iv","0i80ij___0a505i___06h03w0v50rs01c0bq___1ds00100402404903d03z03j03804803003s03y04k09s03d03v07r0gh0l20rs0f20ku"],["Noto Sans New Tai Lue",700,0,1,"0jo0jo0jo0780420l10990650x60rs08k0gk0hq1f700800901x04u03z04e03y04h02f01e06106807v0f205206b0fe0mr0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006f0wa0kn08w0hq0j31eq00700902304r04004d05v03c02d00k06506i09k0fb05b06v0fz0m50j70qj0h00ju","0j40j4___092058___0750650ws0rs03l0gp___19e00100401q04g03l04103h03g04l02e06306d08d0g105506k0f30rl0nt0rs0fn0ml"],["Noto Sans Newa",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Nushu",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Ogham",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Ol Chiki",400,0,1,"0hy0hy0hy09h0580ku09903v0vd0rs0210bp0cv1ih00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rg0f20j4","0gz0hx0gz08403s0js08z04i0ue0mr04t0dw0fp1k800800802h04o03w04d05s03102j00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0br___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gr0lg0rs0f20ku"],["Noto Sans Ol Chiki",700,0,1,"0jo0jo0jo07804n0kz0990650x50rs08k0gs0hv1f100800901x04u03z04e03y04h02f01e06106807v0f205206b0fd0mk0ka0rs0hy0ku","0is0is0is06y03y0jh09806d0wy0lf0860i60ja1f900600a02a04z04d04o05303d02h00606206h09r0f205806v0fp0lg0j00pu0gt0js","0j40j4___093058___0750650wr0rs03l0gr___19c00100401q04g03l04103h03f04l02e06306d08c0g105506i0f30rl0ns0rs0fn0ml"],["Noto Sans Old Hungarian",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Old Italic",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Old North Arabian",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Old Permic",400,0,0,"0hy0hy0hy09e04n0ku09903v0va0rs02j0bs0cv1ip00a00702c04o03r04d03r04k02801o03q03x04l08w03b03t07y0hg0j50rf0f20j4","0gz0hg0gz08e03s0js08z04i0ug0mo05g0dt0fo1k900800802i04o03w04c05s03202k00m04804k05n0b503y04n09t0hp0ic0px0g10iv","0i80ij___0a6058___06h03w0v40rs01c0bu___1dx00100402404903d03z03j03804803003r03y04j09r03d03u07s0h40l30rs0f20lf"],["Noto Sans Old Persian",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Old Sogdian",400,0,0,"0hy0hy0hy09f04n0ku09903v0va0rs02j0bq0cu1ke00a00702d04o03r04d03r04j02801o03q03x04l08v03b03t07r0ha0j50rf0f20j4","0gz0hx0gz08404q0js08z04i0ug0mq04t0dy0fo1m700800802i04p03v04d05r03202k00m04904j05m0ay03x04m09x0hk0ic0qj0g10iv","0i80ij___0a305s___06h03w0v10rs01c0bs___1fa00100402404903d03z03j03704803003r03y04j09s03d03u07q0gb0l20rs0f20ku"],["Noto Sans Old South Arabian",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Old Turkic",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Oriya",300,0,1,"0hd0hd0hd05n0580ki0990320tw0rs02b09g0az1ke00a00702o04g03p04b03p04k02201v02x03303m06402m03105j0d30im0ra0gs0ij","0gu0gu0gu0a603z0kb08j0440tj___03e0d30e21ly00400901h05403y04i04r04902j00v03w0460540a303g04b08n0fz0iu0qm0fu0it","0hd0ij___075058___06h0320ts0rs01109l___1f300100402g04203b03x03h03603w03g02z03403l05x02o03205l0bg0jv0rs0f20ku"],["Noto Sans Oriya",400,0,1,"0hy0hd0hy09i0580ku09903u0v90rs0310bj0cv1it00a00702d04o03r04d03r04k02701o03p03v04j08q03903s07y0h00j50rf0f20j4","0gz0gz0gz08903s0js08z04h0u90ms05w0dx0fp1kh00800802h04o03v04c05s03202j00m04904j05n0ay03x04m09y0ho0ic0px0g10iv","0hd0hd___0ad058___06h03u0ut0rs01c0br___1dy00100402504903d03z03i03804803003r03y04j09903d03u07q0gi0l30rs0f20ku"],["Noto Sans Oriya",700,0,1,"0jo0j40jo0720420ku09906d0xg0rs08k0gz0hy1fm00800a01x04w04404g04204902i01506906g08a0fc05506p0ga0nt0k90r70hy0lf","0is0is0is07s03y0jg09906m0wx0kv0a00ih0j91ey00600a02904z04d04p05203e02g00606d06s0ac0fe05e07c0g60mq0j00pu0ht0ks","0j40j4___09104n___07206h0xa0rs03l0h9___18x00100401q04f03m04103h03h04l02d06e06r0930g605d0710g80rm0oc0rs0fn0ml"],["Noto Sans Osage",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Osmanya",400,0,0,"0hy0ij0hy09h0580ku09903v0ve0rs0210bo0cw1hz00a00702d04o03r04c03q04k02901o03q03x04l08v03b03t07y0h60j50rf0f20j4","0gl0hj0gl08c03p0jc08r04f0ui0mu04x0dy0fs1l000800802h04n04x04h04o03102j00m04704h05i0ax03v04k09j0gv0hy0py0fo0hj","0hy0hy___0a805s___06h03w0v00rs01c0bq___1dc00100402504903d03z03i03804803003r03y04j09q03d03u07r0g70l40rs0f20ku"],["Noto Sans Pahawh Hmong",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Palmyrene",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Pau Cin Hau",400,0,0,"0hy0hy0hy09i0580ku09903v0vd0rs02j0bs0cv1i600a00702d04o03r04d03r04j02801o03q03x04l08v03b03t07x0h70j50rf0f20j4","0hg0hx0gz08303s0js08z04j0ul0mt05c0e30fe1jx00800802h04o03v04e05s03102k00m04a04l05o0b203y04o09y0ho0ic0qj0g10iv","0i80ij___0a405s___06h03w0v20rs0290bq___1di00100402504903d03z03j03804803103r03y04j09o03d03u07o0gl0l40rs0f20ku"],["Noto Sans PhagsPa",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Phoenician",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Psalter Pahlavi",400,0,0,"0ij0ij0ij09h0580lf09f03z0vp0rs02j0bu0cv1h300a00702c04o03r04903r04t02201q03t04104o08v03a03v07z0hi0jp0rs0fn0jo","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0ij0ij___0ab05s___06y03y0vh0rs02p0bz___1cg00100402504a03d03u03r03803r03c03v04204n09b03d03v07t0gt0m00rs0f20m0"],["Noto Sans Rejang",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Runic",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans SC",300,0,1,"0fj0fj0f906k04m0in08n02g0rr0rs02a08w0a51sy00900803804j04704n04703h02v00902d02h02x04p02602k04i09l0gq0or0ee0gp","0ff0ff0ff07i03v0iy08903r0tj0rs01p0cg0e61tc00400b01t05304604s05303a02q00g03g03s04n08s03903y0810es0he0ov0eg0hc","0hy0ij___05t05s______02n0rz0rs00008m___1im00000002n03x03903x03m03603o03m02l02o03304q02b02t04y0a00it0rs0fn0j4"],["Noto Sans SC",400,0,1,"0g30g30g307f04m0iz08m03j0ua0rs0250c10d91q900800902n04w04804m04a03h02t00e03h03k04707m03103l0780fk0hg0ox0ey0h9","0ff0ff0ff07a03v0jl07j04b0tp0rs0130e90g41qc00300b01f05a04804r05203k02p00g04504d05j0ab03u04l09w0ha0i60oz0eg0hc","0i50i5___0a005a______03u0ua0rs0000ce___1gn00000002604f03g03e04b03b03l03603s03u04g08w03b04007z0hy0l60rs0em0kh"],["Noto Sans SC",700,0,1,"0hs0hs0h706m0410ji08705e0wi0rs04a0fz0gu1lx00500b02705304b04p04z02z02p00g05b05g06u0di04h05k0db0jz0im0p90gn0ix","0hr0hr0hr07003y0jh08905z0wh0om02s0gx0j11jb00400b02e05004f04s05303c02800605p06008e0dx0500670em0kq0i70p00gs0ir","0j30j3___08504n___07e05u0w10rs0000g7___1bt00100301s04j03k04103i03e04j02e05p05w07e0ff04x0670dx0qy0nf0rs0gs0lf"],["Noto Sans Samaritan",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Saurashtra",400,0,0,"0hy0hy0hy09f0580ku09903v0va0rs02j0bq0cu1i500a00702d04o03r04d03r04j02801o03q03x04l08v03b03t07r0h90j40rg0f20j4","0hj0hj0gm07w03p0jc08s04f0uk0mr05w0e20fm1ky00800802h04n04x04h04o03102j00m04604i05k0ay03v04j09o0gz0hy0py0fo0ig","0i80ij___0a305s___06h03v0uz0rs01t0br___1dg00100402404903d03z03j03804803003r03y04j09r03d03v07r0h40lg0rs0f20ku"],["Noto Sans Sharada",400,0,0,"0hy0hy0hy09k04n0ku09903w0ur0rs03j0bo0cv1ig00a00702e04o03q04c03r04j02901q03q03x04l08x03b03t07w0hb0j50rh0f20jo","0hx0hx0gz08203s0js08z04j0uf0ml05c0e00fp1k200800802h04o03t04d05s03102l00n04a04l05o0b703x04l09q0hk0ie0qk0gz0iv","0ij0ij___0ak058___06h03y0tx0rs0290bs___1db00100302704803b03y03j03704703303s04204m09s03f03y07p0h20ln0rs0f20ku"],["Noto Sans Shavian",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Siddham",400,0,0,"0ji0ji___0d1073___0bc04o0vg0rs0500dg___18l00900602904s03103s04503j04q01504j04q05f09i03y04q0a80lr0jp0q204q0mh","0gz0hg0gz08603s0js08z04i0uj0mr04t0dz0fp1l900800802h04n03w04d05r03202k00m04a04k05o0b503x04m09v0h80id0qj0g10iv","0mh0mh___0ad0730k508a04n0v50rs08t0bz___15800300402b04w03203o04k03q03f02004l04p0580810430530b20nb0cl0rs0ic0q0"],["Noto Sans SignWriting",400,0,0,"0hy0hy0hy09g0420ku09903v0vd0rs02j0bq0cw19600a00702d04o03r04d03r04j02801o03q03x04l08v03b03s07y0h50j50rg0f20j4","0gl0hi0gl08e03p0jc08r04f0ug0mr04x0dz0fg1bm00800802h04n04x04g04o03202k00m04704h05k0ax03v04k09s0h50il0py0fo0ig","0ij0ij___09v04x___06h03v0v50rs01f0br___15r00100402504903d03z03i03704803103r03y04j09r03d03t07r0gr0l40rs0f20ku"],["Noto Sans Sinhala",300,0,1,"0hd0hn0hd05m04n0kh09902n0t70rs01608g09v1h800b00702w04903n04c03p04n01v02002j02p03605002b02n04k09n0ij0r70g70ij","0gz0hz0gz0790300kj08n03x0tr___01o0bz0dv1i300400a01n04y03x04j04o03u02601p03m03z04u08v03a0460810fl0j00qv0fz0hz","0i80ij___068058______02o0th0rs00008f___1ce00000002n03w03a04003l03403i03t02k02p03505002c02n04u0960jc0rs0f20ku"],["Noto Sans Sinhala",400,0,1,"0hy0hy0hy09g0420ku09903u0v80rs02j0bj0cv1f300a00702d04o03r04d03r04k02701o03p03v04j08u03803r07t0gx0j40rg0f20j4","0hw0hw0gz07p03s0ke08y04h0uc0mv0600dp0fj1gp00800802i04m03v04d05t03102j00m04a04j05o0b803x04n09r0h70ic0qj0g10iu","0hy0hy___0a6058___06h03t0us0rs01c0bq___1ay00100402504903d03z03j03704803103r03x04j09q03d03t07m0gj0l30rs0f20ku"],["Noto Sans Sinhala",700,0,1,"0jo0jo0jo07n0420l00990640x70rs0930gh0hr1c100800901x04t03y04e03y04h02f01e06006707s0ez04y0680f40m80ka0rs0hy0ku","0is0is0is0bd03y0jh09806c0x50lr0840ho0jh1c300600a02a04z04d04p05303c02h00606206g09l0f005706t0fn0m10iz0pu0hs0kr","0j40j4___09304n___07j0650wu0rs03l0gj___16x00100401q04g03l04103h03g04l02e06306a08b0g005506h0f20rl0nt0rs0fn0ml"],["Noto Sans Sogdian",400,0,0,"0hy0hy0hy09f04n0ku09903v0va0rs02j0bq0cu1ke00a00702d04o03r04d03r04j02801o03q03x04l08v03b03t07r0ha0j50rf0f20j4","0gz0hx0gz08404q0js08z04i0ug0mq04t0dy0fo1m700800802i04p03v04d05r03202k00m04904j05m0ay03x04m09x0hk0ic0qj0g10iv","0i80ij___0a305s___06h03w0v10rs01c0bs___1fa00100402404903d03z03j03704803003r03y04j09s03d03u07q0gb0l20rs0f20ku"],["Noto Sans Sora Sompeng",400,0,1,"0hy0hy0hy09h0580ku09903v0vd0rs0210bp0cv1ih00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rg0f20j4","0gz0hx0gz08403s0js08z04i0ue0mr04t0dw0fp1k800800802h04o03w04d05s03102j00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0br___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gr0lg0rs0f20ku"],["Noto Sans Sora Sompeng",700,0,1,"0jo0jo0jo07804n0kz0990650x50rs08k0gs0hv1f100800901x04u03z04e03y04h02f01e06106807v0f205206b0fd0mk0ka0rs0hy0ku","0is0is0is06y03y0jh09806d0wy0lf0860i60ja1f900600a02a04z04d04o05303d02h00606206h09r0f205806v0fp0lg0j00pu0gt0js","0j40j4___093058___0750650wr0rs03l0gr___19c00100401q04g03l04103h03f04l02e06306d08c0g105506i0f30rl0ns0rs0fn0ml"],["Noto Sans Soyombo",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Sundanese",400,0,1,"0hy0hy0hy09j04n0ku09903v0vb0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mk05c0e10fp1ka00800802h04o03u04d05s03202k00m04a04k05n0b503y04m09q0hi0iz0qi0g10iv","0i80ij___0a505i___06h03w0v50rs01c0bq___1ds00100402404903d03z03j03804803003s03y04k09s03d03v07r0gh0l20rs0f20ku"],["Noto Sans Sundanese",700,0,1,"0jo0jo0jo0780420l10990650x60rs08k0gk0hq1f700800901x04u03z04e03y04h02f01e06106807v0f205206b0fe0mr0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006f0wa0kn08w0hq0j31eq00700902304r04004d05v03c02d00k06506i09k0fb05b06v0fz0m50j70qj0h00ju","0j40j4___092058___0750650ws0rs03l0gp___19e00100401q04g03l04103h03g04l02e06306d08d0g105506k0f30rl0nt0rs0fn0ml"],["Noto Sans Sunuwar",400,0,0,"0hy0hy0hy09h04c0ku09903v0vb0rs02j0bi0cu1gk00a00702d04p03q04c03r04k02801p03q03x04l08v03b03t07p0h90j60rh0f20j4","0gz0hx0gz08003s0ke08z04j0ug0m904t0e40fe1i600800802h04o03w04d05r03202k00m04a04l05o0b703y04o09u0hb0id0qj0g10iv","0hy0hy___0a7058___06h03v0uz0rs00g0br___1c400100402404a03d03z03i03804803003r03y04j09s03d03u07u0gb0lf0rs0f20ku"],["Noto Sans Syloti Nagri",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Symbols",300,0,1,"0hd0hn0hd05m0580kh09902o0t50rs01608g09w1ky00a00602v04a03n04b03p04n01w02102k02p03605102c02n04o0a30ij0r70g70ij","0gz0hz0gh05z0400kj08l03v0u1___02d0bp0dp1lz00500901m04y03x04k04n03v02701o03i03y04t08k03804407u0fe0iy0qu0fz0iz","0hy0ij___06805s___06h02o0td0rs00008m___1fh00100302n03v03903z03k03403i03s02k02p03505002c02o04u0960jb0rs0fn0ku"],["Noto Sans Symbols",400,0,1,"0hy0hy0hy09j04n0ku09903v0v60rs03j0bp0ct1il00a00702c04p03r04c03r04k02901o03q03w04l08v03b03t07z0h70j50rf0f20j4","0hg0hx0gz08303s0js08z04h0u70ml05c0e00fi1k800800802g04o03u04d05t03202k00m04a04j05o0b503y04m09q0hg0iz0qj0g10iv","0i80ij___0a6058___06h03w0v60rs0290bq___1dt00100402404903d03z03j03804802z03s03y04k09q03d03v07r0gh0l20rs0f20ku"],["Noto Sans Symbols",700,0,1,"0jo0jo0jo07704n0l00990680x90rs08k0gn0hp1ey00800a01x04t03z04d03y04h02f01e06306b07x0f705206e0fq0n30kb0rs0ij0lf","0is0is0is06x03y0jh09906g0x60l50930i50jd1ey00600a02a04z04d04p05203d02h00606806l0a20f70590730fn0ln0j00pu0gt0js","0j40j4___094058___07j0690x40rs03l0gs___18z00100401q04g03l04103h03g04l02e06606i08i0g505806n0fg0rl0nw0rs0g70ml"],["Noto Sans Symbols 2",400,0,0,"0hy0hd0hy09t04n0ku09903x0ty0rs03p0bo0cv1ax00a00702004m04104k03v04x02901503q03z04u09i03d0430920i20j40ok0f20jo","0hr0hr0hr08c03y0jj09604n0ty0n504r0ec0fu1cm00700902804u04e04s05803o02200504e04p06b0bp04204z0ay0ib0i40ns0fs0ir","0hn0hy___0am05s___06h03y0u10rs0130bq___17600100401t04603m04503m03j04902k03s04004s0ab03d04408s0i30l10rs0f20lf"],["Noto Sans Syriac",300,0,1,"0hy0hy0hd05d04n0ki0990320tv0rs01609j0b41k300a00702n04h03p04b03q04k02201w02y03403m06702n03105l0cx0im0rb0gs0ij","0hb0ht0gu09r03z0kb08j0440to___01o0d20em1ls00400901g05403y04k04q04902j00v03w0460540ac03g04b08v0g00iu0qm0fu0ht","0hy0ij___06605s___06h0320tv0rs00j09l___1ew00100402f04203b03x03h03603w03g02z03403l06002o03205n0bi0jy0rs0fn0ku"],["Noto Sans Syriac",400,0,1,"0hy0hy0hy09j04n0ku09903v0v70rs03j0bp0ct1il00a00702c04p03r04c03r04k02901o03q03w04l08w03b03t07y0h70j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70ml05c0e00fi1k900800802h04o03u04d05t03202k00m04a04j05o0b503y04m09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1dt00100402404903d03z03j03804802z03s03y04k09q03d03v07r0gh0l20rs0f20ku"],["Noto Sans Syriac",700,0,1,"0jo0jo0jo0790420kz0990660xc0rs08k0gl0hq1f400800901x04t03z04e03y04h02f01e06106907w0f305106d0fi0n00kb0rs0ij0lf","0iw0iw0iw07203s0kg09006d0wd0l708q0hg0iq1ev00700a02404r04004d05t03c02f00k06406i09m0fb05a06t0fy0mb0j70qk0h00ju","0j40j4___092058___0770670x20rs03l0gq___19900100401q04g03l04103h03g04l02e06406g08g0g505606n0fd0rb0nw0rs0fn0ml"],["Noto Sans Syriac Eastern",300,0,1,"0hy0hy0hd05d04n0ki0990320tv0rs01609j0b41k300a00702n04h03p04b03q04k02201w02y03403m06702n03105l0cx0im0rb0gs0ij","0hb0ht0gu09r03z0kb08j0440to___01o0d20em1ls00400901g05403y04k04q04902j00v03w0460540ac03g04b08v0g00iu0qm0fu0ht","0hy0ij___06605s___06h0320tv0rs00j09l___1ew00100402f04203b03x03h03603w03g02z03403l06002o03205n0bi0jy0rs0fn0ku"],["Noto Sans Syriac Eastern",400,0,1,"0hy0hy0hy09j04n0ku09903v0v70rs03j0bp0ct1il00a00702c04p03r04c03r04k02901o03q03w04l08w03b03t07y0h70j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70ml05c0e00fi1k900800802h04o03u04d05t03202k00m04a04j05o0b503y04m09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1dt00100402404903d03z03j03804802z03s03y04k09q03d03v07r0gh0l20rs0f20ku"],["Noto Sans Syriac Eastern",700,0,1,"0jo0jo0jo0790420kz0990660xc0rs08k0gl0hq1f400800901x04t03z04e03y04h02f01e06106907w0f305106d0fi0n00kb0rs0ij0lf","0iw0iw0iw07203s0kg09006d0wd0l708q0hg0iq1ev00700a02404r04004d05t03c02f00k06406i09m0fb05a06t0fy0mb0j70qk0h00ju","0j40j4___092058___0770670x20rs03l0gq___19900100401q04g03l04103h03g04l02e06406g08g0g505606n0fd0rb0nw0rs0fn0ml"],["Noto Sans Syriac Western",300,0,1,"0hy0hy0hd05d04n0ki0990320tv0rs01609j0b41k300a00702n04h03p04b03q04k02201w02y03403m06702n03105l0cx0im0rb0gs0ij","0hb0ht0gu09r03z0kb08j0440to___01o0d20em1ls00400901g05403y04k04q04902j00v03w0460540ac03g04b08v0g00iu0qm0fu0ht","0hy0ij___06605s___06h0320tv0rs00j09l___1ew00100402f04203b03x03h03603w03g02z03403l06002o03205n0bi0jy0rs0fn0ku"],["Noto Sans Syriac Western",400,0,1,"0hy0hy0hy09j04n0ku09903v0v70rs03j0bp0ct1il00a00702c04p03r04c03r04k02901o03q03w04l08w03b03t07y0h70j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70ml05c0e00fi1k900800802h04o03u04d05t03202k00m04a04j05o0b503y04m09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1dt00100402404903d03z03j03804802z03s03y04k09q03d03v07r0gh0l20rs0f20ku"],["Noto Sans Syriac Western",700,0,1,"0jo0jo0jo0790420kz0990660xc0rs08k0gl0hq1f400800901x04t03z04e03y04h02f01e06106907w0f305106d0fi0n00kb0rs0ij0lf","0iw0iw0iw07203s0kg09006d0wd0l708q0hg0iq1ev00700a02404r04004d05t03c02f00k06406i09m0fb05a06t0fy0mb0j70qk0h00ju","0j40j4___092058___0770670x20rs03l0gq___19900100401q04g03l04103h03g04l02e06406g08g0g505606n0fd0rb0nw0rs0fn0ml"],["Noto Sans TC",300,0,1,"0fj0fj0f906k04m0in08n02g0rr0rs02a08w0a51sy00900803804j04704n04703h02v00902d02h02x04p02602k04i09l0gq0or0ee0gp","0ff0ff0ff07i03v0iy08903r0tj0rs01p0cg0e61tc00400b01t05304604s05303a02q00g03g03s04n08s03903y0810es0he0ov0eg0hc","0hy0ij___05t05s______02n0rz0rs00008m___1im00000002n03x03903x03m03603o03m02l02o03304q02b02t04y0a00it0rs0fn0j4"],["Noto Sans TC",400,0,1,"0g30g30g307f04m0iz08m03j0ua0rs0250c10d91q900800902n04w04804m04a03h02t00e03h03k04707m03103l0780fk0hg0ox0ey0h9","0ff0ff0ff07a03v0jl07j04b0tp0rs0130e90g41qc00300b01f05a04804r05203k02p00g04504d05j0ab03u04l09w0ha0i60oz0eg0hc","0i50i5___0a005a______03u0ua0rs0000ce___1gn00000002604f03g03e04b03b03l03603s03u04g08w03b04007z0hy0l60rs0em0kh"],["Noto Sans TC",700,0,1,"0hs0hs0h706m0410ji08705e0wi0rs04a0fz0gu1lx00500b02705304b04p04z02z02p00g05b05g06u0di04h05k0db0jz0im0p90gn0ix","0hr0hr0hr07003y0jh08905z0wh0om02s0gx0j11jb00400b02e05004f04s05303c02800605p06008e0dx0500670em0kq0i70p00gs0ir","0j30j3___08504n___07e05u0w10rs0000g7___1bt00100301s04j03k04103i03e04j02e05p05w07e0ff04x0670dx0qy0nf0rs0gs0lf"],["Noto Sans Tagalog",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Tagbanwa",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Tai Le",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Tai Tham",400,0,1,"0hy0hy0hn09g04n0ku09903v0vg0rs0210bh0cw1gk00a00702c04p03r04c03r04k02801o03q03x04l08w03b03t07z0h60j60rg0f20j4","0hj0hj0gl07x03p0jc08r04f0uh0mr0600e20fg1jf00800802h04n04x04g04o03202j00m04704i05k0ay03w04k09m0h60il0py0fo0ig","0hy0hy___0a7058___06h03w0v70rs00w0bu___1c400100402404903d03z03i03804803003r03y04j09r03d03u07r0gb0lh0rs0f20lf"],["Noto Sans Tai Tham",700,0,1,"0jo0jo0jo0770420l00990660x60rs0810gl0hu1da00800901x04u03z04d03y04h02f01e06106807w0f205206c0fd0mh0ka0rs0hy0lf","0iw0iw0iw08g03s0kf09006d0vz0m209g0hi0j51d500700902404r04104d05v03c02d00k06406h09d0fa05b06v0fp0m80j60qj0h00ju","0j40j4___092058___07j0650wr0rs03l0gr___17x00100401q04g03l04103h03g04l02e06306d08c0g105506k0f50rj0nv0rs0fn0ml"],["Noto Sans Tai Viet",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Takri",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Tamil",300,0,1,"0hd0hd0hd05n0580ki09902o0sz0rs01608i09w1ky00a00602w04a03n04b03q04n01w02102k02p03605102c02o04o0a40ij0r80g70ij","0gz0hz0gh05x0400kj08m03t0tg___02d0br0dk1lw00500901n04z03w04j04n03v02701o03i03x04t08j03904407r0fg0j00qv0fz0hz","0hy0ij___06905s___06h02p0tc0rs00008k___1fg00100302n03u03903z03k03403i03s02k02q03505102c02o04u09a0j90rs0fn0ku"],["Noto Sans Tamil",400,0,1,"0hy0hy0hy09i04n0ku09903u0v30rs03j0bo0cu1il00a00702d04p03r04c03r04j02901o03q03w04l08w03b03t0800h60j50rf0f20j4","0hx0hx0gz08003s0js08z04h0u90mm05c0e00fj1k800800802h04o03v04d05s03202k00m04a04j05n0b703y04m09q0hi0iz0pw0g10iv","0hy0hy___0a705i___06h03v0uz0rs01c0bq___1dt00100402504903d03z03j03804802z03s03y04k09s03d03v07s0gj0l30rs0f20ku"],["Noto Sans Tamil",700,0,1,"0jo0jo0jo0780420l10990650x20rs08k0gl0hq1f600800901x04u03z04d03y04h02f01e06106707v0f205206a0fd0mt0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006d0w60ko08w0hr0iz1et00700902404r04004d05v03c02d00k06506h09k0f805a06v0fz0m60j70qj0h00ju","0j40j4___092058___0750650wp0rs03l0gp___19e00100401q04h03l04103h03g04l02e06306d08f0g105506k0f30rl0nt0rs0fn0ml"],["Noto Sans Tamil Supplement",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Tangsa",400,0,1,"0hy0hy0hy09j04n0ku09903v0vb0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mk05c0e10fp1ka00800802h04o03u04d05s03202k00m04a04k05n0b503y04m09q0hi0iz0qi0g10iv","0i80ij___0a505i___06h03w0v50rs01c0bq___1ds00100402404903d03z03j03804803003s03y04k09s03d03v07r0gh0l20rs0f20ku"],["Noto Sans Tangsa",700,0,1,"0jo0jo0jo0780420l10990650x60rs08k0gk0hq1f700800901x04u03z04e03y04h02f01e06106807v0f205206b0fe0mr0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006f0wa0kn08w0hq0j31eq00700902304r04004d05v03c02d00k06506i09k0fb05b06v0fz0m50j70qj0h00ju","0j40j4___092058___0750650ws0rs03l0gp___19e00100401q04g03l04103h03g04l02e06306d08d0g105506k0f30rl0nt0rs0fn0ml"],["Noto Sans Telugu",300,0,1,"0hq0hq0h505f05c0kp09702o0t70rs01608j09u1kc00900702z04e03704f04f04a02c01d02k02q03704y02c02o04l09g0ig0pf0gk0ic","0gl0hk0gl06u03w0k208f03s0th___01p0c30dk1mw00500901o05103y04n04m04h02g00m03f03u04s08z03804007k0er0ij0oe0fm0hk","0i80ij___06705s______02p0tm0rs00008m___1fb00000002p03w03c04303i03603x03602k02q03505102c02n04u0910j90rs0f20ku"],["Noto Sans Telugu",400,0,1,"0hy0hy0hn09g04n0ku09903u0v90rs03j0bq0ct1ic00a00702e04q03t04h03p04m02i01403q03w04l09003b03s07m0gw0j40ph0f20j4","0hr0hr0hr07r03y0jj09504k0u10mv03r0e90fs1kh00700902m04w04604q05103k02900504c04m0600bt04204p09x0hc0i40nx0fs0iq","0i80ij___0a505i___06h03w0va0rs01c0br___1dk00100402604b03e04303h03a04g02j03r03y04k09u03d03u07q0g40kz0rs0f20ku"],["Noto Sans Telugu",700,0,1,"0jo0jo0jo0730420l00990650x70rs0810gp0hs1ez00800901y04w04104g03y04n02f01006106807y0f705106a0fe0m00ka0pk0ij0lf","0is0is0is09c03y0jh09806d0ws0lb08w0hp0iy1ev00600a02b05104f04r05303l02100606306i0a20f605706u0ff0l70iz0nx0hs0jr","0j40j4___090058___06z0650wu0rs03l0gu___19400100401r04i03m04303h03l04l02206306e08g0g105506h0f10ql0n70rs0fn0ml"],["Noto Sans Thaana",300,0,1,"0hy0hy0hd0680580ki0990320tu0rs01p09i0b31kb00a00702o04h03p04b03q04k02201v02y03403m06402n03105k0cq0in0rb0g70ij","0gt0gt0gt08e03y0ka08j0430tj___03a0cv0e91m100500a01h05303w04k04r04802l00v03w0450540a903g04b08k0g50iu0ql0ft0is","0hy0ij___06w05s___06h0320u10rs01k09l___1f200100402f04203b03x03i03503v03g02z03403l06002p03205k0bh0jt0rs0fn0ku"],["Noto Sans Thaana",400,0,1,"0hy0hy0hy09j04n0ku09903v0v60rs03j0bo0ct1il00a00702c04p03r04c03r04k02901o03q03w04l08w03b03t07y0h70j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70ml05c0e00fi1k900800802h04o03u04d05t03202k00m04a04j05n0b503y04m09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v50rs01c0bq___1dt00100402404903d03z03j03804802z03s03y04k09p03d03v07r0gh0l20rs0f20ku"],["Noto Sans Thaana",700,0,1,"0jo0jo0jo0780420l10990650x20rs08k0gl0hq1f700800901x04u03z04e03y04h02f01e06106807u0f205206a0fd0ms0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006d0w50ko08w0hq0iy1es00700902304r04004e05v03c02d00k06506i09k0f805906v0fy0m60j70qj0h00ju","0j40j4___092058___0750650wo0rs03l0gp___19e00100401q04h03l04103h03g04l02e06306d08d0g105506k0f30rl0nt0rs0fn0ml"],["Noto Sans Thai",300,0,1,"0hd0hd0hd05m0580kh09902o0t70rs01608i09w1kz00a00602v04a03n04b03p04n01w02102k02p03605202c02n04o0a40ij0r80g70ij","0gz0hz0gh0600400kj08m03v0tv___02d0br0dl1lz00500901m04z03x04j04n03v02701o03i03y04u08k03904507u0fd0j00qu0fz0iz","0hy0ij___06805s___06h02o0te0rs00008m___1fh00100302n03v03903z03k03403i03s02k02q03505002c02o04u0970jb0rs0fn0ku"],["Noto Sans Thai",400,0,1,"0hy0hy0hy09j04n0ku09903u0v40rs03j0bo0cu1il00a00702c04p03r04c03r04j02901o03q03w04l08w03b03t07z0h60j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70mk05c0dz0fj1k900800802h04o03u04d05s03202k00m04a04j05n0b803y04l09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v20rs01c0bq___1dt00100402404a03d03z03i03804802z03s03y04k09p03d03v07s0gj0l20rs0f20ku"],["Noto Sans Thai",700,0,1,"0jo0jo0jo0780420l10990650x20rs08k0gl0hq1f600800901x04u03z04d03y04h02f01e06106707v0f205206a0fd0mt0ka0rs0hy0ku","0iw0iw0iw09b03s0kf09006d0w60ko08w0hr0iz1er00700902404r04004d05v03c02d00k06506h09o0f905a06v0fz0m60j70qj0h00ju","0j40j4___092058___0750650wo0rs03l0gp___19e00100401q04h03l04103h03g04l02e06306d08f0g105506k0f30rl0nt0rs0fn0ml"],["Noto Sans Thai Looped",300,0,1,"0hd0hd0hd05m0580kh09902o0t70rs01608h09w1kz00a00602v04a03n04b03p04n01w02102k02p03605202c02n04o0a40ij0r80g70ij","0gz0hz0gh0600400kj08m03v0tv___02d0br0dl1lz00500901m04z03x04j04n03v02701o03j03y04u08k03904407u0fd0j00qu0fz0iz","0hy0ij___06805s___06h02o0te0rs00008m___1fh00100302n03v03903z03k03403i03s02k02q03505002c02o04u0970jb0rs0fn0ku"],["Noto Sans Thai Looped",400,0,1,"0hy0hy0hy09j04n0ku09903u0v50rs03j0bp0cu1il00a00702c04p03r04c03r04j02901o03q03w04l08w03b03t07z0h60j50rf0f20j4","0hx0hx0gz07z03s0js08z04h0u70mk05c0dz0fj1k900800802h04o03u04d05s03202k00m04a04j05n0b803y04l09q0hf0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1dt00100402404903d03z03i03804802z03s03z04k09q03d03v07s0gj0l20rs0f20ku"],["Noto Sans Thai Looped",700,0,1,"0jo0jo0jo07704n0l00990680x90rs08k0gn0hq1ey00800a01x04u03z04d03y04h02f01e06306b07x0f705206e0fp0n50kb0rs0ij0lf","0is0is0is06y03y0jh09906f0x30l50930i30jh1ey00600a02a05004d04p05203d02h00606806l0a20f60590700fo0ln0j00pu0gt0js","0j40j4___093058___07j0690x40rs03l0gs___18z00100401q04g03l04103h03g04l02e06606i08j0g505806n0fg0rl0nx0rs0g70ml"],["Noto Sans Tifinagh",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Sans Tirhuta",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Ugaritic",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Vai",400,0,0,"0hy0hy0hy09h0580ku09903v0vc0rs0210bp0cv1ii00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rh0f20j4","0gz0hx0gz08403s0js08z04i0ug0mr04t0dw0fp1k700800802h04o03w04d05s03102k00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0bq___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gq0lg0rs0f20ku"],["Noto Sans Vithkuqi",400,0,1,"0hy0hy0hy09h0580ku09903v0vd0rs0210bp0cv1ih00a00702d04p03r04c03r04k02801o03q03x04l08v03b03t07x0gw0j60rg0f20j4","0gz0hx0gz08403s0js08z04i0ue0mr04t0dw0fp1k800800802h04o03w04d05s03102j00m04a04k05o0b503y04m0a00hi0j00qj0g10iv","0hy0hy___0a705i___06h03v0v20rs01c0br___1du00100402404903d03z03j03804803003r03y04j09r03d03u07q0gr0lg0rs0f20ku"],["Noto Sans Vithkuqi",700,0,1,"0jo0jo0jo07804n0kz0990650x50rs08k0gs0hv1f100800901x04u03z04e03y04h02f01e06106807v0f205206b0fd0mk0ka0rs0hy0ku","0is0is0is06y03y0jh09806d0wy0lf0860i60ja1f900600a02a04z04d04o05303d02h00606206h09r0f205806v0fp0lg0j00pu0gt0js","0j40j4___093058___0750650wr0rs03l0gr___19c00100401q04g03l04103h03f04l02e06306d08c0g105506i0f30rl0ns0rs0fn0ml"],["Noto Sans Wancho",400,0,0,"0hy0hy0hy09h04c0ku09903v0vb0rs02j0bi0cu1gk00a00702d04p03q04c03r04k02801p03q03x04l08v03b03t07p0h90j60rh0f20j4","0gz0hx0gz08003s0ke08z04j0ug0m904t0e40fe1i600800802h04o03w04d05r03202k00m04a04l05o0b703y04o09u0hb0id0qj0g10iv","0hy0hy___0a7058___06h03v0uz0rs00g0br___1c400100402404a03d03z03i03804803003r03y04j09s03d03u07u0gb0lf0rs0f20ku"],["Noto Sans Warang Citi",400,0,0,"0hy0hy0hy09g04n0ku09903v0vd0rs0210bp0cw1hw00a00702c04o03r04d03r04k02801o03q03x04l08v03b03t07z0h60j50rg0f20j4","0hg0hx0gz08003s0js08z04i0uf0mm04t0e00fd1jf00800802h04p03w04c05r03202j00m04a04l05p0b103z04q0a00hc0j00qj0g10hx","0hy0hy___0a605s___06h03w0v30rs00w0bu___1da00100402404903d03z03i03804803003r03y04j09q03d03v07r0gb0lh0rs0f20lf"],["Noto Sans Yi",400,0,0,"0hy0hy0hy09e04n0ku09903v0va0rs02j0bs0cv1ip00a00702c04o03r04d03r04k02801o03q03x04l08w03b03t07y0hg0j50rf0f20j4","0gz0hg0gz08e03s0js08z04i0ug0mo05g0dt0fo1k900800802i04o03w04c05s03202k00m04804k05n0b503y04n09t0hp0ic0px0g10iv","0i80ij___0a6058___06h03w0v40rs01c0bu___1dx00100402404903d03z03j03804803003r03y04j09r03d03u07s0h40l30rs0f20lf"],["Noto Sans Zanabazar Square",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Noto Serif",300,1,1,"0gs0hy0gs09403h0k909902v0z92q805c09209w1li00b00803n04403i04203g04h02401z02r02x03g05w01w02f04o09q0ja0r70fn0m0","0gc0hb0fe0d402w0js08d03w0xi___05s0co0ej1ob00500a01s05603q04804c04h02m01203l04204z08i02s03m0710fc0j80pw0ef0j8","0jo0jo___07n058___02b02y1212xa03u094___1gu00000003e03l03703k03603103n04802x03303j06301u02d05109h0o00rs0g70n5"],["Noto Serif",400,1,1,"0i80i80i807y02y0kl09104013t23405c0bj0ca1jn00a00803204j03s03l04804502901s03w04504u08b02e03806v0g80jp0r70gg0mc","0gq0hq0gq0l902y0ji09604p10f1nv05k0e10ft1ky00900803704k03x04a04p03l02u00804l04x0670ac03604908p0hy0j20pv0fr0ko","0ku0ku___070058___08t04717s28v03z0bm___1ey00300302s04003a03l03403603v03v04504b04z09602a03407c0f00oz0rs0hd0ob"],["Noto Serif",700,1,1,"0ix0j70ix07b02b0jl08m05v1fo1e60a50eb0gc1iy00900902m04r04404e04n03a02l00y05p05y06q0as02r04c0am0jp0ji0qd0hs0md","0ir0ir0ir0io02z0jg08f06d18e15909w0gf0ik1hs00600a02w04q04504f04s03g02q00906706j07x0c903h0550ch0jw0j30pv0hr0mp","0mv0mv___06f04n___09006e1nj1ks09x0ej___1c100200302b04403i03q03703g04503805v06f0740cj02p0470ao0ot0pq0rs0ij0qm"],["Noto Serif Ahom",400,1,0,"0ia0ia0hp08002y0kn09104114223305c0bj0cc1k600a00803204j03804604704502801s03x04504v08e02e03706x0gk0jr0ra0gi0me","0h90hq0gr0kv02y0jh09704o0za1pd0480e80fr1lk00900903804k03w04a04q03j02v00804k04w06a0ad03604908j0hn0j20pv0fr0kp","0ku0ku___06z058___08s04718a28v03z0bl___1fk00200302s03z03a03m03503603u03v04504b04y09602a03307a0f30ox0rs0hd0ob"],["Noto Serif Armenian",300,1,1,"0gs0hy0gs09403h0k909902v0z92q805c09209w1li00b00803n04403i04203g04h02301z02r02x03g05w01w02f04o09p0ja0r70fn0m0","0gc0hb0fe0d402w0js08d03w0xi___05s0co0ek1ob00500a01s05603q04804c04i02m01203l04204z08h02s03n0700fc0j90pw0ef0j8","0jo0jo___07n058___02b02y11y2xa03u094___1gu00000003e03l03703k03603103n04802x03303j06301u02d05109h0o00rs0g70n5"],["Noto Serif Armenian",400,1,1,"0i80i80i807y02y0kl09104013s23405c0bj0cb1jn00a00803204j03s03l04804502901s03w04504u08b02e03806v0g80jp0r70gg0mc","0gq0hq0gq0l902y0ji09604p1091nv05k0e10ft1ky00900803704k03x04a04p03l02u00804l04x0670ac03604908p0hy0j20pv0fr0ko","0ku0ku___070058___08t04717s28v03z0bn___1ey00300302s04003a03l03403603v03v04504b04z09602a03407c0f00oz0rs0hd0ob"],["Noto Serif Armenian",700,1,1,"0ix0ix0ix09y02b0jl08o05v1fo1dw0990ea0gl1iz00900802m04q04304e04m03b02m00z05p05y06p0ar02r04b0ah0jp0jj0qd0hs0my","0iq0iq0iq0o102z0jg09706d18b1580ac0g50il1hv00800902w04p04504f04s03g02q00906706j07y0ce03h0560ce0jw0j30pv0hr0mo","0ml0ml___06j04n___09906e1nz1mo0af0eh___1c300300302b04403h03q03703g04403905w06e0710ci02p0480an0om0q20rs0j40qm"],["Noto Serif Balinese",400,1,0,"0ic0ic0ic07y02y0kp09204114223605c0bk0cb1jc00a00803204j03704504704502901s03x04604v08f02e03806x0gb0jt0rd0gk0mh","0hq0hq0gq0jo02y0ji09604p1071m705k0e00fq1kz00900803704l03x04a04q03k02u00804l04x0650ab03704908q0hy0j10pv0fr0ko","0ku0ku___070058___08v04717z28v03z0bm___1ey00300302s03z03a03l03403603v03v04404b04y09602a03407c0f10oz0rs0hd0ob"],["Noto Serif Bengali",300,1,1,"0gs0hd0gs08z03h0k909902v0z62pv05c09209w1lf00b00703n04303j04203f04g02301z02r02x03f05w01w02f04o09t0ja0r70fn0m0","0gc0hb0fe0kd02w0jr08d03v0x6___05c0cn0ec1o400500a01u05803p04604b04h02m01203k04104y08j02s03l06t0er0j70pw0fe0j8","0jo0jo___07j05s______02y11t2xa03u094___1gq00000003e03m03703k03603003n04902x03303i06101u02d05609g0oe0rs0g70n5"],["Noto Serif Bengali",400,1,1,"0hw0hl0i608c02y0kj09004013n22j05c0bi0ca1ju00a00803204i03s03m04704402801s03w04504t08902e03806w0gn0jn0r50gf0ma","0hq0hq0h80k802y0ji09604o1011nb04c0dz0fr1l300900903804j03x04a04p03k02u00904l04w0660ad03504808m0hm0j20pv0fr0jp","0ku0ku___071058___08s04717p28v03z0bh___1f100200302s03z03a03l03403503v03w04504b04y09502a03407a0ef0p00rs0hd0ob"],["Noto Serif Bengali",700,1,1,"0ix0j70ix07d02b0jl08m05v1fh1e40a50e80gk1j100900902n04r04304e04n03902l00z05705x06p0am02q0430a80jp0ji0qd0h70my","0iq0iq0iq0id02h0jg08e06d18m15o09o0g20il1hq00600a02x04q04404f04t03f02q00906206i07v0c003g04z0c80jw0j30pv0hr0mo","0ml0ml___06p04n___09006e1nu1kz0af0ee___1bx00200302c04403h03q03703f04403a05906f0730c502p0410aa0o90pr0rs0ij0qm"],["Noto Serif Devanagari",300,1,1,"0h30hy0gs09303h0ku09902w0zh2q705c09109w1kz00b00703l04103i03w03f04o01z02702t02z03g06201x02g04r0a00jp0rs0fn0m0","0gc0gc0fe0ki02w0jq08d03v0x5___04u0cb0e21oe00500a01u05903p04604a04h02l01303k04004z08j02r03l06t0ex0j80px0ef0j8","0j40j4___08105i______02y11q2wd03b093___1gy00000003e03m03603k03603103n04902x03303i06301u02d05409a0oc0rs0fn0nq"],["Noto Serif Devanagari",400,1,1,"0i80ij0hy08702w0ku09904214123305c0bf0cb1j200b00702z04g03m04103g04n02402103x04704w08h02f03906y0gb0k90rs0gs0ml","0gr0hq0gr0l902y0jh09704p10f1nv05k0e10ft1kw00900803704k03x04a04p03l02u00804l04x0670ad03604908q0hz0j10pv0fr0ko","0ku0ku___071058___08t04717p28v03z0bk___1ey00300302s04003a03l03403603v03v04504b04z09602a03407c0f00oz0rs0hd0ob"],["Noto Serif Devanagari",700,1,1,"0jz0k90jo07b02b0ku08w0671gh1de09m0eb0g81fk00900802i04m03v04703m04j02901r0600690740bb02x04j0aw0ku0kj0rs0ij0ob","0iq0iq0j80i601z0jg08e06d18315m08g0gf0i01hb00700902w04q04504d04t03h02r00906806k0800c903h0530cc0jw0j40pv0hr0lp","0n50n5___06h04n___09006e1ne1kz0ax0ef___1br00200302b04403i03r03703g04403805v06f0740ch02p0480ao0on0pr0rs0j40q2"],["Noto Serif Display",300,1,1,"0gs0hd0gs08y03h0k909902t1p61lz05c0780881n200a00803304604104903o04902401q02j02s02z03j00v01g03e08y0j50r70f20lf","0er0bz0fo0a503p0jy09h03w15m1ba0390by0cp1mo00800803a04604x04304603d02h00y03n03y04b05c01t03206u0gb0ij0px08b0hi","0j40j4___08a05s___03h02y1xw1p703u075___1hs00000102s03k03j03p03d03b03p03v02i02y03403n00t01d03j08w0ne0rs0fn0n5"],["Noto Serif Display",400,1,1,"0hy0hy0hy0880370ka09903y26w16y05c09b0ag1le00900802r04a04604g03r04602801k03b03x04604s00x01t05c0fa0jp0r70g70lz","09p08b0a60cn03p0jx09j04l1af0yv00e0e10dc1if00700802x04905504904a03902h00v04a04k04x05p01v03q09d0ir0hv0px07e0es","0k90k9___080058___08t0472jz1kn03u08y___1g500200302h03o03o03t03d03i03t03e03504704e05100u01m05e0cr0oe0rs0g70ob"],["Noto Serif Display",700,1,1,"0ix0ix0ix07a02b0jl08o05u3670yh09m0c80d31le00700802g04i04i04o04m03902d01104i05t06106j00x02l09j0jp0ji0qd0hs0my","0bv09w0gt0cl02z0jg09b06e1os0re0380g70gf1f200500902p04l04k04o04n03j02j00905n06d06p07f02g05l0f20ka0ix0ps08w0ht","0m00m0___07j058___09906a47111l09l0bu___1e200200302303q03v03y03f03r03y02y04906a06g07000t0210990n60pi0rs0ij0qm"],["Noto Serif Dives Akuru",400,1,0,"0ib0ib0ib08002y0ko09204114523g05c0bj0cl1is00a00803304j03804604704502801s03x04604v08f02e03806x0gs0js0rc0gj0mg","0h80hq0gq0kp03g0jh09604o0ze1lx05g0eb0fq1k900900903804l03x04904o03j02v00804k04w0670aa03604b08m0hq0j00pv0fr0ko","0l40l4___06u04x___08s04818328s03z0bj___1eh00200302s03z03b03l03503603u03v04504c04y09602a03307c0ev0oy0rs0hd0ob"],["Noto Serif Dogra",400,1,0,"0i80i80i808102y0kl09104013z22905c0bk0cc1jz00a00803204i03r03m04704502801s03w04504u08b02d03806w0ge0k00r80gh0md","0hq0hq0gq0k102y0jh09604p0ze1ja0310e80ft1la00900903704m03y04a04o03k02u00804l04x0680a803704a08m0hm0j20pv0fr0jp","0ku0ku___06y058___08u04717x28w03z0bm___1f900200302s04003b03m03403603u03v04404b04y09602a03307c0f50oz0rs0hd0ob"],["Noto Serif Ethiopic",300,1,1,"0gs0hy0gs09403h0k909902v0zb2q805c09209w1lh00b00803n04403i04203g04h02301z02r02x03f05w01w02f04p09m0ja0r70fn0m0","0gc0hs0fe0bh02w0js08d03w0xd___0540cp0ej1o900500a01s05703q04804c04h02m01203l04204z08i02s03m0700fc0j90pw0ef0j8","0jz0jz___07i058___02b02y11q2x803u093___1gp00000003e03l03603k03603103n04802x03303i06301u02d05309g0oc0rs0g70n5"],["Noto Serif Ethiopic",400,1,1,"0i70i70i707y02y0kk09004013t23405c0bi0ca1jm00a00803204j03s03l04804502901s03w04504u08a02e03706v0g80jz0r60gg0mb","0hq0hq0gq0if03g0ji09604p10c1nv0480e40ft1ku00900803704l03x04a04p03l02u00804l04w0680ac03604908q0hx0j20pv0fr0ko","0ku0ku___070058___08t04717z28z03z0bm___1et00300302s04003a03l03403503v03w04504b04z09602a0340770ep0oz0rs0hd0ob"],["Noto Serif Ethiopic",700,1,1,"0ix0ji0ix07c02b0jl08m05v1fm1e60a50eb0gc1it00900902m04r04404f04m03a02m00y05p05y06r0as02s04c0al0jp0ji0qd0hs0my","0ir0ir0ir0ip02z0jg08f06d18t15a0ai0gb0ik1hp00600a02w04q04504f04s03g02q00906706j07y0c903h0550cj0jw0j30pv0hr0mp","0n50n5___06d04n___09006e1ng1kw0ax0ee___1bt00200302b04403i03r03703g04403905v06f0740ch02p0480aq0om0pr0rs0ij0qm"],["Noto Serif Georgian",300,1,1,"0gs0hy0gs09403h0k909902v0z92q805c09209w1li00b00803n04403i04203g04h02301z02r02x03g05w01w02f04o09q0ja0r70fn0m0","0gc0hb0fe0d402w0jr08d03w0xd___05s0co0ej1ob00500a01s05603q04804c04h02m01203l04204z08i02s03n0710fc0j90pw0ef0j8","0jo0jo___07n058___02b02y1212xa03u094___1gu00000003e03l03703k03603103n04802x03303j06301u02d05109h0o00rs0g70n5"],["Noto Serif Georgian",400,1,1,"0i80i80i807y02y0kl09104013s23405c0bj0cb1jn00a00803204j03s03l04804502901s03w04504u08b02e03806v0g80jp0r70gg0mc","0gq0hq0gq0l902y0ji09604p1091nv05k0e10ft1ky00900803704k03x04a04p03l02u00804l04x0670ac03604908p0hy0j20pv0fr0ko","0ku0ku___070058___08t04717s28v03z0bn___1ey00300302s04003a03l03403603v03v04504b04z09602a03407c0f00oz0rs0hd0ob"],["Noto Serif Georgian",700,1,1,"0ix0ix0ix09y02b0jl08o05v1fo1dw0990ea0gl1iz00900802m04q04304e04m03b02m00z05p05y06p0ar02r04b0ah0jp0jj0qd0hs0my","0iq0iq0iq0o102z0jg09706d18b1580ac0g50il1hv00800902w04p04504f04s03g02q00906706j07y0ce03h0560ce0jw0j30pv0hr0mo","0ml0ml___06j04n___09906e1nz1mo0af0eh___1c300300302b04403h03q03703g04403905w06e0710ci02p0480an0om0q20rs0j40qm"],["Noto Serif Grantha",400,1,0,"0ic0ic0ic07y02y0kp09204114223605c0bk0cb1jc00a00803204j03704504704502901s03x04604v08f02e03806x0gb0jt0rd0gk0mh","0hq0hq0gq0jo02y0ji09604p1071m705k0e00fq1kz00900803704l03x04a04q03k02u00804l04x0650ab03704908q0hy0j10pv0fr0ko","0ku0ku___070058___08v04717z28v03z0bm___1ey00300302s03z03a03l03403603v03v04404b04y09602a03407c0f10oz0rs0hd0ob"],["Noto Serif Gujarati",300,1,1,"0gs0hy0gs0910370k909902v0z72qg05c09209w1l000b00703n04303i04203g04h02401z02r02x03f05w01w02f04o09v0ja0r70fn0m0","0gc0gc0fe0ki02w0jq08d03v0xd___04u0cs0ea1nl00500a01u05703p04704a04h02l01203l04104z08m02r03i06w0ew0j90px0ef0i9","0jz0jz___077058___08t02y11y2wz03h093___1gg00200203e03m03603j03503003n04802x03303j06201u02d05309g0nz0rs0g70n5"],["Noto Serif Gujarati",400,1,1,"0ib0ib0ib07y02y0ko09204113x23d05c0bj0cb1it00a00803304j03704604804502901s03w04604v08902e03906x0ga0k30rc0gj0mg","0gq0hp0gq0li02y0jh09604p0zm1m905g0e20fy1kd00900903704k03y04a04p03k02u00804l04w0690ab03604a08o0ho0j00pv0fr0ko","0ku0ku___070058___08s04718428u04h0bm___1eh00200302s03z03a03l03503603v03v04504b04z09602a03307c0f30oz0rs0gs0ob"],["Noto Serif Gujarati",700,1,1,"0ix0ix0ix07b02b0jl08o05v1fp1dx0ap0ea0gk1ih00a00902m04q04304e04m03a02m00z05p05y06p0ar02r04b0ag0jp0ji0qd0hs0md","0iq0iq0iq0om01z0jg09706e18e1620880gc0i31hf00800902w04p04504f04s03f02r00806706j07y0ch03h0560cg0jw0j40pv0hr0lp","0ml0ml___06l04n___09906d1nm1mv09x0ef___1br00300302b04403h03q03703g04403905v06e0710ck02p0470ae0oq0q20rs0j40qm"],["Noto Serif Gurmukhi",300,1,1,"0gs0hy0gs09603h0k909902u0zn2q905c09009w1lk00c00803o04303j04103g04h02201z02q02w03e05r01u02b04g09f0ja0r70fn0m0","0gc0hb0fe0dp02w0jq08d03w0xw___04n0cc0em1of00600a01s05703r04804c04i02j01203l04204z08c02r03n06x0fd0j70px0fe0j8","0j40j4___08404x___02b02y1302z703s094___1gw00000003f03l03603j03603103m04a02s03103i05s01u02904y09b0o00rs0g70n5"],["Noto Serif Gurmukhi",400,1,1,"0ht0ht0ht08a02v0k509703y13x23605c0b10ch1k400b00803304g03p04403j04g02801q03u04204p08402b03106i0g50jl0r00g30mf","0gq0hq0gq0lf02y0ji09604n10n1nq05k0dv0fs1l500900903a04j03x04904q03k02u00904j04u0600a503404408h0hp0j20pv0fr0jp","0ku0ku___06z058___08t04718o28v03z0bg___1f200300302t03z03a03l03403603u03x03u04904x08x02902z0710ed0oz0rs0hd0ob"],["Noto Serif Gurmukhi",700,1,1,"0ix0ix0ix07a02b0jl08m05v1fm1e60a50e80gc1iz00900902n04r04304e04m03902m00z05k05y06q0ap02q0470aa0jp0ji0qd0hs0md","0iq0i90iq0nm02z0jg08f06d18r15c0a40g40il1ht00600a02w04q04504f04s03g02q00906606j07v0c703g0550c90jw0j40pv0hr0mo","0mv0mv___06h04n___09006e1nl1kv09x0ei___1bu00200302c04403i03q03703g04503a05s06f0730cg02p0440ab0ol0q20rs0j40qm"],["Noto Serif HK",300,1,1,"0hc0hc0hc07r02w0i009902x15l2fd08108s09z1op00d00703w04804504i04e02v02w00e02s03003a05j01j0220480920hc0p20fm0k8","0gd0hb0gd0cx02w0hw0990400zx0ts05o0cf0e81qa00900a01z05804504g05502w02r00q03p04405107r02k03d06q0e20he0os0fe0ia","0ku0ku___08304n______0391dr2q7049090___1fc00000003g03g03903o03603503m04402z03a03j05a01n02104v09n0ol0rs0gs0ow"],["Noto Serif HK",400,1,1,"0hb0hb0hb07t02w0i509803a19t25x08109b0b11o500d00703q04a04704k04a03202r00g03503d03o05z01k02604n0ar0he0p30fl0ks","0hb0hb0hb09902w0hy0980481270su05k0cu0et1pb00800a01x05704704i05602w02q00q04004a05707z02i03h0700et0hg0ov0fe0j9","0lf0lf___074058___05s03p1j02i504z09t___1ew00000303a03h03c03p03603703n03x03a03p03y05s01q02505k0b30ox0rs0hd0ow"],["Noto Serif HK",700,1,1,"0ij0ij0j407402b0im09904z1pm1ie0a50c60du1m600a00803404j04h04q04503a02l00g04i05005d07n01q0330840hu0i00ph0gs0lf","0hq0i70hq08s02y0in0a305o1cz1690ak0eg0g11lq00a00903704j04f04o05102p02i00905805p06e08q02m04d0a70ip0hz0p20hq0ko","0lm0lm___06r04m___08505k26s1r108x0ch___1dm00100302q03n03m03u03903h03u03a04o05k05t08401r03008b0jo0pk0rs0ig0py"],["Noto Serif Hebrew",300,1,1,"0gs0hy0gs09403h0k909902v0z92q805c09209w1li00b00803n04403i04203g04h02301z02r02x03g05w01w02f04o09q0ja0r70fn0m0","0gc0hb0fe0d402w0js08d03w0xi___05s0co0ej1ob00500a01s05603q04804c04h02m01203l04204z08i02s03m0710fc0j80pw0ef0j8","0jo0jo___07n058___02b02y1212xa03u094___1gu00000003e03l03703k03603103n04802x03303j06301u02d05109h0o00rs0g70n5"],["Noto Serif Hebrew",400,1,1,"0i80i80i807y02y0kl09104013t23405c0bj0ca1jn00a00803204j03s03l04804502901s03w04504u08b02e03806v0g80jp0r70gg0mc","0gq0hq0gq0l902y0ji09604p10f1nv05k0e10ft1ky00900803704k03x04a04p03l02u00804l04x0670ac03604908p0hy0j20pv0fr0ko","0ku0ku___070058___08t04717s28v03z0bn___1ey00300302s04003a03l03403603v03v04504b04z09602a03407c0f00oz0rs0hd0ob"],["Noto Serif Hebrew",700,1,1,"0ix0ji0ix07c02b0jl08m05v1fn1e60a50e90gc1ix00900902m04r04304f04m03a02m00y05p05y06q0as02r04c0ak0jp0ji0qd0hs0my","0ir0ir0ir0k302z0jg08f06d18g1590a40g80ik1hs00600a02w04q04604f04s03f02q00906706j07x0c903g0550ch0jw0j30pv0hr0mp","0ml0ml___06h04n___09006e1na1kv0af0ei___1bw00200302b04403i03q03703g04503905v06f0750ci02p0490ar0oo0pr0rs0j40qm"],["Noto Serif Hentaigana",300,1,1,"0gs0hd0gs09102w0k909902v1072q105c09009u1kg00c00703o04303k04003g04h02301z02s02x03e05q01u02d04n09m0j80r70fn0m0","0gb0ha0fd0ja03d0jp08c03w0xq___0480cj0ej1n900500a01u05703q04604b04h02l01203m04104w08702q03i06z0f40j80pv0ee0j7","0k90k9___07604n___08u02y12d2za03z08x___1fw00300203g03l03603j03203003n04a02w03103h05p01t02b0510940o00rs0gs0n5"],["Noto Serif Hentaigana",400,1,1,"0hq0ic0h508e02y0kp09203r14e26x05c0an0bk1gv00a00803804d03704604704502701u03n03u04f07m02702y06a0ep0jr0rc0gk0mg","0gq0hp0gq0dz02y0ji09604h1051my05x0dl0f91i900900803c04h03x04a04o03m02u00904d04o05q09p03104307y0h40j00pv0fr0ko","0kk0kk___071042___08t03w1892e403z0at___1cx00200302y03t03903l03503503t03z03r03z04h08102302u06t0cy0ow0rs0gs0ob"],["Noto Serif Hentaigana",700,1,1,"0ji0ji0j709j01q0jl08m0661ho1c40bg0et0gs1e000800902k04r04504f04n03a02l00y05z0680720b802u04h0bf0js0jj0qd0hs0my","0ir0jq0i90mm01z0jg08e06p1aa1400a60gm0io1cx00600902u04q04604g04t03h02p00806h06t08d0cs03l05h0d80k90j40pv0hr0mp","0n50n5___06y02w___09206p1ox1jg0ax0eq___17y00200302904403j03q03703i04603606206q07e0d102r04f0bg0pe0q20rs0j40qm"],["Noto Serif JP",300,1,1,"0hc0hc0hc07r02w0i009902x15l2fd08108s09z1op00d00703w04804504i04e02v02w00e02s03003a05j01j0220480920hc0p20fm0k8","0gd0hb0gd0cx02w0hw0990400zx0ts05o0cf0e81qa00900a01z05804504g05502w02r00q03p04405107r02k03d06q0e20he0os0fe0ia","0ku0ku___08304n______0391dr2q7049090___1fc00000003g03g03903o03603503m04402z03a03j05a01n02104v09n0ol0rs0gs0ow"],["Noto Serif JP",400,1,1,"0hb0hb0hb07t02w0i509803a19t25x08109b0b11o500d00703q04a04704k04a03202r00g03503d03o05z01k02604n0ar0he0p30fl0ks","0hb0hb0hb09902w0hy0980481270su05k0cu0et1pb00800a01x05704704i05602w02q00q04004a05707z02i03h0700et0hg0ov0fe0j9","0lf0lf___074058___05s03p1j02i504z09t___1ew00000303a03h03c03p03603703n03x03a03p03y05s01q02505k0b30ox0rs0hd0ow"],["Noto Serif JP",700,1,1,"0ij0ij0j407402b0im09904z1pm1ie0a50c60du1m600a00803404j04h04q04503a02l00g04i05005d07n01q0330840hu0i00ph0gs0lf","0hq0i70hq08s02y0in0a305o1cz1690ak0eg0g11lq00a00903704j04f04o05102p02i00905805p06e08q02m04d0a70ip0hz0p20hq0ko","0lm0lm___06r04m___08505k26s1r108x0ch___1dm00100302q03n03m03u03903h03u03a04o05k05t08401r03008b0jo0pk0rs0ig0py"],["Noto Serif KR",300,1,1,"0hc0hc0hc07r02w0i009902x15l2fd08108s09z1op00d00703w04804504i04e02v02w00e02s03003a05j01j0220480920hc0p20fm0k8","0gd0hb0gd0cx02w0hw0990400zx0ts05o0cf0e81qa00900a01z05804504g05502w02r00q03p04405107r02k03d06q0e20he0os0fe0ia","0ku0ku___08304n______0391dr2q7049090___1fc00000003g03g03903o03603503m04402z03a03j05a01n02104v09n0ol0rs0gs0ow"],["Noto Serif KR",400,1,1,"0hb0hb0hb07t02w0i509803a19t25x08109b0b11o500d00703q04a04704k04a03202r00g03503d03o05z01k02604n0ar0he0p30fl0ks","0hb0hb0hb09902w0hy0980481270su05k0cu0et1pb00800a01x05704704i05602w02q00q04004a05707z02i03h0700et0hg0ov0fe0j9","0lf0lf___074058___05s03p1j02i504z09t___1ew00000303a03h03c03p03603703n03x03a03p03y05s01q02505k0b30ox0rs0hd0ow"],["Noto Serif KR",700,1,1,"0ij0ij0j407402b0im09904z1pm1ie0a50c60du1m600a00803404j04h04q04503a02l00g04i05005d07n01q0330840hu0i00ph0gs0lf","0hq0i70hq08s02y0in0a305o1cz1690ak0eg0g11lq00a00903704j04f04o05102p02i00905805p06e08q02m04d0a70ip0hz0p20hq0ko","0lm0lm___06r04m___08505k26s1r108x0ch___1dm00100302q03n03m03u03903h03u03a04o05k05t08401r03008b0jo0pk0rs0ig0py"],["Noto Serif Kannada",300,1,1,"0hd0hy0hd09003h0kv09b02y0zv2qu05c08z0a41kh00c00703m04403j03x03g04r01y01z02u03003i05t01w02g04u0a70jd0rs0g70ml","0gc0hs0gc0d502w0jr08c03w0xb___05x0cp0e21ou00600a01t05803q04704b04g02l01303l04104y08i02r03l06v0f70j70pw0fd0j8","0j40j4___085058___09003013r2vu03u090___1g900300203g03o03703h03803103k04202y03303j05n01r02b05209p0oh0rs0g70nq"],["Noto Serif Kannada",400,1,1,"0ij0ij0ij0890370kz09b04414823205c0be0ce1il00b00803004i03n04103h04q02201u03z04904x08p02f0370710go0k90rs0hd0n5","0gq0h80gq0l902y0ji09604p0zq1ok05g0e40g41li00900803804k03x04a04q03j02u00804l04w06a0ae03604a08o0hu0j10pv0fr0ko","0ku0ku___07605s___08x04a19l28s04z0bj___1em00200302t04203b03n03703603r03s04604d05009b02803307a0ex0ph0rs0hd0ow"],["Noto Serif Kannada",700,1,1,"0k90k90k907e02b0l109b06a1hm1cx0ap0ef0gj1fg00a00802j04m03w04703n04m02601o06306c0750bm02v04f0b30l40kx0rs0j40ob","0iq0iq0i90oa01z0jg09706d18815e08n0g00ik1i300800902w04p04404e04t03h02q00906806j07y0cf03h0540cg0jw0j40pv0hr0mo","0n50n5___06k04n___09b06h1px1mq0ax0ek___1bo00300302c04403i03p03a03f03x03e05x06i0740cm02n0460an0p20q90rs0j40qm"],["Noto Serif Khitan Small Script",400,1,0,"0hz0ia0ho08c02d0kn09104113s22l05c0bi0cb1eq00a00803204j03704604804502801s03x04604v08c02e03806x0gi0k10ra0gi0me","0hq0hq0gr0ie01z0ji09604p0zn1n80450e30fr1g000900903804l03x04a04q03j02v00904l04w0680ab03604a08p0hr0j10pv0fr0ko","0ku0ku___06y042___08u04718428t03z0bm___1aw00200302s03z03a03m03503603u03v04504b04y09602a0330790f30oz0rs0hd0ob"],["Noto Serif Khmer",300,1,1,"0gs0hy0gs09403h0k909902v0z92q805c09209w1li00b00803n04403i04203g04h02301z02r02x03g05w01w02f04o09q0ja0r70fn0m0","0gc0hb0fe0d402w0js08d03w0xi___05s0co0ej1ob00500a01s05603q04804c04h02m01203l04204z08i02s03m0710fc0j80pw0ef0j8","0jo0jo___07n058___02b02y1212xa03u094___1gu00000003e03l03703k03603103n04802x03303j06301u02d05109h0o00rs0g70n5"],["Noto Serif Khmer",400,1,1,"0i80i80i807y02y0kl09104013t23405c0bj0ca1jn00a00803204j03s03l04804502901s03w04504u08b02e03806v0g80jp0r70gg0mc","0gq0hq0gq0l902y0ji09604p10f1nv05k0e10ft1ky00900803704k03x04a04p03l02u00804l04x0670ac03604908p0hy0j20pv0fr0ko","0ku0ku___070058___08t04717s28v03z0bn___1ey00300302s04003a03l03403603v03v04504b04z09602a03407c0f00oz0rs0hd0ob"],["Noto Serif Khmer",700,1,1,"0ix0ji0ix07c02b0jl08m05v1fn1e60a50e90gc1ix00900902m04r04304f04m03a02m00y05p05y06q0as02r04c0ak0jp0ji0qd0hs0my","0ir0ir0ir0k302z0jg08f06d18g1590a40g80ik1hs00600a02w04q04604f04s03f02q00906706j07x0c903g0550ch0jw0j30pv0hr0mp","0ml0ml___06h04n___09006e1na1kv0af0ei___1bw00200302b04403i03q03703g04503905v06f0750ci02p0490ar0oo0pr0rs0j40qm"],["Noto Serif Khojki",400,1,1,"0ic0ic0ic07z02y0kp09204113z23605c0bj0cb1jc00a00803204j03704504704502901s03x04604v08e02e03806x0gb0jt0rd0gk0mh","0hq0hq0gq0jo02y0ji09604p0zy1m705k0e10fq1kz00900803704k03x04a04q03k02u00804l04x0660ab03604808q0hy0j10pv0fr0ko","0ku0ku___071058___08t04717x28v03z0bk___1ey00300302s03z03a03l03403603v03v04504b04y09602a03407c0f10oz0rs0hd0ob"],["Noto Serif Khojki",700,1,1,"0ix0ix0ix0a502b0jl08o05v1fs1e00990e70gl1j000900902n04q04304e04m03a02k00z05705x06o0am02p0440a30jp0jj0qd0h70my","0iq0i90iq0n902z0jg09706d18116g09h0g00il1hx00800902w04p04504e04s03f02q00906206i07x0c503g0500c10jw0j40pv0hr0mo","0ml0ml___06p04n___09906d1on1mz0af0ed___1c300300302c04303h03q03703f04303a05906e0700c302p0410a80of0q20rs0ij0qm"],["Noto Serif Lao",300,1,1,"0gs0hy0gs09403h0k909902v0z92q805c09209w1li00b00803n04403i04203g04h02301z02r02x03g05w01w02f04o09q0ja0r70fn0m0","0gc0hb0fe0d402w0js08d03w0xi___05s0co0ej1ob00500a01s05603q04804c04h02m01203l04204z08i02s03m0710fc0j80pw0ef0j8","0jo0jo___07n058___02b02y1212xa03u094___1gu00000003e03l03703k03603103n04802x03303j06301u02d05109h0o00rs0g70n5"],["Noto Serif Lao",400,1,1,"0i80i80i807y02y0kl09104013t23405c0bj0ca1jn00a00803204j03s03l04804502901s03w04504u08b02e03806v0g80jp0r70gg0mc","0gq0hq0gq0l902y0ji09604p10f1nv05k0e10ft1ky00900803704k03x04a04p03l02u00804l04x0670ac03604908p0hy0j20pv0fr0ko","0ku0ku___070058___08t04717s28v03z0bn___1ey00300302s04003a03l03403603v03v04504b04z09602a03407c0f00oz0rs0hd0ob"],["Noto Serif Lao",700,1,1,"0ix0ji0ix07c02b0jl08m05v1fn1e60a50e90gc1ix00900902m04r04304f04m03a02m00y05p05y06q0as02r04c0ak0jp0ji0qd0hs0my","0ir0ir0ir0k302z0jg08f06d18g1590a40g80ik1hs00600a02w04q04604f04s03f02q00906706j07x0c903g0550ch0jw0j30pv0hr0mp","0ml0ml___06h04n___09006e1na1kv0af0ei___1bw00200302b04403i03q03703g04503905v06f0750ci02p0490ar0oo0pr0rs0j40qm"],["Noto Serif Makasar",400,1,0,"0ib0ib0hq08202y0ko09204114223705c0bi0cl1kd00a00803204j03704604704502901s03x04604u08c02e03806y0gl0js0rc0gj0mg","0hq0hq0hq0js02y0ji09604p0zt1lg04y0e80fp1lw00900903704n03x04a04o03i02v00904l04w0660aa03604d08l0hl0j10pv0fr0ko","0ku0ku___06z058___08v04718528v03z0bl___1fr00300302s03z03a03l03503603v03v04504b04y09702a03407b0f10oz0rs0hd0ob"],["Noto Serif Malayalam",300,1,1,"0gs0hd0gs09303h0k909902v0zf2pp05c0920a51ku00b00703m04403k04203f04g02301z02r02x03g05w01w02f04p0a40ja0r70fm0lz","0gc0gc0fe0kl03d0jq08d03v0xb___04u0cn0e21ng00500a01t05803q04704a04h02l01203l04104z08h02r03k06v0ez0j90px0ef0j8","0jo0jo___07l058______02y11t2x903u094___1g700000003e03m03603k03603103n04902x03303i06301u02c05409g0oe0rs0g70n5"],["Noto Serif Malayalam",400,1,1,"0ib0ib0ib08402y0ko09204114223a05c0bj0cl1io00a00803204i03804604804502901s03x04604v08a02e03806x0gj0k20rb0gj0mf","0gq0gq0gq0k902y0ji09604o0zc1ke04y0e20fr1ka00900803804k03x04b04p03l02u00904l04w06a0ae03604808k0hq0j10pu0fq0kn","0ku0ku___07004n___08t04718128u04h0bj___1ec00300302s04003a03m03403603v03v04504b04z09602a03407c0ex0oz0rs0gs0ob"],["Noto Serif Malayalam",700,1,1,"0ix0ix0ix07d02b0jl08m05v1ft1e50ap0ea0gc1ib00900902m04r04304e04m03a02m00y05p05y06q0ar02r04b0af0jp0ji0qd0hs0my","0ir0jq0i90km01z0jg08e06f18h16y09w0g30i61h200700a02w04q04604f04s03e02q00806706k07x0ca03i0570co0jw0j30pv0hr0mp","0mv0mv___06i042___09006e1na1ks0ax0ef___1bj00200302b04403i03q03703g04503905v06f0740ci02p04a0am0om0q20rs0ij0qm"],["Noto Serif NP Hmong",400,1,1,"0ia0ia0ia07y02y0kn09104114123605c0bj0cb1ji00a00803204j03704504704502901s03w04504u08d02e03806w0g90jr0ra0gi0me","0hq0hq0gq0jo02y0ji09604p1001m705k0e10fq1l000900803704k03x04a04q03k02u00804l04x0660ab03604808q0hy0j10pv0fr0ko","0ku0ku___070058___08t04717z28v03z0bm___1ey00300302s03z03a03l03403603v03v04504b04y09602a03407c0f10oz0rs0hd0ob"],["Noto Serif NP Hmong",700,1,1,"0ix0ix0ix09y02b0jl08o05v1fn1dx0990ea0gl1iz00900902m04q04304e04m03b02m00z05p05y06p0as02q04b0ah0jp0jj0qd0hs0my","0iq0iq0iq0nu02z0jg09706d17x1570ac0g90ij1hv00800902w04q04504e04s03g02r00906606j07y0ce03i0550cd0jw0j40pv0hr0mo","0ml0ml___06j04n___09906e1o71mo0af0eh___1c500300302b04403h03q03703g04403905w06e0710cf02p0470an0om0q20rs0j40qm"],["Noto Serif Old Uyghur",400,1,0,"0ib0ib0hq08202y0ko09204114223705c0bi0cl1kd00a00803204j03704604704502901s03x04604u08c02e03806y0gl0js0rc0gj0mg","0hq0hq0hq0js02y0ji09604p0zt1lg04y0e90fp1lw00900903704n03x04a04o03i02v00904l04w0660aa03604d08l0hl0j10pv0fr0ko","0ku0ku___06z058___08v04718528v03z0bl___1fr00300302s03z03a03l03503603v03v04504b04y09702a03407b0f10oz0rs0hd0ob"],["Noto Serif Oriya",400,1,1,"0h30k90gs08e02w0jc08p03t14c22j05c0bg0ck1kt00b00803904l03y04c03r04902j00n03o03x04l07r02802x06a0f50ir0pi0f20lf","0gr0jp0gr0la02y0ji09704o10r1ol02y0e20fv1jh00900903a04m04004c04p03p02g00904j04v0640a003504708g0hn0j10pq0es0ko","0ku0ku___07a04c___08t04719m28t04h0bi___1dk00300302v03z03b03o03303903z03k03m04904w09402902x0710eb0od0rs0g70ob"],["Noto Serif Oriya",700,1,1,"0ij0m00j407r01r0jo08p05u1fz1eb09m0ea0g51ha00a00902p04t04804j03z04402e00k05f05x06o0ap02p0440ac0jl0ja0q20g70ml","0iq0lp0iq0kr01z0jg09706e18l14p0990g10hz1g200800902w04s04804h04u03l02b00906606k07z0c603h0530cg0jw0j30ps0gr0mo","0ml0ml___06u02w___09906d1oh1mr0af0ed___1af00300302d04503i03s03603j04602z05i06f0710cc02o0440ad0ob0p50rs0hd0qm"],["Noto Serif Ottoman Siyaq",400,1,0,"0ic0ic0ic07y02y0kp09204114223605c0bk0cb1jc00a00803204j03704504704502901s03x04604v08f02e03806x0gb0jt0rd0gk0mh","0hq0hq0gq0jo02y0ji09604p1071m705k0e00fq1kz00900803704l03x04a04q03k02u00804l04x0650ab03704908q0hy0j10pv0fr0ko","0ku0ku___070058___08v04717z28v03z0bm___1ey00300302s03z03a03l03403603v03v04404b04y09602a03407c0f10oz0rs0hd0ob"],["Noto Serif SC",300,1,1,"0hc0hc0hc07r02w0i009902x15l2fd08108s09z1op00d00703w04804504i04e02v02w00e02s03003a05j01j0220480920hc0p20fm0k8","0gd0hb0gd0cx02w0hw0990400zx0ts05o0cf0e81qa00900a01z05804504g05502w02r00q03p04405107r02k03d06q0e20he0os0fe0ia","0ku0ku___08304n______0391dr2q7049090___1fc00000003g03g03903o03603503m04402z03a03j05a01n02104v09n0ol0rs0gs0ow"],["Noto Serif SC",400,1,1,"0hb0hb0hb07t02w0i509803a19t25x08109b0b11o500d00703q04a04704k04a03202r00g03503d03o05z01k02604n0ar0he0p30fl0ks","0hb0hb0hb09902w0hy0980481270su05k0cu0et1pb00800a01x05704704i05602w02q00q04004a05707z02i03h0700et0hg0ov0fe0j9","0lf0lf___074058___05s03p1j02i504z09t___1ew00000303a03h03c03p03603703n03x03a03p03y05s01q02505k0b30ox0rs0hd0ow"],["Noto Serif SC",700,1,1,"0ij0ij0j407402b0im09904z1pm1ie0a50c60du1m600a00803404j04h04q04503a02l00g04i05005d07n01q0330840hu0i00ph0gs0lf","0hq0i70hq08s02y0in0a305o1cz1690ak0eg0g11lq00a00903704j04f04o05102p02i00905805p06e08q02m04d0a70ip0hz0p20hq0ko","0lm0lm___06r04m___08505k26s1r108x0ch___1dm00100302q03n03m03u03903h03u03a04o05k05t08401r03008b0jo0pk0rs0ig0py"],["Noto Serif Sinhala",300,1,1,"0gs0hd0gs09202w0k909902u0z02qb05c09009w1hv00b00703n04303i04203g04h02301z02r02x03f05x01w02f04j09n0j90r70fn0m0","0gc0ha0fd0f102w0jq08c03w0xd___04q0co0ek1ke00500a01u05703r04604b04i02l01203m04105008k02s03l0720fb0j90pw0ef0j7","0jo0jo___07k042______02y11y2yy03u094___1du00000003f03l03603k03603003n04902u03203i06301u02d05009a0oc0rs0g70n5"],["Noto Serif Sinhala",400,1,1,"0ic0ic0ic08302d0kp09204013l23j05c0bb0ca1fy00a00803304i03704604804402801s03w04504v08702f03706w0gi0js0rd0gk0mh","0gq0hq0gq0mp02y0ji09604o0z71my0480e20ft1hd00900903804l03x04904p03j02v00804k04v0650ab03604b08l0hl0j10pv0fr0jo","0ku0ku___06z042___08s04717z28w03z0bg___1c200300302s03z03a03l03403603v03w04004a04y09602a0340790es0oz0rs0hd0ob"],["Noto Serif Sinhala",700,1,1,"0ix0ix0ix07e0200jl08m05v1fl1e70ap0eb0gl1fm00900902m04r04304e04m03a02m00z05j05y06q0ar02s04c0ae0jp0ji0qd0h70my","0iq0i90iq0pb01z0jg08d06d18q15t0a40gb0ie1eo00700902w04q04504e04s03h02r00906706j07w0c903h0540cg0jw0j40pv0hr0mo","0mv0mv___06h02w___09906e1n71l70ax0ed___19b00300302b04403h03q03703g04503905q06f0740ch02p0490ag0oh0q20rs0ij0q2"],["Noto Serif TC",300,1,1,"0hc0hc0hc07r02w0i009902x15l2fd08108s09z1op00d00703w04804504i04e02v02w00e02s03003a05j01j0220480920hc0p20fm0k8","0gd0hb0gd0cx02w0hw0990400zx0ts05o0cf0e81qa00900a01z05804504g05502w02r00q03p04405107r02k03d06q0e20he0os0fe0ia","0ku0ku___08304n______0391dr2q7049090___1fc00000003g03g03903o03603503m04402z03a03j05a01n02104v09n0ol0rs0gs0ow"],["Noto Serif TC",400,1,1,"0hb0hb0hb07t02w0i509803a19t25x08109b0b11o500d00703q04a04704k04a03202r00g03503d03o05z01k02604n0ar0he0p30fl0ks","0hb0hb0hb09902w0hy0980481270su05k0cu0et1pb00800a01x05704704i05602w02q00q04004a05707z02i03h0700et0hg0ov0fe0j9","0lf0lf___074058___05s03p1j02i504z09t___1ew00000303a03h03c03p03603703n03x03a03p03y05s01q02505k0b30ox0rs0hd0ow"],["Noto Serif TC",700,1,1,"0ij0ij0j407402b0im09904z1pm1ie0a50c60du1m600a00803404j04h04q04503a02l00g04i05005d07n01q0330840hu0i00ph0gs0lf","0hq0i70hq08s02y0in0a305o1cz1690ak0eg0g11lq00a00903704j04f04o05102p02i00905805p06e08q02m04d0a70ip0hz0p20hq0ko","0lm0lm___06r04m___08505k26s1r108x0ch___1dm00100302q03n03m03u03903h03u03a04o05k05t08401r03008b0jo0pk0rs0ig0py"],["Noto Serif Tamil",300,1,1,"0gs0hy0gs09503h0k909902v0zb2q805c09209w1lj00b00803n04403i04203g04h02301z02r02x03f05w01w02f04o09w0ja0r70fn0m0","0gc0hb0fe0d502w0jr08d03w0xf___05s0co0ej1ob00500a01s05703q04804b04h02m01203k04204z08i02s03p0700fb0j90pw0ef0j8","0jo0jo___07p058___02b02y1232x803u094___1gu00000003e03l03703k03603103n04802x03303j06401u02d05109h0o00rs0g70n5"],["Noto Serif Tamil",400,1,1,"0i80i80i807z02y0kl09104013q23505c0bj0cb1jn00a00803204j03s03l04804502901s03w04504u08b02e03806v0g80jz0r70gg0mc","0gr0hq0gr0l902y0ji09704p1011nv05k0e10ft1kw00900803704l03x04a04p03k02u00804l04x0670ad03604908p0hz0j10pv0fr0ko","0ku0ku___071058___08t04717p28v03z0bk___1ey00300302s04003a03l03403603v03v04504b04z09602a03507c0f00oz0rs0hd0ob"],["Noto Serif Tamil",700,1,1,"0ix0ix0ix0a202b0jl08o05v1fj1dw0990ea0gl1iz00900902m04q04304e04m03a02m00z05p05y06p0ar02r04b0ac0jp0jj0qd0hs0my","0iq0iq0iq0o302h0jg09706d1881580ac0g50il1hv00800902w04p04504f04s03g02q00906706j07y0ce03h0550cb0jw0j30pv0hr0mo","0ml0ml___06l04n___09906e1nt1mo0af0eh___1c300300302b04403h03q03703g04403905w06e0710ci02p0480ai0om0q20rs0j40qm"],["Noto Serif Tangut",400,1,0,"0hy0hy0hy08802m0kb09904013t22p05c0bd0ck1ga00b00803104h03p04403j04g02b01p03v04504u08e02d03806x0g90jr0r70gs0m0","0h80hq0gr0lt02h0ji09604o0yz1n40480e50fr1hc00900903804m03x04804p03k02v00804l04w0660ac03704c08l0hq0j10pv0fr0jp","0ku0ku___06y042___08s04718b28w03z0bi___1c300200302s03z03b03m03503603v03v04504b04y09502a03407d0ez0oz0rs0hd0ob"],["Noto Serif Telugu",300,1,1,"0g70j40fn08u0370jc08p02r0z22ou05c08z09y1nx00b00803t04803s04b03k04d02l00o02o02t03c05u01s02b04i09c0ij0ow0eh0ku","0gc0i90fv0h902w0jq08d03x0xy___04q0ci0e71nv00500a01u05803u04a04904n02g00v03m04204y08h02r03j06x0f20j80ox0fe0j8","0j40j4___08205s______02y12g2wu03b096___1gn00000003f03n03703n03403503w03r02w03203i06001u02c0510970nd0rs0fn0nq"],["Noto Serif Telugu",400,1,1,"0hd0k90hd08102w0jd08p03u13w22m05c0bg0cl1m700a00803804l03z04d03q04c02i00m03q03y04p07w02a03206l0fh0ir0ph0fn0lf","0hp0jo0gq0jl02y0ji09504o10e1nt04u0ds0fs1kw00900903a04m04004c04p03r02e00904k04v0660aa03404708h0hn0j10p20fq0kn","0ku0ku___070058___08t04718h28u03z0bl___1eq00300302u03z03b03o03303a04003h04204b04z09502a0320750ee0ob0rs0hd0ob"],["Noto Serif Telugu",700,1,1,"0j40m00j40710210jo08d05u1g31ei09m0ec0g41j100900902q04t04804j03z04402d00k05n05x06p0aq02p0480aa0jl0j90q20hd0ml","0hr0l70hr0my02h0jg08e06e19516p0880g10i81ho00700902x04r04704g04u03m02b00906706k07w0c903f0540c90jw0j30ps0hr0lp","0n50n5___06g04n___09006e1o11kv0af0ec___1bm00200302d04503j03s03603l04602x05w06f0740ci02o0440aa0of0oy0rs0ij0qm"],["Noto Serif Thai",300,1,1,"0gs0hy0gs09403h0k909902v0z92q805c09209w1li00b00803n04403i04203g04h02301z02r02x03g05w01w02f04o09q0ja0r70fn0m0","0gc0hb0fe0d402w0jr08d03w0xd___05s0co0ej1ob00500a01s05603q04804c04h02m01203l04204z08i02s03n0710fc0j90pw0ef0j8","0jo0jo___07n058___02b02y1212xa03u094___1gu00000003e03l03703k03603103n04802x03303j06301u02d05109h0o00rs0g70n5"],["Noto Serif Thai",400,1,1,"0i80i80i807y02y0kl09104013s23405c0bj0cb1jn00a00803204j03s03l04804502901s03w04504u08b02e03806v0g80jp0r70gg0mc","0gq0hq0gq0l902y0ji09604p1091nv05k0e10ft1ky00900803704k03x04a04p03l02u00804l04x0670ac03604908p0hy0j20pv0fr0ko","0ku0ku___070058___08t04717s28v03z0bn___1ey00300302s04003a03l03403603v03v04504b04z09602a03407c0f00oz0rs0hd0ob"],["Noto Serif Thai",700,1,1,"0ix0ix0ix09y02b0jl08o05v1fo1dw0990ea0gl1iz00900802m04q04304e04m03b02m00z05p05y06p0ar02r04b0ah0jp0jj0qd0hs0my","0iq0iq0iq0o102z0jg09706d18b1580ac0g50il1hv00800902w04p04504f04s03g02q00906706j07y0ce03h0560ce0jw0j30pv0hr0mo","0ml0ml___06j04n___09906e1nz1mo0af0eh___1c300300302b04403h03q03703g04403905w06e0710ci02p0480an0om0q20rs0j40qm"],["Noto Serif Tibetan",300,1,1,"0j80jt0ix08o03k0mn0a203i11l2jq06y0950ar1f800b00703g04c03103z04003t03i01803d03l04106i02702x0630e40gr0ns0hq0o8","0gc0hs0fe0ht02w0jq08c0420y6___0480da0ez1no00500a01r05703q04904c04h02m01103u04705808v02u03u07c0fo0j80px0fe0j8","0kp0kp___08705m0gk09h03l1372ox09f090___1bo00300303k04903003p04a02v03k02f03h03m03y05d02403106u0dr07v0rs0fz0q0"],["Noto Serif Tibetan",400,1,1,"0k30kp0ji08503k0mo0a204f14k23d07h0az0cq1dz00b00803004n03304004103w03d01904a04l05608902n03k0800j30hr0re0ic0ou","0gq0hq0gq0l902y0ji09604p10d1nv05k0e20ft1l000900803704k03y04a04p03l02u00804l04w0670ac03604908q0hy0j20pv0fr0ko","0lv0lv___07s05c0gn09n04m18r24g08y0aw___1ad00300303204i03203r04702y03p02h04e04n05107002g03p08q0l10ds0rs0fz0ql"],["Noto Serif Tibetan",700,1,1,"0lv0mh0lv07e02d0n20a206r1iu1c30cu0e80fy1bh00a00802j04o03a04504703y03901c06h06t07g0b603304x0cm0mu0ld0rs0kp0ql","0iq0iq0iq0nu02z0jg09706d18b1580ac0g50il1ht00800902w04q04504e04s03g02q00906706j07y0ce03h0560ce0jw0j40pv0hr0mo","0o80o8___07g045___0a206z1rh1mv0cg0dw___17y00300302i04h03603t04503203v02l06807007e0a902u04s0c90qc0k40rs0ji0sz"],["Noto Serif Todhri",400,1,0,"0hw0hw0hw08f02w0kd09804013x23805c0bm0cm1jj00b00803004g03o04203i04o02701q03w04504u08h02e03806x0g90js0ra0g50mi","0hm0il0hm0jd02y0ka09904s10k1j304u0dz0fd1k500900803504k03r04504e03s02m00x04m04y0670af03804a08t0ia0jq0qr0gn0kk","0ku0ku___072058___08w04818e28r04h0bl___1eo00200302s04003a03l03503603t03x04504c04z09702a03407a0f30p30rs0hd0ob"],["Noto Serif Toto",400,1,1,"0ia0ia0ia07y02y0kn09104114123605c0bj0cb1ji00a00803204j03704504704502901s03w04504u08d02e03806w0g90jr0ra0gi0me","0hq0hq0gq0jo02y0ji09604p1001m705k0e10fq1l000900803704k03x04a04q03k02u00804l04x0660ab03604808q0hy0j10pv0fr0ko","0ku0ku___070058___08t04717z28v03z0bm___1ey00300302s03z03a03l03403603v03v04504b04y09602a03407c0f10oz0rs0hd0ob"],["Noto Serif Toto",700,1,1,"0ix0ix0ix09y02b0jl08o05v1fn1dx0990ea0gl1iz00900902m04q04304e04m03b02m00z05p05y06p0as02q04b0ah0jp0jj0qd0hs0my","0iq0iq0iq0nu02z0jg09706d17x1570ac0g90ij1hv00800902w04q04504e04s03g02r00906606j07y0ce03i0550cd0jw0j40pv0hr0mo","0ml0ml___06j04n___09906e1o71mo0af0eh___1c500300302b04403h03q03703g04403905w06e0710cf02p0470an0om0q20rs0j40qm"],["Noto Serif Vithkuqi",400,1,1,"0i70i70i707y02y0kk09004014023405c0bj0cb1jn00a00803204j03s03l04804502901s03w04504u08b02e03706v0g80jz0r60gg0mb","0hq0hq0gq0if03g0ji09604p0zx1m70480eb0fq1kw00900803704l03x04a04p03l02u00804l04w0680ab03604908s0hu0j10pv0fr0ko","0ku0ku___070058___08t04718428z03z0bl___1eu00300302s04003a03l03403503v03w04404b04y09602a0340770eq0oz0rs0hd0ob"],["Noto Serif Vithkuqi",700,1,1,"0ix0ix0ix09z02b0jl08o05v1fn1dx0990ea0gl1iw00900902m04q04304e04m03b02m00z05p05y06p0as02q04b0ah0jp0jj0qd0hs0my","0iq0iq0iq0nu02z0jg09706d1811570az0g90ij1hu00800902w04q04404e04s03g02r00906606i07x0ce03i0540c70jv0j40pv0hr0mo","0ml0ml___06h04n___09906e1o11mo0af0ef___1bz00300302b04403h03q03703g04403905w06f0710ci02p0460at0om0q20rs0ij0q2"],["Noto Serif Yezidi",400,1,1,"0ia0ia0ia07y02y0kn09104114123605c0bj0cb1ji00a00803204j03704504704502901s03w04504u08d02e03806w0g90jr0ra0gi0me","0hq0hq0gq0jo02y0ji09604p1001m705k0e10fq1l000900803704k03x04a04q03k02u00804l04x0660ab03604808q0hy0j10pv0fr0ko","0ku0ku___070058___08t04717z28v03z0bm___1ey00300302s03z03a03l03403603v03v04504b04y09602a03407c0f10oz0rs0hd0ob"],["Noto Serif Yezidi",700,1,1,"0ix0ix0ix09y02b0jl08o05v1fn1dx0990ea0gl1iz00900902m04q04304e04m03b02m00z05p05y06p0as02q04b0ah0jp0jj0qd0hs0my","0iq0iq0iq0nu02z0jg09706d17x1570ac0g90ij1hv00800902w04q04504e04s03g02r00906606j07y0ce03i0550cd0jw0j40pv0hr0mo","0ml0ml___06j04n___09906e1o71mo0af0eh___1c500300302b04403h03q03703g04403905w06e0710cf02p0470an0om0q20rs0j40qm"],["Noto Traditional Nushu",300,0,1,"0hd0hy0h305k04n0kh09902o0ta0rs01608g09w1fq00a00702v04903m04b03q04n01w02102k02p03605102c02n04n09n0ij0r80g70ij","0gz0hz0gz07a0300kj08m03x0tu___01p0c60dq1gm00500901m04y03y04j04o03u02801o03l03z04u08s0390470800fo0j00qu0fz0hz","0i80ij___067058______02o0te0rs00008h___1b700000002n03u03a03z03l03403j03t02k02p03505102c02o04u0960j90rs0f20ku"],["Noto Traditional Nushu",400,0,1,"0hy0hy0hy09h04n0ku09903v0vd0rs03j0bp0cu1dr00a00702d04p03r04c03r04j02901o03q03w04l08x03b03u07z0hf0j60rg0f20j4","0gz0gz0hg08803s0js08z04h0u80mr05w0e00fm1f800800802h04n03w04d05r03302k00m04a04k05n0az03y04o09z0hk0id0qj0g10iv","0hy0hy___0a5058___06h03w0v60rs00w0bs___19p00100402404903e04003i03804803003r03y04k09s03d03v07s0gu0li0rs0f20lf"],["Noto Traditional Nushu",700,0,1,"0jo0jo0jo0770420l00990650x50rs07h0gh0hr1as00800901x04u03z04e03y04g02f01e06106807v0f205206b0fl0mw0kb0rs0hy0lf","0ia0hs0is08m03y0jh09806d0wz0lo09g0ia0jf1ap00600a02904z04d04p05303d02h00606406h09s0f005806w0fr0mb0j00pu0gt0js","0j40j4___09404n___0730650wo0rs03l0gs___15w00100401q04g03l04103h03g04l02e06306d08e0g105506k0f30rj0nv0rs0fn0ml"],["Noto Znamenny Musical Notation",400,0,0,"0hy0hy0hy09j04n0ku09903v0vc0rs03j0bp0cv1il00a00702c04o03r04c03r04k02901o03q03x04l08v03b03t07y0h90j50rf0f20j4","0hx0hx0gz07z03s0jr08z04i0ue0mm05c0e10fq1ka00800802h04o03u04d05s03202k00m04a04k05n0b503x04m09r0hk0iz0qi0g10iv","0i80ij___0a505i___06h03w0v30rs01c0bq___1du00100402404903d03z03j03804803003s03y04k09r03d03v07r0gh0l20rs0f20ku"],["Nova Cut",400,2,0,"0fk0fk0fk0a90570kf07y03y0xe0qj00z0cm0dr1l300400802604n04c04m03w03y02a01m03x03y04a07002q03q08i0j20io0r90ez0ig","0fd0fd0fd09l04t0jr07704m0uv___00z0eo0g81n000100801904w04e04p04q03m02c01o04h04m05909f03u04v0bl0ix0ia0qz0dg0ha","0ig0ig___0cc06c______03y0yw0qj00u0bu___1fg00000001z04403w04e03503g04002v03x03y04b07h02p03q07y0mh0mp0rs0410ig"],["Nova Flat",400,2,0,"0fn0gs0f209z05s0k907r03y0td0ql0100e60ey1jk00500902a04z03w04703z04002h01n03y03z04m0c203n0400aj0k50jq0rs0cq0ij","0fn0hl0fn0a005e0l408704q0ta1ln0100g40hm1ib00500902c04r03t04304k03o02j01p04n04q05t0dj04f0540dc0kv0jw0ro0cp0ik","0ij0ij___0b106y0f2___03z0tz0qh00g0e0___1d600000002004g03e03x03g03704f02z03y03z04l0cu03n03x09e0p70p60rs0db0ij"],["Nova Mono",400,4,0,"0eh0gs0eh06w05s0k908403d0ow0rg00j0cj0ee1i100600e02h04u03w04903x03x02g01j03b03f04608h03g04407g0ig0j40r90eh0hd","0es0gr0es07i04y0l708804b0pe0dj00i0f20gv1hx00300e02304x03y04604p03p02j01a03z04d05h0bk04i05c0at0ix0jt0ro0es0gr","0hd0hd___06y04c______03d0rf0rh0000c7___1h000000002804703c04303c03a04f02x03b03d04109903b03r07a0mt0oc0rs0gs0hd"],["Nova Oval",400,2,0,"0fn0hd0fn09b0580k907r0400s30qj0100d40e61is00400802405303z04f04303s02j01i03y04304z09003i04g0810hs0j40r80db0j4","0fm0hl0fm09l04w0kh08504r0sk0ka0100es0gs1i000400802704x03w04904o03i02j01j04n04w05u0bb04d05b0ax0ig0jq0rm0cp0jj","0j40j4___09r05s______0430t80qi00g0c7___1dg00000001w04m03g04203k03804g02l03z04504y0a403h04b07c0is0n60rs0eh0ku"],["Nova Round",400,2,0,"0fn0gs0f209u05s0k907r03z0sf0qh0100dp0ei1jo00400902504y04104a04303w02i01l03y04104u0aa03n04g0a00j20jc0rg0cq0ij","0fa0h60fa09m0590km08004n0s80lp0100fq0hg1js00400902604r03y04504o03m02i01n04k04r05s0bv04d05g0cs0jf0jc0r00cf0i5","0ij0ij___0av06y______03z0tl0qg00g0dq___1d400000001y04f03h03y03i03a04f02u03y04004s0bs03n0470900nu0oc0rs0dw0ij"],["Nova Script",400,2,0,"0ij0j40gs08g0370k907r0420t50x90370bq0dk1jo00400802905303z04904003u02j01i04104404z09503h04e07q0ds0ij0r70g70m0","0ik0k10hl08e02y0l508604w0sz0rr0500dn0g31j500400902c04y03w04504l03k02j01j04t05005y0as04c05d09z0g00iv0rk0gm0ng","0jo0jz___0ad03h______0450ti0qg01c0bg___1ec00000001z04n03f03x03g03704k02n0410470500ah03g04d07c0di0lj0rs0eh0m0"],["Nova Slim",400,2,0,"0fn0gs0f209x05s0k907s03y14d0qj0100cl0do1ki00500802d04k04804f03x04102601r03y03y04406302f03c0930j40jc0rh0db0ij","0f90g70f909o05q0kn07z04o10o0lz0100ew0fz1kh00500802d04j04204a04h03u02v01204k04p05108903a04h0c60ji0jc0r10ce0i4","0ij0ij___0aw06y______03y1760qi00g0cd___1e700000002603y03o04103k03j03r03503y03z04305y02d03108f0nu0oc0rs0dw0ij"],["Nova Square",400,2,0,"0g50ha0fk09y06c0jm08j0420ue2gy0100em0fi1hz00700803104j03t04503x03u02c01s04104204k0cz03o03x0b60kz0jo0ro0d90j0","0fo0hm0fo09z05v0kc08604q0tg1hv0100fw0hh1ia00400902e04q03t04204l03l02j01s04n04r05p0ds04e0530di0kx0ju0rq0cq0il","0j00j0___0b006x0f8___0420uf2v000g0em___1c900000002t04003a03x03d03204603904104204i0ds03p03r09h0qm0pj0rs0du0j0"],["Numans",400,0,0,"0k60kr0jw08o0570lc06z03z0vs0rs08e0bh0ci1d700200b02f04m03s04903l04q02a01t03w04104w09003603u06t0fw0jo0ro0j10lx","0jp0kp0jp07j04x0m206i04q0v3___04t0du0ea1ef00000a01f05103y04a04e04l02h01f04k04t0610bu03y04r0920hh0kl0rk0iq0lo","0lw0lw___0a605r______0400x80rs0350bf___19000000002804303g04403d03703y03e03v04204r08f03303q06v0eg0ll0rs0fk0n2"],["Nunito",300,0,1,"0hr0ic0h706b0560ip07q02u0sw0rs06t0940b31jr00600803m04403x04d05302a02901t02q02w03g05k02h02v04p0al0gw0qw0fh0iw","0hr0ir0gs06i03y0je07h0420sn0lj0280ce0ee1k100200902r04p04204i05802i02o01303o0440520ah03l04507f0eq0h90qv0fs0jq","0k90k9___05l06d______02v0sw0qy00j08n___1ct00000002e04003d04603h03303o03n02p02w03d05i02i02v04p08q0j50rs0hd0m0"],["Nunito",400,0,1,"0hy0hy0h308i04n0j407803l0uc0p70590b80ch1iq00300a02d04x04204e04g03a02b01p03h03n04d07s03203i06g0ep0hg0r80fn0jo","0hs0ir0gs07b03y0je07f04k0u80k10370dd0fl1io00200a02j04x04604l05702h02m00z04b04m05v0bb03z04j08z0gl0hy0qv0ft0kq","0jz0k9___09c05s______03n0u60p502b0ak___1bt00000002304903g04203k03704403403i03p04a08503303l06b0d10kf0rs0g70ml"],["Nunito",700,0,1,"0j40jo0i807404c0j407805b0wh0ol0930ep0g71g000200a02005504604j04i03602l01e05605c06q0dt04a0520b90jd0i40rc0hy0lf","0it0it0ht07202z0je07f05y0wo0wz07n0fs0hv1ev00100a02905004904p05802i02r00t05k06007s0ey04r05t0ch0ja0i20qx0gt0lr","0k90k9___09d04n______05d0w30oj03l0e7___18800000001p04i03i04503k03b04n02g05905i06v0gd04h0570ax0mv0m60rs0gs0n5"],["Nunito Sans",300,0,1,"0hl0i50h006g0540it07d02u0t60rs0540900b31kf00400902m04l03t04805003402901u02p02v03g05p02g02u04p0ac0h10r80fb0iq","0hr0iq0gr06b03y0je0820430sw0ne03c0c80e51k200200902s04n04204j05802i02o01303p0440510aq03l04507i0ey0h90qw0fs0jq","0k90k9___07006d______02v0t10rs01308r___1ct00000002g03z03d04503h03303n03p02p02w03d05i02i02v04q08x0j60rs0hd0ml"],["Nunito Sans",400,0,1,"0hy0ij0hn09304n0j407803m0uj0rs0660b90cn1j200300902f04w04204e04f03902b01q03i03n04e07r03103i06f0ew0hg0rc0fn0j4","0hr0ir0hr08303y0je07d04l0ua0mq04g0dd0fg1j500200902m04v04504l05602i02m00z04c04m05t0bb03y04k08x0gt0hy0qx0gs0kq","0jo0k9___09405s______03n0u70rs03s0ak___1bw00000002504803f04203k03604203703i03q04b08803303k06d0da0jx0rs0gs0n5"],["Nunito Sans",700,0,1,"0jo0jo0ij07704n0j407805a0wh0rs0990eu0g71gj00300a02305304504h04h03502l01g05605d06p0dz04a0520b70jb0i80rs0hy0lf","0it0ja0it07p03y0je07e05y0wl0ty0860g10hq1f400200a02c04z04704n05602i02r00v05j0600810f204s05s0cg0j40i20qz0ht0lr","0k90k9___0an04n______05d0w00rs0440ee___18g00000001s04h03i04303j03a04l02k05a05j06t0gp04h0570ao0n50m60rs0gs0nq"],["Nuosu SIL",400,0,0,"0i60i60h009c02y0iv08w03t16p1z60990ai0cf1kw00b00803604d04203o04w02x02402303n04204r06w01u03005x0e60i60rs0fu0lp","0hw0hw0hw0fr02z0j908j04q11f0r206n0de0fg1l200500c01p05604304d05602w01p02904h04x05z09002t04908e0gx0iq0r00ex0kw","0nf0nf___08f04p___02w0481hc26h0b10ai___1ce00000002y03n03i03904603g03503p03o04a04z06y01t02o0670db0o50rs0ft0ri"],["Odibee Sans",400,2,0,"0b00dw0b008j02w0i109x03v0rg21d0130hg0kz2a900e00a03404q04404i04h02q02x00l03v03w04h0au03v05e0hr0qd0il0q30b00eg","0eq0f80bs0f402y0j70a704q0px0nd0500ip0li1zw00b00c02f04s04104h05103002p00r04k04s08n0bv04y07c0i40ow0jm0qs0bs0ho","0f10f1___06i03h0gt___0420rp2pu0000h8___1vl00000002q04403c03k03r03904802w04104204u0e004204n0fm0sa0qt0rs0f10f1"],["Odor Mean Chey",400,1,0,"0jm0jm0jm09201q0k70870620zw1bl07s0ge0i81iz00600b02405603v04604303z02e01k05w06c09f0et04i05r0dv0kw0jt0rs0hb0mi","0kh0kh0jz0l40220k508k06o0z411j0a10hf0jk1g300500c02i05503204b04y03s02j01406e0760a50fi05406i0fp0mq0jp0rq0if0xs","0ke0ke___0df03i___08i06a0zn1ba03a0he___1dm00200401v04m03e03603w03b03u03k06406h09o0f804q06d0dv0qr0py0rs0in0nw"],["Offside",400,2,0,"0f20fn0f207q05s0ku08p0330u20rs0130bv0cj1n100b00802v04n03w04m03d04t02s00c03303303c08702s03107b0it0jw0pj0eh0g7","0fe0gc0fe06p05s0lp0870410s70uc0130em0fb1o800500b01n05003t04b04204p03200s03r04304p0au03m04d0aq0jm0l40px0ef0gc","0gs0gs___08q06y0fp___03b0u10rr00h0c6___1jb00000002g04603e04503903603s03i03a03c03i07h02z03908a0nf0oj0ru0cq0hd"],["Oi",400,2,0,"29k2hu1gw0rc0730nb04x0bh1440vk0rs0m00ng0vk00000a01v04j03z04h04p04503h00d0e80h30ry0ud09z0hh0o80q60np0q01ph2nr","33l2ph3hq0w207t0ng05q0cm1br___0rs0ls0mq0i200000c02d04904c04904g04h03100b0me0sx0ww1pl0fq0np0pp0qz0o10q32kl4si","0yy0yy___0b902b___04309a0un___0qy0oj___0qy00000501j03y04303y03z03n04802a0gd0jb0vb0xn0av0ii0r80s00ri0s30w312e"],["Ojuju",300,0,1,"0g70g70g706c04n0j408201i0hm0wv01306x07p1p500a00704e04202w03n03z03q01u02v01f01l02503y02702d02w05p0gf0rf0dv0hx","0gc0gc0gc07903u0jo07i02t0j81h50260be0cq1rf00300c02g05902y03u04v03k02602c02n02z04c0a803j0440560bq0hg0r00ef0ia","0hy0hy___06a05s0ft___01k0hu0z300006z___1j900000003w03v02n03a03802e03c05601g01m02104c02902g03105y0hz0rs0f20j4"],["Ojuju",400,0,1,"0g70gs0g706d04n0j408401o0fu0wt01308308p1ok00800803s04r02t03k04503g02e02i01l01s02k07l02o02z03k06q0gh0rg0eh0ij","0gd0gd0fw05u03v0jo07h02u0ii___0130bq0cq1qe00300b02005p03203t04v03e02b02902m03104l0b003x04c05j0bc0i60r00eg0ia","0ig0ig___06405s0gd___01q0ff0y2000080___1i700000003d04p02i03303602903q05001m01t02f07u02x03503q06w0ip0rs0g50jm"],["Ojuju",700,0,1,"0ig0j10hv05j03h0jm08402r0cg0rv05g0eg0f51h300500b02805r03h03e04703e03401t02k0380ai0gm05l06l07n0ck0ig0rs0gq0k7","0hr0jq0hr06y02z0jf08603g0el0i102u0gd0gd1gs00400c02f05m03p04104t03502x00r03604b0bq0gd06307708j0dy0i30qz0gr0jq","0kr0kr___0450410ig___02u0ar0ve01j0es___19p00000001x05503v02x02f03605h02v02q03g0d10ir06z07f08k0d10mi0rs0j10lx"],["Old Standard TT",400,1,0,"0gp0if0g408f0410hu09703h1fg1zl05w0at0b91oc00a00803a04604b04e04902s02c01t03303h04105k01l02805k0d80he0rm0ee0j0","0gc0hb0fe07w03u0hr08e04e15c0t903r0e50fg1p900500a01q04w04604d05002v02f01z03x04k05e07u02g03r08n0g30i30r00dg0i9","0kr0kr___06y06c______03u1lw2aj0490ar___1hf00000003403h03j03n03903i03n03o03003v04b05w01l0280650d80p30rs0fl0nn"],["Old Standard TT",700,1,0,"0if0if0g40870410ii09704y1w919506j0dl0en1mi00800902o04804g04k03z03902f01s04604x06207101o03809v0im0ig0rs0ez0k5","0hq0hq0fr08703y0ie09705o1ea0x504x0fz0h81lf00700a02u04c04h04j04u02g02i01e05105u06t08q02j0540c60jn0i00rr0es0jp","0lx0lx___06g062______05y2fk1ou05a0dn___1fq00000002j03j03s03w03e03r03q03703t05y06e07s01p02v0an0nb0q20rs0hb0nn"],["Oldenburg",400,2,0,"0kn0mo0i10bu02x0ia09o03p0tl2aw0da0b50dj1fx00b00903t04m03q03905e02902102703m03x05o0ag03703n0600bt0ha0rl0hg0nu","0jq0mo0hr0i602z0jg09g04j0sg1qs07v0dh0ga1fp00700a02w04x03n03t04v03b02l01d04e04x07r0cz04404q0800fh0iw0rq0gr0no","0og0og___080041___02f03t0ur29h0930b7___1bi00000102j04l03703c03403504203w03n03w05f0am03503m0650b60n30rr0go0qg"],["Ole",400,3,0,"0dw0e6___0iu01s___0fd0270rc0ny0f609t___2hq00i01h02y05004605103a02l02700m01s02a03104701p02a03k06l0cf0mn0an0l9","0g70oa___0mf01t___0cf0400sl0p10990el___1zz00r00w02104k05x04s03703m01p00e03904706c09803404b0790ay0de0mh09w0ll","0n50n50ma06s01r0m007102e0vj0p10mq09g08w21200901d02z04003r04g03g04202s00r01y02g03704i01n02603d0630hy0nq0lf0ob"],["Oleo Script",400,2,0,"0hy0hy0hy0j302b0gx08p05y16u0vn06f0g30hj1ud00800e02905504f04s04602802r01h05t06406l09u03b0620de0hx0gu0rf0af0k9","0i80ir0f710s0310hw08l06m12t0r40770h20j71nw00600g02g05704j03o04u02a02s01g06f06s07r0d404d0790fm0jr0gl0rn0f70rd","0ij0ij___0gv02m___08p06816y0ve03t0fs___1jr00500a01s04i03p03p03503o04h02f06506b06r0a103j0630di0mn0oc0rs09u0n5"],["Oleo Script",700,2,0,"0k90k90k90ga01r0gy08p07g1ad0u90990hj0je1o400800f02505704k04v04102902r01d07b07m0870dh04407p0ge0lk0gu0rg0c60ob","0la0lt0h90m60210h508k08417b0o30bi0ih0ln1dd00600f02e05904n03t04r02b02r01c07t0880aw0gb05609h0gz0o50gm0rn0h90uf","0k90k9___0fd02b___08p07o1b20w503o0hq___1fp00500a01r04i03s03r03603s04h02807i07q08b0c704607n0g60qf0p00rs0bl0ow"],["Oleo Script Swash Caps",400,2,0,"0ii0ii0i70n102b0gx0cs05w15x0vz0a40fd0hj1uz00a00g02904w04e04t04602902u01h05m06006l0a703a05g0c50hl0gv0r80f10q0","0jq0j80pn0ug01z0he0c406f12b0rs0d80gr0k11og00900g02g04z04h04z04602e02y00s06706n08w0d904806k0er0id0g80qv0gs0wk","0v90v9___0qr01r0nb0c705x1770y60ju0dz___1q700900h02104403r04503d03w04q01204p05z06n0aa03804w0a20ic0nc0qm0j421i"],["Oleo Script Swash Caps",700,2,0,"0k80k80k80um01q0gx0cu07e1am0u70df0h90jn1ot00a00f02604z04i04x04302b02t01e07107i08a0do04006w0fd0k00gv0r90gr10e","0m70l81z210502z0go0ce07w16b0oc0c60id0l31do00800g02d05104l05304302i02s00q07i0840ca0gf05008e0g90mc0g70qv0hs1u4","0ox0ox___0oz02b___0c707a1bj0uk0dw0gp___1l200900g01y04203r04403y03f04j01c05w07d08b0ci03t0620ch0ll0nq0qn0h71dv"],["Onest",300,0,1,"0j70js0ib07p04n0k809n03a0sp0rs06o0a80bi1i800a00703804f03p03r04c04501z01s03503e04207g02x03d05o0cz0ih0r80hg0js","0j80jq0i908103y0kg09d04a0sc0ls06f0d20e71jg00700902j04t03s04c04o03m02j01204104d05g0b703x04j07w0g60j00qx0hr0kp","0k90k9___07c058______03c0tp0rs0310a2___1c200000002604903b04803903304403d03503f03y07p02w03c0600c00kg0rs0ij0m0"],["Onest",400,0,1,"0ix0jh0in09m0400kc09h03v0tb0rs06p0bx0cv1hr00a00802w04m03p04b04j03b02e01k03p04004s09x03g0410700gb0it0rd0h70k2","0ir0jr0hs08203y0kf09804o0t90lx05c0dx0f71iu00600a02e04y03w04c04r03h02k01004e04s0640cu04904y08w0h60j30qy0hs0kr","0k90k9___0a7058______03z0ut0rs03l0bt___1bq00000001z04e03d04603c03504d03103q04104q0b103g03y07a0f90lh0rs0f20m0"],["Onest",700,0,1,"0kx0l80k207903g0kc09l0610u60rs0a50gg0i01e700900a02d04x03z04a04s03402m01a05v06708q0hb05g06e0dr0lb0jr0rs0ix0md","0jt0kt0jt07u02z0kf09e06c0to0ls09t0h50ir1cq00600b02205104404f04x03c02m00v06506l0aj0h705u06w0er0lk0jw0r10iu0lt","0l30l3___09b040___02f0640um0rs05e0gh___16f00000001k04i03j03y03v03d04302y05w06b08w0ii05i06e0cz0py0nb0rs0ho0nd"],["Oooh Baby",400,3,0,"0ob0ob___0h404n___0bn0250pp1s10f605t___1y800h00g03905g04k05002s02b02t00r01x02802v04601t02b03i0550ce0ow0g713d","0wn0wn___0ed04t___0b603v0qn___0et0a2___1s800j00g02v05l04j05003802b02o00p03d03z05e08a03c04506h0900dh0ow0ha15a","0mp0mp___0gq02x___02o0200q9___0c705m___1h000000102l04g03d03g04b03q04401t01w02402n04101p02503704j0gh0pm0fq0uv"],["Open Sans",300,0,1,"0hd0hd0gs05m0580kf09902d0si0rs01607q08y1lb00a00803204303m04c03p04m01u02302a02f02u04e02302e0410890i40r70g70ij","0gz0gz0gz0750400kk08o03o0sz___02a0by0d21m100500a01r04u03w04k04m03y02201r03f03q04m08803504107k0el0j00qv0fz0hz","0hy0ij___06205s___02b02e0sv0rs00007k___1g300000002t03q03804003l03303g03y02a02f02s04c02402e04c0800io0rs0f20ku"],["Open Sans",400,0,1,"0hy0hy0hn0940580ku09903l0ur0rs0220b10c31is00a00802g04k03q04d03p04j02801q03g03n04a08803303k06y0f30is0rf0fn0j4","0gl0hi0gl08c04m0jc08s0480tg0m204a0dl0f11ll00800802j04k04y04g04l03202l00n04004a05e0ad03q04e0920ga0hy0py0fo0if","0hy0i8___09y05s___06h03n0uq0rs02b0b4___1e600100402604503c04003k03704603303i03o04908c03503m06z0em0ki0rs0f20lf"],["Open Sans",700,0,1,"0jo0jo0jo07o04n0l10990650x50rs08k0gr0hv1eu00800a01y04t03z04e03x04h02f01e06006707w0f405206a0f90lz0ka0rs0hy0ku","0iw0iw0iw06s03s0kf09006c0w40ku08k0hh0iy1el00700a02504q03z04d05u03c02e00k06406g09n0f705a06v0fk0lu0j70qj0h00ju","0j40j4___09c058___0750650wp0rs03l0gr___19g00100401q04g03l04103i03g04l02d06306c08b0g105506n0f30rl0nt0rs0fn0ml"],["Oranienbaum",400,1,0,"0gq0h00f007m02b0ig09t03n1pi1i80470a70bp1vi00b00902v04604h04k04003902701q03803k03w04q0170260630fe0hw0rs0du0hv","0ft0ft0et0k102z0hp0a404n17a13k0310e40g71up00b00a02z04a04m04l05a02402a01304c04n05206m02404509t0hj0hw0r10cu0gs","0gq0gq___09803h___05n03p1tl1i700h0a9___1rb00000202h03k03t03y03h03m03r03502v03p03z04b01602706g0f20nu0rs0ay0j1"],["Orbit",400,0,0,"0hw0i60hw07a04x0k708r03b0sg0rs0330b50cw1cb00500a02m04s03r04003z04502202203903g04909j03203i0650eg0io0rs0gq0j1","0hb0hb0hb07h03u0jt07h0470rx___0210dj0fe1ds00100c01e05703t04104q04302702103z04b05i0cq04004l08x0g00j50rq0gc0ia","0hw0i6___09p04x______03b0sk0rs0000bo___1bq00000002d04503c03h03r03503v03q03903d04108q03203h06m0gh0nc0rs0g60j1"],["Orbitron",400,0,1,"0ly0q00ly09e03h0ka08y03c0rq4ge0j80by0ce1bc00c00503w04503504j02r05103900n03b03d0430jx03b03c04f0g00kt0q00ld0qk","0op0rs0mn0ak0330mb08v04e0rs3dh0lf0e50do18c00700903104p02804504004o03e01704604g05y0la04c04g0640j90mo0r30mn0rs","0sd0sd___0an0420f8___03i0rr5ko0kq0bl___12s00000003k03n02h04l02y02i04304003h03j04m0mp03i03i04r0dz0nz0rs0lf0sd"],["Orbitron",700,0,1,"0ly0q00ly07y03h0kb08y0540rr2ru0kb0gm0hl18g00800902x04v03e04i03r04e03000j0530560b10lr05405709y0le0kt0q00ld0ql","0lr0pq0lr07r02z0ld08i05o0rr0la0kb0hd0ij17600500b02f05b03c04f04h04g02u00505e05t0dx0l405n05r0ba0ln0ls0py0lr0qq","0rs0rs___0a20420gf___05h0rn3gk0ju0gr___0zh00000002l04a02o04903902q05602w05g05i0980qn05i05i08t0r70pj0rs0jo0sd"],["Oregano",400,2,0,"0eh0gs0dw0dg02w0g70b703i0qi0q402y0ba0dy21r00d00e02k05704g04y03s02502k01g03503j04c06n03403y06h0de0em0qr0c60jo","0fv0fv0dv0j301z0ge0al04l0ri0ak05p0e10hs1w000a00f01n05c04j05104i02702r01204104l05x0a90450590950fa0fr0qp0cw0lt","0ij0ij___0c6042___08403u0t10ps0240b4___1kv00400b01x04k03k03u03j03904202o03703u04k07g03703v06e0dd0j50rh0db0m0"],["Orelega One",400,2,0,"0m00m00lf06q02b0kh08q06u1a41830dd0h10he1dz00600b02704t04004903r04a02i01i06i07e09j0eg03x05v0d20ku0ke0rs0ku0nq","0ma0ma0la0e30210k808n07e1740zg0bd0i60j61d200400c02h04s04403a04k04702l01c0730810ax0gh04m06r0gb0nw0ki0rr0k90ob","0ob0ob___0a004n___08p07f1gj1d50cl0h8___18900100302004c03k03u03303l04g02t07d0810at0f903w05p0cs0q80q60rs0ku0sy"],["Orienta",400,0,0,"0gs0g70h308l04n0jo08p03v0vg0rs0220dc0dx1lw00900a02m04v04704o03y04102k00f03u03x04m08y03704108x0i60ij0of0dw0hy","0gc0gc0gc06w03u0jp07i04j0tw0i901m0f40gj1m700300d01e05604704n04r04302l00k04f04l0650b703z04z0au0ir0id0ox0fe0hb","0hv0hv___09i05s______0450vr0rs0000dh___1fe00000002304a03i04503e03e04c02o04304504s09p03f04c09j0lh0m40rs0d90jm"],["Original Surfer",400,2,0,"0iq0k50i508y03e0i508i04v17o0qf0am0cv0eg1lk00700b01y04n04h04p05102m02s01504j05005g06t02f04408q0gw0hl0qo0fv0kz","0jp0kp0iq0am02y0hq09a05o1540t10b80en0h61ij00900b02u04f04g04k04v02c02s01105d05w06h0a10380540b70ic0hx0qz0fr0mn","0lx0lx___09j04m______05a19v0te06i0ca___1an00000001s03z03q04603503m04303b04y05d05u07702i04708k0iy0n60ru0hb0py"],["Oswald",300,0,1,"0b00cq0af06b03h0jo06d02t0tt0rs0000cd0f02dz00100b02g04m04604f03z03y02b01m02s02u02z04f02e03c0990jb0j50rf0af0db","0bs0dr0bs08q02y0ji0730400sq1c50140g60i22ac00100a02i04n04604i04s03a02f01803o04204j08203h05d0ds0jx0j40rq0at0dr","0db0db___05c04n______02x0ur0rs0000ca___24l00000002704003o03u03m03l03v03102t02x03004e02e03c0930n90nc0rs09u0dw"],["Oswald",400,0,1,"0ca0dh0bp07i02x0jl06r03z0v61qb0130gc0ih27r00100b02u04m04c03x04v03b02701d03y04004807e03d05l0f60n70jl0rg0bp0e2","0dt0et0bu09j02z0jg06h04p0tb13o01t0hv0jr24700000902b04p04a04j04u03902j01404l04q05o0a704d06y0gu0nm0js0rq0bu0et","0dm0dm___08x03h___02w0440ws0rv0000fo___20u00000001u04603s03z03j03q04b02j03x04404907703d05l0ea0qz0oi0rs0990eh"],["Oswald",700,0,1,"0dw0f20dw06g02w0jo06l05t0y10t20130jx0kv1xl00100b01z04t04h04l04703n02l01905r05w06m0c104s0a80jq0r90jq0rs0db0fn","0et0fs0dt05x02z0jf07806e0wr0le00k0l00mj1qh00000a02604p04f04l04u03902j01206706k09b0d905r0cl0jp0qo0jt0rr0dt0fs","0g70g7___06403h___03h06c10p0vg0000kq___1qv00000001o04703w04003j03w04e02806206c0750ck04v0bc0q80rj0q70rs0cq0gs"],["Outfit",300,0,1,"0is0is0is0780440ix08803e0ry0rs07d0a80bq1k100600a02d04w04203m05g02v02502103903h04808303103l05v0cc0h70rk0gf0jy","0in0in0in08403x0jd08804e0sb0lm06y0d70ec1jg00500a02e04t03z04a05a02u02f01e04604h05k0ce04304q08b0f20hx0rn0go0kl","0jd0jd___08w05v______03h0so0rs03z0ae___1ch00000002704b03h03a04c02q03x03l03a03i04607t03103l05w0b90jk0rs0hm0ma"],["Outfit",400,0,1,"0ij0ij0ij08p0420j40840460su0rs07c0c90dr1k700600a02404y04304e04s03302d01m0400490590ay03q04e07z0fq0hj0rf0gs0jo","0jm0jm0im08i03x0jb08804z0tn0mf0860dz0fp1iy00500a02904s04104c05c02w02f01d04m05106g0db04h0590a90gx0hy0rn0go0kl","0j40j4___0av04n______04a0ts0rs0410c6___1bn00000001x04d03h03z03m03804e02u04104b05a0bv03q04g07d0fp0kc0rs0fn0lf"],["Outfit",700,0,1,"0k90k90k90d002w0j408906g0ve0rs0af0gc0il1fd00500b01v04y04a04l04m03202m01e06b06n09a0gu05l06x0f60mf0il0rs0hy0n5","0jt0jt0jt0b202z0ip08b06v0v90lh0ai0hg0ke1cr00400b02304x04e04w05502h02l00w06m0730bs0h606007o0g60mi0i30r20ht0mr","0m00m0___09a042______06m0w60rs06y0gi___17c00000001m04i03m04203k03e04o02d06f06s09o0im05l06x0eq0qi0n70rs0k90ph"],["Over the Rainbow",400,3,0,"0dh0ew___0ed01q___0dh0260mp0p903h08e___2bo00d00g01y05j05705j04o02j01f00701x02702s04902602v0530a30b70jz0ab0g1","0du0m8___11805g___0f803s0px0kg0af0c7___1vh00c00g02905t05d05n04i02l00t00303403t05x08203g04y09g0er0d70k60cu0qo","0ee0fk___0a801q___07x0270o90vf02y08g___21r00100802d04t04q05403z04n01q00602102902x04l02302o04j08x0d10m10c30gp"],["Overlock",400,2,0,"0f20f20eh0990420hd09b0340te0wh02z0ax0c91sx00b00902w04y04g04o04x02d02u00602z03803u06m02m0370620ci0gd0ow0cq0g7","0ff0ff0eg08803d0hu08h0430st0xr0280dw0g11vc00500a01i05a04c04l05g02n02u00q03u04605809k03i04g08v0fs0h90pu0dh0gd","0h30hd___0bp04n___06e03m0uo0wk02m0be___1h900000402a04b03c03r03h03b04603203h03q04d07002y03q06z0et0kj0rs0db0k9"],["Overlock",700,2,0,"0g70g70fn07s03h0hy09904f0yf0v40470de0f01r200b00a02i05404l04u04s02l02o00604804i05809l03a04a09p0hk0h20ow0f20hd","0gn0gn0gn0aa02y0id0a105a0xn16i03w0fo0hj1nn00a00a02k04z04f04q05c02f02m00604z05c06n0ck04605a0bu0ib0hs0pj0fn0il","0hy0hy___0bc04c___07i04v0yh0v60350dz___1fr00100402004g03h03u03i03f04e02m04o05005w0a303o04x0ac0me0m90rs0dw0lf"],["Overlock SC",400,2,0,"0hd0hy0hd0870420lf06h03i0ux0w805c0bf0c11lt00100g02k04y04604h03u04y01j00v03e03n04a07502s03k06t0ea0gg0m00f20k9","0i80j80i80ed0420m006j04o0v10rb06i0ea0fi1j100000g02q04z04b03i04j04t01s00r04f04r0610ai03w04v09v0hc0hn0mh0f70l9","0gs0hd___0c904n___06h03l0uk0wj03s0bg___1j400100f02b04h03i03q03l03f03r02m03g03p04d06z02y03o06z0ed0il0rs0bl0ku"],["Overpass",300,0,1,"0gq0ig0gq06h05s0ka0850380r90rs0150al0cd1kk00400702i04n03u04a03v04f02401u03303903w06u02z03j06o0es0ik0rd0fk0ig","0ge0hd0fx07i04u0jv07e0430re___0130d70fj1mj00100801b05104004f04t04602901j03t04605a0ag03v04n0950gh0if0q60eh0ic","0ig0ir___06a077______0390s60rs0000aj___1ek00000002a04703f03u03m03603v03g03303a03s06o02y03i06g0d60jt0rs0gq0jm"],["Overpass",400,0,1,"0hb0ig0hb08l05s0k908403v0sf0rs0120ce0dz1jb00400702a04s03x04c03x04b02a01p03r03x04s09403k04808p0ho0j30ro0g50j1","0h70i80h708i0520k408e04q0sr0mn01n0eo0gv1ie00300802f04v04603d04v04102h01b04i04t0670co04f0570b40j00jh0rj0g70j8","0j10j1___0a306c______03y0tk0rs0000ce___1da00000002104c03g03w03l03804603303r03z04o09803l04908k0hs0lf0rs0du0k6"],["Overpass",700,0,1,"0j10jm0ig07h04m0ka08305g0t10rs04t0fs0hc1ey00300801z04w04304f04803x02k01f05a05n07o0fb0540600dq0kp0jm0rq0hv0kr","0il0jk0il07704e0l50870630t60lx05w0ha0ip1bz00300802304u04104e04u03m02i01805t06809j0fv05o06u0fa0lv0jt0rn0hm0kj","0l20l2___080057______05p0ua0rs01v0fz___18200000001p04h03k04103j03b04m02k05f05t0860gr0560650cu0pv0n50rs0ig0mi"],["Overpass Mono",300,4,1,"0hb0gq0hb04s06x0k90890380ss0rs03r0al0cc1ad00400702q04m03s04703s04m02001t03303a03x07m02w03b0680eq0in0ra0fk0ig","0ge0ge0gv04n05s0jw07e0450s9___03r0d60f31b900100801g05703w04d04o04b02601j03u04705h0b903s04f0950gj0if0q50ff0hd","0gq0gq___07v06x______0370ta0rs0000b6___1a300000002a04403f03v03n03903t03e03303803n06b02x03f0750g30kz0rs0g50hv"],["Overpass Mono",400,4,1,"0hb0hb0i604m06c0k908603o0t70rs05c0bu0di1a700400802k04u03s04803u04h02401o03k03r04m09l03c03t07r0gb0j10rd0gq0ig","0h60h60i704k0620k508e04m0sn0mp03r0e70g818l00300802n04w04003a04v04502901g04e04q06f0d704b0500ap0i90jg0rh0h60j7","0hb0hb___08e06c______03q0tt0rs0000cg___1a100000002404c03f03v03m03804303403k03r04a08u03f0400870ji0lm0rs0du0ig"],["Overpass Mono",700,4,1,"0ig0ig0ir0450570k907w0510t80rs05c0ey0gn19500300802605203x04a04604202f01h04v0580760ew04p05d0bm0kd0jb0rp0hv0jm","0il0il0jk03y04w0l508605s0ud0li06y0gi0hr16400300802a04x03u04904u03r02d01a05f05y0920fo0560640dl0kt0js0rm0il0jk","0j10j1___070057______0560tv0rs0000fd___17a00000001t04i03j03x03j03b04j02o04z05a06m0f104r05p0cl0pa0np0rs0ig0k7"],["Ovo",400,1,0,"0ju0ju0if0dg02u0i509803g12k27g08i09w0b01kx00c00803d04b03y04c05b02h02k00z03c03l04d06t01z02r0580bn0h00qb0gg0lk","0iw0iw0hw0f602z0ie08o04k1050hd0790da0fi1kv00600b01u05804404k05g02n01y01j04b04r06208z02z04407n0fd0h20qp0fx0lv","0lf0lf___08i044___05a03n14n2dx09409r___1bp00000303503r03a03603y02s03j04503i03t04l07202202t05p0ay0my0ru0h10rl"],["Oxanium",300,2,1,"0g70gs0g706c05s0io08402r0t43u501p0ae0b91lb00700704b03y03z04k03t03l03300602q02v03407y02h02n04q0fe0i60pq0fn0hd","0hn0hn0go07h03x0jg08903z0vo25l0250dd0el1k200400803204h03x04j04p03h02m00q03p04004n0ck03f03v08c0hf0iy0qj0fp0im","0j40j4___06806d0f5___0320to3t60000ad___1ce00000003k03h03404003e02v03j03u03203303g07s02u02v05d0ef0ll0rs0hy0lf"],["Oxanium",400,2,1,"0gs0gs0gi08v0580ir08403f0tr3510330ch0de1k900600703q04f04004m04303c03200703d03i03w0cz03003807r0i90ij0pq0fn0hd","0ho0ho0gp07c04f0jf08a04d0t71xs0250ek0fq1j800400802u04w03x04g04m03b02s00o04904f05e0dm03v04a0a30j10jn0ql0gp0io","0ij0ij___09h06d0fv___03r0u935v0000cl___1bm00000003503v03603y03g02x03y03c03q03r0490ew03g03g07m0n00ms0rs0g70lf"],["Oxanium",700,2,1,"0hd0i80hd07804n0j408405l0tu1wx03r0i50j81gv00500902u05004304m04903n02s00805j05r09o0go04y05e0gm0ov0jb0pp0hd0jo","0ip0ip0hp06n03y0js08b0660up0lj03r0if0kl1dt00300902c05504304k04t03d02n00k06206d0bd0g805g06f0gx0no0jq0qk0hp0jo","0kk0kk___07805s0gy05s0670uh0rs02e0i6___16u00000102d04j03b04203e03204n02g0660670b70jg05m05s0hd0s20pn0rs0jo0ml"],["Oxygen",300,0,0,"0hd0hy0gs06f04n0k909g02u0u80rs02a0920a11nf00900602u04a03p04d03x04f01w02002o02w03d05502d02s0520ak0i20rb0fn0ij","0hw0hw0gw09g02z0kf09g03z0tz___01s0c60du1o900500801k04w03u04h04u04901h02503o04104x08i03c04808a0f70iu0qv0fw0iw","0ij0jo___07b058___02w02v0uu0rs02q090___1gv00000102k03u03b03v03s03703i03r02p02y03b05702d02q0580a10jd0rs0fn0ku"],["Oxygen",400,0,0,"0hd0hy0hd0940420kc09903m0tz0rs0440bh0ca1lm00900702f04m03u04c03w04c02701r03g03p04f08103503p07n0fx0im0rg0f20j4","0in0jm0ho08003x0l90a004k0u80mu04g0dq0ek1ke00700702g04l03v04a04k03y02c01e04a04n05s0b303z04q09y0hg0j30ro0go0jm","0iq0j0___0b104m___04m03q0uj0rs02s0b8___1f400000202404803b03u03r03703s03k03k03s04e09603703p07e0es0kv0rs0ez0lb"],["Oxygen",700,0,0,"0j40jo0it07t03h0ku09905d0xv0rs05w0eq0g21hx00600902004t03z04e03x04f02d01h05805f06j0cw0490580cl0ku0jr0rs0gs0ku","0jr0jr0ir07p02z0lb09d0600xq0va06o0g10hb1h000500902704n04204f04s03s02h01305q06307n0dz04r0620dv0ko0jx0rq0hs0lq","0j40j4___0ar04n___06y05g0xu0rs03n0ev___1bd00000301s04e03j04103l03d04g02m05e05k06n0f304d05f0c20pa0mt0rs0g70ml"],["Oxygen Mono",400,4,0,"0gi0h30g70680580kj08c03t0v70rs01k0cc0dc1c800500902f04m03s04b03t04j02601s03p03x04q08l03203u08k0ho0j40rs0fn0hy","0h20h20g404a04r0kk08004i0un0n201m0ee0fq1ck00400902h04k03t04804h04n02g00t04c04n05t0b003t04p0ah0i00j60qt0g40i1","0hy0hy___08r058______03y0wd0rs0000cr___1c100000002504503f03z03p03d04003303r03z04q08w03504008v0kv0mt0rs0eh0ij"],["PT Mono",400,4,0,"0ig0hv0jm06804m0ju08803m0ue0rs0990bc0cn1aq00700902r04r03j04503u04f02401t03g03q04s09o03403j06d0e10ih0ro0hb0jm","0ib0hd0ib07o03v0jr07e04e0td___07s0dm0f41cf00200c01i05a03m04704t04602901l04704k0610cl03w04f08h0ge0if0qx0hd0ib","0ig0ig___082057______03o0u70rs0000c5___1ai00000002a04903a03w03h03a03y03e03l03s04d09a03803v07e0hq0m00rs0fk0j1"],["PT Sans",400,0,0,"0g50g50g508v04m0ju08803n0tl0rs01k0br0dh1kz00600802i04n03u04e03z04702301s03h03o04e08s03803t07q0he0ij0ro0ef0hv","0ge0ge0ge07403v0jr07e04d0sp___0130e20fy1ml00200a01d05403w04i04x04002701j04504h05o0av04104v0a10hk0if0qx0eh0hd","0h00hb___09x057______03o0tm0rs0000bm___1f600000002704603d04203l03c03v03b03l03r04e08m03903w0780hk0kg0rs0ef0jm"],["PT Sans",700,0,0,"0hv0ig0hb0cr03h0k708805n0uw17x03e0fy0hr1ja00500902404u04104h04903s02g01h05f05q0780eb04t0620e70lo0j90rs0gq0k7","0ik0ik0hl06l02x0kd0880670w30md04x0hd0jn1g900400902804s04004e04x03g02e01b05z06c09a0ew05a06w0fv0ml0jr0ro0hl0jj","0ig0ig___0b3041___08d05r0v30rs00y0g5___1c300200401s04c03g04203i03f04g02n05p05z07c0fn05406c0e30r40na0rs0fk0kr"],["PT Sans Caption",400,0,0,"0j10j10j107e0570ky0830490v00rs05c0ci0dk1en00600802e04n03o04d03p04t02601o03y04a0560al03m04608a0hw0j40ro0gq0kr","0i90i90i907604y0l807i04v0ui___04t0ee0fc1e300200a01b05303r04g04k04m02d01d04l04z06d0d004904z0ad0ip0jt0rl0gs0jr","0ir0j1___09o057______04b0uv0rs0000cj___1a000000002304803c04203k03b04303504904h0590c503r04c0820jn0kw0rs0fk0lx"],["PT Sans Caption",700,0,0,"0k70k70jm06q0410kx0830620vq0ru0930fx0ht1dy00500902204v03v04e04104e02e01g05u06607y0fy0510630dw0l90k70rs0ig0mi","0k90k90k908t0420l408d06l0wk0lt0a70hi0j21be00400a02904x04503f04u04702h01706a06s0a60gf05h06y0fe0ma0jr0ro0i90la","0k70k7___0c9041___08q0660vi0rs02x0ga___17w00200401s04d03g04203i03e04g02n06406i08d0ha05f06e0e10qw0n70rs0hb0mi"],["PT Sans Narrow",400,0,0,"0d90dk0d907n0410ju08803a0s90rs0120c50e71yj00600802i04j03y04h03x04802301r03603b03t06n03103w08y0if0ip0rq0c40ef","0dt0dt0dt08t02z0k707l0470rg0rv01r0f80gn1xw00200a01d04x04004l04w04002801h04204905b09g0430570c70jd0jo0rm0cu0fs","0ef0ef___08e04m______03b0s90rs0000c8___1r000000002604003g04303k03h03u03903903e03w06f03204108f0l10li0rs0c40g5"],["PT Sans Narrow",700,0,0,"0f00fk0f00e402w0jv0870560tk18902d0gp0i71um00500902404s04404j04803t02e01h04z05906a0c504p06k0gb0or0jm0rs0du0gq","0fm0fm0f50mu02x0kc08805v0up0lx05k0ht0k91pb00400902704o04404g04v03f02e01b05i05z08o0d905907q0hp0of0js0rp0en0ik","0g50g5___0ax02w___08505b0u110s01i0gt___1lk00100301s04803j04403k03k04b02n05905i06k0d804w06t0g90rr0nx0rs0du0hw"],["PT Serif",400,1,0,"0if0if0if0b502w0jl08303z15s1ri06o0bh0ck1m100600903304e03v04903q04102601v03t04104l07x02903606u0fr0io0rc0fk0lb","0hd0hd0hu0i602w0jr07f04o0zn0rf05c0e80f61mn00200a01n04y03s04704h04302a02204i04u05u09h03504c0910hu0j70r50ff0ja","0jm0jm___09p04m___07s04417y20c03w0bi___1gn00100502s03v03b03q03803703m03x03u04404q08m02d0350730du0oc0rs0fk0ot"],["PT Serif",700,1,0,"0k50jk0kq0fy02b0jk08305x1gv1dr09o0eb0fn1hm00500902m04m04304e03x03u02b01m05u06306x0aj02t04n0as0jx0j20rc0hu0nl","0jo0jo0k60t502y0jf08606g18s16k0910fp0hi1ha00500a02t04n04304f04t03602k00x06806k07x0cd03l05e0cs0k00iz0qz0fq0nm","0lx0lx___0a304m___0830671kd1jr09s0ei___1d900100402a04203i03t03803g03x03e05q0690730c402w04n0aj0od0po0rs0ig0qj"],["PT Serif Caption",400,1,0,"0kq0kq0kq0b40360ke07p04k18l1q609g0by0d31fo00600902w04h03q04503k04j02801u04e04o05g09p02i03d07c0h00jp0rc0hv0o7","0iq0j70iq0im02y0ji08305312t1g707p0ee0fn1ia00400a03404j04004e04q03i02x00904w05a06i0af03604e0930hw0j10pw0gr0lo","0lx0lx___09k057___07s04q19x20009l0bx___1ag00100502o03y03a03p03703803n04004g04r05j0b402j03b07f0fj0ot0rs0hb0r4"],["Pacifico",400,3,0,"0dt0rc1hj14205r0dd0bz04n0um1250990ey0hj21200h00h03505z05705502i02a02e00804104o06h0ad03v04x09m0ec0dd0od0ay0s8","0ds0r21g516905x0df0e405h0ug0ir08s0gr0k51in00i00i02n06305905202u02d02d00804z05t0910db04p06i0ce0gr0d40os0bt0rk","0j00or0fk0yh0410ik0cj0550vu1cx0am0dz0gf1gy00800902g04x03d03o03303f04g01z04y05806w0c104804y0970h70j50rg09s14v"],["Padauk",400,0,0,"0hd0hn0hd09u0420j407k0420uz0rs0520cw0d71id00400a02e04t04204d04a03c02j01m03w04704u08v03e04508x0h60i20rs0fn0j4","0i90i90h90870420jy08a0500ui0ni05c0ey0g21hi00300b02k04y04903e05303a02n01a04p0540680c504a05a0b00i90ij0rm0g80ja","0hy0hy___0ai058______0490v40rs01b0cu___1br00000002304b03g03x03h03904g02v04204b0540bg03n04b08x0jh0lo0rs0f20lf"],["Padauk",700,0,0,"0ij0ij0hy09203h0j507m05a0wz0rs0830ep0fz1e200400b02504w04704h04b03a02n01g05405h06b0bq04905d0ct0jc0ik0rs0g70jo","0ib0jb0ib0840320j908c0610wz0rd0810gn0i51d900300b02d04y04d03h05603702q01605q06607y0ea04u06b0ei0kq0im0rp0ha0kc","0j40j4___09l04n______05k0y20rs03x0ff___17n00000001u04f03l03y03h03f04k02k05f05m06v0f404f05m0co0pd0n50rs0fn0ml"],["Padyakke Expanded One",400,1,0,"0xp0vx0xz07v05c0j209g01v0u38cl0nt04y05t0wn00q00806a03l03003804204j01301401p02203f07o01l01q01y02w0g70jj0vc14s","0wk0wk0wk0gz04y0jb08l03q0wd0m90nc09c0a80x400900b02o05c03503o04p03i02l01p03904706q0g603103804006a0hy0qq0tl14g","2u42u4___0no0cg0kb0br0b61i70rs0hd0ea___02y00a00i01f06404m04v04l03e01f00m0bg0h72nr5jc0be0e90j90l00cp0lf0e4436"],["Palanquin",300,0,0,"0hb0hb0hb06c0570jv08r02y0u50rs01y09l0b61l500800a03204f03u04k03r04g01y01b02v03003h05u02i02w0580ch0hj0nn0fk0ig","0he0he0gd0810430kv07w0490u2___0160d30ek1kr00200a01y05204403l04r04t02101603y04b05509m03k04g08o0gr0ih0op0fc0if","0ig0j1___06706c___0300300tr0rs00009g___1dr00000302p03y03f04403f03g03j03502v03103g05h02g03005a0ap0i30rs0fk0kr"],["Palanquin",400,0,0,"0hv0hv0hv08q04m0k608p03n0uq0rs04n0bi0d11jk00700a02r04o03x04j03x04d01y01703j03p04e07q03203m0700gc0hw0ns0g50j1","0hf0hf0hf0820440kv07v04o0ur___0160e00fm1jf00200a01r05603304r04x04o02301004f04p05w0bm03w04r0a90hj0il0ph0ge0jh","0hv0ig___0ap05s___03003n0uv0rs0000bb___1cq00000202f04503g04503g03k03r02u03j03q04b07l03003n06w0f60j40rs0ef0kr"],["Palanquin",700,0,0,"0jm0jm0jb07c03r0k608n05s0wl0rs09g0fd0hf1ev00500c02a04y04604k04b04002101105l05v07o0f304r05t0dw0kc0il0ph0hb0lc","0iq0jp0iq07m03y0jo08b06b0wk0m106n0h10jc1dg00400b02i04x04904m05503d01y00p05z06f09g0fm05806k0ez0l20ix0pt0gr0kp","0lc0lc___07w057___03005p0wx0rs0310fc___18m00000202004f03l04603i03p04502905k05v07g0ff04o05t0cu0pj0kz0rs0hb0n2"],["Palanquin Dark",400,0,0,"0jm0jm0jb07c03r0k608n05s0wm0rs09g0fd0hg1ev00500c02a04y04604k04b04002101105l05v07o0f304r05t0dw0kc0il0ph0hb0lc","0iq0jp0iq07m03y0jo08b06b0wk0mh06n0h10jd1di00400b02i04x04904m05503d01y00p05z06f09g0fn05806l0ez0l70ix0pt0gr0kp","0lc0lc___07w057___03005p0x00rs0310fc___18m00000202004f03l04603i03p04502905k05v07f0ff04o05u0cu0pj0kz0rs0hb0n2"],["Palanquin Dark",700,0,0,"0lc0lm0kr06u03h0k708p07r0xx0rs0bu0im0k518w00500c02304x04g04o04d03u02100z07o0840d60iz06c08u0iy0pw0j40qj0hw0n2","0kq0lq0kq07h02z0jm08g0890yv0lt0cp0j70m017100400b02a04w04j04s05203a01v00p07t08q0eo0j806n0bu0ja0oy0j20q00jr0mq","0ot0ot0ig05f03h0n203207w0zq0rs0ad0i50ig14j00000101s04e03w04803j03t04501z07o0860d80jo06408o0ke0rs0mk0rs0lc0pd"],["Palette Mosaic",400,2,0,"0db0cq0eh09g0570gs06k06q0tt0r704q0mn0lk14a00100b02404x05605b03n02y02f00z06106w09z0dx06o0bn0hx0qg0fo0qn0840f2","0dv0dv0dv07o05y0fk06e0831150f104j0nt0lo0wo00000801k04w05e05h04203002f00s06c09b0dg0fe07q0d30kc0pv0ft0qt0bw0ev","0db0db___09306d______07i0va0ni00f0mk___11n00000001804004b04d03q04h04a01f06507l0c30ds08m0h10ph0rs0of0re0af0f2"],["Pangolin",400,3,0,"0hy0hd0ij08503h0ku08p0450rh0ow02q0d50dn1o600500902504v03v04f04804402g01d03u0460560av03w04j08h0gd0ik0r70fn0jo","0hv0hv0gv0cf02z0jo08d04u0rk0ef04y0er0ge1mx00300901v04w04104l05303m01x01j04i04v06m0cm04n05j0aw0i80j00qv0fv0ku","0i80ij___08q04n______0430rj0oj0000cm___1ho00000001v04e03h03y03r03d04k02h03s0430500ag03t04l0880ga0l00rs0fn0ku"],["Paprika",400,2,0,"0fv0g60fa07j0410jw07u03g0sx0vz0140c70cr1w400500d02h04s04a04k03u03y02q00o03b03k04105t02s03w07x0ev0hj0pz0ef0gq","0fd0fd0fd07p02w0jo07b04c0tj0o801r0et0ft1s200200e01d05104a04k04r03u02n00x04304e05b08b03j04u0a20gq0i50pv0ee0gb","0hd0hd___0c704n___06d03p0vq0y100i0c0___1m700100502804803l03w03b03d04502y03i03q04706f02v03y0860fu0jx0rs0db0ij"],["Parastoo",400,1,1,"0iv0j60iv07j02y0jh0a403p15k1qd0810al0bt1lb00b00803d04e03j04e04n03802d01d03l03u04f06s01z02u0620dk0ia0qp0h40kn","0i90i90hb0gf02f0jq09b04s10o0wg06d0dl0ew1lj00900801s04z03w04604h04202c01p04i04y05y09403304b08k0gs0ie0qy0hb0k6","0ko0ko___08g03k______03t15t1yt05u0ah___1eu00000003203t02z03p03t02v03q03x03n03z04k06t02102y06h0c60n40rs0er0ot"],["Parastoo",700,1,1,"0ji0js0iw07x02d0ji0a405r17b1du0cj0et0g31je00b00902p04y03l04j04y02u02l01505m05w0750b503904v0an0jd0ik0qq0ib0lv","0k40km0jm0pu01z0jf0a406e13e16j08s0ga0hz1i900c00902p04v04004f04t03302l00t06806m08v0dl04705w0da0k50ix0qu0ho0pi","0mg0mg___071045___0880611ap1hh08a0f8___1cz00100202b04d03203u03r03004803705n06807j0bn03c04x0ai0nn0p00rs0iw0pz"],["Parisienne",400,3,0,"0wf0wf___0dw02b___0c702b0vz___0ij07j___2g900h01503i05k05k04l02j02r01p00201u02a02p03r01g02103a05a0ao0m50ku18k","18a______09006r___0b60490wd0h20rs______1yc00h00x03d05l05g04r02y02v01e00303g04806108z02t04007009t0bl0m30xp1c4","1tz2230ue0d902b0nb09902c0zj24u0ph06a0651xl00600g02c04304405303g03v04200901x02c02t03x01e01v02z04w0hk0of0tj2et"],["Parkinsans",300,0,1,"0jb0jb0ks07004p0ks0ag0360sb0rs08w0a40ax1jg00d00803b04f03w03j04904m01x01c03203803z06602s03c05d0c70ie0qk0gz0l2","0jo0ip0jo07x03y0lb0a70480s30m008k0d40d91j700c00902i04t03v04504c04e02c00u04004a05j09h03t04j07j0fp0j00py0hp0ln","0je0jo___080058______0380su0rs04b0a1___1fl00000002604b03i03y03d03904003a03403a03t06c02q03b05v0bc0jr0rs0f20ku"],["Parkinsans",400,0,1,"0j80iy0ke08104b0kh0ab03y0tb0rs0a50c60d41je00d00902w04t03x04603r04g02d00v03t04005209f03e0440720g70ia0q60h80l9","0jm0j40k307s03x0l70a804s0tq0mr0810e50er1i400c00a02a04x03w04404h04902e00v04j04u0680bz04905109h0i40j00ql0hn0lk","0k10k1___0a204v___04l0450tm0rs03j0cf___1d400000102r04e03603g04302y04e02m04104904z0an03j04c0850go0l10rs0el0lv"],["Parkinsans",700,0,1,"0k20jr0km06w02v0jp0a306h0wf0rs0b80hv0il1gw00c00b02h05804c04n05003002900806c06l0950fs05c06v0fs0nj0il0ox0iw0l7","0jn0jn0km06w02y0l80a706z0vk0ls0ad0iw0jh1e100900c02004z04a04d04t04b02800906p0750af0gl06007t0hb0nd0jy0pl0ho0lm","0mz0mz___06k043___05k0740wf0rs08g0hz___16k00000102404h03r03f03z03m03x02j07107f0bd0ib05w07t0gn0s40ns0rs0kd0pm"],["Passero One",400,2,0,"0eh0eh0eh07v0420j408x04s0t00z30140h50i41ta00600i02105c04s04v04r03g01q00804n04v0610bo04h0590e00j50ij0nw0cq0fn","0es0es0dt07i03y0jf0a205j0t60sw01s0hw0jt1on00800i02x05104w04q05h02n01900505805m0920cp05506l0fv0ju0i40nw0ct0fs","0gs0gs___07u058___08q05j0ss1pl00i0ha___1ff00200a02204a03p04703c03l04902405f05q06u0e105805p0fo0oz0mt0rs0eh0ij"],["Passion One",400,2,0,"0ij0ij0hy06m01r0lf06g07q0wo0rs02q0kn0lb1hc00100a01x04m04904f04004g02k01a07o07w0cm0gr06s0d50ln0ro0lf0rs0gs0jo","0jq0jq0iq0f701z0lg06f0850vy0lt0900lf0me1ae00000902204h04904e04n04a02d01108108n0f70hy07k0g00lr0rh0ls0rs0iq0vk","0jo0jo___06z02w___04n07w0vf0rs0210li___1cy00000101n04703v04203g03v04h02907t0840d50gz0720eb0ra0rn0qp0rs0gs0k9"],["Passion One",700,2,0,"0lf0m00ku08f02b0lf06d09h1160rs08v0lw0m419n00000a01w04j04d04h04104h02i01909f09r0gc0k607k0g10m10rn0lf0rs0jo0n5","0o60o60rm0w502h0lh06c09w1120m30g10m50oe11s00000902204f04e04g04l04a02b01109t0bc0iw0m30890ir0nh0ro0ls0rs0lp1eb","0m00m0___06r02w___04j09q0zn0rs0210mm___16200000101l04303z04303h04004d02609n0a00gw0kr07r0gr0rm0rn0r70rs0jo0nq"],["Passions Conflict",400,3,0,"0sw0p4___0ay02i___0f30290x3___0lm06g___23t00j00w03h05204w04d03402r02500n01o02802v04401e01x03605d09f0nf0p40xx","0zg0ny___06w0aj___0d304o0xe0kf0rs0b8___1hu00j00u03805p05603z03g02u01v00903i0500720ag02u04c07c0ai09h0lx0tp1a0","0q2___0n50dt0580n50bn01z0x210g0nt___07p2ga00400n02q03m04r04w03l04k02p00701b01z02o03v01801p02k04j0i40nf0m014i"],["Pathway Extreme",300,0,1,"0ji0ji0ix08f05q0kw07s03d0v90rs05g0ah0bl1i500600903a04b03r04704304302901g03903e04106l02r03905w0e10j90r70h70k2","0jr0jr0is08j04y0le07i04c0uf0lx0730d80e71iu00200a02l04o03z04c04a04802h00y04404d05f0aa03n04f08p0gx0jv0qv0hs0kr","0ix0j7___09k05q___02m03d0vp0rs0000b3___1f800000002z03t03f04403m02o03y03803b03d03u06t02t0390690et0l70rs0ec0l8"],["Pathway Extreme",400,0,1,"0jo0jo0jo09k0580l007703v0wk0rs0660c10cp1hc00300902a04r03x04a03m04v02a01h03r03w04q08i03203o0700gv0jq0ra0gs0ku","0js0js0js07w04y0lc07i04n0vf0my08k0dw0eo1hq00200a02k04u04004c04d04502h00r04g04o05x0b003u04m09d0hq0jv0qv0ht0kr","0jb0jb___0a205s___02b03u0x60s10000c5___1ep00000002304903j04103f03804003903r03v04e08n03203n07e0is0m30rs0ef0lx"],["Pathway Extreme",700,0,1,"0m00ml0m007g0420k907006a11i0rs0ca0g80h81dt00200a02205304a04k04704302n00k06606c0820g704i05r0dv0kl0jo0q90k90n5","0ml0ml0ml07003x0l707g06y10l0lv0br0h50ii1b000200902704w04704f04q03u02l00o06o07009n0hx05206i0ff0lt0jv0qq0km0nk","0mi0mi___08u057___02b06l12b0rs04h0gr___17900000001r04f03p04303e03f04h02l06i06m08g0ij04q0620f40ra0ot0rs0hb0o8"],["Pathway Gothic One",400,0,0,"0b80bu0b807f03k0lf07p03d0sm12200k0f60ge2bu00400a02e04i03j04f04c04402e01q03c03f03n06102z04r0dp0ls0kz0rs0an0cf","0bk0bk0bk08t02w0lj0790460qg___00k0hq0iz2aa00100b01d04p04404f04e04j02i01h03z04604x08s0480650g40n30l30r00al0ci","0c40c4___085041______03h0uv1s10000fr___27c00000002004103s04003d03k04103003f03h03m06502x04y0eb0ri0pg0rs0980cp"],["Patrick Hand",400,3,0,"0e40ee0du06t02b0i00cl03n0p60qs0130cy0fa1wl00a00702p05804704u05002c02s00903f03o04o09j03n04h08r0gw0gk0oz0du0fk","0ee0fv0dw0es01z0hl0cb04k0qb0h304f0eq0i31u600b00902805e04e05105k02702000h04604k0690bb04j05l0bb0hj0h00ox0dw0iu","0g40ge___09603g______03x0qb0ra0000d2___1jt00000002704903d03t03w03c04702q03p03y0500ae03t04n0890j90l20rt0dt0iz"],["Patrick Hand SC",400,3,0,"0fl0g60f006t03h0j4___03r0qc0r101g0d60ea1o200000002m04y04904r04i03802501d03i03v04z0af03i04g0810go0h10qm0da0gq","0ft0gs0et06b02z0jg___04n0r80gk00z0fa0gb1lv00000002305304d04v05802y02801004a04q06s0bq04g05k0au0hp0hv0qs0du0gs","0g40ge___09603g______03x0qb0ra0000d2___1jt00000002704903d03t03w03c04702q03p03y0500ae03t04n0890j90l20rt0dt0iz"],["Pattaya",400,0,0,"0i50i51oo0m401p0iq09305p1590vz07l0ey0fm1zi00b00g02105004a04e04s02y02h01505005p05y08p03b05k0c40in0i50qu0hl0q3","12a0yd1qt0i203x0j809h06f11b0o50ku0gm0hf1qk00a00g02904v04604b04o03202h01a06006g07q0cf04h07m0f80jl0i00rl0vf1qt","0ih0ih___0ac01q___08305q1450s302s0fb___1mv00300a01q03u03k03m03p04804d02f04k05p06108b03505s0bj0j80oc0ru0cp0mi"],["Patua One",400,2,0,"0jm0jm0jm0ah01q0k60870620zx1ah0640gb0ib1k300600b02505503v04504103y02g01n05w06c09e0er04j05t0e10l90jv0rs0hb0n2","0ig0kh0hf0nc0220k508l06n0yv11q0500hm0jt1h100500c02j05503104a04w03r02m01606f0740a80fn05406f0fv0my0jp0rr0hf0mj","0kh0kh___0at03h___0860680zs1cw02l0he___1eu00100401v04m03e03r03b03b04m02t06206d09l0f404o06e0dq0qb0py0rs0ig0nn"],["Pavanam",400,0,0,"0gr0hw0g607m0420jn07y0350ul0rs0150a80bp1ph00200902n04j03y04904703s02302203103803n05z02j03505y0e60hy0rq0g60j2","0hf0hf0ge0800330k007r04d0uy___01o0d50f71pp00100901g05603504k05604202a01p04204f05809b03i04l0970gu0il0rn0ge0jh","0k80k8___08404m______0390wj0rs00j09o___1h800000002e03x03e03n03y03603k03s03403903o05s02j03105v0bq0kh0rs0hc0ly"],["Paytone One",400,0,0,"0mw0nr0lp0an02y0k107n08u11u0rq0cf0j90ke18c00300b01u04x04h03z05203b02h01d08q0980d30j506i09n0jt0r50jm0rs0jd0qe","0mk0nj0l309c02y0jt08609611s0l10cf0jq0le15u00300a02104q04h04o04x03802e01108x09m0f80kc06t0bf0jh0qd0jp0rk0in0pi","0nh0nh___08703j___05v09c12x0rs0bm0jw___14c00000101n04b03z03k04703704j02d09309l0ew0jy06s0aj0o00rs0pa0rs0jd0r0"],["Peddana",400,1,0,"0jf0jf0i906t01s0im08q0441411sg09m0bz0dc1hw00900903c04i04003x05302k02r01603y04b04y08n02b03d0760fk0hw0q10gh0km","0jd0jd0iv0fu01z0ja07r0571190r807b0ea0g31if00300c01w05604004j05202z02201q04u05c06r0b303f04p09q0i50ir0qn0gv0nt","0ka0ka___07503l______04d16j1uh09w0c3___1dc00000003204403004603d03k04902b04604g05209a02d03e07h0fp0ng0qd0hb0oh"],["Peralta",400,1,0,"0nk0pm0me0ek01s0jn08f0620wg1np0lm0f50g31ad00500b02u05n03i03904i03b03101d05o06r0b50hp04005y08h0i10jg0r50ls0u1","0oo0rm0lp0qo01z0ji08a06i0xk1hy0jq0g20gp19j00400b03105h03j03v04o03h02p00p06507a0c70ik04e06a09o0i80j20qu0lp0ul","0ue0uo0ml0ap01r0na___0510mv0ze0ow0f00g714q00000002b05q02s02x02c03c05p02o04q06i0gk0l705k06d07w0du0oi0rs0r70zw"],["Permanent Marker",400,3,0,"12s18k0ob0im02b0n5___0720ua0iw0km0fu0fl17700000001j05104m04p03y04m02o00q05y07j0ci0i605z07r0cp0i70hy0oy0lf1h9","0no0mp___0vu02z___02907c0uo0fm0dw0ht___11w00000001q04z04n04p04n04f02800i06b08d0dt0js06e08t0eb0jp0i40p00ir1eb","0nq0nq___0ox02b______07f0tx0jg0ca0g6___11h00000001804i04b04a03k04604c01g06o08c0dq0js06t08m0ds0jl0kh0rb0j40vu"],["Petemoss",400,3,0,"0mh0rn___0rl041___0co02a0qx___0dw08v___2kp00f00k03904y05005n02l03601u00f02102c02w04301q02d0450620du0ml0c311g","0o20qy___0bj03v___0b30480t90p90dw0ej___1t400f00i02x05505405j03803501i00b03o04c0730ad03604j07y0b60ec0m80ib10l","10g1dh10g0k302b0n505802c0ue1h90ku06p07i21i00000d02q04c04604w03i04l03400402502f03304l01n02503a05s0ir0nq0ow1nm"],["Petit Formal Script",400,3,0,"0is0kk0v40u303j0jf08t02y171___0b407207v1pi00a00g03304r04l03r04g03g02900s02502w03603n01c01z04p0820d50nm0gg0z8","0tk0zh0y00l602y0jj09604f16l19u0f609h0c61mm00900f03d04q04a04604a03i02800n03q04d04y06i02a03i07y0bp0f30o40hq19c","0mb0mb___0k204p___08v02x16r0w60ac06u___1m900600e03003x03x03203i03303s03001u02v03803m01c01y03p0870iy0ro0fv0ww"],["Petrona",300,1,1,"0gs0hc0gs08502w0hc0a102w13121l07c0980a81q000d00803u04k04c04t04n02402o00a02t02y03k05z01t02804r0a50g70of0eg0j3","0fs0gs0et0c802z0i909i0430yy0q103z0dz0f31qp00a00a01u05f04904u05g02t02i00703q04705407s02s03p07e0eq0gv0on0et0hs","0jy0jy___0a705v______03912g29705q09n___1d900000003903v03b03703w02o03h04703703b04006s02202j05n0ad0mw0rs0di0o2"],["Petrona",400,1,1,"0hd0hy0gs07y03h0hd0a103f1511rj08q0ai0bm1p500d00803j04s04e04v04l02702m00903c03h04806x02102k05s0ck0g80og0f20jo","0gs0hs0gs09202z0i909h04d0zt0w40690e00fj1q400900a01s05g04e04s05f02s02i00704604j05n08502w0410850fr0gw0on0ft0jr","0kj0kj___09o05a___07m03w14w20205h0ay___1cl00100402y04103c03703u02p03j04303t03y04p08802d02x06m0ca0n40rs0e30on"],["Petrona",700,1,1,"0ij0j30ij06x02w0hd0a105619t1dz0br0dm0f91lm00c00902x05704l04y04i02a02j00905105a06l09v02s03v0920h60gs0og0gs0lf","0in0j50in09d02y0hf0a605x15115j0bu0g20hq1jr00c00902z05504h04u05002b02b00705k06307q0bm03m0500ba0ht0gw0ot0gp0ml","0mv0mv___06h05a___08205w1a31js0ax0ee___1at00100402c04d03i03b03v02v04003g05r0610790bp03b04f0a70m90p80rs0kj0qz"],["Philosopher",400,0,0,"0ir0ig0ir0880440jx0890451a80rs06a0b20cd1j400500902m04904a03v04o04001t01x04304804m0680230340710h30is0rp0ge0jx","0ht0ht0hb0db03y0k807l04z13g0s90540dv0fn1jm00200901h04l04704i04t04202d01h04t05205r09203204j0ad0id0iv0rm0fu0js","0j60j6___0ap05t___07x0431ab0rs04z0af___1di00100302h03n03p03a04803k03803k04104604m05x02103306s0f40k90rs0ga0of"],["Philosopher",700,0,0,"0jm0jx0ir0fy03j0jx08905r1m60rs06y0d90eo1h300500902d04d04h03z04q03w01v01r05n05r06607r02c0460bc0jn0ix0rq0i60lo","0ja0ja0ja0c90320k108f06g1cj12v07f0fh0gy1gf00400a02l04c04j03h04v03x02d01d06806g0750as03b05c0da0jz0iq0rn0h90lb","0kn0kn___0dr058___07x05p1mu0rs07q0co___1bu00100302803s03v03e04703r03a03705g05q06807m0290420a40mx0ly0rs0gv0pl"],["Phudu",300,2,1,"0hb0hv___061041___02a02j0rs0s700008k___1mk00000002n03v03603z03k03503f04102f02j02w04s02a02p04u09w0ke0rs0ef0jm","0gv0hc___0cp02w___01r03r0ro___00z0c4___1ne00000001b04f03a03y04703804403a03h03t04l09403g0450860ft0m00rs0cj0ja","0hl0hv___05x041___02a02j0rs0s700008m___1mj00000002o03v03603y03k03503f04202g02k02w04r02a02p04t09x0ku0rs0ef0jm"],["Phudu",400,2,1,"0hb0hb___0a303h___02d03v0sp0s60000cv___1ln00000002104c03d04003h03904703503s03x04l09q03k04908w0jq0mr0rs0c40j1","0hk0hk___0gc02x___02g04t0t80mx00z0ei___1in00000002104603b03y03x03704b02x04k04w0650d304g05c0bt0lt0np0sg0do0jj","0hb0hb___0a203h___02d03v0st0s50000cv___1lo00000002104d03d04003i03804703403s03x04l09s03k04a08y0jn0mp0rs0c40j1"],["Phudu",700,2,1,"0ig0ig___08q02w___02k06r0tw0rr00z0j5___1g800000001l04a03s04203i03m04l02f06k06w0ak0fy06a0950m00rs0py0rs0fl0jm","0j40j4___0h902y___02k0780us0k203h0k4___1ci00000001q04403r04004203m04h02306y07o0ct0h206j09y0mw0rf0pt0rs0go0lk","0ig0ig___08q02w___02k06r0tw0rr00z0j5___1g800000001l04a03s04203i03m04l02f06k06w0ak0fy06a0950m00rs0py0rs0fl0jm"],["Piazzolla",300,1,1,"0gs0hd0gi08n03h0i407j02z0yc2cy09m0990b71on00700a03n04p04804k04d03b02b00802u03203r07702202i04s09i0gz0ob0f20jo","0h70j40gq09203u0jh07b0420vh___0640d50em1nt00300c01q05g03y04d04k03v02r00r03t04805n0a703503x07j0ed0i30ot0fa0k2","0mg0mg___07k06c___04103j12p33z07y09w___1b400000103d03u03603m03003303n04103803j0430a502702n05e0a30p10rs0hv0px"],["Piazzolla",400,1,1,"0gs0k90g708n03h0i607j03b0z925i0810ak0cc1o800700a03f04t04704j04c03a02l00803503f04808f02802r05l0b00hd0od0f20k9","0hl0jk0gm09503x0jb08404e0w51lt0730dn0fd1m900600b03d04r04204e04t03702l00804804k0620b503b0460810fr0hw0ot0fn0jk","0n50n5___07206d___04203x13q2oy09x0an___1bk00000103404003703p02z03403w03t03n03x04n0b302d02w06c0bd0p40rs0hy0qm"],["Piazzolla",700,1,1,"0i70k70hc07w02m0ih07j04v12m1jq0br0dq0fk1n500500b02u05604b04l04e03c02h00904n04z06e0bk03203z08v0hg0hx0ov0g60ks","0il0kj0hl0k802g0jb08405m0zx1a50840fw0hq1kf00500b02x04z04504g04v03b02h00905a05w0860de0420550ao0is0i00pj0gm0kj","0ol0ol___06g058___04n05o17y1yi0ce0e1___1ar00000102j04d03e03s03103b04b03405a05q0790dz03b04409s0js0ph0rs0jo0rs"],["Piedra",400,2,0,"0hv0ig0g50py0160jl0ag06n11m0tf0900jb0jw1u800800901r04u04h04m04503g02m01h06506w08d0d204m07a0h20q60j00rn0ez0v4","0lo0sl0dt16y05x0ji0b707k0yu0sk0cc0kc0k51df00800902h04o04d04l04q03202l00x0700840de0h70670c40jx0r10j40rr0dt11g","0ig0ig___0gj016______07b14y0r00540jv___1ns00000001a04c03z04003m03u04e02e06u07i08v0e404s07y0ju0rc0q50ru0gq0k6"],["Pinyon Script",400,3,0,"0j30le___0p603r0bl0ef02t19a___0b407a___2ee00k00o03b05h05d04g02p02k02g00a01r02n03903q01601q03n04i0b90ny0dv13b","0tj0ko___0ls05x0bm0e60510zx0ux0dw0bl___20w00k00n03405f05a04d03102k02l00903w04z06308q02f04a06r0960bx0ow0jp1g6","0u20u2___0z704x___08u02p17p___0f6074___1uh00300d02h03l03k04803v04603w01k01q02l03c03w01601q03504j0li0qm0ii2cz"],["Pirata One",400,2,0,"0co0ce0d90a401q0k707204s16f0rx01p0he0ht28i00200b02104w04604h04004102j01b04r04s05707l02v05x0iv0ps0jl0r50bj0ef","0cw0cw0de0k601z0ld06i05c0xi0f804e0jf0k524o00000a01s04y04304a04m04b02l00x05705f06e0bd04c0850jz0pg0kw0r00bw0fv","0co0co___09x02b___07004s17m0wj00z0i4___24i00100401w04b03j03x03903t04n02c04r04s05306z02q05f0o40r30q10rs0ay0ef"],["Pixelify Sans",400,2,1,"0js0js0kd08604o0k307r04n0s12100aa0em0fi1ee00400a02404w04903r04w03q02401o04m04o04u0cc04m04m08f0jv0ju0rs0js0kd","0jq0jq0jq08303y0ka07i05c0rg0a00aa0g40gg1eh00200a01u04u04204805603t02k00z05805e06y0dv05905j09v0j20ju0qt0jq0kp","0k70k7___03204m0nt___04m0ry20z01h0e9___1fi00000001p04703s04403e03q04h02g04l04m04n0c704k04l08e0kw0nr0rs0jm0k7"],["Pixelify Sans",700,2,1,"0kv0kv0kv07q04n0kl07905r0q30rs0aa0iu0ip1a100200a01u04y04b03p04y04302j01505q05r0d70i60640640db0kl0kq0rs0ka0kv","0kq0kq0kq05s03y0jl0850660q50n10b00j10kl19b00300902305304604k04z03i02c00r0610690di0it06h07h0h70nh0jz0r10jr0kq","0kp0kp___08r04m______05p0q10rs00g0ip___19i00000001h04d03v04303d03s04q02405o05p09j0gt0620630ed0o40o90rs0k50kp"],["Plaster",400,2,0,"0a109f0a109a02y0gi09i09k1570py02d0r30nl1b400500b02t05l04u05r04s02f01300308x09c09m0aa07z0f80kd0n20gp0mh09f0am","0am09k09k0ae0370gk09309w1770lq03d0pw0nd1ai00500902j04b05u06004902z01g00308m09p0a60ar07x0e40hr0nc0h00nc09k0am","0cp0cp___0b7042___0b20bl18l0mc03v0nu___10b00300301y03y04003v03f0470470230b70bg0c30cv09o0j70sb0sd0qs0rs0bk0da"],["Platypi",300,1,1,"0jo0jo0ij07802b0hy09903u1151vt08k0b90cd1m300900903904q04204k04r02f03600d03m04105108g02f0380630cn0gt0pi0g70lf","0jq0jq0hr0i002z0hk09804o0x71fa08n0do0fv1kq00800903a04r04304o05902003200904h04y06d0an03904g07z0fc0h00pw0gr0kp","0le0le___0a603h___06b04813t2270720b9___1d800000302t04003803o03803203z03s04404e05609302i03e06l0ck0od0rs0fm0q0"],["Platypi",400,1,1,"0k90ku0it0ee02m0hx09904g14h1oo0af0by0dg1l200900903204t04604n04o02k03300c04804n05o09502j03l0730eu0gx0ph0gs0lz","0jq0jq0hr0nq02z0hk0980580zz1co08e0e80gq1jo00800903504t04804q05502702z00505005k06z0bj03f04s09a0h60h10pt0gs0lp","0m80m8___08p03t___07104x17t1qt07o0c4___1bs00000302o04403e03603x03803b03w04v05506009x02m03r07p0f80p50rs0l20pq"],["Platypi",700,1,1,"0m00ml0ku0e301r0ij09906f1e71bd0es0f20gn1hc00800a02n04w04e04q04g03002w00c06806r07w0bo02z0530b90im0hy0pi0ij0ob","0n50n50lk0nh0240ip09t07f19z12q0ex0gm0iu1d600600b02w05403h04z05c02902z00b07207s09f0f303x0690di0ji0i80pj0jz0o7","0oj0oj___08f03i___08q07d1kv1da0c40f5___19b00100302804803n03b03y03i03i03d07607l08n0cp03405h0c30p20pw0rs0ms0ue"],["Play",400,0,0,"0hb0hb0gq09d0570j508n03x10a13k04k0ci0ed1jc00700702v04l04404p03z03t02t00k03v03z04f09u02u03509e0iw0j10py0f00ig","0i10j30i107v0490kw08z0510ya22r0250es0gt1fy00800602w03p04704q03i04n02m01704x0540660e003w04j0c10k40jl0r00gz0k6","0j40j4___0a206d0fw___04f1220rs01r0cb___1ad00000002b04603c03w03n03603x03d04a04f0500bl03703g09b0nj0mu0rs0fn0ml"],["Play",700,0,0,"0j10jm0ig07l0410j508n0631201bk0br0h20im1fm00600902c04y04904q04b03g02w00h06206907f0gi0490540g70oe0j70py0ig0lc","0jl0jl0il06x03x0je09506m1221aq0ap0i20k31dj00500902h04u04804m04w03d02r00a06f06v09t0gt04o0600gr0nt0jp0pt0il0lj","0lf0lf___08v058______06x1250s50580gu___15d00000001v04h03f04003j03c04j02o06x06y08w0jv05205m0gz0rs0pj0rs0gs0ow"],["Playball",400,2,0,"0m00lf1os0pl04n0fn09g04b1550vh0b40b60c21zc00a00b02g05404o05003b02902o01s03l04c05006i02c03b0700b80f80rb0jo0zb","0oa0na1np0yv0630fz09k05k11k0tu0d30dy0gd1oy00900b02o05704o03q04502902s01t04y05o06y0aw03f05109r0e50fl0rp0k916i","0lz0lz___0dv03h___0af04k17b10808r0b6___1ec00200402903u03d03o03703c04903q03w04m05506r02c03a06u0bc0oy0rs0dw0sx"],["Playfair",300,1,1,"0hy0ku0hd08m0370ij08703o19g29n0an0ad0bh1kv00a00k03t04i04204e04c03702b00e03j03r04807h01u02j05i0c10hd0ph0g70n5","0hv0jv0he07o02z0ij07m04n12k0rj08a0d80fj1l000400i02705i04704l05f02r01v00o04g04r05z09u02r04007w0fy0hy0ov0fw0lu","0ni0ni___07o05a___0910411ba2e40b00af___1bz00500e03a03u03d03303o02y03903u03s04404j07q01x02p0600bt0n00rt0h20qg"],["Playfair",400,1,1,"0ij0l40hd08002w0ij08703x1ce24l0an0ao0bx1ki00a00j03o04k04504h04b03602b00e03s03z04e07n01v02n05w0di0hg0ph0g70n5","0ib0kd0gs0af0320ia08g04w13q1o709w0e90fp1jc00800k03s04q04c03j05g02r02900904r0510680a602u04508d0go0hq0ot0ga0me","0ni0ni___07a050___09104b1en28r0b80av___1bs00500e03603v03g03403p02z03a03q03y04d04s08101y02s06g0ck0n00rt0i80r1"],["Playfair",700,1,1,"0jo0lp0ij07o02b0im08705b1ou1i40dl0d00ec1jq00800j03804p04f04o04d03402700d04z05f05z08l01y03a08s0i30hy0ph0hd0nq","0id0kf0hd0l70320ia08i0651ec1cf0d80f70hb1ia00700j03i04w04m03q05f02r01y00805s06a07b0b702t04r0az0in0hs0ou0hd0mg","0o40oe___07s04p___0900691zc1oa0c20da___1aa00400e02q03x03o03b03w03503e03904x06906p09l02003f09k0k40o50rt0i80st"],["Playfair Display",400,1,1,"0g70ij0g70cg02b0ij06f03l1io1ut06s0a80b81ts00200i03b04r04h04p04c03802400c03c03m03v05001b02605g0ea0h10p40f20jo","0gu0gu0gu0dj0240iq06q04t17a1ae0660dt0f21p000000h03n04z03g04v05l02902800c04n04v05l07o02a03y08w0hh0ha0pe0eq0ix","0k90k9___0bl058___06y03y1pd20e03t0a3___1j900100c02t03r03n03u03903n03a03803503z04805701a0260610cp0ku0rs0dw0ob"],["Playfair Display",700,1,1,"0ht0iy0h80c00200io06i05i24518s09w0de0f71qj00200h02u04v04o04t04d03b02000e04u05i06107901i03h0ab0ip0hz0pg0fi0ko","0hx0hx0gv0gn0240ir06q06g1k50zy0790gb0i61me00000h03a05503o05205j02702700a05x06h07608w02j05f0do0je0i70ph0cn0k1","0ml0ng___0by04n___06y06i2m01gk0bu0d8___1g000100b02e03v03u03z03f03t03g02r04i06i06s08101g0390at0mp0n80rs0j40rs"],["Playfair Display SC",400,1,0,"0m00ku0n508e02w0nc06y03y1ol20b0db0a109p1ke00200e03104404004803f04203j01003603z04a05j01a02605s0bx0kb0ob0j40ob","0k80hs0lq0df02z0ne07a04v1b91ds0a00d40de1i800100e03804603x04603w04203700r04n04y05m07g02403p0830gs0jx0nw0ft0lq","0k90k9___0bl058___06y03y1or20e03t0a3___1j900100c02t03s03n03u03903n03a03803503z04905501a0260630co0ku0rs0dw0ob"],["Playfair Display SC",700,1,0,"0ng0lf0ow0dc02b0nb06y06a2ig1gk0gx0cr0d81hj00100e02m04804804d03n04703900w04h06a06m08501f0330a40k80ky0ob0k90qm","0ls0it0mr0fk02z0ne07906u1tw12l0c60eu0fn1ex00100e02u04804604b04604502x00n05u06v07i09f02a04x0bu0l80k30nv0gt0oq","0ml0ng___0by04n___06y06i2ki1gk0bu0d7___1g200100b02e03v03u03y03f03t03g02r04i06i06s08001g03a0as0mp0n80rs0j40rs"],["Playpen Sans",300,3,1,"0g60hc0fl09604m0j209a02x0pr0qi0280a00bn1na00b00802j04v04104h04o02z02h01c02t02z03o05y02q03e05i0bi0gr0qk0f10j2","0gw0hv0fw0a803z0jb08o0440rh0as03e0cr0ey1mh00600b01f05904304i05f03001q01y03p04505909b03o04k08a0ey0hw0qt0ew0jv","0hg0ic___0ai05t______0300qr0ru00x09e___1de00000002i04103d03e04a03a03803r02v03203n06102r03c05k0ab0iu0rq0ek0ky"],["Playpen Sans",400,3,1,"0gp0hk0g509i04m0j009803p0r20qa02o0bs0do1mg00a00902905204404j04p02v02l01603j03q04o08b03e04807k0es0gu0qi0fk0jl","0hb0ic0gt0a90430j109l04p0s20ml0450ec0gd1jy00900a02j05204803g05g02x02l01304e04q0670bp04d05809y0h20hn0qs0fa0le","0i60i6___0af05a______03t0ro0rb00w0b6___1cb00000002604b03g03f04a03c03k03b03n03v04r08w03h04907a0e50jl0rr0en0lo"],["Playpen Sans",700,3,1,"0iq0jl0i508n02w0j009e0680vm0qb0a00gf0ic1ht00900b01y05404c04p04i03002o01005w06a0880en05906p0e80ke0hw0qk0ha0n2","0jb0kc0ib09k0320j609o06q0vf0iv08a0hb0jn1do00800c02605604g03m05903202m00x06d06u0af0fp05s07k0fo0lz0ij0qr0ha0md","0ll0ll___070045___02d06g0vn0q404b0ga___18900000001s04j03804504703404o02506406j0940g605g0730e00pg0m20rs0hq0o8"],["Playpen Sans Arabic",300,3,1,"0g60hc0fl09604m0j209a02x0pr0qi0280a00bn1na00b00802j04v04104h04o02z02h01c02t02z03o05y02q03e05i0bi0gr0qk0f10j2","0gw0hv0fw0a803z0jb08o0440rh0as03e0cr0ey1mh00600b01f05904304i05f03001q01y03p04505909b03o04k08a0ey0hw0qt0ew0jv","0hg0ic___0ai05t______0300qr0ru00x09e___1de00000002i04103d03e04a03a03803r02v03203n06102r03c05k0ab0iu0rq0ek0ky"],["Playpen Sans Arabic",400,3,1,"0gp0hk0g509i04m0j009803p0r20qa02o0bs0do1mg00a00902905204404j04p02v02l01603j03q04o08b03e04807k0es0gu0qi0fk0jl","0hb0ic0gt0a90430j109l04p0s20ml0450ec0gd1jy00900a02j05204803g05g02x02l01304e04q0670bp04d05809y0h20hn0qs0fa0le","0i60i6___0af05a______03t0ro0rb00w0b6___1cb00000002604b03g03f04a03c03k03b03n03v04r08w03h04907a0e50jl0rr0en0lo"],["Playpen Sans Arabic",700,3,1,"0iq0jl0i508n02w0j009e0680vm0qb0a00gf0ic1ht00900b01y05404c04p04i03002o01005w06a0880en05906p0e80ke0hw0qk0ha0n2","0jb0kc0ib09k0320j609o06q0vf0iv08a0hb0jn1do00800c02605604g03m05903202m00x06d06u0af0fp05s07k0fo0lz0ij0qr0ha0md","0ll0ll___070045___02d06g0vn0q404b0ga___18900000001s04j03804504703404o02506406j0940g605g0730e00pg0m20rs0hq0o8"],["Playpen Sans Deva",300,3,1,"0g60hc0fl09604m0j209a02x0pr0qi0280a00bn1na00b00802j04v04104h04o02z02h01c02t02z03o05y02q03e05i0bi0gr0qk0f10j2","0g70h60f90aa03t0jl08c03y0qa0at03e0d00f51oy00500a01c05003v04505103u02u01b03k03y05009903t04k08d0f40i20qt0eb0j2","0hg0ic___0ai05t______0300qr0ru00x09e___1de00000002i04103d03e04a03a03803r02v03203n06102r03c05k0ab0iu0rq0ek0ky"],["Playpen Sans Deva",400,3,1,"0gp0hk0g509i04m0j009803p0r20qa02o0bs0do1mg00a00902905204404j04p02v02l01603j03q04o08b03e04807k0es0gu0qi0fk0jl","0g50h30f60ab03t0it08y04d0r60m602y0e60gg1o500800a02g04u04004e05803d02j00j04304e05s0ap04605109q0go0hc0q00e80jx","0i60i6___0af05a______03t0ro0rb00w0b6___1cb00000002604b03g03f04a03c03k03b03n03v04r08w03h04907a0e50jl0rr0en0lo"],["Playpen Sans Deva",700,3,1,"0iq0jl0i508n02w0j009e0680vm0qb0a00gf0ic1ht00900b01y05404c04p04i03002o01005w06a0880en05906p0e80ke0hw0qk0ha0n2","0i10iz0h209k02u0ir09106b0um0in05x0h70jg1gu00700c02304y04a04n05103h02e00f05x06d09p0eo05l0790f90l70hi0q00g40kv","0ll0ll___070045___02d06g0vn0q404b0ga___18900000001s04j03804504703404o02506406j0940g605g0730e00pg0m20rs0hq0o8"],["Playpen Sans Hebrew",300,3,1,"0g60hc0fl09604m0j209a02x0pr0qi0280a00bn1na00b00802j04v04104h04o02z02h01c02t02z03o05y02q03e05i0bi0gr0qk0f10j2","0gw0hv0fw0a803z0jb08o0440rh0as03e0cr0ey1mh00600b01f05904304i05f03001q01y03p04505909b03o04k08a0ey0hw0qt0ew0jv","0hg0ic___0ai05t______0300qr0ru00x09e___1de00000002i04103d03e04a03a03803r02v03203n06102r03c05k0ab0iu0rq0ek0ky"],["Playpen Sans Hebrew",400,3,1,"0gp0hk0g509i04m0j009803p0r20qa02o0bs0do1mg00a00902905204404j04p02v02l01603j03q04o08b03e04807k0es0gu0qi0fk0jl","0hb0ic0gt0a90430j109l04p0s20ml0450ec0gd1jy00900a02j05204803g05g02x02l01304e04q0670bp04d05809y0h20hn0qs0fa0le","0i60i6___0af05a______03t0ro0rb00w0b6___1cb00000002604b03g03f04a03c03k03b03n03v04r08w03h04907a0e50jl0rr0en0lo"],["Playpen Sans Hebrew",700,3,1,"0iq0jl0i508n02w0j009e0680vm0qb0a00gf0ic1ht00900b01y05404c04p04i03002o01005w06a0880en05906p0e80ke0hw0qk0ha0n2","0jb0kc0ib09k0320j609o06q0vf0iv08a0hb0jn1do00800c02605604g03m05903202m00x06d06u0af0fp05s07k0fo0lz0ij0qr0ha0md","0ll0ll___070045___02d06g0vn0q404b0ga___18900000001s04j03804504703404o02506406j0940g605g0730e00pg0m20rs0hq0o8"],["Playpen Sans Thai",300,3,1,"0g60hc0fl09604m0j209a02x0pr0qi0280a00bn1na00b00802j04v04104h04o02z02h01c02t02z03o05y02q03e05i0bi0gr0qk0f10j2","0gw0hv0fw0a803z0jb08o0440rh0as03e0cr0ey1mh00600b01f05904304i05f03001q01y03p04505909b03o04k08a0ey0hw0qt0ew0jv","0hg0ic___0ai05t______0300qr0ru00x09e___1de00000002i04103d03e04a03a03803r02v03203n06102r03c05k0ab0iu0rq0ek0ky"],["Playpen Sans Thai",400,3,1,"0gp0hk0g509i04m0j009803p0r30qa02o0bs0do1mg00a00902905204404j04p02v02l01603j03q04o08b03e04807k0es0gu0qi0fk0jl","0hb0ic0gt0a90430j109l04p0s20ml0450ec0gd1jy00900a02j05204803g05g02x02l01304e04q0670bp04d05809y0h20hn0qs0fa0le","0i60i6___0af05a______03t0ro0rb00w0b6___1cb00000002604b03g03f04a03c03k03b03n03v04r08w03h04907a0e50jl0rr0en0lo"],["Playpen Sans Thai",700,3,1,"0iq0jl0i508n02w0j009e0680vn0qb0a00gf0ic1ht00900b01y05404c04p04i03002o01005w06a0880en05906p0e80ke0hw0qk0ha0n2","0jb0kc0ib09k0320j609o06q0vf0iv08a0hb0jn1do00800c02605604g03m05903202m00x06d06u0af0fp05s07k0fo0lz0ij0qr0ha0md","0ll0ll___070045___02d06g0vn0q404b0ga___18900000001s04j03804504703404o02506406j0940g605g0730e00pg0m20rs0hq0o8"],["Pliant",300,0,1,"0hy0j40hy06k03h0k908r03c0sj0rs02u0ao0bo1ot00700802k04n03q04b03u04c02b01p03803e04106y02y03j06c0dx0il0ra0g70jo","0ii0ii0gz07f0330l407y04e0s5___0260dm0f41oh00200a01e05403004a04s05102h01e04604h05m0b103x04x09b0h20jo0rn0gg0jj","0j40jo___08c042______03e0sv0rs01x0ah___1io00000002904603e04103f03a04303503a03h04207102z03j06h0cr0ki0rs0fn0m0"],["Pliant",400,0,1,"0j40jo0ij08f03h0k908q04b0v50rs05s0d10e51lz00600902904t03y04b03z04602h01h04704e05d09z03o04i09c0i00j40rg0gs0k9","0iq0jp0iq09b02y0kd0920500uo0n007n0eu0ga1l400500902d04s03y04e04w03g02i01204r05306n0d104c05d0av0iw0j50r10gr0ko","0jo0jo___0a1042______04f0vp0rs02m0d2___1fl00000001z04b03j04003g03e04g02q04a04i05f0bt03p04j0920j50ln0rs0fn0m0"],["Pliant",700,0,1,"0m00m00lf06n03h0k908p07d0y50rs0br0ib0iu1ch00500a01w04v04804h04903t02m01907207j0at0if05v07n0he0pp0js0rs0jo0n5","0l80lq0kq06p02z0jo08g07l0xu0lx0b80iy0l51a700400a02304u04a04j04x03b02i00x07c07x0cy0ih06608h0hu0oq0jw0rr0jr0mq","0nq0nq___08h042______07f0yf0rs08g0ij___16200000001m04e03r04303i03m04n02707c07r0c00j905z07z0ho0rm0od0rs0k90qm"],["Plus Jakarta Sans",300,0,1,"0if0if0i50650570jr08202t0qs0rs0730920aa1m100600902m04m03r04804004a01w02002q02x03i05t02l03304z0980hu0r90fk0k5","0h80h80h808403u0jo07c03w0qw___05k0c70dh1nw00200a01e05203w04804u04101w02503k03z04x09h03i04a07e0dp0i50rm0fc0j5","0j00ja___06t062______02v0rx0rs04a090___1f100000002f03z03d03z03j03503k03t02r02x03g05i02k0310520980k50rs0hu0lb"],["Plus Jakarta Sans",400,0,1,"0if0if0if08m04m0k508203e0ra0rs06j0ao0bx1l900600a02d04u03t04904004a02301s03a03h04907t03503p0600cs0i10rn0g40k5","0ho0ho0ho08p03x0jh08504b0rr0lr06j0d90et1lx00400a02g04u03z04d05303402c01a04204d05m0bi04204s08m0fd0i00ro0go0jm","0j00j0___0a6057______03e0sd0rs03s0al___1en00000002604703d03z03i03703y03f03a03g04607o03303l0610bw0ku0rs0fk0lb"],["Plus Jakarta Sans",700,0,1,"0jv0jl0k507w03g0k908205h0ug0rs0930f50gd1hp00500a01x04x04104d04a03z02g01g05c05n07c0fa04r05u0bx0kd0j80rs0hv0lb","0js0js0it07u02z0ji0890600un0lt0860fz0hp1gn00300b02504y04604k05403202m00u05m06408p0fm05906c0d70jt0i70r00ht0ks","0jv0jv___0a3041______05k0v10rs04h0fc___1a400000001o04e03k04203i03f04k02n05d05q07e0gu04r05v0bi0oh0n20rs0g40lw"],["Pochaevsk",400,2,0,"0gs0gs0gs0cj02b0hy08x03m17423o0990ar0c61mt00a00803804o04704o04q02i02n00p03g03q04b06y01x02p05m0cr0gu0pi0f20k9","0gs0gs0gs0nw02z0hp09c04k11f1kq0990ds0fw1l400900903b04q04604o05e02402m00b04e04r05x09402t0400800fn0h50pu0et0jq","0lf0lf___08c03h___08p03z1aa2bj08h0ae___1e100300502z03q03c03o03a03903s03m03l04104p07k02002t0650cc0n60rs0f20qm"],["Podkova",400,1,1,"0jd0jx0j20d502w0is09e03t0vx27e09u0cf0cm1gs00d00603905003t04504b03603800e03p0410620b603703g0600de0i60pk0hx0no","0ib0ib0ib0n002w0iy09604o0v70yf06s0eb0fo1hv00800a01t05o03q04604v03c02z00s04g04z07j0co03u04f07z0fw0ib0pv0hd0n5","0mh0mh___08k041______0470wu2cr07t0ci___19l00000002p04l03003h02x02y04f03s04104d0670cn03i03p0700e10p30rs0jm0py"],["Podkova",700,1,1,"0kd0ko0ji0a002b0ja09n0550vn1tw0cs0f90g21fq00d00802r05c03v04704c03p02s00905205h0a50ep04a04q09b0hw0ir0ox0iy0oo","0lm0lm0jn0he02y0jg0a50600wc1gq0ai0ga0gr1db00c00902x05303s04504y03j02l00705t06l0at0fq04x05q0b90io0j00pp0io0ok","0nt0nt___06h04j______05t0wm___09r0gc___15n00000001i05903103d03e03505103205l0610bz0h104x0570a50mm0pq0rs0kz0qn"],["Poetsen One",400,2,0,"0k70kh0k707502w0le07i0750xr0mx0730ij0j11gg00300c01o04r04604a04104i02m01e06u07c09h0gh05s08n0j00po0ks0rq0j10ld","0js0js0js0cs02z0le07i07l0xq0g70790j80ju1ee00200c01w04r04804e04t04302g00v07207q0b80gs06709i0j60ot0k40r30it0mr","0k70k7___06n03h___06x07h0wy0n50000ix___1b000000201g04d03w04003f03r04l02a07407k0aj0gv06b09v0kc0rg0oy0rs0g60mi"],["Poiret One",400,2,0,"0gs0hd0fn08n03h0gs07j01o0oq0rr05s05l0721sp00600a03k04q03z04g04o02301y01y01k01p02503001j01y02x03z0ei0po0eh0k9","0g90i60fb0cz01x0ht07c0380ph___06b0a10cp1sz00200c01t05c04304e05302v01w01y02z03a04a06k02y03x0610bo0g80qs0fb0m0","0gs0gs___0aw04c______01p0pc0rs05905i___1l000000002z03t03d04202v03h03j03q01k01p02002u01i01x03b0420fr0rs0bl0lf"],["Poller One",400,2,0,"0mm0o20mb06l0440gj08809e1pr0rs0ip0i90j018f00500a02605905904r04u02602p00909c09k0at0hr0460980gt0ox0gg0p90kk0p9","0mk0nk0ll07e03x0hc08b09o1lj0rc0h80j70jy17b00400a02c05004w05804u02e02j00709709s0bj0ih04u0b00hk0or0h00po0jn0oj","0ri0ri___06t05s___07j0ay1ul0zf0hs0ij___0zg00000301n04503w04903l03s0470280ah0az0cg0ky04l0a90oc0rn0oe0rs0n50tj"],["Poltawski Nowy",400,1,1,"0ij0j40hy08602w0he08p04c1f11rl0b00br0dg1l000900a03d04f04604f04n02502e01r04204j05407o01z02y06x0g10hd0rh0fn0k9","0hc0ib0hc0b002w0hs07i05115x0id07h0e90fp1n000300c01u05004204d05902i02g01x04r05806209902y04a09g0hi0hb0r40ff0ja","0kr0kr___08j041______04s1l01ud08c0bq___1di00000002u03o03g03p03c03d03s03p04g04v05a08201w03107m0gq0ou0rt0hb0qj"],["Poltawski Nowy",700,1,1,"0k90ku0jo07902b0i608p05q1qb1gf0dw0dt0ff1ix00800a02y04h04b04j04a02s02f01k05e05y06p09202203t0ai0io0i10rh0hy0m0","0k80k80j80as0310i708k06d1gu17v0cs0fk0hd1hu00700b03304k04d03f05202u02i01i06206p07i0aw02z0590d30kn0if0rr0h70l9","0lc0lc___089041___06x06c2201iw09f0dq___1ca00000202i03q03m03u03d03k03w03a05s06e06x09d01z03u0ay0nr0pf0rt0fk0ro"],["Poly",400,1,0,"0gr0ir0gr08202b0hb07l03q11o1sc08v0bt0dc1ra00700i03904x04g04o04z02a02b00b03k03u04r08302b03206m0e70gf0ow0f00jn","0gm0i30gm0he01y0he08404l0wy1g707r0e10gk1pu00700h03c04x04c04m05i02102500a04f04v06a0ad03a04e08q0go0gu0pj0eo0jj","0m00m0___06i04n___05d04614u24107s0c1___1h400000a02o04403i03r03603i03i03c04404e05609k02h03d07k0f30m00rs0hy0ph"],["Pompiere",400,2,0,"08p0af08p06x03h0c608701w0m10v601709h0d62uz00800b03805b05j05702102g03a00901t01x02603b01w02k05709h0bl0p60840b0","09n0bk09n0ch02w0c407j03f0nh___01a0eg0ir2mr00300d01s05q05m05f02i02j03300p03403f04i07903e04x09n0f10cd0p708o0bk","0bl0bl___04u04n______0210lm0v0000098___29w00000002d03x03m04a02z03i03x03a01y02202903402102y05z0ai0jw0rs0af0cq"],["Ponnala",400,2,0,"0kj0jd0kj09b03j0n309604g0ux0rs08l0cx0de1hc00700802d05404403q04i04b02f00u04704k05v0ar03p04k09h0jg0jk0no0is0ma","0ip0k60hp08w02y0kf08804v0uc0mg0a70es0fw1lx00400902o05404e04m05503101o00s04j04y06u0d504905d0bm0i60i00o30gq0ln","0mq0nx___0a304s0i8___04m0vt0rs0dw0bv___18o00000002e05603g03w04h03u02m02004j04p05u09r03w04n09n0kt0hm0rs0gq0pp"],["Ponomar",400,2,0,"0gs0gs0gs0cj02b0hy08x03m17423o0990ar0c61mt00a00803804o04704o04q02i02n00p03g03q04b06y01x02p05m0cr0gu0pi0f20k9","0gs0gs0gs0nw02z0hp09c04k11f1kq0990ds0fw1l400900903b04q04604o05e02402m00b04e04r05x09402t0400800fn0h50pu0et0jq","0lf0lf___08c03h___08p03z1aa2bj08h0ae___1e100300502z03q03c03o03a03903s03m03l04104p07k02002t0650cc0n60rs0f20qm"],["Pontano Sans",300,0,1,"0gs0hy0g706f0420j807r02y0ul0rs01709o0b81pk00200902r04g03z04a04703r02401z02w03003f05i02d02x05k0cl0hl0rf0fn0j4","0gf0hy0gf08x0330l107q0460ua___01m0d70et1pc00100901i04z03204d04u05002701m03u04905108n03f04h0900h80jj0rm0fe0ji","0k90k9___064058______0310w10rs00k094___1h800000002h03v03e03p03w03603m03o02x03303h05l02e02u05f0aq0ka0rs0hy0lf"],["Pontano Sans",400,0,1,"0gs0hd0g709n0420j908803n0vv0rs0120bi0d81no00300a02h04o04104b04a03l02c01s03j03p04607602v03k07k0gh0i10rs0f20j4","0gu0hb0gc08y02w0jo07f04g0u2___01m0dz0fz1oh00100901a04y03z04904z03u02b01z04904i05f0aw03t04o09s0hp0ic0rp0gc0j8","0jo0jz___0ay04n______03r0xd0rs00g0az___1fu00000002704503g03p03t03804103803m03s04a07d02x03h0720fy0lf0rs0f20m0"],["Pontano Sans",700,0,1,"0hd0hy0hd09m03h0ja08t04o0xe0rs02l0dp0fq1lc00400902804s04504e04e03g02h01k04i04p05h0a303m04l0ak0jf0ij0rs0f20jo","0hr0iq0hr0aq02y0jg08h05c0wb0na02a0fl0hh1ky00200902d04r04404g05303002l01505405f06p0cz04d05h0c10jf0iw0rq0gr0kp","0k90k9___0ai04n______04s0yg0rs00g0de___1d100000001y04903i03w03q03c04b02u04n04v05n0ci03o04i0a60mr0mr0rs0fn0ml"],["Poor Story",400,2,0,"0ey0g30eo08v02v0h90760390qa0ru02m0b80dp1st00300d01x05904f04n05102702k01d02z03a04308503403q06l0dj0fr0qg0ed0h9","0ft0hs0et0am01z0i807k04e0r70dl02f0d80g81og00200b01p05404g04p05i02902l01503y04f05u0bc04504z09f0fr0go0qm0et0ir","0hy0hy___09p02w___02n03g0s80rs0000b6___1jh00000102e04b03g04803l03c04h02203603h04407903303o06w0f50ij0qv0eh0jo"],["Poppins",300,0,0,"0j40it0jz07v04n0kz0a50350s60rs08c0a80au1k200a00702c04q03s04603n05002401k03103703x06902q03a05k0bt0ir0qp0gs0ku","0jo0jo0jo08o03y0lc0a80490sg0m60810dl0do1jo00900702g04q03t04404d04h02d01104504b05f09c03t04l08b0g10j40qs0gq0ko","0ix0ix___08106b______0370sl0rs04h09z___1f300000002x03w03e03y03p02q03v03e03303903t06902r03a05z0ba0kd0rs0ex0l7"],["Poppins",400,0,0,"0j40ij0k908r04n0ku0a003w0tc0rs08k0ce0cy1jo00a00802404z03w04903t04r02c01603s03y04x08p03d04307b0g50j40qm0hd0lf","0jo0jo0ko08k03y0lb0aa04s0tn0n70930eg0eg1il00900802b04u03x04604i04d02d00w04j04u0670bo04905409q0hp0jt0qr0gq0ln","0ix0ix___0as056______0410tr0rs03x0c4___1dp00000002j04603h03x03s02t04503003x04404u0a103g04707y0g70lh0rs0ex0l8"],["Poppins",700,0,0,"0ku0ku0l407i03h0ku09x06u0w50rs0b80ia0ix1do00900a01q05004b04g04904b02i00s06o06z09v0h005q07f0gq0oq0jy0qc0j40m0","0k00k00k007k02v0kk09z0790w70li0aw0iz0jq1c400800901w04p04904b04s04702v00c06w07f0bi0hh06507x0hh0nw0k30pz0i30lw","0lv0lv___07c041___04o0740w30rs06u0if___16f00000101h04d03w03x03h03k04j02l07007e0b50i705y07v0h10rs0oc0rs0iz0oq"],["Port Lligat Sans",400,0,0,"0g60i70fw08704m0k408s03t0t711q0120cz0ex1mn00900902p04p03t04603t04002e01p03n04104q0840390460870i70j60rf0f10j2","0fw0hw0ex09803z0kb07p04n0t7___01n0f90gv1mi00300c01l05904004d04t03p02001p04e04t05u0bp0430550an0j20j10qw0ex0hw","0ii0ii___0a405s___06w03x0tj10j00g0c8___1go00100402h04a03d03w03703b04902v03n04004p07h03b0480880ip0ma0rs0da0j2"],["Port Lligat Slab",400,1,0,"0hx0ii0g606u0420k408s03u0u91mq0370cs0eq1no00a00802w04u03p04003m04402g01q03n04105908703303z07m0h30jp0rf0f10j2","0gw0hw0fw0ah02z0kb08e04n0sw___0280f70go1nk00400c01n05d03x04704n03t02101r04e04w06l0bq0410550a30ic0j20qv0ex0iw","0ja0ja___07j059___07903z0uz1lh0100cv___1hs00100502l04g03a03603o03503g03w03o04205508703704407q0fs0om0rt0hj0ln"],["Potta One",400,2,0,"0j40jo0j408002w0k904q0710uj0lo08q0i80je19400000401q04t04i04x04h03s02k00x06t07e0cm0hl06c08v0i40om0j40qm0hy0lf","0is0jr0is08t02z0jf04h0770u90ho07d0if0kb17z00000301y04v04m05305003602f00m06u07n0df0ha06q0at0hy0og0i50q20hs0kr","0lp0lp___07d03h___02w07g0u10ni03z0iv___13l00000001f04804004903m03y04j01u06z07v0dk0j906u08y0is0qx0ne0rs0ij0nq"],["Pragati Narrow",400,0,0,"0fn0fn0f207y03h0lf07j03t0s90rs0130dx0eo1us00300a02a04n03x04903o04l02e01n03n03v04h08h03j04j0ac0k40kb0rs0dw0hy","0f70g80f70a80310ly07l04o0rx0pi0280g30hd1te00200a02f04r04403c04i04h02j01c04h04q05x0bq04g05x0de0ks0kk0ro0e70i9","0hd0hd___09n042______03x0th0rs0000dd___1ll00000002204a03i03x03j03c04802y03u03z04l0a503k04f0940l40ms0rs0db0j4"],["Pragati Narrow",700,0,0,"0g70gi0g707d03h0lf07805d0uj0sl0130h10i31pl00300b02104s04204b03t04i02j01g05505g06g0cx04t06m0g10ni0ku0rs0fn0hy","0g90ib0g90gn0320la07m0620ub0l70330iq0k21lh00200b02804u04903c04o04f02j01705o06408r0e105g07w0hl0nr0kn0rq0f90jb","0hy0hy___08h03r___05805j0vb0so0000gj___1h500000101s04e03m03y03i03h04k02i05f05l06w0ex04w06g0f40r00oc0rs0fn0k9"],["Praise",400,3,0,"1aw153___0gw03r0jc08v06219f0rj0ij0ep___21g00600e02004s04q04r04203m02k00r05006106o08303005r0b80f30io0p30jo1v5","1am14j___0ge0420jx09f07113f0pc0ij0g4___1ms00500f02805004t03l04r03n02j00q06407709c0ed04q08h0eb0ho0im0pi0j91tv","1n11n12ej0lj05i0na08s0641700of0m80ed0ew1pp00300b01r03o03r03x03b04d04q01x05306507308w03a05s0b90f40ob0rg1n11pc"],["Prata",400,1,0,"0ij0j40hy0i20370hy09u03t1qm1nu0790a00as1p600c00802y04b04c04k04a02n02a01w03h03t04d05h01a02105m0dp0hd0rs0dw0ku","0hp0hp0hp0fp02y0hi0a504r1cz12u0810d30eo1nn00b00903304c04b04m05002102b01m04l04u05l06z02003m08j0gf0h10rq0bt0io","0k70k7___0dq04x______0431wv1xy07b0a3___1ik00000002q03k03m03u03e03g03o03j03d04304i05d01a0200630d70oc0rs0da0pz"],["Preahvihear",400,0,0,"0j20jn0j208703h0jn09u0490su0s70880cn0f41ii00900801p05503x04s04903r02m01704204c05j0an03u04h07q0fy0i60qm0hc0k8","0jr0jr0is0ab02z0kb0ad04y0sh0fb08q0ek0gh1h300800902404w03x04o04w03e02m00u04o05206o0di04k05a09z0hi0iq0qo0hs0kr","0ku0ku___09w04n___02b04g0t60th04c0cn___19100000001t04j03i04j02y03504h02w04804h05m0cu04004k0830ff0lg0rs0f20nq"],["Press Start 2P",400,2,0,"0ro0ro0ro04j03h0jm03y0841hg1vr0md0f30i50vd00000a02g04s04l04o04c03s01t0150840840c00no0480480c00js0jr0rg0o80ro","0rb0rb0rb03603w0k003x0861hi1iz0ol0g60ii0xh00000602m04i04704f04u03h02b01a08608709t0jx04804w0db0jy0k00rs0rb0rb","0rp0rp___02n03h0nl___0851hd1vq0nk0g6___0uw00000001x04203p04503c03j04e02r0840850c00jt0480490fw0rl0nr0rs0rp0rp"],["Pridi",300,1,0,"0kt0kt0k80br02w0ku08q03q0xl1xw07y0bi0c11f100800b03504o03g03u03c04p02302203p03t05809c02w03b05l0ez0js0rs0ii0n4","0kg0jy0ly0f70200kl07r04l0vl___09h0ds0f31gf00200d01u05h03n04204d03r02802104g04t06p0c503l04e07o0h50k10r20iy0nx","0l30l3___08403r___06103q0y31yt03z0bo___1bc00000302x04a03203l03002z03z03z03p03r04u09d02w03905w0d60oi0rs0j20oa"],["Pridi",400,1,0,"0le0le0kt0c302b0ku08q04u1071ld0840df0eg1ec00700b02q04w03m03z03g04i02b01t04t04y0710bg03i0440880iy0ka0rs0j20np","0l50ln0k60g301z0lb09505k0z01ef0990f00fp1e400600c02w04w03l03x04e03s02j01a05c05w08b0eq04704z0a50jl0k00rr0jo0nm","0mj0mj___07a03h___06004t10l1o404k0dx___1ad00000202i04h03403p03303204e03e04t04w0740c303h04408b0kv0p50rs0k80pf"],["Pridi",700,1,0,"0n40n40pf0p301q0kv08p08815e1960ec0i50jx1aj00600c02605303w04403x04402k01h08408i0ck0jq05e0760is0qk0kv0rs0ly1a7","0qy0y20kc0yj02k0k608j08g1310t10gf0is0md16800400c02g05904403a04u03y02q00s08c09f0fn0ks05s07l0iw0pd0ki0qu0lc1lx","0no0no___0hv036___06008614t1em0av0jb___15q00000201x04n03f03p03503h04t02n08408o0d00kn05e07f0iv0rm0qo0rs0ly0rp"],["Princess Sofia",400,3,0,"0ed0ga___0ox028___07802e0vj0rh05k082___2et00800v02u03t05505g03x02w02300l02302e02z04f01n02804507t0ek0n60bl0kz","0gq0oe___0ph047___08b03w0uj0ty07l0au___24800d01102x03j05h05q03c03201t00k03703u05a08b02s04707z0bq0f70nk0b60rw","0o40m60jo0n802s0m605l0230t40u20dw08808x2hl00000h02u04704303y04104503g00n01u02402o04401j02203l06t0jn0oy0gn1jz"],["Prociono",400,1,0,"0gr0hx0g70f10210ii07503m1021oj07r0bb0cy1tb00600i03a04q04704c04t02r02200z03g03s04m07n02a03506l0ed0h00q90eg0mj","0fw0hc0fe0km01x0hu06i04d0xi0vf04v0e60ge1va00000j01z05h04b04i05p02f02300v04604m05v09703504808p0g80gi0px0dh0l6","0lf0lf___0e002w___07j04115728z0500az___1hd00300903003y03c03e03f03a03f03o03q04804x08y02803406z0df0l30rs0g70ow"],["Prompt",300,0,0,"0ih0ih0jc09t0420j708x03h0ue0rs08l0aj0bu1fn00800702t04l03y04704b03h02302003d03j04a08102y03d05w0d40hi0rq0g60ks","0ib0ja0hu08703v0jm08a04c0u5___06f0cz0e31hn00300a01m05503z04b05503c02a01p04404e05m0av03p04c08g0fk0i70qy0hc0k8","0j20jn___0at042______03i0tt0rs02n0ap___1ax00000002f04603c03v03i03503u03k03f03j04707z02y03i0690cd0kd0rs0eg0mj"],["Prompt",400,0,0,"0jn0j20jx08o0420j708w04g0wa0rs09z0cg0e51eo00800802h04t04004b04g03a02901s04c04j05l0bp03o04808m0h20hy0rq0hw0ly","0jp0jp0ip09l02y0jd0920540vu0m40860e70ft1ef00600902p04w04704i05d02c02n00r04w05706r0ec0490510aa0hz0hx0qv0hq0lo","0jx0jx___0ah042______04i0uv0rs03x0cs___19j00000002404d03f03z03g03804703204d04k05j0db03p04g08q0i00ln0rs0f00n3"],["Prompt",700,0,0,"0ly0mt0ld0ek02b0j708w07h0yt0rs0aa0hr0k419j00600a02104y04b04j04f03402l01h07907n0bu0jt05u07e0gv0pq0j20rs0ks0o9","0mu0nd0lb0pa0320j808n07x0yo0lu0fg0i50kx16e00500b02805104g03l05703302l01707j08a0ec0ju0690890hi0oz0il0rq0lb0tg","0n40n4___09s02w______07k0xu0rs0730i9___14800000001o04e03s04103g03h04n02e07a07s0co0jz06707v0ho0rs0ob0rs0k80pf"],["Prosto One",400,2,0,"0n90o50mo08q0430l407h0601dy0rs0g60dt0fb19c00400a02e04n04803u04f04401x01w05t06606u0db0390440bl0kc0jl0rs0kx0q6","0na0qb0ma0890420k508a06m19e14k0j20ep0h718p00300a02o04o04a03d04i04402d01h06d06r07r0ev03u04z0cq0kl0jn0rp0l90rc","0pv0pv___0as043______0641ey0rs0ev0di___13y00000002604703q03j04203f03e03b05z06c0710cq0390420av0nu0n50rs0im0rw"],["Protest Guerrilla",400,2,0,"09u0hc08o0oe01q0lz06d07f0wu0qc01q0kx0md1q500000801t04k04804e03u04d02z01f07607f08209m06c0a80jj0mf0m40rs08o0ih","0hr0iq0gr0wn01z0lm06e07z0zg0lw0900kf0me1fn00000702004k04604e04k04e02g01307o0850bz0g706h0c50lg0qb0lv0rr0gr0xj","0g60g6___0cr02b___04207t0xq0r20260l7___1lf00000101l04803w04103h03l04k02f07l07t08g0ec06f0940h70oi0ql0rs0990jn"],["Protest Revolution",400,2,0,"0fx0fn0fn09k02b0jo06g03t0rk0sw0360dh0cy24600100c02c05204g04s04c04202700a03604005107e02x04h07u0ey0gs0nw0dw0gs","0f80dp___0b5021___06g04w0s00or04a0fn___1tt00000a02o05304o03s05803y01y00704b05406q0al04b06c0br0jd0go0nq0d70g9","0ib0ib___09b03k___03404c0s20z100o0cw___1mx00000202d04c02z03y03y03a04u02203e04p05z09k03d05308u0fi0jl0r90dl0iw"],["Protest Riot",400,2,0,"0g70gs0fx09701r0ku06i05u0v212102d0gr0i31st00100d01v05104q04x04b03w02d00b05d05u07e0bx04w07k0ev0kn0ij0ph0f20hd","0gn0gn0gn0fh01y0lb06d06g0ve0fr03h0ik0jp1k400000b01w04t04m04s04u03x02a00d05y06h0a30dn05o09g0hm0m70jo0pp0fo0hm","0hw0hw___08i03h___05v0690wv0la0170h0___1g600000801j04803x04403i03u04b02605u06b07t0d205207w0fi0pu0nq0rt0g60ks"],["Protest Strike",400,2,0,"0i70ih0hc0bf0210lz06d07h0xp0rs02w0k10ku1jd00000801t04l04604e03t04h02z01f07707r0ba0gf06d0cr0m90rs0m50rs0gr0k8","0ia0ir0hs0py01z0lm06f07u0xh0li08i0kt0my1dh00000702004j04604d04k04g02g01307n08b0e30hc06q0do0lw0r90lw0rs0gs0xk","0j20j2___0bg02w___04207x0y70rs03a0kz___1cu00000101l04703v04303h03r04h02d07r08b0ch0h506g0cs0qv0rs0qo0rs0gr0kt"],["Proza Libre",400,0,0,"0g40g40g409w0560if09e03p0v40rs04h0bs0d91lu00900902g05004e04p04o02z02w00903l03q04e07z03003r07g0f50gv0pb0d80hu","0ga0gt0ga0950530i409q04o0uq0lx05s0e20gc1kd00700902s05204m03o05l02r02q00604f04q05z0ay03x04u09y0h20gr0ov0e90ib","0hy0hy___0bb06d___06d0410w00rs0270bf___1bh00100402104c03h03v03g03b04902y03x04104m08703904107k0g60ke0rs0eh0m0"],["Proza Libre",700,0,0,"0if0if0if08i0410if09d06d1580sy09f0gi0hk1i500900a02405504n04v04k02x02r00a06906e07c0d80440640ex0lq0hu0pg0fj0k5","0iv0jd0id07c0430i109p06x13y0pe0a50h30jg1gk00700a02i05604v03t05d02x02k00606q06y08v0ee04o0710fy0lp0hl0pl0hc0ke","0j40j4___0a0058___06z06y16j0tb0410go___17t00100401q04d03q04003f03l04h02g06t06y0800f404f06p0g10ro0nv0rs0fn0n5"],["Public Sans",300,0,1,"0hu0hu0h909c0560jr06e03e0tq0rs0310b30c41km00100b02e04r03t04b03y04602701w03b03h04407002z03h06b0e90if0rm0fj0jk","0hn0in0go07r03x0jh0690490sj0m20130e30fb1mx00000a02j04q04104e05003502e01b04004d05j0av03u04p0980gq0i40rn0fp0jm","0jk0jk___09o061___02w03i0ub0rs0000au___1ej00000002604803d03z03n03703x03c03c03j04307303103j06j0dd0kx0rs0fj0kq"],["Public Sans",400,0,1,"0hu0hu0i40970560js06e03y0uv0rs0520ca0df1ju00100b02904v03x04c04004102c01r03u04004s09403c03z0810gt0ih0ro0g40k5","0hp0jn0hp07x03y0jl06e04q0ty0mt0250es0ga1it00000b02f04v03y04e04w03902h01904k04u0630cv0460500a80hz0j00ro0gp0kn","0k50k5___0a705r___03g0430vu0rs0000c4___1dm00000102004c03f04003k03904503303w04404t09e03g04207y0hg0lw0rs0ee0la"],["Public Sans",700,0,1,"0jk0ll0iz08j0410js06e05x0x00rs07n0g40hs1gc00100b01x04x04404h04903q02k01i05v06007l0es04s05z0dt0kd0j40rs0hu0mg","0jq0l70iq08703y0jk06e06e0x30lv0730he0jh1ek00000a02604v04604i04y03602m01406906m0930fy05906o0f00m00j40rq0hr0lo","0la0la___09804m___03g0640xl0rs02n0g5___18h00000001p04g03l04303j03g04h02j05v0690810ha04z0660e30qs0nq0rs0ez0n0"],["Puppies Play",400,3,0,"0c4______0lu01s___0730240vh0wd08c______2nz00b01k04005604z04q03d02401g00501p02402m03k01e01x03a0600a50ko0a10gj","0k7______0hf03n___06204p0vs0st0dw______1yv00400q03c05l04f05f03p02s01d00d03n04p07a0b303b04v08n0cs0c60lo0ei17i","0hy______0f5016___05s01y0wc0pa09t______2lg00100l03404g04t04y03w04801m00601k01z02i03h01901q02r0500fa0ml0cq0ku"],["Puritan",400,0,0,"0g70gh0gh0890420jv08903q0ub0rs0450cy0cz1o400a00n02n04x04704m04204a01w00b03g03t04l08503403s07y0g80hj0ns0f10ii","0fn0fn0fn08103x0jd08504j0tt0n403k0ez0fp1oz00600o02u04z04e04q05c03101j00404804l05w0b203z04t0ag0hg0hs0nn0eo0hm","0hw0hw___0ag04m___0800450uw0rs01y0d0___1fx00500d02604c03l03r03l03m03n02n04304504z09p03k04b08v0jl0ke0rs0dv0k7"],["Puritan",700,0,0,"0gr0gr0gr08x03h0jv09904x0wb0rs04x0ez0fp1nc00600a02d04y04a04p04903t02o00d04j05005x0aq03x0530bz0ju0il0pg0f10ii","0g80gr0gr0bm0320k309f05p0wc0t70540gk0hv1ke00500a02k05004h03o05403s02i00a05a05s07w0d804q0680e40k80ip0pm0f80ja","0jm0jm___0a704m___07f05h0xk0rs02j0f5___1dr00100301y04d03o03v03n03g04702m05a05l06t0cy04805v0dr0pr0mv0rt0fk0kr"],["Purple Purse",400,2,0,"0k80n40fw0ht01q0gr0a106430o0rs0aw0dq0f71jk00900c02604f04u05003y02p02n01j04y06507e0890150330ar0i60g80rq0eg0n4","0ct0ds09v0gu02y0fq0aa06u1uw0qm0410gj0k01ew00900b02r04g04o04w04502l02j01906207008809e02c06n0ee0my0g10rr08v0jp","0pd0pd___0gd057___05s07645k0sf0eg0ds___1ab00000201s03m03x04803i04103z02q05607a07r08o01302w0b20np0pg0rv0mh0s9"],["Qahiri",400,0,0,"0af09u0af06j01r0990cc04h0uu0y40bx0fa0jh1zt00m00h03m08a07y02n02900u00r00e04a04b0820a403s05209n0hm08w0hm0990af","0ab0dr09u15b01z09l0d608z1bv0k70fv0f20k61ak00m00g03v08607p02s02h00r00p00d04r05z0a10fw04k07y0ag0ib0940ht09u0km","0af09u0af06j01r0990cc04h0uu0y40bx0fa0jh1zt00m00h03m08a07y02n02900u00r00e04a04b0820a403s05209n0hm08w0hm0990af"],["Quando",400,1,0,"0i50j00ha07m03g0j008203y0y61qx0810cg0dm1ko00700a02t05204404k04503q02m00b03u04405808y02u03k0700ez0hv0oe0fj0kq","0hs0ir0gs0ld02z0ji08a04q0vw1ff05o0er0gg1k500500b03205004404k04x03n01v00604k05006j0b603l04l0930gq0i40o00ft0jr","0mv0mv___07204n___07g04m12429r0a20c8___1a300100402h04c03b03s03203504503i04i04q05v0b802u03r07k0ei0oe0rs0j40qm"],["Quantico",400,0,0,"0h90ie0h908a05r0jf08i0470tx2it0210dy0fs1fm00700803404i03x04603z03i02i01q04704a04o0ek03s03x0an0jn0j60rs0fj0iz","0h90ia0g90700530jy08i04y0tx1um01m0fr0gy1fh00400a02m04v04203904p03v02k01j04v0500690fa04i04x0ce0ka0jj0rq0g90kb","0iz0iz___09506w0gd___04b0uj2tb0000eh___1bl00000002t04203c03x03a03304f02y04a04b04s0fa03w03z0b40q70og0rs0fj0la"],["Quantico",700,0,0,"0ie0jk0hu06p05r0je08i05t0vr1xh06y0i40jt1cl00700902p04r04004904803c02m01i05s05w08z0h204z05p0gd0qj0jq0rs0go0k4","0in0jm0hn06f05e0k808c06a0w80lr04a0iv0kn1b000400a02a04v03w04904t03b02k01i06706e0b80h505c06w0gt0p40jt0rs0hn0kl","0k40k4___07406c______05w0vz26801v0i9___18b00000002f04b03f03x03c03a04l02j05w05w0820id05305n0ge0s50po0rs0h90lv"],["Quattrocento",400,1,0,"0iq0iq0iq0b302x0hk09y0350y826n0bg09w0ab1mk00b00803m04r03z04105p02502r00b02y03b04306s02202p04u0a10go0ou0ge0l2","0gv0gv0gv0iv02z0id09i0480wp___06y0dg0er1n600700a01y05h04204o05k02w02h00a04104g05q09o03404307k0eu0hs0oq0fv0iv","0kn0kn___0d205b___06203j10g2g908l09r___1cl00000403504302n03g03w02l03m04a03b03n04b08q02c02x05j0ae0nt0ru0gi0qj"],["Quattrocento",700,1,0,"0ih0ih0ir0di02c0hl09z04m10k1rw0bo0d70e21kt00b00803305404804305l01x02z00b04e04u06g0ak03203w0800fz0h60ow0gf0lp","0il0il0gn0lc02y0hl0a305d0yq1b109h0fh0h91iy00b00803405004304m05d02502r00705605s07y0d103x04u0a90hg0hr0pl0gn0lj","0m00m0___0au05s___06q05811m1wh0bj0dk___1ap00000502j04f03803n03403304903f04y05b0730cp03f04c08q0ia0oz0rs0j40r7"],["Quattrocento Sans",400,0,0,"0g70gs0fn08304n0hd09u0380tu0rs06o0az0c51ol00a00902x04y04b05204w02802q00703303d03z07402t03906a0cw0ft0od0eh0hy","0fv0gv0fv08203z0ic08s04a0tg0nx04j0e30er1ok00500a01n05g04d05205n02t02700703x04e05q0ae03o04h0950f40gy0oo0ev0hu","0i60i6___0b305v___06203t0vx0rs03l0b5___1cr00000502c04d03d03b04803a03e03e03h03u04d08b03903p0720e80iz0rs0ft0l3"],["Quattrocento Sans",700,0,0,"0gi0gs0fn08o0420hd09u04m0vp0rs05w0ek0ge1nq00a00902h05a04m05204r02g02h00704g04r05s0be03w04q0ap0he0gh0ow0f20hy","0gn0hm0gn08c03x0hk0a205g0w10rr07n0g70ix1kt00900a02l05204h04x05b02b02h00705405k07w0dg04k05u0cb0i30h10ov0fo0il","0ir0ir___0a405a___07105a0wa0rs03l0er___1ag00000501y04k03j03d04603g03u02s05405f06e0dy04h05j0by0ny0lb0rs0ft0mu"],["Questrial",400,0,0,"0jl0jl0kq09i0410kt08f03n0s30rs08e0b50c61i200500802604v03m04703q04u02601w03h03q04o08n03b03v0620du0j20rn0if0kq","0kb0kb0js0b60420l008k04o0ss0lk09u0dm0ef1hq00400902e04x03u03804n04i02i01e04d04q0630dh04a04z08r0gk0jl0rj0ja0mc","0k90k9___0ca04n______03o0sv0rs0500av___1aw00000002204f03604503e03404f03303g03p04i0a403b03q05v0bp0ku0rs0g70n5"],["Quicksand",300,0,1,"0hv0hb0hv05y0570k607s0220pr0rd04506x07t1jn00700803204703f04a03w04h01x02501y02402m03v01y02b03f0640he0r30g50jm","0hc0hc0hc06j03v0ju07c03f0pv___05x0b60c21ls00200c01l04x03n04c04r04702701t03603i04k08a03703x05u0cm0i50q20gd0j9","0j40k9___06a06d______0230qi0re03706w___1d800000002w03l03404303j03403j03z02002502k03y01x02a03h05q0hn0rs0g70lf"],["Quicksand",400,0,1,"0hv0hv0i605w04m0k907r02v0r40pf05c0980a61ia00600a02g04p03j04d03v04j02101z02q02x03n05z02n03304r0aw0i00r50gq0k6","0hs0ia0hs07f03y0ke07i0420rc___05k0cm0dx1j600200c01a05603q04d04r04a02b01j03r04405909r03p04e07j0ew0ir0qs0ft0jr","0j10ks___06706c___06s02x0rc0pa02q095___1bz00000502904603504003n03503l03q02t02z03k05x02o03404w0960ip0rt0gq0lc"],["Quicksand",700,0,1,"0jm0ir0k70790410lc07r05d0u40lo06y0et0fi1eu00400c01q04z03v04d04104l02f01f05105g0730em04s05l0bj0kn0jo0ra0hv0lx","0jc0jc0jc06x0430k908f05y0u60e907h0g40h41do00300c02005004303f04w04d02j01405k06308d0ft05c06c0df0kl0jp0qt0hb0ld","0jx0jx___09u04m___07s05g0tm0lo02s0ez___17k00100501i04g03h04803l03f04k02g05805k0770ga04v05s0b70nm0m10rt0hc0n4"],["Quintessential",400,3,0,"0ez0ez0bj0ia02b0g50b402t10u14a07t0840bc28q00g00m02v05k05605e04002f00z00d02e02v03l05201m02d04u0c00du0lw0co0lw","0fg0n50hd0os02w0fz0aa03x0y70r50880bh0gv26800h00k01r05t05805j04y02c00x00a03f04205106u02m03w08k0ep0eh0m10cj0n5","0ij0ij___0jq03h___07j03l16o1gf09909e___1em00300a02e04103o03s03e03i03h03603403q04w06y01t02m05h0bv0ka0rs0fn0qm"],["Qwigley",400,3,0,"0la0tk___0ll045___0n50300vd0pc0ez081___22000d00n03504f04005j04902j02900o02g03403v05601x02s04u07r0ev0ns0fd0u5","0so0kr___0gw03y___0le04p0un0jh0ij0cx___1pu00g00j02c04m04j05j04802x02600i04305207c0ax03i04x08l0by0fu0nu0kr1dg","0xe0yk0q30ks0440mv08d02y0yb___0k70720911io00600c01x04403904703r04803z01w02c03103u05f01r02f03v06b0l70qd0mv21t"],["Qwitcher Grypen",400,3,0,"0ow0ow___0ne05s___0c60250rr___0fg06q___2f200n00u02s05805l05602o02302400q01t02702t03v01k02503604p0c70nq0dw1ds","0s90po___0i9066___0c104x0ur0h10ij0ce___1qf00j00s02s05l04805n03j02402200k03w05507g0ai03f04w07s0ao0db0of0mm1db","0qm0r70v90rs03h0n509a0270u8___0ju05t06u1qc00d00l02h03o03p04j03h03s04701201v02a03004a01h02102y04f0hf0p40dw0v9"],["Qwitcher Grypen",700,3,0,"0ou0ou___0nu05i___0cq0390w80j40cc09a___24q00o00w02t05305e05402s02702700q02p03d04c05s02002w04q0700cq0nx0eg1iw","0r90sr___0jx06y___0bn05b0x10m60hd0d6___1mo00o00s02t05f05h05803202a01t00b04h05n0890bj03j05508g0bt0cw0np0ev1gj","0tr0v4___0t00420n809h03m0zg0rz0ju07t___1io00b00l02t03p03304a04403v03n01f02x03r04y06y02202x04k06y0i90pp0ev0x5"],["REM",300,0,1,"0hd0hn0hd0980420i707l03g0tg0rs07v0bd0d01kb00500902h05004504r04q02p03200j03c03k04e09i03203e0630d80gw0po0fm0j3","0hr0iq0hr09103y0hl08504e0sx0mb08q0dz0ft1ju00400a02p05104b04y05c01y02z00504804k05y0cw03z04i08k0fa0g80ps0fs0kp","0kr0kr___0ah057______03u0uu0rs04x0az___18o00000002504c03b04103o03303x03c03o03w04o0as03a03q06d0cy0ka0rs0gq0n2"],["REM",400,0,1,"0hy0j40hd08a0420ij07l0490uc0rs08k0d80eq1j600500a02805404904s04p02s03000i04304d05n0c803q04708q0gt0hf0q20g70k9","0hs0is0hs0bx03y0jh08704x0ts0n90540ff0gx1iz00400a02h04x04704m05703702p00504p05306s0de04g0550aw0id0i60ps0gt0kr","0kr0kr___0bm057______04p0ux0rs04k0cz___16y00000001w04g03c04203l03504e02y04i04t0640f804104l0890i20l10rs0gq0nn"],["REM",700,0,1,"0k60k60j10bj02w0j107l06q0wo0rs0bc0hv0j61ca00400b01w05804e04v04j03c02n00h06j06y0b20hk05i06t0fs0ng0ig0py0ig0mh","0jr0jr0ir0b402z0je0870710w30lp0av0il0k11as00300b02505304c04s05303c02g00706u07e0cn0hm06107l0gp0mu0iz0ps0ir0mp","0o80o8___084041______07d0w40rs0bp0hv___12100000001k04e03q04303l03d04q02e07907q0cz0l206c07e0gb0rr0nx0rs0kr0py"],["Racing Sans One",400,2,0,"0n50ng0lf0ht01r0hn06y08p1fn0ru0ea0hw0kg1hu00200a02205404z05204g02q02m00i08g08t09j0e204e0910gt0md0hj0q20lf0y5","0y60y611n0fk02z0hi07b0921ez0p30ij0j50le1ff00100a02c05204z05404x02h02g00508m0960af0ha04y09s0h40n80h70pv0ls1lg","0pd0pd___0ac02b___05s09q1s20u70cn0ij___1al00000101n04404004203i03x04502e09809s0ai0fm04b09y0jh0rl0ob0rs0k60r3"],["Radio Canada",300,0,1,"0gs0hy0gi05n0580k907l02t0ri0rs01609a0av1jk00500902k04k03p04g03o04d02701x02r02v03e05y02k02z0560bk0i60r90fn0ij","0hn0im0gn06i04w0l70850410sg0m401o0co0dy1i700500a02l04j03p04c04e04202a01j03q04305209f03l04b08d0fy0j00rn0gn0jl","0ij0ij___05606y______02w0s90rs00009b___1ch00000002e04003804603c03604303h02s02x03g05p02h03005d09t0jy0rs0gs0k9"],["Radio Canada",400,0,1,"0i50iq0i508u05a0kn07q0460t20rs0220cu0e31g400400a02604w03u03r04i04d02201v04304a0590at03s04f08x0i50jb0rr0ge0jw","0id0je0id07804l0ka08e0500ta0mw01m0eu0gr1fv00300a02f04w04403e04s04002n01704s05406u0do04k05b0b20im0jn0qy0hc0kf","0jw0jw___09705v______04c0u20rs00w0cx___19l00000002004h03f03j04303a03t03704604e05b0cm03s04h08t0ja0lw0rs0ft0l2"],["Radio Canada",700,0,1,"0kf0kp0k506l0410ks07o06h0v10rs08k0h10ht1cj00400a01x04w04204e04204802n01806906n09f0gz05j06u0g20o00k50rb0iz0la","0kg0kg0jf06f0430kd08g06y0vm0lb0930ia0j81al00300a02505004803f04v04302m01306o0780bg0hc06107f0gr0ny0kl0r00jf0lh","0l20l2___08c04p___05v06t0w20rn03p0ht___15200000101o04l03n03i04303i04702l06p0710b70iu05w0760g10rs0ol0rs0i50ne"],["Radio Canada Big",400,0,1,"0jb0jl0jb08l0430l807a04k0ta0rs0330dw0en1kl00300b02204z03v03m04d04o02501s04c04m05q0b804504u09s0j70jx0rs0hk0kh","0jo0jo0ip08v03y0ld0840590u00lp0640fv0ga1j300200a02704r03w04604f04c02g01a04z05f06v0db04p05s0c70jw0k10rq0hp0kn","0kh0kh___09r04o______04n0ty0rs00v0dr___1dk00000001w04l03j03e04303b03y03304i04p05p0e404604w09b0ko0mf0rs0ft0m8"],["Radio Canada Big",700,0,1,"0l20l20kh07502x0ln07m06i0u70rs08k0hn0ii1g800300b01x04x04303o04m04d02a01k06b06o09i0hj05t0750gz0ns0kq0rs0jb0mt","0ke0kw0jd0b30320l807m06x0uf0md0bc0i80jq1dl00200a02504z04a03d04t04902m01206l0770cd0hk0680800ia0nw0km0rp0jd0mf","0ln0ln___08w03i___02d06n0u50rs03z0hy___19900000001q04l03q03g04003j04702m06i06t0b60j906407b0ge0rr0ok0rs0ge0nz"],["Radley",400,1,0,"0k90ml0j40dh02w0j408404c19r2170bq0as0cf1go00700j03804p04004804203j01n01p04804l05k08t02403006h0eb0i00rs0hd0ow","0jq0lp0ir0j402z0jf0870591581mv0cn0di0f91gq00500j03c04o04004c05702j01z01405105l06x0an03004808p0h90hy0r20gs0oo","0q20q2___0b104n___06y04v1h027j0gg0b6___19g00100d02z03z03e03p03a03803c03l04g04x05w09902302y06q0dx0mn0rs0ij0tj"],["Rajdhani",300,0,0,"0ep0ep0e405z05w0jk06l01m0s10rs01707407h1sl00100b04i03t03z04203x04502v00701k01n01v02k01h01m03205q0it0pa0e40fa","0fn0fn0eo05t03x0l70680340r70oe0160cm0cp1s400000a03604003u04g04205402o00802z03703t06n02u03f06r0g60jt0pp0eo0gm","0gs0gs___05j06y0ep___01o0s60rs000071___1jg00000003s03503904203403203a04401o01p01z02h01m01o03d0660io0rs0eh0hd"],["Rajdhani",400,0,0,"0ep0fa0ep05u05a0jz06k02e0tg0rs01709u0ab1s500100b04404004003z04304502x00802d02e02p04c02502d04r0ec0j00p90ep0fv","0fp0fp0fp06z03x0ki06b03q0tz0nd0140di0ec1qx00000a02t04j03z04g04804i02m00f03g03s04c09303903y08p0ht0ju0pq0eq0go","0hd0hd___04u06d0fa___02k0ts0rs00009y___1iu00000003g03a03c04403903503h03s02j02k02v04702b02f05a0cj0lm0rs0f20hy"],["Rajdhani",700,0,0,"0h00hb0h006y03j0ji07705e0vo1ub01m0ix0j71nl00200b02q04z04a03z04z03j02q00805e05f0710f904q05t0hq0oq0jy0pd0gf0hl","0gq0hq0gq06k02y0kb07c05z0vi0ke01m0jh0k01k600100b02904z04704i04t04302i00705r06209g0ff0570730hx0ni0jw0po0gq0hq","0j40j4___07r04n___06d05v0vn1up0000io___1db00000102704903k04103b03h04k02e05u05w07d0gc0550700iz0s00pp0rs0g70jo"],["Rakkas",400,2,0,"0k70ks0hb0k001q0j10ae06b14t14y08e0fr0h71le00a00902b04p04704k04503302k01q05y06t0840bl0390680dg0kg0ih0rs0gq0pe","0kq0np0gs0sp01z0in0a606t11k10w0ab0gs0jx1io00a00a02h04s04a04q04t02g02o01306e07c0950ej04i0760f80mo0i10rs0gs10i","0n30n3___0de02w___09m0751hs17g0930fr___1cu00300502304103o03w03703l04602y06q07708i0bf02m0680du0qp0pm0rs0hb0r4"],["Raleway",300,0,1,"0j10jm0ih06l0410k708c02e0re0rs06y07r08v1ku00700n02x04j03o04603n04t01r01j02b02h03004k02502i03w06r0gv0n50gq0k7","0j80jq0hb0ep03d0kj07i03r0s7___06f0b40cx1ls00200j01q05103v04d04e04p01s01e03f03t04s08c03803z06f0d90hg0o30gc0m4","0ks0lc___05f05h___05s02i0sl0rs05c07f___1e300000c02o04203904103903c03d03j02c02i02x04m02502h0410650gw0rs0ih0nn"],["Raleway",400,0,1,"0j10jm0j107a0410k908c0330sb0rs09909p0ar1ju00700m02k04t03s04a03q04q01u01c03003603w06c02r0370550ap0he0nt0hb0ks","0jp0jp0ip07s02y0kd0890490sp0m708a0cw0ea1k200400m02p04s04004d04r03s01v00t04304b05d0a503o04e07g0fc0hz0ov0gq0ko","0ks0lx___06x057___05s0360sx0rs05409f___1dc00000c02a04c03c04203d03f03q03003203703r06t02r03705a09u0i20rs0ih0nn"],["Raleway",700,0,1,"0ks0lc0ks08b02w0kd08o05p0vg0rs0bh0fj0gl1gg00600l02305204204b04504d02001105j05t07m0eu04v05p0bz0kl0io0q80j10mi","0js0ks0ks08d02z0k008c0670vl0lq0ac0gf0i21f400400k02e05104704e05103g01z00p05x06b08w0fy0570660de0k70j00pz0it0mr","0mf0mf___0a0041___06405u0vd0rs05w0fk___18l00100b02c04f03l04203b03l04602305q05z07t0he05305y0bm0ol0l50rs0jj0op"],["Raleway Dots",400,2,0,"07108705u0r705u0k508o0130se___01s03g0471d500a00m03x03o03p03k04d04i01f01t00t01301701a00t01201801g0du0me0590gd","0hn0hn0hn09o03x0jj08802u0p70ql05f0a10b21pb00500n03e04603w04a04m03z01n01202q03003n06802s03904o08f0gu0np0fp0lk","08p08p___0lp06y___06d0120sd___00g039___15700200d03s03902v04703603502z04000t01301801c00t01201701e0dy0rs06y0hy"],["Ramabhadra",400,0,0,"0k90kj0jy07d0440l80890620z30rs0930fx0gq1fe00500a01z04x04003s04h03x02p01n05t0640780dk04m05s0e80lk0k90rs0jd0mb","0kh0mj0jz0cq0430l808l06k0yl0mq0bu0hb0ig1dq00400a02904z03404i04q04902k01206b06n08q0fs05506j0fi0lv0kl0qz0ig0ol","0mb0mb___09a044______0630yk0rs06y0fx___17x00000001s04l03k03i04402w04m02s06206507t0i904r05s0co0pg0nn0rs0gf0p8"],["Ramaraja",400,1,0,"0iw0ji0h50ra02y0ib09005u1jo1k90cp0d00ex1iz00800902n04p03s04q05b02a02a01m05b05z06w0a802b04309r0i50hq0rg0h50sy","0ht0ib0gu10x04y0hq09a06i1ao1i408c0f90ge1ib00700902v04r04c04r05902202i00u06306o0820c60390570c40ip0hw0qu0gu0sp","0n40n4___0gt04m___07t0661rz1ki0bo0db___1bf00200402c03u03n04003f03k03t0320570670720a302a03x09r0mh0nw0rt0hx0sw"],["Rambla",400,0,0,"0gk0gk0gk08603u0kp09g0430ub0rs0120dg0dy1o500800b02i04p03e04f04i04002f01e03z04704u09w03i04809u0ji0j60r70fd0hq","0gs0gs0ga08i03y0ko0a104u0ty1fm0280f80gn1mw00700b02i04m03z04d04m03s02h01004p04x0620c604c05b0c90kd0jx0r00fs0hr","0hd0hd___09x057___04c04b0uf0rs0000dw___1h100000202104903j03y03j03e04602x04904c0500b503o04p0a10n60m50rs0dw0j3"],["Rambla",700,0,0,"0hd0hy0hd08v02w0k909b05r0x217y03h0h80i31na00700c02804v04704l04603z02n00m05p05v0770du04q0680fm0ng0jo0q80gs0jo","0i80i80hq0ar0310k409j06d0wq0lk0380ie0jy1jh00600d02e04v04c03i04x04202k00o06706h09n0ek05c07d0gq0mx0jo0qj0g70j9","0hy0hy___0bi042___05w0680xi0sc00y0hm___1db00000301s04e03l04103j03h04g02i06306907t0fq05406v0gd0rs0oe0rs0cq0ku"],["Rammetto One",400,2,0,"0n50ob0m00bi02w0jo08809j13x0rs0jo0k40ls16100100902105304v05004f03t0270040990a10fi0lu06z0bt0jb0op0j70ow0ku0ph","0oi0pj0ly08u0320k608m0aa1410m30ja0kx0m811k00100802404z04s03o05204102f00j09o0az0ia0my07r0dj0k00py0jq0qo0kf0qj","0ri0ri___07k03i______0b611s0rs0j10ld___0wb00000001l04504a03k04304503o02d0b00ci0k80q808d0dl0px0rq0pb0rt0lo0tu"],["Rampart One",400,2,0,"0jm0jm0j209m02b0ks06d03c1a01cl06d0ao0b12ju00100e02v04q04g04f03h04302601a00s03a04405h01502e0540b70ka0rp0ih0ks","0hl0hl0hl0a703p0k306004p1380v804q0dk0eh1mh00000d03004w05904903m03p01v00v04304o05h07i02g03z07x0ez0ez0nc0fq0jf","0ks0ks___07802b0n903h02r1261j002j0am___2f200000102k04c03v03v02v04d03n02a00r03704205e01202h0570ba0q90rz0k70ly"],["Ramsina",400,1,0,"0jw0jw0iq0at02c0i509d05y1561ag0dm0et0gp1gk00900902j05904i04505d02j02b00p05p0650860cb0340510ag0i60hk0o40hk0mu","0jc0jc0hb0j90320i009g06s12t17n09q0ha0j21ev00700a02s05a04k03q05c02v02f00e06g0790a60f104d0670dq0jo0hj0oi0hb0me","0mz0mz___07r05j___08f06e1bw1hb0ex0fk___19u00100502904m03w03o04003u04t00l06306o08l0dp0360560aq0ml0ng0p50js0qs"],["Ranchers",400,2,0,"0g70g70gh0fk0160k906e05t0mh0rp04f0jc0ki1sr00000901t04r04u04h04403p02j01c05c06e0av0f407509n0je0qf0k90rs0dw0ii","17915a1l10dc02y0lb06f06h0qx0jy0m80jq0lb18f00000801y04j04o04d04o03y02d0120640810em0ky07u0bl0ki0pu0ky0rr0xf1oy","0ii0ii___0c801r___04n0680p00sg0420jp___1lp00000101l04704e03v03d03k04h02c05v06n0b90fl0700a10lj0rs0pr0rs0f10jo"],["Rancho",400,3,0,"0cq0d10c609002b0g707k0400qc0wt01z0ec0gb23m00900y03a04a04804v03c02702t01m03r04904w07103q0500aj0gp0f60ol0c60db","0cu0dt0cu0ez01z0fr07b04z0rl12e0610h20j41xk00900t03l04b04905003g02802u01404l05506g0at04o0650da0km0f90p10bu0dt","0g70g7___0cz02b___0370440sq0w901h0dp___1w400000101v04a03i04303a03g04k02s03s04504o08203n04o09y0lr0nu0rs0c50hx"],["Ranga",400,2,0,"0oa0oa0oa0du02w0j607j03h0ng0s30cq0c80er2bd00200c01y04u04i04p04b03g02g01803c03i03y06g03c05a09l0dk0hg0q40db0zu","0z40zm0ym0e606x0je07f04i0oq0jn0ku0et0hz21d00100c02504y04n04w05102s02h00k04804i06709q04j07f0ch0g00i10pv0rp17i","0f10f1___0gr01q___03i03j0ph0q504u0ce___1z700000201t04103r04003o03p04902k03h03j03w06q03305c09t0do0jx0rs0db0jo"],["Ranga",700,2,0,"13w14h11l0ej03h0kt07l05m0tj0r90jm0fx0hs1wn00200b01q04p04i04m04404602j01505d05n0700bn05308p0f30jq0jv0ql0hx17d","11m12m11m0io04y0jp08606e0um0iu0kd0hq0k11jq00200b01z04q04n04s04v03i02g00j05w06g0bk0de05x0al0h80kj0jx0px0fu1wb","0hn0hn___0lb01q___04605o0v10qt05y0gn___1qe00000301k04403w04303n03v04h02405m05r06r0co04v08t0fd0lg0n80rs0g70np"],["Rasa",300,1,1,"0fn0hy0fx0aj0370hn08b0310zn29y06f09t0bs1pp00900903t04n04704p04s02z01w00b02w03603t07k02102i0590ap0gy0nr0eh0jo","0g00i00g00g30300ie07o0490xt0uu03c0dt0fg1q700300d01x05l04e04w05n02d02a00b04004f05v09l03404007v0fc0h20n40e00i0","0k10k1___08104f___07303h1242lk0390ac___1dv00000403604103c03603o02p03p03x03c03l04708v02902p06b0b10nl0rs0eq0o5"],["Rasa",400,1,1,"0g70j40g70a302w0hy08903r1461wb05w0bk0d71p500800a03e04w04c04s04o03101w00b03n03w04m08j02902w06m0ef0hd0o00eh0jo","0gq0ip0gq0h901z0ho08a04o10w1k706t0eb0gr1n500700b03f04y04d04t05f02h01p00804j04y06e0a203504608z0gu0h70nv0er0jo","0kl0kl___07j044___07204b17926m03b0bx___1de00000402t04503g03803q02v03t03o04804g0560a702i03407v0eq0o40rs0fw0o4"],["Rasa",700,1,1,"0hy0lf0hy0b001r0i308605z1df1b909t0fl0hg1mv00700b02q05904m04x04l03401v00905v06607f0br03004m0c00ip0hy0oj0g70lf","0hr0kq0hr0oj01z0if08a06k1861330aq0h60j71kl00600c02x05504j04x05b02n01n00706e06t08z0db03u05q0e00jj0hy0o10gs0lp","0ml0ml___08u03r___07706w1iw1gw0730g0___1c800100402704a03n03v03503n04702q06q0720840dc03a04w0d70pv0oc0rs0j40ph"],["Rationale",400,0,0,"0bl0ba0c50ar04n0jp08o03j10e1gv00y0el0f71zg00700703904403y04a03r04902401o03j03k03l06y02p02z0ek0q20jv0rs08o0db","0dq0d90dq07l03x0kb08d04e0z61qu0130gb0hy1wa00500802k04c03z04b04h04302301m04b04f04x09503e04u0gb0pi0jy0rq0bs0ep","0af0ap___0bs0570g205g03j10d1s30000ek___1v700000302u03m03d03x03m03g03s03503j03j03l06a02p0300en0s30qp0rs0420c5"],["Ravi Prakash",400,2,0,"0i20ic0h707e04l0k207l06h1900o204a0gs0gn1hj00300801t04e04c04s05503j02t00p04y06p07x0ag03r07b0f50ln0j10pt0gm0jh","0i80j80h706s0420jz08d0791770nc0540ic0ir1d000300902m04j04n03u05b03s02k00805r07f08y0dv04l08u0gv0mp0ij0pi0g70k9","0j30j3___08n05s___0630621510v100g0h0___1a000000201h03t03h04103h04604o02o05907508s0c004008q0gl0ql0p40rt0eh0k9"],["Readex Pro",300,0,1,"0j10j10jm07t04m0kr09803i0rr0rs06y0an0bb1h900700702904s03l04b03q04s02501t03d03n04h08s03903r0690df0ii0r80hb0lc","0is0is0ia07t03y0ki09804f0sd0lw06y0da0e91i100500802g04u03w04f04v03n02g00x04804j05t0bv04104r08r0fr0i70qs0gt0kr","0j10jm___09w05s______03n0sf0rs03n0az___1af00000002204e03a04203h03504503903g03q04h0ay03c03u0690cc0k80rs0fk0lx"],["Readex Pro",400,0,1,"0jw0jm0k607j04m0kr09804m0su0rs0810dg0e31ff00600801z04x03s04c03x04k02b01m04g04s0610ck04904y09e0ip0j30ro0hv0lc","0ip0ip0j707i03y0kd0970560t30lm0930ex0fz1fo00500902904u04004j05003h02m00o04w05b0720eb04q05m0b30j90iw0qp0hq0ko","0k70k7___09k057______04r0t40rs0500dp___17m00000001s04k03d04303j03a04g02s04l04x0680f804f05408x0j90ll0rs0hb0mi"],["Readex Pro",700,0,1,"0jo0k90jo06x03h0ju08p06j0vi0rs0a50h30ig1c900500a01v05404b04n04g03w02k00l06c06q09p0gx05m06w0fa0nl0j40q90j40lf","0j40k20j408703u0jt08a06w0vp0ll0b40hh0jr19i00400902104v04804j05103n02f00q06m0750br0h305y07h0g50md0j60q00i50lz","0n20n2___081057______0720va0rs07y0ha___12f00000001j04e03q04103j03h04o02g07007d0cg0jg06607i0fw0rr0ns0rs0k70pd"],["Recursive",300,0,1,"0gs0hd0gi05q05s0k909k02c0qv0rs01o08i09t1hw00900803a04403p04903i04j02201x02902f02w04q02702h03y08w0i50r70f20hy","0gw0gw0gw05h03z0kg09h03m0sa___0130bs0dp1jl00500b01x04v03v04g04e04e01l01x03e03o04p08f03a03z0760eo0j10qt0ew0hw","0i00i0___04k05t______02d0rq0rs00008e___1ff00000003703p03803g03z03103h03s02b02e02r04g02702h04f08n0kn0rs0ga0il"],["Recursive",400,0,1,"0gi0h30g707x04n0jo09903s0t70rw0220d50ed1jr00700a02l04x04004h04203u02u00n03o03u04p09p03g03v0820hh0ij0q20f20hd","0hc0id0hc0600430k609p04r0sv0ne01m0eq0h71hb00600a02r04v04303g04o04002o00w04k04t06l0df04f0530az0ja0jl0qr0gb0id","0im0im___08q058______0420tw1b70000dg___1e900000002a04b03c03g03x03703p03m03y04204p0br03m04308a0ks0nn0rs0dy0jr"],["Recursive",700,0,1,"0hn0hy0gs05n0420jt09905e0tu0sc0370gq0i21i100600b02805504304k04903r02r00k05a05k07e0ep04u05n0dq0km0jb0q20gs0ij","0hr0hr0h905l03y0jg09c05x0u60lt04a0hn0jj1fh00500b02g04z04604n04z03e02k00805o06309n0f405a06h0es0l10j00pv0gr0iq","0j70j7___07w04n___04h05y0v20yb0000hl___1aj00000101x04k03i03g03x03f04202y05p05y07q0gf0540690es0rm0pg0rs0f40js"],["Red Hat Display",300,0,1,"0ig0j10ig07e04c0jm08b0280qo0rs07p07508p1m300700703504803o04703x04401w02802502b02s04b02202d03m06m0hd0r70g50k6","0ia0j90hc0d603v0jp07i03n0re___0610b30cj1np00200901o04v03r04b04v03u02901w03c03q04r09h03e03w06g0ct0i40qt0fe0l6","0k60k6___08p057______02c0se0rs04x074___1e500000002x03u03603v03j02z03e04402502c02s04702102c03p05t0ig0rs0j10mh"],["Red Hat Display",400,0,1,"0jm0jm0j109u0410js08c03d0t50rs0730a80bk1jr00700802f04q03q04903x04602701z03803h04707l02z03e05n0bu0i10ro0gq0lc","0jq0jq0ir0a202z0jk08904c0su0m807d0cy0eu1kn00500902l04r03y04g05303202n00y04604g05n0c603z04f0880ez0i30qw0gs0lp","0lc0lc___0af057______03h0tl0rs04z0a6___1cg00000002804a03903x03h03204003l03c03i04707i03003g05p0b00ke0rs0hv0n2"],["Red Hat Display",700,0,1,"0kr0kr0k709n03h0kd08c0550vb0rs08k0dz0fl1gs00600901z04y03v04b04304502i01l04x05a06o0ez04d0510a60jf0j80rr0hv0n2","0js0kr0js0ag02z0jm08a05p0vi0lx0990f50hq1ha00400a02a04w04404i04z03702t00o05b05u07u0f304r05n0b50jj0j20qx0is0nq","0lx0lx___0b7041______05b0uw0rs0500e2___18900000001s04k03f04003g03704m02s05605f0700gf04k05a0a10kw0mk0rs0hb0o8"],["Red Hat Mono",300,4,1,"0hv0hv0ig03i06c0j108n02f0rw0rs07807x09x1bm00a00703504d03p04404003t01y02a02c02h03204v02702h03t07i0hb0r90g50ig","0hc0hc0hc03904t0ix08503p0sq___01o0bm0do1d200400a01p05403q04805203f02a01x03e03t04u09o03903v06i0cy0hh0qv0gd0ib","0ig0ig___05a05s______02g0rm0rs00008b___1bu00000002r03u03903u03g03403i04202e02h02w04j02702l04i0830kb0rs0hb0k6"],["Red Hat Mono",400,4,1,"0ig0ig0ig04g05h0j708n03c0u80rs07n0ac0cf1ba00900802m04s03o04504603t02502103703f04708702w03905i0bq0hv0ro0hb0j1","0hd0hu0hd04704u0jm07j0480th___02o0d10fa1cx00300b01e05903u04905103n02b01q04004c05p0b803p0490880er0i70qx0ge0ib","0ig0ig___07404w______03g0u00rs0000av___1b900000002904703d03u03g03804003g03c03g04007b02z03i06m0di0lz0rs0hb0k6"],["Red Hat Mono",700,4,1,"0j90iy0jj03b02v0j108206c0wm0rs0ap0h40id1b300500c01z05804804j04j03k02p00l06a06n09n0go0580690eh0n50io0q20ie0k4","0jc0jc0kd08s0210k108i06w0vq0lq0a70il0jo16f00400c02805504803g05603x02l00p06r0790d30hc05v0750g20nb0jm0qm0jc0kd","0kr0kr___04d02w______0730ww0rm0000ia___15z00000001n04g03n03z03h03j04o02f0720760ai0if05z07e0i60rs0p10rs0k70mi"],["Red Hat Text",300,0,1,"0hb0ig0hb06f0570j108n02f0ra0rs05x07v09j1l900800702y04e03r04a04503l01z02b02b02i02z04p02702j04007g0h00rc0fk0k6","0hc0ib0gd08q03v0ix08403r0s6___04n0bh0dt1n300300a01l05303u04f05103802c01y03g03t04r09o03c03y0730dj0hg0qx0ff0k8","0jm0kh___06j05s______02i0sa0rs04a07u___1df00000002q03w03703z03g02z03g04602e02i03004m02702j0420780io0rs0ig0mh"],["Red Hat Text",400,0,1,"0i60ir0hv09004m0j708n03d0tm0rs07h0a70c51jk00800702g04s03t04c04803k02702203803f04307c02x03c05l0ci0hv0ro0g50k6","0hs0jr0hs08x03y0jf08c04c0t40mh04x0d40fa1jy00500902m04s04204k05602j02p01004604e05m0b203v04f08h0f90hz0qx0ft0lq","0k60k6___0an05s______03h0tm0rs04z0a2___1c100000002804903a03y03h03203z03k03c03h04507u03003g05o0az0kd0rs0hv0mi"],["Red Hat Text",700,0,1,"0ki0l30jb08c03i0je08706j0wj0rs0bz0h20ie1dx00500a01w05504c04005703j02f00w06e06t09d0gy05g06m0ez0n90iv0qk0i50mu","0ix0jv0ih09903p0i907t06n0wi0ln0b40hu0kc1d200400a02304x05c04t04u02v02f00606f06w0b80gj05k06p0f40lj0hw0p60gm0m6","0nn0nn___09q04m______0760ws0rs06l0hd___14500000001k04f03o04203j03g04q02f07207h0b70kh05z0760f20rp0o80rs0kr0ot"],["Red Rose",300,2,1,"0kk0k90k909v03h0il09k02j0wb0yd0ez07m08t1hv00c00703t04d03z04r04303k02i00802g02n03a05801z02903k06g0gi0nt0j40ml","0kb0ks0jt0fr02z0ja09h03y0wc___0dw0bz0cm1ie00800a02005704304v05203h02h00603m0420520al03303k05y0cb0hq0nw0it0nr","0pt0qo___0al05v0g304402w0xp1000ga082___14e00000103e03t03403304c02e03504h02s02z03o05p02802h04206t0ia0rs0h00sq"],["Red Rose",400,2,1,"0l20l20jw0dn03i0is09m04q1090vb0gk0d20e11fx00b00802q05604a04805203k02200904h04u05z0cm03f03x07x0gl0hs0o70jw0pq","0kl0ll0kl0cs02y0jc0a205g0yd0sf0gg0fg0gc1ez00b00802r05104704o04w03m01z00705805n0760fu04804s0a90hl0i10nz0jm0oj","0pt0pt___0c705a___08805i10s0vz0e50d4___12u00100302904j03d03c04202o04a03905h05m0700i404204j08i0k20lv0rs0jd0tx"],["Red Rose",700,2,1,"0ld0l20kh0ex02x0is09m06d10z0uk0fp0g90hm1ec00a00a02d05e04f04905603l01t00a06206i08n0hn04o05f0cz0je0id0o70jw0p5","0kn0kn0jo0f703y0jc0a406v10m0p10fp0ia0j91bs00a00a02j05804d04u05403d01m00706h0730am0hl0540640el0ku0i40o00jo0ol","0rv0rv___0ak04p___08807e11d0uq0go0go___10g00100301x04n03j03g04002t04n02r07d07m0aq0md05f0660ek0qm0no0rs0mv0v3"],["Redacted Script",300,2,0,"1d5______0960dw___0z906s0td0rz0rs______0df03902g03f02n03c03f02g02p02y01706e08r0ge0hu06606i0760d908n0lr0ni1d5","16w0mq___07r06b___0rd0960tg0sq0ij0c0___0fn02k02z04903a03b03402u02l02100w0900d10lc0o208h08v0a20jn0cp0mz0mq186","1d5______0960dw___0z906s0td0rz0rs______0df03902g03f02n03c03f02g02p02y01706e08r0ge0hu06606i0760d908n0lr0ni1d5"],["Redacted Script",400,2,0,"119119______0bf___08y08f0si0r50rs0dj___0li00g01801z03o04305904404c02700h08q0dl0k70ot08408c09s0he0em0ou1191mw","17k17k___06q0c6___07k08y0rw22z0rs0dy___0kt00401402603o04r04005104802c00e09s0fw0n90t508t09e0aw0p90fp0os0zg1go","119119______0bf___08y08f0si0r50rs0dj___0li00g01801z03o04305904404c02700h08q0dl0k70ot08408c09s0he0em0ou1191mw"],["Redacted Script",700,2,0,"____________0g7___04b0830y9____________0di00000f01n03s04r05004304403300x0c30i20va21l0dy0o10rj0t80k90r6______","____________0fu___05m07w0zj____________09b00000i02g04c03p05204r03503500q0ce0iu1722n10fm0ow0s10tm0jg0qs______","____________0g7___04b0830y9____________0di00000f01n03s04r05004304403300x0c30i20va21l0dy0o10rj0t80k90r6______"],["Reddit Mono",300,4,1,"0hj0gy0hj03e04o0jm08i02u0qu0rs01o09f0b01fe00a00703h04603v03l04s03v01r01w02r02w03h05h02l0340530b60hc0r50fs0hj","0gp0gp0gp03703x0jl08a0400r70ml01n0cu0eo1f300600a02l04m03x04a04x03g02b01a03o0430560ad03k04g0830ff0i10qy0gp0hp","0gy0gy___043059______02v0r00rs00009s___1fg00000003703o03h03i04403903503h02t02w03c05702l03605p0bv0jo0rs0f70ip"],["Reddit Mono",400,4,1,"0hj0hj0hj0460430jq08i03q0s10rs04t0bs0dj1eq00900902z04m03y03m04y03l02001n03m03s04p09e03g0430790ga0i00ra0gy0ip","0hq0h90hq04503y0jl08b04j0s40mq02o0ec0ga1ee00500a02d04t03z04a05203c02d01604d04n05x0cx04b0520a50ho0iw0qz0gr0iq","0hj0hj___08l03i______03s0si0rs0000cq___1eh00000002p04603i03h04203a03p02x03q03t04h09f03h04907x0kg0lh0rs0f70ip"],["Reddit Mono",700,4,1,"0ip0ip0ip03r02x0k508i05k0tz19x06y0fv0hc1cs00700b02i04w04303q05103h02601f05i05o0760et04y0600du0lj0j30rr0hj0ja","0hs0hs0ia0aa02z0jm08c0610tx0lu0640gq0jb1b000400b02404x04404c05103902j01305t06809e0f505c06m0f40m20j40rp0gt0is","0iq0iq___04o02x______05o0tz1fd0000gp___1au00000002a04g03m03j04103g04202f05j05q07c0f705706i0ez0rp0nq0rs0hj0jb"],["Reddit Sans",300,0,1,"0hj0i40hj06k04e0jm08i02u0qm0rs04n09b0ai1ln00900703f04803w03o04s03q01s01w02r02x03j05j02m0350530aq0hb0qt0gd0ja","0ho0ho0ho08803x0jl08a0420r60lf0500ch0e51lk00500902k04o03z04c04x03d02b01903q04505409j03l04g0800f80hz0qv0gp0jn","0i40i4___07105u______02w0r40rs03r095___1fj00000003403p03h03i04203803803h02t02x03f05b02m03605d0a50i30rs0fs0lm"],["Reddit Sans",400,0,1,"0i40ip0i40940430jq08i03r0rx0rs0930bm0d51kh00800802w04n04103n04y03j02101n03o03v04s08p03g04307b0fo0hw0r70gy0jv","0hr0i80hr08r03y0jk08b04l0sk0ml04x0dy0ft1kg00500a02b04t04304c05003a02g01604d04o05v0cj04a0510a30h20i20qy0gr0kp","0i40if___0bb059______03u0sl0rs0500bl___1e700000002n04603k03g04003a03s02x03q03x04m08j03g0460770fg0jp0rs0f70l1"],["Reddit Sans",700,0,1,"0jv0jv0ja09002x0k508i05q0um0rs09g0fi0he1gm00600a02g04w04503s05003g02801f05j05s07d0ex04z0630cw0kj0iz0rq0i40ln","0is0ja0is0bb02z0jm08c0660uh0lw08p0gh0jb1fs00400b02204x04704d05003902k01205y06b08t0fa05d06o0em0l80j20rp0hs0lr","0kg0kg___08q04o______05s0u70ug06l0fm___19900000002704g03o03k04103h04202d05q05z07w0g305706h0d10q80m10rs0gy0ne"],["Reddit Sans Condensed",300,0,1,"0f70fs0f70650430k508i02r0pq0rs01609z0b61th00900703b04704003p04j04101s01u02p02t03a05402l03705z0d80hz0r50e10gd","0fq0fq0f806l02y0kd08903y0qs0nh0140dc0ey1t500500902i04l03z04e04o03p02d01903n04004s08h03k04n09d0gt0iv0qy0dr0gp","0fs0fs___05z059______02t0pq0rs00009z___1mu00000003003p03l03j04403c03703c02r02u03804y02k03a0610bs0j50rs0e10ip"],["Reddit Sans Condensed",400,0,1,"0gd0gd0fh07o03i0k508i03o0rk0rs0130cj0dx1rw00800802v04j04303p04p03t02201m03j03p04d07p03e04a08x0ht0ii0re0em0hj","0fs0fs0fs08203y0ke08b04j0s20m801n0es0g81r800500902b04p04504f04s03k02e01504b04l05o0ax04a05a0bs0jf0j10rn0dt0hq","0gd0gd___0ae04o______03p0rs0rs00g0cm___1l900000002l04403m03i04103f03q02v03n03r04d07v03d04e08g0j80kf0rs0dg0ip"],["Reddit Sans Condensed",700,0,1,"0hj0i40gy08502x0ka08i05m0u90wl0280gt0i21na00600a02g04r04603s04t03r02701f05h05o06v0db05106m0fu0oi0jl0rs0gd0ja","0gt0ha0gt09l02z0kh08b0620tp0lw02w0hn0j31km00400a02204r04704g04u03k02i01205w06508e0dw05i07i0gp0np0jw0rq0ft0jr","0ip0ip___074043______05p0tt15u00i0gz___1fl00000002604d03r03l04203k03z02d05n05s07c0ee05606z0fk0rz0n40rs0gy0l2"],["Redressed",400,3,0,"0ef0ep0ef0d302w0f008n03z0zo0xe06d0cf0dn1xh00800b02n05504m05d02w02902m01s03o04904v06902f03p07a0fb0du0r40ae0jm","0f60fo0f60fb0310f208m0560yk0tq07y0f60hn1qh00600a02x05604s04403o02c02u01k04p05706909t03k0580b20hc0ef0qq0940k8","0ij0ij___0c604c___0580471170r40100bq___1l100100702504g03s04303603i04f02103x04704w06a02h03r0740ho0m10r708p0ku"],["Reem Kufi",400,0,1,"0g70gs0fx08x0420f40760480tp0rs08x0cu0fh1qj00300b02e05i04x06603702g02f00d03y04805d0a903n04d08s0f30ej0nq0dw0hd","0hf0if0ge08n0430g308g05a0u514k09g0f10ic1jf00300b02k05d03o05m04s02a02g00q04u05b0770da04o05o0be0gk0fl0ow0fd0if","0j00j0___09m05v___04e04k0t90rs04b0d0___1b100000102j04b03m03u03y03h03w02604b04o05t0d904604v0960ih0jq0rs0hk0mt"],["Reem Kufi",700,0,1,"0hd0i80h307r03h0fp07j05k0ts0rs09m0fc0i41kt00400b02705l05006303i02k02600c05805m07n0dy04q05w0cy0k70f80nd0f20ij","0gt0ht0gc07j03y0fi07j0620uc0yz0930gr0jw1ie00200b02f05i05306503j02n02000505m06509k0ep05c0770e50ky0f20nu0eu0ht","0l20l2___07s05a___04p0630tz0wd04h0g7___17q00000102804l03q03t04003l03y01w05r06c0960h505l06m0dx0p90l00rs0iq0ol"],["Reem Kufi Fun",400,0,1,"0ft0g30fi08z0530et07r03j0qb0rs08k0bn0e11r000500a03805304p05z03a02e02e00d03h03j04b08502z03y06k0ds0ds0nu0dj0gd","0es0fr0ea09904x0fi08b0430ty0mt06a0d00g11te00400a02k05a04y05x03z02d02800603s04205208c03f04d0920f40ex0nw0ct0fr","0im0im___0ak06s______03t0qr0rs0370br___1bl00000002i04603d04503v03604c02a03p03u04s0aw03y0450770du0iu0rs0f80m0"],["Reem Kufi Fun",700,0,1,"0gt0hc0gt08704c0fg08304z0t80rs0a50ej0h31mt00500a03j05104p05s03i02f02a00604s04z06f0bt0430560b50gj0es0my0en0hw","0fv0hu0fd08h04y0fh08f0550vj0lw0930ei0hk1jn00400b02c05j05106803s02h01v00604u0540680c40470510at0gf0ew0mx0cw0hu","0kl0kl___08706h___04k05f0se0rt04h0f2___18300000102904j03o03t04002z04i02105505m07e0g705a05u0bu0nf0kc0rs0i80o4"],["Reem Kufi Ink",400,0,0,"0g70gs0fx08x0420f40770480to0rs08x0cu0fh1qj00300b02e05i04x06703702g02f00d03y04805d0a903n04d08s0f30ej0nq0dw0hd","0hf0if0ge08n0430g408g05a0u714l09g0f20ic1jh00300b02k05d03o05m04s02a02h00q04u05b0770da04o05o0be0gp0fl0ow0fd0if","0j00j0___09m05v___04e04k0t80rs04b0d0___1b300000102j04b03m03u03y03h03w02604b04o05t0d604604v0940if0jq0rs0hk0mt"],["Reenie Beanie",400,3,0,"0bm0c7___0gj03i___07902i0p20t809908i___1y800c01103t06l06s04v02c01c00l00502902h03c05502c02x05e08y08m0e809b0cs","0ad0di09w08i02p0bc06u03z0sp0hq05s0cu0g01sf00800l03106h09304r02601500900303303r06308f03704f0820bk09w0eb09w0at","0di0gf___07u02y___04h02j0pd0w501h09i___1q500000802p05304q04m04m03g01w00j02a02k03e05j02e02x04v08l0ec0m00br0h1"],["Reggae One",400,2,0,"0k70k70k707y03h0jt07i05m14x0od09s0dy0ee1ff00200901x04e04904m04b03z02h01k05405t06l09s03804z0b10jx0ij0ra0ih0lc","0js0kr0js07s03y0jj07h0621320mu07n0fm0gk1fm00100902304h04d04p05803702o00u05i0680790bp04105v0ch0jz0i60qx0hs0kr","0kg0kg___0ab04o______05i11n0oe01b0d8___19z00000001k03v03p03m04d03u03y02z05505z06q09u03f05b0ba0ln0ml0rs0dg0m7"],["Rethink Sans",400,0,1,"0j10j10j109504m0jo09003s0tl0rs0880bm0cq1iz00800802f04v03y04604903u02501q03n03v04q09003903w06x0eu0hy0ro0g50k6","0j80j80iq07j0420jz09e04q0tj0mj06y0e40fa1ia00500902k05004403905303r02b01c04h04t0630cf04805109h0gq0ii0rh0i70k8","0j10j1___0ab04m______03s0ud0rs0440bh___1en00000002604b03j03n03n03904003903n03u04i08t03503v07a0f00kw0rs0g50kr"],["Rethink Sans",700,0,1,"0k70k70jw0d702w0jo08y05j0vf0rs0990fo0h01iv00700902205204504b04e03i02h01g05d05m07c0es04n05r0c10js0in0rr0j10lc","0k20k20k20fu02y0jh0990660vx0lu09h0gy0hj1gf00600902704x04404a05203702e01805v06908w0fv05606h0df0k40j00rn0jk0lj","0k70k7___09j041______05i0v20rs0500ff___1ax00000001r04k03m03u03j03d04i02n05d05n07e0g504m05v0by0nu0n30rs0hb0mi"],["Revalia",400,2,0,"0ow0ow0ph07s0580ku06y0520vj0rs0ep0eo0eq15p00100702705b03c04204404d02l01m04t05207n0l704604k07w0ji0jx0re0n50ph","0pg0pg0pg07904w0la07c05o0vl0me0fi0fw0gh14t00100602g05003603x04s04502h01q05g05v08i0lp04r05808z0jv0kp0rp0ni0qf","0ph0ph___08l05s0gb___04y0tt0rs0dw0ek___11900000001x04y02x03n03n02p05103104s0540810ly04i04s07x0nz0q20rs0m00qm"],["Rhodium Libre",400,1,0,"0lc0mh0kr07i0360kr09803w0vw1x50e70c30cl1ee00c00l02z04o03g03x03905401u01p03r04205t0as03903k06q0dp0jn0rq0jm0o8","0ln0mm0kn0aw02y0km09a04p0uw1l30e70e70es1ef00900l03504p03j03w04a04901y01704i0510790e803z04k07x0gv0jx0rp0jo0nl","0mi0n2___08g041___06z03y0vz24a09x0bz___1ah00100e02q04e03003p03003603t03m03t04105f0al03803l06x0cw0mm0rs0fk0qj"],["Ribeye",400,2,0,"0kt0kt0ld0i602m0jn09t06s20n14k0d00d30d61fu00b00c02804n04604b03s04302301w02p06v07d0a902d0350810ik0j20rq0j20ou","0jq0k80jq0lb02z0jl0a807b1nz17n0ev0f80f61fb00c00c03b04804504904q03002i01103h07e08d0ca0320450a60jc0i70r10ir0oo","0lx0lx___0fp03r______06o2451ad0990d6___1ce00000002104503o04403503j03j03o02m06s0740aa02c02x07v0jv0pg0rx0ig0r4"],["Ribeye Marrow",400,2,0,"0l30l30ld0d302b0jn09t02e0ok3e80cq0b00br29y00d00b02l04t03s03w03k04902002902c02h03407702d02w05409o0j20rq0j20pe","0k60l50j80kt01x0jt09e03u0qv0pb0cx0f20gc1qe00900c02404t03w04204f03u02701w03e04w07v0c603k04r0a20ig0j30r40j80o1","0m70m7___0cl03h______02e0ph4q20940ax___22w00000002g04d03d03r02s03a03g04d02b02g02w06k02d02t05509p0pg0rx0ig0r4"],["Righteous",400,2,0,"0hz0ij0hf0d503d0ja07b05e0rx0rs0500h70i01jk00300a01z05b04804g05503e02r00705a05m07v0fv05c0610du0lj0in0ph0gv0k8","0ib0ju0ib0cn0210k107q0640r60ld03z0hz0il1fk00200a02805904903f05503s02q00p05w06c0au0gl0650700fs0m50jg0qm0hb0ld","0lc0lc___0b604c___05h05y0sa0rs02q0hr___16600000101o04i03n04003b03904w02j05u06508z0j005u06e0ei0q70oi0rs0g50mh"],["Risque",400,2,0,"0lb0lb0kg0ki03g0k607704j12p1v208z0cu0d01mr00300c02t04h03o04303t04502l01u03t04x06309o02p03r07f0fl0jl0r50ig0px","0k80k80jq0hz0210k607i05h0zd1ja07q0f60g11k000200c03304i03s03404h04202o01q04t05y07j0d103t0540a90in0jp0rl0i70n9","0mh0mh___0g004m___05704t13v25v08e0cq___1hc00000102904d03903m03303c04i03c03s05406i0ap02q03x07r0f90q30rp0if0qi"],["Road Rage",400,2,0,"0d90d90co09g01q0ku06u0520tb16l01r0jb0kh28400200b02604l04b04e04004502h01d04u05505y0ax04l0770ik0q70ke0rr0co0ef","0fr0hp0cs0x201z0lb0780660sa0kt08w0kz0lc1m200100b02b04l04d04f04q03o02g01005q06d0bc0df0670cr0kl0qp0k50rr0ds0rj","0dv0dv___08402b___02t0590sl11q0110jr___20k00000001x04803t04103g03t04h02405205b06o0be04z0790jr0rg0pl0rs0cp0ef"],["Roboto",300,0,1,"0ha0hl0gq05n04c0kr08402p0s40rs01609009z1n400700702o04f03p04703q04p01x02302n02r03905802d02u04w0ab0ij0r90gq0j1","0hb0hb0gc05t03u0kp07f03w0sl___01r0ci0dg1o800200901f04v03s04b04f04m02401z03j03x04q09503d0480860fi0j70qz0gc0j8","0j10jl___04r062______02q0sz0rs00008y___1gz00000002g03z03g03v03i03603k03u02o02r03904y02d02s0510a20j90rs0gq0kr"],["Roboto",400,0,1,"0hv0hv0ha08c04m0kr08403y0uq0rs01m0ck0d71l500500902604p03w04a03s04k02901r03v03z04q08x03b04308k0i80j60ro0gq0j1","0hr0hr0hr08403y0ki08804p0ty0nl03t0er0fq1le00400902d04r04004d04p03p02g01404k04q05t0c60470500au0ji0j50r10gs0jq","0hv0hv___09v057___02w0400vf0rs0000ca___1f200000001z04903j03y03j03b04703203y04004r09p03b04208c0iy0lf0rs0ez0kr"],["Roboto",700,0,1,"0j10j10iq07g03h0kr08305y0yj0rs05c0gb0hd1j100500a01w04t04504d04104802g01j05s06007b0e904r0660f60o50k60rs0hv0kr","0is0is0is06z02z0kh08a06c0x30lu0600h80ix1h600400a02504t04704h04u03f02l01006606g08u0f505606v0fy0na0jy0r30ht0js","0j10j1___08t041___02w0610ys0sa00w0gk___1b800000001p04d03p04003i03j04h02k05z06307i0g304r06b0ee0r60ns0rs0g50lw"],["Roboto Condensed",300,0,1,"0ef0ep0ef05p04m0kr08402j0pv0rs01609l0ar1us00700802n04e03r04803p04q01z02002h02j02y04s02f02y05f0dr0j20ro0du0fk","0ef0ef0ef08203u0kq07g03q0qj___0130do0eh1vy00200901f04u03t04a04f04m02701y03f03r04j08g03h04i09b0hm0jc0r00dg0fd","0gf0gq___04p05r______02j0ql0rs00009j___1o500000002f04003h03v03i03a03l03p02i02k02x04h02e02w05o0bp0kb0rs0ef0ha"],["Roboto Condensed",400,0,1,"0ez0ez0ez0850410kr08303r0t40rs0130dl0e91sa00500902604o03z04c03t04k02901p03o03s04b07z03c04a0af0ke0jq0rp0ef0g5","0et0fa0et07w03y0ki08804i0sb0nk0130fl0gv1s200400902d04p04204e04p03q02g01204d04j05h0b204705b0cw0k80jy0r10dt0gs","0fk0fk___09d057___02w03t0ty0rs0000d7___1m100000001y04903m03y03i03f04602z03s03u04c08n03b04a0a50n20ml0rs0co0ha"],["Roboto Condensed",700,0,1,"0g50g50g507703h0kr08305p0vu0ss01m0ho0il1nz00500a01w04r04704e04204802f01h05m05u0710dp04w07c0ih0qe0kc0rs0fk0hv","0fu0gt0fu07e02z0kh08a0660v50lo0260il0k91m100400a02404r04904j04u03g02j00z0600690950dv05g0850ig0ox0jz0rr0fu0ht","0ig0ig___06g041___02w05v0wp0ul0100hr___1gp00000001o04b03r04103j03m04f02h05t05v07f0eh04x07c0io0rs0ot0rs0g50jl"],["Roboto Flex",300,0,1,"0hv0ig0ha07n0410k608603e0t90rs03a0au0bz1ms00600802j04m03u04a03t04b02401y03b03g04107402x03i06g0f00ii0ro0g50j1","0hb0i90hb0ae03u0ki07e04a0sx___03c0di0f31o900200a01d04y03w04a04m04702801x04204b05c0ai03u04l0980gr0j50r10fe0j8","0j10j1___08l05r______03f0tf0rs0000ap___1gs00000002b04503f03y03h03803v03g03d03g04006n02w03k06m0dn0kf0rs0g50kr"],["Roboto Flex",400,0,1,"0hv0i50ha09e0410k608503z0ui0rs02j0ch0di1ll00600902b04q03w04a03x04702a01t03v04104p09603d04308l0hx0io0rp0g50j1","0hq0hq0hq09803y0jp08704s0tw0n603t0er0fx1lj00400902h04s04004e04x03902f01504k04v0640c60470550am0ix0j00r10gq0jp","0ig0ig___09t057___02b0410v10rs0000cg___1fc00000002404a03i03w03i03b04403403y04204q0a903d04608c0ix0li0rs0ez0lc"],["Roboto Flex",700,0,1,"0jl0jl0jl07q03h0k80860640yr0rs08k0ge0hr1hq00500a02004u04504e04603w02g01j05y06707m0f204r0690f30ng0jl0rs0ig0lc","0jq0jq0j80c603y0k108706k0xv0lt09u0hr0js1g000400a02504u04804h04x03702l01006b06p09p0g00590710fm0mz0j60rr0ir0lp","0jw0jw___0a204m___03h0690zp16a00w0gr___1as00000001s04c03o04003i03i04f02l06306a07s0gc04r06h0f00r90ns0rs0g50mh"],["Roboto Mono",300,4,1,"0hd0hd0hd02o05s0kb08402n0ru0rs02a0980a91dc00700802s04f03n04b03p04m02201w02l02p03b05a02d02t04k0a60ij0r70gs0hy","0gs0gs0gs03r03y0kb07k03w0ss___02q0ck0dj1ej00200a01j05203w04h04o04g02j00v03l03y04y09403c04807h0fe0iv0qj0ft0hs","0ha0hv___04t05r______02o0s10rs000098___1cg00000002f03v03d03x03l03903l03t02l02o03404x02d02w0590an0l00rs0gq0j0"],["Roboto Mono",400,4,1,"0h00gg0ha05r0540ja07p03o0tu0rs02m0cf0dy1er00500a02d04u04004h04z03j02n00k03m03q04l09203503r07i0gg0i60q30fv0hl","0gs0gs0gs04t03y0jj08604i0t80ni02o0f20g51du00400a02j04u04604i05603d02p00604d04m0650ch04304u0a30i90i80pu0gs0hr","0hv0hv___099057______03w0ue0rs0000cw___1b200000001z04803h03y03k03d04803303s03x04n09f03b04308j0k80n40rs0d90j1"],["Roboto Mono",700,4,1,"0hy0hy0hy04c0420jd07p05d0x00rs0810g30hb1d900400b02305404a04k04h03o02p00k05b05g06v0eh04e05e0cv0kp0j40q90hd0ij","0hs0hs0hs03h02z0jh08805x0ws0ys04t0hn0io1b900300b02c04y04a04n05603d02j00505q06108f0ew04u0630eh0lp0j10pu0gt0is","0j10j1___07i041___02w05q0xn0s00000gk___18800000001q04c03k03z03j03i04j02m05n05r07a0fa04o05w0ec0ra0ou0rs0ig0k6"],["Roboto Serif",300,1,1,"0jk0kf0j907402w0jk08p0350y92a80an0a90aq1kp00b00a03n04h03q04303h04i02k00s03203903z07o02b02p04r0a90ig0pw0h90lu","0ia0k70ia0a701x0jq08a0440wz0t10990d20el1l200500b02005703s04604904l02h00w03x04b05v09k03403x0730ek0j40pv0hb0l5","0la0la___07z041___02w03d0z72k808r0ao___1de00000203a03z03403i02z03103q04403a03g03z09k02e02t05e0ai0np0rs0g40qh"],["Roboto Serif",400,1,1,"0jk0kz0jk07a02w0jm08p03o10a21y0b80bd0by1jp00b00a03d04n03u04403j04h02j00q03k03s04p09702k03105r0cj0im0py0h90mf","0jp0l60jp07702y0jj09404k0x61qf0b40du0f21j000900a03e04m03w04604p03q02i00904f04s06n0ad03c0470800g30iy0pt0hq0lo","0lv0lv___07q041___03003x1182b00aa0bq___1cg00000202z04703803j03003603u03t03v04104o0ai02o03606n0cq0o90rs0h90r2"],["Roboto Serif",700,1,1,"0lu0lu0lu06h02b0jq08r06q1ey18m0e70ft0h01gr00900b02l04v04804f03y04802d00l06f06v0850c603f0520cp0k90jk0q10ie0o5","0lp0no0lp0e701z0jg0970741a511b0dk0h60if1fy00800a02u04t04904h04w03i02c00806t07d09b0ef04305v0ea0lc0j00pt0ir0qm","0nm0nm___06t02w___09507h1j61cu0c20gn___19w00200302804b03k03s03603k04a02s06p07k08m0dn03j05c0d50q80pe0rs0jl0s7"],["Roboto Slab",300,1,1,"0h00hl0h008702u0j007j02h0u02kh05c0990a11pc00800903p04c03o04604i03n02z00f02g02l03b06c02302e0470850ho0pp0fv0ju","0hb0ht0hb0dp02w0jq07d03p0ty___04j0cm0e51p700300b01s05903r04604g04e02k01303j03v05708e03203t06e0e70if0px0fe0j9","0jw0jw___083041______02o0uy2lx03p094___1fy00000003803y03303g03602v03h04m02m02q03907l02802h04n0880na0rs0gq0n2"],["Roboto Slab",400,1,1,"0hd0hy0hd08202w0j407l03t0ws1xl05c0cp0dm1n500600a02w05103x04904503k02x00n03s03x05j09i03103j06t0fv0ij0q20g70ku","0hq0hq0hq08z02y0jg08504m0ue1kr06o0fc0g71m400500a02z04x03y04804v03d02x00804k04x07f0c603z04o09i0i60j00pu0fr0ko","0l10l1___07104m___02b0430xa1yj04b0cq___1e300000002h04e03803l03703304503q04104505d0a803803p0760fi0p20rs0hv0n2"],["Roboto Slab",700,1,1,"0hy0j40hy0aq01r0j407l05h0z01co08q0gd0he1l800500b02e05804604e04a03f02x00k05g05p0910dv0440550bv0jc0j40q20gs0m0","0hr0j80hr0v301z0jf0870610xw17406y0hk0j11jd00400b02n05204404d04w03c02r00805v06g09r0eg04n05u0dj0k30j20pu0gs0mp","0mh0mh___08j03h___02w05w0zi1jr04z0gd___1aq00000002104n03e03o03503a04n03105u0610a80fk04k05f0bk0of0pz0rs0j10os"],["Rochester",400,3,0,"0fm0fm1bg0oy03h0db09902q0vg18f04s09n0bw2pz00d00h03i05i04w05602802c02d01002b02r03904b01u02n04z0ax0bs0oz0990m0","0fs0fs19e0x704y0dk08g04b0v20t407q0dc0ib24000700i03305r05405402l02e02b00r03v04f05x09303504q09i0el0d20p20et0pn","0gf0gf___0gg02c___07z02r0yb13m06309a___27o00300c02p04703s03o03t03303x02802c02r03704a01l02e04i09k0kw0ra0f90om"],["Rock 3D",400,2,0,"0er0hd0cq07806y0j402w0100kw0wk00j07y09835l00000302f04m04o04k04303r02d01900v01101f02c00y01d02h04u0hg0qn0c60hy","0eg0fw0dh06m04t0im03f03y0q70hn00j0g00jm1nm00000201m04t04y04w04t03a02c01302k04b06v0ab03405w0ag0g30hd0q10ci0hc","0id0id___04y07h______0120lk0m800007t___2qf00000001u03u04103w03r03f04c02p00x01401m02h00y01f02h04z0nj0rp0fi0ji"],["Rock Salt",400,3,0,"0l40kk___0e301o___0a003i0rm0w30m809y___1nb00u01u02p05703x04804b02i01p00l03603o05808v03503p05n0aw0cs0j00iw118","0j7___0j7___02j0go09s04o0u40tw0ij___0du1jc00n01u03l05505503j04b02901800504104r0720bk03t04m07o0d80c80ha0410k7","0ia0ia___0d102s___06n02x0pr11q01z0av___1m000200v03r03m03o03z03203g04101a02o03004b07d02t03904v09v0f20q20da0n9"],["RocknRoll One",400,0,0,"0jt0ko0j907o03q0jr0740540wu0qg0930ea0f91hz00200a02404v03y04b04903t02h01o04x0590680bt04104x0b10jq0iy0rk0ie0l9","0iq0jq0hr0aa03y0jj07805m0wv0ow05g0fd0hp1hi00100a02a04u04204g05203402p00z05b05u0780dw04j05q0ck0jn0iz0r00gr0kp","0ku0ku___08l04n______0560w30qg0000e2___1bm00000001x04d03i04003i03g04n02g05005d06c0cs0470550b30lz0mv0rs0g70ml"],["Rokkitt",300,1,1,"0k00kl0jp08i03j0iu08a0300wg2lq0cu09o0ab1fo00a00703l04i03n03704y02x02002j02w03504709902d02o04f0930i90rs0hn0nj","0j80k70j80dy02w0jk07g0460v9___0cf0ct0dh1h500300a01r05d03k03v04s03i02d02b03z04d0680b903c04006x0di0ia0rq0hb0n3","0md0md___08d044___0720350wy2pk0ad09w___1aa00000303703z03102x03n02m03g04x03403903z0a102d02r05309e0of0rs0fb0rn"],["Rokkitt",400,1,1,"0kl0lh0k008203j0ix08a03y0x12170dd0c10cy1ei00800802z04y03q03d05402r02d02503u0480650au03403k06q0dc0ih0rs0i90nj","0jq0lp0jq0jv02z0jd08904y0w51nn0c30e80f21ep00600903004x03p04005402j02t01b04o05a07r0dc03z04l08m0gk0i40rr0hr0on","0o40o4___07q044___0720480yr2680ce0cc___19e00000402m04e03503103n02r04404104704d05o0b603403p07m0d50p00rs0iu0s9"],["Rokkitt",700,1,1,"0l70my0l707u02d0j308906e1071fu0ef0ga0hc1ae00600a02a05a03y03k05302t02q01o0610700b20gm04q05q0by0je0j10rs0jf0oq","0l90mq0kr0j501z0je0890720zh0nj0b90hh0ii19a00500b02g05504004805002m02w01306m07r0c10hq05906l0e90lo0i70rs0is0nq","0pw0pw___06h03j___07z06t136___0fq0hd___14s00100401z04q03c03403n02y04v03106s0760cb0i204q0650cd0p20qh0rs0l70ul"],["Romanesco",400,3,0,"0v60v60s00f504m0fl08r03i0us0vc0f60cj0ex2we00b00o02f05k05205g03401v02001d03a03k03y04v02304h08n0bh0f00r80fl18g","12j0xl17g0br03y0fk08f04y0rj0oo0ku0gv0j21z500800n02r05o05605l03401t02400r04i05007q0at04e0740cf0ep0f60qy0um1ka","0x60x6___0e403h___07p03v0wn0uf0fn0cl___2df00200e02104804003y03603b03y02r03h03v04804y02g04r09d0bx0l10rt0fk19k"],["Ropa Sans",400,0,0,"0eh0f20eh09104c0ku08503w0u40s10120e00fs1ri00600902f04m03y04f03s04j02g01803v03x04k09d03i0450b70ko0jv0q20dw0gs","0f80fr0f807e0420kb08f04q0t11cl0130fq0ib1q600500902k04s04a03g04u04602h00v04n04t06k0bz04d05g0dl0kl0jt0ps0e80ha","0fn0fn___09k05i___02b03x0un0rs0000dr___1lf00000002804703j04203j03c04b02n03v03x04i09r03i0410as0o60mr0rs0cq0hy"],["Rosario",300,0,1,"0fn0g70fn06z0420j408602y0sh0rs03609u0bd1ql00b00i03004n04104h04g03e01l01e02r03003l05y02h03305v0cf0gt0p30eh0hd","0ft0gb0ft08203y0ib07k0420tg___01w0ck0f11r600300l01x05d04c04t05s02d01z00l03o04505209n03e04e0930ex0gu0ou0du0hs","0hy0hy___08j05i___07m0320uv0rs01809t___1j500700c02j04003i03z03n03b03a03002y03403m05r02d0300640bu0ij0rs0eh0jo"],["Rosario",400,0,1,"0g70g70g709303r0j408603r0wg0rs02w0bt0cx1po00a00i02p04t04504k04k03901p01b03h03v04g07i02y03q08b0g00hd0q20eh0ij","0ga0ga0ga09t02v0jj07f04j0v2___0310dr0fv1oz00400j01k05504304e05003x01j01k04804m05n0al03u04t0am0hj0i30qq0ed0i6","0hd0hd___0bl04n___07o03y0yf0rs0130bw___1ig00600c02904603k04103n03d03k02q03t04104l07o02y03q08e0gm0j40rs0dw0ku"],["Rosario",700,0,1,"0h00h00i60g602c0ix08805b1080rs08e0ex0fr1o200800j02f05004g04105g02t01l01c04w05f06c0bm03u0510cd0j70hp0qy0f80jx","0hj0hj0hj0eq02s0i607s05m0ze10709j0fw0hm1pn00700j02j04u05d04o05602001x00m05705p0760cd04905n0d60il0gw0py0fo0nz","0h00h0___0ha03j___07m05k11s0rs04g0fz___1g900400d02004g03q03h04g03f03b02j05h05r06k0db04205a0cp0ok0jn0rs0dh0m9"],["Rosarivo",400,1,0,"0g60gr0eq0gd02b0g80bq03211u1wu0a608v0ba1u400h00j03v05204l05304h01t01l00d02w03803y05w01o02i04x09u0ej0n60dv0j2","0ga0fs0ed0n101x0ft0b50480zn0m909r0c90fi1t100h00j02b05r04n05404z01t01u00e03x04e05i07n02m03u07e0dh0ef0n40de0j5","0lt0mp___0dr058___0aw03v18c2dl0af09w___1cx00800803703w03f03203u03b02w03r03b03y04v06r01u02u0650b30k60s30gv0rx"],["Rouge Script",400,3,0,"0e20cw___0m502c___0ck02e0wa0t605y07z___2p600f00w02m04u05604r03o02901w01d01t02c02o03f01g02704208d0d50pc09z0ir","0dt0ga0dt12j01z0ee0d90470ur0re0a40fu0gb28b00g00y03d04r04w05b02y02d01y00u03k04805n07r03004i08l0dk0dw0o00av0jq","0e50jr___0ki02d___0an0280zp0sg06608a___2ki00b00q02u04303r04t04903c03j00701p02602i03601a01s03806g0j20ou0ce0lt"],["Rowdies",300,2,0,"0ii0k90ii08a02w0ii09h05y0uq0td0990gl0i91hq00900a02005404704j04g02q02s01g05s06708h0g505606d0f50mz0ii0rs0hd0lz","0it0ks0ht09e02z0ii09h06e0us0n406y0hu0k11gp00800a02a05304b04q04z02802s00x06406n0a60g405i0700fq0n30i00r20gt0lr","0lz0lz___07f042___04n0650u20ss01f0gp___19000000101q04m03k04103d03b04q02g05u06b0900hy05f06j0ep0qt0nr0rs0ii0mk"],["Rowdies",400,2,0,"0lf0n50k90cu03h0ii09h07i0vy0rs0b80ir0kd1av00900b01x05004e04q04c02s02r01d07c07u0cv0j506d0800hy0qg0ij0rs0jo0ob","0kb0ls0jt0fq02z0ih09i07v0wp0m20av0jq0lk17n00700b02505004h04y04s02g02n00v07m08b0f10ix06o09k0hu0p10i10r30hu0nr","0ob0ob___068042___05707p0vg0sg08a0ir___13j00000101n04f03u04103e03i04n02b07g0850dn0l906n0800iw0rs0ow0rs0le0q1"],["Rowdies",700,2,0,"0mk0nq0ku0e603h0ii09h08y0xu0rs0fd0kh0lr16o00800b01v04t04n04t04602z02o01c08w09d0gu0ku07g0aj0io0rp0im0rs0ku0q1","0ms0nr0kb0ff02z0ih09i0980y30lv0dw0l30mt12d00700b02504s04r04z04p02k02j00v0920a30hy0l607x0du0ib0qg0i20r40jt0qq","0p60p6___07j042___0570970ww0sa0dw0km___10b00000101k04704404003d03x04f02709009t0i10na07s0a00o20rs0ph0rs0mk0rs"],["Rozha One",400,1,0,"0k70ih0ks06j02b0j109806h2nt17s0dw0du0el1jc00900b02j04k05005204703v01q00c05a06h06q08401e03o0an0j60ij0na0ih0no","0is0jr0kr09m02z0jf08g06x1rh0wd0ap0gi0fv1ia00600c02v04o05205405403601500705x06x07c08s02g05m0e70k60h70n00hs0kr","0n50n5___07r03h______07m3f519d08u0e0___1ak00000002103n03y04103h03u03w02y05707m08309e01e03m0c50pz0ph0rs0f20r7"],["Rubik",300,0,1,"0hv0j10hb0590570kr08n02w0q60r901709k0au1ki00500802i04m03q04503s04s01x01z02t02z03n06l02q03905e0b80ij0rd0hb0jm","0hd0it0hd07703v0kl07j03y0qz___01p0cl0e11mu00100901b05003x04904l04k02801o03l0400510aj03l04f07v0fm0ig0qu0ge0ja","0jm0jm___04o05s______02w0r40r900009k___1eo00000002b04403d03z03n03503j03r02t02y03k05x02q03405f0ad0k90rs0hv0kr"],["Rubik",400,0,1,"0j10k60ig07p04m0kr08n0480u70ra0250cv0dv1i200500902404t03v04903v04k02a01o04404a05a0at03o04e08b0ia0j40ro0ig0kr","0j90ka0i906y0420kw08k0520ub0l104a0ee0gc1hi00300902c04u04403a04u04a02g01c04t05606o0dy04g05b0aw0iu0jj0rl0i90la","0k70kh___09o057______04b0ur0re0000cx___1bu00000001x04b03i04003i03b04803104604c0590cz03q04d0810l00m50rs0gq0lc"],["Rubik",700,0,1,"0lc0ms0l206403h0kr08g07e0yd0rd0ap0i30iu1b100400a01s04t04704f04704402j01e07607j0a40iu05t07q0hk0qa0k70rs0kr0nn","0lk0mj0lk05s02y0l608d07t0yq0kr09m0j00jt18n00300901y04n04504d04s03w02g01807k0820ci0j806808f0i60pe0jy0rq0kk0ni","0nn0nn___05x04c___02j07n0yg0qp02z0id___14t00000001j04d03r04303j03k04m02d07d07r0c10kj06307v0in0ro0ot0rs0mi0o8"],["Rubik 80s Fade",400,2,0,"0n50ow0ml05302w0k907r07n3f20la0ip0ja0it1mt00200701j04b04i04x04j04502n01001n08h0ag0iv01a06l0em0l00jq0r70m00ph","0mu0nu0lu0850200jm07n09u12o09n0fv0l90lr12s00000901j04i04n04w05403r01x0180990ar0iq0m607y0f00ke0ps0jw0qv0lu0pt","0q20q2___05c042___02j0451v40e00gv0ke___1q500000001803m03z04803n04904k02c02209r0bt0ls01807n0h00pz0qa0rt0nq0r7"],["Rubik Beastly",400,2,0,"1t61t6______02u0ju06z0a25q809n0rs0gv___12i00100a01k04k04y05105103r02800e01707p0f20ma01504h0hj0oe0je0pl1t61t6","27a2gd27a0y403u0jt0690be1iu___0rs0i40kj0hi00000701404a04x05005003y02e00x07q0dj0mb1jz0d60ir0o10q10jd0qs1q365n","____________02t0nc03g09g5ly06z_________17300000101e04h04y04t04w04x02c00101304j0dt0l001203g0g50nc0lz0o9______"],["Rubik Broken Fax",400,2,0,"0o10ob0nq0eh02b0jo07r02f0wn0uj0ib0i20jf2um00100902204p04n04w04703n02c01201d02k06x0ar01c02k06j0df0j80rs0m00rs","0qe0rv0nh0or01y0ka0860al17e0nq0l20ka0nf0wo00100902304k04i04r04t03j02901109v0by0l20o10870ff0kq0qj0js0ro0nh1ax","0q20q2___0b403h___01y01w0u618i0hg0i3___2o400000001q04304404703g04d04201u01b01w0510a601b0220500bk0of0rs0n50rs"],["Rubik Bubbles",400,2,0,"0nn0ou0mh05y01s0k308a0a016q0k20ij0k20ke14q00300a01q04r04704x05503d02j00v09b0am0hv0m406q0au0jv0qi0ji0qs0lv0q0","0nn0on0lo0b701z0jp0880a913j0g10g20ks0m911300300901t04j04s04u04x03j02d00p09w0bk0jj0mk08c0ga0l40qr0jx0qy0lo0pm","0q20q2___05q01r___02b0au18t0fv0ee0kc___10r00000001003x04f04a03o04e04e01q09m0b40ji0nc0740a80nn0qz0ow0rt0ow0r7"],["Rubik Burned",400,2,0,"0nl0oq0lv0pr00v0kp08202b0mj2rm0gu08w09j25f00400c03204r04203v03004z02401i02302i03n06f02c02x04506y0jk0qg0lv174","1wg1th29d0mq03z0kc07g0490se0xp0mq0ch0d71sd00100e02505k04904204704301x01703e04l06o0ae03g04b06i0ai0jv0pu1cm354","0pe0pe___0m001q______02l0n953h0c3099___1xj00000002y04i03r03d02u04403g02u02a02n03w06f02k03604l07e0ll0r60j20tg"],["Rubik Dirt",400,2,0,"0nq0ph0n508g02b0k908809i17m0r70hl0k30ku1ev00400a01q04m04n04o04804202e01306m09r0c80kn05d08a0gv0mg0k90rf0ml0q2","0nq0op0mq08t01z0jp08a0a111y0kn0g70lm0ml12500300a01z04m04p04s04w03k02d00l09t0aw0jj0m60850g30kg0qm0jy0qz0lq0pp","0pz0pz___07j03h___02o07s13y0vp0fy0kk___1g200000001h04304504403i04404902604c09o0bo0kt0480810dv0om0po0ru0ot0r4"],["Rubik Distressed",400,2,0,"0ov0pg0mk0dn01r0k908608i1830qu0ij0jh0kb1lt00300a01m04m04o04q04904302h01104e0900az0ij04d07q0dq0ke0jx0r70mk0qm","0po0po0mq0h301z0jp0890aa13a0jc0j00kz0lz10c00300901v04l04n04q04v03p02d00r09y0bd0k60nb0850g40lh0qo0jz0r00mq0tm","0q20q2___09b02w___02s08o15b0px0ef0kd___1g700000001b04204a04503j04704c01x04h09i0bp0kj04r0880e00nw0pi0rs0ow0r7"],["Rubik Doodle Shadow",400,2,0,"2fo2et2gk0p904n0ku07j0351eq2fl0rs07o08z1us00500b03q03w04304503504q01s01v01l03404005i01c01s03407m0ku0rh2236lv","2rg37k2bd0sm03s0kj06z04r1d50v10rs0bj0db1px00100d02t04w03o03v03l05c02b00z03p04x06609i02402y0530ba0ky0qm1x56hz","2ei2ei___0lt05r0n402c02z1dh2u00rs085___1vc00000003j03i03l03i02s04c03003k01i03003o05601b01q03107i0qg0ru27b3v3"],["Rubik Doodle Triangles",400,2,0,"0ow0ow0nq0jx0160ku07k02v0pv1w20j00is0js3qo00300a01t04e04p04o04404c02c01301r03105c09c02103b05x0950ki0rd0n50qm","1s01r12cp0i303y0ka07e0b3179___0rs0kr0li0qi00100901h04j04y04x04z03x02a00h0am0gi0m10wv0a30j00ob0pv0jx0ql1d92cp","0q10q1___0fi01q___02h02t0ph1nc0j40jf___3ls00000001i03w04704303j04b04202701q02y05509802003a05u08x0q10ru0np0r6"],["Rubik Gemstones",400,2,0,"0pe0pe0oj0e101g0ks08a06a11x0nn0ib0id0ji1nb00400b01s04n04j04p04604402f01303u08b0ap0ho03306x0bt0ir0jv0r40no0qj","0on0p40mo0j701z0ki08a0a412d0iu0hk0k90m413600300a01z04o04o04t04v03m02b00j09k0aq0iw0ma07v0df0k60pi0jy0qw0nn0qm","0ql0ql___06102w___02s06g10s0z20j70ix___1hu00000001b04504604403h04204f02403x08t0ax0ij0350790bh0jp0oz0rt0ov0rr"],["Rubik Glitch",400,2,0,"2i02ek2kb1pw03r0k90880aa3qx0rn0rs0fw0jq10a00300a01r04l04n04p04704102g0120a20b70kk0ny01a0510az0kf0k90re23l3rl","21o21o1kd0w703y0jo08b0an1em0kz0ph0il0ne0s300200a02104l04r04t04u03k02d00k0ai0fa0mc0xj0700ei0k70qe0jy0qz0zm3jk","46i46i___0i502b0nb02j0at42n0qh0rs0ji___0wu00000001h04204504203i04304c0250ap0cg0me0pu01904a09v0kz0q00rs2ah5l9"],["Rubik Glitch Pop",400,2,0,"0nq0ow0ml04w02b0k908501v0qx0x90gk0bz0f92s700500a01w04j04l04k04d04202801701102004t09101402605408l0jy0rb0ml0ph","0ms0ms0ms08601z0jl08e05e0yv0n40d10fu0ic1fy00300a02204l04q04x05203g02300l02u0620a60ez02y0630a50g70i30pv0kt0ns","0pg0pg___05302w___02k01j0lz0ii0ee0co___2df00000001x04k04203l03803t04302k00z01r04q09e01302605708q0pi0rv0ov0ql"],["Rubik Iso",400,2,0,"0ph0q20ow04m01r0k909b0250rl3wp0hd0970bk21l00c00i05203704003t03304b01q01s02302603u06c02402903w07g0j40rs0ow0u3","1sw1sw16x0k90400kj07r0410u215s0pt0ch0dy1ud00300c02s04n04c04704603g02001t03a04h06g0ai03704706w0bj0j00r218x2bu","0pr0pr___0c802b___02b0250re3wp0dw09k___1th00000904n02s03x02u03204002x03d02302603t06w02402603w07c0ob0rs0n50qm"],["Rubik Lines",400,2,0,"0ig0e40kr0cg03r0k608s02v0s20rs07h0iy0j23bp00500902704l04i04j04603t02f01701p02v05408p02303208f0hi0jq0rb0820n2","0nl0ok0ml07002y0l408d09w11e0jx0fk0l70m511n00300901w04h04j04j04t03t02d01209f0ae0iz0me07y0er0kv0r40ju0rj0ml0pj","08z09k___0kj058___02w02t0r90rs0100j9___3ue00000001w04104304103h04104b01x01x02u03107k02202v0840i60ph0rs05s0f2"],["Rubik Maps",400,2,0,"0n50ob0ml04r02w0k908609f12n0oo0fi0ji0kr16v00300a01j04q04o04q04c04002h01008s09p0ff0kz06t0a10j00pi0jt0ra0m00ow","0mf0og0mf06g0320k808l0a311p0i50ep0kv0n511u00200a01v04p04q03l05104202h01209l0al0iz0ma0820ej0km0qs0kg0rp0mf0ph","0ph0ph___05503h___02j09u11d0pk0de0kj___14600000001a04504704203j04504e0220980a40f20m907809a0k50qm0pk0rt0ob0q1"],["Rubik Marker Hatch",400,2,0,"0o90pe0nd04t02w0k708o09d1ec09h0j80ib0ih1k700400a01m04p04p04r04a03t02j01202q08m0ai0de04s08c0ib0ph0j80r40n30qk","0oa0or0ms06w02z0jl08f0a819c07f0h80jt0jw12x00200a01e04m04o04p04z03p02h00z09g0al0gv0m206o0cp0js0q80jv0rp0ms0pr","0q20q2___07u03h___02b09f19i07h0ho0jd___1fa00000001a04604704803k04604h01q02t0920aw0el05c08f0l00qm0om0ri0nq0rs"],["Rubik Maze",400,2,0,"0n40oa0n406w02w0ka08s01o0s3___0gw0ep0fr51600400801v04804k04k04l04202g01601201p02f04401201o02e0470j80ra0lz0pg","0of0pf0ng0hm02y0l70970a913g0ns0k70li0li11k00400902704g04f04k04q03q02c01009q0av0j60mp07r0dr0ku0ra0jw0rm0ng0rd","0pt0pt___06102y0mx02w01m0ry___0ft0ez___4ya00000101m03o04303f04a03m04l02j01201o02a03v01201m02a0410oo0s70mw0qe"],["Rubik Microbe",400,2,0,"0nh0p80mv05f03j0jy08901f0r4___0i60c20d24qf00500a01v04v04g03y04y03f02k01d00z01g02c03j00z01g02d03j0jd0r20ma0pt","0mk0om0mk04z0330k508l09b13r0ef0fi0jl0le13z00200a01s04u03l04s05404002j00u08j09l0fx0kw06l0ae0jc0p00jr0qv0lj0om","0q00q0___05u04m______01f0rs___0h20c9___4e900000001g04703y04303h03q04j02f00y01f02c03i00y01f02d03l0ou0ru0np0r5"],["Rubik Mono One",400,0,0,"0s90s9___04o05s___02j0ax11l0ra0nt0kp___0pi00000001i04504703w03c04104g0290an0bi0nt0r808209y0p90rs0q20rs0qj0tf","0sg0sg___04a05e___02k0b711w0lj0mt0lb___0ps00000001n03z04403y03x04304901w0aw0c20nx0r308b0c70pf0ru0pu0rs0qi0tg","0s90s9___04o05s___02j0ax11l0ra0nt0kp___0pi00000001i04504703w03c04104g0290an0bi0nt0r808209y0p90rs0q20rs0qj0tf"],["Rubik Moonrocks",400,2,0,"0no0ot0mi08f02b0k908a05a0tb0s70iq0ji0jj1vx00400a01v04l04j04k04704402f01503n06t09z0ed03q06r0a80h80k70re0mi0pz","0nq0oq0lr08m01z0jo08a09r10u0me0gs0kj0m717g00300a02104n04o04q04w03j02e00l09a0af0hk0lg07p0c90ju0pm0jx0r00lr0pp","0pd0pd___07o03h___02j05l0ub0xc0gz0k5___1oq00000001k03z04404303h04404602a04107m0ak0g103x07i0b10j90pz0rs0ot0qj"],["Rubik Pixels",400,2,0,"0my0on0l806b0410j608x02t0v20uz0g90fc0ea2np00500b02904s04g04p04s02v02i01202003g05b08b01z03205a0850i20qt0l80on","0mh0oi0lg0520320jz07y09814n0dp0cu0jb0j115m00100a01o04s04q03o05503w02k01308709o0dy0kf06c0a90ik0pf0io0qu0lg0oi","0oq0oq___05e04m______02w0v00u50dn0fs___2hz00000001y04403y04303i04004b01y02003g05e08m02003e05e08e0oc0rs0nl0qg"],["Rubik Puddles",400,2,0,"0as0bx___0su00k___06b0180s5___05005k___2qk00400n03v03u03z04304403s02q00o00z01901q02j00x01701l02u0i60oe07y0ju","____________02h___06604t11v0u8_________1tv00200a03b04x03x03z04k03s02r00a03a05206u0a202t03w05t0b10jv0o0______","0bl0c607j0ka00l0nb03h0190sb___02p05j05j2kd00000i03n03d03n03g03t03504v01d01001a01q02h00y01901o02y0ml0q20990hd"],["Rubik Scribble",400,2,0,"0ob0p60n50gl01r0ku07k00z0qf0rr0fs04h05h2cb00800804103404203s02y05b01j02m00x01001a02a00x01101k02s0kf0rh0n50qm","2rt38a2bc0gw05t0ku07b0380se1ix0rs0b50cx1yx00300a03j04603z03r03m04s02c01a02p03l05h09e02o03a05009a0kj0qd1xs4uf","0pv0pv___0ah02b___02i0100rh3s60hu04h___23100000103w02w03l03802m04902n04q00x01001902600x01001i02q0py0rv0o50r1"],["Rubik Spray Paint",400,2,0,"0ph0ph0ob0l901r0ku07l0au13x0ls0ho0k90kp11m00200a01m04i04t04u04904902d00u0a90bn0jy0n908e0ge0lv0qy0k90qu0ob0xk","1vm1u728y0ha03t0kn0670b217y___0p90j70ls0pl00000700w04404v04s04z04k02v00j09y0f30ln0xf09s0it0mw0pn0kv0qn1ao36a","0ph0ph___0b202b___02b0ar10k0j40e50l8___10200000001403z04e04a03o04d04b01r0af0bm0l40nz08p0dq0pe0rf0ox0rs0ob0qm"],["Rubik Storm",400,2,0,"0ob0ph0n50ep01r0k907j06h15b0az0ij0ir0ix1rk00200a01504c04v04w04e04902j01203g06x09y0f702z06b0b70hw0jw0r90n50qm","0p60qn0m70n201z0jq0870ab1500ax0j40k50lr0zh00300a01s04m04o04u04z03k02c00o09k0b20jp0nd07k0eh0kb0q50jy0r00no1ga","0pw0pw___09202b___02k07w1ce0bi0gs0jt___1j600000000z03t04d04703n04804g02504307w0al0fx02w06o0bc0lc0ou0rv0o60r2"],["Rubik Vinyl",400,2,0,"1me1me1vu0f102d0kr06p02n0ul1wd0mw07w08r1v900200b03f04k03604203l04d02702201v02t03v06v01w02h03o0710k60qn1a01sw","1sp1sp___0ga03u0lh05k0460xg0o70p00c1___1pi00000901p05d03l03w03h04y02g02503704d06209p02y03o05m0an0k40qv1ho2vi","0xi0xi___0nv03j___03a02w0vj4090go08l___1ne00000103a04403d02z03d03203c04b02103004607g02102m03r07g0pe0rs0je1nd"],["Rubik Wet Paint",400,2,0,"0jh0jh______02d0ko07r09r0zu0pn0000i0___17300500p02a04c03x04h04s03l02d01909e0a10i30m808h0f80n30sh0kd0rs0jh0jh","0ku0mq0jw06b01w0kj0680900xd0fu0990l20ln14z00100b01o04204o04j04t05002800i08l09t0hx0k208w0h50mr0qd0k80qo0iy0mq","____________03h___06g09u0xo0nh_________14k00200g01r03r04603y03g04304402109p0a90k20na08t0ec0qg0sk0pi0rs______"],["Ruda",400,0,1,"0fx0fx0fx07b0570lh06g03e0tm0t30130c80cy1og00100b02n04k04004n03f05002u00e03c03f03t07t03103d0840if0jx0po0f10gs","0ff0ff0ff07303v0lp05n0460sh0s40130ej0fo1ox00000801g04w03u04k04704u03000u0420480550ap03v04i0ar0j50kb0py0ff0ge","0gs0gs___09f05s______03o0u70tm0000ci___1hm00000002b04403g04003g03b03v03b03l03q04308f03903o08i0ka0lp0rs0cq0ij"],["Ruda",700,0,1,"0ha0ha0ha06u04m0lh06e04k0vf0tb01m0f50fu1m500100b02b04t03z04m03j04x02u00i04i04l05c0c503x04g0bp0l60kd0pw0g40hu","0gq0gq0gq06h03y0lg06d0530up15p01n0gq0h61l500000b02f04o04304n04b04n02l00604z05706n0d004i05e0d60l00k40pt0fr0hq","0ih0ih___09l057______04z0va0to00x0ez___1dr00000002004d03i04103h03d04702y04v05205r0e604a04z0cm0pf0nr0rs0f00jn"],["Rufina",400,1,0,"0ig0jl0hv0b702w0hv09903z1m71q20av0aj0bs1nr00g00m03b04i04j04w04k02l02200c03s03z04d06f01j02c05s0ee0gt0os0g50kr","0ir0ir0ha0h902z0hj0a304y19d17309p0d70fh1m600e00o03l04p04l04y05j01r01i00804s05205u08e02f04008e0g30gx0nu0fs0jq","0lf0lp___0ch04n___09904l1t61z00bg0al___1bw00a00e02t03m03j03t03i03j03503804a04l05a07g01r02g06g0ea0kw0rs0g70rs"],["Rufina",700,1,0,"0iz0ju0ip0id02l0hu09904z1z51i50ca0bu0dd1mn00f00n03304m04o04y04i02k02000d04n04z05d07301k02s07i0gz0gx0oq0g40lv","0ir0ir0ir0dh02z0hi09g05t1hs12h0bn0ej0gi1l200c00o03f04q04p05005f01u01i00805g05w06i08o02c0490ae0hu0h00nv0ft0kq","0n50n5___0e404n___09905s2981q50ch0bs___1az00a00f02m03o03o03v03h03l03903005605t06b08401r02t08e0ji0m60rs0jo0sx"],["Ruge Boogie",400,3,0,"0bl0er___0fd01r___0bm0290pn0rd0580a9___2wt00m00s02u05305304y03002o02d00g01o02802s03x01t02i04507d0cv0nx0af0hd","0i50im___0nm02e___0b40430pa0z705k0dt___20p00l00q02n04x04v04v03k02m02e00n03g04806h09903p05i08w0d20de0nu0bg0nv","0hd0hy___0g401r___0af0260p50r6036094___2lj00800e03304k04003v03e03u03n00t01m02602r03z01t02h03r06i0hn0ph0bl0m0"],["Ruluko",400,0,0,"0f20fc0f207c04n0hm08r0360uw0sb02q0bj0ck1rj00a00902z04t04f04v04s02d02r00d03203703r06a02o03706y0f90g90ow0cq0g7","0ey0ff0eg08a03v0hu0870450u90rl01o0ec0g41tr00400b01m05b04c04t05i02o02n00h03w04705509703h04i0a90gz0h80oz0di0ge","0gs0gs___09p06d___05803e0uw0s50000bh___1hx00000302c04303i03w03q03d04502o03b03g03v06k02x03k07m0h40jz0rs0db0hy"],["Rum Raisin",400,0,0,"0dw0dw0dm07301r0k908x04j0su0x001n0hg0hj2a900700c01w04w04f04i04504b02q00e04b04o05a08k04006o0f40nj0jv0pm0cq0eh","0f40fl17c0u601y0k008i0520ro0h109x0hx0jk22e00400d01n05104n04q05303x02700404s05607z0b704t07b0h40mg0jg0oe0co0u7","0f20f2___08y02b___07j0510w51fq00i0hj___1z400100201p04703t03y03e03n04c02o04s05405s09g04606y0ft0qx0q20rt0db0g7"],["Ruslan Display",400,2,0,"0s50s5___06j03g___0620bk1y310d0my0k5___10o00000501i04h04e04j03q04l04e0040ah0c10dg0j304p0ag0l90o60oa0or0pa0tv","0sl0sl___06u043___06i0bo1pu0s10nz0kg___0yv00000602e04h04h03h04h04u03i0010al0ch0ey0ms05p0ce0mb0od0my0op0qj0tl","0s80s8___07v03t___0600bi1xq10b0n50js___10d00000402204604204704204b04s00209z0by0da0ii04m0a30l40o70og0oz0of0tv"],["Russo One",400,0,0,"0lx0ms0lm07u02w0kx07007d0za0rs0a00iz0k518x00300b02404w03w04c03z04b02i01g07807g0d70kr05r06e0jd0r60lc0rs0kr0o8","0lj0mi0lj0ie02y0l907c07r0zf0lt0cz0jp0ke16q00200a02904s03t04904k04302i01907n0820ff0kz0630760jb0q10ln0rs0lj0oh","0o80o8___0aq0410hj06n07e0z70rs0590j6___13w00000201x04i03d04403e03604m02o07d07n0d00m305u0680jb0rs0qk0rs0lx0ot"],["Ruthie",400,3,0,"0o90v6___0mo03h___0f00220u70sj0cc066___2l900j01g03g04l04t04o02i02z02a00j01h02402r03o01d01x03405f0c40mj0da14f","0og0og___0lb037___0en05c12e0vu0ju0dk___1k000j00z03n03r05005302k03002o00l03s05207g0an03104h08j0c90do0ng0fy19q","0ow0tt0lf___02b0m006e01y0um0ms0ij06b0822bm00701d03c04203q03x03004e03d00g01701z02m03k01901s02o04q0jr0ob0lf0yq"],["Ruwudu",400,1,0,"0hn0i80hn0gg02y0i80au04515r22808p0bi0dz1jq00b00703704n04503v05i01x02e01n03v04905608z02b03a0700ec0h60qh0fv0mc","0gn0jk0f60qj02y0gh0a404q10k1ic08u0d50h31nm00c00803g04v04e05204d02b02j00a04f04x06i0ak03204a08i0fc0fy0oo0eo0jk","0l60l6___0b104p___08804416628p0730bg___1dh00100502s04003i03403u02w03y03m03y04805309r02e03707d0d40nr0rt0hn0pa"],["Ruwudu",700,1,0,"0jz0jz0je0dt02n0i80au0641fy1f60eh0e20g31g900c00802p04v04b04005e02102g01j05s06b07i0by02s04i0ae0i50hn0r70it0p9","0i40mi0gn0tk03x0gg0a406918j1ar0bt0fq0il1ik00d00903305004l05704702f02g00a05y06f08k0d703c0550c00hx0fy0ow0gn0nh","0nj0nj___09u05b___08t06f1l91n40bb0eg___1a100200502d04503n03b03u03304103805q06h07d0cx02s04b0ai0mq0pb0rt0k00rn"],["Rye",400,2,0,"0ku0l40k90n801r0j408p03c0vl2fy0cv0eh0eg2o300800a02t04l04g04r04a03j02t00402g03p05q08902i03p0820i10ij0p20hy0n5","0jq0jq0j80ic01z0ji08806j1bm13l0al0hp0ig1nq00500b02p04d04h04s04x03d02p00206506s0850c003e05p0ef0lm0j20pv0gr0mo","0oa0oa___0hd03h___05s04110r2lk0bl0eh___24m00000202h03x03h03s03f03j03z03702n04506a08x02p03w0910ls0q10ru0k80r6"],["SN Pro",300,0,1,"0ih0jm0i606l04x0k707l02y0sf0qn03z09f0al1j200500902i04o03u04703z04902002102u03003n06402l03004y0an0i10r90gq0k7","0j10k30hz08d0480ks07y04c0t00kk03r0cv0e61ia00300a02s04w03404j05703102g01g03x04f05k0au03p04h0850fu0j60rn0gx0l5","0k70ks___05s06c______0310t00qj03308u___1c900000002b04403e03r03u03203m03r02v03303l06202l03004u09p0jr0rs0hw0mi"],["SN Pro",400,0,1,"0jm0jm0ir08i04m0k707n04a0uw0pp06a0cj0dp1gw00400a02304y03z04904304302d01o04304b05e0ac03m04808g0h40il0rd0hb0lc","0it0js0ht08403y0jl08704y0uf0kw0600eh0gf1hb00300a02c04w04204g05203402n00x04p05206j0dg04c04z0a50i50iy0qx0gt0ks","0kh0ks___0a4057______04c0v00pm02m0c6___1a000000001v04g03i03t03q03704b02z04704f05c0c503o04b0810h30li0rs0g60n3"],["SN Pro",700,0,1,"0kh0lc0jx07103r0k907s0670wr0n909m0ft0h91da00300a01t05004304e04a03v02k01f05y06a0850ge0510610do0l20j80rp0j10mi","0js0ks0js07303y0jn08706m0wl0gx0990h50it1c400300a02105104804k05403302n00s06b06t09m0gn05f06n0ek0ll0j40qy0it0lr","0lx0lx___08v04m______06b0wj0mu03z0fp___15r00000001j04k03m03z03o03e04n02f06506i08r0it05906b0d90pn0nb0rs0hw0o8"],["STIX Two Text",400,1,1,"0hy0hy0hy09o02w0j509b03u14b20m09t0b00c91lm00c00803804g03z04b03x03q02m01103n04004r07v0210320670e00ij0q40fm0lf","0i80i80g80mi0310j209i04r10b1gt06b0dr0ff1ls00a00a03c04n04703e05003b02t00n04j04y06a09x03004b08l0hh0ig0pq0g80ma","0my0my___0ah05b______04819m2ae0a80b2___1cq00000003103u03g03503u02u03t03w03z04c05308t02403106p0cp0oq0rs0gh0r2"],["STIX Two Text",700,1,1,"0it0ii0jd0hq02b0j30990621hk1dm0c30ed0fv1iq00b00902s04u04a04k04703d02n00m05u0660730b502l04h0am0j50ij0q50hd0oa","0jk0jk0jk0lv01y0jb09z06n1a515g0az0g80ic1g700a00902v04p04304g04u03602l00m06f06t08b0cv03e05g0ck0jq0iv0pu0hm0pg","0pb0pb___09l05b___07b06k1nr1o80ef0ei___1a000100202i04703l03b03u03003z03c06206m07m0cy02o04c0ak0nj0pj0rs0iu0su"],["SUSE",300,0,1,"0hv0ig0gq06s0570j10830310s50rs05009l0b01kg00800802o04m03z04a04d03d02202202w03303q06n02p0350590ap0hb0rc0g50j1","0hd0hd0ge08303v0iv07d0410si___03w0cd0es1mc00300a01f05504104h05803402b01q03r0430570a803i04707t0e40he0qv0ff0ja","0j10j1___06c057______0340sc0rs03m09h___1cw00000002d04603a04003g03403r03p02z03503r06o02q03905g0a80ju0rs0gq0lx"],["SUSE",400,0,1,"0hl0ig0hb08z04m0j108303p0sx0rs0550bd0cw1jg00700902e04s03y04d04h03a02b01v03l03u04m09q03b03u0760e90hf0ro0fk0j1","0i80j80h706z0420j408e04o0t90mc0600dl0fn1if00500902l04x04703e05d03402f01g04g04t0630ci04504x09m0gg0hm0rj0h70k9","0j10j1___0a004m______03v0t20rs0410bh___1bz00000002304d03b04103i03504603803o03w04o0az03e0410750e30kz0rs0du0lx"],["SUSE",700,0,1,"0jm0k70i606o03h0jm08305w0v00rs08k0fl0hi1fw00500a01z04y04404f04g03c02l01j05m06308b0fw0530620dk0jk0io0rs0hv0lc","0jk0kk0il06t02y0jf08706g0uu0l10990gu0jb1d200400a02404u04304e05203102j01d06706r0ao0gj05k06w0es0kl0iy0ro0il0lj","0k70k7___0al041______0620va0rs04k0g7___17k00000001p04i03i04203i03c04n02k05w0680940hk05c06e0dh0px0np0rs0gq0mi"],["SUSE Mono",300,0,1,"0hb0i60hb02x05s0j108302z0uc0rs03c09g0b81b900900703004h03x04704a03j01x02202v03103n06q02h02v04y0an0hb0rd0g50ig","0hc0hc0ge02i04t0it07d0410tu___0130ch0f21cs00300b01k05603y04e05503902801q03r0440510am03c04107o0ei0hi0qx0ff0hc","0hv0i6___03t05s______0310te0rs00009w___1am00000002f04103c04203j03603i03r02y03203l05l02n03305q0bv0li0rs0gq0j1"],["SUSE Mono",400,0,1,"0hv0hv0hb05y05s0j108303o0vh0rs0590bd0d91aw00800802o04r04004904a03f02601u03j03r04i09102z03h06r0ei0hl0ro0g50j1","0hs0hs0gt03q04y0ip08704j0uo0pj04t0dm0g71b100600a02t04r04604h05b02e02j00w04d04o05x0bs03r04i0990gg0hy0qx0gt0is","0hv0i6___07z057______03r0us0rs0000bz___1a800000002504803d04403k03803x03a03o03s04f09603803s07h0hs0ml0rs0g50jm"],["SUSE Mono",700,0,1,"0jm0jm0ir03k0410jm08305r0xb0rs06y0fh0hp19f00600a02605004104c04c03g02i01k05k05x07l0fh04e05f0cs0js0j10rs0hv0k7","0jl0jl0j303k03x0jf08706b0xn0n207h0go0je16v00500a02d04v03z04a05003402f01e06406n09g0g604z0650ef0l10iz0ro0il0jl","0jm0jm___074041______05z0wz0rs0000gl___16p00000001q04f03i04403i03e04k02m05w06107o0g00510660ep0qx0ot0rs0hv0kr"],["Sacramento",400,3,0,"0mk0mk___0iw06g09e0it0280s60rr0b4064___26n00i00h03g05z04l02q03602902e02a01u02502y04l01v02803c05s08w0qd0ak0tb","0l50l5___0t504t08z0ex03v0td___0bl0ay___1np00n00j03006i04j03j02y02l03900a03003x05r0ao03103w06609n08m0o00fe0su","0tj0uo___0mg037___0db0210s10sx0ka05t___1bh00500703503y02y04a03d02v04c02l01u02603004x01s02102s04f0gi0qp0ow17z"],["Sahitya",400,1,0,"0gs0hn0g708w02w0hd08u0340vo1ym0920ah0c31tf00a00e03n04w04804p05802501z00d03003d04e07m02a02y05m0b80gf0ob0dw0jo","0gt0hs0fb0iz01z0ic08e0480v415m05k0e70gc1tx00400c02205l04e04q05o02t01u00a04104i06109b03a04c0860fa0hq0ok0du0hs","0m00n50hy07p04n0lf08403n0xv2i508p0ay0b11e400200903104103803m02y03g03k03o03f03v04w09k02j03a06s0c90m00rs0ij0qm"],["Sahitya",700,1,0,"0ij0jo0hd0fi01r0hl08u05110s1dt0af0fm0g91rz00900d02w05c04j04u04y02f01y00c04u05i07l0bi03c04m0a60hr0hd0oi0fn0n5","0i60lm0g80qb01z0hm09705v10715m0bg0go0je1om00800e03105704h04v05j02501r00905m06d0960dc04705o0cp0ie0ht0ov0fq0th","0nq0ol0j409p02m0lf08506313q1mw0cf0fn0em1dd00200702d04f03j03r03503p04702h05u06i08s0dr03x05c0bj0og0ob0rs0ku0qm"],["Sail",400,2,0,"0gs0ij0gs08f02b0g707q05a2ba0vx0ec0cn0dz1q500g01e03305104y05403x01l01v00g01r05005j06901f0240610ei0fb0n50f20j4","0hs0ir0hs0cx02z0gk0860691tc0t10ho0f00hh1n600b01e03i04x04v05203y01n01x00802o06606n08802303a08k0g30f80mz0fs0rn","0qi0si0pc0q901q0mm04102717d0bh0fv06207i1xi00000601y04h04y05204204f02n00301802604104l01401i02x07d0hb0n10jl161"],["Saira",300,0,1,"0gu0hz0fo05x05t0j007r02p0u70rs02b09l0bc1kp00700903504f03y04004j03q02z00m02n02r03706602f02j04s0df0i00pz0fo0j5","0gv0ib0ge05w04u0js07c03r0up___01r0ci0dz1mj00200c01q05003u04j04k04a02k00x03i03s04k0bs03603v0860hh0ja0pz0ff0ja","0kj0kj___05p07n0fj___02x0us0rs00009r___1ba00000002r03u03a03g04902m03704g02w02y03c05r02m02o05c0bu0kp0rs0hl0l4"],["Saira",400,0,1,"0gx0ht0gc0960590iy07y03i0v20so0330c80do1jq00800803o04c04504204y02x02r00k03f03k0430a10330380760ht0ie0py0f60j9","0h40ik0h408704r0iw07x04a0ty1yo01m0ek0gf1jp00500a02r04o03z04j04v03703a00404504e05j0do03t04c09z0if0ii0pv0g60j1","0j20jy___0a806g0fe___03t0vc0rs00v0c7___1an00000002b04903b03j04902o03r03r03s03t04f0dj03b03f07f0kd0mk0rs0e30l4"],["Saira",700,0,1,"0ie0jk0i306z03t0iy07x06j0yl0rs0930iw0kt1er00600a02t05104d04405303302e00h06d06u09x0hb05706j0id0pi0j00py0hi0l0","0j30jl0il06l03x0ja0860700y80lk0810jg0lh1bq00400b02a04z04604n04w03a02l00j06t07c0cp0hh05o07w0ik0oy0jn0qj0hm0lj","0l80l8___07s04q___04v07c0zn0rs01d0jb___15j00000101r04j03204304602x04k02p07b07d0bu0jp05p06x0lb0rx0qf0rs0h40n0"],["Saira Condensed",300,0,0,"0cr0d20cr05j0420j007p02h0t00rs0160ai0cf23n00600902z04f04704204m03t02r00l02g02k02t04w02b02j06h0h90ig0pz0c70dx","0cv0dv0cv06102z0kc07h03r0u1___0160e60g522m00100b01n04u04504n04p04602e00x03h03s04g09f03a04c0bg0jh0jw0qo0cv0eu","0eo0eo___05o05a0ey___02p0ts0rs0000ay___1t900000002j03w03i03h04802u03e03y02o02q02y04z02h02p06x0ij0mi0rs0cx0f9"],["Saira Condensed",400,0,0,"0d20e80cs05h03h0j007p0310tt0rs0160cr0el22x00500a02o04n04804304t03l02t00k03003403e06u02s03409o0iz0im0pz0c70ei","0di0di0di07o02w0j607z0430te1j50130ft0h120g00500a02o04j04804p04t03b02j00n03v0450530a003k04k0cv0jk0jf0q80cj0eh","0eo0ey___07m04p______03d0uk0rs0000d8___1sf00000002804503l03j04602w03r03j03b03d03n07b02z03c0ap0oc0o70rs0cb0fu"],["Saira Condensed",700,0,0,"0e00el0e007902x0iy07w0590ud14l0130jh0kf1xt00600b02v04w04i04605203202d00h05605f06o0cu04s07u0j80py0j10py0df0f6","0ep0f60dq07101z0ja08605w0v10lb01o0k10m01rz00400a02b04v04c04p04x03702l00j05s06109q0dg05b0a90jb0pa0jn0qj0dq0fo","0fu0fu___07h03j___04p05u0va1g90000jt___1n000000101r04f03q03k04603204e02p05s05u07y0dv05608p0o70rs0r00rs0cx0h1"],["Saira Extra Condensed",300,0,0,"0b30bd0b305g02x0iy07v02d0sc0rs0160bk0d22hu00500902w04f04c04304m03t02701202c02f02l04b02902k0860i30ih0py0ai0bo","0bv0bv0av0eu01z0kb07h03k0s50xw02j0et0gm2f100100b01k04s04604r04q04a02d00v03d03n04d08a03b04m0de0jt0jw0qm0av0cv","0cb0cb___05303t______02k0t40rs0000bs___27r00000002e03x03n03i04802z03i03o02j02l02q04g02f02q0920mu0no0rs09z0cx"],["Saira Extra Condensed",400,0,0,"0bo0bo0bo05602x0iy07v02v0sq2060160d20ek2gl00700903j04b04g04504x03202g00j02t02x03305n02p0350b20jd0il0py0b30c9","0bq0cp0bq0dc01y0jf0820410sq1kr02w0gn0hy2bq00400a02m04k04d04p04t03b02g00m03u04104z08z03m0520ek0l40jp0qk0bq0do","0cb0cb___06g03j______0340te0rs0000dy___26000000002604403o03i04603003s03f03303503b05w02x03h0cd0q50ow0rs0ak0cx"],["Saira Extra Condensed",700,0,0,"0c70c70c707302c0j007p04l0t80th0130jh0k42by00400b02604z04j04505003b02r00i04j04p0590aj04c08n0j90pv0j30pz0bm0dc","0dp0dp0cq0jm01y0jb08505d0tk0lr07b0js0ls21100400a02b04s04f04r04x03702j00j05605h0910bw0520al0jc0p70jo0qj0br0nh","0di0di___08a02n___04p0550ud1hy00h0k9___1z500000101s04b03s03l04703504c02p0530550660ba04q0a30pe0rs0r00rs0b50eo"],["Saira Semi Condensed",300,0,0,"0f00fb0ef05m04x0j207i02h0td0rs01609p0ba1t500700903504c04304q03s03u02u00m02g02j02x05402a02f0510f00ih0pz0dv0g6","0fa0g80fa06o03t0jn07c03p0uf___0150d50eu1rq00300b01p04y03v04i04i04a02601h03f03r04g0a903703t0980hq0j70ql0eb0h6","0hl0hl___05v06g0ev___02q0tx0rs0000a0___1ix00000002p03u03d03g04902q03904802o02r03105a02h02l05q0d70la0rs0f90i7"],["Saira Semi Condensed",400,0,0,"0f30fy0ei08204n0j007p03a0ub0rs0130cm0e01rp00600902p04r04504104t03j02w00k03703b03r08o02y03608d0i70ii0pz0dx0gu","0f90g70f907x03t0ix07x0450tm1rq0130f40gl1qz00500a02r04m04204l04u03803700504004805b0bq03q04c0au0iz0ij0pw0eb0h6","0hb0hw___09905v0fk___03k0un0rs0000cl___1i100000002a04503f03j04902r03r03o03j03k0420a703603d08r0m90n50rs0di0is"],["Saira Semi Condensed",700,0,0,"0g90h40fo07a02w0j007p05u0wb0sg02o0j80kt1nk00400b02405404d04405303d02s00h05q0640880f104z06o0im0pj0j20pz0fo0il","0gn0h50fo07c02y0ja08606f0wq0ll0260j90lo1jc00400b02b04w04804m04x03902m00j06606n0ao0ff05e08g0is0oz0jn0qj0fo0il","0jo0jo___07u042___04n06k0x80rs0000jd___1ca00000101q04e03k04403j03f04i02k06j06m09y0gv05h07a0m90rs0ql0rs0f10k8"],["Saira Stencil",300,2,1,"0fo0hf0dx06405t0j007r02n0tr0rs01p08s0a61mk00700903504904304404h03s02u00n02l02o02z04z02f02i04l0dj0hj0pz0c70hf","0gr0i50gr08c04n0j507603s0vz0sw01m0ce0dr1ma00300b01s04z03v05r04j03c02g00q03e03t04a09i03503f0790fu0il0pv0ft0im","0h00h0___05o07x______02x0uo0rs00008i___1d600000002q03q03f03i04d02p03104d02w02x03704e02m02o05b0by0j20rs0f90is"],["Saira Stencil",400,2,1,"0c90c90ck0f604o0iy07y03f0ug0rs02r0cn0cr1m000900903m04904904604x02x02n00l03e03g03s08c03203707d0he0hz0py03i0gx","0gq0i80gq08703y0jj08404c0ua1mj01m0en0fi1l900500b02t04j04404r04x03702w00604604d0560cl03o04809q0in0j20pu0fr0jp","0d70cx___0fj05a______03s0vb0rs00n0c1___1e100000002a04503g03m04c02r03m03n03r03s04508m03b03e0780jh0l60rs03j0hm"],["Saira Stencil",700,2,1,"0c90cu0at0du03i0iy07x06f0xx0rs0510j00k01m300600b02t05004g04605203202c00h06b06j0740ag05606i0h00nb0iy0py0700i3","0il0j20i406m03t0it07z06w0yw0m70810ja0lb1e400500b02a04y04704o04x03902y00506o0740b10gg05f07m0ht0ob0j50p60h60kz","0e30e3___0cw044___04p07a0zl0rn01q0il___1f200000101q04i03m03n04902z04h02n07707a07x0c105o06q0hz0rj0pu0rs0710is"],["Salsa",400,2,0,"0ij0ij0hy07b02w0jo09g0540wc0vs04x0eq0gd1oq00b00c01z05304904j04903k02l00y04u05c0670a004005e0ap0ji0ij0pl0g70j4","0ir0ir0hr08d02z0ji0a305v0wh0ok0420gi0ia1lm00900d02505104a04k04y03502f00o05f05z07k0cr04p06a0cr0jr0i50pt0gs0lp","0it0it___09i03h______05h0xb0u600g0ez___1g800000001q04m03p03x03f03m04i02c05405j06f0bw04705p0b70nr0mo0rs0f10lz"],["Sanchez",400,1,0,"0ki0l30jc07202x0j009a03r0um1w70br0c20d11h200c00603o04p03k03h04z02p02c01y03p04005u0ab03603n06f0d20if0rs0i60m9","0kp0kp0iq0h301z0jc09a04o0tu1fk08a0e20fg1h400800802u05203i04204w02u02s01e04g05007e0cy04104l0850fq0i40rq0hr0mo","0m90m9___06z03j___04h03x0ux27e08s0c2___1ap00000203d04a02x03503a03004203p03q0410600b503903q06x0cw0ov0rs0ki0ps"],["Sancreek",400,2,0,"0hc0hc0h20lv01q0lg06d05h1ac0so03z0gp0gy1xp00100a02c04f04b04x03q04o02n00j04z05j06m08g02m04d0cf0m10ky0q00fm0j3","0hh0hh0gg0kr0220l605u06f14q08j04r0j00j81s500000702204t03d05304p04t02j00905x06l0840cb04306r0ig0ny0ks0pq0ff0ii","0ix0ix___0a501s___07306219z0s90250i1___1rl00000202404003904504a03704302o05k06507b09r02x04x0ep0r30qn0rv0h50ko"],["Sankofa Display",400,0,0,"0fl0fl0fl06a02w0hz08301q0rf5y104d07p0a629t00900a04603k04904304v02r01n01z01m01r02703501l01s02q04c0hy0rq0eg0gr","0ge0ge0lo0js02f0hw07h0340re0hi0990cp0fv24u00300b01t04n04e04d05h02x01y01v02s03904o09d02r03c06c0cy0i80qx0ff0sw","0g60g6___04q02w0eo___01o0qs6j000007z___25x00000003u03403k03o03e03203604101k01p02102z01k01r02r04y0jr0ru0f00gr"],["Sansation",300,0,0,"0i40jk0h906x0560jq07v02f0so0rs04n07s09g1iy00600703v03s03o04703n04d01r02602e02i03204v02602f04307x0i30r80go0la","0he0ic0he08b03v0ju06p03r0ta___05k0be0do1ll00000901h05203s04f04i04d02601u03f03t04o09v03a03x06x0e80ig0qu0gf0ka","0kp0kp___06r07h______02j0ub0rs04707e___1co00000003o03d03603w03d02y03a04502e02l03204h02502e04606u0i70rs0hu0n0"],["Sansation",400,0,0,"0ie0ie0ie0ag04m0jq07v03z0vl0rs05y0bx0dx1h900500802z04j03w04b04003w02901n03x04204v0bc03c03t0880h30iq0rg0g40kp","0in0jm0in09c03x0kf08504u0v50n707v0ds0g01gq00300902d04q03u04a04n03t02801l04o04y0660e104504u0ad0i00jp0rn0go0ll","0ie0ie___0cg056______0420we0rs03o0bk___1bb00000002t04203b03w03e03404703103x04404z08h03a03t07r0g50kk0rs0c30nl"],["Sansation",700,0,0,"0jk0k50iz08r0410jq08705k0w10su09g0f80hc1h000400902k04t04104c04703m02j01e05h05o0740fr04n05h0cq0kp0j70rs0h90lv","0jn0kn0j608m03y0kd0880660wr0lz0b00gs0if1ec00300902504w04104c04u03k02i01805x06d08i0gb05506a0e90kq0jt0ro0hp0lm","0jk0jk___0b804m___06505o0vw0rs03q0eu___19f00000102c04c03f03z03c03804m02i05h05s0750hc04t05m0bx0o40mq0rs0dt0nl"],["Sansita",400,0,0,"0h90hu0h907502z0l207i04x10c1ds01l0et0fl1sa00300902m04q03q04l03z04i02p00o04n04y05f08e03a0550cv0kt0jz0qi0fg0ig","0hp0i70hp09102y0ld08405n0ye1c002u0gd0hb1oy00400902m04i04304a04i04602i00s05b05s06l0bl04706e0f60l80k30qv0gq0ip","0ex0ex___0bv03g___05c0541111mj00f0f6___1m500000401i04a03q03w04203504103305305505n08z03e05q0dl0qc0o40rs0cm0ix"],["Sansita",700,0,0,"0ir0jc0ir07i02c0kr07e06d15k14w05w0gq0hh1oo00300902e04t04i04104q04102b00n06806h06z0an03r06y0hi0oy0k60q40hl0jx","0jm0jm0j50ak02y0lb08407414x13u07v0ho0il1kx00400902g04l04804f04h04202g00r06v0760800de04l08b0in0oo0k20qt0in0km","0ji0ji___0c402v___06d0731av19100w0ho___1hk00000401d04703u03z04203904602u06w07307l0bx03u07x0jw0r70p90rs0ds0l8"],["Sansita Swashed",300,2,1,"0gc0go0gc0b702j0iz06z03u0uo11h04r0c50dm1wp00500j03404803v04x04r03e02m00903p03x04b06s03004308m0ea0i10on0f30hm","0f50g10f50dl01s0ic05z0470tf0f107i0d80g121h00000i01w05r04404g06703b01k00204204905109803i04z09r0ez0ht0mh0e90n5","0mi0qb0m70b901r0mw06c03h0u311a0hl09s0b820v00100k02s04403w03z04v05v01o00203c03j03x06102o03k07g0br0jo0mw0hj0tt"],["Sansita Swashed",400,2,1,"0g50gg0g50aw02e0i206m04a0wr0z707u0cr0eu1yw00200m03004x04005104u03j01p00304604c04p07503104f09a0fb0hg0nf0fj0nb","0gq0gq0fa0h701x0hr06804w0vx0b30ba0ex0h71xv00000h02005604l04z05h03p01d00104o04y05o0aa03s05l0ah0fs0hb0m30fa0so","0ms0yw0mi0bu01q0ml0690430wh10f0hv0am0c91yz00100l02o04703y04p04905t01l00203w04504h06t02u03z08h0dd0js0ml0hv0v5"],["Sansita Swashed",700,2,1,"0i60hw0ih0hm01q0he06e06213e0wr0gi0fq0hg1vr00200m02s05504u05a04p03901600105o06306k09s03n0630c10ht0h20ml0hb0sa","0ks0pq0n90n601z0ib05n06f12o08j0dc0gp0i21r200000e01s05904t05b05j03n01400106406h07t0cy04e07n0e60id0hy0mr0fu0vo","0um1850ro0fd01s0mh06d05w12e0u60o60ch0fc1ts00200n02h04d04704905704y01n00205k06206m0a003l05m0as0i00kd0mn0oq185"],["Sarabun",300,0,0,"0hb0hb0gq0770410jr09h0380ts0rs03c0a50bd1ng00800802j04p03v04503y04602401x03403a03w06902r03b0600e20hy0rd0g50ig","0gs0hr0gs09003y0jj09b04a0t80m903c0dh0em1nw00600902n04q04204d05403302i00y04404d05e0a303s04i09g0hi0i30qw0fs0ir","0hv0hv___08t057___03h03b0ud0rs0000as___1hj00000102a04803e03u03m03803u03e03803b03t06702s03c06k0eb0k90rs0ef0jm"],["Sarabun",400,0,0,"0hv0hv0hb0860410jr09h03x0vl0rs04a0bw0cv1m800700802b04u03x04803z04202a01r03q03y04p08703903w0800gp0ig0ro0gq0j1","0hr0hr0gs09403y0jh09d04p0ug0mo04j0ed0fo1mr00600902i04x04604g05303102j00p04i04s05y0bs04304v0al0hq0i30qt0gs0jr","0hv0hv___09p04m___03h0400vr0rs0000ch___1ga00000102204d03h03w03j03b04503203y04104o08v03b04108s0ir0li0rs0du0k6"],["Sarabun",700,0,0,"0j10jm0j107603h0jr09h05u0xk0rs08q0fp0gk1il00700902004z04304b04703s02i01i05e05z07c0el04k05q0dq0ld0j10rr0ig0kr","0ir0ir0ir06x02z0je09f0690xi0n607s0gu0i61hq00500a02905004804j05502z02n00m05u06b08l0fa05206j0ew0m80i50qv0hr0jq","0jm0jm___07j041___04m0600y90rs00y0gc___1b300000101r04i03l04003j03f04g02j05z06307t0gk04u0670ew0r70ns0rs0hb0lx"],["Sarala",400,0,0,"0hd0hd0hd0950420jr0990420ts0rs03m0cw0eh1k100700902804y03x04f04503x02h01b03x0450520ax03l0460990hh0il0r70fn0j4","0hs0is0hs08x03y0jm09c04v0ty0my03e0ee0gm1j100500902f04s04104h04y03802k01004n04z06d0d904c0550bf0io0j10qy0gt0jr","0hy0hy___0a704n___0880470u00rs0270cq___1dm00100301z04f03g03v03k03904b02w0420490520bm03m04d0920il0lg0rs0eh0lz"],["Sarala",700,0,0,"0k80kt0jn07r03h0kh08u0660zn0rs0990g10i01gh00600a01y04w04204e04204402g01h06406907l0fj04p0600fe0lv0js0rs0ii0le","0jt0jt0jt0b703z0jp09b06n0z50l808v0gs0j11fi00500a02704v04604h04t03a02m00z06e06r0900fp05406t0g10md0jw0r20ht0ks","0jn0jn___08w042___08b0690yu0s103l0g0___1a000100301p04f03l04003j03f04i02k06606e07t0gy04t0680ew0qs0nt0rs0g60n4"],["Sarina",400,2,0,"0w41iz___0vi042___0ak08p14e0u70q20ef___11y00900e02406206205503d02o01j00807n0970d40kr05k06u0b80f50dw0mn0tj1v5","0wb1hv___10u04w___0aa09e14u0nc0ph0em___0v600800d02905r05u05303t02n01l00908609x0f50nd06507v0cy0gq0e30no0rf2f5","0zv126___0e402m___08q08w14k0tb0pt0ek___0wq00200801l05104p04503c04h03v00e08309l0dt0lf05k0740av0f10j60pj0u31n0"],["Sarpanch",400,0,0,"0jo0k90jo0a506d0jj06g03x12p3pq0a40dv0dd1d100200b03x04e03v04l03a04b02v00703x03z04409a02s02t07o0ke0jt0po0fm0ku","0kb0kb0jt07w0630jz06j04t0yz2ps09m0f80gb1d900000b03104p03y03g04804k02u00r04q04u05s0go03n0460af0kk0ke0qg0jb0lc","0ly0ly___0ad07i0ep___04a13q3rl01v0da___16100000003b03l03c04103503403o03n04904b04f08903003007n0r00n80rs0f10n4"],["Sarpanch",700,0,0,"0lz0mk0le07u0570jp06f06s1v02d10gs0hp0iv1au00200a03b04m04a04n03p04202o00806q06u0750cj02t05t0i00q80jz0po0ku0n5","0lv0lv0kv07504z0jh06e0751mf1sd0cu0hi0jj1bh00000b02q04r04c04o04n03l02500p07107a0800gw03b06n0hj0oa0jx0pt0kv0mv","0ou0ou___09406d0eo05707m1ys2d908x0hk___14400000102r03s03p03z03703k03u02z07k07m07u0cv0300610ib0sd0r70rs0hw0pf"],["Sassy Frass",400,3,0,"0je13y___0cw02w___07m01x0tr___0ij073___2h100a01403u05905w04g02u02401j00i01n02102q03t01c01t02v04i0b00lp0af0nq","0z611k___07e04t___07904g0ws___0rs0dr___1rl00500t03405l05x04t03b02601h00h03i04k06r0a302s04106j09o0bm0m30wr1c6","0nq______0dg01r___05t01z0yc___0m8______28800100w03404i05305b03h03n01o00401q02302s04101901l02b03p0f30lp0k90uo"],["Satisfy",400,3,0,"0eh0eh___1bn03h0f20ei03k0th0vm07f0bm___26c00i01m02n05104n04r02l02802f01d03a03p04d06802u04508m0de0c80q20dw0yq","0fi0fi___17p0340f10f404s0t20oy07f0e0___1tg00d01g02t05f03p05403802d01x01h04g04x06d0a50420630bj0fn0de0pt0eg0y3","0g70g7___0mi02b___0330370qn11j07t0bh___24700000101w03r03s04603a03w04602u02z03a03q05c02o0420880co0lk0rs0dw0wf"],["Savate",300,0,1,"0hm0je0hc09t03j0kr07o0220g60rs03k08k09d1o300500a02l04w03103804004t02h02d01u02703g08m03503k04807f0ib0rb0fv0kk","0jt0jt0gu0eg02z0kb07j0360j9___0640c50cj1o300100b01d05m03g04604o04803300x02q03g05c0cx04804m06109z0ir0qm0gu0ns","0jo0ku___071057______0250gt0rs00j094___1gz00000002i04l02r03r02y02k04s03y01v02803g08n03803l04e07j0ir0rs0hd0lz"],["Savate",400,0,1,"0ij0j40hd08e02w0ku07l02k0f80rs02u0ax0bw1nk00400a02805603403p03y04k03601j02902u0540ch04204t05j09t0il0r70g70k9","0is0jr0gt0h102z0jk08503j0ig0hu06m0dg0ek1n100300b02h05003k04905903r02z00602y03y06w0e304o05i06x0bt0i20pv0ft0nq","0k90k9___06s04n______02n0em0rs00z0bb___1ee00000002204u02r03q02s02n05s03802b02w05a0f104a05405w0aa0kb0rs0gs0mk"],["Savate",700,0,1,"0ij0jo0gi0dt02w0jt07j03i0el0nc03k0f90gt1ip00300b01y05703m04g04a04l02t00k03604x0ax0gp06007k08m0fd0ip0q40g70ku","0jq0lp0hr0kj02z0jh08404h0i30gr0990gw0ha1ec00300b02305303q04s05403y02k00603u05w0cz0gz06c07y09x0gc0i70pu0gs0qn","0ku0ku___0ax042______03w0f70rs01w0gj___18i00000001n04j03j03l02j04g05202h03d05g0cy0jh06u08s09c0h40mt0rs0hx0mk"],["Sawarabi Gothic",400,0,0,"0hd0gs0hd09003r0k908z03y0ta0rs0590cw0ds1km00800702e04u03w04b04404102d01f03t03z04u09a03g0430890h80ik0r70g70j4","0h90h90h908b03u0kn08f04n0t1___0370ea0fv1jl00400901b05103w04504q04d02501v04g04q05u0cc0470500a50i50j80ro0gb0j7","0je0jo___0ak042___06y03z0ul0rs01t0br___1ct00200302704a03e03z03l03904702s03u04104u09t03b03z07d0he0kx0rs0g70m0"],["Sawarabi Mincho",400,1,0,"0gs0hy0gs08w02m0hy07j03n12n1xk0ca0az0cj1lp00300c03k04h04804i04r02e02x00k03a03r04m08402502v05r0cf0gu0pl0fn0jo","0ht0ht0ht09u02z0ib07g04k10c___09w0dp0et1l500100b01x05b04504i05d02l02l01204904q0600a602x0410810fj0hs0qp0fu0nr","0n50n5___07j063___06203x1672fl0b40ar___19h00000303403s03703n03903603p03v03u04304u0a002402u0620bw0oc0rs0gs0rs"],["Scada",400,0,0,"0gq0hb0g507q04c0jr08504a0ye0rs01l0ds0ev1lw00600902b04n04504f04204002601o04904a0510930370460ae0jf0j10rq0fk0hb","0h40hl0gm09603x0ka08a0520xj13302s0fl0h31jq00500a02e04l04304c04s03j02601j04y05506f0c90410570cp0jx0jp0rn0fn0ik","0hb0hb___095057______04a0zp0rs0000dp___1hf00000002004203n04303l03i03x03004904a04y08r03304b0aa0nw0mq0rs0cp0hv"],["Scada",700,0,0,"0hv0ig0hb06o0410jr08405u12u0sd03r0gl0hv1ig00500a02304r04904j04703t02a01h05t05v06r0d704005v0fl0nz0jb0rs0gq0j1","0i40jl0hm08v03x0k908a06d11r0zg0500hr0j71fn00500a02904n04804h04v03e02b01a06906g08d0ei04l06s0gq0nm0jq0ro0hm0jl","0ir0ir___08e04w______05u14o0sh0000gp___1d200000001s04803p04403m03m04402o05t05u06r0dg03w0630fq0rs0ob0rs0du0jm"],["Scheherazade New",400,1,0,"0i70i70h10b503j0iv08v03t16y1zz08p0ag0cb1k400b00803604d04203o04w02x02402403n04104q06w01u02z05y0e30i80rs0fv0l5","0ht0ht0ht0o702z0j908j04s10d0md06m0dg0f11kl00500c01r05404204c05203002f01l04j05006409j02z04f08l0h80in0rp0fu0ls","0o10o1___08104p___02v0481gy27q0b80af___1bt00000002z03m03j03804402y03m03t03o04905006x01u02o0650cv0o70rs0h00rk"],["Scheherazade New",700,1,0,"0is0is0i70i802y0iv08v0641hn1bp0990dz0gb1gk00900a02o04m04803u05102q02a01x05j06b07k0an02p04q0bb0jf0it0rs0gg0mb","0ia0ia0ia0sq0320j309d06q19714308e0g80it1fj00700b02t04q04803g05403002k01g06c07008l0d103j05q0dg0kt0il0rs0g90mc","0op0op___0cf04p___08806p1qm1o00c20e6___19h00100202h03z03m03d04003303u03d05k06q07o0c002p04b0b20o90pg0rs0i80te"],["Schibsted Grotesk",400,0,1,"0ij0ij0ij09a04n0ku07t03v0uy0rs0520bx0cg1kb00500902b04q03u04803s04j02c01p03m03x04m08303603w07a0fr0j40rf0gs0jo","0ir0ir0ir08403y0kk08504n0u20mw0730ee0f71kb00300a02g04s03z04c04q03q02i00z04f04r05x0b404004z09x0gz0j70qz0hr0kq","0jo0jo___0a004n______03w0vt0rx03h0bn___1eq00000002404903e03r03o03a04a03203q04004o09f03603v0750fi0ln0rs0f20m0"],["Schibsted Grotesk",700,0,1,"0ki0ki0jx07603j0k007m0630xq0rs09z0gq0hj1i300300a02205104903w04y03q02g01305t06707l0ew04t0650e00kf0jd0qy0ir0lo","0kq0kq0jr09303y0jo08606o0y30mk0ak0hd0is1g700300a02704w04804h04t03h02o00q06b06s0990fz05a06w0f70lv0jw0qz0ir0mq","0lf0lf___08s042______06d0xc0ru04c0gk___19f00000001q04i03l03x03g03g04p02h06606i08p0hz05a06f0dv0pr0ny0rs0gs0ob"],["Schoolbell",400,3,0,"0f20f20f208v02b0fn0dh03g0qz0s106b0az0e41tb00a00902p05e04p06003c02302n00g03703e04p08m03903t0750cj0dw0ob0eh0hd","0fs0fs0fs0hw01z0hh0d904e0r10qh07t0dq0gs1q400b00802805504i05h04w02302j00f04204e06p0bn04a05109y0fj0fs0ov0et0ir","0g20g2___0bg02v______03h0qp1np02m0bq___1p200000001u04k03m04c04403004t01k03903g04j07n03a04307d0ea0j10qd0ew0ic"],["Science Gothic",300,0,1,"0k40o40k40a406w0je08z03o0sd4290ex0cc0d718i00b00603m04703m04003s03u02b02003n03u04i0gl03a03m0650i70jr0rs0iy0op","0ka0oc0ka08i0630jy08m04k0sw2uh0ef0ee0fl18m00600902v04p03p03204q04302k01q04h04p0630hy04804h0860iq0jn0rp0j90pc","0op0op___0az0820ge___03w0tw4ag0d50c2___12j00000003a03t03503w03b02v04103i03v03w04r0gc03l03m0690fc0kd0rs0ed0qf"],["Science Gothic",400,0,1,"0m40pi0lk08305o0jk08i0570sk0rw0ip0fs0h516c00800902705003k04104v03e02o01m05605h0820l604q0540b00jz0ju0rs0kf0q3","0m10py0lj08605v0k809405x0ub0ly0js0gv0ic14r00700902g04w03k04204s03f02n01m05q06409z0l705405q0c60k50ju0rs0kk0rf","0py0py___0a806x0hc___05i0tz0s20gh0fv___10900000002004o03503u03i02z04n03205i05j07q0o60540550af0r30no0rs0kr0s9"],["Science Gothic",700,0,1,"0o30s30o307o0560jr08x07w0yi0rs0lk0iy0lr10100900a02l04v03v04a04y02w02h01d07v08i0h20og06a07f0ij0r90k10rs0my0so","0p00ry0nj06t04x0kc08g08e0yx0le0mg0ji0l90yv00500b02604q03x04504u03l02l01f08508y0j60om06k07u0iv0q40jz0rs0nj0tf","0sc0sc___0740690ic05i08e0xp0rs0lr0jc___0ul00000101q04e03l03s03r03d04q02g08e08m0jd0rm06t07e0he0rr0q50rs0r80um"],["Scope One",400,1,0,"0jo0jo0jo07m03h0lf08502s0v92lo06y08y09c1h900800803g04603c03w03a04y02002902o02w03o07a02902l04d0870jo0ri0hd0nq","0j00ji0i00go0300lk07n0400vf___0580ce0d31ia00300c01u05703j04203404y02l02603r04705l08v03803x06r0dd0k10r10h00n0","0kk0kk___07u04c___04d02t0w22ms077096___1dm00000203803s03103p03302x03k04g02p02w03f08702a02k04v0890mp0rs0g70ph"],["Seaweed Script",400,2,0,"0lf0hy___0pn058___0db03p0qq0u80c60br___27n00g00h02705v05204f02802p03101g03903u04t07003304506t09o0c60qm0f20xk","0vl0un___0o705r___0d204y0r30eh0hv0e3___1q600f00i02005l05204f02n02k02u01r04f05307r0bs04c06a09v0ce0cj0qt0ed1lg","0r40r4___0g201s___04q03p0p424d0dw0bi___1we00000702004e03k03a03t03f04u02c03b03t04p07703704c06y09c0me0rd0eq12a"],["Secular One",400,0,0,"0i80hx0ii07103h0jo08o05s0vc0u10930gu0hq1ip00600a02905704b04n04e03t02i00a05m05w08j0eh0500640ew0l20ip0pg0g70k9","0in0ho0in0a603x0jl08c06c0vi0li0860hp0jp1fp00500a02c05404a04m05203i02b00706306m0aq0f305g06y0fu0lw0j10po0fp0jm","0ij0ij___09a04n___02b06e0vy0rs03x0h3___18o00000001s04i03m03z03h03g04m02e06906k09d0gg05j0730fx0r10nr0rs0g70n5"],["Sedan",400,1,0,"0j20k80hx09802w0gx0af03s16s20a0bq0ah0bs1mx00n00h03j04t04b04q04u01o02500p03l04204u07i01v02w05s0cb0fv0q00f10ld","0ii0jj0i00e00330h009x04z1330r50al0dw0g11kw00f00n02405s03i05006001p02d00a04j05606j09v02x04b0830f50gc0pm0ee0mm","0ml0n5___0a004n___09u04j1dk20j0cs0ap___1c300e00a02z03u03g03s03b03503a03d04804l05g08502003206v0dj0l10rs0gs0tj"],["Sedan SC",400,1,0,"0jz0q20ij07j02m0js09h0411bj21b0ef0av0bq1jb00500503i04h04h04n03u04401801903r04b04z07w01u02t0610d10hz0kj0g70ml","0jk0lm0ij0gv0330kx08y05714k___0ch0dg0fc1hj00300601t05i03f05104s04m01c01204o05d06k0a402x04c08q0g60hi0lf0gh0lm","0ml0q20fn09i0420jr0a204j1ee20l0cl0ap0c71bk00500403003u03j03w03903e03a03d04404l05g08502003006x0dr0jx0rs0gs0tj"],["Sedgwick Ave",400,3,0,"0i30iy0go0ng01q0ko0ey03x0u30rr0bl0c30d11z300d00902b04v04704r04703v02f00k03r03x04u07n02w04j08y0fi0gx0oq0fi106","0gw0es0gw0iq0360l40f00500tn1ec05k0gs0fs1my00900a03n04p03604v04z03102f00h04q05307n0bu04106d0c50ij0hf0ot0fu0gw","0j40j4___0ki02b___03h0410z50ud07n0bx___1oq00000102b04d03n04703k03n04h01m03w04104y08202s04208j0f00ke0qu0g70wf"],["Sedgwick Ave Display",400,3,0,"0hh0h70hr0jb01q0kn0gm04k0qa0rm08p0f60g61u700900801w05604l04p04o03i02c00j04c04m06u0be04905v0bf0k10hr0op0g20w3","0fp0dq___0qj02y___0fw05b0qg0rc06y0ep___1i600800703004v04i04h04j03o02100c04s05q0a50e405607n0el0ls0hx0ot0dq175","0hq0hq___0e802d___03t04k0on0pz05y0f2___1n400000101x05803i04b04603y04100o03v04q07n0ci04p0620a60j70k80pn0fy0lv"],["Sekuya",400,2,0,"0wf0wf___0ap02b___06d0b61aj___0n10jn___0tw00000201a04903w04103g03p04n02i0b50cl0i40s506e0850kf0r30qc0rs0r7111","0xp0xp___0al02y___06i0bs1bo0qc0o10ka___0t700000102004303r03z03w03m04c0250bo0d00kj0t406v0950mq0rr0pu0rs0sc124","0wf0wf___0aq02b___06d0b61ar___0nm0jk___0u000000201a04903w04103g03p04n02i0b50cl0i40s606e0840kb0r30qm0rs0rs11m"],["Sen",400,0,1,"0hy0hy0ij07u0580j409g03t0rp0rs08k0c70cn1ha00900702h05004404l04k03h02t00c03m03y04z0a403j04306z0eq0he0ph0g70k9","0ik0ik0ik07m04e0ji0a104r0sq0la0810ds0f71fa00800702g04u04004f05603b02m00l04i04x06i0d104e05309n0go0i00pq0hl0kj","0j40j4___0af05s___06e04a0t00rs03p0c3___16f00100402304e03c03y03i03604d02v04004c05i0d203t04f0740f40kd0rs0gs0n5"],["Sen",700,0,1,"0j40j40it06z04n0jd09g05n0ui0rs09m0g00gt1dz00800902405604904p04m03m02k00c05a05t07t0es05005x0cd0ji0i50po0hd0ku","0j80j80j806n0420jy09l06b0u20lt0810h40hy1ae00600902905404b03m05d03s02h00i05t06h09o0fu05m06s0dt0k90il0pp0h80l9","0ma0ma___06h05s___07j0690ur0rs04z0g1___12y00100401s04h03i04203h03e04l02e05z06i08y0i405f06h0d40pj0ma0rs0ij0ob"],["Send Flowers",400,3,0,"0ij127___0mq03h___0a301y0p1___0bg077___28y00g00n04304604805303b02m02n00k01t02102p04501r02603f05v0cw0nq0cq127","0pp0op___0mj04g___09g03o0r6___0h30c5___1yg00a00k02w04w04105104902r02n00h03904206d09j03804407d0b80es0ol0hs1ee","0va1yz0lo0y103m0mv08f01v0q9___0k206t07r1un00400b03403j02x04504404b04201701r02002r04e01p02002x04y0k00pv0ng1zl"],["Sevillana",400,2,0,"0ey0f80b50ie02c0e40bn02i0zh0vs05b09i0d42z300d00d03d05404q04t02g02j02801w01s02j02u03o01j0240410930cm0r20b50ge","0us0us1890io04t0dz0b30420vy0hd0em0e50in2ax00d00e02205g04v05b02i02k02m01r03e04506f09c02z04j08l0di0de0qz0ef15d","0fl0fl___0h303r0cr0bl01y0th0wu04q09m___2wz00400402p04104003w02k03t03x02n01m02i02v03j01i01y03l0750jz0rr0cp0hb"],["Seymour One",400,0,0,"0th0u20sv08004q0jj0at0be1ev0r80m80k50kf0x200600b02605304p04605b02q02a00x0b30cf0gv0p506c0b20j90qn0ij0qp0o60v8","0se0ua0rg07204q0ip0ao0b91cv0l00n90kc0kt0vo00500902804s04g04n04w03s02d00a0av0cw0j40qn06l0by0io0pf0i90px0no0w6","0yp0yp___07u06y___0420d71d90j10l00km___0p600000001a04404504003h04004j02a0dn0f60n40x307m0bu0pt0rb0q10rw0qm13c"],["Shadows Into Light",400,3,0,"0bk0bk___0am01q___0dk0290m80s901e09g___2en00900901r05f05g05y04h02o01e00702002902y04j02903305e0br0cz0kp0ae0ef","0sl17d___0j706w___0e30440px0id0go0cg___1vw00800902405h05h06304o02i00y00303904006h08y03q05a09u0fy0ex0ls0bu19c","0du0f0___0az02b___04m02h0p80rp00k09q___1ve00000401y04a04b04q03m03w04400u02702i03404y02d02x0550b40fc0p00c40gq"],["Shadows Into Light Two",400,3,0,"0dv0dv0da0j40160jw0ae02e0mu0sg04e0940b427700a00801s04q04904o04903r02301s02802f02z04m02f03705o0bg0g80qp0cp0hx","0um0u51gd0j10et0jk0aa0410pv0nc0j80cy0ei1rm00a00702104p04c04s05602v02f01203c04106k09403w05409o0hb0h30qx0ft17h","0fl0fv___0b301q___02w02h0p20rm014094___1se00000101k04d03l04403n03c03w03c02902h03004y02e02x05509s0hi0rp0c40hb"],["Shafarik",400,2,0,"0i10kd0h60as02c0hk09w03y1731uz0b40as0cs1mk00d00i03f04w04g04005n01v01o01003t04204w07r01y03106a0eh0gb0pt0f50kd","0i30jk0fn0iq02y0hl0a104v12h1g509q0dm0g71kg00c00j03f04w04c04n05j01k02300i04n05306c09h02w04808e0gd0gw0pq0fn0nh","0mk0n5___07m03h___06y04c1bz25f0d30aw___1bq00200b02z03x03j03s03d03803903f04304h05a07y02103006r0dl0l00rs0gs0sc"],["Shalimar",400,3,0,"0hj0iz___0e103g___0fq01z0pw0xc07l06t___28400800n03g04r04905702d02403001u01r02402p03x01p02603e0700c40pf0820oq","0it0ls___0hr04y___0dd03z0u20xi0990cy___1tk00a00b02q05u05n05c02n03c01o00203904105w08w0300420730bs0bx0mq0fu0pr","0gz0hu___0fr02w___08n0260s916e07j06u___1jl00400c02j04g03003w02z02x03w03o01w02a02y04i01o02703c06b0hb0rn0ay0pw"],["Shantell Sans",300,2,1,"0h70hs0gx08k0410hz09r0320qh0q406t0a60bu1nq00d00902i04x04d04x05101w02t00r02w03404606k02u03f05u0bb0fk0pa0ex0ix","0hc0ht0hc08l03v0jl09a0480rt___02l0cr0en1jq00900b01a05204604m04z03402f01m03w04906109f03v04o08a0e90h90q30fe0j9","0j40j4___09g04n___0420380rf0pe0000a0___1ds00000102804a03b04c03803a04b02t03203a04a07702y03h05s0b50ke0rs0eh0ku"],["Shantell Sans",400,2,1,"0hu0i50hu08s03g0if09s03w0rp0p607v0by0e01ku00d00a02805504c04x04e02o02u00o03p03z05j09903l04a07o0dw0g60ph0fk0jl","0iq0jq0i907x02z0jg0a504x0sr0l90730du0g91fo00c00a02904x04a04q04y02n02n00t04j04z07e0c304h05f09y0g30h50q20hr0kp","0jo0jz___091042___0420430s70oe00g0by___1bg00000101x04h03e04c03903c04m02f03w04505o0af03r04e07g0eu0lj0rs0f20lf"],["Shantell Sans",700,2,1,"0ku0lf0jo06t02w0is09f06g0u50mm0dw0gh0i51b300900d01t05904k05604d03502k00c05z06p0ap0ge05t06y0d10j80he0ph0j40m0","0lr0mq0k907202z0jj0a70760uw0fp09n0h50jq16v00a00c01v04z04e04x04x03302g00m06k07l0ck0hv06d07x0f10lc0i40q20jr0nq","0m00m0___07t03h___04c06s0tx0kj07j0gt___13v00000201i04h03q04b03f03p04t01t06f0740bv0i90670770dq0nq0nc0rs0j40ph"],["Shanti",400,0,0,"0gz0gz0gz09a04p0jb09h0430u80rs0520df0dp1jq00700902c04u04403s05503b02401r04004604x0a503j0460970hc0i80ri0en0iq","0hp0hp0hp08103y0je0a404v0ty0n404t0ex0g11il00600902f04o04004d05403402i01704p0500680cs04a0540b30it0i40rn0gq0jo","0hk0hk___0ac05k___04p0470u30rs0000d5___1dr00000202404c03g03c04903c03r03704504a0510bn03r04g09j0ko0md0rs0en0ki"],["Share",400,0,0,"0dr0dr0ec0880560jr07r03r0v61yj0110ec0f71qf00600a03304d04504d04u02w02601k03p03t04908s03a03y0c60k10j70rs0c10ex","0eo0eo0eo06j04w0ka08404l0tm1cw0130g40hk1ob00300a02g04m04304d04q03k02401k04h04l05t0as04405a0ej0kb0jp0rp0cp0fn","0dr0dr___08s05q0fu02m03t0vt1y30000eg___1n600000002r03u03i04203v02v04002x03r03t04708o0390400cm0py0ok0rs0c10fh"],["Share",700,0,0,"0fk0fk0fv07h0410jq07i05n0w419k01k0i10jo1m800300b02204v04604h04903q02e01g05j05p07o0dj04u0720ii0qi0jp0rs0d90gq","0gn0gn0gn05x03x0ka0840660w40lr01n0iv0kk1ho00300b02904r04604g04v03c02c01906106a0a00e705c0900ir0pp0jt0rp0dp0hm","0fk0fk___07w041___03h05q0vw1f10000il___1hu00000001t04b03l04003j03i04d02o05p05s0770dh04y07g0ln0rs0qj0rs0d90hb"],["Share Tech",400,0,0,"0dw0dw0dw08905s0j507j03r0uk1yx0110ek0g41po00500a03004g04404d04503l02801i03q03t04a0ad03d03s0d40kb0j40rs0bl0eh","0eq0e90eq06j04x0k507e04j0t61ac0130g70hk1o700200b02e04n04304e04t03g02601i04g04l05w0b90480590f20ld0jp0rp0cs0fq","0dw0dw___08q05s0fn___03t0v62130000et___1mf00000002p03y03g04103e03b04402v03t03u04709i03e03q0de0qs0p00rs0bl0fn"],["Share Tech Mono",400,4,0,"0eh0eh0er06k06y0j507j03r0up25y0110e90fs1du00500a03604g04004a04403o02601j03q03t04f0b103c03l0br0kb0j40rs0db0f2","0eq0eq0eq04d05w0k507e04l0ti1h00130fx0hm1bw00200b02i04o03z04804t03m02601i04j04o06y0c904804z0eb0ke0jq0ro0dr0fp","0eh0eh___08m06o0fn___03u0v927m0000eo___1ds00000002q03x03g04103e03a04302x03t03u0490a403e03o0d40qg0p30rs0c60fn"],["Shippori Antique",400,0,0,"0jb0jw0jb08n04p0jw09904k0ub0rs08e0dp0ez1hn00800902804z03z03r04y03n02401q04d04o05u0cn03y04q0910i20it0rr0hk0kh","0jk0jk0il07u03x0kc09c05b0um0m708q0ff0h01g600700902c04q03y04b04w03e02g01c04y05e0700eq04l05k0bc0iw0j20ro0hm0mi","0ln0ln___0a705v______04r0vy0rs0580db___19s00000002004m03h03d04703a03s03404g04t05w0ec03y04p08r0iu0lu0rs0ge0nz"],["Shippori Antique B1",400,0,0,"0jb0jw0jb08m04p0jw09904k0u90rm07v0do0f51he00700902704z03z03r04z03n02401q04d04p05w0cs03y04r0990i80iu0rn0hk0kh","0jk0jk0il07u03x0kc09c05a0up0lq08q0fc0gz1g200700902b04q03y04c04w03e02g01c04y05e0710eq04l05h0bb0iw0j20ro0hm0mi","0ln0ln___0a605v______04r0vt0ro04s0d9___19l00000001z04m03h03d04703a03s03404g04s05x0ef03y04q08x0j60lw0rs0ge0nz"],["Shippori Mincho",400,1,0,"0hd0gs0hy09h02w0i608p03b1532dw0ah09m0as1k400900903j04803v04704g02u02402403203f03z06i01s02g04s0aj0hg0rs0g70lf","0hx0ix0hx09003i0ig07t04f10x0sw08c0cv0ep1kr00300c01v05904104d05a02602702904604k05h08m02s03w07b0f00hy0qz0fy0jx","0l40l4___08m042___05s03f18m2nx077098___1dc00000403703p03903l03803303j04503a03j04106601p02d04y0ac0oc0rs0g70ph"],["Shippori Mincho",700,1,0,"0jo0kk0j407j02w0i508p04r1mb1oq0cu0bq0cs1ht00700902z04e04904h04c02v02b01t04j04x05j07f01r02x0710g90hl0rs0hd0m0","0jj0ki0j207h03x0j709505m1d618c09m0dx0f01g600600903104c04404d04y02j02801t05605t06i09202k04c09m0i00hu0rp0hl0li","0nq0nq___07704n___0630571uc1vx0aq0bf___1bc00000402n03q03l03t03e03e03q03f04k05805p07o01p02t0710h80ox0rs0j40qm"],["Shippori Mincho B1",400,1,0,"0hd0gs0hy09h02w0i608p03b14y2dw0ah09m0as1jv00900903j04903v04704g02u02402303203f03z06m01s02g04t0al0hg0rs0g70lf","0hy0iy0hy09203i0ih07t04f10u0s008c0cw0en1kl00300c01v05904104e05a02602602804604j05e08h02r03v0790ez0hy0qz0fy0jy","0l40l4___08m042___05s03f18i2od077096___1d800000403703p03903m03903303j04403b03k04106b01p02d04y0aa0oc0rs0g70ph"],["Shippori Mincho B1",700,1,0,"0jo0kk0j407k02w0i408p04r1mg1ot0cu0bp0ct1hm00700902y04e04904h04c02v02b01t04j04x05j07h01r02x0720ga0hl0rs0hd0m0","0jk0kj0j207g02y0j709505m1da18c09m0dw0ew1g500600903104c04404d04y02j02801t05605t06j09502k04c09n0i50hu0rp0hl0li","0nq0nq___07704n___0630571ud1w00aq0be___1b500000402n03q03l03t03f03e03q03f04l05805q07p01p02t0730h90ox0rs0j40qm"],["Shizuru",400,2,0,"0fa0gg___086022___06h01e0nw0w202q098___2z400100b02k05104s04s04n02f02k00q01901f01r02t01c01n02j04w0ea0op0cx0i8","0kw0kw___0sw01w___06205a0rx0p10bd0ed___1d600000601n04z04w05o04s03l01x00704505c08d0ck04q06g0bf0g80fb0ny0cc18n","0ib0hj0i207r01l0nd___01b0on0yx03z08708p2te00000002i04d03x05003v04603x00201701d01m02n01801i02b0490hl0ny0gg0k6"],["Shojumaru",400,2,0,"0rs0rs0rs0h101r0m003408u12w0wz0p20gy0hr13u00000102404x04g04703s04s02k00x08f09w0d70ma05l0810eo0le0ku0q20ph0uo","0si0rj0si0cj01z0lm03a09j1270zn0p50gi0iz0yq00000202w04q04704304d04j02800r0950aq0h10nl06k08s0h60me0k40ps0pk0uh","0su0su___0fb02b___03o09g12l12k0ld0hn___10400000201x04d04203t03003z04n01z08k0a10dc0nc06808w0fg0pm0o80rd0pd0v5"],["Short Stack",400,3,0,"0k80jn0kt07a0570k80ak0410s90t60ad0c10cn1c800a00702g05603s04i04304f02l00d03s0440570b003o0480780f90hf0ov0ii0le","0jo0jo0ko06x04x0kf0af04t0t00nf0a70e60ek1ba00a00702p05103t04h05003s02c00704h04v06e0dx04e05208v0gp0hz0ow0hq0ln","0k00k0___07205u___0230400sh0p505v0c6___19o00000002105802v04c03y03e05700t03r0420550b303o04807k0ei0id0pn0ic0m8"],["Shrikhand",400,2,0,"1h81i40nz0it02x0jw07b09v1gt0z10qb0hu0jp1cz00300c01y05204r04805203v02600b09509w0b70hq04u08o0g80kb0jb0p70pr1zy","1j51tz0n50o205f0jj07i0a91f80rb0px0j30jw18400200c02504v04n04t04x03l02b00709u0af0d70ke05p0a90ib0mm0jq0po0om2sg","0tj0tj___0g502w___08p0ar1j410m0k70ih___15o00100201m04303u04003d04304h02a0a90at0co0j90530950h50qk0p30rs0ow0yq"],["Sigmar",400,2,0,"0kr0l10jw0ip0160j207i09116v0qw0ib0l70ls1fj00300d01w05l05905h04x03i00o00208o09h0dq0ii0640cy0jc0lq0il0lx0hv0qj","1ox1qi0m20rk09g0ks08p0a91810lv0op0i30ls0y200500d02o05e03t05a05i03h01200509s0ci0k40ru0790gp0l50na0k90ml1kq2e5","0uo0uo0lf0iw01r0n907j0ct1f60p40ki0m60mr0ze00000101c04404704703l04804801x0cm0dw0k20pz0800ic0r40ro0ow0rv0pg0xk"],["Sigmar One",400,2,0,"0qi0qi0pw04x03j0ne06h0c01gk0zw0jx0ll0m50zi00000201c04k04m04304n04503n00p0bn0cp0i10nj07k0i70nm0qx0nk0pb0ls0su","0ra0ut0qa04w0420n906t0cd1gc0o90ku0mf0mt0vp00000202204i04i03g04i04o03e00o0ca0dz0kw0ph08b0je0o50r80nl0pm0o90tb","0u10u10km04z0440n906h0db1jb0ym0ju0m10m10wf00000201804704903q04903p04a0230d30dy0jl0po0880jy0r30rg0oz0rv0o50v7"],["Signika",300,0,1,"0f90ez0ez07804g0iu08b0380u10rs0130b00cr1qc00600803l04b04604j05002t02l00f03303b03t06y02t03a06x0fl0h90oe0ef0g2","0eg0ff0eg06u03v0jr07d0420rw___0130ec0gi1sv00200a01f05404804m05004302j00i03u0450560ac03o04l0ai0ho0ie0o40di0ge","0hd0hd___09a05s___04203j0v50rv0000bp___1gt00000102b04503i04303j03c04802o03e03k03z07f03003i07i0fp0jw0rs0dw0j4"],["Signika",400,0,1,"0g20fi0g207p03v0it08b04b0w60sv0110dj0fc1pf00500903604p04804k05002w02h00e04604d0530ah03m04b0ae0il0hr0oe0ey0gm","0hb0hb0gt09s0430k308k0580vd11v0280ft0hj1kz00500902i04y04e03j05203r02l00o05105b06y0d304i05l0di0jl0ip0pr0gb0ic","0hy0hy___090058___04n04n0wb0s90000ei___1f300000102004f03k04403h03f04g02c04k04p05g0cj03x04q0b30mx0lp0rs0eh0k9"],["Signika",700,0,1,"0hs0ic0h807a02s0jg08c06c0y00xp04x0hj0jg1lm00500a02r04x04b04n04y03502a00e06406d08h0et05306x0h20ny0ii0p00go0jg","0ic0ic0ic07w0320k308k0710xq0m402s0is0l71f600400a02a05204h03m05403s02f00o06r0760bl0fu05r08s0ii0ny0jm0pv0hb0kd","0j40j4___082042___05806r0xc0st00g0ic___1bc00000101r04j03p04403i03m04k02106o06x0960gn05k07h0i90rg0ny0rs0fn0lf"],["Signika Negative",300,0,1,"0fj0fj0f907404g0iu08b0320td0rs0130ar0c61ql00600803o04804604h05102t02l00f02x03403m06g02o03406a0en0h70oe0ef0g2","0eh0ff0eh06n03v0jr07e03z0rg___0130e50fs1t500200a01h05404704m04z04602h00h03n0410500a103k04k0a20h30ie0o50di0ge","0gs0gs___08j05s___04203c0up0sc0000b9___1gw00000102e04403h04203j03b04602q03703e03s06f02v03c06x0eq0jv0rs0dw0j4"],["Signika Negative",400,0,1,"0g20g20g207w03v0it08b0440vv0sp0110da0ev1pj00500903804m04804k05102x02h00e03z04604u09j03g04409y0hx0hq0oe0ee0gm","0gt0hb0gb06o0430k408l0530uo0ut01m0fk0hm1l800500902j04y04d03i05103q02m00p04w05606q0cs04f05i0d50jh0ir0ps0gb0ic","0hd0hd___094058___04204g0w80sb0000e1___1fj00000102204c03j04503h03e04g02e04c04i0560bj03r04i0ag0m40ll0rs0eh0jo"],["Signika Negative",700,0,1,"0hr0hr0hh06t02s0j408c0620xq0yk05g0gz0iu1md00500a02s04w04b04n04z03302c00e05u06407t0ef04w06m0g90n70ig0oz0gn0iv","0ic0jd0hb06s0320k308k06q0xh0ly0260if0kk1gc00500a02a05304g03l05503t02f00o06i06v0ao0fd05j07y0hp0no0jl0pu0hb0jd","0j40j4___087042___05806h0x90xa0000hy___1bn00000101r04h03o04503i03l04l02206e06m08l0gb05c0710h60r00nt0rs0fn0lf"],["Silkscreen",400,2,0,"0m50m5___0560ai0mf___05t0rq0r503h0f0___0vc00000001s04d03c03n04m03i03y02n05s05t0b90gp05t05u0b90mf0mc0rs0m50m5","0mh0mh___04r0a80md___06h0rs0lv04e0fv___0wi00000001w04a03e03i04e03p04q01w06e06h0bi0h006e06m0bw0mi0ml0rs0mh0mh","0m50m5___0560ai0mf___05t0rq0r503h0f0___0vc00000001s04d03c03n04m03i03y02n05s05t0b90gp05t05u0b90mf0mc0rs0m50m5"],["Silkscreen",700,2,0,"0rq0rq___04e0ae0mg05h0bb1hy0rs0k50kg___0ol00000201p03x03r04603m03x04b02f0ba0bb0gs0ma05u0bb0rs0rs0rr0rs0mj0rq","0rn0rn___0400a80mc05r0bf1f10mc0mc0kw___0p500000101w04303v03c04b04104f01v0bc0bm0hl0mb0680bn0os0rj0pz0rs0qm0rn","0rq0rq___04e0ae0mg05h0bb1hy0rs0k50kg___0ol00000201p03x03r04603m03x04b02f0ba0bb0gs0ma05u0bb0rs0rs0rr0rs0mj0rq"],["Simonetta",400,2,0,"0g60g60f10ck0210g609u02z10m1v906o08x0aj1t300d00803l04m04705204702303200h02p03403q05x01r02j04w0ah0f10pf0eg0hx","0ff0gd0eg0ke01x0fy0980430yb0cn0660cm0ex1uh00900a01z05g04a05304y02502x00i03t04705807n02q03w07f0dg0fe0p10dh0hc","0j40j4___0f4042___08w03h15824y06y094___1eu00300303403l03a03m03c03703m03w03c03k04806801v02o05o0bm0kd0rt0g70q2"],["Single Day",400,2,0,"0gw0gw___08803e___09p0490r90t603a0cw___1go00b00901r04s04a05704t03102f01004204a05x0b304404u09e0ge0fv0px0en0il","0h90h9___07r032___0ae05a0s51a802b0f2___1ds00b00902l04s04l04104v03302g00v04w05b0810db0510640c50i50fp0pt0f80ja","0iq0iq___08z03z______0490rd0sy0000dg___1cb00000001904f03n04k04703k04h01q04204905k0b604304y09g0hs0iq0r80fb0ju"],["Sintony",400,0,0,"0hx0hx0hx07d0570lz08s03n0v90rs01m0bo0cd1i300800802j04i03q04803f04o02i01t03l03o04707u03003o07o0hs0k90rr0gs0j3","0hd0gv0hv07d04z0mc07r04f0tc___01m0dv0ep1j800200a01f04y03t04704804r02402004a04h05l0at03y04u0af0ji0kx0qy0gv0iv","0hx0hx___09k05s___03h03o0v80rw0000bw___1fu00000102a04803h04003e03903y03803n03p04707i03003s0840iu0li0rs0dw0jo"],["Sintony",700,0,0,"0j30jo0ii06w04n0lz08c05f0xq0rs02o0fk0ga1gk00500a02404q03v04903l04m02o01k05d05g06i0e004b05k0du0lx0ky0rs0hx0k9","0jd0jd0jd06f0430m708g0610x614901m0gw0i61fy00400a02b04p04003b04f04m02y01405r06407u0f004w06d0f60me0kv0qz0id0ke","0jo0jo___09h057___04205h0xd0s400y0fv___1ch00000101w04d03m04003g03g04d02o05g05i06o0ev04b05x0e30r10nv0rs0fm0ku"],["Sirin Stencil",400,2,0,"0ef0fa0du0ay03h0j10ay03o0v50nu00y0cx0d11vq00d00902k04s04e04r04c03a02q00d03h03o04807h02w03n07a0dh0hx0pg0ae0g5","0ef0fe0dh0c902w0jq0a304f0tb0ts01o0ex0g71uc00c00901h04y04704m04s04102j00p04604h05n0av03x04n0b40ib0ig0pu0dh0gc","0gs0gs___0b5042___03h0490x80lh0000cu___1ms00000101z04803l04303p03h03w02v03u04904q08503d03z08w0et0m90rs0bl0j4"],["Sirivennela",400,0,0,"0hk0l20gz0wf03i0jb08f02w16m___0aa06p07s1sm00900g03604q04m03t04k03n01z00m02202u03303l01c01y04m0800dh0ne0ft0v0","0ma15d0ox0wp0370k308t04s12x1790da0b60d31oi00800f03i05103g04h04p02v02k00m04504q05h07o02v04508x0cj0fd0oq0gz1h0","0kn0l9___0mq05b___08t02v1600va09p06w___1oq00600e03003y03f03n03i03403t02s01s02u03703o01c01y03p0840hu0rd0fx0x1"],["Six Caps",400,0,0,"06d06d06d05701r0nd03102e0uq1mm0000ju0k748800000002104704a04c03o04604001402d02e02e03q02d0bl0nu0ow0oj0rs05s06d","0p217u0n40jl03v0n6___04r0yx___0ho0mq0mq1bn00000001204d04d04c04d04e03r01503s06h0eq0pm0ae0jp0nc0q00nx0r30ja12j","06d06d___04o01r___04202e0w31lw0000jv___4g000000101z03x04103y03g03y03z02j02d02e02e03n0270bx0q00rq0ra0rs05806d"],["Sixtyfour",400,4,0,"299299___0g1000_______________0rs0p6___03j00000001y03s04004404404103t02121827d2974sw0qh0r60rk0rm0ro0rs29529w","0p90p90p903p05u0jo03t0901ok0zk0pn0iv0j10w200000702d04j04h04r04r03g02a01108a09609p0it01x04a0bg0jy0jz0rq0p90p9","29v29v___0dn000_______________0rs0p1___03m00000001z03r04104404404103s02121d27w29h43r0qg0rb0rl0rp0ro0rs29q2ah"],["Sixtyfour Convergence",400,4,0,"2fq2fq___0dt000_______________0rs0ny___04100000002104503s04304903r03q0211yk2472cx4tu0od0pa0qp0s10r60rs2fk2g5","0pm0pm0pm03q05x0jh04d09p1op17m0pn0jj0js0va00000602d04k04k04t04q03e02800y09l09p0aw0js04e0820gv0o20jt0rq0pm0pm","2fk2fk___0cz000_______________0rs0o3___04000000002104103u04504b03s03r01x1v223329t3rd0mu0p00ri0sf0r60rs29y2g7"],["Skranji",400,2,0,"0j10j10j10dd02b0lg0bf06d0tj0tx0580hj0gz1h900700702004s03y04c04404c02l01a06206s08w0fv05t0760g60pj0kd0rh0hb0lc","0jr0k90i90ha0210m20bi06p0t50o508m0hx0iz1em00600802604u04003c04u04f02n01706e0760ay0gb06a08c0i90p50km0rp0h80rd","0k70k7___08v02w______06z0vj0sb05g0i9___1af00000001p04h03q04303g03o04l02406n07909o0g706107l0h60rd0nz0rs0hw0lx"],["Skranji",700,2,0,"0kq0l10jl0i301q0lw0c50830vr0sp0660j80k51ai00900801e04m04f04c04404k02r01507j08q0ck0io07209i0jz0qk0l00r20jl0nm","0ma0na0jq0p00210m20di08i0wd0mp0ab0jd0ku15t00900802504p04b03b04s04i02r00u08009d0fv0jv07i0bc0l60qq0li0qp0i810g","0n50n5___0cg02w______0970zw0uo0660k3___14600000001b04904503z03f04104i02608w09n0di0jz0770a70n80r90p40rs0ku0ow"],["Slabo 13px",400,1,0,"0ii0ii0hy0g403h0j309903c0ub25809w0bh0cn1mk00c00j03r04j03t04504104102a00e03503h04s08r02x03605u0c80hy0ov0g70k9","0hq0i70h80hn02v0iw0880450s31m207y0dt0fo1ni00600j02y04x03s04404r03r02f00e04004g06v0bq03v04d07y0fa0id0oy0fc0k4","0kd0kd___0gr059___06e03d0ui2570cc0bg___1ia00100g03l04503e03g03i03s05c00503603g04j08t02x03806c0av0l60p50i10na"],["Slabo 27px",400,1,0,"0fx0gs0eh08702w0i208a0360ux1wx05g0bw0dc1vd00a00j03a05004504f04n02z02900a03303a04g07s02m0320660d40he0oy0dw0hy","0ft0gt0eu0kf01z0ia07m0480tj0uk04a0e60gr1v900300g01z05l04804j05f03202800904104g06c0ad03k04g08x0g50hu0or0du0jr","0jo0jo___06x04n___07803h0un2690250bo___1k600200d02o04b03303l03303603x03k03d03l04g09h02x03c06t0ch0n60rs0gs0m0"],["Slackey",400,2,0,"0me0me0q307x02u0nc07f07j1050v209k0j00hd13p00100501103h04r04704i04k03u01906z0810dj0ls05h07m0g70ou0m50r80lk0qn","0mm0mm___0ce02y0nd05607t0z30oy08x0jj___13600100601i03r04j04804e04i03k01607508a0g30lr06308g0h00ox0lx0rq0kn0qk","0n20n2___07004m______07y0xu0tt08y0k8___10g00000001904e04003u03604004r02e07b08i0g00m606f09f0ih0qn0qi0rs0k60qi"],["Slackside One",400,3,0,"0h10fu___09f06g___0ak05f0vs0nn09r0dq___18900a00902305c04x04q03t02702t01e04t05m06v0al04605s0a90fx0dj0qf0e30kj","0gw0gd___09v06c___0au06d0w00ju0c20fa___15600800a02f05h03w05n03t02002v01705p06n08h0d905307b0cf0i70e40qp0es0l4","0ef0eq___0d1072___02105p0vq0n90220dt___13m00000001u04a03q03k04503e04p02705405w06v09q04o06q0bo0io0jk0ro09f0l7"],["Smokum",400,2,0,"0bl0ba0bv06c01r0ij08p01v08y___00k0fh0hy2c600800c02p06t02m03c04g02q03c01a01p02c06x0al05g05u06k0al0ij0rg0af0dw","0ql0p40xh0ez02y0jh08g02o0bd0mx0fv0gz0j022o00600c02t06602y03904w03a02z00z02c03q0810cs05v06p07y0f70jt0rn0bt10g","0c20c2___06b02b___06301t07u___0000fq___2bd00000203c06a02602701r02u06g02s01p01x06z0ap06506f06x0bf0p00rs0ac0ds"],["Smooch",400,3,0,"153153___0k503h___0d004h0uq0gl0ku0bq___20900d00h01z04o05005b03c02q02v01403q04p06108603004806b0890fn0q20q21wv","0yj0yj___0rw02z___0d20610vp0hp0go0em___1f400d00g02704r05605b03g02u02m00n05206c09o0e604h06g09o0c70fz0px0hr1eb","1sf1sf______01s0n40b804p0xh0j20rs0ay___1jq00600e02003r03004103t03n05002004004y06g0980310420670860nb0r71gm249"],["Smooch Sans",300,0,1,"0cn0cn0cn06304m0kw0840230tw0rs01709x0aa27f00700703j03w03s04303l04u01x01t02202302803701r02505m0fw0kb0rs0cn0cn","0da0da0da0740320l508f03p0tr2000160f10fz26t00400902t04g04603a04j04r02d01403g03q04c07103704d0bf0ko0kp0qz0da0eb","0ch0ch___05604u0g2___0220ul0rs0000a4___26800000002m03i03k03i04803d03i03j02202202703601q02305o0ep0mt0rs0bx0ch"],["Smooch Sans",400,0,1,"0cn0cx0cn0690410kw08402m0uo2yt0160bs0cg26b00700603g03y03v04203l04s02001t02k02m02s04602702n07w0jy0kd0rs0cn0d8","0db0db0db09c0330l408g03t0tj1qc01s0fk0gt26300400902o04l04603b04j04r02d01303m03y04i07p03c04r0bw0kz0ko0r00db0ec","0cn0cn___04j04m______02m0vo0rs0000c4___24t00000002a03w03p03o03r03j03m03d02l02n02s04902502n0820o10nv0rs0cn0d8"],["Smooch Sans",700,0,1,"0ej0ej0ej06p02x0kv08g0540x01rt0130jf0kc20h00600802l04l04503n04i04e02201h05205605w0cc04808d0k70rv0kx0rs0ej0ej","0et0et0du0mt01z0lb08a05r0uq0vw0690k70kr1w700400902504m04504904n04802d01105g05t08b0dh05709j0k10qn0ky0rr0du0ft","0ee0ee___07z02w___04m0560y11jy00i0jz___1wz00000101q04703s03u03l03q04a02o05405605w0ck0460930nd0rs0qo0rs0dt0ey"],["Smythe",400,2,0,"0cq0dw0cq0h101r0k909j03d0x11gz0250cc0d329k00800f02t04h04004303q04a02701l03803g03x06102e03e07u0it0jp0rf0c60fn","0dh0ef0ci0ct01x0kn0970480tr11z03k0fs0hf26r00400b01q04v03z04304c04e02601u04304d05f08l03o0500cz0k60k30rp0bj0fe","0c60c6___07002b___03r03g0xd1is0000cu___24i00000a02m03y03l03m03c03g04003003903k03x06102d03i08v0kj0pq0rs0b00fn"],["Sniglet",400,2,0,"0ia0ia0ho08502y0iv09004e0sw0lx06j0dn0ef1ol00700902105703s04r05l02l02q00p04204f05r0c004004q09i0gi0ho0px0gi0iv","0ir0ir0hr08002z0ji09a0570t90fy05o0f40g71lo00600902604u04a04l05a02z02l00o04q05a0720dm04q05s0bj0hu0i10q00gs0jq","0j10j1___09h03h______04g0se0lk0000dr___1fi00000001q04f03g04503m03e04e02n04904j05o0d404804y09v0jv0ly0rs0ef0k7"],["Snippet",400,0,0,"0hk0i50gz07b0440jz0a602s0sb0rs04q09809u1ho00d00a03004f03r03j04e04901x01y02p02u03h06g02l02v04s0aj0hp0qc0ge0jw","0hu0hu0gv07q03z0kc09k03z0rv12703e0cn0dg1jt00800b01q05203s04a04q04301q01w03m0430520as03l04907w0ff0is0qo0fv0iu","0iu0iu___06d067___08902y0tv0rs03k091___1bk00300502m03w03303804a02x03j04102s02y03f06502m02v04w09z0iv0rq0ho0ls"],["Snowburst One",400,2,0,"0fn0g7___09r04n___06z0210nt1my05g07i___1ox00200h03f04r03o04o03x03v02o00c01w02502y04p01w02g03r0680eh0n80bl0ij","0fr0gq___0dq03u___05i03g0ok0ul04f0bp___1m400000a01q05703m04h04p04103200r03503s04y07k0360470600ax0g40ny0dd0i5","0k90jo0ol06n03h0nb0440220nf26g06y07406r1j600000603o03z03204c03503a05f00s01x02602v04m01x02j0410630fv0p10ij0n5"],["Sofadi One",400,2,0,"0k80k80k807z0420fr0c504f11f1gj0dm0cn0dt1j100d00802x05g04k05p03k02a02l00604804h05e09f02y03p06a0ee0en0oa0ii0le","0ju0ju0ju07h03z0gd0bh0570z80sn0ca0es0gi1ho00e00a01m05w04m05p04f02j02600804w05906o0cd03q04l08u0fv0f10oo0hv0ku","0nn0nn___08p057______04z11z0qx07y0ch___17w00000002804f03b03y03e03604e02z04y05305z0ay03c0450760jf0mq0ru0lc0qj"],["Sofia",400,3,0,"0dw0gh0dw0se0420f60cv03i1300sq07q0a60cz1vu00g00p03h04v04q04n03102l02v00h03c03i03y05p02302u0620df0dw0od06d0n4","0lm0lm0io0n704x0fj0d204i0yu18h0d30ca0hm1r400g00n03s04v04l04l03b02m02o00b04b04l06109403604c09a0fi0e30ny0er0wg","0lp0lp0h00be02y0n20b903c10b1pe09l09r09i1js00600g02r04m04103303i04d04e00h03603c03q05q02202q0560bo0kj0ot0gf0ps"],["Sofia Sans",300,0,1,"0gs0hn0g705h05s0ke08602m0rk0rs01r0920aj1ko00500803104e03o04603o04h02002202l02o03605g02e02t04y0bf0im0rd0g70ij","0gu0hu0gd06b04y0kh07l03w0sa___01o0cg0e71ll00200a01p05303v04804l04902c01f03m03y04v09v03g0490850gl0jr0qv0fv0iu","0it0j4___04n06y______02m0sf0rs000094___1g600000002q03u03e03x03h03403m03s02l02o03505702e02r0550a10ju0rs0fn0k9"],["Sofia Sans",400,0,1,"0hd0hd0hd08o04n0ku08503x0ti0rt0220cz0e81jv00500902e04t03t04503r04i02d01p03v04004s0a403j0460970j00jo0rs0g70j4","0hk0ij0hk07804w0l608604r0ss0my02o0f70gp1j100400902f04s03t04404j04102g01c04k04u0630dr04c0580aq0jk0ju0rk0gl0kh","0j40j4___09j06d___06y03y0u20rs00h0ct___1ff00000302404b03g03x03h03904a02y03v04104p0ah03j0470930l90mo0rs0fn0ku"],["Sofia Sans",700,0,1,"0ij0je0ij0700420ku08505c0vb0s402o0fv0hf1i000400902504x03x04803x04c02i01i05905e06w0eu04m05n0dd0kz0k90rs0hy0ku","0i00iy0i006z03t0kk07y05s0uu0lr04a0hp0j31hb00400902804t03x04504o04h02k00m05m05y08i0fd05106f0ed0kd0jd0qr0h20jx","0k90k9___08t058___07j05d0ve0rs00h0fs___1c700100301v04h03j04003e03d04k02j05c05h06v0g504r05r0cs0pu0nw0rs0gs0m0"],["Sofia Sans Condensed",300,0,1,"0cn0di0cn05q04l0kc0810280pk0rs01609b0b621d00600802s04e03r04603p04m02002102702902k04202502n05b0dm0j20rk0c20ed","0dw0dw0dw09g02z0kf07n03m0q90r301s0dk0ft21o00100901i05104304e04n04801n02003d03m04c08m03h04n0a20ia0jt0qu0bw0ev","0ed0ed___04l056______0280q80rs00009g___1vv00000002j03v03h03u03m03903m03m02702902j03u02502o05q0bl0ku0rs0c20fi"],["Sofia Sans Condensed",400,0,1,"0ds0d70ds08e0410ko08103e0s50rs0110dd0fi1zn00500902804q03w04803r04k02801u03c03f03v07l0370430a50k60jr0rp0cn0ex","0dq0ep0dq07a02y0l608804c0qr18m0130g30hi1xy00400902f04q03x04704k03x02f01a04504d0590ax04b05b0d30kh0jw0rl0dq0fo","0ex0ex___08v04l___06w03e0sa0rs0000db___1uh00000302004803j03w03j03d04103503c03f03v07e03704409z0nd0nm0rs0cn0g3"],["Sofia Sans Condensed",700,0,1,"0fc0gi0f206o02w0ku08404z0ud0t40130h20ie1v200400901z04v04304c03y04b02i01g04x05005y0c804h0680gj0o50kd0rs0f20gs","0f60f60e80aj02u0kh07z05i0tn0l802u0il0jx1s500400a02704s04104804n04f02j00m05705k07w0d40520700h80n30jc0qp0e80h2","0gn0gn___08i041___07h0520ua0sq0000ha___1n700100301q04e03n03x03g03i04f02n0500530650di04k06f0fn0rb0ow0rs0ds0id"],["Sofia Sans Extra Condensed",300,0,1,"0ah0bc0ah05b03i0k408i0240ok0rs0000af0c52hn00700803g04503x03n04b04801t01x02302502c03i02402r06v0he0j40rl0ah0bn","0b60c70b60g00210k708g03e0nk1h101c0f10h62fj00400902n04p04803c04p04702f01803903i04807v03l0510c50jz0jp0qw0a60c7","0bn0bn___04h043___07c0250pj0rt0000ac___2b100100303503l03j03e04103f03703f02302502c03d02302t06v0i00m00rs0ah0cs"],["Sofia Sans Extra Condensed",400,0,1,"0bm0c70bc05i02x0kg08h0340qt1nw00k0dy0gg2ey00600902z04h04103p04f04302e01c03303403f06203304c0c80ky0k00rp0b20c7","0bt0cs0bt0bs01z0kk08a0460pg19p02f0hg0ji2c300400902c04o04204c04l03u02e01803x04605609n04e0610g70ly0jz0rp0au0ds","0c80c8___07q03i___07x0340r520s0000e7___28o00100302o03y03l03e04003j03j03103303503g05t03304g0bf0pl0o70rs0ah0de"],["Sofia Sans Extra Condensed",700,0,1,"0de0do0ct06b02c0kl08i04p0tn16z0130i30jn25n00500902m04o04503q04l03y02401l04o04r05b0am04d07c0j50qk0kl0rs0ct0ek","0da0da0cc0cf01w0kg0800570s50lo04c0js0ku22b00300902504q04504c04o04d02i00l05005a07d0bl05308j0ip0og0k00qo0cc0f7","0ej0ej___08502x___07x04t0tt1mi0000i7___1z600100302c04703q03g03z03o03t02l04r04t05f0bb04d07h0iy0s50pf0rs0bn0fp"],["Sofia Sans Semi Condensed",300,0,1,"0fn0gi0fn05k0580kc08502c0qs0rs01608q0a41o400600803404a03o04603o04h01z02202b02f02u04m02702l04p0a20ik0rb0f20hd","0fu0gu0fu07r03z0l307m03r0rk___01o0cj0dx1ou00100901r05203v04804j04b02d01f03g03r04m09503e04907z0gp0js0qv0ev0hu","0hy0hy___04n06d______02d0rh0rt00008m___1jf00000002u03s03c03v03h03403l03u02b02f02s04f02702j04t08u0j80rs0f20j4"],["Sofia Sans Semi Condensed",400,0,1,"0g70gi0g708t04n0ku08403q0t90rs0110cn0e91mo00500902f04t03t04603q04g02d01p03o03s04g09i03d04108s0iw0jo0rs0fn0hy","0gl0hk0gl07g03w0l608504m0sj0n50250fd0gt1lz00400902f04r03u04604i04102g01b04h04p05u0cz04a0570b70jm0jt0rj0gl0ij","0hy0hy___09k05s___06y03r0tn0rt00h0co___1i300000302504b03g03y03e03904a02y03o03t04f09503e04208p0ks0mq0rs0f20jo"],["Sofia Sans Semi Condensed",700,0,1,"0hy0it0hd06v0420ku0840550v40sj02o0fu0hn1kq00400902404x03y04803x04c02i01h05305806g0dy04h05n0dn0l10ka0rs0hd0jo","0ik0jj0hl07203x0l608605u0ur0l803a0hv0is1i600400902704t03y04704o03z02i01705m05y0880f505306l0f30ll0jx0rk0hl0ki","0j40j4___08u058___07j0570v60rs00h0fu___1ed00100301v04g03k04003e03f04k02i05605a06j0fc04m05q0d60py0o00rs0fn0lf"],["Solitreo",400,3,0,"0gb0hh0f507f01r0ho0ab03t0qv0mh04f0bi0e21vl00e00d02w05904v04k05702c01r00803j03u04r07a03b04k0880d40eu0me0dz0i2","0gt0hs0fb0fy01z0hh0a704s0s60qn07l0dz0h31rj00a00e02e05c04t05e04x02b01v00504d04t06j0a304a05u0a60f00f50my0et0jr","0iq0iq___07n03t___0710440s00fo00j0bw___1gg00000501k04o03o03n04c03n03k02l03x04605608a03l04u08z0eq0hs0rn0en0l3"],["Solway",300,1,0,"0jm0jm0ig07604c0jr09b02t0sk22o06y09k0ae1id00c00803104k03h03x03n04e01w02c02p02w03w07402i02u04s08y0ii0ro0hb0kr","0ib0ja0hu07503v0jr08i03y0rz___06f0d00eg1ki00600b01k05703o04204o04102901y03s04605l09z03n04606u0ef0if0qz0ge0ja","0k60k6___08y057______02s0t422s00w09j___1ch00000002x04103203l03802z03i04h02o02v03j07402i02r04x07v0mm0rs0d90mh"],["Solway",400,1,0,"0jm0k60ig06w0410jr09b0400uu1nn0810cn0dw1gx00b00902h05003k04103x04002b01y03v04706409603g03x0790fd0j10rp0hv0lc","0iq0jq0iq06r03y0jg09b04t0u419906y0f10g51hy00800a02o04z03u04804z03202q00u04k05307d0co04704z08t0h60i60qx0hr0kp","0k60k6___088057______0400ve1o70290cr___1bj00000002a04i03703n03703504d03i03v0430680a303g03v07a0ee0nv0rs0du0nn"],["Solway",700,1,0,"0kp0la0ji06c0390jn09g05z0x90ow0a50gx0i31du00900b02405a03c04805003402m01k05t06g09u0f404w05z0bx0ju0ji0rs0ic0mh","0jn0km0jn06f02y0ja09b06f0wa0ja07h0hv0j51co00700b02c05604004d05003102p00p06506y0a50fy05806j0dr0kp0iu0qr0ho0lm","0lx0lx___06405s______0620xt1cs05v0h1___18200000001t04q03e03p03603f04s02t05u06d0ae0gb04x0630br0p30pk0rs0k70pd"],["Sometype Mono",400,4,1,"0hb0hb0i604b04x0ih08o03b0sx0rs0730b60cg1di00a00902t04v04504o04m03102u00d03503d04c09q03103c05q0db0gz0ot0g60ih","0hc0hc0gv03z03v0iq07k04a0tf___04t0dt0fi1dv00300c01j05e04204q05f03402o00i03x04c05w0cc03s04c08p0fc0hf0ou0gd0hc","0ii0ii___099057______03l0t00rs0000bs___18v00000002a04a03903y03l03404803503h03n04c0at03b03q0730gj0m80rs0eh0jo"],["Sometype Mono",700,4,1,"0ih0i60ir03n04c0im08o0510u40rs0930fi0h61b300800b02a05904a04r04p03502m00b04x05707g0f804k0540b80iq0hy0ov0hb0j1","0hs0hs0hs03l03y0il08d05o0us0ln06y0hc0ir19d00600c02h05804g04z05e02q01x00605c05x0aa0fc05005v0d80ip0hy0o40gs0ir","0jo0jo___089042______05j0ug0rs0000gb___15c00000001u04i03e04103l03a04o02i05f05n07p0gn04z05r0dl0pv0oe0rs0hx0ku"],["Song Myung",400,1,0,"0iu0iu0iu07802d0iu08u04r1941ll0a50cq0e21km00900903304q04a04005202t02q00l04k04x05o09802f03k07z0hm0i90pi0gh0l7","0io0io0io07802y0jd09705i13d1c708w0ez0gc1js00900a03304p04504k05202v02n00805705r06z0as03b04q0a70iw0i20pq0gp0km","0mg0mg___06w04w___08l05d1h81tj0ax0cv___1ce00200302m03y03f03q03a03c03s03l04v05e05w0aq02j03m08g0ji0pd0rs0if0pw"],["Sono",300,0,1,"0fh0fh0fs05706b0hd08v02k0tk0qe05c08t0as1ep00a00a03d04v04e04w05q02501l00a02g02l03705m02402j0470950fk0md0ex0gm","0ff0ff0fw03a05s0hv08f03t0ul___04d0bm0ec1dy00500d01t05h04d05305l03801i00b03f03x05109p03503x06v0dq0ge0m90eg0hc","0ij0ij___07w07j______0310vd0ou00009o___14v00000002h03y03c04103i03704103b02w03103i05s02g02y05j0bj0jv0rs0gs0k9"],["Sono",400,0,1,"0g70g70gi04b05s0hd08t03h0wa0py06f0ay0dd1ea00a00b02w05c04n05505002v01400903d03i04d08e02p03a0680e20ft0m50f20hy","0fs0fs0g904f05x0hk09904g0uz0l505c0d20gf1ca00800b02z05704o05505k02o00v00704804j0600bt03m04d0990gb0g80m40fs0hr","0je0jo___08t06y______0460yk0p20000ch___14j00000002204c03g04503g03a04d02q04104604v09x03803w0850ie0m40rs0g70ku"],["Sono",700,0,1,"0id0hs0id03h0410hd08t06b1180xv0a50ga0jf1am00800d02505p04w05d04o02z01800b06306d08j0fn04l05y0ev0kn0gt0mj0hs0iy","0hs0hs0hs06b03y0hi09b06u1020fl0bg0gy0kv16j00700d02e05m04z05l05202p00r00606i06z0c70g605606z0ft0kg0h00m30hs0is","0m00m0___05204n___05s07l12j0m401l0hm___10x00000201j04g03s04803i03n04p01y07f07n0a10it05h07f0jn0ql0ok0rs0k90nq"],["Sonsie One",400,2,0,"0s00rq2y50ya04q0hr08s0a11wz1130n50ge0gd15i00700f02p05l04205004w01v02i00l09g0a70bc0gp03j06s0e00ib0go0pi0qj10k","0rm0rm2wi0zi03y0hj08b0ab1ry0vj0ob0gr0hp14600600e02u05f04m04x04j02a02e00809o0ag0c10jm04707l0fk0j60h00pt0qm1l7","0u10u1___0ci043___08o0ax1xy0z50l60gn___0za00300802204j03x03g03s03q03v02609y0ax0cb0gc03v0730e80la0o70ri0re0x8"],["Sora",300,0,1,"0j20jn0j207u0570kc07o0390sg0rs07s0a80b11hu00500902p04m03o04b03r04e02201y03603b03z06w02x03c05j0c10i40rr0gr0ld","0j30j30im08n04s0lb07b0480t2___0590cx0dw1ib00200a01g05203p04604d04k01x02904104905f0ak03p04g07m0fc0j40rn0g80l0","0ki0ks___08o06d______03a0sm0rs05g0a6___1c900000002f04303a04303b03503u03n03603b03x06u02x03d05w0bp0js0rs0g60n3"],["Sora",400,0,1,"0jm0jc0jm09j0570kj07p0410th0rs07q0ce0d61h600500902e04t03s04c03t04b02801r03y0440520ac03m04507m0g60ip0rs0g60lx","0k20kk0j308103x0l808404w0tr0mw0810e90f71gc00400902i04r03r04904l03v02d01d04o04z06d0dk04e05309o0hn0j20ro0hm0mi","0jx0k7___0au05s______0440tn0rs04x0cd___1bl00000002504a03e04403c0380460360400450500c103n04807s0g00l20rs0g60n3"],["Sora",700,0,1,"0lc0lc0kr07v03h0l308106h0w00rs09z0h80i61dp00400a01z04w04104b04104802j01g06c06k08y0gw05g06n0f10le0ka0rs0j10n2","0lk0mj0kl07903x0lc08706y0vt0lt0aw0i40i81c300400a02304s04004904n03y02j01606q0740ai0hk05x07f0ge0mc0k10rr0jm0nj","0mh0mh___09m04m______06i0v50rs06e0hc___17800000001q04f03n04203c03g04n02k06h06n09s0hk05m06z0ef0qn0nu0rs0ha0os"],["Sorts Mill Goudy",400,1,0,"0hv0j10gq09902b0ge07l03810j24x0b009g0b61os00b00h03x04r04204r04r01h01r01k02z03f04c06r01w02p04v0a60f50qn0f00kr","0hs0j80hb09901x0gu07c04b0yg0tn09o0cx0f51p000400k02905j04304j05o01i01r01t03x04h05u08v02x0400790dz0g60q40ef0l5","0ov0pg___08v042___07r03g11k2hn0e609k___1e900500c03c03z03703p03c02t03903r03803n04o07902202t05809j0io0rt0ii0sx"],["Sour Gummy",300,0,1,"0k90jz0k908h02w0ku09u0480un0q00930cc0cl1ga00c00702f04v03v04803v04k02401e03y04905m09v03h0480710gb0is0qu0hd0lf","0jt0jt0jt08u02z0lc09e0520uw0fw07s0ec0el1gy00700a02204z03y04b04r04202a00x04n05206q0ck04805409e0ho0j40qu0gu0ls","0jm0jm___0az03h______04c0uz0qp0370c2___1d200000002304k03e04503f03d04202s03x04a05b0aa03j04907a0h70l40rs0g50lx"],["Sour Gummy",400,0,1,"0ku0kk0ku08602w0ku09u0520vj0pm0930e00e71fc00b00802804y03x04904104f02801904o05306s0cr0440520990ig0j70qv0ij0m0","0jt0jt0jt07r02h0lc09e05r0vt0ey08k0f40fw1et00700b01y05204004c04y03v02c00v05605s07r0ek04o05r0bh0ji0j50qw0hu0ls","0k90k9___0a5037______0550vi0pv0390dq___1b100000001w04n03h04703g03f04902h04o05506k0dp04705409a0kw0ln0rt0gs0ml"],["Sour Gummy",700,0,1,"0lp0lp0m007702b0ku09u07f0x60m30ap0ho0i419200900b01w04v04904g04c04402d01206y07m0br0iu06207o0h10p50jq0r70jo0nq","0ku0lu0ku0i101z0lc09f07t0xw0bn0cx0i70in17j00600c01o04r04g04k05403r01t0190740820ds0im06b08b0hn0ob0jw0qw0iv0nt","0m00m0___07c02w___05s07e0wk0mb03z0hn___15700000101j04h03w04603k03o04i01z06y07n0c60j20660880hb0q90nf0rt0k90ob"],["Source Code Pro",300,4,1,"0gs0gs0hd04105s0ij08q0260sc0rs07807n08s1d600a00803l04604204l04a03i02v00b02202702p04b01v02603c06y0gc0oj0g70hx","0hh0hh0hh03j0550j408103o0tg___04x0bs0d81ce00300c02005803204v05903v02u00a03f03s04v08t03503s06i0d80hj0pj0gg0ii","0i60i6___05e071______02c0si0rs00007w___19200000003303l03803804l02o03f04002902d02q04402002e04807l0jj0rs0h00jd"],["Source Code Pro",400,4,1,"0hu0h90i405i0560j008n03k0uu0rs07c0bz0cq1bv00900a02o04u04204l04c03j02s00h03i03n04h08t03103f0690ef0hg0ox0gp0if","0hc0hc0hc04504t0jl07j04e0uf___0370e20fw1c500300d01f05c04404o05103m02o00j04904g05z0bn03s04d08w0fx0i60oz0hc0ia","0iv0iv___09205m______03w0v00rs0000c5___18300000002904e03d03f04b02s04403703t03x04k09p03b03v07q0i10m30rs0h30k1"],["Source Code Pro",700,4,1,"0j40j40j403s0420jo0840620wz0rz09m0gw0hx19l00400c02505604a04p04g03t02j00b05x0650890ft04w05t0dv0kz0iq0p50ij0k9","0jj0jj0jj03h03x0jh08806o0wl0lo09m0i60jg14w00400c02905104604l04z03k02f00e06i06x0bm0gu05i06w0f30m40jo0pm0jj0jj","0k70k7___06s04m___07g06k0wr0rs0000hn___14e00100201q04k03i04103i03d04n02f06i06o08o0hc05j06n0fm0rq0ov0rs0j10lx"],["Source Sans 3",300,0,1,"0f10fm0er06p04n0ij08q0240r10rs01507x0901tr00900903k04a04704n04803c02v00802202602k03z01x02903s07d0gb0ok0dw0gs","0fe0fe0ex07303v0jl08b03j0rv___0130cd0dc1ti00400a01u04y04204m05203m02p00l03703n04g07m03503v07g0ea0he0p10eg0hb","0hl0i6___06505v______02c0ro0rs00007u___1ix00000002y03p03b03704k02r03k03t02902c02p04102202i04g08b0ig0rs0fu0ir"],["Source Sans 3",400,0,1,"0g40g40g407t04m0j008n03k0ub0rs0350c30d11q200700902m04w04804o04a03g02t00e03i03l04907s03203m07g0fq0hf0ox0ez0hu","0gr0gr0fs07f03y0je08c04g0tp0ne01o0el0g41p800600a02q04x04e04t05502v02f00404a04j05u0as03y04p0a90ho0i00oy0es0hq","0hz0i9___09v05b______03u0uc0rs0000cd___1gm00000002604f03g03e04b02v04503203t03w04i08y03c0410820hz0ld0rs0eq0k1"],["Source Sans 3",700,0,1,"0hy0ij0hd06g03h0jo0840620ws0s604a0h40i41js00400b02505604f04t04d03q02j00905z0630810em04z0690fe0mr0it0ph0gs0j4","0il0il0il06402y0k808806n0wk0lq06j0il0ji1ed00400b02904z04b04o04x03i02g00c06e06s0ah0fl05k07i0gq0n70jo0pn0hm0jl","0kr0kr___06r057___07l06k0wh0rt00z0hb___19r00100301p04j03l04203i03f04k02c06i06o0930hc05k0750g70rr0o90rs0hw0mi"],["Source Serif 4",300,1,1,"0hk0hv0hk08b0380ir09d02i0z232208k08608p1mb00d00704d04003s03m04t03802m00t02b02k02z05x01r02103g0710hl0p60ft0lo","0ht0ht0ht0d302z0j309f03q0wd0s306o0ch0du1n100800b02505d03y04d05502z02y00f03i03z05308s02s03f0650ch0hx0os0ft0js","0m00m0___07b058______02p11u3cv06c089___1e600000003t03c03103j03402y03h04l02n02r03605n01v02204507t0oh0rs0hd0ph"],["Source Serif 4",400,1,1,"0ip0iz0ie07p02w0iz09703z13z1zr0930bn0cl1ki00c00803804n03x04b04203k02v00o03r04504u09e02f0320670dg0ie0pe0go0lv","0ho0jn0ho0i902y0jg0a104t0yg1mj08i0e10fa1jg00c00903804n03w04b05003402u00904l05206t0ad03c04c07z0gm0i10pp0gp0ll","0n30n3___06y04x___08u04i19526b09x0c2___1cx00200302t04503903m03403503p03y04904j0560b002m0340780dw0pe0rs0ih0r4"],["Source Serif 4",700,1,1,"0kq0kq0kq06o02b0jk08u06r1j019j0dw0fg0h51hj00900902m04x04904j04203v02k00j06i06x07y0bt02y0560c10k10j00pm0if0nl","0jq0k80jq0k601z0ji09b0781bm12909w0h40ir1gd00800a02s04x04b04k04w03a02d00706w07d0950dh03u05u0ea0ku0j00p30hr0no","0ng0ng___08a04e___08l07n1sw1f40bm0g7___1a400100402b04803o03c03t03104503407007o08d0e503505c0cq0py0pz0rv0l40s5"],["Space Grotesk",300,0,1,"0j10jm0j104p05s0jm08302v0se0rs09909k0a61ji00a00702w04l03q04603y03x01z02602r02x03i05u02l02x04m0an0hw0rq0hb0k6","0ia0j90ia07m03v0jo07c03z0sl___05w0cv0dl1m400300b01k05403v04804w03l02d01u03l04105109u03j0450780ei0ia0qz0hc0j9","0jm0jm___04w06c______02w0sn0rs00009t___1hy00000002l04303c03x03a03603h03z02u02x03c05n02m02y05c0bs0m40rs0gq0lc"],["Space Grotesk",400,0,1,"0jm0jm0jm09604m0jm08303m0tq0rs0830c70cb1j400800902j04v03v04604203q02a01w03i03o04g08s03703o06b0f70i20rs0g50k6","0ib0ja0ib08703v0jo07c04c0sy___06t0e60ew1l900300c01d05904004a04x03i02f01o04704f05t0b403z04k08i0gg0ic0r00ge0ja","0jm0jm___09x057______03n0to0rs0000c9___1hk00000002804a03e03x03b03704303f03m03o04909n03b03q0790hq0n90rs0f00kr"],["Space Grotesk",700,0,1,"0jm0k70jm08b0410jr08305i0uc0rs0830gf0h01hy00700a02305204104a04903i02l01k05b05j0750fg04t05l0cm0lq0j40rs0gq0lc","0ki0lh0jj07103x0ji0840630uv0lg0930hm0ic1f900500a02604y04304804t03902l01b05w06909n0gi05a06e0e90m60jp0rp0jj0lh","0k70k7___08w041______05j0ub0rs0000gt___1dq00000001t04i03i03x03d03c04m02r05i05j0740gw05105v0dw0qf0p30rs0fk0lx"],["Space Mono",400,4,0,"0jm0ig0jm06v04m0jr08303n0t60s108l0cs0cq1d500900902n04v03p04403z03y02901u03i03r04n09q03d03r06h0fp0ig0rs0hb0jm","0ib0ib0ib07903v0jq07c04g0sv___07h0ei0eu1e300300c01f05d03v04404v03t02e01l04804k0670c604304p08f0gu0ie0r00hd0ja","0ir0ir___09604m______03o0t50si0000cy___1e800000002804b03d03y03b03804403b03n03q04909z03f03u0810kx0np0rs0fk0jm"],["Space Mono",700,4,0,"0jm0jm0kh0660410jr08305j0t10rs08l0hb0hv1bi00700b02505703w04804b03i02j01i05b05l07q0ga05505s0cs0mg0j40rs0hv0kr","0ki0ki0ki06203x0ji0840660ta0lq0ad0ic0jb16a00500b02805403x04804x03802h01905x06h0bn0hg05p06s0fi0mz0jp0rp0ik0ki","0jm0jm___08a03h______05j0t10s90000hu___1b800000001t04j03i03y03f03d04k02o05i05k06x0h605a0610eh0rr0ph0rs0hw0kr"],["Special Elite",400,2,0,"0k90k90k904602w0jo08803i0qs2c90810bo0df1jv00700c02h05j03e03n04d03m02d01x03703u0610ak03403t0610bn0in0rb0ij0ml","0jr0jr0jr0gx02z0jc08f04i0rw0ro0a40e50f81ie00400d02805j03i03s05503502m01e04404v07i0d503z04t07n0fn0ir0qt0is0mq","0k90k9___06z04c___03h03g0pd2th00i0ce___1kq00000102l04r03303803003204j03k03303o05n0ad03804206u0cz0q60rt0ij0lf"],["Special Gothic",400,0,1,"0hb0hw0gq09l0410jq06x03n0v20rs01j0bv0dk1o600200b02g04q04004c03z03y02801t03j03o04b07n03103m06x0fh0ij0rq0ef0jm","0hq0jp0gr08t03g0jj07704h0tk0mw02s0ea0ge1nu00100b02j04q04204e04z03602j01404c04l05t0bc04104t09w0hh0ix0r10fr0jp","0jm0jm___0a404m______03p0w30rs0000bh___1h500000002604603h03y03g03b03z03c03n03q04b07703103n06w0fb0lm0rs0da0ks"],["Special Gothic",700,0,1,"0k70ld0j10b802b0k706x07a0zp0rs08i0iv0jg1g100200b01x04u04904i04803t02l01c07707d0af0he05l07x0ii0q20jw0rs0ih0n3","0ks0ls0it0ed02h0jm07907n0zc0lx08u0j50le1du00100a02504u04c04m04x03902k00w07b07t0ck0hq05z08s0in0oy0jv0r30it0nr","0mi0mi___08403h___03h07c0zh0rs04h0if___19e00000001n04d03p04303h03m04k02e07a07g0au0ij05m07w0ip0rs0ou0rs0jm0o8"],["Special Gothic Condensed One",400,0,0,"0dv0dv0da07o02b0jw06x04o0vc0sl0110h60hx27800200b02304r04a04g04103y02g01g04n04q05609l04206l0gs0oy0ju0rs0cp0f0","0du0et0du0n101z0jk07705c0tq13905v0iy0ku23700100b02a04r04f04j04u03902i00w05505f07c0bq04v07s0hs0o80jv0r30du0ft","0ef0ef___09402w___02w04r0w50sx00h0he___21b00000001s04703r03z03i03p04a02m04p04r0570a70420750ii0rs0pg0rs0cp0f0"],["Special Gothic Expanded One",400,0,0,"0rp0sk0po0f702w0k706x0821110rs0mc0h90j514300200a01x04y04204e04a03t02o01d07u08e0d00nv05r06n0eh0ku0jo0rs0o80ul","0qp0ro0nq0fk02z0jm07808b10w0md0lm0ht0kc13o00100a02504x04504h05103b02m00w08208u0fa0n20640770fp0m60ju0r30nq0tn","0sa0sa___0ba03r___03h08310v0rs0hi0hp___0yy00000001n04g03m04303f03f04q02g08208g0dd0pi06106z0fd0rb0o80rs0ks0u0"],["Spectral",300,1,0,"0g70g70g708u03h0gt08t02z0zz22p08109v0b21o800900803j04m04b04w04p02602w00a02v03603s06n01v02j04v0a40fw0ow0eh0ij","0g70gp0f70as0420i308m0470x61hi06j0d00g31m700600903g04p04c03n05l02w02k00803z04e05l08p03204307x0fp0hi0on0e60i8","0l30l3___08c065___06503l14j2am0800a7___1b000000402z03v03d03503y03b03503x03c03m04c07a02802p0600ar0n40rs0en0qd"],["Spectral",400,1,0,"0gr0h10gr08t03r0h108w03i1161wq09m0b70cr1m900800803a04r04b04v04w02602t00a03c03q04i07q02402z05y0ct0g90p40f00jn","0gq0h80fs0bh03u0ho08e04h0x111t0780dy0g21le00400901n05b04404n05d02p02s00w04704p05y09i03504908a0g30h50po0ec0j4","0lo0lo___07w05v___06504315k23q0ax0b9___19z00000402r03x03e03a04103d03703t03v04405008p02i03406s0cc0nm0rs0hl0rj"],["Spectral",700,1,0,"0j30j30ii0f402w0hd08w05n1jm1c40an0dm0fo1il00800802s04y04p05204k02f02m00a05b05s06j09w02c04409s0hh0gu0p50g70lz","0in0jm0ho0gj02y0hg09a06b19k11s0bq0fz0ig1gx00700902w04u04i04y05102902p00806206i07s0bb0380580c60ij0h10pn0go0oj","0o10o1___07d04z___06i06m1v21k40bm0du___17d00000402d03y03o03e04103n03c03a06106n0770b102l04009z0mz0or0rs0jx0ta"],["Spectral SC",300,1,0,"0lz0lo0m906b05a0n505v03d1232d80eg0ac0ad1ds00000e03904703s03q03u04503b01703603i04607s02402o05n09z0k70o00i60ol","0l90mr0ks06004y0nc05j04f0ya___0bo0cn0dz1ct00000a01r04v03u04e03z04k03b00v04504l05y09h03504707u0fa0it0nu0ht0mr","0l30l3___089065___05y03l13w2cc08r0a8___1b700000d03103x03h03503v03l02x03k03a03l04c07f02902r05z0al0lx0rs0en0qy"],["Spectral SC",400,1,0,"0mu0mu0mu06505a0n505v03w14i2570fk0bh0az1ci00000e03004903v03s03x04b03501503p04204u08t02f03306f0bx0km0o00ir0p7","0ls0mr0ks05z04y0nc05j04q0xs___0c80d50eq1bf00000901o04z03w04f04104k03800t04k04z06g0at03b04g08k0gi0it0nu0it0nr","0m90mu___07k05v___05z04315a23q0bz0bc___1a500000c02s03y03i03903y03n02x03g03u04405208x02j03506r0c70md0rs0hl0s4"],["Spectral SC",700,1,0,"0p70qd0p705l03j0na05v06g1sh1ii0iq0e20du1ac00000d02m04d04703v04604f02t00z05m06h0780br02h04009t0ky0lq0o10l30rj","0of0pf0ne0590430na06e0711e318i0jg0g20g117v00000c02t04h04703h04904l02z00p06l07708i0d503d05e0c90m60jq0nr0kc0qg","0ps0qd0jc06804p0md06406m1ua1k40er0ds0do16u00000c02h04103r03e03z03w03002z05w06n07a0bg02m03y09w0me0mi0rs0m90ta"],["Spicy Rice",400,2,0,"0hv0if0g50f10160k608206s0w60wj0380k90k71tb00400d01r05004s04o04904c02d00606d07b09n0ex05r0960jd0o40ju0os0fk0if","0i90ir14h16k01z0jk08d0780uz0r50a40ka0kv1he00500d02m05004s04p05203m01j00207008p0ec0gy06w0c90kc0o30j70o00gs13h","0ku0ku___0ff01r___04n08l11m0qn03e0ky___1ed00000101g04a04703z03b03y04c02c08208w0cb0ho06r0b20q50r80qt0rv0j40ml"],["Spinnaker",400,0,0,"0hd0hy0h309h04n0hm08p03t0ue0rs0ah0bw0dl1h900700a02k05504k04t04u02d02w00703o03x04y0be03a03r06h0dp0gf0oz0f20k9","0hq0iq0gr08s04g0hl08f04q0ua0n30ap0e30g41fv00500a02p05404j04t05b02202q00604f04u06j0dt04504o0920f50g80p00gr0lo","0m00ml___0ao05s______0490vi0rs06a0bu___14j00000002104d03i04103d03504j02v03w04a05b0dc03k04106m0dr0kc0rs0gs0ow"],["Spirax",400,2,0,"0fn0g70fn08d02w0hd09903z2110rs04u0a90ch21b00b00i02m04k05705004d02f02i00d02903y04204v01801r04h0e20ft0ph0eh0ij","0gs0h90gs0dq03y0ho0a50521ow0tn07y0dy0g41t900b00g02x04904w04p05002902c00p04b05105l07801x03308g0ha0h20px0fs0ir","0hb0hb___09f04m___09803x22l0rs01809g___1s200800g02703n04304603h04704b01301l03s04304r01701m03y0be0lz0q10f00j1"],["Splash",400,3,0,"0yz0rs___0ix022___0c202q0xo___0m80a5___2sj00g00p02o04905j04t04h02w01s00b01q02q03m04u01d02903s05b0ey0mn0rs1j2","1931hu___0cm04m___0d205d0wo0hg0rs0cv___1pw00h00r02c04c06104s04002l01y00j04105a07a0aj03b05307v0ak0g10nd0y2275","____________02s0ms0bc02p0zr____________26l00f00v02p04x03t04e03v04e02e00401l02n03n05801a02403i0520hz0mt______"],["Spline Sans",300,0,1,"0gi0gs0g705r0420jo07t02n0qr0rs01609k0az1ul00500902o04s04004k03y04202t00n02j02p03505702h02w0540ae0he0pp0eh0hd","0gv0gv0fv07d02z0kd07j03t0q4___01p0cv0eg1uv00100a01e05504304g04r04801w01l03j03v04v09803j04i08f0fw0iw0qo0ew0hv","0ij0ij___05j05s______02u0r60rs00009d___1k900000002g04003e03t03h03503y03m02q02w03b05b02l03205i0af0jb0rs0g70jo"],["Spline Sans",400,0,1,"0gs0g70gs09b0420jo07s03r0t30rs0100cq0ec1s600400a02905104504l04a03r02t00k03m03s04k08803e0420870gg0i30q10f20hd","0gt0gt0ft07n03h0ji08704h0ru0mq01m0f80gf1sm00300a02f05004804k05103b02r00504a04k05u0c20480560az0io0i70pv0eu0hs","0ij0ij___09y04n______03z0t70rz0000cn___1i700000002004c03i03x03h03b04b02x03v04104r09n03n04c08e0hv0lh0rs0dw0jo"],["Spline Sans",700,0,1,"0ig0ig0hv07202w0jm07s05w0uk0rs06f0h30iy1n000300b01x05504e04o04f03o02p00j05t05z07e0em05306p0fp0mj0j10py0gq0j1","0ht0ht0hb07002z0jg0880660tb0ln0370i60jl1ko00300a02605204f04o05203f02i00606106b0a80f105r07e0gt0mm0j00pu0gt0is","0k90k9___08s03h___05x06f0uq0rs00w0h1___1ck00000101m04h03q03y03e03l04n02d06b06i08r0go05r07f0gp0rp0oc0rs0f20lf"],["Spline Sans Mono",300,4,1,"0gs0hc0gh03d04n0jo08302n0rw0rs02s09l0b41i300700902z04q03t04f03u04602q00q02j02p03805x02f02s04n09o0hd0pp0f10hx","0gb0gb0gb06q02w0jq07d03p0qx___01n0d00ef1jv00200c01k05903y04b04n04b02i00w03f03u04v09u03d04607l0en0i60pt0ee0ha","0ij0ij___04q04n______02u0s70rs00009q___1ep00000002j03y03c03w03j03603s03m02q02v03a05102l03105p0bg0jc0rs0gs0j4"],["Spline Sans Mono",400,4,1,"0gs0gs0gs06r0420jo08303q0ts0rs02l0ck0e81hc00600b02i05203x04g04803s02r00o03m03s04o09203a03t07g0fs0hy0q10fm0hx","0gs0gs0gs06m02z0jh08804g0sc0pd01n0eu0ge1hw00400b02o04z04104h05003b02p00704a04l0640c504504v0a20ht0i40pt0fs0hr","0ij0ij___08r03h______03z0tw0rs0000cn___1du00000002404c03g03x03h03a04902z03u03z04l09m03j04808n0jz0m30rs0gs0j4"],["Spline Sans Mono",700,4,1,"0hv0ig0hl04x02w0jm08305u0vp0sj05w0hb0j21f400400c02305804804k04e03n02n00m05q05y07l0ey04v0650ec0kk0ip0py0hb0j1","0hs0hs0hb0dt02z0jg0880650u50ml03h0i10jg1cg00300c02c05304904m05103f02g00805z06d0au0f405f06s0fw0m00iz0pu0gt0is","0jo0jo___06m02w___05x06d0uu0rs00i0hw___19y00000101p04h03n03z03g03j04l02f06806f0880gm05m0760gt0rp0ow0rs0ij0k9"],["Squada One",400,2,0,"0fn0fn0fn08e03h0ku0740600y11m70100kt0lk1rh00300b02604p04204e03u04c02g01h05z06106b0eb04w0aa0l50rp0ky0rs09u0g7","0fs0fs0fs07z02z0lc07d06g0wq11q0100lw0lx1q300200b02904m04604h04k03u02i01206c06h0870e505p0dj0kw0ra0kz0rs0au0fs","0fn0fn___08t042___06y0680yk1m20000ln___1my00000101v04803l04103f03l04f02n06806906d0ec0530b90rd0rq0re0rs0af0g7"],["Square Peg",400,3,0,"0cf0cf___0fg02y___0g00250m60sn06608c___2cp00b00h03005w04l04c02t01z02x01i01v02402q04a02902t04r08n0a20pk0b80fy","0cu0cu___0vc02h___0en03s0np0xy05k0d4___20x00d00g02m06005n03y02s02k02v00l03603q05p08t03v04z08h0df0ap0or0bv0nq","0e70e7___0bi03k___02y01z0ir0tj017087___1z700000302h04d03303v03z02v04v02a01u02102n04202i03104t08l0hc0qs0bu0h5"],["Sree Krushnadevaraya",400,1,0,"0hy0jo0hd0ah02w0gs09904o1r01o10ad0bz0dk1l500a00903a04k04p04y04c02902y00a04g04o05407e01q02p0740fk0gc0ph0fn0lf","0id0je0hd0it0320h109k05h1bn1ba0an0f40h81ks00800a03i04v04z03u05002h02i00705905m06e09p02q04d09t0h20gj0ot0gc0kf","0n10n1___07w045___07m0561vn1tz09f0bq___1be00100502q03o03503v03y03003r03i04j05605l08b01t02u07v0h20od0rs0fd0r6"],["Sriracha",400,3,0,"0hs0hs0hs0by01q0h707g04z0wc0r309w0cu0fj1rw00300a01x05l04t05e05402f02000604o0520690ax03x0580a10fp0g20ni0gn0kn","0j50km0ho0e201z0he08b05s0wf0z20cc0f20h81mi00400a02u05d04s05h04l02u01f00405b05v0820dg04n0660c00gx0fy0nr0ho0qi","0m00m0___07l03h______05w0xl0oz03u0f5___1cs00000001e04l03q04403l03n04n02505o05y07c0e504n06f0bo0j90l30rs0ij0nq"],["Srisakdi",400,2,0,"0gs0j30f209x02w0hd0cx01u0sf___05f0740821z600c00j02y04403z04805b02s03100k01r01w02d03r01i01t02y06n0ge0p40f20lz","0j80m40fe0fv01x0hw0c803e0qk___0990ci0eh1xa00e00j01k04m03x04205k03g02x00t03603l04u08g02w03x06w0b80hf0ps0fe0qx","0q10q1___0dm02w0mk0420210v4___0ej06t___1ma00000202g02y02y02y03n04w04b03m01y02402o04c01m01u02w05o0nb0rs0n50v9"],["Srisakdi",700,2,0,"0iz0lu0ht0di02b0hf0d803o0wn0x40ge0bf0dg1su00e00i02504r04504m05402n02v00o03g03s04y08702s03b0690b40gs0pg0h90r0","0j80k80hr0jc02h0if0e104q0u70sl0eo0en0gf1m200e00i02804o03y04i05l02h02r00s04h04z07l0cq03z0530940en0hy0q20gr0qm","0sc0sc___0jj02b0ki09u0420y20vv0jg0bb___1hi00300301r03q03503h04904c04902r03u04505i09v03103g0650b10nd0rs0np1c0"],["Staatliches",400,2,0,"0fn0fn___04c02b0na___0540r90rx0000hz___1tb00000001l04e03p03z03i03p04k02e05305506p0db05607b0ll0rr0pk0rs0fn0g7","0gp0gp___0nm01z0mf01x05t0qy0ll0560jr___1lt00000001p04903n03w04303q04i02005k05x0a40e305w07y0lp0qq0ps0rt0eq0hp","0fn0fn___05n02b0na___0540r90rx00i0i6___1td00000001l04e03o03z03i03p04k02d05305506o0db05607c0lk0rr0pm0rs0fn0g7"],["Stack Sans Headline",300,0,1,"0kp0kp0la09r02w0m00840420t00rs07d0cf0de1lt00500902c04r03n04803g04p02u01i03v0450590ae03l04907g0gq0k70r90ie0lu","0ko0ko0ko0db02y0lk08704r0t10ma08n0el0f61ly00400902h04r03t04804504n02j00w04i04w06e0de04c05109d0hy0k30qw0hq0ln","0kq0kq___0bb03g______0450te0sm03z0ct___1fu00000002404c03d04403a03804803503z0470550cb03l04a0830g80mj0rs0ee0lw"],["Stack Sans Headline",400,0,1,"0kz0kz0ke07d02v0lz08304q0ts0rs06y0dx0ey1kq00400902604u03s04803i04o02v01e04k04v06a0cc0460500a00jq0kg0rc0ie0lu","0ko0ko0ko0af02y0lj08605e0u60mx0a20f80gm1kl00400a02a04q03w04b04a04j02j00u05205i07g0ek04o05p0bo0jw0k60qx0ip0mn","0lb0lb___0az03g______04u0ub0rs03z0e7___1e500000001y04g03g04103d03b04e02w04n04x06a0fd0450510a20kr0n30rs0ez0mg"],["Stack Sans Headline",700,0,1,"0la0la0la08202w0lz0820650uy0rs07n0gn0i81hp00400a01z04v03x04903o04l02w01a05w06a0940h305c06i0ez0md0l00rc0iz0mf","0kp0kp0kp0br02y0li08606h0ud0ks0b40hp0j11fk00300a02404u04204c04i04c02h00r06606t0am0h505s0710gy0n10kz0qx0jp0nn","0lb0lb___0aa03g___0810690va0rs03l0h6___1af00100201r04h03l04003e03g04k02j06006e09u0i805a06p0em0qs0o90rs0g40mg"],["Stack Sans Notch",300,0,1,"0kt0kt0kt08f02w0m00830410t10rs0730ce0d01mb00500902c04s03s04703j04s02q01b03u0440550ab03k04807b0g90jw0r70hx0le","0kg0kg0kg09902x0ln07r04q0sy0mk0840eh0fh1mk00500a02g04r03s04804504n02i00v04h04u06c0d504b0510990i00k70qw0hi0lf","0kr0kr___0bd03h______0450te0sd03z0cp___1fr00000002104c03e04503b03904903203z0480550c003l04a0820fz0mj0rs0ef0lx"],["Stack Sans Notch",400,0,1,"0kt0kt0kt08802w0m008304p0tm0rs0730dw0ew1l100500902604w03t04903k04r02r01704j04t0680cc04504x09e0j60kb0r70ii0lz","0ko0ko0k709e02y0lk08605f0u70m507p0fg0gq1kd00400a02b04r03x04a04904k02i00u05305l07p0el04o05p0bv0ka0kw0qx0ip0lo","0lb0lb___0ax03g______04u0ue0rs03z0dw___1e500000001v04f03h04203e03c04g02t04n04x06a0eq0450500a00kv0n30rs0ez0mh"],["Stack Sans Notch",700,0,1,"0k90k90k908202b0ku07n05u0uv0rs0860gu0hy1k100400b02205304604i04204h02l00h05m05z08j0fw0530690dm0l40jx0q20ij0ku","0jq0k80ir0ba01z0lg08306a0u20ku0790hl0j41hq00200b02604z04804j04q04e02a00505z06j0ab0gd05m06y0gk0lz0k70pt0hr0lp","0lb0lb___0ac02w______0690vc0rs03z0h5___1af00000001o04g03m04203f03h04n02g06006e09o0ht05a06n0eu0p60oa0rs0g40n1"],["Stack Sans Text",300,0,1,"0kq0kq0kf07l0410lz0850420sv0rs06y0cf0d21in00500902b04r03o04803g04p02u01i03w0460580ae03l04907l0gq0k70r90if0lv","0k70k70ir07c03u0lp07c04n0sw___05c0e60f71k300200a01a05103t04604404o02w01j04e04r0670d204904y09j0hy0kb0qy0hb0l5","0lb0lb___0aa04m______0450te0sj03x0cn___1d800000002504d03d04303a03804703603y0470540cb03l04a0820fs0mi0rs0fk0lw"],["Stack Sans Text",400,0,1,"0kz0kz0ke07d0410lz08304q0tq0rs06y0e20es1ho00400902604u03s04803i04o02v01e04k04v0690cc04604z09y0jl0ke0rb0ie0lu","0ko0ko0lo07b03y0lj08605d0tu0lz07n0f70gj1hi00400a02b04q03x04c04a04j02j00u05205k07j0eq04n05p0bq0k80k50qx0hq0lo","0lb0lb___09u041______04u0ue0rs03x0e2___1br00000001y04g03g04103d03b04e02v04n04x06b0fc0450510a70ko0n40rs0fk0mg"],["Stack Sans Text",700,0,1,"0la0la0la0700410lz0820650v00rs08k0gs0hu1eu00400a01z04v03x04903o04l02w01a05x06a0930h005c06i0ev0mb0ky0rb0jk0mf","0ko0ko0k606l03y0li08606i0ug0l209m0hl0iv1dd00300a02404u04204b04k04c02h00r06706t0ao0h605s07a0h10nh0kz0qx0jp0ln","0lb0lb___09904m______0690va0rs04f0h7___18600000001r04h03l04103e03g04l02j06006e09s0i705a06n0ek0qu0o80rs0gp0n1"],["Stalemate",400,3,0,"0eg0az0eg0jc02b0n40ef01j0o80v209907006q1ua00j00p04m05i04r02p02402u02v01601c01l01w02u01h01t02p05w07j0na0980gr","0pc______0dv052___0fq03f0od1bl0go______1oj00j00l04c06504q02402o03502r00u02w03g05a09c03c04d07h0cc08g0nr0g80wf","0gj0i80ej0k002a0mt06001h0ny0ud04r05m06b22l00000902l03t04503803903r03t02z01b01j01u02x01h01q02e04q0k00qs0et0lo"],["Stalinist One",400,2,0,"10h0zl10h09703h0ku07j0ab1fw0rs0of0hv0io0rw00600g02w05203r04204a05001c00t0ab0ao0j310205j06d0g90li0kx0kx0zw14i","14b15b10v07s03y0l607d0ai1bj0lt0pk0jv0it0qa00200902c04s03j03x04h04f02p01c0ai0bf0nc10f0640740fa0nf0lo0rs0ze16a","15o15o___08v078___06d0ar1dm0rs0mw0ir___0nk00000202g04803b03n03103d04x02u0ar0as0i315t0600730fm0sb0re0rs0vu169"],["Stardos Stencil",400,2,0,"0c60bv0eh0jl02b0j407q04k1an1cy03z0cw0dl1pn00500a02t04f04604f03x03m02a01r04704l05506h02703p0900if0ij0rs0840ij","0hn0hn0hn0k202y0jf08405f18k19t0480f20g71lx00500b02x04d04104b04l03f02a01h05405l06c08u02q04p0ap0ju0iz0rq0ep0kk","0bl0bl___0jw02w______0541gv1kc01t0cv___1jr00000002h03v03n03q03b03m03u03b04505405k06t02503t09e0l70oj0rs0af0hd"],["Stardos Stencil",700,2,0,"0dm0d10h30ng01r0jo08a0641ha0zl05k0fa0gh1m500600a02d04i04a04j03x03p02e01o05f06506t08102o05e0cs0ju0ip0rs0990ku","0jo0kn0jo0ji02y0ji08b06v1fk0vy0a60ge0hj1i500500a02k04f04504f04l03f02e01g06i07107s0a803205z0eq0le0jp0rq0io0ok","0c60c6___0lh02w___06y06p1n513c0430fi___1gq00000202404003r03v03c03p03z03105a06p07808k02p0590cj0pq0pi0rs0bl0jo"],["Stick",400,0,0,"0g50fk0g50be0410jl09j03o0t80s802b0di0do1jc00800802b05403n04404103q02y01h03k03q04b0ar03e03k07l0hm0j40qo0ad0jl","0fc0ip0fc0a103u0i109204c0t10fh0310f80h71jf00600a02505b03s04b05502l03e00o04704f05n0di04004c09r0hp0i90pv0cg0j6","0je0jo___0cz05s0h8___03w0tz0s601l0de___1a500000001u04z03103h03g03104503w03v03x04w0bp03k03n0690gd0pj0rv04n0lf"],["Stick No Bills",300,0,1,"08208207h0fj02b0kb07x02r0pl0rs00e0au0bs1yg00700803104c03q04f03r04e02501m02p02s03c04w02p03905u0ge0iq0r706x0d9","0fp0g70fp0ak01z0l90860440rp0mu02q0dq0et1un00400902f04h03r04b04e04h02501i03v04505307v03j04l09l0j30jw0rn08u0ho","08n082___0br02w______02s0qa0rs0000as___1s700000002s03x03b04603e03703w03502q02s03704v02p0390620fd0l20rs0820d8"],["Stick No Bills",400,0,1,"08208207h0fn02b0kv07x03i0qv0rs00c0dz0e81x500600802m04j03s04h03r04k02a01e03g03k04505q03f0450980ja0jq0rb06x0ad","0fp0eq0fp0af01z0lb08704i0sc0n901i0f90g61ts00400902704m03s04d04d04k02901d04c04k05k08r0440540bn0k70kr0rm08u0ho","082082___0e102b______03k0qv0rs0000dd___1r900000002g04603e04603e03b04802q03i03k04105w03h0490990m80mq0rs07h0bi"],["Stick No Bills",700,0,1,"08108107h0g302b0lr0850540s20rs00c0i60iz1uj00600902804n03x04e03s04i02n01a04x05505t07804y0690gm0oo0l00rs07h0bh","0gq0fr0gq0a401z0mb08c05v0uc0ks01z0i90in1q000400a01x04l03w04c04f04g02l01905j05y06v0at05706u0hq0oi0lo0ro08v0hq","082082___0ej02b___03b0570rw0ro0000i8___1pp00000002304e03l04103f03h04j02b05505705t07q05606m0gi0r10oh0rs0820ay"],["Stint Ultra Condensed",400,1,0,"0b00bl0a508x0160j408502t0s723t0140dk0fd2qg00700802v04l04304403x03i02e01x02t02v03c05v02l03i09f0j30j50rs09u0cq","0ij0ef1680vm0330jx07u0420q711r0at0gr0h82f500200b01n05b03a04g04x03p02n01i03r04806k09e03y05l0fd0km0jj0rr0cd0uw","0cq0cq___08f02b______02u0tk24m00i0dh___2em00000002p04003g03i03203e04203n02t02w03806z02l03408w0jn0qo0rs0b00eh"],["Stint Ultra Expanded",400,1,0,"0qm0rs0ob08m02b0j908402y0v138h0mo08c09n16c00a00804204h03803f03y03p02102h02t03704w0bo02l02n03j06t0hy0rs0ml0tj","0qq0rr0nn0lg02l0jy07u04a0wh___0lh0by0ca17100300d02705r02k03n04m03z02j02304104k0720db03e03s05b0a70jd0rq0mm0ss","0sy0sy___08i04n______0330w93vy0ji08f___10300000003r04202l02y02t02j03w05802u03704b0e502l02o03p06r0ow0rs0k90yq"],["Stoke",300,1,0,"0j40k90ij07e03h0ge08p0401a41zj0f90az0d11jm00a00a03h04p04k04t04l02102u00a03x04405507t01y02r05j0ch0g70ow0gs0m0","0jc0jc0ib07b0430g408l05115p1hl0ez0db0gl1hl00800b03l04z04u03w05102702k00704t05706j09u02u04407t0f30fp0op0hb0ld","0p50p5___07z057___03h04d1ao26e0de0ak___19i00000102w03v03d03n03c03603n03w04304g05l08e0250300680ct0nw0rv0kt0tg"],["Stoke",400,1,0,"0it0jz0hy0bi02w0gf08904512t1xv0eg0bo0e81kb00900a03b04v04f04t04m01z02z00b04204b05m09p02k0390620d30g70p10gs0m0","0je0ke0id0h80320g408l05810t1jq0er0er0h51gx00700b03h05504o03y05002a02k00804y05j07e0cm03f04f0820ev0fq0or0hc0lf","0oa0oa___09b03h___07j04i13s23t0d50bo___19z00100202p04103a03m03d03303t03t04f04o0600b702q03j06o0dg0oa0ru0jo0sx"],["Story Script",400,0,0,"14b17711g0nl03g0ik08203x0pl0l80hv0bm0dw23300400b02005004t04z04o03602j00903m03w05507h03a05608c0at0gb0os0j01cy","17m1741sg0on04y0jd07g0530rn0hw0k70ed0fe1vw00100a01c05004v05205f03a02e00504g0520700b504g06p0ax0du0hs0ox0iu26b","0ku0ku___0rf01r___0570460qc0mb0c90bw___1qe00000201u04603u04603k03r04502a03t04605e08903505m08v0bg0ja0rs0hd0zw"],["Strait",400,0,0,"0du0f00du09405s0kr07j03l0vp1aw0100dr0ei1pr00500902n04h04004i03j04l02d01c03k03n03x08503203e0as0kg0k70q10bj0f0","0et0et0dt07904y0l407f04e0uo___0130fc0gt1pt00100a01h05004304l04h04f02e01404a04f0570ar03s04l0dn0k70kl0qi0dt0fs","0fk0fk___09h05s______03p0wm0sd0000dj___1kv00000002c04203j04703d03e04302u03n03q03x08i03303h0a60p40nc0rs0ay0gq"],["Strichpunkt Sans",400,0,1,"0i60ir0hl08h04m0k608403k0tg0rs0220b90ci1jj00600902d04v03q04c03v04702701u03d03l04b08403503m06g0ex0ih0rp0g50jm","0i80j80h708y0420k308g04k0t90m50370dd0fi1im00400a02k04v03w03c04v03z02d01l04b04m05w0c504504s09g0gw0in0rj0g70k9","0jm0k6___09o05h______03l0tc0rs0000b3___1d000000002604e03b03z03k03304003d03h03o04b09003a03o06i0e10kw0rs0ef0lx"],["Strichpunkt Sans",700,0,1,"0l20lc0kh09902w0kf08506p0zs0rs08w0gx0hm1fm00500a01v04x04204h04504002j01e06k06r08b0g80500690fv0mo0js0rs0j10n2","0l20lk0kl0ch02y0l508b0760zh0m709o0hz0iy1cp00400a02204t04104e04r03p02h01706x07b0a90hf05h0700gl0n40jv0rp0jl0nj","0lx0lx___0b103h______06s0z10rs0410gx___17z00000001n04f03j04503i03g04m02j06p06x0930j005b06k0fd0r20o90rs0g50ot"],["Style Script",400,3,0,"0nt15y0fb0gy04j0m40be02r0xo11z0dw07q0ab2j400k00n03905204u05o03d03f00z00102802r03604b01o02g04e0ar0dm0lr0dm15y","0qc0j9___0nu042___0an04d0wz0tk0fg0fu___24s00j00o03o05805904a03l03h01300103s04j06c09i03404k09x0fj0do0mi0f711i","0hv0hv___0rn02w0nb09t0321090qc0br09n___1wb00700d02h03n03a04703l03x04t01c02g03303m05401p02h03t0800m50q50ad0uj"],["Stylish",400,0,0,"0hd0hy0h307n04n0j408q04n0xe0zi0590dn0er1hu00600901z05504804m04e03b02o01304e04s05o09x03i04l0a40hw0i10q70g70ij","0i90i90h807d0420jx08o05i0x415303r0fg0h21gq00400902b05304d03k05303c02o01105705o06w0cj04d05o0ce0j40ig0qk0g80j9","0i90i9___09805w___04g0510y71g400h0du___1ap00000201s04i03m03i04602z04c02w04n05305z0as03r04v0a30me0mi0rt0ep0ls"],["Sue Ellen Francisco",400,3,0,"08408o08406s01r0b00dw0280lj0t700o0av0el34b00b00a03e05x06303s02a02p02500y02402702i04602b03i0840di09x0nd06y099","09w0aw___0o501z0b60fn03u0ns0i001v0ff___22o00b00a02106j06604202y02t02100n03803l06308m03x06h0am0j80as0nv05y0du","09t0ae___06802b______0250l40rt0000bc___2pt00000001z04b04104903h03y03p02402302502d03k02603u0830g90hz0rc0830az"],["Suez One",400,1,0,"0jm0ln0ih06i01q0j508306j10o1b60bq0i10iw1jl00500k02k05c04f04i04i03l01x00a06g0720ar0fe04q06e0ew0l80il0ou0gq0lx","0lq0m80p60ol01z0jj08707310b12g0g00i90jy1gn00400j02s05904f04j05803901k00706t07t0bw0g70580750gg0m00iz0ot0ir10j","0ow0ow___05s02w___06d07r11e19r0bg0iw___18300000802104m03m03s03703m04c02e07o08d0cs0is05e07k0gn0ri0p40rs0lf0r7"],["Sulphur Point",300,0,0,"0hq0gu0li07y03h0kj09502g0q40rs07v08f0941hj00b00703o04703n03n04a04j01z01f02b02i03505002c02q04607x0hp0qc0g90li","0gt0gt0kr0g801z0l108f03r0qi___05x0c60d71jb00300b01c05a03s04b04f04m02701g03h03t04x09k03g04906n0dy0is0qn0eu0kr","0gu0i0___098042______02g0qi0rs04x08a___1e300000003i03k03503q03s03503y03002a02h02y04h02902o04a07c0j20rs0fo0kw"],["Sulphur Point",400,0,0,"0gv0gv0kx0at03i0kj09a03f0qm0rs07n0be0c71gj00a00802z04o03r03o04g04d01u01l03803i04h08k03903t06c0dn0ia0qn0f40li","0ia0h90jt09k0210kx08q04g0rb0lp0780dq0f51gp00600b02g05203x03a04r04d02901a04704j05x0by04b04x0920gl0il0qp0g90lc","0hf0hf___09i042______03f0r20rs04q0b4___1cu00000002t04203903n03u03a04k02d03703i04607n03803t06g0cm0kp0rs0fp0jr"],["Sulphur Point",700,0,0,"0gx0gn0kn0au03g0kn08s04a0rj0rs06y0e20ed1gl00800b01y05303t04904p03v02801e03z04d05p0bi04404s08q0i00iz0r50fh0l8","0hp0hp0lm0ba02y0l809b0540rp0l507d0fn0g71ff00600b02504v03v04904o04802801304p0550750db04v05t0bk0j00jq0rl0fq0lm","0gu0gu___0bw03h______04a0rc0rs0440dw___1b300000002g04c03e03k03u03f04s02104104f05j0c004504x08y0j10lu0rs0dx0jr"],["Sumana",400,1,0,"0il0il0hf0de02x0ig09n04014v1nc09n0bd0d61lv00c00803a04f04403s05302o02901n03u04604u07o0290340710es0hr0ro0gu0kb","0i90ir0hr0m702z0j209f04v11h0t80880e10fm1ll00700a01v05304304d05402t02c01o04m05306409e03504a0900gy0hx0rm0gs0mp","0lc0lc___09c03r______04b1901t807a0b9___1eg00000002s03w03g03q03903d03n03q03w04e05107t02603507c0dw0no0rs0fk0pd"],["Sumana",700,1,0,"0jm0jw0jb09b02l0i509t05s18q1du0dc0er0gc1if00b00902n04v04504h04e02p02f01o05n06107d0bh03b04q0am0ig0hl0rs0ig0mi","0k90k90k90jx0310i30aa06g15317x0aq0ga0im1h900900a02u04z04903f05602o02l01c06706q08x0dq04405p0d50jc0hp0rn0i80oa","0lw0lw___078041___08h0611as1hm08a0f7___1cp00100202904b03i03t03603f04103805n06707d0bn03c04v0ah0ni0ox0rs0j00px"],["Sunflower",300,0,0,"0gs0h30gs09204n0ju09903e0ua0s00110bi0d61mb00800802q04l03w04e03p04602h01f03c03f03x09e03003b07g0g70j40qm0f20ij","0gv0gv0fv08p03z0kb08p04b0t0___01l0ek0fk1mw00300a01i05403z04g04p04001u01w04604d05e0c803x04k0a60hn0jq0qp0ew0iu","0hy0hy___0a30580fn03h03g0up0ry0000bi___1h200000102d04503d04503d03504c02y03d03h03w08l03103d07f0gm0m60rs0cq0jo"],["Sunflower",700,0,0,"0hv0hv0hv0880410kf09805w0vj0rs01j0h70ix1hg00700902504w03z04c04104002k01f05r05y08a0g60550670gy0p30k90re0fk0jm","0hq0j80hq07803y0ki09b06b0v50le04a0hz0ke1fp00500902b04x04304f04r03d02o00x06506i0au0g005i0710hj0o10k00r00hq0kp","0ig0ig___08j04m___04m05x0vm0rs0000hd___1bi00000101u04h03i04103f03c04m02k05w06207z0h505606a0h10rj0pg0rs0ef0kr"],["Sunshiney",400,3,0,"0eh0gs0dw0j901r0cq0b103d0s20wa08c0ca0dz22e00b00f02s05h05905m02902c02m00r03203c04b07x02y03l06g0bj0cc0p10bl0hy","0j70j70ee0q702w0du0af04g0sd0jf0cq0er0hv1u200a00d01s05h04z05m03802c02i01903z04f06r0bc04005109p0du0de0ps0gb11f","0hl0hl___0jv02c___08c03c0rt0ys04j0au___1tk00200402704f03y03j03o03t03t02903203b04a07g03003l06b0bh0ib0r00bq0lo"],["Supermercado One",400,2,0,"0d90d90d907u0570jl08n04m0ym10d0120gk0j81qt00900c02404u04i04k04904002r00904l04m0500aj03m05d0ha0ne0j90ot0co0d9","0dd0dd0dd09i04s0iz08z0550vp11401m0hy0l71qo00800b02a04o04d04g04u03s02q00805005805x0bf04f0760hb0mp0j80ox0dd0dd","0eh0eh___08h06d___09f0530xw0zo0000i1___1f500400801o03y03c03n02w04705602m05205305j0bm0400620eu0qm0q90rs0af0f2"],["Sura",400,1,0,"0h00i50gq08a02w0i108n03o10b2520840bp0df1q500a00c03c04q04104g04e02y02p00o03e03v04q08s02j03306h0dl0hk0py0ez0kr","0hq0iq0fr0mv02y0hj08e04o0xc1p207q0e80h51ox00700c03g04q04804m05902502n00804g04y06k0a803c04c08v0fv0h50pt0fr0mo","0k90k9___07m04c___07a04413q25x05w0bs___1fx00100602u04103903q03003504003m03v04904y09n02n03b0730dn0od0rt0hy0ph"],["Sura",700,1,0,"0jk0k50hu0cy02b0i008n05y16m1fs0a60fx0h81ns00800b02o05004d04p04f02y02l00l05i0650800br03i0550ce0id0hy0px0gp0mg","0j70jp0j70ph01z0hi08c06h13x17p0am0h80io1lm00600c02y05104g04w05002b02g00806406s09g0dv0490600dx0k40h70pt0gr0pm","0ml0ml___08n04n___07606k18p1fz09g0gb___1cd00100502804a03j03w03603h04d02r06b06s08p0d403q05m0d50pk0p60rs0jo0qm"],["Suranna",400,1,0,"0ig0j00hv0hf02b0i009r03u1qs1nv08c0a90ay1ph00a00902z04b04c04j04902q02a01w03h03u04d05d01b02205u0dr0hf0rs0ee0k6","0ir0ir0i90hw01z0hl0a504u1bi15t0ai0d50el1oy00900903904d04904m05302102h01804n04x05o07902503x08g0gx0h30r20gs0kq","0jv0jv___0he04m______0441x41xo07y0a7___1ik00000002r03l03n03u03e03g03o03i03e04404i05d01a0220690d80og0rs0du0px"],["Suravaram",400,1,0,"0ix0jt0ix08002y0if08j04615o1lh0ap0c20d71j900700a03904r03n04i05302k03400f04304b05809202k03406s0fb0hz0pj0h50lv","0ir0ir0hs0i502z0ij08d0541101jn07j0ej0g81j400500b03904u04704f05502g02w00604w05b06u0bb03f04f09b0hl0i00p40gs0kq","0mu0mu___07804z___03o04j16625109x0ce___1ba00000202x04c03903203p03403a04504f04p05f0bl02u03a07d0ej0pl0rt0jc0pr"],["Suwannaphum",300,1,0,"0h00hl0h008c02u0iz07k02h0u42kj05c09a0a11nm00800803p04d03o04504i03o02z00f02g02l03b06d02302e0470820ho0pp0fb0ju","0hc0hc0hc08o02w0jr07d03r0u9___0600cp0dj1nh00300b01t05703r04604g04e02k01303k03w05808g03203u06n0ef0if0py0fe0j9","0jw0jw___082041______02o0uz2m003p092___1et00000003903y03203g03602u03g04n02l02q03907l02802h04m0860nb0rs0gq0n2"],["Suwannaphum",400,1,0,"0hd0hy0h308202w0j407l03t0wt1xb05c0cp0dq1li00600a02w05003y04a04503k02y00n03t03x05j09i03103j06w0g10ij0q20g70ku","0hq0ip0hq0an02y0jg08604m0uf1kq04x0f80g41kl00500a02z04y03x04704v03c02x00804k04y07i0c103z04p0990i40j00pu0fr0ko","0l10l1___06y03h______0430x51yp04b0ct___1d500000002g04e03903l03703304403q04104505c0a803803q0780fk0oz0rs0hv0n2"],["Suwannaphum",700,1,0,"0hy0j40hy08201r0j407l05h0z01cn08k0g60hf1jl00500b02e05804504e04a03f02y00k05g05o0910dr0440540bu0ja0j40q20gs0m0","0jr0kq0ha0jx01z0jf0880620y816009i0hi0it1hm00400b02m05304404d04w03c02r00805v06i09u0eh04n05u0dr0k80j20pu0gs0mp","0mh0mh___06o02w___02w05w0zl1jt05d0gf___19r00000002104n03e03o03503a04n03105u0610a70fg04k05e0bh0oh0pz0rs0j10pd"],["Swanky and Moo Moo",400,3,0,"0km0mo___07a016___0mc03i0us0sf0lm09q___1e800a00a03v05l05405g03k01u01k00a03503k05j0b102w03904t09k0b90ji0jf0md","10e13z___0ip065___0l50530wo1go0op0ck___16w00800b03706803u06g03u02701c00604c05809e0ez03y04i07d0by0ce0jv0nl183","0kz0ke___077016___0bv03h0tw0rf0ij0aq___1c200300402b05k03v04t04x04b01g00d03703k05d0b302z03c04r09t0db0kw0jt0oh"],["Syncopate",400,0,0,"0sy0sy___05905s0fb___0330vj0rs0nm07j___0y500000003004402w03p03j02n03x04102u03403x08202m02r03o06q0jr0rs0q20v9","0qp0r8___0ap05n______04f0v8___0fr0b8___10f00000001n04w02b03g04x02x04f03904304g05q0dj03j04305l0av0kp0rs0ji0ts","0rs0rs___06506d0ge___0320vq0rs0jr07o___10500000002x04403603n03k02r03p03y02u03503t07602n02q04106l0hi0rs0n50u3"],["Syncopate",700,0,0,"0to0to___0ax06c______07v0z10rs0ij0gx___0t300000001t04q03a03w03b03705602h07n08a0di0rd06506i0bn0o20nz0rs0j00xe","0ul0ul___09i05x______0870z70m30lr0hj___0tl00000002004n03a04303u03k04s01m07v08q0f50qm06e06w0dw0nk0nv0rs0qn0xj","0st0st___09606c______07v0za0rs0j40gk___0ts00000001t04p03h03v03d03505002i07n08g0e60rd06406j0ce0od0nr0rs0o70xe"],["Syne",400,0,1,"0ig0ig0ig0960410jr08303m0rj0rs08p0bt0d11nq00400k02g05204504k04804c01y00f03i03p04l08d03c03z07b0f00gz0ml0gq0jm","0il0il0il09u03x0kc08404m0se0mm0920e90f81lp00300j02l05004604i05103p01v00d04b04n0630bt04a05509z0hh0hv0ns0hm0kk","0k90kj___0am057___06y03x0tc0rs03u0bf___1cn00200b02604g03j04303b03j03q02p03q03y04t09g03i04107a0dh0ik0rs0g70n5"],["Syne",700,0,1,"0ob0ow0ob08h0420jr08405s0y70rs0k30ds0fg1aa00400l02c05704804j04l03u02000e05j05x07q0fu04h05409z0ht0hk0nw0ml0ph","0ok0pj0ok09b03x0jm08606h0z30lu0kj0fb0gv18x00300k02i05304904j05a03f01w00806206n08x0hy04x05v0bk0j30i10os0lm0qj","0sd0sn___08j05i___06y0690xq0rs0ij0dn___0zp00200d02004n03j03z03d03i04202a05y06i08u0mj05105k0ak0k50jb0rs0n50vu"],["Syne Mono",400,4,0,"0i60i60i605404p0l308b03t0sj0f200j0c70d81bp00400802c04u03y03v04g04q01v01g03o03w0550a303j04d08k0gq0iv0qi0gz0ir","0hk0hk0il04w0450l507u04p0sb___00j0eb0fj1cc00100801h05b03704n04u04x01r01h04c04u06n0cr04g05b0b50hx0jl0px0gj0il","0jo0jo___05g04n______03y0sf0ee0000cg___1ao00000001y04603l04f03n03c03z02r03p03y0570bc03l04o09f0i40lm0rs0hy0jo"],["Syne Tactile",400,2,0,"0ha0hv0gp0ch02b0kq08n0300lr0v304i0av0cm20100a00q01y05804504b04704g02500g02n03404e06w03g0430680aq0gv0o90du0if","0ia0ia0gd0pn02w0jw0940430o30fr08k0dk0ep1rb00600n01t05304804e05304201x00g03n04b06t0a204d05808s0ep0he0o20gd0l6","0j40j4___0bn058___0cr03f0op0ry0180b6___1dy00d00l02a04a03803w03b03d03v02n03b03h04g09703p04106j0bw0i30rs0cq0ml"],["TASA Explorer",400,0,1,"0hb0hb0jm0a104m0kf07i0440v20rs0620c90d51hd00400902a04r03u04a03u04h02901s03z04604w08p03g04508o0gi0iq0rr0fk0kr","0i70i70i708n04x0kf08204v0up0my06f0e60f61h000300902e04t03w04e04r03m02g01704n04y0610cd0480540am0hq0j30rp0fq0kn","0hb0hb___0bc05s___04z0450uw0s90260cn___1d300000302304b03f03t03j03a04603504104804w09a03i04a08r0hd0ll0rs0ef0kr"],["TASA Explorer",700,0,1,"0jm0j10kr08z03h0kr07a0630wo0rz0730gd0h41gq00200a01z04x04204b04204902g01i05y06507l0ew05306c0f10l10jt0rs0g50lx","0kq0kq0kq08u02z0kl07f06n0wl0mb09g0h40j11f500200a02504v04404d04t03k02j01206b06r09f0fs05h0720g30lp0jx0rr0gs0lp","0j10j1___0br041___06c0630wa0rz0290gl___1bk00000301r04h03l03x03f03g04k02m06206907p0g405606i0f30qw0nv0rs0f00lx"],["TASA Orbiter",400,0,1,"0j10jm0j109g04m0kf07l0440vg0rs06k0cf0dm1hk00400902c04t03q04803v04c02a01w03z04604x09h03e04307u0h40j50rs0gq0kr","0jo0jo0io08o03y0ki08304w0um0mq06y0ec0fo1hg00300a02h04u03t04a04p03k02j01904p0500660cy0470540a70i30ju0rq0hp0lm","0k50kf___0a305h___04o0460wl0s50330cc___1c600000302604b03c03v03k03604503804104704w0as03f04107q0gb0m40rs0fj0mg"],["TASA Orbiter",700,0,1,"0kr0lc0k709n02w0kr0760630xb0xm08r0gc0hf1gi00200a02004x03z04a04204602j01k05y06607j0g104x0610em0kx0k70rs0ig0mi","0ko0l60ko07i02y0kh07c06m0xb0lp0bg0hg0ja1ff00200902604v04104c04s03k02o01406e06s09e0gu05d06v0fp0kw0jz0rr0ip0nn","0ll0ll___0am041___05x0640x50s704h0gf___19y00000301t04h03i03y03g03b04k02o06106a07n0ih0530610dv0q10o90rs0gp0nl"],["Tac One",400,0,0,"0lf0lf0lp08p02w0jb09c0911dg1jy08e0lx0me1h900800802o04j04e04j03y03h02f01e08y09209n0gf06a0fp0kh0s90jw0rs0dw0ml","0lq0kq0lq0ba02z0jv09d09a19c0lq07y0mi0nm1fe00600802a04k04f04k04o03b02f01709209f0ae0j906i0hc0kj0rz0k00rs0et0mp","0lf0lf___08m02w___06z09214d1iu00g0m2___1e400100302b03z03o04003d03p04902g09009309q0hr06a0ej0s90s90rs0rs0dw0n5"],["Tagesschrift",400,2,0,"0gs0i80gi0i002m0hy09d04l0y21io0ai0d50fc1pp00e00p02l05p04c04s04z01z02100b04904u0780ah03804a07y0fu0gi0oc0f20k9","0gs0ir0ft0te02z0hj09e0590wc1a508p0f50i01nw00c00q02z05k04f05105602001g00504x05p08k0c60410580a70h00g60nx0et0jr","0ku0lz___0dp042___0990530xl1p909x0dn___1cr00800j02504s03c03p03403304102w04p05b0890cd03r04r08w0gg0mm0ru0hx0qm"],["Tai Heritage Pro",400,1,0,"0hx0hx0h209a02w0ip08r03r16t1yv0990ah0ce1kq00b00803404c04104b04503602602003l04004p06s01t02y05x0dx0hz0rs0fm0le","0hs0hs0hs0f202z0j808i04r1250g605s0dk0f01kd00500b01q05204204c05203402c01o04h04y05z08z02s04b08l0hg0io0rr0ft0lq","0no0no___07j04m___02u0471gx27c0af0a7___1cc00000002v03k03f03t03e03d03n03s03n04904y07101u02o0650cq0nv0rs0hx0r5"],["Tai Heritage Pro",700,1,0,"0i70is0i709c02y0jd08x0611sk1840ap0ds0fp1gv00800a02n04c04d04004s03402b01s05906206z08y02304g0bj0jj0jd0rs0gf0l4","0in0in0ho08m02y0jg09806l1ga1180780g00i01ft00800a02q04904604i04p03902c01e06206o07v0aw03005m0e20kr0j30rr0gp0km","0mb0mb___08s04p___07h06p26s1nf0do0d5___19z00100202g03q03s03f04303603v03804u06q07h09g01y03m0ak0nn0pf0rs0gf0tc"],["Tajawal",300,0,0,"0gr0gr0gr05y05i0k808902q0sw0rs03h08z09v1l600800702z04803v04503s04f01w02302k02t03a05a02f02s04w0am0hy0ra0g70j3","0gd0gu0gd07t03v0ju07d03w0s9___03a0cs0dh1mx00300a01o04u03y04b04m04802601p03m04104w09i03e04708l0f60id0qv0fe0ia","0gr0hc___05w06d___06g02t0t00rs000093___1ga00000302k03t03i03r03m03903g03s02q02y03905802h02y05i0bi0jt0rs0fm0k8"],["Tajawal",400,0,0,"0hc0hc0hc08o0570k808703k0um0rs0350b20bs1j100700802k04k03z04803v04a02401t03c03m04707f03103j0710fe0ij0rf0fm0hx","0hc0hc0hc08304t0js07d04e0th___03a0dw0eo1kn00200a01f05004104d04t04202801k04604i05m0b203w04n0a30he0if0qx0ff0ib","0hc0hc___0ab05s___06q03n0up0rs0000bf___1en00000302704303i03v03n03b03u03b03k03s04807f03203r07w0g50l00rs0dv0k8"],["Tajawal",700,0,0,"0j30j30jn07k0420k80870610y50rs06f0g90gw1fk00500a02104v04604f04903t02i01d05u06407o0f104v0660f20ne0j90rr0hc0k8","0ja0ja0ja0790420k108f06n0xi0n406j0hd0je1d500400b02804w04b03e05303t02j01506c06u0a40fq05d0730gj0nj0jj0rm0h90ka","0j30j3___09404n___0710650wu0rs01c0ga___19j00100301r04c03l03z03k03h04f02l06006907u0g604y06i0fg0rs0nt0rs0fm0lz"],["Tangerine",400,3,0,"0cq12s0af1ca01g0nb09u01r0s8___0et05l06v1oq00p00s04u06206402o01q02002e00j01h01t02903i01e01q02t05b0990nf0990nq","0ip0ql0xh0gr03y09t09a0400w10su0bx0bz0k025g00h00w03s06p06g02u02102d02000a03503x06209502w03q06x09u0a60nx0fr0xh","0ob0ol___0f102b___07q0200t922h0bn05j___1nn00d00i03s04b03g03g02702q03g03l01o02102k03y01i01x02v0580dw0rb0ij0zb"],["Tangerine",700,3,0,"0fc0cq___0qh01r___09u02e0y8___0ho06r___26000p00t04k06c06802o01q01z02b00j01s02e02w04501g01z03j06n0990nf0990u3","0iq0sl0i90fz02z09q09904c0yj0oj0cc0c90ka25m00f00w03r06t06m02t02102b01y00903h04a06309202s03w07i0a60a40nx0bu0rm","0q20q2___0es02b___08402o0yy1lf0fv06j___1l800c00i03h04f03m03j02c02t03k03902102q03c04r01m02603i06y0dx0rb0j4111"],["Tapestry",400,3,0,"0le0nq0ii10402b0k909b04l1i529b0ax0ae0b71sk00c00c03104h04304a03q04c01o01j03704q05f07j01h02x06d0ei0jo0rr0ii12r","0jq0lp0i913302z0jn09c05q1b317y0aj0du0g81hx00a00e03904i04604g04m03i01u00u05505z0780a402l04d09c0i50j10r10ir0no","0r20t30kn0w603i0lq0bd04m1ju3w60fr0a10aj1a900500603a04303g03103o03g02y03m03m04q05u08401e02v05u0c50mx0rt0ky1nb"],["Taprom",400,2,0,"0uy0u3___0he06d___0db03p0qh0tt0fv0bp___26t00g00h02705v05204f02802o03101f03903t04t06z03304706u09k0c50qm0f216t","0wk0w3___0no06p___0d104y0ra0ce0j80e7___1pt00f00h02005l05304e02n02k02v01s04f05507r0br04c06909v0ck0cj0qt0h81lg","0r30r3___0k601s___04q03o0p524c0dw0bi___1w000000702004e03k03a03s03f04u02c03b03t04p07603704c06x09e0me0rd0eq14m"],["Tauri",400,0,0,"0f90fu0f908v0440ib08c04b0v90rs0120eg0fp1qe00600a02e04z04m04505e02i02v00h04804d0540a003l04o0ba0ik0ho0pt0di0gf","0gu0gu0ft07s0480iq08u0580ux0zq0250gu0ie1m100500b02p05603m05205i02802u00805305b07j0cq04k05u0df0j70i80pi0er0hw","0hb0hb___09c057______04o0vf0rs0000ev___1ga00000001u04a03k03z03m03h04a02s04m04q05c0b803y05a0ct0oy0nc0rs0da0ih"],["Taviraj",300,1,0,"0j10j10j108u02w0il08t03918p21q09m0980af1lh00400903c04903v04804303f02202603503b03n05e01q02904l0av0hv0rs0fk0lc","0ir0ir0ir0b702z0ij09904d11w1de08v0cn0ed1l800300903d04d03z04g05b02402n01a04604i05a08502r03l07c0fp0hx0r10gs0kq","0kr0kr___0a304m___05s03b1ah2de06c098___1fo00000403303k03b03m03d03703j04203803c03m05d01q02504x0a30ob0rs0g50os"],["Taviraj",400,1,0,"0k60k60k608i02l0il08t0431dc1tf0a50aj0bu1jd00400903504b04104b04603b02602103z04604i06v01x02n05u0eo0hv0rs0gq0mh","0jr0jr0jr0g702z0ii09604x15o1cp09g0df0f31jf00400903a04g04104i05902302p01504r05105v08s02t03y0890gz0hx0r10hs0kr","0lc0lc___09w04m___06c0461gw21g07b0ai___1e700000402u03n03g03o03c03a03n03t04004704h06v01x02j06b0d80ou0rs0hb0py"],["Taviraj",700,1,0,"0nn0nd0nn0b802b0il08u07e1tv1eo0fv0eu0g81cb00500902k04p04904h04a03302c01q07507j0880d202t04t0c90ju0i40rs0kr0r4","0mz0nh0m00n702y0j809a07z1kw15o0gf0g00hx1as00400902q04n04304d04v02w02d01i07p08409c0et03j05p0e70lo0i00rq0li0rd","0ot0ot___0a9041___07i07m1yp1gj0cv0ez___18o00100302704103n03u03a03k03x03707307n0850ds02t04m0c00ql0q00rs0kr0tz"],["Teachers",400,0,1,"0gi0gs0gi07503h0g70990340qm0r308c0ax0d51rf00b00902l05d04j05g04c02302q00602x03604007n02x03h05s0bm0eq0ol0dw0hd","0hc0hc0hc0cm0320g509m04g0rt0m808v0dq0gl1nk00800b02w05g04w04g04u02c02b00404304g0660c004404t08x0e60es0oo0ea0id","0i60ig___0c5041______03e0ro0rs0410aw___1eg00000002404b03d04303g03903x03c03703e04708203503o0610bw0jw0rs0d90kr"],["Teachers",700,0,1,"0ij0ij0it09a03h0g70990660wg0rs0b40gk0ij1ic00900c02505k04w05q03t02m02d00605t0680880fe04x06f0e70l00fs0p30gs0jo","0if0if0jg0ce0330g109p06s0wu0km0af0i30k31d200800d02i05n05404i04j02u01z00506f0700bb0g505h0790ez0kx0fo0oo0he0kh","0kr0kr___09w036______06r0vr0rs0500gy___16x00000001m04h03r04203f03k04m02c06e06w0a00hf05u07d0fj0qm0mq0rs0hb0n2"],["Teko",300,0,1,"0az0az0az07n02w0jp06e0370v92af00j0gj0h52k800200a03804j04904m03q04902m00903703803d06002u0420fl0nc0jt0po0af0bk","0c70c70c70fb0210k106i04a0ql1gz02q0is0kz2fg00000a02j04y04g03k04r04902i00k04004b05e0ab04d07g0ha0mt0ke0qg0b60d8","0c40c4___06l0410fb___03f0vr2as0000g7___28l00000002r03r03o03y03903i03w03103e03f03j06502z0420ez0s50ql0rs0ay0cp"],["Teko",400,0,1,"0c40c40co08103b0jv06a0430xg2310120i90iz2bc00000a03m04b04304c04a03y02h00i04204404c0a803e06d0j40pw0k10pz0bk0co","0ct0ds0ct0e902y0l606d04w0t31au02h0jv0ku26i00000a02b04p04b04j04k04002h00m04r04y0650bh04o08m0jc0od0kq0qo0bt0ds","0cx0cx___08e044___04m04e0xu23u0000i8___20h00000102l04103q03g03x03404502t04d04f04n0b303m07g0k40sa0qt0rs0b60e3"],["Teko",700,0,1,"0ij0it0i806c02w0kv06d07q1130rs0250lr0nj1jb00100a02e04l04704c03v04e02f01d07p07x0am0hr05u0e00m00s70lf0rs0hy0jo","0hw0iw0hw0lb0200le06d0800yj0md04n0m40mu1ei00000802404k04c04f04m04601u01k07u0860ea0hg06u0fn0ll0r50l30rs0hw0jv","0j40j4___07402w___03j07x1200rs0210m1___1e200000102604603r04003c03o04d02a07x07y0b50i505t0d90rt0s70r70rs0hy0ku"],["Tektur",400,2,1,"0k90ku0jo08n0420lk06d03x0us32g04n0cz0da1e200200a03g04303d04803b04n02k01u03x03x0430h703j03j0740kn0lh0rs0ij0lf","0kb0lc0kb06m0320m006g04p0ty2c80810ey0fw1ew00000a02s04o03l03a04404n03301f04o04q05c0hg04d04f0a20ky0ln0rp0jb0md","0kq0kq___08y04m0fw03k03w0uq3jc0000cw___1bu00000103a03q03604103b02u03x03i03w03x0430hf03i03j0730nz0ox0rs0g50lw"],["Tektur",700,2,1,"0lf0ma0ku0650370lj06d0710wz0rs09m0jh0ka1ao00100a02j04s03m04903r04b02w01d0710720ds0ka05x06e0jq0rp0m40rs0k90ml","0ln0mm0ko06802y0m906b07h0xh0lw0a00jx0kf19z00000902604p03n04804f04903001607707l0e90k006706z0ji0py0lx0rs0ko0nm","0m70m7___06w03g___03x0710vv0rs01x0ji___16v00000102b04f03d04103c03604p02g0700780ct0kd05x06e0la0s70q50rs0k60nm"],["Telex",400,0,0,"0h10hb0gr08i0410j209203w0vw0rs0440cf0e31lq00600902g05204804m04e03b02t00j03s03y04o09t03803t08s0gu0hw0pz0fl0hw","0hr0hr0gs07k03y0jh09c04n0tv0n902q0ei0gd1l400500902m04y04604i05103802t00504g04q0650cn04504x0au0ia0i50pt0fs0ir","0ii0ii___09s04x___0880470vv0rs0000ce___1di00100302304c03f03u03k03904a02y04104804z0al03i04508w0ip0lk0rs0eh0lz"],["Tenali Ramakrishna",400,0,0,"0j30j30j309204n0k807q0450z50y708e0bq0cj1gr00500a02h04p04204c03y04a02001n04004b04w07702s03v07k0h70hz0re0gs0k8","0j90j90j908g0420k408d0580y50r508k0ed0g11fq00400b02m04v04503a04t04602901a04y05d06d0b903x0540au0jf0ii0qs0h80ka","0hx0hx___0c904n______0450zc0yg03j0bm___1d200000002704803m04003i03g03r03204004b04u06u02q03x07h0gv0is0rs0db0mk"],["Tenor Sans",400,0,0,"0ig0ig0ir09204m0jt09t03w1420rs07v0b30ba1fz00a00702m04e04604e03x04202001s03o03w04c05z02b0360680fn0hw0r90gq0k6","0hd0hu0hd08z04u0jr09804p10o___06y0dj0e61i900700901e04t04604g04p04002901l04f04p05e08003404708m0gz0i80q60ge0k9","0j10j1___0aa062______03y15v0rs05k09v___18z00000002g03x03m03s03n03g03l03d03s03y04g05y02c0330670dd0in0rs0hv0o8"],["Text Me One",400,0,0,"0eg0g60eg0730570j90af02c0ot0rs01708w0ac1nh00c00803h04703q04603s03r02402202a02d02w04q02c02r04m0c00ho0ra0dv0gr","0et0gs0eb0aq03y0ji0a503o0oq0ll02a0cw0ex1o900a00902l04p03w04f04z03202p00z03e03s04q09503s04j0890gk0i30qv0du0gs","0hc0hn___05404x______02e0pm0rs00008q___1iz00000003803m03803w03d03603o03o02c02g02x04m02c02r04y08s0ki0rs0f10j3"],["Texturina",300,1,1,"0g70ij0fc08l03h0gv07j0370wn21506i0bf0dc1r600600k03u04s04b04n04z02302700a03503f04a08602e02w05h0dk0g70ob0dw0j4","0fu0hu0ev08c02z0hj07d0480u31bv04u0ew0gu1sw00200i03a05b04a04o05p02501p00604104g05w0a003g04a08c0g50h10nx0cv0hu","0l30l3___07005a___08703x11i23203o0bb___1ez00200b03104403b03403p03i02z03p03q03y04j09502i03306x0ep0oa0rs0gz0o0"],["Texturina",400,1,1,"0gs0j40f208s0370gu07j03k0ya1xn07v0c00dq1qd00600k03m04w04d04q04x02302700a03j03u04w08r02k03406b0eh0g70oc0dw0jo","0gc0hu0fv08c02z0hj07d04g0us17z05g0f60hd1ro00200h03605b04d04q05n02701q00604c04q06a0ao03j04f0930gx0h10ny0dv0hu","0m90mu___06t05k___08704f13r2190860c3___1d900200a02v04903c03503n03j03003o04504g0570ab02o03b07r0gx0os0rs0jc0p6"],["Texturina",700,1,1,"0hy0jo0g708102b0gu07j05615x1ft0b80ei0gt1p400500j03605604m05004o02502500905005a06o0b902y0420a10h90gb0oj0f20ku","0hd0hv0fw07q0200hi07e05r11n0w70790gi0j41q200100i02v05e04n05005g02a01e00a05g05x07e0cl03w0550cm0i60h30o00ew0jv","0ob0ol___06l04p___0870621b91ne08w0el___1b200200a02i04e03j03803q03o03703805p0630770cx0340490a80o00pd0rs0lo0qy"],["Thasadith",400,0,0,"0gs0hd0fn06v0420jx05s01x0rt0qi01t06r07x1sf00000b03504303t04a03x04c01y02101u01y02a03h01m02003d05r0hj0qq0eh0hy","0hb0hs0fe0b602w0ju05i03d0rn___02j0b80cv1tl00000801l04t03s04d04n04c02401y03603g04807302w03q06r0do0i90qs0fe0j8","0hy0hy___06h058______01y0se0ql00006c___1ki00000003003h03a03u03n03603k03v01v01z02903a01m01y03k05o0i20rs0g70k9"],["Thasadith",700,0,0,"0hd0i80h30930420k908403r0t60p901k0c10d11nc00600902b04r03z04e03y04302e01j03l03s04j07y03a03x07y0gl0ik0rb0f20j4","0i70j70g60d30420k408d04p0tk0jq02d0e80gc1ll00400a02f04r04403c04w04102d01i04g04t0630bz0480510al0ia0jg0rl0g60k7","0ig0ig___0al04m______03y0uj0p601t0c3___1g100000002104803e03y03k03904203b03s03y04l09m03c0420830hb0ll0rv0d90k6"],["The Girl Next Door",400,3,0,"0ej0si___0ff015___0hi02b0t40pn06y067___1v800d00b02n06b04r05r05501r00p00402002b02w04z01v02a03z0950a70hz0d40jy","0t00ze___0iw01h___0m203u0td0yh0jg0a5___1o900d00a03206c05405w04q01h00i00203903x05t08s03404007e0cx0b90i00jo12c","0gr0j3___0cj01q______02q0vl0om03h07t___1gw00000002t04n04104z03i04102t01102b02o03705d02202i04l0aa0cx0od0eg0kt"],["The Nautigal",400,3,0,"0p60r7___0eu02w___0d002a0u5___0ij07b___2f500k00p03404o04z04c02j03702p01101p02e03404801i02403j04w0c50ow0hd0un","0zp0xp___0u304y___0br04d0u5___0ob0bg___1oj00j00n02d05605904l03503102j00l03s04w07a0ao03304g07f0a50cz0ot0xp321","0y20y2___0ig042___07l0270td___0p506s___1pp00300h02h03c03a04i03b04804s01e01x02l03e05301j02303c04r0k90pz0r51ng"],["The Nautigal",700,3,0,"0uo0sx___0nd04n___0dk0330tu1f50lm093___29a00k00p02z04t05204902l03902q00x02c03904b06102202w04n06k0cw0p00sc168","0qw0qf___16v04t___0d004t0v5___0go0co___1in00j00n02605105104k03203302k01604305f0880ci03c04w0860ao0dm0ps0ha14c","0sx0qn___0kv02u___07g02v0tb___0kb097___1n500300f01u03j03804e03z04c04q01a02h03h04k06n02102q04d0650kl0q30oe149"],["Tienne",400,1,0,"0it0je0ij08402w0ij08p04515x1lo09m0bv0d21jg00700a03704p04504f04b03303300d04204905408v02i03206u0fa0hy0ph0gs0m0","0jm0jm0in0d002y0jf08d04w11g1o107y0e50fk1if00500a03704i04004904u03f02y00904s05506o0as03904708z0hr0iz0ps0go0ll","0mi0mi___07604m___03o04i16d25408x0cb___1bn00000202v04a03803l03303204403j04d04m05d0bg02t03807d0eg0ph0rs0ig0pd"],["Tienne",700,1,0,"0m00ml0lp07m02w0jo08x06e1g81ci0d30et0fx1c800800902j04q04304903w03s02f01o06b06i07s0cc03804j0bm0k10je0rh0jo0ow","0lf0lf0lf0ib0320k208r06x1ad14w0bu0g60hs1bg00600a02s04s04603904o03s02l01e06t0740950dx03x05b0dg0l30jn0rq0je0oh","0ok0ok___08804z___04b06k1gx1n50cl0f9___18g00000202e04b03i03503r03d03k03r06e06p07u0dz03c04e0bk0or0qd0s30l20ri"],["TikTok Sans",300,0,1,"0ij0j40hy06b0580ki0840320rk0rs03e09v0b11js00500802m04n03o04703s04i02401x02y03503s05x02r03b05i0bp0ij0rh0g70jo","0ia0ia0hc08203v0kl07d0420rj___0370cp0dr1li00200901g05103s04604h04g02a01v03u04405309r03n04j08a0fe0j60qz0gd0j9","0jn0jn___06c05s______0340s60rs00009s___1fb00000002h04503c03q03m03403w03j02z03603p05y02r03a05o0bc0jt0rs0g60ly"],["TikTok Sans",400,0,1,"0ij0j40ij09i04n0ku08403t0tw0rs04k0bn0cz1j000400902d04s03t04603r04h02b01r03n03w04n08503b03z07h0fw0j40rs0g70k9","0ir0jq0hr07y03y0kj08704m0sy0nc05c0dq0fm1j400400902i04u03y04b04q03m02i01204f04p05y0bp04405109w0h70j40r10gs0jq","0jy0k8___0aa057______03w0ub0rs01b0bp___1e900000002704b03f03r03k03704803503s03y04n09703c04207l0fu0lj0rs0eg0le"],["TikTok Sans",700,0,1,"0k90ku0k908g0420kw0840690x90rs0830gb0hk1f800400901z04v04104d03y04a02j01h06206b07q0f004y06e0f30ll0k90rs0hd0lf","0js0ks0js06r03z0km08806m0wo0mh0930h50j71d100300902504u04604f04r03m02l00x06e06r09m0g005f0750g10ld0jz0r30ht0ls","0le0le___098057______06b0wz0rs04c0g9___18s00000001s04g03m03z03g03g04m02i06906h0860h105806q0el0r40nx0rs0fm0np"],["Tillana",400,2,0,"0gh0gh0ep0dc01s0i909z0310q111b05t0a30bh1we00d00e02u05204c04305e02b02u00802u03703r05a02q03i05w0bj0fl0oq0e40i8","0gt0gt0ec0p701z0ie09h0480q90nf0750dc0ez1tn00800e02a05804d04t05902m02h00603v04c05e09403w05108r0ez0gw0os0du0sn","0hu0hu___09h036______03f0r710r00y0a1___1jj00000002b04703e03z03303804303j03303i04305r02x03y06n0cj0il0rs0ee0kp"],["Tillana",700,2,0,"0jo0jo0j40e901r0hy0am06e1120yy0as0fm0gr1k500d00e02a05d04l05304e02v02b00805t06k07f0aj0490680bl0ig0gs0og0hy0ku","0iw0iw0iw0mw0220i10am06w0zo0k60d80hf0iy1gg00a00f02105j04v03z05d03002500706a07008j0dx0500720do0it0gm0ok0hd0kf","0ml0ml___09q02b______07912t0xv03b0fn___1aa00000001s04e03s04003603m04o02f06i07b0890ca04r0750cs0mw0nq0rs0j40ow"],["Tilt Neon",400,2,0,"0hh0gw0hh07s03i0io06h0420s10q707c0cx0e11oh00100b02905804c04205i03102i00k03p0420560al03r04c08h0go0hk0p70fq0im","0ia0ia0ja08p0320k006n0530td0l807s0es0g11k100000b02e04z04a03h05803r02l00u04l0550740dg04o05g0b10j20il0ql0g90kb","0h00h0___0a104m______0490s20q300t0cl___1ex00000001s04i03h04103k03804d02u03z04a05e0ba04004k08q0hz0l10rs0cp0lc"],["Tilt Prism",400,2,0,"0lf0ku0lf0lk02b0n502w0150nq6fj0ai0a70av4f800000002h04l03r04103b04904501901101701n03001201d02d03o0mt0rd0ij0nq","14g14g___0im02h0mg04q04x0lb0d90g10hv___1ls00000101r04j04404504404f03s00y0470750cc0gq06607s0ga0md0mt0qu0jq1w2","0l40l4___0ek03h___02t0160oe6qi06o0ad___41w00000002c04803h03n03a03504m03301101701k02u01201d02c03p0p30rs0hy0ow"],["Tilt Warp",400,2,0,"0jd0j30jo09m02w0jt06e06w0ud0rs0a00jf0kc1ff00000901z05104h04p04g03v02j00i06m0740c00h206a07y0hy0oy0jo0q10g70ku","0in0jn0in0gv02y0jx06c07d0vn0ld0az0jx0lf1bx00000902504x04h04r05303j02f00807107u0de0hj06h09u0il0o50js0pt0fp0ml","0lc0lc___0bd04m___02b07k0uq0rs0660jk___16l00000001l04903w04203i03m04l02b07e07w0d70i806t0920lf0rs0oy0rs0ig0o8"],["Timmana",400,0,0,"0hd0hd0h305n01r0jb08u05i0xr0sc02q0g30hv1o300900b02805304i04v04c03p02a00805e05k06f0ca04e06t0en0jt0i70ow0fn0hy","0gt0hs0ft0bd01z0jg0980630x70s602y0hy0ja1ka00800c02e05104l04x05303b01s00505u06408a0de05108e0fz0k70i60o50et0hs","0jo0jo___06502w___05s0670y10tj01j0gw___1c000000301r04b03o04403j03k04e02e06306907g0ea0510800fz0p30mn0rs0fn0lf"],["Tinos",400,1,0,"0hy0ij0hy08m02w0jo08x03y1b11wn0930ar0cr1js00900803a04403y04903p03v02402403q04004k07r02102q06d0f80it0rs0g70ku","0ib0iu0ib0d30320k109e04x13s1lw07j0dz0fg1j500800903a04a04403c04q03k02i01j04o0520610a503104709b0ih0in0rq0hb0of","0m00m0___08304x______0491g825e09q0at___1c500000003103l03e03u03903903m03v03v04a04s08e02102l06o0dl0oh0rs0gs0qm"],["Tinos",700,1,0,"0it0jo0hy08y02b0jo0990681qu1b20b80e90h11gt00900902n04d04704h03w03n02a01v05z0690700ai02j04l0c30jw0j90rs0gs0m0","0if0if0hi0pt02r0i908q06e1f216e0bd0fq0ir1j300800902r04c05804f04m02l02k00v06606i07i0bk0320590df0kj0ii0q00gl0ny","0ph0ph___07b04n___06p06r1yz1kn0e50dr___19h00000202f03v03k03y03b03h03u03b05v06s07b0bx02i03r0an0oh0pi0rs0hy0sy"],["Tiny5",400,0,0,"0dx04n0dx0800420ii04q04x0rt0rs01m0ng0gz1l200000802c05204w05005b03l01c00204w04x05709i04w04x09r0im0ij0n50dx0ik","0e10610e107l0400jt05b05r0r30m801m0ly0id1j300000602e05d04m05f04704g01600205e05r08w0bf05v06h0ee0k80je0na0e10i2","0ly0ly___0580570mg___05t0rq0rs01h0fi___16200000001r04403b04603q03l04i02n05t05t0660gs05u05u0bb0n60ma0rs0gr0mj"],["Tiro Bangla",400,1,0,"0ih0k80ih0rz02w0ih09j0491ay1si08s0bc0cs1m400c00h03804f04704g04d02z02901404304f05208901z03306j0f80hk0qk0fl0ld","0in0jm0i50t902y0ik0a105515g1f308i0dq0fs1kf00c00h03904f04504f05402m02900v04x05c06i09y02w04d08v0hn0hv0qv0go0lk","0mi0mi___0kx05s___09804o1ht22809w0bi___1dr00400b02w03o03g03p03703c03o03h04a04p05a08c02002z06t0ef0o90rs0hw0rp"],["Tiro Devanagari Hindi",400,1,0,"0ih0k80ih0rz02w0ih09j0491ay1si08s0bc0cs1m400c00h03804f04704g04d02z02901404304f05208901z03306j0f80hk0qk0fl0ld","0in0jm0i50t902y0ik0a105515g1f308i0dq0fs1kf00c00h03904f04504f05402m02900v04x05c06i09y02w04d08v0hn0hv0qv0go0lk","0mi0mi___0kx05s___09804o1ht22809w0bi___1dr00400b02w03o03g03p03703c03o03h04a04p05a08c02002z06t0ef0o90rs0hw0rp"],["Tiro Devanagari Marathi",400,1,0,"0ii0k80hc0qc02w0ii09j0491az1sb08s0bf0cn1m100b00h03804f04604g04d03002901404304f05208a01z03206k0fe0hl0ql0fm0lz","0j40k30im0ou02y0il0a105515u1go0at0e00fv1ke00c00h03904f04404f05402m02800v04v05a06f0a102u04b08u0hn0hw0qu0hn0qh","0mi0mi___0kx05s___09804o1ht22809w0bi___1dr00400b02w03o03g03p03703c03o03h04a04p05a08c02002z06t0ef0o90rs0hw0rp"],["Tiro Devanagari Sanskrit",400,1,0,"0ih0k80ih0rz02w0ih09j0491ay1si08s0bc0cs1m400c00h03804f04704g04d02z02901404304f05208901z03306j0f80hk0qk0fl0ld","0in0jm0i50t902y0ik0a105515g1f308i0dq0fs1kf00c00h03904f04504f05402m02900v04x05c06i09y02w04d08v0hn0hv0qv0go0lk","0mi0mi___0kx05s___09804o1ht22809w0bi___1dr00400b02w03o03g03p03703c03o03h04a04p05a08c02002z06t0ef0o90rs0hw0rp"],["Tiro Gurmukhi",400,1,0,"0ih0k80ih0rz02w0ih09j0491ay1si08s0bc0cs1m400c00h03804f04704g04d02z02901404304f05208901z03306j0f80hk0qk0fl0ld","0in0jm0i50t902y0ik0a105515g1f308i0dq0fs1kf00c00h03904f04504f05402m02900v04x05c06i09y02w04d08v0hn0hv0qv0go0lk","0mi0mi___0kx05s___09804o1ht22809w0bi___1dr00400b02w03o03g03p03703c03o03h04a04p05a08c02002z06t0ef0o90rs0hw0rp"],["Tiro Kannada",400,1,0,"0ih0k80ih0rz02w0ih09j0491ay1si08s0bc0cs1m400c00h03804f04704g04d02z02901404304f05208901z03306j0f80hk0qk0fl0ld","0in0jm0i50t902y0ik0a105515g1f308i0dq0fs1kf00c00h03904f04504f05402m02900v04x05c06i09y02w04d08v0hn0hv0qv0go0lk","0mi0mi___0kx05s___09804o1ht22809w0bi___1dr00400b02w03o03g03p03703c03o03h04a04p05a08c02002z06t0ef0o90rs0hw0rp"],["Tiro Tamil",400,1,0,"0ih0k80ih0rz02w0ih09j0491ay1si08s0bc0cs1m400c00h03804f04704g04d02z02901404304f05208901z03306j0f80hk0qk0fl0ld","0in0jm0i50t902y0ik0a105515g1f308i0dq0fs1kf00c00h03904f04504f05402m02900v04x05c06i09y02w04d08v0hn0hv0qv0go0lk","0mi0mi___0kx05s___09804o1ht22809w0bi___1dr00400b02w03o03g03p03703c03o03h04a04p05a08c02002z06t0ef0o90rs0hw0rp"],["Tiro Telugu",400,1,0,"0ih0k80ih0rz02w0ih09j0491ay1si08s0bc0cs1m400c00h03804f04704g04d02z02901404304f05208901z03306j0f80hk0qk0fl0ld","0in0jm0i50t902y0ik0a105515g1f308i0dq0fs1kf00c00h03904f04504f05402m02900v04x05c06i09y02w04d08v0hn0hv0qv0go0lk","0mi0mi___0kx05s___09804o1ht22809w0bi___1dr00400b02w03o03g03p03703c03o03h04a04p05a08c02002z06t0ef0o90rs0hw0rp"],["Tirra",400,0,0,"0fn0fn0fn06x04n0iq08g03b0tu0rs03c0bc0cn1ow00800a02s04w04904p04e03a02u00803903c03y07102u03d06l0ec0h30ow0eh0hd","0gh0gh0gh0770440j207z04j0tv___01m0ej0gd1lz00300c01k05h03a05005h03k02v00704a04l05w0b303u04q09u0gm0hn0pl0fg0hi","0hy0hy___0a0058______03m0u10rs0000bt___1f600000002704a03d03y03n03904403103k03n04707x03403s0770gg0kh0rs0dw0jo"],["Tirra",700,0,0,"0gs0hd0gs0700420j908b04n0vo0rs04a0er0fy1lj00600a02d05404c04r04e03g02q00904l04o05o0bc03w04r0ap0jc0i20p00g70ij","0gq0hp0gq07903y0jg08b05f0we0rs03t0gb0hs1ip00500b02h04w04b04q04z03a02j00605505h07d0cw04i05i0cv0jp0i50pp0fq0ip","0ij0ij___09904n______04z0vb0rs0000ex___1c300000001v04g03h04203k03c04l02h04x0510610dv0480580bi0nm0mm0rs0f20ku"],["Titan One",400,2,0,"0lv0lv0lv05301q0kr05h09z13q0re0ef0m40lz1ae00000901s04r04o04r04804l02e00f09y0a90f40jq07k0ft0lg0pl0kp0pw0jk0nl","0lp0m70lp0g001z0ld0680ag1450jl0f60mk0mt11000000802104m04n04p04u04e0270070a90c60jg0lb08p0iw0mp0pt0kz0ps0jq0oo","0ou0ou___05h02w___0580b612j0rb0c40mx___12100000201f04204404303g04504d0250b40bj0iz0mo08m0hk0r80rt0qn0ru0le0q0"],["Titillium Web",300,0,0,"0gs0hd0g705n04n0ju09a02t0tr0rs01609f0ba1n800800803204c03v04b03l04c02a01m02r02v03806g02i02r05b0cf0ir0qb0fn0ij","0gt0hs0ft08t03y0k908q0400tb0wm0280da0ez1o200400901q05003v04e04m04402i01903q04304v0au03j04708x0gq0ix0qm0et0is","0ij0it___05d05s0f803h02v0ub0rs00009d___1hi00000102o03w03b04503b03303y03g02s02v03805n02k02s05l0bo0l20rs0gs0jo"],["Titillium Web",400,0,0,"0gs0h30gi09104n0ju09903e0ua0rs0110bk0d61me00800802q04l03w04e03q04602g01f03c03g03x09d03003c07f0g70j40qm0f20ij","0gv0gv0gv08o03z0kb08n04b0t1___01l0ef0fv1mz00300901g05503z04h04q03z01u01v04704d05d0c803x04l0a70hy0jq0qp0ew0iv","0hn0hy___0a30580fx03h03g0up0ry0000bg___1h500000102d04503d04503d03504c02y03d03h03w08q03103c07e0gg0m70rs0cq0jo"],["Titillium Web",700,0,0,"0hv0hv0hv08a0410kf09805w0vk0rs01j0h30iy1hh00700902504w03z04c04104002k01f05r05y08a0g60560680gx0p20k90re0fk0jm","0hr0iq0hr07d03y0ki09c06c0v60l403r0i30kb1fn00500902a04x04404e04s03d02o00x06606i0b00fx05k0760ha0nq0k00r00hr0kp","0ir0ir___08m04m___04m05x0vk0rs0000hd___1bj00000101u04h03i04203f03c04m02k05w06207v0h50570690h10rp0pf0rs0ef0kr"],["Tomorrow",300,0,0,"0ha0j00gp06705r0j207o02h0t50rs02a08q0a71k600500704603p03o04203v03z01t02902g02j03205502a02e0420bu0hv0rs0gp0jl","0h60i40h608104s0jm07x03o0vy0ns0250br0dp1lf00300803004d03l04204m03t02q01b03g03q04i09z03303i0700fv0ig0r10g80j3","0jl0jl___05k06c0f3___02i0tm0rs00008y___1fz00000004003803303r03h02t03404c02i02j02x03x02b02d04f0a70ja0rs0ha0k6"],["Tomorrow",400,0,0,"0hv0ig0hl09a0570j307o03s0tx27f0520ck0du1ic00500803c04f03s04604703i02c01s03p03t04t0b103d03n07w0i10ig0rs0gq0kr","0i70j50h908903u0iz07z04g0to1or03o0el0ge1j300300802n04u03r04304w03602d01t04c04j0600dv03w04i0a60ih0j60r20ga0k4","0k60k6___0920570gk___03t0u133c0000co___1e000000003104203603v03g02y04203903s03u04h0f003g03k07z0n10nr0rs0g50lb"],["Tomorrow",700,0,0,"0ll0mg0l00730410j307n07f1050rs0b80jd0km1b200400b02n04x04204d04603802n01d07f07h0aq0k405n0760jo0rk0jm0rs0k50o6","0ln0mn0ko09402y0jd07j07r1080m50bz0jw0lc19x00200b02a05104304c04t03302o01607k0800df0k205w0820iy0qe0jr0rs0ko0nm","0o70o7___054041______07g0yr0rs05d0jn___15x00000002c04i03f03y03b03904l02h07f07j0c80ls05s06y0m60sd0q60rs0mh0os"],["Tourney",300,2,1,"0ij0hz0jm06403t0j908601h0ro2hl09m0ae0at2ym00900b04904303q03x04f03x02300t01g01i01x03y01g01i02c0680js0pp0gw0jm","0jn0jn0jn0e201z0jl0860370rk0yg0dl0i50jc2dk00500b02v04n04e04i04m03x02900702r03w06f0c502q03j0740di0jy0pv0io0kn","0kb0kb___07l044______01l0rp2iy0000ai___2nd00000003g03o03h03d03p02v04a03101k01l01w02l01k01m02i07q0q60rs0h30ls"],["Tourney",400,2,1,"0ij0hy0jo06203h0j608401t0rj2f409m0ci0d12yr00800b03h04m03x04704204602l00901s01t02g05m01r01u02v08l0jr0pp0gs0jo","0jn0jn0jn0e102y0jl0850630sf0s90dl0jd0kp1mk00400c02f05604804f04z03l02f00605t06b0cl0g905v0740gu0l40jx0pw0in0km","0kb0kb___07l044______01x0ru2gl0000cl___2oj00000003003z03g03e03r02v04403a01w01x02905q01w01y0300a30q60rs0h30ls"],["Tourney",700,2,1,"0ij0hy0jo06203h0j608405g0rr0sm09m0iy0jh1fe00600c02r05c04204g04b03o02l00705f05l0co0hf05f05u0fy0nh0jr0pp0gs0jo","0j30i40j304f03t0jp08205y0rt0ln0ap0jp0kt1dr00400c02805503x04a04s03w02z00505v06a0dd0hf05y06y0ib0o20k20px0h60j3","0k90k9___07k04n___03h05t0rn0sm0000j9___1al00000002904g03d04303b03804p02g05s05t0bc0ii05t0690j50s10q50rs0gs0lf"],["Trade Winds",400,2,0,"0m00lf0uo0wp02m0k907j06b1610v30hk0eu0dp1fv00200f01y04q04h04p03w03x02c01d05p06p08d0db03k05j0bo0hv0i60r70jo19q","0lm0km1590og03x0jm08507616a14o0fg0gg0fh1c900300f02q04h04f04i04h03a02b01406f07t0af0fh04b06q0d80j30i30ro0jn196","0ku0ku___0pc02w___0c807s1cm16509x0fi___18500a00m01t04303k03x03903j04702k06y07w0950et0430670dd0l90p10rs0hd12s"],["Train One",400,2,0,"0jm0jm0jm07t04m0jt0720240pt0rs0860bi0d42w200300a02i04o04104c04703s02c01l02202502m04m02302d03x0820j20rs0f00lc","0k20k20j30f902v0jo06h03q0go___07l0hh0j91uq00000801c04n04f04f04y03n02d01s03604b08t0f205v0770eb0jc0j70rm0h70lz","0kg0kg___06705u______0260r80rs0100be___2j200000002c04303j03j03y03j03q03202202602j04202102b0400880nn0rs0gy0ms"],["Triodion",400,2,0,"0gs0gs0gs0cj02b0hy08x03m17423o0990ar0c61mt00a00803804o04704o04q02i02n00p03g03q04b06y01x02p05m0cr0gu0pi0f20k9","0gs0gs0gs0nw02z0hp09c04k11f1kq0990ds0fw1l400900903b04q04604o05e02402m00b04e04r05x09402t0400800fn0h50pu0et0jq","0lf0lf___08c03h___08p03z1aa2bj08h0ae___1e100300502z03q03c03o03a03903s03m03l04104p07k02002t0650cc0n60rs0f20qm"],["Trirong",300,1,0,"0jb0ig0k608w02l0jn09t0331bh1yo08k08h0961j600600a03d04203v04803o04501z02303103403f05301l01y04609s0ik0rq0g50mh","0ir0ir0jq09503g0jj0a504c13c1ce07j0c70dw1jj00500a03c04403z04d04k03e02f01904604g05607i02m03i07a0fu0i50r10hr0kq","0jm0jm___09x057______0351dh21a03708b___1er00000003303h03f03r03b03703j04003203503b04t01l01x04n0980nc0rs0du0n2"],["Trirong",400,1,0,"0k60jm0kr0b302w0jn09t03x1ij1t608q09y0at1hj00600a03404603z04d03r04302001x03v03z04806601r02b05d0dn0j10rr0gq0nn","0ki0ki0lh08e02x0ka0a204u18719n0ad0ck0dz1ga00500a03604303x04604b03t02201v04p04x05m08402n03k0860he0ix0ro0ij0mg","0kr0kr___09o04w______03z1ks1um03n09q___1dh00000002v03l03i03w03c03c03l03p03t03z04405x01r02905w0cq0ob0rs0ef0o8"],["Trirong",700,1,0,"0n20m70n207j01q0jn09906c1yd1hc0f90db0ek1cq00500a02o04e04904g03t03y02701q06806e06p09s02903l09z0jv0j70rs0jm0qj","0m00mi0lj07j02y0k90a106x1o215m0dd0f90gg1bs00500a02u04c04304d04h03n02701i06o06z07p0ar02y04n0ch0kj0jo0rp0jk0og","0n20n2___09004m______06h21a1j309f0d7___1aa00000002d03u03p03y03c03k03t03a06206h06m09s02b03k09t0o50pg0rs0hb0r4"],["Trispace",300,0,1,"0hy0hd0j407406y0jo08003g0uz0s70770b00bx1ax00400902q04w03t04804304002701i03c03i04a07l02s03d0640ec0hy0r70g70j4","0ge0ge0hc05o05s0jq07b0470sx___0370dw0f41eg00100a01g05a03x04d04x04902n00p03z04905k0bh03p04e08t0gj0ic0pt0ff0hc","0hv0hv___08m06x______03h0vj0sv0000bg___1ak00000002804703g03x03f03803z03e03d03i03w06t02s03h0750f80m20rs0ef0j1"],["Trispace",400,0,1,"0ih0hw0jc06y06d0jm0810490wx0t20770cy0e11aw00400a02g05203v04904903t02c01f04604c05a0a303c04308h0ho0i40r90gq0jm","0hs0gs0hs05a04y0jj08504t0un0qw04a0fg0gq1cr00300a02o05104604h05603902l00504o04x06r0d104604z0b50ik0i70pt0gs0ir","0ig0ig___08m06c______04c0xk0sn0000dl___1a300000002004b03i03z03i03a04903004804c04x0ag03c04b09p0l80n90rs0f00jm"],["Trispace",700,0,1,"0ja0ja0ju04y03z0ic07i06e1080yr0ap0h40if1av00400b02405a04d04o05a02u02m00806b06i08w0ga04r0660fk0nj0i50pq0i50kf","0jh0j00jy04n03t0ip07x06v0yu0lk0ap0i80jv17x00400a02b05304904j05303o02d00606q0740bj0gi05a06v0gm0ne0i90pw0i20kw","0kr0kr___07k041______06v10l0rs00g0i2___16d00000001o04e03p04203g03j04k02g06s06y0970hk0530780ij0rs0p30rs0ig0lx"],["Trocchi",400,1,0,"0l40lp0it0fb02b0jp08p04e15820j0az0cf0d41ly00a00n03304n03t04603q04201t01k04804l05i0ac02q03d07a0g10ir0rs0hd0ow","0lh0nf0h30z902x0kb09005611l1v50bb0es0ev1kb00a00o03604o03r04404e03o01t01b04z05f06w0bx03d04d0950hk0jq0ro0gl16x","0ow0ow___0aw02b___07004m17k29h0bu0d6___1g900100b02s04903e03k03403e03n03c04c04p05r0cg02x03c0860ez0ow0rs0hy0rs"],["Trochut",400,2,0,"0cq0dw0cq0a70420in08503t1ap12y0100dv0do1wi00400902h04h04c04j04203d02l01n03q03x04m05301x0320c30ls0ij0rg0b00fn","0dr0er0dr0aj03y0jd08c04p14w13601j0gh0g91ur00300902l04f04804h04p03202l01g04k05105k07002s04u0f70na0ix0rq0at0gp","0fs0fs___0bf04o0ge08a04n1k00rs00g0dw___1lg00500602503z03r03504603r03i03104e04n04q05c02403f0bh0pv0p60rs04o0iq"],["Trochut",700,2,0,"0ge0ge0ge09003i0iu08905s1xe0xl02z0gc0g91ne00300902904l04j04004t03d02701p05o05s06m06t02505a0he0pz0ir0rs0ca0jb","0fr0fr0fr09003y0jc08b06d1l00sm02h0hx0hj1mh00300902g04h04c04j04s03302j01b06506g07508f02q06t0i00ph0iy0rq0ct0ip","0i50i5___0al05a___08906m22t0rs00w0gh___1fm00500601y04103x03804303x03l02t06306m06p06z0280580hn0rs0pd0rs0710l2"],["Truculenta",300,0,1,"0cf0da0c405f04m0ks06d02l0qc0va0160bs0cm22800100902m04g04604903k04j02401w02j02p02y04m02g03a07m0ha0jn0rp0bk0dv","0cj0d00bk06w03v0kj05m03q0qi___0140fk0h123k00000701e04w04b04h04e04b02b01j03g03t04h07s03i0500bf0j30k20qy0bk0di","0db0db___05205s______02r0se0ve0000bl___1vy00000002d04204503u02z03i04102x02n02r02z04o02h03c0830iw0m30rs0bl0dw"],["Truculenta",400,0,1,"0cp0da0c407h04m0ks06d0300qu0v70130dj0e521m00100902f04l04604903l04h02901s02y03503g05p02w03v09l0iz0js0rp0bj0dv","0cu0du0bu07f03y0l105p0420r30eq0130gi0hy20r00000701b04y04b04h04g04802e01h03v04505008u03x05d0d50kc0jw0rm0bu0du","0db0db___073058______0380tc0uf0000d9___1vb00000002604604303w03103k04702o03303803i05t02w03y0a30n70na0rs0bl0eh"],["Truculenta",700,0,1,"0db0f20d107f03h0ke06d04j0u20ut0130hd0i721800100a02304t04d04h03w04302h01a04h04o05709k04106e0gm0or0jw0rc0cq0fn","0e70f80e70am0320k806i05a0sw0xi02y0iw0kx1wv00000a02904t04h03h04p04102i01b05505e07b0bv04x07q0hy0ok0kg0rn0d70g8","0f20f2___06v042______04v0wk1290000hh___1s900000001t04a04304003603q04e02b04o04v05e0an04206s0gx0rb0p00rs0db0fn"],["Trykker",400,1,0,"0hl0is0gq08a02y0hs08w0390x621t08p0aw0bz1m200b00k03p04u04703v05t01r02600m03403l04l08702d02z05r0be0gh0ox0f90jy","0gc0i90fd0d502w0ht08a0480wm0un0660dk0fl1ns00500j02605f04904i05k02f02200q04004h05w09g03604407r0er0gf0p50dg0i9","0k70l3___08c042___07303t11622u0830b4___1e000400c02z04203b03s03703903d03h03n03u04x09502i03406i0c30jz0rs0fl0pe"],["Tsukimi Rounded",300,0,0,"0ey0ey0ey07k03g0g308u01q0oi0rs06o06l08i1tq00800803h04k04b04z04r01x03400801m01t02903j01o02002y05f0e10o70ds0fi","0eg0eg0eg08602w0go08b0340pp___0250br0ed1w000300b01s05c04904z05l02002n00v02x03604507k02y03s06i0b50fa0pt0dh0fe","0gs0ij___09v04n___06401u0ol0rs031065___1g100000402w03q03603e04203303n03q01r01w02b03h01s02503805w0hl0rs0f20ml"],["Tsukimi Rounded",400,0,0,"0ey0ey0ey08f03g0g308v02d0p80rq08108t0at1se00800803704v04d05104m02003200902a02g03305202a02q04708d0ei0op0ds0g3","0ew0ew0ew07x02z0gg08g03n0ps___04d0c40eq1sf00400a01u05k04h05705b02702a00l03b03p04t09203e04907i0ca0fr0or0dw0fw","0hy0ij___08z04n___06d02l0pg0qu03108c___1en00000402j04303703e04003503u03i02h02n03705202h02z04n08f0is0rs0fn0n5"],["Tsukimi Rounded",700,0,0,"0gg0gg0g608j02u0gg08004a0rj0mj08l0db0g91oh00500a01v05m04j05d04s02b02r00604104c05t0c804204r0950em0fg0oy0dm0h0","0hl0hl0gm08b02y0he0970550rz0q108q0ff0hk1jv00600902n05304d05705302902k00704s05a07j0du04x05w0bc0gs0g30pl0eo0jj","0ix0ix___0a904q___06s04s0r80q804k0dm___1a500200501z04m02z03r04b02y04s02904o04w06f0ec04o05g09z0im0lg0rs0es0nn"],["Tuffy",400,0,0,"0g50ha0g508b0410kr08b03d0rp0rs0120b50cn1nr00800a02h04o03u04a03t04g02201r03903f04106t03103r0750g40ik0ro0fk0ig","0gd0gu0fe08q02w0kl07g0480rz___01n0dl0f91p400300c01d04z03v04b04k04d02601r03y04a0590af03y04t09z0hj0j80r00fe0ia","0hv0ig___095041______03h0tc0rs0000b8___1hz00000002904903e03y03l03703t03e03b03h04006m03003p06o0eo0jt0rs0ez0k6"],["Tuffy",700,0,0,"0i50iq0hl07403h0kr08n05f0uf0rs0250g00h71hs00600b02004v04004d04404302g01g05805j0740dl04v0620ei0kx0jn0rr0ha0jl","0hr0hr0hr06z02z0kh08c0600uc0lx01m0h30j51g400500b02604u04404i04w03a02l00y05q06608u0en05d06t0fv0mj0jw0r30gs0jq","0jl0jl___07z041______05o0vy0rs01v0g3___1au00000001s04e03n03z03m03e04f02m05e05s07n0fl04v0650e10q10nq0rs0hv0mh"],["Tulpen One",400,2,0,"06y07j06d05e01r0hy08401o0q31hi0000bq0ep3wi00600b02v04s04o04r04f02z02o00701o01o01r02b01l0290810i60i50ow06d07j","08w08w0ir29u03y0id07p03h0or0fg07y0hu0jz2tt00200d01p05804s04x05603002e00703803i06m08r03q07c0gx0lq0io0op07w0tm","098098___04302w___05a01u0qx0rs0000bj___32w00000402f03p03h03p03j03j03v03i01u01u01x02h01r0290750p00q20rs083098"],["Turret Road",300,2,0,"0je0je0is06802y0ic09d0200s10rs0as07608q1gn00800604l03n03l03k04w02t01v02i01y02002l03r01y01z02w07y0hp0rs0i70kk","0j90j90ia07601x0it08b03d0rs___07y0b80db1kh00300701s04x03h04604x03e02h02d03403h04h0av03503e0560e10i90r00hc0l6","0kk0l5___06n03j0ex___01z0sg0rs00j06x___1cl00000004503402w03j03u02b03804r01y02002k03801y01y03h07i0n00rs0hm0ni"],["Turret Road",400,2,0,"0j20jn0j206602w0ik09c02h0rq0rs0a708v0aw1gi00800604e03p03g04604d03101x02e02h02i03a05t02h02i03y0bp0hz0rs0hw0ld","0ir0j90ir08301z0ik09603r0ru1hi0840c40dx1hk00500703604n03o04d05402c02w01a03h03v0510ds03e03w05y0fa0i20r10gs0lq","0ks0ks___06703h0fo___02i0rv0rs00008m___1c700000004203502v04703002p03a04l02g02i03704f02h02i04c0ad0n90rs0hw0n3"],["Turret Road",700,2,0,"0j20j20j209a02w0ik09c0410rb2ro08l0dt0g21fy00700703404w03p04704i02q02n01p04004205g0g404304807w0i30il0rs0eg0ks","0jc0jc0it08s0320ix09h04t0rv1r90830fk0hy1fa00400802m05303u03b05g02z02r01f04m04w06s0gw04p0560as0id0ij0rp0e90kc","0k70k7___0ar03h0fs___0420rh2ns00g0dq___1ai00000002t04903003z03602w04m0340410440580fw04304407l0lm0od0rs0cp0n3"],["Twinkle Star",400,3,0,"0hd0j40h30i302b0hy09i02h0px0vm08k0970aa1yy00f00l02x04h03q04t04k02w02d01002a02k03i05r02c02q04607x0fu0ow0cq0n5","0jr0lq0ft0t401z0i909f03w0qk17o0a80dh0fe1t600b00k02n04m03s04q05502s02d00x03h0430630aq03m04e07r0cn0fy0oq0ft0wl","0ly0mi___0d702w___07k02e0qh11u0ap08x___1mx00300c02i03n03004203x03r03w02l02802i03f05s02802k03r06u0kc0rb0hw0rp"],["Ubuntu",300,0,0,"0fi0fi0ft07o04l0im06w02u0tc0rs03w09u0ba1pa00200b03004m04a04p04403j02y00802p02w03b06302h02w05d0bp0gr0or0ed0h8","0gd0gd0fv0750430j006n0440uv10501o0dc0ey1o500000a01s05b04k03s05903o02v00b03s04705009t03f04e08q0fs0hi0ph0ec0he","0hy0hy___08z05s______0360tn0rs01y09k___1dn00000002j04003f03u03i03803u03h03103703m06102p03605s0bw0j70rs0g70k9"],["Ubuntu",400,0,0,"0gp0gp0gf08604m0j006x03u0uk0rs04t0ch0e41na00200b02k04w04c04r04d03f02v00903o03w04l09w03b03y08e0gj0hi0p00ez0hv","0gl0gl0gl07x03x0jc07404m0tp0ql02q0el0gi1ma00100b02l04t04c04l04z03802q00804f04q05w0by0450500ay0ic0hy0pm0en0ij","0ij0ij___0a5058______04a0uu0sc03l0ce___1bt00000002404903h03y03j03c04902x04604e0530ax03n04e08p0iy0l00rs0f20lf"],["Ubuntu",700,0,0,"0hy0hy0hy06x03h0j306m05v0w218q07h0gq0id1hw00100c02605504i04s04h03k02m00905p05y08f0f105006a0es0me0ik0pg0g70j3","0hn0hn0hn08d03x0jd07506b0v30m304x0i00k71fb00100b02904z04e04p05203e02i00706306i0al0f405i0790fm0m50iw0po0fo0jl","0k90k9___09504n___06y06j0wb0rs0460gv___16400000201q04g03l04003j03g04m02d06h06t09j0i105k0700fd0r40ne0rs0hy0n5"],["Ubuntu Condensed",400,0,0,"0c30c30co0860410j006m03i0ta0s90130e70fn22700200b02h04u04i04t04803l02q00803e03j03w07l03504c0bc0j10if0pc0bi0dt","0ca0ca0ca07g0330iy05y04g0rp0xi0130gp0il1zc00000901g05c03k05605f03k02s00904804i05s09j0480640e10kn0ie0pi0b90ec","0db0db___0a3058______03x0ty0sp0000e2___1ob00000002104403o04103j03j04402t03t03x04d07y03g04w0bj0od0mn0rs0bl0g7"],["Ubuntu Mono",400,4,0,"0gg0gg0h105903j0it06o03p0tx0s103o0cj0e41hr00200d02p04y04d04205802v02w00b03m03s04k0at03903r0820gk0h80p90ep0h1","0gd0gd0he06f0330js05z04p0tv___0130ep0gz1gp00000b01j05g04g03s05a03u02v00b04h04s06e0c50430500au0hw0ig0ph0fd0he","0hd0hd___08o042______0400ug0ta0000d1___1ct00000002804803e03y03j03a04803003x04204o0a503g04508v0lq0mq0rs0f20ij"],["Ubuntu Mono",700,4,0,"0h20gr0hn03r02y0j106o05b0va1er05w0gl0i21g100100e02b05704h04305b03102p00b05905e0750e104l05k0df0la0ig0pa0fv0hn","0gq0gq0hq08302y0jf07505z0v10ll01o0hy0jp1cr00100d02e05104d04p05803b02800705p0640ac0ei05706r0f60lu0i60p10fr0hq","0ij0ij___07r03h______05t0vp1ej0000h0___19r00000001v04g03i04003i03g04l02i05q05v0780fd04x0680fa0rd0oh0rs0gs0j4"],["Ubuntu Sans",300,0,1,"0fi0f80fi07u04l0ik06w02o0sx0rs03c09j0aq1pq00200b02z04m04904p04403m02x00902k02p03505r02d02q04y0ax0gr0oq0ed0h8","0fy0fy0ey07p03z0ii06g03w0ud0xt02q0co0ec1qa00000a01q05a04j05105d02c02x00c03l03z04s09903904708a0ex0gz0os0dy0gx","0i80ij___08d05s______0300tc0rs01i095___1du00000002k03w03g03u03i03803u03i02v03103h05m02k03105e0ba0j40rs0g70k9"],["Ubuntu Sans",400,0,1,"0g40fu0g407i04b0io06x0360tm0rs04g0aw0ca1of00200b02s04q04b04q04903i02w00903203703r07002r03806b0e00ha0ov0ee0ha","0ge0ge0ge07t0440iz06m04b0tf___01m0dv0fr1nh00000b01m05e03c05005b03p02v00c04304d05e0aj03o04l09i0gg0hi0pi0ec0hf","0hy0i8___0ab05s______03k0u70rs02q0at___1d200000002c04303g03x03l03a03y03703f03l04407c02z03k06q0e50jr0rs0eh0ku"],["Ubuntu Sans",700,0,1,"0hb0hb0hl07b0410j106m0560vv0rv06y0fe0gv1kn00100c02805304g04r04g03i02p00905005906o0dk04f05e0cn0j70ih0pe0g60ih","0hm0hm0h407403x0jc07505s0vl0n204t0h00id1ig00100b02b04w04g04o05103b02l00805i05v0890dr04x06a0dz0kq0i10pm0fn0jk","0jo0jo___09j058___06y05s0vu0sl03p0fp___17x00000201t04f03j03z03i03f04k02i05p05y07k0go04x0600d10pv0mp0rs0hd0ml"],["Ubuntu Sans Mono",400,4,1,"0fj0fj0go05y0410in06w0380ti0rs01l0bd0d51i200300d02u04r04704p04a03i02t00b03403a03x08k02u03b06e0e80h90oy0ed0go","0ey0ey0fy0bj0400ih06h0480tf___0140dr0gk1ix00000c01o05f04g04z05h02b02t00e03z04b05d0b203n04h09b0g90h20ou0dy0fy","0hd0hd___08g04n______03h0tu0t80000bk___1d100000002e04203d03z03j03903y03a03e03j04007j02z03n07g0hs0lo0rs0fn0hy"],["Ubuntu Sans Mono",700,4,1,"0gz0gp0hk03n02w0j106x05b0vc1d605c0ge0i21gy00200d02905504d04p04i03j02m00b05905d06z0dx04l05j0d60kp0ih0pc0g40hu","0gm0gm0hl07z02y0jc07405v0v40m40280hu0j81d500100c02c04y04a04n05503c02h00905n06009x0e905306h0eo0lc0iu0pn0fn0hl","0ij0ij___07x03h___06y05s0vk1cu0000h0___19r00000201v04f03h03z03i03f04k02j05r05u0770fe04w0680f10rf0oe0rs0gs0j4"],["Uchen",400,1,0,"0gs0h30fn08a02b0i607n03n1111qv0590bw0cz1kk00600b03604f04404c04h02r02d01q03g03v04g07g02a03406j0dx0hj0qx0eh0jo","0gx0gx0fg0i30200ig07i04m0yc0nv03k0ej0fy1kv00100d01s05404604h05a02902f01y04b04s05u09b03804i08v0gp0i00qu0ey0ix","0jz0jz___07z02w______03w13z20b02s0bx___1fl00000002r03v03h03o03903e03r03n03h03z04l08a02a03007g0dj0oe0rs0f20ob"],["Ultra",400,1,0,"0qu0s00q905q01h0l609s0at1610xt0o10kb0kh15i00a00b02204t04903m04n04902701f0al0bm0g30mh0770a50kq0rm0l60rs0po0uc","0u00v00s112k01z0ld0a30ax1870q60qv0kd0lc0zp00a00b02904o04804404j03y02g0120ar0cg0k90q40750bl0ko0rj0kz0rs0qk1e6","0sa0sa___05q01r___03b0b91740td0lx0lt___12h00000001t04h03z03703o04204302k0b30cn0h50oj07a0ag0p70rm0rl0rs0po0wo"],["Unbounded",300,0,1,"0ob0ow0n50br0420ku06f03z0vh0rs0fq0am0be1cx00100a02d04v03q04503q04l02b01t03r04204y09t03903o05u0bm0ij0rc0lf0q2","0nh0nz0m20b503u0lj05k04o0uo___0dc0cv0dn1ds00000701805303q03z04a04o02j02504c04q0640cb04004i07b0er0j90ro0k50ox","0ol0p6___0bl058______0410w50rs0ci0an___17v00000002804f03d03z03c03004803a03r04304x0ao03d03q05x0b00jr0rs0k90qm"],["Unbounded",400,0,1,"0p60ph0nq09v03h0kx06f05d0x10rr0i00d60e01an00100a02304z03v04703w04e02i01l05505h0730en04a04t08i0h20j60rs0m00qm","0ok0pk0ml0b503y0le06b05w0x80lm0iq0eu0fh1ar00000902704s03w04404m04702h01905l06007y0fx04n05k0a40i40jv0rq0lm0qj","0pr0q2___0au04n______05e0wi0rs0fc0db___14i00000001x04l03f04103c03404n02s05505h0730jh04i04y08e0gm0lo0rs0lf0rs"],["Unbounded",700,0,1,"0rs0s20pr0bv02w0lf06h0810zz0rr0lf0h40i314q00000901w04v04604a04304a02m01d07t08b0c40mn05y0750f40lm0ka0rs0ow0tj","0ql0rk0pm08f02y0le06c0891010lm0m40i10j114c00000802004s04504904q04102j01507z08n0dl0mh06907t0gm0mb0k30rs0om0sk","0rs0rs___0aa03r___0210830yj0rs0i10hu___0zk00000001n04e03u04203d03h04p02c07w08f0dj0ow06g07l0f50r00nt0rs0lf0tj"],["Uncial Antiqua",400,2,0,"0mf0n00lv0a802b0j307205m1yo1cv0kd0cf0d21fq00800p03304p04m04u04103l01v00705c05m06708201p02x07y0hk0ie0od0la0o5","0j40820j40aa0310fx06d05o1kf18c0ha0mb0g91mf00000v03x05k05j05m03m02300l00105e05s06g09a02803t0a30gb0ff0ld0h40k5","0mw0p90mb0fv02d0lq06p0541vs1fl0mt0ai0bm1hi00200i03404p04x04f04k04601700704r05405j07001l02r0770fg0i70lq0jz0oo"],["Underdog",400,2,0,"0ij0j40hd07m02w0jo08p03g0tg1p90500bc0c21lw00500b02w04w03p03z03u03x02g01s03903m04o08002r03h05x0cu0ij0r90g70ku","0hc0is0ff0et02w0jr07j04b0sv___05k0e10fz1lj00100a01o05c03r03z04j03z02h01r04304k06c0ar03p04k08l0g80if0qz0ff0k8","0jm0jm___09f04m___05303l0tr1vx02g0bf___1gi00000202q04803303h03a03104103x03a03q04o08x02t03m06b0cr0of0ru0g50lc"],["Unica One",400,2,0,"0eg0eg___07307i0fb___03b0tt21z0000dm___1nc00000002f04203k03q03b03f03y03d03a03b03l06f02y03k09w0q40pi0rs0cp0eg","0dz0dz___08q060___01q04a0se___00h0g7___1nh00000001d04m03r03x04102q04803704004a04y09p03w05a0do0p10p20rt0bz0ez","0dv0dv___08306x______03b0uo2210000dt___1n600000002c04003m03v03c03f03v03c03a03b03l06h02w03m0a60px0p10rs0az0eg"],["UnifrakturCook",700,2,0,"0fn0fx0fc0fz01g0j40840580uo0hw03s0ff0gs1ts00600g01l05904904p04m03303100p04p05k07e0bq03t05x0br0i80hn0q20dw0ij","0fd0fd0fd0rg01x0is07805y0v90j606y0hc0j71nd00100g00x04p04j04j05803g03001005706909g0dj04r0740ed0kk0ia0q00dg0oy","0ml0ml___0gw01r0nb09u0630y70gd0a80f8___1l700900e01d04f03m03w03s04304o01b05306d08g0cy04005z0al0k80nb0qx0hy0tj"],["UnifrakturMaguntia",400,2,0,"0gs0hd___0bf01r___07j04b0zp0ls05o0c3___1rh00300b01r05203u04b04h03h02y01j03e04e05p08702704607a0fc0im0r70cq0ml","0ka0nu0g80fa0210k007k0570x30lr0bx0f70gt1pu00100c02305203y03b05803j03301704l05e06x0am03g05g0a10hp0ip0qr0f80re","0qm0qm___08101r0nb07p04t0z60i20ef0bv___1jp00200b01r04j02z03q03p03h04n02n03404y06t09p02b04a06n0ar0ob0rs0hd0ti"],["Unkempt",400,2,0,"0k90lf0gs0kb02w0hd08u0310t02250ar09a0ag1l600600d03b04x03c04g04n02h02l01l02v03404l08h02o02y04k08k0ge0qb0g70v9","0lc0pl0h20y004a0ig06804j0tl13d0d80cu0df1hf00500803104903q04n04a03702n01p04804s07c0cw03v04h07a0e10h30ql0h217q","0ml0ml___0px03h___02b02w0tq33109h098___1kr00000002a04u03003t02y03604a03i02p02w03q08n02j02q04s08m0ob0rs0gs0rs"],["Unkempt",700,2,0,"0jo0k90ij0gj02m0hd08u0440t31vi0at0cm0e91it00500d02v05703k04k04h02j02v01a03x04d0720c803q04306x0d80gs0qm0g70n5","0i90ir0ga0wu03y0fs08404y0tj1a30fn0fj0fs1hu00500c03o04w03r04x04i02a02x00d04o05c08m0ek04e05108u0fc0g30p50fs12h","0n50n5___0s0042___03h03y0tc2e60cf0c6___1hz00000102n04m03803r02v03a04y02g03r0420640c603k03v0790bw0of0rf0hd1bg"],["Unlock",400,2,0,"0jo0kk0k90ek02w0l007j07h1s41aq0a70ie0j71j400300b02l04r04i04n03z04v01u00b06s07h08i0d00350830jn0nz0l10ob0ij0m0","0jm0lk0jm0ew02y0lc08007t1gp12l0bl0ka0kc1if00300b02o04o04d04h04j04s01o00907e07z0950ev04308y0ki0nv0l10nz0im0mk","0nl0nl___0gg03g___07109h26y1fc0990jy___1d400100102303y03y03w03703z04502k07t09l0a50g203b09k0pe0rq0qj0rs0la0rm"],["Unna",400,1,0,"0g70g70fc0ct02w0g709903p1i01n107d0ai0cm1uy00c00903c04x05705b04302k01k00903f03p04505o01h02d05k0dj0fm0ms0eh0ii","0fq0fq0fq0hk02y0ge0a204p15c19a07y0du0gk1ss00b00903h04w04z05504e02m01j00704g04r05k07u02h04108n0g80fw0n00eq0hp","0lt0lt___0bt04q______04m1rn1rg08h0b4___1dv00000002u03n03n03a04102z03r03n03w04m05106z01p02l0750fp0nq0rs0fc0qj"],["Unna",700,1,0,"0hd0hd0gs0gy01r0g709905e1tc1b10an0du0gi1sn00b00a03305205905e04302n01e00a04z05d05x07x01t03p09p0gc0g70ms0g70jo","0ho0ho0i50kz01z0gj0a10651ev13z0a40g40j31q800a00b03704y05305a04h02p01d00705o06606y0a302t0570cf0hi0g00mz0fp0jm","0mz0mz___09203j___08u06o26f1fr08t0dm___1cl00100202h03t03904004003503v03705i06o07709g02103x0b20oc0oz0rs0gi0r4"],["UoqMunThenKhung",400,1,0,"0jz0jo0k907c02b0jt0750551v61in0ak0c60d61j600300b02l04d04704i03x04002a01l04q05605l07401p02z08m0iq0j40r80hy0m0","0j00j00jy0bn03c0j807v05q1hn14l08v0eo0f11io00300b02s04904104904g04902h00w05c05t06a08q02f0460ao0js0j30qs0h30kw","0mk0mk___07u04c___06k05g20k1pq09r0c4___1cv00000402f03s03o03q03f03l03v03a04x05i05t07s01q02y08p0kf0oy0ru0ii0qm"],["Updock",400,3,0,"0ae0az0a414g02w0f00bs0291130un04u07t0bq2wd00i00p03804x04t05b03102602600z01j02602k03a01801s03a07j0dh0pf09t0ld","0lp0mq0ac0mz03m0ft0at0490wn0gp0b40dm0jp2c600f00l02h05e03l05k04602g01t01d03j04e06a08o02w04c08u0e10el0po0ac0x1","0n514i0nq0tg01r0na0bn02212c___0c807b07d2f700d00i02d03u03s04o03h03v04000y01k02402k03f01401j02o05i0kh0q20991bg"],["Urbanist",300,0,1,"0ha0ha0jl0800360jm09t02n0q30rs06y08n09r1og00a00802s04m03v04304204602301n02g02p03d05d02h02y04r08k0hb0qi0gq0jl","0hc0hc0ib0ew02w0js09803w0qu___0740bx0d01pa00600901j05103y04504u04302601p03h03x04y09n03l04a07c0dp0i70q40gd0l7","0hl0hv___09b041______02o0r20rs03z08r___1h000000002l04203e03k03o03303k03w02h02p03905302h02x04y08n0ip0rs0fk0mh"],["Urbanist",400,0,1,"0hv0ha0jl08l03g0jl09t03a0qn0rs0730af0bt1n700a00802g04x03x04404803z02901h03203c04607f03303n0640bw0hi0qm0gq0jl","0hd0hd0hd0eh02w0jr0980490rr___05x0d10ec1ny00600901c05403z04904y03z02701k04104a05l0ah04104p08o0f10i90q50ge0k9","0hv0hv___09w041______03b0rh0rs03n0al___1fu00000002804b03h03p03l03503y03f03403d04107e03303n0670bq0ju0rs0du0lc"],["Urbanist",700,0,1,"0iz0iz0iz08o02w0jk09s05f0t00rs09t0f60gy1i800800901z05304604e04j03i02i01705205h07g0eo0520630cj0jm0ii0r70hu0kp","0il0il0il0ae02y0ja0a105w0so0li08i0g80if1gf00700902605104904j05902y02j00m05d05z0940f405g06o0du0jg0i00qm0gn0kk","0jm0jm___09a041______05f0sx0rs06l0fp___1a000000001p04l03m03u03l03c04m02k05505k07t0fn0550630c70md0m60rs0hb0ot"],["VT323",400,4,0,"0g50fu0gp04m03g0jc08i04m0tr1ai0000f40gn1j500700902v04e04604i04203m02d01f04i04m05l09g04b04b0c80k60je0rs0ee0gp","0gc0fv0gu03v02z0ji08c05g0tl1400000gy0is1ew00400902c04l04904o04z03902e00z05705j08f0cu05006s0er0lm0j40rr0ev0gu","0go0go___03303g0nd___04l0tq1gs0000fj___1ii00000002e03t03j04303e03m04d02n04h04l04q0ah04a04b0c70s10nr0rs0ey0go"],["Vampiro One",400,2,0,"0lp0lf___1at04n___0af06n0wv0cn0at0do___19k00a00c01g05q05004o04503f02b00h06006s09r0fg05b06l0az0eq0gz0ow0k91go","0lc0lc___1c904l___0bf07c0wc0c30af0g9___13000a00c02a05u04w03k04s03c02500e06r07u0d40hy0640870dj0he0gq0or0kb1gs","0ob0ob___0ip02b___06m06w0vt0eb0at0eg___17i00000401b04d04404f03n04904i01306e07509p0et05n07a0bi0ef0ka0qm0k915o"],["Varela",400,0,0,"0jo0jy0j309104n0k809c0400sp0rs0730bs0dj1f700900702a04z03s04a04004202901r03x0440580ba03p04507l0fv0il0rr0fm0kt","0jj0ki0j207q04w0l40a004u0tg0mu0930dx0fh1e700800702e04s03q04704p03p02e01j04n04y06j0em04f05009x0hl0jo0rn0ik0lh","0kj0kt___09x05s______0400sp0rs03h0br___18v00000002204h03a04303g03204a03403x04304z0cw03p04406y0ec0kw0rs0gs0mk"],["Varela Round",400,0,0,"0j30k80is08y0570k809c0400sn0pd0620bz0df1f300800702705103s04b04004202b01q03x0430580bd03p04407k0fy0il0rf0gr0kt","0ji0ki0ij08j04w0l409z04v0tm0ii0990ds0fm1ec00700702b04s03s04904p03o02e01j04n04y06k0ej04g04z09v0hf0j00rm0ij0mg","0kt0kt___09v05s______0400su0ph03h0bq___18n00000001z04i03b04403g03304c03103x04204z0ct03o0440710e00l10rs0gs0n5"],["Varta",300,0,1,"0fn0fn0fn06d04n0ip08p02y0te0rs02u0ag0bl1rw00900902y04q04804p04e03602w00902w02z03h05y02k03005i0cu0h00ph0eh0gs","0fe0fe0fe07k03v0jl0880440te___0130de0eh1s200300b01k05504604n05003j02q00o03u0440510a403k0480920g70i50p50eg0hc","0it0it___07405b______0380tj0rs0000a9___1ht00000002g04a03f03904b02t03n03o03503803q05v02s03d06e0dx0k40rs0fa0k0"],["Varta",400,0,1,"0fn0fn0fn07k04c0ir08p03b0u40rs03a0bh0cr1qz00800a02r04v04904n04f03902y00903903d03y07002v03d06q0er0hd0ph0eh0hd","0ff0ff0ff07c03v0jl07l04a0tr___0130e70fo1rb00300b01f05804804o05103i02p00n04304a05e0ah03t04k09t0gy0i70p50eg0hc","0ho0hy___09o05b______03m0u80rs0000bs___1h500000002904b03e03f04902t03y03e03l03n04807l03403s07h0gr0ku0rs0e40k0"],["Varta",700,0,1,"0gs0gs0gs0740420j808d04i0vk0rs04a0eo0f91ns00600a02e05304904p04d03d02t00c04g04j05g0at03s04j0aa0ja0i40pp0fm0ii","0gt0gt0gb07003h0jf08a05a0vt0wm01m0fx0hv1lt00500b02j04y04f04t05502y02g00505105b0720co04i05h0cv0j00i40p30ft0hs","0ij0ij___09c04n______04v0vl0rs0000eb___1e200000001x04h03g04203j03b04e02o04r04v05r0dm0450510at0n40mn0rs0f20ku"],["Vast Shadow",400,1,0,"0qx0r70p607f0430k309604919c0s10nq0dq0ef24700800d01n06003x03r05904502700b01704905e0b801203303t07l0j60p20ol0uf","0rf0rw0pg06p03x0ji0a107h10w0hu0ol0gs0ht10p00700b02c05c03s04504y03x02o00707108z0ek0lc05c0650bs0j10js0pm0pg0vb","0y50y5___04q0420n502b04s1ao___0qg0dp___1n900000001l05503503a03003505303g01a04v05w0eh01403d03z0870qb0rs0v90zw"],["Vazirmatn",300,0,1,"0ha0hv0ha07q0410kr08303b0t30rs0130al0bj1lu00600802d04m03s04b03q04m02401x03803d03y06o02u03f06e0er0j10ro0g50j1","0hq0hq0gq08303y0ki08704a0sz0m003r0dy0en1m600400902h04l03z04d04m03r02h01604104c05b09w03t04n0950h70j30qz0fr0ip","0i50ig___08h057______03c0tk0rs0000al___1fv00000002604603g04003h03903x03e03b03d03z06o02u03e06l0df0kc0rs0g50kr"],["Vazirmatn",400,0,1,"0ha0hv0ha08h04m0kr08203y0uk0rs01m0cm0d01kt00500902604p03w04b03s04j02901r03v03z04p08v03b04208o0if0j60ro0gq0j1","0hr0hr0gs08703y0kh08904p0tv0mr03r0ev0fk1l200400902d04s04104d04q03m02g01404j04q05v0c30470510ap0jg0j40r00gs0jq","0hv0hv___09s057___02b0400vg0rs0000c5___1eu00000001z04a03j03y03j03b04603203y04004q09z03b04208e0ja0lh0rs0fk0kr"],["Vazirmatn",700,0,1,"0j10j10ig07d03h0kr08305y0yd0rs05c0g90h11j100500a01w04s04504d04104802g01j05s05z07a0e604q0650f00nw0k60rs0hv0k6","0is0is0ia07c02z0kh08906e0x80l606j0h60is1gu00400a02404t04704h04t03h02l00z06506h08v0f505706u0gd0mz0jx0r30ht0kr","0j10j1___08s041___02w0600yl0sa00w0g6___1b600000001o04d03p04003i03j04h02j05z06307i0g104r06b0ed0qy0nu0rs0g50lw"],["Vend Sans",300,0,1,"0gs0hd0gi06103r0jw07p02z0sk0rs0150ah0bb1sj00600802r04p04104m03w04d02t00902v03203l05y02j03405s0d70i20ph0f20hy","0hc0hc0gd07q02w0js07d03z0sf___03c0di0e71s700200a01h05204004j04s04a02k00r03p04305309e03f04d08m0fl0ib0pu0ff0ia","0ig0ig___08605s______0360t30rs0000an___1ib00000002a04203g03p03v03b03n03k03303703r06702p03d06g0e30kz0rs0ef0k6"],["Vend Sans",400,0,1,"0hd0hd0h307b03h0k907p03m0tt0rs0130cc0cp1rj00500902h04u04304k03z04g02s00903i03p04g07y03203t07n0go0ik0ph0fn0ij","0hc0hc0hc07202w0lm07d04f0sp___0130eu0fa1rf00200a01a04x03y04904h04u03200p04604h05s0ao04104x0a90i70k80pu0fe0ia","0j10j1___0a104m______03y0vc0rs0000cg___1hm00000002204803h03q03r03d04003703v03z04m08x03a04508e0jf0m00rs0du0k7"],["Vend Sans",700,0,1,"0ij0ij0hy06t02w0ke07p05h0wk0rs04a0g70ha1om00400a02205104804m04804c02o00905905j0700da04i05w0e40lc0jq0ph0hd0j4","0i80jq0hr09701z0lf0860600vo0me0420hr0id1ll00400a02504u04604i04t04g02e00605s06408n0ec05306v0fs0lp0k60ps0hr0jq","0k70k7___08z03h______0610xv0rs0000hc___1di00000001q04b03n03y03o03j04g02l06006307w0fx04w06l0fk0rl0od0rs0fl0lx"],["Vesper Libre",400,1,0,"0hq0la0hq08n02o0ix09p03z10m1zb0730bq0d21kn00e00803904u03e04b04v02t02601l03u04505c09b02l03d06x0ex0ic0r70fd0mh","0ip0l60hq0ix02y0je0a304u0xj1p406s0dp0fr1jw00e00903904q03x04704v02w02701504m05406y0aq03f04j08v0gm0i10qz0gq0lo","0mi0o80gq07v0410nb05p04511228e05s0bu0by1ed00000202w04b03b03p02y03903t03k04004805b0ae02p03g07f0dv0nr0rs0hw0ot"],["Vesper Libre",700,1,0,"0k30mh0k30jz02y0ix09o05x1e21f20cp0do0fi1ga00d00902w04v03p04j04w02r02601g05u0660780b202u0480ao0iy0ie0rg0hq0ou","0mo0no0no0jt03y0je0a406k19515s0ai0fq0hj1f400d00902z04r04704f04u02t02501206e06t08g0cs03m0580cb0jg0i40r30hr0qm","0o80p30j109i0360nb06806a1gu1pj0bj0ef0e51ao00000202j04903k03u03503i03v03205x06b07j0ci02y0450as0n00nv0rs0jm0r4"],["Viaoda Libre",400,2,0,"0ee0ey0ay0lg02b0hh09i02u1iv16w04j08v0ar21600a00903104j04h04j04a02e02901q02g02t03403t01301q04j0bk0gd0r60820gp","0ea0f90ea0s602v0gw09u04314712705b0cm0ff21j00a00a03704i04d04e04v02103000w03q04404k06301z03k0810fu0gd0qu09j0i3","0i50i5___0h604m______0341lr24q03z08p___1p300000002v03m03k03p03c03g03o03n02i03403h04501601r04u0b20ns0rs0bi0nm"],["Vibes",400,2,0,"0gp0iq0gp08v01q0jl0bj0200o10rs03306q08a1uw00700l03f04p03m03p03n04d01v01s01x02202n04002002f03n0730f10oa0ee0k6","0hf0hf___0wb065___09u0400rs0wf08c0c4___1kj00400h02905h03003z04b04o02001k03c04006809503g04e06w0d30gh0pj0ba0pn","0fn0fn___07l02b___06y0200nw0s900006q___1s600100702x04503k03n02y03g03o03901w02002i03r01y02g03l07c0eq0rh0dw0ij"],["Vibur",400,3,0,"0hd0hd0wp0oo04n0ek0ep03j0pf1xr05k0c30e21vt00i00f03305304e05902s02d02j01g03a03n04y08s03g04d08b0eg0df0r70cq0jo","0ht0ht0vo0n103z0fl0e904h0py10z05r0e90hj1my00h00f02k05804f05403l02d02l01304204k07l0br04f05y0bj0h00e70r00eu0ks","0hd0hd___0eg042___09u03o0qs0qu03a0bu___1io00300402b04703d04403f03n04102j03e03n04p09603e04b0850g80im0rs0fn0m0"],["Victor Mono",300,4,1,"0fn0fn0fn02o04n0lf06n02n0rn0rs0000a10bb1i100200b02z04b03i04503i04w02302202m02p03705m02h02u0580e10jv0rs0f20gs","0gf0gf0fw02u0440l405z03v0tc___0000d20ey1hm00000a01s05102u04c04k05102a01n03m03y04v0a503e04d08m0hh0kg0rn0fe0gf","0g70g7___045058______02n0si0rs0000a9___1ho00000002p03u03a03v03l03503j03v02m02o03305d02g02t05r0d10mo0rs0f20gs"],["Victor Mono",400,4,1,"0fn0fn0fn02r0420lf06n02y0s40rs0000az0ca1hy00200b02t04h03j04303l04w02701x02x03003k07702r0360640ge0jz0rs0f20gs","0g90g90g903z03u0ll06a03x0rv___0000dh0eu1id00000b01j04v03j04004704p02h02803o03y04w0ay03j04c08p0ij0k70ro0fb0h8","0g70g7___06w04c___05p02y0t20rs0000b3___1hf00000402i04103a03s03m03603t03j02x03003h06t02r03406q0gp0ms0rs0f20gs"],["Victor Mono",700,4,1,"0gs0gs0gs03t03h0lf06n03t0sm0rs00j0db0el1he00100c02f04p03l04803m04u02d01n03r03w04r0b403i04308y0ju0kd0rs0g70hy","0gl0gl0gl03z02x0lb07204g0ru1m900j0f50gw1gm00100c02h04o03k04904a04j02e01b04d04k05x0dg0490520as0ka0k00rk0gl0hl","0hd0hd___06q03h___05p03t0th0rs0000dc___1gl00000402704803c03w03k03904703203r03v04l0aj03h04108y0ng0nt0rs0g70hy"],["Vidaloka",400,1,0,"0hy0ij0hd07n02m0jo09f0531zs1ct04t0co0do1n300a00902o04a04b04i03w03r02701o04g05305d06j01i03508k0j60j40rs0g70ku","0ik0ik0hl08m02y0jj0a005v1ix10l05g0f90gy1lq00a00902v04704704d04i03i02601i05d05w06c08202a04q0by0k30jo0ro0fn0jj","0k70k7___07e041___08i05927r1n402z0c6___1hy00100602h03o03q03v03c03o03t03204505905g06l01h02t08h0k80of0rs0hw0o9"],["Viga",400,0,0,"0hd0hd0hd07e03h0ku06d0590ts0rs01m0gv0hn1ma00100a01w05104704i04004n02p00k05305e06t0e804u0610es0n90ka0q70gs0ij","0h10h10h107f03s0kq06405t0t30lr01o0i00jh1iz00000902004s03z04b04i05502e00h05m05w08e0ev05d06s0fo0mn0k90py0g30ix","0ko0ko___06p056______05t0uo18001h0gn___1ao00000002304e03k04203c03g04k02d05r05w07q0gg05606g0f10qr0ny0rs0ht0lt"],["Vina Sans",400,2,0,"0cq0cq0cq05401r0nb02b05m0rx11100i0mj0n126j00000001q04q04g04g03r04p03z00105k05m07e0bw05t0dc0oo0p10ob0p10c60cq","0ql0ql___0kr01z0nd02p09i17g0h60hd0m4___13g00000001u04f04f04b04b04n03u00106g0az0cr0oq07z0jf0op0pm0nz0pq0ds14e","0du0du___04r02b___03h0670sz0r70000ms___1vg00000101l04903z04103e03x04e02a0650670870cr0670ff0rm0rs0qs0rs0da0du"],["Voces",400,0,0,"0hv0i60hb09d04m0k608d0490xx0rs0420cm0e71j300600802g04m04104i03r04a02901i04704c04v08q03603w09p0iq0j20rc0f00k6","0hr0hr0hr09603y0jp08a0510xg1ab04x0ej0gg1ic00500902k04p04604k04s03c02h00u04u0530640bk03y04z0bm0jd0j30qy0gr0jq","0hv0i6___0a5057___04e04c0x30rs0000cx___1eg00000102304703i04003l03c03y03404904e04w09o03k04309t0lo0m00rs0ef0lc"],["Volkhov",400,1,0,"0hx0hx0hx07x02b0hn0af04l1a41oa0ad0d60ef1mj00c00903904p04f04o04o02i02q00b04g04o05i09n02g03d07p0gb0gz0ov0fm0le","0hr0i90hr0nh02h0hl0aa05714z1h90bd0e80h11m200c00903f04r04k04t05b02f01t00605305f06v0as03604f09t0hc0h20nz0fs0mp","0lx0lx___07k04m___05k0561by1ul0ax0d9___1bu00000302l04203g03n03703b03s03p05305b0690bv02s03o08m0iv0ow0rs0ig0qj"],["Volkhov",700,1,0,"0ig0ig0iq0fo02b0hk0ad05r1g71gr0aa0ew0g91kv00c00902x04w04l04s04l02k02l00b05n05y0750bi02s04e0b00hz0ha0os0g50mh","0hs0m70ir0sd01z0hj0aa06b18p1if0b40f20ib1k200c00903404y04o04x05802i01q00606406h08k0cq03f0500cu0j70h60ny0fs0vl","0mi0mi___0cu04c___05q06q1jf1lp0ah0ff___1ah00000302b04703j03s03803g03z03a06o06s08b0dx03804p0bw0p00pk0rs0j10r4"],["Vollkorn",400,1,1,"0ii0jo0ii08j03h0io09w04612o1vh0a20bi0dj1kw00e00i02z04s04304a04b03e01m01h04004d05f08z02g03l06z0fa0hj0r70g70le","0iq0iq0hr08402y0il0a60500z41ib09g0dv0gn1kc00d00i03504s04404c05902f01u01204q05906r0a903b04r0910gu0hw0qt0fs0kp","0ku0ku___08f04n___07004813z1vt09z0be___1ew00200c02p04603h03s03703i03d03904504e05d08q02d03k0790dn0ku0rs0g70q2"],["Vollkorn",700,1,1,"0ku0lp0k909u02w0io09v06a1bt1ec0dw0ee0gx1ha00e00j02k04z04b04f04f03501s01b06306g0840c30370590bb0it0hz0rr0hx0nq","0jr0kq0jr0dj02z0ik0a706s17c12c0bq0g60jf1ge00c00j02u04y04a04h05702c01y00y06h0730940ds03y05w0da0j40hz0r10gs0mq","0n50ng___0a8042___07l06g1e21ha0as0ey___1cn00300c02904c03n03v03b03l03p02q06506l07y0c70340570b10na0mn0rs0j40rs"],["Vollkorn SC",400,1,0,"0ku0nq0k906j04n0k906d04614o1xa0en0bb0cw1fh00000403104t04d04i03n05801401204204g05l09802c03d06o0cw0ik0ku0hd0nq","0kp0mo0k708i04x0kf06j0551121jk0fg0e20g21e800000403404u04h04j04k04601a00q04u05i0760aq03604p08h0g00i60kv0hr0mo","0ku0m00g707f04n0k907j0471491wn08x0be0di1e500100402p04703k03x03803j03b03a04504e05f08w02d03h0790ds0kg0rs0gs0q2"],["Vollkorn SC",700,1,0,"0ml0ob0m007y0420k906s06f1e51gp0j10ez0g31d500000402j05104l04k03x04y01900x06606n08e0cp03304v0am0kd0jo0ku0jo0ob","0lq0np0l80at03y0kf06h07219s15i0je0gv0i41cc00000402r05104l04l04x03t01d00o06r07d09v0dt03x0660cj0k70j60kw0ir0np","0n50ob0gs0a00420k908p06j1eq1gv0ah0f50gq1bz00100302804e03q03z03b03m03p02r06706o0830ce0350530b90nn0ku0rs0ij0rs"],["Voltaire",400,0,0,"0cq0cq0d007v0370ii06d03n0rn0rs0130e70fx23000100902504t04h04r04n02y02a01g03i03o04607v03g04m0c00in0hm0rr0bk0dw","0d80d80d80a40320i206g04j0rg17701p0fx0ib1zf00000802g05104r03r05g02o02f01104b04k05l0a004h0650ea0l00hl0qt0c80e9","0db0db___076042___03h03r0rr0rs0000ex___1vs00000101s04603t04e03h03m03z02l03m03q04507j03h05l0cs0ph0m30rs0bk0f1"],["Vujahday Script",400,3,0,"0r90vn___0o203t___0fh0370to18p0fv08n___1sn00900g02p04p04n04m04f02a02p01202v03f04b06002403204w0700en0o20i613a","0qn0um___0t204y___0dj04n0u10k60ij0cn___1ny00a00902105304s05n04402w02800h04504x06i09p03a04n07709z0eu0nn0jr18f","0n90oo___08x02u___07j02x0t3___08x07q___1dr00500g02903k03303p03w04004p02202s03a04605x01y02u04a0630jv0qs0hl0th"],["WDXL Lubrifont JP N",400,0,0,"0da0fm0cq08303h0ij08o03v0rv1ye0130ga0hs1y800700902o04u04004i04i02x02c01m03u03w04p0c903u0460eg0oa0io0rs0cq0fm","0dt0fs0cu07o02z0im08e04j0ra1ly0130ht0js1wi00500a02k04w04704o05602c02o00y04e04k06p0cf04j05j0fc0n40i50r20cu0fs","0fm0fm___06003h0hc04203v0rz2gp0000fm___1qo00000102d04803c04703g03604302y03u03w04q0dn03u0430cp0r10q20rt0fm0g6"],["WDXL Lubrifont SC",400,0,0,"0da0fm0cq08303h0ij08o03v0rv1ye0130ga0hs1y800700902o04u04004i04i02x02c01m03u03w04p0c903u0460eg0oa0io0rs0cq0fm","0dt0fs0cu07o02z0im08e04j0ra1ly0130ht0js1wi00500a02k04w04704o05602c02o00y04e04k06p0cf04j05j0fc0n40i50r20cu0fs","0fm0fm___06003h0hc04203v0rz2gp0000fm___1qo00000102d04803c04703g03604302y03u03w04q0dn03u0430cp0r10q20rt0fm0g6"],["WDXL Lubrifont TC",400,0,0,"0da0fm0cq08303h0ij08o03v0rv1ye0130ga0hs1y800700902o04u04004i04i02x02c01m03u03w04p0c903u0460eg0oa0io0rs0cq0fm","0dt0fs0cu07o02z0im08e04j0ra1ly0130ht0js1wi00500a02k04w04704o05602c02o00y04e04k06p0cf04j05j0fc0n40i50r20cu0fs","0fm0fm___06003h0hc04203v0rz2gp0000fm___1qo00000102d04803c04703g03604302y03u03w04q0dn03u0430cp0r10q20rt0fm0g6"],["Waiting for the Sunrise",400,3,0,"0eq0gq___0ez01q___0gx01z0m20ri05v06h___22t00500902s04z05d05u03y02o01h00f01s02002l04702402n04l08h0b10js0c40hb","0hm0rd___0qw02y___0j003q0p90t10em09t___1r100500802405505a05v04n02m01f00e03303p05t08g03k04m08g0dm0cz0kt0fn0x9","0fl0gq___09r02b___03z01z0nh0ui01b06k___1s600000402q04i04l04s03703s03e00r01s01z02l04e02102f04307r0b30nu0dv0gq"],["Wallpoet",400,2,0,"0dv0g70dv04l02b0ku0a006f0ww0rs00e0im0ge10v00h00d02g05803a04603x04f02b01806b06i0bv0e104u05u09a0kt0jw0rs0db0fm","0eb0gd0da0ez0430l309t06y0ym0mc06c0gm0gg11l00900d02505d03b03b04m04503401706h0720bg0f004z06809n0la0ki0ro0da0gd","0fm0fm___05t02b0ge___06g0ul0rs00e0gr___0x500000002c04q02o03y03a02t05f02m06b06i0dp0fv05d06008i0q60ph0rs0f10g7"],["Walter Turncoat",400,3,0,"0jo0m00i80c502w0k902b03v0t10r90520av0d71hd00000002105804e04s03x04502101b03l03z0540bo03d03v06p0c30gs0q40hd0ml","0lo0lo0hq0hp01z0jo02b04r0tn0kr08e0cj0ga1f200000002d04z04f04r04t03e02700w04g04w06x0du04804t08s0fc0h20pu0hq0pm","0lx0lx___09m041___02b0410tr0s103j0b7___1aq00000002404d03h03w03h03904803103q04204z0a403g03y06p0c40kh0rp0hb0n3"],["Warnes",400,2,0,"0j30it___1xe06y0ku0cq03w0va3fd09t0b8___1av00a00804i04f03h03t03a04i02501703t03z0560au03303j05w0iz02w0od0hy20x","0i00i0___1wc05p0kh0bq04j0uy3hv09t0dm___1c800c00803h05i03c03p04404h02600i04c04r06p0di03r04d07g0iw0500o00h11x4","0j10j1___1yv07s___0c403v0va6of0bd0b1___18300600403j04u02y03r03402v03n02u03t03y0500bz03103i05q0fq0410rs0hb1x8"],["Water Brush",400,3,0,"19q19q______05i___0cs02k0qg___0rs07r___2iq00d01203f04v04u04i02p02o02p00q01z02p03r05001u02r04c06i0cz0p019q19q","0uk0uk______053___0at04q0tb0ly0rs0bt___1pt00c00p03m05c05903p03b02p02h00e03p05407e0b803f0540810bh0dl0or0uk0uk","0tw0tw___0fq02c___07r02r0uc___0hd07t___1r600600z03503m03h03b03i04004101l02602w03x05j01t02l04106b0k30qd0bq194"],["Waterfall",400,3,0,"0k80l3___0is04m___0db0210wa___0d8064___21500e00p03t04s04u03q02702g02u02201r02402k03j01d01r02y04p0az0qq0c50pf","0w30sm___0jx06f___0ce0490wl0my0ij0b5___1pe00i00i02u05j04z04002l02m02z01b03n04d06809802w03x06o09p0bw0qn0np1gb","0wz0yq1fi0eb0440n805b0240z1___0lu05q0671c100000d03d03a03203403b02s04k03z01w02802q03z01c01p02n0490nk0r90my1dg"],["Wellfleet",400,1,0,"0hb0hw0h107103h0k708o0490s41tc04t0e10fh1kf00700902m05803g03u03q04902k01p04404g0700cl03y04k08u0i20jx0rb0gr0ks","0hr0iq0gr0ac02z0lh08b04x0rh18n03s0fx0hd1ja00500a02t04y03g03q04a04h02n01204r05e08e0ds04n05p0av0jv0l30r10gr0kp","0ku0ku___067042___06r04d0s62160000eb___1g100000302d04z03103k02x03104w02y04904j07a0c404204m08z0in0pp0rs0gs0lf"],["Wendy One",400,0,0,"0n50ng0ml08v02b0kd07p09h1930oz0gw0jp0kr18400300a01q04o04j04s04a04902o00k0950a90ea0ju0630cm0kd0py0kc0q20k90qm","0ls0ls0ks0eu01z0jh07h09f16z0id0h50kx0lt16r00200902104u04s05105603o01y00208x0ac0g10k306m0dz0jk0oj0j50ox0it0pr","0rs0rs___06t03h___06t0b61dr0my0hi0kk___0zs00000201d03v03u04403k04104l02f0b20cc0hk0mq06r0dz0pz0rq0qr0rs0ml0uo"],["Whisper",400,3,0,"0r019t___0o604p___0e302p0zh___0go06t___1wt00g01903305d04u04s02p02j01x00x02d02r03h05601n02403c04w0cc0ni0h11c5","10k1dg___0gr033___0c704v0xq0qt0hd0au___1hr00a00w02p05r03w05o03702y01u00n04504z07e0bi03604a06z09n0db0nm0hi1lp","0jz0tj___0cz042___07j02l0ym___0dw07k___1go00b01g02v03e03f04903404403e01j02802p03j04y01m02303404n0iq0q30eh0v9"],["WindSong",400,3,0,"0wc0z7___0cb07i___0eg02a114___0n506e___1qy00u01q03u05e05g03n02p02f01i00c01x02c03204d01c01p02m0470990lj0no1e8","0t7______09607o___0c804f10u0l00rs______1if00m01f03g05x05s03w03202h00z00803l04k06x09l02j03i05q08k0ai0kv0qt1bv","0r30bs___0dz072___0b70280z4___0hv06o___1hr00j01p02w03i04903b04303o03h00e01z02c03704m01b01r02i0460h30nk0dj0zb"],["Winky Rough",300,0,1,"0g70g70g70890420kg08903r0wo0ui0140ci0d51oo00600b02k04s04104e03q04c02f01303l03v04a07002v03h07i0gq0io0ph0dw0hy","0gr0hq0fr07h03y0ki08a04o0vg0pw01s0eh0ge1o000500b02s04q04304h04h03u02a00q04i04q05f09n03u04s0b80jr0j20pr0es0iq","0hd0hy___08q04n___03h03w0wm0tw0000bz___1j300000402904b03j03y03k03b04402p03n03x04d07d03103l07b0fk0kc0rs0bl0j4"],["Winky Rough",400,0,1,"0gs0gs0gs07h03h0kg08d04m0wa0uv0150e80fa1mg00600c02h04v04204f03r04b02f01104f04q05d0a603o04d0a40jb0j60pr0f20j4","0gq0ip0gq08l02y0kj0890580vn0rl02f0fx0hi1lz00400b02n04r04304g04n03t02c00o05205c06h0c504g05f0d50k90j60pv0fr0ip","0j40j4___093042___03h04s0we0sr00i0e4___1gy00000302204g03l04103i03c04c02f04g04s05h0bs03u04g09k0l10lj0rs0cq0k9"],["Winky Rough",700,0,1,"0jb0ks0iq07n01r0kp08k0700vn0ok06b0i30jl1g300500d02905104c04004w03w02100v06s0770b70go06207r0i20o80jl0q30hk0ln","0i90jp0i90k001x0js07a06y0vi07j0ay0iu0jp1ez00200a01k04x04n04r05103w02700h06p0760ca0g806408q0hl0mm0ih0p00ha0ru","0l20l2___07902c___0810790w00fc03e0hy___1ad00100501w04j03s03n04703r03y01x06x07d0bv0hv06707n0i00q90n70rt0jb0m8"],["Winky Sans",300,0,1,"0g70g70fx07q0420kb08903o0vi0w20150cc0da1or00600b02i04v04004f03p04b02f01303l03r04906w02y03m0840i10in0pi0dw0hy","0fs0hr0fs0af03y0kh08b04j0ug0pu0330en0ga1no00500b02r04s04104f04j03u02b00q04e04m05g09w03t04s0au0j80j20p40et0hr","0hy0hy___09m042___03503t0vs0u400i0c0___1kt00000302904e03k03y03j03a04402p03m03t04a07b03203p07q0hp0jz0rs0bl0j4"],["Winky Sans",400,0,1,"0gs0h30gs07j03h0kf08d04i0v80uh0150e10f51n100600b02e04v04204g03r04d02g01004e04m0590a703s04l0b10k70j50q20eh0ij","0gr0hr0gr0ha02z0kj08a0560v70r803b0fq0ho1mc00400b02l04s04404h04o03s02c00o05005a06j0c304g05e0db0k90j50pu0fs0iq","0hy0hy___08c02w___03504o0vl0rg0000dt___1hx00000302104g03l04003k03d04d02f04g04o05c0c203w04n0af0ls0lm0rs0cq0jo"],["Winky Sans",700,0,1,"0if0if0i50ao01q0jw08606p0v50rc08e0hx0jz1im00500d02d05204a04o04903w02900k06k06x0ag0g905x07o0i90ob0j70pl0ha0kq","0hr0hr0hr0wq01z0jk0870710v60m109l0jc0kq1df00400c02i05304e04t05103h01y00506v07e0d50gr06908u0i30n80j10p20gr0sl","0kz0kz___0eb021___0800750vn0mw0560i7___1b200100402004j03p03k04403p03y02406u07a0bn0i206707l0i80qp0n70rt0j80mq"],["Wire One",400,0,0,"08408e08406702m0jo0850160my0sl00007v08f34400800803c04003r03z03c04y02401w01601701c01w01801l02w0ce0jo0rd08408p","0gc0ef0p00k604t0k707g02p0m20yf0990en0g52qf00300901v04u03r04404204u02801t02n02r04n0700320410a30j10k30r209m0qx","08p08p___02f02w0jy___0160nw0sh000087___2xl00000003003i03g03c02s04b03v03k01601701a01q01701h02l0cd0od0rs08408p"],["Wittgenstein",400,1,1,"0gi0hd0er0l403h0hy07j03l18g22o07n0ab0bm1r000500903f04i04h04r04k02m02t00b03f03n04a06o01s02k05s0df0gt0ow0f20mk","0ge0hd0eh0s902w0hu07a04g12g0r706y0da0fo1rq00100c01t05b04e04v05b02z02i00a04604k05l08i02o03y0820fv0hb0o20eh0m6","0lx0lx___0eo04w___05s0421cy28309m0ar___1eq00000302v03o03f03r03703b03m03w03q04204y07d01z02o06p0cs0of0rs0hb0qj"],["Wittgenstein",700,1,1,"0hy0ij0gs0ub02w0hy07j05b1q61il0900ce0e41o400500902z04m04r04z04k02p02l00b05105f06008a01z03f0930hm0hd0ow0g70m0","0hr0ir0ir0uz02z0hk08205y1ew18708s0eh0gx1nk00300a03504q04t05305802h01u00505k05z06w09v02q04o0bg0i00h50nz0gs0jq","0lc0lc___0tk04m___05s06620l1p209w0cq___1d800000302i03p03n03v03b03k03r03e05806606t09902403g09f0m50pj0rs0g50su"],["Wix Madefor Display",400,0,1,"0jo0jo0it08f04c0j607v03e0t00rs08q0a90bq1ju00400902o04r03w04b04g03e02701s03703h04b07l02y03h05k0bz0hd0ra0hd0k9","0j10jj0ii08r0440j207q04j0tj___06f0cy0ea1jp00100a01k05e03104n05m03b02h01h04904l0600bh03s04n08h0fd0hl0rm0hh0kk","0k90kk___080058______03f0ta0rs0520a3___1d200000002d04803d03v03k03304003d03a03h04707i02z03h05p0ba0jp0rs0hy0ml"],["Wix Madefor Display",700,0,1,"0kt0le0kj07r03h0jp07s05l0w80rs0b80f00gf1gk00400a02405004404e04f03g02j01f05e05p07d0f004n05j0ba0jk0ik0rs0j30lz","0kp0kp0jp09j02y0ji0840670wm0lx0bg0g50id1f500300a02804w04504g05403002l01105x06b08k0fx0530670cv0ju0iy0rq0iq0lo","0lp0lp___09p042______05o0vs0rs05u0ex___18k00000001t04i03l04103i03c04j02j05h05u07j0ha04p05p0au0my0m80rs0gs0nq"],["Wix Madefor Text",400,0,1,"0hx0ii0hx08v0570j607u03h0sq0rr06f0au0ca1jp00400902l04r04104c04f03d02801r03b03k04d07k03103o0680dz0hg0re0g70j3","0hb0i90hb08r04t0jn07b04d0t0___05s0d70er1k700100a01e05303y04c05103m02701x04504f05l0bj03z04m0940fp0i70r20gc0j8","0j30j3___0a106d______03i0t00rs02s0at___1cs00000002b04803g03w03k03604103803e03k04907b03203m0690ct0jz0rs0fm0le"],["Wix Madefor Text",700,0,1,"0k90k90j307h04n0jp07t05m0wd0rs0a50fd0gy1gv00400a02404z04604f04e03g02i01f05e05o0780ec04o05p0c90jk0in0rs0hx0ku","0j70ko0i807n03y0ji0840680wl0ma07h0gn0ip1f600300a02804v04604i05203002k01105w06b08k0fe05506i0dr0k80iz0rq0hq0ko","0kt0kt___09l057______05n0vh0rs04x0fb___18p00000001t04h03n04103i03d04i02j05i05t07e0gj04q05v0bt0ot0mp0rs0g70mk"],["Work Sans",300,0,1,"0hd0hx0h20680570j308402d0rl0rs06908g0921m500900803504k04104q03w03y02u00702902f02y04h02302h03x0790gu0ov0g70ii","0ig0ig0hf07a0430l207w03s0rh___0130c30d61ks00200c01o05302z04m04o05502r00h03j03w05109503c0480740eb0je0pj0ge0jg","0ki0ki___05s06g______02m0s60rs022089___1cd00000002s04203b03e04603303303x02f02n03304p02b02n04k07u0iw0rs0ir0m9"],["Work Sans",400,0,1,"0hx0hx0hx07t0570j308403h0sd0rs06y0bk0c91io00700a02i05204504q04c03k02t00703d03k04g08p03603n06d0e20he0oz0gs0ii","0io0io0io07704f0jf08904h0sm0m106y0eg0fd1h400600b02l04y04604l04z03902o00604804k05z0cq04704t0950fx0hy0p00hp0jn","0ki0ki___0a0071______03u0tc0rs03j0bo___19n00000002504j03e03g04403703m03d03o03w04m0a703i0400720en0l70rs0en0m9"],["Work Sans",700,0,1,"0kq0kq0k506k03g0jk08706y0z90rs0cu0hu0im1dt00600b01z05304d04p04b03s02o00h06v0700970h505b06q0g30no0j00pw0jk0mg","0ks0ks0js07302z0jf08c07a0y50lo0bg0ik0k21b600500b02805304f04r05003f02c00607207d0bo0hc05w07n0h30my0iy0ps0js0mr","0mu0mu___09x04p______07i0zd0rs09p0i4___14i00000001n04k03q03j04103l04702j07f07n0ag0ka05w07h0h50rs0ob0rs0h00p7"],["Workbench",400,4,0,"1cz1cz___0b301j______0do1s0___0rm0nw___07700000001s03p04404904904403r01u1471ai1fu27i0nr0r90rc0rm0q60rs1cv1sz","0ds0ds0ds0ua01z0jk04905p1730o008p0hf0ji1j100000602904j04d04o04t03e02f01704r05s09g0by02404v09a0jb0jv0rq0ds0ti","1cx1cx___0dp02b______0do1ry___0ro0nt___07d00000001s03p04404904904403r01v13y1a91c628v0nu0r90rc0rl0q70rs1cw1d1"],["Xanh Mono",400,4,0,"0f20f20f20cu02w0k907102v16p21k01s0a209y1rx00600d03h03y03v04103j04h01y01z02j02w03404p01m02104k0cl0jd0rs0eh0hd","0ff0ff0ff0g601x0jt06m03x0zk0ti01t0dx0f91rs00000f01q04x03x04404e04902a01t03o04104q07o02n03j07x0gr0ja0qz0eg0ge","0f20f2___0ax02w______02v1832x800i0ai___1wi00000003603g03l03k03d03h03g03t02a02x03504b01n0200670dd0pi0rs0eh0gs"],["Yaldevi",300,0,1,"0e10e10f707j03i0j008h02f0s20rs0130940ad1yr00a00903v04a04g04704z03h01t00802c02g02t04402302l04w0a80g90mk0cv0ft","0ed0fc0fc0ea02v0jo07j03p0t2___03p0cr0ed1x100300b01i04y04504o04n04h02800u03e03s04i07p03504308n0fv0i30nu0df0ga","0f00fk___08704c______02l0s10rs000094___1op00000002g03z03k03y03m03c03u03302j02o03004h02a02t05f0ai0il0rs0cp0ig"],["Yaldevi",400,0,1,"0eh0eh0fn0790370j408402w0t40rs0130an0bk1xv00700a02s04r04d04v04803w02600902s02x03e05j02h03206d0du0gx0mm0cq0fn","0gb0fa0gb0bs0320k808l0480t70nb0310dr0f21sc00600a02s04n04a03i04r04e02900s03x04a05909b03n04o09x0hn0in0op0e90hb","0fk0fk___08c04m______0340t90rs0000al___1nt00000002804703m03z03k03f03y02u03203803m05u02o03e06x0ei0jt0rs0cp0ig"],["Yaldevi",700,0,1,"0gs0hd0hd06t02b0j408p05b0wp0th03t0gg0hq1rp00600c02c05504j04w04f03m02200a05705c06q0cf04e05t0ea0kl0i80nd0dw0hd","0ic0hb0ic0e40320k408m0670wh0uc04y0hv0iy1l800500b02f04z04h03l05004002700q05v06908q0dk0560770g30mj0it0ow0fa0kd","0hb0hv___0ar03h___06705q0w30ta00y0gz___1gw00000201t04g03p04303i03o04c02605o05w07a0e004u06p0fs0qq0mr0rs0du0k6"],["Yanone Kaffeesatz",300,0,1,"0ce0cp0c406a03h0jr07n0270qo0rs01a09s0ar27500700j03104104704703r04g02201e02402802i03u02202g0540ch0io0oi0c40ef","0cj0dh0cj0cp02f0js07a03d0ql0vq0210dc0er27e00200f01w04k04704g04m04b02701603503f04b07w03804509g0gs0if0p60bk0eg","0du0d90ef04t03h0nb04p0280q40rz00009w08m24100000a02o03m03o03r03s03h03o02x02402902g03k02202m05s0c40ja0rs0c40ef"],["Yanone Kaffeesatz",400,0,1,"0ce0cp0c407302b0jr07m03m0sy0tl0160f20gq28t00500i02f04l04a04f03y04702401803j03p04608f03b04d0c00jt0jm0r40c40ef","0d60d60c50hn0210k008b04l0sb17703k0hm0is24600400g02l04n04h03g04w04202501004d04o0620ap04d0610es0l90jj0qp0c50e6","0d90cp0ef08m02b0nb05703n0sl0t000k0fc0ct24s00000802304503r03w03n03q03x02g03i03q04607t03c0510cl0q70mo0rs0c40ef"],["Yanone Kaffeesatz",700,0,1,"0cp0cp0c40cv01q0jr07m04w0u518501y0j00ks2a100400h02704p04g04l04303y02501504q04z05w0an04h08h0j30qn0jp0ro0c40ef","0mc0mc0nu0mn0210k008d05x0v70kw0d80j80m21my00300f02f04q04o03m04x03v02600x05g0680b30fl05e0bm0ji0po0jm0qs0e70vg","0cz0cp0ef0a801q0nb05904x0u318u0140jc0g223z00000601w04703u04103l03w04202504q05105w0ab04i08z0mf0rq0nr0rs0c40ef"],["Yantramanav",300,0,0,"0gw0h70gl05r04b0ka08u02n0s10rs0160930ad1nw00900603403y04104004304i02001r02k02o03604z02b02s04p0an0hz0qp0fz0ig","0gt0gt0gt07602z0k908f03x0sc___01o0cs0dx1ov00400901n05003z04i04t04102j00x03k03y04t08m03c04a0850fn0iq0ql0ft0hs","0j40jo___05006d______02n0t90rs00008q___1ge00000002n03v03f03x03h03603l03s02m02o03504z02b02q04u0a90jc0rs0g70ku"],["Yantramanav",400,0,0,"0gi0h30gi08p0450j508h03u0va0rs0240cr0e91nx00700902k04z03q04r05502x02s00k03t03w04k09203603w08v0hp0hy0py0fx0h3","0gq0gq0gq08703y0jg08e04r0uh0ny01m0fi0gq1my00500902k04v04b04o05103202r00604l04t05u0bu0450530az0is0i30pt0fr0ip","0ij0ij___09p058______0430wi0rs0000ch___1eg00000002204903i03z03i03d04802y04204304u0a203a04108s0kx0m10rs0fn0ku"],["Yantramanav",700,0,0,"0hp0ia0h307h0390j408g05j0y90sj05c0gi0hp1lt00600a02805503v04t05702u02s00j05h05k06p0dt04d05v0el0mo0ih0pz0gi0iv","0hr0hr0ha07802z0je08e0650x50mw02o0hs0jj1jd00500a02c04y04f04r05403402j00605w06708n0el04z06v0fn0mk0iw0pu0gs0jq","0j40j4___08w042___02w05v0yw0s90000g4___1bk00000001s04e03n04103i03i04i02h05t05w07a0fz04m0600e10r40nt0rs0fn0ml"],["Yarndings 12",400,2,0,"0pm0pm___04e0430n2___0540sr0eg0ob0g2___1l600000000x03w04h04j05h04n03200t03d05207e0bs04s05607l0bt0ii0pg0pm0rd","0pr0pr___02503t______0770yk0fp0q20hm___10900000000y03p04j04x05a04l03k00b05d07v0dd0mv05c07z0cx0lo0j70p10os0rn","0oy0oy___06q0580h502g0680u00rs0mq0ew___12h00000801v03l03t04405303s03k01t05r08h0b70dx05r08e0b70dx0jn0p20od0r9"],["Yarndings 20",400,2,0,"0s90s9___04k02y______04t0s60rs0lh0f4___1my00000000s03504h04u05q04203o01403a05607p0an03j05308a0c30j40qb0pb0s9","0pn0pn___04l02z______06j0wg07b0ka0gd___11y00000000m03004h05q05o04l03400k0550810dq0l605407v0d60l40jt0pq0on0rm","0c2___0c2___07j0k30r90c4151170000___0oq0ia02502402x02x03203903902y02z02708b0g00ro0zi08e0c60km0rr0k90o00c20c2"],["Yatra One",400,2,0,"0j40jo0j408803h0jo09905i0zl0rs0as0dx0et1fa00b00e02004x04c04r04b03f02i00x05605s06z0bf03w05d0b70j90hm0q20ij0lf","0ir0jq0ir07z02z0ii0990600yc0a507d0fj0h01eu00700f01t05004h04w05602y02f00i05f0660850d404f0620cp0j30hv0pp0hr0kq","0lz0lz___08k042___07j05w14b0rw07v0e6___17f00100601n04g03r04f03i03i04702705t05x07l0d503x05f0bq0mr0ll0rr0ii0q1"],["Yellowtail",400,3,0,"0qh0o61l00el03g0f70be04h0r71060et0ct0dg22000e00f02j05f04m05a02x02r02j00y03w04m06608z03q04s06x08y0f40p50n118w","16e0tv___0cv04t0fs0ad05j0sg05p0jg0ew___1ne00b00g01l05g04t05803t02t02h00x04q05p0940ce04l06a0910cc0ff0p20p21h0","1z71yw48s0ex04x0na0b104r0r80ui0rs0bv0c11kj00600901r04d03o04003604004q01r04f04y06t09v03z0510710930ml0ra1y12ta"],["Yeon Sung",400,2,0,"0gz0gz0ge07c02x0i50al0440tl0mx04q0cw0ek1nx00900c02604z04704305f02r02b01b03t04705509d03g04b08h0gh0gz0q10ft0hk","0gr0hq0fr09o01z0hn0b304y0tj16303e0f40he1lb00a00b03104o04804s05002d02m00i04l05206o0ch04c05e0b80il0h00pv0es0iq","0hy0hy___08z03h______0460tm0h900y0cx___1h200000001k04m03k04403l03l04u01y03x04905909q03l04d08m0i60m30qx0fn0jo"],["Yeseva One",400,2,0,"0lc0lc0kr0h802w0k708c06n2md0wi0aa0do0em1g900600902d04b04g04m04003x02801h05h06m06y07s01i0410c50jy0j90rr0ig0o8","0li0li0kj0bb02y0jj0860771uw0x809t0fv0ho1f800500a02k04a04d04j04m03k02801a06d07707p08w02g05u0f80lk0j00ro0il0mh","0lx0lx___0ed04m___02w06s2u819q0730dk___1cn00000002403r03v04403h03s03w02t04t06s07208101e03w0bp0pd0ou0rs0hw0pd"],["Yesteryear",400,3,0,"0wu0st___0ge03r0ay0ad04j0tw1210ij0by___2a200h00o03605u05803k02o02s02r00p03y04p05r07h03204w0860bf0ag0pe0j11cz","0y60ue1bh0ev03c0c10ar06a0wn0o30m80e30gw1jw00f00j02x05n04z03w02u03c02l00o04w05z08i0bo04o07q0b70es0bl0pv0ql1bh","169169___0pj03h___0aq04g0rd0v10h30bu___1yj00200501r04i04504f03p03z04201403v04m05k07g03l05608l0ck0il0qm0lf1o7"],["Yomogi",400,3,0,"0fn0fn0fn03p0420hy05s02b0pe0p801608j0a61kc00000b02o04k04704n04w02c02702002402b02t04k02802n04c08m0fp0r70eh0gs","0fr0fr0fr06h02y0ia05i03m0q20dp01p0cb0ew1i900000802304w04a04t05g02802h01d03a03n04s09a03h04907m0dc0gq0qx0es0gr","0g20g2___05f03g______0280p40ri00008j___1jz00000002v03h03d04e03o02q03n03p02202902m04702802k04p08u0l50rs0ex0gn"],["Young Serif",400,1,0,"0lp0nq0jo0ft01r0ij07n05i1711lk0g30dw0es1k200800j02s04y04304e04i02z02101e05905w07f0bf03604b0990hx0hy0ra0ij0sy","0l10mz0i30wk01y0jb0820611311dj0bx0fr0gx1ke00600j02w04t03x04705103502101305p06f08i0cw03z0570bd0jd0ir0ri0il134","0q20q2___0bl02w___0840651b11l50gk0ec___1cv00300802d04c03h03t03b03g03u02x05j06707p0cm03704g09s0ks0n70rs0k90sd"],["Yrsa",300,1,1,"0fn0hy0fx0aj0370hn08b0310zn29y06f09t0bs1pp00900903t04n04704p04s02z01w00b02w03603t07k02102i0590ap0gy0nr0eh0jo","0g00i00g00g30300ie07o0490xt0uu03c0dt0fg1q700300d01x05l04e04w05n02d02a00b04004f05v09l03404007v0fc0h20n40e00i0","0k10k1___08104f___07303h1242lk0390ac___1dv00000403604103c03603o02p03p03x03c03l04708v02902p06b0b10nl0rs0eq0o5"],["Yrsa",400,1,1,"0g70j40g70a302w0hy08903r1461wb05w0bk0d71p500800a03e04w04c04s04o03101w00b03n03w04m08j02902w06m0ef0hd0o00eh0jo","0gq0ip0gq0h901z0ho08a04o10w1k706t0eb0gr1n500700b03f04y04d04t05f02h01p00804j04y06e0a203504608z0gu0h70nv0er0jo","0kl0kl___07j044___07204b17926m03b0bx___1de00000402t04503g03803q02v03t03o04804g0560a702i03407v0eq0o40rs0fw0o4"],["Yrsa",700,1,1,"0hy0lf0hy0b001r0i308605z1df1b909t0fl0hg1mv00700b02q05904m04x04l03401v00905v06607f0br03004m0c00ip0hy0oj0g70lf","0hr0kq0hr0oj01z0if08a06k1861330aq0h60j71kl00600c02x05504j04x05b02n01n00706e06t08z0db03u05q0e00jj0hy0o10gs0lp","0ml0ml___08u03r___07706w1iw1gw0730g0___1c800100402704a03n03v03503n04702q06q0720840dc03a04w0d70pv0oc0rs0j40ph"],["Ysabeau",300,0,1,"0fm0g60eg0b104m0g60b302s0v40rs0740930b71p900e00j03005504j05e04n01l02600g02m02u03d05e02802n04t09x0eg0mm0dv0gr","0ey0ff0eg0c403v0go0aa0400ur0rx0610c00f71pe00b00j01s05n04p05c05b01m02400j03m04205208v03404207x0dd0ek0n60di0ge","0hm0hm___0f005v___0880320v50rs045091___1bj00a00a02i04903g03j04c02k03a03b02y03303q05m02h02y05509m0g10rs0fa0ni"],["Ysabeau",400,0,1,"0f10g70eg0cb04n0g70b30350vk0rs06s0a40c41op00d00k02u05b04l05e04k01l02700f02z03703t06i02h02z05q0bf0eg0n70dw0hc","0fn0gm0fn0c503x0hb0bx04c0uy0m207p0ch0fc1lw00d00j02y05604i05405501j01y00k04304e05k0a803j04f08p0f00f50ok0eo0hl","0hm0hm___0fn066___08803h0w60rs04x0a2___1b800a00b02d04f03j03i04b02m03c03503c03k04706i02s03a0620br0gh0rs0fa0ni"],["Ysabeau",700,0,1,"0gh0h20g70bl03r0gs0b30510xj0rs0990e00gh1mq00d00k02h05g04t05i04d01q02600e04s05606a0bl03u04z0b40gt0fb0of0eg0hx","0hl0hl0gm0bd03x0hb0bx05v0xk0wa09w0ff0i71j300c00j02n05704o05b04z01n02100i05f05x07w0d404n0640d00ir0fx0ov0fn0il","0it0it___0ed05a___08t05o0yq0rs07h0f5___18p00800b01y04m03q03m04a02r03w02g05f05t0740ea04g05j0bu0ne0i80rs0fa0oo"],["Ysabeau Infant",300,0,1,"0fm0g60eg0b30570g60b302t0v50rs05o0950b51n400c00702x04y04a05704d02102z00k02n02u03d05c02902o04q0ao0em0pf0dv0gr","0ff0ff0eg0ba03v0go0ac0410uf___04x0c60f21o200c00801j05h04f05505102102x00p03n04205008t03604407r0dp0fg0p40di0ge","0hm0hm___0ed06h___0al0320uy0rx03a08z___1a500600302g04203d03g04202s03m03r02y03403q05n02h02y05509y0ie0rs0fv0ni"],["Ysabeau Infant",400,0,1,"0g70g70eg0av04x0g70b40360vv0rs05k0a30c41mt00c00702q05204f05604b02103000j02z03703t06d02i03005i0ce0f10pg0eg0gs","0gm0gm0fn0bd04w0ha0by04c0uo0lz06t0cu0ff1kf00c00702s04z04a04y04x02002o00p04304d05e09w03j04g08l0fh0fx0pt0eo0hl","0hm0hm___0f0072___0am03i0w40rs03j0a2___19x00600302b04803h03f04102t03q03k03c03k04706l02s03c0600bs0ix0rs0fa0mx"],["Ysabeau Infant",700,0,1,"0gr0gr0g70b00420gr0b20530xo0rv07c0e90gd1le00c00802b05a04o05904602602x00g04t0570690bs03w0510bw0h10fw0pq0f10hx","0gm0hl0gm0b303x0hb0by05x0xj0wt08q0g00ic1ic00c00702e05304h05204t02402r00l05g05z07p0dh04o0620dc0jx0g30pu0fn0il","0it0it___0dz05w___0b605q0ym0rs05v0et___17i00600401u04h03m03j04202z04c02q05f05t0730e904h05m0c60ni0lu0rs0fa0oo"],["Ysabeau Office",300,0,1,"0fm0g60eg0b00570g60b502s0uq0rs05s0940b71mx00a00902x04v04c05704d02103000k02n02u03d05c02902p04s09z0el0pf0dv0gr","0ff0ff0eg0ah03v0go0ae0400u30sp05s0c40f11np00a00901l05f04i05405002202y00p03l04105108t03604507r0cs0fg0p40eg0ge","0hm0hm___0ea06h___0al0320ur0rx03a08y___1a500600302g04203d03f04302t03m03r02x03303q05l02h02z05509p0ig0rs0gg0ni"],["Ysabeau Office",400,0,1,"0g70g70eg0aq04x0g70b60350ve0rs05o0a20c41ml00a00902q05004g05604c02203100j02z03703t06h02i03105r0br0eq0pg0eg0hc","0gm0hl0fn0ax04w0hb0by04c0uf0lw06j0co0ff1jz00a00902s04x04b04x04x02102p00p04304d05h09v03j04j08o0f60fx0pu0fn0hl","0hm0hm___0et072___0am03i0vz0rs03m0a2___19w00600302b04803g03f04102u03q03k03c03k04706l02s03c0600bt0iz0rs0fa0mx"],["Ysabeau Office",700,0,1,"0gs0hc0g70b40420gs0b70530xj0rs07c0e00gk1l000a00902b05704o05804702802y00h04t05606a0br03w0520be0gz0fv0pq0eg0hx","0h40hl0gm0bh03x0hb0bz05x0xg0vb08w0g70ia1hw00a00902f04z04h05204u02502r00l05f06007t0da04n0640d40jt0g30pu0fn0il","0it0it___0dx05w___0b605q0yk0rs05v0ey___17k00600401u04g03m03j04203004c02q05f05t0730e904h05n0c60nj0lx0rs0fa0oo"],["Ysabeau SC",300,0,1,"0hm0hx0hm09z05a0je05w02y0v90rs09u08x0ab1hn00100e02u04v04l04404q03u01a01502t03103m05y02d02t05009n0es0jz0h10kk","0hu0hu0hu0b904g0k705k0470uw___0690bn0dv1h700000a01l05e04m04z05403p01e00r03w04a05f0ak03h0480800dm0fx0ko0gu0jt","0hm0i7___0ez066___07s0320vb0rs04q08z___1az00600b02j04603g03i04702z03903902x03303q05l02h02y05309j0go0rs0fv0ni"],["Ysabeau SC",400,0,1,"0i70i70hm0af05l0je05w03c0vz0rz0ak0a20bf1h600100e02p04y04o04404x03o01a01203803g04407402n03705x0bn0fb0jz0fv0jz","0ib0ne0ib09n0530k006f04k0vd0mv0930cq0eb1fk00000d02v05004v03q05503p01e00q04904m05y0bp03q04l08u0eu0fo0ki0ga0kc","0hx0hx___0f206h___08803h0w30rs0500a2___1ar00600b02e04c03k03i04602z03b03303c03k04706h02s03a05z0bm0h40rs0fa0ni"],["Ysabeau SC",700,0,1,"0it0jz0it09m04p0jz05y05g0y10te0f00f40ge1eb00100d02905904t04a05803c01h00v05905n0770e504705a0bm0k20h60kk0h10l5","0ip0m50ip09x03y0jw06a0660yq0s10fb0gd0hh1c200100c02f05204p04v05603401h00n05r06c0940el04q0650d40jw0h30kt0hq0ln","0it0it___0eb05a___08y05o0ys0si06y0f4___18500600a01z04j03q03m04803103v02f05g05t0740eb04g05i0bq0n90ji0rs0fa0oo"],["Yuji Boku",400,1,0,"0hy0it___08d06y___08p03v0q71c80ah09z___1c300300d02005104p05804202r02x00o03903w05908003d04b06j0a30fa0p50g70ml","0hv0iu___08e06y___07r0540rv___05w0cx___16j00100b01804u04o05404u03102201r04b0520780an04e05r08t0d70gt0qm0fv0nt","0o70o7___08607i______03s0qh1dl09m09i___15j00000001i04604604u03a03s04m01h03903u05d08b03a0450640970hb0qi0ig0qi"],["Yuji Hentaigana Akari",400,3,0,"0ly0ly0mi0670420n303402l0q60pl0c80890941jo00000402a04e03n03p04004e03s01i02h02q03m05x02f02t0480800io0pe0k70o9","0m10l20mz06f02v0ls03d03s0qg0oh0bx0bt0cj1j100000302o04903l03t04i04l03401703h04005g09c03i04706g0bf0if0p20j50ny","0mh0nn___08g04m___04902o0ra0qm0a508i___1cf00000702o03w03c03004303i04s02d02i02r03m05o02f02t04807t0kd0qm0ig0py"],["Yuji Hentaigana Akebono",400,3,0,"0ly0ly0mi0670420n303402l0q60pl0c80890941jo00000402a04e03n03p04004e03s01i02h02q03m05x02f02t0480800io0pe0k70o9","0m10l20mz06f02v0ls03d03s0qg0oh0bx0bt0cj1j100000302o04903l03t04i04l03401703h04005g09c03i04706g0bf0if0p20j50ny","0mh0nn___08g04m___04902o0ra0qm0a508i___1cf00000702o03w03c03004303i04s02d02i02r03m05o02f02t04807t0kd0qm0ig0py"],["Yuji Mai",400,1,0,"0ij0je0ij08w0580ku05a03s0s01gs06f0c90dn1gy00000d02804z03s04b03y04802q01903i04005e08n03c04206k0da0hy0qm0hd0n5","0ip0j70ip08e04x0jo06304p0rn14e06f0es0e21db00000b02i04w03u04904p03r02s00u04e05207i0bq04b05b08y0gw0i30q20hq0nn","0lp0lp___08w06y______0400tt1nh05r0c8___1bn00000001x04f03g03m03404304y02803i04305908o03704206r0cj0lj0ra0gs0nq"],["Yuji Syuku",400,1,0,"0ij0j40hy07b0840jo07503i0z12060810b10bw1at00300c02s04p03p04803y03p02902303803p04g07m02e0320620cc0ik0rf0g70ku","0hv0iv0iv07907y0jc06p04l0x10md04a0e90f41bd00000c01m05903t04b04y03g01p02f04904r06409803d04d08j0gc0iv0rn0fw0jv","0jo0jo___07z08p___02b03m10623o03u0aw___18f00000002i04703803p03903603t03z03d03s04f08a02h03106k0bw0oy0rs0dw0ob"],["Yusei Magic",400,0,0,"0hy0hy0hy0ek02b0ij07604v15s0qh08v0dz0en1oj00300a02604p04e04p04h03402g01g04k04x05507q02p04l0ba0in0hy0rb0g70j4","0hq0hq0hq0m401z0jg08405h11e0l005p0fv0gv1m300200a02a04l04a04j05103902d01505805j06a0b403q05j0db0k80i60rp0fr0jp","0hd0hd___0ae02b______04y18s0qc00g0ed___1kc00000001v03y03u04803g03t04102m04o04x05307p02l04m0b70p20n70rs0db0j4"],["Yuyu",400,3,0,"08r08r08r05s04o0dk08c02f0mx0qz00k0db0e12aa00500c03005d05i04z02r02f01y01e02802f02s04g02g03l08r0ew0d00q208609c","0a60a60a60560320dy08k03z0nt0hz0130hf0jl1zt00300c02g05n05s04c03b02h02c01203h03w05m08404c07i0cr0le0dk0qm0960a6","08n08n___06g041______02g0lz0sk0000cx___23h00000002604504j03t03803p04002902902e02n03x02l04m0av0ms0je0rs08209s"],["Yuyu Short",400,3,0,"08p08p___07103h___07t02j0ry0of0000d1___1ku00400h03c07z04702u02c02n02m01a02702f02x05h02602r0520d005s0p607j0af","09w08w0bd0e403y09607g0580ul___03l0ha0ko1s100100f01x07x05402y02v02q02n01903c03t05z09103u05x0a60jy06u0qj07w0av","08n08n___06f041______02g0lq0t20000d1___2ae00000002604504j03t03703q03z02902802e02n03w02m04o0as0mn0jz0rs07h09s"],["ZCOOL KuaiLe",400,0,0,"0j40ku___0cb03h___0420460rt0s50b00ce___1cp00000302s04x04104i04803d02k01b0450490610en04504807z0gc0gs0qm0f20ow","0js0ks___0a602z___04h04s0s30l708w0dw___1bd00000101r05a04604p05103b02o00w04o04y07o0fq04o04z09p0gk0hw0q30gt0nr","0nq0nq___0bb042______0440rz2xd05z0d3___17z00000002404t03403v03j03004l02t04204605o0f804204407f0g00j60rs0b00ow"],["ZCOOL QingKe HuangYou",400,0,0,"0da0fl0da08503h0ik04203v0rx1y00130g60hq1x800000602o04r04604l04i02y02d01o03u03w04q0ca03u0450dx0mf0in0rr0cp0fl","0db0fs0ct07s02z0im04804j0r71lx0130hu0ju1v100000502j04u04d04s05502e02p00z04f04l06w0ch04j05o0ex0lo0i40r20ct0fs","0fm0fm___06203h0hc04203v0rw2hn0000fn___1qj00000102d04803c04803e03604202z03u03w04q0dn03u0430cm0r20q30rt0fm0g6"],["ZCOOL XiaoWei",400,0,0,"0ir0ig0ir0880440jx0890451an0rs06a0b20cd1j400500902m04904a03v04n04001t01x04304804m0680230340730h30ir0rp0ge0jx","0ht0ht0hb0db03z0k707l05113w0rb0540dw0fn1jl00200901h04l04804j04t04202d01g04v05405t09003204h0ad0ij0iv0rk0fu0js","0j60j6___0ap05t___07x0431a40rs04z0af___1di00100302h03n03p03a04803k03803k04104604m05x02003306u0f40k90rs0ga0of"],["Zain",300,0,0,"0g70hy0g707z04c0hy08c02y0r50rb03r09k0bk1ns00700902t04s04204h04y02b02501u02t02z03k07302r03605k0bo0ga0r70eh0ij","0ht0ht0ft06e03y0ia07m0450rw___03z0cf0ex1o800200c01j05c04804k05p02f02c01b03p0450590aj03q04g08i0el0gu0qr0eu0is","0ij0ij___08505s___05602w0r90rs00009m___1h000000202h04403a04803d03303s03g02t02x03g05r02q03405l0ar0j80rs0eh0j4"],["Zain",400,0,0,"0gs0hy0gs08u0420ij08a0480tg0rs0520ch0eq1lp00600a02b05204504j04s02l02h01h04104905b0bd03u04g09f0ge0h10ra0eh0j4","0il0j30hm07703x0j908a0530tu0md04t0eh0gk1j700500a02e04w04404k05d02b02g01904p05406t0dt04j05c0b90hk0hv0rm0fo0jl","0j40j4___09j058___0580470tg0rt0000cs___1eg00000202104f03f04603e03804d02r0420490530ci03v04f0920iw0li0rs0eh0k9"],["Zain",700,0,0,"0j40jo0hy07103h0ir08b05a0u00rs0930ej0hf1iz00600b02405504804l04n02s02l01b05305c0750er04r05n0cr0iq0hy0rb0gs0ku","0j40jm0ho06v03g0jb08c0610um0ki06y0g00io1fu00500b02705004704j05702k02k01505o0640930fv05b06i0eg0kd0i00rn0ho0kl","0jo0jo___090042___05j05b0tu0rs01c0f3___1c300000201t04i03j04403g03b04l02g05505e0730fs04t05o0ci0nv0mr0rs0f20ku"],["Zalando Sans",300,0,1,"0i80ij0hy09504n0jw07k03e0t70rs04n0aq0bu1ki00400902i04q03t04a03y04502901r03a03h04506z02w03i0640dy0i60rf0g70jo","0i90i90hb07q03u0kh07a04a0ss___0370da0ef1le00100a01d05103u04904n04702801x04204c05e0b703t04k08r0ga0j50r20hb0j8","0jo0jo___09h058______03g0uk0rs02a0al___1e800000002a04703e03y03j03704103903c03h04507202w03f06f0ce0kx0rs0fn0m0"],["Zalando Sans",400,0,1,"0ij0ij0i808z0420jw07k0400uu0rs05k0cb0dg1jh00400a02c04v03v04b04204002e01n03u04304x09403d04207r0gm0im0rs0gs0jo","0ip0jo0i707s03y0jo08304r0tz0n606y0e10ga1iz00300a02h04u03y04d04x03902i01504k04w06b0cd0480510a40i40j10r20hq0ko","0k90k9___0a9058______0430wb0rs01b0c2___1d200000002304b03f03z03j03904902z03x04404x0a703e04007m0fs0ll0rs0f20m0"],["Zalando Sans",700,0,1,"0ku0lp0k907r03h0jx07j06x0y00rs0bg0hd0io1dk00300a01y04y04804i04a03k02n01b06n07009h0he05h06y0gq0p00jo0rs0j40ml","0k80l70jq09l03g0jm0840780xi0lt0a00if0kq1bl00200a02404v04704i04y03702m00z06x07h0bu0hq05w07j0h10nv0jv0rr0ir0mp","0n50n5___089042______0750yg0rs06u0ho___16k00000001o04g03o04503g03i04n02b06z07a0af0jf05q0760gh0rm0o00rs0k90ow"],["Zalando Sans Expanded",300,0,1,"0ob0ol0nq09303h0jx07o03t0xq0rs0hi09x0ay1ao00400902o04q03p04803x04402801x03k03w04w08e02z03a0520a60hz0rf0lf0r7","0nz0pw0n10bo02w0ki07904n0w2___0ic0c50d21bj00100a01h05603o04604j04702802404a04r0670dk03s04806m0du0ic0rp0l40ru","0qx0r7___0b304x______03u0yh0rs0ga09y___14i00000002e04503a03y03j03003x03k03l03v04t08p02z03a05c0ac0jv0rs0fn0sd"],["Zalando Sans Expanded",400,0,1,"0ob0ow0ob0a903h0jx07o04d0yh0rs0gz0b40c11a100400902h04w03r04604004002d01s04304g05p0be03c03q05x0cg0i40ri0lf0rs","0o10py0n20au02w0ki07a0510x3___0hs0cs0dl1am00100901d05703r04604o04302902204m05506t0et04004g0780ey0if0rp0l50rv","0r70r7___0bw04n______04e0z40rs0gd0au___13v00000002804c03a03x03h03204903a04504g05l0d003e03p0670c70kg0rs0j40sy"],["Zalando Sans Expanded",700,0,1,"0qx0tj0q20bl02w0jx07m07r10y0rj0lf0go0id14700300a01z05104404g04d03i02p01c07e0830bm0n205l06c0dd0kc0j80rs0ob0uo","0qm0tk0on0bn02y0jn0830841150l90m00hb0j813700200902504z04304h05003302p01107p08k0da0nb05u06s0e70km0j60rr0on0vj","0t80t8___0as03h______07y11k0rs0ij0gn___0xn00000001p04j03j04303f03b04s02g07n08a0cn0px05v06h0cx0pp0nd0rs0j40v9"],["Zalando Sans SemiExpanded",300,0,1,"0ku0ku0k908g0420jw07m03k0v70rs0b00a70bh1g100400902l04r03r04a03x04502801u03e03n04h07g02x03e05n0c60i30rf0ij0ml","0k60l50j808q03u0kh07a04f0u8___0a50cj0dl1h000100a01e05403q04904l04702902104404h05p0bp03q04d07i0en0j50r20i90n2","0ml0mv___0aa058______03m0wg0rs0660a6___1a000000002c04703b04003g03303z03e03g03o04f07t02y03c05w0b70kh0rs0g70ob"],["Zalando Sans SemiExpanded",400,0,1,"0ku0ku0ku0a60420jw07n0450wf0rs0aa0bf0cw1f700400a02e04v03u04904203z02d01o03y0490590ab03d03w06z0f00ij0rs0ij0n5","0ln0mn0jo0av03y0jo08404x0vk0m90b00di0f71ew00300902i04u03w04c04x03802j01704m05206n0dc04604s08s0ge0iz0rp0jo0nm","0ml0ml___0bq04x______0480xo0rs05q0bj___19200000002604c03c03z03j03404903404004a0570bq03d03u0720dr0l10rs0gs0ow"],["Zalando Sans SemiExpanded",700,0,1,"0n50ow0ml07w03h0jx07m0790z80rs0f90gx0io19g00300a01y04z04604h04b03j02p01c06x07h0a90jl05h06l0f10mu0jo0rs0lf0q2","0mp0oo0lp0bk02z0jn08407n0zb0lk0fn0hr0jz17u00200a02404y04504h04z03502o01007707x0c50jv05t0710g10n50j60rr0kq0pn","0ow0ow___0ak042______07g0zs0rs0c40h4___12x00000001o04h03m04503f03f04p02d07807o0b00m105r06s0f10r00nu0rs0hd0r7"],["Zen Antique",400,1,0,"0it0je0hy07202b0i008404n1gp1mc0cu0bo0dn1k200700a03204i04604g04c02m02b01w04e04r05c07q01x0300780ga0hy0rs0hd0ku","0io0jn0io08202y0ic08705f19j1az0bz0eg0gd1ip00700b03304i04404f05402602e01k05505l06i09n02r04c09r0i10hx0rr0ho0lm","0ml0ml___07d042___04n04x1px1va06l0bo___1eb00000102q03s03k03s03903f03s03j04f04x05i07h01p02u07l0hh0pi0rs0f20ph"],["Zen Antique Soft",400,1,0,"0it0je0hy07202b0i008404n1gn1ms0cu0bo0dn1k000700a03204i04604g04c02m02b01w04e04r05c07q01x0300780gc0hy0rs0hd0ku","0io0jn0io08002y0ic08705f19i19w0bz0ef0gm1ip00700b03304i04404f05402502e01k05405l06i09m02s04d09q0hz0hx0rq0ho0lm","0ml0ml___07d042___04n04x1pq1va06l0bo___1eb00000102q03s03k03s03903f03s03j04e04x05i07g01p02u07l0hh0pi0rs0f20ph"],["Zen Dots",400,2,0,"0s80uv0rd07j03i0jn09606e0wy1wd0ml0h30gr11x00900702v04v03n03q05303b02b01k06206l0c70qb04u05f09t0k50jz0rr0og0w0","0rp0uo0qq08b02z0jk09906u0xu0la0mw0ha0hx11y00600802d05303k04d05102z02x01606i07a0fb0p605905x0bg0jk0ju0rs0nr0vo","0vz0vz___0aw04d0gr___06r0yp0rs0la0h5___0uj00000002g04f02y03p04a02u04a02x06k0790c00u305e05g09c0lo0o90rs0p00xq"],["Zen Kaku Gothic Antique",300,0,0,"0fn0fc0g706j0580is08p01t0oz0rs03k07007r1np00900703a04803k04a04b03o01z02201q01v02a03j01r02203705i0gt0qp0eh0hy","0gc0fe0gc05t03u0jl0880370pa___0170ba0cd1os00400901q04u03n04a05b03i02601z03003a04b07p03603u05v0cc0he0qt0ef0hb","0ij0j4___06o05s______01t0pq0rs00j068___1fz00000003803f03203o03v03103i04301q01u02703a01r01z03b0530i40rs0f20k9"],["Zen Kaku Gothic Antique",400,0,0,"0gq0g50hb05y04m0j108n02u0qq0rs04q09j0aw1m300800802n04q03p04a04f03i02102202r02w03i06a02o0340520bd0he0rc0f00hv","0ff0ff0ge09k03v0iy07h03x0re___01n0cp0e61nv00200b01e05603v04d05803a02e01q03k03y04y0a203m04a0800ey0i60qw0eg0ib","0jm0jm___06c05s______02u0r70rs00j09c___1eq00000002g04503803p03r03303l03v02s02x03f05q02o0330560ao0k70rs0g50lc"],["Zen Kaku Gothic Antique",700,0,0,"0hb0gq0hv08e0410j307q04x0te0rs07c0f00gi1kh00400b02205104204d04l03602j01k04s04z06b0dk04i05c0bn0j70ih0rs0g50j1","0hl0h40hl08u03x0jb08605q0u00lk04x0gf0ii1hd00400b02704w04404d05403002g01b05b05t0800e90540680dn0jt0iu0rn0gm0kj","0j10j1___0a3041______04y0st0rs0350es___1br00000001t04h03f03u03o03a04k02r04v05406j0f604k05f0aw0nd0n20rs0fk0lc"],["Zen Kaku Gothic New",300,0,0,"0fn0fc0g706j0580is08p01t0oz0rs03k07007r1np00900703a04803k04a04b03o01z02201q01v02a03j01r02203705i0gt0qp0eh0hy","0gc0fe0gc05t03u0jl0880370pa___0170ba0cd1os00400901q04u03n04a05b03i02601z03003a04b07p03603u05v0cc0he0qt0ef0hb","0ij0j4___06o05s______01t0pq0rs00j068___1fz00000003803f03203o03v03103i04301q01u02703a01r01z03b0530i40rs0f20k9"],["Zen Kaku Gothic New",400,0,0,"0gq0g50hb05y04m0j108n02u0qq0rs04q09j0aw1m300800802n04q03p04a04f03i02102202r02w03i06a02o0340520bd0he0rc0f00hv","0ff0ff0ge09k03v0iy07h03x0re___01n0cp0e61nv00200b01e05603v04d05803a02e01q03k03y04y0a203m04a0800ey0i60qw0eg0ib","0jm0jm___06c05s______02u0r70rs00j09c___1eq00000002g04503803p03r03303l03v02s02x03f05q02o0330560ao0k70rs0g50lc"],["Zen Kaku Gothic New",700,0,0,"0hb0gq0hv08e0410j307q04x0te0rs07c0f00gi1kh00400b02205104204d04l03602j01k04s04z06b0dk04i05c0bn0j70ih0rs0g50j1","0hl0h40hl08u03x0jb08605q0u00lk04x0gf0ii1hd00400b02704w04404d05403002g01b05b05t0800e90540680dn0jt0iu0rn0gm0kj","0j10j1___0a3041______04y0st0rs0350es___1br00000001t04h03f03u03o03a04k02r04v05406j0f604k05f0aw0nd0n20rs0fk0lc"],["Zen Kurenaido",400,0,0,"0eh0fn0dw05x0420g708p02c0ph0rs01408m0bc1qp00700803d04i04804m04p01t02402302a02g02y05802b02p04g09f0f70ra0cq0g7","0ef0fe0ef09u02w0gp07j03r0rj0jc01n0cf0f81s800200a01r05304804p05c01x02h02003e03r04t09203e04407o0dv0g90r00ci0hb","0hb0hv___05205s______02d0pv0rs00008g___1hj00000002u03r03703v03g03303e04802b02f02v04l02b02m04j08s0ja0rs0fk0j1"],["Zen Loop",400,2,0,"09d0ca08s07d03i0iw08101a0km0rs00006908n2j400900903j03z04003v04x03a01q02001901b01h02201b01u03c0600g80r508s0ca","0ck0d209o0ir01y0iv07d02w0m210i05w0ca0gx2iy00100c01h04t04804m05b03702c01h02p02y03l06k03704b08p0fr0he0q409o0jc","0ca0cl___06003i______01a0m40rs000063___26p00000003403g03h03b04o03a02z03i01901b01g02101901r03a05i0gr0rs0aj0en"],["Zen Maru Gothic",300,0,0,"0fn0fc0g706g0580is08p01t0oy0rg03k06y07q1nl00900703904803l04b04b03n01z02101q01v02b03j01r02203705i0gt0qp0eh0hy","0fe0fe0ef06j03u0io0880380pc___0170bl0cx1op00400901q04t03p04b05c03g02701x02z03a04b07q03603v05x0cf0he0qs0ef0hb","0ij0ij___06o05s______01s0pk0rr00j067___1fr00000003703g03303o03w03203i03y01q01u02703b01r01z03b0520i20rs0f20jo"],["Zen Maru Gothic",400,0,0,"0gq0fk0h005v04m0j108n02u0qn0p704509k0aw1lw00800802l04r03q04b04g03h02102102r02w03h06a02o0340510bf0he0r90f00hv","0ff0ff0fw08c03v0it07h03x0r9___0130ck0e71nr00200b01c05603x04f05b03702f01n03k03y04z0a503m04a07x0eu0i60q50eg0hc","0j10jm___06c05s______02v0r70ph00j09b___1ej00000002e04603903q03s03403m03t02s02x03f05q02o0340570ap0k70rs0fk0kr"],["Zen Maru Gothic",700,0,0,"0gq0gq0hb08i0410j307q04x0tg0na06a0ev0gk1jz00400b01y05304404f04m03502k01i04r04y06b0da04i05c0br0iy0ig0ro0fk0j1","0hm0h50hm07s03x0jc08605q0u00g504a0g70ig1gw00400b02204x04504g05602x02h01a05a05t07z0e60550680dk0jx0is0rn0fo0jl","0j10j1___09z04m______04y0sr0nh02p0ex___1bg00000001p04i03h03w03p03b04k02o04v05306j0ev04k05g0b20ng0ms0rs0fl0lc"],["Zen Old Mincho",400,1,0,"0hd0hn0g707x02w0ge07403o1771qu09g0aj0ck1o500400a03e04k04a04k04801x02c02503f03q04906n01u02p05e0cu0g80rs0f20j4","0gw0ig0fu0ar0240gq07s04w12g1cm0bz0dy0gz1lg00200c03i04v03c04y04u01j02l01u04n05205z09e02y04e08f0g60h10rq0fu0k1","0mv0mv___07o058______03q1ab2g003p0a6___1fi00000003203s03a03o03803603o03z03n03v04d06j01r02j05n0bu0ol0rs0hd0ob"],["Zen Old Mincho",700,1,0,"0ij0jo0hd07502w0hj07m04d1e11n90br0bh0df1kx00700a03604i04804g04j02602b01z04404i05107g01v02w06p0fd0hd0rs0gs0k9","0io0jn0ho06y02y0hm08505516w1ca0br0eb0go1jn00600b03504j04304g05501z02f01m04w05b06808y02s04c08y0h90hu0rr0gp0km","0ml0ml___07h042___04n04k1kh1yq06l0b7___1eh00000102t03s03h03q03903c03r03n04804l05607701q02q06x0fn0p60rs0f20ph"],["Zen Tokyo Zoo",400,2,0,"0b00ku09u0ed0420dw___01i0qr0rs07n0bq0e84bs00000002j06705h06e02101q02b01501f01h01s02s01e01l02o04o0dd0ow08o0f2","0da0ko0bt0uo01z0dl___06y0vu0kd0bx0i70l01hj00000002m06605o06702501q02b00y05v07d0b00fm05r07z0cz0ic0d80py0au0rk","0hy0ku___0dc058______01h0qk0rs06y0bf___42n00000001v04p03o04303g03904k02901e01g01q02c01c01l02m04e0jr0rs0bl0q1"],["Zeyada",400,3,0,"0fj0ey___0i401r___0ls0290nv11j07f091___25z00f00d03705h04w04z04402a01l00i02002c03805402502s04k0970av0ko0cw0lp","0x20wl___0ea05x___0k70420rg0k20j40bp___1rs00g00e02h05v05305r03v02h01700703c04906n09f03j04n0860dv0ca0l50jr16g","0hj0hj___09l01r___0ah0270pq0rt054087___1qx00500502w04b04204404y04b02000w02002b03305402002h03z07l0ce0mx0e10jv"],["Zhi Mang Xing",400,3,0,"0db0db0cq0id01r0hd0e30400l00ph0580fr0id2ev00c00c01t05d04v05003u02g02v00z03904405u08i04i06e0a60g50fw0qb0c50jo","0cp0c6___0s30420g60ek06f0ts0ec0580is___1hu00c00c02a05a05003s04i02k02r01004g06e0aa0e105q08m0ez0jt0gf0qo0c60pd","0fn0fn___0l101r___03h03z0ma16604n0fo___25c00000101p04d03u04303c03y04v01o03c04805t08n04606009t0gi0n70r70cq0gs"],["Zilla Slab",300,1,0,"0hw0l00hw08k0330ir08y02w0uu2rl09209a0ba1ks00c00i03r04903u03g04a04001g01z02r02z04108p02h02p04n08k0hw0re0go0m8","0iy0kf0gy0lp0200jb08l0420v3___05p0cc0es1m300700j02005l03u04105202r01x01y03s04a05u0a903b03z06m0de0is0qx0fy0lx","0lz0lz___08j04c___05u02v0up2up09309o___1ea00000b03804103203i03003503704c02r02y03l09p02i02o04n0890mk0rs0ii0r7"],["Zilla Slab",400,1,0,"0j50l00ij08402h0j508x03k0vp2ao0an0b60cj1k600c00j03b04h03x03j04f03w01o01s03e03p05b09w02y03905s0c00i10rs0go0mu","0iy0jy0gy0o40300jb08k04k0uq___06y0dj0f41l700600i01v05o03w04305502m02301s04904r0710bs03o04f07u0fb0it0qz0fy0ny","0mk0nq0ii06d03h0m605u03i0us2di0ap0b50bv1ce00000b02t04f03403h02z03903r03p03f03p04v0aj03103b05z0ay0mk0rs0ku0rr"],["Zilla Slab",700,1,0,"0lm0n50kd0av01v0j508x0640x119i0fs0g00hh1gu00a00j02i04v04803s04m03n02101d05x06l0af0fy04t05u0bv0ja0is0rs0jr0px","0lq0n80hs0vf01z0ih08h06j0xx1390ew0h30iq1hb00600k02r05f04704k05b02f0260080680760aw0gc0530680d90js0hy0py0jr0yk","0ov0ov0k907102w0m805u06b0xe0se0cj0gu0hr18y00000902104v03d03m03503h04j02j06006t0bn0hw05705y0bd0o10oa0rs0lz0rr"],["Zilla Slab Highlight",400,1,0,"0i20k40i208i03a0he___02t0wu2i20ca09g0am1lg00000005103t04a03t06202701s00t02q02v03d07g02502g0440990g80kw0g00kx",null,"0m80mn0hy07904a0m8___02u0wh2vj09q08s08z1ar00000003903l02o03p03103e03d04t02p02v03808v02902f0480860lv0rs0it0qi"],["Zilla Slab Highlight",700,1,0,"0l60mx0l608002n0ix___05k0z81di0fa0ff0g21ef00000002e05o03h03m05f03902f01j05d05t08r0di03x04t09v0je0ib0rs0ij0nt",null,"0go0go___069028______03o1221vd00h0bi___1w000000003c04r03p03y05900t00405v03k03w06k0ak02302r03x08z0rs0rs0dw0iw"]]} \ No newline at end of file diff --git a/skill/scripts/detect.mjs b/skill/scripts/detect.mjs index cbc046954..1299d4642 100644 --- a/skill/scripts/detect.mjs +++ b/skill/scripts/detect.mjs @@ -18,4 +18,13 @@ if (!detectorPath) { const { detectCli } = await import(pathToFileURL(detectorPath)); +// A comp-led build with its comp round or hero gate still open is not a page +// the detector can pass: say so after the scan (stderr, so --json stays +// parseable), on the same condition context.mjs reports at boot. +try { + const { compRoundOpen } = await import(pathToFileURL(path.join(__dirname, 'build-phase.mjs'))); + const open = compRoundOpen(process.cwd()); + if (open) process.stderr.write(`COMP_ROUND_OPEN: ${open.reason}. A detector pass is not a finish: run node ${__dirname}/build-phase.mjs status and follow its NEXT line before treating this page as built.\n`); +} catch { /* build-phase absent */ } + await detectCli(); diff --git a/skill/scripts/font-match.mjs b/skill/scripts/font-match.mjs new file mode 100644 index 000000000..f69a000ac --- /dev/null +++ b/skill/scripts/font-match.mjs @@ -0,0 +1,457 @@ +#!/usr/bin/env node +/** + * font-match: measure the lettering in a comp's text region and rank candidate + * faces against it, so the face is chosen by metrics instead of by name. + * + * node font-match.mjs --measure [--spec .impeccable/build/spec.json] + * Fingerprints the comp crop of a text region (lib/font-fingerprint.mjs): + * cap height (px), glyph width per cap height (width class), stroke + * density and stem width (weight class), tracking, plus the size-invariant + * shape vector the ranking uses. Prints the summary and stores it on the + * region in the spec (`type` block), so build code can set font-size from + * capHeightPx and the hero gate can name a width/weight miss. + * + * node font-match.mjs --rank [--candidates "Barlow Condensed:700,Oswald:600"] [--text "The manuals stop."] [--category sans,display] + * Candidates come from a fingerprint index of the Google Fonts catalog + * (data/font-index.json, ~3,000 faces at two cap heights; the crop is + * routed to the 14px or 48px index by its cap height): the 25 nearest + * faces by fingerprint distance, plus the names you pass. Each candidate + * is then rendered with the region's text at the comp's cap height in a + * headless browser (Google Fonts CSS), fingerprinted the same way, and + * ranked by the same distance on the rendered text. Prints CATALOG (the + * index's top five), the ranking with per-face width and weight deltas, + * a proof sheet, and the CSS to use (family, weight, and the font-size + * that reproduces the comp's cap height). Needs a browser: playwright or + * puppeteer resolvable from the project or the impeccable CLI; without + * one, the CATALOG line is the ranking. Without the index the built-in + * per-width-class shortlist stands in. + * + * Why: models pick faces from memory and never measure. Three of the six + * misses a human called on a first-round build were the same miss: the + * headline face wider and lighter than the comp's, the parts list smaller, + * the footer heavier. All three are ratios a script can read off pixels. + */ +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { createRequire } from 'node:module'; +import { createHash } from 'node:crypto'; +import { decodePng, encodePng, loadRaster } from './lib/png.mjs'; +import { crop } from './lib/raster.mjs'; +import { fingerprint, distance } from './lib/font-fingerprint.mjs'; +import { loadFontIndex, candidatesFromIndex, MIN_RANK_CAP_PX } from './lib/font-index.mjs'; +import { loadSpec, SPEC_PATH } from './comp-spec.mjs'; + +const require = createRequire(import.meta.url); + +function arg(name, fallback = null) { + const i = process.argv.indexOf(`--${name}`); + if (i === -1) return fallback; + const v = process.argv[i + 1]; + return v && !v.startsWith('--') ? v : fallback; +} + +// ---- fingerprint ---------------------------------------------------------- +// fingerprint(img) and distance(a, b) live in lib/font-fingerprint.mjs: size- +// invariant shape features per text line (advance, x-ratio, stem width, +// contrast, serif, density, ink profiles) and a noise-normalized weighted L1 +// fitted on held-out Google Fonts probes. The class helpers below turn two of +// those features into the words the MEASURE line prints. + +/** + * The feature that reads as width: advX (x-height glyph width / R) on a + * mixed-case crop, advTall (cap glyph width / R) when the crop is all caps. + * Thresholds sit on the catalog index (advX 0.20 quantile 0.58, median 0.64, + * 0.80 quantile 0.71) anchored by named faces: League Gothic 0.36, Oswald 0.42, + * Anton 0.48, Barlow Condensed 0.54, Roboto Condensed 0.58, Roboto 0.62, + * Inter 0.65, Space Grotesk 0.71, Montserrat Bold 0.76, Archivo Black 0.87. + */ +export function widthMeasure(fp) { + if (!fp) return null; + if (fp.advX != null) return { key: 'advX', value: fp.advX }; + if (fp.advTall != null) return { key: 'advTall', value: fp.advTall }; + if (fp.advance != null) return { key: 'advance', value: fp.advance }; + return null; +} +export function widthClass(fp) { + const m = typeof fp === 'number' ? { key: 'advX', value: fp } : widthMeasure(fp); + if (!m) return 'normal'; + // cap widths run ~10% wider than x-height widths against the same R + const t = m.key === 'advTall' ? [0.45, 0.61, 0.78] : [0.42, 0.585, 0.72]; + if (m.value < t[0]) return 'compressed'; + if (m.value < t[1]) return 'condensed'; + if (m.value < t[2]) return 'normal'; + return 'wide'; +} +/** + * The feature that reads as weight: densTall (ink / bbox area of cap-height + * glyphs); stemW (stem width / R) when no cap glyph was separable. Catalog + * anchors for densTall: Lato 300 0.27, Roboto 300 0.32, Playfair 400 0.37, + * Inter 400 0.44, Roboto 700 0.59, Work Sans 700 0.64, Bebas Neue 0.68, + * Oswald 700 0.72, League Gothic 0.76, Anton 0.79. For stemW: Roboto 300 0.10, + * Roboto 400 0.14, Inter 700 0.22, Archivo Black 0.30. + */ +export function weightMeasure(fp) { + if (!fp) return null; + if (fp.densTall != null) return { key: 'densTall', value: fp.densTall }; + if (fp.densX != null) return { key: 'densX', value: fp.densX }; + if (fp.stemW != null) return { key: 'stemW', value: fp.stemW }; + if (fp.weight != null) return { key: 'weight', value: fp.weight }; + return null; +} +export function weightClass(fp) { + const m = typeof fp === 'number' ? { key: 'densTall', value: fp } : weightMeasure(fp); + if (!m) return 'regular'; + const t = m.key === 'stemW' ? [0.105, 0.165, 0.195, 0.24] : [0.34, 0.48, 0.56, 0.66]; + if (m.value < t[0]) return 'light'; + if (m.value < t[1]) return 'regular'; + if (m.value < t[2]) return 'medium'; + if (m.value < t[3]) return 'bold'; + return 'black'; +} + +/** + * A starter shortlist per width class, Google Fonts only, chosen to span + * weight and character inside the class. Used only when the catalog index + * (data/font-index.json) is missing; with the index, candidates come from + * the comp's fingerprint and the model's own names. + */ +export const SHORTLIST = { + compressed: ['League Gothic:400', 'Bebas Neue:400', 'Anton:400', 'Six Caps:400', 'Big Shoulders Display:900', 'Antonio:700', 'Saira Extra Condensed:800', 'Oswald:700'], + condensed: ['League Gothic:400', 'Fjalla One:400', 'Anton:400', 'Bebas Neue:400', 'Oswald:600', 'Barlow Condensed:700', 'Roboto Condensed:800', 'Archivo Narrow:700', 'Pathway Gothic One:400', 'Big Shoulders Display:800', 'Teko:600', 'Sofia Sans Condensed:800'], + normal: ['Inter:700', 'Work Sans:700', 'IBM Plex Sans:700', 'Archivo:800', 'Public Sans:700', 'Source Sans 3:700', 'Roboto:900', 'Barlow:800', 'Manrope:800', 'Rubik:800'], + wide: ['Archivo Black:400', 'Syne:800', 'Space Grotesk:700', 'Unbounded:700', 'Bricolage Grotesque:800', 'Sora:800', 'Outfit:800', 'Lexend:800'], +}; + +/** Weight-shifted variants of a candidate list, one step lighter and heavier; the ranking decides. */ +export function withWeightVariants(list) { + const out = []; + for (const c of list) { + out.push(c); + const m = /^(.*?):(\d{3})$/.exec(c); + if (!m) continue; + const w = parseInt(m[2], 10); + for (const d of [-200, 200]) { const nw = w + d; if (nw >= 100 && nw <= 900) out.push(`${m[1]}:${nw}`); } + } + return [...new Set(out)]; +} + +/** + * Candidate faces for a comp fingerprint: the nearest index faces (top n by + * fingerprint distance, routed to the 14px or 48px index by the crop's cap + * height, optionally filtered by category), the caller's own names first, + * and the built-in shortlist only when there is no index. Returns + * { candidates: [{ family, weight }], catalog: [index hits], source }. + */ +export function selectCandidates(fp, { own = [], index = null, n = 25, category = null } = {}) { + const catalog = index ? candidatesFromIndex(fp, index, { n, category }) : []; + const list = [...own, ...catalog.map((c) => ({ family: c.family, weight: c.weight }))]; + let source = 'index'; + if (!index) { + source = 'shortlist'; + for (const s of withWeightVariants(SHORTLIST[widthClass(fp)] || SHORTLIST.normal)) list.push(parseCandidates(s)[0]); + } + const seen = new Set(); + const candidates = list.filter((c) => { const k = `${c.family}:${c.weight}`; if (seen.has(k)) return false; seen.add(k); return true; }); + return { candidates, catalog, source }; +} + +/** + * A choice font-match wrote carries a stamp over its own fields, so the spec + * gate can tell a measured choice from a hand-typed one. Sessions with no + * browser wrote `"chosen": { "family": "Arial Narrow", "source": "system-fallback" }` + * straight into spec.json to get past the gate; that is the guess the gate + * exists to refuse. Not secret, just not something a model reaches for. + */ +export function stampChoice(regionId, chosen) { + const h = createHash('sha1').update(`font-match:${regionId}:${chosen.family}:${chosen.weight}:${chosen.fontSizePx}:${chosen.source}`).digest('hex').slice(0, 12); + return { ...chosen, stamp: h }; +} +export function choiceStamped(regionId, chosen) { + if (!chosen || !chosen.stamp) return false; + return stampChoice(regionId, { ...chosen, stamp: undefined }).stamp === chosen.stamp; +} + +// ---- browser -------------------------------------------------------------- + +/** + * Playwright and puppeteer write launch artifacts to os.tmpdir(). In a + * sandbox whose /tmp is not writable (the ninth sweep: EPERM on + * mkdtemp /tmp/playwright-artifacts-*), every rank silently fell back to the + * catalog and three of four builds set headlines at twice the comp's cap. + * Probe once and point TMPDIR at a workspace dir when the system one fails. + */ +function ensureWritableTmp() { + const os = require('node:os'); + try { const d = fs.mkdtempSync(path.join(os.tmpdir(), 'fm-')); fs.rmSync(d, { recursive: true, force: true }); return; } catch { /* not writable */ } + const local = path.resolve('.impeccable', 'tmp'); + try { fs.mkdirSync(local, { recursive: true }); process.env.TMPDIR = local; process.env.TMP = local; process.env.TEMP = local; } catch { /* leave as is; launch will say why */ } +} + +async function loadBrowser() { + ensureWritableTmp(); + // IMPECCABLE_NODE_MODULES: a node_modules dir holding playwright or + // puppeteer, for harnesses that mount the skill somewhere its own resolution + // roots cannot see (a sandbox root, a plugin cache). NODE_PATH works too. + const extra = (process.env.IMPECCABLE_NODE_MODULES || '').split(path.delimiter).filter(Boolean); + const tries = [ + ...extra.map((dir) => () => require(require.resolve('playwright', { paths: [dir, path.dirname(dir)] }))), + () => require('playwright'), + () => require(require.resolve('playwright', { paths: [process.cwd()] })), + () => require(require.resolve('playwright', { paths: [path.join(path.dirname(fileURLToPath(import.meta.url)), '..', '..')] })), + ]; + for (const t of tries) { try { const pw = t(); if (pw?.chromium) return { kind: 'playwright', mod: pw }; } catch { /* next */ } } + const tries2 = [ + ...extra.map((dir) => () => require(require.resolve('puppeteer', { paths: [dir, path.dirname(dir)] }))), + () => require('puppeteer'), + () => require(require.resolve('puppeteer', { paths: [process.cwd()] })), + () => require(require.resolve('puppeteer', { paths: [path.join(path.dirname(fileURLToPath(import.meta.url)), '..', '..')] })), + ]; + for (const t of tries2) { try { const pp = t(); if (pp?.launch) return { kind: 'puppeteer', mod: pp }; } catch { /* next */ } } + return null; +} + +function parseCandidates(s) { + return String(s || '').split(',').map((x) => x.trim()).filter(Boolean).map((x) => { + const m = /^(.*?)(?::(\d{3}))?$/.exec(x); + return { family: m[1].trim(), weight: m[2] ? parseInt(m[2], 10) : 400 }; + }); +} + +/** Render `text` in each candidate at a font-size whose measured cap height ~= targetCapPx; return fingerprints. */ +export async function renderCandidates(candidates, text, targetCapPx, { transform = 'none' } = {}) { + const b = await loadBrowser(); + if (!b) return null; + // A resolvable module whose browser binary is absent (CI, a fresh install + // without npx playwright install) throws at launch; that is the same + // situation as no module, and the catalog fallback owns it. + let browser; + try { browser = b.kind === 'playwright' ? await b.mod.chromium.launch() : await b.mod.launch({ headless: true }); } catch { return null; } + // One stylesheet per family+weight: a combined request 400s when any one + // family lacks the requested axis (Anton has no wght range), and a static + // family answers only for the weights it ships. + const links = candidates.map((c) => ``).join(''); + const html = `${links}`; + const results = []; + const size0 = Math.max(12, Math.round(targetCapPx * 1.4)); + if (b.kind === 'playwright') { + const page = await browser.newPage({ viewport: { width: 1600, height: 400 }, deviceScaleFactor: 1 }); + await page.setContent(html, { waitUntil: 'load' }); + await page.waitForTimeout(800); + for (const c of candidates) { + // two passes: measure at size0, then rescale so the fingerprint's cap height matches the comp + let size = size0, fp = null, ok = true; + for (let pass = 0; pass < 2; pass++) { + await page.evaluate(({ family, weight, size, text }) => { + document.body.innerHTML = `
${text}
`; + }, { family: c.family, weight: c.weight, size, text }); + let loaded = false; + // Loaded means a real face of this family covers the requested weight; + // fonts.check() answers true for a synthetic bold of a lighter file. + try { + loaded = await page.evaluate(async (f) => { + const faces = await document.fonts.load(`${f.weight} 32px '${f.family}'`); + await document.fonts.ready; + const covers = (face) => { const w = String(face.weight || '400').split(/\s+/).map(Number); const lo = w[0], hi = w[1] ?? w[0]; return f.weight >= lo - 50 && f.weight <= hi + 50; }; + return faces.some((face) => face.family.replace(/["']/g, '') === f.family && face.status === 'loaded' && covers(face)); + }, c); + } catch { loaded = false; } + await page.waitForTimeout(100); + if (!loaded) ok = false; + const box = await page.evaluate(() => { const r = document.querySelector('div.s').getBoundingClientRect(); return { w: Math.ceil(r.width) + 8, h: Math.ceil(r.height) + 8 }; }); + const buf = await page.screenshot({ clip: { x: 0, y: 0, width: Math.min(1600, box.w), height: Math.min(400, box.h) } }); + fp = fingerprint(decodePng(buf)); + if (!fp || pass === 1) break; + size = Math.max(8, Math.round(size * (targetCapPx / fp.capHeightPx))); + } + results.push({ ...c, loaded: ok, fontSizePx: size, fp }); + } + await browser.close(); + } else { + const page = await browser.newPage(); + await page.setViewport({ width: 1600, height: 400 }); + await page.setContent(html, { waitUntil: 'load' }); + await new Promise((r) => setTimeout(r, 800)); + for (const c of candidates) { + let size = size0, fp = null, ok = true; + for (let pass = 0; pass < 2; pass++) { + await page.evaluate(({ family, weight, size, text }) => { + document.body.innerHTML = `
${text}
`; + }, { family: c.family, weight: c.weight, size, text }); + let loaded = false; + // Loaded means a real face of this family covers the requested weight; + // fonts.check() answers true for a synthetic bold of a lighter file. + try { + loaded = await page.evaluate(async (f) => { + const faces = await document.fonts.load(`${f.weight} 32px '${f.family}'`); + await document.fonts.ready; + const covers = (face) => { const w = String(face.weight || '400').split(/\s+/).map(Number); const lo = w[0], hi = w[1] ?? w[0]; return f.weight >= lo - 50 && f.weight <= hi + 50; }; + return faces.some((face) => face.family.replace(/["']/g, '') === f.family && face.status === 'loaded' && covers(face)); + }, c); + } catch { loaded = false; } + await new Promise((r) => setTimeout(r, 100)); + if (!loaded) ok = false; + const box = await page.evaluate(() => { const r = document.querySelector('div.s').getBoundingClientRect(); return { w: Math.ceil(r.width) + 8, h: Math.ceil(r.height) + 8 }; }); + const buf = await page.screenshot({ clip: { x: 0, y: 0, width: Math.min(1600, box.w), height: Math.min(400, box.h) } }); + fp = fingerprint(decodePng(buf)); + if (!fp || pass === 1) break; + size = Math.max(8, Math.round(size * (targetCapPx / fp.capHeightPx))); + } + results.push({ ...c, loaded: ok, fontSizePx: size, fp }); + } + await browser.close(); + } + return results; +} + +/** Comp crop over the top candidates, rendered at the comp's cap height, as one PNG. */ +export async function renderProofSheet(compCrop, top, text, capPx, transform = 'none') { + const b = await loadBrowser(); + if (!b || b.kind !== 'playwright') return null; + const compB64 = Buffer.from(encodePng(compCrop)).toString('base64'); + const links = top.map((c) => ``).join(''); + const rowsHtml = top.map((c) => `
${c.family} ${c.weight} · ${c.fontSizePx}px
${text}
`).join(''); + const html = `${links}
COMP
${rowsHtml}`; + let browser; + try { browser = await b.mod.chromium.launch(); } catch { return null; } + const page = await browser.newPage({ viewport: { width: Math.min(1600, Math.max(600, compCrop.width + 24)), height: 200 } }); + await page.setContent(html, { waitUntil: 'load' }); + try { await page.evaluate(async () => { await document.fonts.ready; }); } catch { /* ignore */ } + await page.waitForTimeout(600); + const buf = await page.screenshot({ fullPage: true }); + await browser.close(); + return buf; +} + +// ---- CLI ------------------------------------------------------------------ + +function describe(fp) { + const wm = widthMeasure(fp), wt = weightMeasure(fp); + const wmS = wm ? ` (${wm.key} ${wm.value})` : ''; + const wtS = wt ? ` (${wt.key} ${wt.value})` : ''; + return `capHeight ${fp.capHeightPx}px, width ${widthClass(fp)}${wmS}, weight ${weightClass(fp)}${wtS}, tracking ${fp.gap}${fp.allCaps ? ', all caps' : ''}`; +} + +/** Fingerprint fields the spec keeps for a region: the class-bearing features plus the shape summary, not the whole vector. */ +function compactFp(fp) { + if (!fp) return fp; + const keep = ['lines', 'glyphs', 'capHeightPx', 'inkIsDark', 'allCaps', 'advance', 'advTall', 'advX', 'gap', 'xRatio', 'stemW', 'contrast', 'serif', 'densTall', 'densX', 'weight']; + const out = {}; + for (const k of keep) if (fp[k] !== undefined) out[k] = fp[k]; + return out; +} + +async function main() { + const specPath = arg('spec', SPEC_PATH); + const spec = loadSpec(specPath); + const measureId = arg('measure'), rankId = arg('rank'); + const id = measureId || rankId; + if (!id) { + console.error('usage: font-match.mjs --measure | --rank [--candidates "Family:700,Family2:400,..."] [--text "..."] [--transform uppercase] [--category sans,serif,display,handwriting,mono]'); + process.exit(1); + } + if (!spec) { console.error(`font-match: no spec at ${specPath}; run comp-spec.mjs first`); process.exit(1); } + const region = spec.regions.find((r) => r.id === id); + if (!region) { console.error(`font-match: no region ${id}; ids: ${spec.regions.map((r) => r.id).join(', ')}`); process.exit(1); } + const comp = loadRaster(spec.comp).image; + const c = crop(comp, region.px.x, region.px.y, region.px.w, region.px.h); + const fp = fingerprint(c); + if (!fp) { + // Record the attempt so the spec gate does not ask again; a region with + // no separable glyphs (a rule, a bar of solid ink, a very small label at + // comp resolution) is measured as "no lettering" and the model sizes it + // by its box. + region.type = { ...(region.type || {}), comp: null, measuredAt: new Date().toISOString(), note: 'no separable lettering in the crop; size by the region box' }; + fs.writeFileSync(specPath, JSON.stringify(spec, null, 2)); + console.log(`MEASURE ${id}: no separable lettering in the region crop at comp resolution; size this text by its box (${region.px.w}x${region.px.h}px) and inherit face and weight from the nearest measured region.`); + process.exit(0); + } + region.type = { ...(region.type || {}), comp: compactFp(fp), widthClass: widthClass(fp), weightClass: weightClass(fp) }; + fs.writeFileSync(specPath, JSON.stringify(spec, null, 2)); + console.log(`MEASURE ${id}: ${describe(fp)} over ${fp.lines} line${fp.lines === 1 ? '' : 's'}, ${fp.glyphs} glyphs. Set this region's font-size so its cap height renders at ${fp.capHeightPx}px; choose a ${widthClass(fp)} ${weightClass(fp)} face.`); + if (!rankId) return; + if (fp.capHeightPx < MIN_RANK_CAP_PX) { + console.log(`RANK skipped: cap height ${fp.capHeightPx}px is under ${MIN_RANK_CAP_PX}px, too small at comp resolution for a face fingerprint to mean anything. Size this text by its box (${region.px.w}x${region.px.h}px) and inherit face and weight from the nearest measured region.`); + return; + } + const own = parseCandidates(arg('candidates')); + const index = loadFontIndex(); + const { candidates, catalog, source } = selectCandidates(fp, { own, index, n: 25, category: arg('category') }); + if (index) { + const top5 = []; for (const h of catalog) { if (!top5.some((t) => t.family === h.family)) top5.push(h); if (top5.length >= 5) break; } + console.log(`CATALOG top-5 by fingerprint: ${top5.map((t) => `${t.family}:${t.weight}`).join(', ')} (from ${index.entries.length} indexed faces${catalog[0] ? `, ${catalog[0].size}px index` : ''}${arg('category') ? `, category ${arg('category')}` : ''})`); + console.log(`CANDIDATES ${candidates.length}: ${own.length} yours + ${candidates.length - own.length} nearest in the catalog index`); + } else { + console.log(`CANDIDATES ${candidates.length}: ${own.length} yours + ${candidates.length - own.length} from the ${widthClass(fp)} shortlist (no catalog index at data/font-index.json)`); + } + const text = arg('text') || region.text || 'The manuals stop. The forum keeps going.'; + const transform = arg('transform', fp.allCaps ? 'uppercase' : 'none'); + const results = await renderCandidates(candidates, text, fp.capHeightPx, { transform }); + if (!results) { + // No browser: the catalog fingerprint index is the ranking. Its top hit is + // recorded as the chosen face (source `catalog`) so the spec gate has a + // measured choice to close on; without this the gate refused forever and + // sessions forced past it or spent ten turns installing Playwright. + // font-size is estimated from the cap height at a 0.70 cap/em ratio, the + // sans display median; the NOTE says to check one rendered word. + if (index && catalog[0]) { + const best = catalog[0]; + const fontSizePx = Math.round(fp.capHeightPx / 0.70); + console.log(`RANK unavailable: no browser (playwright or puppeteer) resolvable from this project or the impeccable CLI; the CATALOG order stands as the ranking.`); + console.log(`USE font-family: '${best.family}'; font-weight: ${best.weight}; font-size: ${fontSizePx}px;${transform !== 'none' ? ` text-transform: ${transform};` : ''} NOTE font-size is estimated (cap ${fp.capHeightPx}px / 0.70); render one headline word at that size, compare its cap height to the comp crop, and correct the size before building on it.`); + region.type.chosen = stampChoice(id, { family: best.family, weight: best.weight, fontSizePx, source: 'catalog', estimatedSize: true }); + fs.writeFileSync(specPath, JSON.stringify(spec, null, 2)); + return; + } + console.log(`RANK unavailable: no browser (playwright or puppeteer) resolvable from this project or the impeccable CLI, and no catalog index. Choose by the MEASURE line: match the width class first, then the weight class; render one headline word against the comp before building on it.`); + return; + } + // Drop faces that never loaded (a weight the family does not ship falls + // back to a system face and would rank as that face), then collapse + // duplicate renders (two requested weights that resolved to one file). + const seenFp = new Set(); + const rows = results + .filter((r) => r.fp && r.loaded) + .map((r) => ({ ...r, d: distance(fp, r.fp) })) + .filter((r) => Number.isFinite(r.d)) + .sort((a, b) => a.d - b.d) + .filter((r) => { const k = `${r.family}|${r.fp.advX}|${r.fp.advTall}|${r.fp.densTall}|${r.fp.stemW}`; if (seenFp.has(k)) return false; seenFp.add(k); return true; }); + const dropped = results.filter((r) => !r.loaded).map((r) => `${r.family}:${r.weight}`); + if (dropped.length) console.log(`SKIPPED (not available at that weight on Google Fonts): ${dropped.join(', ')}`); + const wm = widthMeasure(fp), wt = weightMeasure(fp); + const pctDelta = (m, other) => { if (!m || other?.[m.key] == null) return null; return (other[m.key] - m.value) / m.value; }; + const fmtPct = (v) => (v == null ? 'n/a' : `${v >= 0 ? '+' : ''}${(v * 100).toFixed(0)}%`); + for (const r of rows) { + console.log(`RANK ${r.family}:${r.weight} distance ${r.d.toFixed(3)} width ${widthClass(r.fp)} (${fmtPct(pctDelta(wm, r.fp))} ${wm?.key || 'advance'}) weight ${weightClass(r.fp)} (${fmtPct(pctDelta(wt, r.fp))} ${wt?.key || 'ink'}) font-size ${r.fontSizePx}px for cap ${fp.capHeightPx}px`); + } + // proof sheet: comp crop over the top three renders, so the choice is seen, not only scored + try { + const top = rows.slice(0, 3); + const sheet = await renderProofSheet(c, top, text, fp.capHeightPx, transform); + if (sheet) { + const out = path.join(path.dirname(specPath), 'font-match', `${id}.png`); + fs.mkdirSync(path.dirname(out), { recursive: true }); + fs.writeFileSync(out, sheet); + console.log(`PROOF ${out} (comp crop, then the top ${top.length} candidates at the comp's cap height; open it before choosing)`); + } + } catch { /* proof sheet is best-effort */ } + const best = rows[0]; + if (best) { + const advice = []; + const dw = pctDelta(wm, best.fp), dwt = pctDelta(wt, best.fp); + if (dw != null && Math.abs(dw) > 0.1) advice.push(dw > 0 ? 'still too wide: try a more condensed face or a variable font with a wdth axis' : 'still too narrow: try a wider face'); + // a weight step only helps on a family that ships one; a single-cut display face is what it is + const bestEntry = index?.entries.find((e) => e.family === best.family); + const variable = bestEntry ? bestEntry.variable : true; + if (dwt != null && Math.abs(dwt) > 0.15 && variable) advice.push(dwt > 0 ? `too heavy: drop to weight ${Math.max(100, best.weight - 200)}` : `too light: raise to weight ${Math.min(900, best.weight + 200)}`); + console.log(`USE font-family: '${best.family}'; font-weight: ${best.weight}; font-size: ${best.fontSizePx}px;${transform !== 'none' ? ` text-transform: ${transform};` : ''}${advice.length ? ' NOTE ' + advice.join('; ') : ''}`); + region.type.chosen = stampChoice(id, { family: best.family, weight: best.weight, fontSizePx: best.fontSizePx, source, fp: compactFp(best.fp) }); + fs.writeFileSync(specPath, JSON.stringify(spec, null, 2)); + } +} + +const isMain = (() => { + try { return !!process.argv[1] && fs.realpathSync(process.argv[1]) === fs.realpathSync(fileURLToPath(import.meta.url)); } + catch { return false; } +})(); +if (isMain) main().catch((e) => { console.error(`font-match: ${e.message}`); process.exit(1); }); diff --git a/skill/scripts/generate-image.mjs b/skill/scripts/generate-image.mjs index 813b2e467..1bf97ecaf 100644 --- a/skill/scripts/generate-image.mjs +++ b/skill/scripts/generate-image.mjs @@ -15,8 +15,22 @@ * --ref anchors generation on input image(s) via the edits endpoint: pass a * captured screenshot of a representative existing page when comping a new * surface for an established world, so the identity comes from the real UI. + * + * node generate-image.mjs --plate [--spec .impeccable/build/spec.json] [--quality high] + * + * --plate produces a shipping raster for one raster region of the measured + * comp spec (comp-spec.mjs): it crops the region from the approved comp, + * sends the crop as the reference with the spec's plate prompt (plus any + * --prompt you add), picks the closest supported output size to the region's + * aspect, writes the result to the region's `plate` path, embeds the prompt, + * and scores the plate against the comp crop with comp-diff so a plate that + * does not read as the region is reported (and, with --min, refused) here, + * before it lands on the page. In IMPECCABLE_IMAGE_GEN_FAKE mode the plate is + * the crop itself at 2x, so offline pipelines can walk the plate gate. */ import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import zlib from 'node:zlib'; function arg(name, fallback = null) { @@ -186,6 +200,154 @@ function parseSize(sizeStr) { return [Number(m[1]), Number(m[2])]; } +// --------------------------------------------------------------------------- +// Plate mode: one raster region of the measured spec -> a shipping plate. +// --------------------------------------------------------------------------- +const plateId = arg('plate'); +let plateCtx = null; +if (plateId) { + const { loadSpec, platePrompt, plateReference, SPEC_PATH } = await import('./comp-spec.mjs'); + const { decodePng, encodePng, loadRaster } = await import('./lib/png.mjs'); + const { crop, resize } = await import('./lib/raster.mjs'); + const specPath = arg('spec', SPEC_PATH); + const spec = loadSpec(specPath); + if (!spec) { console.error(`generate-image: no spec at ${specPath}; run comp-spec.mjs first`); process.exit(1); } + const region = spec.regions.find((r) => r.id === plateId); + if (!region) { console.error(`generate-image: no region ${plateId} in ${specPath}; ids: ${spec.regions.map((r) => r.id).join(', ')}`); process.exit(1); } + if (region.medium !== 'raster') { console.error(`generate-image: region ${plateId} is ${region.medium}, not a plate; set its kind to plate|image|texture in the regions file`); process.exit(1); } + let comp; + try { comp = loadRaster(spec.comp).image; } catch (e) { console.error(`generate-image: cannot read comp ${spec.comp}: ${e.message}`); process.exit(1); } + const ref = plateReference(comp, spec, region); + const refPath = path.join(path.dirname(specPath), 'crops', `${region.id}.png`); + fs.mkdirSync(path.dirname(refPath), { recursive: true }); + fs.writeFileSync(refPath, encodePng(ref, { text: { 'impeccable:crop-of': `${spec.comp}#${region.id}` } })); + const out = arg('out', region.plate); + fs.mkdirSync(path.dirname(out), { recursive: true }); + // Closest supported size to the region's aspect; the page crops the rest + // with object-fit. The plates gate demands >= 1.5x the region's width + // (capped at 1536), so a square region wider than 682px cannot ship from + // 1024x1024: take the 1536-wide landscape frame instead and let cover crop. + const aspect = region.px.w / region.px.h; + const needW = Math.min(1536, Math.ceil(region.px.w * 1.5)); + let size = arg('size'); + if (!size) { + if (aspect > 1.2) size = '1536x1024'; + else if (aspect < 0.83) size = needW > 1024 ? '1536x1024' : '1024x1536'; + else size = needW > 1024 ? '1536x1024' : '1024x1024'; + } + const extra = arg('prompt') || (arg('prompt-file') ? fs.readFileSync(arg('prompt-file'), 'utf8') : ''); + // Chroma: an ink-on-ground plate (a line drawing, a figure on flat ground) + // is generated on a flat key color and keyed to alpha, so the page's own + // ground shows through instead of a second, mismatched paper. Default on + // for kind plate when the comp region reads as ink over one flat ground; + // --chroma / --no-chroma force it. + const wantsChroma = process.argv.includes('--chroma') ? true : process.argv.includes('--no-chroma') ? false : (region.kind === 'plate' && inkOnGround(region)); + const chromaColor = '#00ff00'; + const chromaLine = wantsChroma ? ` Render the artwork on a perfectly flat, uniform bright green background (${chromaColor}) that fills every pixel not covered by the artwork; no paper texture, no vignette, no shadow on the green; the green will be removed and the artwork composited onto the page's own surface.` : ''; + const prompt = [platePrompt(spec, region), extra, chromaLine].filter(Boolean).join(' '); + plateCtx = { spec, specPath, region, ref, refPath, out, size, prompt, comp, encodePng, resize, chroma: wantsChroma ? chromaColor : null }; + if (process.env.IMPECCABLE_IMAGE_GEN_FAKE) { + const up = resize(ref, ref.width * 2, ref.height * 2); + fs.writeFileSync(out, encodePng(up, { text: { 'impeccable:prompt': prompt, 'impeccable:fake': '1' } })); + fs.writeFileSync(`${out}.json`, JSON.stringify({ prompt, createdAt: new Date().toISOString(), tool: 'generate-image.mjs', model: 'fake', plate: region.id, refs: [refPath] }, null, 2)); + console.log(`PLATE: ${out} (${up.width}x${up.height}, fake 2x crop of region ${region.id}, $0.00, no API call)`); + process.exit(0); + } + // fall through to the real call below with the crop as the single --ref +} + +/** A region whose crop is dominated by one ground color with a dark second: ink on ground. */ +function inkOnGround(region) { + const pal = region.palette || []; + if (pal.length < 2) return false; + return pal[0].coverage >= 0.55; +} + +function hexRgb(h) { const m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(h); return m ? [parseInt(m[1], 16), parseInt(m[2], 16), parseInt(m[3], 16)] : [0, 255, 0]; } + +/** + * Key a flat color to alpha with a soft edge: pixels within `hard` of the key + * go fully transparent, within `soft` fade, and green spill on edge pixels is + * pulled toward the ink color. Writes back in place. Returns keyed fraction. + */ +async function keyChroma(file, keyHex) { + const { decodePng, encodePng } = await import('./lib/png.mjs'); + const img = decodePng(fs.readFileSync(file)); + const [kr, kg, kb] = hexRgb(keyHex); + // sample the actual key from the corners: generators shift the green + const corners = [[2, 2], [img.width - 3, 2], [2, img.height - 3], [img.width - 3, img.height - 3]]; + let sr = 0, sg = 0, sb = 0; + for (const [x, y] of corners) { const p = (y * img.width + x) * 4; sr += img.data[p]; sg += img.data[p + 1]; sb += img.data[p + 2]; } + const key = [sr / 4, sg / 4, sb / 4]; + const isGreenish = key[1] > 120 && key[1] > key[0] * 1.4 && key[1] > key[2] * 1.4; + const K = isGreenish ? key : [kr, kg, kb]; + const hard = 60, soft = 120; + let keyed = 0; + for (let i = 0; i < img.data.length; i += 4) { + const r = img.data[i], g = img.data[i + 1], b = img.data[i + 2]; + const d = Math.sqrt((r - K[0]) ** 2 + (g - K[1]) ** 2 + (b - K[2]) ** 2); + // also treat "greener than both other channels by a margin" as key, for gradients the generator adds + const greenDom = g > 150 && g - Math.max(r, b) > 60; + if (d < hard || greenDom) { img.data[i + 3] = 0; keyed++; continue; } + if (d < soft) { + const a = (d - hard) / (soft - hard); + img.data[i + 3] = Math.round(img.data[i + 3] * a); + // despill: pull green down to the mean of the others on the fringe + const m = (r + b) / 2; img.data[i + 1] = Math.round(g * a + m * (1 - a)); + } + } + // keep the tEXt chunks (the embedded prompt written before keying) + fs.writeFileSync(file, encodePng(img, { text: img.text && Object.keys(img.text).length ? img.text : null })); + return keyed / (img.data.length / 4); +} + +async function scorePlate(ctx, outFile) { + try { + const { compare } = await import('./comp-diff.mjs'); + const { decodePng } = await import('./lib/png.mjs'); + let plate = decodePng(fs.readFileSync(outFile)); + // a keyed plate ships over the page ground: composite it over the region's + // sampled ground before scoring, the way it will show + if (ctx.chroma) { + const { createImage, blit } = await import('./lib/raster.mjs'); + const g = (ctx.region.palette && ctx.region.palette[0] && ctx.region.palette[0].hex) || '#ffffff'; + const m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(g); + const ground = m ? [parseInt(m[1], 16), parseInt(m[2], 16), parseInt(m[3], 16), 255] : [255, 255, 255, 255]; + const over = createImage(plate.width, plate.height, ground); + blit(over, plate, 0, 0); + plate = over; + } + // a plate ships under object-fit: cover, so score it the way it will show + const res = compare({ comp: ctx.ref, build: plate, align: 'cover', kind: ctx.region.kind }); + const s = res.whole; + const min = arg('min') ? parseFloat(arg('min')) : null; + const line = `PLATE-SCORE ${ctx.region.id} ${(s.overall * 100).toFixed(0)}% against the comp region (structure ${(s.structure * 100).toFixed(0)}%, color ${(s.color * 100).toFixed(0)}%, detail ${(s.detail * 100).toFixed(0)}%)`; + console.log(line); + const { plateVerdict } = await import('./build-phase.mjs'); + const v = plateVerdict(ctx.region, s); + if (!v.ok) console.log(`PLATE-WARN the plate does not read as region ${ctx.region.id}: ${v.reasons.join('; ')}. Open ${outFile} beside ${ctx.refPath} and regenerate before building on it; the plates gate refuses it as it stands.`); + if (min != null && s.overall < min) { console.log(`PLATE-REJECTED below --min ${(min * 100).toFixed(0)}%`); process.exit(3); } + } catch (e) { + console.log(`PLATE-SCORE unavailable: ${e.message}`); + } +} + +// A comp written into .impeccable/mocks/ while a direction is dealt but the +// build phases never started is a comp round happening outside the state +// file, and every session cut after it resumes with no state to follow. The +// roll writes .impeccable/build/pending.json; build-phase.mjs start clears +// it. Refuse mock output until start has run (or --force-mock). +{ + const outArg = arg('out') || (plateCtx && plateCtx.out) || ''; + const intoMocks = /(^|[\\/])\.impeccable[\\/]mocks[\\/]/.test(outArg) && !/[\\/]decision[\\/]/.test(outArg); + const pending = fs.existsSync(path.join('.impeccable', 'build', 'pending.json')); + const state = fs.existsSync(path.join('.impeccable', 'build', 'state.json')); + if (intoMocks && pending && !state && !process.argv.includes('--force-mock')) { + console.error(`generate-image: a direction was chosen (concept-seed rolled) but build-phase.mjs start has not run, so this comp would be generated outside the build's state. Run: node ${path.dirname(fileURLToPath(import.meta.url))}/build-phase.mjs start --direction --kind first (it opens the comps phase), then generate. --force-mock overrides.`); + process.exit(4); + } +} + if (process.env.IMPECCABLE_IMAGE_GEN_FAKE) { const fakePromptFile = arg('prompt-file'); const fakePrompt = fakePromptFile ? fs.readFileSync(fakePromptFile, 'utf8') : arg('prompt'); @@ -209,21 +371,21 @@ if (!key) { process.exit(1); } const promptFile = arg('prompt-file'); -const prompt = promptFile ? fs.readFileSync(promptFile, 'utf8') : arg('prompt'); -const out = arg('out'); +const prompt = plateCtx ? plateCtx.prompt : (promptFile ? fs.readFileSync(promptFile, 'utf8') : arg('prompt')); +const out = plateCtx ? plateCtx.out : arg('out'); if (!prompt || !out) { console.error('generate-image: --prompt (or --prompt-file) and --out are required.'); process.exit(1); } -const size = arg('size', '1536x1024'); -const quality = arg('quality', 'medium'); +const size = plateCtx ? plateCtx.size : arg('size', '1536x1024'); +const quality = arg('quality', plateCtx ? 'high' : 'medium'); // Reference images (--ref, repeatable): route through the edits endpoint, // which accepts input images. This is how a comp for an established world // inherits the real UI's identity from a captured screenshot instead of a // prose paraphrase of it; the prompt then describes the NEW surface and the // reference carries palette, type, and component character. const refs = (() => { - const found = []; + const found = plateCtx ? [plateCtx.refPath] : []; for (let i = 0; i < process.argv.length; i += 1) { if (process.argv[i] === '--ref' && process.argv[i + 1] && !process.argv[i + 1].startsWith('--')) found.push(process.argv[i + 1]); } @@ -275,3 +437,8 @@ try { fs.writeFileSync(`${out}.json`, JSON.stringify({ prompt, createdAt: new Date().toISOString(), tool: 'generate-image.mjs', model: 'gpt-image-2', ...(refs.length ? { refs } : {}) }, null, 2)); } catch { /* embedding is best-effort */ } console.log(`IMAGE: ${out} (${size}, ${quality}, gpt-image-2, billed to your OpenAI key); prompt embedded + sidecar at ${out}.json`); +if (plateCtx && plateCtx.chroma) { + const frac = await keyChroma(out, plateCtx.chroma); + console.log(`PLATE-CHROMA keyed ${(frac * 100).toFixed(0)}% of pixels to alpha (${plateCtx.chroma}); place with a plain over the page's own ground, no background on the plate. If the keyed fraction is under 20% the generator ignored the key: regenerate with --no-chroma and use mix-blend-mode: multiply instead.`); +} +if (plateCtx) await scorePlate(plateCtx, out); diff --git a/skill/scripts/lib/font-fingerprint.mjs b/skill/scripts/lib/font-fingerprint.mjs new file mode 100644 index 000000000..6d25a26bd --- /dev/null +++ b/skill/scripts/lib/font-fingerprint.mjs @@ -0,0 +1,564 @@ +/** + * font-fingerprint: size-invariant, text-robust shape features for lettering + * in a raster (a comp crop or a rendered sample). fingerprint(img) returns the + * feature vector; distance(a, b) compares two vectors over noise-normalized, + * weighted features. Used by font-match.mjs (comp measurement and ranking) + * and by the catalog index build (scripts/build-font-index.mjs at the repo root). Depends only on + * lib/image-metrics.mjs and lib/raster.mjs. + * + * Every measure is taken per text line and normalized by R, the line's + * reference height (median of the tallest column heights above the baseline: + * the cap line on an all-caps line, the ascender line on a mixed line), so + * the same face gives the same numbers at any point size; per-glyph measures + * are medians so the numbers survive a change of text. Small crops are + * upsampled (bilinear) so R is at least 24px, and stroke runs are measured + * with antialiased edge pixels counted by coverage, so stem widths do not + * fatten at small sizes. + * + * Features (all in R units unless noted; null when not measurable): + * advance/advTall/advX median glyph width over baseline glyphs / tall glyphs / x-height glyphs + * advCV spread of glyph widths (std/median): mono ~0.15, sans ~0.3, script > 0.5 + * gap median inter-glyph gap + * xRatio x-line / R (null on all-caps lines) + * descRatio descender depth (90th pct) + * stemW median horizontal ink run in the x band (stem width) + * contrast stem width / median thin (vertical) run: didone high, grotesque ~1 + * serif foot width / mid-stem width on stems that reach the baseline + * roundFrac fraction of glyphs with bbox aspect > 0.9 + * densTall / densX ink / bbox area for tall / x-height glyphs (weight) + * runDensity horizontal ink runs per row per R of line width (stroke busyness) + * vprof0..9 normalized vertical ink profile from 0.35R below baseline to 1.05R above + * hrun25/50/75/90 quantiles of horizontal run lengths over the letter body + * vrun25/50/75/90 quantiles of vertical run lengths over the whole line + * colq25/75 quantiles of column heights above the baseline + * wq25/75 quantiles of glyph widths + * Also returned: lines, glyphs, capHeightPx (R in source pixels), allCaps, inkIsDark, + * upsampled, weight (densTall, so v1 callers keep a weight field). + */ +import { toGray } from './image-metrics.mjs'; +import { resize } from './raster.mjs'; + +function otsu(gray) { + const hist = new Float64Array(256); + for (let i = 0; i < gray.data.length; i++) hist[Math.max(0, Math.min(255, Math.round(gray.data[i])))]++; + const total = gray.data.length; + let sum = 0; for (let i = 0; i < 256; i++) sum += i * hist[i]; + let sumB = 0, wB = 0, best = 0, thr = 128; + for (let t = 0; t < 256; t++) { + wB += hist[t]; if (!wB) continue; + const wF = total - wB; if (!wF) break; + sumB += t * hist[t]; + const mB = sumB / wB, mF = (sum - sumB) / wF; + const between = wB * wF * (mB - mF) ** 2; + if (between > best) { best = between; thr = t; } + } + return thr; +} + +const med = (a) => { if (!a.length) return null; const s = [...a].sort((p, q) => p - q); const m = s.length >> 1; return s.length % 2 ? s[m] : (s[m - 1] + s[m]) / 2; }; +const pct = (a, p) => { if (!a.length) return null; const s = [...a].sort((p, q) => p - q); return s[Math.min(s.length - 1, Math.floor(p * s.length))]; }; +const mean = (a) => (a.length ? a.reduce((s, x) => s + x, 0) / a.length : null); + +/** Binarize; returns { W, H, ink: Uint8Array, inkIsDark }. */ +function binarize(img) { + const g = toGray(img); + let thr = otsu(g); + let dark = 0; for (let i = 0; i < g.data.length; i++) if (g.data[i] < thr) dark++; + // a two-level raster (no antialiasing) puts the Otsu threshold on the dark + // level itself; step it up so that level counts as ink + if (!dark) { thr += 1; for (let i = 0; i < g.data.length; i++) if (g.data[i] < thr) dark++; } + const inkIsDark = dark <= g.data.length / 2; + const ink = new Uint8Array(g.data.length); + let sI = 0, nI = 0, sG = 0, nG = 0; + for (let i = 0; i < g.data.length; i++) { + const on = (inkIsDark ? g.data[i] < thr : g.data[i] >= thr) ? 1 : 0; + ink[i] = on; + if (on) { sI += g.data[i]; nI++; } else { sG += g.data[i]; nG++; } + } + const inkLevel = nI ? sI / nI : (inkIsDark ? 0 : 255), groundLevel = nG ? sG / nG : (inkIsDark ? 255 : 0); + // coverage per pixel: 0 = ground, 1 = ink, linear between the two class means, so + // antialiased edge pixels count fractionally and stroke widths do not fatten at small sizes + const covA = new Float32Array(g.data.length); + const den = groundLevel - inkLevel || 1; + for (let i = 0; i < g.data.length; i++) covA[i] = Math.max(0, Math.min(1, (groundLevel - g.data[i]) / den)); + const cov = (i) => covA[i]; + return { W: g.width, H: g.height, ink, inkIsDark, cov, covA }; +} + +/** Text lines from the row-ink profile (same rules as font-match v1). */ +function findLines(bin) { + const { W, H, ink } = bin; + // Columns inked top to bottom (a rule, a black margin, a page edge) span + // every line and would fuse them into one run: leave them out of the row + // profile. Lettering never fills a column for more than ~85% of the crop. + const colInk = new Uint32Array(W); + for (let y = 0; y < H; y++) { const o = y * W; for (let x = 0; x < W; x++) colInk[x] += ink[o + x]; } + const colOk = new Uint8Array(W); + let okCount = 0; + for (let x = 0; x < W; x++) { if (colInk[x] < H * 0.85) { colOk[x] = 1; okCount++; } } + if (!okCount) return { lines: [], rowInk: new Uint32Array(H) }; + const rowInk = new Uint32Array(H); + for (let y = 0; y < H; y++) { let c = 0; const o = y * W; for (let x = 0; x < W; x++) if (colOk[x]) c += ink[o + x]; rowInk[y] = c; } + const floor = Math.max(1, W * 0.004); + const runs = []; + let y = 0; + while (y < H) { + if (rowInk[y] > floor) { + const y0 = y; while (y < H && (rowInk[y] > floor || (y + 1 < H && rowInk[y + 1] > floor))) y++; + if (y - y0 >= 4) runs.push({ y0, y1: y }); + } else y++; + } + const lines = []; + for (const run of runs) { + let peak = 0; for (let yy = run.y0; yy < run.y1; yy++) peak = Math.max(peak, rowInk[yy]); + const valley = peak * 0.15; + let start = run.y0, inValley = false, valleyStart = 0; + for (let yy = run.y0; yy < run.y1; yy++) { + const low = rowInk[yy] < valley; + if (low && !inValley) { inValley = true; valleyStart = yy; } + if (!low && inValley) { + inValley = false; + if (yy - valleyStart >= 3 && valleyStart - start >= 4) { lines.push({ y0: start, y1: valleyStart, run }); start = yy; } + } + } + if (run.y1 - start >= 4) lines.push({ y0: start, y1: run.y1, run }); + } + // A piece split off inside one run with a fraction of the ink of the text + // lines is not a line: a thin band of ascenders or tittles above the x band + // (few letters reach it, so the valley rule fires) or a stray rule. Ascender + // bands merge back into the line below them; anything else is dropped. + for (const ln of lines) { let m = 0; for (let yy = ln.y0; yy < ln.y1; yy++) m += rowInk[yy]; ln.mass = m; } + // A drawing or photo sharing the crop with body copy is one tall, massive + // 'line' that would carry maxMass and drop every real line under the 30% + // rule (a 461x307 thread crop measured as one 160px 'cap' off a + // carburetor drawing). When several lines exist, ones far taller than the + // median are not lettering: leave them out of the mass reference and out + // of the result. + // The median is taken over lines carrying real mass (rule slivers and + // tittles do not vote), and needs three of them: two 145px headline lines + // above a 26px artist line were dropped as 'tall' against a median pulled + // to 28 by three slivers. + const massMax = Math.max(1, ...lines.map((l) => l.mass)); + const real = lines.filter((l) => l.mass >= massMax * 0.05); + if (real.length >= 3) { + const hs = real.map((l) => l.y1 - l.y0).sort((a, b) => a - b); + const medH = hs[Math.floor(hs.length / 2)]; + for (const ln of lines) if (ln.y1 - ln.y0 > medH * 3) ln.tall = true; + } + const maxMass = Math.max(0, ...lines.filter((l) => !l.tall).map((l) => l.mass)); + const merged = []; + for (let i = 0; i < lines.length; i++) { + const ln = lines[i]; + if (ln.tall) continue; + if (ln.mass >= maxMass * 0.3) { merged.push({ y0: ln.y0, y1: ln.y1, mass: ln.mass }); continue; } + const next = lines[i + 1]; + if (next && next.run === ln.run && next.mass >= maxMass * 0.3 && (ln.y1 - ln.y0) <= (next.y1 - next.y0) * 0.5) { next.y0 = ln.y0; } + } + return { lines: merged, rowInk }; +} + +/** Feature names in fingerprint order (used by distance). */ +const VBINS = 10, HQ = [0.25, 0.5, 0.75, 0.9]; +export const FEATURES = ['advance', 'advTall', 'advX', 'advCV', 'gap', 'xRatio', 'descRatio', 'stemW', 'contrast', 'serif', 'roundFrac', 'densTall', 'densX', 'runDensity', + ...Array.from({ length: VBINS }, (_, i) => `vprof${i}`), ...HQ.map((q) => `hrun${Math.round(q * 100)}`), ...HQ.map((q) => `vrun${Math.round(q * 100)}`), 'colq25', 'colq75', 'wq25', 'wq75']; + +/** Center of the densest window of width tol in a list of values, and its count. */ +function modeOf(vals, tol) { + let best = null, bestC = -1; + const s = [...vals].sort((a, b) => a - b); + let j = 0; + for (let i = 0; i < s.length; i++) { + while (s[i] - s[j] > tol) j++; + const c = i - j + 1; + if (c > bestC) { bestC = c; best = (s[i] + s[j]) / 2; } + } + return { v: best, n: bestC }; +} + +/** + * Per-line vertical metrics from column extrema, which do not need glyphs to + * be separable. baseline = mode of column bottoms. R (the reference height) + * is the top line of the tallest cluster: the cap line on an all-caps line, + * the ascender line (or the cap line when caps are taller) on a mixed line. + * The x-line is a second mode of column heights well below R; when there is + * none the line is read as all-caps. + */ +function lineMetrics(bin, ln) { + const { W, ink, cov } = bin; + const cols = []; + for (let x = 0; x < W; x++) { + let top = -1, bot = -1; + for (let yy = ln.y0; yy < ln.y1; yy++) if (ink[yy * W + x]) { if (top < 0) top = yy; bot = yy + 1; } + if (top < 0) continue; + // sub-pixel edges from the antialiased boundary pixel's coverage + const t = top > 0 ? top - cov((top - 1) * W + x) : top; + const b = bot < bin.H ? bot + cov(bot * W + x) : bot; + cols.push({ x, top: t, bot: b }); + } + if (cols.length < 8) return null; + const roughH = pct(cols.map((c) => c.bot - c.top), 0.9); + const tol = Math.max(1, Math.round(roughH * 0.04)); + const baseF = modeOf(cols.map((c) => c.bot), tol).v; + const base = Math.round(baseF); + const hs = cols.filter((c) => c.bot <= baseF + tol * 1.5).map((c) => baseF - c.top).filter((h) => h > 0); + if (hs.length < 8) return null; + const hMaxAbs = pct(hs, 0.995); + const topCluster = hs.filter((h) => h >= hMaxAbs * 0.94); + const R = med(topCluster); + if (!R || R < 4) return null; + const lowHs = hs.filter((h) => h >= R * 0.3 && h <= R * 0.86); + let xh = null; + if (lowHs.length >= Math.max(6, hs.length * 0.12)) { + const m = modeOf(lowHs, tol); + if (m.n >= Math.max(4, lowHs.length * 0.25)) xh = m.v; + } + const dsc = cols.filter((c) => c.bot > baseF + tol * 1.5 && c.top < baseF - R * 0.3).map((c) => (c.bot - baseF) / R); + const descRatio = dsc.length >= 4 ? pct(dsc, 0.9) : null; + return { base, R, cap: R, xh, descRatio, tol, xL: cols[0].x, xR: cols[cols.length - 1].x + 1, hs, ln }; +} + +/** Glyph boxes: column runs of ink inside the x band, so ascender/descender bridges do not merge letters. */ +function segment(bin, ln, m) { + const { W, ink } = bin; + const bandTop = Math.max(ln.y0, Math.round(m.base - (m.xh || m.cap * 0.6))); + const bandH = m.base - bandTop; + const thr = 1; + const colBand = new Uint32Array(W); + for (let yy = bandTop; yy < m.base; yy++) { const o = yy * W; for (let x = m.xL; x < m.xR; x++) colBand[x] += ink[o + x]; } + const runs = []; + let x = m.xL; + while (x < m.xR) { + if (colBand[x] >= thr) { const x0 = x; while (x < m.xR && colBand[x] >= thr) x++; runs.push({ x0, x1: x }); } else x++; + } + const out = []; + for (const r of runs) { + let top = -1, bot = -1, area = 0; + for (let yy = ln.y0; yy < ln.y1; yy++) { + let c = 0, cv = 0; const o = yy * W; for (let xx = r.x0; xx < r.x1; xx++) { c += ink[o + xx]; cv += bin.covA[o + xx]; } + if (c) { if (top < 0) top = yy; bot = yy + 1; } + area += cv; + } + if (top >= 0) out.push({ x0: r.x0, x1: r.x1, w: r.x1 - r.x0, top, bot, h: bot - top, area }); + } + return out; +} + +function measure(bin, lines) { + const { W, H, ink, covA } = bin; + // run lengths with the antialiased edge pixels counted by coverage + const hLen = (o, x0, x1) => { let s = 0; for (let x = Math.max(0, x0 - 1); x < Math.min(W, x1 + 1); x++) s += covA[o + x]; return s; }; + const vLen = (x, y0, y1) => { let s = 0; for (let y = Math.max(0, y0 - 1); y < Math.min(H, y1 + 1); y++) s += covA[y * W + x]; return s; }; + let glyphN = 0; + const per = { xh: [], desc: [], runDensity: [] }; + let allCapsLines = 0; + const vprof = new Float64Array(VBINS); const hruns = [], vruns = [], colHs = [], widths = []; + const advTall = [], advAll = [], advX = [], gaps = [], stems = [], thins = [], serifR = [], round = [], densTall = [], densX = []; + let capSum = 0, capN = 0; + // One crop, one case. In a multi-line all-caps headline one line can grow a + // spurious x-height from crossbars (the A and E arms of "JAPANESE" at 0.32R) + // while its neighbours report none; that line then measures its stems and + // its x band on the crossbar zone. Lines vote: when most lines see no + // x-height, none does. + const metrics = lines.map((ln) => lineMetrics(bin, ln)).filter(Boolean); + if (metrics.length >= 2) { + const withX = metrics.filter((m) => m.xh).length; + if (withX * 2 <= metrics.length) for (const m of metrics) m.xh = null; + } + for (const m of metrics) { + const ln = m.ln; + const { base, cap, xh, tol, xL, xR } = m; + capSum += cap; capN++; + if (xh) per.xh.push(xh / cap); + if (!xh) allCapsLines++; + if (m.descRatio != null) per.desc.push(m.descRatio); + for (const h of m.hs) colHs.push(h / cap); + // vertical ink profile from 0.35R below the baseline to 1.05R above, VBINS bins + for (let yy = ln.y0; yy < ln.y1; yy++) { + const u = (base - yy - 0.5) / cap; // height above baseline in R units + const bi = Math.floor((u + 0.35) / 1.4 * VBINS); + if (bi < 0 || bi >= VBINS) continue; + let c = 0; const o = yy * W; for (let x = xL; x < xR; x++) c += ink[o + x]; + vprof[bi] += c; + } + // horizontal run lengths over the whole line body (x band to cap line), vertical run lengths over all columns + for (let yy = Math.max(ln.y0, Math.round(base - cap)); yy < base; yy++) { + const o = yy * W; let x = xL; + while (x < xR) { if (ink[o + x]) { const x0 = x; while (x < xR && ink[o + x]) x++; hruns.push(hLen(o, x0, x) / cap); } else x++; } + } + for (let x = xL; x < xR; x++) { + let yy = ln.y0; + while (yy < ln.y1) { if (ink[yy * W + x]) { const y0 = yy; while (yy < ln.y1 && ink[yy * W + x]) yy++; vruns.push(vLen(x, y0, yy) / cap); } else yy++; } + } + const gl = segment(bin, ln, m); + const G = gl.filter((g) => g.w >= cap * 0.12 && (base - g.top) >= cap * 0.3); + glyphN += G.length; + const onBase = G.filter((g) => Math.abs(g.bot - base) <= tol * 1.5); + const capG = onBase.filter((g) => base - g.top >= cap * 0.88); + const xs = xh ? onBase.filter((g) => Math.abs(base - g.top - xh) <= Math.max(tol * 1.5, cap * 0.05)) : []; + for (const g of capG) { advTall.push(g.w / cap); densTall.push(g.area / (g.w * g.h)); } + for (const g of xs) { densX.push(g.area / (g.w * g.h)); advX.push(g.w / cap); } + for (const g of onBase) { advAll.push(g.w / cap); widths.push(g.w / cap); round.push(g.w / (base - g.top) > 0.9 ? 1 : 0); } + for (let i = 0; i + 1 < G.length; i++) { const gap = G[i + 1].x0 - G[i].x1; if (gap >= 0 && gap < cap * 0.6) gaps.push(gap / cap); } + const xTop = base - (xh || cap * 0.55); + const bandTop = Math.round(xTop + (base - xTop) * 0.2), bandBot = Math.round(base - (base - xTop) * 0.2); + let runCount = 0, runRows = 0; + for (let yy = bandTop; yy < bandBot; yy++) { + const o = yy * W; let x = xL; runRows++; + while (x < xR) { if (ink[o + x]) { const x0 = x; while (x < xR && ink[o + x]) x++; const L = hLen(o, x0, x); runCount++; if (L < cap * 0.5) stems.push(L / cap); } else x++; } + } + if (runRows) per.runDensity.push((runCount / runRows) / ((xR - xL) / cap)); + for (let x = xL; x < xR; x++) { + let yy = ln.y0; + while (yy < ln.y1) { if (ink[yy * W + x]) { const y0 = yy; while (yy < ln.y1 && ink[yy * W + x]) yy++; const L = vLen(x, y0, yy); if (L < cap * 0.35) thins.push(L / cap); } else yy++; } + } + // serif: stems that run straight to the baseline; foot width vs mid-stem width + const runAt = (yy, x) => { const o = yy * W; if (!ink[o + x]) return 0; let a = x, b = x; while (a > xL && ink[o + a - 1]) a--; while (b + 1 < xR && ink[o + b + 1]) b++; return hLen(o, a, b + 1); }; + const yMid = Math.round(base - cap * 0.4), yHi = Math.round(base - cap * 0.18), yFoot = base - Math.max(1, Math.round(cap * 0.04)); + let x = xL; + while (x < xR) { + let yy = base - 1; if (!ink[yy * W + x]) { x++; continue; } + while (yy > ln.y0 && ink[(yy - 1) * W + x]) yy--; + if (yy > yMid) { x++; continue; } + const x0 = x; x++; while (x < xR && ink[(base - 1) * W + x] && ink[yMid * W + x]) x++; + const xc = Math.round((x0 + x - 1) / 2); + const wMid = runAt(yMid, xc), wHi = runAt(yHi, xc), wFoot = runAt(yFoot, xc); + if (wMid > 0 && wMid < cap * 0.5 && wHi <= wMid * 1.3 && wHi >= wMid * 0.7) serifR.push(wFoot / wMid); + } + } + if (!capN) return null; + const stemW = med(stems), thinW = med(thins); + const advM = med(advAll); + const advSd = advAll.length > 3 ? Math.sqrt(advAll.reduce((s, v) => s + (v - advM) ** 2, 0) / advAll.length) : null; + const vsum = vprof.reduce((s, x) => s + x, 0) || 1; + const extra = {}; + for (let i = 0; i < VBINS; i++) extra[`vprof${i}`] = vprof[i] / vsum; + for (const q of HQ) { extra[`hrun${Math.round(q * 100)}`] = pct(hruns, q); extra[`vrun${Math.round(q * 100)}`] = pct(vruns, q); } + extra.colq25 = pct(colHs, 0.25); extra.colq75 = pct(colHs, 0.75); + extra.wq25 = pct(widths, 0.25); extra.wq75 = pct(widths, 0.75); + return { + ...extra, + capHeightPx: capSum / capN, + glyphs: glyphN, + advance: advM, + advTall: advTall.length ? med(advTall) : null, + advX: advX.length ? med(advX) : null, + advCV: advSd != null && advM ? advSd / advM : null, + gap: gaps.length ? med(gaps) : 0, + xRatio: per.xh.length ? med(per.xh) : null, + descRatio: per.desc.length ? med(per.desc) : null, + allCaps: allCapsLines * 2 > capN, + runDensity: med(per.runDensity), + stemW, + contrast: stemW && thinW ? stemW / thinW : null, + serif: serifR.length >= 3 ? med(serifR) : null, + roundFrac: round.length ? mean(round) : null, + densTall: densTall.length ? med(densTall) : null, + densX: densX.length ? med(densX) : null, + }; +} + +/** + * fingerprint(img) -> features, or null when no lettering is found. Upsamples (bilinear) when the + * cap height is under 24px so runs and edges are measured on finer pixels. + */ +/** + * Keep the dominant lettering in a region crop: the lines whose cap height is + * within `tol` of the tallest, clipped horizontally to their own ink. A comp + * region drawn on a 10x10 grid over-covers: the headline crop carries the + * first line of body copy below it and a slice of the neighbouring column, + * and every one of those small letters pulls stem width, run lengths and the + * x-height vote toward a lighter, wider face. Returns { lines, x0, x1 } in + * the binarized image, or null when nothing survives. + */ +export function isolateDominant(bin, lines, { tol = 0.28 } = {}) { + const ms = lines.map((ln) => ({ ln, m: lineMetrics(bin, ln) })).filter((x) => x.m); + if (!ms.length) return null; + // The dominant class is the one holding most of the ink, not the tallest + // line: a body-copy crop that clips the last line of the headline above it + // is body copy. Cluster caps within tol of each other and pick the cluster + // with the most ink mass; the tallest wins only a tie. + const clusters = []; + for (const x of [...ms].sort((a, b) => b.m.cap - a.m.cap)) { + const c = clusters.find((cl) => Math.abs(cl.cap - x.m.cap) <= cl.cap * tol); + if (c) { c.items.push(x); c.mass += x.ln.mass || 0; } else clusters.push({ cap: x.m.cap, items: [x], mass: x.ln.mass || 0 }); + } + // Mass per line-height, so one heavy display line does not outvote five + // lines of body copy; and a cluster of a single clipped line never wins + // over a cluster of three or more. + for (const c of clusters) { c.rows = c.items.reduce((n, x) => n + (x.ln.y1 - x.ln.y0), 0); c.density = c.mass / Math.max(1, c.rows); c.n = c.items.length; } + clusters.sort((a, b) => { + const aMulti = a.n >= 3, bMulti = b.n >= 3; + if (aMulti !== bMulti) return aMulti ? -1 : 1; + return (b.mass - a.mass) || (b.cap - a.cap); + }); + const keep = clusters[0].items; + const capMax = Math.max(...keep.map((x) => x.m.cap)); + // horizontal extent of the kept lines' tallest ink columns only: a small + // column of body text beside the headline shares its rows but not its height + const { W, ink } = bin; + let x0 = W, x1 = 0; + for (const { ln, m } of keep) { + const top = Math.round(m.base - m.cap * 0.75); + for (let x = m.xL; x < m.xR; x++) { + let tall = false; + for (let y = top; y < m.base && !tall; y++) if (ink[y * W + x]) tall = true; + if (!tall) continue; + // a column is headline ink when a run of at least 0.5 cap of ink stands in it + let run = 0, best = 0; + for (let y = ln.y0; y < ln.y1; y++) { if (ink[y * W + x]) { run++; if (run > best) best = run; } else run = 0; } + if (best >= m.cap * 0.5) { if (x < x0) x0 = x; if (x + 1 > x1) x1 = x + 1; } + } + } + if (x1 <= x0) return null; + // grow the box by half a cap so glyph sides and the tracking gap survive + const pad = Math.round(capMax * 0.5); + return { lines: keep.map((x) => x.ln), x0: Math.max(0, x0 - pad), x1: Math.min(W, x1 + pad), dropped: ms.length - keep.length }; +} + +function maskOutside(bin, x0, x1, lines) { + const { W, H, ink, covA } = bin; + const keepRow = new Uint8Array(H); + for (const ln of lines) for (let y = ln.y0; y < ln.y1; y++) keepRow[y] = 1; + const ink2 = new Uint8Array(ink.length), cov2 = new Float32Array(covA.length); + for (let y = 0; y < H; y++) { + if (!keepRow[y]) continue; + for (let x = x0; x < x1; x++) { const i = y * W + x; ink2[i] = ink[i]; cov2[i] = covA[i]; } + } + return { ...bin, ink: ink2, covA: cov2, cov: (i) => cov2[i] }; +} + +export function fingerprint(img, { minCap = 24, minGlyphs = 3, isolate = true } = {}) { + let bin = binarize(img); + let { lines } = findLines(bin); + if (!lines.length) return null; + let isolated = 0; + if (isolate && lines.length > 1) { + const iso = isolateDominant(bin, lines); + if (iso && (iso.dropped > 0 || iso.x1 - iso.x0 < bin.W * 0.9)) { + bin = maskOutside(bin, iso.x0, iso.x1, iso.lines); + lines = iso.lines; + isolated = iso.dropped; + } + } + let f = measure(bin, lines); + // fewer than minGlyphs separable glyphs is not lettering (a rule, a solid + // bar, one letterform): callers read null as "no separable lettering" + if (!f || f.glyphs < minGlyphs) return null; + let scale = 1; + if (f.capHeightPx < minCap && f.capHeightPx >= 4) { + scale = Math.min(4, Math.ceil(minCap / f.capHeightPx)); + const up = resize(img, img.width * scale, img.height * scale); + bin = binarize(up); + lines = findLines(bin).lines; + // the upsample re-reads the whole crop: isolate again so the clipped + // headline or the drawing does not come back at scale + if (isolate && lines.length > 1) { + const iso2 = isolateDominant(bin, lines); + if (iso2 && (iso2.dropped > 0 || iso2.x1 - iso2.x0 < bin.W * 0.9)) { bin = maskOutside(bin, iso2.x0, iso2.x1, iso2.lines); lines = iso2.lines; isolated = Math.max(isolated, iso2.dropped); } + } + const f2 = lines.length ? measure(bin, lines) : null; + if (f2) f = f2; + else scale = 1; + } + const r = { lines: lines.length, glyphs: f.glyphs, capHeightPx: +(f.capHeightPx / scale).toFixed(1), inkIsDark: bin.inkIsDark, upsampled: scale > 1, allCaps: f.allCaps, isolatedFrom: isolated, weight: f.densTall == null && f.densX == null ? null : +(f.densTall ?? f.densX).toFixed(4) }; + for (const k of FEATURES) r[k] = f[k] == null ? null : +f[k].toFixed(4); + return r; +} + +/** + * Distance normalization fitted on 299 held-out probes (150 at ~30px cap, 149 + * at ~14px, text different from the index text) against a 3,092-entry Google + * Fonts index: std = within-family noise (1.4826 x median |probe - own index + * entry|, floored at 5% of the catalog IQR spread), w = group weight from + * coordinate descent on top-5 family recall. mean is unused by the distance. + */ +export const STATS = { + advance: { std: 0.07648, w: 0 }, + advTall: { std: 0.25331, w: 0 }, + advX: { std: 0.05144, w: 1.5 }, + advCV: { std: 0.0857, w: 1 }, + gap: { std: 0.02668, w: 1 }, + xRatio: { std: 0.02315, w: 1 }, + descRatio: { std: 0.17831, w: 1 }, + stemW: { std: 0.01922, w: 1 }, + contrast: { std: 0.05969, w: 3 }, + serif: { std: 0.31477, w: 0.5 }, + roundFrac: { std: 0.09341, w: 1 }, + densTall: { std: 0.05708, w: 2 }, + densX: { std: 0.07666, w: 0 }, + runDensity: { std: 0.18199, w: 1 }, + vprof0: { std: 0.01178, w: 1 }, + vprof1: { std: 0.01331, w: 1 }, + vprof2: { std: 0.02745, w: 1 }, + vprof3: { std: 0.03046, w: 1 }, + vprof4: { std: 0.01933, w: 1 }, + vprof5: { std: 0.01737, w: 1 }, + vprof6: { std: 0.0336, w: 1 }, + vprof7: { std: 0.03195, w: 1 }, + vprof8: { std: 0.03271, w: 1 }, + vprof9: { std: 0.02951, w: 1 }, + hrun25: { std: 0.01751, w: 1 }, + hrun50: { std: 0.02124, w: 1 }, + hrun75: { std: 0.04503, w: 1 }, + hrun90: { std: 0.06844, w: 1 }, + vrun25: { std: 0.01895, w: 1 }, + vrun50: { std: 0.02405, w: 1 }, + vrun75: { std: 0.06199, w: 1 }, + vrun90: { std: 0.09486, w: 1 }, + colq25: { std: 0.02906, w: 1 }, + colq75: { std: 0.18204, w: 1 }, + wq25: { std: 0.19862, w: 1 }, + wq75: { std: 0.09687, w: 1 }, +}; +export const Z_CLIP = 3; + +/** Weighted L1 over z-scored features; a feature missing on either side is skipped and the weight mass renormalized. */ +/** + * The two readings a designer makes before any detail: how wide, how heavy. + * Width from the advance of tall glyphs (all-caps crops) or x-height glyphs; + * weight from ink density of tall glyphs. Both are on the same scale in the + * comp crop and in a catalog render, so their gap is a plain ratio. Distance + * adds a penalty that grows with the ratio's log: a face 50% wider or 35% + * lighter than the comp cannot rank above one that is right on both, whatever + * its run-length profile says. Weighted like three fine features (the width + * gap and the weight gap each score up to zClip x 1.5). + */ +export function grossGap(a, b) { + const pick = (f, keys) => { for (const k of keys) if (f[k] != null) return { k, v: f[k] }; return null; }; + const wa = pick(a, ['advX', 'advTall', 'advance']), wb = wa ? (b[wa.k] != null ? { k: wa.k, v: b[wa.k] } : null) : null; + const ha = pick(a, ['densTall', 'densX', 'stemW']), hb = ha ? (b[ha.k] != null ? { k: ha.k, v: b[ha.k] } : null) : null; + const gap = (x, y) => (x && y && x.v > 0 && y.v > 0 ? Math.abs(Math.log(y.v / x.v)) : null); + return { width: gap(wa, wb), weight: gap(ha, hb) }; +} + +export const GROSS_STD = { width: 0.12, weight: 0.12 }; // one "step" of width class or weight class, in log ratio +export const GROSS_W = 1.5; + +export function distance(a, b, stats = STATS, { p = 1, zClip = Z_CLIP, gross = true } = {}) { + let d = 0, wsum = 0; + if (gross) { + const g = grossGap(a, b); + for (const k of ['width', 'weight']) { + if (g[k] == null) continue; + const z = Math.min(zClip, g[k] / GROSS_STD[k]); + d += GROSS_W * (p === 1 ? z : z * z); wsum += GROSS_W; + } + } + for (const k of FEATURES) { + const s = stats[k]; if (!s || !s.w) continue; + const av = a[k], bv = b[k]; + if (av == null || bv == null) continue; + const z = Math.min(zClip, Math.abs(av - bv) / s.std); + d += s.w * (p === 1 ? z : z * z); wsum += s.w; + } + if (!wsum) return Infinity; + const v = d / wsum; + return p === 1 ? v : Math.sqrt(v); +} + +/** Debug: per-line metrics (base, R, xh, mode counts) for a raster. */ +export function _debugLines(img) { + const bin = binarize(img); + const { lines } = findLines(bin); + return lines.map((ln) => { const m = lineMetrics(bin, ln); if (!m) return { ln, m: null }; const hs = m.hs.map((h) => +(h / m.R).toFixed(2)).sort((a, b) => a - b); const hist = {}; for (const h of hs) { const b = Math.round(h * 20) / 20; hist[b] = (hist[b] || 0) + 1; } return { y0: ln.y0, y1: ln.y1, base: m.base, R: +m.R.toFixed(1), xh: m.xh && +m.xh.toFixed(1), hist }; }); +} diff --git a/skill/scripts/lib/font-index.mjs b/skill/scripts/lib/font-index.mjs new file mode 100644 index 000000000..609d0e286 --- /dev/null +++ b/skill/scripts/lib/font-index.mjs @@ -0,0 +1,130 @@ +/** + * font-index: the fingerprint index of the Google Fonts catalog that + * font-match.mjs --rank uses as its candidate generator, and the pack/unpack + * helpers the release-time build (repo scripts/build-font-index.mjs) shares with it. + * + * File: skill/scripts/data/font-index.json + * { + * schema: 1, + * text: "", + * sizes: [48, 14], // cap heights (px) the catalog was rendered at + * features: [...], // feature names, in vector order (the fitted-nonzero subset of FEATURES) + * categories: ["sans", ...], // category index -> name + * entries: [[family, weight, categoryIdx, variable(0|1), vec48, vec14], ...] + * } + * A vector is a string of 3-char base-36 numbers, one per feature, each the + * feature value x 1000 (three decimals, clipped at 46.655); "___" is null. + * That packing keeps ~3,000 faces x 2 sizes x 33 features under 750 KB on + * disk, which is what makes it shippable inside the skill without gzip. + * + * Two sizes because the fingerprint's features are stable within a factor of + * ~2 in size but not from 48px down to 14px: a crop is routed to the index + * rendered nearer its own cap height (ROUTE_CAP_PX is the boundary). + */ +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { FEATURES, STATS, distance } from './font-fingerprint.mjs'; + +export const INDEX_PATH = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'data', 'font-index.json'); +/** Cap heights the catalog is rendered at. `48c` is the same 48px cap in ALL + * CAPS text (schema 2), queried for caps crops; a schema-1 index without it + * routes caps crops to the mixed-case 48 as before. */ +export const INDEX_SIZES = [48, 14, '48c']; +/** Crops with a cap height under this many px query the 14px index. */ +export const ROUTE_CAP_PX = 22; +/** Below this cap height the fingerprint is not trustworthy; callers size by the box instead. */ +export const MIN_RANK_CAP_PX = 10; +export const CATEGORIES = ['sans', 'serif', 'display', 'handwriting', 'mono']; +/** The features the index stores: the ones the fitted distance gives nonzero weight. */ +export const GROSS_FEATURES = ['advance', 'advTall', 'advX', 'densTall', 'densX', 'stemW']; +export const INDEX_FEATURES = FEATURES.filter((k) => (STATS[k] && STATS[k].w > 0) || GROSS_FEATURES.includes(k)); + +const NULL_TOKEN = '___'; +const MAX_Q = 36 ** 3 - 1; + +export function packVector(fp, features = INDEX_FEATURES) { + return features.map((k) => { + const v = fp?.[k]; + if (v == null || !Number.isFinite(v)) return NULL_TOKEN; + return Math.min(MAX_Q, Math.max(0, Math.round(v * 1000))).toString(36).padStart(3, '0'); + }).join(''); +} + +export function unpackVector(s, features = INDEX_FEATURES) { + const out = {}; + for (let i = 0; i < features.length; i++) { + const t = s.slice(i * 3, i * 3 + 3); + out[features[i]] = t === NULL_TOKEN || t.length < 3 ? null : parseInt(t, 36) / 1000; + } + return out; +} + +let cached = null; +/** + * Load and decode the index. Returns null when the file is missing (callers + * fall back to their built-in shortlist). Result: { schema, text, sizes, + * features, entries: [{ family, weight, category, variable, fp: { 48: {...}, 14: {...}|null } }] }. + */ +export function loadFontIndex(file = INDEX_PATH) { + if (cached && cached.file === file) return cached.index; + if (!fs.existsSync(file)) return null; + const raw = JSON.parse(fs.readFileSync(file, 'utf8')); + const features = raw.features || INDEX_FEATURES; + const cats = raw.categories || CATEGORIES; + const sizes = raw.sizes || INDEX_SIZES; + const entries = raw.entries.map((e) => { + const fp = {}; + sizes.forEach((sz, i) => { const v = e[4 + i]; fp[sz] = v ? unpackVector(v, features) : null; }); + return { family: e[0], weight: e[1], category: cats[e[2]] ?? String(e[2]), variable: !!e[3], fp }; + }); + const index = { schema: raw.schema, text: raw.text, sizes, features, entries }; + cached = { file, index }; + return index; +} + +/** Which of the index's cap sizes a crop with this cap height should query. */ +export function routeSize(capHeightPx, sizes = INDEX_SIZES, { allCaps = false } = {}) { + const numeric = sizes.filter((s) => typeof s === 'number').sort((a, b) => a - b); + if (allCaps && capHeightPx >= ROUTE_CAP_PX && sizes.includes('48c')) return '48c'; + return capHeightPx < ROUTE_CAP_PX ? numeric[0] : numeric[numeric.length - 1]; +} + +/** + * The n nearest catalog faces to a comp fingerprint, routed by cap height. + * Returns [{ family, weight, category, variable, d, size }] sorted by distance; + * at most `perFamily` entries of one family so the shortlist spans faces, not weights. + */ +/** + * Faces that are not lettering: barcodes, redaction bars, placeholder "flow" + * text, dingbats, symbol fonts, and effect faces (outlines, shades, glitch, + * pixel, 3D) whose fingerprint lands near heavy condensed text without being + * usable as it. A comp headline never wants them; a caller who does can pass + * them by name in `--candidates`. + */ +export const NON_TEXT_FAMILY = /barcode|^redacted|^flow (block|circular|rounded)|dings|symbols|^bungee (hairline|outline|shade|spice)|^rubik (80s|beastly|broken|bubbles|burned|dirt|distressed|doodle|gemstones|glitch|iso|lines|marker|maze|microbe|moonrocks|pixels|puddles|scribble|spray|storm|vinyl|wet)|^(nabla|honk|kablammo|sixtyfour|workbench|codystar|rock 3d|zen dots|ballet|butcherman|creepster|eater|faster one|frijole|nosifer|metal mania|miltonian)/i; + +export function candidatesFromIndex(fp, index, { n = 25, category = null, perFamily = 2, includeNonText = false } = {}) { + if (!fp || !index) return []; + const size = routeSize(fp.capHeightPx, index.sizes, { allCaps: !!fp.allCaps }); + const wantCat = category ? String(category).split(',').map((s) => s.trim().toLowerCase()).filter(Boolean) : null; + const scored = []; + for (const e of index.entries) { + if (wantCat && !wantCat.includes(e.category)) continue; + if (!includeNonText && NON_TEXT_FAMILY.test(e.family)) continue; + const v = e.fp[size]; + if (!v) continue; + const d = distance(fp, v); + if (!Number.isFinite(d)) continue; + scored.push({ family: e.family, weight: e.weight, category: e.category, variable: e.variable, d, size }); + } + scored.sort((a, b) => a.d - b.d); + const perFam = new Map(); const out = []; + for (const s of scored) { + const c = perFam.get(s.family) || 0; + if (c >= perFamily) continue; + perFam.set(s.family, c + 1); out.push(s); + if (out.length >= n) break; + } + return out; +} diff --git a/skill/scripts/lib/hero-checks.mjs b/skill/scripts/lib/hero-checks.mjs new file mode 100644 index 000000000..0f7f3fd28 --- /dev/null +++ b/skill/scripts/lib/hero-checks.mjs @@ -0,0 +1,246 @@ +/** + * Hero-gate checks that name a miss as a number the model can act on. + * + * comp-diff scores regions; these read what a designer reads when the two + * frames sit side by side and says it as numbers: the headline is set at + * cap 78px where the comp's is 103; it wraps to four lines where the comp + * has three; its ink is #2a2a2a where the comp's is #a72f1b; it starts + * 60px lower in its box; the masthead is 92px tall where the comp's is 58; + * these grid cells carry ink the comp does not have (a kicker, a divider, a + * second nav row). Every one of those was a pin in the first human review + * of the third sweep, on builds the region scores had already let through. + * + * All functions are pure over decoded rasters and the spec; the gate wires + * them and decides what vetoes. + */ +import { fingerprint } from './font-fingerprint.mjs'; +import { crop } from './raster.mjs'; +import { dominantColors, deltaE, detailGrid } from './image-metrics.mjs'; +import { inkBox } from '../comp-diff.mjs'; + +/** Dominant ink colour of a crop: the heaviest cluster that is not the ground. */ +export function inkColor(img) { + const cols = dominantColors(img, 4); + if (!cols.length) return null; + const ground = cols[0]; + const ink = cols.find((c) => c !== ground && deltaE(c.lab, ground.lab) > 20) || null; + return { ground, ink }; +} + +/** + * Compare one text region's build crop against the comp's measurement. + * `region` is a spec region with `type.comp` (font-match --measure) and + * `px`; `compCrop` / `buildCrop` are the region crops at comp scale. + * Returns { findings: string[], metrics }. + */ +export function textRegionCheck(region, compCrop, buildCrop, { capTol = 0.22, minCap = 10 } = {}) { + const findings = []; + // Measure the comp crop now rather than trusting spec.type.comp: the spec + // may carry an older fingerprint's reading, and this check has to agree + // with itself on both sides. + const comp = fingerprint(compCrop); + // colour reads on any text region, measured or not: a spine set vertical + // (unmeasurable) came back white on red where the comp had black on red + // in five builds + const colourOnly = () => { + const ca = inkColor(compCrop), cb = inkColor(buildCrop); + if (ca && cb && ca.ink && cb.ink && deltaE(ca.ink.lab, cb.ink.lab) > 22) findings.push(`text ${region.id}: ink is ${cb.ink.hex} in the build, ${ca.ink.hex} in the comp; use the comp's colour`); + return { findings, metrics: null }; + }; + if (!comp || !comp.capHeightPx || comp.capHeightPx < minCap || comp.glyphs < 6) return colourOnly(); + // rotated type (a spine set vertical) reads as many short 'lines' of one + // or two glyphs; the fingerprint has nothing to say about it + if (comp.lines >= 5 && comp.glyphs / comp.lines < 3) return colourOnly(); + // a cap taller than half the box is a drawing read as a glyph, not type + if (comp.capHeightPx > compCrop.height * 0.6) return colourOnly(); + const bfp = fingerprint(buildCrop); + const metrics = { comp: { cap: comp.capHeightPx, lines: comp.lines, glyphs: comp.glyphs }, build: bfp ? { cap: bfp.capHeightPx, lines: bfp.lines, glyphs: bfp.glyphs } : null }; + if (!bfp || bfp.glyphs < 4) { + // nothing legible in the box: comp-diff's missing/contradicted covers it + return { findings, metrics }; + } + const capDelta = (bfp.capHeightPx - comp.capHeightPx) / comp.capHeightPx; + if (Math.abs(capDelta) > capTol) { + findings.push(`text ${region.id}: cap height ${bfp.capHeightPx}px in the build, ${comp.capHeightPx}px in the comp (${capDelta > 0 ? '+' : ''}${Math.round(capDelta * 100)}%); set font-size so the cap height renders at ${comp.capHeightPx}px${region.type.chosen ? ` (font-match ranked ${region.type.chosen.family} ${region.type.chosen.weight} at ${region.type.chosen.fontSizePx}px)` : ''}`); + } + if (comp.lines >= 2 && bfp.lines !== comp.lines && Math.abs(bfp.lines - comp.lines) >= 1) { + findings.push(`text ${region.id}: ${bfp.lines} line${bfp.lines === 1 ? '' : 's'} in the build, ${comp.lines} in the comp; the measure (max-width, font-size, letter-spacing) wraps it differently, so the block is a different shape`); + } else if (comp.lines >= 3 && bfp.lines === comp.lines && Math.abs(capDelta) <= capTol) { + // same lines at the same size: the leading is the remaining shape + const ba0 = inkBox(compCrop), bb0 = inkBox(buildCrop); + if (ba0 && bb0) { + const pa = ba0.h / comp.lines, pb = bb0.h / bfp.lines; + const dp = (pb - pa) / pa; + if (Math.abs(dp) > 0.2) findings.push(`text ${region.id}: line pitch ${Math.round(pb)}px in the build, ${Math.round(pa)}px in the comp (${dp > 0 ? '+' : ''}${Math.round(dp * 100)}%); set line-height so ${comp.lines} lines stand ${Math.round(ba0.h)}px tall`); + } + } + // tracking: the gap between glyphs in cap units, when both sides read it + if (comp.gap != null && bfp.gap != null && Math.abs(capDelta) <= capTol && comp.glyphs >= 8 && bfp.glyphs >= 8) { + const dg = bfp.gap - comp.gap; + if (Math.abs(dg) > Math.max(0.03, comp.gap * 0.5)) findings.push(`text ${region.id}: letter-spacing is ${dg > 0 ? 'wider' : 'tighter'} than the comp's (gap ${bfp.gap.toFixed(3)} vs ${comp.gap.toFixed(3)} of the cap height); set letter-spacing to ${dg > 0 ? 'close' : 'open'} it by about ${Math.abs(Math.round(dg * comp.capHeightPx))}px`); + } + // weight: compare ink density of tall glyphs when both sides have it and + // the sizes agree (density at a different cap is a different reading) + if (comp.densTall != null && bfp.densTall != null && Math.abs(capDelta) <= capTol) { + const r = bfp.densTall / comp.densTall; + if (r > 1.25) findings.push(`text ${region.id}: the face renders ${Math.round((r - 1) * 100)}% heavier than the comp's (ink density ${bfp.densTall.toFixed(2)} vs ${comp.densTall.toFixed(2)}); drop a weight step or use the ranked face`); + else if (r < 0.75) findings.push(`text ${region.id}: the face renders ${Math.round((1 - r) * 100)}% lighter than the comp's (ink density ${bfp.densTall.toFixed(2)} vs ${comp.densTall.toFixed(2)}); raise a weight step or use the ranked face`); + } + // colour: dominant ink of each crop. Small type on a ruled or grainy + // ground (a track row across staff lines at cap 14) has no reliable ink + // cluster; the reading fired both ways on neighbouring rows of one list. + if (comp.capHeightPx >= 16) { + const ca = inkColor(compCrop), cb = inkColor(buildCrop); + if (ca && cb && ca.ink && cb.ink) { + const d = deltaE(ca.ink.lab, cb.ink.lab); + if (d > 22) findings.push(`text ${region.id}: ink is ${cb.ink.hex} in the build, ${ca.ink.hex} in the comp; use the comp's colour`); + } + } + // vertical placement inside the box: top of ink + const ba = inkBox(compCrop), bb = inkBox(buildCrop); + if (ba && bb) { + const dy = bb.y - ba.y; + if (Math.abs(dy) > Math.max(12, compCrop.height * 0.15)) findings.push(`text ${region.id}: its first line starts ${Math.abs(Math.round(dy))}px ${dy > 0 ? 'lower' : 'higher'} than in the comp (${bb.y}px vs ${ba.y}px into the region box); the spacing above it is ${dy > 0 ? 'too large' : 'too small'}`); + const dx = bb.x - ba.x; + if (Math.abs(dx) > Math.max(12, compCrop.width * 0.15)) findings.push(`text ${region.id}: it starts ${Math.abs(Math.round(dx))}px ${dx > 0 ? 'further right' : 'further left'} than in the comp`); + } + metrics.capDelta = +capDelta.toFixed(3); + return { findings, metrics }; +} + +/** + * Rows of a crop that carry a horizontal rule: a row whose gray step from + * the row above (or below) is strong across at least `span` of the width. + * Returns row indices sorted top to bottom. + */ +export function ruleRows(img, { span = 0.5, step = 28 } = {}) { + const W = img.width, H = img.height; + const gray = (x, y) => { const i = (y * W + x) * 4; return 0.299 * img.data[i] + 0.587 * img.data[i + 1] + 0.114 * img.data[i + 2]; }; + const rows = []; + for (let y = 1; y < H - 1; y++) { + let strong = 0; + for (let x = 0; x < W; x++) { const d = Math.max(Math.abs(gray(x, y) - gray(x, y - 1)), Math.abs(gray(x, y) - gray(x, y + 1))); if (d > step) strong++; } + if (strong >= W * span) rows.push(y); + } + // collapse adjacent rows into one edge + const out = []; + for (const y of rows) if (!out.length || y - out[out.length - 1] > 3) out.push(y); + return out; +} + +/** + * A thin chrome region (masthead, nav bar, footer strip) has a height, and + * its height is where its rule sits. Compare the first horizontal rule's row + * in comp vs build; fall back to the ink extents when neither has a rule. + */ +export function chromeStripCheck(region, compCrop, buildCrop) { + const findings = []; + const strip = compCrop.height <= compCrop.width * 0.35; + if (!strip) return { findings }; + // a control that is one link or one button, not a bar across its box, has + // no strip height to compare (its underline read as a 'rule' for 27 + // attempts in one session) + if (region.kind === 'control') { + const ib = inkBox(compCrop); + if (!ib || ib.w < compCrop.width * 0.6) return { findings }; + } + const ra = ruleRows(compCrop), rb = ruleRows(buildCrop); + if (ra.length && rb.length) { + // the rule that closes the strip is the first one from the top (a grid + // row often carries the next element's top edge lower down) + const ya = ra[0], yb = rb[0]; + const dy = yb - ya; + if (Math.abs(dy) > Math.max(5, compCrop.height * 0.06)) findings.push(`${region.kind} ${region.id}: its rule sits ${ya}px into the box in the comp and ${yb}px in the build (${dy > 0 ? '+' : ''}${dy}px), so the strip is ${dy > 0 ? 'taller' : 'shorter'} than the comp's; match the height, not only the position`); + return { findings, comp: ya, build: yb }; + } + const ba = inkBox(compCrop), bb = inkBox(buildCrop); + if (!ba || !bb) return { findings }; + if (ba.w >= compCrop.width * 0.6 && ba.h <= compCrop.height * 0.6) { + const dh = bb.h - ba.h; + if (Math.abs(dh) > Math.max(10, ba.h * 0.25)) findings.push(`${region.kind} ${region.id}: its ink is ${bb.h}px tall in the build and ${ba.h}px in the comp (${dh > 0 ? '+' : ''}${dh}px); match the height, not only the position`); + } + return { findings, comp: ba, build: bb }; +} + +/** + * Cells of the frame where the build carries ink and the comp is calm. + * Returns { cells: [{col,row,label}], fraction } on a cols x rows grid. + * `floor` is the comp energy under which a cell counts as calm; `added` is + * the build energy over which the build counts as inked. + */ +export function inventedInk(comp, build, { cols = 10, rows = 10, floor = 10, added = 12, ratio = 2.5 } = {}) { + const a = detailGrid(comp, cols, rows, 512), b = detailGrid(build, cols, rows, 512); + const cells = []; + for (let r = 0; r < rows; r++) for (let c = 0; c < cols; c++) { + const i = r * cols + c; + // calm in the comp (grain, flat ground) and inked in the build well past + // what grain would give: a kicker over paper, a divider, a nav row + if (!(a.cells[i] < floor && b.cells[i] > Math.max(added, a.cells[i] * ratio))) continue; + // the comp must be calm around the cell too: a hard edge one pixel over + // the cell boundary in the build (a bar shifted by a subpixel of the + // alignment) reads as invented otherwise + let neighbourhood = 0, n = 0; + for (let dr = -1; dr <= 1; dr++) for (let dc = -1; dc <= 1; dc++) { const rr = r + dr, cc = c + dc; if (rr < 0 || cc < 0 || rr >= rows || cc >= cols) continue; neighbourhood += a.cells[rr * cols + cc]; n++; } + if (neighbourhood / n >= floor * 2) continue; + cells.push({ col: c, row: r, label: `${String.fromCharCode(65 + c)}${r}`, comp: +a.cells[i].toFixed(1), build: +b.cells[i].toFixed(1) }); + } + return { cells, fraction: cells.length / (cols * rows) }; +} + +/** + * A plate cropped by its box: the comp's artwork keeps a margin inside the + * region on some side and the build's ink runs flush to that edge (object-fit: + * cover on a box smaller than the artwork's aspect, or an sized to the + * column). The best build of the fifth sweep passed the hero at 87% with the + * cover arch cut off at the left and bottom; the human review called it a + * bug in one word. Returns the sides clipped, or []. + */ +export function plateClipCheck(region, compCrop, buildCrop, { margin = 6 } = {}) { + const a = inkBox(compCrop), b = inkBox(buildCrop); + if (!a || !b) return { sides: [] }; + const W = compCrop.width, H = compCrop.height; + const sides = []; + const flush = (v) => v <= 1; + if (a.x >= margin && flush(b.x)) sides.push('left'); + if (a.y >= margin && flush(b.y)) sides.push('top'); + if (W - (a.x + a.w) >= margin && flush(W - (b.x + b.w))) sides.push('right'); + if (H - (a.y + a.h) >= margin && flush(H - (b.y + b.h))) sides.push('bottom'); + return { sides, comp: a, build: b }; +} + +/** + * Inline SVG that is an illustration, not an icon. An icon is small (a + * viewBox or box under `iconPx` on its long side) with a few paths; anything + * with a real path budget is a drawing in code: a diagram, a rack of + * carburetors, staff notation, leader lines with arrows, a "terrible svg + * approximation of the asset". Those ship as plates or as part of the plate + * they annotate. Returns one entry per offending with a snippet. + * + * `html` is the artifact source. `pathBudget` counts characters of path + * data (d="..."), points, and polyline/polygon points across the element. + */ +export function svgIllustrations(html, { iconPx = 64, pathBudget = 480, maxPaths = 8 } = {}) { + const out = []; + const re = /]*)>([\s\S]*?)<\/svg>/gi; + let m; + while ((m = re.exec(html))) { + const attrs = m[1], body = m[2]; + const paths = (body.match(/ 0 && long <= iconPx && paths <= maxPaths; + const uses = / pathBudget || paths > maxPaths || (long > iconPx && paths > 0)) { + const id = /\b(id|class|aria-label|data-region)="([^"]+)"/i.exec(attrs); + out.push({ snippet: ` (${paths} shapes, ${budget} chars of path data${long ? `, ${long}px` : ''})`, label: id ? id[2] : null, paths, budget, long }); + } + } + return out; +} diff --git a/skill/scripts/lib/image-metrics.mjs b/skill/scripts/lib/image-metrics.mjs new file mode 100644 index 000000000..baa5c95a1 --- /dev/null +++ b/skill/scripts/lib/image-metrics.mjs @@ -0,0 +1,306 @@ +/** + * Perceptual measures for comparing a comp with a build screenshot. Pure + * functions over `{ width, height, data }` RGBA images; no I/O. + * + * Three families, because a build fails a comp in three separable ways: + * + * - structure: is the composition the same? Measured as SSIM over a blurred + * grayscale downsample, which forgives font hinting and a few pixels of + * drift and punishes a moved, missing, or invented region. + * - color: is the palette and its distribution the same? Histogram + * intersection in a coarse quantized space plus a dominant-color extraction, + * so a navy page built from a bone comp fails even if the shapes match. + * - detail: is the material there? Local high-frequency energy per cell. A + * comp with an illustration, texture, or photograph carries energy a flat + * CSS stand-in does not; the ratio build/comp per region is the most direct + * measure of "the plate got replaced by a gradient". + */ +import { resize } from './raster.mjs'; + +export function toGray(img) { + const g = new Float32Array(img.width * img.height); + for (let i = 0, p = 0; i < g.length; i++, p += 4) { + const a = img.data[p + 3] / 255; + // composite over white so transparent regions read as the page ground + const r = img.data[p] * a + 255 * (1 - a), gg = img.data[p + 1] * a + 255 * (1 - a), b = img.data[p + 2] * a + 255 * (1 - a); + g[i] = 0.2126 * r + 0.7152 * gg + 0.0722 * b; + } + return { width: img.width, height: img.height, data: g }; +} + +/** Separable box blur on a float gray image, radius r. */ +export function blurGray(gray, r) { + if (r <= 0) return gray; + const { width, height, data } = gray; + const tmp = new Float32Array(data.length), out = new Float32Array(data.length); + const win = 2 * r + 1; + for (let y = 0; y < height; y++) { + let acc = 0; + for (let x = -r; x <= r; x++) acc += data[y * width + Math.min(width - 1, Math.max(0, x))]; + for (let x = 0; x < width; x++) { + tmp[y * width + x] = acc / win; + const outX = x - r, inX = x + r + 1; + acc += data[y * width + Math.min(width - 1, inX)] - data[y * width + Math.max(0, outX)]; + } + } + for (let x = 0; x < width; x++) { + let acc = 0; + for (let y = -r; y <= r; y++) acc += tmp[Math.min(height - 1, Math.max(0, y)) * width + x]; + for (let y = 0; y < height; y++) { + out[y * width + x] = acc / win; + const outY = y - r, inY = y + r + 1; + acc += tmp[Math.min(height - 1, inY) * width + x] - tmp[Math.max(0, outY) * width + x]; + } + } + return { width, height, data: out }; +} + +/** Global SSIM between two same-size gray images using an 8x8 window grid. */ +export function ssim(a, b, win = 8) { + if (a.width !== b.width || a.height !== b.height) throw new Error('ssim: size mismatch'); + const C1 = (0.01 * 255) ** 2, C2 = (0.03 * 255) ** 2; + let total = 0, n = 0; + for (let y = 0; y + win <= a.height; y += win) { + for (let x = 0; x + win <= a.width; x += win) { + let ma = 0, mb = 0; + for (let yy = 0; yy < win; yy++) for (let xx = 0; xx < win; xx++) { const i = (y + yy) * a.width + x + xx; ma += a.data[i]; mb += b.data[i]; } + ma /= win * win; mb /= win * win; + let va = 0, vb = 0, cov = 0; + for (let yy = 0; yy < win; yy++) for (let xx = 0; xx < win; xx++) { const i = (y + yy) * a.width + x + xx; const da = a.data[i] - ma, db = b.data[i] - mb; va += da * da; vb += db * db; cov += da * db; } + va /= win * win - 1; vb /= win * win - 1; cov /= win * win - 1; + total += ((2 * ma * mb + C1) * (2 * cov + C2)) / ((ma * ma + mb * mb + C1) * (va + vb + C2)); + n++; + } + } + return n ? total / n : 1; +} + +/** SSIM of `a` against `b` shifted by (dx, dy); the overlap is compared, edges dropped. */ +export function ssimShifted(a, b, dx, dy, win = 8) { + const w = a.width - Math.abs(dx), h = a.height - Math.abs(dy); + if (w < win || h < win) return 0; + const sa = { width: w, height: h, data: new Float32Array(w * h) }; + const sb = { width: w, height: h, data: new Float32Array(w * h) }; + const ax = Math.max(0, -dx), ay = Math.max(0, -dy), bx = Math.max(0, dx), by = Math.max(0, dy); + for (let y = 0; y < h; y++) { + sa.data.set(a.data.subarray((y + ay) * a.width + ax, (y + ay) * a.width + ax + w), y * w); + sb.data.set(b.data.subarray((y + by) * b.width + bx, (y + by) * b.width + bx + w), y * w); + } + return ssim(sa, sb, win); +} + +/** + * Structure score 0..1: SSIM over blurred grayscale at a fixed working width, + * taking the best of a small translation search so a composition that sits a + * few pixels off (a different masthead height, a scrollbar) is not read as a + * different composition. Shifts up to ~4% of the width are forgiven; a moved + * region is not. + */ +export function structureScore(imgA, imgB, workWidth = 256) { + const h = Math.max(8, Math.round((imgA.height / imgA.width) * workWidth)); + const a = blurGray(toGray(resize(imgA, workWidth, h)), 2); + const b = blurGray(toGray(resize(imgB, workWidth, h)), 2); + const win = Math.min(8, Math.max(2, Math.floor(Math.min(workWidth, h) / 8))); + let best = ssim(a, b, win); + const maxShift = Math.max(2, Math.round(workWidth * 0.04)); + for (const dy of [-maxShift, -maxShift / 2, 0, maxShift / 2, maxShift]) { + for (const dx of [-maxShift, -maxShift / 2, 0, maxShift / 2, maxShift]) { + if (!dx && !dy) continue; + best = Math.max(best, ssimShifted(a, b, Math.round(dx), Math.round(dy), win)); + } + } + return Math.max(0, Math.min(1, best)); +} + +// ---- color ----------------------------------------------------------------- + +function rgbToLab(r, g, b) { + const lin = (c) => { c /= 255; return c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4; }; + const R = lin(r), G = lin(g), B = lin(b); + const X = (R * 0.4124 + G * 0.3576 + B * 0.1805) / 0.95047; + const Y = (R * 0.2126 + G * 0.7152 + B * 0.0722) / 1.0; + const Z = (R * 0.0193 + G * 0.1192 + B * 0.9505) / 1.08883; + const f = (t) => (t > 0.008856 ? Math.cbrt(t) : 7.787 * t + 16 / 116); + const fx = f(X), fy = f(Y), fz = f(Z); + return [116 * fy - 16, 500 * (fx - fy), 200 * (fy - fz)]; +} + +export function deltaE(lab1, lab2) { + return Math.hypot(lab1[0] - lab2[0], lab1[1] - lab2[1], lab1[2] - lab2[2]); +} + +/** Quantized color histogram (4 bits per channel = 4096 bins), normalized. */ +export function colorHistogram(img, sampleStep = 2) { + const bins = new Float32Array(4096); + let n = 0; + for (let y = 0; y < img.height; y += sampleStep) { + for (let x = 0; x < img.width; x += sampleStep) { + const p = (y * img.width + x) * 4; + if (img.data[p + 3] < 16) continue; + const key = ((img.data[p] >> 4) << 8) | ((img.data[p + 1] >> 4) << 4) | (img.data[p + 2] >> 4); + bins[key]++; n++; + } + } + if (n) for (let i = 0; i < bins.length; i++) bins[i] /= n; + return bins; +} + +export function histogramIntersection(h1, h2) { + let s = 0; + for (let i = 0; i < h1.length; i++) s += Math.min(h1[i], h2[i]); + return s; +} + +/** + * Dominant colors: merge histogram bins greedily by Lab distance into up to + * `k` clusters and return them sorted by coverage. + */ +export function dominantColors(img, k = 6, sampleStep = 3) { + const hist = colorHistogram(img, sampleStep); + const entries = []; + for (let i = 0; i < hist.length; i++) if (hist[i] > 0.0005) entries.push({ key: i, w: hist[i] }); + entries.sort((a, b) => b.w - a.w); + const clusters = []; + for (const e of entries) { + const r = ((e.key >> 8) & 15) * 16 + 8, g = ((e.key >> 4) & 15) * 16 + 8, b = (e.key & 15) * 16 + 8; + const lab = rgbToLab(r, g, b); + let best = null, bestD = Infinity; + for (const c of clusters) { const d = deltaE(c.lab, lab); if (d < bestD) { bestD = d; best = c; } } + if (best && bestD < 14) { + const tw = best.w + e.w; + best.rgb = [(best.rgb[0] * best.w + r * e.w) / tw, (best.rgb[1] * best.w + g * e.w) / tw, (best.rgb[2] * best.w + b * e.w) / tw]; + best.lab = rgbToLab(...best.rgb); best.w = tw; + } else clusters.push({ rgb: [r, g, b], lab, w: e.w }); + } + clusters.sort((a, b) => b.w - a.w); + const top = clusters.slice(0, k); + const covered = top.reduce((s, c) => s + c.w, 0) || 1; + return top.map((c) => ({ hex: toHex(c.rgb), coverage: +(c.w / covered).toFixed(4), lab: c.lab })); +} + +export function toHex(rgb) { + return '#' + rgb.map((v) => Math.max(0, Math.min(255, Math.round(v))).toString(16).padStart(2, '0')).join(''); +} + +/** + * Palette match 0..1: for each dominant comp color, coverage-weighted best + * Lab match in the build's dominant set (dE 0 -> 1, dE >= 25 -> 0). + */ +export function paletteMatch(compColors, buildColors) { + if (!compColors.length) return 1; + let s = 0, wsum = 0; + for (const c of compColors) { + let best = Infinity; + for (const b of buildColors) best = Math.min(best, deltaE(c.lab, b.lab)); + s += c.coverage * Math.max(0, 1 - best / 25); wsum += c.coverage; + } + return wsum ? s / wsum : 1; +} + +/** Color score 0..1: blend of histogram intersection and dominant-palette match. */ +export function colorScore(imgA, imgB) { + const inter = histogramIntersection(colorHistogram(imgA), colorHistogram(imgB)); + const pm = paletteMatch(dominantColors(imgA), dominantColors(imgB)); + return { score: 0.35 * inter + 0.65 * pm, intersection: inter, paletteMatch: pm }; +} + +// ---- detail ---------------------------------------------------------------- + +/** Mean absolute gradient (Sobel-lite) per cell over a cols x rows grid. */ +export function detailGrid(img, cols = 12, rows = 8, workWidth = 512) { + const h = Math.max(rows, Math.round((img.height / img.width) * workWidth)); + const g = toGray(resize(img, workWidth, h)); + const grid = new Float32Array(cols * rows); + const counts = new Float32Array(cols * rows); + for (let y = 1; y < g.height - 1; y++) { + const cy = Math.min(rows - 1, Math.floor((y / g.height) * rows)); + for (let x = 1; x < g.width - 1; x++) { + const cx = Math.min(cols - 1, Math.floor((x / g.width) * cols)); + const i = y * g.width + x; + const gx = Math.abs(g.data[i + 1] - g.data[i - 1]); + const gy = Math.abs(g.data[i + g.width] - g.data[i - g.width]); + grid[cy * cols + cx] += gx + gy; counts[cy * cols + cx]++; + } + } + for (let i = 0; i < grid.length; i++) grid[i] = counts[i] ? grid[i] / counts[i] : 0; + return { cols, rows, cells: grid }; +} + +/** + * Detail score 0..1 and per-cell ratio. Cells where the comp is nearly flat + * are ignored (nothing to lose); the score is the coverage-weighted mean of + * min(1, build/comp) over cells with comp energy, so extra detail in the + * build (invented chrome) is reported separately as `added`. + */ +export function detailScore(imgA, imgB, cols = 12, rows = 8) { + const a = detailGrid(imgA, cols, rows), b = detailGrid(imgB, cols, rows); + const floor = 1.5; // energy below this is a flat field at the 512px working width + let s = 0, w = 0, added = 0, addedW = 0; + const ratios = new Float32Array(cols * rows); + for (let i = 0; i < a.cells.length; i++) { + const ca = a.cells[i], cb = b.cells[i]; + ratios[i] = ca > floor ? cb / ca : (cb > floor ? Infinity : 1); + // Signed: too much energy is as wrong as too little. Noise, a tile + // shuffle, or a mosaic saturate a one-sided ratio; a real plate does not. + if (ca > floor) { s += Math.min(cb / ca, ca / cb) * ca; w += ca; } + if (cb > ca * 1.8 && cb > floor * 2) { added += 1; } + addedW += 1; + } + const addedFraction = addedW ? added / addedW : 0; + const raw = w ? s / w : 1; + return { score: Math.max(0, raw - 0.5 * addedFraction), rawScore: raw, addedFraction, comp: a, build: b, ratios }; +} + +// ---- pixel diff ----------------------------------------------------------- + +/** Per-pixel Lab-ish difference map (0..1) at a working width; blurred a little. */ +export function diffMap(imgA, imgB, workWidth = 384) { + const h = Math.max(8, Math.round((imgA.height / imgA.width) * workWidth)); + const a = resize(imgA, workWidth, h), b = resize(imgB, workWidth, h); + const out = new Float32Array(workWidth * h); + for (let i = 0, p = 0; i < out.length; i++, p += 4) { + const dr = a.data[p] - b.data[p], dg = a.data[p + 1] - b.data[p + 1], db = a.data[p + 2] - b.data[p + 2]; + out[i] = Math.min(1, Math.sqrt(dr * dr + dg * dg + db * db) / 200); + } + return blurGray({ width: workWidth, height: h, data: out }, 1); +} + +// ---- bands (horizontal layout structure) --------------------------------- + +/** + * Detect horizontal band boundaries: rows where the mean color changes + * sharply. Returns normalized y positions (0..1) with strengths. This is the + * "layout grid" read of a page: header / hero / index / footer as bands. + */ +export function horizontalBands(img, workWidth = 128, minGap = 0.02) { + const h = Math.max(16, Math.round((img.height / img.width) * workWidth)); + const s = resize(img, workWidth, h); + const rowMean = new Float32Array(h * 3); + for (let y = 0; y < h; y++) { + let r = 0, g = 0, b = 0; + for (let x = 0; x < workWidth; x++) { const p = (y * workWidth + x) * 4; r += s.data[p]; g += s.data[p + 1]; b += s.data[p + 2]; } + rowMean[y * 3] = r / workWidth; rowMean[y * 3 + 1] = g / workWidth; rowMean[y * 3 + 2] = b / workWidth; + } + const edges = []; + for (let y = 1; y < h; y++) { + const d = Math.hypot(rowMean[y * 3] - rowMean[(y - 1) * 3], rowMean[y * 3 + 1] - rowMean[(y - 1) * 3 + 1], rowMean[y * 3 + 2] - rowMean[(y - 1) * 3 + 2]); + if (d > 18) edges.push({ y: y / h, strength: Math.min(1, d / 120) }); + } + // merge close edges + const merged = []; + for (const e of edges) { + const last = merged[merged.length - 1]; + if (last && e.y - last.y < minGap) { if (e.strength > last.strength) { last.y = e.y; last.strength = e.strength; } } + else merged.push({ ...e }); + } + return merged; +} + +/** Band agreement 0..1: fraction of comp bands with a build band within tolerance, and vice versa. */ +export function bandScore(bandsA, bandsB, tol = 0.04) { + if (!bandsA.length && !bandsB.length) return 1; + const match = (from, to) => from.filter((a) => to.some((b) => Math.abs(a.y - b.y) <= tol)).length; + const recall = bandsA.length ? match(bandsA, bandsB) / bandsA.length : 1; + const precision = bandsB.length ? match(bandsB, bandsA) / bandsB.length : 1; + return 0.6 * recall + 0.4 * precision; +} diff --git a/skill/scripts/lib/png.mjs b/skill/scripts/lib/png.mjs new file mode 100644 index 000000000..1d5130cc2 --- /dev/null +++ b/skill/scripts/lib/png.mjs @@ -0,0 +1,281 @@ +/** + * Dependency-free PNG decode/encode for the skill scripts. + * + * decodePng(buffer) -> { width, height, data } where data is RGBA8 (Uint8Array, + * width*height*4). Handles every color type (0, 2, 3, 4, 6), bit depths 1-16 + * (16-bit is reduced to 8), all five filters, and Adam7 interlacing. + * + * encodePng({ width, height, data }) -> Buffer, RGBA8 in, 8-bit RGBA PNG out. + * + * Kept small on purpose: the skill scripts ship without npm dependencies, and + * comps (gpt-image PNGs) and screenshots (Playwright / harness PNGs) are the + * only formats the comp-fidelity tooling has to read. + */ +import zlib from 'node:zlib'; +import fs from 'node:fs'; +import { execFileSync } from 'node:child_process'; + +const SIGNATURE = Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); + +const crcTable = (() => { + const t = new Uint32Array(256); + for (let n = 0; n < 256; n++) { + let c = n; + for (let k = 0; k < 8; k++) c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1; + t[n] = c >>> 0; + } + return t; +})(); + +function crc32(data) { + let c = 0xffffffff; + for (let i = 0; i < data.length; i++) c = crcTable[(c ^ data[i]) & 0xff] ^ (c >>> 8); + return (c ^ 0xffffffff) >>> 0; +} + +export function isPng(buf) { + return buf && buf.length > 8 && buf.subarray(0, 8).equals(SIGNATURE); +} + +function readChunks(buf) { + const chunks = []; + let pos = 8; + while (pos + 8 <= buf.length) { + const length = buf.readUInt32BE(pos); + const type = buf.toString('latin1', pos + 4, pos + 8); + const data = buf.subarray(pos + 8, pos + 8 + length); + chunks.push({ type, data }); + pos += 12 + length; + if (type === 'IEND') break; + } + return chunks; +} + +const CHANNELS = { 0: 1, 2: 3, 3: 1, 4: 2, 6: 4 }; + +function paeth(a, b, c) { + const p = a + b - c; + const pa = Math.abs(p - a), pb = Math.abs(p - b), pc = Math.abs(p - c); + if (pa <= pb && pa <= pc) return a; + if (pb <= pc) return b; + return c; +} + +/** Unfilter one pass of scanlines in place; returns the raw (unfiltered) bytes. */ +function unfilter(raw, width, height, bpp, bitDepth, channels) { + const stride = Math.ceil((width * channels * bitDepth) / 8); + const out = new Uint8Array(stride * height); + let inPos = 0; + let prev = null; + for (let y = 0; y < height; y++) { + const filter = raw[inPos++]; + const line = out.subarray(y * stride, (y + 1) * stride); + line.set(raw.subarray(inPos, inPos + stride)); + inPos += stride; + switch (filter) { + case 0: break; + case 1: for (let i = bpp; i < stride; i++) line[i] = (line[i] + line[i - bpp]) & 0xff; break; + case 2: if (prev) for (let i = 0; i < stride; i++) line[i] = (line[i] + prev[i]) & 0xff; break; + case 3: + for (let i = 0; i < stride; i++) { + const left = i >= bpp ? line[i - bpp] : 0; + const up = prev ? prev[i] : 0; + line[i] = (line[i] + ((left + up) >> 1)) & 0xff; + } + break; + case 4: + for (let i = 0; i < stride; i++) { + const left = i >= bpp ? line[i - bpp] : 0; + const up = prev ? prev[i] : 0; + const ul = prev && i >= bpp ? prev[i - bpp] : 0; + line[i] = (line[i] + paeth(left, up, ul)) & 0xff; + } + break; + default: throw new Error(`png: unknown filter ${filter} on row ${y}`); + } + prev = line; + } + return { bytes: out, stride, consumed: inPos }; +} + +/** Read sample `index` (0-based across the row) from a packed scanline. */ +function sampleReader(bitDepth) { + if (bitDepth === 8) return (line, i) => line[i]; + if (bitDepth === 16) return (line, i) => line[i * 2]; // high byte + const perByte = 8 / bitDepth; + const mask = (1 << bitDepth) - 1; + const scale = 255 / mask; + return (line, i) => { + const byte = line[(i / perByte) | 0]; + const shift = 8 - bitDepth * ((i % perByte) + 1); + return Math.round(((byte >> shift) & mask) * scale); + }; +} + +function writePixels(dst, dstWidth, bytes, stride, passWidth, passHeight, colorType, bitDepth, palette, trns, mapX, mapY) { + const channels = CHANNELS[colorType]; + const read = sampleReader(bitDepth); + const rawIndex = bitDepth < 8 ? (line, i) => { + const perByte = 8 / bitDepth; + const mask = (1 << bitDepth) - 1; + const byte = line[(i / perByte) | 0]; + const shift = 8 - bitDepth * ((i % perByte) + 1); + return (byte >> shift) & mask; + } : read; + for (let y = 0; y < passHeight; y++) { + const line = bytes.subarray(y * stride, (y + 1) * stride); + const dy = mapY(y); + for (let x = 0; x < passWidth; x++) { + const dx = mapX(x); + const o = (dy * dstWidth + dx) * 4; + let r, g, b, a = 255; + switch (colorType) { + case 0: { + r = g = b = read(line, x); + if (trns && trns.gray === rawIndex(line, x)) a = 0; + break; + } + case 2: { + r = read(line, x * 3); g = read(line, x * 3 + 1); b = read(line, x * 3 + 2); + break; + } + case 3: { + const idx = rawIndex(line, x); + r = palette[idx * 3]; g = palette[idx * 3 + 1]; b = palette[idx * 3 + 2]; + if (trns && trns.alpha && idx < trns.alpha.length) a = trns.alpha[idx]; + break; + } + case 4: { + r = g = b = read(line, x * 2); a = read(line, x * 2 + 1); + break; + } + case 6: { + r = read(line, x * 4); g = read(line, x * 4 + 1); b = read(line, x * 4 + 2); a = read(line, x * 4 + 3); + break; + } + default: throw new Error(`png: unsupported color type ${colorType}`); + } + dst[o] = r; dst[o + 1] = g; dst[o + 2] = b; dst[o + 3] = a; + } + } + return channels; +} + +export function decodePng(buf) { + if (!isPng(buf)) throw new Error('png: not a PNG (bad signature)'); + const chunks = readChunks(buf); + const ihdr = chunks.find((c) => c.type === 'IHDR'); + if (!ihdr) throw new Error('png: missing IHDR'); + const width = ihdr.data.readUInt32BE(0); + const height = ihdr.data.readUInt32BE(4); + const bitDepth = ihdr.data[8]; + const colorType = ihdr.data[9]; + const interlace = ihdr.data[12]; + const channels = CHANNELS[colorType]; + if (!channels) throw new Error(`png: unsupported color type ${colorType}`); + const palChunk = chunks.find((c) => c.type === 'PLTE'); + const palette = palChunk ? palChunk.data : null; + const trnsChunk = chunks.find((c) => c.type === 'tRNS'); + let trns = null; + if (trnsChunk) { + if (colorType === 3) trns = { alpha: trnsChunk.data }; + else if (colorType === 0) trns = { gray: trnsChunk.data.readUInt16BE(0) >> (bitDepth === 16 ? 8 : 0) }; + } + const idat = Buffer.concat(chunks.filter((c) => c.type === 'IDAT').map((c) => c.data)); + const raw = zlib.inflateSync(idat); + const bpp = Math.max(1, Math.ceil((channels * bitDepth) / 8)); + const data = new Uint8Array(width * height * 4); + const text = {}; + for (const c of chunks) { + if (c.type === 'tEXt') { + const z = c.data.indexOf(0); + if (z > 0) text[c.data.toString('latin1', 0, z)] = c.data.toString('utf8', z + 1); + } + } + + if (interlace === 0) { + const { bytes, stride } = unfilter(raw, width, height, bpp, bitDepth, channels); + writePixels(data, width, bytes, stride, width, height, colorType, bitDepth, palette, trns, (x) => x, (y) => y); + } else { + // Adam7 + const passes = [ + [0, 0, 8, 8], [4, 0, 8, 8], [0, 4, 4, 8], [2, 0, 4, 4], [0, 2, 2, 4], [1, 0, 2, 2], [0, 1, 1, 2], + ]; + let offset = 0; + for (const [sx, sy, dx, dy] of passes) { + const pw = Math.ceil((width - sx) / dx); + const ph = Math.ceil((height - sy) / dy); + if (pw <= 0 || ph <= 0) continue; + const { bytes, stride, consumed } = unfilter(raw.subarray(offset), pw, ph, bpp, bitDepth, channels); + offset += consumed; + writePixels(data, width, bytes, stride, pw, ph, colorType, bitDepth, palette, trns, (x) => sx + x * dx, (y) => sy + y * dy); + } + } + return { width, height, data, text }; +} + +function chunk(type, data) { + const len = Buffer.alloc(4); + len.writeUInt32BE(data.length, 0); + const typeBuf = Buffer.from(type, 'latin1'); + const crc = Buffer.alloc(4); + crc.writeUInt32BE(crc32(Buffer.concat([typeBuf, data])), 0); + return Buffer.concat([len, typeBuf, data, crc]); +} + +/** + * Encode RGBA8 to PNG. `text` (optional) is a map of tEXt keyword -> value. + * Uses filter type 0 on every row: comps and screenshots compress fine and the + * encoder stays trivial. + */ +export function encodePng({ width, height, data }, { text = null, level = 6 } = {}) { + if (data.length !== width * height * 4) throw new Error(`png: data length ${data.length} != ${width}x${height}x4`); + const stride = width * 4; + const raw = Buffer.alloc((stride + 1) * height); + for (let y = 0; y < height; y++) { + raw[y * (stride + 1)] = 0; + raw.set(data.subarray(y * stride, (y + 1) * stride), y * (stride + 1) + 1); + } + const ihdr = Buffer.alloc(13); + ihdr.writeUInt32BE(width, 0); + ihdr.writeUInt32BE(height, 4); + ihdr[8] = 8; ihdr[9] = 6; ihdr[10] = 0; ihdr[11] = 0; ihdr[12] = 0; + const parts = [SIGNATURE, chunk('IHDR', ihdr)]; + if (text) { + for (const [k, v] of Object.entries(text)) { + parts.push(chunk('tEXt', Buffer.concat([Buffer.from(k, 'latin1'), Buffer.from([0]), Buffer.from(String(v), 'utf8')]))); + } + } + parts.push(chunk('IDAT', zlib.deflateSync(raw, { level }))); + parts.push(chunk('IEND', Buffer.alloc(0))); + return Buffer.concat(parts); +} + +/** + * Read any raster the comp pipeline meets (PNG natively; WebP / JPEG / GIF / + * AVIF through a converter on PATH) as RGBA. Non-PNG input is converted to a + * sibling cache file `..png` next to the source, never in place: + * a session that overwrites `comp.webp` with PNG bytes leaves a file the + * next tool cannot trust and a transcript replay cannot reconstruct. + * Returns { image, path } where path is the PNG actually decoded. + */ +export function loadRaster(file) { + const buf = fs.readFileSync(file); + if (isPng(buf)) return { image: decodePng(buf), path: file }; + const cache = `${file}.png`; + if (fs.existsSync(cache)) { + try { const b = fs.readFileSync(cache); if (isPng(b)) return { image: decodePng(b), path: cache }; } catch { /* reconvert */ } + } + const attempts = [ + ['dwebp', [file, '-o', cache]], + ['sips', ['-s', 'format', 'png', file, '--out', cache]], + ['magick', [file, cache]], + ['convert', [file, cache]], + ]; + let lastErr = null; + for (const [cmd, args] of attempts) { + try { execFileSync(cmd, args, { stdio: 'ignore' }); const b = fs.readFileSync(cache); if (isPng(b)) return { image: decodePng(b), path: cache }; } + catch (e) { lastErr = e; } + } + throw new Error(`png: ${file} is not a PNG and no converter (dwebp, sips, magick, convert) could produce ${cache}${lastErr ? `: ${lastErr.message}` : ''}`); +} diff --git a/skill/scripts/lib/raster.mjs b/skill/scripts/lib/raster.mjs new file mode 100644 index 000000000..2d3e0ae3a --- /dev/null +++ b/skill/scripts/lib/raster.mjs @@ -0,0 +1,194 @@ +/** + * Small RGBA raster toolkit shared by the comp-fidelity scripts: crop, resize + * (area-averaging down, bilinear up), composite, fills, rectangles, and a + * bitmap-font label so composites can be captioned without a font stack. + * + * An image is `{ width, height, data }` with RGBA8 data (Uint8Array). + */ + +export function createImage(width, height, fill = [0, 0, 0, 0]) { + const data = new Uint8Array(width * height * 4); + if (fill[0] || fill[1] || fill[2] || fill[3]) { + for (let i = 0; i < data.length; i += 4) { data[i] = fill[0]; data[i + 1] = fill[1]; data[i + 2] = fill[2]; data[i + 3] = fill[3]; } + } + return { width, height, data }; +} + +export function clampRect(img, x, y, w, h) { + const x0 = Math.max(0, Math.min(img.width, Math.round(x))); + const y0 = Math.max(0, Math.min(img.height, Math.round(y))); + const x1 = Math.max(x0, Math.min(img.width, Math.round(x + w))); + const y1 = Math.max(y0, Math.min(img.height, Math.round(y + h))); + return { x: x0, y: y0, w: x1 - x0, h: y1 - y0 }; +} + +export function crop(img, x, y, w, h) { + const r = clampRect(img, x, y, w, h); + const out = createImage(Math.max(1, r.w), Math.max(1, r.h)); + for (let yy = 0; yy < r.h; yy++) { + const src = ((r.y + yy) * img.width + r.x) * 4; + out.data.set(img.data.subarray(src, src + r.w * 4), yy * out.width * 4); + } + return out; +} + +/** Resize with area averaging when shrinking and bilinear when growing. */ +export function resize(img, width, height) { + width = Math.max(1, Math.round(width)); + height = Math.max(1, Math.round(height)); + if (width === img.width && height === img.height) return { width, height, data: new Uint8Array(img.data) }; + const out = createImage(width, height); + const sx = img.width / width, sy = img.height / height; + if (sx >= 1 && sy >= 1) { + for (let y = 0; y < height; y++) { + const y0 = Math.floor(y * sy), y1 = Math.min(img.height, Math.max(y0 + 1, Math.floor((y + 1) * sy))); + for (let x = 0; x < width; x++) { + const x0 = Math.floor(x * sx), x1 = Math.min(img.width, Math.max(x0 + 1, Math.floor((x + 1) * sx))); + let r = 0, g = 0, b = 0, a = 0, n = 0; + for (let yy = y0; yy < y1; yy++) { + let p = (yy * img.width + x0) * 4; + for (let xx = x0; xx < x1; xx++, p += 4) { r += img.data[p]; g += img.data[p + 1]; b += img.data[p + 2]; a += img.data[p + 3]; n++; } + } + const o = (y * width + x) * 4; + out.data[o] = r / n; out.data[o + 1] = g / n; out.data[o + 2] = b / n; out.data[o + 3] = a / n; + } + } + return out; + } + for (let y = 0; y < height; y++) { + const fy = Math.min(img.height - 1, (y + 0.5) * sy - 0.5); + const y0 = Math.max(0, Math.floor(fy)), y1 = Math.min(img.height - 1, y0 + 1), wy = fy - y0; + for (let x = 0; x < width; x++) { + const fx = Math.min(img.width - 1, (x + 0.5) * sx - 0.5); + const x0 = Math.max(0, Math.floor(fx)), x1 = Math.min(img.width - 1, x0 + 1), wx = fx - x0; + const o = (y * width + x) * 4; + for (let c = 0; c < 4; c++) { + const p00 = img.data[(y0 * img.width + x0) * 4 + c], p10 = img.data[(y0 * img.width + x1) * 4 + c]; + const p01 = img.data[(y1 * img.width + x0) * 4 + c], p11 = img.data[(y1 * img.width + x1) * 4 + c]; + out.data[o + c] = (p00 * (1 - wx) + p10 * wx) * (1 - wy) + (p01 * (1 - wx) + p11 * wx) * wy; + } + } + } + return out; +} + +/** Scale to fit inside (maxW x maxH) preserving aspect; never upscale unless `allowUpscale`. */ +export function fit(img, maxW, maxH, allowUpscale = false) { + const s = Math.min(maxW / img.width, maxH / img.height); + if (s >= 1 && !allowUpscale) return img; + return resize(img, img.width * s, img.height * s); +} + +/** Alpha-composite `src` onto `dst` at (x, y). */ +export function blit(dst, src, x, y) { + x = Math.round(x); y = Math.round(y); + for (let yy = 0; yy < src.height; yy++) { + const dy = y + yy; if (dy < 0 || dy >= dst.height) continue; + for (let xx = 0; xx < src.width; xx++) { + const dx = x + xx; if (dx < 0 || dx >= dst.width) continue; + const s = (yy * src.width + xx) * 4, d = (dy * dst.width + dx) * 4; + const a = src.data[s + 3] / 255; + if (a >= 1) { dst.data[d] = src.data[s]; dst.data[d + 1] = src.data[s + 1]; dst.data[d + 2] = src.data[s + 2]; dst.data[d + 3] = 255; continue; } + if (a <= 0) continue; + const da = dst.data[d + 3] / 255, oa = a + da * (1 - a); + for (let c = 0; c < 3; c++) dst.data[d + c] = (src.data[s + c] * a + dst.data[d + c] * da * (1 - a)) / (oa || 1); + dst.data[d + 3] = oa * 255; + } + } +} + +export function fillRect(img, x, y, w, h, rgba) { + const r = clampRect(img, x, y, w, h); + const a = (rgba[3] ?? 255) / 255; + for (let yy = r.y; yy < r.y + r.h; yy++) { + for (let xx = r.x; xx < r.x + r.w; xx++) { + const o = (yy * img.width + xx) * 4; + if (a >= 1) { img.data[o] = rgba[0]; img.data[o + 1] = rgba[1]; img.data[o + 2] = rgba[2]; img.data[o + 3] = 255; } + else { for (let c = 0; c < 3; c++) img.data[o + c] = rgba[c] * a + img.data[o + c] * (1 - a); img.data[o + 3] = Math.max(img.data[o + 3], a * 255); } + } + } +} + +export function strokeRect(img, x, y, w, h, rgba, thickness = 2) { + fillRect(img, x, y, w, thickness, rgba); + fillRect(img, x, y + h - thickness, w, thickness, rgba); + fillRect(img, x, y, thickness, h, rgba); + fillRect(img, x + w - thickness, y, thickness, h, rgba); +} + +// 5x7 bitmap font, uppercase + digits + a little punctuation. Enough for labels. +const GLYPHS = { + A: ['01110', '10001', '10001', '11111', '10001', '10001', '10001'], + B: ['11110', '10001', '10001', '11110', '10001', '10001', '11110'], + C: ['01110', '10001', '10000', '10000', '10000', '10001', '01110'], + D: ['11110', '10001', '10001', '10001', '10001', '10001', '11110'], + E: ['11111', '10000', '10000', '11110', '10000', '10000', '11111'], + F: ['11111', '10000', '10000', '11110', '10000', '10000', '10000'], + G: ['01110', '10001', '10000', '10111', '10001', '10001', '01111'], + H: ['10001', '10001', '10001', '11111', '10001', '10001', '10001'], + I: ['11111', '00100', '00100', '00100', '00100', '00100', '11111'], + J: ['00111', '00010', '00010', '00010', '00010', '10010', '01100'], + K: ['10001', '10010', '10100', '11000', '10100', '10010', '10001'], + L: ['10000', '10000', '10000', '10000', '10000', '10000', '11111'], + M: ['10001', '11011', '10101', '10101', '10001', '10001', '10001'], + N: ['10001', '10001', '11001', '10101', '10011', '10001', '10001'], + O: ['01110', '10001', '10001', '10001', '10001', '10001', '01110'], + P: ['11110', '10001', '10001', '11110', '10000', '10000', '10000'], + Q: ['01110', '10001', '10001', '10001', '10101', '10010', '01101'], + R: ['11110', '10001', '10001', '11110', '10100', '10010', '10001'], + S: ['01111', '10000', '10000', '01110', '00001', '00001', '11110'], + T: ['11111', '00100', '00100', '00100', '00100', '00100', '00100'], + U: ['10001', '10001', '10001', '10001', '10001', '10001', '01110'], + V: ['10001', '10001', '10001', '10001', '10001', '01010', '00100'], + W: ['10001', '10001', '10001', '10101', '10101', '10101', '01010'], + X: ['10001', '10001', '01010', '00100', '01010', '10001', '10001'], + Y: ['10001', '10001', '01010', '00100', '00100', '00100', '00100'], + Z: ['11111', '00001', '00010', '00100', '01000', '10000', '11111'], + 0: ['01110', '10001', '10011', '10101', '11001', '10001', '01110'], + 1: ['00100', '01100', '00100', '00100', '00100', '00100', '01110'], + 2: ['01110', '10001', '00001', '00010', '00100', '01000', '11111'], + 3: ['11110', '00001', '00001', '01110', '00001', '00001', '11110'], + 4: ['00010', '00110', '01010', '10010', '11111', '00010', '00010'], + 5: ['11111', '10000', '11110', '00001', '00001', '10001', '01110'], + 6: ['00110', '01000', '10000', '11110', '10001', '10001', '01110'], + 7: ['11111', '00001', '00010', '00100', '01000', '01000', '01000'], + 8: ['01110', '10001', '10001', '01110', '10001', '10001', '01110'], + 9: ['01110', '10001', '10001', '01111', '00001', '00010', '01100'], + ' ': ['00000', '00000', '00000', '00000', '00000', '00000', '00000'], + '.': ['00000', '00000', '00000', '00000', '00000', '01100', '01100'], + ':': ['00000', '01100', '01100', '00000', '01100', '01100', '00000'], + '-': ['00000', '00000', '00000', '11111', '00000', '00000', '00000'], + '/': ['00001', '00010', '00010', '00100', '01000', '01000', '10000'], + '%': ['11001', '11010', '00010', '00100', '01000', '01011', '10011'], + '(': ['00010', '00100', '01000', '01000', '01000', '00100', '00010'], + ')': ['01000', '00100', '00010', '00010', '00010', '00100', '01000'], + '#': ['01010', '01010', '11111', '01010', '11111', '01010', '01010'], + '_': ['00000', '00000', '00000', '00000', '00000', '00000', '11111'], + '?': ['01110', '10001', '00001', '00010', '00100', '00000', '00100'], + '=': ['00000', '00000', '11111', '00000', '11111', '00000', '00000'], + '+': ['00000', '00100', '00100', '11111', '00100', '00100', '00000'], + ',': ['00000', '00000', '00000', '00000', '01100', '00100', '01000'], +}; + +export function textWidth(text, scale = 2) { + return text.length * 6 * scale; +} + +/** Draw uppercase bitmap text. Returns width drawn. */ +export function drawText(img, text, x, y, rgba, scale = 2) { + let cx = Math.round(x); + for (const chRaw of String(text).toUpperCase()) { + const g = GLYPHS[chRaw] || GLYPHS['?']; + for (let r = 0; r < 7; r++) for (let c = 0; c < 5; c++) if (g[r][c] === '1') fillRect(img, cx + c * scale, y + r * scale, scale, scale, rgba); + cx += 6 * scale; + } + return cx - x; +} + +/** Draw a label with a background pill. */ +export function drawLabel(img, text, x, y, { fg = [255, 255, 255, 255], bg = [0, 0, 0, 220], scale = 2, pad = 4 } = {}) { + const w = textWidth(text, scale) + pad * 2, h = 7 * scale + pad * 2; + fillRect(img, x, y, w, h, bg); + drawText(img, text, x + pad, y + pad, fg, scale); + return { w, h }; +} diff --git a/tests/build-phase.test.mjs b/tests/build-phase.test.mjs new file mode 100644 index 000000000..68407d303 --- /dev/null +++ b/tests/build-phase.test.mjs @@ -0,0 +1,496 @@ +import { describe, it, before, after } from 'node:test'; +import assert from 'node:assert/strict'; +import { spawnSync } from 'node:child_process'; +import fs from 'node:fs'; +import os from 'node:os'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import { encodePng } from '../skill/scripts/lib/png.mjs'; +import { createImage, fillRect, blit, resize, drawText } from '../skill/scripts/lib/raster.mjs'; +import { gridToBox, measureRegions, platePrompt } from '../skill/scripts/comp-spec.mjs'; + +const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const SPEC_SCRIPT = path.join(ROOT, 'skill', 'scripts', 'comp-spec.mjs'); +const PHASE_SCRIPT = path.join(ROOT, 'skill', 'scripts', 'build-phase.mjs'); +const FONT_SCRIPT = path.join(ROOT, 'skill', 'scripts', 'font-match.mjs'); + +function lcg(seed) { let s = seed >>> 0; return () => ((s = (s * 1664525 + 1013904223) >>> 0) / 0xffffffff); } + +function makeComp(w = 640, h = 400) { + const img = createImage(w, h, [240, 237, 226, 255]); + fillRect(img, 0, 0, w, 40, [19, 33, 48, 255]); + // two lines of block lettering (raster.mjs bitmap font) so the headline + // region measures as type: cap ~40px at scale 5 + drawText(img, 'KEEP OLD', 20, 52, [19, 33, 48, 255], 4); + drawText(img, 'IRON', 20, 88, [19, 33, 48, 255], 4); + const rnd = lcg(3); + for (let y = 40; y < 200; y++) for (let x = 320; x < 640; x++) { + const v = 100 + Math.floor(rnd() * 140); + const p = (y * w + x) * 4; img.data[p] = v; img.data[p + 1] = v; img.data[p + 2] = v; + } + for (let i = 0; i < 3; i++) { fillRect(img, 0, 220 + i * 50, w, 1, [19, 33, 48, 255]); fillRect(img, 20, 232 + i * 50, 300, 12, [19, 33, 48, 255]); } + return img; +} + +function run(script, args, cwd) { + return spawnSync(process.execPath, [script, ...args], { cwd, encoding: 'utf8' }); +} + +describe('comp-spec', () => { + it('parses grid spans into normalized boxes', () => { + assert.deepEqual(gridToBox('A0:A0'), { x: 0, y: 0, w: 0.1, h: 0.1 }); + assert.deepEqual(gridToBox('E0:J4'), { x: 0.4, y: 0, w: 0.6, h: 0.5 }); + assert.deepEqual(gridToBox('j4:e0'), { x: 0.4, y: 0, w: 0.6, h: 0.5 }); + assert.throws(() => gridToBox('K0:A1')); + }); + + it('measures regions with palette, pixel box, medium, and plate path', () => { + const comp = makeComp(); + const spec = measureRegions(comp, { allowUncovered: true, regions: [ + { id: 'masthead', kind: 'chrome', grid: 'A0:J0', note: 'navy masthead bar' }, + { id: 'art', kind: 'plate', grid: 'F1:J4', note: 'noise plate' }, + ] }, 'comp.png'); + assert.equal(spec.regions.length, 2); + const art = spec.regions.find((r) => r.id === 'art'); + assert.equal(art.medium, 'raster'); + assert.equal(art.plate, path.join('assets', 'plates', 'art.png')); + assert.equal(art.px.x, 320); + assert.ok(art.palette.length > 0); + assert.equal(spec.regions[0].medium, 'semantic'); + assert.equal(spec.orientation, 'landscape'); + assert.match(platePrompt(spec, art), /noise plate/); + }); + + it('refuses a code kind whose note describes painted material, unless codeDrawn', () => { + const comp = makeComp(); + const painted = { id: 'rack', kind: 'chrome', grid: 'F1:J4', note: 'countable four-carburetor technical geometry with blue leaders, an exploded diagram' }; + assert.throws(() => measureRegions(comp, { allowUncovered: true, regions: [painted] }, 'c.png'), /describes painted material/); + const ok = measureRegions(comp, { allowUncovered: true, regions: [{ ...painted, codeDrawn: true }] }, 'c.png'); + assert.equal(ok.regions[0].kind, 'chrome'); + const table = measureRegions(comp, { allowUncovered: true, regions: [{ id: 'index', kind: 'chrome', grid: 'F1:J4', note: 'ruled discussion table with thread, author, replies columns' }] }, 'c.png'); + assert.equal(table.regions[0].kind, 'chrome'); + const plate = measureRegions(comp, { allowUncovered: true, regions: [{ ...painted, kind: 'plate' }] }, 'c.png'); + assert.equal(plate.regions[0].medium, 'raster'); + }); + + it('snaps a text region to the largest ink mass in its grid span, keeping the span for coverage', () => { + // headline block at left, a thin dark spine on the span's left edge, a + // column of small text at its right: the span B1:E4 covers all three + const comp = createImage(1000, 1000, [235, 232, 220, 255]); + fillRect(comp, 100, 0, 12, 1000, [160, 40, 30, 255]); + drawText(comp, 'KEEP OLD', 160, 130, [20, 20, 20, 255], 8); + drawText(comp, 'IRON', 160, 220, [20, 20, 20, 255], 8); + for (let i = 0; i < 6; i++) drawText(comp, 'small column text', 430, 120 + i * 30, [20, 20, 20, 255], 2); + const spec = measureRegions(comp, { allowUncovered: true, regions: [{ id: 'headline', kind: 'text', grid: 'B1:E4', note: 'two-line block headline' }] }, 'c.png'); + const r = spec.regions[0]; + assert.equal(r.grid, 'B1:E4'); + assert.ok(r.coverBox && r.coverBox.w === 0.4, 'the span stays on the record'); + assert.ok(r.box.w < 0.3 && r.box.x >= 0.14 && r.box.x + r.box.w <= 0.42, `snapped to the headline: ${JSON.stringify(r.box)}`); + const plain = measureRegions(comp, { allowUncovered: true, regions: [{ id: 'headline', kind: 'text', grid: 'B1:E4', note: 'two-line block headline', snap: false }] }, 'c.png'); + assert.equal(plain.regions[0].box.w, 0.4); + }); + + it('persists the escape hatches into the spec and announces their use', () => { + const comp = makeComp(); + const painted = { id: 'rack', kind: 'chrome', grid: 'F1:J4', note: 'an exploded diagram of the rack', codeDrawn: true }; + const spec = measureRegions(comp, { allowUncovered: true, regions: [painted] }, 'c.png'); + assert.equal(spec.regions[0].codeDrawn, true, 'the override survives into the spec'); + assert.ok(spec.warnings.some((w) => /region rack: "codeDrawn": true set in the regions file/.test(w)), JSON.stringify(spec.warnings)); + const col = measureRegions(comp, { allowUncovered: true, regions: [{ id: 'col', kind: 'chrome', grid: 'G0:J9', note: 'right column', container: true }] }, 'c.png'); + assert.equal(col.regions[0].container, true); + assert.ok(col.warnings.some((w) => /"container": true/.test(w))); + }); + + it('warns when a plate box cuts through its own artwork', () => { + // a black arch on paper, drawn wider than the region that names it + const comp = createImage(1000, 1000, [235, 232, 220, 255]); + fillRect(comp, 400, 100, 500, 800, [15, 15, 15, 255]); + const cut = measureRegions(comp, { allowUncovered: true, regions: [{ id: 'arch', kind: 'plate', box: { x: 0.5, y: 0, w: 0.5, h: 1 }, note: 'hand-cut black arch' }] }, 'c.png'); + assert.ok(cut.warnings.some((w) => /region arch: the artwork runs off the box on the left/.test(w)), JSON.stringify(cut.warnings)); + const whole = measureRegions(comp, { allowUncovered: true, regions: [{ id: 'arch', kind: 'plate', box: { x: 0.35, y: 0.05, w: 0.6, h: 0.9 }, note: 'hand-cut black arch' }] }, 'c.png'); + assert.deepEqual(whole.warnings, []); + }); + + it('refuses a code region that covers a column of the comp, unless container', () => { + const comp = makeComp(); + assert.throws(() => measureRegions(comp, { allowUncovered: true, regions: [{ id: 'parts-column', kind: 'chrome', grid: 'G0:J9', note: 'right column of parts' }] }, 'c.png'), /covers 40% of the comp/); + const ok = measureRegions(comp, { allowUncovered: true, regions: [{ id: 'parts-column', kind: 'chrome', grid: 'G0:J9', container: true, note: 'right column of parts' }] }, 'c.png'); + assert.equal(ok.regions[0].kind, 'chrome'); + const plate = measureRegions(comp, { allowUncovered: true, regions: [{ id: 'art', kind: 'plate', grid: 'G0:J9', note: 'noise plate' }] }, 'c.png'); + assert.equal(plate.regions[0].medium, 'raster'); + }); + + it('refuses a regions file that leaves comp ink unnamed, unless allowUncovered', () => { + const comp = makeComp(); + // only the masthead named: the headline, plate, and list are ink no region covers + assert.throws(() => measureRegions(comp, { regions: [{ id: 'masthead', kind: 'chrome', grid: 'A0:J0', note: 'navy masthead bar' }] }, 'c.png'), /carry ink no region names/); + const spec = measureRegions(comp, { allowUncovered: true, regions: [{ id: 'masthead', kind: 'chrome', grid: 'A0:J0', note: 'navy masthead bar' }] }, 'c.png'); + assert.ok(spec.uncoveredInkCells.length > 3); + }); + + it('rejects duplicate ids and missing ids', () => { + const comp = makeComp(); + assert.throws(() => measureRegions(comp, { regions: [{ id: 'a', grid: 'A0:A0' }, { id: 'a', grid: 'B0:B0' }] }, 'c.png'), /duplicate/); + assert.throws(() => measureRegions(comp, { regions: [{ grid: 'A0:A0' }] }, 'c.png'), /id/); + }); +}); + +describe('build-phase comps phase (start --direction)', () => { + let dir; + before(() => { + dir = fs.mkdtempSync(path.join(os.tmpdir(), 'build-phase-comps-')); + fs.mkdirSync(path.join(dir, '.impeccable', 'mocks', 'decision'), { recursive: true }); + }); + after(() => { try { fs.rmSync(dir, { recursive: true, force: true }); } catch {} }); + + it('opens at comps, refuses with fewer than three sidecar\'d comps or no approval, then records the approved comp', () => { + let res = run(PHASE_SCRIPT, ['start', '--direction', 'abcd1234'], dir); + assert.equal(res.status, 0, res.stderr); + assert.match(res.stdout, /BUILD-PHASE COMPS/); + assert.match(res.stdout, /direction abcd1234/); + assert.match(res.stdout, /NEXT Comp round/); + res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 2); + assert.match(res.stdout, /0 comps under/); + // three comps, one without sidecar, none approved + const comp = makeComp(); + for (const n of ['a', 'b', 'c']) fs.writeFileSync(path.join(dir, '.impeccable', 'mocks', `comp-${n}.png`), encodePng(comp)); + // a decision-round comp must not count + fs.writeFileSync(path.join(dir, '.impeccable', 'mocks', 'decision', 'card.png'), encodePng(comp)); + fs.writeFileSync(path.join(dir, '.impeccable', 'mocks', 'comp-a.png.json'), JSON.stringify({ prompt: 'a' })); + fs.writeFileSync(path.join(dir, '.impeccable', 'mocks', 'comp-b.png.json'), JSON.stringify({ prompt: 'b' })); + res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 2); + assert.match(res.stdout, /no prompt sidecar for: comp-c.png/); + assert.match(res.stdout, /no comp is approved/); + fs.writeFileSync(path.join(dir, '.impeccable', 'mocks', 'comp-c.png.json'), JSON.stringify({ prompt: 'c' })); + fs.writeFileSync(path.join(dir, '.impeccable', 'mocks', 'comp-b.png.json'), JSON.stringify({ prompt: 'b', approved: true })); + res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 0, res.stdout); + assert.match(res.stdout, /ADVANCED comps -> spec/); + const state = JSON.parse(fs.readFileSync(path.join(dir, '.impeccable', 'build', 'state.json'), 'utf8')); + assert.equal(state.comp, path.join('.impeccable', 'mocks', 'comp-b.png')); + assert.equal(state.breakpoint, '640x400'); + assert.equal(state.phases.comps.status, 'closed'); + }); + + it('start --comp skips the comps phase and records why', () => { + const d2 = fs.mkdtempSync(path.join(os.tmpdir(), 'build-phase-comps2-')); + fs.writeFileSync(path.join(d2, 'comp.png'), encodePng(makeComp())); + const res = run(PHASE_SCRIPT, ['start', '--comp', 'comp.png'], d2); + assert.equal(res.status, 0, res.stderr); + const state = JSON.parse(fs.readFileSync(path.join(d2, '.impeccable', 'build', 'state.json'), 'utf8')); + assert.equal(state.phase, 'spec'); + assert.equal(state.phases.comps.status, 'skipped'); + fs.rmSync(d2, { recursive: true, force: true }); + }); +}); + +describe('build-phase state machine (CLI)', () => { + let dir; + before(() => { + dir = fs.mkdtempSync(path.join(os.tmpdir(), 'build-phase-')); + fs.writeFileSync(path.join(dir, 'comp.png'), encodePng(makeComp())); + fs.writeFileSync(path.join(dir, 'regions.json'), JSON.stringify({ regions: [ + { id: 'masthead', kind: 'chrome', grid: 'A0:J0', note: 'navy masthead bar' }, + { id: 'headline', kind: 'text', grid: 'A1:D2', note: 'two-line block headline' }, + { id: 'art', kind: 'plate', grid: 'F1:J4', note: 'noise plate' }, + { id: 'list', kind: 'control', grid: 'A5:J9', container: true, note: 'ruled list rows' }, + ] })); + }); + after(() => { try { fs.rmSync(dir, { recursive: true, force: true }); } catch {} }); + + it('start writes state at spec and prints NEXT', () => { + const res = run(PHASE_SCRIPT, ['start', '--comp', 'comp.png'], dir); + assert.equal(res.status, 0, res.stderr); + assert.match(res.stdout, /BUILD-PHASE SPEC/); + assert.match(res.stdout, /NEXT Measure the comp/); + assert.ok(fs.existsSync(path.join(dir, '.impeccable', 'build', 'state.json'))); + }); + + it('spec gate fails without a spec, passes once comp-spec wrote one', () => { + let res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 2); + assert.match(res.stdout, /GATE SPEC FAILED/); + res = run(SPEC_SCRIPT, ['--comp', 'comp.png', '--grid'], dir); + assert.equal(res.status, 0, res.stderr); + assert.ok(fs.existsSync(path.join(dir, '.impeccable', 'build', 'comp-grid.png'))); + res = run(SPEC_SCRIPT, ['--comp', 'comp.png', '--regions', 'regions.json'], dir); + assert.equal(res.status, 0, res.stderr); + assert.match(res.stdout, /PLATES 1 to produce: art/); + // type must be measured before spec closes + res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 2, res.stdout); + assert.match(res.stdout, /measure the type before closing the spec/); + res = run(FONT_SCRIPT, ['--measure', 'headline'], dir); + assert.equal(res.status, 0, res.stderr); + assert.match(res.stdout, /MEASURE headline/); + // a face typed straight into spec.json is refused: only font-match's own + // stamped choice closes the spec + const specFile = path.join(dir, '.impeccable', 'build', 'spec.json'); + const spec = JSON.parse(fs.readFileSync(specFile, 'utf8')); + const head = spec.regions.find((r) => r.id === 'headline'); + assert.ok(head.type && head.type.comp, 'the test comp headline measures as type'); + { + head.type.chosen = { family: 'Arial Narrow', weight: 700, fontSizePx: 40, source: 'system-fallback' }; + fs.writeFileSync(specFile, JSON.stringify(spec, null, 2)); + res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 2, res.stdout); + assert.match(res.stdout, /font-match did not write/); + // no browser in the test env either way: --rank records the catalog's nearest face, stamped + res = run(FONT_SCRIPT, ['--rank', 'headline', '--text', 'HEADLINE'], dir); + assert.equal(res.status, 0, res.stderr); + assert.match(res.stdout, /USE font-family/); + const after = JSON.parse(fs.readFileSync(specFile, 'utf8')).regions.find((r) => r.id === 'headline'); + assert.ok(after.type.chosen && after.type.chosen.stamp, 'font-match stamps its choice'); + } + res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 0, res.stdout + res.stderr); + assert.match(res.stdout, /ADVANCED spec -> plates/); + }); + + it('plates gate names the missing plate, rejects a comp-size crop, accepts a 2x plate', () => { + let res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 2); + assert.match(res.stdout, /plate missing for art/); + // force without the user's words is refused; with them it is recorded + res = run(PHASE_SCRIPT, ['advance', '--force', '--reason', 'single-file HTML delivery requires embedded CSS'], dir); + assert.equal(res.status, 2); + assert.match(res.stdout, /--force refused/); + // comp-size crop: too small + res = run(SPEC_SCRIPT, ['--crop', 'art', '--out', 'assets/plates/art.png'], dir); + assert.equal(res.status, 0, res.stderr); + res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 2); + assert.match(res.stdout, /needs at least 480px/); + // 2x crop of the comp: sized right, but a crop is never a plate + res = run(SPEC_SCRIPT, ['--crop', 'art', '--scale', '2', '--out', 'assets/plates/art.png'], dir); + assert.equal(res.status, 0, res.stderr); + res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 2, res.stdout); + assert.match(res.stdout, /is the comp crop of region art/); + // a produced plate: the same material rendered fresh (another noise field + // of the same statistics), at 2x + const produced = createImage(640, 320, [0, 0, 0, 255]); + const rndP = lcg(99); + for (let y = 0; y < 320; y++) for (let x = 0; x < 640; x++) { const v = 100 + Math.floor(rndP() * 140); const q = (y * 640 + x) * 4; produced.data[q] = v; produced.data[q + 1] = v; produced.data[q + 2] = v; } + fs.writeFileSync(path.join(dir, 'assets', 'plates', 'art.png'), encodePng(produced)); + res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 0, res.stdout); + assert.match(res.stdout, /ADVANCED plates -> hero/); + }); + + it('above the bar, numeric readings advise instead of block', () => { + const d5 = fs.mkdtempSync(path.join(os.tmpdir(), 'build-phase-bar-')); + const comp = makeComp(); + fs.writeFileSync(path.join(d5, 'comp.png'), encodePng(comp)); + fs.writeFileSync(path.join(d5, 'regions.json'), JSON.stringify({ allowUncovered: true, regions: [ + { id: 'masthead', kind: 'chrome', grid: 'A0:J0', note: 'navy masthead bar' }, + { id: 'headline', kind: 'text', grid: 'A1:D2', note: 'two-line block headline' }, + ] })); + run(PHASE_SCRIPT, ['start', '--comp', 'comp.png', '--artifact', 'index.html'], d5); + run(SPEC_SCRIPT, ['--comp', 'comp.png', '--regions', 'regions.json'], d5); + run(FONT_SCRIPT, ['--measure', 'headline'], d5); + run(FONT_SCRIPT, ['--rank', 'headline', '--text', 'KEEP'], d5); + run(PHASE_SCRIPT, ['advance'], d5); // spec -> plates + run(PHASE_SCRIPT, ['advance'], d5); // plates -> hero (none owed) + // the build is the comp with the headline recoloured: overall stays high, + // the ink-colour reading fires + const build = { ...comp, data: new Uint8Array(comp.data) }; + for (let y = 40; y < 160; y++) for (let x = 10; x < 260; x++) { const q = (y * comp.width + x) * 4; if (build.data[q] < 100) { build.data[q] = 170; build.data[q + 1] = 40; build.data[q + 2] = 30; } } + fs.mkdirSync(path.join(d5, '.impeccable', 'review'), { recursive: true }); + fs.writeFileSync(path.join(d5, '.impeccable', 'review', 'hero-repro.png'), encodePng(build)); + fs.writeFileSync(path.join(d5, 'index.html'), '
x
'); + const res = run(PHASE_SCRIPT, ['advance'], d5); + assert.equal(res.status, 0, res.stdout + res.stderr); + assert.match(res.stdout, /ADVANCED hero -> sections/); + assert.match(res.stdout, /advisory, above the 72% bar/); + assert.match(res.stdout, /ink is #/); + fs.rmSync(d5, { recursive: true, force: true }); + }); + + it('scaffold writes the measured layout as custom properties and a reference page', () => { + const res = run(PHASE_SCRIPT, ['scaffold'], dir); + assert.equal(res.status, 0, res.stderr + res.stdout); + assert.match(res.stdout, /SCAFFOLD/); + const css = fs.readFileSync(path.join(dir, '.impeccable', 'build', 'scaffold', 'layout.css'), 'utf8'); + assert.match(css, /--r-headline-x: [\d.]+%; --r-headline-y: [\d.]+%; --r-headline-w: [\d.]+%; --r-headline-h: [\d.]+%;/); + assert.match(css, /--r-headline-cap: [\d.]+px/); + assert.match(css, /\.r-art \{ position: absolute; left: var\(--r-art-x\)/); + const html = fs.readFileSync(path.join(dir, '.impeccable', 'build', 'scaffold', 'hero-reference.html'), 'utf8'); + assert.match(html, /class="r-art region plate"[^>]*>
{ + const comp = makeComp(); + const flat = createImage(comp.width, comp.height, [240, 237, 226, 255]); + fillRect(flat, 0, 0, comp.width, 40, [19, 33, 48, 255]); + fs.mkdirSync(path.join(dir, '.impeccable', 'review'), { recursive: true }); + fs.writeFileSync(path.join(dir, '.impeccable', 'review', 'hero-repro.png'), encodePng(flat)); + // no source references the plate yet: refused before any diff runs + let res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 2, res.stdout + res.stderr); + assert.match(res.stdout, /not referenced by any source file/); + fs.writeFileSync(path.join(dir, 'index.html'), ''); + res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 2, res.stdout); + assert.match(res.stdout, /GATE HERO FAILED/); + assert.match(res.stdout, /region art is missing/); + assert.ok(fs.existsSync(path.join(dir, '.impeccable', 'review', 'diff', 'hero', 'side-by-side.png'))); + // the plates gate recorded the plate on the state + let st = JSON.parse(fs.readFileSync(path.join(dir, '.impeccable', 'build', 'state.json'), 'utf8')); + assert.ok(st.plates && st.plates.art && st.plates.art.status === 'ok', 'plate row travels on the state'); + // a passed plate that IS drawn in the box (a different noise field, so its + // content re-scores low) is placed material: the hero says placement, + // never 'missing', and only when the box is off + const placed = createImage(comp.width, comp.height, [240, 237, 226, 255]); + fillRect(placed, 0, 0, comp.width, 40, [19, 33, 48, 255]); + const rnd2 = lcg(11); + for (let y = 40; y < 200; y++) for (let x = 320; x < 640; x++) { const v = 100 + Math.floor(rnd2() * 140); const q = (y * comp.width + x) * 4; placed.data[q] = v; placed.data[q + 1] = v; placed.data[q + 2] = v; } + fs.writeFileSync(path.join(dir, '.impeccable', 'review', 'hero-repro.png'), encodePng(placed)); + res = run(PHASE_SCRIPT, ['advance'], dir); + assert.doesNotMatch(res.stdout, /region art is missing/); + // faithful: the comp shifted by a few px, captured at 1.5x width + const shifted = createImage(comp.width, comp.height, [240, 237, 226, 255]); + blit(shifted, comp, 3, 2); + fs.writeFileSync(path.join(dir, '.impeccable', 'review', 'hero-repro.png'), encodePng(resize(shifted, comp.width * 1.5, comp.height * 1.5))); + res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 0, res.stdout); + assert.match(res.stdout, /ADVANCED hero -> sections/); + const state = JSON.parse(fs.readFileSync(path.join(dir, '.impeccable', 'build', 'state.json'), 'utf8')); + assert.equal(state.phases.hero.attempts, 4); + assert.ok(state.phases.hero.gate.score >= 0.72); + }); + + it('hero gate reports a control whose ink box differs from the comp, and never throws on the report shape', () => { + const d4 = fs.mkdtempSync(path.join(os.tmpdir(), 'build-phase-ctrl-')); + // a discrete CTA (a 160x40 button at 40,300) inside a larger control region; + // the build renders it half-height. Rules that span the region are erased so + // the comp's ink box is the button, not the region clipped. + const comp = makeComp(); + fillRect(comp, 0, 200, 320, 200, [240, 237, 226, 255]); + fillRect(comp, 40, 300, 160, 40, [19, 33, 48, 255]); + fs.writeFileSync(path.join(d4, 'comp.png'), encodePng(comp)); + fs.writeFileSync(path.join(d4, 'regions.json'), JSON.stringify({ allowUncovered: true, regions: [ + { id: 'masthead', kind: 'chrome', grid: 'A0:J0', note: 'navy masthead bar' }, + { id: 'cta', kind: 'control', box: { x: 0, y: 0.5, w: 0.5, h: 0.5 }, note: 'black CTA button' }, + ] })); + run(PHASE_SCRIPT, ['start', '--comp', 'comp.png', '--artifact', 'index.html'], d4); + run(SPEC_SCRIPT, ['--comp', 'comp.png', '--regions', 'regions.json'], d4); + run(PHASE_SCRIPT, ['advance'], d4); + run(PHASE_SCRIPT, ['advance'], d4); // no plates + // makeComp is 640x400; the region is its bottom-left quarter (0..320, 200..400) holding + // three table rows and the CTA. Shrink the ink there: erase and redraw the rows half-height. + const build = { ...comp, data: new Uint8Array(comp.data) }; + fillRect(build, 0, 200, 320, 200, [240, 237, 226, 255]); + fillRect(build, 40, 300, 160, 18, [19, 33, 48, 255]); + fs.mkdirSync(path.join(d4, '.impeccable', 'review'), { recursive: true }); + fs.writeFileSync(path.join(d4, '.impeccable', 'review', 'hero-repro.png'), encodePng(build)); + fs.writeFileSync(path.join(d4, 'index.html'), ''); + const res = run(PHASE_SCRIPT, ['advance'], d4); + assert.doesNotMatch(res.stdout + res.stderr, /TypeError|errored/); + assert.match(res.stdout, /region cta: its ink sits in a/); + fs.rmSync(d4, { recursive: true, force: true }); + }); + + it('hero gate lists region crops first on failure and refuses a third value-only attempt on the same region', () => { + // fresh project at hero with a stuck build + const d3 = fs.mkdtempSync(path.join(os.tmpdir(), 'build-phase-hero-')); + const comp = makeComp(); + fs.writeFileSync(path.join(d3, 'comp.png'), encodePng(comp)); + fs.writeFileSync(path.join(d3, 'regions.json'), JSON.stringify({ allowUncovered: true, regions: [ + { id: 'masthead', kind: 'chrome', grid: 'A0:J0', note: 'navy masthead bar' }, + { id: 'art', kind: 'plate', grid: 'F1:J4', note: 'noise plate' }, + { id: 'list', kind: 'control', grid: 'A5:J9', container: true, note: 'ruled list rows' }, + ] })); + run(PHASE_SCRIPT, ['start', '--comp', 'comp.png', '--artifact', 'index.html'], d3); + run(SPEC_SCRIPT, ['--comp', 'comp.png', '--regions', 'regions.json'], d3); + run(PHASE_SCRIPT, ['advance'], d3); + // a produced plate (fresh noise of the same statistics), not the crop + fs.mkdirSync(path.join(d3, 'assets', 'plates'), { recursive: true }); + { const produced = createImage(640, 320, [0, 0, 0, 255]); const rndP = lcg(77); for (let y = 0; y < 320; y++) for (let x = 0; x < 640; x++) { const v = 100 + Math.floor(rndP() * 140); const q = (y * 640 + x) * 4; produced.data[q] = v; produced.data[q + 1] = v; produced.data[q + 2] = v; } fs.writeFileSync(path.join(d3, 'assets', 'plates', 'art.png'), encodePng(produced)); } + run(PHASE_SCRIPT, ['advance'], d3); + fs.writeFileSync(path.join(d3, 'index.html'), ''); + const flat = createImage(comp.width, comp.height, [240, 237, 226, 255]); + fillRect(flat, 0, 0, comp.width, 40, [19, 33, 48, 255]); + fs.mkdirSync(path.join(d3, '.impeccable', 'review'), { recursive: true }); + fs.writeFileSync(path.join(d3, '.impeccable', 'review', 'hero-repro.png'), encodePng(flat)); + let res; + for (let i = 0; i < 3; i++) { + fs.writeFileSync(path.join(d3, 'index.html'), ``); + res = run(PHASE_SCRIPT, ['advance'], d3); + assert.equal(res.status, 2); + } + assert.match(res.stdout, /LOOK FIRST/); + assert.match(res.stdout, /regions\/art\.png/); + assert.match(res.stdout, /three attempts/); + fs.rmSync(d3, { recursive: true, force: true }); + }); + + it('later phases advance without a gate; force is recorded; finish records the disposition', () => { + for (const from of ['sections', 'motion']) { + const res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 0, res.stdout); + assert.match(res.stdout, new RegExp(`ADVANCED ${from}`)); + } + // responsive gate: needs desktop.png + mobile.png, and desktop must read as the comp + let res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 2); + assert.match(res.stdout, /no \.impeccable\/review\/desktop\.png/); + const comp = makeComp(); + const wide = createImage(1440, 900, [240, 237, 226, 255]); + blit(wide, resize(comp, 1440, 900), 0, 0); + fs.writeFileSync(path.join(dir, '.impeccable', 'review', 'desktop.png'), encodePng(wide)); + fs.writeFileSync(path.join(dir, '.impeccable', 'review', 'mobile.png'), encodePng(resize(comp, 390, 600))); + res = run(PHASE_SCRIPT, ['advance'], dir); + assert.equal(res.status, 0, res.stdout); + assert.match(res.stdout, /ADVANCED responsive -> review/); + res = run(PHASE_SCRIPT, ['finish', '--disposition', 'fix'], dir); + assert.equal(res.status, 0); + assert.match(res.stdout, /finish fix/); + res = run(PHASE_SCRIPT, ['status', '--json'], dir); + const state = JSON.parse(res.stdout); + assert.equal(state.phase, 'review'); + assert.equal(state.finish.disposition, 'fix'); + }); + + it('refuses a bad disposition and an unknown command', () => { + assert.equal(run(PHASE_SCRIPT, ['finish', '--disposition', 'great'], dir).status, 1); + assert.equal(run(PHASE_SCRIPT, ['dance'], dir).status, 1); + }); +}); + +describe('unreferencedPlates', () => { + it('finds a plate referenced only from a stylesheet under assets/', async () => { + const { unreferencedPlates } = await import('../skill/scripts/build-phase.mjs'); + const d = fs.mkdtempSync(path.join(os.tmpdir(), 'unref-')); + const prev = process.cwd(); + try { + process.chdir(d); + fs.mkdirSync(path.join(d, 'assets', 'plates'), { recursive: true }); + fs.writeFileSync(path.join(d, 'assets', 'plates', 'hero-plate.png'), 'x'); + fs.writeFileSync(path.join(d, 'assets', 'hero.css'), ".hero { background-image: url('./plates/hero-plate.png'); }"); + const spec = { regions: [{ id: 'hero-art', medium: 'raster', plate: 'assets/plates/hero-plate.png' }] }; + assert.deepEqual(unreferencedPlates(spec, null), [], 'the stylesheet under assets counts as a reference'); + // an explicit artifact does not bypass the stylesheet walk + fs.writeFileSync(path.join(d, 'index.html'), '
'); + assert.deepEqual(unreferencedPlates(spec, path.join(d, 'index.html')), [], 'the linked stylesheet still counts with --artifact set'); + // a linked stylesheet beyond the walk's reach (deep path) still counts + const deep = path.join(d, 'a', 'b', 'c', 'e', 'f', 'g', 'h', 'styles'); + fs.mkdirSync(deep, { recursive: true }); + fs.writeFileSync(path.join(deep, 'deep.css'), ".hero { background-image: url('hero-plate.png'); }"); + fs.writeFileSync(path.join(d, 'index.html'), `
`); + fs.writeFileSync(path.join(d, 'assets', 'hero.css'), '.hero { background: red; }'); + assert.deepEqual(unreferencedPlates(spec, path.join(d, 'index.html')), [], 'a stylesheet linked by the artifact counts wherever it lives'); + // a root-relative href resolves against the project, not the drive root + fs.writeFileSync(path.join(d, 'index.html'), `
`); + assert.deepEqual(unreferencedPlates(spec, path.join(d, 'index.html')), [], 'a root-relative stylesheet href counts'); + fs.writeFileSync(path.join(deep, 'deep.css'), '.hero { background: red; }'); + assert.equal(unreferencedPlates(spec, null).length, 1, 'an unreferenced plate is still named'); + assert.equal(unreferencedPlates(spec, path.join(d, 'index.html')).length, 1, 'and with the artifact set too'); + } finally { process.chdir(prev); fs.rmSync(d, { recursive: true, force: true }); } + }); +}); diff --git a/tests/comp-diff.test.mjs b/tests/comp-diff.test.mjs new file mode 100644 index 000000000..4b2d3d83e --- /dev/null +++ b/tests/comp-diff.test.mjs @@ -0,0 +1,242 @@ +import { describe, it, before } from 'node:test'; +import assert from 'node:assert/strict'; +import { spawnSync, execFileSync } from 'node:child_process'; +import fs from 'node:fs'; +import os from 'node:os'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import { decodePng, encodePng, loadRaster } from '../skill/scripts/lib/png.mjs'; +import { createImage, fillRect, blit, crop, resize, drawText } from '../skill/scripts/lib/raster.mjs'; +import { compare, verdictFor, alignBuild } from '../skill/scripts/comp-diff.mjs'; +import { dominantColors, structureScore, detailScore } from '../skill/scripts/lib/image-metrics.mjs'; + +const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const SCRIPT = path.join(ROOT, 'skill', 'scripts', 'comp-diff.mjs'); + +// A synthetic "comp": bone ground, navy masthead, a red-gutter table, and a +// noisy "illustration" region on the right of the fold. Deterministic noise. +function lcg(seed) { let s = seed >>> 0; return () => ((s = (s * 1664525 + 1013904223) >>> 0) / 0xffffffff); } + +function makeComp(w = 768, h = 512) { + const img = createImage(w, h, [240, 237, 226, 255]); + fillRect(img, 0, 0, w, 32, [19, 33, 48, 255]); // masthead + drawText(img, 'CARBURETOR CLUB', 12, 8, [240, 237, 226, 255], 2); + // headline block + fillRect(img, 24, 70, 280, 22, [19, 33, 48, 255]); + fillRect(img, 24, 100, 240, 22, [19, 33, 48, 255]); + fillRect(img, 24, 136, 90, 4, [176, 40, 32, 255]); + // illustration: high-frequency noise plate + const rnd = lcg(7); + for (let y = 48; y < 240; y++) for (let x = 340; x < 740; x++) { + const v = 120 + Math.floor(rnd() * 120); + const p = (y * w + x) * 4; img.data[p] = v; img.data[p + 1] = v; img.data[p + 2] = v + 10; + } + // table with red gutter + fillRect(img, 0, 260, w, 2, [19, 33, 48, 255]); + for (let i = 0; i < 3; i++) { + const y = 270 + i * 60; + fillRect(img, 0, y, 10, 50, i === 0 ? [176, 40, 32, 255] : [19, 33, 48, 255]); + fillRect(img, 30, y + 10, 300, 14, [19, 33, 48, 255]); + fillRect(img, 30, y + 30, 200, 8, [120, 120, 120, 255]); + fillRect(img, 0, y + 56, w, 1, [19, 33, 48, 255]); + } + // CTA + fillRect(img, 24, 460, 160, 36, [19, 33, 48, 255]); + return img; +} + +function flattenIllustration(comp) { + const img = { ...comp, data: new Uint8Array(comp.data) }; + fillRect(img, 340, 48, 400, 192, [200, 200, 205, 255]); // a flat gray box where the plate was + return img; +} + +function recolor(comp) { + const img = { ...comp, data: new Uint8Array(comp.data) }; + for (let i = 0; i < img.data.length; i += 4) { + if (img.data[i] > 220 && img.data[i + 1] > 210) { img.data[i] = 20; img.data[i + 1] = 40; img.data[i + 2] = 60; } + } + return img; +} + +function shifted(comp, dx, dy) { + const img = createImage(comp.width, comp.height, [240, 237, 226, 255]); + blit(img, comp, dx, dy); + return img; +} + +function tallPage(comp) { + // a full-page screenshot: comp on top, then more page below + const img = createImage(comp.width, comp.height * 3, [240, 237, 226, 255]); + blit(img, comp, 0, 0); + fillRect(img, 0, comp.height + 40, comp.width, 200, [19, 33, 48, 255]); + return img; +} + +const SPEC = { + regions: [ + { id: 'masthead', kind: 'control', box: { x: 0, y: 0, w: 1, h: 32 / 512 } }, + { id: 'headline', kind: 'text', box: { x: 0.02, y: 60 / 512, w: 0.4, h: 100 / 512 } }, + { id: 'plate', kind: 'plate', box: { x: 340 / 768, y: 48 / 512, w: 400 / 768, h: 192 / 512 } }, + { id: 'table', kind: 'control', box: { x: 0, y: 260 / 512, w: 1, h: 190 / 512 } }, + ], +}; + +describe('png codec', () => { + it('round-trips RGBA through encode/decode', () => { + const img = createImage(20, 10, [10, 20, 30, 255]); + img.data.set([200, 100, 50, 128], (2 * 20 + 2) * 4); + const back = decodePng(encodePng(img, { text: { 'impeccable:prompt': 'hello' } })); + assert.equal(back.width, 20); assert.equal(back.height, 10); + assert.deepEqual([...back.data.subarray(0, 4)], [10, 20, 30, 255]); + assert.deepEqual([...back.data.subarray((2 * 20 + 2) * 4, (2 * 20 + 2) * 4 + 4)], [200, 100, 50, 128]); + assert.equal(back.text['impeccable:prompt'], 'hello'); + }); + + it('decodes a real gpt-image / Playwright style PNG when one is on disk (skips otherwise)', () => { + const sample = path.join(ROOT, 'tests', 'fixtures', 'comp-fidelity', 'sample.png'); + if (!fs.existsSync(sample)) return; + const img = decodePng(fs.readFileSync(sample)); + assert.ok(img.width > 0 && img.height > 0); + }); +}); + +describe('image metrics', () => { + const comp = makeComp(); + it('identity scores 1', () => { + assert.ok(structureScore(comp, comp) > 0.999); + assert.ok(detailScore(comp, comp).score > 0.999); + }); + it('dominant colors find the ground and the ink', () => { + const cols = dominantColors(comp).map((c) => c.hex); + assert.ok(cols.some((h) => h.startsWith('#f') || h.startsWith('#e')), `ground missing in ${cols}`); + assert.ok(cols.some((h) => h.startsWith('#1') || h.startsWith('#0') || h.startsWith('#2')), `ink missing in ${cols}`); + }); + it('a flattened plate loses detail', () => { + const d = detailScore(comp, flattenIllustration(comp)); + assert.ok(d.score < 0.85, `expected detail loss, got ${d.score}`); + }); +}); + +describe('comp-diff compare', () => { + const comp = makeComp(); + + it('scores the comp against itself as a match everywhere', () => { + const r = compare({ comp, build: comp, spec: SPEC }); + assert.equal(r.whole.overall, 1); + for (const region of r.regions) assert.equal(region.verdict, 'match', region.id); + }); + + it('forgives a small translation', () => { + const r = compare({ comp, build: shifted(comp, 6, 4), spec: SPEC }); + assert.ok(r.whole.overall >= 0.8, `overall ${r.whole.overall}`); + assert.equal(verdictFor(r.whole), 'match'); + }); + + it('reads the top of a full-page screenshot as the first viewport', () => { + const r = compare({ comp, build: tallPage(comp), spec: SPEC }); + assert.equal(r.aligned.height, comp.height); + assert.ok(r.whole.overall > 0.95, `overall ${r.whole.overall}`); + }); + + it('flags a flattened plate region as missing while the rest matches', () => { + const r = compare({ comp, build: flattenIllustration(comp), spec: SPEC }); + const plate = r.regions.find((x) => x.id === 'plate'); + assert.equal(plate.verdict, 'missing'); + assert.equal(r.regions.find((x) => x.id === 'table').verdict, 'match'); + assert.equal(r.regions.find((x) => x.id === 'masthead').verdict, 'match'); + }); + + it('fails a recolored page on color and structure', () => { + const r = compare({ comp, build: recolor(comp), spec: SPEC }); + assert.ok(r.whole.color < 0.7, `color ${r.whole.color}`); + assert.ok(r.whole.overall < 0.6, `overall ${r.whole.overall}`); + assert.notEqual(verdictFor(r.whole), 'match'); + }); + + it('derives band regions when no spec is given', () => { + const r = compare({ comp, build: comp }); + assert.ok(r.regions.length >= 2); + assert.ok(r.regions.every((x) => x.kind === 'band')); + }); + + it('pads a shorter build with white so a truncated page reads as missing content', () => { + const half = crop(comp, 0, 0, comp.width, comp.height / 2); + const aligned = alignBuild(comp, half); + assert.equal(aligned.height, comp.height); + const r = compare({ comp, build: half, spec: SPEC }); + assert.notEqual(r.regions.find((x) => x.id === 'table').verdict, 'match'); + }); + + it('scales a build captured at a different width onto the comp', () => { + const wide = resize(comp, comp.width * 1.5, comp.height * 1.5); + const r = compare({ comp, build: wide, spec: SPEC }); + assert.ok(r.whole.overall > 0.9, `overall ${r.whole.overall}`); + }); +}); + +describe('comp-diff CLI', () => { + let dir; + before(() => { + dir = fs.mkdtempSync(path.join(os.tmpdir(), 'comp-diff-')); + const comp = makeComp(); + fs.writeFileSync(path.join(dir, 'comp.png'), encodePng(comp)); + fs.writeFileSync(path.join(dir, 'flat.png'), encodePng(flattenIllustration(comp))); + fs.writeFileSync(path.join(dir, 'spec.json'), JSON.stringify(SPEC)); + }); + + it('writes side-by-side, heatmap, region pairs, and report.json', () => { + const out = path.join(dir, 'diff'); + const res = spawnSync(process.execPath, [SCRIPT, '--comp', path.join(dir, 'comp.png'), '--build', path.join(dir, 'flat.png'), '--spec', path.join(dir, 'spec.json'), '--out-dir', out], { encoding: 'utf8' }); + assert.equal(res.status, 0, res.stderr + res.stdout); + assert.match(res.stdout, /^COMP-DIFF/m); + assert.match(res.stdout, /REGION plate\s+missing/); + for (const f of ['side-by-side.png', 'heatmap.png', 'report.json', path.join('regions', 'plate.png')]) { + assert.ok(fs.existsSync(path.join(out, f)), `${f} missing`); + } + const report = JSON.parse(fs.readFileSync(path.join(out, 'report.json'), 'utf8')); + assert.equal(report.tool, 'comp-diff'); + assert.equal(report.regions.length, 4); + assert.ok(report.palette.comp.length > 0); + // artifacts decode + const side = decodePng(fs.readFileSync(path.join(out, 'side-by-side.png'))); + assert.ok(side.width > 768); + }); + + it('exits 3 below --threshold and prints the instruction', () => { + const res = spawnSync(process.execPath, [SCRIPT, '--comp', path.join(dir, 'comp.png'), '--build', path.join(dir, 'flat.png'), '--no-files', '--threshold', '0.99'], { encoding: 'utf8' }); + assert.equal(res.status, 3); + assert.match(res.stdout, /BELOW THRESHOLD/); + }); + + it('--json prints the report', () => { + const res = spawnSync(process.execPath, [SCRIPT, '--comp', path.join(dir, 'comp.png'), '--build', path.join(dir, 'comp.png'), '--no-files', '--json'], { encoding: 'utf8' }); + assert.equal(res.status, 0); + const report = JSON.parse(res.stdout); + assert.equal(report.verdict, 'match'); + }); + + it('exits 1 with usage on missing args', () => { + const res = spawnSync(process.execPath, [SCRIPT], { encoding: 'utf8' }); + assert.equal(res.status, 1); + assert.match(res.stderr, /usage/); + }); +}); + +it('loadRaster reads a WebP comp through a sibling .png cache instead of rewriting the source', () => { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'raster-')); + const src = path.join(dir, 'comp.webp'); + const png = encodePng((() => { const i = createImage(24, 16); fillRect(i, 0, 0, 24, 16, [200, 40, 40, 255]); return i; })()); + fs.writeFileSync(path.join(dir, 'seed.png'), png); + let ok = true; + try { execFileSync('cwebp', ['-lossless', path.join(dir, 'seed.png'), '-o', src], { stdio: 'ignore' }); } catch { ok = false; } + if (!ok) return; // no cwebp on this machine: nothing to assert + const before = fs.readFileSync(src); + const { image, path: decoded } = loadRaster(src); + assert.equal(image.width, 24); + assert.equal(image.height, 16); + assert.equal(decoded, `${src}.png`); + assert.ok(fs.readFileSync(src).equals(before), 'source webp bytes untouched'); + assert.ok(fs.existsSync(`${src}.png`), 'sibling cache written'); +}); diff --git a/tests/concept-seed.test.mjs b/tests/concept-seed.test.mjs index 2991d57e2..1e04ab613 100644 --- a/tests/concept-seed.test.mjs +++ b/tests/concept-seed.test.mjs @@ -798,7 +798,11 @@ describe('API roll path', () => { assert.equal(requests.some(url => url.startsWith('/api/roll?')), true, 'the CLI must hit the roll endpoint'); assert.match(result.stdout, /source: api/); assert.match(result.stdout, /letterpress print shop/); - assert.match(result.stdout, /TELEMETRY:/); + // The choice-recording command rides on build-phase start now (the + // separate TELEMETRY ping was the step every comp-round-skipping run + // suppressed); an API roll names it with the --chosen slot. + assert.match(result.stdout, /AFTER THE CHOICE, run exactly one command/); + assert.match(result.stdout, /build-phase\.mjs start --direction [\w-]+ --kind \[--chosen \]/); assert.match(result.stderr, /DISPATCHER_DESTROY_CALLED/, 'the dispatcher must be destroyed before process.exit'); } finally { server.close(); diff --git a/tests/detect-antipatterns-browser.test.mjs b/tests/detect-antipatterns-browser.test.mjs index 9a976fa2a..0a264bf28 100644 --- a/tests/detect-antipatterns-browser.test.mjs +++ b/tests/detect-antipatterns-browser.test.mjs @@ -1354,3 +1354,20 @@ describe('detectUrl — browser-only fixtures', () => { }); }); }); + +describe('detectUrl — comp-fidelity rules (browser adapter parity)', () => { + it('organic-clip-path fires in the browser on the same fixture', async () => { + const f = await detectUrl(`${baseUrl}/fixtures/antipatterns/organic-clip-path.html`, { visualContrast: false }); + const hits = f.filter(r => r.antipattern === 'organic-clip-path'); + assert.equal(hits.length, 4, hits.map(h => h.snippet).join('\n')); + }); + + it('buried-raster fires in the browser for washes and near-zero opacity', async () => { + const f = await detectUrl(`${baseUrl}/fixtures/antipatterns/buried-raster.html`, { visualContrast: false }); + const snippets = f.filter(r => r.antipattern === 'buried-raster').map(h => h.snippet || ''); + assert.equal(snippets.filter(s => /near-opaque gradient wash/.test(s)).length, 2, snippets.join('\n')); + assert.ok(snippets.some(s => /raster background at opacity 0.04/.test(s)), snippets.join('\n')); + assert.ok(snippets.some(s => / at opacity 0.05/.test(s)), snippets.join('\n')); + assert.ok(!snippets.some(s => /hero\.jpg|opacity 0\.6|Faint text/.test(s))); + }); +}); diff --git a/tests/detect-antipatterns-fixtures.test.mjs b/tests/detect-antipatterns-fixtures.test.mjs index a5b17fbea..da85b0653 100644 --- a/tests/detect-antipatterns-fixtures.test.mjs +++ b/tests/detect-antipatterns-fixtures.test.mjs @@ -1563,3 +1563,32 @@ describe('detectHtml — dark themes written in modern color syntax', () => { ); }); }); + +describe('detectHtml — organic-clip-path', () => { + const SHOULD_FLAG = ['polygon() with 18 vertices', 'polygon() with 21 vertices', 'path() with 6 curve segments']; + it('flags organic polygon/path clips and passes geometric clips', async () => { + const f = await detectHtml(path.join(FIXTURES, 'organic-clip-path.html')); + const hits = f.filter(r => r.antipattern === 'organic-clip-path'); + // arch (18), blob (21), silhouette path, inline blob (21) + assert.equal(hits.length, 4, hits.map(h => h.snippet).join('\n')); + for (const text of SHOULD_FLAG) { + assert.ok(hits.some(h => (h.snippet || '').includes(text)), `expected a finding containing "${text}"`); + } + // geometric clips never mention themselves + for (const h of hits) assert.doesNotMatch(h.snippet, /with [5-9] vertices/); + }); +}); + +describe('detectHtml — buried-raster', () => { + it('flags rasters under near-opaque washes and at near-zero opacity, passes tints, blends, and visible textures', async () => { + const f = await detectHtml(path.join(FIXTURES, 'buried-raster.html')); + const hits = f.filter(r => r.antipattern === 'buried-raster'); + const snippets = hits.map(h => h.snippet || ''); + assert.equal(snippets.filter(s => /near-opaque gradient wash/.test(s)).length, 2, snippets.join('\n')); + assert.ok(snippets.some(s => /raster background at opacity 0.04 "Grain"/.test(s)), snippets.join('\n')); + assert.ok(snippets.some(s => / at opacity 0.05 "Ghost img"/.test(s)), snippets.join('\n')); + assert.equal(hits.length, 4, snippets.join('\n')); + // the passing shapes never appear + assert.ok(!snippets.some(s => /hero\.jpg|opacity 0\.6|multiply|Faint text/.test(s))); + }); +}); diff --git a/tests/fixtures/antipatterns/buried-raster.html b/tests/fixtures/antipatterns/buried-raster.html new file mode 100644 index 000000000..cbbd5e75d --- /dev/null +++ b/tests/fixtures/antipatterns/buried-raster.html @@ -0,0 +1,39 @@ + + + + +Buried raster fixture + + + +
Paper wash
+
Paper wash b
+
Grain
+ Ghost img +
Hero tint
+
Grain visible
+
Flat
+
Blend
+

Faint text

+ + diff --git a/tests/fixtures/antipatterns/organic-clip-path.html b/tests/fixtures/antipatterns/organic-clip-path.html new file mode 100644 index 000000000..4d27472b6 --- /dev/null +++ b/tests/fixtures/antipatterns/organic-clip-path.html @@ -0,0 +1,42 @@ + + + + +Organic clip-path polygon fixture + + + +
Arch
+
Blob
+
Silhouette
+
Inline blob
+
Cut corner
+
Diagonal band
+
Hexagon
+
Arrow
+
Chevron eight
+
Avatar
+
Pill
+
Matte
+ + diff --git a/tests/fixtures/antipatterns/text-occlusion.html b/tests/fixtures/antipatterns/text-occlusion.html index ba9139b7c..772ed4728 100644 --- a/tests/fixtures/antipatterns/text-occlusion.html +++ b/tests/fixtures/antipatterns/text-occlusion.html @@ -47,9 +47,33 @@ .pass-scrubber-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; z-index: 5; margin: 0; } .pass-fixedbar { position: fixed; left: 0; right: 0; bottom: 0; height: 40px; background: #b22; color: #fff; display: flex; align-items: center; padding: 0 16px; } + /* ── PASS: text clipped by a scroll region, with an opaque bar right below it ── + getBoundingClientRect reports where a box would be if nothing cut it off, so + the lines that have scrolled past this panel's bottom edge still report + their full rects, and those rects land on the bar. Nothing overlaps: those + lines are clipped away, and scrolling brings them into the panel rather than + out from under anything. Any sticky footer or toolbar under a scroll region + has this shape, which is why it has to probe only where the text paints. */ + .pass-scrollbox { width: 420px; height: 90px; overflow-y: auto; + background: #fff; border: 1px solid #ccd; } + .pass-scrollbox p { margin: 0 0 10px; padding: 0 12px; font-size: 16px; color: #222; } + .pass-scrollbox p:first-child { padding-top: 12px; } + .pass-underbar { width: 420px; height: 64px; background: #223; color: #fff; + display: flex; align-items: center; padding: 0 12px; font-size: 16px; } + +
+

Palette and material, warm cream ground with hairline sepia rules

+

Type and composition, engraved italic names over small-caps labels

+

Topology and navigation, move by life stage rather than by index

+

Controls and state, align and overlay and compare and annotate

+
+
Scrolled-out lines report rects that land here
+

Root cause identified in four minutes

diff --git a/tests/fixtures/comp-fidelity/sample.png b/tests/fixtures/comp-fidelity/sample.png new file mode 100644 index 000000000..1c95e0065 Binary files /dev/null and b/tests/fixtures/comp-fidelity/sample.png differ diff --git a/tests/font-match.test.mjs b/tests/font-match.test.mjs new file mode 100644 index 000000000..833a10401 --- /dev/null +++ b/tests/font-match.test.mjs @@ -0,0 +1,192 @@ +import { describe, it } from 'node:test'; +import assert from 'node:assert/strict'; +import fs from 'node:fs'; +import path from 'node:path'; +import { createRequire } from 'node:module'; +import { fileURLToPath } from 'node:url'; + +import { createImage, drawText } from '../skill/scripts/lib/raster.mjs'; +import { fingerprint, distance, FEATURES, STATS } from '../skill/scripts/lib/font-fingerprint.mjs'; +import { loadFontIndex, candidatesFromIndex, routeSize, packVector, unpackVector, INDEX_PATH, INDEX_FEATURES, ROUTE_CAP_PX, GROSS_FEATURES, NON_TEXT_FAMILY } from '../skill/scripts/lib/font-index.mjs'; +import { widthClass, weightClass, selectCandidates, SHORTLIST, renderCandidates } from '../skill/scripts/font-match.mjs'; + +const require = createRequire(import.meta.url); +const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const hasPlaywright = (() => { try { return !!require('playwright').chromium; } catch { return false; } })(); + +/** A white raster with a line of the bitmap font drawn on it, cap height 7 * scale px. */ +function textSample(text, scale = 6, { x = 20, y = 20 } = {}) { + const w = text.length * 6 * scale + 40, h = 7 * scale + 40; + const img = createImage(w, h, [255, 255, 255, 255]); + drawText(img, text, x, y, [0, 0, 0, 255], scale); + return img; +} + +describe('font-fingerprint', () => { + it('fingerprints a synthetic rendered-text PNG with the expected fields', () => { + const fp = fingerprint(textSample('HAMBURGEVONS THE QUICK BROWN FOX', 6)); + assert.ok(fp, 'fingerprint returned null'); + for (const k of ['lines', 'glyphs', 'capHeightPx', 'inkIsDark', 'allCaps', 'weight', ...FEATURES]) assert.ok(k in fp, `missing ${k}`); + assert.equal(fp.lines, 1); + assert.ok(fp.glyphs >= 20, `glyphs ${fp.glyphs}`); + assert.ok(Math.abs(fp.capHeightPx - 42) <= 2, `capHeightPx ${fp.capHeightPx}`); + assert.equal(fp.inkIsDark, true); + assert.equal(typeof fp.allCaps, 'boolean'); + assert.ok(fp.advTall > 0.5 && fp.advTall < 0.9, `advTall ${fp.advTall}`); + assert.ok(fp.densTall > 0.2 && fp.densTall < 0.9, `densTall ${fp.densTall}`); + assert.ok(fp.stemW > 0, `stemW ${fp.stemW}`); + }); + + it('is size-stable: the same text at 4x and 6x scale lands close, and a bolder sample farther', () => { + const a = fingerprint(textSample('HAMBURGEVONS THE QUICK BROWN FOX', 6)); + const b = fingerprint(textSample('HAMBURGEVONS THE QUICK BROWN FOX', 4)); + assert.equal(distance(a, a), 0); + const dSame = distance(a, b); + assert.ok(dSame > 0 && Number.isFinite(dSame), `dSame ${dSame}`); + // a different sample: same glyph set but drawn twice offset by one scale step, so every stem doubles (a heavier face) + const heavy = textSample('HAMBURGEVONS THE QUICK BROWN FOX', 6); + drawText(heavy, 'HAMBURGEVONS THE QUICK BROWN FOX', 20 + 4, 20, [0, 0, 0, 255], 6); + const c = fingerprint(heavy); + const dOther = distance(a, c); + assert.ok(dOther > dSame, `heavier sample (${dOther}) should be farther than a rescale (${dSame})`); + }); + + it('every weighted feature has a positive std, and distance skips features missing on either side', () => { + for (const k of FEATURES) { assert.ok(STATS[k], `no STATS for ${k}`); assert.ok(STATS[k].std > 0); } + const a = { advX: 0.5, densTall: 0.5, contrast: 1 }, b = { advX: 0.5, densTall: 0.5, contrast: null }; + assert.equal(distance(a, b), 0); + assert.equal(distance({}, {}), Infinity); + }); +}); + +describe('font-index', () => { + it('packs and unpacks a vector to three decimals, nulls preserved', () => { + const fp = { advX: 0.3649, densTall: 0.6719, contrast: null, serif: 12.3456 }; + const back = unpackVector(packVector(fp)); + assert.equal(back.advX, 0.365); + assert.equal(back.densTall, 0.672); + assert.equal(back.contrast, null); + assert.equal(back.serif, 12.346); + assert.equal(back.gap, null, 'absent feature reads as null'); + }); + + it('stores the features the fitted distance weights plus the gross width and weight readings', () => { + assert.ok(INDEX_FEATURES.length >= 30); + for (const k of INDEX_FEATURES) assert.ok(STATS[k].w > 0 || GROSS_FEATURES.includes(k), `${k} is indexed without weight or gross role`); + for (const k of FEATURES) if (STATS[k].w === 0 && !GROSS_FEATURES.includes(k)) assert.ok(!INDEX_FEATURES.includes(k), `${k} has zero weight and should not be indexed`); + for (const k of GROSS_FEATURES) assert.ok(INDEX_FEATURES.includes(k), `${k} is a gross reading and must be indexed`); + }); + + it('ships a three-render catalog index under 1.5 MB with > 2500 entries and the expected keys', () => { + assert.ok(fs.existsSync(INDEX_PATH), `missing ${INDEX_PATH}`); + assert.ok(fs.statSync(INDEX_PATH).size < 1.5 * 1024 * 1024, 'index over 1.5 MB'); + const index = loadFontIndex(); + assert.ok(index.entries.length > 2500, `entries ${index.entries.length}`); + assert.deepEqual([...index.sizes].map(String).sort(), ['14', '48', '48c']); + assert.deepEqual(index.features, INDEX_FEATURES); + for (const e of index.entries.slice(0, 50)) { + for (const k of ['family', 'weight', 'category', 'variable', 'fp']) assert.ok(k in e, `entry missing ${k}`); + assert.ok(['sans', 'serif', 'display', 'handwriting', 'mono'].includes(e.category), e.category); + assert.ok(e.fp[48], 'no 48px vector'); + for (const k of INDEX_FEATURES) assert.ok(k in e.fp[48]); + } + const lg = index.entries.find((e) => e.family === 'League Gothic'); + assert.ok(lg && lg.fp[48] && lg.fp[14] && lg.fp['48c'], 'League Gothic at all three renders'); + assert.ok(lg.fp['48c'].advTall != null && lg.fp['48c'].densTall != null, 'gross readings stored on the caps render'); + assert.ok(lg.fp[48].advX < 0.45, `League Gothic reads condensed: advX ${lg.fp[48].advX}`); + const with14 = index.entries.filter((e) => e.fp[14]).length; + assert.ok(with14 > 2500, `14px vectors ${with14}`); + }); + + it('routes candidate selection by cap height and returns 25 entries', () => { + const index = loadFontIndex(); + const lg = index.entries.find((e) => e.family === 'League Gothic'); + assert.equal(routeSize(72), 48); + assert.equal(routeSize(ROUTE_CAP_PX - 1), 14); + assert.equal(routeSize(72, index.sizes, { allCaps: true }), '48c', 'caps crops route to the caps render'); + assert.equal(routeSize(ROUTE_CAP_PX - 1, index.sizes, { allCaps: true }), 14, 'small caps crops still route to the small size'); + assert.equal(routeSize(72, [48, 14], { allCaps: true }), 48, 'a schema-1 index without 48c falls back'); + // barcode / effect faces never come back as candidates + const capsFp = { ...lg.fp['48c'], capHeightPx: 72, allCaps: true }; + const caps = candidatesFromIndex(capsFp, index, { n: 25 }); + assert.equal(caps[0].family, 'League Gothic'); + assert.equal(caps[0].size, '48c'); + assert.ok(caps.every((c) => !NON_TEXT_FAMILY.test(c.family))); + assert.ok(NON_TEXT_FAMILY.test('Libre Barcode 128 Text') && NON_TEXT_FAMILY.test('Redacted') && !NON_TEXT_FAMILY.test('Rubik') && !NON_TEXT_FAMILY.test('Bungee')); + const big = candidatesFromIndex({ ...lg.fp[48], capHeightPx: 72 }, index, { n: 25 }); + assert.equal(big.length, 25); + assert.equal(big[0].family, 'League Gothic'); + assert.equal(big[0].size, 48); + const small = candidatesFromIndex({ ...lg.fp[14], capHeightPx: 14 }, index, { n: 25 }); + assert.equal(small.length, 25); + assert.equal(small[0].family, 'League Gothic'); + assert.equal(small[0].size, 14); + for (const c of big) for (const k of ['family', 'weight', 'category', 'variable', 'd', 'size']) assert.ok(k in c); + const sans = candidatesFromIndex({ ...lg.fp[48], capHeightPx: 72 }, index, { n: 10, category: 'serif' }); + assert.equal(sans.length, 10); + assert.ok(sans.every((c) => c.category === 'serif')); + }); +}); + +describe('font-match', () => { + it('reads width and weight classes off the v2 features with catalog-anchored thresholds', () => { + const index = loadFontIndex(); + const at = (family, weight) => index.entries.find((e) => e.family === family && e.weight === weight).fp[48]; + assert.equal(widthClass(at('League Gothic', 400)), 'compressed'); + assert.equal(widthClass(at('Oswald', 700)), 'condensed'); + assert.equal(widthClass(at('Inter', 400)), 'normal'); + assert.equal(widthClass(at('Archivo Black', 400)), 'wide'); + assert.equal(weightClass(at('Lato', 300)), 'light'); + assert.equal(weightClass(at('Inter', 400)), 'regular'); + assert.equal(weightClass(at('Roboto', 700)), 'bold'); + assert.equal(weightClass(at('Anton', 400)), 'black'); + // all-caps crop: falls through to advTall + assert.equal(widthClass({ advX: null, advTall: 0.48 }), 'condensed'); + assert.equal(weightClass({ densTall: null, densX: null, stemW: 0.09 }), 'light'); + }); + + it('selects candidates from the index, keeps the caller names first, and uses the shortlist only without an index', () => { + const index = loadFontIndex(); + const lg = { ...index.entries.find((e) => e.family === 'League Gothic').fp[48], capHeightPx: 72 }; + const own = [{ family: 'Bebas Neue', weight: 400 }]; + const r = selectCandidates(lg, { own, index, n: 25 }); + assert.equal(r.source, 'index'); + assert.equal(r.candidates[0].family, 'Bebas Neue'); + assert.equal(r.catalog.length, 25); + assert.ok(r.candidates.length >= 25 && r.candidates.length <= 26); + assert.ok(!r.candidates.some((c) => SHORTLIST.wide.includes(`${c.family}:${c.weight}`)), 'shortlist must not leak in when the index is present'); + const noIdx = selectCandidates(lg, { own, index: null }); + assert.equal(noIdx.source, 'shortlist'); + assert.ok(noIdx.candidates.some((c) => c.family === 'Six Caps'), 'compressed shortlist used'); + }); + + it('renders and ranks candidates against a League Gothic sample (browser)', { skip: !hasPlaywright && 'playwright not resolvable' }, async () => { + const results = await renderCandidates([{ family: 'League Gothic', weight: 400 }, { family: 'Inter', weight: 400 }], 'The manuals stop.', 48); + if (!results) return; // module resolves but no browser binary (CI): the catalog fallback owns it + const ok = results.filter((r) => r.loaded && r.fp); + if (ok.length < 2) return; // offline: Google Fonts unreachable + const index = loadFontIndex(); + const lg = index.entries.find((e) => e.family === 'League Gothic').fp[48]; + const inter = index.entries.find((e) => e.family === 'Inter' && e.weight === 400).fp[48]; + const rLg = ok.find((r) => r.family === 'League Gothic'), rIn = ok.find((r) => r.family === 'Inter'); + assert.ok(distance(rLg.fp, lg) < distance(rLg.fp, inter), 'rendered League Gothic is nearer its own index entry'); + assert.ok(distance(rIn.fp, inter) < distance(rIn.fp, lg), 'rendered Inter is nearer its own index entry'); + }); +}); + +describe('font-fingerprint on mixed crops', () => { + it('measures the body copy, not the drawing beside it or the headline clipped above it', () => { + // 460x300 crop: one clipped headline line at the top (cap ~34), five lines + // of body copy (cap ~10), and a dense drawing (a noise block) at the bottom + const img = createImage(460, 300, [235, 232, 220, 255]); + drawText(img, 'THE MANIFOLDS', 4, 2, [20, 20, 20, 255], 5); + for (let i = 0; i < 5; i++) drawText(img, 'fresh cables slides return cleanly and the', 4, 60 + i * 24, [20, 20, 20, 255], 2); + let seed = 7; const rnd = () => ((seed = (seed * 1664525 + 1013904223) >>> 0) / 0xffffffff); + for (let y = 190; y < 300; y++) for (let x = 0; x < 300; x++) { const v = 40 + Math.floor(rnd() * 180); const p = (y * 460 + x) * 4; img.data[p] = v; img.data[p + 1] = v; img.data[p + 2] = v; } + const fp = fingerprint(img); + assert.ok(fp, 'lettering found'); + assert.ok(fp.capHeightPx >= 8 && fp.capHeightPx <= 14, `body cap measured, got ${fp.capHeightPx}`); + assert.ok(fp.lines >= 4, `body lines, got ${fp.lines}`); + assert.ok(fp.isolatedFrom >= 1, 'the headline line was set aside'); + }); +}); diff --git a/tests/hero-checks.test.mjs b/tests/hero-checks.test.mjs new file mode 100644 index 000000000..83828a350 --- /dev/null +++ b/tests/hero-checks.test.mjs @@ -0,0 +1,76 @@ +import { describe, it } from 'node:test'; +import assert from 'node:assert/strict'; +import { createImage, fillRect, drawText } from '../skill/scripts/lib/raster.mjs'; +import { textRegionCheck, chromeStripCheck, inventedInk, ruleRows, inkColor } from '../skill/scripts/lib/hero-checks.mjs'; + +const paper = [235, 232, 220, 255], ink = [20, 20, 20, 255]; +function textCrop({ scale = 4, lines = 2, color = ink, y0 = 20, x0 = 12, w = 460, h = 200 } = {}) { + const img = createImage(w, h, paper); + for (let i = 0; i < lines; i++) drawText(img, 'KEEP OLD IRON', x0, y0 + i * (scale * 9), color, scale); + return img; +} + +describe('hero-checks: text regions', () => { + const region = { id: 'headline', kind: 'text', type: { chosen: { family: 'Six Caps', weight: 400, fontSizePx: 40 } } }; + it('says nothing when the build sets the type as the comp does', () => { + const { findings } = textRegionCheck(region, textCrop(), textCrop()); + assert.deepEqual(findings, []); + }); + it('names a cap-height miss with the ranked face and size', () => { + const { findings } = textRegionCheck(region, textCrop({ scale: 4 }), textCrop({ scale: 6, lines: 2 })); + assert.ok(findings.some((f) => /cap height .*px in the build, .*px in the comp/.test(f) && /Six Caps 400 at 40px/.test(f)), findings.join('\n')); + }); + it('names a different line count', () => { + const { findings } = textRegionCheck(region, textCrop({ lines: 3 }), textCrop({ lines: 2 })); + assert.ok(findings.some((f) => /2 lines in the build, 3 in the comp/.test(f)), findings.join('\n')); + }); + it('names a colour change and a vertical shift', () => { + const { findings } = textRegionCheck(region, textCrop(), textCrop({ color: [180, 40, 30, 255], y0: 80 })); + assert.ok(findings.some((f) => /ink is #/.test(f)), findings.join('\n')); + assert.ok(findings.some((f) => /starts 60px lower/.test(f)), findings.join('\n')); + }); + it('stays quiet on rotated or unmeasurable comp crops', () => { + const blank = createImage(300, 300, paper); + assert.deepEqual(textRegionCheck(region, blank, textCrop()).findings, []); + }); +}); + +describe('hero-checks: chrome strips and invented ink', () => { + it('reads a strip height off its rule', () => { + const mk = (ruleY) => { const img = createImage(800, 100, paper); fillRect(img, 0, ruleY, 800, 2, ink); drawText(img, 'THREADS GARAGE', 20, 12, ink, 2); return img; }; + assert.deepEqual(ruleRows(mk(60)), [59]); // the edge row above the rule + const { findings } = chromeStripCheck({ id: 'masthead', kind: 'chrome' }, mk(44), mk(70)); + assert.ok(findings.some((f) => /43px into the box in the comp and 69px in the build/.test(f)), findings.join('\n')); + assert.deepEqual(chromeStripCheck({ id: 'masthead', kind: 'chrome' }, mk(44), mk(47)).findings, []); + }); + it('lists cells where the build carries ink over a calm comp', () => { + const comp = createImage(1000, 1000, paper); + const build = createImage(1000, 1000, paper); + drawText(build, 'SECTION KICKER', 20, 20, ink, 3); + fillRect(build, 100, 500, 800, 2, ink); + const r = inventedInk(comp, build); + assert.ok(r.cells.length >= 3, `cells ${r.cells.length}`); + assert.ok(r.cells.some((c) => c.row === 0), 'the kicker row'); + assert.deepEqual(inventedInk(comp, comp).cells, []); + }); + it('inkColor separates ink from ground', () => { + const c = inkColor(textCrop({ color: [180, 40, 30, 255] })); + assert.ok(c.ink && /^#[0-9a-f]{6}$/.test(c.ink.hex)); + }); +}); + +describe('hero-checks: inline SVG illustrations', () => { + it('lets icons, arrows and sprite references through and refuses drawings', async () => { + const { svgIllustrations } = await import('../skill/scripts/lib/hero-checks.mjs'); + const icon = ''; + const chevron = ''; + const sprite = ''; + const diagram = '' + Array.from({ length: 30 }, (_, i) => ``).join('') + ''; + const staff = '' + Array.from({ length: 12 }, (_, i) => ``).join('') + ''; + assert.deepEqual(svgIllustrations(icon + chevron + sprite), []); + const found = svgIllustrations(icon + diagram + staff); + assert.equal(found.length, 2); + assert.equal(found[0].label, 'carb-rack'); + assert.ok(found[0].paths >= 30); + }); +});