From 22f703cab05b7cd368f4de9e03991b7664dc5022 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Mon, 1 Sep 2014 13:56:46 +0200 Subject: Initial import of argyll version 1.5.1-8 --- render/render.c | 2425 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2425 insertions(+) create mode 100644 render/render.c (limited to 'render/render.c') diff --git a/render/render.c b/render/render.c new file mode 100644 index 0000000..cbeb78d --- /dev/null +++ b/render/render.c @@ -0,0 +1,2425 @@ + +/* + * render2d + * + * Simple 2D raster rendering support. + * + * Author: Graeme W. Gill + * Date: 28/12/2005 + * + * Copyright 2005, 2008, 2012 Graeme W. Gill + * All rights reserved. + * + * This material is licenced under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 :- + * see the License.txt file for licencing details. + */ + +#undef DEBUG + +#define verbo stdout + +#include +#include +#include +#include "copyright.h" +#include "aconfig.h" +#include "sort.h" +#include "numlib.h" +#include "tiffio.h" +#include "render.h" +#include "thscreen.h" + +/* ------------------------------------------------------------- */ +/* Utilities */ + +/* Standard L*a*b* to TIFF 8 bit CIELAB */ +static void cvt_Lab_to_CIELAB8(double *out, double *in) { + out[0] = in[0]; + if (out[0] < 0.0) + out[0] = 0.0; + else if (out[0] > 100.0) + out[0] = 100.0; + out[0] = out[0] / 100.0 * 255.0; + + out[1] = in[1]; + if (out[1] < -128.0) + out[1] = -128.0; + else if (out[1] > 127.0) + out[1] = 127.0; + if (out[1] < 0.0) + out[1] = 256.0 + out[1]; + + out[2] = in[2]; + if (out[2] < -128.0) + out[2] = -128.0; + else if (out[2] > 127.0) + out[2] = 127.0; + if (out[2] < 0.0) + out[2] = 256.0 + out[2]; +} + +/* Standard L*a*b* to TIFF 16 bit CIELAB */ +static void cvt_Lab_to_CIELAB16(double *out, double *in) { + out[0] = in[0]; + if (out[0] < 0.0) + out[0] = 0.0; + else if (out[0] > 100.0) + out[0] = 100.0; + out[0] = out[0] / 100.0 * 65535.0; + + out[1] = in[1]; + if (out[1] < -32768.0) + out[1] = -32768.0; + else if (out[1] > 32767.0) + out[1] = 32767.0; + if (out[1] < 0.0) + out[1] = 65536.0 + out[1]; + + out[2] = in[2]; + if (out[2] < -32768.0) + out[2] = -32768.0; + else if (out[2] > 32767.0) + out[2] = 32767.0; + if (out[2] < 0.0) + out[2] = 65536.0 + out[2]; +} + +/* ------------------------------------------------------------- */ +/* Main class implementation */ + +/* Free ourselves and all primitives */ +static void render2d_del(render2d *s) { + prim2d *th, *nx; + + /* Delete all the primitives */ + for (th = s->head; th != NULL; th = nx) { + nx = th->next; + th->del(th); + } + + /* And then ourselves */ + free(s); +} + +/* Add a primitive */ +static void render2d_add(render2d *s, prim2d *p) { + if (p == NULL) + error("render2d: Adding NULL primitive"); + + p->next = s->head; + s->head = p; + p->ix = s->ix; + s->ix++; +} + +/* Set the default color */ +static void render2d_set_defc(render2d *s, color2d c) { + int j; + + for (j = 0; j < s->ncc; j++) + s->defc[j] = c[j]; + s->defc[PRIX2D] = c[PRIX2D]; +} + + +/* Set background color function */ +static void render2d_set_bg_func(render2d *s, + void (*func)(void *cntx, color2d c, double x, double y), + void *cntx +) { + s->bgfunc = func; + s->cntx = cntx; +} + +/* Compute the length of a double nul terminated string, including */ +/* the nuls. */ +static int zzstrlen(char *s) { + int i; + for (i = 0;; i++) { + if (s[i] == '\000' && s[i+1] == '\000') + return i+2; + } + return 0; +} + +/* Decide whether a color is different enough to need anti-aliasing */ +static int colordiff(render2d *s, color2d c1, color2d c2) { + int j; + + for (j = 0; j < s->ncc; j++) { + if (fabs(c1[j] - c2[j]) > 1e-5) + return 1; + } + return 0; +} + +#define MIXPOW 1.3 +#define OSAMLS 16 + +/* Render and write to a TIFF file */ +/* Return NZ on error */ +static int render2d_write(render2d *s, char *filename, int comprn) { + TIFF *wh = NULL; + uint16 samplesperpixel = 0, bitspersample = 0; + uint16 extrasamples = 0; /* Extra "alpha" samples */ + uint16 extrainfo[MXCH2D]; /* Info about extra samples */ + uint16 photometric = 0; + uint16 inkset = 0xffff; + char *inknames = NULL; + tdata_t *outbuf; + unsigned char *tempbuf = NULL; /* 16 bit buffer for dithering */ + thscreens *screen = NULL; /* dithering object */ + prim2d *th, **pthp; + prim2d **xlist, **ylist; /* X, Y sorted start lists */ + int xli, yli; /* Indexes into X, Y list */ + int noix; /* Number in x list */ + color2d *pixv0, *_pixv0; /* Storage for pixel values around current */ + color2d *pixv1, *_pixv1; + sobol *so; /* Random sampler for anti-aliasing */ + int i, j; + + double rx0, rx1, ry0, ry1; /* Box being processed, newest sample is rx1, ry1 */ + int x, y; /* Pixel x & y index */ + + if ((so = new_sobol(2)) == NULL) + return 1; + + switch (s->csp) { + case w_2d: /* Video style grey */ + samplesperpixel = 1; + photometric = PHOTOMETRIC_MINISBLACK; + break; + case k_2d: /* Printing style grey */ + samplesperpixel = 1; + photometric = PHOTOMETRIC_MINISWHITE; + break; + case lab_2d: /* TIFF CIE L*a*b* */ + samplesperpixel = 3; + photometric = PHOTOMETRIC_CIELAB; + break; + case rgb_2d: /* RGB */ + samplesperpixel = 3; + photometric = PHOTOMETRIC_RGB; + break; + case cmyk_2d: /* CMYK */ + samplesperpixel = 4; + photometric = PHOTOMETRIC_SEPARATED; + inkset = INKSET_CMYK; + inknames = "cyan\000magenta\000yellow\000\000"; + break; + case ncol_2d: /* N color */ + samplesperpixel = s->ncc; + extrasamples = 0; + photometric = PHOTOMETRIC_SEPARATED; + inkset = 0; // ~~99 should fix this + inknames = NULL; // ~~99 should fix this + break; + case ncol_a_2d: /* N color with extras in alpha */ + samplesperpixel = s->ncc; + extrasamples = 0; + if (samplesperpixel > 4) { + extrasamples = samplesperpixel - 4; /* Call samples > 4 "alpha" samples */ + for (j = 0; j < extrasamples; j++) + extrainfo[j] = EXTRASAMPLE_UNASSALPHA; + } + photometric = PHOTOMETRIC_SEPARATED; + inkset = 0; // ~~99 should fix this + inknames = NULL; // ~~99 should fix this + break; + default: + error("render2d: Illegal colorspace for file '%s'",filename); + } + if (samplesperpixel != s->ncc) + error("render2d: mismatched number of color components"); + + switch (s->dpth) { + case bpc8_2d: /* 8 bits per component */ + bitspersample = 8; + break; + case bpc16_2d: /* 16 bits per component */ + bitspersample = 16; + break; + default: + error("render2d: Illegal bits per component for file '%s'",filename); + } + + if ((wh = TIFFOpen(filename, "w")) == NULL) + error("render2d: Can\'t create TIFF file '%s'!",filename); + + TIFFSetField(wh, TIFFTAG_IMAGEWIDTH, s->pw); + TIFFSetField(wh, TIFFTAG_IMAGELENGTH, s->ph); + TIFFSetField(wh, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); + TIFFSetField(wh, TIFFTAG_SAMPLESPERPIXEL, samplesperpixel); + TIFFSetField(wh, TIFFTAG_BITSPERSAMPLE, bitspersample); + TIFFSetField(wh, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + TIFFSetField(wh, TIFFTAG_PHOTOMETRIC, photometric); + if (extrasamples > 0) + TIFFSetField(wh, TIFFTAG_EXTRASAMPLES, extrasamples, extrainfo); + + if (inknames != NULL) { + int inlen = zzstrlen(inknames); + TIFFSetField(wh, TIFFTAG_INKSET, inkset); + TIFFSetField(wh, TIFFTAG_INKNAMES, inlen, inknames); + } + TIFFSetField(wh, TIFFTAG_COMPRESSION, COMPRESSION_NONE); + TIFFSetField(wh, TIFFTAG_RESOLUTIONUNIT, RESUNIT_CENTIMETER); + TIFFSetField(wh, TIFFTAG_XRESOLUTION, 10.0 * s->hres); /* Cvt. to pixels/cm */ + TIFFSetField(wh, TIFFTAG_YRESOLUTION, 10.0 * s->vres); + TIFFSetField(wh, TIFFTAG_XPOSITION, 0.1 * s->lm); /* Cvt. to cm */ + TIFFSetField(wh, TIFFTAG_YPOSITION, 0.1 * s->tm); + if (comprn) { + TIFFSetField(wh, TIFFTAG_COMPRESSION, COMPRESSION_LZW); + } + TIFFSetField(wh, TIFFTAG_IMAGEDESCRIPTION, "Test chart created with Argyll"); + + /* Allocate pixel value storage for aliasing detection */ + if ((_pixv0 = malloc(sizeof(color2d) * (s->pw+2))) == NULL) + return 1; + pixv0 = _pixv0+1; + if ((_pixv1 = malloc(sizeof(color2d) * (s->pw+2))) == NULL) + return 1; + pixv1 = _pixv1+1; + + /* Allocate one TIFF line buffer */ + outbuf = _TIFFmalloc(TIFFScanlineSize(wh)); + + if (s->dpth == bpc8_2d && s->dither) { +#ifdef NEVER // For testing by making screen visible +# define LEVELS 16 + int i, olevs[LEVELS]; + for (i = 0; i < LEVELS; i++) + olevs[i] = (int)(i/(LEVELS-1.0) * 255.0 + 0.5); + if ((screen = new_thscreens(0, s->ncc, 1.0, 79, scie_16, 8, LEVELS, olevs, + scoo_l, 0.1, NULL, NULL)) == NULL) +#else + if ((screen = new_thscreens(0, s->ncc, 1.0, 79, scie_16, 8, 256, NULL, + scoo_l, 0.1, NULL, NULL)) == NULL) +#endif + return 1; + if ((tempbuf = malloc(s->pw * s->ncc * 2)) == NULL) + return 1; + } + + /* To accelerate rendering, we keep sorted Y and X lists, */ + /* and Y and X active linked lists derived from them. */ + /* Typically this means that we're calling render on */ + /* none, 1 or a handful of the primitives, greatly speeding up */ + /* rendering. */ + + /* Allocate X and Y ordered lists */ + if ((ylist = malloc(sizeof(prim2d *) * s->ix)) == NULL) + return 1; + if ((xlist = malloc(sizeof(prim2d *) * s->ix)) == NULL) + return 1; + + /* Initialise the Y list */ + for (th = s->head, i = 0; th != NULL; th = th->next, i++) + ylist[i] = th; + + /* Sort the Y lists by y1 (because we rasterise top to bottom) */ +#define HEAP_COMPARE(A,B) (A->y1 > B->y1) + HEAPSORT(prim2d *,ylist,s->ix) +#undef HEAP_COMPARE + yli = 0; + s->yl = NULL; + + /* Render each line and write it. */ + /* We sample +- half a pixel around the pixel we want. */ + /* We make the active element list encompass this region, */ + /* so that we can super sample it for anti-aliasing. */ + for (y = -1; y < s->ph; y++) { + + ry0 = (((s->ph-1) - y) - 0.5) / s->vres; + ry1 = (((s->ph-1) - y) + 0.5) / s->vres; + + /* Remove any objects from the y list that are now out of range */ + for (pthp = &s->yl, th = s->yl; th != NULL;) { + if (ry1 < th->y0) { + *pthp = th->yl; + th = th->yl; + } else { + pthp = &th->yl; + th = th->yl; + } + } + + /* Add any objects that are now within this range to our y list */ + for(; yli < s->ix && ry0 < ylist[yli]->y1; yli++) { + ylist[yli]->yl = s->yl; + s->yl = ylist[yli]; + } + + /* Initialise the current X list */ + for (th = s->yl, noix = 0; th != NULL; th = th->yl, noix++) + xlist[noix] = th; + + /* Sort the X lists by x0 */ +#define HEAP_COMPARE(A,B) (A->x0 < B->x0) + HEAPSORT(prim2d *,xlist,noix) +#undef HEAP_COMPARE + xli = 0; + s->xl = NULL; + + for (x = -1; x < s->pw; x++) { + int j; + color2d rv; + + rx0 = (x - 0.5) / s->hres; + rx1 = (x + 0.5) / s->hres; + + /* Add any objects that are now within this range to our x list */ + for(; xli < noix && rx1 > xlist[xli]->x0; xli++) { + xlist[xli]->xl = s->xl; + s->xl = xlist[xli]; + } + + /* Set the default current color */ + for (j = 0; j < s->ncc; j++) + pixv1[x][j] = s->defc[j]; + pixv1[x][PRIX2D] = -1; /* Make sure all primitive ovewrite the default */ + + /* Allow callback to set per pixel background color (or not) */ + if (s->bgfunc != NULL) + s->bgfunc(s->cntx, pixv1[x], x, y); + + /* Overwrite it with any primitives, */ + /* and remove any that are out of range now */ + for (pthp = &s->xl, th = s->xl; th != NULL;) { + if (rx0 > th->x1) { + *pthp = th->xl; + th = th->xl; + } else { + if (th->rend(th, rv, rx1, ry0) && th->ix > pixv1[x][PRIX2D]) { + /* Overwrite the current color */ + /* (This is where we should handle depth and opacity */ + for (j = 0; j < s->ncc; j++) + pixv1[x][j] = rv[j]; + pixv1[x][PRIX2D] = rv[PRIX2D]; + } + pthp = &th->xl; + th = th->xl; + } + } + /* Check if anti-aliasing is neded for previous lines previous pixel */ + if (y >= 0 && x >= 0) { + color2d cc; + + for (j = 0; j < s->ncc; j++) + cc[j] = pixv1[x][j]; + cc[PRIX2D] = pixv1[x][PRIX2D]; + + /* See if anti aliasing is needed */ + if ((pixv0[x+0][PRIX2D] != cc[PRIX2D] && colordiff(s, pixv0[x+0], cc)) + || (pixv0[x-1][PRIX2D] != cc[PRIX2D] && colordiff(s, pixv0[x-1], cc)) + || (pixv1[x-1][PRIX2D] != cc[PRIX2D] && colordiff(s, pixv1[x-1], cc))) { + double nn = 0; + + so->reset(so); + + for (j = 0; j < s->ncc; j++) + cc[j] = 0.0; + + /* Compute the sample value by re-sampling the region */ + /* around the pixel. */ + for (nn = 0; nn < OSAMLS; nn++) { + double pos[2]; + double rx, ry; + color2d ccc; + + so->next(so, pos); + + rx = (rx1 - rx0) * pos[0] + rx0; + ry = (ry1 - ry0) * pos[1] + ry0; + + /* Set the default current color */ + for (j = 0; j < s->ncc; j++) + ccc[j] = s->defc[j]; + ccc[PRIX2D] = -1; + + for (th = s->xl; th != NULL; th = th->xl) { + if (th->rend(th, rv, rx, ry) && th->ix > ccc[PRIX2D]) { + /* Overwrite the current color */ + /* (This is where we should handle depth and opacity */ + for (j = 0; j < s->ncc; j++) + ccc[j] = rv[j]; + ccc[PRIX2D] = rv[PRIX2D]; + } + } + for (j = 0; j < s->ncc; j++) + cc[j] += pow(ccc[j], MIXPOW); + } + for (j = 0; j < s->ncc; j++) + cc[j] = pow(cc[j]/nn, 1.0/MIXPOW); + +#ifdef NEVER /* Mark aliased pixels */ + cc[0] = 0.5; + cc[1] = 0.0; + cc[2] = 1.0; +#endif + } else { + + /* Compute output value as mean of surrounding samples */ + for (j = 0; j < s->ncc; j++) { + cc[j] = cc[j] + + pixv0[x-1][j] + + pixv0[x][j] + + pixv1[x-1][j]; + cc[j] = cc[j] * 0.25; + + } + } + + /* Translate from render value to output pixel value */ + if (s->dpth == bpc8_2d) { + if (s->dither) { + unsigned short *p = ((unsigned short *)tempbuf) + x * s->ncc; + if (s->csp == lab_2d) { + cvt_Lab_to_CIELAB16(cc, cc); + for (j = 0; j < s->ncc; j++) + p[j] = (int)(cc[j] + 0.5); + } else { + for (j = 0; j < s->ncc; j++) + p[j] = (int)(65535.0 * cc[j] + 0.5); + } + } else { + unsigned char *p = ((unsigned char *)outbuf) + x * s->ncc; + if (s->csp == lab_2d) { + cvt_Lab_to_CIELAB8(cc, cc); + for (j = 0; j < s->ncc; j++) + p[j] = (int)(cc[j] + 0.5); + } else { + for (j = 0; j < s->ncc; j++) + p[j] = (int)(255.0 * cc[j] + 0.5); + } + } + } else { + unsigned short *p = ((unsigned short *)outbuf) + x * s->ncc; + if (s->csp == lab_2d) { + cvt_Lab_to_CIELAB16(cc, cc); + for (j = 0; j < s->ncc; j++) + p[j] = (int)(cc[j] + 0.5); + } else { + for (j = 0; j < s->ncc; j++) + p[j] = (int)(65535.0 * cc[j] + 0.5); + } + } + } + } + + if (y >= 0) { + if (s->dpth == bpc8_2d && s->dither) + screen->screen(screen, s->pw, 1, 0, y, tempbuf, s->pw * s->ncc * 2, + (unsigned char *)outbuf, s->pw * s->ncc); + + if (TIFFWriteScanline(wh, outbuf, y, 0) < 0) + error ("Failed to write TIFF file '%s' line %d",filename,y); + } + + /* Shuffle the pointers */ + { + color2d *ttt; + ttt = pixv0; + pixv0 = pixv1; + pixv1 = ttt; + } + } + + free(ylist); + free(xlist); + free(_pixv0); + free(_pixv1); + + if (tempbuf != NULL) + free(tempbuf); + if (screen != NULL) + screen->del(screen); + _TIFFfree(outbuf); + TIFFClose(wh); /* Close Output file */ + + so->del(so); + + return 0; +} + +/* Constructor */ +render2d *new_render2d( +double w, /* width in mm */ +double h, /* height in mm */ +double ma[4], /* Margines, left, right, top, bottom, NULL for zero in mm */ +double hres, /* horizontal resolution in pixels/mm */ +double vres, /* horizontal resolution in pixels/mm */ +colort2d csp, /* Color type */ +int nd, /* Number of channels if c = ncol */ +depth2d dpth, /* Pixel depth */ +int dither /* Dither flag */ +) { + render2d *s; + + if ((s = (render2d *)calloc(1, sizeof(render2d))) == NULL) { + return NULL; + } + + s->fw = w; + s->fh = h; + if (ma != NULL) { + s->lm = ma[0]; + s->rm = ma[1]; + s->tm = ma[2]; + s->bm = ma[3]; + } + w = s->fw - s->lm - s->rm; + h = s->fh - s->tm - s->bm; + if (w < 0.0) + error("render2d: Left & Right margines %f %f exceed width %f",s->lm,s->rm,s->fw); + if (h < 0.0) + error("render2d: Top & Bottom margines %f %f exceed height %f",s->tm,s->bm,s->fh); + s->hres = hres; + s->vres = vres; + s->csp = csp; + s->dpth = dpth; + s->dither = dither; + + s->del = render2d_del; + s->set_defc = render2d_set_defc; + s->set_bg_func = render2d_set_bg_func; + s->add = render2d_add; + s->write = render2d_write; + + /* Figure the raster size and actuall size */ + s->pw = (int)(s->hres * w + 0.5); + s->ph = (int)(s->vres * h + 0.5); + s->w = s->pw * s->hres; + s->h = s->ph * s->vres; + + switch (s->csp) { + case w_2d: /* Video style grey */ + case k_2d: /* Printing style grey */ + s->ncc = 1; + break; + case lab_2d: /* TIFF CIE L*a*b* */ + s->ncc = 3; + break; + case rgb_2d: /* RGB */ + s->ncc = 3; + break; + case cmyk_2d: /* CMYK */ + s->ncc = 4; + break; + case ncol_2d: + case ncol_a_2d: + if (nd > MXCH2D) + error("render2d: Too many color chanels %d, max is %d",nd,MXCH2D); + s->ncc = nd; + break; + default: + error("render2d: Illegal colorspace"); + } + return s; +} + +/* ------------------------------------------------------------- */ +/* Primitive implementations */ + +/* Primitive destructor for no sub-allocation */ +static void prim2d_del(prim2d *s) { + free(s); +} + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +/* Flat shaded rectangle */ + +/* Render the rectangle object at location. Return nz if in primitive */ +static int rect2d_rend(prim2d *ss, color2d rv, double x, double y) { + rect2d *s = (rect2d *)ss; + int j; + + if (y < s->ry0 || y > s->ry1 + || x < s->rx0 || x > s->rx1) + return 0; + + for (j = 0; j < s->ncc; j++) + rv[j] = s->c[j]; + rv[PRIX2D] = s->ix; + + return 1; +} + +prim2d *new_rect2d( +render2d *ss, +double x, +double y, +double w, +double h, +color2d c +) { + int j; + rect2d *s; + + if ((s = (rect2d *)calloc(1, sizeof(rect2d))) == NULL) { + return NULL; + } + + /* Account for margines */ + x -= ss->lm; + y -= ss->bm; + + s->ncc = ss->ncc; + s->del = prim2d_del; + s->rend = rect2d_rend; + + /* Set bounding box */ + s->x0 = x; + s->y0 = y; + s->x1 = x + w; + s->y1 = y + h; + + /* Set rectangle extent */ + s->rx0 = s->x0; + s->ry0 = s->y0; + s->rx1 = s->x1; + s->ry1 = s->y1; + + for (j = 0; j < s->ncc; j++) + s->c[j] = c[j]; + + return (prim2d *)s; +} + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +/* Vertex shaded rectangle */ + +/* Render the rectangle object at location. Return nz if in primitive */ +static int rectvs2d_rend(prim2d *ss, color2d rv, double x, double y) { + rectvs2d *s = (rectvs2d *)ss; + double bx, by, b[4]; + int i, j; + + if (y < s->ry0 || y > s->ry1 + || x < s->rx0 || x > s->rx1) + return 0; + + /* Compute linear blend */ + bx = (x - s->x0)/(s->x1 - s->x0); + by = (y - s->y0)/(s->y1 - s->y0); + + if (s->x_blend == 1) { + bx = bx * bx * (3.0 - 2.0 * bx); /* Cubic spline */ + } else if (s->x_blend == 2) { + bx = bx - 0.5; /* Sine */ + bx *= 3.141592654; + bx = sin(bx); + bx = 0.5 + (0.5 * bx); + } + if (s->y_blend == 1) { + by = by * by * (3.0 - 2.0 * by); /* Spline */ + } else if (s->y_blend == 2) { + double ty; + ty = by * by * (3.0 - 2.0 * by); /* spline at y == 1, linear at y == 0 */ + by = by * ty + (1.0 - by) * by; + } else if (s->y_blend == 3) { + double ty; + ty = by * by * (3.0 - 2.0 * by); /* linear at y == 1, spline at y == 0 */ + by = (1.0 - by) * ty + by * by; + } + + /* Compute 2d blend */ + b[0] = (1.0 - by) * (1.0 - bx); + b[1] = (1.0 - by) * bx; + b[2] = by * (1.0 - bx); + b[3] = by * bx; + + /* Compute the resulting color */ + for (j = 0; j < s->ncc; j++) { + rv[j] = 0.0; + for (i = 0; i < 4; i++) + rv[j] += b[i] * s->c[i][j]; + rv[j] = rv[j]; + } + rv[PRIX2D] = s->ix; + + return 1; +} + +prim2d *new_rectvs2d( +render2d *ss, +double x, +double y, +double w, +double h, +color2d c[4] +) { + int i, j; + rectvs2d *s; + + if ((s = (rectvs2d *)calloc(1, sizeof(rectvs2d))) == NULL) { + return NULL; + } + + /* Account for margines */ + x -= ss->lm; + y -= ss->bm; + + s->ncc = ss->ncc; + s->del = prim2d_del; + s->rend = rectvs2d_rend; + + /* Set bounding box */ + s->x0 = x; + s->y0 = y; + s->x1 = x + w; + s->y1 = y + h; + + /* Set rectangle extent */ + s->rx0 = s->x0; + s->ry0 = s->y0; + s->rx1 = s->x1; + s->ry1 = s->y1; + + for (i = 0; i < 4; i++) + for (j = 0; j < s->ncc; j++) + s->c[i][j] = c[i][j]; + + return (prim2d *)s; +} + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +/* Vertex shaded triangle */ + +/* Render the triangle object at location. Return nz if in primitive */ +static int trivs2d_rend(prim2d *ss, color2d rv, double x, double y) { + trivs2d *s = (trivs2d *)ss; + double b[3]; + int i, j; + + /* Compute the baricentric values for the input point, */ + /* and reject this point if it is outside the triangle */ + for (i = 0; i < 3; i++) { + b[i] = s->be[i][0] * x + s->be[i][1] * y + s->be[i][2]; + if (b[i] < 0.0 || b[i] > 1.0) + return 0; + } + +#ifdef NEVER /* Experiment with smoothing hue blending */ + { + double ss = b[1] + b[2]; + if (ss > 1e-6) { + b[1] /= ss; + b[2] /= ss; +// b[1] = b[1] * b[1] * (3.0 - 2.0 * b[1]); + + b[1] = b[1] - 0.5; + b[1] *= 3.141592654; + b[1] = sin(b[1]); + b[1] = 0.5 + (0.5 * b[1]); + + b[2] = 1.0 - b[1]; + b[1] *= ss; + b[2] *= ss; + } + } +#endif + + /* Compute the resulting color */ + for (j = 0; j < s->ncc; j++) { + rv[j] = 0.0; + for (i = 0; i < 3; i++) + rv[j] += b[i] * s->c[i][j]; + } + rv[PRIX2D] = s->ix; + + return 1; +} + +static int inverse3x3(double out[3][3], double in[3][3]); + +prim2d *new_trivs2d( +render2d *ss, +double v[3][2], /* Vertex locations */ +color2d c[3] /* Corresponding colors */ +) { + int i, j; + trivs2d *s; + double vv[3][2]; /* Margin adjusted vertex locations */ + double tt[3][3]; + + if ((s = (trivs2d *)calloc(1, sizeof(trivs2d))) == NULL) { + return NULL; + } + + /* Account for margines */ + for (i = 0; i < 3; i++) { + vv[i][0] = v[i][0] - ss->lm; + vv[i][1] = v[i][1] - ss->bm; + } + + s->ncc = ss->ncc; + s->del = prim2d_del; + s->rend = trivs2d_rend; + + /* Set the bounding box values */ + s->x0 = s->y0 = 1e38; + s->x1 = s->y1 = -1e38; + for (i = 0; i < 3; i++) { + if (vv[i][0] < s->x0) + s->x0 = vv[i][0]; + if (vv[i][1] < s->y0) + s->y0 = vv[i][1]; + if (vv[i][0] > s->x1) + s->x1 = vv[i][0]; + if (vv[i][1] > s->y1) + s->y1 = vv[i][1]; + } + + /* Compute baricentric equations */ + for (i = 0; i < 3; i++) { + tt[0][i] = vv[i][0]; + tt[1][i] = vv[i][1]; + tt[2][i] = 1.0; + } + if (inverse3x3(s->be, tt)) + error("trivs2d: Matrix inversion failed"); + + /* Copy vertex colors */ + for (i = 0; i < 3; i++) { + for (j = 0; j < s->ncc; j++) + s->c[i][j] = c[i][j]; + } + + return (prim2d *)s; +} + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +/* A single Rounded end line. Mainly for supporting Hershey text output. */ + +/* Render the line object at this location */ +static int line2d_rend(prim2d *ss, color2d rv, double x, double y) { + line2d *s = (line2d *)ss; + double rr, px, py; + int j; + + px = x - s->lx0; /* Input relative to x0 y0 */ + py = y - s->ly0; + + /* It's actually a point */ + if (s->t) { + + rr = (px * px) + (py * py) ; + + if (s->cap != 1) + return 0; + if (rr > s->ww) + return 0; + + } else { + /* Locate point on line between 0 and 1 closest to input point */ + double t, nx, ny; + + /* Closest point on line parametric value */ + t = (s->vx * px + s->vy * py)/(s->vx * s->vx + s->vy * s->vy); + + if (t < 0.0) { /* 0 side end cap */ + if (s->cap != 1) + return 0; + rr = (px * px) + (py * py) ; + if (rr > s->ww) + return 0; /* 1 side end cap */ + + } else if (t > 1.0) { + if (s->cap != 1) + return 0; + rr = (x - s->lx1) * (x - s->lx1) + + (y - s->ly1) * (y - s->ly1); + if (rr > s->ww) + return 0; + + } else { /* Within rectangular part of line */ + double nx, ny; + + nx = t * s->vx; /* Closest point on line relative to x0 y0 */ + ny = t * s->vy; + + rr = (px - nx) * (px - nx) + (py - ny) * (py - ny); + if (rr > s->ww) + return 0; + } + } + + for (j = 0; j < s->ncc; j++) + rv[j] = s->c[j]; + rv[PRIX2D] = s->ix; + + return 1; +} + +prim2d *new_line2d( +render2d *ss, +double x0, double y0, double x1, double y1, +double w, +int cap, /* 0 = butt, 1 = round, 2 = square */ +color2d c +) { + int i, j; + line2d *s; + double tt[3][3]; + + if ((s = (line2d *)calloc(1, sizeof(line2d))) == NULL) { + return NULL; + } + + /* Account for margines */ + x0 -= ss->lm; + y0 -= ss->bm; + x1 -= ss->lm; + y1 -= ss->bm; + + s->ncc = ss->ncc; + s->del = prim2d_del; + s->rend = line2d_rend; + + w *= 0.5; /* half width */ + + for (j = 0; j < s->ncc; j++) + s->c[j] = c[j]; + + /* Compute the line vector relative to x0 y0 */ + s->vx = x1 - x0; + s->vy = y1 - y0; + + /* For square, extend the line by w/2 and render as butt */ + if (cap == 2) { + double nvx, nvy; + double ll = sqrt(s->vx * s->vx + s->vy * s->vy); + + /* Compute normalized vector */ + if (ll < 1e-6) { + nvx = 1.0; + nvy = 0.0; + } else { + nvx = s->vx/ll; + nvy = s->vy/ll; + } + x0 -= w * nvx; + y0 -= w * nvy; + x1 += w * nvx; + y1 += w * nvy; + s->vx = x1 - x0; + s->vy = y1 - y0; + } + + s->lx0 = x0; + s->ly0 = y0; + s->lx1 = x1; + s->ly1 = y1; + s->ww = w * w; + s->cap = cap; + + /* Set the bouding box values */ + if (x1 > x0) { + s->x1 = x1 + w; + s->x0 = x0 - w; + } else { + s->x1 = x0 + w; + s->x0 = x1 - w; + } + if (y1 > y0) { + s->y1 = y1 + w; + s->y0 = y0 - w; + } else { + s->y1 = y0 + w; + s->y0 = y1 - w; + } + + /* Figure out if the line is degenerate */ + if (fabs(s->vx) < 1e-6 && fabs(s->vy) < 1e-6) { + s->t = 1; + } + + return (prim2d *)s; +} + + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +/* Primitive Macros. */ + +/* add a dashed line */ +void add_dashed_line2d( +struct _render2d *s, +double x0, double y0, +double x1, double y1, +double w, +double on, double off, +int cap, +color2d c) { + double ll, rl; /* Line length, rounded length */ + double vx, vy; + double nvx, nvy; /* Normalized vector */ + + vx = x1 - x0; + vy = y1 - y0; + ll = sqrt(vx * vx + vy * vy); + + if (ll < 1e-6) { + s->add(s, new_line2d(s, x0, y0, x1, y1, w, cap, c)); + return ; + } + nvx = vx/ll; + nvy = vy/ll; + + for (;ll > 0.0;) { + rl = ll; + if (rl > on) { + rl = on; + } + x1 = x0 + rl * nvx; + y1 = y0 + rl * nvy; + s->add(s, new_line2d(s, x0, y0, x1, y1, w, cap, c)); + x0 = x1; + y0 = y1; + ll -= rl; + if (ll <= 0.0) + return; + rl = ll; + if (rl > off) { + rl = off; + } + x0 += rl * nvx; + y0 += rl * nvy; + ll -= rl; + } +} + + +/* Text */ +struct _hyfont { + char *name; + double sx, sy; /* X and Y scaling */ + double sxi; /* X spacing extra scale */ + double sw; /* Line width scale */ + double ho; /* horizontal alignment offset */ + double vo; /* vertical alignment offset */ + char *enc[128]; /* Hershey encoded font */ +}; typedef struct _hyfont hyfont; + +hyfont fonts[]; + +double h2dbl(unsigned char c) { return (double)(c-'R'); } + +/* Add a text character at the given location using lines */ +static void add_char_imp( +render2d *s, +double *xinc, /* Add increment to next character */ +double *yinc, +font2d fo, /* Font to use */ +char ch, /* Character code to be printed */ +double x, double y, /* Location of bottom left of normal orientation text */ +double h, /* Height of text in normal orientation */ +int or, /* Orintation, 0 = right, 1 = down, 2 = left, 3 = right */ +color2d c, /* Color of text */ +int add /* NZ if character is to be added */ +) { + hyfont *fp = &fonts[fo]; + char *cp = fp->enc[ch % 128]; + double lm, rm; + double x0, y0, x1 = 0.0, y1 = 0.0; + int got1 = 0; + double w = fp->sw * h; + double tx, ty; + double mat[2][2]; /* Transformation matrix */ + + if (or == 0) { + mat[0][0] = 1.0; + mat[0][1] = 0.0; + mat[1][0] = 0.0; + mat[1][1] = 1.0; + } else if (or == 1) { + mat[0][0] = 0.0; + mat[0][1] = 1.0; + mat[1][0] = -1.0; + mat[1][1] = 0.0; + } else if (or == 2) { + mat[0][0] = -1.0; + mat[0][1] = 0.0; + mat[1][0] = 0.0; + mat[1][1] = -1.0; + } else { + mat[0][0] = 0.0; + mat[0][1] = -1.0; + mat[1][0] = 1.0; + mat[1][1] = 0.0; + } + if (cp[0] == '\000' || cp[1] == '\000') { + if (xinc != NULL && yinc != NULL) { + *xinc = 0.0; + *yinc = 0.0; + } + return; + } + + lm = h2dbl(cp[0]); + rm = h2dbl(cp[1]); + cp += 2; + + if (add) { + for (;; cp += 2) { + if (cp[0] == '\000' || cp[1] == '\000') { + break; + } + /* End of polyline */ + if (cp[0] == ' ' && cp[1] == 'R' ) { + got1 = 0; + } else { + x0 = x1; + y0 = y1; + tx = h * fp->sx * (h2dbl(cp[0]) -lm + fp->ho); + ty = -h * fp->sy * (h2dbl(cp[1]) -fp->vo); + x1 = x + mat[0][0] * tx + mat[0][1] * ty; + y1 = y + mat[1][0] * tx + mat[1][1] * ty; + if (got1) { + s->add(s, new_line2d(s, x0, y0, x1, y1, w, 1, c)); + } + got1 = 1; + } + } + } + + tx = fp->sxi * h * fp->sx * (rm - lm); + ty = 0.0; + if (xinc != NULL) + *xinc += mat[0][0] * tx + mat[0][1] * ty; + if (yinc != NULL) + *yinc += mat[1][0] * tx + mat[1][1] * ty; +} + +/* Add a text character at the given location using lines */ +void add_char2d( +render2d *s, +double *xinc, /* Add increment to next character */ +double *yinc, +font2d fo, /* Font to use */ +char ch, /* Character code to be printed */ +double x, double y, /* Location of bottom left of normal orientation text */ +double h, /* Height of text in normal orientation */ +int or, /* Orintation, 0 = right, 1 = down, 2 = left, 3 = right */ +color2d c /* Color of text */ +) { + add_char_imp(s, xinc, yinc, fo, ch, x, y, h, or, c, 1); +} + +/* Return the total width of the character without adding it */ +void meas_char2d( +render2d *s, +double *xinc, /* Add increment to next character */ +double *yinc, +font2d fo, /* Font to use */ +char ch, /* Character code to be printed */ +double h, /* Height of text in normal orientation */ +int or /* Orintation, 0 = right, 1 = down, 2 = left, 3 = right */ +) { + color2d c; + + add_char_imp(s, xinc, yinc, fo, ch, 0.0, 0.0, h, or, c, 0); +} + +/* Add a string from the given location using lines. */ +/* Return the total width of the string */ +void add_string2d( +render2d *s, +double *xinc, /* Add increment to next character */ +double *yinc, +font2d fo, /* Font to use */ +char *string, /* Character code to be printed */ +double x, double y, /* Location of bottom left of normal orientation text */ +double h, /* Height of text in normal orientation */ +int or, /* Orintation, 0 = right, 1 = down, 2 = left, 3 = right */ +color2d c /* Color of text */ +) { + char *ch; + double xoff = 0.0, yoff = 0.0; + + for (ch = string; *ch != '\000'; ch++) { + add_char2d(s, &xoff, &yoff, fo, *ch, x + xoff, y + yoff, h, or, c); + } + + if (xinc != NULL) + *xinc = xoff; + if (yinc != NULL) + *yinc = yoff; +} + +/* Return the total width of the string without adding it */ +void meas_string2d( +struct _render2d *s, +double *xinc, /* Add increment to next character */ +double *yinc, +font2d fo, /* Font to use */ +char *string, /* Character code to be printed */ +double h, /* Height of text in normal orientation */ +int or /* Orintation, 0 = right, 1 = down, 2 = left, 3 = right */ +) { + char *ch; + double xoff = 0.0, yoff = 0.0; + + for (ch = string; *ch != '\000'; ch++) { + meas_char2d(s, &xoff, &yoff, fo, *ch, h, or); + } + + if (xinc != NULL) + *xinc = xoff; + if (yinc != NULL) + *yinc = yoff; +} + +/* ==================================================== */ +/* Misc. support functions. */ + +/* + Matrix Inversion + by Richard Carling + from "Graphics Gems", Academic Press, 1990 +*/ + +/* + * adjoint( original_matrix, inverse_matrix ) + * + * calculate the adjoint of a 3x3 matrix + * + * Let a denote the minor determinant of matrix A obtained by + * ij + * + * deleting the ith row and jth column from A. + * + * i+j + * Let b = (-1) a + * ij ji + * + * The matrix B = (b ) is the adjoint of A + * ij + */ + +#define det2x2(a, b, c, d) (a * d - b * c) + +static void adjoint( +double out[3][3], +double in[3][3] +) { + double a1, a2, a3, b1, b2, b3, c1, c2, c3; + + /* assign to individual variable names to aid */ + /* selecting correct values */ + + a1 = in[0][0]; b1 = in[0][1]; c1 = in[0][2]; + a2 = in[1][0]; b2 = in[1][1]; c2 = in[1][2]; + a3 = in[2][0]; b3 = in[2][1]; c3 = in[2][2]; + + /* row column labeling reversed since we transpose rows & columns */ + + out[0][0] = det2x2(b2, b3, c2, c3); + out[1][0] = - det2x2(a2, a3, c2, c3); + out[2][0] = det2x2(a2, a3, b2, b3); + + out[0][1] = - det2x2(b1, b3, c1, c3); + out[1][1] = det2x2(a1, a3, c1, c3); + out[2][1] = - det2x2(a1, a3, b1, b3); + + out[0][2] = det2x2(b1, b2, c1, c2); + out[1][2] = - det2x2(a1, a2, c1, c2); + out[2][2] = det2x2(a1, a2, b1, b2); +} + +/* + * double = det3x3( a1, a2, a3, b1, b2, b3, c1, c2, c3 ) + * + * calculate the determinant of a 3x3 matrix + * in the form + * + * | a1, b1, c1 | + * | a2, b2, c2 | + * | a3, b3, c3 | + */ + +static double det3x3(double in[3][3]) { + double a1, a2, a3, b1, b2, b3, c1, c2, c3; + double ans; + + a1 = in[0][0]; b1 = in[0][1]; c1 = in[0][2]; + a2 = in[1][0]; b2 = in[1][1]; c2 = in[1][2]; + a3 = in[2][0]; b3 = in[2][1]; c3 = in[2][2]; + + ans = a1 * det2x2(b2, b3, c2, c3) + - b1 * det2x2(a2, a3, c2, c3) + + c1 * det2x2(a2, a3, b2, b3); + return ans; +} + +#define SMALL_NUMBER 1.e-8 +/* + * inverse( original_matrix, inverse_matrix ) + * + * calculate the inverse of a 4x4 matrix + * + * -1 + * A = ___1__ adjoint A + * det A + */ + +/* Return non-zero if not invertable */ +static int inverse3x3( +double out[3][3], +double in[3][3] +) { + int i, j; + double det; + + /* calculate the 3x3 determinant + * if the determinant is zero, + * then the inverse matrix is not unique. + */ + det = det3x3(in); + + if ( fabs(det) < SMALL_NUMBER) + return 1; + + /* calculate the adjoint matrix */ + adjoint(out, in); + + /* scale the adjoint matrix to get the inverse */ + for (i = 0; i < 3; i++) + for(j = 0; j < 3; j++) + out[i][j] /= det; + return 0; +} + +/* ==================================================== */ +// Hershey.C +// extracted from the hershey font +// +// Charles Schwieters 6/14/99 +// Various tweaks and updates by John Stone +// +// font info: +// +//Peter Holzmann, Octopus Enterprises +//USPS: 19611 La Mar Court, Cupertino, CA 95014 +//UUCP: {hplabs!hpdsd,pyramid}!octopus!pete +//Phone: 408/996-7746 +// +//This distribution is made possible through the collective encouragement +//of the Usenet Font Consortium, a mailing list that sprang to life to get +//this accomplished and that will now most likely disappear into the mists +//of time... Thanks are especially due to Jim Hurt, who provided the packed +//font data for the distribution, along with a lot of other help. +// +//This file describes the Hershey Fonts in general, along with a description of +//the other files in this distribution and a simple re-distribution restriction. +// +//USE RESTRICTION: +// This distribution of the Hershey Fonts may be used by anyone for +// any purpose, commercial or otherwise, providing that: +// 1. The following acknowledgements must be distributed with +// the font data: +// - The Hershey Fonts were originally created by Dr. +// A. V. Hershey while working at the U. S. +// National Bureau of Standards. +// - The format of the Font data in this distribution +// was originally created by +// James Hurt +// Cognition, Inc. +// 900 Technology Park Drive +// Billerica, MA 01821 +// (mit-eddie!ci-dandelion!hurt) +// 2. The font data in this distribution may be converted into +// any other format *EXCEPT* the format distributed by +// the U.S. NTIS (which organization holds the rights +// to the distribution and use of the font data in that +// particular format). Not that anybody would really +// *want* to use their format... each point is described +// in eight bytes as "xxx yyy:", where xxx and yyy are +// the coordinate values as ASCII numbers. +// + +/* + * The Hershey romans font in ascii order (first 32 places held by space) + * NOTE: This font has been modified to yield fixed-width numeric + * characters. This makes it possible to produce justified numeric + * text that correctly lines up in columns. + * The font was specifically changed for: + * ' ' (ascii 32), '+' (ascii 43), '-' (ascii 45), and '.' (ascii 46) + */ + +hyfont fonts[] = { +{ + "Rowman Single", + 0.040, /* X scale */ + 0.040, /* Y scale */ + 0.95, /* X spacing extra scale */ + 0.08, /* Line width scale */ + 1.1, /* horizontal offset */ + 11.0, /* vertical offset */ + { + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "MWRFRT RRYQZR[SZRY", + "JZNFNM RVFVM", + "H]SBLb RYBRb RLOZO RKUYU", + "H\\PBP_ RTBT_ RYIWGTFPFMGKIKKLMMNOOUQWRXSYUYXWZT[P[MZKX", + "F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT", + "E_\\O\\N[MZMYNXPVUTXRZP[L[JZIYHWHUISJRQNRMSKSIRGPFNGMIMKNNPQUXWZY[", + "MWRHQGRFSGSIRKQL", + "KYVBTDRGPKOPOTPYR]T`Vb", + "KYNBPDRGTKUPUTTYR]P`Nb", + "JZRLRX RMOWU RWOMU", + "E_RIR[ RIR[R", + "NVSWRXQWRVSWSYQ[", + "E_IR[R", + "NVRVQWRXSWRV", + "G][BIb", + "H\\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF", + "H\\NJPISFS[", + "H\\LKLJMHNGPFTFVGWHXJXLWNUQK[Y[", + "H\\MFXFRNUNWOXPYSYUXXVZS[P[MZLYKW", + "H\\UFKTZT RUFU[", + "H\\WFMFLOMNPMSMVNXPYSYUXXVZS[P[MZLYKW", + "H\\XIWGTFRFOGMJLOLTMXOZR[S[VZXXYUYTXQVOSNRNOOMQLT", + "H\\YFO[ RKFYF", + "H\\PFMGLILKMMONSOVPXRYTYWXYWZT[P[MZLYKWKTLRNPQOUNWMXKXIWGTFPF", + "H\\XMWPURRSQSNRLPKMKLLINGQFRFUGWIXMXRWWUZR[P[MZLX", + "NVROQPRQSPRO RRVQWRXSWRV", + "NVROQPRQSPRO RSWRXQWRVSWSYQ[", + "F^ZIJRZ[", + "E_IO[O RIU[U", + "F^JIZRJ[", + "I[LKLJMHNGPFTFVGWHXJXLWNVORQRT RRYQZR[SZRY", + "E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\\T]Q]O\\L[J", + "I[RFJ[ RRFZ[ RMTWT", + "G\\KFK[ RKFTFWGXHYJYLXNWOTP RKPTPWQXRYTYWXYWZT[K[", + "H]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZV", + "G\\KFK[ RKFRFUGWIXKYNYSXVWXUZR[K[", + "H[LFL[ RLFYF RLPTP RL[Y[", + "HZLFL[ RLFYF RLPTP", + "H]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZVZS RUSZS", + "G]KFK[ RYFY[ RKPYP", + "NVRFR[", + "JZVFVVUYTZR[P[NZMYLVLT", + "G\\KFK[ RYFKT RPOY[", + "HYLFL[ RL[X[", + "F^JFJ[ RJFR[ RZFR[ RZFZ[", + "G]KFK[ RKFY[ RYFY[", + "G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF", + "G\\KFK[ RKFTFWGXHYJYMXOWPTQKQ", + "G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF RSWY]", + "G\\KFK[ RKFTFWGXHYJYLXNWOTPKP RRPY[", + "H\\YIWGTFPFMGKIKKLMMNOOUQWRXSYUYXWZT[P[MZKX", + "JZRFR[ RKFYF", + "G]KFKULXNZQ[S[VZXXYUYF", + "I[JFR[ RZFR[", + "F^HFM[ RRFM[ RRFW[ R\\FW[", + "H\\KFY[ RYFK[", + "I[JFRPR[ RZFRP", + "H\\YFK[ RKFYF RK[Y[", + "KYOBOb RPBPb ROBVB RObVb", + "KYKFY^", + "KYTBTb RUBUb RNBUB RNbUb", + "JZRDJR RRDZR", + "I[Ib[b", + "NVSKQMQORPSORNQO", + "I\\XMX[ RXPVNTMQMONMPLSLUMXOZQ[T[VZXX", + "H[LFL[ RLPNNPMSMUNWPXSXUWXUZS[P[NZLX", + "I[XPVNTMQMONMPLSLUMXOZQ[T[VZXX", + "I\\XFX[ RXPVNTMQMONMPLSLUMXOZQ[T[VZXX", + "I[LSXSXQWOVNTMQMONMPLSLUMXOZQ[T[VZXX", + "MYWFUFSGRJR[ ROMVM", + "I\\XMX]W`VaTbQbOa RXPVNTMQMONMPLSLUMXOZQ[T[VZXX", + "I\\MFM[ RMQPNRMUMWNXQX[", + "NVQFRGSFREQF RRMR[", + "MWRFSGTFSERF RSMS^RaPbNb", + "IZMFM[ RWMMW RQSX[", + "NVRFR[", + "CaGMG[ RGQJNLMOMQNRQR[ RRQUNWMZM\\N]Q][", + "I\\MMM[ RMQPNRMUMWNXQX[", + "I\\QMONMPLSLUMXOZQ[T[VZXXYUYSXPVNTMQM", + "H[LMLb RLPNNPMSMUNWPXSXUWXUZS[P[NZLX", + "I\\XMXb RXPVNTMQMONMPLSLUMXOZQ[T[VZXX", + "KXOMO[ ROSPPRNTMWM", + "J[XPWNTMQMNNMPNRPSUTWUXWXXWZT[Q[NZMX", + "MYRFRWSZU[W[ ROMVM", + "I\\MMMWNZP[S[UZXW RXMX[", + "JZLMR[ RXMR[", + "G]JMN[ RRMN[ RRMV[ RZMV[", + "J[MMX[ RXMM[", + "JZLMR[ RXMR[P_NaLbKb", + "J[XMM[ RMMXM RM[X[", + "KYTBRCQDPFPHQJRKSMSOQQ RRCQEQGRISJTLTNSPORSTTVTXSZR[Q]Q_Ra RQSSU", + "NVRBRb", + "KYPBRCSDTFTHSJRKQMQOSQ RRCSESGRIQJPLPNQPURQTPVPXQZR[S]S_Ra RSSQU", + "F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O", + "JZJFJ[K[KFLFL[M[MFNFN[O[OFPFP[Q[QFRFR[S[SFTFT[U[UFVFV[W[WFXFX[Y[YFZFZ[" + } +}, +{ + "Rowman Double", + 0.040, /* X scale */ + 0.040, /* Y scale */ + 0.95, /* X spacing extra scale */ + 0.08, /* Line width scale */ + 0.0, /* horizontal offset */ + 11.0, /* vertical offset */ + { + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "MXRFRTST RRFSFST RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "I[NFMGMM RNGMM RNFOGMM RWFVGVM RWGVM RWFXGVM", + "H]SFLb RYFRb RLQZQ RKWYW", + "I\\RBR_S_ RRBSBS_ RWIYIWGTFQFNGLILKMMNNVRWSXUXWWYTZQZOYNX RWIVHTGQGNHMIMKNMVQXSYUYWXYWZT[Q[NZLXNX RXXUZ", + "F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT", + "F_\\MZMXNWPUVTXSYQZMZKYJWJUKSLRQOSMTKTISGQFPFNGMIMKNNPQUWXZZ[\\[ R\\M\\NZNXO RYNXPVVUXSZQ[M[KZJYIWIUJSLQQNRMSKSIRG RSHQGPGNH ROGNINKONQQVWXYZZ\\Z\\[", + "MXTHSIRIQHQGRFSFTGTJSLQM RRGRHSHSGRG RSITJ RTHSL", + "KYUBSDQGOKNPNTOYQ]S`UbVb RUBVBTDRGPKOPOTPYR]T`Vb", + "KYNBPDRGTKUPUTTYR]P`NbOb RNBOBQDSGUKVPVTUYS]Q`Ob", + "JZRFQGSQRR RRFRR RRFSGQQRR RMINIVOWO RMIWO RMIMJWNWO RWIVINOMO RWIMO RWIWJMNMO", + "F_RIRZSZ RRISISZ RJQ[Q[R RJQJR[R", + "MXTZS[R[QZQYRXSXTYT\\S^Q_ RRYRZSZSYRY RS[T\\ RTZS^", + "F_JQ[Q[R RJQJR[R", + "MXRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "G^[BIbJb R[B\\BJb", + "H\\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF ROGMJLOLRMWOZ RNYQZSZVY RUZWWXRXOWJUG RVHSGQGNH", + "H\\NJPISFS[ RNJNKPJRHR[S[", + "H\\LKLJMHNGPFTFVGWHXJXLWNUQL[ RLKMKMJNHPGTGVHWJWLVNTQK[ RLZYZY[ RK[Y[", + "H\\MFXFQO RMFMGWG RWFPO RQNSNVOXQYTYUXXVZS[P[MZLYKWLW RPOSOVPXS RTOWQXTXUWXTZ RXVVYSZPZMYLW ROZLX", + "H\\UIU[V[ RVFV[ RVFKVZV RUILV RLUZUZV", + "H\\MFLO RNGMN RMFWFWG RNGWG RMNPMSMVNXPYSYUXXVZS[P[MZLYKWLW RLOMOONSNVOXR RTNWPXSXUWXTZ RXVVYSZPZMYLW ROZLX", + "H\\VGWIXIWGTFRFOGMJLOLTMXOZR[S[VZXXYUYTXQVOSNRNOOMQ RWHTGRGOH RPGNJMOMTNXQZ RMVOYRZSZVYXV RTZWXXUXTWQTO RXSVPSOROOPMS RQONQMT", + "H\\KFYFO[ RKFKGXG RXFN[O[", + "H\\PFMGLILKMMNNPOTPVQWRXTXWWYTZPZMYLWLTMRNQPPTOVNWMXKXIWGTFPF RNGMIMKNMPNTOVPXRYTYWXYWZT[P[MZLYKWKTLRNPPOTNVMWKWIVG RWHTGPGMH RLXOZ RUZXX", + "H\\WPURRSQSNRLPKMKLLINGQFRFUGWIXMXRWWUZR[P[MZLXMXNZ RWMVPSR RWNUQRRQRNQLN RPRMPLMLLMIPG RLKNHQGRGUHWK RSGVIWMWRVWTZ RUYRZPZMY", + "MXRMQNQORPSPTOTNSMRM RRNROSOSNRN RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "MXRMQNQORPSPTOTNSMRM RRNROSOSNRN RTZS[R[QZQYRXSXTYT\\S^Q_ RRYRZSZSYRY RS[T\\ RTZS^", + "F^ZIJRZ[", + "F_JM[M[N RJMJN[N RJU[U[V RJUJV[V", + "F^JIZRJ[", + "I\\LKLJMHNGQFTFWGXHYJYLXNWOUPRQ RLKMKMJNHQGTGWHXJXLWNUORP RMIPG RUGXI RXMTP RRPRTSTSP RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\\T]Q]O\\L[JYHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV", + "H\\RFJ[ RRIK[J[ RRIY[Z[ RRFZ[ RMUWU RLVXV", + "H\\LFL[ RMGMZ RLFTFWGXHYJYMXOWPTQ RMGTGWHXJXMWOTP RMPTPWQXRYTYWXYWZT[L[ RMQTQWRXTXWWYTZMZ", + "H]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZV RZKYKXIWHUGQGOHMKLNLSMVOYQZUZWYXXYVZV", + "H]LFL[ RMGMZ RLFSFVGXIYKZNZSYVXXVZS[L[ RMGSGVHWIXKYNYSXVWXVYSZMZ", + "I\\MFM[ RNGNZ RMFYF RNGYGYF RNPTPTQ RNQTQ RNZYZY[ RM[Y[", + "I[MFM[ RNGN[M[ RMFYF RNGYGYF RNPTPTQ RNQTQ", + "H]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZVZRUR RZKYKXIWHUGQGOHNIMKLNLSMVNXOYQZUZWYXXYVYSUSUR", + "G]KFK[ RKFLFL[K[ RYFXFX[Y[ RYFY[ RLPXP RLQXQ", + "NWRFR[S[ RRFSFS[", + "J[VFVVUYSZQZOYNVMV RVFWFWVVYUZS[Q[OZNYMV", + "H]LFL[M[ RLFMFM[ RZFYFMR RZFMS RPOY[Z[ RQOZ[", + "IZMFM[ RMFNFNZ RNZYZY[ RM[Y[", + "F^JFJ[ RKKK[J[ RKKR[ RJFRX RZFRX RYKR[ RYKY[Z[ RZFZ[", + "G]KFK[ RLIL[K[ RLIY[ RKFXX RXFXX RXFYFY[", + "G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF RQGNHLKKNKSLVNYQZSZVYXVYSYNXKVHSGQG", + "H\\LFL[ RMGM[L[ RLFUFWGXHYJYMXOWPUQMQ RMGUGWHXJXMWOUPMP", + "G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF RQGNHLKKNKSLVNYQZSZVYXVYSYNXKVHSGQG RSXX]Y] RSXTXY]", + "H\\LFL[ RMGM[L[ RLFTFWGXHYJYMXOWPTQMQ RMGTGWHXJXMWOTPMP RRQX[Y[ RSQY[", + "H\\YIWGTFPFMGKIKKLMMNOOTQVRWSXUXXWYTZPZNYMXKX RYIWIVHTGPGMHLILKMMONTPVQXSYUYXWZT[P[MZKX", + "J[RGR[ RSGS[R[ RLFYFYG RLFLGYG", + "G]KFKULXNZQ[S[VZXXYUYF RKFLFLUMXNYQZSZVYWXXUXFYF", + "H\\JFR[ RJFKFRX RZFYFRX RZFR[", + "E_GFM[ RGFHFMX RRFMX RRIM[ RRIW[ RRFWX R]F\\FWX R]FW[", + "H\\KFX[Y[ RKFLFY[ RYFXFK[ RYFL[K[", + "I\\KFRPR[S[ RKFLFSP RZFYFRP RZFSPS[", + "H\\XFK[ RYFL[ RKFYF RKFKGXG RLZYZY[ RK[Y[", + "KYOBOb RPBPb ROBVB RObVb", + "KYKFY^", + "KYTBTb RUBUb RNBUB RNbUb", + "JZPLRITL RMORJWO RRJR[", + "JZJ]Z]", + "MXTFRGQIQLRMSMTLTKSJRJQK RRKRLSLSKRK RRGQK RQIRJ", + "H\\WMW[X[ RWMXMX[ RWPUNSMPMNNLPKSKULXNZP[S[UZWX RWPSNPNNOMPLSLUMXNYPZSZWX", + "H\\LFL[M[ RLFMFM[ RMPONQMTMVNXPYSYUXXVZT[Q[OZMX RMPQNTNVOWPXSXUWXVYTZQZMX", + "I[XPVNTMQMONMPLSLUMXOZQ[T[VZXX RXPWQVOTNQNOONPMSMUNXOYQZTZVYWWXX", + "H\\WFW[X[ RWFXFX[ RWPUNSMPMNNLPKSKULXNZP[S[UZWX RWPSNPNNOMPLSLUMXNYPZSZWX", + "I[MTXTXQWOVNTMQMONMPLSLUMXOZQ[T[VZXX RMSWSWQVOTNQNOONPMSMUNXOYQZTZVYWWXX", + "LZWFUFSGRJR[S[ RWFWGUGSH RTGSJS[ ROMVMVN ROMONVN", + "H\\XMWMW\\V_U`SaQaO`N_L_ RXMX\\W_UaSbPbNaL_ RWPUNSMPMNNLPKSKULXNZP[S[UZWX RWPSNPNNOMPLSLUMXNYPZSZWX", + "H\\LFL[M[ RLFMFM[ RMQPNRMUMWNXQX[ RMQPORNTNVOWQW[X[", + "NWRFQGQHRISITHTGSFRF RRGRHSHSGRG RRMR[S[ RRMSMS[", + "NWRFQGQHRISITHTGSFRF RRGRHSHSGRG RRMRbSb RRMSMSb", + "H[LFL[M[ RLFMFM[ RXMWMMW RXMMX RPTV[X[ RQSX[", + "NWRFR[S[ RRFSFS[", + "CbGMG[H[ RGMHMH[ RHQKNMMPMRNSQS[ RHQKOMNONQORQR[S[ RSQVNXM[M]N^Q^[ RSQVOXNZN\\O]Q][^[", + "H\\LML[M[ RLMMMM[ RMQPNRMUMWNXQX[ RMQPORNTNVOWQW[X[", + "I\\QMONMPLSLUMXOZQ[T[VZXXYUYSXPVNTMQM RQNOONPMSMUNXOYQZTZVYWXXUXSWPVOTNQN", + "H\\LMLbMb RLMMMMb RMPONQMTMVNXPYSYUXXVZT[Q[OZMX RMPQNTNVOWPXSXUWXVYTZQZMX", + "H\\WMWbXb RWMXMXb RWPUNSMPMNNLPKSKULXNZP[S[UZWX RWPSNPNNOMPLSLUMXNYPZSZWX", + "KYOMO[P[ ROMPMP[ RPSQPSNUMXM RPSQQSOUNXNXM", + "J[XPWNTMQMNNMPNRPSUUWV RVUWWWXVZ RWYTZQZNY ROZNXMX RXPWPVN RWOTNQNNO RONNPOR RNQPRUTWUXWXXWZT[Q[NZMX", + "MXRFR[S[ RRFSFS[ ROMVMVN ROMONVN", + "H\\LMLWMZO[R[TZWW RLMMMMWNYPZRZTYWW RWMW[X[ RWMXMX[", + "JZLMR[ RLMMMRY RXMWMRY RXMR[", + "F^IMN[ RIMJMNX RRMNX RRPN[ RRPV[ RRMVX R[MZMVX R[MV[", + "I[LMW[X[ RLMMMX[ RXMWML[ RXMM[L[", + "JZLMR[ RLMMMRY RXMWMRYNb RXMR[ObNb", + "I[VNL[ RXMNZ RLMXM RLMLNVN RNZXZX[ RL[X[", + "KYTBRCQDPFPHQJRKSMSOQQ RRCQEQGRISJTLTNSPORSTTVTXSZR[Q]Q_Ra RQSSUSWRYQZP\\P^Q`RaTb", + "NVRBRb", + "KYPBRCSDTFTHSJRKQMQOSQ RRCSESGRIQJPLPNQPURQTPVPXQZR[S]S_Ra RSSQUQWRYSZT\\T^S`RaPb", + "F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O", + "KYQFOGNINKOMQNSNUMVKVIUGSFQF RQFNIOMSNVKUGQF RSFOGNKQNUMVISF" + } +}, +{ + "Rowman Triple", + 0.040, /* X scale */ + 0.040, /* Y scale */ + 0.96, /* X spacing extra scale */ + 0.08, /* Line width scale */ + 0.3, /* horizontal offset */ + 11.0, /* vertical offset */ + { + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "MXRFQGQIRQ RRFRTST RRFSFST RSFTGTISQ RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "I[NFMGMM RNGMM RNFOGMM RWFVGVM RWGVM RWFXGVM", + "H]SFLb RYFRb RLQZQ RKWYW", + "H\\PBP_ RTBT_ RXKXJWJWLYLYJXHWGTFPFMGKIKLLNOPURWSXUXXWZ RLLMNOOUQWRXT RMGLILKMMONUPXRYTYWXYWZT[P[MZLYKWKUMUMWLWLV", + "F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT", + "E_[O[NZNZP\\P\\N[MZMYNXPVUTXRZP[L[JZIXIUJSPORMSKSIRGPFNGMIMLNOPRTWWZY[[[\\Y\\X RKZJXJUKSLR RRMSI RSKRG RNGMK RNNPQTVWYYZ RN[LZKXKULSPO RMINMQQUVXYZZ[Z\\Y", + "MXTHSIRIQHQGRFSFTGTJSLQM RRGRHSHSGRG RSITJ RTHSL", + "KYUBSDQGOKNPNTOYQ]S`Ub RQHPKOOOUPYQ\\ RSDRFQIPOPUQ[R^S`", + "KYOBQDSGUKVPVTUYS]Q`Ob RSHTKUOUUTYS\\ RQDRFSITOTUS[R^Q`", + "JZRFQGSQRR RRFRR RRFSGQQRR RMINIVOWO RMIWO RMIMJWNWO RWIVINOMO RWIMO RWIWJMNMO", + "F_RIRZSZ RRISISZ RJQ[Q[R RJQJR[R", + "MXTZS[R[QZQYRXSXTYT\\S^Q_ RRYRZSZSYRY RS[T\\ RTZS^", + "F_JQ[Q[R RJQJR[R", + "MXRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "G^[BIbJb R[B\\BJb", + "H\\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF RNHMJLNLSMWNY RVYWWXSXNWJVH RQFOGNIMNMSNXOZQ[ RS[UZVXWSWNVIUGSF", + "H\\QHQ[ RRHRZ RSFS[ RSFPINJ RM[W[ RQZO[ RQYP[ RSYT[ RSZU[", + "H\\LJLKMKMJLJ RLIMINJNKMLLLKKKJLHMGPFTFWGXHYJYLXNUPPRNSLUKXK[ RWHXJXLWN RTFVGWJWLVNTPPR RKYLXNXSYWYYX RNXSZWZXY RNXS[W[XZYXYV", + "H\\LJLKMKMJLJ RLIMINJNKMLLLKKKJLHMGPFTFWGXIXLWNTO RVGWIWLVN RSFUGVIVLUNSO RQOTOVPXRYTYWXYWZT[P[MZLYKWKVLUMUNVNWMXLX RWRXTXWWY RSOUPVQWTWWVZT[ RLVLWMWMVLV", + "H\\SIS[ RTHTZ RUFU[ RUFJUZU RP[X[ RSZQ[ RSYR[ RUYV[ RUZW[", + "H\\MFKPMNPMSMVNXPYSYUXXVZS[P[MZLYKWKVLUMUNVNWMXLX RWPXRXVWX RSMUNVOWRWVVYUZS[ RLVLWMWMVLV RMFWF RMGUG RMHQHUGWF", + "H\\VIVJWJWIVI RWHVHUIUJVKWKXJXIWGUFRFOGMILKKOKULXNZQ[S[VZXXYUYTXQVOSNQNOONPMR RNIMKLOLUMXNY RWXXVXSWQ RRFPGOHNJMNMUNXOZQ[ RS[UZVYWVWSVPUOSN", + "H\\KFKL RYFYIXLTQSSRWR[ RSRRTQWQ[ RXLSQQTPWP[R[ RKJLHNFPFUIWIXHYF RMHNGPGRH RKJLINHPHUI", + "H\\PFMGLILLMNPOTOWNXLXIWGTFPF RNGMIMLNN RVNWLWIVG RPFOGNINLONPO RTOUNVLVIUGTF RPOMPLQKSKWLYMZP[T[WZXYYWYSXQWPTO RMQLSLWMY RWYXWXSWQ RPONPMSMWNZP[ RT[VZWWWSVPTO", + "H\\MWMXNXNWMW RWOVQURSSQSNRLPKMKLLINGQFSFVGXIYLYRXVWXUZR[O[MZLXLWMVNVOWOXNYMY RMPLNLKMI RVHWIXLXRWVVX RQSORNQMNMKNHOGQF RSFUGVIWLWSVWUYTZR[", + "MXRMQNQORPSPTOTNSMRM RRNROSOSNRN RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "MXRMQNQORPSPTOTNSMRM RRNROSOSNRN RTZS[R[QZQYRXSXTYT\\S^Q_ RRYRZSZSYRY RS[T\\ RTZS^", + "F^ZIJRZ[", + "F_JM[M[N RJMJN[N RJU[U[V RJUJV[V", + "F^JIZRJ[", + "I\\MKMJNJNLLLLJMHNGPFTFWGXHYJYLXNWOSQ RWHXIXMWN RTFVGWIWMVOUP RRQRTSTSQRQ RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\\T]Q]O\\L[JYHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV", + "H\\RFKZ RQIW[ RRIX[ RRFY[ RMUVU RI[O[ RT[[[ RKZJ[ RKZM[ RWZU[ RWYV[ RXYZ[", + "G]LFL[ RMGMZ RNFN[ RIFUFXGYHZJZLYNXOUP RXHYJYLXN RUFWGXIXMWOUP RNPUPXQYRZTZWYYXZU[I[ RXRYTYWXY RUPWQXSXXWZU[ RJFLG RKFLH ROFNH RPFNG RLZJ[ RLYK[ RNYO[ RNZP[", + "G\\XIYFYLXIVGTFQFNGLIKKJNJSKVLXNZQ[T[VZXXYV RMILKKNKSLVMX RQFOGMJLNLSMWOZQ[", + "G]LFL[ RMGMZ RNFN[ RIFSFVGXIYKZNZSYVXXVZS[I[ RWIXKYNYSXVWX RSFUGWJXNXSWWUZS[ RJFLG RKFLH ROFNH RPFNG RLZJ[ RLYK[ RNYO[ RNZP[", + "G\\LFL[ RMGMZ RNFN[ RIFYFYL RNPTP RTLTT RI[Y[YU RJFLG RKFLH ROFNH RPFNG RTFYG RVFYH RWFYI RXFYL RTLSPTT RTNRPTR RTOPPTQ RLZJ[ RLYK[ RNYO[ RNZP[ RT[YZ RV[YY RW[YX RX[YU", + "G[LFL[ RMGMZ RNFN[ RIFYFYL RNPTP RTLTT RI[Q[ RJFLG RKFLH ROFNH RPFNG RTFYG RVFYH RWFYI RXFYL RTLSPTT RTNRPTR RTOPPTQ RLZJ[ RLYK[ RNYO[ RNZP[", + "G^XIYFYLXIVGTFQFNGLIKKJNJSKVLXNZQ[T[VZXZY[YS RMILKKNKSLVMX RQFOGMJLNLSMWOZQ[ RXTXY RWSWYVZ RTS\\S RUSWT RVSWU RZSYU R[SYT", + "F^KFK[ RLGLZ RMFM[ RWFW[ RXGXZ RYFY[ RHFPF RTF\\F RMPWP RH[P[ RT[\\[ RIFKG RJFKH RNFMH ROFMG RUFWG RVFWH RZFYH R[FYG RKZI[ RKYJ[ RMYN[ RMZO[ RWZU[ RWYV[ RYYZ[ RYZ[[", + "LXQFQ[ RRGRZ RSFS[ RNFVF RN[V[ ROFQG RPFQH RTFSH RUFSG RQZO[ RQYP[ RSYT[ RSZU[", + "JYSFSWRZQ[ RTGTWSZ RUFUWTZQ[O[MZLXLVMUNUOVOWNXMX RMVMWNWNVMV RPFXF RQFSG RRFSH RVFUH RWFUG", + "F]KFK[ RLGLZ RMFM[ RXGMR RPPW[ RQPX[ RQNY[ RHFPF RUF[F RH[P[ RT[[[ RIFKG RJFKH RNFMH ROFMG RWFXG RZFXG RKZI[ RKYJ[ RMYN[ RMZO[ RWYU[ RWYZ[", + "I[NFN[ ROGOZ RPFP[ RKFSF RK[Z[ZU RLFNG RMFNH RQFPH RRFPG RNZL[ RNYM[ RPYQ[ RPZR[ RU[ZZ RW[ZY RX[ZX RY[ZU", + "E_JFJZ RJFQ[ RKFQX RLFRX RXFQ[ RXFX[ RYGYZ RZFZ[ RGFLF RXF]F RG[M[ RU[][ RHFJG R[FZH R\\FZG RJZH[ RJZL[ RXZV[ RXYW[ RZY[[ RZZ\\[", + "F^KFKZ RKFY[ RLFXX RMFYX RYGY[ RHFMF RVF\\F RH[N[ RIFKG RWFYG R[FYG RKZI[ RKZM[", + "G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF RMILKKNKSLVMX RWXXVYSYNXKWI RQFOGMJLNLSMWOZQ[ RS[UZWWXSXNWJUGSF", + "G]LFL[ RMGMZ RNFN[ RIFUFXGYHZJZMYOXPUQNQ RXHYJYMXO RUFWGXIXNWPUQ RI[Q[ RJFLG RKFLH ROFNH RPFNG RLZJ[ RLYK[ RNYO[ RNZP[", + "G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF RMILKKNKSLVMX RWXXVYSYNXKWI RQFOGMJLNLSMWOZQ[ RS[UZWWXSXNWJUGSF RNXOVQURUTVUXV^W`Y`Z^Z\\ RV\\W^X_Y_ RUXW]X^Y^Z]", + "G]LFL[ RMGMZ RNFN[ RIFUFXGYHZJZLYNXOUPNP RXHYJYLXN RUFWGXIXMWOUP RRPTQUSWYX[Z[[Y[W RWWXYYZZZ RTQURXXYYZY[X RI[Q[ RJFLG RKFLH ROFNH RPFNG RLZJ[ RLYK[ RNYO[ RNZP[", + "H\\XIYFYLXIVGSFPFMGKIKLLNOPURWSXUXXWZ RLLMNOOUQWRXT RMGLILKMMONUPXRYTYWXYWZT[Q[NZLXKUK[LX", + "H\\JFJL RQFQ[ RRGRZ RSFS[ RZFZL RJFZF RN[V[ RKFJL RLFJI RMFJH ROFJG RUFZG RWFZH RXFZI RYFZL RQZO[ RQYP[ RSYT[ RSZU[", + "F^KFKULXNZQ[S[VZXXYUYG RLGLVMX RMFMVNYOZQ[ RHFPF RVF\\F RIFKG RJFKH RNFMH ROFMG RWFYG R[FYG", + "H\\KFR[ RLFRXR[ RMFSX RYGR[ RIFPF RUF[F RJFLH RNFMH ROFMG RWFYG RZFYG", + "F^JFN[ RKFNVN[ RLFOV RRFOVN[ RRFV[ RSFVVV[ RTFWV RZGWVV[ RGFOF RRFTF RWF]F RHFKG RIFKH RMFLH RNFLG RXFZG R\\FZG", + "H\\KFW[ RLFX[ RMFY[ RXGLZ RIFPF RUF[F RI[O[ RT[[[ RJFMH RNFMH ROFMG RVFXG RZFXG RLZJ[ RLZN[ RWZU[ RWYV[ RWYZ[", + "G]JFQQQ[ RKFRQRZ RLFSQS[ RYGSQ RHFOF RVF\\F RN[V[ RIFKG RNFLG RWFYG R[FYG RQZO[ RQYP[ RSYT[ RSZU[", + "H\\YFKFKL RWFK[ RXFL[ RYFM[ RK[Y[YU RLFKL RMFKI RNFKH RPFKG RT[YZ RV[YY RW[YX RX[YU", + "KYOBOb RPBPb ROBVB RObVb", + "KYKFY^", + "KYTBTb RUBUb RNBUB RNbUb", + "JZPLRITL RMORJWO RRJR[", + "JZJ]Z]", + "MXTFRGQIQLRMSMTLTKSJRJQK RRKRLSLSKRK RRGQK RQIRJ", + "I]NPNOOOOQMQMONNPMTMVNWOXQXXYZZ[ RVOWQWXXZ RTMUNVPVXWZZ[[[ RVRUSPTMULWLXMZP[S[UZVX RNUMWMXNZ RUSQTOUNWNXOZP[", + "G\\LFL[MZOZ RMGMY RIFNFNZ RNPONQMSMVNXPYSYUXXVZS[Q[OZNX RWPXRXVWX RSMUNVOWRWVVYUZS[ RJFLG RKFLH", + "H[WQWPVPVRXRXPVNTMQMNNLPKSKULXNZQ[S[VZXX RMPLRLVMX RQMONNOMRMVNYOZQ[", + "H]VFV[[[ RWGWZ RSFXFX[ RVPUNSMQMNNLPKSKULXNZQ[S[UZVX RMPLRLVMX RQMONNOMRMVNYOZQ[ RTFVG RUFVH RXYY[ RXZZ[", + "H[MSXSXQWOVNSMQMNNLPKSKULXNZQ[S[VZXX RWRWQVO RMPLRLVMX RVSVPUNSM RQMONNOMRMVNYOZQ[", + "KYWHWGVGVIXIXGWFTFRGQHPKP[ RRHQKQZ RTFSGRIR[ RMMVM RM[U[ RPZN[ RPYO[ RRYS[ RRZT[", + "I\\XNYOZNYMXMVNUO RQMONNOMQMSNUOVQWSWUVVUWSWQVOUNSMQM ROONQNSOU RUUVSVQUO RQMPNOPOTPVQW RSWTVUTUPTNSM RNUMVLXLYM[N\\Q]U]X^Y_ RN[Q\\U\\X] RLYMZP[U[X\\Y^Y_XaUbObLaK_K^L\\O[ RObMaL_L^M\\O[", + "G^LFL[ RMGMZ RIFNFN[ RNQOOPNRMUMWNXOYRY[ RWOXRXZ RUMVNWQW[ RI[Q[ RT[\\[ RJFLG RKFLH RLZJ[ RLYK[ RNYO[ RNZP[ RWZU[ RWYV[ RYYZ[ RYZ[[", + "LXQFQHSHSFQF RRFRH RQGSG RQMQ[ RRNRZ RNMSMS[ RN[V[ ROMQN RPMQO RQZO[ RQYP[ RSYT[ RSZU[", + "KXRFRHTHTFRF RSFSH RRGTG RRMR^QaPb RSNS]R` ROMTMT]S`RaPbMbLaL_N_NaMaM` RPMRN RQMRO", + "G]LFL[ RMGMZ RIFNFN[ RWNNW RRSY[ RRTX[ RQTW[ RTM[M RI[Q[ RT[[[ RJFLG RKFLH RUMWN RZMWN RLZJ[ RLYK[ RNYO[ RNZP[ RWYU[ RVYZ[", + "LXQFQ[ RRGRZ RNFSFS[ RN[V[ ROFQG RPFQH RQZO[ RQYP[ RSYT[ RSZU[", + "AcFMF[ RGNGZ RCMHMH[ RHQIOJNLMOMQNROSRS[ RQORRRZ ROMPNQQQ[ RSQTOUNWMZM\\N]O^R^[ R\\O]R]Z RZM[N\\Q\\[ RC[K[ RN[V[ RY[a[ RDMFN REMFO RFZD[ RFYE[ RHYI[ RHZJ[ RQZO[ RQYP[ RSYT[ RSZU[ R\\ZZ[ R\\Y[[ R^Y_[ R^Z`[", + "G^LML[ RMNMZ RIMNMN[ RNQOOPNRMUMWNXOYRY[ RWOXRXZ RUMVNWQW[ RI[Q[ RT[\\[ RJMLN RKMLO RLZJ[ RLYK[ RNYO[ RNZP[ RWZU[ RWYV[ RYYZ[ RYZ[[", + "H\\QMNNLPKSKULXNZQ[S[VZXXYUYSXPVNSMQM RMPLRLVMX RWXXVXRWP RQMONNOMRMVNYOZQ[ RS[UZVYWVWRVOUNSM", + "G\\LMLb RMNMa RIMNMNb RNPONQMSMVNXPYSYUXXVZS[Q[OZNX RWPXRXVWX RSMUNVOWRWVVYUZS[ RIbQb RJMLN RKMLO RLaJb RL`Kb RN`Ob RNaPb", + "H\\VNVb RWOWa RUNWNXMXb RVPUNSMQMNNLPKSKULXNZQ[S[UZVX RMPLRLVMX RQMONNOMRMVNYOZQ[ RSb[b RVaTb RV`Ub RX`Yb RXaZb", + "IZNMN[ RONOZ RKMPMP[ RWOWNVNVPXPXNWMUMSNQPPS RK[S[ RLMNN RMMNO RNZL[ RNYM[ RPYQ[ RPZR[", + "J[WOXMXQWOVNTMPMNNMOMQNSPTUUWVXY RNNMQ RNRPSUTWU RXVWZ RMONQPRUSWTXVXYWZU[Q[OZNYMWM[NY", + "KZPHPVQYRZT[V[XZYX RQHQWRY RPHRFRWSZT[ RMMVM", + "G^LMLVMYNZP[S[UZVYWW RMNMWNY RIMNMNWOZP[ RWMW[\\[ RXNXZ RTMYMY[ RJMLN RKMLO RYYZ[ RYZ[[", + "I[LMR[ RMMRY RNMSY RXNSYR[ RJMQM RTMZM RKMNO RPMNN RVMXN RYMXN", + "F^JMN[ RKMNX RLMOX RRMOXN[ RRMV[ RSMVX RRMTMWX RZNWXV[ RGMOM RWM]M RHMKN RNMLN RXMZN R\\MZN", + "H\\LMV[ RMMW[ RNMX[ RWNMZ RJMQM RTMZM RJ[P[ RS[Z[ RKMMN RPMNN RUMWN RYMWN RMZK[ RMZO[ RVZT[ RWZY[", + "H[LMR[ RMMRY RNMSY RXNSYP_NaLbJbIaI_K_KaJaJ` RJMQM RTMZM RKMNO RPMNN RVMXN RYMXN", + "I[VML[ RWMM[ RXMN[ RXMLMLQ RL[X[XW RMMLQ RNMLP ROMLO RQMLN RS[XZ RU[XY RV[XX RW[XW", + "KYTBRCQDPFPHQJRKSMSOQQ RRCQEQGRISJTLTNSPORSTTVTXSZR[Q]Q_Ra RQSSUSWRYQZP\\P^Q`RaTb", + "NVRBRb", + "KYPBRCSDTFTHSJRKQMQOSQ RRCSESGRIQJPLPNQPURQTPVPXQZR[S]S_Ra RSSQUQWRYSZT\\T^S`RaPb", + "F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O", + "KYQFOGNINKOMQNSNUMVKVIUGSFQF RQFNIOMSNVKUGQF RSFOGNKQNUMVISF" + } +}, +{ + "Times Roman", + 0.041, /* X scale */ + 0.041, /* Y scale */ + 0.95, /* X spacing extra scale */ + 0.055, /* Line width scale */ + 0.0, /* horizontal offset */ + 10.5, /* vertical offset */ + { + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "MWRFQHRTSHRF RRHRN RRYQZR[SZRY", + "I[NFMGMM RNGMM RNFOGMM RWFVGVM RWGVM RWFXGVM", + "H]SBLb RYBRb RLOZO RKUYU", + "H\\PBP_ RTBT_ RXIWJXKYJYIWGTFPFMGKIKKLMMNOOUQWRYT RKKMMONUPWQXRYTYXWZT[P[MZKXKWLVMWLX", + "F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT", + "F_[NZO[P\\O\\N[MZMYNXPVUTXRZP[M[JZIXIUJSPORMSKSIRGPFNGMIMKNNPQUXWZZ[[[\\Z\\Y RM[KZJXJUKSMQ RMKNMVXXZZ[", + "NVRFQM RSFQM", + "KYVBTDRGPKOPOTPYR]T`Vb RTDRHQKPPPTQYR\\T`", + "KYNBPDRGTKUPUTTYR]P`Nb RPDRHSKTPTTSYR\\P`", + "JZRLRX RMOWU RWOMU", + "E_RIR[ RIR[R", + "NVSWRXQWRVSWSYQ[", + "E_IR[R", + "NVRVQWRXSWRV", + "G][BIb", + "H\\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF RQFOGNHMJLOLRMWNYOZQ[ RS[UZVYWWXRXOWJVHUGSF", + "H\\NJPISFS[ RRGR[ RN[W[", + "H\\LJMKLLKKKJLHMGPFTFWGXHYJYLXNUPPRNSLUKXK[ RTFVGWHXJXLWNTPPR RKYLXNXSZVZXYYX RNXS[W[XZYXYV", + "H\\LJMKLLKKKJLHMGPFTFWGXIXLWNTOQO RTFVGWIWLVNTO RTOVPXRYTYWXYWZT[P[MZLYKWKVLUMVLW RWQXTXWWYVZT[", + "H\\THT[ RUFU[ RUFJUZU RQ[X[", + "H\\MFKP RKPMNPMSMVNXPYSYUXXVZS[P[MZLYKWKVLUMVLW RSMUNWPXSXUWXUZS[ RMFWF RMGRGWF", + "H\\WIVJWKXJXIWGUFRFOGMILKKOKULXNZQ[S[VZXXYUYTXQVOSNRNOOMQLT RRFPGNIMKLOLUMXOZQ[ RS[UZWXXUXTWQUOSN", + "H\\KFKL RKJLHNFPFUIWIXHYF RLHNGPGUI RYFYIXLTQSSRVR[ RXLSQRSQVQ[", + "H\\PFMGLILLMNPOTOWNXLXIWGTFPF RPFNGMIMLNNPO RTOVNWLWIVGTF RPOMPLQKSKWLYMZP[T[WZXYYWYSXQWPTO RPONPMQLSLWMYNZP[ RT[VZWYXWXSWQVPTO", + "H\\XMWPURRSQSNRLPKMKLLINGQFSFVGXIYLYRXVWXUZR[O[MZLXLWMVNWMX RQSORMPLMLLMIOGQF RSFUGWIXLXRWVVXTZR[", + "NVROQPRQSPRO RRVQWRXSWRV", + "NVROQPRQSPRO RSWRXQWRVSWSYQ[", + "F^ZIJRZ[", + "E_IO[O RIU[U", + "F^JIZRJ[", + "I[MJNKMLLKLJMHNGPFSFVGWHXJXLWNVORQRT RSFUGVHWJWLVNTP RRYQZR[SZRY", + "E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\\T]Q]O\\L[JYHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV", + "H\\RFK[ RRFY[ RRIX[ RMUVU RI[O[ RU[[[", + "G]LFL[ RMFM[ RIFUFXGYHZJZLYNXOUP RUFWGXHYJYLXNWOUP RMPUPXQYRZTZWYYXZU[I[ RUPWQXRYTYWXYWZU[", + "G\\XIYLYFXIVGSFQFNGLIKKJNJSKVLXNZQ[S[VZXXYV RQFOGMILKKNKSLVMXOZQ[", + "G]LFL[ RMFM[ RIFSFVGXIYKZNZSYVXXVZS[I[ RSFUGWIXKYNYSXVWXUZS[", + "G\\LFL[ RMFM[ RSLST RIFYFYLXF RMPSP RI[Y[YUX[", + "G[LFL[ RMFM[ RSLST RIFYFYLXF RMPSP RI[P[", + "G^XIYLYFXIVGSFQFNGLIKKJNJSKVLXNZQ[S[VZXX RQFOGMILKKNKSLVMXOZQ[ RXSX[ RYSY[ RUS\\S", + "F^KFK[ RLFL[ RXFX[ RYFY[ RHFOF RUF\\F RLPXP RH[O[ RU[\\[", + "MXRFR[ RSFS[ ROFVF RO[V[", + "KZUFUWTZR[P[NZMXMVNUOVNW RTFTWSZR[ RQFXF", + "F\\KFK[ RLFL[ RYFLS RQOY[ RPOX[ RHFOF RUF[F RH[O[ RU[[[", + "I[NFN[ ROFO[ RKFRF RK[Z[ZUY[", + "F_KFK[ RLFRX RKFR[ RYFR[ RYFY[ RZFZ[ RHFLF RYF]F RH[N[ RV[][", + "G^LFL[ RMFYY RMHY[ RYFY[ RIFMF RVF\\F RI[O[", + "G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF RQFOGMILKKOKRLVMXOZQ[ RS[UZWXXVYRYOXKWIUGSF", + "G]LFL[ RMFM[ RIFUFXGYHZJZMYOXPUQMQ RUFWGXHYJYMXOWPUQ RI[P[", + "G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF RQFOGMILKKOKRLVMXOZQ[ RS[UZWXXVYRYOXKWIUGSF RNYNXOVQURUTVUXV_W`Y`Z^Z] RUXV\\W^X_Y_Z^", + "G]LFL[ RMFM[ RIFUFXGYHZJZLYNXOUPMP RUFWGXHYJYLXNWOUP RI[P[ RRPTQURXYYZZZ[Y RTQUSWZX[Z[[Y[X", + "H\\XIYFYLXIVGSFPFMGKIKKLMMNOOUQWRYT RKKMMONUPWQXRYTYXWZT[Q[NZLXKUK[LX", + "I\\RFR[ RSFS[ RLFKLKFZFZLYF RO[V[", + "F^KFKULXNZQ[S[VZXXYUYF RLFLUMXOZQ[ RHFOF RVF\\F", + "H\\KFR[ RLFRX RYFR[ RIFOF RUF[F", + "F^JFN[ RKFNV RRFN[ RRFV[ RSFVV RZFV[ RGFNF RWF]F", + "H\\KFX[ RLFY[ RYFK[ RIFOF RUF[F RI[O[ RU[[[", + "H]KFRQR[ RLFSQS[ RZFSQ RIFOF RVF\\F RO[V[", + "H\\XFK[ RYFL[ RLFKLKFYF RK[Y[YUX[", + "KYOBOb RPBPb ROBVB RObVb", + "KYKFY^", + "KYTBTb RUBUb RNBUB RNbUb", + "G]JTROZT RJTRPZT", + "H\\Hb\\b", + "LXPFUL RPFOGUL", + "I]NONPMPMONNPMTMVNWOXQXXYZZ[ RWOWXXZZ[[[ RWQVRPSMTLVLXMZP[S[UZWX RPSNTMVMXNZP[", + "G\\LFL[ RMFM[ RMPONQMSMVNXPYSYUXXVZS[Q[OZMX RSMUNWPXSXUWXUZS[ RIFMF", + "H[WPVQWRXQXPVNTMQMNNLPKSKULXNZQ[S[VZXX RQMONMPLSLUMXOZQ[", + "H]WFW[ RXFX[ RWPUNSMQMNNLPKSKULXNZQ[S[UZWX RQMONMPLSLUMXOZQ[ RTFXF RW[[[", + "H[LSXSXQWOVNTMQMNNLPKSKULXNZQ[S[VZXX RWSWPVN RQMONMPLSLUMXOZQ[", + "KXUGTHUIVHVGUFSFQGPIP[ RSFRGQIQ[ RMMUM RM[T[", + "I\\QMONNOMQMSNUOVQWSWUVVUWSWQVOUNSMQM RONNPNTOV RUVVTVPUN RVOWNYMYNWN RNUMVLXLYM[P\\U\\X]Y^ RLYMZP[U[X\\Y^Y_XaUbObLaK_K^L\\O[", + "G]LFL[ RMFM[ RMPONRMTMWNXPX[ RTMVNWPW[ RIFMF RI[P[ RT[[[", + "MXRFQGRHSGRF RRMR[ RSMS[ ROMSM RO[V[", + "MXSFRGSHTGSF RTMT_SaQbObNaN`O_P`Oa RSMS_RaQb RPMTM", + "G\\LFL[ RMFM[ RWMMW RRSX[ RQSW[ RIFMF RTMZM RI[P[ RT[Z[", + "MXRFR[ RSFS[ ROFSF RO[V[", + "BcGMG[ RHMH[ RHPJNMMOMRNSPS[ ROMQNRPR[ RSPUNXMZM]N^P^[ RZM\\N]P][ RDMHM RD[K[ RO[V[ RZ[a[", + "G]LML[ RMMM[ RMPONRMTMWNXPX[ RTMVNWPW[ RIMMM RI[P[ RT[[[", + "H\\QMNNLPKSKULXNZQ[S[VZXXYUYSXPVNSMQM RQMONMPLSLUMXOZQ[ RS[UZWXXUXSWPUNSM", + "G\\LMLb RMMMb RMPONQMSMVNXPYSYUXXVZS[Q[OZMX RSMUNWPXSXUWXUZS[ RIMMM RIbPb", + "H\\WMWb RXMXb RWPUNSMQMNNLPKSKULXNZQ[S[UZWX RQMONMPLSLUMXOZQ[ RTb[b", + "IZNMN[ ROMO[ ROSPPRNTMWMXNXOWPVOWN RKMOM RK[R[", + "J[WOXMXQWOVNTMPMNNMOMQNRPSUUWVXW RMPNQPRUTWUXVXYWZU[Q[OZNYMWM[NY", + "KZPFPWQZS[U[WZXX RQFQWRZS[ RMMUM", + "G]LMLXMZP[R[UZWX RMMMXNZP[ RWMW[ RXMX[ RIMMM RTMXM RW[[[", + "I[LMR[ RMMRY RXMR[ RJMPM RTMZM", + "F^JMN[ RKMNX RRMN[ RRMV[ RSMVX RZMV[ RGMNM RWM]M", + "H\\LMW[ RMMX[ RXML[ RJMPM RTMZM RJ[P[ RT[Z[", + "H[LMR[ RMMRY RXMR[P_NaLbKbJaK`La RJMPM RTMZM", + "I[WML[ RXMM[ RMMLQLMXM RL[X[XWW[", + "KYTBRCQDPFPHQJRKSMSOQQ RRCQEQGRISJTLTNSPORSTTVTXSZR[Q]Q_Ra RQSSUSWRYQZP\\P^Q`RaTb", + "NVRBRb", + "KYPBRCSDTFTHSJRKQMQOSQ RRCSESGRIQJPLPNQPURQTPVPXQZR[S]S_Ra RSSQUQWRYSZT\\T^S`RaPb", + "F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O", + "JZJFJ[K[KFLFL[M[MFNFN[O[OFPFP[Q[QFRFR[S[SFTFT[U[UFVFV[W[WFXFX[Y[YFZFZ[" + } +}, +{ + "Times Roman Bold", + 0.041, /* X scale */ + 0.041, /* Y scale */ + 0.95, /* X spacing extra scale */ + 0.055, /* Line width scale */ + 0.0, /* horizontal offset */ + 10.5, /* vertical offset */ + { + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "MXRFQGQIRQ RRFRTST RRFSFST RSFTGTISQ RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "I[NFMGMM RNGMM RNFOGMM RWFVGVM RWGVM RWFXGVM", + "H]SBLb RYBRb RLOZO RKUYU", + "H\\PBP_ RTBT_ RXKXJWJWLYLYJXHWGTFPFMGKIKLLNOPURWSXUXXWZ RLLMNOOUQWRXT RMGLILKMMONUPXRYTYWXYWZT[P[MZLYKWKUMUMWLWLV", + "F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT", + "E_[O[NZNZP\\P\\N[MZMYNXPVUTXRZP[L[JZIXIUJSPORMSKSIRGPFNGMIMLNOPRTWWZY[[[\\Y\\X RKZJXJUKSLR RRMSI RSKRG RNGMK RNNPQTVWYYZ RN[LZKXKULSPO RMINMQQUVXYZZ[Z\\Y", + "NWSFRGRM RSGRM RSFTGRM", + "KYUBSDQGOKNPNTOYQ]S`Ub RQHPKOOOUPYQ\\ RSDRFQIPOPUQ[R^S`", + "KYOBQDSGUKVPVTUYS]Q`Ob RSHTKUOUUTYS\\ RQDRFSITOTUS[R^Q`", + "JZRFQGSQRR RRFRR RRFSGQQRR RMINIVOWO RMIWO RMIMJWNWO RWIVINOMO RWIMO RWIWJMNMO", + "F_RIRZSZ RRISISZ RJQ[Q[R RJQJR[R", + "MXTZS[R[QZQYRXSXTYT\\S^Q_ RRYRZSZSYRY RS[T\\ RTZS^", + "E_IR[R", + "MXRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "G^[BIbJb R[B\\BJb", + "H\\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF RNHMJLNLSMWNY RVYWWXSXNWJVH RQFOGNIMNMSNXOZQ[ RS[UZVXWSWNVIUGSF", + "H\\QHQ[ RRHRZ RSFS[ RSFPINJ RM[W[ RQZO[ RQYP[ RSYT[ RSZU[", + "H\\LJLKMKMJLJ RLIMINJNKMLLLKKKJLHMGPFTFWGXHYJYLXNUPPRNSLUKXK[ RWHXJXLWN RTFVGWJWLVNTPPR RKYLXNXSYWYYX RNXSZWZXY RNXS[W[XZYXYV", + "H\\LJLKMKMJLJ RLIMINJNKMLLLKKKJLHMGPFTFWGXIXLWNTO RVGWIWLVN RSFUGVIVLUNSO RQOTOVPXRYTYWXYWZT[P[MZLYKWKVLUMUNVNWMXLX RWRXTXWWY RSOUPVQWTWWVZT[ RLVLWMWMVLV", + "H\\SIS[ RTHTZ RUFU[ RUFJUZU RP[X[ RSZQ[ RSYR[ RUYV[ RUZW[", + "H\\MFKPMNPMSMVNXPYSYUXXVZS[P[MZLYKWKVLUMUNVNWMXLX RWPXRXVWX RSMUNVOWRWVVYUZS[ RLVLWMWMVLV RMFWF RMGUG RMHQHUGWF", + "H\\VIVJWJWIVI RWHVHUIUJVKWKXJXIWGUFRFOGMILKKOKULXNZQ[S[VZXXYUYTXQVOSNQNOONPMR RNIMKLOLUMXNY RWXXVXSWQ RRFPGOHNJMNMUNXOZQ[ RS[UZVYWVWSVPUOSN", + "H\\KFKL RYFYIXLTQSSRWR[ RSRRTQWQ[ RXLSQQTPWP[R[ RKJLHNFPFUIWIXHYF RMHNGPGRH RKJLINHPHUI", + "H\\PFMGLILLMNPOTOWNXLXIWGTFPF RNGMIMLNN RVNWLWIVG RPFOGNINLONPO RTOUNVLVIUGTF RPOMPLQKSKWLYMZP[T[WZXYYWYSXQWPTO RMQLSLWMY RWYXWXSWQ RPONPMSMWNZP[ RT[VZWWWSVPTO", + "H\\MWMXNXNWMW RWOVQURSSQSNRLPKMKLLINGQFSFVGXIYLYRXVWXUZR[O[MZLXLWMVNVOWOXNYMY RMPLNLKMI RVHWIXLXRWVVX RQSORNQMNMKNHOGQF RSFUGVIWLWSVWUYTZR[", + "MXRMQNQORPSPTOTNSMRM RRNROSOSNRN RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "MXRMQNQORPSPTOTNSMRM RRNROSOSNRN RTZS[R[QZQYRXSXTYT\\S^Q_ RRYRZSZSYRY RS[T\\ RTZS^", + "F^ZIJRZ[", + "F_JM[M[N RJMJN[N RJU[U[V RJUJV[V", + "F^JIZRJ[", + "I\\MKMJNJNLLLLJMHNGPFTFWGXHYJYLXNWOSQ RWHXIXMWN RTFVGWIWMVOUP RRQRTSTSQRQ RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\\T]Q]O\\L[JYHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV", + "H\\RFKZ RQIW[ RRIX[ RRFY[ RMUVU RI[O[ RT[[[ RKZJ[ RKZM[ RWZU[ RWYV[ RXYZ[", + "G]LFL[ RMGMZ RNFN[ RIFUFXGYHZJZLYNXOUP RXHYJYLXN RUFWGXIXMWOUP RNPUPXQYRZTZWYYXZU[I[ RXRYTYWXY RUPWQXSXXWZU[ RJFLG RKFLH ROFNH RPFNG RLZJ[ RLYK[ RNYO[ RNZP[", + "G\\XIYFYLXIVGTFQFNGLIKKJNJSKVLXNZQ[T[VZXXYV RMILKKNKSLVMX RQFOGMJLNLSMWOZQ[", + "G]LFL[ RMGMZ RNFN[ RIFSFVGXIYKZNZSYVXXVZS[I[ RWIXKYNYSXVWX RSFUGWJXNXSWWUZS[ RJFLG RKFLH ROFNH RPFNG RLZJ[ RLYK[ RNYO[ RNZP[", + "G\\LFL[ RMGMZ RNFN[ RIFYFYL RNPTP RTLTT RI[Y[YU RJFLG RKFLH ROFNH RPFNG RTFYG RVFYH RWFYI RXFYL RTLSPTT RTNRPTR RTOPPTQ RLZJ[ RLYK[ RNYO[ RNZP[ RT[YZ RV[YY RW[YX RX[YU", + "G[LFL[ RMGMZ RNFN[ RIFYFYL RNPTP RTLTT RI[Q[ RJFLG RKFLH ROFNH RPFNG RTFYG RVFYH RWFYI RXFYL RTLSPTT RTNRPTR RTOPPTQ RLZJ[ RLYK[ RNYO[ RNZP[", + "G^XIYFYLXIVGTFQFNGLIKKJNJSKVLXNZQ[T[VZXZY[YS RMILKKNKSLVMX RQFOGMJLNLSMWOZQ[ RXTXY RWSWYVZ RTS\\S RUSWT RVSWU RZSYU R[SYT", + "F^KFK[ RLGLZ RMFM[ RWFW[ RXGXZ RYFY[ RHFPF RTF\\F RMPWP RH[P[ RT[\\[ RIFKG RJFKH RNFMH ROFMG RUFWG RVFWH RZFYH R[FYG RKZI[ RKYJ[ RMYN[ RMZO[ RWZU[ RWYV[ RYYZ[ RYZ[[", + "LXQFQ[ RRGRZ RSFS[ RNFVF RN[V[ ROFQG RPFQH RTFSH RUFSG RQZO[ RQYP[ RSYT[ RSZU[", + "JZSFSWRZQ[ RTGTWSZ RUFUWTZQ[O[MZLXLVMUNUOVOWNXMX RMVMWNWNVMV RPFXF RQFSG RRFSH RVFUH RWFUG", + "F\\KFK[ RLGLZ RMFM[ RXGMR RPPW[ RQPX[ RQNY[ RHFPF RUF[F RH[P[ RT[[[ RIFKG RJFKH RNFMH ROFMG RWFXG RZFXG RKZI[ RKYJ[ RMYN[ RMZO[ RWYU[ RWYZ[", + "I[NFN[ ROGOZ RPFP[ RKFSF RK[Z[ZU RLFNG RMFNH RQFPH RRFPG RNZL[ RNYM[ RPYQ[ RPZR[ RU[ZZ RW[ZY RX[ZX RY[ZU", + "E_JFJZ RJFQ[ RKFQX RLFRX RXFQ[ RXFX[ RYGYZ RZFZ[ RGFLF RXF]F RG[M[ RU[][ RHFJG R[FZH R\\FZG RJZH[ RJZL[ RXZV[ RXYW[ RZY[[ RZZ\\[", + "F^KFKZ RKFY[ RLFXX RMFYX RYGY[ RHFMF RVF\\F RH[N[ RIFKG RWFYG R[FYG RKZI[ RKZM[", + "G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF RMILKKNKSLVMX RWXXVYSYNXKWI RQFOGMJLNLSMWOZQ[ RS[UZWWXSXNWJUGSF", + "G]LFL[ RMGMZ RNFN[ RIFUFXGYHZJZMYOXPUQNQ RXHYJYMXO RUFWGXIXNWPUQ RI[Q[ RJFLG RKFLH ROFNH RPFNG RLZJ[ RLYK[ RNYO[ RNZP[", + "G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF RMILKKNKSLVMX RWXXVYSYNXKWI RQFOGMJLNLSMWOZQ[ RS[UZWWXSXNWJUGSF RNXOVQURUTVUXV^W`Y`Z^Z\\ RV\\W^X_Y_ RUXW]X^Y^Z]", + "G]LFL[ RMGMZ RNFN[ RIFUFXGYHZJZLYNXOUPNP RXHYJYLXN RUFWGXIXMWOUP RRPTQUSWYX[Z[[Y[W RWWXYYZZZ RTQURXXYYZY[X RI[Q[ RJFLG RKFLH ROFNH RPFNG RLZJ[ RLYK[ RNYO[ RNZP[", + "H\\XIYFYLXIVGSFPFMGKIKLLNOPURWSXUXXWZ RLLMNOOUQWRXT RMGLILKMMONUPXRYTYWXYWZT[Q[NZLXKUK[LX", + "H\\JFJL RQFQ[ RRGRZ RSFS[ RZFZL RJFZF RN[V[ RKFJL RLFJI RMFJH ROFJG RUFZG RWFZH RXFZI RYFZL RQZO[ RQYP[ RSYT[ RSZU[", + "F^KFKULXNZQ[S[VZXXYUYG RLGLVMX RMFMVNYOZQ[ RHFPF RVF\\F RIFKG RJFKH RNFMH ROFMG RWFYG R[FYG", + "H\\KFR[ RLFRXR[ RMFSX RYGR[ RIFPF RUF[F RJFLH RNFMH ROFMG RWFYG RZFYG", + "F^JFN[ RKFNVN[ RLFOV RRFOVN[ RRFV[ RSFVVV[ RTFWV RZGWVV[ RGFOF RRFTF RWF]F RHFKG RIFKH RMFLH RNFLG RXFZG R\\FZG", + "H\\KFW[ RLFX[ RMFY[ RXGLZ RIFPF RUF[F RI[O[ RT[[[ RJFMH RNFMH ROFMG RVFXG RZFXG RLZJ[ RLZN[ RWZU[ RWYV[ RWYZ[", + "G]JFQQQ[ RKFRQRZ RLFSQS[ RYGSQ RHFOF RVF\\F RN[V[ RIFKG RNFLG RWFYG R[FYG RQZO[ RQYP[ RSYT[ RSZU[", + "H\\YFKFKL RWFK[ RXFL[ RYFM[ RK[Y[YU RLFKL RMFKI RNFKH RPFKG RT[YZ RV[YY RW[YX RX[YU", + "KYOBOb RPBPb ROBVB RObVb", + "KYKFY^", + "KYTBTb RUBUb RNBUB RNbUb", + "G]JTROZT RJTRPZT", + "H\\Hb\\b", + "LXPFUL RPFOGUL", + "I]NPNOOOOQMQMONNPMTMVNWOXQXXYZZ[ RVOWQWXXZ RTMUNVPVXWZZ[[[ RVRUSPTMULWLXMZP[S[UZVX RNUMWMXNZ RUSQTOUNWNXOZP[", + "G\\LFL[MZOZ RMGMY RIFNFNZ RNPONQMSMVNXPYSYUXXVZS[Q[OZNX RWPXRXVWX RSMUNVOWRWVVYUZS[ RJFLG RKFLH", + "H[WQWPVPVRXRXPVNTMQMNNLPKSKULXNZQ[S[VZXX RMPLRLVMX RQMONNOMRMVNYOZQ[", + "H]VFV[[[ RWGWZ RSFXFX[ RVPUNSMQMNNLPKSKULXNZQ[S[UZVX RMPLRLVMX RQMONNOMRMVNYOZQ[ RTFVG RUFVH RXYY[ RXZZ[", + "H[MSXSXQWOVNSMQMNNLPKSKULXNZQ[S[VZXX RWRWQVO RMPLRLVMX RVSVPUNSM RQMONNOMRMVNYOZQ[", + "KYWHWGVGVIXIXGWFTFRGQHPKP[ RRHQKQZ RTFSGRIR[ RMMVM RM[U[ RPZN[ RPYO[ RRYS[ RRZT[", + "I\\XNYOZNYMXMVNUO RQMONNOMQMSNUOVQWSWUVVUWSWQVOUNSMQM ROONQNSOU RUUVSVQUO RQMPNOPOTPVQW RSWTVUTUPTNSM RNUMVLXLYM[N\\Q]U]X^Y_ RN[Q\\U\\X] RLYMZP[U[X\\Y^Y_XaUbObLaK_K^L\\O[ RObMaL_L^M\\O[", + "G^LFL[ RMGMZ RIFNFN[ RNQOOPNRMUMWNXOYRY[ RWOXRXZ RUMVNWQW[ RI[Q[ RT[\\[ RJFLG RKFLH RLZJ[ RLYK[ RNYO[ RNZP[ RWZU[ RWYV[ RYYZ[ RYZ[[", + "LXQFQHSHSFQF RRFRH RQGSG RQMQ[ RRNRZ RNMSMS[ RN[V[ ROMQN RPMQO RQZO[ RQYP[ RSYT[ RSZU[", + "KXRFRHTHTFRF RSFSH RRGTG RRMR^QaPb RSNS]R` ROMTMT]S`RaPbMbLaL_N_NaMaM` RPMRN RQMRO", + "G]LFL[ RMGMZ RIFNFN[ RWNNW RRSY[ RRTX[ RQTW[ RTM[M RI[Q[ RT[[[ RJFLG RKFLH RUMWN RZMWN RLZJ[ RLYK[ RNYO[ RNZP[ RWYU[ RVYZ[", + "LXQFQ[ RRGRZ RNFSFS[ RN[V[ ROFQG RPFQH RQZO[ RQYP[ RSYT[ RSZU[", + "AcFMF[ RGNGZ RCMHMH[ RHQIOJNLMOMQNROSRS[ RQORRRZ ROMPNQQQ[ RSQTOUNWMZM\\N]O^R^[ R\\O]R]Z RZM[N\\Q\\[ RC[K[ RN[V[ RY[a[ RDMFN REMFO RFZD[ RFYE[ RHYI[ RHZJ[ RQZO[ RQYP[ RSYT[ RSZU[ R\\ZZ[ R\\Y[[ R^Y_[ R^Z`[", + "G^LML[ RMNMZ RIMNMN[ RNQOOPNRMUMWNXOYRY[ RWOXRXZ RUMVNWQW[ RI[Q[ RT[\\[ RJMLN RKMLO RLZJ[ RLYK[ RNYO[ RNZP[ RWZU[ RWYV[ RYYZ[ RYZ[[", + "H\\QMNNLPKSKULXNZQ[S[VZXXYUYSXPVNSMQM RMPLRLVMX RWXXVXRWP RQMONNOMRMVNYOZQ[ RS[UZVYWVWRVOUNSM", + "G\\LMLb RMNMa RIMNMNb RNPONQMSMVNXPYSYUXXVZS[Q[OZNX RWPXRXVWX RSMUNVOWRWVVYUZS[ RIbQb RJMLN RKMLO RLaJb RL`Kb RN`Ob RNaPb", + "H\\VNVb RWOWa RUNWNXMXb RVPUNSMQMNNLPKSKULXNZQ[S[UZVX RMPLRLVMX RQMONNOMRMVNYOZQ[ RSb[b RVaTb RV`Ub RX`Yb RXaZb", + "IZNMN[ RONOZ RKMPMP[ RWOWNVNVPXPXNWMUMSNQPPS RK[S[ RLMNN RMMNO RNZL[ RNYM[ RPYQ[ RPZR[", + "J[WOXMXQWOVNTMPMNNMOMQNSPTUUWVXY RNNMQ RNRPSUTWU RXVWZ RMONQPRUSWTXVXYWZU[Q[OZNYMWM[NY", + "KZPHPVQYRZT[V[XZYX RQHQWRY RPHRFRWSZT[ RMMVM", + "G^LMLVMYNZP[S[UZVYWW RMNMWNY RIMNMNWOZP[ RWMW[\\[ RXNXZ RTMYMY[ RJMLN RKMLO RYYZ[ RYZ[[", + "I[LMR[ RMMRY RNMSY RXNSYR[ RJMQM RTMZM RKMNO RPMNN RVMXN RYMXN", + "F^JMN[ RKMNX RLMOX RRMOXN[ RRMV[ RSMVX RRMTMWX RZNWXV[ RGMOM RWM]M RHMKN RNMLN RXMZN R\\MZN", + "H\\LMV[ RMMW[ RNMX[ RWNMZ RJMQM RTMZM RJ[P[ RS[Z[ RKMMN RPMNN RUMWN RYMWN RMZK[ RMZO[ RVZT[ RWZY[", + "H[LMR[ RMMRY RNMSY RXNSYP_NaLbJbIaI_K_KaJaJ` RJMQM RTMZM RKMNO RPMNN RVMXN RYMXN", + "I[VML[ RWMM[ RXMN[ RXMLMLQ RL[X[XW RMMLQ RNMLP ROMLO RQMLN RS[XZ RU[XY RV[XX RW[XW", + "KYTBRCQDPFPHQJRKSMSOQQ RRCQEQGRISJTLTNSPORSTTVTXSZR[Q]Q_Ra RQSSUSWRYQZP\\P^Q`RaTb", + "NVRBRb", + "KYPBRCSDTFTHSJRKQMQOSQ RRCSESGRIQJPLPNQPURQTPVPXQZR[S]S_Ra RSSQUQWRYSZT\\T^S`RaPb", + "F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O", + "JZJFJ[K[KFLFL[M[MFNFN[O[OFPFP[Q[QFRFR[S[SFTFT[U[UFVFV[W[WFXFX[Y[YFZFZ[" + } +}, +{ + "Futura Light", + 0.041, /* X scale */ + 0.041, /* Y scale */ + 0.95, /* X spacing extra scale */ + 0.08, /* Line width scale */ + 0.9, /* horizontal offset */ + 10.5, /* vertical offset */ + { + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "MWRFRT RRYQZR[SZRY", + "JZNFNM RVFVM", + "H]SBLb RYBRb RLOZO RKUYU", + "H\\PBP_ RTBT_ RYIWGTFPFMGKIKKLMMNOOUQWRXSYUYXWZT[P[MZKX", + "F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT", + "E_\\O\\N[MZMYNXPVUTXRZP[L[JZIYHWHUISJRQNRMSKSIRGPFNGMIMKNNPQUXWZY[[[\\Z\\Y", + "MWRHQGRFSGSIRKQL", + "KYVBTDRGPKOPOTPYR]T`Vb", + "KYNBPDRGTKUPUTTYR]P`Nb", + "JZRLRX RMOWU RWOMU", + "E_RIR[ RIR[R", + "NVSWRXQWRVSWSYQ[", + "E_IR[R", + "NVRVQWRXSWRV", + "G][BIb", + "H\\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF", + "H\\NJPISFS[", + "H\\LKLJMHNGPFTFVGWHXJXLWNUQK[Y[", + "H\\MFXFRNUNWOXPYSYUXXVZS[P[MZLYKW", + "H\\UFKTZT RUFU[", + "H\\WFMFLOMNPMSMVNXPYSYUXXVZS[P[MZLYKW", + "H\\XIWGTFRFOGMJLOLTMXOZR[S[VZXXYUYTXQVOSNRNOOMQLT", + "H\\YFO[ RKFYF", + "H\\PFMGLILKMMONSOVPXRYTYWXYWZT[P[MZLYKWKTLRNPQOUNWMXKXIWGTFPF", + "H\\XMWPURRSQSNRLPKMKLLINGQFRFUGWIXMXRWWUZR[P[MZLX", + "NVROQPRQSPRO RRVQWRXSWRV", + "NVROQPRQSPRO RSWRXQWRVSWSYQ[", + "F^ZIJRZ[", + "E_IO[O RIU[U", + "F^JIZRJ[", + "I[LKLJMHNGPFTFVGWHXJXLWNVORQRT RRYQZR[SZRY", + "E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\\T]Q]O\\L[JYHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV", + "I[RFJ[ RRFZ[ RMTWT", + "G\\KFK[ RKFTFWGXHYJYLXNWOTP RKPTPWQXRYTYWXYWZT[K[", + "H]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZV", + "G\\KFK[ RKFRFUGWIXKYNYSXVWXUZR[K[", + "H[LFL[ RLFYF RLPTP RL[Y[", + "HZLFL[ RLFYF RLPTP", + "H]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZVZS RUSZS", + "G]KFK[ RYFY[ RKPYP", + "NVRFR[", + "JZVFVVUYTZR[P[NZMYLVLT", + "G\\KFK[ RYFKT RPOY[", + "HYLFL[ RL[X[", + "F^JFJ[ RJFR[ RZFR[ RZFZ[", + "G]KFK[ RKFY[ RYFY[", + "G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF", + "G\\KFK[ RKFTFWGXHYJYMXOWPTQKQ", + "G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF RSWY]", + "G\\KFK[ RKFTFWGXHYJYLXNWOTPKP RRPY[", + "H\\YIWGTFPFMGKIKKLMMNOOUQWRXSYUYXWZT[P[MZKX", + "JZRFR[ RKFYF", + "G]KFKULXNZQ[S[VZXXYUYF", + "I[JFR[ RZFR[", + "F^HFM[ RRFM[ RRFW[ R\\FW[", + "H\\KFY[ RYFK[", + "I[JFRPR[ RZFRP", + "H\\YFK[ RKFYF RK[Y[", + "KYOBOb RPBPb ROBVB RObVb", + "KYKFY^", + "KYTBTb RUBUb RNBUB RNbUb", + "JZRDJR RRDZR", + "I[Ib[b", + "NVSKQMQORPSORNQO", + "I\\XMX[ RXPVNTMQMONMPLSLUMXOZQ[T[VZXX", + "H[LFL[ RLPNNPMSMUNWPXSXUWXUZS[P[NZLX", + "I[XPVNTMQMONMPLSLUMXOZQ[T[VZXX", + "I\\XFX[ RXPVNTMQMONMPLSLUMXOZQ[T[VZXX", + "I[LSXSXQWOVNTMQMONMPLSLUMXOZQ[T[VZXX", + "MYWFUFSGRJR[ ROMVM", + "I\\XMX]W`VaTbQbOa RXPVNTMQMONMPLSLUMXOZQ[T[VZXX", + "I\\MFM[ RMQPNRMUMWNXQX[", + "NVQFRGSFREQF RRMR[", + "MWRFSGTFSERF RSMS^RaPbNb", + "IZMFM[ RWMMW RQSX[", + "NVRFR[", + "CaGMG[ RGQJNLMOMQNRQR[ RRQUNWMZM\\N]Q][", + "I\\MMM[ RMQPNRMUMWNXQX[", + "I\\QMONMPLSLUMXOZQ[T[VZXXYUYSXPVNTMQM", + "H[LMLb RLPNNPMSMUNWPXSXUWXUZS[P[NZLX", + "I\\XMXb RXPVNTMQMONMPLSLUMXOZQ[T[VZXX", + "KXOMO[ ROSPPRNTMWM", + "J[XPWNTMQMNNMPNRPSUTWUXWXXWZT[Q[NZMX", + "MYRFRWSZU[W[ ROMVM", + "I\\MMMWNZP[S[UZXW RXMX[", + "JZLMR[ RXMR[", + "G]JMN[ RRMN[ RRMV[ RZMV[", + "J[MMX[ RXMM[", + "JZLMR[ RXMR[P_NaLbKb", + "J[XMM[ RMMXM RM[X[", + "KYTBRCQDPFPHQJRKSMSOQQ RRCQEQGRISJTLTNSPORSTTVTXSZR[Q]Q_Ra RQSSUSWRYQZP\\P^Q`RaTb", + "NVRBRb", + "KYPBRCSDTFTHSJRKQMQOSQ RRCSESGRIQJPLPNQPURQTPVPXQZR[S]S_Ra RSSQUQWRYSZT\\T^S`RaPb", + "F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O", + "JZJFJ[K[KFLFL[M[MFNFN[O[OFPFP[Q[QFRFR[S[SFTFT[U[UFVFV[W[WFXFX[Y[YFZFZ[", + } +}, +{ + "Futura Medium", + 0.041, /* X scale */ + 0.041, /* Y scale */ + 0.95, /* X spacing extra scale */ + 0.065, /* Line width scale */ + 0.1, /* horizontal offset */ + 10.5, /* vertical offset */ + { + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "JZ", + "MXRFRTST RRFSFST RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "I[NFMGMM RNGMM RNFOGMM RWFVGVM RWGVM RWFXGVM", + "H]SBLb RYBRb RLOZO RKUYU", + "I\\RBR_S_ RRBSBS_ RWIYIWGTFQFNGLILKMMNNVRWSXUXWWYTZQZOYNX RWIVHTGQGNHMIMKNMVQXSYUYWXYWZT[Q[NZLXNX RXXUZ", + "F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT", + "F_[NZO[P\\O\\N[MZMYNXPVUTXRZP[M[JZIXIUJSPORMSKSIRGPFNGMIMKNNPQUXWZZ[[[\\Z\\Y RM[KZJXJUKSMQ RMKNMVXXZZ[", + "NWSFRGRM RSGRM RSFTGRM", + "KYVBTDRGPKOPOTPYR]T`Vb RTDRHQKPPPTQYR\\T`", + "KYNBPDRGTKUPUTTYR]P`Nb RPDRHSKTPTTSYR\\P`", + "JZRFQGSQRR RRFRR RRFSGQQRR RMINIVOWO RMIWO RMIMJWNWO RWIVINOMO RWIMO RWIWJMNMO", + "F_RIRZSZ RRISISZ RJQ[Q[R RJQJR[R", + "MXTZS[R[QZQYRXSXTYT\\S^Q_ RRYRZSZSYRY RS[T\\ RTZS^", + "E_IR[R", + "MXRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "G^[BIbJb R[B\\BJb", + "H\\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF ROGMJLOLRMWOZ RNYQZSZVY RUZWWXRXOWJUG RVHSGQGNH", + "H\\NJPISFS[ RNJNKPJRHR[S[", + "H\\LKLJMHNGPFTFVGWHXJXLWNUQL[ RLKMKMJNHPGTGVHWJWLVNTQK[ RLZYZY[ RK[Y[", + "H\\MFXFQO RMFMGWG RWFPO RQNSNVOXQYTYUXXVZS[P[MZLYKWLW RPOSOVPXS RTOWQXTXUWXTZ RXVVYSZPZMYLW ROZLX", + "H\\UIU[V[ RVFV[ RVFKVZV RUILV RLUZUZV", + "H\\MFLO RNGMN RMFWFWG RNGWG RMNPMSMVNXPYSYUXXVZS[P[MZLYKWLW RLOMOONSNVOXR RTNWPXSXUWXTZ RXVVYSZPZMYLW ROZLX", + "H\\VGWIXIWGTFRFOGMJLOLTMXOZR[S[VZXXYUYTXQVOSNRNOOMQ RWHTGRGOH RPGNJMOMTNXQZ RMVOYRZSZVYXV RTZWXXUXTWQTO RXSVPSOROOPMS RQONQMT", + "H\\KFYFO[ RKFKGXG RXFN[O[", + "H\\PFMGLILKMMNNPOTPVQWRXTXWWYTZPZMYLWLTMRNQPPTOVNWMXKXIWGTFPF RNGMIMKNMPNTOVPXRYTYWXYWZT[P[MZLYKWKTLRNPPOTNVMWKWIVG RWHTGPGMH RLXOZ RUZXX", + "H\\WPURRSQSNRLPKMKLLINGQFRFUGWIXMXRWWUZR[P[MZLXMXNZ RWMVPSR RWNUQRRQRNQLN RPRMPLMLLMIPG RLKNHQGRGUHWK RSGVIWMWRVWTZ RUYRZPZMY", + "MXRMQNQORPSPTOTNSMRM RRNROSOSNRN RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "MXRMQNQORPSPTOTNSMRM RRNROSOSNRN RTZS[R[QZQYRXSXTYT\\S^Q_ RRYRZSZSYRY RS[T\\ RTZS^", + "F^ZIJRZ[", + "F_JM[M[N RJMJN[N RJU[U[V RJUJV[V", + "F^JIZRJ[", + "I\\LKLJMHNGQFTFWGXHYJYLXNWOUPRQ RLKMKMJNHQGTGWHXJXLWNUORP RMIPG RUGXI RXMTP RRPRTSTSP RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY", + "E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\\T]Q]O\\L[JYHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV", + "H\\RFJ[ RRIK[J[ RRIY[Z[ RRFZ[ RMUWU RLVXV", + "H\\LFL[ RMGMZ RLFTFWGXHYJYMXOWPTQ RMGTGWHXJXMWOTP RMPTPWQXRYTYWXYWZT[L[ RMQTQWRXTXWWYTZMZ", + "H]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZV RZKYKXIWHUGQGOHMKLNLSMVOYQZUZWYXXYVZV", + "H]LFL[ RMGMZ RLFSFVGXIYKZNZSYVXXVZS[L[ RMGSGVHWIXKYNYSXVWXVYSZMZ", + "I\\MFM[ RNGNZ RMFYF RNGYGYF RNPTPTQ RNQTQ RNZYZY[ RM[Y[", + "I[MFM[ RNGN[M[ RMFYF RNGYGYF RNPTPTQ RNQTQ", + "H]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZVZRUR RZKYKXIWHUGQGOHNIMKLNLSMVNXOYQZUZWYXXYVYSUSUR", + "G]KFK[ RKFLFL[K[ RYFXFX[Y[ RYFY[ RLPXP RLQXQ", + "NWRFR[S[ RRFSFS[", + "J[VFVVUYSZQZOYNVMV RVFWFWVVYUZS[Q[OZNYMV", + "H]LFL[M[ RLFMFM[ RZFYFMR RZFMS RPOY[Z[ RQOZ[", + "IZMFM[ RMFNFNZ RNZYZY[ RM[Y[", + "F^JFJ[ RKKK[J[ RKKR[ RJFRX RZFRX RYKR[ RYKY[Z[ RZFZ[", + "G]KFK[ RLIL[K[ RLIY[ RKFXX RXFXX RXFYFY[", + "G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF RQGNHLKKNKSLVNYQZSZVYXVYSYNXKVHSGQG", + "H\\LFL[ RMGM[L[ RLFUFWGXHYJYMXOWPUQMQ RMGUGWHXJXMWOUPMP", + "G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF RQGNHLKKNKSLVNYQZSZVYXVYSYNXKVHSGQG RSXX]Y] RSXTXY]", + "H\\LFL[ RMGM[L[ RLFTFWGXHYJYMXOWPTQMQ RMGTGWHXJXMWOTPMP RRQX[Y[ RSQY[", + "H\\YIWGTFPFMGKIKKLMMNOOTQVRWSXUXXWYTZPZNYMXKX RYIWIVHTGPGMHLILKMMONTPVQXSYUYXWZT[P[MZKX", + "J[RGR[ RSGS[R[ RLFYFYG RLFLGYG", + "G]KFKULXNZQ[S[VZXXYUYF RKFLFLUMXNYQZSZVYWXXUXFYF", + "H\\JFR[ RJFKFRX RZFYFRX RZFR[", + "E_GFM[ RGFHFMX RRFMX RRIM[ RRIW[ RRFWX R]F\\FWX R]FW[", + "H\\KFX[Y[ RKFLFY[ RYFXFK[ RYFL[K[", + "I\\KFRPR[S[ RKFLFSP RZFYFRP RZFSPS[", + "H\\XFK[ RYFL[ RKFYF RKFKGXG RLZYZY[ RK[Y[", + "KYOBOb RPBPb ROBVB RObVb", + "KYKFY^", + "KYTBTb RUBUb RNBUB RNbUb", + "G]JTROZT RJTRPZT", + "H\\Hb\\b", + "LXPFUL RPFOGUL", + "H\\WMW[X[ RWMXMX[ RWPUNSMPMNNLPKSKULXNZP[S[UZWX RWPSNPNNOMPLSLUMXNYPZSZWX", + "H\\LFL[M[ RLFMFM[ RMPONQMTMVNXPYSYUXXVZT[Q[OZMX RMPQNTNVOWPXSXUWXVYTZQZMX", + "I[XPVNTMQMONMPLSLUMXOZQ[T[VZXX RXPWQVOTNQNOONPMSMUNXOYQZTZVYWWXX", + "H\\WFW[X[ RWFXFX[ RWPUNSMPMNNLPKSKULXNZP[S[UZWX RWPSNPNNOMPLSLUMXNYPZSZWX", + "I[MTXTXQWOVNTMQMONMPLSLUMXOZQ[T[VZXX RMSWSWQVOTNQNOONPMSMUNXOYQZTZVYWWXX", + "LZWFUFSGRJR[S[ RWFWGUGSH RTGSJS[ ROMVMVN ROMONVN", + "H\\XMWMW\\V_U`SaQaO`N_L_ RXMX\\W_UaSbPbNaL_ RWPUNSMPMNNLPKSKULXNZP[S[UZWX RWPSNPNNOMPLSLUMXNYPZSZWX", + "H\\LFL[M[ RLFMFM[ RMQPNRMUMWNXQX[ RMQPORNTNVOWQW[X[", + "NWRFQGQHRISITHTGSFRF RRGRHSHSGRG RRMR[S[ RRMSMS[", + "NWRFQGQHRISITHTGSFRF RRGRHSHSGRG RRMRbSb RRMSMSb", + "H[LFL[M[ RLFMFM[ RXMWMMW RXMMX RPTV[X[ RQSX[", + "NWRFR[S[ RRFSFS[", + "CbGMG[H[ RGMHMH[ RHQKNMMPMRNSQS[ RHQKOMNONQORQR[S[ RSQVNXM[M]N^Q^[ RSQVOXNZN\\O]Q][^[", + "H\\LML[M[ RLMMMM[ RMQPNRMUMWNXQX[ RMQPORNTNVOWQW[X[", + "I\\QMONMPLSLUMXOZQ[T[VZXXYUYSXPVNTMQM RQNOONPMSMUNXOYQZTZVYWXXUXSWPVOTNQN", + "H\\LMLbMb RLMMMMb RMPONQMTMVNXPYSYUXXVZT[Q[OZMX RMPQNTNVOWPXSXUWXVYTZQZMX", + "H\\WMWbXb RWMXMXb RWPUNSMPMNNLPKSKULXNZP[S[UZWX RWPSNPNNOMPLSLUMXNYPZSZWX", + "KYOMO[P[ ROMPMP[ RPSQPSNUMXM RPSQQSOUNXNXM", + "J[XPWNTMQMNNMPNRPSUUWV RVUWWWXVZ RWYTZQZNY ROZNXMX RXPWPVN RWOTNQNNO RONNPOR RNQPRUTWUXWXXWZT[Q[NZMX", + "MXRFR[S[ RRFSFS[ ROMVMVN ROMONVN", + "H\\LMLWMZO[R[TZWW RLMMMMWNYPZRZTYWW RWMW[X[ RWMXMX[", + "JZLMR[ RLMMMRY RXMWMRY RXMR[", + "F^IMN[ RIMJMNX RRMNX RRPN[ RRPV[ RRMVX R[MZMVX R[MV[", + "I[LMW[X[ RLMMMX[ RXMWML[ RXMM[L[", + "JZLMR[ RLMMMRY RXMWMRYNb RXMR[ObNb", + "I[VNL[ RXMNZ RLMXM RLMLNVN RNZXZX[ RL[X[", + "KYUBNRUb", + "NVRBRb", + "KYOBVROb", + "F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O", + "JZJFJ[K[KFLFL[M[MFNFN[O[OFPFP[Q[QFRFR[S[SFTFT[U[UFVFV[W[WFXFX[Y[YFZFZ[", + } +} +}; + + -- cgit v1.2.3