diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e52e269 --- /dev/null +++ b/.gitignore @@ -0,0 +1,161 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +.idea +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ \ No newline at end of file diff --git a/eps-to-plotter.sh b/eps-to-plotter.sh new file mode 100644 index 0000000..2fd8b9b --- /dev/null +++ b/eps-to-plotter.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +if [ $# -ne 1 ] || [ "${1##*.}" != "eps" ]; then + echo "Usage: $0 input.eps" + exit 1 +fi + +input_file="$1" +output_file="output/$(basename "${input_file%.*}")-distilled.hpgl" + +# Create output directory if it doesn't exist +mkdir -p output + +# Convert EPS to HPGL using pstoedit +pstoedit -f plot-hpgl "$input_file" output.hpgl + +# Distill HPGL using hpgl-distiller +hpgl-distiller -i output.hpgl -o "$output_file" + +echo "plotting $output_file" +# Plot the distilled HPGL file using plot_hpgl_file.py +python plot_hpgl_file.py "$output_file" + +# Remove the intermediate output file +rm output.hpgl + +echo "Done. Output file: $output_file" diff --git a/input/smiley-blue.eps b/input/smiley-blue.eps new file mode 100644 index 0000000..479f5ae Binary files /dev/null and b/input/smiley-blue.eps differ diff --git a/output/smiley-blue-distilled.hpgl b/output/smiley-blue-distilled.hpgl new file mode 100644 index 0000000..612ff92 --- /dev/null +++ b/output/smiley-blue-distilled.hpgl @@ -0,0 +1,556 @@ +IN;PU; +IN; +PA1137,480; +PD; +PA1381,481,1381,632,1380,640,1380,641,1139,640,1136,640,1136,631,1137,478,1137,480; +PU; +PA1138,807; +PD; +PA1382,808,1381,960,1381,968,1137,967,1137,958,1138,799,1138,807; +PU; +PA4066,1462; +PD; +PA4006,1461,4002,1444,3999,1435,3997,1426,3995,1417,3992,1408,3989,1399,3986,1390,3984,1381,3981,1372,3826,1421,3825,1418,3824,1415,3823,1413,3822,1410,3819,1398,3815,1387,3811,1375,3807,1363,3802,1352,3798,1340,3794,1328,3789,1317,3787,1313,3786,1309,3784,1305,3782,1301,3775,1284,3768,1267,3761,1251,3754,1235,3746,1219,3738,1202,3730,1186,3721,1170,3746,1157,3777,1141,3780,1139,3796,1130,3821,1117,3822,1117,3864,1094,3869,1103,3874,1112,3879,1121,3884,1131,3885,1133,3886,1135,3887,1137,3888,1139,3888,1140,3888,1141,3889,1141,3891,1145,3893,1149,3895,1154,3897,1158,3905,1175,3913,1193,3921,1211,3929,1229,3936,1247,3943,1265,3950,1283,3957,1301,4067,1302,4067,1318,4066,1478,4066,1462; +PU; +PA4067,1789; +PD; +PA4059,1789,4059,1793,4060,1797,4060,1801,4060,1805,4061,1823,4062,1841,4063,1859,4064,1877,4064,1895,4065,1913,4065,1931,4065,1949,4065,1950,3903,1951,3903,1950,3903,1949,3903,1948,3903,1930,3902,1912,3902,1894,3901,1876,3900,1858,3899,1841,3898,1823,3897,1805,3897,1801,3897,1796,3896,1792,3896,1788,3895,1775,3894,1762,3892,1749,3891,1736,3890,1723,3888,1710,3886,1697,3885,1684,4045,1661,4043,1646,4042,1638,4041,1629,4066,1629,4068,1629,4068,1646,4067,1806,4067,1789; +PU; +PA4066,2447; +PD; +PA3822,2446,3823,2311,3823,2286,4067,2287,4067,2312,4066,2472,4066,2447; +PU; +PA4067,2791; +PD; +PA3823,2790,3824,2638,3824,2630,4066,2631,4068,2631,4068,2639,4067,2799,4067,2791; +PU; +PA1869,483; +PD; +PA1869,529,1880,523,1890,517,1901,511,1911,506,1922,500,1933,494,1943,489,1954,484,1869,483,1869,482,1957,482,1961,480,1965,478,1968,477,1970,476,1972,475,1980,471,1989,467,1998,463,2007,459,2014,475,2017,482,2018,484,2073,607,2065,611,2058,614,2051,617,2043,621,2036,624,2029,628,2022,631,2015,635,2011,637,2007,639,2003,641,2000,643,1999,643,1998,643,1998,644,1994,646,1991,647,1987,649,1985,650,1983,651,1969,659,1955,668,1940,676,1926,685,1912,693,1898,703,1884,712,1871,721,1870,721,1862,727,1853,733,1845,739,1840,742,1836,746,1765,650,1760,643,1759,642,1753,634,1739,615,1733,620,1727,624,1721,629,1715,634,1713,636,1710,637,1708,639,1705,641,1705,642,1704,642,1627,642,1627,650,1626,709,1615,720,1603,731,1592,742,1580,754,1569,765,1558,777,1547,789,1536,800,1535,801,1534,803,1532,805,1530,807,1529,808,1528,809,1382,808,1382,800,1383,649,1383,641,1625,642,1625,641,1625,633,1625,482,1869,483; +PU; +PA3822,492; +PD; +PA3822,491,4066,492,4066,484,4066,333,4067,333,4066,493,3822,492; +PU; +PA3334,537; +PD; +PA3323,530,3312,524,3302,518,3291,512,3280,506,3269,501,3258,495,3247,489,3334,490,3334,537; +PU; +PA3334,321; +PD; +PA3334,329,3091,327,3090,327,3090,320,3091,169,3091,168,3335,169,3335,170,3334,321; +PU; +PA3579,170; +PD; +PA3335,169,3335,162,3335,9,3579,10,3579,163,3579,170; +PU; +PA3577,482; +PD; +PA3577,489,3578,489,3578,491,3334,490,3334,488,3333,488,3333,481,3334,330,3334,329,3335,329,3578,330,3578,331,3577,482; +PU; +PA3822,324; +PD; +PA3822,331,3579,330,3578,330,3578,322,3579,171,3579,170,3823,171,3823,172,3822,324; +PU; +PA4067,165; +PD; +PA4067,172,3824,171,3823,171,3823,164,3824,11,4068,12,4067,165; +PU; +PA2358,317; +PD; +PA2358,324,2114,323,2113,323,2114,316,2114,165,2114,163,2115,163,2358,164,2358,166,2358,317; +PU; +PA2602,165; +PD; +PA2359,164,2358,164,2358,157,2359,4,2603,6,2602,158,2602,165; +PU; +PA2602,335; +PD; +PA2603,335,2604,335,2605,335,2606,335,2605,478,2605,485,2605,487,2605,498,2604,498,2603,498,2602,498,2586,498,2571,498,2556,498,2540,499,2525,500,2510,501,2494,502,2479,503,2448,506,2418,510,2388,514,2357,520,2351,521,2345,522,2339,523,2333,524,2325,485,2325,484,2323,477,2300,365,2315,362,2329,360,2343,357,2357,355,2358,326,2358,324,2602,325,2602,327,2602,335; +PU; +PA2846,319; +PD; +PA2846,326,2602,325,2602,318,2602,167,2602,165,2603,165,2846,166,2846,168,2846,319; +PU; +PA3091,168; +PD; +PA2847,166,2846,166,2846,159,2847,7,3091,8,3091,160,3091,168; +PU; +PA1382,160; +PD; +PA1382,161,1381,312,1381,320,1138,319,1137,319,1138,159,1139,159,1382,160; +PU; +PA1626,161; +PD; +PA1383,160,1382,160,1382,153,1383,0,1627,1,1626,154,1626,161; +PU; +PA1382,320; +PD; +PA1625,321,1625,322,1625,473,1625,481,1625,482,1381,481,1381,479,1380,479,1381,472,1381,321,1381,320,1382,320; +PU; +PA1869,315; +PD; +PA1869,322,1626,321,1625,321,1625,314,1626,162,1626,161,1627,161,1870,162,1870,164,1869,315; +PU; +PA2114,163; +PD; +PA1871,162,1870,162,1870,155,1871,2,2115,3,2114,156,2114,163; +PU; +PA3090,959; +PD; +PA3093,961,3097,963,3100,965,3104,967,3107,970,3111,972,3114,974,3117,976,3090,976,3090,967,3090,959; +PU; +PA3796,979; +PD; +PA3795,977,3793,975,3792,973,3790,970,3779,954,3767,937,3755,920,3743,904,3731,888,3718,871,3705,855,3692,840,3578,936,3568,945,3553,928,3539,911,3524,895,3508,879,3493,863,3477,848,3460,833,3444,818,3442,816,3439,813,3437,811,3434,809,3426,802,3418,795,3410,789,3402,782,3394,776,3386,769,3378,763,3369,756,3444,658,3450,650,3451,649,3457,642,3468,627,3470,629,3472,631,3477,634,3482,638,3487,642,3489,644,3492,646,3494,648,3497,650,3498,650,3577,651,3577,650,3577,642,3578,491,3822,492,3821,643,3821,651,3821,652,3579,651,3579,659,3579,721,3590,732,3602,743,3613,754,3624,765,3634,776,3645,787,3656,799,3666,810,3667,811,3668,812,3669,813,3670,814,3672,817,3674,819,3823,819,3822,971,3822,979,3796,979; +PU; +PA3823,819; +PD; +PA3823,811,3824,660,3824,652,4066,653,4066,652,4068,652,4068,661,4067,821,3823,819; +PU; +PA2601,1134; +PD; +PA2357,1132,2357,1124,2358,973,2602,974,2601,1125,2601,1134; +PU; +PA1870,1292; +PD; +PA2114,1293,2114,1309,2113,1453,1869,1452,1870,1308,1870,1292; +PU; +PA1871,1159; +PD; +PA1870,1292,1779,1291,1790,1274,1800,1257,1811,1240,1822,1223,1834,1206,1846,1190,1858,1174,1871,1159; +PU; +PA1196,1449; +PD; +PA1201,1432,1203,1423,1205,1414,1208,1405,1211,1396,1213,1387,1216,1378,1219,1369,1222,1360,1377,1408,1374,1419,1370,1429,1367,1439,1366,1444,1364,1449,1363,1453,1362,1458,1361,1462,1360,1464,1360,1466,1360,1467,1359,1468,1359,1470,1358,1471,1358,1472,1358,1473,1350,1506,1347,1514,1346,1518,1345,1522,1344,1527,1343,1531,1343,1535,1342,1539,1328,1605,1328,1609,1327,1617,1325,1625,1324,1633,1318,1671,1157,1649,1160,1632,1161,1625,1162,1616,1139,1616,1139,1625,1136,1625,1136,1608,1137,1448,1196,1449; +PU; +PA2846,1296; +PD; +PA2847,1296,3091,1297,3091,1314,3090,1457,2846,1456,2846,1313,2846,1296; +PU; +PA2603,1135; +PD; +PA2847,1136,2847,1153,2846,1296,2602,1295,2603,1152,2603,1135; +PU; +PA2358,1294; +PD; +PA2602,1295,2602,1312,2602,1455,2358,1454,2358,1310,2358,1294; +PU; +PA3335,1298; +PD; +PA3421,1299,3422,1301,3423,1303,3425,1307,3428,1311,3430,1315,3431,1316,3431,1318,3432,1320,3433,1321,3434,1322,3434,1323,3435,1324,3451,1315,3482,1299,3578,1247,3578,1248,3579,1248,3579,1249,3582,1256,3586,1262,3592,1274,3598,1287,3605,1300,3606,1304,3608,1308,3610,1312,3612,1316,3620,1334,3628,1351,3635,1369,3642,1387,3649,1405,3655,1423,3662,1441,3668,1460,3668,1461,3668,1462,3669,1465,3670,1467,3671,1469,3649,1476,3578,1498,3516,1518,3514,1513,3512,1507,3511,1502,3509,1497,3505,1486,3502,1475,3500,1471,3499,1467,3497,1463,3496,1459,3334,1458,3335,1315,3335,1298; +PU; +PA3335,1635; +PD; +PA3335,1626,3545,1627,3546,1635,3548,1643,3554,1675,3563,1729,3565,1743,3566,1758,3568,1772,3570,1787,3335,1786,3335,1642,3335,1635; +PU; +PA3466,2038; +PD; +PA3461,2028,3455,2018,3449,2008,3443,1999,3437,1989,3431,1980,3425,1971,3419,1962,3415,1958,3412,1954,3409,1950,3406,1946,3578,1947,3578,1948,3578,1949,3578,1950,3578,1963,3577,2106,3577,2123,3506,2123,3505,2118,3503,2114,3501,2110,3499,2106,3495,2097,3491,2088,3487,2080,3483,2071,3479,2063,3475,2054,3470,2046,3466,2038; +PU; +PA2359,1630; +PD; +PA2359,1621,2601,1623,2601,1615,2602,1471,2602,1455,2846,1456,2846,1472,2845,1616,2845,1624,2603,1623,2603,1631,2603,1639,2602,1782,2358,1781,2359,1638,2359,1630; +PU; +PA2601,2102; +PD; +PA2601,2118,2527,2118,2525,2114,2523,2110,2521,2106,2520,2102,2516,2093,2512,2085,2508,2077,2504,2069,2501,2061,2497,2053,2492,2045,2488,2038,2482,2027,2476,2017,2470,2006,2464,1996,2457,1986,2451,1977,2444,1967,2437,1958,2436,1956,2434,1954,2431,1950,2428,1945,2425,1941,2602,1942,2602,1959,2601,2102; +PU; +PA2846,1784; +PD; +PA2847,1640,2847,1632,2847,1624,3089,1625,3089,1617,3090,1474,3090,1457,3334,1458,3334,1475,3333,1618,3333,1626,3091,1625,3091,1633,3091,1641,3091,1779,3089,1779,3088,1779,3086,1779,3083,1779,3081,1779,3078,1779,3076,1779,3074,1780,3071,1780,3051,1781,3048,1781,3045,1782,3040,1783,3034,1783,3029,1784,2847,1784,2846,1784; +PU; +PA1144,1776; +PD; +PA1144,1780,1143,1784,1143,1788,1143,1792,1142,1810,1141,1828,1140,1846,1139,1864,1139,1882,1138,1900,1138,1918,1138,1936,1137,1936,1138,1776,1144,1776; +PU; +PA1380,2096; +PD; +PA1381,1953,1381,1938,1300,1938,1300,1937,1300,1936,1300,1918,1301,1900,1301,1883,1302,1865,1303,1847,1303,1829,1305,1811,1306,1793,1306,1789,1306,1785,1307,1781,1307,1776,1308,1763,1309,1750,1310,1737,1312,1724,1313,1711,1315,1698,1316,1685,1318,1671,1382,1680,1479,1694,1478,1704,1476,1715,1475,1725,1474,1735,1473,1746,1472,1756,1470,1777,1470,1781,1469,1785,1469,1790,1469,1794,1467,1812,1466,1829,1465,1847,1464,1865,1464,1883,1463,1901,1463,1919,1463,1937,1463,1938,1625,1938,1625,1954,1625,2098,1625,2114,1380,2113,1381,2096,1380,2096; +PU; +PA1871,1628; +PD; +PA1871,1619,2113,1620,2113,1613,2113,1469,2113,1453,2114,1453,2358,1454,2358,1470,2357,1614,2357,1621,2115,1620,2115,1629,2115,1637,2114,1779,2135,1780,2136,1780,2137,1780,2138,1780,2140,1780,2142,1780,2358,1781,2358,1798,2358,1872,2358,1873,2359,1873,2359,1874,2360,1874,2374,1887,2375,1888,2376,1888,2377,1889,2378,1890,2379,1892,2381,1894,2383,1895,2385,1897,2386,1899,2388,1901,2371,1941,2365,1958,2358,1975,2357,1975,2314,2079,2310,2073,2305,2066,2301,2060,2296,2054,2291,2048,2286,2042,2281,2036,2276,2030,2271,2025,2266,2019,2260,2014,2257,2011,2255,2008,2252,2006,2249,2003,2246,2001,2243,1998,2240,1996,2237,1993,2234,1991,2231,1989,2228,1986,2225,1984,2222,1982,2219,1980,2215,1977,2212,1975,2209,1973,2206,1971,2202,1969,2199,1967,2195,1966,2192,1964,2189,1962,2185,1960,2181,1959,2178,1957,2177,1957,2176,1957,2173,1955,2169,1954,2165,1953,2162,1952,2158,1950,2154,1949,2150,1948,2147,1948,2143,1947,2139,1946,2135,1946,2131,1945,2127,1945,2123,1944,2119,1944,2115,1944,2115,1940,2114,1797,2114,1792,2114,1785,2114,1780,2114,1779,2113,1779,2112,1779,2110,1779,2109,1779,2106,1779,2104,1779,2101,1779,2099,1779,2096,1780,2093,1780,2089,1780,1870,1779,1871,1636,1871,1628; +PU; +PA1632,2436; +PD; +PA1629,2460,1629,2463,1628,2477,1627,2484,1627,2490,1625,2516,1625,2518,1625,2460,1625,2436,1632,2436; +PU; +PA1625,2436; +PD; +PA1381,2435,1382,2300,1382,2275,1626,2276,1626,2301,1625,2436; +PU; +PA1381,2435; +PD; +PA1381,2459,1380,2594,1381,2594,1380,2619,1139,2618,1136,2618,1136,2593,1137,2433,1381,2435; +PU; +PA2602,2405; +PD; +PA2602,2406,2603,2413,2604,2420,2605,2427,2606,2435,2606,2436,2606,2437,2606,2439,2606,2440,2609,2440,2608,2453,2607,2463,2606,2465,2605,2477,2605,2484,2604,2490,2603,2516,2602,2529,2602,2536,2601,2541,2601,2543,2601,2547,2600,2574,2600,2600,2600,2607,2451,2607,2451,2599,2450,2577,2449,2547,2449,2546,2449,2545,2449,2544,2449,2543,2449,2541,2449,2539,2448,2531,2447,2512,2446,2502,2446,2493,2445,2484,2444,2474,2444,2473,2444,2472,2443,2471,2443,2469,2443,2467,2443,2465,2443,2464,2442,2458,2441,2452,2440,2446,2440,2439,2438,2425,2436,2411,2433,2397,2431,2383,2428,2370,2425,2356,2422,2342,2419,2329,2451,2304,2484,2280,2563,2221,2565,2228,2567,2235,2569,2243,2571,2250,2573,2258,2575,2265,2577,2273,2579,2280,2602,2280,2602,2305,2602,2405; +PU; +PA3823,2286; +PD; +PA3579,2285,3579,2150,3579,2125,3824,2126,3823,2151,3823,2286; +PU; +PA3579,2815; +PD; +PA3579,2810,3580,2806,3581,2801,3581,2797,3581,2795,3582,2793,3582,2791,3582,2789,3823,2790,3823,2798,3822,2950,3578,2949,3579,2815; +PU; +PA2602,2805; +PD; +PA2603,2804,2603,2802,2603,2799,2604,2796,2604,2792,2604,2790,2604,2788,2605,2786,2605,2784,2610,2784,2610,2783,2610,2782,2609,2781,2609,2779,2608,2760,2607,2751,2605,2737,2605,2730,2604,2724,2603,2699,2603,2698,2602,2684,2602,2678,2601,2673,2600,2640,2600,2633,2600,2625,2600,2624,2600,2607,2601,2607,2616,2607,2765,2607,2765,2625,2765,2633,2765,2637,2766,2667,2768,2702,2769,2707,2769,2712,2769,2716,2770,2721,2771,2730,2771,2735,2771,2740,2772,2751,2774,2762,2775,2774,2777,2785,2777,2786,2777,2787,2777,2789,2777,2791,2778,2792,2778,2793,2779,2805,2781,2817,2783,2828,2785,2840,2787,2851,2789,2863,2792,2874,2794,2886,2715,2945,2704,2953,2649,2994,2648,2989,2647,2983,2645,2978,2644,2973,2641,2963,2639,2952,2639,2951,2638,2950,2638,2948,2638,2947,2637,2946,2637,2945,2637,2944,2602,2944,2602,2806,2602,2805; +PU; +PA1382,2779; +PD; +PA1382,2787,1381,2939,1137,2937,1138,2778,1382,2779; +PU; +PA1380,3098; +PD; +PA1381,2947,1381,2939,1625,2940,1625,2948,1625,3099,1625,3108,1380,3106,1381,3098,1380,3098; +PU; +PA1627,3588; +PD; +PA1627,3589,1626,3748,1382,3747,1383,3588,1383,3587,1625,3588,1625,3429,1869,3430,1869,3589,1627,3588; +PU; +PA1754,3197; +PD; +PA1765,3216,1767,3219,1768,3221,1770,3223,1771,3226,1774,3230,1777,3235,1780,3239,1783,3243,1786,3248,1789,3252,1791,3254,1792,3257,1796,3261,1799,3266,1802,3270,1626,3269,1627,3109,1712,3110,1715,3118,1719,3127,1723,3136,1727,3144,1731,3153,1735,3161,1739,3169,1743,3177,1754,3197; +PU; +PA1382,3268; +PD; +PA1626,3269,1625,3429,1381,3428,1382,3268; +PU; +PA1380,3587; +PD; +PA1139,3586,1139,3587,1136,3587,1137,3427,1381,3428,1380,3587; +PU; +PA2846,3341; +PD; +PA2843,3337,2839,3334,2836,3331,2832,3328,2829,3324,2825,3321,2824,3319,2822,3318,2820,3316,2818,3314,2835,3275,2847,3248,2894,3136,2896,3139,2899,3142,2901,3146,2903,3149,2905,3152,2908,3155,2910,3158,2912,3162,2915,3165,2917,3168,2919,3171,2922,3174,2924,3177,2927,3179,2929,3182,2930,3184,2932,3185,2937,3191,2942,3196,2947,3202,2950,3205,2953,3207,2956,3210,2958,3213,2961,3215,2964,3218,2967,3220,2970,3223,2973,3225,2976,3227,2979,3230,2982,3232,2985,3234,2989,3236,2992,3238,2995,3240,2998,3243,3002,3245,3005,3246,3008,3248,3012,3250,3015,3252,3019,3254,3023,3255,3026,3257,3030,3258,3031,3259,3032,3259,3033,3259,3033,3260,3034,3260,3035,3260,3037,3261,3039,3262,3041,3262,3043,3263,3044,3263,3045,3263,3046,3264,3047,3264,3049,3265,3051,3265,3053,3266,3055,3266,3057,3266,3059,3267,3061,3267,3065,3268,3067,3268,3069,3268,3071,3269,3073,3269,3075,3269,3077,3269,3078,3270,3080,3270,3082,3270,3084,3270,3085,3270,3087,3270,3088,3270,3089,3270,3090,3270,3091,3270,3092,3270,3093,3270,3093,3276,3092,3435,3091,3435,3090,3435,3090,3436,2846,3434,2846,3341; +PU; +PA2691,3114; +PD; +PA2695,3122,2698,3131,2702,3139,2705,3147,2709,3154,2713,3162,2717,3170,2721,3177,2732,3197,2743,3216,2744,3219,2746,3221,2747,3223,2749,3226,2752,3230,2755,3235,2758,3239,2761,3243,2764,3248,2767,3252,2769,3255,2771,3258,2773,3261,2775,3263,2779,3269,2784,3274,2602,3274,2603,3114,2691,3114; +PU; +PA2360,3340; +PD; +PA2374,3327,2375,3326,2376,3326,2377,3325,2378,3324,2379,3322,2381,3320,2383,3319,2385,3317,2386,3315,2388,3313,2371,3273,2358,3241,2314,3135,2316,3132,2318,3129,2320,3126,2322,3124,2324,3121,2325,3118,2327,3115,2329,3112,2330,3111,2331,3109,2332,3107,2334,3105,2335,3103,2338,3098,2341,3093,2343,3087,2346,3082,2349,3077,2352,3072,2354,3067,2357,3061,2360,3056,2362,3051,2364,3046,2367,3040,2369,3035,2372,3030,2374,3025,2376,3019,2379,3011,2383,3003,2386,2994,2389,2986,2392,2977,2395,2969,2398,2960,2401,2951,2401,2950,2401,2949,2402,2948,2402,2947,2403,2945,2403,2944,2403,2943,2405,2936,2408,2929,2410,2922,2412,2915,2414,2907,2416,2900,2417,2893,2419,2885,2497,2944,2508,2952,2563,2993,2564,2988,2566,2983,2567,2978,2569,2973,2571,2962,2574,2952,2575,2950,2575,2948,2575,2947,2576,2946,2576,2945,2576,2944,2602,2944,2602,2952,2601,3104,2601,3112,2520,3112,2520,3113,2519,3113,2516,3122,2512,3130,2508,3138,2504,3145,2500,3153,2496,3161,2492,3169,2488,3176,2485,3183,2481,3189,2477,3196,2473,3202,2470,3209,2466,3215,2462,3221,2458,3227,2454,3233,2450,3239,2446,3245,2441,3251,2437,3256,2433,3262,2429,3267,2425,3273,2602,3274,2602,3433,2358,3432,2358,3342,2358,3341,2359,3341,2359,3340,2360,3340; +PU; +PA3823,3279; +PD; +PA4067,3280,4066,3440,3822,3439,3823,3279; +PU; +PA3579,3278; +PD; +PA3579,3118,3824,3119,3823,3279,3579,3278; +PU; +PA3091,3595; +PD; +PA3091,3755,2846,3754,2847,3594,3089,3595,3090,3436,3334,3437,3333,3596,3091,3595; +PU; +PA3335,3756; +PD; +PA3334,3916,3090,3914,3091,3755,3335,3756; +PU; +PA3335,3597; +PD; +PA3335,3596,3577,3597,3578,3438,3822,3439,3821,3598,3579,3597,3579,3598,3579,3757,3335,3756,3335,3597; +PU; +PA3578,3917; +PD; +PA3577,4077,3333,4075,3334,3916,3578,3917; +PU; +PA3823,3758; +PD; +PA3822,3918,3578,3917,3579,3757,3823,3758; +PU; +PA3824,3599; +PD; +PA3824,3598,4066,3599,4068,3599,4067,3759,3823,3758,3824,3599; +PU; +PA2358,3751; +PD; +PA2358,3911,2113,3910,2114,3750,2358,3751; +PU; +PA2359,3591; +PD; +PA2601,3593,2602,3433,2846,3434,2845,3594,2603,3593,2602,3752,2358,3751,2359,3592,2359,3591; +PU; +PA2602,3912; +PD; +PA2601,4072,2357,4071,2358,3911,2602,3912; +PU; +PA2846,3754; +PD; +PA2846,3913,2602,3912,2602,3752,2846,3754; +PU; +PA1381,3907; +PD; +PA1137,3906,1138,3746,1382,3747,1381,3907; +PU; +PA1625,3908; +PD; +PA1625,4068,1380,4066,1381,3907,1625,3908; +PU; +PA1870,3749; +PD; +PA1869,3909,1625,3908,1626,3748,1870,3749; +PU; +PA3579,1247; +PD; +PA3578,1247,3572,1236,3565,1224,3559,1212,3552,1201,3545,1190,3538,1178,3531,1167,3523,1156,3521,1152,3518,1148,3515,1144,3512,1139,3512,1138,3511,1138,3510,1137,3510,1136,3508,1133,3507,1131,3505,1129,3498,1119,3490,1109,3483,1099,3475,1089,3468,1079,3460,1069,3452,1059,3444,1050,3529,978,3539,969,3568,945,3570,948,3573,951,3576,954,3578,957,3581,960,3583,963,3586,966,3587,968,3588,970,3590,972,3592,974,3594,976,3595,978,3609,996,3623,1015,3636,1033,3650,1052,3662,1071,3675,1091,3687,1110,3698,1130,3700,1132,3701,1134,3702,1136,3703,1137,3703,1139,3704,1139,3704,1140,3705,1140,3706,1142,3707,1144,3709,1149,3711,1153,3714,1157,3716,1160,3717,1164,3719,1167,3721,1170,3579,1247; +PU; +PA3823,1692; +PD; +PA3724,1706,3714,1646,3714,1644,3712,1636,3711,1628,3709,1620,3702,1586,3701,1583,3701,1579,3700,1575,3699,1572,3698,1568,3697,1564,3695,1557,3688,1527,3686,1521,3684,1515,3683,1508,3681,1502,3679,1495,3677,1489,3673,1476,3673,1475,3672,1475,3672,1473,3671,1471,3671,1469,3701,1460,3822,1422,3826,1421,3829,1431,3832,1441,3835,1451,3837,1456,3838,1461,3839,1465,3840,1469,3841,1473,3842,1477,3843,1479,3844,1481,3844,1484,3844,1485,3845,1486,3853,1518,3855,1527,3856,1531,3857,1535,3858,1539,3859,1543,3860,1547,3861,1551,3874,1617,3875,1621,3876,1628,3877,1637,3879,1645,3885,1684,3823,1692; +PU; +PA2850,647; +PD; +PA2848,655,2847,658,2847,659,2841,687,2826,684,2812,681,2797,679,2782,676,2767,674,2753,671,2738,669,2723,668,2708,666,2693,665,2678,663,2663,662,2648,662,2633,661,2618,661,2603,660,2603,654,2604,646,2604,645,2604,638,2605,498,2635,498,2665,500,2696,502,2726,505,2756,508,2786,512,2816,517,2846,522,2853,524,2861,526,2868,527,2876,529,2852,639,2850,647; +PU; +PA3089,596; +PD; +PA3063,585,3037,576,3011,566,2984,558,2957,549,2930,542,2903,535,2876,529,2885,488,2885,486,2887,479,2911,370,2934,375,2956,381,2979,387,3001,393,3023,400,3045,407,3067,414,3089,422,3090,422,3104,427,3119,432,3133,438,3147,444,3161,449,3175,455,3189,462,3203,468,3197,481,3194,488,3193,489,3135,615,3124,610,3112,605,3101,600,3089,596; +PU; +PA3043,816; +PD; +PA2999,911,2981,902,2962,895,2943,887,2924,880,2905,873,2885,867,2866,861,2846,856,2846,966,2846,975,2602,974,2602,965,2602,823,2615,823,2628,823,2641,824,2654,825,2666,825,2679,827,2692,828,2705,829,2717,831,2730,832,2743,834,2755,836,2768,838,2781,841,2793,843,2806,846,2813,815,2815,806,2841,687,2842,688,2844,688,2845,688,2846,689,2847,689,2861,692,2875,696,2889,699,2903,703,2917,707,2931,711,2945,716,2959,720,2973,725,2986,730,3000,735,3014,740,3027,746,3041,751,3054,757,3067,763,3047,807,3043,816; +PU; +PA3335,802; +PD; +PA3330,809,3323,817,3271,886,3259,876,3246,867,3234,858,3221,850,3208,841,3195,833,3182,825,3168,817,3165,814,3161,812,3157,810,3154,808,3146,803,3138,799,3130,795,3122,791,3115,786,3107,782,3099,778,3091,774,3085,771,3079,769,3073,766,3067,763,3091,711,3116,656,3120,649,3120,648,3124,640,3135,615,3141,618,3148,621,3154,624,3160,628,3173,634,3186,640,3189,642,3193,644,3197,646,3201,648,3201,649,3202,649,3206,651,3210,653,3213,655,3217,657,3232,665,3247,674,3262,683,3277,692,3292,702,3306,711,3321,721,3335,731,3344,737,3352,744,3361,750,3365,753,3369,756,3335,802; +PU; +PA1870,791; +PD; +PA1878,802,1885,811,1933,876,1925,882,1917,888,1909,895,1901,901,1893,908,1885,914,1877,921,1870,927,1865,932,1860,936,1855,940,1851,944,1841,953,1832,962,1830,964,1828,966,1825,968,1824,969,1823,970,1815,978,1807,987,1799,995,1791,1004,1783,1012,1775,1021,1767,1029,1759,1038,1679,970,1669,961,1636,933,1650,916,1665,900,1679,885,1694,869,1710,854,1725,839,1741,824,1757,810,1758,809,1759,808,1762,806,1764,804,1767,801,1775,794,1784,787,1792,780,1801,773,1810,766,1818,759,1827,752,1836,746,1870,791; +PU; +PA2163,812; +PD; +PA2204,905,2223,897,2242,889,2261,882,2280,875,2299,869,2319,863,2338,857,2358,852,2358,964,2358,973,2113,972,2114,963,2114,951,2109,954,2104,957,2099,960,2094,963,2092,964,2091,965,2087,967,2084,969,2081,971,2074,976,2068,980,2061,984,2055,988,2049,993,2043,997,2036,1002,2030,1006,2004,971,1997,962,1933,876,1945,867,1957,859,1969,851,1981,842,1993,834,2006,827,2018,819,2031,811,2034,809,2038,807,2042,805,2046,803,2054,798,2063,793,2071,789,2080,784,2088,780,2097,775,2106,771,2114,767,2120,764,2126,761,2132,759,2139,756,2160,803,2163,812; +PU; +PA2113,591; +PD; +PA2140,580,2167,570,2194,561,2222,553,2249,545,2277,537,2305,530,2333,524,2356,637,2357,640,2358,644,2358,645,2359,651,2359,653,2366,684,2364,684,2362,684,2361,685,2359,685,2345,688,2331,691,2316,695,2302,699,2288,702,2275,706,2261,710,2247,715,2233,719,2219,724,2206,729,2192,734,2179,739,2165,745,2152,750,2139,756,2115,702,2092,652,2089,644,2088,643,2085,635,2073,607,2083,603,2093,599,2103,595,2113,591; +PU; +PA1488,1633; +PD; +PA1490,1626,1492,1617,1493,1610,1500,1574,1501,1570,1502,1566,1503,1563,1504,1559,1505,1555,1506,1552,1507,1544,1515,1515,1516,1509,1518,1503,1520,1497,1521,1491,1523,1485,1525,1479,1529,1467,1530,1464,1530,1462,1532,1457,1563,1467,1625,1486,1687,1505,1688,1501,1690,1496,1693,1486,1696,1477,1700,1467,1701,1463,1702,1459,1704,1455,1705,1451,1869,1452,1869,1468,1869,1611,1869,1619,1657,1618,1655,1627,1654,1635,1648,1662,1640,1716,1626,1714,1479,1694,1488,1634,1488,1633; +PU; +PA1597,1291; +PD; +PA1596,1293,1595,1295,1593,1299,1591,1303,1589,1307,1581,1324,1574,1342,1566,1360,1559,1378,1553,1396,1546,1414,1540,1432,1534,1450,1534,1451,1533,1452,1533,1453,1533,1454,1532,1455,1532,1456,1532,1457,1510,1450,1381,1410,1377,1408,1377,1406,1378,1405,1379,1401,1380,1397,1381,1394,1381,1393,1385,1382,1389,1371,1393,1360,1396,1350,1400,1339,1404,1328,1409,1317,1413,1306,1414,1302,1416,1298,1418,1294,1419,1290,1426,1273,1434,1256,1441,1240,1449,1223,1457,1207,1465,1190,1473,1174,1482,1158,1625,1235,1621,1242,1617,1249,1614,1256,1610,1263,1607,1270,1603,1277,1600,1284,1597,1291; +PU; +PA1412,960; +PD; +PA1424,942,1436,925,1448,909,1460,892,1473,875,1486,859,1499,843,1513,827,1625,923,1636,933,1635,934,1633,936,1631,939,1628,942,1625,945,1622,949,1619,953,1616,957,1613,961,1612,962,1611,963,1609,965,1608,967,1606,969,1592,987,1578,1006,1565,1024,1552,1043,1539,1062,1527,1081,1515,1100,1503,1120,1503,1121,1502,1122,1501,1124,1500,1125,1499,1126,1499,1127,1498,1129,1497,1130,1495,1134,1493,1138,1490,1143,1488,1147,1486,1149,1485,1152,1483,1155,1482,1157,1482,1158,1461,1147,1430,1130,1427,1128,1411,1119,1381,1103,1339,1081,1344,1071,1349,1062,1354,1053,1359,1044,1365,1035,1370,1026,1375,1017,1381,1008,1381,968,1406,968,1408,966,1409,964,1411,962,1412,960; +PU; +PA1954,2029; +PD; +PA1959,2023,1964,2017,1970,2012,1972,2009,1975,2007,1978,2004,1981,2001,1984,1999,1986,1996,1989,1994,1992,1991,1995,1989,1998,1987,2001,1984,2004,1982,2007,1980,2011,1978,2014,1976,2017,1974,2020,1972,2023,1970,2027,1968,2030,1966,2033,1964,2037,1962,2040,1961,2044,1959,2047,1958,2051,1956,2052,1956,2053,1955,2054,1955,2055,1955,2056,1954,2057,1954,2058,1954,2060,1953,2061,1952,2063,1952,2065,1951,2066,1951,2067,1950,2068,1950,2069,1950,2070,1950,2071,1949,2073,1949,2075,1948,2077,1948,2079,1948,2081,1947,2083,1947,2087,1946,2091,1946,2095,1945,2099,1945,2101,1944,2103,1944,2104,1944,2106,1944,2108,1944,2110,1944,2111,1944,2112,1944,2113,1944,2114,1944,2115,1944,2115,1956,2116,2100,2116,2116,2116,2118,2116,2143,2117,2202,2116,2202,2115,2202,2112,2202,2110,2202,2108,2203,2106,2203,2104,2203,2101,2204,2099,2204,2097,2205,2095,2205,2093,2206,2091,2207,2089,2207,2087,2208,2085,2209,2083,2210,2081,2211,2079,2212,2077,2213,2074,2215,2072,2216,2071,2217,2069,2218,2067,2220,2065,2221,2063,2223,2061,2224,2059,2226,2058,2227,2056,2229,2054,2230,2053,2232,2051,2234,2049,2236,2048,2237,2046,2239,2045,2241,2043,2243,2041,2244,2040,2246,2039,2248,2037,2250,2036,2252,2033,2256,2030,2259,2028,2263,2027,2265,2025,2267,2024,2269,2023,2270,2022,2272,2021,2274,2020,2276,2019,2278,2018,2280,2016,2282,2015,2284,2014,2287,2013,2289,2012,2291,2010,2294,2009,2296,2001,2278,1944,2142,1933,2117,1932,2115,1925,2099,1917,2078,1919,2075,1921,2071,1923,2068,1925,2065,1928,2062,1930,2059,1932,2056,1934,2052,1937,2049,1939,2046,1942,2043,1944,2040,1946,2037,1949,2034,1951,2032,1953,2030,1954,2029; +PU; +PA2182,2236; +PD; +PA2184,2237,2185,2239,2187,2241,2189,2242,2190,2244,2192,2246,2193,2248,2195,2250,2198,2253,2200,2257,2203,2261,2206,2265,2207,2266,2208,2268,2209,2270,2210,2272,2211,2273,2212,2275,2213,2277,2214,2279,2216,2281,2217,2283,2218,2285,2220,2288,2221,2290,2222,2292,2224,2295,2225,2297,2222,2303,2167,2438,2157,2463,2119,2554,2118,2463,2118,2438,2117,2303,2117,2278,2117,2202,2119,2202,2121,2203,2124,2203,2126,2203,2128,2204,2131,2204,2133,2205,2135,2205,2138,2206,2140,2207,2142,2208,2144,2208,2146,2209,2148,2210,2151,2211,2153,2212,2155,2214,2157,2215,2159,2216,2161,2217,2163,2219,2164,2220,2166,2221,2168,2223,2170,2224,2172,2226,2174,2227,2175,2229,2177,2231,2179,2232,2180,2234,2182,2236; +PU; +PA2338,2117; +PD; +PA2338,2118,2339,2118,2339,2119,2341,2122,2343,2125,2345,2128,2346,2132,2348,2135,2349,2138,2353,2144,2354,2147,2356,2150,2357,2153,2359,2157,2361,2161,2363,2166,2366,2171,2368,2176,2370,2180,2372,2185,2374,2190,2376,2195,2380,2205,2384,2215,2388,2226,2392,2236,2396,2247,2399,2258,2403,2268,2406,2279,2408,2286,2409,2292,2411,2298,2412,2301,2413,2304,2415,2310,2416,2316,2418,2323,2418,2326,2419,2329,2358,2375,2273,2439,2271,2440,2271,2439,2269,2430,2267,2420,2265,2411,2263,2402,2261,2393,2258,2385,2256,2376,2253,2367,2250,2359,2247,2351,2245,2343,2241,2335,2238,2327,2235,2319,2231,2311,2228,2303,2227,2303,2227,2302,2226,2300,2225,2299,2225,2298,2225,2297,2232,2279,2288,2144,2298,2119,2299,2117,2306,2101,2314,2079,2316,2082,2318,2085,2320,2087,2322,2090,2323,2093,2325,2095,2328,2101,2331,2105,2333,2109,2336,2113,2337,2115,2338,2117; +PU; +PA1870,2846; +PD; +PA1945,2789,1956,2781,1966,2774,1966,2775,1966,2776,1966,2777,1966,2778,1967,2780,1967,2781,1967,2783,1968,2785,1968,2787,1968,2788,1968,2789,1970,2797,1971,2804,1973,2811,1975,2819,1977,2826,1979,2833,1981,2840,1983,2848,1985,2857,1988,2866,1991,2874,1994,2883,1998,2892,2001,2901,2003,2905,2005,2909,2007,2914,2009,2918,1999,2941,1996,2949,1931,3101,1928,3109,1927,3111,1917,3136,1915,3133,1913,3130,1911,3127,1909,3123,1907,3120,1905,3117,1903,3114,1901,3111,1901,3110,1900,3110,1900,3109,1899,3107,1897,3105,1896,3103,1895,3101,1892,3094,1888,3088,1885,3081,1882,3075,1878,3068,1875,3061,1872,3055,1869,3048,1867,3044,1866,3041,1863,3034,1860,3027,1857,3020,1854,3011,1851,3003,1848,2994,1844,2985,1841,2976,1839,2967,1836,2958,1833,2949,1833,2948,1832,2947,1832,2945,1831,2943,1831,2942,1831,2941,1829,2934,1827,2927,1825,2920,1823,2913,1821,2906,1820,2900,1818,2893,1817,2886,1870,2846; +PU; +PA1788,2621; +PD; +PA1788,2629,1788,2637,1789,2667,1791,2702,1791,2707,1791,2712,1792,2716,1792,2721,1793,2730,1793,2735,1794,2740,1795,2750,1796,2760,1797,2770,1798,2781,1799,2783,1799,2785,1799,2787,1799,2789,1801,2801,1803,2813,1805,2826,1807,2838,1809,2850,1811,2862,1814,2874,1817,2886,1743,2940,1733,2948,1672,2994,1670,2988,1669,2982,1666,2971,1663,2959,1660,2948,1660,2946,1659,2944,1659,2942,1658,2940,1625,2940,1626,2788,1626,2780,1632,2780,1632,2779,1629,2751,1628,2737,1627,2730,1627,2724,1626,2719,1626,2718,1626,2780,1382,2779,1383,2627,1383,2619,1622,2620,1622,2607,1625,2607,1787,2607,1788,2621; +PU; +PA2118,2607; +PD; +PA2118,2598,2118,2584,2119,2561,2119,2554,2119,2556,2119,2557,2119,2559,2119,2560,2119,2561,2119,2562,2120,2584,2120,2598,2120,2607,2120,2622,2118,2622,2118,2623,2118,2630,2119,2653,2119,2660,2115,2663,1966,2774,1964,2765,1963,2756,1961,2746,1960,2737,1959,2728,1958,2718,1957,2709,1956,2700,1956,2695,1955,2690,1955,2686,1955,2681,1955,2678,1954,2676,1954,2673,1954,2671,1954,2668,1954,2666,1954,2663,1954,2660,1953,2634,1953,2630,1953,2622,1953,2607,2113,2607,2118,2607; +PU; +PA1870,2368; +PD; +PA1962,2437,1966,2440,1965,2445,1964,2451,1963,2456,1962,2462,1961,2469,1960,2475,1959,2482,1959,2488,1958,2495,1957,2501,1957,2508,1956,2514,1956,2519,1955,2524,1955,2528,1955,2533,1955,2536,1954,2538,1954,2541,1954,2543,1954,2546,1954,2548,1954,2551,1954,2554,1953,2580,1953,2597,1953,2607,1869,2607,1787,2607,1788,2596,1788,2577,1789,2547,1791,2512,1791,2507,1791,2502,1792,2498,1792,2493,1793,2484,1793,2479,1794,2474,1794,2473,1794,2471,1794,2469,1794,2468,1795,2465,1795,2463,1795,2461,1796,2455,1796,2449,1797,2443,1797,2440,1798,2436,1800,2423,1802,2409,1804,2395,1806,2382,1808,2368,1811,2355,1814,2342,1817,2328,1870,2368; +PU; +PA1743,2037; +PD; +PA1754,2017,1765,1998,1767,1995,1768,1993,1770,1991,1771,1988,1774,1984,1777,1979,1780,1975,1783,1971,1786,1966,1789,1962,1790,1961,1790,1960,1791,1958,1793,1957,1794,1955,1797,1951,1800,1947,1804,1943,1807,1939,1625,1938,1625,1922,1625,1920,1625,1918,1625,1916,1625,1914,1626,1899,1626,1884,1627,1869,1628,1854,1628,1839,1629,1824,1630,1809,1632,1794,1632,1790,1632,1786,1633,1778,1870,1779,1870,1795,1870,1872,1869,1873,1865,1877,1862,1880,1858,1883,1854,1886,1851,1889,1848,1893,1846,1895,1844,1896,1842,1898,1841,1900,1857,1939,1864,1955,1869,1967,1917,2078,1915,2081,1913,2083,1912,2086,1910,2088,1908,2091,1907,2094,1905,2096,1904,2099,1901,2103,1899,2107,1896,2111,1894,2115,1894,2116,1893,2116,1893,2117,1891,2120,1890,2123,1888,2126,1886,2129,1885,2133,1883,2136,1882,2139,1880,2142,1878,2147,1875,2152,1873,2157,1872,2160,1871,2162,1869,2166,1867,2170,1865,2174,1864,2178,1862,2182,1861,2186,1859,2190,1857,2194,1853,2204,1850,2214,1846,2224,1843,2235,1839,2245,1836,2255,1833,2266,1830,2277,1828,2283,1826,2289,1825,2295,1824,2298,1823,2302,1821,2308,1820,2315,1819,2318,1818,2322,1817,2325,1817,2328,1780,2301,1747,2276,1672,2220,1670,2227,1668,2234,1666,2241,1665,2248,1663,2255,1661,2262,1658,2276,1626,2276,1627,2141,1627,2116,1707,2116,1707,2115,1707,2114,1709,2110,1711,2106,1712,2102,1714,2098,1718,2090,1721,2082,1725,2074,1728,2067,1732,2059,1735,2051,1739,2044,1743,2037; +PU; +PA2451,2607; +PD; +PA2450,2624,2450,2632,2450,2637,2449,2667,2449,2668,2449,2669,2449,2670,2449,2671,2449,2672,2449,2673,2449,2675,2448,2683,2447,2702,2446,2711,2446,2721,2445,2730,2444,2740,2443,2745,2443,2751,2441,2762,2440,2773,2438,2784,2438,2785,2438,2786,2438,2788,2437,2790,2437,2792,2435,2804,2433,2815,2431,2827,2429,2839,2427,2851,2424,2862,2422,2874,2419,2885,2358,2839,2294,2791,2283,2783,2271,2774,2273,2765,2275,2756,2276,2746,2277,2737,2279,2728,2280,2718,2281,2709,2282,2700,2283,2681,2284,2660,2285,2633,2285,2631,2285,2623,2286,2607,2357,2607,2451,2607; +PU; +PA2268,2791; +PD; +PA2266,2798,2265,2805,2263,2812,2261,2819,2259,2826,2257,2833,2255,2840,2253,2847,2250,2856,2247,2865,2244,2874,2240,2883,2237,2891,2235,2896,2233,2900,2231,2904,2229,2908,2227,2913,2225,2917,2173,2790,2169,2782,2119,2660,2271,2774,2271,2775,2271,2776,2270,2779,2270,2781,2269,2783,2269,2785,2269,2787,2268,2788,2268,2789,2268,2790,2268,2791; +PU; +PA2182,2978; +PD; +PA2184,2977,2185,2975,2187,2974,2188,2972,2190,2970,2191,2968,2194,2965,2197,2961,2200,2958,2202,2954,2205,2950,2206,2950,2206,2949,2206,2948,2207,2948,2207,2947,2208,2946,2209,2944,2210,2942,2212,2939,2214,2936,2216,2933,2218,2930,2220,2927,2221,2923,2223,2920,2225,2917,2235,2942,2239,2951,2301,3103,2305,3111,2305,3112,2314,3135,2310,3141,2305,3148,2301,3154,2296,3160,2291,3166,2286,3172,2281,3178,2276,3184,2271,3189,2266,3195,2260,3200,2255,3206,2252,3208,2249,3211,2246,3213,2243,3216,2240,3218,2237,3221,2234,3223,2231,3225,2228,3228,2225,3230,2222,3232,2219,3234,2215,3237,2212,3239,2209,3241,2206,3243,2202,3245,2199,3247,2195,3248,2192,3250,2189,3252,2185,3254,2181,3255,2178,3257,2174,3258,2170,3260,2167,3261,2163,3262,2159,3263,2155,3264,2151,3265,2147,3266,2143,3267,2139,3268,2135,3268,2131,3269,2127,3269,2123,3270,2119,3270,2115,3270,2116,3112,2116,3110,2116,3102,2117,3012,2119,3012,2121,3011,2124,3011,2126,3011,2128,3010,2131,3010,2133,3009,2135,3009,2138,3008,2140,3007,2142,3006,2144,3006,2146,3005,2148,3004,2151,3003,2153,3001,2155,3000,2157,2999,2159,2998,2161,2997,2163,2995,2164,2994,2166,2992,2168,2991,2170,2990,2172,2988,2174,2987,2175,2985,2177,2983,2179,2982,2180,2980,2182,2978; +PU; +PA1954,3185; +PD; +PA1959,3191,1964,3196,1970,3202,1972,3205,1975,3207,1978,3210,1981,3213,1984,3215,1986,3218,1989,3220,1992,3223,1995,3225,1998,3227,2001,3230,2005,3232,2008,3234,2011,3236,2014,3238,2017,3240,2021,3243,2024,3245,2027,3246,2031,3248,2034,3250,2038,3252,2041,3254,2045,3255,2048,3257,2052,3258,2053,3259,2054,3259,2055,3259,2056,3260,2057,3260,2058,3260,2060,3261,2061,3262,2063,3262,2065,3263,2066,3263,2067,3263,2068,3264,2069,3264,2070,3264,2071,3265,2073,3265,2075,3266,2077,3266,2079,3266,2081,3267,2083,3267,2087,3268,2091,3268,2093,3269,2095,3269,2097,3269,2099,3269,2101,3270,2103,3270,2105,3270,2107,3270,2108,3270,2110,3270,2111,3270,2112,3270,2113,3270,2114,3270,2115,3270,2115,3271,2114,3431,2114,3435,2135,3434,2140,3434,2142,3434,2145,3433,2148,3433,2150,3433,2153,3433,2155,3433,2165,3431,2358,3432,2357,3591,2115,3590,2115,3591,2114,3750,1870,3749,1871,3590,1871,3589,2113,3590,2113,3435,2112,3435,2111,3435,2110,3435,2108,3435,2106,3435,2103,3435,2101,3435,2098,3435,2096,3434,2093,3434,2073,3433,2071,3433,2069,3432,2066,3432,2063,3431,2059,3431,1869,3430,1870,3342,1869,3341,1865,3337,1862,3334,1858,3331,1854,3328,1851,3325,1848,3321,1846,3319,1844,3318,1842,3316,1841,3314,1859,3270,1870,3245,1917,3136,1919,3139,1921,3142,1923,3146,1925,3149,1928,3152,1930,3155,1932,3158,1934,3162,1937,3165,1939,3168,1942,3171,1944,3174,1946,3177,1949,3179,1951,3182,1953,3184,1954,3185; +PU; +PA3091,2202; +PD; +PA3089,2202,3087,2203,3085,2203,3082,2203,3080,2203,3078,2204,3076,2204,3074,2205,3072,2205,3070,2206,3068,2207,3066,2208,3064,2208,3062,2209,3060,2210,3058,2211,3056,2212,3054,2213,3052,2215,3050,2216,3048,2217,3046,2218,3044,2220,3043,2221,3041,2223,3039,2224,3037,2226,3035,2227,3034,2229,3032,2230,3030,2232,3029,2234,3027,2236,3025,2237,3024,2239,3022,2241,3021,2243,3019,2244,3018,2246,3016,2248,3015,2250,3013,2252,3011,2256,3008,2259,3005,2263,3004,2266,3002,2268,3001,2270,3000,2273,2998,2275,2997,2277,2996,2280,2994,2282,2992,2286,2991,2289,2990,2291,2989,2293,2988,2294,2987,2296,2981,2282,2924,2147,2913,2122,2912,2120,2905,2103,2894,2078,2896,2075,2899,2071,2901,2068,2903,2065,2905,2062,2908,2059,2910,2056,2912,2052,2915,2049,2917,2046,2919,2043,2922,2040,2924,2037,2927,2034,2929,2032,2930,2030,2932,2029,2937,2023,2942,2017,2947,2012,2950,2009,2953,2007,2956,2004,2958,2001,2961,1999,2964,1996,2967,1994,2970,1991,2973,1989,2976,1987,2979,1985,2981,1983,2984,1981,2986,1979,2989,1978,2991,1976,2994,1974,2997,1973,2999,1971,3002,1969,3005,1968,3007,1966,3010,1965,3013,1963,3016,1962,3019,1961,3022,1959,3023,1959,3024,1958,3026,1957,3027,1957,3028,1956,3030,1956,3031,1955,3032,1955,3033,1955,3033,1954,3034,1954,3035,1954,3037,1953,3039,1952,3041,1952,3043,1951,3044,1951,3045,1950,3046,1950,3047,1950,3048,1950,3049,1949,3051,1949,3053,1948,3055,1948,3057,1948,3059,1947,3061,1947,3063,1946,3065,1946,3069,1946,3073,1945,3077,1945,3078,1944,3079,1944,3080,1944,3081,1944,3082,1944,3084,1944,3085,1944,3086,1944,3087,1944,3089,1944,3090,1944,3091,1944,3092,1944,3093,1944,3093,1961,3094,2104,3094,2121,3094,2123,3094,2148,3095,2202,3094,2202,3093,2202,3092,2202,3091,2202; +PU; +PA3209,1989; +PD; +PA3206,1987,3204,1985,3201,1983,3198,1981,3196,1979,3193,1977,3190,1975,3187,1974,3185,1972,3182,1970,3179,1969,3176,1967,3173,1966,3170,1964,3167,1963,3164,1961,3162,1960,3160,1959,3159,1959,3158,1958,3157,1958,3155,1957,3152,1956,3149,1955,3146,1954,3143,1953,3140,1952,3136,1951,3133,1950,3130,1949,3126,1948,3123,1947,3120,1947,3116,1946,3113,1946,3110,1945,3106,1945,3103,1944,3101,1944,3100,1944,3099,1944,3098,1944,3097,1944,3095,1944,3094,1944,3093,1944,3092,1801,3092,1785,3092,1779,3113,1780,3118,1780,3120,1780,3123,1780,3125,1781,3128,1781,3130,1781,3133,1781,3143,1783,3153,1784,3156,1785,3335,1786,3335,1802,3334,1871,3335,1872,3336,1872,3336,1873,3337,1873,3337,1874,3352,1887,3353,1888,3354,1888,3355,1889,3355,1890,3357,1892,3359,1894,3361,1895,3362,1897,3364,1899,3366,1901,3347,1946,3341,1962,3334,1978,3292,2079,3288,2073,3283,2066,3279,2060,3274,2054,3269,2048,3264,2042,3259,2036,3254,2030,3249,2025,3243,2019,3238,2014,3232,2008,3229,2006,3227,2003,3224,2001,3221,1998,3218,1996,3215,1993,3212,1991,3209,1989; +PU; +PA3143,2443; +PD; +PA3132,2467,3097,2554,3096,2467,3096,2442,3095,2307,3095,2283,3095,2202,3097,2202,3099,2203,3102,2203,3104,2203,3106,2204,3108,2204,3111,2205,3113,2205,3115,2206,3117,2207,3120,2208,3122,2208,3124,2209,3126,2210,3128,2211,3130,2212,3132,2214,3134,2215,3136,2216,3138,2217,3140,2219,3142,2220,3144,2221,3146,2223,3148,2224,3150,2226,3151,2227,3153,2229,3155,2231,3157,2232,3158,2234,3160,2236,3162,2237,3163,2239,3165,2241,3166,2242,3168,2244,3169,2246,3171,2248,3172,2250,3175,2253,3178,2257,3181,2261,3183,2265,3185,2267,3186,2269,3188,2271,3189,2274,3191,2276,3192,2278,3193,2281,3195,2283,3197,2287,3199,2290,3200,2292,3201,2294,3202,2295,3202,2297,3198,2308,3143,2443; +PU; +PA3334,2376; +PD; +PA3249,2440,3247,2431,3245,2421,3243,2412,3241,2403,3239,2394,3236,2385,3233,2376,3231,2367,3228,2359,3226,2352,3223,2344,3220,2337,3217,2330,3214,2322,3211,2315,3208,2308,3206,2305,3205,2303,3204,2301,3204,2300,3203,2299,3202,2297,3208,2283,3264,2148,3274,2124,3275,2122,3282,2105,3292,2079,3294,2082,3296,2086,3299,2089,3301,2092,3303,2095,3305,2099,3307,2102,3309,2105,3310,2107,3311,2109,3314,2113,3316,2118,3318,2122,3319,2122,3319,2123,3320,2124,3323,2130,3326,2136,3328,2139,3330,2142,3331,2145,3333,2149,3333,2150,3334,2151,3335,2152,3335,2153,3335,2154,3338,2159,3340,2164,3342,2169,3345,2174,3347,2179,3349,2184,3352,2190,3354,2195,3358,2205,3362,2216,3366,2227,3370,2238,3374,2250,3378,2261,3381,2272,3385,2284,3387,2290,3388,2296,3390,2302,3392,2309,3393,2314,3394,2319,3395,2321,3396,2324,3396,2326,3397,2329,3334,2376; +PU; +PA3428,2577; +PD; +PA3427,2547,3427,2546,3427,2545,3427,2544,3427,2543,3427,2541,3427,2539,3426,2531,3425,2512,3425,2507,3424,2502,3423,2493,3422,2484,3422,2474,3421,2473,3421,2472,3421,2470,3421,2469,3420,2462,3419,2456,3419,2450,3418,2444,3416,2429,3414,2415,3411,2400,3409,2386,3406,2371,3403,2357,3400,2343,3397,2329,3423,2309,3456,2284,3541,2221,3543,2229,3545,2237,3547,2244,3549,2252,3551,2260,3553,2268,3555,2277,3557,2285,3579,2285,3579,2310,3578,2396,3578,2397,3580,2406,3581,2416,3582,2425,3583,2435,3584,2437,3584,2440,3584,2442,3584,2445,3822,2446,3822,2470,3821,2605,3822,2605,3821,2630,3593,2629,3593,2607,3577,2607,3428,2607,3428,2604,3428,2577; +PU; +PA2880,3113; +PD; +PA2879,3111,2878,3109,2877,3107,2875,3105,2871,3098,2867,3091,2864,3083,2860,3076,2856,3068,2852,3060,2849,3053,2845,3045,2843,3039,2840,3032,2838,3026,2835,3020,2832,3012,2829,3004,2826,2995,2823,2987,2820,2979,2817,2970,2815,2962,2812,2953,2811,2951,2811,2949,2810,2947,2810,2945,2808,2938,2805,2930,2803,2923,2801,2916,2800,2908,2798,2901,2796,2893,2794,2886,2846,2847,2917,2794,2928,2786,2943,2774,2944,2776,2944,2777,2944,2779,2944,2780,2945,2783,2945,2786,2946,2788,2946,2790,2947,2792,2947,2794,2948,2801,2950,2807,2951,2814,2953,2821,2955,2828,2957,2834,2958,2841,2960,2848,2963,2857,2966,2866,2969,2874,2972,2883,2976,2892,2979,2901,2981,2905,2983,2909,2985,2914,2987,2918,2975,2946,2972,2954,2907,3105,2904,3113,2903,3115,2894,3136,2893,3133,2891,3131,2889,3128,2888,3126,2886,3123,2884,3120,2883,3118,2881,3115,2881,3114,2880,3114,2880,3113; +PU; +PA2931,2660; +PD; +PA2931,2634,2930,2626,2930,2607,3089,2607,3095,2607,3095,2602,3096,2584,3096,2561,3097,2554,3097,2556,3097,2557,3097,2559,3097,2560,3097,2561,3097,2562,3098,2584,3098,2602,3098,2607,3098,2627,3096,2627,3096,2630,3096,2635,3096,2653,3097,2660,3091,2664,2943,2774,2942,2765,2940,2756,2939,2746,2938,2737,2937,2728,2936,2718,2935,2709,2934,2700,2933,2695,2933,2690,2933,2686,2932,2681,2932,2678,2932,2676,2932,2673,2932,2671,2932,2668,2932,2666,2931,2663,2931,2660; +PU; +PA2939,2466; +PD; +PA2938,2472,2938,2478,2937,2484,2936,2490,2935,2496,2935,2502,2934,2508,2934,2514,2933,2519,2933,2524,2933,2528,2932,2533,2932,2536,2932,2538,2932,2541,2932,2543,2932,2546,2932,2548,2931,2551,2931,2554,2931,2580,2930,2601,2930,2607,2845,2607,2765,2607,2765,2601,2765,2577,2766,2547,2768,2512,2769,2507,2769,2502,2769,2498,2770,2493,2771,2484,2771,2479,2771,2474,2771,2473,2772,2472,2772,2470,2772,2468,2772,2467,2772,2466,2773,2460,2774,2453,2774,2447,2775,2441,2777,2427,2779,2412,2781,2398,2783,2384,2786,2370,2788,2356,2791,2342,2794,2328,2846,2367,2943,2440,2943,2441,2943,2442,2942,2448,2941,2454,2940,2460,2939,2466; +PU; +PA2869,2120; +PD; +PA2869,2121,2868,2121,2868,2122,2865,2128,2863,2131,2862,2134,2860,2137,2859,2140,2857,2143,2856,2146,2855,2149,2854,2151,2851,2156,2849,2160,2847,2165,2844,2172,2841,2180,2838,2187,2835,2194,2831,2204,2827,2215,2823,2226,2820,2237,2816,2248,2813,2259,2809,2270,2806,2281,2804,2287,2803,2294,2801,2300,2800,2306,2798,2312,2797,2317,2796,2323,2795,2326,2794,2328,2764,2306,2731,2281,2649,2220,2647,2228,2646,2235,2644,2243,2642,2250,2640,2258,2638,2265,2636,2273,2635,2280,2602,2280,2603,2145,2603,2120,2682,2121,2683,2121,2683,2120,2683,2119,2685,2115,2687,2111,2688,2106,2690,2102,2694,2094,2697,2085,2701,2077,2705,2069,2709,2060,2713,2052,2717,2045,2721,2037,2732,2017,2743,1998,2744,1995,2746,1993,2747,1991,2749,1988,2752,1984,2755,1979,2758,1975,2761,1971,2764,1966,2767,1962,2767,1961,2768,1961,2768,1960,2768,1959,2770,1957,2772,1955,2775,1951,2778,1947,2781,1943,2602,1942,2602,1799,2602,1782,2846,1784,2846,1800,2846,1874,2843,1877,2839,1880,2836,1883,2832,1886,2829,1890,2825,1893,2824,1895,2822,1896,2820,1898,2818,1900,2837,1943,2844,1960,2846,1964,2894,2078,2892,2081,2890,2084,2888,2087,2886,2090,2884,2094,2882,2097,2880,2100,2879,2103,2876,2107,2874,2111,2872,2116,2869,2120; +PU; +PA3334,2838; +PD; +PA3277,2795,3266,2787,3249,2774,3251,2765,3252,2756,3254,2746,3255,2737,3256,2728,3257,2718,3258,2709,3259,2700,3261,2681,3262,2660,3263,2636,3263,2633,3263,2628,3263,2607,3333,2607,3428,2607,3428,2628,3428,2629,3428,2636,3428,2637,3427,2667,3427,2668,3427,2669,3427,2670,3427,2671,3427,2673,3427,2675,3426,2683,3425,2702,3425,2707,3424,2711,3423,2721,3422,2730,3422,2740,3421,2746,3420,2752,3420,2758,3419,2764,3417,2776,3415,2788,3415,2790,3415,2792,3415,2794,3414,2796,3412,2807,3411,2819,3409,2830,3406,2841,3404,2852,3402,2863,3400,2874,3397,2885,3334,2838; +PU; +PA3399,3277; +PD; +PA3579,3278,3578,3438,3334,3437,3334,3343,3335,3342,3336,3342,3336,3341,3337,3341,3337,3340,3352,3327,3353,3326,3354,3326,3355,3325,3355,3324,3357,3322,3359,3320,3361,3319,3362,3317,3364,3315,3366,3313,3351,3277,3335,3238,3292,3135,3294,3132,3295,3130,3297,3128,3298,3126,3300,3124,3301,3121,3304,3117,3304,3116,3305,3116,3305,3115,3306,3113,3307,3111,3309,3109,3310,3107,3313,3102,3316,3097,3319,3091,3322,3086,3325,3081,3328,3075,3331,3070,3333,3064,3336,3058,3339,3053,3341,3047,3344,3042,3346,3036,3349,3031,3351,3025,3354,3019,3357,3012,3360,3004,3363,2996,3366,2988,3369,2980,3372,2972,3374,2964,3377,2956,3377,2955,3378,2954,3378,2952,3379,2950,3379,2949,3380,2948,3382,2940,3384,2932,3387,2925,3389,2917,3391,2909,3393,2901,3395,2893,3397,2885,3481,2948,3491,2956,3541,2993,3542,2989,3543,2984,3546,2975,3548,2966,3551,2957,3551,2954,3552,2952,3552,2950,3553,2948,3578,2949,3578,2957,3577,3108,3577,3116,3496,3116,3496,3117,3495,3117,3495,3118,3491,3125,3488,3133,3484,3140,3481,3148,3477,3155,3474,3162,3470,3169,3466,3176,3462,3183,3458,3190,3454,3197,3450,3204,3446,3210,3442,3217,3438,3223,3434,3230,3430,3236,3425,3242,3421,3248,3417,3254,3412,3260,3408,3266,3403,3272,3399,3277; +PU; +PA3149,2787; +PD; +PA3097,2660,3249,2774,3248,2777,3248,2781,3247,2784,3246,2787,3246,2789,3245,2791,3245,2793,3245,2794,3245,2795,3243,2802,3242,2808,3240,2815,3238,2821,3236,2828,3235,2834,3233,2841,3231,2847,3228,2856,3225,2865,3221,2874,3218,2883,3214,2891,3211,2900,3209,2904,3207,2908,3205,2913,3202,2917,3152,2795,3149,2787; +PU; +PA3209,3225; +PD; +PA3206,3228,3203,3230,3200,3232,3196,3234,3193,3237,3190,3239,3187,3241,3183,3243,3180,3245,3177,3247,3173,3248,3170,3250,3166,3252,3163,3254,3159,3255,3155,3257,3152,3258,3148,3260,3144,3261,3141,3262,3137,3263,3133,3264,3129,3265,3125,3266,3121,3267,3117,3268,3113,3268,3109,3269,3105,3269,3101,3270,3097,3270,3093,3270,3094,3116,3094,3114,3094,3106,3095,3012,3097,3012,3099,3011,3102,3011,3104,3011,3106,3010,3108,3010,3111,3009,3113,3009,3115,3008,3117,3007,3120,3006,3122,3006,3124,3005,3126,3004,3128,3003,3130,3001,3132,3000,3134,2999,3136,2998,3138,2997,3140,2995,3142,2994,3144,2992,3146,2991,3148,2990,3150,2988,3151,2987,3153,2985,3155,2983,3157,2982,3158,2980,3160,2978,3163,2976,3165,2973,3168,2970,3170,2967,3173,2964,3175,2961,3177,2958,3180,2955,3180,2954,3181,2953,3182,2952,3182,2951,3183,2949,3184,2949,3184,2948,3185,2947,3187,2943,3190,2939,3192,2936,3194,2932,3196,2928,3198,2924,3200,2921,3202,2917,3215,2947,3218,2955,3281,3107,3284,3115,3285,3117,3292,3135,3288,3141,3283,3148,3279,3154,3274,3160,3269,3166,3264,3172,3259,3178,3254,3184,3249,3189,3243,3195,3238,3200,3232,3206,3229,3208,3227,3211,3224,3213,3221,3216,3218,3218,3215,3221,3212,3223,3209,3225; +PU; +PA3821,491; +PD; +PA3821,483,3822,332,3822,331,3823,331,4066,332,4066,333,4066,484,4066,492,3822,491,3821,491; +PU; +PA3089,422; +PD; +PA3067,414,3045,407,3023,400,3001,393,2979,387,2956,381,2934,375,2911,370,2903,368,2895,367,2887,365,2879,363,2863,360,2846,357,2846,328,2846,326,3090,327,3090,329,3089,422; +PU; +PA2113,417; +PD; +PA2100,422,2086,427,2073,432,2060,437,2046,442,2033,448,2020,453,2007,459,1998,463,1989,467,1980,471,1972,475,1970,476,1968,477,1965,478,1961,480,1957,482,1869,482,1869,475,1869,323,1869,322,1870,322,2113,323,2113,324,2113,417; +PU; +PA3864,1094; +PD; +PA3859,1084,3854,1075,3849,1066,3844,1056,3838,1047,3833,1038,3827,1029,3822,1020,3822,979,4066,980,4066,1140,3888,1139,3887,1137,3886,1135,3885,1133,3884,1131,3879,1121,3874,1112,3869,1103,3864,1094; +PU; +PA2846,975; +PD; +PA3090,976,3089,1127,3089,1136,2845,1135,2845,1126,2846,975; +PU; +PA2113,972; +PD; +PA2113,1123,2113,1131,1895,1130,1897,1128,1899,1126,1901,1124,1903,1122,1917,1106,1933,1091,1948,1076,1964,1061,1980,1047,1996,1033,2013,1019,2022,1013,2030,1006,2036,1002,2043,997,2049,993,2055,988,2061,984,2068,980,2074,976,2081,971,2113,972; +PU; +PA1246,1289; +PD; +PA1138,1288,1139,1129,1314,1129,1312,1134,1310,1138,1308,1142,1307,1144,1306,1146,1297,1164,1289,1181,1281,1199,1274,1217,1266,1235,1259,1253,1252,1271,1246,1289; +PU; +PA2359,1151; +PD; +PA2358,1294,2114,1293,2115,1150,2115,1133,2359,1134,2359,1151; +PU; +PA3821,2108; +PD; +PA3822,1964,3822,1951,3903,1951,4065,1950,4065,1949,4066,1949,4066,1965,4066,2125,3821,2124,3821,2108; +PU; +PA1382,2275; +PD; +PA1138,2274,1139,2114,1383,2115,1383,2140,1382,2275; +PU; +PA3821,3109; +PD; +PA3822,2958,3822,2950,4066,2951,4066,2959,4066,3119,3821,3118,3821,3109; +PU; +PA1138,3267; +PD; +PA1139,3107,1383,3108,1382,3268,1138,3267; +PU; +PA4066,3919; +PD; +PA4066,4079,3821,4078,3822,3918,4066,3919; +PU; +PA3090,3914; +PD; +PA3089,4074,2845,4073,2846,3913,3090,3914; +PU; +PA2113,3910; +PD; +PA2113,4070,1869,4069,1869,3909,2113,3910; +PU; +PA3579,1727; +PD; +PA3724,1706,3725,1716,3726,1727,3728,1737,3729,1747,3731,1767,3733,1788,3733,1792,3733,1796,3734,1800,3734,1804,3736,1822,3737,1840,3738,1858,3739,1876,3739,1893,3740,1911,3740,1929,3740,1947,3740,1948,3740,1949,3740,1950,3740,1951,3578,1951,3578,1950,3578,1949,3578,1948,3578,1947,3578,1929,3577,1911,3577,1893,3576,1875,3575,1857,3574,1839,3573,1821,3571,1803,3571,1799,3570,1795,3570,1791,3570,1787,3568,1772,3566,1758,3565,1743,3563,1729,3579,1727; +PU; +PA3341,1137; +PD; +PA3339,1139,3335,1142,3320,1155,3324,1160,3328,1164,3332,1169,3335,1173,3335,1298,3091,1297,3091,1154,3091,1138,3306,1139,3305,1138,3305,1137,3304,1137,3303,1136,3302,1135,3300,1132,3298,1130,3297,1129,3296,1128,3282,1113,3267,1098,3252,1083,3237,1069,3222,1055,3206,1041,3189,1028,3173,1015,3202,977,3209,968,3271,886,3279,892,3287,898,3295,905,3303,911,3311,918,3319,924,3326,931,3334,937,3334,938,3343,945,3351,953,3359,961,3368,969,3370,971,3372,973,3374,975,3376,976,3377,977,3385,986,3394,995,3403,1004,3411,1013,3419,1022,3428,1031,3436,1040,3444,1050,3351,1128,3341,1137; +PU; +PA2603,660; +PD; +PA2603,757,2603,769,2602,805,2602,814,2602,823,2589,823,2576,823,2564,823,2551,824,2538,824,2525,825,2512,826,2500,827,2487,829,2474,830,2461,832,2449,834,2436,836,2423,838,2411,840,2398,843,2392,813,2390,804,2366,684,2380,681,2395,678,2410,675,2424,673,2439,671,2454,669,2469,667,2484,666,2499,664,2513,663,2528,662,2543,661,2558,661,2573,660,2588,660,2603,660; +PU; +PA1867,1130; +PD; +PA1869,1132,1871,1134,1883,1144,1882,1145,1881,1146,1881,1147,1880,1147,1880,1148,1879,1148,1877,1151,1875,1153,1873,1156,1871,1159,1858,1174,1846,1190,1834,1206,1822,1223,1811,1240,1800,1257,1790,1274,1779,1291,1777,1295,1775,1300,1772,1304,1770,1308,1770,1309,1769,1310,1769,1311,1768,1311,1768,1312,1759,1308,1728,1291,1626,1236,1625,1235,1625,1234,1626,1233,1626,1232,1632,1221,1638,1211,1645,1200,1651,1189,1657,1179,1664,1168,1670,1158,1677,1148,1680,1143,1683,1139,1685,1135,1688,1131,1689,1131,1689,1130,1689,1129,1690,1128,1691,1127,1692,1125,1694,1123,1696,1121,1703,1110,1711,1100,1719,1089,1727,1079,1735,1068,1743,1058,1751,1048,1759,1038,1857,1122,1867,1130; +PU; +PA2282,2514; +PD; +PA2283,2533,2284,2554,2285,2581,2285,2598,2286,2607,2120,2607,2120,2598,2120,2584,2119,2562,2119,2561,2119,2560,2119,2559,2119,2557,2119,2556,2119,2554,2240,2463,2271,2440,2272,2443,2272,2446,2273,2452,2274,2458,2275,2463,2276,2470,2277,2476,2278,2482,2279,2489,2280,2495,2280,2502,2281,2508,2282,2514; +PU; +PA2119,2553; +PD; +PA2119,2554,2119,2553; +PU; +PA2069,2438; +PD; +PA2080,2463,2113,2540,2119,2554,2113,2550,1996,2462,1966,2440,1966,2439,1966,2438,1966,2437,1968,2428,1969,2419,1971,2410,1973,2402,1975,2393,1978,2384,1980,2375,1983,2366,1985,2358,1988,2350,1990,2342,1993,2334,1996,2326,2000,2318,2003,2310,2006,2302,2007,2302,2007,2301,2008,2299,2009,2298,2009,2297,2009,2296,2012,2302,2069,2438; +PU; +PA2067,2782; +PD; +PA2115,2670,2119,2660,2118,2782,2118,2790,2117,2942,2117,2950,2117,3012,2116,3012,2115,3012,2114,3012,2113,3012,2111,3012,2109,3011,2107,3011,2105,3011,2103,3011,2101,3010,2098,3010,2096,3009,2094,3009,2092,3008,2090,3007,2088,3006,2086,3006,2084,3005,2083,3004,2081,3003,2079,3002,2077,3001,2074,2999,2072,2998,2071,2997,2069,2996,2067,2994,2065,2993,2063,2991,2061,2990,2059,2988,2058,2987,2056,2985,2054,2983,2053,2982,2051,2980,2049,2978,2048,2977,2046,2975,2045,2973,2043,2971,2041,2970,2040,2968,2039,2966,2037,2964,2036,2962,2033,2958,2030,2955,2028,2951,2028,2950,2027,2950,2026,2949,2026,2948,2025,2947,2025,2946,2023,2944,2022,2941,2020,2939,2019,2936,2017,2933,2015,2930,2014,2927,2012,2924,2011,2921,2009,2918,2064,2790,2067,2782; +PU; +PA3098,2602; +PD; +PA3098,2584,3097,2562,3097,2561,3097,2560,3097,2559,3097,2557,3097,2556,3097,2554,3212,2468,3245,2443,3249,2440,3249,2441,3249,2442,3249,2443,3250,2443,3251,2449,3252,2455,3253,2462,3254,2468,3255,2474,3255,2479,3256,2485,3257,2491,3258,2497,3258,2503,3259,2508,3259,2514,3261,2533,3262,2554,3263,2581,3263,2603,3263,2607,3098,2607,3098,2602; +PU; +PA3097,2553; +PD; +PA3097,2554,3097,2553; +PU; +PA3089,2549; +PD; +PA2980,2467,2946,2442,2943,2440,2945,2430,2947,2421,2949,2412,2951,2403,2953,2394,2955,2385,2958,2375,2960,2366,2963,2359,2965,2351,2968,2344,2970,2336,2973,2329,2976,2321,2979,2314,2982,2307,2983,2304,2985,2301,2986,2299,2986,2297,2987,2296,2992,2307,3049,2442,3060,2467,3089,2537,3090,2537,3097,2554,3089,2549; +PU; +PA3090,3012; +PD; +PA3087,3011,3085,3011,3083,3011,3081,3011,3079,3010,3077,3010,3075,3010,3073,3009,3072,3008,3070,3008,3068,3007,3066,3006,3064,3006,3062,3005,3060,3004,3058,3003,3056,3002,3054,3001,3052,2999,3050,2998,3048,2997,3046,2996,3044,2994,3043,2993,3041,2991,3039,2990,3037,2988,3035,2987,3034,2985,3032,2983,3030,2982,3029,2980,3027,2979,3026,2977,3024,2976,3023,2974,3022,2972,3020,2971,3019,2969,3018,2968,3015,2964,3013,2961,3010,2957,3008,2954,3007,2953,3007,2952,3006,2951,3005,2951,3005,2950,3005,2949,3004,2949,3004,2948,3003,2947,3003,2946,3000,2942,2998,2939,2996,2936,2994,2932,2992,2929,2991,2925,2989,2921,2987,2918,3040,2794,3043,2786,3091,2673,3097,2660,3096,2787,3096,2795,3095,2946,3095,2954,3095,3012,3094,3012,3093,3012,3092,3012,3091,3012,3090,3012; +PU; +PA0,0; +PG0; diff --git a/plot_hpgl_file.py b/plot_hpgl_file.py new file mode 100644 index 0000000..80a36a9 --- /dev/null +++ b/plot_hpgl_file.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python +from chiplotle3.tools.plottertools import instantiate_plotters +import sys +import time + +def plot_hpgl_file(file): + '''Send an HPGL file to the plotter found connected to the computer.''' + plotter = instantiate_plotters( )[0] + + ## comment this if you do not want to reset position to bottom left. + plotter.set_origin_bottom_left() + + plotter.write_file(file) + ## call flush( ) to wait till all data is written before exiting... + plotter._serial_port.flush( ) + + +if __name__ == '__main__': + print("Argument List:", str(sys.argv)) + # if len(sys.argv) < 2: + # print 'Must give HPGL file to plot.\nExample: $ plot_hpgl_file.py myfile.hpgl' + # sys.exit(2) + file = sys.argv[1] + print('starting print of file: ' , file) + plot_hpgl_file(file) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..cf296c6 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +apply==1.6 +Chiplotle3==0.4.2 +future==0.18.3 +numpy==1.24.2 +pyserial==3.5