00001
00002
00003
00004
00005
00006 #include "f2c.h"
00007
00008
00009
00010 extern struct {
00011 real xpgmin, ypgmin, xpgmax, ypgmax, xclbot, yclbot, xcltop, ycltop, xbot,
00012 ybot, xtop, ytop, xmin, ymin, xmax, ymax;
00013 integer ixcoor, iycoor;
00014 real alphxx, betaxx, alphyy, betayy, tmajx, tminx, tmajy, tminy;
00015 integer majrx, minrx, majry, minry, isizx, isizy;
00016 real xphold, yphold;
00017 } zzzplt_;
00018
00019 #define zzzplt_1 zzzplt_
00020
00021 extern struct {
00022 real xphmax, yphmax;
00023 integer ixpmax, iypmax;
00024 real xpscal, ypscal;
00025 integer iflip, nplotr;
00026 char cfile[64];
00027 } zzpltr_;
00028
00029 #define zzpltr_1 zzpltr_
00030
00031
00032
00033
00034 int pwritf_(real *x, real *y, char *ch, integer *nch,
00035 integer *isiz, integer *ior, integer *icent, ftnlen ch_len)
00036 {
00037
00038 integer i__1, i__2;
00039 real r__1, r__2;
00040
00041
00042 static real xold, yold, size, xorg, yorg;
00043 static integer lstr[69999], nstr;
00044 static real xstr[69999], ystr[69999];
00045 static integer i__;
00046 static char chloc[6666];
00047 static integer nchar;
00048 extern int color_(integer *);
00049 static integer isize;
00050 static real ct;
00051 static integer nchloc;
00052 static real st, xr, yr, xx, yy;
00053 extern integer lastnb_(char *, ftnlen);
00054 extern int zzline_(real *, real *, real *, real *),
00055 zzconv_(char *, integer *, char *, integer *, ftnlen, ftnlen),
00056 zzphys_(real *, real *), zzstro_(char *, integer *, integer *,
00057 real *, real *, integer *, ftnlen);
00058 static real orr;
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073 isize = *isiz;
00074 if (isize <= 0) {
00075 isize = 8;
00076 } else if (isize == 1) {
00077 isize = 12;
00078 } else if (isize == 2) {
00079 isize = 16;
00080 } else if (isize == 3) {
00081 isize = 24;
00082 }
00083
00084 size = isize * .001f * (zzzplt_1.xpgmax - zzzplt_1.xpgmin);
00085
00086
00087
00088 orr = *ior * .017453292f;
00089 ct = size * cos(orr);
00090 st = size * sin(orr);
00091
00092
00093
00094 xx = *x;
00095 yy = *y;
00096 if (*nch >= 0) {
00097 zzphys_(&xx, &yy);
00098 }
00099
00100
00101
00102
00103 nchar = abs(*nch);
00104 if (nchar == 999) {
00105 i__1 = nchar;
00106 for (i__ = 1; i__ <= i__1; ++i__) {
00107 if (*(unsigned char *)&ch[i__ - 1] == '\0') {
00108 goto L20;
00109 }
00110
00111 }
00112 L20:
00113 nchar = i__ - 1;
00114 } else if (nchar == 0) {
00115 nchar = lastnb_(ch, ch_len);
00116 }
00117
00118
00119
00120 zzconv_(ch, &nchar, chloc, &nchloc, ch_len, 6666L);
00121 zzstro_(chloc, &nchloc, &nstr, xstr, ystr, lstr, 6666L);
00122 if (nstr <= 0) {
00123 return 0;
00124 }
00125
00126
00127
00128 zzzplt_1.xbot = xstr[0];
00129 zzzplt_1.ybot = ystr[0];
00130 zzzplt_1.xtop = zzzplt_1.xbot;
00131 zzzplt_1.ytop = zzzplt_1.ybot;
00132 i__1 = nstr;
00133 for (i__ = 2; i__ <= i__1; ++i__) {
00134
00135 r__1 = zzzplt_1.xbot, r__2 = xstr[i__ - 1];
00136 zzzplt_1.xbot = dmin(r__1,r__2);
00137
00138 r__1 = zzzplt_1.xtop, r__2 = xstr[i__ - 1];
00139 zzzplt_1.xtop = dmax(r__1,r__2);
00140
00141 r__1 = zzzplt_1.ybot, r__2 = ystr[i__ - 1];
00142 zzzplt_1.ybot = dmin(r__1,r__2);
00143
00144 r__1 = zzzplt_1.ytop, r__2 = ystr[i__ - 1];
00145 zzzplt_1.ytop = dmax(r__1,r__2);
00146
00147 }
00148
00149
00150
00151
00152 if (*icent == -1) {
00153 xorg = zzzplt_1.xbot;
00154 yorg = (zzzplt_1.ybot + zzzplt_1.ytop) * .5f;
00155 } else if (*icent == 0) {
00156 xorg = (zzzplt_1.xbot + zzzplt_1.xtop) * .5f;
00157 yorg = (zzzplt_1.ybot + zzzplt_1.ytop) * .5f;
00158 } else if (*icent == 1) {
00159 xorg = zzzplt_1.xtop;
00160 yorg = (zzzplt_1.ybot + zzzplt_1.ytop) * .5f;
00161 } else {
00162 xorg = zzzplt_1.xbot;
00163 yorg = zzzplt_1.ybot;
00164 }
00165
00166
00167
00168 i__1 = nstr;
00169 for (i__ = 1; i__ <= i__1; ++i__) {
00170 if (lstr[i__ - 1] <= 1) {
00171 xr = xx + ct * (xstr[i__ - 1] - xorg) - st * (ystr[i__ - 1] -
00172 yorg);
00173 yr = yy + st * (xstr[i__ - 1] - xorg) + ct * (ystr[i__ - 1] -
00174 yorg);
00175 if (lstr[i__ - 1] == 1) {
00176 zzline_(&xold, &yold, &xr, &yr);
00177 }
00178 xold = xr;
00179 yold = yr;
00180 } else if (lstr[i__ - 1] > 100 && lstr[i__ - 1] <= 107) {
00181 i__2 = lstr[i__ - 1] - 100;
00182 color_(&i__2);
00183 }
00184
00185 }
00186
00187 zzzplt_1.xphold = xold;
00188 zzzplt_1.yphold = yold;
00189 return 0;
00190 }
00191
00192
00193
00194
00195 integer lastnb_(char *cline, ftnlen cline_len)
00196 {
00197
00198 integer ret_val;
00199
00200
00201 integer i_len(char *, ftnlen);
00202
00203
00204 static integer npos;
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219 npos = i_len(cline, cline_len);
00220 L100:
00221
00222 if (npos <= 1) {
00223 goto L200;
00224 }
00225
00226 if (*(unsigned char *)&cline[npos - 1] != ' ' && *(unsigned char *)&cline[
00227 npos - 1] != '\0') {
00228 goto L200;
00229 }
00230
00231 --npos;
00232 goto L100;
00233
00234
00235 L200:
00236 ret_val = npos;
00237 return ret_val;
00238 }
00239
00240
00241
00242
00243 int zzstro_(char *ch, integer *nch, integer *nstr, real *
00244 xstr, real *ystr, integer *lstr, ftnlen ch_len)
00245 {
00246
00247
00248 static integer noff[256] = { 3452,3452,3452,3452,3452,3452,3452,3452,3452,
00249 3452,3452,3452,3452,3452,3452,3452,3452,3452,3452,3452,3452,3452,
00250 3452,3452,3452,3452,3452,3452,3452,3452,3452,3452,3448,2598,2646,
00251 3307,3268,3138,3168,2641,2672,2691,3439,2790,2566,2787,2560,2669,
00252 2205,2243,2252,2294,2338,2348,2383,2429,2456,2514,2574,2585,2832,
00253 2820,2836,2611,3215,1,14,54,85,112,129,144,180,199,208,226,245,
00254 256,277,292,334,359,419,458,491,504,524,535,552,567,582,2710,3818,
00255 2719,3564,3597,2953,595,631,660,687,718,747,766,821,843,857,879,
00256 898,907,942,964,998,1029,1058,1077,1108,1122,1144,1155,1172,1187,
00257 1205,2728,2784,2752,3593,3452,2856,3033,2802,2807,3600,2980,2916,
00258 3615,2776,2780,3384,2795,2840,3316,3759,3783,0,0,0,0,0,0,0,0,0,0,
00259 0,0,0,0,0,0,2890,2655,3022,2971,2962,2944,3651,3064,2929,3666,
00260 3805,3812,3815,3430,2848,3683,3463,3468,3473,3479,3485,3498,3511,
00261 3524,3537,3554,2877,3715,3737,3359,2825,2903,3689,1,14,1218,1229,
00262 112,582,180,1240,199,226,1290,256,277,1301,292,1326,334,1341,491,
00263 1357,1386,552,1428,1463,3702,3449,3455,3450,3454,3451,3453,3456,
00264 1502,1539,1591,1616,1658,1681,1711,1740,1780,1794,1819,1839,1863,
00265 1883,1924,1954,1971,2000,2032,2045,2074,2112,2133,2164,3457,3458,
00266 3459,3460,3461,3462,3112 };
00267 static integer numstr[256] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
00268 1,1,1,1,1,1,1,1,1,1,1,1,13,9,9,39,30,47,5,19,19,9,5,8,3,6,3,38,9,
00269 42,44,10,35,46,27,58,46,11,13,4,5,4,30,53,13,40,31,27,17,15,36,19,
00270 9,18,19,11,21,15,42,25,60,39,33,13,20,11,17,15,15,13,9,3,9,29,3,9,
00271 36,29,27,31,29,19,55,22,14,22,19,9,35,22,34,31,29,19,31,14,22,11,
00272 17,15,18,13,24,3,24,4,1,21,31,5,13,15,42,13,36,4,4,46,7,8,43,24,
00273 22,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,13,14,11,9,9,9,15,48,15,
00274 17,7,3,3,9,8,6,5,5,6,6,13,13,13,13,17,10,13,22,22,25,7,13,13,13,
00275 40,11,11,17,13,19,50,9,19,11,21,15,25,42,15,25,16,13,29,42,15,35,
00276 39,13,1,1,1,1,1,1,1,37,52,25,42,23,30,29,40,14,25,20,24,20,41,30,
00277 17,29,32,13,29,38,21,31,41,1,1,1,1,1,1,26 };
00278 static struct {
00279 integer e_1[3820];
00280 } equiv_38 = { 8011, 23723, 9173, 25515, 7378, 25390, 6854, 25792,
00281 6586, 25408, 9024, 25408, 6858, 7371, 24619, 8405, 24619,
00282 7765, 26176, 25023, 24767, 24766, 24638, 24510, 24511, 24255,
00283 8266, 24895, 24767, 24766, 24638, 24510, 24511, 24383, 7232,
00284 25664, 25023, 24767, 24766, 24637, 24510, 24511, 24255, 23104,
00285 9803, 24895, 24767, 24766, 24637, 24510, 24511, 24383, 7754,
00286 8904, 24765, 24646, 24509, 24386, 24257, 24384, 24255, 24382,
00287 24510, 24509, 24635, 24765, 24766, 24894, 25023, 24896, 25025,
00288 24898, 24770, 7248, 24383, 24382, 24510, 24509, 24635, 24765,
00289 24766, 24894, 24895, 8138, 7371, 24619, 8405, 24619, 7765,
00290 25920, 25023, 24894, 24766, 24765, 24635, 24509, 24510, 24382,
00291 24255, 23360, 9557, 24895, 24894, 24766, 24765, 24635, 24509,
00292 24510, 24382, 24383, 8010, 7371, 24619, 8405, 24619, 9039,
00293 24632, 6990, 26688, 24634, 24518, 6838, 25408, 6965, 26688,
00294 24646, 24506, 7242, 7371, 24619, 8405, 24619, 9039, 24632,
00295 6990, 26688, 24634, 24518, 6838, 25408, 6965, 25536, 8138,
00296 8904, 24765, 24646, 24509, 24386, 24257, 24384, 24255, 24382,
00297 24510, 24509, 24635, 24765, 24766, 24894, 25023, 24896, 25025,
00298 24898, 7378, 24383, 24382, 24510, 24509, 24635, 24765, 24766,
00299 24894, 24895, 9160, 24632, 8392, 24632, 7752, 25536, 6978,
00300 7371, 24619, 8405, 24619, 9813, 24619, 8405, 24619, 6101,
00301 25536, 9024, 25536, 6198, 26176, 6197, 25536, 9024, 25536,
00302 6986, 7371, 24619, 8405, 24619, 7765, 25536, 7339, 25536,
00303 6986, 8011, 24623, 24509, 24383, 24384, 24385, 24514, 24642,
00304 24769, 24767, 24511, 9041, 24623, 24509, 24511, 8149, 25536,
00305 6965, 7371, 24619, 8405, 24619, 9941, 22963, 8900, 25652,
00306 7116, 25652, 6229, 25536, 9024, 25408, 5803, 25536, 9024,
00307 25408, 6858, 7371, 24619, 8405, 24619, 7765, 25536, 7339,
00308 26560, 24646, 24506, 6986, 7371, 24619, 8405, 25390, 7378,
00309 25515, 9173, 23723, 9173, 24619, 8405, 24619, 5973, 25152,
00310 9920, 25152, 5547, 25408, 9280, 25536, 6986, 7371, 24619,
00311 8405, 26157, 6737, 26157, 8277, 24619, 6229, 25152, 9408,
00312 25408, 5803, 25408, 8650, 8011, 24255, 24382, 24510, 24508,
00313 24637, 24764, 24766, 24894, 25023, 24896, 25025, 24898, 24770,
00314 24772, 24643, 24516, 24514, 24386, 24257, 24384, 8256, 24383,
00315 24382, 24510, 24508, 24637, 24764, 24766, 24894, 24895, 8512,
00316 24897, 24898, 24770, 24772, 24643, 24516, 24514, 24386,
00317 24385, 7989, 7371, 24619, 8405, 24619, 7765, 26176, 25023,
00318 24767, 24766, 24637, 24510, 24511, 24255, 23616, 9291, 24895,
00319 24767, 24766, 24637, 24510, 24511, 24383, 6710, 25536, 8394,
00320 8011, 24255, 24382, 24510, 24508, 24637, 24764, 24766, 24894,
00321 25023, 24896, 25025, 24898, 24770, 24772, 24643, 24516, 24514,
00322 24386, 24257, 24384, 8256, 24383, 24382, 24510, 24508, 24637,
00323 24764, 24766, 24894, 24895, 8512, 24897, 24898, 24770, 24772,
00324 24643, 24516, 24514, 24386, 24385, 7597, 24641, 24770, 24897,
00325 24768, 24895, 24766, 24761, 24767, 24896, 24770, 24641, 7621,
00326 24764, 24766, 24767, 24768, 24769, 7117, 7371, 24619, 8405,
00327 24619, 7765, 26176, 25023, 24767, 24766, 24638, 24510, 24511,
00328 24255, 23616, 9290, 24895, 24767, 24766, 24638, 24510, 24511,
00329 24383, 6709, 25536, 8523, 24895, 24767, 25017, 24767, 24768,
00330 24769, 7368, 24766, 24889, 24767, 24896, 24770, 24641, 6983,
00331 8776, 24771, 24634, 24515, 24386, 24257, 24256, 24255, 24382,
00332 24638, 24766, 24767, 24895, 25406, 24895, 24894, 6473, 24894,
00333 24895, 25406, 24895, 24767, 24766, 24636, 24382, 24255, 24256,
00334 24257, 24386, 24515, 24634, 24771, 8775, 7883, 24619, 8405,
00335 24619, 7381, 24506, 24646, 26560, 24634, 24518, 6955, 25536,
00336 7498, 7371, 24625, 24765, 24894, 25023, 24896, 25025, 24898,
00337 24771, 24655, 6592, 24625, 24765, 24894, 24895, 7125, 25536,
00338 9152, 25408, 6965, 7115, 25515, 7509, 25390, 9170, 23723,
00339 7125, 25408, 9024, 25408, 6837, 7243, 25131, 7893, 25008,
00340 8784, 24107, 8789, 25131, 7893, 25008, 8784, 24107, 6357,
00341 25536, 9408, 25408, 6837, 7115, 26283, 6741, 26283, 8277,
00342 22827, 8021, 25408, 9024, 25408, 5931, 25408, 9024, 25408,
00343 6858, 7115, 25525, 24630, 7509, 25525, 24630, 9173, 23733,
00344 6987, 25408, 9152, 25408, 6571, 25536, 7626, 8779, 22955,
00345 10069, 22955, 8277, 24506, 24646, 26432, 6443, 26432, 24646,
00346 24506, 7242, 7362, 24639, 24512, 24641, 24769, 24897, 25152,
00347 24895, 24767, 24766, 24633, 24766, 24767, 7884, 24631, 24766,
00348 24895, 24768, 7754, 24511, 23871, 24255, 24510, 24638, 24766,
00349 25023, 25024, 24897, 24898, 7365, 24383, 24510, 24638, 24766,
00350 24895, 8394, 7371, 24619, 8405, 24619, 8267, 24898, 24897,
00351 24896, 25023, 24894, 24765, 24638, 24509, 24382, 24255, 24384,
00352 24385, 24386, 9035, 24895, 24894, 24765, 24638, 24509, 24382,
00353 24383, 6997, 25152, 8629, 8641, 24511, 24767, 24769, 24641,
00354 24386, 24385, 24256, 24255, 24382, 24509, 24638, 24765, 24894,
00355 25023, 24896, 25025, 24898, 7371, 24383, 24382, 24509, 24638,
00356 24765, 24894, 24895, 8010, 8651, 24619, 8405, 24619, 8139,
00357 24386, 24385, 24384, 24255, 24382, 24509, 24638, 24765, 24894,
00358 25023, 24896, 24897, 24898, 7499, 24383, 24382, 24509, 24638,
00359 24765, 24894, 24895, 8661, 25152, 8107, 25152, 6986, 7230,
00360 26176, 24642, 24514, 24513, 24385, 24256, 24255, 24382, 24509,
00361 24638, 24765, 24894, 25023, 24896, 25025, 24898, 8133, 24643,
00362 24514, 7617, 24383, 24382, 24509, 24638, 24765, 24894, 24895,
00363 8010, 8010, 24511, 24767, 24769, 24641, 24513, 24384, 24383,
00364 24510, 24622, 8661, 24511, 24510, 24622, 7758, 25664, 7218,
00365 25536, 7242, 7748, 24383, 24511, 24510, 24638, 24766, 24767,
00366 24895, 24896, 24897, 24769, 24770, 24642, 24514, 24513, 24385,
00367 24384, 7999, 24510, 24636, 24766, 9024, 24770, 24644, 24514,
00368 8383, 24769, 24897, 24639, 24384, 7097, 24511, 24510, 24639,
00369 24766, 25023, 25280, 25023, 24767, 6597, 24767, 25023, 25280,
00370 25023, 24766, 24639, 24510, 24255, 23872, 24257, 24514, 24641,
00371 24770, 25025, 8394, 7371, 24619, 8405, 24619, 8267, 24898,
00372 25025, 24896, 25023, 24766, 24629, 7758, 24895, 24766, 24629,
00373 6485, 25152, 7723, 25536, 8768, 25536, 6986, 7371, 24511,
00374 24767, 24769, 24513, 8249, 24626, 8398, 24626, 7758, 25152,
00375 7730, 25536, 6986, 7499, 24511, 24767, 24769, 24513, 8377,
00376 24622, 24510, 24383, 24384, 24513, 24641, 24769, 24767, 24511,
00377 8788, 24622, 24510, 24511, 8149, 25152, 7228, 7371, 24619,
00378 8405, 24619, 9550, 23350, 8900, 25400, 7368, 25400, 6485,
00379 25152, 9145, 25408, 6066, 25536, 8768, 25408, 6986, 7371,
00380 24619, 8405, 24619, 7765, 25152, 7723, 25536, 6986, 7364,
00381 24626, 8398, 24626, 8267, 24898, 25025, 24896, 25023, 24766,
00382 24629, 7758, 24895, 24766, 24629, 8395, 24898, 25025, 24896,
00383 25023, 24766, 24629, 7758, 24895, 24766, 24629, 5070, 25152,
00384 7730, 25536, 8768, 25536, 8768, 25536, 6986, 7364, 24626,
00385 8398, 24626, 8267, 24898, 25025, 24896, 25023, 24766, 24629,
00386 7758, 24895, 24766, 24629, 6478, 25152, 7730, 25536, 8768,
00387 25536, 6986, 7876, 24255, 24382, 24509, 24638, 24765, 24894,
00388 25023, 24896, 25025, 24898, 24771, 24642, 24515, 24386, 24257,
00389 24384, 8256, 24383, 24382, 24509, 24638, 24765, 24894, 24895,
00390 8512, 24897, 24898, 24771, 24642, 24515, 24386, 24385, 7868,
00391 7364, 24619, 8405, 24619, 8274, 24898, 24897, 24896, 25023,
00392 24894, 24765, 24638, 24509, 24382, 24255, 24384, 24385, 24386,
00393 9035, 24895, 24894, 24765, 24638, 24509, 24382, 24383, 6990,
00394 25152, 7723, 25536, 8273, 8644, 24619, 8405, 24619, 8146,
00395 24386, 24385, 24384, 24255, 24382, 24509, 24638, 24765, 24894,
00396 25023, 24896, 24897, 24898, 7499, 24383, 24382, 24509, 24638,
00397 24765, 24894, 24895, 8633, 25536, 6865, 7364, 24626, 8398,
00398 24626, 8264, 24771, 24898, 24897, 25024, 24767, 24639, 24511,
00399 24513, 24769, 6721, 25152, 7730, 25536, 7754, 8386, 24770,
00400 24636, 24514, 24513, 24385, 24128, 24383, 24511, 24638, 24767,
00401 24895, 25278, 24895, 24767, 6855, 24767, 24895, 25278, 24895,
00402 24767, 24637, 24511, 24383, 24128, 24385, 24513, 24514,
00403 24636, 24770, 8392, 7371, 24623, 24765, 24895, 24896, 24897,
00404 24770, 7378, 24623, 24765, 24767, 7502, 25664, 7356, 7364,
00405 24629, 24766, 25023, 24896, 25025, 24898, 6987, 24629, 24766,
00406 24895, 9166, 24626, 8398, 24626, 6350, 25152, 9152, 25152,
00407 8114, 25152, 6986, 7108, 25394, 7630, 25268, 9036, 23858,
00408 7246, 25408, 8768, 25408, 6844, 7236, 25138, 7886, 25013,
00409 8779, 24114, 8782, 25138, 7886, 25013, 8779, 24114, 6350,
00410 25536, 9408, 25408, 6844, 7236, 26034, 6990, 26034, 8270,
00411 23090, 8014, 25408, 8768, 25408, 6194, 25408, 8768, 25408,
00412 6986, 7236, 25394, 7630, 25268, 9036, 23858, 24380, 24382,
00413 24383, 24512, 24513, 24769, 24767, 8020, 25408, 8768, 25408,
00414 6844, 8516, 23218, 9806, 23218, 8270, 24508, 24644, 26176,
00415 6706, 26176, 24644, 24508, 7242, 7371, 24619, 8405, 24619,
00416 7765, 26560, 24634, 24518, 6443, 25536, 7882, 8011, 23595,
00417 9301, 25643, 7250, 25518, 6465, 26432, 6335, 26688, 6986,
00418 8011, 24255, 24382, 24510, 24508, 24637, 24764, 24766, 24894,
00419 25023, 24896, 25025, 24898, 24770, 24772, 24643, 24516, 24514,
00420 24386, 24257, 24384, 8256, 24383, 24382, 24510, 24508, 24637,
00421 24764, 24766, 24894, 24895, 8512, 24897, 24898, 24770, 24772,
00422 24643, 24516, 24514, 24386, 24385, 7737, 24633, 9031, 24633,
00423 7492, 25408, 7487, 25408, 7744, 8011, 23723, 9173, 25515,
00424 7378, 25390, 6336, 25408, 9024, 25408, 6858, 7244, 24507,
00425 10309, 24507, 6972, 24507, 9285, 24507, 6972, 24507, 10309,
00426 24507, 6485, 26432, 6463, 26432, 6968, 25408, 7487, 25408,
00427 6968, 26432, 6463, 26432, 7241, 7371, 24619, 8405, 24619,
00428 9813, 24619, 8405, 24619, 6101, 27200, 5675, 25536, 9024,
00429 25536, 6986, 7115, 25526, 23605, 8277, 25526, 7370, 26560,
00430 24762, 24390, 6572, 26304, 6463, 26560, 24774, 24378, 7370,
00431 6982, 24642, 24770, 24769, 24896, 24767, 24766, 24764, 24626,
00432 7378, 24898, 24896, 24894, 9406, 24642, 24514, 24513, 24384,
00433 24511, 24510, 24508, 24626, 9170, 24386, 24384, 24382, 7598,
00434 25536, 7498, 8011, 24619, 8405, 24619, 7888, 24255, 24511,
00435 24510, 24637, 24766, 24767, 25023, 25280, 25025, 24769, 24770,
00436 24643, 24514, 24513, 24257, 24000, 8256, 24383, 24511, 24510,
00437 24637, 24766, 24767, 24895, 8896, 24897, 24769, 24770, 24643,
00438 24514, 24513, 24385, 7493, 25536, 7339, 25536, 7626, 8139,
00439 24619, 8405, 24619, 6990, 24769, 24895, 24764, 24766, 24767,
00440 24895, 7369, 24767, 24764, 24766, 24767, 25023, 25024, 25025,
00441 24769, 24770, 24772, 24769, 7351, 24897, 24769, 24770, 24772,
00442 24897, 24767, 6599, 25536, 7339, 25536, 7754, 7097, 24765,
00443 25152, 24388, 24388, 24515, 24644, 24771, 24898, 25025, 25152,
00444 25023, 24894, 24765, 24636, 24509, 24380, 24380, 25152,
00445 24771, 6593, 24515, 24516, 24644, 24771, 24898, 24897, 8768,
00446 24895, 24894, 24765, 24636, 24508, 24509, 6717, 25024, 9280,
00447 25024, 7241, 8004, 24255, 24382, 24510, 24509, 24637, 24766,
00448 25023, 24896, 24897, 25027, 24899, 24900, 24771, 7104, 24383,
00449 24382, 24510, 24509, 24637, 24766, 24895, 8654, 24896, 24895,
00450 24766, 24888, 24766, 24767, 7374, 24767, 24766, 24888, 24766,
00451 24895, 24768, 7114, 8395, 24255, 24382, 24380, 24509, 24508,
00452 24506, 24504, 9692, 24383, 24382, 24380, 24509, 24508, 24506,
00453 24504, 9564, 24896, 24895, 24767, 24637, 24510, 24511, 24255,
00454 24128, 9033, 24894, 24637, 24510, 24511, 24383, 7744, 25151,
00455 24894, 24766, 24637, 24510, 24511, 24255, 24384, 24385, 24513,
00456 24515, 8775, 25023, 24894, 24766, 24637, 24510, 24511, 24383,
00457 8010, 6849, 24898, 24897, 24896, 24895, 24767, 24765, 24636,
00458 24508, 24248, 7635, 24897, 25152, 24895, 9282, 24509, 24510,
00459 23993, 24251, 24380, 9685, 24509, 24510, 24121, 7880, 8387,
00460 24385, 24384, 24255, 24381, 24509, 24637, 24766, 24767, 24895,
00461 24896, 25025, 24899, 24771, 24643, 24514, 24133, 24514,
00462 24642, 24769, 24896, 24895, 24894, 7355, 24383, 24381, 24509,
00463 24636, 24766, 8767, 24897, 24899, 24771, 24644, 24514, 24387,
00464 24514, 24642, 24769, 24896, 25022, 7095, 8515, 24385, 24256,
00465 24255, 24382, 24509, 24637, 24765, 24767, 25023, 25024, 24897,
00466 7757, 24383, 24382, 24509, 24637, 24765, 24767, 24895, 7751,
00467 25664, 7363, 8139, 24383, 24511, 24639, 24767, 25023, 25280,
00468 24641, 24255, 24126, 24254, 24253, 24509, 24638, 24766, 25022,
00469 25022, 24766, 24638, 24511, 24384, 24513, 8917, 24125, 24253,
00470 24509, 24638, 24766, 24894, 8138, 6848, 24770, 24898, 25024,
00471 24767, 24638, 24508, 24377, 8398, 24767, 24638, 24508, 24377,
00472 8647, 24900, 24898, 24897, 24896, 24895, 24767, 24637, 24507,
00473 24245, 8405, 24894, 24637, 24507, 24245, 7889, 8139, 24255,
00474 24381, 24510, 24509, 24507, 24636, 24766, 24895, 24896, 25025,
00475 24899, 24770, 24771, 24773, 24644, 24514, 24385, 24384, 8256,
00476 24383, 24381, 24510, 24509, 24507, 24636, 24766, 24767, 8512,
00477 24897, 24899, 24770, 24771, 24773, 24644, 24514, 24513, 7222,
00478 25792, 7359, 7492, 24377, 24508, 24638, 24767, 25024, 24898,
00479 24770, 7882, 24377, 24508, 24638, 24767, 7626, 7492, 24114,
00480 8910, 24114, 9934, 24767, 24768, 24513, 24384, 24383, 24124,
00481 24383, 24384, 8512, 24895, 24890, 24767, 7624, 24767, 24890,
00482 24767, 24896, 24897, 24899, 7110, 7115, 24896, 24895, 24767,
00483 24766, 25394, 24766, 24767, 6741, 24894, 24766, 25394, 24766,
00484 24895, 24768, 7246, 23602, 9294, 23730, 8906, 7620, 23851,
00485 9173, 23851, 8914, 24506, 24637, 24894, 24896, 24897, 24898,
00486 24899, 8520, 24245, 24638, 24767, 25024, 24898, 24770, 7882,
00487 24245, 24638, 24767, 7498, 7492, 24370, 8654, 24506, 24507,
00488 24509, 9934, 24508, 24380, 8776, 24509, 24510, 24381, 24382,
00489 24254, 24383, 24255, 8142, 25152, 8380, 8139, 24383, 24511,
00490 24639, 24767, 25023, 25024, 7872, 24127, 24383, 24510, 24638,
00491 24894, 25023, 25024, 8137, 24255, 24383, 24510, 24638, 24894,
00492 24895, 8256, 24127, 24383, 24510, 24638, 24894, 25278, 24767,
00493 24638, 24383, 24384, 8654, 24255, 24383, 24510, 24638, 24894,
00494 25150, 7629, 7876, 24255, 24381, 24509, 24637, 24766, 24767,
00495 24895, 24896, 25025, 24899, 24771, 24643, 24514, 24513, 24385,
00496 24384, 8256, 24383, 24381, 24509, 24636, 24766, 8767, 24897,
00497 24899, 24771, 24644, 24514, 7357, 7875, 24115, 8781, 24243,
00498 9421, 24627, 8269, 24755, 6475, 24898, 25025, 26304, 5949,
00499 24897, 25025, 26304, 6973, 7227, 24765, 24767, 24895, 24896,
00500 25025, 24899, 24771, 24643, 24514, 24513, 24385, 24384, 24255,
00501 24381, 24509, 24114, 9543, 24897, 24899, 24771, 24644, 24514,
00502 7745, 24383, 24381, 24509, 24114, 9041, 9156, 23360, 24255,
00503 24381, 24509, 24637, 24766, 24767, 24895, 24896, 25025, 24899,
00504 24771, 24643, 24514, 24513, 24385, 8000, 24383, 24381, 24509,
00505 24636, 24766, 8767, 24897, 24899, 24771, 24644, 24514, 8256,
00506 25408, 6973, 8131, 24243, 8653, 24371, 7371, 24898, 25025,
00507 26048, 6205, 24897, 25025, 26048, 6973, 6848, 24770, 24898,
00508 25024, 24767, 24638, 24378, 24637, 24894, 8014, 24767, 24638,
00509 24378, 24637, 24767, 24895, 24768, 25025, 24898, 24899, 24771,
00510 24643, 24514, 24511, 24767, 24765, 8125, 24774, 7102, 8523,
00511 23844, 9180, 23588, 8661, 24127, 24382, 24509, 24637, 24766,
00512 24894, 25023, 25024, 25153, 24898, 24771, 24643, 24514, 24386,
00513 24257, 24256, 8256, 24255, 24382, 24509, 24637, 24766, 24894,
00514 24895, 8640, 25025, 24898, 24771, 24643, 24514, 24386, 24385,
00515 7868, 6980, 24896, 24895, 24766, 25265, 24766, 24767, 6997,
00516 24767, 24766, 25265, 24766, 24895, 24896, 8405, 24510, 24381,
00517 23349, 24381, 24510, 8913, 8651, 23844, 9180, 23588, 7377,
00518 24770, 24898, 25024, 24767, 24638, 24507, 24637, 24894, 25024,
00519 24897, 25027, 24899, 6598, 24767, 24638, 24507, 24637, 24766,
00520 24895, 25024, 24897, 24898, 24899, 24770, 24902, 6972, 7232,
00521 24898, 25025, 24513, 24383, 24381, 24509, 24637, 24765, 24767,
00522 24896, 24897, 24899, 24771, 7101, 24766, 24767, 24896, 24897,
00523 24898, 8259, 24637, 24765, 24767, 24896, 24897, 24899, 24771,
00524 24643, 24515, 24513, 24511, 24895, 24766, 7098, 24766, 24767,
00525 24896, 24897, 24898, 7238, 7883, 24255, 24381, 24507, 24637,
00526 24763, 24893, 25023, 24896, 25025, 24899, 24773, 24643, 24517,
00527 24387, 24257, 24384, 8256, 24383, 24511, 24510, 24507, 24637,
00528 24763, 24766, 24767, 24895, 8512, 24897, 24769, 24770, 24773,
00529 24643, 24517, 24514, 24513, 24385, 7861, 7495, 24897, 25027,
00530 24619, 8148, 24620, 7744, 25792, 7370, 7239, 24767, 24511,
00531 24513, 24641, 24770, 24769, 25025, 25152, 25023, 24767, 24766,
00532 24638, 24510, 24254, 23998, 24383, 24382, 24509, 24637, 9429,
00533 24895, 24767, 24766, 24638, 24510, 24254, 24126, 7609, 24769,
00534 24896, 25278, 25024, 24897, 24769, 6848, 25277, 25152, 24769,
00535 24770, 24642, 7109, 7239, 24767, 24511, 24513, 24641, 24770,
00536 24769, 25025, 25152, 25023, 24766, 24637, 24510, 24255, 24256,
00537 8649, 24895, 24766, 24637, 24510, 24383, 8256, 24895, 24894,
00538 24766, 24637, 24510, 24511, 24255, 24128, 24257, 24513, 24514,
00539 24641, 24769, 24767, 24511, 9670, 24765, 24637, 24510, 24511,
00540 24383, 7754, 8265, 24621, 8405, 24619, 8277, 23217, 26688,
00541 7098, 25536, 7242, 7371, 24374, 8256, 24898, 25025, 25024,
00542 25023, 24894, 24765, 24638, 24509, 24382, 24255, 24256, 24257,
00543 24513, 24514, 24641, 24769, 24767, 24511, 9162, 24895, 24894,
00544 24765, 24638, 24509, 24382, 24383, 7509, 25920, 6975, 25280,
00545 25281, 7349, 8648, 24511, 24767, 24769, 24641, 24514, 24385,
00546 24256, 24255, 24382, 24510, 24508, 24634, 24765, 24894, 25023,
00547 24896, 25025, 24898, 24771, 24641, 24515, 24386, 24257,
00548 24512, 24255, 24382, 24509, 9038, 24383, 24382, 24510, 24508,
00549 24634, 24765, 24894, 24895, 8512, 24897, 24898, 24771, 24641,
00550 24515, 24386, 24385, 7869, 7115, 24634, 8258, 24770, 24898,
00551 24896, 25277, 24896, 24769, 24770, 6590, 24897, 24896, 25278,
00552 8771, 24637, 24509, 24123, 24510, 24509, 24635, 9039, 23995,
00553 24510, 24509, 24635, 8138, 7755, 24255, 24510, 24637, 24766,
00554 25023, 25152, 25025, 24770, 24643, 24514, 24257, 24128, 8256,
00555 24383, 24510, 24637, 24766, 24895, 8768, 24897, 24770, 24643,
00556 24514, 24385, 7735, 24255, 24511, 24510, 24636, 24766, 24767,
00557 25023, 25152, 25025, 24769, 24770, 24644, 24514, 24513, 24257,
00558 7744, 24383, 24511, 24510, 24636, 24766, 24767, 24895, 8768,
00559 24897, 24769, 24770, 24644, 24514, 24513, 24385, 7742, 8772,
00560 24509, 24382, 24255, 24512, 24257, 24386, 24515, 24641, 24771,
00561 24898, 25025, 24896, 25023, 24894, 24765, 24634, 24508,
00562 24510, 24382, 24255, 24256, 24385, 24514, 24641, 24769, 24767,
00563 24511, 8773, 24385, 24386, 24515, 24641, 24771, 24898, 24897,
00564 8512, 24895, 24894, 24765, 24634, 24508, 24510, 24382, 24383,
00565 8010, 7352, 24511, 24767, 24769, 24513, 7368, 7350, 24513,
00566 24769, 24767, 24638, 24510, 24511, 7502, 7364, 24511, 24767,
00567 24769, 24513, 8244, 24511, 24767, 24769, 24513, 7368, 7364,
00568 24511, 24767, 24769, 24513, 8242, 24513, 24769, 24767, 24638,
00569 24510, 24511, 7502, 7371, 24510, 24756, 24780, 24514, 8254,
00570 24634, 8245, 24511, 24767, 24769, 24513, 7368, 7239, 24767,
00571 24511, 24513, 24641, 24770, 24769, 24897, 25024, 25023, 24767,
00572 24766, 24638, 24510, 24511, 24126, 24637, 8398, 24895, 24767,
00573 24766, 24638, 24510, 24382, 7991, 24511, 24767, 24769, 24513,
00574 7880, 7243, 24505, 8519, 24377, 7356, 7243, 24505, 8519,
00575 24377, 9415, 24505, 8519, 24377, 7356, 7499, 24383, 24510,
00576 24638, 24766, 24895, 24896, 24897, 24770, 24642, 24514, 24385,
00577 24384, 7733, 9295, 22304, 9297, 8143, 24382, 24381, 24380,
00578 24507, 24636, 24763, 24892, 24893, 24894, 8030, 24380, 24509,
00579 24507, 24636, 24763, 24765, 24892, 7375, 7119, 24894, 24893,
00580 24892, 24763, 24636, 24507, 24380, 24381, 24382, 8542, 24892,
00581 24765, 24763, 24636, 24507, 24509, 24380, 7887, 7247, 24608,
00582 8416, 24608, 8160, 25536, 7328, 25536, 7121, 7887, 24608,
00583 8416, 24608, 7392, 25536, 7328, 25536, 7249, 7887, 24253,
00584 24509, 24638, 24765, 25021, 8012, 24509, 24636, 24765, 8510,
00585 24254, 25022, 8256, 24253, 24509, 24638, 24765, 25021, 8012,
00586 24509, 24636, 24765, 7631, 7375, 25021, 24765, 24638, 24509,
00587 24253, 8524, 24765, 24636, 24509, 7998, 25022, 24254, 8256,
00588 25021, 24765, 24638, 24509, 24253, 8524, 24765, 24636, 24509,
00589 7631, 8015, 23728, 25520, 7249, 7247, 25520, 23728, 8017,
00590 7247, 24608, 7249, 7231, 26944, 7233, 8392, 24622, 7113,
00591 26944, 7233, 8263, 24623, 7241, 26688, 6199, 26688, 7242,
00592 7238, 26418, 8270, 22834, 9032, 8392, 24511, 24767, 24769,
00593 24513, 7095, 26944, 7097, 24511, 24767, 24769, 24513, 8392,
00594 7234, 26944, 5946, 26944, 7236, 9288, 22830, 8012, 26944,
00595 5946, 26944, 7236, 9288, 22583, 26679, 7242, 7240, 26679,
00596 22583, 9290, 9291, 22585, 26681, 6206, 26688, 6203, 26688,
00597 7242, 7243, 26681, 22585, 8254, 26688, 6203, 26688, 7242,
00598 9402, 24384, 24385, 24386, 24260, 24513, 24385, 24384, 24383,
00599 24510, 24638, 24766, 24895, 24896, 24897, 24769, 25028, 24898,
00600 24897, 24896, 7228, 9287, 23744, 24127, 24383, 24382, 24509,
00601 24638, 24765, 24894, 24895, 25151, 25536, 7241, 7239, 24633,
00602 24764, 24766, 24894, 25023, 24896, 25025, 24898, 24770, 24772,
00603 24647, 7225, 7239, 25536, 25151, 24895, 24894, 24765, 24638,
00604 24509, 24382, 24383, 24127, 23744, 9289, 7223, 24647, 24772,
00605 24770, 24898, 25025, 24896, 25023, 24894, 24766, 24764, 24633,
00606 7241, 9287, 23744, 24127, 24383, 24382, 24509, 24638, 24765,
00607 24894, 24895, 25151, 25536, 6216, 26176, 7745, 9153, 25022,
00608 24254, 7879, 25275, 23995, 6725, 26816, 7361, 7493, 24899,
00609 24893, 7357, 25285, 25275, 7621, 24623, 7754, 7617, 24254,
00610 25022, 8647, 23995, 25275, 7621, 26816, 7233, 7481, 24893,
00611 24899, 7363, 25275, 25285, 7628, 24623, 7753, 8639, 24515,
00612 24513, 24385, 24384, 24255, 24381, 24509, 24637, 24766, 24767,
00613 24895, 24896, 25025, 24898, 24771, 24773, 24645, 24515,
00614 24513, 24385, 24256, 24383, 24511, 24639, 24768, 24641, 8507,
00615 24383, 24381, 24509, 24636, 24766, 8767, 24897, 24898, 24771,
00616 24773, 24645, 24515, 24386, 7605, 6987, 25643, 7381, 25517,
00617 9299, 23595, 7253, 26688, 6335, 26432, 7094, 9422, 24511,
00618 24767, 24769, 24641, 24513, 24384, 24383, 24382, 24510, 24509,
00619 24508, 24372, 24508, 24510, 9308, 24510, 24508, 24372, 24508,
00620 24509, 24510, 24382, 24383, 24384, 24513, 24641, 24769,
00621 24767, 24511, 9424, 9422, 24511, 24767, 24769, 24641, 24513,
00622 24384, 24383, 24382, 24510, 24509, 24508, 24372, 24508, 24510,
00623 9308, 24510, 24508, 24372, 24508, 24509, 24510, 24382, 24383,
00624 24384, 24513, 24641, 24769, 24767, 24511, 9302, 24255, 24382,
00625 24509, 24638, 24765, 24894, 25023, 24896, 25025, 24898,
00626 24771, 24642, 24515, 24386, 24257, 24384, 8378, 9534, 24510,
00627 24383, 24384, 24385, 24513, 24260, 24513, 24385, 24384, 24383,
00628 24510, 24638, 24766, 24895, 24896, 24897, 24769, 25028,
00629 24769, 24897, 24896, 24895, 24766, 24638, 7106, 9419, 22315,
00630 8917, 24894, 24638, 24510, 24383, 24384, 24386, 24642, 24770,
00631 24897, 24896, 24895, 25023, 25024, 25025, 24897, 7730, 24383,
00632 24510, 24638, 24894, 24896, 24897, 24770, 24642, 24386, 24384,
00633 7619, 9411, 24511, 24767, 24769, 24641, 24513, 24512, 24511,
00634 24510, 24379, 24381, 24382, 24383, 24256, 24257, 24514, 24643,
00635 24770, 25412, 24898, 24770, 24642, 24514, 24385, 24383,
00636 24510, 24638, 24765, 24893, 25273, 24894, 25023, 24768, 24769,
00637 24641, 6334, 24385, 24514, 24643, 24770, 24898, 8262, 24766,
00638 25653, 24894, 24895, 7370, 9027, 24514, 24385, 24256, 24383,
00639 24511, 24509, 24637, 24766, 24895, 25024, 24897, 24770, 7624,
00640 24382, 24509, 24637, 24766, 24767, 9163, 24504, 24638, 24895,
00641 24896, 24898, 24771, 24642, 24515, 24514, 24386, 24385, 24257,
00642 24256, 24255, 24383, 24382, 24510, 24509, 24637, 24765,
00643 24766, 24894, 24895, 25023, 25024, 25025, 24897, 24769, 8013,
00644 24504, 24638, 24767, 7749, 7759, 24611, 8797, 24611, 8790,
00645 24511, 24767, 24769, 24641, 24386, 24257, 24128, 24255, 24382,
00646 24638, 24766, 24767, 24895, 25406, 24895, 24894, 6473, 24894,
00647 24895, 25406, 24895, 24767, 24766, 24636, 24382, 24255,
00648 24128, 24257, 24386, 24641, 24769, 24767, 24511, 8775, 8139,
00649 23716, 9948, 23716, 7505, 26432, 6330, 26432, 7238, 8136,
00650 24511, 24767, 24769, 24641, 24514, 24385, 24384, 24383, 24510,
00651 24638, 24766, 24894, 25277, 7365, 25277, 24894, 24766, 24638,
00652 24510, 24382, 7756, 24382, 24510, 24638, 24766, 24894, 25277,
00653 7365, 25277, 24894, 24766, 24638, 24510, 24383, 24384, 24385,
00654 24514, 24641, 24769, 24767, 24511, 8142, 7755, 24510, 24766,
00655 24770, 24514, 8256, 24612, 8273, 24509, 24754, 24782, 24515,
00656 7492, 24895, 24897, 24385, 24383, 8256, 26176, 7744, 24895,
00657 24897, 24385, 24383, 7484, 7755, 24510, 24766, 24770, 24514,
00658 8256, 24626, 8260, 24510, 24892, 24510, 24514, 24900, 24514,
00659 8252, 24626, 8260, 24510, 24766, 24770, 24514, 7505, 24895,
00660 24897, 24385, 24383, 8256, 26176, 7744, 24895, 24897, 24385,
00661 24383, 7218, 24895, 24897, 24385, 24383, 8256, 26176, 7744,
00662 24895, 24897, 24385, 24383, 7498, 8651, 24619, 6613, 26304,
00663 7222, 25664, 6581, 26304, 7242, 7622, 25394, 8270, 23858,
00664 7754, 26426, 8262, 22842, 8900, 7232, 6720, 6208, 5696, 5184,
00665 4672, 4160, 3648, 3136, 5196, 5172, 5192, 5176, 5188, 5180,
00666 7232, 26688, 7240, 24624, 8264, 7224, 26704, 6208, 26672,
00667 7240, 8248, 25672, 23624, 23608, 25656, 8264, 7224, 26688,
00668 24656, 22592, 24624, 9288, 7232, 25152, 25156, 8260, 24636,
00669 25148, 8768, 24128, 24124, 8252, 24644, 24132, 8768, 7224,
00670 25156, 24648, 7748, 25148, 25664, 8772, 24124, 24632, 8764,
00671 24132, 23616, 8772, 7232, 26688, 7240, 24624, 8768, 23616,
00672 7748, 24648, 8772, 25664, 8764, 24632, 7236, 7224, 26704,
00673 6208, 26672, 8260, 24124, 7232, 24132, 8264, 25156, 9280,
00674 25148, 7228, 7744, 24128, 8264, 25148, 8768, 24644, 9280,
00675 24124, 8252, 25152, 8248, 24132, 7744, 24636, 7232, 25156,
00676 8772, 7228, 24648, 25156, 25664, 25148, 24632, 24124, 23616,
00677 24132, 9284, 8644, 24511, 24767, 24769, 24641, 24386, 24385,
00678 24256, 24255, 24382, 24509, 24638, 24765, 24894, 25023, 24896,
00679 25025, 24898, 7371, 24383, 24382, 24509, 24638, 24765, 24894,
00680 24895, 8401, 24620, 7882, 7234, 26944, 24636, 7234, 6964,
00681 26944, 6988, 7235, 24770, 24897, 24896, 25023, 24895, 25023,
00682 24896, 24897, 24770, 5945, 26944, 5948, 26944, 7237, 7237,
00683 24767, 24511, 24513, 24641, 24770, 24769, 24897, 25024, 25023,
00684 24767, 24766, 24638, 24510, 24511, 24126, 8395, 24895, 24767,
00685 24766, 24638, 24510, 24382, 8013, 24510, 24753, 24783, 24514,
00686 8254, 24632, 8246, 24511, 24767, 24769, 24513, 7880, 7745,
00687 24254, 25022, 8647, 23995, 25275, 7621, 26944, 7621, 25275,
00688 23995, 8647, 25022, 24254, 7747, 9287, 23744, 24127, 24383,
00689 24382, 24509, 24638, 24765, 24894, 24895, 25151, 25536, 6216,
00690 26176, 8138, 23980, 8523, 6987, 25515, 25557, 6714, 25920,
00691 7227, 9287, 23232, 24383, 24382, 24510, 24638, 24766, 24894,
00692 24895, 26048, 6204, 26688, 7241, 7239, 26048, 24895, 24894,
00693 24766, 24638, 24510, 24382, 24383, 23232, 8252, 26688, 7241,
00694 7879, 24255, 24382, 24509, 24638, 24765, 24894, 25023, 24896,
00695 25025, 24898, 24771, 24642, 24515, 24386, 24257, 24384, 8382,
00696 24630, 7621, 25920, 7360, 7879, 24255, 24382, 24509, 24638,
00697 24765, 24894, 25023, 24896, 25025, 24898, 24771, 24642, 24515,
00698 24386, 24257, 24384, 8893, 23608, 8264, 25656, 7492, 7499,
00699 24619, 8405, 24619, 8267, 24898, 25025, 24896, 25023, 24766,
00700 24629, 7758, 24895, 24766, 24629, 6485, 25152, 7723, 25536,
00701 8768, 25536, 7636, 22840, 9406, 7115, 24896, 24895, 24767,
00702 24766, 25394, 24766, 24767, 6741, 24894, 24766, 25394, 24766,
00703 24895, 24768, 7246, 23602, 9294, 23730, 9556, 23351, 8895,
00704 7108, 25152, 25396, 7372, 25522, 25819, 6703, 6704, 27456,
00705 6736, 6737, 27456, 6703, 6991, 26912, 6993 };
00706
00707
00708
00709 integer i__1, i__2;
00710
00711
00712 static integer ioff, istr;
00713 static real xcur, ycur, scale;
00714 static integer is;
00715 #define nstrok ((integer *)&equiv_38)
00716 static integer ich, inc;
00717 #define ns01 ((integer *)&equiv_38)
00718 #define ns02 ((integer *)&equiv_38 + 100)
00719 #define ns03 ((integer *)&equiv_38 + 200)
00720 #define ns04 ((integer *)&equiv_38 + 300)
00721 #define ns05 ((integer *)&equiv_38 + 400)
00722 #define ns06 ((integer *)&equiv_38 + 500)
00723 #define ns07 ((integer *)&equiv_38 + 600)
00724 #define ns08 ((integer *)&equiv_38 + 700)
00725 #define ns09 ((integer *)&equiv_38 + 800)
00726 #define ns10 ((integer *)&equiv_38 + 900)
00727 #define ns11 ((integer *)&equiv_38 + 1000)
00728 #define ns12 ((integer *)&equiv_38 + 1100)
00729 #define ns13 ((integer *)&equiv_38 + 1200)
00730 #define ns14 ((integer *)&equiv_38 + 1300)
00731 #define ns15 ((integer *)&equiv_38 + 1400)
00732 #define ns16 ((integer *)&equiv_38 + 1500)
00733 static integer kst;
00734 #define ns17 ((integer *)&equiv_38 + 1600)
00735 #define ns18 ((integer *)&equiv_38 + 1700)
00736 #define ns19 ((integer *)&equiv_38 + 1800)
00737 #define ns20 ((integer *)&equiv_38 + 1900)
00738 #define ns21 ((integer *)&equiv_38 + 2000)
00739 #define ns22 ((integer *)&equiv_38 + 2100)
00740 #define ns23 ((integer *)&equiv_38 + 2200)
00741 #define ns24 ((integer *)&equiv_38 + 2300)
00742 #define ns25 ((integer *)&equiv_38 + 2400)
00743 #define ns26 ((integer *)&equiv_38 + 2500)
00744 #define ns27 ((integer *)&equiv_38 + 2600)
00745 #define ns28 ((integer *)&equiv_38 + 2700)
00746 #define ns29 ((integer *)&equiv_38 + 2800)
00747 #define ns30 ((integer *)&equiv_38 + 2900)
00748 #define ns31 ((integer *)&equiv_38 + 3000)
00749 #define ns32 ((integer *)&equiv_38 + 3100)
00750 #define ns33 ((integer *)&equiv_38 + 3200)
00751 #define ns34 ((integer *)&equiv_38 + 3300)
00752 #define ns35 ((integer *)&equiv_38 + 3400)
00753 #define ns36 ((integer *)&equiv_38 + 3500)
00754 #define ns37 ((integer *)&equiv_38 + 3600)
00755 #define ns38 ((integer *)&equiv_38 + 3700)
00756 #define ns39 ((integer *)&equiv_38 + 3800)
00757
00758
00759
00760
00761
00762
00763
00764
00765
00766
00767
00768
00769
00770
00771
00772 --lstr;
00773 --ystr;
00774 --xstr;
00775
00776
00777
00778
00779
00780
00781
00782
00783
00784
00785
00786
00787
00788
00789 *nstr = 0;
00790 xcur = 0.f;
00791 ycur = 0.f;
00792 scale = .051f;
00793
00794 i__1 = *nch;
00795 for (inc = 1; inc <= i__1; ++inc) {
00796
00797
00798
00799 ich = *(unsigned char *)&ch[inc - 1];
00800 if (ich <= 0) {
00801 ich += 256;
00802 }
00803
00804 ioff = noff[ich];
00805 istr = numstr[ich];
00806
00807
00808
00809
00810
00811
00812
00813
00814
00815
00816 if (ioff <= 0) {
00817 if (istr == 1) {
00818 xcur -= scale * 2.666667f;
00819 ycur += scale * 12.f;
00820 scale *= .6666667f;
00821 } else if (istr == 2) {
00822 scale *= 1.5f;
00823 xcur += scale * 4.f;
00824 ycur -= scale * 12.f;
00825 } else if (istr == 3) {
00826 xcur -= scale * 2.666667f;
00827 ycur -= scale * 12.f;
00828 scale *= .6666667f;
00829 } else if (istr == 4) {
00830 scale *= 1.5f;
00831 xcur += scale * 4.f;
00832 ycur += scale * 12.f;
00833 } else if (istr >= 5 && istr <= 11) {
00834 ++(*nstr);
00835 lstr[*nstr] = istr + 96;
00836 xstr[*nstr] = xcur;
00837 ystr[*nstr] = ycur;
00838 }
00839
00840
00841
00842
00843 } else if (ich == 10) {
00844 xcur = 0.f;
00845 ycur += -1.1f;
00846
00847
00848
00849
00850 } else {
00851 i__2 = istr - 1;
00852 for (is = 0; is <= i__2; ++is) {
00853 ++(*nstr);
00854 kst = nstrok[ioff + is - 1];
00855
00856 lstr[*nstr] = 0;
00857 if (kst >= 16384) {
00858 lstr[*nstr] = 1;
00859 kst += -16384;
00860 }
00861
00862 xcur += scale * (real) (kst / 128 - 64);
00863 ycur += scale * (real) (kst % 128 - 64);
00864 if (is == istr - 1) {
00865 xcur += scale * 24.f;
00866 }
00867
00868 xstr[*nstr] = xcur;
00869 ystr[*nstr] = ycur;
00870
00871 }
00872 }
00873
00874
00875 }
00876 return 0;
00877 }
00878
00879 #undef ns39
00880 #undef ns38
00881 #undef ns37
00882 #undef ns36
00883 #undef ns35
00884 #undef ns34
00885 #undef ns33
00886 #undef ns32
00887 #undef ns31
00888 #undef ns30
00889 #undef ns29
00890 #undef ns28
00891 #undef ns27
00892 #undef ns26
00893 #undef ns25
00894 #undef ns24
00895 #undef ns23
00896 #undef ns22
00897 #undef ns21
00898 #undef ns20
00899 #undef ns19
00900 #undef ns18
00901 #undef ns17
00902 #undef ns16
00903 #undef ns15
00904 #undef ns14
00905 #undef ns13
00906 #undef ns12
00907 #undef ns11
00908 #undef ns10
00909 #undef ns09
00910 #undef ns08
00911 #undef ns07
00912 #undef ns06
00913 #undef ns05
00914 #undef ns04
00915 #undef ns03
00916 #undef ns02
00917 #undef ns01
00918 #undef nstrok
00919
00920
00921
00922
00923
00924 int zzconv_(char *chin, integer *nchin, char *chout, integer
00925 *nchout, ftnlen chin_len, ftnlen chout_len)
00926 {
00927
00928
00929 static char chesc[15] = "\\esc ";
00930 static char chnesc[15] = "\\noesc ";
00931 static char chtex[15*113] = "\\Plus " "\\Cross " "\\Dia"
00932 "mond " "\\Box " "\\FDiamond " "\\FBox "
00933 " " "\\FPlus " "\\FCross " "\\Burst "
00934 "\\Octagon " "\\alpha " "\\beta " "\\gamm"
00935 "a " "\\delta " "\\epsilon " "\\zeta "
00936 " " "\\eta " "\\theta " "\\iota "
00937 "\\kappa " "\\lambda " "\\mu " "\\nu "
00938 " " "\\xi " "\\omicron " "\\pi "
00939 " " "\\rho " "\\sigma " "\\tau "
00940 "\\upsilon " "\\phi " "\\chi " "\\psi "
00941 " " "\\omega " "\\Alpha " "\\Beta "
00942 " " "\\Gamma " "\\Delta " "\\Epsilon "
00943 "\\Zeta " "\\Eta " "\\Theta " "\\Iota"
00944 " " "\\Kappa " "\\Lambda " "\\Mu "
00945 " " "\\Nu " "\\Xi " "\\Omicron "
00946 "\\Pi " "\\Rho " "\\Sigma " "\\Tau "
00947 " " "\\Upsilon " "\\Phi " "\\Chi "
00948 " " "\\Psi " "\\Omega " "\\propto "
00949 "\\int " "\\times " "\\div " "\\appr"
00950 "ox " "\\partial " "\\cap " "\\? "
00951 " " "\\langle " "\\rangle " "\\ddagger "
00952 "\\pm " "\\leq " "\\S " "\\hbar"
00953 " " "\\lambar " "\\cup " "\\degree "
00954 " " "\\nabla " "\\downarrow " "\\leftarrow "
00955 "\\rightarrow " "\\leftrightarrow" "\\oint " "\\in "
00956 " " "\\notin " "\\surd " "\\_ "
00957 " " "\\bar " "\\exists " "\\geq "
00958 "\\forall " "\\subset " "\\oplus " "\\otim"
00959 "es " "\\dagger " "\\neq " "\\supset "
00960 " " "\\infty " "\\uparrow " "\\# "
00961 "\\$ " "\\% " "\\& " "\\{ "
00962 " " "\\} " "\\\\ " "\\cents "
00963 " " "\\black " "\\red " "\\blue "
00964 "\\green " "\\yellow " "\\magenta " "\\cyan"
00965 " ";
00966 static integer ichext[113] = { 176,177,178,179,180,181,182,183,184,185,
00967 225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,
00968 241,242,243,244,245,246,247,248,193,194,195,196,197,198,199,200,
00969 201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,
00970 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
00971 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
00972 186,187,188,189,190,191,255,96,35,36,37,38,123,125,92,94,148,149,
00973 150,151,152,153,154 };
00974
00975
00976 integer i__1;
00977
00978
00979 integer s_cmp(char *, char *, ftnlen, ftnlen);
00980 int s_copy(char *, char *, ftnlen, ftnlen);
00981
00982
00983 static logical lesc;
00984 static integer itop;
00985 static logical lout;
00986 static integer i__, nused, nsupb;
00987 static char chcont[15];
00988 static integer ntsupb[10], inc;
00989
00990
00991
00992
00993
00994
00995
00996
00997
00998
00999
01000
01001
01002
01003
01004
01005
01006
01007
01008
01009
01010
01011
01012
01013
01014
01015
01016
01017
01018
01019
01020
01021
01022
01023 *nchout = 0;
01024 nsupb = 0;
01025 inc = 1;
01026
01027
01028
01029
01030 lesc = TRUE_;
01031 L100:
01032
01033
01034
01035
01036 lout = FALSE_;
01037
01038
01039
01040
01041 if (lesc && *(unsigned char *)&chin[inc - 1] == '^' && inc < *nchin) {
01042 ++nsupb;
01043 i__1 = inc;
01044 if (s_cmp(chin + i__1, "{", inc + 1 - i__1, 1L) == 0) {
01045 ntsupb[nsupb - 1] = 2;
01046 nused = 2;
01047 } else {
01048 ntsupb[nsupb - 1] = 1;
01049 nused = 1;
01050 }
01051 ++(*nchout);
01052 *(unsigned char *)&chout[*nchout - 1] = 144;
01053
01054
01055
01056
01057
01058 } else if (lesc && *(unsigned char *)&chin[inc - 1] == '_' && inc < *
01059 nchin) {
01060 ++nsupb;
01061 i__1 = inc;
01062 if (s_cmp(chin + i__1, "{", inc + 1 - i__1, 1L) == 0) {
01063 ntsupb[nsupb - 1] = -2;
01064 nused = 2;
01065 } else {
01066 ntsupb[nsupb - 1] = -1;
01067 nused = 1;
01068 }
01069 ++(*nchout);
01070 *(unsigned char *)&chout[*nchout - 1] = 146;
01071
01072
01073
01074
01075
01076
01077
01078 } else if (lesc && *(unsigned char *)&chin[inc - 1] == '}' && nsupb > 0) {
01079 nused = 1;
01080 ++(*nchout);
01081 if (ntsupb[nsupb - 1] > 0) {
01082 *(unsigned char *)&chout[*nchout - 1] = 145;
01083 } else {
01084 *(unsigned char *)&chout[*nchout - 1] = 147;
01085 }
01086 --nsupb;
01087
01088
01089
01090
01091
01092
01093 } else if (! lesc || *(unsigned char *)&chin[inc - 1] != '\\') {
01094 lout = TRUE_;
01095 nused = 1;
01096 ++(*nchout);
01097 *(unsigned char *)&chout[*nchout - 1] = *(unsigned char *)&chin[inc -
01098 1];
01099
01100
01101
01102
01103
01104 } else if (inc == *nchin) {
01105
01106 goto L8000;
01107
01108
01109
01110
01111
01112
01113 } else {
01114 itop = inc + 1;
01115
01116
01117
01118
01119
01120
01121 i__1 = *(unsigned char *)&chin[itop - 1];
01122 if (i__1 >= 'A' && i__1 <= 'Z' || i__1 >= 'a' && i__1 <= 'z') {
01123 L200:
01124 ++itop;
01125 if (itop > *nchin) {
01126 goto L300;
01127 }
01128 i__1 = *(unsigned char *)&chin[itop - 1];
01129 if (i__1 >= 'A' && i__1 <= 'Z' || i__1 >= 'a' && i__1 <= 'z') {
01130 goto L200;
01131 }
01132 L300:
01133 --itop;
01134
01135
01136
01137
01138 if (itop < *nchin) {
01139 i__1 = itop;
01140 if (s_cmp(chin + i__1, " ", itop + 1 - i__1, 1L) == 0) {
01141 ++itop;
01142 }
01143 }
01144 }
01145
01146
01147
01148
01149
01150 nused = itop - inc + 1;
01151 s_copy(chcont, chin + (inc - 1), 15L, itop - (inc - 1));
01152
01153 for (i__ = 1; i__ <= 113; ++i__) {
01154 if (s_cmp(chcont, chtex + (i__ - 1) * 15, 15L, 15L) == 0) {
01155 goto L410;
01156 }
01157
01158 }
01159 i__ = 0;
01160 L410:
01161
01162
01163
01164
01165 if (i__ > 0) {
01166 lout = TRUE_;
01167 ++(*nchout);
01168 *(unsigned char *)&chout[*nchout - 1] = (char) ichext[i__ - 1];
01169
01170
01171
01172
01173 } else if (s_cmp(chcont, chnesc, 15L, 15L) == 0) {
01174 lesc = FALSE_;
01175 } else if (s_cmp(chcont, chesc, 15L, 15L) == 0) {
01176 lesc = TRUE_;
01177 }
01178 }
01179
01180
01181
01182
01183
01184 if (lout && nsupb > 0) {
01185 if (ntsupb[nsupb - 1] == 1) {
01186 --nsupb;
01187 ++(*nchout);
01188 *(unsigned char *)&chout[*nchout - 1] = 145;
01189
01190
01191 } else if (ntsupb[nsupb - 1] == -1) {
01192 --nsupb;
01193 ++(*nchout);
01194 *(unsigned char *)&chout[*nchout - 1] = 147;
01195
01196 }
01197 }
01198
01199
01200
01201
01202 inc += nused;
01203 if (inc <= *nchin) {
01204 goto L100;
01205 }
01206
01207
01208 L8000:
01209 return 0;
01210 }
01211