From b69a6fe6ce71b4d2089749f3f89fb4788755cd0d Mon Sep 17 00:00:00 2001 From: Mark Vejvoda Date: Sun, 25 Apr 2010 03:01:17 +0000 Subject: [PATCH] Added Linux installer to mega-glest --- mk/linux/mojosetup/.hg/00changelog.i | Bin 0 -> 57 bytes mk/linux/mojosetup/.hg/branch | 1 + mk/linux/mojosetup/.hg/branchheads.cache | 2 + mk/linux/mojosetup/.hg/dirstate | Bin 0 -> 8876 bytes mk/linux/mojosetup/.hg/hgrc | 2 + mk/linux/mojosetup/.hg/requires | 3 + mk/linux/mojosetup/.hg/store/00changelog.i | Bin 0 -> 202481 bytes mk/linux/mojosetup/.hg/store/00manifest.i | Bin 0 -> 179922 bytes mk/linux/mojosetup/.hg/store/data/.hgignore.i | Bin 0 -> 90 bytes mk/linux/mojosetup/.hg/store/data/.hgtags.i | Bin 0 -> 2689 bytes .../data/_b_u_i_l_d___r_e_v_i_s_i_o_n.txt.i | Bin 0 -> 66 bytes .../.hg/store/data/_c_make_lists.txt.i | Bin 0 -> 24040 bytes .../mojosetup/.hg/store/data/_l_i_c_e_n_s_e.i | Bin 0 -> 118 bytes .../.hg/store/data/_l_i_c_e_n_s_e.txt.i | Bin 0 -> 1732 bytes .../mojosetup/.hg/store/data/archive__pck.c.i | Bin 0 -> 4861 bytes .../mojosetup/.hg/store/data/archive__tar.c.i | Bin 0 -> 9359 bytes .../mojosetup/.hg/store/data/archive__uz2.c.i | Bin 0 -> 3251 bytes .../mojosetup/.hg/store/data/archive__zip.c.i | Bin 0 -> 19395 bytes .../mojosetup/.hg/store/data/buildver.c.i | Bin 0 -> 1942 bytes .../store/data/bzip2-1.0.4/_c_h_a_n_g_e_s.i | Bin 0 -> 5206 bytes .../store/data/bzip2-1.0.4/_l_i_c_e_n_s_e.i | Bin 0 -> 1058 bytes .../data/bzip2-1.0.4/_makefile-libbz2__so.i | Bin 0 -> 799 bytes .../.hg/store/data/bzip2-1.0.4/_makefile.i | Bin 0 -> 1772 bytes ...._c_o_m_p_i_l_a_t_i_o_n._p_r_o_b_l_e_m_s.i | Bin 0 -> 1319 bytes .../_r_e_a_d_m_e._x_m_l._s_t_u_f_f.i | Bin 0 -> 762 bytes .../.hg/store/data/bzip2-1.0.4/_r_e_a_d_m_e.i | Bin 0 -> 3454 bytes .../.hg/store/data/bzip2-1.0.4/blocksort.c.i | Bin 0 -> 7699 bytes .../store/data/bzip2-1.0.4/bz-common.xsl.i | Bin 0 -> 585 bytes .../.hg/store/data/bzip2-1.0.4/bz-fo.xsl.i | Bin 0 -> 2274 bytes .../.hg/store/data/bzip2-1.0.4/bz-html.xsl.i | Bin 0 -> 466 bytes .../.hg/store/data/bzip2-1.0.4/bzdiff.1.i | Bin 0 -> 536 bytes .../.hg/store/data/bzip2-1.0.4/bzdiff.i | Bin 0 -> 954 bytes .../.hg/store/data/bzip2-1.0.4/bzgrep.1.i | Bin 0 -> 681 bytes .../.hg/store/data/bzip2-1.0.4/bzgrep.i | Bin 0 -> 860 bytes .../.hg/store/data/bzip2-1.0.4/bzip.css.i | Bin 0 -> 843 bytes .../.hg/store/data/bzip2-1.0.4/bzip2.1.i | Bin 0 -> 6645 bytes .../data/bzip2-1.0.4/bzip2.1.preformatted.i | Bin 0 -> 7707 bytes .../.hg/store/data/bzip2-1.0.4/bzip2.c.i | Bin 0 -> 13060 bytes .../.hg/store/data/bzip2-1.0.4/bzip2.txt.i | Bin 0 -> 7153 bytes .../store/data/bzip2-1.0.4/bzip2recover.c.i | Bin 0 -> 3969 bytes .../.hg/store/data/bzip2-1.0.4/bzlib.c.i | Bin 0 -> 9002 bytes .../.hg/store/data/bzip2-1.0.4/bzlib.h.i | Bin 0 -> 1734 bytes .../store/data/bzip2-1.0.4/bzlib__private.h.i | Bin 0 -> 3595 bytes .../.hg/store/data/bzip2-1.0.4/bzmore.1.i | Bin 0 -> 1916 bytes .../.hg/store/data/bzip2-1.0.4/bzmore.i | Bin 0 -> 709 bytes .../.hg/store/data/bzip2-1.0.4/compress.c.i | Bin 0 -> 5675 bytes .../.hg/store/data/bzip2-1.0.4/crctable.c.i | Bin 0 -> 2144 bytes .../.hg/store/data/bzip2-1.0.4/decompress.c.i | Bin 0 -> 4669 bytes .../.hg/store/data/bzip2-1.0.4/dlltest.c.i | Bin 0 -> 2781 bytes .../.hg/store/data/bzip2-1.0.4/dlltest.dsp.i | Bin 0 -> 1129 bytes .../.hg/store/data/bzip2-1.0.4/entities.xml.i | Bin 0 -> 222 bytes .../.hg/store/data/bzip2-1.0.4/format.pl.i | Bin 0 -> 831 bytes .../.hg/store/data/bzip2-1.0.4/huffman.c.i | Bin 0 -> 2152 bytes .../.hg/store/data/bzip2-1.0.4/libbz2.def.i | Bin 0 -> 277 bytes .../.hg/store/data/bzip2-1.0.4/libbz2.dsp.i | Bin 0 -> 1229 bytes .../.hg/store/data/bzip2-1.0.4/makefile.msc.i | Bin 0 -> 784 bytes .../.hg/store/data/bzip2-1.0.4/manual.html.i | Bin 0 -> 31649 bytes .../.hg/store/data/bzip2-1.0.4/manual.pdf.d | Bin 0 -> 219013 bytes .../.hg/store/data/bzip2-1.0.4/manual.pdf.i | Bin 0 -> 64 bytes .../.hg/store/data/bzip2-1.0.4/manual.ps.d | Bin 0 -> 234975 bytes .../.hg/store/data/bzip2-1.0.4/manual.ps.i | Bin 0 -> 64 bytes .../.hg/store/data/bzip2-1.0.4/manual.xml.i | Bin 0 -> 29729 bytes .../.hg/store/data/bzip2-1.0.4/mk251.c.i | Bin 0 -> 580 bytes .../.hg/store/data/bzip2-1.0.4/randtable.c.i | Bin 0 -> 1651 bytes .../.hg/store/data/bzip2-1.0.4/sample1.bz2.i | Bin 0 -> 32413 bytes .../.hg/store/data/bzip2-1.0.4/sample1.ref.i | Bin 0 -> 38202 bytes .../.hg/store/data/bzip2-1.0.4/sample2.bz2.i | Bin 0 -> 73797 bytes .../.hg/store/data/bzip2-1.0.4/sample2.ref.i | Bin 0 -> 87113 bytes .../.hg/store/data/bzip2-1.0.4/sample3.bz2.i | Bin 0 -> 300 bytes .../.hg/store/data/bzip2-1.0.4/sample3.ref.i | Bin 0 -> 390 bytes .../.hg/store/data/bzip2-1.0.4/spew_g.c.i | Bin 0 -> 913 bytes .../.hg/store/data/bzip2-1.0.4/unzcrash.c.i | Bin 0 -> 1547 bytes .../.hg/store/data/bzip2-1.0.4/words0.i | Bin 0 -> 321 bytes .../.hg/store/data/bzip2-1.0.4/words1.i | Bin 0 -> 158 bytes .../.hg/store/data/bzip2-1.0.4/words2.i | Bin 0 -> 212 bytes .../.hg/store/data/bzip2-1.0.4/words3.i | Bin 0 -> 567 bytes .../.hg/store/data/bzip2-1.0.4/xmlproc.sh.i | Bin 0 -> 1269 bytes .../.hg/store/data/bzip2/blocksort.c.i | Bin 0 -> 7936 bytes .../mojosetup/.hg/store/data/bzip2/bzlib.c.i | Bin 0 -> 9342 bytes .../mojosetup/.hg/store/data/bzip2/bzlib.h.i | Bin 0 -> 1978 bytes .../.hg/store/data/bzip2/bzlib__private.h.i | Bin 0 -> 4070 bytes .../.hg/store/data/bzip2/compress.c.i | Bin 0 -> 5917 bytes .../.hg/store/data/bzip2/crctable.c.i | Bin 0 -> 2384 bytes .../.hg/store/data/bzip2/decompress.c.i | Bin 0 -> 4916 bytes .../.hg/store/data/bzip2/huffman.c.i | Bin 0 -> 2395 bytes .../.hg/store/data/bzip2/randtable.c.i | Bin 0 -> 1890 bytes .../.hg/store/data/bzip2/version.txt.i | Bin 0 -> 77 bytes .../.hg/store/data/checksum__crc32.c.i | Bin 0 -> 822 bytes .../.hg/store/data/checksum__md5.c.i | Bin 0 -> 4873 bytes .../.hg/store/data/checksum__sha1.c.i | Bin 0 -> 3088 bytes mk/linux/mojosetup/.hg/store/data/docs.txt.i | Bin 0 -> 29105 bytes .../.hg/store/data/examples/aquaria/make.sh.i | Bin 0 -> 2401 bytes .../data/examples/aquaria/meta/splash.bmp.i | Bin 0 -> 80657 bytes .../aquaria/scripts/app__localization.lua.i | Bin 0 -> 749 bytes .../examples/aquaria/scripts/config.lua.i | Bin 0 -> 594 bytes .../data/examples/duke3d/data/duke3d.png.i | Bin 0 -> 30747 bytes .../examples/duke3d/data/duke3d__readme.txt.i | Bin 0 -> 1012 bytes .../store/data/examples/duke3d/data/gpl.txt.i | Bin 0 -> 5794 bytes .../duke3d/data/mojosetup__readme.txt.i | Bin 0 -> 555 bytes .../.hg/store/data/examples/duke3d/make.sh.i | Bin 0 -> 4732 bytes .../data/examples/duke3d/meta/splash.bmp.i | Bin 0 -> 48076 bytes .../duke3d/scripts/app__localization.lua.i | Bin 0 -> 835 bytes .../data/examples/duke3d/scripts/config.lua.i | Bin 0 -> 2928 bytes .../.hg/store/data/examples/lugaru/make.sh.i | Bin 0 -> 2402 bytes .../data/examples/lugaru/meta/splash.bmp.i | Bin 0 -> 4442 bytes .../lugaru/scripts/app__localization.lua.i | Bin 0 -> 747 bytes .../data/examples/lugaru/scripts/config.lua.i | Bin 0 -> 703 bytes .../.hg/store/data/examples/postal1/make.sh.i | Bin 0 -> 2387 bytes .../data/examples/postal1/meta/splash.bmp.i | Bin 0 -> 27202 bytes .../postal1/scripts/app__localization.lua.i | Bin 0 -> 747 bytes .../examples/postal1/scripts/config.lua.i | Bin 0 -> 659 bytes .../.hg/store/data/examples/postal2/make.sh.i | Bin 0 -> 2494 bytes .../data/examples/postal2/meta/splash.bmp.i | Bin 0 -> 27202 bytes .../postal2/scripts/app__localization.lua.i | Bin 0 -> 747 bytes .../examples/postal2/scripts/config.lua.i | Bin 0 -> 631 bytes .../store/data/examples/postal2aw/make.sh.i | Bin 0 -> 2425 bytes .../data/examples/postal2aw/meta/splash.bmp.i | Bin 0 -> 27202 bytes .../postal2aw/scripts/app__localization.lua.i | Bin 0 -> 747 bytes .../examples/postal2aw/scripts/config.lua.i | Bin 0 -> 2175 bytes .../store/data/examples/prey-demo/make.sh.i | Bin 0 -> 2823 bytes .../data/examples/prey-demo/meta/splash.bmp.i | Bin 0 -> 94696 bytes .../prey-demo/scripts/app__localization.lua.i | Bin 0 -> 2845 bytes .../examples/prey-demo/scripts/config.lua.i | Bin 0 -> 1687 bytes .../.hg/store/data/examples/prey/make.sh.i | Bin 0 -> 2609 bytes .../data/examples/prey/meta/splash.bmp.i | Bin 0 -> 94696 bytes .../prey/scripts/app__localization.lua.i | Bin 0 -> 2544 bytes .../data/examples/prey/scripts/config.lua.i | Bin 0 -> 2580 bytes .../data/_r_e_a_d_m_e-ut3-patch2.txt.i | Bin 0 -> 7958 bytes .../data/_u_t3-linux-server-_e_u_l_a.txt.i | Bin 0 -> 58811 bytes .../examples/ut3-dedicated-patches/make.sh.i | Bin 0 -> 2563 bytes .../scripts/config.lua.i | Bin 0 -> 1281 bytes .../data/examples/ut3-dedicated/make.sh.i | Bin 0 -> 2959 bytes .../ut3-dedicated/scripts/config.lua.i | Bin 0 -> 745 bytes mk/linux/mojosetup/.hg/store/data/fileio.c.i | Bin 0 -> 25689 bytes mk/linux/mojosetup/.hg/store/data/fileio.h.i | Bin 0 -> 6663 bytes mk/linux/mojosetup/.hg/store/data/gui.c.i | Bin 0 -> 8718 bytes mk/linux/mojosetup/.hg/store/data/gui.h.i | Bin 0 -> 11575 bytes .../.hg/store/data/gui/gui__macosx.c.i | Bin 0 -> 4492 bytes .../.hg/store/data/gui/gui__stdio.c.i | Bin 0 -> 7862 bytes .../mojosetup/.hg/store/data/gui__cocoa.m.i | Bin 0 -> 12031 bytes .../.hg/store/data/gui__gtkplus2.c.i | Bin 0 -> 20714 bytes .../mojosetup/.hg/store/data/gui__macosx.c.i | Bin 0 -> 5079 bytes .../mojosetup/.hg/store/data/gui__ncurses.c.i | Bin 0 -> 22915 bytes .../mojosetup/.hg/store/data/gui__stdio.c.i | Bin 0 -> 14290 bytes .../mojosetup/.hg/store/data/gui__www.c.i | Bin 0 -> 13064 bytes .../store/data/libfetch/_r_e_a_d_m_e.txt.i | Bin 0 -> 1282 bytes .../.hg/store/data/libfetch/common.c.i | Bin 0 -> 9368 bytes .../.hg/store/data/libfetch/common.h.i | Bin 0 -> 2155 bytes .../.hg/store/data/libfetch/fetch.c.i | Bin 0 -> 4680 bytes .../.hg/store/data/libfetch/fetch.h.i | Bin 0 -> 2435 bytes .../.hg/store/data/libfetch/file.c.i | Bin 0 -> 1689 bytes .../mojosetup/.hg/store/data/libfetch/ftp.c.i | Bin 0 -> 10903 bytes .../.hg/store/data/libfetch/ftp.errors.i | Bin 0 -> 986 bytes .../.hg/store/data/libfetch/ftperr.h.i | Bin 0 -> 994 bytes .../.hg/store/data/libfetch/http.c.i | Bin 0 -> 12180 bytes .../.hg/store/data/libfetch/http.errors.i | Bin 0 -> 726 bytes .../.hg/store/data/libfetch/httperr.h.i | Bin 0 -> 752 bytes .../data/libfetch/mojosetup__libfetch.h.i | Bin 0 -> 1509 bytes .../data/libfetch/regen__error__headers.sh.i | Bin 0 -> 321 bytes .../store/data/lua-5.1.1/_c_o_p_y_r_i_g_h_t.i | Bin 0 -> 997 bytes .../.hg/store/data/lua-5.1.1/_h_i_s_t_o_r_y.i | Bin 0 -> 3377 bytes .../.hg/store/data/lua-5.1.1/_i_n_s_t_a_l_l.i | Bin 0 -> 1936 bytes .../.hg/store/data/lua-5.1.1/_makefile.i | Bin 0 -> 2111 bytes .../.hg/store/data/lua-5.1.1/_r_e_a_d_m_e.i | Bin 0 -> 967 bytes .../.hg/store/data/lua-5.1.1/doc/amazon.gif.i | Bin 0 -> 862 bytes .../store/data/lua-5.1.1/doc/contents.html.i | Bin 0 -> 5047 bytes .../.hg/store/data/lua-5.1.1/doc/cover.png.i | Bin 0 -> 3370 bytes .../.hg/store/data/lua-5.1.1/doc/logo.gif.i | Bin 0 -> 3979 bytes .../.hg/store/data/lua-5.1.1/doc/lua.1.i | Bin 0 -> 1697 bytes .../.hg/store/data/lua-5.1.1/doc/lua.css.i | Bin 0 -> 494 bytes .../.hg/store/data/lua-5.1.1/doc/lua.html.i | Bin 0 -> 1819 bytes .../.hg/store/data/lua-5.1.1/doc/luac.1.i | Bin 0 -> 1721 bytes .../.hg/store/data/lua-5.1.1/doc/luac.html.i | Bin 0 -> 1839 bytes .../.hg/store/data/lua-5.1.1/doc/manual.css.i | Bin 0 -> 150 bytes .../store/data/lua-5.1.1/doc/manual.html.i | Bin 0 -> 71679 bytes .../store/data/lua-5.1.1/doc/readme.html.i | Bin 0 -> 734 bytes .../.hg/store/data/lua-5.1.1/etc/_makefile.i | Bin 0 -> 509 bytes .../store/data/lua-5.1.1/etc/_r_e_a_d_m_e.i | Bin 0 -> 717 bytes .../.hg/store/data/lua-5.1.1/etc/all.c.i | Bin 0 -> 280 bytes .../.hg/store/data/lua-5.1.1/etc/lua.hpp.i | Bin 0 -> 198 bytes .../.hg/store/data/lua-5.1.1/etc/lua.ico.i | Bin 0 -> 471 bytes .../.hg/store/data/lua-5.1.1/etc/lua.pc.i | Bin 0 -> 498 bytes .../.hg/store/data/lua-5.1.1/etc/luavs.bat.i | Bin 0 -> 753 bytes .../.hg/store/data/lua-5.1.1/etc/min.c.i | Bin 0 -> 577 bytes .../.hg/store/data/lua-5.1.1/etc/noparser.c.i | Bin 0 -> 696 bytes .../.hg/store/data/lua-5.1.1/etc/strict.lua.i | Bin 0 -> 702 bytes .../.hg/store/data/lua-5.1.1/src/_makefile.i | Bin 0 -> 2195 bytes .../.hg/store/data/lua-5.1.1/src/lapi.c.i | Bin 0 -> 5534 bytes .../.hg/store/data/lua-5.1.1/src/lapi.h.i | Bin 0 -> 415 bytes .../.hg/store/data/lua-5.1.1/src/lauxlib.c.i | Bin 0 -> 5359 bytes .../.hg/store/data/lua-5.1.1/src/lauxlib.h.i | Bin 0 -> 1778 bytes .../.hg/store/data/lua-5.1.1/src/lbaselib.c.i | Bin 0 -> 5454 bytes .../.hg/store/data/lua-5.1.1/src/lcode.c.i | Bin 0 -> 6127 bytes .../.hg/store/data/lua-5.1.1/src/lcode.h.i | Bin 0 -> 1115 bytes .../.hg/store/data/lua-5.1.1/src/ldblib.c.i | Bin 0 -> 3303 bytes .../.hg/store/data/lua-5.1.1/src/ldebug.c.i | Bin 0 -> 5157 bytes .../.hg/store/data/lua-5.1.1/src/ldebug.h.i | Bin 0 -> 650 bytes .../.hg/store/data/lua-5.1.1/src/ldo.c.i | Bin 0 -> 5158 bytes .../.hg/store/data/lua-5.1.1/src/ldo.h.i | Bin 0 -> 942 bytes .../.hg/store/data/lua-5.1.1/src/ldump.c.i | Bin 0 -> 1328 bytes .../.hg/store/data/lua-5.1.1/src/lfunc.c.i | Bin 0 -> 1865 bytes .../.hg/store/data/lua-5.1.1/src/lfunc.h.i | Bin 0 -> 632 bytes .../.hg/store/data/lua-5.1.1/src/lgc.c.i | Bin 0 -> 6031 bytes .../.hg/store/data/lua-5.1.1/src/lgc.h.i | Bin 0 -> 1334 bytes .../.hg/store/data/lua-5.1.1/src/linit.c.i | Bin 0 -> 599 bytes .../.hg/store/data/lua-5.1.1/src/liolib.c.i | Bin 0 -> 4656 bytes .../.hg/store/data/lua-5.1.1/src/llex.c.i | Bin 0 -> 3758 bytes .../.hg/store/data/lua-5.1.1/src/llex.h.i | Bin 0 -> 1180 bytes .../.hg/store/data/lua-5.1.1/src/llimits.h.i | Bin 0 -> 1295 bytes .../.hg/store/data/lua-5.1.1/src/lmathlib.c.i | Bin 0 -> 1615 bytes .../.hg/store/data/lua-5.1.1/src/lmem.c.i | Bin 0 -> 1181 bytes .../.hg/store/data/lua-5.1.1/src/lmem.h.i | Bin 0 -> 803 bytes .../.hg/store/data/lua-5.1.1/src/loadlib.c.i | Bin 0 -> 5869 bytes .../.hg/store/data/lua-5.1.1/src/lobject.c.i | Bin 0 -> 2126 bytes .../.hg/store/data/lua-5.1.1/src/lobject.h.i | Bin 0 -> 2834 bytes .../.hg/store/data/lua-5.1.1/src/lopcodes.c.i | Bin 0 -> 923 bytes .../.hg/store/data/lua-5.1.1/src/lopcodes.h.i | Bin 0 -> 2962 bytes .../.hg/store/data/lua-5.1.1/src/loslib.c.i | Bin 0 -> 2397 bytes .../.hg/store/data/lua-5.1.1/src/lparser.c.i | Bin 0 -> 10185 bytes .../.hg/store/data/lua-5.1.1/src/lparser.h.i | Bin 0 -> 1180 bytes .../.hg/store/data/lua-5.1.1/src/lstate.c.i | Bin 0 -> 2259 bytes .../.hg/store/data/lua-5.1.1/src/lstate.h.i | Bin 0 -> 2190 bytes .../.hg/store/data/lua-5.1.1/src/lstring.c.i | Bin 0 -> 1506 bytes .../.hg/store/data/lua-5.1.1/src/lstring.h.i | Bin 0 -> 618 bytes .../.hg/store/data/lua-5.1.1/src/lstrlib.c.i | Bin 0 -> 6763 bytes .../.hg/store/data/lua-5.1.1/src/ltable.c.i | Bin 0 -> 5342 bytes .../.hg/store/data/lua-5.1.1/src/ltable.h.i | Bin 0 -> 658 bytes .../.hg/store/data/lua-5.1.1/src/ltablib.c.i | Bin 0 -> 2565 bytes .../.hg/store/data/lua-5.1.1/src/ltm.c.i | Bin 0 -> 1010 bytes .../.hg/store/data/lua-5.1.1/src/ltm.h.i | Bin 0 -> 754 bytes .../.hg/store/data/lua-5.1.1/src/lua.c.i | Bin 0 -> 3624 bytes .../.hg/store/data/lua-5.1.1/src/lua.h.i | Bin 0 -> 3791 bytes .../.hg/store/data/lua-5.1.1/src/luac.c.i | Bin 0 -> 1896 bytes .../.hg/store/data/lua-5.1.1/src/luaconf.h.i | Bin 0 -> 7792 bytes .../.hg/store/data/lua-5.1.1/src/lualib.h.i | Bin 0 -> 608 bytes .../.hg/store/data/lua-5.1.1/src/lundump.c.i | Bin 0 -> 1902 bytes .../.hg/store/data/lua-5.1.1/src/lundump.h.i | Bin 0 -> 648 bytes .../.hg/store/data/lua-5.1.1/src/lvm.c.i | Bin 0 -> 6584 bytes .../.hg/store/data/lua-5.1.1/src/lvm.h.i | Bin 0 -> 648 bytes .../.hg/store/data/lua-5.1.1/src/lzio.c.i | Bin 0 -> 910 bytes .../.hg/store/data/lua-5.1.1/src/lzio.h.i | Bin 0 -> 869 bytes .../.hg/store/data/lua-5.1.1/src/print.c.i | Bin 0 -> 1984 bytes .../store/data/lua-5.1.1/test/_r_e_a_d_m_e.i | Bin 0 -> 630 bytes .../store/data/lua-5.1.1/test/bisect.lua.i | Bin 0 -> 436 bytes .../.hg/store/data/lua-5.1.1/test/cf.lua.i | Bin 0 -> 232 bytes .../.hg/store/data/lua-5.1.1/test/echo.lua.i | Bin 0 -> 145 bytes .../.hg/store/data/lua-5.1.1/test/env.lua.i | Bin 0 -> 216 bytes .../store/data/lua-5.1.1/test/factorial.lua.i | Bin 0 -> 360 bytes .../.hg/store/data/lua-5.1.1/test/fib.lua.i | Bin 0 -> 395 bytes .../store/data/lua-5.1.1/test/fibfor.lua.i | Bin 0 -> 225 bytes .../store/data/lua-5.1.1/test/globals.lua.i | Bin 0 -> 349 bytes .../.hg/store/data/lua-5.1.1/test/hello.lua.i | Bin 0 -> 151 bytes .../.hg/store/data/lua-5.1.1/test/life.lua.i | Bin 0 -> 1223 bytes .../.hg/store/data/lua-5.1.1/test/luac.lua.i | Bin 0 -> 217 bytes .../store/data/lua-5.1.1/test/printf.lua.i | Bin 0 -> 206 bytes .../store/data/lua-5.1.1/test/readonly.lua.i | Bin 0 -> 249 bytes .../.hg/store/data/lua-5.1.1/test/sieve.lua.i | Bin 0 -> 456 bytes .../.hg/store/data/lua-5.1.1/test/sort.lua.i | Bin 0 -> 734 bytes .../.hg/store/data/lua-5.1.1/test/table.lua.i | Bin 0 -> 268 bytes .../data/lua-5.1.1/test/trace-calls.lua.i | Bin 0 -> 428 bytes .../data/lua-5.1.1/test/trace-globals.lua.i | Bin 0 -> 451 bytes .../.hg/store/data/lua-5.1.1/test/xd.lua.i | Bin 0 -> 291 bytes .../store/data/lua-5.1.3/_c_o_p_y_r_i_g_h_t.i | Bin 0 -> 940 bytes .../.hg/store/data/lua-5.1.3/_h_i_s_t_o_r_y.i | Bin 0 -> 3312 bytes .../.hg/store/data/lua-5.1.3/_i_n_s_t_a_l_l.i | Bin 0 -> 1773 bytes .../.hg/store/data/lua-5.1.3/_makefile.i | Bin 0 -> 1586 bytes .../.hg/store/data/lua-5.1.3/_r_e_a_d_m_e.i | Bin 0 -> 831 bytes .../.hg/store/data/lua-5.1.3/doc/amazon.gif.i | Bin 0 -> 947 bytes .../store/data/lua-5.1.3/doc/contents.html.i | Bin 0 -> 4370 bytes .../.hg/store/data/lua-5.1.3/doc/cover.png.i | Bin 0 -> 3454 bytes .../.hg/store/data/lua-5.1.3/doc/logo.gif.i | Bin 0 -> 4061 bytes .../.hg/store/data/lua-5.1.3/doc/lua.1.i | Bin 0 -> 1763 bytes .../.hg/store/data/lua-5.1.3/doc/lua.css.i | Bin 0 -> 381 bytes .../.hg/store/data/lua-5.1.3/doc/lua.html.i | Bin 0 -> 1889 bytes .../.hg/store/data/lua-5.1.3/doc/luac.1.i | Bin 0 -> 1792 bytes .../.hg/store/data/lua-5.1.3/doc/luac.html.i | Bin 0 -> 1910 bytes .../.hg/store/data/lua-5.1.3/doc/manual.css.i | Bin 0 -> 216 bytes .../store/data/lua-5.1.3/doc/manual.html.i | Bin 0 -> 62226 bytes .../store/data/lua-5.1.3/doc/readme.html.i | Bin 0 -> 548 bytes .../.hg/store/data/lua-5.1.3/etc/_makefile.i | Bin 0 -> 574 bytes .../store/data/lua-5.1.3/etc/_r_e_a_d_m_e.i | Bin 0 -> 694 bytes .../.hg/store/data/lua-5.1.3/etc/all.c.i | Bin 0 -> 340 bytes .../.hg/store/data/lua-5.1.3/etc/lua.hpp.i | Bin 0 -> 259 bytes .../.hg/store/data/lua-5.1.3/etc/lua.ico.i | Bin 0 -> 563 bytes .../.hg/store/data/lua-5.1.3/etc/lua.pc.i | Bin 0 -> 477 bytes .../.hg/store/data/lua-5.1.3/etc/luavs.bat.i | Bin 0 -> 611 bytes .../.hg/store/data/lua-5.1.3/etc/min.c.i | Bin 0 -> 536 bytes .../.hg/store/data/lua-5.1.3/etc/noparser.c.i | Bin 0 -> 764 bytes .../.hg/store/data/lua-5.1.3/etc/strict.lua.i | Bin 0 -> 558 bytes .../.hg/store/data/lua-5.1.3/src/_makefile.i | Bin 0 -> 1887 bytes .../.hg/store/data/lua-5.1.3/src/lapi.c.i | Bin 0 -> 5353 bytes .../.hg/store/data/lua-5.1.3/src/lapi.h.i | Bin 0 -> 336 bytes .../.hg/store/data/lua-5.1.3/src/lauxlib.c.i | Bin 0 -> 5033 bytes .../.hg/store/data/lua-5.1.3/src/lauxlib.h.i | Bin 0 -> 1706 bytes .../.hg/store/data/lua-5.1.3/src/lbaselib.c.i | Bin 0 -> 4851 bytes .../.hg/store/data/lua-5.1.3/src/lcode.c.i | Bin 0 -> 5667 bytes .../.hg/store/data/lua-5.1.3/src/lcode.h.i | Bin 0 -> 1041 bytes .../.hg/store/data/lua-5.1.3/src/ldblib.c.i | Bin 0 -> 2945 bytes .../.hg/store/data/lua-5.1.3/src/ldebug.c.i | Bin 0 -> 4912 bytes .../.hg/store/data/lua-5.1.3/src/ldebug.h.i | Bin 0 -> 571 bytes .../.hg/store/data/lua-5.1.3/src/ldo.c.i | Bin 0 -> 4806 bytes .../.hg/store/data/lua-5.1.3/src/ldo.h.i | Bin 0 -> 870 bytes .../.hg/store/data/lua-5.1.3/src/ldump.c.i | Bin 0 -> 1255 bytes .../.hg/store/data/lua-5.1.3/src/lfunc.c.i | Bin 0 -> 1694 bytes .../.hg/store/data/lua-5.1.3/src/lfunc.h.i | Bin 0 -> 557 bytes .../.hg/store/data/lua-5.1.3/src/lgc.c.i | Bin 0 -> 5967 bytes .../.hg/store/data/lua-5.1.3/src/lgc.h.i | Bin 0 -> 1259 bytes .../.hg/store/data/lua-5.1.3/src/linit.c.i | Bin 0 -> 524 bytes .../.hg/store/data/lua-5.1.3/src/liolib.c.i | Bin 0 -> 3974 bytes .../.hg/store/data/lua-5.1.3/src/llex.c.i | Bin 0 -> 3688 bytes .../.hg/store/data/lua-5.1.3/src/llex.h.i | Bin 0 -> 1107 bytes .../.hg/store/data/lua-5.1.3/src/llimits.h.i | Bin 0 -> 1216 bytes .../.hg/store/data/lua-5.1.3/src/lmathlib.c.i | Bin 0 -> 1536 bytes .../.hg/store/data/lua-5.1.3/src/lmem.c.i | Bin 0 -> 1106 bytes .../.hg/store/data/lua-5.1.3/src/lmem.h.i | Bin 0 -> 729 bytes .../.hg/store/data/lua-5.1.3/src/loadlib.c.i | Bin 0 -> 5319 bytes .../.hg/store/data/lua-5.1.3/src/lobject.c.i | Bin 0 -> 2051 bytes .../.hg/store/data/lua-5.1.3/src/lobject.h.i | Bin 0 -> 2761 bytes .../.hg/store/data/lua-5.1.3/src/lopcodes.c.i | Bin 0 -> 847 bytes .../.hg/store/data/lua-5.1.3/src/lopcodes.h.i | Bin 0 -> 2881 bytes .../.hg/store/data/lua-5.1.3/src/loslib.c.i | Bin 0 -> 2165 bytes .../.hg/store/data/lua-5.1.3/src/lparser.c.i | Bin 0 -> 9994 bytes .../.hg/store/data/lua-5.1.3/src/lparser.h.i | Bin 0 -> 1100 bytes .../.hg/store/data/lua-5.1.3/src/lstate.c.i | Bin 0 -> 2145 bytes .../.hg/store/data/lua-5.1.3/src/lstate.h.i | Bin 0 -> 2069 bytes .../.hg/store/data/lua-5.1.3/src/lstring.c.i | Bin 0 -> 1433 bytes .../.hg/store/data/lua-5.1.3/src/lstring.h.i | Bin 0 -> 537 bytes .../.hg/store/data/lua-5.1.3/src/lstrlib.c.i | Bin 0 -> 6510 bytes .../.hg/store/data/lua-5.1.3/src/ltable.c.i | Bin 0 -> 5198 bytes .../.hg/store/data/lua-5.1.3/src/ltable.h.i | Bin 0 -> 578 bytes .../.hg/store/data/lua-5.1.3/src/ltablib.c.i | Bin 0 -> 2429 bytes .../.hg/store/data/lua-5.1.3/src/ltm.c.i | Bin 0 -> 941 bytes .../.hg/store/data/lua-5.1.3/src/ltm.h.i | Bin 0 -> 683 bytes .../.hg/store/data/lua-5.1.3/src/lua.c.i | Bin 0 -> 3473 bytes .../.hg/store/data/lua-5.1.3/src/lua.h.i | Bin 0 -> 3557 bytes .../.hg/store/data/lua-5.1.3/src/luac.c.i | Bin 0 -> 1962 bytes .../.hg/store/data/lua-5.1.3/src/luaconf.h.i | Bin 0 -> 7556 bytes .../.hg/store/data/lua-5.1.3/src/lualib.h.i | Bin 0 -> 531 bytes .../.hg/store/data/lua-5.1.3/src/lundump.c.i | Bin 0 -> 1764 bytes .../.hg/store/data/lua-5.1.3/src/lundump.h.i | Bin 0 -> 572 bytes .../.hg/store/data/lua-5.1.3/src/lvm.c.i | Bin 0 -> 6253 bytes .../.hg/store/data/lua-5.1.3/src/lvm.h.i | Bin 0 -> 572 bytes .../.hg/store/data/lua-5.1.3/src/lzio.c.i | Bin 0 -> 837 bytes .../.hg/store/data/lua-5.1.3/src/lzio.h.i | Bin 0 -> 795 bytes .../.hg/store/data/lua-5.1.3/src/print.c.i | Bin 0 -> 1854 bytes .../store/data/lua-5.1.3/test/_r_e_a_d_m_e.i | Bin 0 -> 703 bytes .../store/data/lua-5.1.3/test/bisect.lua.i | Bin 0 -> 499 bytes .../.hg/store/data/lua-5.1.3/test/cf.lua.i | Bin 0 -> 292 bytes .../.hg/store/data/lua-5.1.3/test/echo.lua.i | Bin 0 -> 210 bytes .../.hg/store/data/lua-5.1.3/test/env.lua.i | Bin 0 -> 282 bytes .../store/data/lua-5.1.3/test/factorial.lua.i | Bin 0 -> 428 bytes .../.hg/store/data/lua-5.1.3/test/fib.lua.i | Bin 0 -> 459 bytes .../store/data/lua-5.1.3/test/fibfor.lua.i | Bin 0 -> 292 bytes .../store/data/lua-5.1.3/test/globals.lua.i | Bin 0 -> 415 bytes .../.hg/store/data/lua-5.1.3/test/hello.lua.i | Bin 0 -> 224 bytes .../.hg/store/data/lua-5.1.3/test/life.lua.i | Bin 0 -> 1286 bytes .../.hg/store/data/lua-5.1.3/test/luac.lua.i | Bin 0 -> 280 bytes .../store/data/lua-5.1.3/test/printf.lua.i | Bin 0 -> 272 bytes .../store/data/lua-5.1.3/test/readonly.lua.i | Bin 0 -> 313 bytes .../.hg/store/data/lua-5.1.3/test/sieve.lua.i | Bin 0 -> 518 bytes .../.hg/store/data/lua-5.1.3/test/sort.lua.i | Bin 0 -> 804 bytes .../.hg/store/data/lua-5.1.3/test/table.lua.i | Bin 0 -> 333 bytes .../data/lua-5.1.3/test/trace-calls.lua.i | Bin 0 -> 492 bytes .../data/lua-5.1.3/test/trace-globals.lua.i | Bin 0 -> 521 bytes .../.hg/store/data/lua-5.1.3/test/xd.lua.i | Bin 0 -> 348 bytes .../.hg/store/data/lua/_c_o_p_y_r_i_g_h_t.i | Bin 0 -> 941 bytes .../.hg/store/data/lua/_h_i_s_t_o_r_y.i | Bin 0 -> 3310 bytes .../.hg/store/data/lua/_i_n_s_t_a_l_l.i | Bin 0 -> 1770 bytes .../mojosetup/.hg/store/data/lua/_makefile.i | Bin 0 -> 2181 bytes .../.hg/store/data/lua/_r_e_a_d_m_e.i | Bin 0 -> 831 bytes .../mojosetup/.hg/store/data/lua/config.lua.i | Bin 0 -> 4214 bytes .../.hg/store/data/lua/doc/amazon.gif.i | Bin 0 -> 947 bytes .../.hg/store/data/lua/doc/contents.html.i | Bin 0 -> 4368 bytes .../.hg/store/data/lua/doc/cover.png.i | Bin 0 -> 3454 bytes .../.hg/store/data/lua/doc/logo.gif.i | Bin 0 -> 4061 bytes .../mojosetup/.hg/store/data/lua/doc/lua.1.i | Bin 0 -> 1765 bytes .../.hg/store/data/lua/doc/lua.css.i | Bin 0 -> 381 bytes .../.hg/store/data/lua/doc/lua.html.i | Bin 0 -> 1887 bytes .../mojosetup/.hg/store/data/lua/doc/luac.1.i | Bin 0 -> 1788 bytes .../.hg/store/data/lua/doc/luac.html.i | Bin 0 -> 1907 bytes .../.hg/store/data/lua/doc/manual.css.i | Bin 0 -> 212 bytes .../.hg/store/data/lua/doc/manual.html.i | Bin 0 -> 66309 bytes .../.hg/store/data/lua/doc/readme.html.i | Bin 0 -> 737 bytes .../.hg/store/data/lua/etc/_makefile.i | Bin 0 -> 574 bytes .../.hg/store/data/lua/etc/_r_e_a_d_m_e.i | Bin 0 -> 696 bytes .../mojosetup/.hg/store/data/lua/etc/all.c.i | Bin 0 -> 343 bytes .../.hg/store/data/lua/etc/lua.hpp.i | Bin 0 -> 255 bytes .../.hg/store/data/lua/etc/lua.ico.i | Bin 0 -> 563 bytes .../mojosetup/.hg/store/data/lua/etc/lua.pc.i | Bin 0 -> 575 bytes .../.hg/store/data/lua/etc/luavs.bat.i | Bin 0 -> 1176 bytes .../mojosetup/.hg/store/data/lua/etc/min.c.i | Bin 0 -> 534 bytes .../.hg/store/data/lua/etc/noparser.c.i | Bin 0 -> 762 bytes .../.hg/store/data/lua/etc/strict.lua.i | Bin 0 -> 558 bytes .../.hg/store/data/lua/localization.lua.i | Bin 0 -> 2394 bytes .../.hg/store/data/lua/mojosetup__init.lua.i | Bin 0 -> 12722 bytes .../store/data/lua/mojosetup__mainline.lua.i | Bin 0 -> 6036 bytes .../mojosetup/.hg/store/data/lua/setup.lua.i | Bin 0 -> 1254 bytes .../.hg/store/data/lua/src/_makefile.i | Bin 0 -> 1887 bytes .../mojosetup/.hg/store/data/lua/src/lapi.c.i | Bin 0 -> 5733 bytes .../mojosetup/.hg/store/data/lua/src/lapi.h.i | Bin 0 -> 336 bytes .../.hg/store/data/lua/src/lauxlib.c.i | Bin 0 -> 5038 bytes .../.hg/store/data/lua/src/lauxlib.h.i | Bin 0 -> 1707 bytes .../.hg/store/data/lua/src/lbaselib.c.i | Bin 0 -> 5233 bytes .../.hg/store/data/lua/src/lcode.c.i | Bin 0 -> 5663 bytes .../.hg/store/data/lua/src/lcode.h.i | Bin 0 -> 1042 bytes .../.hg/store/data/lua/src/ldblib.c.i | Bin 0 -> 2949 bytes .../.hg/store/data/lua/src/ldebug.c.i | Bin 0 -> 5611 bytes .../.hg/store/data/lua/src/ldebug.h.i | Bin 0 -> 572 bytes .../mojosetup/.hg/store/data/lua/src/ldo.c.i | Bin 0 -> 4806 bytes .../mojosetup/.hg/store/data/lua/src/ldo.h.i | Bin 0 -> 867 bytes .../.hg/store/data/lua/src/ldump.c.i | Bin 0 -> 1259 bytes .../.hg/store/data/lua/src/lfunc.c.i | Bin 0 -> 1695 bytes .../.hg/store/data/lua/src/lfunc.h.i | Bin 0 -> 559 bytes .../mojosetup/.hg/store/data/lua/src/lgc.c.i | Bin 0 -> 5972 bytes .../mojosetup/.hg/store/data/lua/src/lgc.h.i | Bin 0 -> 1259 bytes .../.hg/store/data/lua/src/linit.c.i | Bin 0 -> 527 bytes .../.hg/store/data/lua/src/liolib.c.i | Bin 0 -> 3977 bytes .../mojosetup/.hg/store/data/lua/src/llex.c.i | Bin 0 -> 3687 bytes .../mojosetup/.hg/store/data/lua/src/llex.h.i | Bin 0 -> 1108 bytes .../.hg/store/data/lua/src/llimits.h.i | Bin 0 -> 1217 bytes .../.hg/store/data/lua/src/lmathlib.c.i | Bin 0 -> 1538 bytes .../mojosetup/.hg/store/data/lua/src/lmem.c.i | Bin 0 -> 1107 bytes .../mojosetup/.hg/store/data/lua/src/lmem.h.i | Bin 0 -> 730 bytes .../.hg/store/data/lua/src/loadlib.c.i | Bin 0 -> 5607 bytes .../.hg/store/data/lua/src/lobject.c.i | Bin 0 -> 2051 bytes .../.hg/store/data/lua/src/lobject.h.i | Bin 0 -> 2954 bytes .../.hg/store/data/lua/src/lopcodes.c.i | Bin 0 -> 847 bytes .../.hg/store/data/lua/src/lopcodes.h.i | Bin 0 -> 2884 bytes .../.hg/store/data/lua/src/loslib.c.i | Bin 0 -> 2165 bytes .../.hg/store/data/lua/src/lparser.c.i | Bin 0 -> 9997 bytes .../.hg/store/data/lua/src/lparser.h.i | Bin 0 -> 1104 bytes .../.hg/store/data/lua/src/lstate.c.i | Bin 0 -> 2143 bytes .../.hg/store/data/lua/src/lstate.h.i | Bin 0 -> 2068 bytes .../.hg/store/data/lua/src/lstring.c.i | Bin 0 -> 1433 bytes .../.hg/store/data/lua/src/lstring.h.i | Bin 0 -> 536 bytes .../.hg/store/data/lua/src/lstrlib.c.i | Bin 0 -> 6724 bytes .../.hg/store/data/lua/src/ltable.c.i | Bin 0 -> 5193 bytes .../.hg/store/data/lua/src/ltable.h.i | Bin 0 -> 579 bytes .../.hg/store/data/lua/src/ltablib.c.i | Bin 0 -> 2851 bytes .../mojosetup/.hg/store/data/lua/src/ltm.c.i | Bin 0 -> 942 bytes .../mojosetup/.hg/store/data/lua/src/ltm.h.i | Bin 0 -> 684 bytes .../mojosetup/.hg/store/data/lua/src/lua.c.i | Bin 0 -> 3477 bytes .../mojosetup/.hg/store/data/lua/src/lua.h.i | Bin 0 -> 3739 bytes .../mojosetup/.hg/store/data/lua/src/luac.c.i | Bin 0 -> 1965 bytes .../.hg/store/data/lua/src/luaconf.h.i | Bin 0 -> 8092 bytes .../.hg/store/data/lua/src/lualib.h.i | Bin 0 -> 532 bytes .../.hg/store/data/lua/src/lundump.c.i | Bin 0 -> 2070 bytes .../.hg/store/data/lua/src/lundump.h.i | Bin 0 -> 569 bytes .../mojosetup/.hg/store/data/lua/src/lvm.c.i | Bin 0 -> 6250 bytes .../mojosetup/.hg/store/data/lua/src/lvm.h.i | Bin 0 -> 573 bytes .../mojosetup/.hg/store/data/lua/src/lzio.c.i | Bin 0 -> 839 bytes .../mojosetup/.hg/store/data/lua/src/lzio.h.i | Bin 0 -> 792 bytes .../.hg/store/data/lua/src/print.c.i | Bin 0 -> 1853 bytes .../.hg/store/data/lua/test/_r_e_a_d_m_e.i | Bin 0 -> 704 bytes .../.hg/store/data/lua/test/bisect.lua.i | Bin 0 -> 500 bytes .../.hg/store/data/lua/test/cf.lua.i | Bin 0 -> 295 bytes .../.hg/store/data/lua/test/echo.lua.i | Bin 0 -> 209 bytes .../.hg/store/data/lua/test/env.lua.i | Bin 0 -> 282 bytes .../.hg/store/data/lua/test/factorial.lua.i | Bin 0 -> 427 bytes .../.hg/store/data/lua/test/fib.lua.i | Bin 0 -> 460 bytes .../.hg/store/data/lua/test/fibfor.lua.i | Bin 0 -> 291 bytes .../.hg/store/data/lua/test/globals.lua.i | Bin 0 -> 416 bytes .../.hg/store/data/lua/test/hello.lua.i | Bin 0 -> 225 bytes .../.hg/store/data/lua/test/life.lua.i | Bin 0 -> 1286 bytes .../.hg/store/data/lua/test/luac.lua.i | Bin 0 -> 278 bytes .../.hg/store/data/lua/test/printf.lua.i | Bin 0 -> 273 bytes .../.hg/store/data/lua/test/readonly.lua.i | Bin 0 -> 314 bytes .../.hg/store/data/lua/test/sieve.lua.i | Bin 0 -> 520 bytes .../.hg/store/data/lua/test/sort.lua.i | Bin 0 -> 804 bytes .../.hg/store/data/lua/test/table.lua.i | Bin 0 -> 332 bytes .../.hg/store/data/lua/test/trace-calls.lua.i | Bin 0 -> 491 bytes .../store/data/lua/test/trace-globals.lua.i | Bin 0 -> 521 bytes .../.hg/store/data/lua/test/xd.lua.i | Bin 0 -> 350 bytes .../.hg/store/data/lua/translations.lua.i | Bin 0 -> 1116 bytes .../mojosetup/.hg/store/data/lua__glue.c.i | Bin 0 -> 46369 bytes .../mojosetup/.hg/store/data/lua__glue.h.i | Bin 0 -> 2509 bytes mk/linux/mojosetup/.hg/store/data/makefile.i | Bin 0 -> 4252 bytes .../data/meta/xdg-utils/xdg-desktop-menu.i | Bin 0 -> 23342 bytes .../.hg/store/data/meta/xdg-utils/xdg-open.i | Bin 0 -> 7464 bytes mk/linux/mojosetup/.hg/store/data/misc.c.i | Bin 0 -> 6174 bytes .../.hg/store/data/misc/_find_curses.cmake.i | Bin 0 -> 1800 bytes .../_contents/_info.plist.i | Bin 0 -> 445 bytes .../_contents/_pkg_info.i | Bin 0 -> 73 bytes .../_contents/_resources/mojosetup.icns.d | Bin 0 -> 262928 bytes .../_contents/_resources/mojosetup.icns.i | Bin 0 -> 64 bytes .../.hg/store/data/misc/_mojo_setup.xib.i | Bin 0 -> 23939 bytes .../mojosetup/.hg/store/data/misc/cp.cmake.i | Bin 0 -> 540 bytes .../data/misc/find__localizable__strings.sh.i | Bin 0 -> 204 bytes .../.hg/store/data/misc/launchpad-import.sh.i | Bin 0 -> 427 bytes .../.hg/store/data/misc/localization2pot.pl.i | Bin 0 -> 2651 bytes .../.hg/store/data/misc/mkdir.cmake.i | Bin 0 -> 394 bytes .../.hg/store/data/misc/po2localization.pl.i | Bin 0 -> 2964 bytes .../mojosetup/.hg/store/data/misc/poize.lua.i | Bin 0 -> 2118 bytes .../.hg/store/data/misc/rm__recurse.cmake.i | Bin 0 -> 413 bytes .../.hg/store/data/misc/shrinksh.pl.i | Bin 0 -> 876 bytes .../mojosetup/.hg/store/data/mojosetup.c.i | Bin 0 -> 24752 bytes .../mojosetup/.hg/store/data/platform.h.i | Bin 0 -> 11438 bytes .../.hg/store/data/platform/beos.c.i | Bin 0 -> 873 bytes .../.hg/store/data/platform/beos.cpp.i | Bin 0 -> 963 bytes .../.hg/store/data/platform/unix.c.i | Bin 0 -> 13832 bytes .../.hg/store/data/platform__beos.c.i | Bin 0 -> 971 bytes .../.hg/store/data/platform__beos.cpp.i | Bin 0 -> 1405 bytes .../.hg/store/data/platform__unix.c.i | Bin 0 -> 24638 bytes .../.hg/store/data/platform__windows.c.i | Bin 0 -> 19599 bytes .../mojosetup/.hg/store/data/schema.lua.i | Bin 0 -> 7365 bytes .../data/scripts/app__localization.lua.i | Bin 0 -> 1590 bytes .../.hg/store/data/scripts/config.lua.i | Bin 0 -> 5358 bytes .../.hg/store/data/scripts/localization.lua.i | Bin 0 -> 118509 bytes .../data/scripts/loki__setup__compat.lua.i | Bin 0 -> 1774 bytes .../store/data/scripts/mojosetup__init.lua.i | Bin 0 -> 15219 bytes .../data/scripts/mojosetup__mainline.lua.i | Bin 0 -> 52909 bytes mk/linux/mojosetup/.hg/store/data/setup.lua.i | Bin 0 -> 2304 bytes .../mojosetup/.hg/store/data/stb__image.c.i | Bin 0 -> 32612 bytes .../.hg/store/data/translations.lua.i | Bin 0 -> 422 bytes .../mojosetup/.hg/store/data/universal.h.i | Bin 0 -> 13244 bytes .../.hg/store/data/zlib-1.2.3/adler32.c.i | Bin 0 -> 1481 bytes .../.hg/store/data/zlib-1.2.3/compress.c.i | Bin 0 -> 1084 bytes .../.hg/store/data/zlib-1.2.3/crc32.c.i | Bin 0 -> 4096 bytes .../.hg/store/data/zlib-1.2.3/crc32.h.i | Bin 0 -> 12636 bytes .../.hg/store/data/zlib-1.2.3/deflate.c.i | Bin 0 -> 15402 bytes .../.hg/store/data/zlib-1.2.3/deflate.h.i | Bin 0 -> 4545 bytes .../.hg/store/data/zlib-1.2.3/gzio.c.i | Bin 0 -> 8002 bytes .../.hg/store/data/zlib-1.2.3/infback.c.i | Bin 0 -> 5437 bytes .../.hg/store/data/zlib-1.2.3/inffast.c.i | Bin 0 -> 3392 bytes .../.hg/store/data/zlib-1.2.3/inffast.h.i | Bin 0 -> 393 bytes .../.hg/store/data/zlib-1.2.3/inffixed.h.i | Bin 0 -> 1687 bytes .../.hg/store/data/zlib-1.2.3/inflate.c.i | Bin 0 -> 11723 bytes .../.hg/store/data/zlib-1.2.3/inflate.h.i | Bin 0 -> 2112 bytes .../.hg/store/data/zlib-1.2.3/inftrees.c.i | Bin 0 -> 4550 bytes .../.hg/store/data/zlib-1.2.3/inftrees.h.i | Bin 0 -> 1168 bytes .../.hg/store/data/zlib-1.2.3/trees.c.i | Bin 0 -> 12038 bytes .../.hg/store/data/zlib-1.2.3/trees.h.i | Bin 0 -> 1544 bytes .../.hg/store/data/zlib-1.2.3/uncompr.c.i | Bin 0 -> 1029 bytes .../.hg/store/data/zlib-1.2.3/zconf.h.i | Bin 0 -> 3518 bytes .../.hg/store/data/zlib-1.2.3/zlib.h.i | Bin 0 -> 18471 bytes .../.hg/store/data/zlib-1.2.3/zutil.c.i | Bin 0 -> 2693 bytes .../.hg/store/data/zlib-1.2.3/zutil.h.i | Bin 0 -> 2680 bytes .../mojosetup/.hg/store/data/zlib/adler32.c.i | Bin 0 -> 1877 bytes .../.hg/store/data/zlib/compress.c.i | Bin 0 -> 1275 bytes .../mojosetup/.hg/store/data/zlib/crc32.c.i | Bin 0 -> 4552 bytes .../mojosetup/.hg/store/data/zlib/crc32.h.i | Bin 0 -> 12642 bytes .../mojosetup/.hg/store/data/zlib/deflate.c.i | Bin 0 -> 18296 bytes .../mojosetup/.hg/store/data/zlib/deflate.h.i | Bin 0 -> 4980 bytes .../mojosetup/.hg/store/data/zlib/infback.c.i | Bin 0 -> 6450 bytes .../mojosetup/.hg/store/data/zlib/inffast.c.i | Bin 0 -> 4398 bytes .../mojosetup/.hg/store/data/zlib/inffast.h.i | Bin 0 -> 394 bytes .../.hg/store/data/zlib/inffixed.h.i | Bin 0 -> 1690 bytes .../mojosetup/.hg/store/data/zlib/inflate.c.i | Bin 0 -> 14238 bytes .../mojosetup/.hg/store/data/zlib/inflate.h.i | Bin 0 -> 2831 bytes .../.hg/store/data/zlib/inftrees.c.i | Bin 0 -> 5362 bytes .../.hg/store/data/zlib/inftrees.h.i | Bin 0 -> 1743 bytes .../mojosetup/.hg/store/data/zlib/trees.c.i | Bin 0 -> 13383 bytes .../mojosetup/.hg/store/data/zlib/trees.h.i | Bin 0 -> 1546 bytes .../mojosetup/.hg/store/data/zlib/uncompr.c.i | Bin 0 -> 1176 bytes .../.hg/store/data/zlib/version.txt.i | Bin 0 -> 76 bytes .../mojosetup/.hg/store/data/zlib/zconf.h.i | Bin 0 -> 5199 bytes .../mojosetup/.hg/store/data/zlib/zlib.h.i | Bin 0 -> 33383 bytes .../mojosetup/.hg/store/data/zlib/zutil.c.i | Bin 0 -> 2866 bytes .../mojosetup/.hg/store/data/zlib/zutil.h.i | Bin 0 -> 3330 bytes .../.hg/store/data/zlib123/adler32.c.i | Bin 0 -> 1428 bytes .../.hg/store/data/zlib123/compress.c.i | Bin 0 -> 1028 bytes .../.hg/store/data/zlib123/crc32.c.i | Bin 0 -> 4039 bytes .../.hg/store/data/zlib123/crc32.h.i | Bin 0 -> 12574 bytes .../.hg/store/data/zlib123/deflate.c.i | Bin 0 -> 15342 bytes .../.hg/store/data/zlib123/deflate.h.i | Bin 0 -> 4489 bytes .../mojosetup/.hg/store/data/zlib123/gzio.c.i | Bin 0 -> 7942 bytes .../.hg/store/data/zlib123/infback.c.i | Bin 0 -> 5379 bytes .../.hg/store/data/zlib123/inffast.c.i | Bin 0 -> 3335 bytes .../.hg/store/data/zlib123/inffast.h.i | Bin 0 -> 340 bytes .../.hg/store/data/zlib123/inffixed.h.i | Bin 0 -> 1635 bytes .../.hg/store/data/zlib123/inflate.c.i | Bin 0 -> 11663 bytes .../.hg/store/data/zlib123/inflate.h.i | Bin 0 -> 2053 bytes .../.hg/store/data/zlib123/inftrees.c.i | Bin 0 -> 4494 bytes .../.hg/store/data/zlib123/inftrees.h.i | Bin 0 -> 1112 bytes .../.hg/store/data/zlib123/trees.c.i | Bin 0 -> 11983 bytes .../.hg/store/data/zlib123/trees.h.i | Bin 0 -> 1480 bytes .../.hg/store/data/zlib123/uncompr.c.i | Bin 0 -> 971 bytes .../.hg/store/data/zlib123/zconf.h.i | Bin 0 -> 3463 bytes .../mojosetup/.hg/store/data/zlib123/zlib.h.i | Bin 0 -> 18409 bytes .../.hg/store/data/zlib123/zutil.c.i | Bin 0 -> 2633 bytes .../.hg/store/data/zlib123/zutil.h.i | Bin 0 -> 2623 bytes mk/linux/mojosetup/.hg/store/fncache | 582 ++ mk/linux/mojosetup/.hg/store/undo | Bin 0 -> 17626 bytes mk/linux/mojosetup/.hg/undo.branch | 1 + mk/linux/mojosetup/.hg/undo.dirstate | 0 mk/linux/mojosetup/.hgignore | 3 + mk/linux/mojosetup/.hgtags | 19 + mk/linux/mojosetup/CMakeLists.txt | 749 ++ mk/linux/mojosetup/LICENSE.txt | 32 + mk/linux/mojosetup/archive_pck.c | 283 + mk/linux/mojosetup/archive_tar.c | 347 + mk/linux/mojosetup/archive_uz2.c | 361 + mk/linux/mojosetup/archive_zip.c | 1849 ++++ mk/linux/mojosetup/build/CMakeCache.txt | 460 + .../build/CMakeFiles/CMakeCCompiler.cmake | 41 + .../CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8328 bytes .../CMakeDirectoryInformation.cmake | 23 + .../mojosetup/build/CMakeFiles/CMakeError.log | 94 + .../build/CMakeFiles/CMakeOutput.log | 358 + .../build/CMakeFiles/CMakeRuleHashes.txt | 3 + .../build/CMakeFiles/CMakeSystem.cmake | 15 + .../build/CMakeFiles/CheckTypeSize.bin | Bin 0 -> 8295 bytes .../CMakeFiles/CompilerIdC/CMakeCCompilerId.c | 188 + .../build/CMakeFiles/CompilerIdC/a.out | Bin 0 -> 8337 bytes .../mojosetup/build/CMakeFiles/Makefile.cmake | 68 + mk/linux/mojosetup/build/CMakeFiles/Makefile2 | 229 + .../build/CMakeFiles/TargetDirectories.txt | 5 + .../build/CMakeFiles/TestEndianess.bin | Bin 0 -> 8319 bytes .../build/CMakeFiles/cmake.check_cache | 1 + .../build/CMakeFiles/lua.dir/DependInfo.cmake | 42 + .../build/CMakeFiles/lua.dir/build.make | 60 + .../CMakeFiles/lua.dir/cmake_clean.cmake | 8 + .../build/CMakeFiles/lua.dir/progress.make | 1 + .../CMakeFiles/mojoluac.dir/C.includecache | 804 ++ .../CMakeFiles/mojoluac.dir/DependInfo.cmake | 77 + .../build/CMakeFiles/mojoluac.dir/build.make | 910 ++ .../CMakeFiles/mojoluac.dir/cmake_clean.cmake | 40 + .../CMakeFiles/mojoluac.dir/depend.internal | 378 + .../build/CMakeFiles/mojoluac.dir/depend.make | 378 + .../build/CMakeFiles/mojoluac.dir/flags.make | 8 + .../build/CMakeFiles/mojoluac.dir/link.txt | 1 + .../CMakeFiles/mojoluac.dir/progress.make | 32 + .../CMakeFiles/mojosetup.dir/C.includecache | 1230 +++ .../CMakeFiles/mojosetup.dir/DependInfo.cmake | 94 + .../build/CMakeFiles/mojosetup.dir/build.make | 1369 +++ .../mojosetup.dir/cmake_clean.cmake | 57 + .../CMakeFiles/mojosetup.dir/depend.internal | 459 + .../CMakeFiles/mojosetup.dir/depend.make | 459 + .../build/CMakeFiles/mojosetup.dir/flags.make | 8 + .../build/CMakeFiles/mojosetup.dir/link.txt | 1 + .../CMakeFiles/mojosetup.dir/progress.make | 49 + .../mojosetupgui_gtkplus2.dir/C.includecache | 32 + .../DependInfo.cmake | 47 + .../mojosetupgui_gtkplus2.dir/build.make | 100 + .../cmake_clean.cmake | 10 + .../mojosetupgui_gtkplus2.dir/depend.internal | 7 + .../mojosetupgui_gtkplus2.dir/depend.make | 7 + .../mojosetupgui_gtkplus2.dir/flags.make | 8 + .../mojosetupgui_gtkplus2.dir/link.txt | 1 + .../mojosetupgui_gtkplus2.dir/progress.make | 2 + .../mojosetup/build/CMakeFiles/progress.marks | 1 + .../CMakeFiles/skeleton.dir/DependInfo.cmake | 42 + .../build/CMakeFiles/skeleton.dir/build.make | 69 + .../CMakeFiles/skeleton.dir/cmake_clean.cmake | 8 + .../CMakeFiles/skeleton.dir/progress.make | 2 + mk/linux/mojosetup/build/Makefile | 1209 +++ mk/linux/mojosetup/build/cmake_install.cmake | 44 + mk/linux/mojosetup/build/mojoluac | Bin 0 -> 188727 bytes mk/linux/mojosetup/build/mojosetup | Bin 0 -> 352754 bytes mk/linux/mojosetup/buildver.c | 74 + mk/linux/mojosetup/bzip2/blocksort.c | 1094 ++ mk/linux/mojosetup/bzip2/bzlib.c | 1572 +++ mk/linux/mojosetup/bzip2/bzlib.h | 282 + mk/linux/mojosetup/bzip2/bzlib_private.h | 509 + mk/linux/mojosetup/bzip2/compress.c | 672 ++ mk/linux/mojosetup/bzip2/crctable.c | 104 + mk/linux/mojosetup/bzip2/decompress.c | 626 ++ mk/linux/mojosetup/bzip2/huffman.c | 205 + mk/linux/mojosetup/bzip2/randtable.c | 84 + mk/linux/mojosetup/bzip2/version.txt | 1 + mk/linux/mojosetup/checksum_crc32.c | 81 + mk/linux/mojosetup/checksum_md5.c | 441 + mk/linux/mojosetup/checksum_sha1.c | 210 + mk/linux/mojosetup/docs.txt | 1405 +++ mk/linux/mojosetup/fileio.c | 1157 +++ mk/linux/mojosetup/fileio.h | 128 + mk/linux/mojosetup/gui.c | 220 + mk/linux/mojosetup/gui.h | 302 + mk/linux/mojosetup/gui_cocoa.m | 800 ++ mk/linux/mojosetup/gui_gtkplus2.c | 912 ++ mk/linux/mojosetup/gui_ncurses.c | 1487 +++ mk/linux/mojosetup/gui_stdio.c | 631 ++ mk/linux/mojosetup/gui_www.c | 1116 +++ mk/linux/mojosetup/libfetch/README.txt | 48 + mk/linux/mojosetup/libfetch/common.c | 1114 +++ mk/linux/mojosetup/libfetch/common.h | 135 + mk/linux/mojosetup/libfetch/fetch.c | 478 + mk/linux/mojosetup/libfetch/fetch.h | 184 + mk/linux/mojosetup/libfetch/ftp.c | 1394 +++ mk/linux/mojosetup/libfetch/ftp.errors | 47 + mk/linux/mojosetup/libfetch/ftperr.h | 46 + mk/linux/mojosetup/libfetch/http.c | 1373 +++ mk/linux/mojosetup/libfetch/http.errors | 45 + mk/linux/mojosetup/libfetch/httperr.h | 44 + .../mojosetup/libfetch/mojosetup_libfetch.h | 88 + .../mojosetup/libfetch/regen_error_headers.sh | 25 + mk/linux/mojosetup/lua/COPYRIGHT | 34 + mk/linux/mojosetup/lua/HISTORY | 183 + mk/linux/mojosetup/lua/INSTALL | 99 + mk/linux/mojosetup/lua/Makefile | 128 + mk/linux/mojosetup/lua/README | 37 + mk/linux/mojosetup/lua/doc/amazon.gif | Bin 0 -> 797 bytes mk/linux/mojosetup/lua/doc/contents.html | 499 + mk/linux/mojosetup/lua/doc/cover.png | Bin 0 -> 3305 bytes mk/linux/mojosetup/lua/doc/logo.gif | Bin 0 -> 4232 bytes mk/linux/mojosetup/lua/doc/lua.1 | 163 + mk/linux/mojosetup/lua/doc/lua.css | 41 + mk/linux/mojosetup/lua/doc/lua.html | 172 + mk/linux/mojosetup/lua/doc/luac.1 | 136 + mk/linux/mojosetup/lua/doc/luac.html | 145 + mk/linux/mojosetup/lua/doc/manual.css | 13 + mk/linux/mojosetup/lua/doc/manual.html | 8801 +++++++++++++++++ mk/linux/mojosetup/lua/doc/readme.html | 40 + mk/linux/mojosetup/lua/etc/Makefile | 44 + mk/linux/mojosetup/lua/etc/README | 37 + mk/linux/mojosetup/lua/etc/all.c | 38 + mk/linux/mojosetup/lua/etc/lua.hpp | 9 + mk/linux/mojosetup/lua/etc/lua.ico | Bin 0 -> 1078 bytes mk/linux/mojosetup/lua/etc/lua.pc | 31 + mk/linux/mojosetup/lua/etc/luavs.bat | 28 + mk/linux/mojosetup/lua/etc/min.c | 39 + mk/linux/mojosetup/lua/etc/noparser.c | 50 + mk/linux/mojosetup/lua/etc/strict.lua | 41 + mk/linux/mojosetup/lua/src/Makefile | 182 + mk/linux/mojosetup/lua/src/lapi.c | 1087 ++ mk/linux/mojosetup/lua/src/lapi.h | 16 + mk/linux/mojosetup/lua/src/lauxlib.c | 652 ++ mk/linux/mojosetup/lua/src/lauxlib.h | 174 + mk/linux/mojosetup/lua/src/lbaselib.c | 653 ++ mk/linux/mojosetup/lua/src/lcode.c | 839 ++ mk/linux/mojosetup/lua/src/lcode.h | 76 + mk/linux/mojosetup/lua/src/ldblib.c | 397 + mk/linux/mojosetup/lua/src/ldebug.c | 638 ++ mk/linux/mojosetup/lua/src/ldebug.h | 33 + mk/linux/mojosetup/lua/src/ldo.c | 518 + mk/linux/mojosetup/lua/src/ldo.h | 57 + mk/linux/mojosetup/lua/src/ldump.c | 164 + mk/linux/mojosetup/lua/src/lfunc.c | 174 + mk/linux/mojosetup/lua/src/lfunc.h | 34 + mk/linux/mojosetup/lua/src/lgc.c | 711 ++ mk/linux/mojosetup/lua/src/lgc.h | 110 + mk/linux/mojosetup/lua/src/linit.c | 38 + mk/linux/mojosetup/lua/src/liolib.c | 553 ++ mk/linux/mojosetup/lua/src/llex.c | 461 + mk/linux/mojosetup/lua/src/llex.h | 81 + mk/linux/mojosetup/lua/src/llimits.h | 128 + mk/linux/mojosetup/lua/src/lmathlib.c | 263 + mk/linux/mojosetup/lua/src/lmem.c | 86 + mk/linux/mojosetup/lua/src/lmem.h | 49 + mk/linux/mojosetup/lua/src/loadlib.c | 666 ++ mk/linux/mojosetup/lua/src/lobject.c | 214 + mk/linux/mojosetup/lua/src/lobject.h | 381 + mk/linux/mojosetup/lua/src/lopcodes.c | 102 + mk/linux/mojosetup/lua/src/lopcodes.h | 268 + mk/linux/mojosetup/lua/src/loslib.c | 243 + mk/linux/mojosetup/lua/src/lparser.c | 1339 +++ mk/linux/mojosetup/lua/src/lparser.h | 82 + mk/linux/mojosetup/lua/src/lstate.c | 214 + mk/linux/mojosetup/lua/src/lstate.h | 169 + mk/linux/mojosetup/lua/src/lstring.c | 111 + mk/linux/mojosetup/lua/src/lstring.h | 31 + mk/linux/mojosetup/lua/src/lstrlib.c | 869 ++ mk/linux/mojosetup/lua/src/ltable.c | 588 ++ mk/linux/mojosetup/lua/src/ltable.h | 40 + mk/linux/mojosetup/lua/src/ltablib.c | 287 + mk/linux/mojosetup/lua/src/ltm.c | 75 + mk/linux/mojosetup/lua/src/ltm.h | 54 + mk/linux/mojosetup/lua/src/lua.c | 392 + mk/linux/mojosetup/lua/src/lua.h | 388 + mk/linux/mojosetup/lua/src/luac.c | 200 + mk/linux/mojosetup/lua/src/luaconf.h | 767 ++ mk/linux/mojosetup/lua/src/lualib.h | 53 + mk/linux/mojosetup/lua/src/lundump.c | 227 + mk/linux/mojosetup/lua/src/lundump.h | 36 + mk/linux/mojosetup/lua/src/lvm.c | 763 ++ mk/linux/mojosetup/lua/src/lvm.h | 36 + mk/linux/mojosetup/lua/src/lzio.c | 82 + mk/linux/mojosetup/lua/src/lzio.h | 67 + mk/linux/mojosetup/lua/src/print.c | 227 + mk/linux/mojosetup/lua/test/README | 26 + mk/linux/mojosetup/lua/test/bisect.lua | 27 + mk/linux/mojosetup/lua/test/cf.lua | 16 + mk/linux/mojosetup/lua/test/echo.lua | 5 + mk/linux/mojosetup/lua/test/env.lua | 7 + mk/linux/mojosetup/lua/test/factorial.lua | 32 + mk/linux/mojosetup/lua/test/fib.lua | 40 + mk/linux/mojosetup/lua/test/fibfor.lua | 13 + mk/linux/mojosetup/lua/test/globals.lua | 13 + mk/linux/mojosetup/lua/test/hello.lua | 3 + mk/linux/mojosetup/lua/test/life.lua | 111 + mk/linux/mojosetup/lua/test/luac.lua | 7 + mk/linux/mojosetup/lua/test/printf.lua | 7 + mk/linux/mojosetup/lua/test/readonly.lua | 12 + mk/linux/mojosetup/lua/test/sieve.lua | 29 + mk/linux/mojosetup/lua/test/sort.lua | 66 + mk/linux/mojosetup/lua/test/table.lua | 12 + mk/linux/mojosetup/lua/test/trace-calls.lua | 32 + mk/linux/mojosetup/lua/test/trace-globals.lua | 38 + mk/linux/mojosetup/lua/test/xd.lua | 14 + mk/linux/mojosetup/lua_glue.c | 1926 ++++ mk/linux/mojosetup/lua_glue.h | 69 + .../mojosetup/megaglest-installer/make.sh | 323 + .../megaglest-installer/makedeps_folder.sh | 77 + .../meta/glestforumsheader.bmp | Bin 0 -> 486054 bytes .../meta/glestforumsheader.jpg | Bin 0 -> 100889 bytes .../meta/megaglestinstallscreen.jpg | Bin 0 -> 245233 bytes .../scripts/app_localization.lua | 39 + .../megaglest-installer/scripts/config.lua | 66 + .../mojosetup/meta/xdg-utils/xdg-desktop-menu | 1264 +++ mk/linux/mojosetup/meta/xdg-utils/xdg-open | 145 + mk/linux/mojosetup/misc/FindCurses.cmake | 179 + .../MacAppBundleSkeleton/Contents/Info.plist | 27 + .../MacAppBundleSkeleton/Contents/PkgInfo | 1 + .../Contents/Resources/mojosetup.icns | Bin 0 -> 286311 bytes mk/linux/mojosetup/misc/MojoSetup.xib | 1918 ++++ mk/linux/mojosetup/misc/cp.cmake | 29 + .../misc/find_localizable_strings.sh | 4 + mk/linux/mojosetup/misc/launchpad-import.sh | 21 + mk/linux/mojosetup/misc/localization2pot.pl | 110 + mk/linux/mojosetup/misc/mkdir.cmake | 18 + mk/linux/mojosetup/misc/po2localization.pl | 182 + mk/linux/mojosetup/misc/rm_recurse.cmake | 18 + mk/linux/mojosetup/misc/shrinksh.pl | 98 + mk/linux/mojosetup/mojosetup.c | 1260 +++ mk/linux/mojosetup/platform.h | 350 + mk/linux/mojosetup/platform_beos.cpp | 92 + mk/linux/mojosetup/platform_unix.c | 1515 +++ mk/linux/mojosetup/platform_windows.c | 1610 +++ .../mojosetup/scripts/app_localization.lua | 67 + mk/linux/mojosetup/scripts/config.lua | 235 + mk/linux/mojosetup/scripts/localization.lua | 4661 +++++++++ mk/linux/mojosetup/scripts/mojosetup_init.lua | 586 ++ .../mojosetup/scripts/mojosetup_mainline.lua | 2082 ++++ mk/linux/mojosetup/stb_image.c | 3818 +++++++ mk/linux/mojosetup/universal.h | 416 + mk/linux/mojosetup/zlib/adler32.c | 169 + mk/linux/mojosetup/zlib/compress.c | 80 + mk/linux/mojosetup/zlib/crc32.c | 442 + mk/linux/mojosetup/zlib/crc32.h | 441 + mk/linux/mojosetup/zlib/deflate.c | 1834 ++++ mk/linux/mojosetup/zlib/deflate.h | 342 + mk/linux/mojosetup/zlib/infback.c | 632 ++ mk/linux/mojosetup/zlib/inffast.c | 340 + mk/linux/mojosetup/zlib/inffast.h | 11 + mk/linux/mojosetup/zlib/inffixed.h | 94 + mk/linux/mojosetup/zlib/inflate.c | 1480 +++ mk/linux/mojosetup/zlib/inflate.h | 122 + mk/linux/mojosetup/zlib/inftrees.c | 330 + mk/linux/mojosetup/zlib/inftrees.h | 62 + mk/linux/mojosetup/zlib/trees.c | 1243 +++ mk/linux/mojosetup/zlib/trees.h | 128 + mk/linux/mojosetup/zlib/uncompr.c | 59 + mk/linux/mojosetup/zlib/version.txt | 1 + mk/linux/mojosetup/zlib/zconf.h | 416 + mk/linux/mojosetup/zlib/zlib.h | 1605 +++ mk/linux/mojosetup/zlib/zutil.c | 318 + mk/linux/mojosetup/zlib/zutil.h | 287 + 847 files changed, 95012 insertions(+) create mode 100644 mk/linux/mojosetup/.hg/00changelog.i create mode 100644 mk/linux/mojosetup/.hg/branch create mode 100644 mk/linux/mojosetup/.hg/branchheads.cache create mode 100644 mk/linux/mojosetup/.hg/dirstate create mode 100644 mk/linux/mojosetup/.hg/hgrc create mode 100644 mk/linux/mojosetup/.hg/requires create mode 100644 mk/linux/mojosetup/.hg/store/00changelog.i create mode 100644 mk/linux/mojosetup/.hg/store/00manifest.i create mode 100644 mk/linux/mojosetup/.hg/store/data/.hgignore.i create mode 100644 mk/linux/mojosetup/.hg/store/data/.hgtags.i create mode 100644 mk/linux/mojosetup/.hg/store/data/_b_u_i_l_d___r_e_v_i_s_i_o_n.txt.i create mode 100644 mk/linux/mojosetup/.hg/store/data/_c_make_lists.txt.i create mode 100644 mk/linux/mojosetup/.hg/store/data/_l_i_c_e_n_s_e.i create mode 100644 mk/linux/mojosetup/.hg/store/data/_l_i_c_e_n_s_e.txt.i create mode 100644 mk/linux/mojosetup/.hg/store/data/archive__pck.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/archive__tar.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/archive__uz2.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/archive__zip.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/buildver.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_c_h_a_n_g_e_s.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_l_i_c_e_n_s_e.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_makefile-libbz2__so.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_makefile.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_r_e_a_d_m_e._c_o_m_p_i_l_a_t_i_o_n._p_r_o_b_l_e_m_s.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_r_e_a_d_m_e._x_m_l._s_t_u_f_f.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_r_e_a_d_m_e.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/blocksort.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bz-common.xsl.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bz-fo.xsl.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bz-html.xsl.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzdiff.1.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzdiff.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzgrep.1.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzgrep.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip.css.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip2.1.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip2.1.preformatted.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip2.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip2.txt.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip2recover.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzlib.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzlib__private.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzmore.1.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzmore.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/compress.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/crctable.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/decompress.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/dlltest.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/dlltest.dsp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/entities.xml.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/format.pl.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/huffman.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/libbz2.def.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/libbz2.dsp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/makefile.msc.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.pdf.d create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.pdf.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.ps.d create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.ps.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.xml.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/mk251.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/randtable.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/sample1.bz2.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/sample1.ref.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/sample2.bz2.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/sample2.ref.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/sample3.bz2.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/sample3.ref.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/spew_g.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/unzcrash.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/words0.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/words1.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/words2.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/words3.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/xmlproc.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2/blocksort.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2/bzlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2/bzlib.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2/bzlib__private.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2/compress.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2/crctable.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2/decompress.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2/huffman.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2/randtable.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/bzip2/version.txt.i create mode 100644 mk/linux/mojosetup/.hg/store/data/checksum__crc32.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/checksum__md5.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/checksum__sha1.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/docs.txt.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/aquaria/make.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/aquaria/meta/splash.bmp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/aquaria/scripts/app__localization.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/aquaria/scripts/config.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/duke3d/data/duke3d.png.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/duke3d/data/duke3d__readme.txt.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/duke3d/data/gpl.txt.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/duke3d/data/mojosetup__readme.txt.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/duke3d/make.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/duke3d/meta/splash.bmp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/duke3d/scripts/app__localization.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/duke3d/scripts/config.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/lugaru/make.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/lugaru/meta/splash.bmp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/lugaru/scripts/app__localization.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/lugaru/scripts/config.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/postal1/make.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/postal1/meta/splash.bmp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/postal1/scripts/app__localization.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/postal1/scripts/config.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/postal2/make.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/postal2/meta/splash.bmp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/postal2/scripts/app__localization.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/postal2/scripts/config.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/postal2aw/make.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/postal2aw/meta/splash.bmp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/postal2aw/scripts/app__localization.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/postal2aw/scripts/config.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/prey-demo/make.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/prey-demo/meta/splash.bmp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/prey-demo/scripts/app__localization.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/prey-demo/scripts/config.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/prey/make.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/prey/meta/splash.bmp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/prey/scripts/app__localization.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/prey/scripts/config.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated-patches/data/_r_e_a_d_m_e-ut3-patch2.txt.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated-patches/data/_u_t3-linux-server-_e_u_l_a.txt.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated-patches/make.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated-patches/scripts/config.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated/make.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated/scripts/config.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/fileio.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/fileio.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/gui.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/gui.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/gui/gui__macosx.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/gui/gui__stdio.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/gui__cocoa.m.i create mode 100644 mk/linux/mojosetup/.hg/store/data/gui__gtkplus2.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/gui__macosx.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/gui__ncurses.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/gui__stdio.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/gui__www.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/_r_e_a_d_m_e.txt.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/common.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/common.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/fetch.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/fetch.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/file.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/ftp.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/ftp.errors.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/ftperr.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/http.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/http.errors.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/httperr.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/mojosetup__libfetch.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/libfetch/regen__error__headers.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/_c_o_p_y_r_i_g_h_t.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/_h_i_s_t_o_r_y.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/_i_n_s_t_a_l_l.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/_makefile.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/_r_e_a_d_m_e.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/amazon.gif.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/contents.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/cover.png.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/logo.gif.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/lua.1.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/lua.css.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/lua.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/luac.1.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/luac.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/manual.css.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/manual.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/readme.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/_makefile.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/_r_e_a_d_m_e.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/all.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/lua.hpp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/lua.ico.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/lua.pc.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/luavs.bat.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/min.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/noparser.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/strict.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/_makefile.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lapi.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lapi.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lauxlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lauxlib.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lbaselib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lcode.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lcode.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ldblib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ldebug.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ldebug.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ldo.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ldo.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ldump.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lfunc.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lfunc.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lgc.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lgc.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/linit.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/liolib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/llex.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/llex.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/llimits.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lmathlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lmem.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lmem.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/loadlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lobject.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lobject.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lopcodes.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lopcodes.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/loslib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lparser.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lparser.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lstate.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lstate.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lstring.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lstring.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lstrlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ltable.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ltable.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ltablib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ltm.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ltm.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lua.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lua.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/luac.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/luaconf.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lualib.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lundump.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lundump.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lvm.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lvm.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lzio.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lzio.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/print.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/_r_e_a_d_m_e.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/bisect.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/cf.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/echo.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/env.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/factorial.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/fib.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/fibfor.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/globals.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/hello.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/life.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/luac.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/printf.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/readonly.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/sieve.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/sort.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/table.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/trace-calls.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/trace-globals.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/xd.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/_c_o_p_y_r_i_g_h_t.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/_h_i_s_t_o_r_y.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/_i_n_s_t_a_l_l.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/_makefile.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/_r_e_a_d_m_e.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/amazon.gif.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/contents.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/cover.png.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/logo.gif.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/lua.1.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/lua.css.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/lua.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/luac.1.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/luac.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/manual.css.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/manual.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/readme.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/_makefile.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/_r_e_a_d_m_e.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/all.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/lua.hpp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/lua.ico.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/lua.pc.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/luavs.bat.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/min.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/noparser.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/strict.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/_makefile.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lapi.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lapi.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lauxlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lauxlib.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lbaselib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lcode.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lcode.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ldblib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ldebug.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ldebug.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ldo.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ldo.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ldump.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lfunc.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lfunc.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lgc.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lgc.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/linit.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/liolib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/llex.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/llex.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/llimits.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lmathlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lmem.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lmem.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/loadlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lobject.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lobject.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lopcodes.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lopcodes.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/loslib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lparser.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lparser.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lstate.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lstate.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lstring.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lstring.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lstrlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ltable.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ltable.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ltablib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ltm.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ltm.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lua.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lua.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/luac.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/luaconf.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lualib.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lundump.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lundump.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lvm.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lvm.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lzio.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lzio.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/print.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/_r_e_a_d_m_e.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/bisect.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/cf.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/echo.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/env.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/factorial.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/fib.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/fibfor.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/globals.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/hello.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/life.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/luac.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/printf.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/readonly.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/sieve.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/sort.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/table.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/trace-calls.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/trace-globals.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/xd.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/_c_o_p_y_r_i_g_h_t.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/_h_i_s_t_o_r_y.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/_i_n_s_t_a_l_l.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/_makefile.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/_r_e_a_d_m_e.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/config.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/doc/amazon.gif.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/doc/contents.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/doc/cover.png.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/doc/logo.gif.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/doc/lua.1.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/doc/lua.css.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/doc/lua.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/doc/luac.1.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/doc/luac.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/doc/manual.css.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/doc/manual.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/doc/readme.html.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/etc/_makefile.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/etc/_r_e_a_d_m_e.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/etc/all.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/etc/lua.hpp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/etc/lua.ico.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/etc/lua.pc.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/etc/luavs.bat.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/etc/min.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/etc/noparser.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/etc/strict.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/localization.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/mojosetup__init.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/mojosetup__mainline.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/setup.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/_makefile.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lapi.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lapi.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lauxlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lauxlib.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lbaselib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lcode.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lcode.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/ldblib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/ldebug.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/ldebug.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/ldo.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/ldo.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/ldump.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lfunc.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lfunc.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lgc.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lgc.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/linit.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/liolib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/llex.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/llex.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/llimits.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lmathlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lmem.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lmem.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/loadlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lobject.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lobject.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lopcodes.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lopcodes.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/loslib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lparser.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lparser.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lstate.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lstate.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lstring.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lstring.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lstrlib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/ltable.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/ltable.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/ltablib.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/ltm.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/ltm.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lua.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lua.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/luac.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/luaconf.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lualib.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lundump.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lundump.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lvm.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lvm.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lzio.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/lzio.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/src/print.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/_r_e_a_d_m_e.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/bisect.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/cf.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/echo.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/env.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/factorial.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/fib.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/fibfor.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/globals.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/hello.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/life.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/luac.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/printf.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/readonly.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/sieve.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/sort.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/table.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/trace-calls.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/trace-globals.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/test/xd.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua/translations.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua__glue.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/lua__glue.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/makefile.i create mode 100644 mk/linux/mojosetup/.hg/store/data/meta/xdg-utils/xdg-desktop-menu.i create mode 100644 mk/linux/mojosetup/.hg/store/data/meta/xdg-utils/xdg-open.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/_find_curses.cmake.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/_mac_app_bundle_skeleton/_contents/_info.plist.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/_mac_app_bundle_skeleton/_contents/_pkg_info.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/_mac_app_bundle_skeleton/_contents/_resources/mojosetup.icns.d create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/_mac_app_bundle_skeleton/_contents/_resources/mojosetup.icns.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/_mojo_setup.xib.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/cp.cmake.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/find__localizable__strings.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/launchpad-import.sh.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/localization2pot.pl.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/mkdir.cmake.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/po2localization.pl.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/poize.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/rm__recurse.cmake.i create mode 100644 mk/linux/mojosetup/.hg/store/data/misc/shrinksh.pl.i create mode 100644 mk/linux/mojosetup/.hg/store/data/mojosetup.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/platform.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/platform/beos.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/platform/beos.cpp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/platform/unix.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/platform__beos.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/platform__beos.cpp.i create mode 100644 mk/linux/mojosetup/.hg/store/data/platform__unix.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/platform__windows.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/schema.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/scripts/app__localization.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/scripts/config.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/scripts/localization.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/scripts/loki__setup__compat.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/scripts/mojosetup__init.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/scripts/mojosetup__mainline.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/setup.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/stb__image.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/translations.lua.i create mode 100644 mk/linux/mojosetup/.hg/store/data/universal.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/adler32.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/compress.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/crc32.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/crc32.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/deflate.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/deflate.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/gzio.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/infback.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inffast.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inffast.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inffixed.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inflate.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inflate.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inftrees.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inftrees.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/trees.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/trees.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/uncompr.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/zconf.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/zlib.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/zutil.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/zutil.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/adler32.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/compress.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/crc32.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/crc32.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/deflate.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/deflate.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/infback.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/inffast.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/inffast.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/inffixed.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/inflate.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/inflate.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/inftrees.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/inftrees.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/trees.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/trees.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/uncompr.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/version.txt.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/zconf.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/zlib.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/zutil.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib/zutil.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/adler32.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/compress.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/crc32.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/crc32.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/deflate.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/deflate.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/gzio.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/infback.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/inffast.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/inffast.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/inffixed.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/inflate.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/inflate.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/inftrees.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/inftrees.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/trees.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/trees.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/uncompr.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/zconf.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/zlib.h.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/zutil.c.i create mode 100644 mk/linux/mojosetup/.hg/store/data/zlib123/zutil.h.i create mode 100644 mk/linux/mojosetup/.hg/store/fncache create mode 100644 mk/linux/mojosetup/.hg/store/undo create mode 100644 mk/linux/mojosetup/.hg/undo.branch create mode 100644 mk/linux/mojosetup/.hg/undo.dirstate create mode 100644 mk/linux/mojosetup/.hgignore create mode 100644 mk/linux/mojosetup/.hgtags create mode 100644 mk/linux/mojosetup/CMakeLists.txt create mode 100644 mk/linux/mojosetup/LICENSE.txt create mode 100644 mk/linux/mojosetup/archive_pck.c create mode 100644 mk/linux/mojosetup/archive_tar.c create mode 100644 mk/linux/mojosetup/archive_uz2.c create mode 100644 mk/linux/mojosetup/archive_zip.c create mode 100644 mk/linux/mojosetup/build/CMakeCache.txt create mode 100644 mk/linux/mojosetup/build/CMakeFiles/CMakeCCompiler.cmake create mode 100755 mk/linux/mojosetup/build/CMakeFiles/CMakeDetermineCompilerABI_C.bin create mode 100644 mk/linux/mojosetup/build/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 mk/linux/mojosetup/build/CMakeFiles/CMakeError.log create mode 100644 mk/linux/mojosetup/build/CMakeFiles/CMakeOutput.log create mode 100644 mk/linux/mojosetup/build/CMakeFiles/CMakeRuleHashes.txt create mode 100644 mk/linux/mojosetup/build/CMakeFiles/CMakeSystem.cmake create mode 100755 mk/linux/mojosetup/build/CMakeFiles/CheckTypeSize.bin create mode 100644 mk/linux/mojosetup/build/CMakeFiles/CompilerIdC/CMakeCCompilerId.c create mode 100755 mk/linux/mojosetup/build/CMakeFiles/CompilerIdC/a.out create mode 100644 mk/linux/mojosetup/build/CMakeFiles/Makefile.cmake create mode 100644 mk/linux/mojosetup/build/CMakeFiles/Makefile2 create mode 100644 mk/linux/mojosetup/build/CMakeFiles/TargetDirectories.txt create mode 100755 mk/linux/mojosetup/build/CMakeFiles/TestEndianess.bin create mode 100644 mk/linux/mojosetup/build/CMakeFiles/cmake.check_cache create mode 100644 mk/linux/mojosetup/build/CMakeFiles/lua.dir/DependInfo.cmake create mode 100644 mk/linux/mojosetup/build/CMakeFiles/lua.dir/build.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/lua.dir/cmake_clean.cmake create mode 100644 mk/linux/mojosetup/build/CMakeFiles/lua.dir/progress.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/C.includecache create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/DependInfo.cmake create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/build.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/cmake_clean.cmake create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/depend.internal create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/depend.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/flags.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/link.txt create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/progress.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/C.includecache create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/DependInfo.cmake create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/build.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/cmake_clean.cmake create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/depend.internal create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/depend.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/flags.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/link.txt create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/progress.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/C.includecache create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/DependInfo.cmake create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/build.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/cmake_clean.cmake create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/depend.internal create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/depend.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/flags.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/link.txt create mode 100644 mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/progress.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/progress.marks create mode 100644 mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/DependInfo.cmake create mode 100644 mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/build.make create mode 100644 mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/cmake_clean.cmake create mode 100644 mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/progress.make create mode 100644 mk/linux/mojosetup/build/Makefile create mode 100644 mk/linux/mojosetup/build/cmake_install.cmake create mode 100755 mk/linux/mojosetup/build/mojoluac create mode 100755 mk/linux/mojosetup/build/mojosetup create mode 100644 mk/linux/mojosetup/buildver.c create mode 100644 mk/linux/mojosetup/bzip2/blocksort.c create mode 100644 mk/linux/mojosetup/bzip2/bzlib.c create mode 100644 mk/linux/mojosetup/bzip2/bzlib.h create mode 100644 mk/linux/mojosetup/bzip2/bzlib_private.h create mode 100644 mk/linux/mojosetup/bzip2/compress.c create mode 100644 mk/linux/mojosetup/bzip2/crctable.c create mode 100644 mk/linux/mojosetup/bzip2/decompress.c create mode 100644 mk/linux/mojosetup/bzip2/huffman.c create mode 100644 mk/linux/mojosetup/bzip2/randtable.c create mode 100644 mk/linux/mojosetup/bzip2/version.txt create mode 100644 mk/linux/mojosetup/checksum_crc32.c create mode 100644 mk/linux/mojosetup/checksum_md5.c create mode 100644 mk/linux/mojosetup/checksum_sha1.c create mode 100644 mk/linux/mojosetup/docs.txt create mode 100644 mk/linux/mojosetup/fileio.c create mode 100644 mk/linux/mojosetup/fileio.h create mode 100644 mk/linux/mojosetup/gui.c create mode 100644 mk/linux/mojosetup/gui.h create mode 100644 mk/linux/mojosetup/gui_cocoa.m create mode 100644 mk/linux/mojosetup/gui_gtkplus2.c create mode 100644 mk/linux/mojosetup/gui_ncurses.c create mode 100644 mk/linux/mojosetup/gui_stdio.c create mode 100644 mk/linux/mojosetup/gui_www.c create mode 100644 mk/linux/mojosetup/libfetch/README.txt create mode 100644 mk/linux/mojosetup/libfetch/common.c create mode 100644 mk/linux/mojosetup/libfetch/common.h create mode 100644 mk/linux/mojosetup/libfetch/fetch.c create mode 100644 mk/linux/mojosetup/libfetch/fetch.h create mode 100644 mk/linux/mojosetup/libfetch/ftp.c create mode 100644 mk/linux/mojosetup/libfetch/ftp.errors create mode 100644 mk/linux/mojosetup/libfetch/ftperr.h create mode 100644 mk/linux/mojosetup/libfetch/http.c create mode 100644 mk/linux/mojosetup/libfetch/http.errors create mode 100644 mk/linux/mojosetup/libfetch/httperr.h create mode 100644 mk/linux/mojosetup/libfetch/mojosetup_libfetch.h create mode 100755 mk/linux/mojosetup/libfetch/regen_error_headers.sh create mode 100644 mk/linux/mojosetup/lua/COPYRIGHT create mode 100644 mk/linux/mojosetup/lua/HISTORY create mode 100644 mk/linux/mojosetup/lua/INSTALL create mode 100644 mk/linux/mojosetup/lua/Makefile create mode 100644 mk/linux/mojosetup/lua/README create mode 100644 mk/linux/mojosetup/lua/doc/amazon.gif create mode 100644 mk/linux/mojosetup/lua/doc/contents.html create mode 100644 mk/linux/mojosetup/lua/doc/cover.png create mode 100644 mk/linux/mojosetup/lua/doc/logo.gif create mode 100644 mk/linux/mojosetup/lua/doc/lua.1 create mode 100644 mk/linux/mojosetup/lua/doc/lua.css create mode 100644 mk/linux/mojosetup/lua/doc/lua.html create mode 100644 mk/linux/mojosetup/lua/doc/luac.1 create mode 100644 mk/linux/mojosetup/lua/doc/luac.html create mode 100644 mk/linux/mojosetup/lua/doc/manual.css create mode 100644 mk/linux/mojosetup/lua/doc/manual.html create mode 100644 mk/linux/mojosetup/lua/doc/readme.html create mode 100644 mk/linux/mojosetup/lua/etc/Makefile create mode 100644 mk/linux/mojosetup/lua/etc/README create mode 100644 mk/linux/mojosetup/lua/etc/all.c create mode 100644 mk/linux/mojosetup/lua/etc/lua.hpp create mode 100644 mk/linux/mojosetup/lua/etc/lua.ico create mode 100644 mk/linux/mojosetup/lua/etc/lua.pc create mode 100644 mk/linux/mojosetup/lua/etc/luavs.bat create mode 100644 mk/linux/mojosetup/lua/etc/min.c create mode 100644 mk/linux/mojosetup/lua/etc/noparser.c create mode 100644 mk/linux/mojosetup/lua/etc/strict.lua create mode 100644 mk/linux/mojosetup/lua/src/Makefile create mode 100644 mk/linux/mojosetup/lua/src/lapi.c create mode 100644 mk/linux/mojosetup/lua/src/lapi.h create mode 100644 mk/linux/mojosetup/lua/src/lauxlib.c create mode 100644 mk/linux/mojosetup/lua/src/lauxlib.h create mode 100644 mk/linux/mojosetup/lua/src/lbaselib.c create mode 100644 mk/linux/mojosetup/lua/src/lcode.c create mode 100644 mk/linux/mojosetup/lua/src/lcode.h create mode 100644 mk/linux/mojosetup/lua/src/ldblib.c create mode 100644 mk/linux/mojosetup/lua/src/ldebug.c create mode 100644 mk/linux/mojosetup/lua/src/ldebug.h create mode 100644 mk/linux/mojosetup/lua/src/ldo.c create mode 100644 mk/linux/mojosetup/lua/src/ldo.h create mode 100644 mk/linux/mojosetup/lua/src/ldump.c create mode 100644 mk/linux/mojosetup/lua/src/lfunc.c create mode 100644 mk/linux/mojosetup/lua/src/lfunc.h create mode 100644 mk/linux/mojosetup/lua/src/lgc.c create mode 100644 mk/linux/mojosetup/lua/src/lgc.h create mode 100644 mk/linux/mojosetup/lua/src/linit.c create mode 100644 mk/linux/mojosetup/lua/src/liolib.c create mode 100644 mk/linux/mojosetup/lua/src/llex.c create mode 100644 mk/linux/mojosetup/lua/src/llex.h create mode 100644 mk/linux/mojosetup/lua/src/llimits.h create mode 100644 mk/linux/mojosetup/lua/src/lmathlib.c create mode 100644 mk/linux/mojosetup/lua/src/lmem.c create mode 100644 mk/linux/mojosetup/lua/src/lmem.h create mode 100644 mk/linux/mojosetup/lua/src/loadlib.c create mode 100644 mk/linux/mojosetup/lua/src/lobject.c create mode 100644 mk/linux/mojosetup/lua/src/lobject.h create mode 100644 mk/linux/mojosetup/lua/src/lopcodes.c create mode 100644 mk/linux/mojosetup/lua/src/lopcodes.h create mode 100644 mk/linux/mojosetup/lua/src/loslib.c create mode 100644 mk/linux/mojosetup/lua/src/lparser.c create mode 100644 mk/linux/mojosetup/lua/src/lparser.h create mode 100644 mk/linux/mojosetup/lua/src/lstate.c create mode 100644 mk/linux/mojosetup/lua/src/lstate.h create mode 100644 mk/linux/mojosetup/lua/src/lstring.c create mode 100644 mk/linux/mojosetup/lua/src/lstring.h create mode 100644 mk/linux/mojosetup/lua/src/lstrlib.c create mode 100644 mk/linux/mojosetup/lua/src/ltable.c create mode 100644 mk/linux/mojosetup/lua/src/ltable.h create mode 100644 mk/linux/mojosetup/lua/src/ltablib.c create mode 100644 mk/linux/mojosetup/lua/src/ltm.c create mode 100644 mk/linux/mojosetup/lua/src/ltm.h create mode 100644 mk/linux/mojosetup/lua/src/lua.c create mode 100644 mk/linux/mojosetup/lua/src/lua.h create mode 100644 mk/linux/mojosetup/lua/src/luac.c create mode 100644 mk/linux/mojosetup/lua/src/luaconf.h create mode 100644 mk/linux/mojosetup/lua/src/lualib.h create mode 100644 mk/linux/mojosetup/lua/src/lundump.c create mode 100644 mk/linux/mojosetup/lua/src/lundump.h create mode 100644 mk/linux/mojosetup/lua/src/lvm.c create mode 100644 mk/linux/mojosetup/lua/src/lvm.h create mode 100644 mk/linux/mojosetup/lua/src/lzio.c create mode 100644 mk/linux/mojosetup/lua/src/lzio.h create mode 100644 mk/linux/mojosetup/lua/src/print.c create mode 100644 mk/linux/mojosetup/lua/test/README create mode 100644 mk/linux/mojosetup/lua/test/bisect.lua create mode 100644 mk/linux/mojosetup/lua/test/cf.lua create mode 100644 mk/linux/mojosetup/lua/test/echo.lua create mode 100644 mk/linux/mojosetup/lua/test/env.lua create mode 100644 mk/linux/mojosetup/lua/test/factorial.lua create mode 100644 mk/linux/mojosetup/lua/test/fib.lua create mode 100644 mk/linux/mojosetup/lua/test/fibfor.lua create mode 100644 mk/linux/mojosetup/lua/test/globals.lua create mode 100644 mk/linux/mojosetup/lua/test/hello.lua create mode 100644 mk/linux/mojosetup/lua/test/life.lua create mode 100644 mk/linux/mojosetup/lua/test/luac.lua create mode 100644 mk/linux/mojosetup/lua/test/printf.lua create mode 100644 mk/linux/mojosetup/lua/test/readonly.lua create mode 100644 mk/linux/mojosetup/lua/test/sieve.lua create mode 100644 mk/linux/mojosetup/lua/test/sort.lua create mode 100644 mk/linux/mojosetup/lua/test/table.lua create mode 100644 mk/linux/mojosetup/lua/test/trace-calls.lua create mode 100644 mk/linux/mojosetup/lua/test/trace-globals.lua create mode 100644 mk/linux/mojosetup/lua/test/xd.lua create mode 100644 mk/linux/mojosetup/lua_glue.c create mode 100644 mk/linux/mojosetup/lua_glue.h create mode 100755 mk/linux/mojosetup/megaglest-installer/make.sh create mode 100755 mk/linux/mojosetup/megaglest-installer/makedeps_folder.sh create mode 100644 mk/linux/mojosetup/megaglest-installer/meta/glestforumsheader.bmp create mode 100755 mk/linux/mojosetup/megaglest-installer/meta/glestforumsheader.jpg create mode 100755 mk/linux/mojosetup/megaglest-installer/meta/megaglestinstallscreen.jpg create mode 100644 mk/linux/mojosetup/megaglest-installer/scripts/app_localization.lua create mode 100644 mk/linux/mojosetup/megaglest-installer/scripts/config.lua create mode 100755 mk/linux/mojosetup/meta/xdg-utils/xdg-desktop-menu create mode 100755 mk/linux/mojosetup/meta/xdg-utils/xdg-open create mode 100644 mk/linux/mojosetup/misc/FindCurses.cmake create mode 100644 mk/linux/mojosetup/misc/MacAppBundleSkeleton/Contents/Info.plist create mode 100644 mk/linux/mojosetup/misc/MacAppBundleSkeleton/Contents/PkgInfo create mode 100644 mk/linux/mojosetup/misc/MacAppBundleSkeleton/Contents/Resources/mojosetup.icns create mode 100644 mk/linux/mojosetup/misc/MojoSetup.xib create mode 100644 mk/linux/mojosetup/misc/cp.cmake create mode 100755 mk/linux/mojosetup/misc/find_localizable_strings.sh create mode 100755 mk/linux/mojosetup/misc/launchpad-import.sh create mode 100755 mk/linux/mojosetup/misc/localization2pot.pl create mode 100644 mk/linux/mojosetup/misc/mkdir.cmake create mode 100755 mk/linux/mojosetup/misc/po2localization.pl create mode 100644 mk/linux/mojosetup/misc/rm_recurse.cmake create mode 100755 mk/linux/mojosetup/misc/shrinksh.pl create mode 100644 mk/linux/mojosetup/mojosetup.c create mode 100644 mk/linux/mojosetup/platform.h create mode 100644 mk/linux/mojosetup/platform_beos.cpp create mode 100644 mk/linux/mojosetup/platform_unix.c create mode 100644 mk/linux/mojosetup/platform_windows.c create mode 100644 mk/linux/mojosetup/scripts/app_localization.lua create mode 100644 mk/linux/mojosetup/scripts/config.lua create mode 100644 mk/linux/mojosetup/scripts/localization.lua create mode 100644 mk/linux/mojosetup/scripts/mojosetup_init.lua create mode 100644 mk/linux/mojosetup/scripts/mojosetup_mainline.lua create mode 100644 mk/linux/mojosetup/stb_image.c create mode 100644 mk/linux/mojosetup/universal.h create mode 100644 mk/linux/mojosetup/zlib/adler32.c create mode 100644 mk/linux/mojosetup/zlib/compress.c create mode 100644 mk/linux/mojosetup/zlib/crc32.c create mode 100644 mk/linux/mojosetup/zlib/crc32.h create mode 100644 mk/linux/mojosetup/zlib/deflate.c create mode 100644 mk/linux/mojosetup/zlib/deflate.h create mode 100644 mk/linux/mojosetup/zlib/infback.c create mode 100644 mk/linux/mojosetup/zlib/inffast.c create mode 100644 mk/linux/mojosetup/zlib/inffast.h create mode 100644 mk/linux/mojosetup/zlib/inffixed.h create mode 100644 mk/linux/mojosetup/zlib/inflate.c create mode 100644 mk/linux/mojosetup/zlib/inflate.h create mode 100644 mk/linux/mojosetup/zlib/inftrees.c create mode 100644 mk/linux/mojosetup/zlib/inftrees.h create mode 100644 mk/linux/mojosetup/zlib/trees.c create mode 100644 mk/linux/mojosetup/zlib/trees.h create mode 100644 mk/linux/mojosetup/zlib/uncompr.c create mode 100644 mk/linux/mojosetup/zlib/version.txt create mode 100644 mk/linux/mojosetup/zlib/zconf.h create mode 100644 mk/linux/mojosetup/zlib/zlib.h create mode 100644 mk/linux/mojosetup/zlib/zutil.c create mode 100644 mk/linux/mojosetup/zlib/zutil.h diff --git a/mk/linux/mojosetup/.hg/00changelog.i b/mk/linux/mojosetup/.hg/00changelog.i new file mode 100644 index 0000000000000000000000000000000000000000..d3a8311050e54c57c5be7cfe169e60a95768812c GIT binary patch literal 57 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/hgrc b/mk/linux/mojosetup/.hg/hgrc new file mode 100644 index 00000000..e7539e30 --- /dev/null +++ b/mk/linux/mojosetup/.hg/hgrc @@ -0,0 +1,2 @@ +[paths] +default = http://hg.icculus.org/icculus/mojosetup diff --git a/mk/linux/mojosetup/.hg/requires b/mk/linux/mojosetup/.hg/requires new file mode 100644 index 00000000..5175383b --- /dev/null +++ b/mk/linux/mojosetup/.hg/requires @@ -0,0 +1,3 @@ +revlogv1 +store +fncache diff --git a/mk/linux/mojosetup/.hg/store/00changelog.i b/mk/linux/mojosetup/.hg/store/00changelog.i new file mode 100644 index 0000000000000000000000000000000000000000..ff32ea3cb8e8030056f94243f61e61b4496a4606 GIT binary patch literal 202481 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�_j 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 TAuCkjK*AOX*+ViVoFe`|^y-jj literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/.hgignore.i b/mk/linux/mojosetup/.hg/store/data/.hgignore.i new file mode 100644 index 0000000000000000000000000000000000000000..adc1280f0f7c92503fa67d73ed186b11bb50884a GIT binary patch literal 90 zcmZQzWME`~04X3P31KpY{)d8s+afw{?SXSR`L$&gzHHHR58n6@svb<07FXt#Bvx3Z W=j11GCFdq)r|Kq^X6B@DaRC4q#2K;x literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/.hgtags.i b/mk/linux/mojosetup/.hg/store/data/.hgtags.i new file mode 100644 index 0000000000000000000000000000000000000000..760f85cd3fb1c4dc39ce739c173b9a9642c9cbf1 GIT binary patch literal 2689 zcmai#4{%k*6^GxuFMl9F2uV6xux*M#(!k5ydw1{NT^a}>frywEY1JZ?xOaCiMN<<( zk_lw!fQl4Jpb^@Nrc5nXYXKof5~pBDQb}a0K?JP~V!@aQLeaJ(h>WGXd*9RHjcxDD zJHI#YojK<_=bk+q3Wvg>;F&As=HRPAuEw54L+`Y(-tj-?Z=D*mZ}ah#S0CB*%b35G zI)nvc+IWu1Oz3#j29O}(VvA4?iQouwALrE7f+!b!DWkQ5N0*D5dQlTydjIlTT3IP- z(sVS15DMKbKacBgA!DXe#WJuub9YMamf@_f_lF+6T0C^i*81P7|Kd+W>!iLzBUhW* z$=$8HdQ&E@pLZ<1@I+6=Vl$%@-gV%Cb!)7?sl%P=KbR7Eu&}J?dpETH0dGt%_P!N< zsKviy*GF$GTzk`##@_1&QlBZma(mtfRb6M#7tikaFu7&)4cF@=Piwna+VeqDqgZNK z!JQs_<;nxcKi&>RSL|wG_fpi$Cz!|FO_Vq&hDSr_-0RO^V}Ejg|iPY`u^sN z3&;mmtCqahb9={d@@>zJ-=%VdlXNCY7oHL1G-gXR6x~hx_f|Asx$ySi8pe;PpFl_5 zvhke-flpu+-I0;2b238n4?OX^{7*poG@@V(Cb&fFK$ z8je=3`1ba!6{A2&cgD`LpBGF@9elGn_vxlKaH#K-;rxFcSvhs+iET}VtbbKQc+Z>( zgDOYZ)0yP!4L1fkjrmd|iVoJ(x#v3;UpV~3J$%_v%9OGZDGvrdajPoQRZXWDT9${Q zZJUVQL(NvQLh1i|!&cH>_mREf#>*wfn!-Js4jX|_+$wxsLXm4b zj__UEcAyC{MY1nc5R>`P#RdXPh*QaLYH45dP9ibDCt<_%jamSnv! zBei1Ha9`iJ*TLt%k3$5i@O23o3+Myi0SrLq2yA-{U<+UfOpGk#Q{e~?0YBE2YtOzB z^ja}2jWJNEsfwYszu>j(r_8SQt)&|?$F1ybs~i}(mO*iAb_}R#5eATOFf?5V2(esW zCMTv3nMrNab$m!&7PKRQ;gF6xN5cX{x-1ATYAz2#?kc;DG`sr!#j zPGFGSntd8XK7cM^*mO-ykdIs}Y~VA;_K-zw8vq1klV}1%Y%n5YbzC_Z#(Ob}YN;a? z#X4tQa$5e;k+b-kgPY3cL|-2M#w!UFl3ddld9IM1@LbP9+!C0$6!<2lz_v_CEWvEy z`pn|sD+dGU8I9bfgUh*$z!-`;Kxqo4^o z{nCt5bR_cp{R_9Oo&4F?I3{(p!g&Ac$(NcAMV%SVZQ(O{ zL+jI87G(xLajVcZ{xqBW98rri<`WE%Of3W;%%(2%sDtFx5^7_Faw_YV(3-k0F*HSz zTKA#Qtuor#AhvNr>KH{4J^bsPk3GEm%&)qNwsjR>Fz-Bj@p#}9w~AcT&*Y9L?`xTp zKq42d2N{y}WA6E$FSjdoS)bU8udgiO=M}&am(dm%?~mdr=_MVmbI0) zect-W*TJk42g$NXB=??0{(TSE}~e@fbY1(Wzdnw zTDUfqX9;>(VsYD{%;DHIU5i}<0}^18r)UIuwv+xCgBg~ZplxP^#hbFgjtG(IaUCI!5+9f|@|ST6rMqLt-P<|`+IPQv=~VJR|B+so^6%_8M4$>^mrz7(Ca*#YDDniB ZD;@w(ZCtrwAY#N9&@~+!n)ZJ|`419x_(K2y literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/_b_u_i_l_d___r_e_v_i_s_i_o_n.txt.i b/mk/linux/mojosetup/.hg/store/data/_b_u_i_l_d___r_e_v_i_s_i_o_n.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..32686891ae1636efe2a09acd9e473452bdcc63ca GIT binary patch literal 66 wcmZQzWME`~045*>W3&E;f}dr#WO+ZS=G^1B-J&L@c=e@z`97$6FjZ;@04C}ZV*mgE literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/_c_make_lists.txt.i b/mk/linux/mojosetup/.hg/store/data/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..420b23b4c2ff12535c0b441ea9c6a0ed86fff5d4 GIT binary patch literal 24040 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 Rp1A2tq;Knw@j&sx{{v-8d07Ae literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/_l_i_c_e_n_s_e.i b/mk/linux/mojosetup/.hg/store/data/_l_i_c_e_n_s_e.i new file mode 100644 index 0000000000000000000000000000000000000000..a1ac892cc23c188506e709ab6f12d4e9431f9368 GIT binary patch literal 118 zcmZQzWME`~05c$E3S~3?hk|nE?fKKEh&$TsmE{#`?`$Z`(yoH40aK-1k@=+x8Hr`7 q3VHboIho0+dBv#;CHV@aASxrXSRpw-B~>A@1i~rF%uUtf;sO9aU?MdD literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/_l_i_c_e_n_s_e.txt.i b/mk/linux/mojosetup/.hg/store/data/_l_i_c_e_n_s_e.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..63c7aab8e4ffff371248259ef20994c57178a976 GIT binary patch literal 1732 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/archive__uz2.c.i b/mk/linux/mojosetup/.hg/store/data/archive__uz2.c.i new file mode 100644 index 0000000000000000000000000000000000000000..eab5ac37c762f7be782024fa1f1bc8a105067bb3 GIT binary patch literal 3251 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 aSa@7L>~Ve$j-1@VI9EI59};!prv5MgX!Z*L literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/archive__zip.c.i b/mk/linux/mojosetup/.hg/store/data/archive__zip.c.i new file mode 100644 index 0000000000000000000000000000000000000000..be39d2ecc36f8fb2b572e67df1618b82399b333c GIT binary patch literal 19395 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/buildver.c.i b/mk/linux/mojosetup/.hg/store/data/buildver.c.i new file mode 100644 index 0000000000000000000000000000000000000000..8f706cbe33b402dacf01a8f1cf2c738e4bc7d432 GIT binary patch literal 1942 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

_^D)(E$`NG!9saseo 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 QprPJrFCokR7i7c0!bAKP&Hw-a literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_l_i_c_e_n_s_e.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_l_i_c_e_n_s_e.i new file mode 100644 index 0000000000000000000000000000000000000000..03bd3ec22c20e63e0494515976b75cddd3b2368e GIT binary patch literal 1058 zcmV+-1l{`p0RRC20000000ZIx00(>k00000005`||NsC0|NsBYCQ-Af%WfZ6Md@7< z>a>7<2xRjB00000000000001ZoUK(~Z`(Eyf9Iz-W3Rz<(A&{f z+CN#FjwEfYYx@8WX4rvs{?m>FYi(^drg|Z2uU%^fa)WlCOpS|SR}S9l#x{*Tm~M;G zyV_7w�-@!!L~8PT;kq9_;3#rLr~Fjs1WQh7vXU?AG?_MGg!AIy;z3Q?!_PgJ6X5 zOy@nl)`E;xQ<_#g%;atY3U@8yAqTd4oZfDRgBMBykOJ1YHoen(%CkeepWtZ6)Bafo zc+``7+B-NqXwQ8@FPrbUctm33i|7D6C4qdWMJXlaS&!8~BLQXgwX=st*ISwiILC3W z@V&3*1rBy>Y7$-UQSo`)Fl0a`lIrwdqj7#JexBgC3>v>&qJPq^_t|-O2(m|GU2}xC zbYHQo#DKH0inCdk#gc#}&mTm@m6TxlrQb4>3#qxnT}jz9LY{z-Jt=$2rI6ImL#qR31_UQsp92FUp8dWx0Cck)?c= zh#5~KPP-YQJPOILAVxRknD3Y9fA;?QuXOE9tlKhw|NL~hh%WyDa67q~ cyr*C0-3`RL((PJ1pj(HrA9!E>4O_NH0FN5?-2eap literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_makefile-libbz2__so.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_makefile-libbz2__so.i new file mode 100644 index 0000000000000000000000000000000000000000..a8dafa3e7c731f822ec8d04fa07c0f3ee5c48a69 GIT binary patch literal 799 zcmV+)1K|7s0RRC20000000Q3t00zbY00000005`||NsC0|NsA2t+e@IM;4puVA`ss z=khCV^yL%)00000000000001ZoUK$%PvbBUJ>y?75*%8o3ABp}MBCMtG(b=(sHwzd zCFCSd>m{`-J6%40{f^zVNuZo|b4VP|%=4S~Mka?aTW}3`^qFNmXArM>o@$_=7gVtn z{xGGv6d*Gw77TJ8E2`c)Kn~41e($+jx?T6gJ?+2?FBYJspi9;ab}*Y3kTa?aK(N>I zzBA@x{R*uqOK&iA=Jwha)MCt&#Ob*gedwLwbM~!k^S~r-%Ff&_m;~qIyzPRidobV( zG-HQvsxYd??|juewsPU3gUYXzoGZEnD$*Sr?7=85wa%H=9f)(8JUbfOF}zb+P)Ou* zr7(zYx#SSDo5(vSty$*e-U*CY!j>^pM(944_;U58_iw6Bu;$Mx2*BH%K zJOL+r2z_uKX`bVoiyT>lbKe7J4o9smRGX0d%iCzMG2Zy@N`PMk?6X*B*^&ygRc$6J zDQJvB%G#zv19rQ+%yM!XnJKGnZ#Uz294A*2f^0pcXE?RV!BNY{adFBk!+Fd*PI(QO zb>k`kM}E9GKH}ip3e+~ac6PVO_Qy>=0+0i>L>-&kC<7&B$D7f2@kdqC6)4| z&s3Ye)X5Q2v&O6Wl9T(2^Ee^D)5bKk3t!v4B?ycz|snwBq) dtHSjW^6CS%zp{}~PMTMa+!rF2vA+e+_HYDyewP3M literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_makefile.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_makefile.i new file mode 100644 index 0000000000000000000000000000000000000000..4c7ba8d4d91290fdad98874a86ff28aec77842fd GIT binary patch literal 1772 zcmV!=EC1_(LkT8NdCQ*}Dpt(pv&H#qIGe4; z^U>^LvdrdmHM*WGu2&$ao1#Mkf;f{$70b!!>|&C|NX;P&SrHI?5w}yW{Awsrt{JHYDmcG?0h<#PgX_$G^Tu!H}$@R_Y?0PkP`-Y5_p!L-WL$JOENRKI4mp!m<;pn)ax1~2Z?wFz$&i zY1thWe5(ua0fZAJA?@0n`tY&*weD$xy;87O5$x>=_DjKjMXv}w^YD=)U5B4>%ufQ^6eM0g@ zV_EX1XF!EMNv(yQI6Dh0QL!$cvCxOg&%2T-(5zhdv!)FNVEqVKcXuBvaMx|qI8 z>YHMk^_pd8JkZ)?SKlsAo;Qh>TM^#1(t}-B?HWlXS~l8)vgtOHG+67z2U=Th=IMCZ zmJiC#y~bP#>+SqNZ|=>^ia_4=5As#m%qXzDYtP$}T49A%+wi@PzJXeb5aQukFR#4p zt0+HA&ejR-L=;b(Gzxd4o=*s#imw-=i^(w4X=TUqOdV>H&2lbWC_FkY2yJa8v#aB& z!@<3;2-|WDs~FEu+Gt0sIs>{ZF9TLqkpa|7#YEj@)d1>AH#w{_Y(%nj)*-uW)hgZ8 zAvXyR?wynxB`)yHoZTrrhw@v7T3@^Mh>a2O8IPPa#Y1|XSo)Y6Fty0k0Vbmv(5nOb z20%ZP)uFvcwBLxT6HvY8CbVCJdSNKrZDR%KZ)Yuv?`s1n3|M}VRR`GP%Zsbod~`j# zT-aC3%hUPfVpT8w?P6}PuD?vD29fcn(c*k!BImoGXN-0MiliZ6W;DtR-;RVSqS(i~ z+z}gNxJ5!A&drIq>;2xXc}cVWtPZGoo3d824yfT|ZEqc5$|Tg3nn5f^E4=1u#71KEY~>i{(4nHnT@UE=G$lqxsEhIbIE+ zRSjMlDm^fI7+RHyYttk|{TLW`WKr3hccbz~PV=WNZ*|HD;L%)YCQ6>?A0&Fdi79awQ@L0TuwQFkjzYfRvr7bBbp?qQJ%C?R#$*noPd;Pu$eX!&+$s`fQ~OVAoK5 zQSITrRz-ZsKtk*6#>obxsesmf zK|&&vek8J2Ul0zngQFj_qvKcE?C2PtAO7>|;Dso9Vg-l?S=f6dY?so|shWNAe&xBM zy#O`UsZ(~JB8hS`7U#`G(Xl?X&ES@{S%Y!kSB26xha@cq(y;Dmbuxj*QdRM-AoljO z1~jGZ44E^A8ykicXBx-6guj+RRogTgcQKkB_vO9vQpfTRPt|jixi!4Yg!lE z&BCbigGhdGXDus10m_uRt1ue5BD)#l=k(**@?!Dv{n^=Sar5!r@@DmRb~JYUXmUD{ zyIrvJO4)hbwNIP_+~{R()W2QyfvhTSmv5vd92G)#_cgAkBh~pZG z<_2l5RB%f^9C8c>PPs(1;gE{}pOM`f>$p-HH=1&j`(w5Tv0;_M#j3?pkuH+?&7kcH zt$ar;`Gzb9zbqMX7{rz=lb1!{PIQM-ZVQKdI{Rk|NMT$9@lTaIUlEvk6 zD2rOhmQK~MlOh5@=d2^s)T*pw0Qtk*3AQVZS;+&2IC$W2tefbfE68DE@5hOi8flPw z?QA0+D@zFIzoO9{aG25tV`1->=Pcjq?KgB3f|J45$=K1Ag*_ftP->nJKgHR$H&`fn zd&4t}%aUUB{I1EyMtQ2Z$VV0@DtEPzJdBfQq;I;83RzI|a#PFErF1s&uc_hFxYT{( z$=e3U+iC37i65*0#CY(;M;zw`YP%(~|2@oK?tyq8w75Ob%iTQ~oyi&#opAuAu|&&! zFQgLpym+d(!3wPL8d0-;^vgpUt12qs9Vxlxcg)VFjw397sVY)tZ@gJ&iK=HLyk%#~Q literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_r_e_a_d_m_e._x_m_l._s_t_u_f_f.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/_r_e_a_d_m_e._x_m_l._s_t_u_f_f.i new file mode 100644 index 0000000000000000000000000000000000000000..0d7db8016b0f956c1078c394d7d2a74663696f55 GIT binary patch literal 762 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 N`~JA?{{h!VOXZ&a)Up5o literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bz-common.xsl.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bz-common.xsl.i new file mode 100644 index 0000000000000000000000000000000000000000..b7dac31a95a52044390b15443b0eea05f9fc423a GIT binary patch literal 585 zcmV-P0=E4C0RRC20000000IdB00bcb00000005`||NsC0|NsB|e-AUbcu!NJgQz(!_d+e9vc6K z3T;cJg)Zhsuz%Ohl`Z?08GX#MPlFb{Y>Mw@bouHr7w)Wm6yEl(L^ifYVUT33lVPxo z_J$+zj1T~=Ox>%R*P|ISF;`kcc%qRR1@Cjyw>xxL@qOZvLmgq;X+<~|mV?|BLi0Mk zG2+Af;@kYk4F&IFkGu>Yc*ubW`ymHeXOAmuGJ+Zny0F0ayPRz4fpx)?GL>S3$iHso zxl3>d)8)c}F)*G*HA!&lMQpZj>fYgu)Q$n36l>$}r(T7Zl8oXeQ^r>`#3CxrGb6g4 zpt}kB5|Oc8L|-o`ii?y(Wkgl;Jmgf@p{bhF{~Y+aHKj&*&Be+gI$_&6+^cdL;}9R! XaP%5m$%~=k8glv{-z5J4?)6XEZ+jlG literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bz-fo.xsl.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bz-fo.xsl.i new file mode 100644 index 0000000000000000000000000000000000000000..7f4ce2e049fc6d4491cf9dfd0d4c4b4ca467f39f GIT binary patch literal 2274 zcmV<82p#tT0RRC20000000^Q004Z4j00000005`||NsC0|NsAy`wA<~%-M68T>*(s;yLZvwzW-zNNzy`PLgpU1Am*oL%fu|#2V|hy8=AVhsBK_* zDWoPF30Ws36-g|_HdLaL3820;gaznG0tc!fLcS=eq=Z68ndr!I*^5>aV&flzMC7?B zT9OOv6ova{MT%0$k{m#h-G*@>Da6%!jZS<`^acu&Y-q6tq6PWWpL^elN|%);Ip~c@ zmmWI8YlJO5l+|m2LRAuoDENVtR4H~38ukSC8lRv$6ruKUFS?|X=A@uGEWJKNp#)WN z9qK~~9@@?!K~;Vxe7k9*Die;_Tk`P_ABb^GPURN06sa|EPc+C}O{=REguMty&6VG| z)}`M=IZ3}jYMUVBm?skt@Jx7t?lE{XOvfy}t0(!cCby$$jE@Dc@;=D1(>{v6iN}yV8BdIFh4N`ONyyjRC$cG zG_9a!4)@3x8tSm79&No=boV}~lookl2xAF!i-1uJz=Wxl*=0gC76VhH6b#FyQ>-B` zIn_Y0z>^JnT?#bRcp*SBT2_fh2fpyfYW$Z70EFCS;x^_Y+16Tu*c3Y~eM9G)07b5n zu5LGCM>s1msTr21;6nBmQLQD5D-D4u?W-kb zWgxyaD5qN>B_;u9O5@&Dg9MlZl*CMvUz@*cYicEDy|>0dHd4rEq7n&Ej9jHOl{#p# zW)WWhhGB~CBrO9`Y74N12+ZderJEmwH)D566F@xVoR-RzBjpMK1q($7l(ThVKnFF9 zm@`r6Afq|shoy&5Dy$rj#5CEirKpNDu-;pG-(=VL@0~Yb$8cdDLmFrdw9c*R=rPQ+ zdl+dlo9p5T7j}t~dvMo(zF)pxiOEZ%Ev)_nV21 zcjIPz_j%;FDUZe?J&e%AECqJS_331p*(auyB;?{APa*^miKmdoD1$y_18@^288tJx z;cjp2Awb0bLt#ugoRz9j820-sYH1Q zMAlWu0jPC|o(pMzN~juD zS{JF%BRPU`Z9vd8-O*PN_zD95V<6C`!Vm@Aro^QPsS0hrOAHRv;(claIQJLA#8Ki47aKKCA77iz<=OFvCv&ulVofG<_!(}up z$*Ejpx^l?y2D~Ws(ZJ*wLC4+kR3Rs{NLh;hbdth4li1%uedk6$v%MLh?O3W2H?9_o zUk=Wdnz*hdQvYerWCK6#O2hpYnWJ;LugBci)7b$m3oW@RwFCYG<-qyi z)^8n6@aBWrc4!xEH4P-3h?WG*QH1lF(Obn7Qv@&llTmZ6scUFh$%7|OrPX86ywnF` z&2Kx4jw?FushZV((`ULPG3hR!%^_odoH}(HIB3ppZ_Ib2T4%I&U=k%f3|UjdO$g(4ez zkJ%~O)6R_csZ*?zO|NTstI-@3F{j10vAU5LiXybjVXbaS7Gs-Qr_HK7?z1Obybn~Q!=*=@WMD=@#XJ`QaTN|QhbI4rreeH<;A3CBs(vRqf%+WK`6WPY& zr|OEDv;RlyiW+%8*RJUI)jBYpks17bUnwA03-Ym^41R)r`<1S`3o`T{C798yL6sg~ z?kTTu&we75%goF-S_DzLDp`6v{}m1+R1}y4p^e#D-{zQ`uX(F_zBU1Fld{~m-tCyn zoz2-Tx*MF0Q* literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bz-html.xsl.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bz-html.xsl.i new file mode 100644 index 0000000000000000000000000000000000000000..da6833b6cd187f4e4933166b88f181bb88b18e68 GIT binary patch literal 466 zcmZQzWME_f1I9@V3`}hhHpBA&P_QcJx91VlBpEpweTfd6qIfRr6MRrLV5(wHZjf*O zZ3CXYzr#0JeK9z2sVT`}^38XNXBQsW#@E5m-6ktDb7SwT!xLUuzFaRqb4jx;p<=jrH1|B@Gb-Js5fh5BQCh_n)8m|5( z>!!?l9(m6EQoEn-w9`v}?fbdr)rB29z8~z`UKH=aZvD&Q0{fl#im3JF_v}x;SiWH5 zL0PZ%B}`H|N?OM>ZCe}qLj14AFx(MX^^3o7*ZJtzcTanieahhixea ze^80ASP~?qYx3(y$}XA~?JgE2J@Gw0(wnT@RUPgzg#8g3>om5YyzSuBS&uS@`UtC? z-fQO&*4}CZUmWefDXp}$e*0ByGG#r?u-27<%f;R2Yi$mXLawi1`g2xXTtF^lc?FBf z&0N%{rgI~xPpwu8HlK*IbCpLr(Qce}p2V;UO{&tv^2cJiDvMIcDWvz}7tr^&bx~Ur z;67n!$xiGuU>PH>gfyMuXFm?+XManz@A&lCUJArVV_gXWkn z&J%%FV6dUM@^ni~D*5+bHEYs}k2*q#RXl`#7+-*Ucd1NfK>vWPOdZV1`5Y$K{b-k8TL5LlmV<)4R)3+_2;=4hmkh`E`o}cvR?lDk65ydM=fH aGW2f+nv@W+YQd6$I~&f7lj0xqY$N6jIQz-~ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzdiff.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzdiff.i new file mode 100644 index 0000000000000000000000000000000000000000..3b1b1c885ca1cad73546db5a0942de5e8ea1fbbe GIT binary patch literal 954 zcmV;r14aA*0RRC20000000Vje00>Y300000005`||NsC0|NsASQ8<=NxRGMlc%2cw zxhWr03n3f;00000000000001ZoTXLUZreBzeHOoBstC)kZ1fnJQn z1qu{JLrauRL>5(&PU_pgcZRyuaf5EK<%1-0X3m)_b?_vf$Rai~b^vAu(!gXfoi0HY zaCsH~d3<~fgW*Sb9`z!)6lKm60eqrv1>~|2a3}2y4l0Zr1VNO4R>{1KQ<-IOr+Hb5 z6f&h@vXW)*8K44Bd1>iXt2wNk;$#V!&oa>z>5<1e`hk2k;u(-5 z1)4j59340Z5IY6OK!;ry7{_E6_}o0i)5xCIED?7V~1uF9mSi?;WbOR5#R@;Mw9AjuME~lUM^`EQDEY-mj_)JFBAf1NW{FTDi!LxTowg;siwV1Y$KuW7?Ui|Hcg+7;htp0lJnbz87ZLhYx^K&lGCT5nfSyVLmVRlFYzp9*9p zcK8&mDWlsj^%#7vn)wqwKO<>Pm`P?a@7MDiE3kQj_4w`Re0X^h#(2DqtI>=;w(A-; z8(6cQa1Rq+P*{l;+~OSr1f(>!rei#Wv!}gAzvA37BP>)Qv{3~I5Q?wRZ9*bx-C};w z_1h+kqsgil#4)y+=dLCQleA6Oyqmiy@tB(r*7L# zu3ZScbFbPvz1MTP-k!4Oc^7RAJ%4Xd`uL_;+{o+zjZ>q9NEhZa9CL{KsYJp?-1hhyTmb#Zy1T?OqS&5|FGozL7w^n16!cMEPhb^&I;=Kufz literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzgrep.1.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzgrep.1.i new file mode 100644 index 0000000000000000000000000000000000000000..67c9bb2dfca7a42ba1e1550e7b155210057646ab GIT binary patch literal 681 zcmV;a0#^M10RRC20000000L3O&S00000000000001ZoUN2iZyGTWhVT9rqdgIcxJr-dhXM&rkWxS_IkX|F zyt`wtx@%irLj%f>@7P`vQl+OBAsDY`-+BCw?PZp)MT0fAZM}oiScMfxXByZy#vwn0 zVh6Les+F|}3ulyukCw(4Qc1;)TYYBBOd1DQSSX?4dUE&fR_VnW*)2bvlK+%Mr2m+$}?Sm8Z7oiRS1#~PX} zfs8Mo!j~QwF3Dl1hyP1Zc7pO>1!?71qx^C{o-M}HNlb%bTE1#w6U_4ll-`=32!4%} z5nW+MC!0_Iw3)-8uHk^xS}dvIG$|YsPRy&6!_rfuygBG`HkP1GlmK<~UO!aT;RjkT zbR}FxICkShR)sIsnIZu!DHd)AlnFAyC;2HUxL>M`tALf-l4#l%0c@j>mhl&%7gRo* z5pEb4&sHUiXqjz#o?32P8l`@Pm4xx}oP6cA(yd2PfswC_3CQt4px!EHbc5Q%RyZY! z&Mx%*BOcNsB2O@{dS;zjIne}D3Oo>V_+r9o5RI+zoH3wJI4SM=9AeQ=5fM6V>Vi{x zmArdSE<<*YC>sf?9B@X-nw3Rte)kg5e#ngX~qIy@9dyneXhP@aZEDp;JE4V6yrjH0uKz+DTNmT zREgzS#gUAp&&tP#s={8W@$tNmxecuD4^5^ z<~OoAcmU|+1#cW#jb1?roL|F9C2NV%aAver@TkG{lTwy)tj+S!r+6;rk}G)m=3V+) zs`b^F4F+8TrJY=e=}$wF0PpG>;6|@ifd=ntj9wbP0#|Vdg;?lSV}!NBLMdx}atlg` zLKKwkXcH`lZ^Brq6lsPTs0au(uy%cmY<77r6Jyj7ONC6vh8>;ZQIc~TW~8NiYY1rso2h*poVsL z=$Xggk6)f1pCsOPyOU+;FSq# z%>X($6ORQT5r{Y`cR@F}F~%pLF9Tc2(q-V&p#dZNk1RvtD5la8FSEt?2A?Blwr>52!rL5D>6JE5X>`Dqt{)BJzZ|3gx`4!ifr+ zjrxeSkxd~@m!s}Iq4!>#y6NPwS0imc=OpOqw}1)*x@uiW-#;l$d?lrI?T22IMNxi5 zAYLxuhZJbK>m+{cTfyUu4bYV#gH(H7OWYtkR$-d?IsM`t&urZgu;BYvBLr4qpEmiBfhT$;GFP1)u$*~hs(JzEdAimLXb(cb4P~7gW<37|qlO@O%F6j0AN> mw*Ay%ncHc*1=aK3T@@w@w-9kggCyldl literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip.css.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip.css.i new file mode 100644 index 0000000000000000000000000000000000000000..dbac9350d574a9a3341ec84585fd80187e4dbd24 GIT binary patch literal 843 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip2.1.preformatted.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip2.1.preformatted.i new file mode 100644 index 0000000000000000000000000000000000000000..aac74b057cb63200af7833f570d5fe6956600239 GIT binary patch literal 7707 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip2.txt.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip2.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..d22fe5a83c639523898d6a7db52534e654310d39 GIT binary patch literal 7153 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip2recover.c.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzip2recover.c.i new file mode 100644 index 0000000000000000000000000000000000000000..1b81e9615019ba0e89f3429fdae446b5c394916a GIT binary patch literal 3969 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 Qy?38&21XzL4{ooiN4bHFn*aa+ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzlib.h.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzlib.h.i new file mode 100644 index 0000000000000000000000000000000000000000..fb8b721548296d331339d2dd0ace4096c8e3b124 GIT binary patch literal 1734 zcmV;%208fv0RRC20000000xEt02pNe00000005`||NsC0|NsB}f;#m5ZVD!k$yY3t zuV!Jpka~~+00000000000001ZoW)pebK*7-{_bC)xqK*ifDn>PdviB8N5JIV5=eRJ zUGv4`7dhx+Br3~EN$381SF#PZu>)x`J+DH4Q)$Ur_vEF>i(2q660bNH8edy+{aKskSC_KeZgXlZeny>K8IBH9u0K^q@g7dJ!m!uqTo!5awQPDqGC zSneu_LiwlRzd>_~-t^v}f3zb^J>qMdl@~YGWIieccRNcS4Cm9&Ir2%4Y>v!4y_4fU z{;ha)+6CbS$jOfI9H6r+JWD^#lBYA+=PSz?^;7a$j%@rsH%2|fGA5JpM3QUGlX@0$ z-JQtwDOn*pImDHbr%S|X4$<$910$}0s<)p zxC@&jokECNguYKEBN~!hI1+Fk1hVgK5>ycd6SgE;0XywHjaU$g*cHnn@r2weYRnd> z`y@+9PV_w^9@0Z$3tX71>CU4aK*p@s;)w>Zk$?5~S)7FV9ODfte&j(qTiJg_Sj~M$ zahkQj_t;*(&m;mF8dulj$t=5#5D01}J?UHQXbeZ9Z;oZL8DX%~Mrs)mL}o};F$d<* zklE&lP&bG?j6Q_IBdoRfnB}N)%olTX3da%2#Ft$(I7g_&PHtBNXSxn0pXn zE!L1MS5Wd&MUe;Ed24Dfi3_T%Qw_@m))I-jl36bmnzcmklIH+&SI`D}rVBBhK`N%j=L|)u{oG-D6b$Jf=&5W{AM_W4!9IEZyi7cti zf7d}GqvA%vhYKz{<)vZqg%g4I#l^nRcq->rh0T+hZgnO2;i{TMq`m$?@t`^>!-AHXW@SrgynyM(zQ z0Yv3E}%>+E0w9V(KSWa`Gq7Q|6;*VVhJnqWO4aQqbDO9{Jm(D%rC*hssdT$?&aBMg2?yw@ZQAQQ-_Gh z9l)OYRjgj+m1~FjLsB+hu{!R^@PjB^l*l-wB)LgV-M_Xvq*T2s@<94dsnP*Rqh+BQ clw1^k-x8DOYu(NRJ9PMX?Ys4V0fS_VW1Ut;d;kCd literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzlib__private.h.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/bzlib__private.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8115126957fd485cfdb1a6e1768a84b0bdd74614 GIT binary patch literal 3595 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 CM6veI~!+G(^f;EkLOH0!_D0Yqv^WSB-8@ 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/crctable.c.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/crctable.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0f188dfec0f867312bec894283ad3d55ef65cbf7 GIT binary patch literal 2144 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/dlltest.c.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/dlltest.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f5fbf1fcee9e1ee6230dbacb17f027cfe4a150f4 GIT binary patch literal 2781 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 Je*;TC<-^`4jF12T literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/huffman.c.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/huffman.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0b41cfa5aa77c361c34a3270c3384123051dbf6d GIT binary patch literal 2152 zcmV-u2$%N&0RRC20000000<}m02@yL00000005`||NsC0|NsAvi~u#GbT02q$kA(k zi%~$)de3kG00000000000001ZoV^+SbK1u8cm9fPJCjPbAc%DO+T!??0pNoIX~Td`SU6@0zPG<8oW6)R37^d~u=+N*KmPcA zlRm-ktAL{uFWA~kd^lL7^5tiu+!D#`P%=CZn3pn0nCC+_XYir-{_ObdHwOmC7yXmo z@#*lr)atxu#y32g1S_Ax*W(-wejO+L z#>-f1{&nN?LJ+Bb&~ftojV)n2HXMQ_m;VN}{z}5Yqxr!o3Bzo^~4VwkGf{o*`sigZ|aHtz18N_u;I*^IypIn@vsk zzl7^AlNBp{TZbP$n+>td;ozX28w)%>1q*QxAv!`aZ5ZR3zI=qh4&H&ngIBL=@}tKL z=FMgwBY7vnHyaA>T|5NcuN$FTaz30&ijk@FL#c$2Px}wF>o=R{$@%|IrO&QZH-h`{ z%b%U=`S{dZvcB-y35#agJOvB>=+C_b_5v0;(0Eh`l~;Syg#GQ*f%JlS?p^Sl)q)Pa zk0=z_jZXwks%oq=6gQQ92^kJplqDQDl2ruLM1OV^A9rBkz_Lq#zX%ZkWI~*XXx431xRMpX z725h5YvOh9QmHr(95mL%JoN>{bn?3C!GZm!hr?XGh0sfsX7f=d!^xB4KZ!n3H_ky6QR0_MgS-KeP3 zwb;Kc#Ob9eOR^(ND|!Id9oOu4Y=@e57ZiG-w6dha!y3OOdE^$y7S(?JQfw(PyNYGA z*{uqyYnw`TUVw&l?3SgpQ6ovKSafKifDKUXSG7+NMn777b4N}I*BROOFehMYQPZ9@Y}>&i6h*C@kZ6`)1MEo^{uxBD-6H_4#= z-A}M&EN;#OO}jYR`J4tvX%9Kqi69Vbb-f^BSfy&}D{Kj42H$R-S>HOO|6~p!PidBv zgQJ&bfWu{oni~}bKZ%58eBuSc2DSI(H3kwToEQgkKIQ?>HpTo|jNxix*EU0`5DN>* zkytYv#IbFpv34R>QPxb6G|@~m7E}EY5i*Jx^HDH9t*8iWb2XD0i&%mKrf*)aFj$Mk zmnA4bd&=S1izbU|tbm4e?UCBN+26b++OLv5^P+m?dZ|lywya ze2FhDDk)n;-V|jQX;ma9DAtUuF37`@z9u_ImLZRL=mo&0Q-;nLk$JOG5kd92aA3U3 zz!#WYA@d?-)m?j1IH*#d@sJ@`!@0QOV96J&*_^~d+4*!scFTZgWY1;VYEGth0n=S60%8;4k&Sq`3MsX)X(AtMvzP(H4c*br zZUSZEp@l#&CHLSK2I;R7w1593YYF}h}9N*PB+na`?VhH!=H zk!GlxaXO;Tc!&hL*+aoqRCU@dc`u@%o_lH)J;aE{)E~OrAL&K_51Q9_YThjhvM4Wf zXQ95x6X*7&+FLx)`7G*7=UGL=O1^xg1+5xjG}0q*x=rN~CFzr3Dwm%ED=l60y}Ai? z(B~6}>H%%yds!@`vm#t7L9m#U#}qqUnC`0A5rR7AmHN6DjHu3#*_6kSf0zD~m8NhU z33YHlLGz*>>|-8eY`}>7r8f>tM+Q9P*%QM=X~Vs-mp(OlRKPJy!l!}jhRPQ0CnIJX z`l-O#f_@-=;<%Vt$aOM?;&?lRxDi6!3?U;lB%tb3C~M6CT09g$3mHJ10*GvS700R* zK>>95+&8S~wyXbcFuXn)p6PRkJg6dYNAUXtTEUlrj3W-Uid%?o9d`R~^(%H!&koW0hSDM|I({q8U6-Ho%R_;$az9PN5Z@2zUezSOpxcMIZmjy9^$-7@lfE+WIjkr;9X6r2(%Po!R~@6LT<8K04zJvX38q)ruSzU%)ArNI zRxq@867_w1p(btNeG%6+``;)0%rn^(UHwk^!S@|vFY9K{(RdSHKWUNc%^ABxB{O+C Nq+*{lbIC2<0|4_-db0ok literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/libbz2.dsp.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/libbz2.dsp.i new file mode 100644 index 0000000000000000000000000000000000000000..9314c3a0100a8e38caa570f781f594a0248592be GIT binary patch literal 1229 zcmV;;1Ty;o0RRC20000000fNy01%!400000005`||NsC0|NsA+C+HTN`sy&9lw!GP zPBZK#6w!GA00000000000001Zob6XjZyQw<-bc!RIGwUcDr!4+sj3Jg#U9(T>X$MO zp%65TXKtLq^U^%>=q`7Mpy@-P>=5b(iHB4Ir~y%gP%5Rup;B2?RY@YmCa?-SmYkXK z#ExS-VNw>A*xh^1cfNDZopZmLISWNuG<8d#wSgt`M9~dm0%tpttV6}r-zK6BSy>@) z9!i2rl8hqPYFFb7?kj@W5b6ZV3mP$#FJE|NcDFrDy}#+^qqX(s$7@e8{TBU*?$KZAH}tRNl#6LLcb|T@^U3-K-T!Il$;J-7 zOaGwv=q`Ogx1dy?aJJ<-SUru!-dLv+Oezkt@=iNISZ^E|^w~^@}Y~_b* zR%dueaL3Y57M+FGqlu_OgNY2n(x%J2@*#b2ZRW;jm~Y|M9`^Vt_II}f>{SDg*S4?! zPVYZle@dG-wh_30Ywz8+uq*^Gr&fO({})w(d;UzX2f*}ZxtYJY|IUx^&(KZpkl~j* z8#{dxcGFH0g$Nd5VB`c7vTBSDpzB*?hGX-rYy#6}??mJ^o0uw*WW4x;a8<#qlNM9k zb+od=>$Y`uR*jN zhbW5*l`kbwG2LZ}&7`Js{+dTSTb|}{cLl*&7NTOn`yWtxrQ-awc{_vEhP`Cqyu@Re zNQcrC;uhSg3BtoidWmsVA*!GhUl<#MsB{n?fcpDWTsjd?)+`Yfg!r@G!RvX0!VWx# zjfH&aGEyjbQ;)>^K4=hABT6D3!A8Kbh}l}!CAqc2mMlZp6>lTzs-)Cg9zmKHi~wfM z5hdW!71CY_jvdfDvgBK(niv3ZDH^TK!7*D-&04Z-qK;#BNnfz=WE2IDToC7Ejg03L zmo5g~Jok;@@HqB(@VY>^r&DJ#1uk=(um!J>(6TnxU)BQd!J^g+bs9+<>nUknS&l8^ znaG*c5+BtUpx0#-A*ox0_;9-ROu2gs93NWXP9E7?;P_(%j{jfa`s#w@&T+Rq7*Y)% z1R1x8VL#WZ*R#8B@$2r_mBJE>O4#{P>0e^s;(ti?{p9NdXe)-#$mxzL67S#4rRB;~ zlj%${GE-A@v0F>;AbMaOfq2^ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/makefile.msc.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/makefile.msc.i new file mode 100644 index 0000000000000000000000000000000000000000..2b7fcdfd6d8170b54b85bf79ab53f27b505e6d22 GIT binary patch literal 784 zcmV+r1MmC*0RRC20000000Phe00vJ000000005`||NsC0|Ns9NX;#_xH$|kQW4tfR zP#~#y*3h#600000000000001ZoOM)fPunmM{!FF*hm%0!HHIdDv}#O1p%aV_iB?0J zkdWgzt%qY*whN`de&?iZ+;(fFBzMnqZ}#17Lyx}kTu2VNHqaByXsdGvzl5Do37x}3 zI438~#x_hW9r8A)0u3O_p_m(z!ZMHlAUy*8Pb1V2_H6mS9NL^@eBZ-eG36Od#*lu( z{ZqdTm(IjEj!wuIa+ZPNl2gk`v(apHIu}ghtNU>Ey?+7G&GX&QB!;MW1JUCY<=5`r z!|m&1x7)uRyk6f8`WNS?5GgJ7P(8YQ8SUhFiPN&-eVd}x!|7E0vhrOGmD0el5Zi?QS_Vt5YUYAKCZsBuk=SE%s@ zHL0n|3N_iFW?=$YMv#E>=lySLyh4pPsWwO;q$YFfC1)cIS5kr%Q_wlM5e^vJwO~hj zA~VQ^%0OwzM4ofQ72}pH?e22qmJ|zA0XGI`MXNC45qcCB8_+vT`O-Ayj7}_vXQ6(J zF~-{+Ts=WK-?pH}LFeiCp^J73@7)Tmc9*8;&S?!ya^D|*JcYBMKNJkL&IrJbuzm)r z$a?J1y3Tok1u|{0qa4;etJX<)M`+WEPmbc#Q*?zD3KvFhogsAAI+`aABWj_*`N5ST z9BvIC2+t(E$)J%SMB@Nm^v)7Y0x($z%bp0^b=7SR#_M1bfJp^be>_d9+CIOGOE{Ph zr~eMdYObkfnooHsFGjRhuhm_v;!V|}#L&)Xx@K23ZD{7IWki_IxXgcJp)lAvzzu|p OW#?eA)BXYyG2epq=6K2g literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.html.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.html.i new file mode 100644 index 0000000000000000000000000000000000000000..cc9f454b9ca35323f791af196afcf8513eef5b41 GIT binary patch literal 31649 zcmV)5K*_%V0RRC2000000DEBo0rDOI00000005`||NsC0|NsA{$ctvYk1U{8I z­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 z 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 IAMTRsi#OX$rvLx| literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.pdf.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.pdf.i new file mode 100644 index 0000000000000000000000000000000000000000..539a3935c7c5a6f30836b5ae22debfb667dedc17 GIT binary patch literal 64 zcmZQzU|?hb0p{>l2A0$gFq?s4`F|*w;mN<*>ubjwCdPXrik3f3uK0eu1yuv40B*h% AF8}}l literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.ps.d b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.ps.d new file mode 100644 index 0000000000000000000000000000000000000000..24fc8fb1d7335f7d98d2364781f43af9f05f6e89 GIT binary patch literal 234975 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

B)fD9Te z06Mp%zH@D*v8cMdvdjo~0z**_^+Z!rmel)mqe~{$LKLM5FZJER}?upE?w*!*98!-OWo`R9rcsxjg$oJudHT zWRLrIU^P6N^)<8vnZ^xe7oD^7mDv}x%s75xJ@~O3-tpSETyo{&2tHfaI`lL$kP}lZN z+sCX>RrwT*NVw+;5s2}e7*+Uhze1Wa=Hn@P#DE*Is7FT4V*}9?+!Q#NT&5-dPw#-m z6yZeBlacB>tXn(w$)P{jnEtl@iRoXHzQ3g&9~4&?vFEVhRpGlWDbJ@P+*y65Q@9M@ zK9BjSNmDO`xzhPLcgkVQI!fc29}JxU9riP3G|&Yi3hbrSwj&yvArZPd``Q;gJx;aY z4!?CEmEh#O4oY^1Sz;@x%Je^Dmdk zSt4!byF9#P;fY0OfiysYBkv|(-AI1luHaBx$&m-&vgzPjcs(=| zlUCm+&m4WJT4GzQml&a3Q;_&z-&ptZXw9r#6x>Eb0$-E=kqYPe2+li}(}uW7!sFJ# zUy|jF#<)HHw6PHWX?@>|%-mO&Cl84pPEkA|1tecin{=ayR9jS3er}v0%d3}28E|0| z2LuUxb@x(Z04gX0P(e?j%5MZo8lN#v>7#bI=R~1dz8Mf1Kj#fmOLBL}F71ZANG5se=?PqQSG)sY?NFx!=ZcQz8Lt3>m9zEZlXt%c+V}bzW`Jv1M4`4QNL{ zEFRxD&T`hrVhSSu2}`$D=h#v22NwabwF5o0k24u7;NUwu>A(ImlLxz?F8EHh{O0BH zA|?EXEDcKhp2I(Cx5NlOY_a~H-3H4|wNhoL%h2s2a`2{6bk3PcqHep5%$%51?>K`| z)K!&7SE5ASW;2@F1c@^nHQvW~6g+{(VYB!jngSdqkfuPr)oE3JtDy-er>BxHRA~MB zcrlWN?$m@8Ha^s^ha~&#PvBmJ$G}?$QXnkOU@ZZi+|9*J@|paWNWW}1aL&nHHb#_I zh!{pGe3r6jlCno~w#|$i?dfGVA*~_W^ovNpd?z^;g|LCr4@`^uD(1OejWcth=EaPL zbt)h3l~DhADL-PAhAvsdMEvV0bqG<$ZVNK0dibGqE%~VA;n#NoK#E?>xxh(vaJOfnzS91YC$<5{k`O={SKy#Gf=(V z^`mfCpFaFH`1VXd7JOjJbuw6#9JD!ylWEv}(w%*mgBuo?A*~h?d6oOg5T zt!dy=mG5?VWJ?e2PBA3QRd%u0U2wmv#l$05KEfg^i8Wc%@2<5I$2c3t{L+r|jY{Yr zAe?{(tl{CRnE|*S2Knm%^DpYK`8Ka=&JAnXMwcGDp4pfUtR!psAy0SLb{enb z&Co{3x4`(3CWV7LwV!iDZEY`F0dpX#-)-Qi_EWHd?lu9#_Y^+6COf*c0AsQh!$% zaSC!8o<~aVkf1-Je&Km0*L&*j<$r)0NKKO_-c|Ux?eMC9zTOU=yYO_^*?ELgy7I*I ze#hp}XNDjOb&Up{)jgSs{UDX zFltm@X*^xgX@4;;4YTV;H>jSK6;jG(h2qrdK7&a8!x>mh_y^=kXeo9(*sq^kV<6n; zLu*IN{cN}%^R~?3=h$r7iCH(Mc4}!!ZOeKpL}Is9+)Hcr9p*py&&P>}b!z(>;Ru)PzMW5p>NR z%ta;G!KcoBwGKuh!wjk_!8CdOpb4iAe$|Q;9rS}GA1}+7eLA-Xg*4wTj&}D}%yXSUeoY~yHot|j=A#kYNsSGsDQ9}v zPv%qNWZn)Dl|xG}KekF?7u zUwE&0(C8eAiii7o*(t?eg2*qEpT78Ah94z9nICW;ua!@GALt)f7a&AVOuD!yrROs5 zqo-^WkD2dxXR5Cf{_z>Wp+>R;KP~+%fKS4^d6qHH@`4dbNpn=YV2_p&U<2}sQr|}h z?^^kbMbtsg)^`p0;#2CmQr>Yr2Rqjl40SY;<*Ioi$*Q)q_?O~CR*&7jYxMZihEB`K zhU?DtD!XQrD|-55CBzU<0PZ&fk{!q5MNnFJJ|Tvb)qUr z7@28zT>4wIgK;(s9RU7xbG>SZ#cE1bVgxm9-FI~R{wgD*Y`i*S{coSC5#J`K3xs7Zj7KI0U_ zCVkeLoK(086zU3YXAF$7myJ+Qw)XkL_Z)QILt+WHYu+ zXsM!COAb4h2!;39+U)?i#}Nhz;LN@&{UI1tQ)>=~R`)(iHq&30tyv5jkj2!y-)8TA z`}Mx!csO*-&QVGlE04GJePIUnF2y>b9;H`Q8~z?|pC=fFjg~4XOa`;q<~lI?MAy+E zrbyph$(=Q(+cEB_eAj6Hof9c^z-;*f_r*hYLA8^~BSCe=Pvz1QtLG0DLMWNPfVXii zi=Rv3nAj=$==$_E!gEbVCFCD2X`@hF+G_?;MRppPu7J4s1H<>zyK?t;Q-i_Y3O+qizj z*da9~qXC_~<$-OXA8e91mCYkhmcY%!#nT$Ntd;ogOA>A)lLp0&(^0T(i=a7<&10u9 zBX*QRz&-Md`z}^F4i#$g`qUtXuLnBUPu%_IDI(RVn+k|!<&EO((l$lO%$rCmmNc^cNfNR8g_f`I zKaiujN?Z}{;r|ZEs$X(-ndn0r^ZKr*R2PjQAF}l7Pi+5zp$1Z%rJ+;7CgBb|R@z%F z(On{UGglUFA7y$@jud*x&r)Yc!gZJol)1<`B|H_uhZ4P@*q zo~p!4WoS`kvC@KlM&7-Gmq_6;JO&1pkpP5zR=zm)+4v9d@@s-T17V~M0?ijFCvV#{ zh@_|&-G(gowze;?=N29`$SVRF6E6*Y#LI`TCSL6&`y|k8We$06esx^(RDo5m*a&L6)z3Y>^pEy?*lRmodc{m6K0~|#e zzpzsbKRisV&18c2l(M=`;DN4u`atJ+Pac#H3Ri?{@@gqnkhHvsx}H8TSm^`M3yK-3 zWnS@X4z^P;s%lIBn1IFZOqr8=vzqJZKz$%hq&2gn6+daJQ2_s39?=gkl35I3YQhPP zCwVi&AOyLV1n9*{_N5$6KHLb{fbJg~rez+!@Hw$*RhM`Lk17e}>g2e$&N@@2PxnvQg-N7e&inZ^-f@| zt`vH&i_b^iBQMXX%>QmUe)&bGK~KdF{wr3hJ45!Lk5(O_M#sCBl68fpl)+NN1d=+F z{KK>&qFHuk>0@I=7{=7}Kv3t+zb;X8i*C!pRQ~{#6jCA+->ssjL8_OaDrdnX=9QJF zXe`)}E#HF#kBgIWfNY{lo_fbqsasCS0;U080T@yz+ zzEs@#F}ZQKnf?fB;lSWf%;Sa!6G;A!x-h~!aAzG4b8>~QrgxW<=*e|D>MegKFSB>$ zXMczbvGd{U=>d7V3dL8_nm!$}&Wr;{<9WzSk&p}Ai?MJTI_k%=ujgzDTOB+gOh#=f zm+=Fm^*H6kV#_8J=?^qlqN^6V0Zi87nx*c1&LJZ)w3pg&bW!Gvh_s%kBF7XP?<)q6BI;LH*EqFyMnAI{h@Up8b` zUOjSD#G8T(UQglRz+P^@i`7K$et0SKbvEbQy7U0k4ss9SV>0Y3J75!rVg+C7YI;Kd zX&gn1tLEEA91J*SJ-icT{(BN$o;X`rpvXK{Dy651m}gUxLLn+ zmN8=p*y!NwncEF0)!YV`*Jm3t)E}_IMs>fKw+bjNeH!p4a9eoTW4^g!@s?R2qZXJl z|57XH2v+Wkj2kdgl(a&UJCrPkN6&*#z`Lz9d0W?M!goV8jh|BGA=nnR5&$rWp3nDo=nxMjWP5M(nn=iHL7`$;EkIR(ZQIHP79r_J@VJ7BE z_Ye6r!V2mWyI&c~F@LegwM)qZYlZd)MqqUF7g_X{eQ6hfwZGZjA|x-F6&^yeV#P`3 zWf9`zi~43|JMa_QK1;Y4PfwA>`yI)_{U!)rhpR$Wv2E4Hn`23DJVguQTP)w!-t?Ti zY(~iGLO)rd4o~%1OVp-ApCR|a*GkkJPV;M<4sxvR@BBhG{a8%1yF4GsA8X$?EPY2Vo1+T9U}_Kr5(5 zhia=Ir#XN=;uepcAtha`O{bl|;eYC*^H--Er<_l%{V24fT1hXjE867xo>;d{UFCr3 z#^k&_fU}5yq?YM8`clWq$`$V}UX^(68*WdEIj&m-R$K&ZQf+{l*Ixbc{bH}=i;SfP z4)mw6=A@Jx9E{eXE(i_!-`II%G*m+upomIeyd`X& z=teF8yj0&M>NQ(J1@`%BW<#})kQ3q$Ty#;goqSjq5aZC>IVfpiI4T$(9AT#v=B!2% zH`6HDyM0qBAd4Rz7-EpS^z|J%KmGyZgzLvU%%%Z42yQVD3Bf>GCb?`VqyU&$L7)7% zotS==L3bYC54TVveK&h&nK_GW!SyJ>T9g8$#m5WaH4mHoqFw-lxifn+mM_2Gv-A2g9d%T6m;Vk z$HKY&_bsL+yf$cRC}0LJo^nlo4#{|ZCdJW#8aDMtRWke3sE(N#!pD+&V7Hi=_buwQ zXiTV*8tBL~!gp`o90gkl(Aq2ZH#Fcl1De$Jp{unm$K4ULU(n$3nYn3YQuJfii|(<& zK`$2Pm=bgWMrnwuB2tRbH|Jl|@;bg>sB^~nyh7@ReH`)VT{1$i*dtG{ly~?$th+|} zJJ7f+jtS1ia?Wt(08qQOpp(g(nyCQ>Aj8!*j%bPHCWkdfuJdi`7L*q{O;^sW$gh4Mq!Ns(>L6k z;sGU+b-h5iE^aav@jk&Oy`bFBJkF~ej@{}dRdJS3I9{_+xe=COH^=}DKBY}zq==~y zktO{Oia?K)kMATv*c{2>U@u&>&oFQA+Ns;~#}w#mBM;c?U6domghgTjClw0+Fn@v~p1FD=(+eb`c z&)ErF!G(Lp-`Odb1Txiwc#cUVsSK383t&1*_;yw33ux)mi88!4y_tZ7iNTZ%@Ubo( zK(TWI^tC0$u8?CZ-^hy^m@KXsh{0uS#JJI4DuwZF8@60+)?3OgIIWe_SKA)?=W2`zkEuc7Z_gW;$z6@$8xLJ->|DOijioZ2FH`R%(uJ`RoD7|4- z-VEw2y`;XvfPTG0izWfpk{vyQPk<6|g^)RL(8Cfq6}d`6{C=(EF3(+3Q4B9vdM<~J zo7KRBE0-<&rUiDl^w3gaZ>mWG5nN1Ts*izzo7og#Lj6lBwcYQl3AvB-aSMY&alf1XO5kqU3}7V1a3* zoKEA&sHuHXrovnB`OR+23L^rRzB-Gi*c$x&v3){RW@lLj#Yh;MH=62VfE>z$& zm_EJQHLf6vab#YyUb^Op<#y_kbv5^uLAzD80zc_4j#{j5=!Li;V?OSV&qnirO@@&8 z{!6*FhnbP_9CgSV$CAyNR(DUX#?A_VRM3dVS}~(k5yA+g@YtsnYy1asZ(F^j^DxIf z*JvJPxSRg|({7l)8AiLiM{J3LuEKnj80UJ`kmP}t73fGFIbthY{VINfcKlXG%O2_n zd_r|C!0;O>PJrh(9?BlCKo2%j&F!IsOIBX^@{9%YY>=25ykRSpNOtx;72OLfQ8?6YII( zFmur{&BK021+N=vDm%*cF?8te-bW8MBplN2O;uq9^hnKevC0Qbj=TUP3(!$O%p!CZ z{;e-Ly8zn?3^7if4ImCHOB;v%$_;6_E&pX8RDLSVp_T6;ccz&o#*s(-ZVNy17X6fc zbPb#CqXdSB)m586d!x(Ho#dRR>?iMP=WgUXH@qhpneJr+SH)nVxw0K)C%%1UnE{9^Ln*w-;Hf@OS{C2!{vi!3pO+y zxKJv31c>bLdh;d5{Abunrjy0zGqWujx27#41?xWRH^roH8_!U!AE!5+Cq*J1FVI0L zw{SJU(0?GM6aN|iO}G2h%z}GP>`YmCgr#N0HbPxc`hsavoqw({b;sEp-_q}pd34E9 z;&b7$dWQ?CXf=`2=k$wvfl(_gF?n}r@aqvb6t|DC(+n&pwd(@0O2+x5$K)=%MA+0n z6!|@S^nGK_8t7}*B>dFmaBTgT6{)Fp+GxAsi*TwRoL$_k_6hO{E|~_}&ej|W$chRP zAYzkjZ|v+-6xZluQAB^ewHIGxf6o?*6%}`8`>-y@OMYpWFEAJI1?B=wE`ckS@Vveo!_+s9hxk zfdg@aTD!^QBE)Eah(le4^r23mFe%{ch)KLNY$%vL=vs&(jxhjWGe0%3Ob^NCrfUtD zOe_JDi8Szlt_?Ogr8bf>;ufzlRB@m%Hk2ZvE)qNpg44ky)SwLI8&f}_%AWAoz>NH& z)dHVqAYkOLht;+w!0?keS%VAQ(#%xZ?0*VJSQ#+#=}(=@e57KCWgO*rOl=5(eBdsG zJmAU;si0gqjItCPO(}BlrOaHP1RjQM8i3VmIl@LFr#tG!L#(!DbabnJMV0>RYC$oZ z7@1T^$8^L?w(OnzNRg&(_>kNN{KW?*!NJ~aK91+if&3~hC`&m1WdP=9iNp|S(kvp( zo~5M)rA16UGi+9$AWl62#KGiBQ zlv4p1a!JoGLvk5TwdM;7jNvmoO3(pU>xrxVP}awU;ibZ6YKIWP1Zd0VG$iMVl_Cqc zviBN!G8Jcdznx#6S*+T0QMKwqOOgn%@tZNzg4Ir(HSyDtDqhB=S_bJBeilBxx<9TB zWEN&lPG9P06!Si>BxozrS@`n=ImIPd&@+7ne_3Ijs`rDH^;lJ1^co?8mQMRoEpfM; zBbJ48U#h-l7`!g=0w>^O$NO{vUk-at3V{WUN5YWE;ubmH;@tDXOw3OD3m5Fb136!0 zd3rMxcKWKvSf;nQr=$n^+w-m0hYkvJh`e8xiK2m8SH9p2!BY=U%8i&p>m3f(KI(!3 z^x*3(tV5~9j=HwL1}8&W0h(62EES6AtUl{zIMIlC)l&p?JOZ^RDCaoj3h2TY$&nk0 zkGWic>Vdk=-seHjOZ=c((1ZQ4X%u=3@_byz3H6j!*KvdZ{k7qwxNDUU=LkO4WG4^T zn)T-SLF0Wb-`h6a+iuW%oBI5#Y3u%Y>G+NG>eVxv#(?6JuI@tPIQZvX18;_N$@4wl zCIq3%+ifY^>O0aAAbMn#2)MBw2v;yQxozpJEvoVf$lgPVAMt&{czuZ)Ed}>_VSBpl z%+a`_dD~tG6+JQO;G9!kO@B#Tv`xF@dp%yRoCpXm&H|zpq-S6S6U=hWHPqe!&V&5T zA+=g$e2u7fenIKyvT#at_+`>B^hRKgvaBfwhgaE-Ugi1|U2xTB(fHvgG3~g9QXeT4hA$5$_s0&yqe!Fcz$9R4^e?i`_CL6~OqT8!E}jXnCIDj|~Oqcx0uTrfqN* zUtA5on*P~sI%7aDNCKQ7Ms|KvXga?H>}-pwab2eSG)D>?x+W_vG!Fp2AhqCjo^4aO z=RlD%H!44Gz)pp4yxHyZ{MBRn3-D<%jOya5t4RWwKdQ!kGt+fcI$3_960*V6UBr=1 z!S5LAztz;>1nO>QhHpITRhPk=h0Ugir)%PP7QwV((%(ANEBv8V2&*IyF2HoU>@jtb zwY(uD=hQ9IvcrrVi}x{4FK4H@z&wz@!k%`r51mg_m`kiD+-EnVb%9%#8Lf`D+ZHW$ z=nUPa8$*j9;r$4udG0UCu=O7u{i3Y*P9fH!I7lLh3qO8MOm~UVGv6n9VaG1EWJL{4`{I<_MH&*(+p7Qcbl)&p1+&^OL7K=Tcaq_8kN+PZP=(fWz&%J3WbdMd3%kZF`?P%j|FShpY^Aj!b6 zLtImBDaNE_o0(d_FFvkl+MbMFo_r$UoKvu2%%Hp8gH*>XEodE;c|B2gr^s`$dOiXr zlP9yj#b+UKv>hO|+ON?qE=Z;tx#TIqbsE$#BW|Jnj3^^RJC_mev2M$=Ic6(j!U&#~ z4HmXgaDmV}Ma@~yw0g%rwPaMMCko*yYO(ufhF$B3A-977ua)$nVVV?k~h@>o!N44$tDubTG+Ho>@O}rW<%9_dos0W^zw0reXo8ipY1&bab+_W z7#nefg{#FYf}CGGcW!wb*kxoLU>$0c{SatZ1z=o(O%MGtXU@PU-acRQxSCV#$CSf~VAy{*DO#a{I|gS_gMp;28pFTXWY75oPxxDg&SeBypZpk{9KNY7ib*L>D0 zg~-e?qOA^TiRCgm2IC=&I)8s32R8eQdOVMqItb16!T{}HzhAR)0JjJIz|&UIQOD0L zC|kcUk{{`AJ4CMKEdgnZke8W8?~f)#f}J?eKPc75+CAFO>sD-BZnPp8=(Fs^Ipv3S z_9ISXQyP#$BM|3`J=t8RmhTZeMRvttO+C)S6&&8i+^LWWUa#kW0vFv4x)DizAK=Q$ zhZw^ZNhx{0D3}0sABJJT2_NHdPf;0crLnSqX3^n@z3lk@)P;hhi}PIZ^eEhE?ZZaHh)-qG$;6eDr8XfRBuC zcjDlxSq^j5OHE(lY88oj!CEXOso&`ntlNG7aS_oxq5bV2e|HzK!3`R8?H*uYu}`OW zT~aeaNcwcALNmO7{mb-0Ar$jw#z`i)GwQjvtE%VWk;auIXQ8%qYN3QxjNa}&+q61a zVXQr7n&ucD&GW{X*%Zl!9bHg)Vdh?EjPu$`YbGhavJrrlhGim3=@*}yW7V0>aOV*h zK@7#sg-1H`6GZkif-CQut1laJH{udivWR{##VH)%borg>3&BGU8!7}5@U}c<@^Wgk z`38OozNYkR>M-1}IE=aq7Ff!C2ZCt|D`(pnlrLELulCr+`{dtbRq_efN_D+ViOe~T zzam)6X)0avTcP{~$_HD4Y`_WUv8`csy}ytd1&|K1kD1z#5n0Y~T%CzIznOPD!0396 zy*)VVwY%2=7ps|mbv@}5oKXm9aBQCE4m~RJ|c{U-8 zhcM524K~m2B-tqxOr_Eb2{Ir_P}sBIMQ`IqXjoqR%_GR|V6?s!XbXG}{4$nLFvic| zySLX?xO;r%r)@TrW^OB8y8bb9+1flrEO5vnpuI`AF2aolndCPPQ)5*uTd zQC=iAN5lX1CxJzc+T!EL>BV|>72zY&s#rt+egdaUu(c)>UVD~m+czTGL~hK__ey+KoGdx=ucgd z)KzhHcyYsj$S*PQ%EHAD@z7d)nD>G(c}_*lwRfBIWB6Rw-|c(9-QRy+R2~H7mygyc zz55+V1VAGty3Gc|e8VC1O0(X3oS9Syg(^sgTU}6tjSU_^!A0S;(VESM0ydFY!*fpG zGO4;uHFNPpop1WBB$c$F%JdSdvmbiRK|(jS4~V<5G|mFNG{c<`vt{W#c9hWB?Pu&7 z0t?|J;cJ~0ktVn;zW*3ylwkUNzJHI}?8bWN`HGo#tww|M)ScP!e0{FFCyR(pt-KO^ zA6wb^s_{1P5)vIqyjX3tPaW0cpDn-^E4F=UA^%N7O0B}JiIqCT&%9gU@Fv}l*Aj)C zEvsMQP|gHf+|fkgzQ%@u9`ay50pysfBP3pvaSFUAR8Wa*c&Cbfeuo)*oz+>nTk|^) z?!||CO5e6_Roho?cN5Asr1m@#PsVrL4LiuoXyQZrULHn>kKL9XR{)yTTj=O+(T(BV z`~5k>X6MV!YG=pG1(m#4X>dBdL_+tE?q1m$j?vfR@M>C@m*WjtdJ)etRoF)qfOdT2 z*GWk#YVMF5MtgW-TO~WTzLV&nB^Y_JiW0`d{wb)DWW>a_c5Cz=g|D9UY*Wv6Ym2w_ zWM<9I=i~^;5~2dm;RP+tbZVXFmfuc$p~hp$huz4=I7EoVJvp*JyJdz@H`?8JEr`T- zmGrGL@siwBCp%AW?(BXC>oTo(w*!ED&6dPr0dV%l~b{piN z;#l4fUVY^oRlZ>`!^-jE#1S!;p(jm*Ys=H^__&bO{d}&h?D+h+f9$nK302~kCIZ+9 z2Xv7v7rr6`U#7^o9`Zm|f|KtisBDwfcPj%3cbJL5Hz>3wuW5->gHL-;p31a8i?!4% zI*Bzp!la)@v7EBbtUA)2cDQn|QQ6mP*2^f>DqgF9win9b{QB9Lf^XaKT7Moi&7+M_ zYGWsPGQGKY+Zpoa-b+{5S-%uIwYxg20~ULjm6=z~gteaAw#i3nf@`RzynfR7bQMoe zcry$|6gP}}2^Bv{UNd%|U}C=Ej*P&V#G=|=)>2+;wnFq}8cZ(>%_Vyb`5*X!MRJMS zRc2V|_R-zr_7)$*<(9{!{7wUA`PA_^FzNM&|>#)*ZL}D+x(58c&+@K;G z?$}{>m3D1uMRP(3^J^6~L<8LakE(wRudDmM$Kf_^%o8*=PRz!(ZQE&VTaC@ewr!)a zlg767KX*Uh-*r9DyM66_UYxbpUUQ8(=2&CqX|+hIG_Kj!XtCnYm<#x0GaTc?Jlkzv zO-zjzCT9iCrxqjzX&zU+kS)r8L5v=GEYQnhQa{dhmQUaxF5y>D)KIgKJ^~Ayq7Thi z(&e5O@T@T36VyTb_v$;ztpTF4D+?};r*r)Lu~CKqbpVKcq0|TnK~jq^#l%0#`$i*J zUtJ=*yJc!%OzpGACUx31j@>6BXxBn+jI+y^*QOok$r*|e8lvQw5rKR3KtVf3VGFmM zWFQs@(ndt%n&LCQh!xGXG7bKK_~aUx)~#)aM|y0k^ayEw|yi8%F#Vcl=%t9HP|i1v7K^8GZ!&7-twgl z1yb&c7S4?ivQt^pB=ehJa!E|wvEAOnP71y{sb5tFR8qTbmGVXPR#PF-1%RYRLAY_a z<#8hRUfty;`FztYyC4klwDidp|6~N&jAX*X%xVg)g9n z>VUA*dtZyK?(%$&c!R*Am`F=lRxS8z7qP4%N?L;@0L`nx{*{KY!gF25k2415;*y8Q zCw`$?T8TzvMha~oAu(v95io^6@Vlo_L>slo8k zB?s-WpTVkHn|z7$#axN=zkMl7w|2r1Ys3MoQrfJnBF!Emh9Q5H{@In4mwLGs$1xAWnrdB-|ALHKI{Ez(DGKV(Y8Fi%vf z=?_~774Jp!Ck@x-rLpzT^PP6?O9~yWQ99e7L6#}T!OAoblD`q!Gcr8JekBA#URjX7 z^c)=mCGoMdjdd%@RJ$!D5Oo=DTw|3u;#=Zj#pHj0;FSid*DiV$#|7G|zl}^O+mWef zBC7#fa4-9AE7NV)I^B8h_l?rSyyT{&z@>H-p^sN$r9~^rtF_+NC0tUvu$`@?#CCb} zP58O_N=Ivwo}-vh4+J&adgQPrcmcj7jwCZV%f9g!4mH^~wjqfMJm5jvIM+d&u1%%& zF|SfnwQU8PZ#GzH6xC|1AUXyU=&w(y%8R{ zaO^!XuE(D?ot7guCsZXRBmmu$I_s~swa4t5w%}!QRlHp)sA#%|se(rRQye4_1PoaQ zw-Am8Pp^=?I&~h0h468jwpZ(bW?9{s#ch3iZ1nw}!iR&%OU8V?;MIHMlO8H4-#y`D zpwPKwj62(Y@oR`_>KKc_V6XDYeDRvkmY_=matAX?SYc+es{e7*U^wNRuh`YSGc5!2 zwhxd>SGt+&r7Q=(xBqeTv`yE#Sw$HD_N_YVd z98$MAQ1H)s&oeN8E1vRzGgD^iUS3Z4o3Y*>@KlU&oJ{&NVg-&3GJ#?G&@$vY^!j+_ z7iY=^t$&ILt2xu1IBE_$M7N&cq)<@dd)UAreT}5r$u0l4;(kHu12uJ9PQA_D77uI` z#!(*M&N3Z*5w49^Gf*{JzH;KwW({WS7f?Yoi~t>XR>IW0(3)Q%FUz)%p$TlJpUS3Kw5|K{U z0r7XT9)OIK43u;K2(#d<@k}0vWP0%|HG4w7YtDTIMf=c53Lx+u)HB(2&9(j6=KT!G z*A4vh$sm?(|Np0Z4DN;46Vh8X{pp%%psxp<+}(ddYrB$`;s1Kagg|hL72G^ zy-}OlLkIlntgiM6$UZ@f|5bK3S%vd-yd^wn*W%Fa9fHw)$*0JEyO7tldNJSK;j`=Y zxgw{oz21?|tf2A=ykrP*GnFe~^E!K9O+#~2l`CZUU)PvmN%EL#FnLcFOi1Wih6}xQ zv%D_|if)OA_Tv+N>E~v%R~}h5F`P9By5I+8LC|DbY2?1QL-J2HmGvp%4#EHL17(Bi`nK z!I}yvYuT-?KMx?8Iu+If%#I3r7PCkCcOiccyVSwEaF6wfmZ*qti~71rabalfp~JKi zlCi@w>K`v>?(;$hNUM!Ir3v5hMY9gd7gUKJ8`3 QDqnW#*LlkOPeiR=PFL z&sp9Vd;FwYBWHJsSAV(>n&no%qLm@e#!TC&4I~nNf7z#|8YluFAF7&YOh$73;^a2Z z6QGZV9WcbpjnrJV;rfEB{Pj1IKCtixJ@Q%9*lR61>W#?7O?oxClVj0Sz6@f~2#OPW z!M7lr0;??vzKse-e?UulaOaM>oTIVWGUvikZ8}96mdLg6)Uc`{-~lwJbF(pf$zf z9uL=nDwZBzMO@1c>%;~b5Sci|nXtEg4fJK_fZXb5s^`zrI{1+ZmRk!A;0HM@3H$4+ zsUezOaqVj{QRDpq|GH!e|7}Rr)V~nqpi%%j16d=QluH%ApC_UKI=rITn}C$v+t2J= zZ7=#dvE(SZAjvq;wmo5c_T}(6*|tY&rxnU6QbTT~<#Lt4360H3>2P3rHD2%{+zzPr zIDnafl}DG>p~a;DsUd)jbK9s?&PyXH=Z1WLY*-(fxkd>=xf z76Y3(2QV?1-Ft zdv;8FE8ZI~*0r@-MPEH}?C+rRKLWg&w+e{{BpW1{jJWaECHXDF|G8A@0zrp*x=A9z zL|GANBS1JO5iA?c{_ID73za$#eI9_(rIx=(n1r*QAYjHx$N@-($tMFz&Lvnt4W8yL z62uj=d^yHql%c*I)W_rua%qfNL8tXHcir&4A4JkS3g-KwSq+m_*m|xcR(W{EA5M{& z@)rx{5_0Y~b&Zm~!pe5{J+9G4rrlPsPJ?Wk$z(RmsU5S4ngq_QWL0NvG5q{Dy*vLd zYpi$fwT&LVxtG@6)mmi@Wx#=S+D}@g#GbDBM&Z<;b=9WtaIvvw@7ICay9ce|#-uV#-$eN_Zr~-o%IQp`|CJ@XGHQJP}fLJ zt5@-X`^1z&QLzlWrqfn&)y6XXNAg`6svkR^f?D@XXO;y;C-EuVk~x&I=lN}J)#bPb z$KyMvux3axYZmF_dfo4Tr}etM=;E&uL;GR!M+dh^8|#(zu<)VnjeW~bq^2|yqlypr zuP$~<>4k?RuF?x}1pBTjES8bWC`|om8!97PdxU6+zq!$*zsUHj8cKc>tN+V9|M#EZ z-q$c6gnI9%F;iI{y+2ozPFtC^1YU7V=fisZ0b_p4?iSb% zrHn2r*^w9#T4owgN;PPgpx&EH|b{<`1!`& zm!(b3K_u0QHg>W5caH8v=joLDtBh0NY5T?7t_f+p97cvS!iCcNe`3x26(BdmFJb{J zbrnbe$SM&PLI@$Ze}vneIa_IB9DxT7B= zO)HCLToY$V7E(qg(n8*P4CfOOm}_(C{7T zeUksFs}l}z;X>i3MTeKG*(cxJDwf)J1yomdlualeJF;#c5H3P`AE3QXyT@g0_|%<^ zkbF7oI^dQ|(oRF(0bRf4GZ`V_F%pO{%3y#W)RVuX;*_MjWqhqZJ_LCe#|9Yb95_;T zYO6*d;ffOf>E8SeK}x1Rc0(+mkKO2!!~p+9v6`zvT4ftoPr zWxlsZ%&kOo?yjqu{^Et9>V6~vQW+SJ2!QNVY9*k9|K^A+EG@R$4j!1{5_trGS)`GM z>Q0=vX7_HDj>A-?#ka%gs|&*r4e28eculNEpC9O}e5Tg-sv#ueL*pmM zJax3KjU-a|JTb1O7r0p+Dh_rgG&J>@ND@n2uN#pw9QVEp91 zK=|-q)~nNv6PGhS)SjH9bRRrLVcc86*0iylNBPJUwAGDHJ+smR@XwcoDWQ`!kn__? z!=&@TULAe1i>4aj^Q4H@<}KE3Vw!_YsmW_j!PjL2|40Xk`zUQ(Yz07;1>l#J-F9(4 zq4+v4Bi0gl7u$`FJC9P5D{c92+#wFMrSPF3_l=M1zRj0QO5dn=K zFA#KpJnh=?e!R@d_48Jh^=h64h?{hP-3qweg<%I`O?Cg_`t@kOI@x{u7jLB2=~vi( z`M^bw?KPq`2gxe-CI7#Fzu^ynt9RWdn6}&WY8?K2rAVlbfl9cteA^a6Hf1}&h%6xw z51y8isb{fbl;hGiRu80U{*rE){)G-M{ML}3Zh=$ z!jxQ;+2opf>vkLc(BCvcZ`&YpBx|h+@^nvt_qUQCiWmL4zOXf_{}&s2Q6G5N1j1ow zg%nN+H{cFhG?UQaQP3C+efw18`RbYc6Jf8|PXbY!7}b6yl#<43Qvbor4lViAch`*X z!Qf~mTF}tI;rN)dANy|fI#_%x$ zP|yW$XqkZ>+rbk;D2*{NW zmnUVv%)w2@xtlG5gXg)3wn5)4yPlyll9$j zi8~L%e*9$Nc?Se}7MW{_#d@-FY^Er99yc?LbuVk8WA>ZqO$2L25@WhF>qPb?hJ_6w zM>SGjHP>pQFG$fw2($T2HBwqW9Toxx~gNL;UC*T;SYK^?!orEkt00Tvp*&>mec1F5}+U4&9a zY$@J54Sbc?a9h@oncmw48)=s;VYx1Oqz7Eh8Aq-h(w}{ISBSObW<|p@zY^;Ca{7dZ z{luIPbvb{$pcyIWJ&Oh(*ZvSi;58^RgI8eMqJmr(#~fqw2|F-*$-|kYO?#PfeVvrC z53!ubYoq2BVoM@P&F_bvqGKZ{|6Xxad&M~OQX?qzW(2^1(01^dHK6RlMUbyLX>tkc z_$aREyE%DROQ(UW4>LF;%J@CvM-wH`K&9JTu0gU1g)w9BB zRr>Z9i)-2&&_T!p2KZ!ak~fBaV3JD=;X&O(qtK<~Ef@JF16F!b2HD*9Tq#WxE>4<~ zlG@aaKGpG0i)j088g4MlFd*^k>pkC83t=S}G@IZS$-&o=;b6m~Pe+*OgsYdFtr8Ap zSL$#G%eMemPH^TX3{3l#-%9xU{k$*g)3A$q``}75OL=*r4uh0<88W$!uKUskkd;`u zKu&-D-*9~$A(J=fDH*qIbmDrq33)20QzkPSraLFP<$>|)VglTruH zoqX0XU;EH6f3xw?Exmc8rb%w~zg-L37R#Ho6QyVX|23PnlCvEJ1& z-9Z{=`6vEL-EDphfL9@q?P-Fxz{1F>zLM~MjCtJi+bYnWT=tKUwTwQl!B#&)E=#3> z>nbjk#vjJS7F?Od2xx(vSSB}j?iQ*=_j`~^nSe^ z?%uw>1{-)9{W$M3RHH}_z9o& zKjIxBG(Gc@@EDdSt4Y)3{8n&l%{uwAVvFCiCJ?ElsxaD<$H*Z-<{P5kITuKqcTs#C zM~!nZ)u-29u^3FsU#Wnm;*E!rvgxaE6RD7qb;|PI(T(Q6p?3<|k5!nV3CY!p$wLfO106l{)C2oyJYN z7>m1OU*SS#tszYdMC2GZdb;JRd<&4{egW<8X!&!>Xvi>g=S!UIH!ZwEM%y7$0MsYqVYK$=m8mM5|3h{fE~lDymKP_dAHq^CgJy zbY>k6!hfX~APhq%BaM&opvdfOnrt(s{ESZ30@g#Mo5w>Sf?KdNQT*o2RPlnn>@e>{ z)rdaz+!wBCw4J*?m&I_c&w?mg7*rAeVcnFm6v~S8b+Ht1o$;{ecTdmGO^#yLq=ICy zbff;QVx|f@*?{yemRW{DL1)F-i21Dc%1_A<*tx@pkq+eysVmZUUX{62Q@cYaC@WYQ zgOL0Q23*ZH!xzm@XNiK>spz;3b?6N>0A#7XZa2L?3?g;PMCyCa zR^RPP0gRl56vs|P%Y2$h%R2|;r1Gw2VWdukkj;;%VKqcjYJ4452V+luc2$Ymr~Jqi zu|sumb|ZZcpG$`PJ-U~Wa(v*(vbyh$sP6Q72kZ>me*62%cPY!(l}n$~#kjcx3e9Yh zHF*r9mrk9}DkiR%z0My4_)6hp1%iGS*91ZnB;_uiYmK69Padfq#8SWZuWd9FdxavL zHD7k^f8t94BT-4r?^%qQDdP^t$Z?t}DyR9z)S@puQ;RxKkrzm@xdHe`<)Trt>WQt- zYRYKOuIg@48taTt21!~lGORK%UNo2qg^5RL$YcpB={KRd2nD=36Qa7li@Rvd)dP6QOE*&@&|*hU#h+>D!|c;C>TYJGi}Zf_hPko= z8qo?U%uV>WT?n>k8jOC6(}4hu3Ib^CpS*DfkNa>qXUdL?L8!Bll0fNtHtiT3z!!|+ zkF0Ds8>Mgm$_|A3{UO!|Y?j0`7-hWuRZ#X3J+im!|FszAK-B!D6%k&>*(4zv9}6_z z!M0x_hO`@!rm_1NVI}0>_G*7Uh0JPkR9s(WBxA^|>?O-8$s|mf>?n{&LjaDMr9d&I z0Q4$zCHial%`aF*mFJ#ZHQeT<^psdu4*5}J(DJC@7UcknCrVap80K$g2YN~}Xgwx7 zj8F(LAv3}5!GvWJf-u5p8tFm5q-NIXeK`FremQeAF=_uEm~R`i(cRi2cz6t*d||QP z8qK|pNRnA6if$%cytGiU-6bsxv}pTu;HBmxU8-W3auS}IwC~`x)|E0hR{$UsqAHW| zl>2zcQqj9?PzkB>{L~p0(0>WX-k_{q(mA2fYjsh_9&o24&vyFNfOa6DQ>+?%?9%Q6 zm8E?zYmCNog0KmP%Zx@rn^1M+L^v+an>lLWAsg|a$VZbP1fBiBa!zdRr!nN9my1_$ z$dTbtQ39G)huviZqPjf1psy4L9$wfxxv75FIcfkZiyhh8GPiPoo}U( zIp?%6oeV`V_tGCIheYg7#xM<}GIRrSTVK_RgYlx9{`azWw@eIN=wK#@6nD~HbCLIS zWrbNKu#|@(%XaG%P%7=C2fMz0d(nzu{y1^rK(tkl%6l~Rbpbha z#K#E>MJPS|dh*ey~(sWZbSI4wbQx_ybW;7+Er@Cf40QRSn@4f7~{$+jhH2#O6Z zdr7xVaDzg*P1HQgl0U7RxdD>x+4^P&ozVHv{0f$l>FqHl=Ag|%oeKeyPwD0X=1lrF zcMli=_p?~um~gFz>CG5$0BHf{SA+$()7KpeAMNVgj1fuX8r{$KcW#->xu++aYUNdI z0j`1tmA@2)Hqy;#5w@2nwS!uH!ly4Tot|7J%MFssy2V-=#(>4r63d0!zsfCt`+t9y zvN72R({U$5CwWinTfk_37ls|tYn}a?Kc8baaKhR)v^{Yw2|M_kUS~I-Z)}H#W@uxG zpDyiVeFF!;@FsSAhk(o4mLB_D=J{ueK0eEg_Rr&E`&FhRAYQ!QrCTTGs^*6-Rb-XT zWZFp2X4SE@@`oIpLtgZ<&2IpC?I&k`f)w1`ztjtGP>0<5c<)RwRyQbUp6ZaQ0R@^p zC~f+RN0TeMx9w>5skm;CL^RdOV=ec~tUI38)Z^nzvOn!=E4l+=7Hi3C4;XhFT`-#q z7CkeeYo1mn>=e?v;_}P>hh*2cL6m%7~;83E7IQ7l@jdy_2lADP@aZ==4@WrId z#b!awTy5A^#=Kem?LqR##Skr5GF6o9l3AlPZG>ZT>5GOjLD!9qlGIlMA@I+8Jrb0o zOoRE{=o{nok7@B#g8-6%d;6dUl>>+`+AGNnYHJl&nAhm`tYs54`dTs z_cVm{7Y(Ni$(RbT%#sSc6zLbH<`B<^u;1kWdD3y>zm*(_0SOBOx1WGEmjWfQezE0yw9h>qPF{GxSr(8Sb!2-6lPs#`&&LGuMg*V_ z)8x}F71sl4ZMjfO7;BoO*PLw9ijEbrP3|4!O1>_Fzr}{C3q|tqvJE&011$Z8x zKQo}$nd(cKthZ}Im<4POZ`q#7F!DifqAB#rcjNEvqEtA~dV=GLh>h@|5NK#m+mG2qWtuoO= z+mC9dQ3QdP!z#7N;E{Jrd*OaRry5>{-wgFwpv?^{tc@#(Wq+`vzghmXhLiAbo0Ir#`1g!~=Fj0oV7C zn2hrpE**)$2J7QQa_){2Tsx$G&3(Hj5hZpYOKx_Nv77q{_QeF&g>!D${m-uWk(Q+% zNDtSUd&(s@`nuM3M^QzH^7>EgRWaaOC&*$uD9afzx6qc|DoOc3X(~4n+7d;m0EO9{AkNk&z5N{N>Ip%UMX0{^Eh%e7qiyq2 zHk2peb=gW|#%QCmzV!HK!yJbi@yniBiEt&xZKP)l2hgBIU+j`s00=yd`U)h@t032FCTZXW=w z(5JXTJd34Zf;Y%K@Q?i#fz`Pr(u09#KD{#LnVdh*<;4~2ip;CA?B<2hp)AAto#yBf z4>x8fdH!|+yp0a4%qJCil-B4=?oKl%GYHYCRLEV;>-#^$yQ$mM?% z#OXizT$Oktl6mS^ulr+U4&KqmvsKukOp;Vgp00&s{z~7%WjI~&NUW>QQbvx)LlDPsc-b~(PNbRMsS^h9>&(N>QSrm)f$6t(YG{! zuFba0|9jksQEugbA6xm|cZhw3xQ{6Ixd!|fd7=|a0E@pVEaO))iJaKoO_pwR4mM~nmzY@&7yZ1o^@3TQPrVV6Yibbv-#%+4AT_NXgCR+XZDRgeE4u} zmmb9^)^Z1L=5>fRMA@(FxZ(tqvkip>ODzu`QmOWwux0{7Yu`=Iy(y?V`a9gM!EMI~ z0b5*`&$e%yBC_h`A=57{Ta|j_6pB@rW+HQZ()5oOqX9p)bLPwGfrqQUoRaoBv41K% zL-$S2NR9sE&Pa@!5#R@%CaWAa)Is@Q7ST5$3o8 zvq_EWO*Tr6$O4*pbdXzCfLO(2}1%y*F@k+_c^D-tJn8E_mFW zi?dj{5US;U$U<(92hkC zg!{rv#w;^hKdU{pZgNKN*7g;iGu6?JY4yQTH z!(I7ByU+!T?iXDurIQ`*4|txK5-;oFLFyB7?&UdG?Uz9dM|QVS2a=5}Wdg2672EOC zuP{hHRG~hq97#QEOw4~9!WmDXC)(Q-DFUh7gA~Fr+J0I&A{(Muww{5RB9R5{=oopA z0Pk!PahDl}fF3#K+WCHat~6hrRwNunAOG5Jm*bZOVzy-r4_ z@c)R&N6W1=e%r6@+{CS#c6EEzlad~40}t-VpgwU64(m`jbjNV!u%tOhO;?&XAa=); zvV6CvLF${m$8LL_7)!AtZ;4O1e@raR5T=NdG2y_aS8WD-NEw&w;*PD?xF_Rlr>Y&; zj>6-#Or{TgujUW>WzqlA923K+7vxF<*8>^K&K5JbcLyQ$RLsK<_iVEhh%}Bjiw;!N z-b*+;Lxn4#B~P69RthT$KRcU#C|<7pp#(v~n^Ev3mpWYjJ`pwvQ2pw%?5`@A=R|vJ z#UbW84nJ~-gAsbQ!_?A&ci9H) zGmh|3XuTS)>GZF;5tcR)bYtZTL{ZCyfC()#5kK$XP$`#%Hoa}8svi~lFx5kkf;81e zt_DE|B?SXn$Pi!>o6C8cMaH#oVQ*z1^QSHeTkWxXv(Mq6s^a+Mfq2|aQ?2#tPW&=1 zsb-9pz>IK&hsomI)>dY%a=V^s^fYylxiW56z+KUBgRn9SN^r;?Q4(w`8w&4=2(P2> z7ZC%;ZamzraSm7tid1i7;?$qgo!nY@YR3KBE=s9+kDfJk1x1i%QcBH1*BGt&2tL75 z^Ce&EgbNaAEbW=Rju<)1A78)UllLCU1f=)bfoC5Qjai61ep>j3T5UuCDTEOQmOKv0 zV82VpuXRd>)yY}*ube|MOWjaOsWn>DtZV52Gh|5-1x2Ejj;zT}f6yp0a(wG#P zIv2Lec9Fqz#f)UnYQ^tb9Q#Kn@6YV}OF%;q`9t{8^iKJc#HWW++mLQ+o)dG^HC%{@8@4{ zVC@=QnmtZ-QG`wp}wqr(Yd0enSR~Z*^_Xt+!Deg$TS&71=9tv zanFX4RISvI>J)ggp5M2zxfp${Kh!XlN8dUl-rj4so||DhH=o<%DlV=Ia#Db)H{C#u zXZcY;7g~aJ5E*!XlPR1dz`eyAYz5Gbo*>)WIkXY-3Tb=ZX40Vd@e;Q}`_Pr|;CH{S zeEw#u&}3~ch1CB3d|s&})3Z7c@fFoF%C`RA^>kA8nPAvLwDt<2xKzAi`m_8tSNi4( zKd(xqE>ner$4|t6(5)wI;$b_6T|eYIjgYn>NkV7u#bn{{(wlsJ$@-tIJ?4Q_TeVRM z+OkI*$kIC>M1Xgv=x>N6UOT5s(-hRSKXt;rN^En9TvgESbGZF)3IqJt%*wp{>Bd@0 zvTJV!tyCK}-flv+j&sOVf?>-jwDk)!Z9jUlvhBV>7uSh5%q4^MPnz|%9cdQcoIfyD z!fcUkT36x0E{+0S752Ed5c;F5rcpS~T;u4=%#L#Ln_>~B>^Zhsu?16;AY%mHchgi? zZ#n0D1!aAX-@}b%6jhGV!WlW@wtY<09lphq5-QXPiiRdusy$VJ zNukD4$PlY-=M{lUu0yqKxPU}-{VsRKCukZ@b}w~|#W1i(2~!IX^3p0STpCQU#;!Z9 zO>b#*Z*0E(Y<@?@W+dODbTpwOK=$$Rgt=^MK$L=`p}uPJf*010H`z~M{tp`$Ml?s! zVjSPQ6IYbir+dEcAK8fgFH=olHNXS?ux4cR%n5qBIo>sB2r#X)3&)SBixNaya~9Hc zJ3sw@?=E}5m!AqYq`|iw77p(<%cPY=ddzN3b9l96OW>=-MRquDmvybJAL)ys!HV@} zxl+fk#YpKxiTi+6_gAFOY+b%*Vpzftsiva3_a+iN?#x4sA&splFQTXOci>$vE&1>R zybU7KP57CiWc!^S;UmbAtZzNc+mb8}@TV~z6ZcW6e-E-SbhCb8;EzKMH$@F1E?Ikp7IEgYRJ_)SE;jRIFMu(pat$0`24t%+O8ymSSdZ%Ldrb{- zRcpIttf7i7vo4OZoxAy*dV_1IFD2E4TX5gk5alDky7x`fw8V=1|5SQ zU7^gD9Gni7ztQa<44-sNsX$C8l{Nt1k^URUI1M*@o#g*feW@;AsM##LR{kH+I)5Fl z&aacA0}moGq5%B`08=85$Okv%gUvs}tkJ$H!6Pj4ajjS{Drp)J-#8NccsB!RhmeMC zr&0&qv2>Hj2&&|m3R+LS_Y&ON#A_r+40)xtC0Ry^b)#Nk3jQuR)hJ0Dxn|>{MA3~| zFPR3nLN8Qmgv6Iw##kK3rM>@jY+k8CV)D4jY#ttw;$-xJFX_XO zDJu(W8E$$viv-q`xic_LsD+an9%m-%-rkiAg@0PmS%8BuB8i@ca?p&?nu4VuqiKi_ zS5Fd5c64(Y4SYg8`!W`g+<^V-vpvHnBNZ2sQA6wx z2?m$SZ**5Y?ejmYjf6%%8jXaAb;vK@=k2jB9%N@mxI^M|45jzHCnzkJZDlFa*oZ)y z0-MZS6<|CZrA1;LZVfhIw6nj~bz5Att6Sxl?u#bNeJBZd%~mi4<5kSMW*lJWN4P+g zA)CS=2W_2pdhmbYS(FtnB^WM|XO?l`c?<}zAcHz&L{w+dnVQ$MSidL4o_d^tU%p$` zwl<#uxOw*J6<=In#?cnTXj)3cLn<_t!rn<#oL zGJr*qqz(7`=1>gbZNP!ch8l%q>ow(3?OvZSqiU3!u4IX5byz}^tW>y_tV^0ug2e?JUJ5GfaNUF5CgJ0pLO$FJ`h=*^Bl~_Y#~jf+fh7Mg>Bd~{d(#d#jSd*o0o%8eEINdNnt3GCG;BD zVAPd!25*4pY9%iFmsH{??AO^#+@Pv%A?uhLfNCHN@E6fBk8pF}#mHiL@85U1b3bXq z#_+y=h{3CCzW?#Aw5PYoLLj}>)Qd%lUg!d#~yTPJzWt(zw`_TsR9 z0VL)Qnr{@HMo>e2ycEA9ZoHWVE5JY46dL?A8q6zW#T*pTpyOzAYxuk!YqBSdA6# zwr~1wKRtKJ~5tXFTk zni^+L9n;|Mi+07?ufz!Da0=oj9iA@uF+oQymhn4m+0ST`o;22FiJ#? zLf9uITviTNUEBdOG$eK42GyK>gYCMqM)~cC#n@%^u8i3zdiJtX6MU|I^^v;Ks>`V> z_tYwfohR7Cwv}B6(PpA8c9p~l)8PW!O6mdK{u`R%gD^Rw+i7@_0k1Fkk6D$t4sE`s zvSynpaK(-9!tCw8sS}?dZDz3 zr7?kMO@g<9>OcHNsIr{%#iS@HH@wQatTuR?$^P4nG&o!*dYTAmYpzqK#d@^ahfDb7 zO86)GT)90 z&2aaLf3sSYo-v-w0Gvb43{FW~kQrE`e*1jz@9QW%5`<%XxM+~?;aW{@c&Cs-Fzb0GNcSj0_HY_Gp)a_Qh^P;L;%IIQySRy38 z6_Ho`u~K`3g{%-E8REKiU=PtLSJ|=wqonym=s;X3({aGYop{ao&EQ5si!vm$?K!X2 zG*eI@maC%RVv(0*=ph&$Xtw8X=V_Dg{ZlZh@=OzrvWpvyut;mqJFa@9M4CG8-bnk{ z)^T3o(WsDh!>bDk>C=*IL9Xg}C*}y^N-mZAV)zKGZ&`I*9B(eZT8=lyKu-1MTC1_g zV2}F7*?Cs;=B|*T2(j@ca5mcNK{M%WU{%KE@Zl!UkL3{`9eEZO$V$wjVL5N#?C$BQ zh|zAj*mg&^k|6x)-}?8DCe?MO5gom~Dne-1Pu1V}e@aLGz`&SM+%4un%*Wmyh3cRU z|1oZbT|&TcCYdd|8yi0WQ~a-z(*ieQumd&+riXY7OT0y_6!gnkN<(3(_7rH(yWnx) z;#r-^ect_kalUOdrC5A_%(A|bqit_A$Lao+nR-i8WG!&?#G4i(q101`+9%cpOe|JS zs_w83?O#~5qyULA5Gj!nhuX$ygNxG1gU1CG0hbZ1`|D|Yn2X_Ana=adSQ+sbqntlk zv8Y2QEfmo?eda?k>oEf0EbWJxrg0Qx(ph7JhYNo#Jt6)NpTVaDH=tLC+~|LBXje}U z_d?G`mtoGMilf9ex=6u8B~#A?&#b&~F@;-^OnS@jd{^8leZJ>b>F>#iAk) ztyYo@E6;tB-O9JRWyI(P>2J5xN#?^ZuAwuf09Sfz%YQBx8Aw)uQ#Sw*`zzY%7`rsF z%o2Y5z4bcBZ=xYEN=v1rghu5nj}EjNr@pOVYoU|_FHHT)JdeU?gIf5>82R_La(uWH z4#V0b(@CcPhvsW23IM-(u61#auAJG5-H!q_XZeX3~l2C<=oF#7P=t*ck z-ZS;RrST#&^#(8bfm(mjqs9(P=yz@*wYSsHwO``@0g8LFl;9RQdB}K(S!yh8*VNfe zjem%@iB6pY0PwrqI{;eCXd$!(g(Ex}lk?`wIW!3NevEP93bR^pa0BQhGR-h1T(dO( zL)}rsg6XP|e=;n;XZ-fuPy41!6dqOqAys+WDT2a>G@o&5hqokMc~4Og(%7V8;K7}+ zZD_5Mhj+|>RTuI~U2!@$X9@HxCx7N$|Di3)EpV6C?`I;sXAt6F;61!C9gLei|G03; zcJ%S3u>weQfd5t9w}RZDo~MT9KY7Pn(zvPqrrUc?p^``|RpXh+j;c-tRwMG4i?SEJ z%kHIlw~6)}sVk72{!N%g#3#jnew#jhMS>KGHq`ux{5~@%T0xGQoEXm)OlXa36`72N zQ%8MF>ptLQL0S*5lq?b14u_u6>7=H=#!{T`Y3w@Hwcs!3>xBK!-Ix3Ub%~LCx|5vY z6ETL0j-|O@CZ6DG|1G7b@1T%R=I2QUPY~s!`ws=+ZV9H+M>b1cOrfrRohWX)H(g+F zl@0{1JCQ^eG|_7{Uo)&D*3=0 zac+ov;(=|NB7b!*U59Ts{C*9ms?L-Wm2h;%xFJP*d9mHhvU1pD_elLVQFVqqIYa(QnG~NTwf7#&TI=qf+M3*}b#tWATS^g=60=F^7-=o-X(f+dWYWScp3yEe2-|D+wHoCe4&9`wR09N^+dyLd~0`X0H z{y2-IF&Cw8%OkC*$Ju>S!TiPf+VCesp_<25h%qOhmGela_vY&>p7abU@q3F~oI-fL zNVwDf^;0K|F^_5ezw61(P9T`s-Dkd;3hF%c&vFTs{J!(kV)R^uwiB>wi|16)QAun< z5A0;#2$%(o3+=autk!6)AFP4jGRZJjH~UEhdxjnGWh9mS6G|}88W;dbIW#W|{l6Kk z41zY#0l(;>^1`e=utYMT1H|dAwnzi~8+-tu{s(>^5N#4=6ojIB`yY~-90~fc` z=4c~Q&Z2`73bm{Xyx-mFQgVy`3hdcub@t)e@XgB5>9YU(mMYLWKD!uvuq1N7D`+EvCs$7NSwK(n+{{YyGb z`=GstB>|&6_OmEy8U1hq=e}Nwn93>Zwu3nJ|c3>~z2nu0Geaikw)21CR5 zsXJA@beVZtVCHfQ(jec2H!uu#@vipOr8?SMWQa^0=SXq&k9 zuSAkO3{_5H9HXo5MUa_IKV`VsT>Xk@?~BDORJZ6#GI<^l(`~dd3sCpPb47xu7t6h_ zq)QG?$X$prrT4+yf06AD#wM=upN)bS@^Mj7pbS;&h-F#E_DM{+(qh`ZVsY$igt^a1 zjLX49CNaQ&d=g`^Z)t4!*HW4q#(K$Z)~!ghoNr+NLQvZkr6%lMsFY)YiE(#v8ZM@L z)r=N%QxV}Ls>$>#b3C=yzzgOzu@an9wK9F6P7oJJTiGzwkHGn>G-HA`~Y= zHK4FdfUw=gn%>EeZFBlvPSIe40NsFZA?C#6gvEl!@g7spXuIt(yqg zNX_3iB!*Eo9wJux+|F53pxf@9Kb*b!TH%)KU#Hj)F6X*oF!2Zohk2fW8U;dC3NzRi zz4tVlVt@_p4#Fr)efQMA?VjI&0F(Zk0m=&IUD1EI#}!zY|N7Y%mJzi(0^Y^Z>)l8K z2zdUB8^fWnXYb1Wt74E#j-a+hVA+{9O*@o8s0#doumui0JOoE2Kgf!%pk86UqNpIpokp zEtsH}5)@iYfsioNOKO|q3Swu^K>6#YAVFL(Dn?5PGTiTRW4?qTv6R_SBWmTg#Pp%B zgxUoRMq!$*0|}r+rzHov z1w4ggGdn{xnPu?Bingmjai6u*qT|D3O*k_6SiOaRp5;_A(Gp$T!ti?^0GH!Ws`C+$ zFE70r7ecoqq+35Hl2_3K#-n|h{s9W+Yb@~+uFBT%GAh=%dpB!(s8BT&80u@Z%T_aH zC_^34Oa+);k&Tr@Kph%pY@5Ja4{^bI;)>6a787nZ^#?o<5j-BQM`SLjOqCu(K6W49 z$$(+YPy3lEosO4y{J?t;qSZpkt)TiE%^0iLEjSL%KD2H_u-ZwIxB1W--W4=JixQ3v zY!fc{A%YwpPm787?#T(?rL3(%%#R9pz)pG$$pX839%sa7HT;QX*w^IK+@))obx35H z%h*iOet@@P&^H6(d9l6$i2E5G0uPgX1T^Au4Dup^XLDmqtjrM!UPZ0ZVr|px$^`smv77*-;#tVgkQ9EMHXaSvq=3qkK0?Z!<+k_4LN-r1ZX$ zvk#V|I&5G|+k-Xh3A9<)PvbHjFyyQ}uHUGrS44R;Qa+3@-MV%>!*7U;%&as#xc3qJ z#<+O|7)wNqo>CgNO@5Z>N1B0)kEj}%qMS-b@uzVe+_JZ#bclocMo>6!9}e>r_8fak@M8deEJer=v8?Ev+dd93?7_yZFilZH_(0@{!{!&J$Zq zXGO037n~UwgjCtG*gdaDcew^XAdeIr+mB)qsazC9K~5Qs4EXzihf(M+UPU``enM|p zjtLJ|WxHqqii6oOy_YoH_$v)>ZQkGSnSQ|l?@ax~zMW`(!ga3)|1>1pD0ABbp?&m0 z6-TsHpLlDIuU|G(Zw&J{*VQ{a12{t-S~kB%r7daxn#ZpBG>%=3IZ0PS^XH;&J7|t{ z(aEy4Gn>-E!gSn(_Gp%Wnb}v?`}Wz}X)i#rQY>1{+wLe?s2K%!`z!*t-v39=0(g{5 z-@3(GK+iFA%jX^uM#|5k;6qr$#;U@d$u2#(F=>^>sT-d>_|ghI_P07x50-`@k9K%X zDpu{$_PxHI)^>IhGLF*xg1X!gX+6#^iB@AaEw!aejj6;NXLbv*PqVa2w zXOOjK{Sz|j=}2Q1=+)j<%Jo_ULf!9ZYN|pl*Arm+>t4QZ(4wj{#i{XKi1$Y{ocdDe zRwdn=-h*QV^1sXzqHiS5h84e=#2)TO#J7t`;9ZO;+mt9SvYS#e0$K+=x-M;R zX3A-Q5HTn5$EH?_VWSna$wXXL^R`-Sz>AXF{>)Mcc_I3B`<7gahQ(~V%G>I6eeNSa zhQrmG*8H{a5AyD0=?NwCf>EJYNkJ~{ocx!fNytUzy~TG7U5WCZm1{T-1+DNyJJOm~ zI?gIx>wGB=)IR^m3(Dqb?85*(*&Ti%j#KCuK3RLc0Ix=h3o zq;$xueiw!D%;MHoQ`Xv7*I#oL{(2{C%a_V<90`pdCN>47zM8$sZ~P|}KZpF4a;ZzX z6qCvLJ{h@IkK8>4JeCe)fYI#Q&@y6_Su=SS8w6Wm^yPm12*_Dghca|t5Z%?kYlyOI zSikJz9o=heP4iJ+*O%kLw0`c|6Va$qpbHMn9salwR#Q|NAc70^n;?S+pw9f-o!4cS zpiTpZYgf_o6IlN~pR%!m!zr<{CcS;moXC^9hW=<-KV2E9_J3u zXJmN$O64Y6{v|PtHyE`=R8;u)Fq>qw@hY$K?@Y2(QMYsn@^$==Exk3awuGA8apeX$ zU@B8%s)>77e<<|XETg(b-+kytsY$Y8bF^cHceyuS*bX4w|J(QS?^MY8?uRHoq>Cbr z+n?@BO_BzkHDo6Qq850pY>$U-fv-v1cV5-?7bv@=L22T>7Ce(MXw#Cv<<(7$M3myl z9@WH0i@P}tdB`+>uUs_+%avp?o&VsB9Hz1}`1+q`IZf*6a@_j^pYwyu~t-X-I zSG>&8I?vqP4B-e_UnRRxku*lPW}^A)4wYOhfSN2?CO1p09o0bH(ZwT8KgG%vci*HbMC zg`CEH->W;xT`C6Rwb)SU+gPX92GT-*v7T(b_JO)4Xt!go)ta{=^$Gd{QvTsT@TYoD ztJeCd-<#mm+CaluG@)kdhine)b*XYC6x!g&O2fTuQ$D9D|MjoHf?&H^EaRQZ z$Hxc6yrV=Hg+9lk)==}dLhy_HXbOjV?V<~842D?OF!n|cCk4R>RaENVWK45z^TB@9 zSEmAC0oUop$SF+)S%+Md|IkHunPx!0syZ3^4A<=s^;G6M0EpHGr~#TSeyL-Yes%TP z(76X*WA7;(t=;JB@yflW9C7>UFPyS^ioLNje=(5Qtm(Y7m~lacT1scA1HKlW>p*>G zf!Dmxd%9SUbvJwqO0$)kUiED5JAb#n3hhfF>gA^%fN@qo#&Fj+qU@+vKXd_=`5-8F zPJ-n|9xzw{>0DKOGJXT%8r(o`9^(N!&UYqDirZho3JTiWR&bg;OW*qSguBnmSKQh# zy_WRsUGV1E89Vv{g$JtxfI__ru=nr;E`tRePK zKu{J=r>sa!$-@(r)=D#RyDRJ?J=MxY=|Nqehl`$AKWy7OKy1dmC;f^=7CdrzE4TJrttP zgYK~#R9?Pu&oApgx7wA-qLN%&G7BxY)<%M2GCTa;);|N^40@#zV7;^lbC)dZJb(P|c9%#kX9EzBa{)aOhBv^>mqI?YAoPkHWCyH>lr__a)Iy!os* zJKS~MIB9YMdKo32feeo{CgHWc*p~(xm_?&BO=<&p7K656O>H+hfu{;M<~Go}kOxS( zoG;GB#T*>aqS^0=Y!pkIIf!#F6(`y*GAp{2CF6RX2fe zvsGD{`|^R7ElmqLo`t4!jA7YYMqK%s5LT_mp7IM}rgJYQ*Kw~lU%h;*Tu*)@>ai_g zrw75}QN^ZV!%kj11`Fa?8GI7T@_aikQe_$+>l+VJ`EU;ZL^|O$wmr2h>8iSrl5RHz zC$>wux0kfRaNCh|*a-n_GELktT=uXnFo3AyL&pYw2Xp@ReW@^%x9=kWGzGTSC=(T$ z9VrtzRk#rb@?Q~&QE>vOs9i55QQWI7YB=j3KZQ79ZV`^sA_ME7N-EWQo@MJ?%S9U@Bu%En9-$dqlb5H4x8D304E2O$GV#q?wjH@g{(ef5= zukRv$LywS)Y>+_`SZwan7^R0@oDgbLKhf(49@CxgPTr9469yI~{kt!XxneStbaJmc z>L*c z(Qv*y8h^9@Tq+cGBy$B$o0j_^bk@B>FW@iTob1#lzjm;>~tJJqs6`mgj7ITL*1tfCjz{i zoY}Im!rRs%rV{Ky=LWj#jME?gAWu`D+_ByQuu#9AgY6VZl2Qq9khv8y&K3=D^yDPk zast)pbrC{RYG&U8l5)|w#zqc7;3w1Jm$?0deS%?S@7?v?5vz9*IjqM)zIU2v`2pWX zF2s3OcNC3jfsp+kWP`b>Fp}QB{0i7Yi{Dmy12&7R5#vk;yy=8ej||7KbCA&lkz-u3 zWd^PK$XdkTf3&HPzTO?d_ccaw^gSFDD{Ncv4`IlpMmiWUFOB5<6Q0HO84(zz{>eS}dMqNfu&?AeB{KB>_m~l^YRctV}mJ z$KE0WLcWAe^=XPoT*I78XK%&DpE&K>-nL~_rhLteHb5p+wIriNknm#UyaqX?mD}?W zO7>Sd$y&od%*@}^;tMJ(zgt(6qJroHH)D}oQko}7q~rmD3-q+RJdQ z)LUfx_x+;Hu_xB6uRTXhbcMZ2BZ0;HT(TH53DRut>0I!_DtBhy8aB$;bDtQU77`fa zTa4s{=YD<)L$w>_Ax6cJP)UU0Oib|xaWpf z@ml6DoSE!qxX5vh(IcJ+Hf!j7Em%F}Rhf2^@U1H^0sWuiKWoGAB(gm+xp!M^uu$qc zf{)y5{3Ui ze&XRodAs6$5kA5CKNOUQk@|wO*bQ2HMww6TGb|Y)vl}@mM}Q2ZF`M5Hcd8W5P$vTI ze>BL*YMZead5F!M@VGbn1*eCmT$76*hDvNCtTj|n(u2Aq5Ycol*T&)`BgE<-kLLOa zN@*BAmdwJalJ^yj(S!oM&G&#vr#0oeI7Y$WM;go?F0LIq)XH6RHOA#pdy`QFebw;V zJV~isnM^9LMoA}JnJ?_drUxtJ#%a=Ac`fn)ghbt6B_}@-;<{w!IHK~nq0>s ze%GUFn%vnj;4J3Cgnk)x-_$*p;IDs*V6V0r$JFe(n-hH}?=(U}bIuhwRp4~4AeELv zWsBqaX8qQ8aPf;WZze$0s$r0^ncbbasUYpfx|wFYT-3NV{q(76H-wD(~5jv4$pOjp#T?^(G|}h+xqC0<*iuuC=KGmrd zpQsUu+E(3qJqGWkwB1|3sbq2l)MvYH%HFM%T7_xBu*&L3t4fEJ+)0{SDff*m4d_Ym ztx5*vBXF{2-kmD$A%^L)o^o?q%UTPl|3S^{z&|qNZf^ZqafR5o-~PJ9Uw?GD+i;JNLE*mo#vTL#jdDq!CA!BU5d{1zcrnvXe^18To96PsJT4TMS zwsdFz#qf)Fc>u?BQ{RiIUqrT(j{9d&>JJw*FFm0=Rz;*vx@$C3ZOFwXn>kjZg~b3~ zDC630zKc^{PntBPYEyx%M*_tgePVK*-qPjullfo;R$6eMt)W^%oC$3rBr-`?Tv?yl|Z#=yBE5g2fo~Ms@&i3`QD_Py%2FI#2 zett^<-o%Y){`SYFw`~YV8S(wGxfk15$E&j7@2d}I9er0Dn>j`A{v`Rd&Z?JITSXtl zv@XDnhow!u{fnTe`Lz27&i1CRrH}pFF1O8(iOm}EW+%!E)7qx(vW-O9n zkbWQgwDkMZEhtU*NwM=Jw6m01U3cFDr&xO&Qq3nfNd)bhZ*1STzr7x}4pw6ZSli~4 zt$i=DTz`4IDT;=R5PS7{xd0w-%|A?O%@Eod^97up;~Tw|2%EGxC>`jzdA)tHiY%wN zPs2xJ=>QYhpzRwYP0P4^dO*1dGu`8_Jngmf)`?0d)D0&$T-_?w$;sWndK?e?iqxug zt)T23B#Ghm#bH(Ta{W!To-KKq?M?qRjX{vDS_fy8Z`kKu{(G>sdQ(PBzbxEfw?mg^xklA2!>})_C z-t_(xYA-!w4Yy!6)qN_;Nf9BlU$&A<+Ai#RV|K9heqJ^|Fz| zS-P#fRLD22z>nQ7;o<}ogO6waq3lM&+XR{$j4IYdoFFK`_74P2^xM+}v>9B#>Zc_n zLaMuu_stl@p5Mzg&zmH75Thn2{TTA9Pt_u{BxjWDyWRRO<5htZ7p`8n#tt1ZHbj^R z7QVBRCCWS2ICxfX1i#ZPj$h#W(%6_Kx#K?n?sn5EoZf5ouI+PUEuG(pWof1E8AfIy zAAX3m#)F+?VxX}G%c|QV!Xnuj`<>2eK`)8Ay?>$`dRm$QDSNMcsFi@`sh#FUEOQ*ZY@=^~q z*E0GueG&-VX1Tw zW!c~bUd~KE3o0~tJ3m22(%@r||3;Or{uDqjuW$Eu1dcvza~r1g;|4Dc9P!#Yr?dvp z0pUQM`lJ{}!!XWWC3hJC5YZe_^TsJtMFpQGqsT(D9yE6G<|}EOylmW9|D$94xC+~L z{DrQR_N6Dlwk>cjdM(D+{ z`dlckQYGUktCkwaHFLlXlT5i=_5EzULVvE$JJPy0^B5oB#dvU?n$(`cR>cL~dPpzi zT-M(fPo2vmQ z_o}14iJeves!|QHvweloKh18XP*Q;81G+)eooAZ*-~EXg>ix{bj>pPcw)V%O)a*|i zK-l=N^F-lD94ucEg5{DnMjaNk9i)L*&aJf(GVK$40wc>?^m7my&6}Fo(Famr4qYmAkPWijUY8_p>h~=9gH|r zh^KlOLU|z-y94%@dQt>hC5Ls^&5LuGH9dAV2I>M7eIh_ckWzt5<0xCK*V_f_OuwPU zbUj25t<>rIO9tGwo@<|D2Mj94nuBTG4AB8s)qn7!P76TG-b3#j05G2V?~o&0e#34% z?=9uo?6V`Tc@z8HeXS&r0oG`s^S_L%sFv>#ovq!GAlJk{v14zawf#(JuFsocGN(noP>&`W@XhRi@ADd)4v|!Lt*u!#o&x;|!4n!7xL4CKzCD)0cJ%Yc zOg36${4KS2nuBUamsjykL)%w2nAvzuSP@p~V5qouOk=A2j9!h%6^249KcHY@AQF*i z+9|3@S&pAc#;tNG4!R#^m|+k$HvDRFuOCy#635;+eoBf@A6@tadNmNry{%KlRz0J% z@Z~Eag%&Gyjs>jBfsP?aTNvX87&nJuLe{BoxCteyXhMIuhB#G|A7uXB;92OSdtK13 zWRYE1kgAun029V=o>!-phgs=MjHY2ysJj)=<9N4}ZD#wZkKD8RM=8Ku)ZB76kMCfy z#BS6m%j~aQaGu8jTilP|X(vx?7rx$Z#@UUWIF~wBPr(Tejje6(fUXYKBEQK^geaGq zq#2&)!~oq%RZ086j3`%vnG>F8n#!VD!6GZgO`0{t4HWd1(S$uSZKNX%k`_YM4jEJG z4dU-weK9eu91}{UYNVQ6$2c*mJ5aNnr&Ss2+BeDs>FVT&b8#vORKv5fz7>KtCf5>JFn^7lqI{C<@0+dqYR_VJ$ z^^(ChBM5BkK(s_5&oD5Q`}1f$Jze zDZYc0dN>Kbx96Q7lcA&@E5c~4saR`^)aQR!&QvIRI4lwJ2WekZn3RGUkig~`B#j*C z6&87%vU6~$$~Cr^Lp z(xzTZ#azoOY?d>ih}j%h_egyypL6j=pb{5@3m^%3=rPV_TYRn%tUfDOwhDbYVKXWg{OSMe=|B2$JV3GpDND}o+83Tx_SV2S` zZlsv&^6M->RiN-VmfXJDoz`Td6bv+vCA{g=5U}`>U<)4IHdEaZ^Z{CjdUugL`hT7c zRV31>smV*nLFzhiH!?=#%zkIpRCsHUv{1fg)lu)!=x&XfO72k-tWbs)VvSguXJG6v z&Ws5izR3s~ybxq))(me8A>f)vb-qQR#1bC*@^&j>WoSk7d><_uneX*8grCsPD(JF^ zwYMdb^Iv5W+JP#wSWr#3!-55r{vP*p+ew#kl8_!Lf^|qPs zh;8Y~;^G{qVQY?vfh)2`OlN6Cvul}U(nDxE0N*1aht4qv3zvgar9%1D!=4o&Mi7p% z?C4lDtq0M0`ZgLuTHU@G1B0%z2+4;{`(ST{DD7w@A8~;YJvD|}I z^yOFe#PfPkIp73xS}Q(}MxG%wyj1n)8ewMM!%N6sP`Lzw`K?Yq(QfsT;ktXEBwu!CjiTwBxk^so0c$UuJZLqzwz7d++H<74J0{Wg%f-F*5 zI;&X?^-Y&n!LV@S4QRAL~cK6#XRYDS`Kb39T*yPAr!~1ve@yW5L&RHhU zdWLEWHO9|MxF8fF78RaqB-6k+tOkpAVd+dcs4te|16smYB)bCSy{N4oeloxP`jOVa zP%weI{PZn}9jL9+5zqcgeNmk>Ys}xf_zSd6e=O*!wyjyv_KBW(fB)>1#BNAVRj560 zb_+4RrW|JWd7UNTpt5>zp{~*@wyb{H;JPY))R^UJdFF@AKc=JxmAGa{<0)gIi-6Q= zc9!4BzYaEs?$`Y2uf~%ub>$8cqJ8TKCP0IcvLf*M<2Fdw)70E5qAENm)o^B8SFE#Q zqq1+VmK(taX=YY`P6P0zk4N;Fr(8{{oj&t+60@{G^yyONI@OG=&Mvs?`83G;c~3U- z;{{A);^xLIV%3ZD!pkGH{A9`0aBvh#Vx5+=$Icijt*NO9rl;**6M&9xnOA>YgAj!K zl{3L0L5>q~rZo{-{Xj#clx)NfHgczW?%6hHaM{42C)J)xlUe|Qsa9kMOp1;I5VXwe z44H!6u!SqfWS-+SWB%h>b|M|NZj4nY&s=}EDsQc9siwxLyhs@nLy;6T{%V`cw}xe3 zo{gpIv2FKRW``USX`rbF&tQKIX>mu5eo*b@@iX>kk%hbZllEABWB-#vy-~R5Hr|Vr zOO7E^>3)rP+aME#BJX1(8gs

77#!3dnk=adWRqa+H|U!pXng%*%5G4DO-R0$zZr!iBeE^Iz*n zL~pybFyqn3?x7dtXMpzm1$qw6*|Z4v>9S<-Ya*qk5ZhyzzfS0$6#S+O9$3j?9B2T+ zSK1u6IXJGbWmzIhiFc^}ouyYt%>JH~Kw5JArU%AWBbXXv_`wU!bpBR&eRWLoSCLYR z=X36Iw;H)w1#o6R48n=xCm|6RLW~!M_1EjSnsh&bwW5Vn*EL<6#nC7~lOJ_=v$&rR zz7)_5<8GSrvU&Z!x0K1n55+}lwiM07PuAizw-?3JtJWOkiCysFXwE>b~9f7mF^c(<;T z-nCNiO7}%1^y;`>2maB7PAtAFE2Rj%1&V-v_4<#2>z_4vBmn#JZNRSjSLT&JT!DtROCuLtMnur?8x<(;MG=VRM#`m}Jn^`fgqI@kmbuB2cJ+|#6z zOdVfG37Num@tvo<3tl8blQ-JxK{*Gx-PJy`Hwi+jh&Vgu`@;Z`Fq~jt#K6EuWhPOF z{Rm&cAYY~@?N-K&vGiSC)m<*vrXGAF+!SdrT6=R?&$>NQeS1deqJcXwwFBe zk30)}FeVQc(-exZzpVYtxGsp15Ge35x^fWG!>jA+f z;lnGd+r>XVCw3qTn8AGA-JRHWRj}Q$+EvBlxws6x`r*NS76^oxI_Y6O;pNr9wCAR& z1|p8beI!Gmt-0FN70>Xl^rlP#q2`S<>G;ja?Tmaf%NaK(Jj#!oPKsidy#~|}Uh$Nq zA}+0qoyw6B&fHEVv2L?CtkA=sGPP3;I3wxSdOMIMzL$A(ao2twZDxU63cF?WB4t%_ z=E=}*OKlaNG???!@IJi@UpUHUa5Kf)g-9qrI&F{ZB*~>FJq1zQ^M0lz1b|IgxH&2g zpGRb7*x(@XI86a*RtW)~s_XgG^#t2-LNcE&$T=el56@^s=p5fFnhLp2-c5wII3c~A ziYSDYzKzc(Zu^VEaeL0#!8(~-R6I(kc%I?Oo9W6BB&j5RV*&;N=s=6N?X);yqo!>B z@o=agyVEivj!9*<(%@h}&N2Msr_fbrA076V-VNlmCy?y|PcUhhI zMCUl|u#eh!QM6o&D59(p!)Z^Il+;}7!gR9E=wrj5xd*?0ytD%)8rF2IY4dl# zm@2X;3GJ~zP#$Pk`LJgWm-^zoi|RCHTu!4RuTO-PKOzAw3?~pJT!|*}k2(>H9qY}T zBpZZ<@*blF`7C4o3{g51o)pG`@|r>B+Ky6tm;(P2PKn=P_B%SmnOPaZl@m1oB|L)4 zh0K*G$w9O1Yg1y-kZhWDlo8+jcQ44pz^jMr>tCL{_)#{Knjyb8F(NAc(CPIeiPZFO z*M8Y`t#&%_pgJb@{JBrRidjD)p%o2)^g}kbLWhoNh1~2f(Y%vh^XMivK)Y&UFLX_l zjovvQP?Q@|y=j>1iLe;U4wXhsa;e&gVq_A0wWvtzFWJxk@M;{;m2conUu={oZxQDS z!GLjCVHKLO{$k1J%(Lr9um5L$&v;Ei9CT}uu_{mcIck>fhgue(3L@1w^iy_bp2avC z(X|?8uz)&8O3IROT(b*yaMnoHFBy3-SMbHP`^jLLZZi;WA;Ka7^LlG$QtL@3{!`=0 zOqs>S0(vtdD#q$O~rtAe-9uRQ61D4dmTnv>tpB5zY|Y1`GF zlx?s&O46%s{K35=Xjc0-ZLufRhT*ME+pE2fX@2UH7&lB2zIgsr<^fzsgo%kT>2B_7 z4l6>u*4SZZSrwea*5~j@kz65TVgfE(;dp@7h##8! z!~M&zyHNJj#t=KTAw;6NebFFbLWDcJleuHBv)7@|C<9SEbF-JlqM2ZA3nhp!6k)r_ ztjBQ;S0VY%bfqv#;|EHK0Jn@Kyhjy-uyK=yv&L(GpcA?Qx@(7aI;BxmB5M!~ZSR%) z)`VSx#!3dUz4jS<^NoUE=*7GK8foS(VqHaL3(t7#4#|MLugp7~-PRbq(w}+$;d-YR zSHZEGM^i1wWHTU(d@en<8bL?LggRKT`D`d*@4nD5p-LdjZ}p^rq0~>{%|Of0-7_)o z0nxEs0YHPs;#j|e^8e)-&oFZ(ui{ZPS_Ms@E_OjyS$8P~`I{1ps&>77l(ZKii6b-0pp=6}J&#Snpx^cB|=7a+t~ zrJ#3PxXjTK{1Q0jpWKko>+8EDcmfLA!Fy&N3ag#>)sphxB#{2obF8wj_B%l=}z=ru0GdPg{+cX5K}352&?@nRC9@cJ_lU`zo%gU)|n7HlWRw*xG>@?1)+1mW0G zfDZ`20uijgP%&u*4Sx&9c?g0m?CLz21{{m8Fk7%D5DD%@bgZ6_g^62j9OpL^>+80_ zZUD0eT%y^&)xBwgm?t!=XAopLi>?s+LV%?Bha=`RNR8roTXatNRR!R4dkuhQfoFJa zul*PJG4hGAgvad9@<&F}D|_hlZSL{uKdk^sGhke1coQjYF5Bd%@bCIFWNd`rpWXf~ z-TpdWt{pKt=GT$96T(czB$#2H?{wzWBrjE)fbOz;FwN^r)>X%ZHmAd@o4@V35L_N< z0>!Fxud%N;Z%gn7KU@ne5iX(mcZwsYQ4PKJeYS&C7|E@4qy&v=9E?#l1ipy}=|{^8 zyzuIkCl#e7)UvmwT3yUU0JZKragQx_TR=urz4wO^5EybCiThGAGXi z)Z9C$8*Wf9nq%KBu$jX^IUKV?V)IdKN7BJEu9X_|M-m@L1Y=M7O2#2d5vNx{16-}| z*%n4Q7zeEf3xY*@aa#;n0w1IB0?bGL2sFfCYJ=3qG>-{J^4hJSEQ&fUb#)`0s&WYZ zt5Nf@l_X<(qa5D}+AmZWJYB%+ZZ&H#kVz9v3zNRJdIb@f{@>F4S}ph_YSOXXRb+KN z0)`NeF%}J2=**mqXIM!hO3q z#;of(U!7#_c+n29_rD`b0WR!sV1bH>1SECD5ZY*hjI{q7xI;#Lf?CPX4$5j3seq-# zoZepY+14td{djS1epd+)((eG!mg6w!9cG>$o2wp&J5T1Cr4_QI7MgMGh9(UfZV#Y7 z8fP%sWJFlu9k0{0HQoq8;*{IZ#3r}Mfd7{k0Rc*a3B|O$+Gc1%4mC}M4>p^7CCP7T ze5s}!)u2SvmWa>UBO6A}LgL`ai%>K2TMe-Ptnu9jH3T}@+U4i8 z9c}Wx=uf;aR_*H389AECP9RoRSx1E@N%!c}8WXI7PJYyGLt=Y+uRkM2U%y2+5gGPu z(FA@)pTLj&F;MeM#QF=y3@g}vo@N`PNSz$DSjzk=yVmJghjZ~-l`>a)gpU#Kdfy~h z<4W#@gX}kXXo8D0Cgp$P z6r%=VSy6FGfBmwwHO&YRZb>>%+{B0@h*yuLKheu7)b_XR6y*+X1vX|F7kV6JBN`jBi2Ic9CBiHo1)7MHc zH688|*?cdz?jn+i@Y|*aXHyP5O=;^l~ou|dJA*kk*?WUc-!7eZ0pj}6eyM5a##$rj^UzldfFx= zp7~ZrCp-Fus{GKT1`moeh;T7YmBNeSrS*~cDW~e;+fLuyDBqac8PtY&x~E_J-tSfD z){&zRA7_cM-|iME9})f6VQ@no@cSt`0^bgKe*#jz5SF`B1&pHxVCruJdauuHaPV_j zS6U+9YlU<9k#=*SCJ1GU$aV!k9%crCZxy;h*U`+aFHInQy(-Pzu8-}^m!|cL5zQ#> zR+ENTVBb~Lt!+FmpxkA~eM@%^UCF#9pifcb#x*2l6!>I!NiYQRA-b7(6ogPj6pslA zr?tlAVNRYNk~5fdmfeJc<_7%SB2Vwg#++aX3l=wQ8c=322nC=%{CV)qeG zu#00gqF+Axo}WhpE#7+0o^KR79ffM_r+-?I=%H(lVFg{7#xvA`WJC#zr8nn~PyLHj zg{0wbYG0E@Et-$!=u0cj{_H(wdGuhE2pm)iSjZ=a8Oeu_F1$4NWb@!r>MiTHcDBTz z;OW6Lp^b6;Xy)(g@VxgT4w7-~ozrJrg*%XsaBQ5=k<6vVUoPzeSREv7OmPWj$`XWW zIO-+PC1Mn->kcCj(3a4Kn&;$KQpAjviIF>5)yg+zj`_uss3^GH87PCpdu@_0`5;XH zOoFltXA%)pnd=BYk?h((U&?JFC3L@r5UE%x71$iQEjL?mgeXyrZ3au70KtmeCB*;aOxif*2@;>54;1N?1>hQUoStr%@t>ja5< zPaFI+lys?=o{5+G2iu^Kv$Vcdn}iSQn)8Y>1>nV^D&M`k!Mo^i8b@f{%NZW z`|vRh=zYbB5#i&kPX8~uj_mn!`8+lwrd!tkC450g^5a)wmn5b9OZ;kg)l;8}@@7m7 zX`Iq`&C8Qp&D_8c$Yh)B-z3h9fdJ)==OZlFI!+eMArx zI@IHT6jQs;ud7e>AI$EivY`GlP38C5V%{BvsHSi;w$`qo}j`Fdqp3Bnmz^m(H;H&D6>rZa2&H%^MFlie2I zjP!2AlRaqX=}ntJiA{C8CCMo5pE>$QcrH6BHQYp>`Qe!W>KL>X!gpr|Ch?DzND z;&y1Lv;m>^*|+te4NXDG)>vvO_-9bY`?AEtA5^uO@yB3*RYa`+ zhLtUd+dGf@uraP{Hgw$HB3Hto4PN-*qP&P+ttvYJFMpiZ3DoqVk^+Q%0&9K|s*wZT z-7#`yl9k$tS6cN>z`RdJnG(0rIf*YKk8`oUIl-z0?V9NBeMf!2DyEze8;riO@zO_;v2W2fpD-pW9|>`1-Z`Kb+q@vgXufS79%4?w?Q-22P+ z$L+)t2zT8VLzyO949PWUDT*pC9P#TRHfm$^^u1jjpC@Z>VBIpL%>;jo`tl z03goUwDrUe8_AzG#fnS(v^cei48V)GSX?4QY(5{7v4-J@@enAF%sE)K3jE!V&Y{hS zZ0jJmMdUPt-GyX>yrq>HeI2~B%qlqUXII!i`qpz;^23{S$t)+N5>PtR*Q-xdYsdHc zcM4*Tsd8Uvt#QgTXi5BJBfy3_zRQntQE@UouwrtcgC@PRp-;s8VzgHXM(*2JIXd1> zk~-KvPj(Qr;S#UW1O=dMH*%n4 zCJgPcZ@_H3D5oHqa&;kyRmzkpgY*JFe0ZGl^;RW|8 zNXT?RVl%_Btu#@Um)y-7h4woiABVoW`eVZq?ThEE`Y zkAlsSs*Oiye(DH`y~4X>M4P|&OBMYPVnoOhMx1NL3&bNR(fdK1DmwLM{7!gV5*6NR z+)RXAEr%X>?AWm(q4?V?j5VS&uX{&iNm%5A!;e(C;`K9j&BUU_N(00lgYH}|=Uas$ z{G3v|@M%}ytf_U@s=g;FT6qn8C_^_{WIyUe6e*MR2fv5SCRvNs-j|O{*_`#@hKe@o zR3d@s_$4gLu~^y1-?5Xp8IKqBImMO6vPng)rA<1lg#31!Z_L-CpCH5?vD^#UXo7kZ z(*}P2Kbqb-Iwr$(CZQI5~GchK%&5kp%J@Lf0lV9J@`+fiPI;&Ur>UGZP z>pHu3)vls4Ld*IyWegmLCB5q4`9)IM;U|}H2Y3Cwndc7QB$DguyYAvqlMKloW4Fy1 z;d>C|%~MnF;?_V{p(Po8bPGc>=hopH>P?$k>wwfw(bZ5fO6Zgm%AU-+t0OWO(vxZf zr0+F2!?@9uQ&UQV1TH1#++%=tI+2J|DtWpPk{q%S(V;J`)));1BmrheymJ!j5F!r2 z40&0(;TUU>&7J|4747?b9-jSj#!Dx^JFBAFuHuF0K5m8=A6IaZkr1W@KC^8mPC5|; z*e(#Pg}o3b86wHDDI}rWZl|~iqI0J&{t%w+R<3I)KrWpd5Uxb5o2uus@Gs3$nV}YZ zzedk~-(}Q)-!;~x-TF|UD5<6D0@H0|;gTYu^^-Gy>HS*o+B|G0VFlU=*e>b(EFNep zYHWR-c1c%HSbG`izIj;I3bkl#vzZv}Hi+3ZLESbDP5ts~Yc^6dT(dZc?i~`dU{oHe zOI6cI{P#;tT`_ggoRlrG0Adep_#%x=JI*W?J!Dy8p5d0dVvxLt)<#`$kxgJwbo`$i zdqD|8{h*HqJ7H_&PG!Le=9jfGFtR%%c!_U^&gEQ>MK4Dwb68^V2N_ngCMf5Ulq@x! zhPvf~d^o4(0y$hSwP2A6?C#cEgUGQvql;3FI^4*}AJTfw*KOpTfVT|gXbT0Lpmpl7jYhOev7*8(L zx3`3*EJ1vx9hr66Zbls>en5Zb62bs3N3<#XdP7WLC_UfwzMntO*54X!`@K(H4F<*X z`b#l;3c7*2u|vORjJ6#T-Z&9dr{S30&YdXl1*}||ZAiV{oJUYpY;hwzf}IkH+*pO! zSYp3Jdue#Jwnb~Mk2*-`uCm7NTii*ZU0)>RJeoSBOD68}ubWu#5c63U7xfhmbQ+`B z8E%5knF^sCqvvDQ?jCOTiA>fXH1*fknfFRV+h0!z7+Ulo z|6)|{SbH_qshSKAmC3u}Jw!i5waoS8o>6`992IA(HHGxgkUnpp3@pZ**FnZg_K2{r z8-riJUq<%4o{xfFtG-77ACufS!pzSmmJjd7e~otn`g*^td~RR~C~lBH06Wk1EBYUc z?JiVX)nmrj^Sh{P83h3k(@wzd@q_vOxBBgkNwiYk=)DF6r{^4`2j6a z1z(CB>C}hP!C#PE>A^2DTMXRMU&UL!ZyEJ~+rIC3fElv?xrjrvV6 zO^`7EiFoj=tQ+OlI~(=~t#J#^(jPC(%+QT>1CHH2&rFK6M~>o?U#9b>LwpS$<B z0A63<<|vT?VgHIDAvs7e=#p3<)zsOY@v_!prz?98Hy-Pqy2B3Odpo;a4Hl= zq09I|lOHT=Q@P=T6>PY)v$xqS+H8zQ=o_`SRCTbtWFqN}c0ZK4b7VF#tJSuDGRD12 zKyNZF^bVQW5De{Z%f}9X#xjtdo}3KgbkZN-paPHdu7>K z-|4Hsju!|rgig^=s~&Cki2u@MOQ^5hg}W=mOMxQO@r?E|C_1XacX<0bUKeDPeJ|*C zR|v@96=j_5)N)rS%T;s$PXgG)A_YT&URCpk_{)-|E#QG%F*eO#aAZKzj$rhEj*&&_ zc{)9+LSkX(wq`*N?2qb+ZW?oKt2+zCf}#>0Q?n?RWGNL?+N%A6ter{tDOhW(7XB=0 z)rCOX*88D5%n=KoAf1pN;ZTS=8n7N#i}V({5XQx(KLjpC4Ku5`-ZNu51#O^m!yFgI ziM~@<fEqv@f2chsD8tD)Up4><0CUwd&j5zOoX)Lv1r9YG@J-{GpSS8Pz7$<#Yez) z>P6g^evVeJWb86!C#4E-Dg{J5e!SnQe9a#M+Xsnqh1ut8WL1X)sN#NV^zh2f>5n8cYVB{cQZpr zxdj_8p?Ug`W!EhfG6Gapugfl_4($2fF&xV!q<1|zo)tJ^KrVD!S^4zXF&>q51X+E7gR-}Fk)UsE#;?Tpx#&_B z8oYG*1s`w{$d*wfg8^C*xflJdoX{) zF4f3$l}0g_hTQs${p&fsbfbjf~TwLzM zxJTK~qm{lFk>hkbkx9$aHp{N5go7jh>C1t!+%oT?8)M((Z2WcTUQ_T+2c@8&(cqo~ zjHm;8tpa<|VZx`pc%-OjwuGBhZ@-eu*pa1U9I}o2ujj8L{8Dcl%9^)fZM)jkj ze>n2!PLC;R!D{sfhzq(@luZew$gtX?)hY{14J<_ngoe!n?Gq|s-^%e2!(VEBl$0 z5rfirb(Q}XF5=DxsqmLCewt<{GXMGD9qV|?yt?LgCLFez45A!N9%m>h%BCuq91M3} z?5ZQte8N@x@Au`%x~vptlX;l_VS3ljPtmQMOqi~}{0YUeo`1&>Y!y}a%Ji`u;**mS zzW6j(3wHDnIpuC4rH{jqEw|I2K0w8wJ3#fc(!qHyVmG+Zs$L{&+^WWU$PV}ui&wkz zTzz;tH->YI?C=Q^x?|j7b87`AV8J;biL8a6QrcR~S_pSRi%@Sx^q$D{uyd&52bp(N zI`45#Jpj9mERAlr;o0NKy!Hs+T`dmyRu!A~!l`+(@OP)*#dC4=t|WkBq`emnHhTyU zp)4h~t^Si^|H;G0S}bJ7^*mX-+8&~14I35m^|?pmzzwuqG4whh155ntiVOZ;u8FWUj8Va;oGwPX)C>K!BfFd!)u7RkjQBSZ=hwv-&h?R3xoc0U>y8B905?UAYVNu@o}cda7P+TFBBOIwN3~ zWNXNdG{`vp-|gvD0ESK`&`!y*T;BMM(*YI46p-8A><@noXg~PNa*FLP^p=P937nvl zvRc1aM6U_4#$kA!b$+szGy7<|506$VS=D?EUj5^~oQo*>gp|M**7|8#=H_SnR}Z5+ zLI1UR%>TVXaxcly3KrOQMv zI7FR04F)+xrDTfRS3s^Zvc{5b9=P>BcERP0c{kDSxg2u|z$MJ|$6q66w)b!8)&JN( zD;Y3jOtL{S&x2^rhysLzQ+KtYr-=URV2jun4gk7+Fw$QiJu!-c^aR+Okawz43}@;EqB3mab~z=kwC^4c_+eS|(d%txY`LwC zszN-TnR>7K7e;f{R7}%{-bDLB?(uOoSyFrHKPOz>u3O4L;fLZSIeo$*Vg&+3CMV<% z2AYiWeGTo3Xx-1*SWLx(zl8hVKdNViGPGJE%XlH^`ym{wrzSPf6;VelNf@)rSMsOj zmliBHWik}ong6cWWgUiHa={;WU?-+^aNyM4Zd-ajTwxY_)7Qk+xtBG=qM@uK5+VX@ zcF<0&Lp5uNFWaiOZI@Vv#pKtJJduz|j(TTMfQywyO7erw!Ox)hLLfqKtr zjUm65J78Q=RYqjjoP2)|s^qh7i-{{PSJQ{th8%D~Um_9V8E5DQ@{HY+gBP(cV_y}Z z{H)AkTa3tO=;xg|e9aQscBv9Ey~-P2R$Qyz-k*|*MnLw~cq9D{|u3C%RX!<_N2Wn-f(QKw&k zh53yZ27-zLsbnUS3Snmy4F`FiMz{j7X{bWs{sf>W0vD&(P0)-Dm#&EldRIm1URwT^ zq@xeUW!s_lyzspBz6#qnUP{vgztK8MwUUI?4>np>{|0xd^+El>8yY|?*T&}7^QH|k zo39Hrw6u}ww=gL%A}+9@Yk#PT025h01Jk~(ob^P+0hEfD2H^aE{bO=?)*DrIK6o^aF6 zC1r{Kh=l@QD{Y^-0tQC!88%N{jitEC5;(_x*Su*r0Jfv}*AyA|pyeEb*}uEy-OZUp z?uxrc+KNI+zxHMezHTRHb4AK#HahHBnH6DjDEEKY%|&EzS&g1b&};5<@D-b4w;9iZ~e3ThsEe zq1zLAPCXN2*F`wiioG#Ql1>ikMAK$u&6z)j8{zA?n(3Ii5nR15^Hl|EO^Pc}UYVUQ z>Rv?JtB|&sKnf8rZklz?S|rBAIamqjZd$X|$(toooi|~MA~|kGoWr%CoCLG;6${Ps z5Se)?U#O?)nHe==ZJV&THvDAR@6AzLN@k0%>Tjgn^OGJ3 zBFQA1JVq*ZNPdSkdK;bxABy@)<11F$?fqL5iS1D7M2Q6nXe-RC&N4Uo#M!1cEaNXk zHe^;uI>OFdo@}X$11hZZ1y{MK|9I9tIH^FHNZho=L1E>K1j0A})SlG{48PYo>*+nN z>|>o&YpXZniMl z&ByPuCado;G41ywT!5$wI?;oN_-}$2?Do)N-qQRT7|wGQc=Jj})IEGL7^g;Aejnx& z_A86>j(l})Iq~T+gpSs-qU!9X6y~8MJ-KtE7OzK{<`1%z(|_!>ZVpYialz3*w4qT= zpkM3RQxPEG(QpA{nk89ycZ~zw~Ry^;1F7Fz!k@=alM1 zR$;5E3VuOBJ8yrTIT(x8Q@Yla>Jrc4XZRVp%jPBLMCJTdaZv%5I;vp3D$+iF2(3-y zbEXupfx_ajx5-@Os9WCw*F>dU&n&c6^9!eWYQ`x zwbI=eljXi$F`r7x7Iu$Ve~yg4O8rFLrpFB}%(`q5ZDJnErEWWS&-VAuILBn)QQWFg zAyx)EcA4Zu@~<{=?s)D{yEr0PbdrBz zfrP2k19F%P>6@wC<;%gppM{Ha+~JudQgencoAqzz79eKM!_f=~m_-GAS(uU-bP*;+ z%3Kxrjs1*q>hJ^{bu_$)MAUU%c6cA&by=+(Ma9F62RdPs$CxuBE9EjVE;_%aUF3oh z@x)8Hm3uVVJ_47(M1^&YjISxT8OTMam7FVVsBm5*?JUno99d(3Vcio(rodS!1_a${z7njilHaEzQ`mz`Gu^> z^d24>+Lz~8)Si^WdAkwlIR<5KLK-N`l0dBO`Ic&um>_SRt_}o0&7yyQ_*tnY6edRb zK5SU$7FMJq@zCUhllg1lPBzN;Q=GXk6Yo6u5ZZ%6AxDEylEAGJ|M7&Ose;dOct8Py z0tOcD&b562=s}+4v9X%sKjJk9yMpi2An|Yz&K1nGzhE>~wqU@A2@!Tfk&a-BE(WkY znF@DQo0}8+=+(+gxPk<=&hh0GiX|hh!wc3$=?Pn>+y|C-p;KK1Z^ge^o~VH~Pbpx= zMmZlR%)FsxNxz-jMkaS5h60x+O|iwe)1?!3G?EwM>u$TyK*o7ZlC2tiNkx*?PNhV=Nh;L-OJb*iz^tgQtGTZ=OMqEja-}Lj3>foWV!EDAxPyil z_2iNpeJ!Mh4x`h@mxK?SAQ2yVNPrZL1SE>8q`*UHlHm(m!c^gXb&9C;Cb3_Di9RB= z9YKbj#Zq>QsN}iY7?V^mp=cnxPXJ%t$2ByeCvOa~8dIAF8ur)~5h-ERQ)wNq!bCWc z5iNzRL%AiZUBO-@l_8`#^L$=GZsnjY=up!q!2IHn0tIMHOmid(G0SeWi&{0b1S}1f z?8%iRqaUe3nk>mBB$Fu}G%D8N=x*9rIx?lf15RQ)2)g&1)?Zw=241)BVh-O7&NEW% zv(Fj&@j&NmgygPi=g3E*ie?{9r2gf{S;3VHj;|ZGm(WzNH|u|1f z3|4=y2=by;+Sciba-QRg5Q-?>QAX5O195h`x9C4X!yvB{?$A%pbX^?alEacZE6Uzn zMr+S%ksOI_R~{{Gw~8O}`)-Pg6Q^jNi?hpK0yYJ4dvwQR;Wg{S>QHe8eSxaUw1|pZ z1e^7#zow26wXWt}sG9r+-U*_VylUQ0G5BeYyptP6jfbqJ!M;S;c}~ zR#=`{jpX$O*Y-lI?sT?yuDzfA9SRI&!lN^s_64(<2$WcWBl7#NssDrX%1rRqr_^v< zteG~xz&WzC5>td$+~?BU^w)o2xAcBf;VP1|4FLw#Wt9UavBi3xQ*(gT@;Q;r@zJKmvDkEkP$8LCGJ1BhUsZ*jAHIr zF-q(Tr;H6{(5mjdOHroZU7N8~XSRD@Qan6aNmCv^RUn+BWs=Do$SUl^DQ0Ex8Wa+W z-Ez`0>LhKbJr8I_N_+sCF(K6Dzps+#co&fcdNJ8%ETr1teUq3^{9S`H@r{PqoCQYP zVCMQC3`O4U-L;!TW4h)IPZJ9KcfPba@&<2PBc(gaFZ29xCj1%friKz2SN&P%9K*^i zOop?haPnxK2Mb*5ogFRYk_=3arOS#VrT1~}vGRb;PiQ1h`TfA3`MW9^DWk{PY%>zG zzm9X+jZED}4WW#6m7hL#NtU5<|7l1!pE z!x}1+G;=Xa+=RK%>(a?|)8R(4iASmX#OzInd5t?=MWaz=dm}~?bRyrPwy?+C7`eNb z&z)DlPh@rbg7zp5#-z=C?#uyz4Z@YNc4h(`;vw+zqcS$7f74FiZ}2Y2H*&OV@fLJf zMxjy_Ym`^{791KFP}O;gR@HP&B)MiIzMr3J9w1Dpk`0>ND~|uD^dnEU|GYyq=;?^Z zzAG_^IT;awn2!XS0|lP4pu}TG4PBC$4s>(z zKd0J}y(7UR$9EK`tb`F}X9Y|CFMtjDN3cE?BMy8PFjsH!1sZckkB$9n4<~(t=>1Cy zGAX<6zHQ$I&`L@$I~<53Ld?zlo-@gLp)%FqYZKDqY4jtNZRRKJB@Gv|`mKFtfj+;#N?8Kb_{q>%or0i$}-fiW(O8ovQY7om|d1)9MQZIrE z(3VTFC#U_da_}JUWEd7}Y11VZZE&XZtICjM0QAecoZS5Q2I{huFFrUKf#!fTkZ)2fdOTo06Yl^t9# z_&s~Q2oQFQ0N3vr%ZS}y1J?>_P*z7)d%i+iRI{+L1yNy4+0OJzan81@zVD<(KV~!x zsNY|Et~BC10tB40^T_G=JP+y8i5*jq=8hx8wKq>UE2>~Y>{*ef!n_0-^%6$5ki!*S zXp3C21=@TK$EEIi#CQI-YdSkW!dV4EryEWs@4dQlOigZE^ahMNc^y$q3DjBnPaj=I zto~hCV79%J`F%B=LdgDiXU`#`BYn`O3xv64ND)I@HT)dK`H(gM6O3`d0X;dxbV*M zFcZr9^#MY+hy@_L)))8*vvJ@%)>~NyBu(tjE$|Xgvjk*0Los9Vss&(VIjT5EXIV%5 z=&Fl3w)MjH2^X_{UuW^m-!>vmwR}_2Ar_Mr;xy-29_K-^s_7&X9t6FOXoBp9s-qSFVg@i9kLWa!DHh$8tDda@Yq26 zO{3`z;6pE|#}nKsYA{4)Y)mk>>=z5@=GGJOXV5VN-@jR~)*n#;2;mSBIeRX>g1Jsk zE7h$rt~wGmBURxE$b;_2Uod^;3~{X{e?-9|uF9ptWGp?lG$q%|Fr`*ASu@~OU&NIi z>Uqnsm2z@<%1mhPZH(SML`-*xmEUWlcZ!Im@R!Yd*?UwQt8f)rSk%W{Nr@cf4PB_j zc+j)7))z(Gn(+b?c-2Ke8O-Pcn)RI_SCnrE#z?evQXI{Z>yXAi-8>b>);Km4|JhHq z{D6_HMSE}(DNhGmQs+&&EhcoGsbW$*-tTq4H{DMc292T4bevY8(I@F0kXVc*D71!^ z8i<%qW_^Q!R>pVM{D7Fy#aW(RNwSw`K$()bvK0yOfuykh)%>;&zNm=sfqYaqrtA4aehKJM)y2rYu}9v&5W5yt?A@GCtfdB>UymR0~}Ys;o-EmZtzEG(v?xP42EM6QV4t2;&v5EvBN% zKs(I{OD*#NmV4*qwGD|lUHbHa??;072VtQSM1072L~izI!#9C(ajfMoq_O5aiRDk? zYd)w028Wf%H$o3^4}(rG4#&8iRbikN`H($lXC`agvaz7KM)5I=3kWadiGG7^)D9cM zm*!uO*?*i%qs>H*t99F)oR-+wLpnCnoF=}aBnVTyFxx+C*fb{0B`Yxnm^WiLEK^1r zKo^k#1tn6-UeTdCPZ8}4P*3zO;Qa>UlYL~_!$HefCb(kJ!kpyy018ItIuVBDz*TDIrnFn= zbQUeFj8PTMfDtE+qst=ZJdX-~b-8QteJ|(jV~c7UBLmQrb@w!{G*niJFDIX6WOPuf z7ETy}$tY=2kkS{b5mTmlnhc3aFLdcXbTAm9(;5N=;xw&Ye=^fDz;6~bXEe2Q%C6BT za9QVUKKoc+mRFlQ`Kn&VsQ9%%4iNjz?; zXrFvl27&sepycd9*7#B|33X7%11gw)-)1bTX#7Cw;qp!`6c`Utjffzw9*|L`fk}n2 z<@-BV=Do-QZJ$sVoe77T(GiXFx@FP<6OY2ISSA{@&SH3A!FCcxK4Re^>Wv7kNXLRf zxT|mjC$jbLSNULWK#dZnXw>AF|J`TwGM$sxS97JZK+?uxZ8KEJt945Z1phX$yVx1S^{Q+PhStAVGyfh=HMF~! z{M$GY_t8Y!4F`PQrU{`N!jG9a-rzU>2cDM{r=m-;k7zc0Cv#IB1t} zhMvzZujg%x7D{EKo)SJ zwFARS?-xJLCx=BT0ekL2K*Cw8!_dh7L~X_jUc0b)92_`fQ9#UuOge-O0K`Ey+jA-p zaYLm$t*WLo42O-~X$-b_r5#uVTC7p{{f@GunEnZwd?S-@7qLeX#FLtj%4^a5SlwXJ= z564j-m0f_Cz_*?tQEKgwizPEuKgNhMO%A{g-Mb#Og|@1ycotJC%PB|nPzSv#}&qw#Q-gjA>R6IJgB=e z%o4+{S5j8;TK_*fnNwLtzmvXX$B5aB8$P95RJJ?^d8r0WkY@R5uj4wy+h`|D&-+a0 z%9vkK@R1CivE{L?)C%WGt1v!n_yS64q7wh>zKYrz5I)V7YX_)qu+I=U-Rn0gb7;##~MrY4wjs);rXxXoO zL={fX_7W#B!MJ+Iax!pf3(Wd+?FqQFAt-ULt;5ih0DjW*N}vJ>z2Z(%B=AOpBNt>% zFd`hs?!Qy=MYdB1pVG&y*Nn0N#FR+%*3%3Y$HRct&xpc1UPx=6Z-Yn^Xv(K-BVu zehgxDF>Im`G$+=h_(;%m8OyUSJF(nmTOFODH1ly!&Vh)K-5h|SxWMzMSe?FGi?!@* zy|1SZ)L)qQ_%lr9Xpvj|+9R=NK}@wymjagCQ136OI{u4`tZKxDf`#;t;sCGd9*E-| ztrbVDh>lsM=enTfVB>89&9U1mDkAjBTJ5xQ;skz6_Eta-nAk-IzUo2tic@@RSbCmS zps`7$Z(z^k(8=70lynyK9a7QJuV<~F10lFoIUl}Crkg1->NYXB7siv7=r`UyHkCc* zf1j(jzTS3yqT;JA%>vG-3!e_(*6q9*os9dJoOREI^ofzE8ack&TORiO2HHU) zD$`Zk_SUmMD=~9~v{X#jVb#N$!^m9(s*U`9AKtm6j(L+%#yY1!3lxV0exub_pf#)rHww9;;wArI;lgX@x$Gx$;Z;O2z*1``hL?$KKKF zwM_Wq=l{KUsy5p8afQq@W7Id6J!!9d+breT((^p6Vhq&K@W(zN>A{Px|I2iJt;y?4 zUY!kTV5#ZxE5T2oLQY8Ss&8AUg(;8{iIYbJwp#Gm_SlSJZCiG2Q%-2jn*aBu4X^!-jv&7;xR90f%k6Tp z^Vs~Rm`73V?@zFlekS&ijeVeCx>f39CcJtDwr?{$gY`l)^wv2z9#btW5^0iL#OYJynw?wYwNZuyh@ zC%9(Sw7p6R!%{TuuIkNxM12kTnC3{+DH(RSp0%le1nm9Yv8N|++@hi0oiwWDwjVC6 zV|`r*SmQzB)biI(a~f6Y&cBMjHSjk`kG<`RY2w;l`RrBIySTTdh*(vlqkwrUvg>E< z3X<^1oq>09Mf}%J9F5;3#G2`Z8YT0%U`f`-175N0IFm}m$I{z2?_DGf<^4@hKxg{y znPVk$*yB+DUwUKD0|(c|4N-%~!8`UJ8D$dm*HyCbv**RZpHk%AYi4J2{_)1mts8l5 zW8$PMzO`z4dPOs3*GN~jm6&YBH)Blq0(Moh_a}|X9dx|!Is>Ym$4ZFQ60n>6|A)WV z*viP=;oTW?GnyP@R0UZ?BgQWr<^doX==Yy5Cdet5tZw0`fXxoxSa;;YGCk(IICK0i zpN>HtM$p+ZypaO%_@s02^HROm!nKFn#7|oHNK1ORoWoiNS2D$lwugG5kA&>KHmi`+ zLdSWPBiXhdzWzqP3(06`2Iy5*1b1(bE$5L#4^o4yHVX0*Vks00ZsH#Opn`6Q;KFQ3 zmqNl03C)&(n^;k}V7^O~N$mP5#XA7{yBJa32dhtdogvgZ+n-s_W7Xd_?-=gySc2RNhlP1fK{}eD5BVimP7P#L(|Po<~o&k z{?=)?8!46O(suXmvHB*Dz@qGOC5L>w_9)cdoA+zOx!BL}UR8 zZiAeqc{fsoTg5xDnC3ap77}lf&5?VRnn84I8IGRi#+q0KHQ9BR%N+9qv-Z~yi_DNM zu<+Y&i1jr|F#kZJOjrFd*LG>l_SIJ$8-N}9m26=6Akdvs&}lK{|FQ>t7$m$DJQROa zH9rhfF8kQht#)r$OLKV?jTm^2!y&9667nl@+Fk%PP^z<<&1~%;H36Ar5dOa@=EHzJ z83zF5s-B%grh0XdR9S)E$n()D+8&lxl}~@2Qv3Gveez=(cT?3Stn-;Qna&2O5%cj? znjwwn7#%w9nl4dqMNwgAPkds)Zj7pZd`K7r=3R<_J=qZ%DveNU5NQq(L{ZTu(*@Lm zMckv%uS*#`qzQ|%QI$`f&!_pe;?LTG=*vvDF27|ZB&O}Jcti_va*d^~bnmm+hj9K% z-rP@f!y@N@g2J^WlVyqv0Dy~}RkWhO3fH`u@TbKYo%xo0M*Gk|yyIHeKL*0L$X4

hnj%PXR!1Urh4{*xZb1566xdG97vXgV_SDdxGR{$ZEh)C|2I&Y5lw{w+BQi( zydsHxM%j&;9j511w$6%@K9&4|>hB+vF`K_&a!j&tQZm~8Y{@+G;PMjOcQgCQPMirE ziYL^TsyzXQyhySx97CL*S}ggPjHKBG4g)^_>+nGz5Mog^hq=r~HLK9OIH72g){_AH zlO&qUST>J-VLo=yN)PAZ`o<1r{(o__C={TULw#wH4o3F#i+xXi$z@#|I(k*FLO1rw zsreQ>)VEB954{mLKCnM1MMV}YilUW^4Sx7A3?Hlqe?9C3ybD28 zT^xojYgz##k12HR8nAJ_XmSkf$=vmyUh3$5+iM?{4KaVgP5dA^hC!@H{Cqyo;}ED0 z^R7bK5Wp|&JcWLK-&($tqZmQPzC1eR;ocP3h%^IfgxKBOx;i1~2hY1jT2LM&F@LiK zW?s!R%^?@@FCeJxj(UooDGe3!zJ@unXwJ+HnvYf*Sc3p(Qv*1x%DUb1==;DWj? z=|vX$c{ZYLi8glC`L~~S4%w6|O|VNALSGlj3Wp9{*BirdY9Q){mCa}};IVTmxoLrC zE8M2A^1@d#IW(z{>tew-mv0ciA9!!3^|<2Cxkk%3!4Y0C{h#a#ipo##xOgQw6J6=obufb1y-0jB~-S|(SM}+=!E%R3K!y#2%obXJP@qF4(jW~Urv<- z*O#sINw77yTn;U^UniA+YWbOfCk*cH(P^rglCWrdwY!orR=F#ce4I)=ZB7CLekl3@ z;&kAPvdAiGfb%_7vPHoAVs&di))+uBp?%{tEyaBAjIp&L+aP;~^b;t8Rw06Ke%Jan zth+nPyG`f}Q)=df2GUp?~d8fB=**az&i+P1y`;lCbZ zK9E1wW3<|_$9OyrQnR-2Dw?06$dYOw84IdND*le;X5R`^~$4{z>|Ao`h@)%FH<761+jM z`fT+2+JMR5Q^^*dCcpWAYJ<8zmV0}aSQw!W?D8bGRJY32T_^gT z1dk+j?f&Fh#cVPB=!X1ICePXe)ES3q?wF~M?2x6gYwlTw=drMUD zBJ3Gv^;9GU0d!tcV)<-!v@hn_{9HdHw$2t*{IAPCT>#u(%@G=2_ZUdCAc5Byg48p< zw6Tw*xCa&iyW+|^*I(z+QNKmt*#j8wp$1es2pOrwa=9!1-^vldB4gh#UcXy!U_d~P zzRc2P1J=fD8IkToO$hojD~49F!1WcYGv2UuJ7q9ZIK`b4N)5{+ZJ?lIKx`fEDn|mIUzMTfNw}WME&`QiDEiC+btREU+ zer}kTaFRH|M{3a{7R!z^=Cu)u|AVp<%z*j~gO~N9C$4}DkupY@O2#pfow)U-RFtP# zbC(ZUwnULLi8nex(h@Z#Y;Zj8xCNn@26G;X_&9s;a-zi4lfll8pdmJ)kXi!HQgL(G zX(L|i+TBpiW~<>I;umL|u!+ zd}oBe_(;*l0T!A#37=}C0j3`x>Dn`Y&m?T;C-A9a-H)bs6nBjA5uT;YJI*_wQ_dcD zz)NGGI=yOqAN32H1QIhljou*03!0GH^)SQ_^U#5hGbP}ahF3tAZD2tTb)lJNi~ynn z2rTKsK>p5#AoSr=v6izghvsG=r_==Gl*D0Itkhr_5X?{qx+Cu{`j5+`#nePyR##m?F6x48O?=zP=>E?eShFbKKm8L zqI@5Ys*juAWE=F~zMXfs&VV&@Y{{dx$R2?!b@}%Y$06v3IMc<|J$e%tdOuAYl)|zLspEGTFK!W6X!e(ue~Y>N6f($ zQZiXS&SL|f?hMe4=CJGY>ge5g$3#zGh1RuUYtD3*J{ox1(UW2v%=IGF6^xoze5;>* zeSf8nIJYOL|6Wi2u)FV)a3((>Y*%#M&j+e13^H@%?9hnco01x0z((wAE^Pxt>ahyUnU zP=T>xBwD+4XmZB*kRBZb_2@<43=DZ<6Rji_3X5SZ3=cT3`S2XPmFDF2Sg~xKLKC1^ zr%zLchi6!Z@Dl1PCLK%N?Fg^zGnVM#MMVoCv;qQ-t+i8y_aTu)r}9J%KJmV>H(Vj^!PW8dr7L* zU0wKe5zw!=SbndB&;Z=7VjgIU{ajH6A3m7!3OTm^reZm<)J5wjxXc$3TprMeUZFs6 zCJp_JX5Qe+`8v5&3>UfF6Ew_0RI@Ozi6FxIg(ks}nI6BQZ2_gpTWpIA z>C_kM`>^-f07%VXP3)>u+-1hnQ8oXlZ7@|~%`q-_#3DyWC8Z1pYg1A~^gz zkdbz0U;*6klg>^VV_(tF=Os)zow_Q$`a$P0aP`e~bZ1@JdBcDSB_BZRJBEi?8blLGy5l!8f>gPTDG1S)EbWZROg_&pKq*3GtvjKh1pvE9fRj)7F zx6!c_?yunEYr@R*gunH-5plTi$`oh-{Y`E6Qt9A)(_pz8V zj#*i9Ae>D$*ziGy;utk!@FS$znN4qS5OrEn3l*(6oc*Z9%uFP!eSv z2*+~|A32=|cDxt5vQTO&Q!|n9IN0cr%rEC8?FB%N%0d??mJ_kdUpzf7^-XA;F_$~( z7K);5{_whd{1XYyI^Jr%h+2z*yu>^N{ufDbIm(`9{Wa*}!dn%?ZPk=;w%e3CdKtli z^89zWHq6@Y2BmrvPWJT<#+&4nFi!>^eja2k^!AJUkb>yjisQGk-XTeQD2ye8+7MoG zIpTp4ll1VJs)bjsSn0ewhkg9B{h_}gF3)V+ z!l`Wxe**M1!Ia4MSWn`WmudM+h-SCWE+ub&MBZ3GjuV1L34I!p?17=|miV9MkJ4+y19P9(tM6>W0+2M1(qHDuljVHpfODvw{$ zbsC78Yr@3FA+X*juh~K=XEK#c8hPcFP4+VLWUQ=7)B6YQ!?rYua{349UpfU=3sk`- zzd--{Hco)?E4|}@Nr8Es2W~6^`!Hv;u}0ClFO6Kk1lSM7g8@}A2klM8z!Gyw?K@a0 z)?aWl4Qv=B{nqM!T#3?GrLjpBy%^RQ z+R(Z899VX>lUje>4IM;|Hxk@YkEeG zGR1(fuPqn05M5x*^RO{JYo8Zi3=!%1bRReZk{T@C;*pRLh|mk!xdx!X58~POZ*KAb z`iYW;>nF7~{LrlNBI`9b%Hyj66g*&fW6>fI+p7##*@*4g!KKaffU}quUz+JX!i`Ne zA+x}uFf^ZNLk8)cA_WLgGF1GUYpknYe~9pIuSaVYq;0Hbg-${R7a8Dy0^_fbny=Px zpbyVFh^d=fLP|W>!NbF1A$C4=)HX>RpRCiN+W4j=U%-<5=iU*F^=~IHrF0Fm>ynD1 z$ma2`QWbR(NlVy#ZHV0rgVm*(Cy7F(DK6CZeQo$`Y!ezaeyh*wij9qve-6A?8+AEKAw zOhZrGasYC)qN1e^KJ;kF4!pQ_;x~Z5jxtwbi-Zf@vjC_hrnf}%HbHmc3kxnRfw+J9 zENL>>e)sKr7VxGcIBm&c3dV%p`hQftQ+On8+qNBhVjGiWV%xTD+qP}nwllFk;l#FW z>+iXr_gnZ^dZD)Ns_v@lx=tMDepLTDBo)L&DWDCHil7JM=}Q@qViX}(IuQETSt+Vl zp@mh1S$kC!2L-*j$x7q;xSo+F2#XBJ(CG*_#KZ#e`&p;162^9o2~*nK0mQ-m$|?+1 za-^erKCy@RCS8={Zl~KMO{0+ab4`O~(b`R&dLW)JN|;M*m-JfFvKmBq6AJSI`_ZD! z_g*MeeRYl*jGaG@+xb?M0_`)62H($TlOXm=g?C9ne$GdkNWRr^N^X7dZBg~GHLfVQ zM_oNcNa9|Blu$;9EkTDwQsu&qklgPK>0$LP)FAXXxKct&!@j$0E+gnjWo1)=ups8KSx}b4N&i9|46+}%n-rK(T}*+XW7G1E%7?a{Ee(v!`NqKw3{i$ zTkSHi7N=4Lp9MO7g8}c$LW#GQq5A`0vKmXkp8pJ{RPB>>zS`nnW6F97kV;iK;i9?H z#$e)yYM20ujK+j2q%aWNSVyY4BW)?^hai1e@Tj%?d=e6s;T;Qfv1xF-Oj4q~oUHGY zBshx-MQ2wny@~FVHA6;Zp0F!Fv_fZ$UYR*7z=Hg9>X0k~IGL}#EdU(=mioV_)dm*W zNKMAsGAu<1(54&5sfvKHghZnWyr&fvk2S;N4Ykil*g6Lal?ldDWz40`rJqeFfFjrl zJ}iplVP{(J_f-^~@5^2%-{+qQWP}jz<{_)?$vHp?Wo`jA)k=rYn)nv1JhM=-l|uk; z-~H{zD6zqljO&J`|NU8GyQ7-i6ZeFQ6S@u@U=WYC993y0NPB(r?7)Qdd0^YVc^1tz zzd9Lz&zk131FCe=d)@N62hcH(PyY;7zB0lH_r+%S@p|ZJm{rVzZN#bnkzT-u*yoXF zgyjWhYg{R+bry^BRyg!nYn?JtKWY*2)}5R{?2a z0~B*EEgrUwcrG6A9jH+6kM4e3bgr=C6HHiT{D|&u{w2yIb#1fJ6&ANSUG=tV{$2^_ zyt>sEl)EgvbvzULJy1nl3hQ&V6zeBfz+S)4D+GqN68*Jr&6x>2hYe6*LWTX!Jy%0w zj6l~qdxgE9TK{o>Y6MU1Y~!edqkmBsg7zrg z|7*I))x*v-na*EQjw}hbJQ*RYA6PjvG}Q?>#W2)&7_dFU`Xd-P#T@!u8z^N9AW#8T z_5=u2K*}Eg6)K>VX@Ee*UlN1AB#grZ@S2g_EQ$NVp){9Sncc}~Ck{Q28%60IAV5FQ ztHSl|zI&jpraY^9g*K0YHBr+Oh)3J<=vDNN@VWMh{GjW1@eG;qq_DK5W1%((aikfk z{T%(jVP!LCjquHsHH!k-l(YJ89L;3jlti zXr&EnbhbIP3FV3P4*}|n3bKd*k8PXPX=x#9AgTUd6BXMpfQJ7G4}v%e@sAX~GfS6D z#|D=cphrJwL}bB6EzB%NhAN@6qMV`yKSb%Cb)c&caC4VN zor@7~Lj8c!Y@u<;^FaFCy-qibdS6x6`FxN;C{H>0bi%k$Usv>`&VUr_5;> zWaqrXNatTlQ)+@i{*Yi9dLiHJNpt)JKL;bZqkafjUtw6Q(~(o}2DQEWAX(?7`K2F- zqRS|?PWGD-mAITXmnJIrh4TPlJmJZa82ro?TUn60L)QZr9Kn)bn!}>xsEQ2N!TghF zoSu-eRDyshpA4KiJe_to&r_ISaFkWT&b~{H80rXPlBSO=+AywG-pmGG{s+qwX(n%R zC}$VngAff|HR;OkmA|SA$yaIlQKKT-f4bKa#ntB-lu4y!qYyL4`$|tFO0fIn-T(oThdqy(E zqx47<^?qfret9l-Pjxe;rPYFO{GKVpXpGh6eBw-IOj=NjR2tSMZ+GlWufhzpgPe(@ z>#D;7HyoafM=r@6wyN7`P(<=nqTq7jqRo(CD5)06rl70r56mPp6Y@*zFiIUd90 zj1$qSM#{+Sl~`8y&|ojjMLn1g9>IWsg4qObx#fU>s^hI3(JuI)fq)=Eo2kmuYJil` z`Jw6XdR$jtw<3i% zcRm^fnEv$)Qms@OqSTL>6<(r|@OwF$?i|O0} zh`eBriNEIj61c1A5oX?ycvJuStrPF8fDqHz*@?zayOvGLp^=OJU7rdg8560ngcZWI znFPGXtWRiP^MN71!@+VoMbMmO!9n=0_yMbrm zl~zOJmwoB7~i>UiXhOkqaf zFYz|bU{Of9jBv?~J2byQn~+q)hfScW;c+|yb|tu&-73Wb7G1;(A&^~)_c3Wa6b8

j-ox%0b252`?yKqb3U>SLZtC;w@a1HPJ26CIMegzn{ux`F5?i`xe z+;Vf5XRY-Z!@h^s97Cdge!KXi}pC`30 z=`zZ%Ad3M;pWCe&cnHKUnv|)D&|s$fyyD`|nBZ!LFrhUu=Rv>ApX_f#?SjXX!#0s6 zcE5)#n5=Mfd}YTrnI^+|bkIgeRyYcuroitfQ$W{Bdz0|iIn&DyV=SwP=68d8MHCO9_%n);ygooL6j~?`UP1Lws<@ladMAoG^YnH|nV-2p>Z0p+%;_8-3{x&{PuYd=XkiNFrF54HUzunuc@Q*i z)L*+m15s@Bj%WbwaQuIIks$c=W?63{)7B0~$<(mHQ(0pfEmD7F0=}NlqV0}N8}5bT zfPC0G(=Xm1b*cec3XPNd<>6#MiYEF78y4*=TvW2OKmc73upv!T5-jBU#mS!`(x5&~ zSbeHZmFvIC$#XS40j&YgxDe@x(-or5L*^#HYL}?bvh|Dkaj-?nMj6S2Md%+Zg{Q58UWz(~?vk4($|<1>Z~? zccF=52u+=s_}8;{tje|fkj1%a&>b49%Y`95X2kHxJrf$OXr7Mr{qV^N9} zc2{qIyM)9f|APFCVks+L6e452rfn_cr8i%35Ai~0rzu3xI@~Btw!kr%4U=ReonGc! zi(FMcw-#Xpqn-&>86tH_Hvgl}CT@96k6%D~p61K)Yag1 zAmp}C4WDjJk}L~M-ruET$bC-h#}|Ghfs9ta6Nuaq%6{hDF6h@dJ;FzNasioDd&@6EMxwgt3v@=kYBQ_`h z*6iOCAc~+}#+!RlNW$viq_}Q2XP^(?^}{NoneBAwg6I=(D>7!3O!a}uPQW|p>FR}= zVkpHnXpUZHW+1BHxh>P4O+{bl?Dzf{znwB?o74Uv2N+{fux0nHpGyr!xOs-|iVz>B zg`!*=TJe^JqI}HR6R*ygtW|OL$N%02D@AZ!eU}lhjQAwOMJMk0(C&q% zjlGiUjVP;2>w3saXLB7|$+qg!Frs~vsRvLP&123`fWUV|ei>Xcfy0y|`lp#yuKFP7 z`$O!8pE~2S0gwh4aN=CCe+ViQKVOB`9O$*3d3->M@$AkDn7@RAnu9W!Ro-XgVo~}+ z&AuNx$D|nen*mJ2V>NNavzTRiPL}U@{tNw8#g!BbL_1tmGjf>>GqBr{U3KjEpJqr~ z?tfqsl5dGfx^5l$QQ%3sRtFIU+^ae(e`)d5`@K9ImYLeX`Nu0OZCGJj;!M~{X7##9bNHbcS^02pPF89jIy>>unO0QW4&9kO0^Pfa91{YwR zj4JhT6nKDEa*~b9*5lv9Znr|PuBl1=JyWJqDlG(vrD%6613GXeV zW?0CWO^ULAst9X1kguGI8HRv@3<_{SSEi@wt>;_aNZ)T~?}1Z2sH76f0==!Lu&pUC zNnMSJ?s2Un>uPB#`tkcK$Edvp)-=8>>E+GMA~9T1(xCZ@-Hg>`K=O8@E-o31`y!?X z)%862LG_=Fue9t?kDhKAdEo$8bjJjBI6%G`J~}W+RyZJRmg_}i@qcd$mfSdE0oiNU ztOrrbINJIPaAv@T2SvyZjSY}lJ~+}u7TWi1=DamPj!t`)W7uKEdB)_wwp z4YQzwe~!qq|8H>AO(Q)!V$sws+!{($tBYiUIs$Oa2*5E-L9`rpbQDd$&=#4$bkNDn z1a&~eObbPo+9!EX{_V*{CCZm-o(TyQh2IN&^FjMiWlp~Fmn@d#omr9*Lh0@I#d9Nd zyU-1DD=prp(}$KW7NF@1Ky)Xb&GqNb;$vj?78-}&iFR-c#D%rYlQGy>to+2!jgBgP zNV@j>Y~l0$ZqORF=xKw+NF-$5wd~&5QE^z*|CQ6Ge4X}Q1i4i~5JRc)5X693bVS_k zhzOBZ4s(pOV|2k)>OWzDX3OgfZn|fsYzo(+S#-6=BD$|t{qh^OU`kE*aWtHn1d%9I zze-rtPmc?~p7#9mI)rOmwetH}o-Y#VL_Wv8tMcA=v(A|B2!dIVBn@;~>aI!`>?ixK ztb$xI3{+3!DMA>AAy1&>W2A6zaBq;Y3{Nf6W>0E}Ck^R*beNf0FRzL@y2 zz7%UUf9)<*LodC{jiwBpFCKKOTsYh6ub_UUG2Su#9TevAd^`}4Ni22cU?M{_9zP_s zFvw?H5A>8B`;Dk#zYMVV*U*ppyo&=vlwWv}+~4qN)Tz|>+jOp# zhUXs>^f9{Tczqk~L8|z(ef=IHc)Hu%Xw%VKhcM?o#F$z67|O|wkTTuLQ~h-AHJgna zBS#i9L*IN8cuwaF5JkDxxspe?OS$jgp6M>Cv-R4K#Z%s|Edr#RwWET@@0(*NG{M1I zO^j^c{0tFpo4@>36KF6lo972q_hNjxP_{Gw0TA{#jfhyU#*?93Im4;Ly4NI!+L>8`4&(BiTXJ5)4h^_ANWgT=57HY$niJ&y zH!F2Br}y(JjE1vc-;uChJ05}V+0n}X!-DN2w0~r<(-z1yp?7H+HZ1POR>5?y9k-*dEa+@ z%8(UaOtoMVV$skd3LZYem4|lO41r1NX@Ij5y`B?+sVzQFOnW=uryP#ocAHxBpS>{N zH;2ZS^u;5?&DHv(wzSL<^?hwZptf{lQOetDi!~RtEd>87$jP8MYKZs#XmZS{KWm%# zPx})*A*jjRvqWQN)Z^dY1OE_|c@Sj^yICm&$&h$Wc()2cj?V7dD5<}^e^yB0LL;Y(x=Fb0aXRB) zLDGEuUSiaLnP0JrO!=HMqcZ@_RDrH8U^MEqO8v`tKRPxIc9B?1PcDFHolS`VwO}G` zbbMFAM2KiQMYI3VJlh7l4Ua%8VAaz-*?=d%1mYGftZ}KCpr90c2I+3g`XGcRo*ZLS zN}vQKBM+V%<6OE~`wutpKJ8I8#`QUEhji-+u{T^eqmZDEF%t^PN{J$X9|4owA~H;7 zXSRP{W8Ys! zvQqjKX3wzGe@3__z6|IGDmsx*DLy1|ulXQp-e>}>y|Ozl8ZZqnEOxms`YLhUcr__K zJE;YkqE$_t=y?Rb#Q{k$RL-8jcE~!n@b#Kc9Bh-=Ei0L1j-rDu$AUo1|Z6niz9cV3#MU_#lrt^b`N)S^tC!Lgl~cWY$YQEhN07 z1Lm4kGw`d>#r2DHQTPiFJ<(FghGdQ5_XTI!pe&e!X%Su6y^E51c5@Mci7atF6J1!O5LuJ^+-pLyxG1 z7nS7`H)d=fYR@oJpUci_R?v7RqKw@bn0%+2bIR56sEf*`*5&HCaNXk8n1C=i`JoU5 z6&pcmHh{0U)!Fs@vOe}S2{U^COh59@Zxd*k6Z7maE7ZT*sXwa%mQp@Lze#tJ&xDEXk&(3sns>7c>WzQm7lyG9mFxmJND2dlYHiCI8(&2lQ#+S`_Pp zg~^Qgaw~>QNFYX7`Nxc~0+a$S0#T`{X|@P6ei&YzNTBwQ%@cv04Ip-rqTG#it@uEt zqSX(3S4Y>&K7PHoe;XzTzpg5Kd(iPl>8HZI;?kaz>SfdR9q3c5lbXXfi?SDl>dk)H zIc(54lklISdsO3KE(!*torlt!WGJEu!aeV^b7bU&Zonw<**H%d?78l;#kQUY(csi# zDjH=pg}ycw?NFm$FteL$bycCRR-&<1C`iGW!4l|oyKwyVOREtzX@q!@uRPqk@#Y?R zlK^xqxbZeg`-+y5Wwx%}sHC;aXnvWIF_kDI>iu+N-&U%_+uG8(WR+Do)Mrsp`4~*o6O-?j0)hSgzepOIs^6>*M-Q1VuR{zs)y7XJ z{KI^HFFqOj5l#*aBrIsIj|OwV`j=~QQ}t1$dhQ0j%T&j^8=B~A|I=LvzvJP`gOE>v=4sc zPjd{I_je&ef=YE-n;%&KGOrq<1CXiVBh-$tn zvkJV9aaJP?BM$9}exlbr6Xy`tp<2@r2la6{bdLfkaAPVB{u^dcAT*V_meRq$x=r^! zbzOO`KEmI=_IGifU;+HB-(43r;&E1UX#ajW2n7CcyxQ26lqD7w-{4-#V;!`gK*d^HJ)FwrV|A?tQ+SygBv^iU#pM+Jtf5=K<>ih7CxJDHk=kb^5u zcb<)?x5g<{14S?#QAZ#?_g|l<07aLP*bHNX$M1!ns%4|gUUGv)3QQF8>~vn^JG%!1 zmU%8j;jcJroD!=Az;(TR5JynWemLbt_80`w*nE8*wWQ%e)2pt!ZkfOEAkmY^(Bk%b zlz5n+>NCg%3giSN$ltu}`04KRfpy0Rs51LtFQekN(M)9o=qqI_Zr+*2#fTwCa^;#H z=>aY@$oqr-HmqD?gN_~)jq>s)RDLYW3GUHg#Y~ROfV;+|5C?rImVSf(1%^78?!0U$ z>2F!=M~sX?S0K4Z_&Czwo7yf)tKY!7;R`z*_gR*2n%3@!3x+{vcuLCTyUam`7Ct+n zt>?Z$nq?sOB@cG6WI$y697d}c-iQS|RkqFY!Ql74)Jm2grC%ek!(N(R0_Y3LvAs)5r=Zp}FWffh`3Xmg;;F}y%I%}yGMFbYpu z7<%58Og7h}I6Qd7A+QrmC%*whALn6#_A?YL0OjenXNZKpEloYl4Q(FY2vUbNnx5Ij zT*H)#_HUp<3VAHBYx0$k(^L7KsC8=-r(=t`SY{uUQyPGU6dDw2;H?RF82kmyFL>D3 zT|sobfBClZb-1MleTaz>A>`dF?L5G``Ie^m)^q#rWhjj2eyj^1Ifd^+nZOIokc@ zHsMVxz_){K!SJXtfb=d-uiYw2fVcbh=gzrn^RoB*5!hjqKHlQ zEkP49q#l;?Q$1Q;8amzWI<+n*1QC`O6WE(dg0D|^HnpmX?LHVZ z7SE@q@ssbli>6gGw$}C|F&0+T#fJdaE?Wj<)uKf&>ezELq0LmHyFCeGZT1~@u#*n2 zY3MxGx5cQBRlIK4hK6><4l6ytqEeI@0HZ;O=*QZu)q^Hq)?j_x_3OhBp$E^fYcrE1 zaAg~1+Y={N-W|i{p{0*e?^ns=2_kyGb8YwWxtU{_n*a7)t4>=FAO5hhi@TX*xDym^ zr&RRV^DL`-^?G^ut$Q!0w=N1Q5RpQ2DxOERO4LZmCo)g*ND+}@M5qOH$y;baC8Uh{T{`o&Kc_9Dwa^HjW=4>WY`yQwou!jOU2u8zYy;! zuYhM*Y%4sUx;wP$2SFULe&gz*%J`j_ZhwzTpwiR0s)hL?xME}K*$ii|PkwniAlQ;n zx6tU4IYN*bv+=>t3uFaJpJCB*J1`pDX<<>Isv#ZP-Sqx>CNL`Q0SDGpBMDdg#lAOl z%1V)BqX6T7%&}g0R*z;~eO2-O{`T@&NAYI8f|umMR+o;rHh``o+&CQm-$;%pZ_r#( zeKQY-;>_`WjU_6_24uRHlRb@aG7_rrq9^H`;Q_r23(DD}lJT>FMUZTGrY7(Y3aF^3 zY7TO42Fya17qk4s#a2hG!v6(c!T{rKSY5Q_u*?esRuIF*gA{;=Ut&MNoXG^{7<6*9 z^nPkoUY!N`c?JoBQ#kT&=Z}SxGp@d`5nn?)rmzkgh4Uips-g* zmET9c%^!m1MRsLB(ucb6XAKC)IgQ_wK|{I|(P$<~f1tfwWk}SsekjS~9-_(|ttR0v zSf~tJ=cf%+z_i=$U_Z{;Wp=o*)cPYJ8ysQ@*U=P0tnlR0E+-fnqB>>RTy|~HUB4Bz z5%%*!+*!@SB0s9aXb$Z#h8Z#)?VfHC`hejZsz-+7pI;b2DiX2sJX>ZAC#Sh@ag$sR zYqf!G)OnB>gFS8zU0@N|m7F=3>(eyNW-Ft7+W+R(AAxNf-4KqIO4@F@!?47Fy-$ZU zpc3cv#% zJ^y4x5 z>099}3F@kM-mbbY#qhqjM~m-ELKCKRw3-W3ysNJ(XUCcxSfqdm`X;9dpCg*8+2c~{ zLCjkxVTEHtVlD`17}CL`r^_u_d{E-Gw(HpH{c({;IwGy9mR5*Id0q+@x+VNPlm7;F z)t}(HR`JuwWKNu43)x|`>q3jzjis2&p#J{CE}B)*IhnVfMM~j(IPJf+4{Pmlj_utQ z3OjsTlT)3AW>Mo>w<0IXnlI;`WCNWMWkbXk9HV1tgwbyTDKBbJ?|E6c-s`0 z4dQOnqEx9qDWnnNEHC`1iX!qdO2!b{$6y?sci;`J-Gr)O`?Rm#dO$HyXXoTL#W}Ao zkQ?5V3}51tntGZcehppH6gV9%c(iWQBaoBQNnRfyJIZyR=*FhIic8CFwj#%HcmLY= z#KJnI2z@Hd)BX7fv6&fUHh5~r_P&`@{KqG=^yVcbNHL5m)F3bejzfg2GzP)x)7Uv( zYwF2WaiW3KKrSMS`g}Qc9as^KSa6||n(x?NApZUBbLY9rENxon^@=)IVKOp&a>C*T zXV$Jc;WdZ>^?@}s@ay={N=H!yq^ z!kupS@MJG4*O1+kw|sMWbvBUY@PZUqeJgm#dvM0j`Jzk!ZG!dQcB7x){OUc1 z`}U$^7C32kLTcIWbCH9z`J8mQ@la8DNwY2s-Dl!4Ab;mX&?q?2bP znDfj@EKGY!i=lbGzQV6f=USI;6TdBVVPeo?eL@_+hSSdcrf{86EsQI)6wUm_5#C9M z;nzO`(nDy!0imOuBWmF%U?xtz?t4Ub*jDf35NBZCqlv2m_bL)iH;!S(W7Eixfl^kxJ@r}{-5Z*8LU)dgi{A$2P zlm=62Fk}txSB=Z!Tc`oT+fTc&uNW1ud&+QFF(e(vChA1f#Glj0MNwV#80|Jl2OU$% zQ*zK&c%Cz*4jccE3%&l)Y&A`-&&Stw!OS;>wqk;J)DGR%R%l&%-)!k@wj-U$7xSC< zlDI~$-yM|dX70^dpG5C`o_eYef8i~8fG=&S?0O%pvzgZiprxF9djQa)n|XQm$9kH1 z|5-8A$oZ|+$PtK0{FGGPE1z+p3rTC1QJL2H%UT=^ZA;8~JY(0Lg}NnuSlz|x5n+7v zTz2Ww%ZHn`ZdK94f6AD51cfBR=T1VkT3uhruM4H~e5UrHtMYbz9>h-sd@KO2AtKSa zV-MDCp!=4$6hg&Dkxd@mq(x&Fy6yLr_uV8vXrtwktk2YallgY?_wGtpn}ADDbY1O~ z957|R{kAw8^PE+-vTi=l1$=IRL1;@K9gz90O&<6kELjdLEu;dafU*|hx!$_NP#JBC zGd@J>(38Wo>0T8zNrCv?U^TKKEw|*M2T04^-Q>b{!E-h@K|G4}--4zJfaHl*MY`3$D_`Z*gp)x71Qqoh`KZw`8%lr*AEO-;VunAD zyNW2)uqG-An8kmStpfGE#yq-`Tg>iP1tt}eW=u^0=|(0HEi4l}H?a@|-V21Zd!m;J zpnM(JMlEbQKm}9&n<`P+Q)m+Jv%Ei5lpn8Ob(gY^ioPIZmdsLt7<{-Pnd&Cd6C>9Z zU-v^bNOISwJCC-si@cwVE^CDA6v?7-N!pC-^na7jb6nKYnHR0!b=`F~iR&#(AGLY~ zSvAR*Q_LdB-itLgG#ZV_q^ULHcPfdGwNdj^83l_nuHr3+w_)$=7?6Fyz=-CKrtC}V zxs==I?tj^b&ig%lVs(rWpq;1CbHNpJSYXBN!;tAls7)P1=}SHR+8$U57d=q^hS^)= z_^z}r%8BR=xEgaTwuZxF2%g}FX!P7z$DdWNVhW`X<1_!DeCh@-T3caDV{~p*V=LUx zg4mLVGKM5~iZPeOtN;zQou?;RL)1T`FO*o}3`MOi4L6$b$NKt zp!B{!t9Dfav8$E>we-r|zFH6cYAQA4TDdqGj!<7IMlbei=dx+x_Rc!s>lqR0(c0Z+{&%7tg_x(Cs#(@zlmJ-aPu^|bg zVvXTSc!}4!id^y0UBuPFcEn_lYbpDIu;)+UVV?}XSuzAH;8K$45()Z-s2zFlx}K(U z{dWmO^*6nSCwAajm&H%S>U8Ogcodb9kg_?n&d-)+^8NKF7`SYAs|I92n)X?oxHz`g_fcapfw%V}L(0 zsksq~Ijx9C5NoFu3$Udf!$e9ksUu&VYfh+vMeH~dPDh2z{4vLN=y0aHQL@Kfys~Y1 zPi>kbq>Su}P$!Qc|NEVk>VR`s9e8Exp=u*#x6DC3K-eLGyW6NFPzgBwaJ%DO#MAs+y3}Nk z=( z1n|_rM;MY6`UOA0@~#hC3uphkUM)x#LiX6?>X?;3-dW*5Q!869Z~^xdM=;Q^y}&1z~Hz(%28@AUY*pQobyR%*ft$AL=+2AU9+kEe(cR!-vb5|FeLR|xccG|^o5 zoyCgr)5%hE=m7r!JtL?qo%gp>C4;DX$Z15%z4#I{;_~S%=oH#d_cICmOKtl?jQ*tO zg&`yCmEPLMek0T{|GtqA_|XCJCe(#;RKMQ8hD3`gl1snUM-XEhoYazK`(Pr-0qnSn z>C6y@U=Id>$^aRyU&N+$4DROOnn7iy;6e!M*XM_NzV;2xPN;8rUt1;mVS2%=)6N|O zY8I}liW4)P)+K#b_`r{WpbkC*#Fj+!Z7ynv^HQ4$ml?|9S>T4r+5T`B;l601So=R6 z8nElnhGSznBZd(X*BnhIGGiT96uQ>WC!!%Bh4(L4k2WeD_2ftT9h74UWW2lf&QqKL zb5Dx|)64}Ts+7*uLs!Vg6)0p#WWJ{ACzlOt@Gp@hAyF-^AF}caT%FxEy)^JT;0f?> zJhYN<&z#oYP$7%9Pl=m^ox_lJ+&Yjt-Cax;)oews+jfR2d>VwI)UmctWE<|NoQQ*t z8aYry{2>AC=`ghD;&30Wv7;d`&+>3?Ad$N;$+chuh_ilI0+_rb=Pn2XH&oi=o!|pE z>&WV%BE>Uk3%2SfA9bk(Zuc_nR?zRjZAx9h@>5Zg$qA$0NKhdh{Mc%n9UHb$9bg}ZiCzMn5SYQ1dS9azF^>svI!ZQ> za^B8NvUjuanFw^j7+`-AMTAlOBO~HKH|zbkC+~eOZy+i#AP^s+evjq@tmIknOW{q- zKR8Up)@D3ZAe+r14UK=wqI{MI%~FZ`Gaz^GS|~k}RyoS3T&w4USQu^~+U;1KXo0I6vS;R7#j*0<;Bt=vAsP@92`ouk;h}eyG*rChd<&3eOPQSy<|g zVT<22Z&K*CyJe+mt!EuVeH7Kxpk5`>Qa!wczUNqEQKogt%z z_b!h^M1K!CKrhXU670TyXJf)}yB=k_lC(N}sJd`d$Ymj~O&oVrH+STo6=pmT(%-%4 za;aO|`~P<^U&HzKd(f`+d90{$sd4bga_;?0mQZ^h1%M`fJ8HbLylX*0zpxQuC1QTb z@QbOe9JgKg&}?xe;9++Jh=We29AAv_vGP7@E1+DZ_TBc!jW4I0hyU|@`vmAmaw!u! zewz0p>aN4cgaKSXDR*Mgz&^-eF9yEd#56W&t^>P;85*AxOk9JMySJ}7aK|oeC@juV zX!=VBwR;1PVAtQc$8afnhBqLCVz^rrwn{P})x4SY6v9WIM6i*i4Jj8ltN$IVD{oo{ ze}|kkhl{U|i!mnwsH+@^9;(j?UjuN$f!R69fan-LxJZHG=B}9?m#6oo#OqOcp^~hV zCbNc;;`S#ea{O!UL}Fxtw2uYqVc_SWDx9&u-L;pM*Lb5m=YbO2uSH1ocfSfbvi0~I zaSMcrNX4vNOC>HVu@Tb-5XYzN|8VuoLx>6FF9k@oRJE8mz`Iu{XGDP*>0S||Jz;P7 zx0dSLPX(|^buo9)b`0Bz%)Ylp9>&yd3of%39{);L6(1an`b*faROdq%u?sWSEY$ZI zffR+wB=@^n$n)-$6zWlr88?RY={DU6)Jf+rPNtbfWox-b7;yJCG-byNs5BQ?`4&4p z@&J~%L+TL`sP!NYr6bb*0*MCicw7wD_@$5U#r3f+7@UOFo$iZ&t_Lc;r^q(JHG!-C zsy`4Wp#Y=QDht@Zhr7ixASfD+Y(}~z=F|230K@~g=R)=uV28xIA0cQRT;iv&*>pXS zfbAT`&?Y%bUONLC5Z9LjL1n1NKfGTa5<;FYVF?6Vlu~K9T>*>zhe5ihZ?X*aNBI~g zbTF}sX2O#nEqigb=A)D=7RLd!VWDdmW07Kku4`k-?1ZQk_UB)yVMk>P72hewSX8}% zGh9lp+fg?15wHvPIvcUP7Zld;=mXQojFq4gE!U!iv+5YuQ2S&(C9Gl1M~Wv31Yr7G zk+J|~Gnqlmfv(Ep0D{QIVmpqfOZlbX9{mS5U0L?(=TdDo0DU<~e|Q1n#I}aeAe-)W zU#EfLEZQ(Cf&-tEesmGvN8*sDG;tMzRq;=K0nQz*1e5?)gBCCd0^axgd<*r@U>0b3 zVBx~FB7GcdiZfA9y+-D#Ne%xENs7Dyl~|z}gd$}<5b|7zx%xc|{h}Bo+|90|`b|s| z+nZx6bN+oT3>&Uost;&IKHEAP;diGk``GTeh@W?j{YqQSsN+vI>GFkOt|#mrl#`&&sP!)Dbl+?x zEu7|H_VzX%L0X<$vg-L55snVVyDPU;7J(*Vg^ai5jkriz{B`~w+zsgs3f9nG7g3d= z0_KYbp|)em+@Z6vEt5kSWYcD98P_eV*OKM_;087sd8eQmVR&)9S0_HKTUH!L3{-=< zG&j@Skcz*0-vZrV-DwOo&wYDQOM&|Am+Nw9-1n z_Ynh|UXJW$OC$6}+OsR2gfmJ-weYS?Qs@JuvH7&1O~JlfI?S56D7m``zh9?+4l)r< z;+!0$HJUA|l?1@XZHgk;U3j}E8O_KzUbG{{5YSdWhR}jcwAilSaN(S}sdoDfp0LJP zUgl}zjMEO0jOQZ$qRSf^0Xo@t8i=23WJZ!1Qa}XnY&O|u-R#kRCa=~P&qOv#8b!Cf z@G3t?j(lYlvIaZ!oFfTUA73LzT^@O|=Ll)>o;2bI<6G42fSO)&e4J4yO4KKcV7t9b zrVjP!0*L@SsUhybRQBfh@{A;i+UB(Vetx(R_!9;-ktXhlwOJO-i*wd`r5-KKuhMc; zntnKVXX@NpXufq8xs9*4(Hgxff0PEf_d0C#7yoRrrF!Na)^*U3ni9Q`t*IE~0ph3Z zO(dc%?TDeVDOUDRw|kv(|_bW$_f=nOLi{@fR$;&e{RU2L#(|UJ(Df+An-~hh9eOD0Qpll zStAphj(XE3ufqy9!|Vh79Ok<19J(!qUX@woH%@?4Qh%`hY%?Dh35?J!s)}TNO7DmD zR$|&~=p}o+qIaP_oWdL#U6A*C$2PdqO+xa>caEs(e5-4JV!k;?VMO7}dumADopC(Gh0`sv+$&fnaLFw z?Ryz7ff+uG(n1>K)IAkE>Yq~<7|d^nOR02G_7lf#EJZC!)wgSj{@`Htw6C(Uf-b|s z?Ifi^rl=w5cH$V^PCBg%Q+A1)388gX?u$B75CM29$S|FWm92C^7p4!tL&(#T}C+?nqXn^7Let%4zmsJr)_k0KXCVdGqk{4ek+p|OuPDcb2I`liiA3|*bjn6{`$Nl~28Ud*E5N@peb2!j~_^PE;D zVG7mC#Ol603=Uoc3p@YdMH3eqAPZoC%wrTR6sa55lbbuK-Xea=aFvMI<%03&R zko91I6c{gO%)h7B2*0qA2nCRQ$qbc->|W*SXfP=C-h9GCm{QTNHyTp#q~P1>HSWc8 zDyiB;;w>+G+`$jzT$5eUTox}eYZ)Y*ihSmi@sbOa9+btfIjf7n& zBo|B)BMj%uKT2QT!$-&9F-)QugnINdH7I{}T(hQV2&qM1n<(Tla$p9Mh*!?z^2n~- z95*f1>{ns@d+qP}nw$ZU|I}_WslZhs_ zZJQI@cIM6Xzn^dKm#*qM)m_!qzq8NUYpuQ4Iciie^R)L`t;zCZSi1aCprA|JL&9XG zr%2J*q|j8LN2eX}7<7zHq*{~Nqoll9?4b5qL?Mz`Oba&~J5Qb;88eHxv87Z6fBf@r zNI_>U3_A-tDij|2l^aDs_9KCp8@sd6aBmP)dZ+ZfB6*eWb+#~?xPX>*yp@=FC64?eFaL>Ob<~?OKKyYPwT^5f z;p6^nF^n^7Z#Tn#Df0-A&Ma^K89;py2Eid?{e|S69XODR7r%D-YiU9p40}nG$1p5H zPpXOd)nnVAGUvo=nupWtSPTxx!;8t$*}DMdzK0OzrjB2C6+yWu1O|g~HszjisK82~ zGF8*c46{{!gxo(-5;lz+LOoX7M%2~HF?ZXR>am}qu8MqLb1$9f99d6&tf+Qnc)TKt zC+%ML#k;-n{4Hp*iFK4CJY4>_Uzdf7tKuc8^H@UdnU}aaGT4`UWRvS()eN9Fn&s45u@ktTB4#=J`z7 z1W)uZt&l_^IgI}*yb-fiCmZ-JeGXMZlsI`TNAhUK?MCy48m>Sd2}^5j0kE$3sV`iR znP;tX5qp!%IopnQxk}nIsOn%vvLYK^9LS--nTxJ56($UsPy_zu6bzJ#8f-BJY+DJh z3T2q&c7Z)NzOV|`TFuuwr&X_!$+*7IeX%y<0p%W zCs!SXJf+^n2YvO)2(5(ltM-l#k87+fDx*urS*&%{JRY;mQVXg?V_eVQ8%;fkkdT*I zEPc9gsTuo{IZNV{>#ITB0I8jE7iF%d{BuCu=v-WC!Z$IAH0@Qn01pKla>@|aZw+eO z&$AjGqT06%L^BhkCsc1zPuUKh8luOpq#1F9mZvw^X*_l8rWGXwA4@Z2ANhbo`6=jK)UMcj) zCV++cdSauI*jxtIa~_j2#^Eg!yMLA45xs$nnKohG$N+6OejZL|fy+M1S@a2R_hhC%2O1Bz0<_j9FQ5E@2JsnOvYr1&`b!3df|w|W|@G&lUXNgkX(JYO-p#*Xle48 ztS=kaAysQ;*#c>CKUDXIX9P>Qdl0^TQ6n*Y1fKni{3L#pAPfe}hGCo=Ecr^qWZBu((0JtwDJiMGXE5aP zf&8C9i-oibhELk1d9%f|0e@QfnS~Y71-_&YeWxqGURM!%KL|51YcJKttSpk(V?{{Z zM{sy3gA9QS?`?`|tFbqf8Jj;^95z3>m_gT($UR8M;h6}yl*8m5&LQ-&@q<>L=G~@E zr~b0Tmw<1ri-zXs^XtBLSM6H?4d6lf7IFp1$hHXr%H*KSkU@@SF4h@U8eSp-*566h zec5YTF5k6AxUx0Qx7D%;@6G;b&^{V5aT^X3_S^4}UR=41$4<+)t^p929x^6Xo%oxx zb&})_q+v{G@J@LZp>W&cI-OR_vy)IA`7{@U$Md*RXN5>X`Zzc*Jo* z4d!jvbbp)znHSjqvie83yEu_(*JRBPk&d9ow>uh{&=G z*mll%oqvTl2Gu`tK@KZI|1tk;ge^Q!RbhS&fOk%Psu`u}f9j;Hc2$~owjZIJZsJ|V ze+35W%ZUH5h3Oh52iLfsiCRZ|)OHt59_v_1n_A6lC59U`c*t~_)>;-$UVt}Gb%Z7P zJ+KHA)mRqLN?H1W-bwJ|W`TR~3d;e!AQij#UEfF72Z;R60n~30+QqA0nX@3h}f3Z-wCsTiuymVn-8MUxBxdsznx2&PTkiAGwmVDgIY-$T)AzCh3& z(}TO>_tqBw`tDkH<+2H4Bq^4}!Wq^=L6k45wAaXE6pj4*AZr~_enTu9rcLA0193zR zTBSl8p&gJWq8Bu@C)YwKB~ipo7EmNVihK?OEx}wpDo31jpUDzOZvYlleZI13PUd2g ze>ofO6$aFsMU-DD`;EB7a;+ z|K8eHiQ_LnD4)pCCas6lO?K0j(ZuvJ^Zhs-C|e0>rzpZD69_Yu(nR-}wU@I$Iy9B% z9C*Rp*d@)RzD%Ssz@1pc=m)s;Da+SZB4*%p)Vb%`8U#J0%JpSQ9`wvzhIRZJ73)ur z)c(8#lBtJfiawXEgA`#o?nMXV2&0vk&*+0E^>o9+SgL4H5mu#!F#;6X)e`!{^a}0M zk!8%5b=~$EL3DsyrFW!kS%Wwv6+-h%LYWxKC-AwA5@2-%i}@KX_I& zOr!JDIli0(;zI#S$>FqRWsDFTqC4?)#;+dw1d3RUCIeSB`>hOs*FG3n!r>5XhyG72 zNKO}|zn*_@t&i8`(NDmuNsY3wirWyXN?UMJc)E)HU;o}Ka@FRvEdwb|+t8l&_%PtXp=0ELp3Tuz<1~uh3ReAW8ycRL- zW>5PxlZkvYj`s#zd|%_9(eiggzGwfH3a;@%5okRA7F_uEK^puokx5CNfKYku1W`TUVie?z@Kt$u~cP=>z!AzzQw+O3i%N4vK^UT zw~jAFK@s+zdT)d+h=1oGuaAuZFp<~&xn7Oznmqjf9@k;gXk1-%X0q7=f_^>ZaPGIR zy8kWT=`isgrssAzuC95#x*PUWT|U`d2pGF#J{=E&BX+8a6W=5XOstskD1(Fd1XTJ# z5})V_oo>k-qJk}ozZ>-URJA7{4~#(-MfzfDzX-vAtkYols4daW!sI1^1rLyWuJq7x z<|6+JCqwYz7lQv+GmMve$}CAt(k=X9G&=ZJ9P&444Qtn`odE&rkfPvy=r85tn~CFm zHYqi}9kj4EA1WElL89Wc*>EKyube6&rn@ta)#@+~RZyY^1qEDb22Y|P6j4T)Bp+Ca z_4{QcH@#~i6``40KWQGMY${0)eOXosv|-+iaplkNHLpBx^(T~bn>pVf=ILmgy|T(O z31{fj}HA?4N@=<|MHKn0!8A3bzFHeIb6n5bgA0uV2UM)3;3~7nlZjd~5;rM^Ta&A`G%Y zT?01Fl+Z%Cn8!zwfCXZLRTNRm<%ITwiqm^l`UiPUqkabJ&F ztFh-#eMISb0R=n`AU~3wkE4FabAY-WY+4@356lENfqIB)Da{ypx^%oF)Ye6af*E>& z+RGfjVe2Lx^bNau9%^%^(lg+I1YLm8X-O@k)Q9~T)Y`Ps!La)?xJ~0<8_`H6P+Mw> z$>TSIE_?%hPY$|^va79{3G{gXfsG!a`^qqDhTKg2VIi)xOviAl>Ob(orqviu9=r8#c_w61ER4J0z|0g2mN(Db%1F+r@};q3;WX*$$)${(9KP zl=<2b{tBIfK-s-#DE)@{4^OFnEr;(a(L{;v2x03yYy1Su8)ZnywQ?e)=Y{?J^Ek|R z`AIJRR(^#dw@!hCrA6&LB*(x7*=nCQagAIzCCVC&H! zjGTQt4Zj0GQb$&K9M${^f59b;7{j3a?ob)$iS7J3O_26rzF~>D*?P;);sFF}aC`e? z5b3B`)0J~eDbXy%THzqc^>`+xnZTEmb2(uULRvH3K+7=PkN7E6J+29$w}UkA3*;-V%gCTW;&EIowEG*AbXJtc zvcGybE1+bo&cY_a4-n%wYYuZl>$j-~JA2okzw=t44c~n6<))soLERXK;M9Z(#L*w9 zXsB+oQF%-e0@W{H$i+nalq1MTvI1P+9s3(RO5q>?xNVLbUG-SSc^nL3GrphNQ6vk5 z!v3Xk>l10|!|x$y#=>#DN2IQC)XH*xM`q3T*)`mtpH&g|XeN^kkF+^lC4`v1GFel> zVx5yUj2;X`k|IwkZJ5T87%toYL)V*b#qfLDMPgv$a!H{U#6O5jY-p-Jk~{LEfxF!Y z^T^#Hz;1UWn~8f+%M9E?-3&e(U=@hk-4wuA6V?Q>$^y$z7_47_VQmpGAW!_j4|2@KU;2*=NtdIX#)msNY{`E zrIf1hPQyqLSE`f+3AKxuuw?C_Weqz6@s%55$1tSfC<>~IwqVd$*na0tymnP0VS2jI zfZc+YCwE9$0Z(4AlVTQ;E(V!occ&R|kEkt4B15|epJN!j& zqRqqw3miUO(#urjLF@VsyCc%CglYxTud40jfQpTN6Yx1iaBrSJ=X zR|pf9<={Vh#Umk;11ucwaS&0>s`mUooUptj-^a=tZ4X8`gz{_v^~X0sfznW?!cu>h zT}i)MO);v3_t0kIA7T`g5nXn;7xIi3Hx{PHLuZ;*5_r*Y5;qxVwjr?E1UsC7Oe<2oFs7{)58TFB5tkk z+v6%ouZNYK;#i*!z-f7KZNl|h(XXRqB_@p`O;{uTB^7J~(IaE9qV(E7YLBoqLO;j7 z#>R8IcB{sTGts-)-z))Mz2qdR;em(b7(gd`WzS}B@Vwrj2_DV-fJr7+a^Ehp-CW}lMT9J~f z>LR4Plhtu-0{l;rm6Ppy?z50nYIbaZw%k>(Zhf$_A`w%gaUTu}T>zHJ5in5H2yPXt zI!byKrn$AP0$`A>UxeBB)gbcdK}^MSW1SDeY1-~6#6pww>FD_HYV}YLUa~=g0zG8O zAo59G(EPlU*Yqm6oQZ4!zVa?4s0`y%H3tZ&lhijq6%><_$3c4o2ygQNs!N9Z8s^R~ z>;QTG*C;e3%4hxtqXzVf@Z3KIkU0u=^P*$|FvQAy@JGr?1~`@6W|k48WAIkWOwyyutVOWsW!C#mCX;Ph%R`ja8fiut2m7%wCY;fF@R_t= z*1vhSF37?c45QOJHK+)bwTEZ%FioCpcXj_o*Pz>4mj!2nAs<<|0;lH!{~u}ekh9si zOL+y-a)VOG+)&msn1#R}i^9rc;&+&zByZxAWqtx~Reg}Up=#8z6sIYHy;w91gUL~! zkTQ{piqye`I95wpa|^DT68fmv>8H@*%8v+AW>;?u>tNfN{AlqCrN|b(9F=I;1vb?z zvl>XX<5+eL6cyN(DEg5hJkD(eVjEC{IVcb-_!r$K@Gk2pOf*2rinAm}*>=qM&GLUX zo*Bu-u-#olgYS!QP6vZt&-dqW%AGE+JMe-H3N2f*)j&qtA9ND)^VnkH_QPt7eCVd$ zTU$CBG4VHZMX1?VqG*c`+CCC)^`fe)uWpwI0$KcG%If0NQ03K~#X=Hq!=2VpJ5;LI zg<#(&=w)%&GmPGL3p8Omz^qHxO7UsCwQIhfjv!i}LX6b@$wYJ8tPBWJ-o=mjk|LC@ zz${2AhgIKP3c%Q{&zeU5+t3#u0`oym2m4~Pn4Naqzm;0=V{tg~_+vC;^<^3?npps( z3S$kV+F}FaORZ=wotSOn@r;z-Q!$TlY79X8(H$_kV|kKZO~9x!yjyZd%u{(QqN9Fse~4sQvaa*ELCnbndk7=^i>}%>hffKZZE`uewtHUI=%Dx0gk<$SRSY75>4}klydfrfiT0895s4 z=>rgo$8|m?eUw`rUwbJ|tn4{5?we{vak-w=}fLsU)tJLM$`mM;&i*dS= zoL3t5k1JD{vFk`vik201ts-3HP5E)aLfR9xuk=cfGnMhIv0%F(D461#bkWn}03!`$ z@t)Hx*X0{%=7rqJK?iFU&&F@#+ArFb4yr4`d7w z03c&;6VAk3?s?~~P$r!bqDH7k#`#GQb3F2e(PBVPraMZ+q7XD6GGq~|kz>g=6e{u1 zu@x*$I@3)yND}MG&kT+%(`%ipu-+^`pp@QCoE@X2A^K_Sy0lkT_9DdA8yIYZCp1?Y zBu#`9fdH3-OiiH;cg*o*XJ%-FVE55-N$jEMraUncU9^o=>3SM*InsL*^^&!J4WpOp zr3vRM#*B%mjfI|4;mlapm4Y%7S)*2|fG>yJ$1YcIv=2_Ec^IBDZbqRH=4s&cWR?r916nvYT9{5=o}=J)ogFLBPwo{ByALlxkW1+XWLs2Z z2wLAo*`UL&W_iO1w=G+WR3skhZG8RhjFkJxU7Fn_gZFhJ7P7o=MFw^R#aczVe7U9; zT@~YI$66NDAFkY*;?_X=prmI~AKsOM4V6gY*-j0HStw}D>urt3pn@BP(Xm9BjjP%suz4Xpn~wVmezsNlD?npo4&A~Iq3qU;hjvJssHEh zl!jq(eoRdBTA$X4d(?!6SrsN`4Cgbr0%;$fPMTsxAULS!{Vfa0z^3b;Ez16Kp|GT@QJ@`QUE39XI zBrgXHuN-gN&gy`L-d#l1lev1`vooX(sWovQe={Q6qP+{=VREB|L`Go9boXLQ-3k== z9)+k$jpmvcF&=k6C3^-m>{^+!!)-uNxl(n;g>K8X)I5=(Y9PX4;ef z7c0~VxSk|5z-SF>b`}$iF5Gz@Td?il2qj1!#J9&g+nm9|^i*(oC!{jW-4ye;(Z?>l z->yAFSm|Ta(0_#HG7*ZD0tnL1Vce=#uId@VFW;`EFV|f4Cmj#D+P2c9)&Hkk^)Qfw ziHZR^L&SR2K+&ul&qfYuWJ?3smd)pBpn116J1djT1V!SR`lMdrH&i8FGuOOA6v%WW zs973}Oi_mGH-jC-j;hE|mdow|pWo8mUPBWnaMy)KUlQ#{Yb*`2(LW)v>$4LrAt?a# zRVDX^%rYj$Ss;wWL5`gLq!sb;oK5SFRVK^ro^ZG4Q`*V>PtIqek14ayp|H5$=hy=B zw)6_PeG99$IT6oBkOQ`~Y4BCxbENEHh()O@{8<)`mb|2Y{hc{T(b#O6h^G$|hT2yW zbhj#uD78y%KXKfMVnpWJFu{3K-?xmM3opE78Gx$qdo_VA^3^D9Zrm0P#J^>O&|+vt9!*do}B&&`_& zY~U+atLVlsk|AYu>g=MA;6~VAiBAevvW6&Jl&AQ*w!apZ>FXn}0QLn*tl;DiW;#N~38(FZds{NP=ku zqTzOi5vq9`0oo}di5|cs&i`<2@oE!s8`E$P{FPxB@i%id(>n0neECUj zmg|O5!>*mX?tCN-Jc>m`ac)3U2q~AH*bj)67`zkk$Ky_^b=tjigJZgfLLU<9e7-!K&71m;2QLS}bRKvQ6a)vxRdC&YT2gd|#YL?ojDrjo2! z|Az^d#c;64(kD%Y@Q4L!w$uR*b}#EnuB~hD!mg2lS9v~{Y+qD5fp=*8?5PDu;b`my z>2n=BGt@a&V$W?R6f0~#m4XbNLqiEe0otRP)MxMP8MV@d^0L_leWLz&%J6_Y*s2+% z${%sFDCSo{S$+6fyA2a$&p*k!u(Kyr(>y^~@58`mn1)?EB?OO})4RI9=pvU4nV+!I zV3kyHZlyMI?x8(0iQWD9=?atMRe2D3U#j;yU1cJkLN=|jXg{5q3a;o=bwL8OctMQb z?iLrBua%oYZgvZ|VTX9entt8zF$N6c?%Rc$pV5yyT+ud(1xT~o^*Rt)=%S#XVGyvX z5YBqYiH^3tRpQcF1u4t=GuT{p%E}x zORM!MGY3)9){`evCP@opGy#&gB3B5VfKejtxG)MntgX}|Md;a~=~S;tH&vZ#_i9*3 z34>cz2cAW{O`pckhMq)S53VDrI09Mk+pn?PI50zZ7)*i29~B_;$5sQ6h{zub8=tSz zg)%EE%IIE}<6NT13Q9cC*tA)ngAhOmkKDjUaqpVt7E)L2wpqU;uHGUJ`xk>|pF(Ub zD9z-sV~vV4j)BA9NOup?V6BMv!&_6vQD%)2*Ie7SxDR zHgkN;ZPw|>X~6zmf7D~h=yMFA-W|Gmt+o6Tt54+y=$fxoAPkWoW@&@i;^RxHex{ra zaVsn9@_hUwnwFX)%E(+Jw8uT6aT;(Q0@c z{uLSK^?TyIM$Pc!Dh0%EotrNWQz^I$qpiz)i7(PP0%edNFcFj7u-3SFD=?xg5r5BT zE_oC*q*bBH+bd?ve@lIF*VyJvhs(t;!0gkNCM*6SPnDB$ zP&N)01x=Il*}AI9mFn=NfHs3&75#a7y02YlCEAo)FB4i>U?+J?GO8anM?8D5gU?-Z z%qw1GBFJfLF17iK#Ye)w5+U&u6m56}`aC~C>KVcf!%b^DIi^xgxHmw`hW;_gid z<7i$vU=;#G1~A;CH?Vw)8o$eRpMDlf4>BP=ax$hHhSa~4d!pH68YO2Rx{J9_upTTF zB6E%etZed!+U<(TlxKUFZW+>a%`cA$b)ntaA@Iw*Gr?QR!cnp!7eJVuzGKu^NNaOy zxm9zG99GL7)K8|6C4O@xaot92)eNh(;6?lm8o>~r!O9eyk5=)Hi=@plKfDl&oz^n; z%}YdmU_N&%mh3PwgPl&H{NC*3+2l3aM*DW*!~}5#;*MB#r-C2;WaUWm~06 zJS$dF&G&oEG(o%fk?p5!ScN#QQpU-s4}vcP@|^*4h2YsuQjQk7jCq)yg!ooJaeOS? zriWNkml%9>eS_5q@48{cYXd5!!nvA?+(ylHQfXn6%?%_vVP7DU>?jDk=A#9A$8jFw zBzI^?xa+K_E@GO?l7p6P01Ul4p<*-q2=@U;*0B>%anuf6A7Q*)EBPPK+8ZsAXk6sF z3@*>M+Wb;XNYz&eKMU}o={f#%F(><~u{^as3^d14wxMd8$e7dv=#DLXI8BaroP47I zm6VOsb*QklkdWJODZwu2?}!F6g8&C!`3~0uJmmM5q9xspf`b><>Y6A!3hRra`(W@l zH<^}<=v^K=l17aUyi0q!5fh|x2*-}U5mi|!`V#6-=BBG{85>Row2~z=(X;LdxMk1| zRgYT6JDJVqOo&bF;HmVSz_mLeZu>caULJs zp2HdIGHI92b0u(hoWP&O(CDVdW_ksSn%ey^gn@^qlxF+N@k_5|wn+4{=m{JI9#eHsDf-%+X(8 zz6KmV%7pXFl9vf}ak(h&RxXvh%MX+mu$%(xo6%8uS0M4_ucFEf900#OdhA;?@`KP~bWZ6b zV92)2S02Ot(Oo*u#yXeRs~AB24UCp0^^~6jj8cElITtD8&^}g*gX5lF1K}#RdHx~P zz8=HhHAyFsvkgA8A%ex3po4QHi@gE>-$8Tk{4M)RfxP^x8%bxfi~z65V8ZlWU=NlL z)@h1{8yI?|u^fBb<`v^nrWGd*xnKAh7F8LLGE*N^`ZwwsMwJ(VjC6Gg=J&VkrDAjm zs|G&Fs7;7oH6k1bPSl~HacLLtILKCF=>o<7#t||(DiHe<8CE&Fk+Q<~JMM<|3Eq2b zThlih&o4=*5r7N9KO+>`@UA>f7^qx?EW6#w}jI@V_z|a?h zUPGDcIom3YH3b*H=F>G%$AO^Hs~m|@?IKXwqU+6m5lS-*me0X>nwKZp4-#{XA9|~@ z6N=NE(`iy~IO@q9h)b$GaSJeK0Zk@_Nj%phHt&$?9+x8Y{EzKI>=6j@ zdTWN3@r$F$o(eOIo@YZUJmj&P=qYcZpi7A1SSCg~%x~RP*4+UzUrx)n(onVNv-0(| z)X-TeJu{5Phk(EHkUd4;$7e#k)eyUcsP_tR)y%8TQ(DeaM5>`VG#eSXzNoVapC^GE!-ET8>9U{k2?Hn=sCK^$i#%*){;KL zNQNv_L2x zU|t-1p~I35gv(mBdotMhwPz)Pnjs-mK8LZj!p5apAL}|cs_7>}0nI0P ztb6j7CM>80Ioa^Q83%urZ4AIC7us&gpWeg!P8@pBz=xB*2wg5R6SYQMtskUWLkL@^YYa>Qyx zv8n;RW}>_h ztMDavV=XL{S3fVu$!+weBb|U_W4Xnqk%(sP_`vC?qwE)PMOjGVgcY0O^y=g*IsuALwwg#^o%PS2hW#jy_$l~-@yP`<9ok4ZxF4jp-exc^K zU;kd_f|Ba3UhwEU%O+H22%3pN7{I9Y`b%YNgjBWBHRpzZ%x#R4>`V3v zR?|-qh2%)3;Z!iLB%g7(OY5#(wd~nkuIAWiL+_>KfuRJQ`z>!H}^k}e+b~A8lE2hddnsox#N<%uWQUgf{>_LxK4}jUt zsb61|W8b3>0Gm59#KL^BhY-LwbpLEF>zzE4pI%tI`gqA=Ej!+AYi2_^1-gJquq-E4q(ZsdLXdbjN1!doj9d0``FBp#2KnmPf z0cRMmF{mFlrErzM8$z%77?NKhcDUfh#h~S@6q}sCS;L-mK0Um}u89i7ivQ}r38y5T zqq9HolE*Y@t(#4}_A_Y4nEZ-baP>HH{GXpb6N6_C@1lA_XlO1xWW?QmB$m?0)V*{J z{d>?|tkQ4_$L0VRVgd6I!L~j3>OfMr8!6T>@PZ&let-wd9T=V?@sPCZ_m~UCon0}7*BNp~C!-rh9QME!~-h%%bc6^tp8w6n~M;Rupk?1EX#VD___?q^mHSTNVvA7|sAocO`jk%jfLj^;6v zJGQ3r%pBKp&ua9Z@nrI}Myp_<#W^d+?C$6~vo4tQh;r|D$Qz>yvTg~{I&fmCtUl?o z7I|$fF&Ex)?;LF}4Bv!t50cSC*o^cnKxEZ?@BQG%F86)_9NdyuzHOHiV+7*Jw&;2W z4ORKG2L!Rd9`&SG&8G!5(S%ayAZ~mC75T@*Cq_6h1yY!}i($Yy?X&F1x8!b@uUfAQ>;<``Q;BX1+B+$A98@-mC=X>(^Dbyf7F{oH4GUunkQi z$PTn-`%EvTi)rPBx>LkB+;d340hL6OMcb#W^sbUjV4gxh35CvcQ=+b0F(;sGOqWwW z^Q{XT)Hlom8g?KTRsfg>?8oTJ_hD0I{g&XcC7y%tsHkYa7u7SkquX+Iw4-eMP1>%4 zvVC{T%}xMF!c%`u>)z$(ciniy!+Ao-`~F6JVwvduR{y1ZwA0H^zZpFk$3KLO*0k#w z^BfM?J8`suzP>a5%=sTB_Nj{-6rBI-tJb0U6KyyKSM>E@f%QMhkO;bq2z$Cuh23fx zbQ4_)uKkyYub$Q3vg1d}{sYmbz(T;(88R^a4jfS%OxhuQ=C9zBICe^r)Wm);*XsBz zKdlD8x$Nh&+J%~Ts;J6+PdFcBzaHiO(G*xa2F#6fd5@+}<{9sX@~5866P{fW9BU(CEso|1F;dKHSR*@Se$(8OPRASXez<)j_u@ zgBp!gd%2Z|rl}1&@~cHst(F$~D%_FRk-K6)Eu?E<*Q!5A<Um{UIJ{j%Yumv~@&( zc7smqGPPnMl=D<#(&kdXSrr!(PJu3YaT2aM^M}QBjQ4NyWna!uAh1jZ(D2=_ zXq9>)SUWfrJ!-XFcGMY8L&gpy76GL#JX`jAL#` z9!&oCfMc>*ASd#1qQ!h*78Qg832P^Jr9{0milEGQd*kL1HN%2NK-ktF!{#A1c=!fs zQ_VY8ObyxQ9x5P)MHtKhk_185I1T&hhCN5V2fR7_UvBIXj>n@s-m=Hyjv@u;R%6k{ zzTe@L3`A)^bDh2CS!sg0)abu`l|h8R%{N`QF@S+a02F*i!!R0E>&!`5zWO7KQCD7z z8ehZLh*{|QDj;WfMsQ3!)W3d%?m$QV$eUsWwN?oyi3m+3(!t`&L#~2VGgUo~S0~x4 ziug+gvQ8@=+)P^9=Z5(qKh*|*Nk`T5L?a9{uah9M?q>O6-pO3wCpzegZk zBFik%A~>$yfm;kH8Jo;t`q-PL0>m_jX$(y#9E_I z)w-PfQ0p4AkxP%2^s|-u_>+%Kh0ceBO%h%N5s1sD>$`azo!f;3EWJYEW5%e4ALjsN z#k?LqC*9waA1xa^7}*UR|AywD4W?J_m_>BcFS7@)Q?&YRWzo)fY11izB*At%fAPG5 zcc|Ht^3&sAsOQ+{%8i6N4M$t7hbgr=&Ypd=m&sLy!I57?>TrI@j&j9avadGR&Cx2|XLG_k=bkZ}{ z`ugezJ4})nbW?Ml9EHQsY{65464Ha{@5WHl|J(DLZ(rL)O>y9b^x3P&Yw7P6F8qv2 z_IA-F^9F^^Jh|PX4oCMucGV`v6nLvBZ~4SqAH&<{zZf(@mK(nY|rKG z)6JF%OFaE){n_`h;45m~)TH}>lWx70R4uA?nHlI!rOt=c1&sx{P8xt?BpO!KO6MyhFP4`#XEm>$YceZ|h2xBF4y?FayIPIaiUJtw z8_S2O^$!5WES%z$r}!hsMh@TfV_lf8};Wpr!Y~P!#3+4`ct(36Znz zh^Nl?7VqEJ-w2Zg2t;GR=rIMSh;H=4=Z<5bt4dkHTUPMC&ZqA!Ybq-$Z8E0)w}{=S zd2jF;L@NxmD~n|Uv^uZ-kpdn(;1f)sOvK>6R|aXDi^p>-x3X2Qlq1^cdEcPW*I%mx zfpZ4`25eJ(xJIfP zC4cTYuPn+-`rkO1L_td0>tm=e5zg(nK>zdss-evR=)3h2M*R-p`Hqe zZf?M#sOTYD*hxn5ZT_mZQ7_`~!*(e&3N!m0C`%R1fpXISszvv)qf}Oi!k7WnRlzSb zX8L;qs$nQ^WkkDltbc}q0kYLHRw&KXHsT6OzX@#m{5E0>{2EGGH2kP|A>6Tlhd9fk zfUh+k{NiC515U1~u(uk2Grv5l${P-IgIgE^Qt|Mb zkXs{%p0vL^`JUitUQ+C~<)+;3mcCkLsh|fJgQZ{>GLNLJ?48?*%*W@fh%87c`r~hP z9u!(~IceTYPnetT_IA3QtZC5g{}A!_z483Sn0w_47xuZ8Kza5MN&3rW~QN<&{f;Kz%!n&9SYAZSb zBUaC)mE=(15gU12Zs)Kztta^*f;b}cIb;yVer!jvd1h5`R%p*bxm&U_s}M?Wu*XTE z&Z>#b^UCF8bsQWgC@pcj5ea#LeZX<+Vi=H$P-yvk!iD$3R|Gb@*c*Nnbz76@%TQE0 zv0nzfcwkWw!><2sj%87Wx-&X;N%)`-#(6?+=Wg@439@<#TIfppk!#)yEjd@n!oYS9 zP|~KJ-&$*gJUz;XX`kNp==~2SJsfJ$x6h%nQ&I1Uf!R8`|Gxlz0fPSMk{4fn^_3&K zzM;Qs3gwluVcQ2Z|dg5Y1M8{?2)dR)k8QTB;x9|S;&nKe&b+h}X$-iE`F3%6cPhP%x^YycL;wLYg+H8OG{Kd0> zz5CPCmoHxg{_y9wfBx>-KfYAE>0f^Rx4-|_x6tj)KhNAEzI$yM(2Ks L=MVlrxXixLilKb0 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.ps.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.ps.i new file mode 100644 index 0000000000000000000000000000000000000000..7fe3bf0a8a19a305b8b65032cecf810d18b74e06 GIT binary patch literal 64 zcmZQzU|?hb0p_Xq8AR3vfY}TT%l|_`rjC7A+Pd=Itsg?}&tzTh{cQ0%HK-ae1puQ5 B6=eVb literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.xml.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/manual.xml.i new file mode 100644 index 0000000000000000000000000000000000000000..95306b818b561fd9d800f1ca62193c2ee3ae4666 GIT binary patch literal 29729 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/sample1.bz2.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/sample1.bz2.i new file mode 100644 index 0000000000000000000000000000000000000000..6e350522a3505cd24e99cdd8dbcef30c6c71e54f GIT binary patch literal 32413 zcmZ^KQ*bU!v}J7Dw(aC3`C{9)ZQHhO+qP|<*!GF$uRC`hXFc@p>gulAjh9|)Z6IJE zV4(kjpDqxPpU(g71C{^&FHHWTFC1F{WWb<5NX%$lU=vU5BK~*I{{&ZIEemF5Ax#Qp z&6$VRQlP%F|F`o0AOEK8djJVQYXSj*^BQh<8@0}G)WE^@K7;z&W*`in^AKEZ4xb}| z0Ri`B1laZNcHgeq#mnBFwZYCwH5_eoyf(+qv|WW4do|K$P&a4mdb``(b~=}9J9T%s zHULM2fXcdH)*IW`__o@3@;0AaAk5P*OLmX9+ItYZ$dw({+vz>!w(afS;hJ7^=G`DU z_Ci9PV}k<~>-oG{mfLI$`NrOtd-wHS+qb^-eI70L)Le-Ii-bu&=s;xS?OHE9r-Z`y zyzb@ey>Fkb?cVWj?@rfy?#lL@s5h_5yPZ`VL@z#mZVzAie8AEkp1EuP1wKn5uwl`L z?EC0@dF{4&L5MG)f>X7P8DGnFT?m2*E&#&aR!3|@-2=iH@KvaH?HCPfL0@PChtPW? z+reBFy51TK*%$y~G*-TIXA;{CNNtUm)rFQN0Rv`R76h@tVM7IGTd+(pkzrd*Sb$Cj zF|uq@=102+DL)>W@+_2>WmCS7Mf(a%yokt*ERz@I$YPc!;fuVqWwR_Yi$xBFC@&x) z3M2x9CJ2@Hl05W^5reT+X6Kh*kyo}NC;-9%8d(4p1il3Fip8-2F8FWce*h{b2m~r4 zf)o&0Rt9COEQ=#~ZVOm4Sz==qD)Gw9D$DZ9;-|>3GQt&EUU`lQSS&9Y0D?}&L5{F6 zF&Qz0%g6v*mStvR11|or#Rkigh!7OQ0g;jNNPeEMz$tr?r&^X*UX~@DJTHp@ypXOu z23~R$mSve(yx>^;QL#+$qR8?JfQN@z0U{{imqk=y1A2k1@CwVajCjrhf=Y=jguY

tIUcJ2{8yT5HVjekSw;yWBEnN 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 |()uPrVy(y^i!fBuC*-7k}12)7hTa1dup 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
    oa|c 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 qV7MDHewi01_JpVQB$RW*cmctj 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

    -INWRL$ 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 T4j7Gl2(!T)X2bslksj?bi>d$* literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/aquaria/scripts/app__localization.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/aquaria/scripts/app__localization.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..023ed4d03932f09d14da86969f1ffedbdf4bb62d GIT binary patch literal 749 zcmV}}VxWh0>Ibrc?NA0=UWqT>usZtWB^25*n?^oh*yoT>1kmt+z6ZbNsxki(x@z-5BJ`~X}z_R4I#x_ik4MVwPFqBC*ZDe)Pc z2e?I+8eqt)0}+LEQ4Q}%)l0H1sk~wdN^kzUyds`JsDV^TOmNvK(#~)GuzWCxmRZ^< ztpiIP+8}B81z9E@suST!o$KUbt~PhP4GJ^(5U3E$wXqiMP@Qo4u**i7E~^GDZo#?X zg(`y;P7?=no0+^yl)=GGpwc)fEnZ_`o`u%vv~w=3kQG6Tx90I@-U?3!XKM&9@WZc% z-%@ClL$NR7c`a0HP*U}{Qp5@;P@BhlMzEW^l@LAN?^_36S}06yR-#7sLQ*hg7>ZFo zWu)A83)^UD7gCJrQpQ9wEXXRzk#osC9y%rSp_hUvO9cdR%c_utfseD(^NZQR=yy}sL#93CaNFmz*|XIy^#k6+9Nu#}r_q7f3(&*= zDQ~WFVt0Hruil;wzm{M*4K?!Bo74Y8p1Yi@mbg83ncAd39*lI{4>a$schDPr0nnLG ffHv;U3%=t|Zb0I6JIcLvb#xDAncQtpbw$@3Uo2iK literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/aquaria/scripts/config.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/aquaria/scripts/config.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..3b868a29eaa1cb1604376af46c6ff560d1affdb4 GIT binary patch literal 594 zcmV-Y0Seb-lrg+c?i+$1HTlsp*X2A8-kar@Gj zMP7~9YP6D~i!T)adv&qb_s+{Mb4D{~&ddl^QGuWOqd__RHvZXvelEwu-vj)BZ*J~C z-rn8afBKA&NKs|*j?^DD2In<#hDs}_1B9~U2d!Rd4d^ez!R8>DGT}ur;jTLo%8^Pn zMJIurMS#9}YB=5a7}&~i?YNQ=>>q%0Fm?l6lWTIjaa%2@okef{Ba=pNA+N!B3z5Q< z3Jcl2Fx)}eP|2rYUBI02(7w>hxYA25t)oI5pauf{CNu@C3{)MLG*Y$rA;G!nXgh_t zoGLO?4KQvxEnf7LcDJ=!0C(%kcqN0z)wik>06LAKXPw5*S~#6zHxh1E%f-+k!Ovz)8IuvTUjgPtOn goy>XH&>EpIo^VuHO+#8aOcgU#(SL-M#8Z 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/duke3d/data/gpl.txt.i b/mk/linux/mojosetup/.hg/store/data/examples/duke3d/data/gpl.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..eac91e645c413ada06af98507ba802d76f69a5ed GIT binary patch literal 5794 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/duke3d/make.sh.i b/mk/linux/mojosetup/.hg/store/data/examples/duke3d/make.sh.i new file mode 100644 index 0000000000000000000000000000000000000000..343254592eefa3adc89c6c1579ae105295cfe06b GIT binary patch literal 4732 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 Z5&0!#oBxAA_s|KzQ9#q#+xgw0{V%;;>Qev! literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/duke3d/meta/splash.bmp.i b/mk/linux/mojosetup/.hg/store/data/examples/duke3d/meta/splash.bmp.i new file mode 100644 index 0000000000000000000000000000000000000000..ee37c92c4315edf7945c947c35c2ff5dd2143b7c GIT binary patch literal 48076 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 a{XGKEe%=8XMhVEl)zIO-7!5SN0R9JHG~{6b literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/lugaru/make.sh.i b/mk/linux/mojosetup/.hg/store/data/examples/lugaru/make.sh.i new file mode 100644 index 0000000000000000000000000000000000000000..6f8a633478626808560c55dea972058d5e2f0d72 GIT binary patch literal 2402 zcmV-o37z%;0RRC20000000|-h02ihJ0000000Pth|NsC0|Ns9EC}pG~$_?2x;ZzAs z92e|-G$33600000000000001ZoV8ecZ`(K$|NHbQCQbnFCXv*3vBljLSwOaxL|eaL z$(ywIaAldcS<9jzN_Eohe)pRpWk*i@C{SDw*fcr(&4a^v@bttU^TZy9a&8!>5X`v* z8D%`p0Y{0*Ars?5<}ei*gmDaM9OgJ)O27%p^CHZ-NTdZr$sm*v;)Y^2M=W3u;WCZc zC5#J1OTI9KVN={pzhE^F@jI_e$g@YD%peyq5tk4qll2;;nV1w2lNQ1KvPi$tAEn`q?7g{9L5Kr^w(jpA*A1I?e#gGLcz^WI343 zFj{V7cysm2K=OY_EO_r8bhWquVXZs#W%a%MmRjlhn~_XeIm! zt4yHs6P~ds7un+_9i%cEpAer&q>n_m1;i7X)9I4{_ydm$aT)xi&aX%^7D|zX*rMcTZvY2yLDe53my10vVFIQQfG>GM40MFPUc?eH*7OeRIYlSDwFMES0cCp^zJ? zDv_4hsb0x&SNFggrzK*up}Z9C2P#W1$i$|=vI8dgIk7= z>ZV4dSU47V+j5eIn8&e&*1`+Lqd5{typ5mfI+Mjpt((oOSrjS$&HMYS*~JCKJVADJ z=q#LA22$9C%v7X6QiI5zCN3_FQ=$-QZmSc>g@}pH{KfjkdTY*NK90;cIR4ez-PxvUl(er~3efR29k%V|?ru?+N_cm2_Cy+`|t34<+6wh78QKT;^U+p6`%Am(F){u*;kZ*ogThWoH+OhFp1+hzr z<_yCgt&+D>fX92Q^OvP!gFhE5z)O{tF<%9M6~$B?!7viZe1cb|jQtO5#m-a!SK_|j zmbN`~{9xeqd;Q=_O*DpHyQLhcMQK3I1%sjMUF#%3V>Nm0wEfMj`tfAhDyk`;;dXf9 z^RH~c;uqi=<^{UqNd`TICPs_|id01xE(!@*kzAIMaf&H(PRT&3xYWQ10Ztap`4?sx z*%Hib3YckT3}O{}O}-AjkWw)_|SFT76i90nG^cXz;_4WT`P(^ryIbq>vjFW zX}7^2_WQj-aAHIgOq;f~(KaHVGnI8pv8ppjz4cQ$=)aZy%~rGHymv?H*hcEy&NfH* zjHWqi_Bws9?GCQan$72n_xIK1`}@s$r}ul$cY|Sn)ETw|&lxmtwFB&+phfQwcl6Qg zD{nYJ5;%jSFi10Me0=j=bT=ROlHClw(M|Ba-yZsJ_K8)c8R2OKUh^Pcw>iXv_7B08 zB;SMP2Q9C62ul&Hkq*$^-Q68zgzLxTK`(B5jZv#{i~=P-LeX)8{k~Gt^!#HKeW&@} zxp5DXjr6tKXBn@9`$vt=UZ>OqzxQwUGSL+M?g5H!;10S@8$A}KK2D~n_Q*3Fv`4o= z(BF$f1lP~jF`QIWmu^2W_NfAVtK>sZz@Dm@VO+h0RF!TFqnlW=l}b>U1*b)9Jtt6^8`+hc>~kwdh>gms<&H( zi4twyGE>Vi)S%yvH3e1$3O&*rS zgAtOny(X3*z3zy(k8a(8Yu7i@)auv=))DK^4cK3HQzZ13A#D%aM++5|xt0v0^@}E9 z&sG$<=Rf78&3=6l=ZCkg?eo-hsFX9NcL6ZX^8IHY#(+tTHxXX9O>1E#d|cbI=w{`C zkDq$9Q#`>1y);qRv(6m5?zV2ID7`1eLT4h8am?{yEZ2vRcmGLv!ZZJokqn!*3eMMb z<&J7QR?36t&JuO?w`IzOntMw8s^)mS#KJ5aVRb8gQm?*5wtC%q04l?WK zpx1C3?GMoKZf>x(bh<6@+r2v+2DeTZya4>$-mu+*hHKTU2-JbzI)Avh;C8VW9dzBQ UJUa&JHH4l(Um3>#0G9MGBQ}Y!U;qFB literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/lugaru/meta/splash.bmp.i b/mk/linux/mojosetup/.hg/store/data/examples/lugaru/meta/splash.bmp.i new file mode 100644 index 0000000000000000000000000000000000000000..9c7bc5ee88627e2f08486cbcb12bc873716dc8ee GIT binary patch literal 4442 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 Q;s3w<(}@Z@Tq*Ux0J@Qn1^@s6 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/lugaru/scripts/app__localization.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/lugaru/scripts/app__localization.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..f9ffaf7e5e39c18cf3a58d256514be3c5f76d760 GIT binary patch literal 747 zcmV0000000Pth|NsC0|NsA%o~%ej0_o#lk{hT0 za)MGtA=sb*00000000000001ZoPAWwZWBQey!$I!zT{%>4i@D5D^E2P}JFJ z?@lt?vzmu3FX9H`NBDzCoN_byFM4MESjWIhmhI`9+N$cFnNDG@nLPM_E@-Y`r9%zl z>2wU}2uj;D#KD7R2(|XG(1wc9bP6AB1Yg@|6rfVDw$TYlXpA9umI$5Dd8oqcmjXv*mu}o_oEJJNq2PKfct!pp@QpIR=W$)}Yh1eF@ zwnI92313Da&!_PR-pWkoT0?=xpZDeTP(uF&R%Fi&t^tj=peQZEnJBH$#j_MqPNB99 zfzpo3VBH#m1xJlt613#JWi;S%NfkB{JF)^#AtmpN@no+-QPOZpTMfO3`(8*W;4;EJ zveW=$Ss!aqvWXgaL%La#>qwV1OH5|-%a=9r1Y!fED`JA{R+I5z^ONO$QKZarpNxqt zb?BmG5flYO${t15n%p)YSIC;6!+ZPmt?Y!SfQvOmANlw9-#?_# zYLDVxwDVf1)}W;taHWYgPN1<*kBs0p4=W*hdOU1BSm{97#;!z+G(s}4RUB&3At$8$ zu76$fvyUi+bS*O?2`X|LO5{>fPX|uRaG0eas!9Vv8u6yJLb7GpA_r19{||Cp4l|d6 z-Rb%IVziz7dENocv`w9{n$A zb6pbq(*t?)`eN{^j4ElUk8fU`{}*xOZ>~Gy?$lr2r7?kHKHs;?r dM@|i=kKA~~`8Je$>gMF$D+;;G{s1YQ(tBu1VUGX+ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/lugaru/scripts/config.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/lugaru/scripts/config.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..aace6c6b73a1213a0c7e71ab083afd7e12b308f4 GIT binary patch literal 703 zcmZQzWME_f114Dp29{k=_T~Rj(CxkWf5DOsl53p~ywF~!?XQ*hcLGEWgshm;8seRQ z*+F36`}Gl#P7PCXxP(F&zY47M6!qZp(&CF*v(>h2+Pd^8`ZP&XVdt93aR(wEe!UYGax*Nn;hbnT&*Vdi zFL$SiUC{rL$XemJxo75fDgPxVCx6Gyc6gaFw?-j6Qrg{o&a0{6$LuFvJbHn)~HrDgvPkdK)u|4_SWoN5$mXdA#TIuRSHW8o8J?sw> zc;YtoGP>XYY4$Dd_1i=9O7b@T;(UBz<+rcZFTZ~@e|>Dfw8@UIw`Pb6i^efuV`!Oh zF0oqdr`VUp6VJ-D%#~W9ud?&bPVt9rH8(ClT(BoZ!C~VcQ)6XS^EI7n_t&oYC4Aec z*}c`;J6ZHW{2GSN_c3dN|DQ2>t{*gwy(?a0i|Z|BwcZtzl9}tpLqzhX)+{|ad-cJK zYs=H#eO$5RR>kaqlk*u%>KgXECFRv`N{5Q`}QL0M{1ab|v=f~|s* Lp`Jmqk`5ODW_T~R literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/postal1/make.sh.i b/mk/linux/mojosetup/.hg/store/data/examples/postal1/make.sh.i new file mode 100644 index 0000000000000000000000000000000000000000..0b08dd00ad153b46e476f749b08661568ea219e1 GIT binary patch literal 2387 zcmV-Z39R-20RRC20000000|QS02hV;0000000O@M|NsC0|NsA=GYG+&K)tuz$NOQu z5l?+Wvd%F800000000000001ZoV8g0Z`#Nb|M~f^n2<=^C9&P~bk%#W%1H*?#8(0c zn@igFg&KQ-Eyink?UM9*|NEQSHN+%9DpfCvVA-Ah%*@X0eA(k8d%{y&&JE)jf;pEU zqnu|2;3yRZJ!d7p&$Xeiuy%MgG9k859CyaSmY`uh$^UMO;QqS_JpgGF&i_WzOJ1 zlt`O43xwuLOmI^c7Pus9Ybj&#Ij|!7*&^NiLS(?F$l#%v6T>w+&H&4Ekz0mj1(?h* zI&N!pb@|Fb@_#|&}al1)4Z)Ej@oDi^3u%ySkMB7Zn1)2L(M zF#$#*dmy?kAfC#C>`9#P2Od7+GWbbZq)c-bN|A<>_vM~@O2V8)s1!8%FjO9T|{sfIE7g8ej zGUK#Hl4zTw(}p?6BPz&QLXu4ibWRq-G#5)!n7k$n^MXfZ66WZ!Q&>Jgm#5`DtVF&* zhUC1ca8%|wOA9zo36{jtI8z!Pq-n?KeldwdgkQ*s0k(Ty2El=q@V=2oO|BYzm z%NZUJk;!sWBub>1Wh{+Z8WD+-HDTd`Jd&s6=^xN^%kV+nzK9eHCjxI!LDCTOB(d7K8Y-4?kXFIu-D3 zma`1dlCj9gJce(p2+ZV@+LK_^Q2S2k^X$T4$#Y(vFkj)-*}+Uc$f!ubOkuvVQe^mP zCxBn3eSg<}Wj0BQXEN8qD&gRpL}xS^G^PDtIJNEBTWQ1T2@aaXLb6AYTA*s&D>W3) zU5BGcpHsftM`~2@jbpSS7gb^0{H(U3BTuzsFyGr;cG5i)0bwm8s(S{aUdT6_k~@7u(WyM~)v1y+MBvT&juI$m@2L z19d30tGQq}a=mvtu+vygzH_?%W>)=pJlQ&`DWBlp@YLsD*^njAz%|S>bj6bn^cdP0 zF;XZq6qvJYnDreRl}nJ4JEp^a2?5yq+I8-7ff}!Jt13j*KYA%xPO2 zbt7^*QyotwR(%Gkw|*)Q{kJlJ*=gT6@7=Mo+gKUyWMji8H0^P_e>3p9?(p)Y-F~`w zcUND&yW6ba^ndUBZZH~*Z${m~bB66}?EyO|Xwmz_9e?x&${h}n1kUh97^E4uKED1g zx~q?S$*xA;_$qim=#Ko?`^2i#jL}+w*FK2XYmd;-{vo)EH9BH44n3R=gK`qHrCf}-^qA4xPRQb z+3S>=;P=7RUM8Ai&^tiU3*2GP>7vJ?)Gw1Msy*_IhTZXX5DfOB5W%}A>ljYzxl8vH z82eNWzE$&~Ct#yg&M>Z?L#ApshS5zd*-B+7OoP)hv7V%*qvv@^DtyacV!)IXFjf3t zeyLAUq^nvjX;%^5eiqpcN(ECkr=H=|k^(1Db_dHcmtoCj6`Fs(wtzXJ|jJ?M}#pdhgmn zC-9C+*~-~+desn9HQuVUFk0v;VJz4d(!(8zbkcb%*8DDb*|z1V-D7um6I z(2~2s;CNaq+V}Cy#5O$9VIazMJ@;g7`=lPH^`7}s#1Nk4_q&NsYa+hXsI3dv zQU`lv#;b-8tK;DqNxEJetC4!eVE9#_3`#U3Qu_EKXQ^`(_+Etny%VW@69TC(C{o(cYj-^ zLa4dNB0$w259e59=ttFtWXaTI_eCB?1qO-g3635%9tHUAH_Uv`ONF&8(^@;I`%cs? zRN{o{;TFGikA24U*L~IO`(=a%kXYo<10r6X;;8X*7fyQ*44~-*f!iZ*{wMZ>o)7r% z=$BUASRXa(FO!{quNgqcqcqVP1ug`A)kY3RExZ-=ch%+wZZPb(oL2V(w7jb;>@%HS z2mEgT7Kg#L(*rL6|GGcwcA({2%{l_Lqu0(KE-tt|Y)pqew=U0)fqEOEC(&1i@jo~b FAY4(oqVfO$ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/postal1/meta/splash.bmp.i b/mk/linux/mojosetup/.hg/store/data/examples/postal1/meta/splash.bmp.i new file mode 100644 index 0000000000000000000000000000000000000000..0ab67c604e078e26541278c1fd9f6960edf98222 GIT binary patch literal 27202 zcmb4}=Tj5T8|_sTL+if|#_>(^PHo34LyVmQD4{W;URz=a52p~ph+D)ar4j`C@9gd-e{&v~#h;K_~W z^3%dWbF|>qYP8*o^?uGuo;MFEs2)qswr;`WqTDCO4*#}?E{ruZhn%VewKq@ymfCac z^lV_QUzDGVn)TuH`u|*32 z_Nk+j+c;}Qv$*y{(j2F)LO3-)EK_b@x}5bi+k$!mKepO-{^QraOtpcQLY+sNo*nJd z1V*~s+Na=l8*=KmLeDxU6q){NmmXcf-xy>X7PYz>)cS{*D+wYv>(l+bgAnaR>=@%} z1lZ9ushWE2-^i!XJ>kMo7M<0?(7$R9Ta2xwalerf87R)x^4i|aWCMkr)@Cz}1kxQJ zn-x||uJ)j^R^_}j@R{i62O2mQ8}qo{3*}18)Lg(r3Z|jV{w?2{xmO9?hRe474Lj#0 zjPtY5SFly0@YPKv1P0%cf%dr^>~+#XdG42yV|@_MLOQX*%O1nWEJ&bbpk^4|GE zzTku%b4ds;%wpzG)~8@U(R}T=p!m<_-T$D@xcgX6ioO?XWAjd}X`nX)Eq@r%k zx!+iBeFoQ0KIu|swQbOnq*@M9M{kD=JB1*Z5h(Uh5n-7yWtc}VYLA0ZCBOY zrTXZbW7xvjo3K~axjPI;&tP|kAiYEfj_o-1mwbxl7kZFfo}4p>LEfRNUU9oyU2ayp zVI`}w%9+_lQdb8}-n*z2ZT;c&uVzf##~NOwND?GnLO04G^hYWq~0J+g(R5y48CPxfcn`}M5|`Geea zAymWdy~~<#kSZ7Wh$-k)$Og<;Be%obQ;oTE^n?A;>TP22`B1dM-(&bi-26q);?+B_ zqRte_oZc6so9MwgCQL^R#R ziUsAY7EfynQl0DfxrN$@{*r{SUT6FB#o$AJJ)dAb%EkZ#f_Qy|Bq=IfK>|GAd7Y-X z3Wh%ObvGRVl$9I<=P+d!e6x!XmIF`Cxq%ROz6DtSxc?YhkH}aa+&Ak#8iaB*w-(Bma(n5N}_Rhts~@hzIr~f)u3Kjd9ISL zpu?r7yf>PdbKqzG7LFYuzX?o#mNXeV@U0&EUUupB0of%U^TEB@@@kF_y8D3vKI6ZG zM}G5Klj{B`YGz)xb|iUa^RC=kF7?YgOX^*n+89wNYS(UDcos}pT?{~nmuSlbB z9<}C3^AJxIx3nqxRbj!w(DHxll0XM2c>KCM`>0vL87EY2da|ao<7yu_q1hnhqQ~QC z;191whJ)6}wjuXHMy(%+p;g1`YP#yV?~jh*nJ!wL_0v1VAoZZ>oRjTow-~qAhz@s!G>-^`Y%btfX?%22UqOWWt zjkCPwhcYci=b}e&iL}PcTTfN#s%_Pxf|wy?u@&M5=Hiz*E<_j0bZ*>QXGRv8~t zxw2;CP-J3HC(zB@Nl*qgW%CI_5j{X79Jk?xyS|^@#)Y%B^PR^@kLuodzc{?Z6V)0K zyxivNB?*&nQmaq^g_H1esauQH<mTri-w2PyP}&9Rhf}t!tmPH-bjA#`C!nT$ zp_cUBNKx;ECpq1{TOtVlXy#iGg3y=0p8w;&2d|8RIopmEN^$P~mDaS=!TnVI(N-z$ za-Vu$2~eT#lpBNjHTw$4PFwUVTCkgHSKB@7c>o{fPd&JD>c4Zp_)R9MzoXrE(Ud|Ma#H?DnSBJB}|NrGs;w z=glC^OJVt2vn4VI3c=d2JL}u5r+IZR$ESnQ4rLB3NV0fo;#LX2BO>@LnAOTMWm6J`hrQ|RJMe?W@|*&}~1Nl!!vK!kltP}+Q^^URMv;WWcsdJcOH{6V2kSYKM;=rKbmqYagL#J5# z3}>}yI(sHmIZx%@wT4PT0hoedNbGj7dMRb30LRTR=qCD@V3XJ;Jso?C$d&OCeuNh) zB6X2$qUnw$O~f&W`jFhdJ?1CFZ`H$iJ&jHdy)2IwTQ%H14(cdh_qWTRkIp*zWaWnF zB)t$PM&?>4wvCNkp0(5P}}o`aVD)sRJ2^dkZ@~r zXrV0$Oy?hwLE+QgG2c(GpSJQ5Y3GS+xt?k;_Ss)&+Ma_`J)Rw1jq<^JsyV9u9}IF2 zvdQG3daEtS$(g`0HnL&(XbhB!;oZE}hh`pc{NWAd-q9#2b{tAeMv{+pN>GjH3ED?w zG-f*$ zwym6T`UNsW_YKfF#CrfcZ1LI&`fr2Lw#oL(M^mLK^-Y-tyL9%QAbC(2^9*2@u6ay{ z^fol2|DCk>2ef(2&$D=Ju3CtuJsqD$)~qk+~usew7qBrJ-gBp-O7-ced>P}8l>8vGN=61H|8+tEz=^s ze9=E&!h@S(?JkHva+fYxMz+l@I$`tNbJ_vv_q+7VY?A5<{gJg~!#Uc-8qvmvZfSEA zTvG&@@7X#2I$UC5<2pI>%nW(bAG=2gVkLGU5&1`23?@iz1>+;nW==`^Un=3C(_p8kd2ger3_wjXs>dZ3fV^cl?*d zb@h5C^m(f9Esx92w(Fb; z6Y$#;TRwpv_{j^(bhbcj*1c4(SH^{S zX0|)Td4>8%DD+1)M9L}YiQrTAtZNOg+kVy(`468roJ$J(Lks(Zm*d6{?C`osZCR~_ zj@?ur{}Y6apz(YPe1V{r9&ixYQ{WpC&Ju1FY#%)=`o;STJ4L;r@70JhTFuu-gk|Ph z-Pspgm5xtLQUI>IAIa}pU!NA(*BzEMr<4zn^4|$gr2+N3oQZ!dTU`X7yqyaJLV4RY zZ5aa0{>)q*UA%o-!cWrSNxclahm9SXi>?fvnweRh`UOmynSvb6PE{VwterJ`{`;gd zmZ?(udxf(XNt8Rp+DDOcli;}t0ol-1HeX39ZXpov7;D7Xo9dM2Bgg>%u(Ip+0{&dR z$9e2+o*J$uW3_o~#7#&~$o!P0VR)arK63|p9z6m^&(qv;f5MuVHXc60 zwsT>ccoD6)5Y9HM3Tp$R4Tr%&TjIy`SJO>DaqOqas}9APa`a7W9+vKaejkZ4iVBp= z&1AvqMBt!|Sc*N-2Cp~FYb8d&<>7VYfcb>V=Bqe0P2!!WYj8&v%C+y%bc2BdM^VJ% zw6HXJ_;rWW9qd=P7t!orqL*c+)hXW})F&$cJ{hxir8Bvbuv)O67aBJzwXUokPgb;b zU)dJLz82}pb)F2#gyy?`Nx%sH-FMq>koiMWk0jY7(F$dfsH2tZV|ac{W4A2TCZX96 z^KCw=Z9ZC_kE9k)2LLy?hSid@!_J*Pr$+4?Ibc^873}_i%O97W@ql;a)>_QP+Ifcy z?%Ff1(C>g3u;#6~)|aHjW-aBl{HtnfptITcEZj!LpRE1mCp(<^V8M9{aulmIKP7;3 zP~`z@{y@H4b!XGnxdB3vTqJq3)3jl@9D>RRcW{<=g^pow9{%W>n=lkZE%No*UujiR z%x4f^rYZ8!_e*~Yvg9xxn(pAVRXC2I!c<10rr9bW0Ov6 z+i%m7BWHF{xKg$^QmTCF(@UA@UoXq8!sx`eBHC?l=hbAa!25n?Qiwl+fR4EZj~#PO zt_;T!;d4ZJ$lNR%O}*L{ z$N~y2d>4kobB{=Lhy#tJ_7qxl5RT}#X`XEJXD?# z1m8t1GWc_q(sy9-tRs{h2$IR?RC{;E*pVbf}B`UH(dcB=Z06kfsNKS%YB(;7zV-#jc%gKTzjzU_s%6voE09YX3fw=-hH6lt1JZD}fo$&Maw??!oOL$O^0b zxe4fRXX|ETF@haH))j|a<1v)yv;J&w{L2;vCOR&4lQ;7nc%3vu8ntBDny(DPN&_OC z&Xl-T)K;L0pE1D+I*2zYl`G8K~+G%(P>Zj^{wT1Dm0z#gu zTJ4)eX!>|tFDR$GqFf>ZSqyhiuA$%SH<=y{>?;P%fQ(%D&R)i=y96~{B%MADVJ6(} zmAOQd7EHoX+42DrfT*O_pz@Ehbt9-GwOO(Fwt;?LSdD<-`!<~%*&Qo;1!~myB0<{pEj^aJV=q5cLFM&mbiuK8$Abq&ufJapym6cS zBA+L41qicobNl3NX-%80a4btkHeA!JZ$eX&2@WT5HKTuOk0VUJmET)dZTc=hW>s9l z(=n;+9Uh$r@T$^Xfvg$sOJykFdBqC^gz19h$1=gxggXVQn?oGfwCko&0bF+8)c6hQ>7yHQW|t*+njN^39x zP$O7l_gw7~!NZ@uv|v>Qrv{~XuCL}Nw}>9*$dVVM(i@g{>S~Xb9`n5W?$R1PwDEP~ z1y-d#PGYr?4B$D7z_9}s@2_4QsGj-Krp~M1~ny}q9Quk3KcD+dHX1hTiTR>y``_pt`vE#={I{tVl|z^y97mNv|qw?CR5S6^9wJQJA8 zeyOR1JsyHNOMsOzruUn@ z=-HeecksyD3YWKE})*dOca77 z`87IR%gUxW{r~=)uKb(yw@p#IjU(TB4l_0(!vsr!z?~X811zd-22LB$uQoF+E%xIf z9OZpEwmqcf51bZ@kJ z$a$<=X?_4MuwvCc6A%Y~p{~S;o7M<%8MJT%NZ@={%^_^MSn*sSS$OrSY3KS>Pm)H` zx3Z>l%A>OlBo&j=w9qug51*<#{I7&%`qptS_PNK~AzDh@q?r}%}P8{$h6A?+En^c6+-_Ezn+|^32 zSc=yix7Ue(O*wxk_u4~$4+0sEdv1Gh3_U}*#+Qsqm)`QWG#{Z?ok8eb+2MjKWq$+T z90Bv6>dW~>*J4-?G z#!k++k&2a12Jhp&Jj2HOuaGg}yJv|(0#b0Trm)L#8+xo>+-2q{b1mI%<(1w+W0A6# z(97`L$&%*T_$>9h1ck=InHjGLDc_vhE|ojx7nTjKvvmkIo_lzF^#t1+&th8{EYZEC zsp9H=u=R`rRCUc1$%sEox5wuTc7z@+DB-=@9|P*pN_9U@tblpi7!$jmyHkhlJr?Sb z!J+34CGqJ1O?7m)g{lysHrn9DuDVvc^j|f8BovnD*R9YH6Z_0})Hv}hbX#P7cT{{S zXbw;|sS1u%*7IP!U8SWr9nK9{7K=`AhhgtOYIktF0?x9NeIeSgCG>a_#OjAU+O>xPtt2FS0!6K*-m7>)VR%~#30Mt zAl+UwtRT$MAL&ZS#tB=mtL%^NhdcF#J#H7QiAlv)=%!D7(X2d-aXh_x*w=Qf@7=L~ zzb=W%qi(cfdhWeiPtTLa^EC-M9-BY%JgCc|rPZgxe6o8liQ8=ezYwXJ#$?ISRMlM} z9150H+Xbm}+JBNK^?-06-j)3y*$u>~&WWrLT-MBzDUKJG`QIHJe}Q&(9p4by>=?!G z-6(pt#VCE(Jk`<>MagFUq_?TP>&!Dyh_k@m(WUhUCdlVW~Xz$=%1xA^&o zsF)KD!$yt@{L;4u1?ppWgsQi|R#>Ig)(4mJXoek%49i3h)Wg2!bso&;D7)fbeLrGr z9l>7SpYeGU6>{Zs@IwKsaLGhMk($CK{H_Y6Cl}!+h4i-6CWdntm0zJ(qIN>!g`HQEo^VlFhUdgnye?k#Bw*8a?Alg>I;v%-&&~jh#_1R zZGCGSSAax!n#w9wszn}va8tcR%Q}4XoO)y5xMeT8;;`cAo@3{I>&#lglmspND)!me z>Pxcd@v1)|&2DaVG~*uYUDEAY^Ec%an2?W$_4^7Ip|pK@uQ_P2eH75ke+N?s*W!tlBjb_^>Wt2|v z+^~~h^;9~tb;jQF6VtrwAuKab1DLPyzfmK7+y4m1=(>JL;A2n`eW1SR9Lw_nzUv+L z*D4Wshh%q4iv;Rcv9|I7`K#tGJ?jc+%8N|Zfh@6Cc}owNZ6mfK=vVfRY_8@Iuji<) z81!PeZfX1Uw@2wG)JsHN=hpN|Ms}@SVF=|$cex4sY0d5};|uwpuf7`RvWQO5X(c&! z>nkhgcjo_WtwEk#kg(6s^^!1KSQCG&9$wIXXb1KV?XvpFcuXnPC3cJU|#p;3-!_}qtGA?hbpfC1s z_!{ybPegiub#G7EliddA-BaymvGUm0gDuz%4pb6Is$KhFV7QSR3ijCxS$SlT z|1P$+R?Vrl_gDqiXiD^$@5-LV=$`Rr?gjnK-1Ug%slH-q{X1;3pSRK&CZX=YL-_MV zI(W5oTSWC!c%n_oVCC-#Y)9=n`ya~+;DCQ_cgD<^6np=ca(mT$Y;(?y!wy)Nv-{A=$cv1!z~Wt zy6EZ(XLsP25k1;nN7nKlaC^9INdDfX7Ih%L24xv;9yAR-7en_F4%@%)X!40x@+!YJ zWGgDyxhY_;xoP`AsTMf;X1IsO{?&fO>ZK36j}gCHS84Fd#5#BzZJ;A_Bcfd0O7o2^ zmuAumYDCHX2T}Rx9FI^=`E?Q|*or#Nr7OQj9wq|EqW)7So(RQm?ki#Mp{Ijm?w+td zRD6B{L=+vXw6pxtU6+Cd2xUku%h@RU>Hyi_1NXtD1u!;`O}7gB@|v_bBiN$VqAvq4 zki1t9)Rs8AK-_X!W05thP)F);i4NbAck{cXTuMv)Y%K%%V^|TXdfS#qWaj~DQ>o=h zzr*o5c!RyNs~VW*2J8P;T=#Bf8JKBFpAvV>v`@esJ#gYqA27sT+VwOw3u1$1Ob7>9 zs^!P3!3&3FNnu_Zb8iPfyK9Od&iQp|6++D@&&;<$9$p(&zf+ScELJSdtqcN~hF2{L z8z#;Ln(->EuslZ;@{1NG?sizACZ#&k^IaRD>nV+mjNu|};WnIu)=Gxpn)o9}eeQbI z8#rg|m4g6?4ckMv@Z1N_qANH$p7ol2E495@p67)e+V|`@4o00U36&wTGz&Ga5aeG3 zz7Nt^q6^kbj9NE0e__%tRe<1A2W3PEOSoD&7w|!-n7Y#DhA!EXxYnZH^Fgs}LTVQg z_P}N^?oet->QLt^n-4QJNcKQ@b#5*mlhyvbeYO6pTW;=2PO@YE7o)(+C3M$Im0Uu1 z>{4e0P3gt4;F4%bw`%SRVS%DO_IjzlH^+47Ol9qHelVxs&-xqI64DHTO(*6rA&tWP zC5+pT(Eo8jj)VR42kRZTI&X7M0WrQty)?D-z{(DS$gcLk`WT?7R~}`eTPk*5X+(BK zzZ(=D9`6higBUlm_4cElR2dmOYpy^)TWIpC>e9ZFqXyNls*M;dZi*Ma6VMUZ$8M0< zHvUTmZ!+BVojiFQ0$ecanEuPJMtPA%3rv3S0c-o? zRQ--S-r?H)=ygeucVs3T$GZ$D>*0|I8bkhS8Vlad;kwJD+=Sx}wv62w8eGo-0>YP7 z_}^)^Um=%I7L&)!-heD9U{@h;%(im)ldv^UVG#(-sU&l_HvZs|cE zSoCaW2mgwQCCYIYE}Y40ieNDLd$r1t_1yO(4~%jTIY>F>qyz{~m$3B}qfUK^KJ3Xo zL%%&Eat~Cl-rMSbDUL$6l67)``)^jRF|Gb%`{u#Qv;X~Ad{^|~O{2Ew!5XHtIkoD8 zjYhMhl!0Idl7vnp+z?G_p{t?xUsEpKFeA-=G1}WC6X#gFtk``8sm=caRi!hNeqYyRgyn=1MfhMTqD@e!Qjjw9Glt)D6-1f%tZ zd-~7bY<5AWGna<|F8YuYl!+6FEWks5Y}M8M!n<%E5gqN4Nd6`+vAn)t@S_ z1dc|Zrs4F4MR)I&FSIbvUQ1OkJ3!Rvo=W6Aax62=3A+f(I3)c(ZXMXAne*;H`0f2O zTO=XdP||y76eLk{ik@h#P7vIO5lOJ#w+4Y0YWY!+wTJ|@j%-QoMZeN4-_MF(4a4CL z0_ug;N}s^#bFCgV+Py{fb)sk9z8qdsp%#tg3g+*}#cZ8{!;d=~np3+|AHyYmy3)e6-qGp}hQZ8mpS0z1&0$MQD6i8V2&G*`T1oYuHgiKmbcJi3L zf7mQrp@X^5wtT(c_7i5>`ob2t7T*ADa9?_cgQS%l9?IxLr?NK`EIOP>ms-R5^J?QO ztv@IoN+WdIu>%^qazB+9q$y7lv6MPFY=Cq>wBoQ#mBr1e5=XT)EL zE+dQ2+hXlF->&hDl0#$XK^FCE%}I)WxyLW1JKE^3OQjz+9m*;)?Ss0}`h&qK8lXlP z^7kpTwOd}}lpmLcs7KOnRxHLyKe+LOMeoCIm`$%-pgA^#P0@O07E@nX$cilR%rMA; zM3Mur%vs7jr&2#Pdz>VDr8dwQt0n)FwwN&cmNlYvvECmo+l5cPs>8vHUqN$h|8>G+aujq0PIQ0m>ie| z4jWl|W8&(zqed)6?LO_EMgb9{awjvA*{Nf{D!(din}9AiN_}sr{1OLwIGh;nQ|C0) zlb)MIDW8FMBL2C>9N|M+0$2n|f3hi!9)dkqG9RjHEzi!LP$j``iz-1 z8hbA}B(Nl`(a`UBfmlSc`k&^KN;5Y}!d(b3%tj7loba6kS1mli(vNZaEbH{uu7QN+ z7CkxinC|Fmzh=~}?DZ1g(u;K+Yhxw*s3yijK2My zZQn!tnZnUczW)V%%H<8J%Fr_6Z8tV%zNFrxTxB?oh%T^Ciyp0xG=IJ6X+jCS;YPYo z>H64k*MjfvB$M&h<@#3Nx7;PSaf}p&KF8%Qu9Hi8{9B>K5FK`&liZv3YTpTX^qlfQ zla*n0Mn=wmzE@l+`tW5gQRP4S-&%LrG&n0{KH^v{d>!1U+qT$1VWJ>K>@+^|J1v)^Nzx>Mo{*R|IL=?HZJ91`s1imR>Pq z&1;u)?$RB`_qs$^c`?01TS3&RLH;r;on82W5V zp}k^C}4cF?AE8w3;Dh%?HN^cDuSj75xvp01D42X+H^Y^_gB3i>JP>dCsM+ zk4t@DN&W7>vd?^Vr}Zx5jF+>v{p*tQKJK3I3qZZ+w z{V(Q3;uGm)KBhwhlwSqN@hd%xd@PjOoAU%FJ9*zBJ}Q^vV1>VEw`5YfdbLp9K{cxy z3git|_+9XDWZQUM=x zq>yquqAzRjj>s=Ph!OTLhWXZu!d21W>G4-N-d{81VHE}AbP#6Ob;uYwpVb$JaK4~} zHvH4(q?XpSDz)-X{?L7R-A1*@4m2vb_P9O6BO%4@fFYHh2^F{I1KTR>ahiMZr_676 zK3{WMMq7wD_Q&iVHEU`?bs#RQ(&L#Dc5l%!&TM74v6d5LY0PXExdv5xGoZ+kMSQc< z`0z6nEj-|jV$Di@09-s}LI>_uDz3brtj&A{)*@ey+4`Q}HAlu9G+d#}762-4DLh;W zJ9?j2^@RBPG0AWrJzF1bkaLnk4w!Q(7Ung<{yISq{*92bLvFeoq~8=KppBr&tWb}& zUFdXD>S<)HuXyj**-^j}XX4m#&_;SbwWBDa;CZb?Z?LZ5o$g>t4>OiVO z!i4UTx8;qeXRd(7NrANiGG%%yv2ZT*vf`YDy7V$wd(zzqROyP2v(%OJYkT(cO%++b zVM=~#0Zw$Ezfm5ji!0O*T)h1Viz$*?kz+U5oapLoW9t%B1%i^nW zU0mG&!9Ex$%v63-Q~SXJ^WCrEDQ@YNq=0jICZ2AcQvL)awNYC7Sxvrgfg>0Hp@nZo zag-q~np9{l>Xo~k(P<|v{fRDCkt)g@>vKxD709G~9YY z3zc-uK~}CRAklRha@y$Ul>1agtwymWKzH!i_=yC#Z2t9-DVl4m>XrHutV@Au`g;)e zs~*#ytFJ)yp@b)`bq8uB(!=bRoa%8Jv%~)z&FG+U|fHFr)k7;eK7sL-|=MG2gX7D@Eov7rmPE zZtw?73=^T~?WgT;WISWTNc5MRJ-{OwOli`;PN5!_Ovr$wz2T{3-BB7cUx}LJV1#{- zYRz8KF21=L&`52f4?Vi56ofPTeRN@?aTlbgN~c9}eNOFh9$ z2WHsT-w?iJae#kmbSJRBp(&CH_Y@u-ah~T&7`V5^&+VIf(Kj5^o1sE(CcnFulKixX zf`yg06H`GSBf2eRdp>JR)o<0iLq%fMYdT-yRjNSe4<-CveMjzb6-AWJ7?B0jI!mY# zU1!(q8_oNXY3)lME8k-E)lzVoe$kWqE36J3>bddbzvf2LD)}dkn)bN{ zufBx0yoOPsGng)BxAvW8D4-O`Onb3}J<>()aBYqxMZ!)XFPXs`sN?{)rEbbikynL%=L$&RPW)Z#Xk*QSH^P?{$$jjN@~ z^v<>!`s((b1qHW6mU^F z|NBQ$JY4fOUnEb&)PY<%!ot{B4izC*q>Rny8xqRiY#Hr$CU3po8ikMs&O`$4PR3BY z`q%eV%iBHzk5#Rb6d#7a6}OK)vb?#{a4YPkL4~sm-6Sb-8FRqJb9zC8I(2q@a=j1U zJ7=glwBMs>fW*FmwKiM*d;^p0m-}k%$w2A18H%kC+zg9H#tKtxXdSR?{^&;Ou34ku zK9&0`TtM%nhllS{^-ZN3s{gIY`WHJtOMH%Iaq^T{<31B@ksqCT7H9p z_SsGJ6#nEPd*YWfaZ}0KpZ*{G4_jUEVlD0k+8Wrp6UOqJ-nn~UJ^^?7>$Br2yx)|p zRHJg=CRe;(C5;*NnnMC7%y<0>re z7>=d$5z;szA}D$X(jE87U$`tKhncX0)mB*d@eR_L#7-G0}dnN$#d7Fv*~(Hk1z zS_YvA-dpOHOnkG%+PCi$ym#q2YTUjx6)F>n)AqlTlYLmOjFA%x|_k%ha;l9qmU?{RwK;@&vfC-lr93I0Dd|Pc*k592z0cIe$xYRuHvBg$Q)9 zWR6&dds|V9cizYA09<1}#&KhE@HZz|}CD2-c(P>>a#% zZLcV4@T*i_%&#qKlJ&-Z2gecjuh|^wZazb`0J^Pi+l%@+$aj!N5h~9JgmJ~kX)N!F zvEgzVS+gmW@@``wFvcXtZP0RQb}#ny2FqD%3*k_M4w7n}ly!Sd*&7tc>4TEG2-(3O zIB_P8Vri*t=69g1%Zf@0usPZ3!h9eR?_*zD5Y)27!O<=^{6hd)jaQwci5*MBJdWPn ze_I(+*|p@~Gh^ z9;)&arKiIBdXU6)TY{UVR75UcJ81O^Q3>>gSg8JeZu<{4ru6q+0JrCZVbW`NVhk>7 zDo(fZ8^kz|pRXp=Huap}`8oU?9{ zg|lDWv|0REcI@zzw^Q2gA%KwECAN_E(bFEG^OoH?2)H&{(yfq@`Bp!Yub~ty30Lgh zH^TFfkyxacj(kRms;zCmS9X4+i8~QQv-LNWL>KVuEg96CK!v&hOY}IQiS5tu6@H8q zaZ;Uqew8EV;rHOv8+NfdPj{kCRh?>s@6@c5W zHp52mMrk&%-xhD|YaC?q#1I!6aW@zt3KZTG_acXoNT z&&2#&d3v3Y^JP9>@M$n5wP)6tY_{GHjeu|0)!cixkiwt1E3_tZfV@GX$MNeay=-f{ zP=$%UZuY9pnOFvkuB}UYh6{UN8KmX=p*AOP)A~TxE*@j)cJ{=EbPMVoy25WdLCyJ@2Db*fK3G6(2f;sxs&ga}$jD{e-B)QV>sr7NU~)q8nn z#bI^%*!s%hz9Pd`M+Qn;mP~;S^)Yllk=vf?7$YDCU?nr{ZJ$1_?CMHwQ*)8TXcmBQ zFE$eGK*8vjpNesN))rN@*OI_zfZa#j0||C;E){+sZhbZAKIW|^ zfSFliKC(s{QaZDt|9RRQdTYKc5a=>Nm77#VHdc7cjzRG4!ZP^_~T98$$QDaFa77Ai^Y*{Di-z51I(xMG zdsm}pF0Wa4$$_Ge@*kp&e@gM4lG2(jf0m<3F256PM7K!kf5?FSlSe1NH2kv*pfbWY z*sEkv#}HTFX<_1BwB0ooWR3x-GpL5l{P4=$Fz$ z6D}1~|FDm^CMdLUH9l761!rnOdhUg;;mvs9l!LHLcQTe`cgQuRyfG@MD`ckcjQ;pTQCdpJnjoDsY}$;tE*lM zV&zd*YjM9aDMiYxA?BEW)t)Rt=*{2SI;lp=r&ndD8k9E6O7(7duc~{ZXXprW06uKwgn!R@^P@J}RY-k2K#NcH{xi4hX4fCK z9(0K<>N^Um91L2K&89Ng9g?oqhw{J?ZP?VW_MejiB==n>t+K-$z=I8fRB+~G&QZnN z6}$D~!RmuzZzfwC$ht?gLeOih-0RGJiOA{S_|UE^avF!?+h?u=5wG;D;A&Lm*sgS| zTYwL$YOEtNT45GBK649X^!dS(5u)t=nHyWmQ3;DYO2oM5>N2EB`#6kh{xQ^)tN=EU z$x@X2G(zrbtF&WZE^erhH>l(FNM9I1soAADvv)x>R--&ChXaio()o{g_F9`Rqm%K* zpA94AO!=dQY$^rID!wjsm> z9dG~8ESHkE&mXYWCOYZrl@{4>MUtOe5|GB%qNBl_e#??Jo*VzgW>HfE;y1+^l};kb zhGg9vX5L)uBQNC`?H}$v3kpn+A*lV4zA_k=)$}jOmHvy>BL^u{JEYKpov~^c1sPDJ zEDF4Uh(AxJ`&ED0E_b>l@DWzOxRivkY^e(o&R!dEIQ7PuIA4XE>nYu|c7l=I2bt`w zJS^ry20g{;hzDI^@1=aA6ZmK?rr=UU5BFrSGVZQDOtJIrvZ{u?N;Z3q4!%8F?cWs& zmVqxoBq8t}z9P)(RhSO2AX%|5Bb_f8PVwmjbr_nWD~RdBMqZ# zuN*8HY>1GFcS%-fX_5mAHLfcGpey@|SL=Tcy>wRJYf%gQuen*S>3Cb2V@fQ-4(e~P zHjD^~rlO@x;qI6#N0QD`mH@kojJkT{?<_b|uiBE`t4=ui z7DiM|k6dga>mZK}o3RKp@Sjp`T3*R!qvb&w!xG~lx7)TARc=va7qF1L5jCeyjEZB`-+!Bs5%>Z>HB?fF)fHf zci)qSiNcYf?vPLiM63~o5KGbyYf*e@JM|RqjwbtjV{UR>nwRGFf5|JS1x;jO?~=)A zO)~Zr>^DYb#<)43u54A?7qsb5&v2`6lr3Y69pKj1AlEImdd>1S24Cvs()5@hm>Zvm zwC`osQg%{w8;K_)2xXku8@o!(Sn5=nv5>I~j$VYTR;^M?jy+dx)SQ>w3>tYt-`Kq& z#>u|e)!N|ff;>P!KjU2O9K-0A)mb*aj<;T~q;e}GfBIfP52(2-{5~w?ib~l{24tCg z4S=kY;CGMXqG!KaryxO){A)$`q}wB_CYyuN<9l@p++<~!TaXL!i%`p52q}x8yKPM6 ztFL;+^!77&Lf&|&zTq0~Zd-D6y#G+HbuxHrg6r>>L$?aMz*jA)AwPZ9p)wvr#ESC# z^rX-Kr;@YoYQk~*u!vt!DG?<^7)Xhfh@)XD5{iOIGdh*g6KN1BkyJW|64E_j#HQ59 z4TF&~dNd3+U>l6b-%EJTx!=Kk&VB#!xvtO6sBUpp>VHTnK<+`YiEeQGEF%sz4;?3# zS22mxUh2hJzl431ort{Lb-a`DxvG#?U^*!>#EW5T6{OX2GIf=M_K(&~4k|AUjf0@n zyb}#iVi^3gX+>S9MgusWqJ&?lFsATbwK0O5gLf;WdUE2kqFpT^*YAMKOKqj^8n<7; zwZ6f7NJ!8j)TH*JO7GpBWglTf!PR@mqkX7O>8;e`wT9Ng8A;ic$=Ag?)*lXz9&R1= z5Q7um9P_d_m(P~0*rmu%z(n1AE+(ejGh}oNvcHLRirM5Y$!!Jv5LwzhTAco4!{=R! zC-~1!yeGB0U*IaHS{lynK?}ts(ywu7TllgoRWaxj{;oiat!q_!z`V z)yM5LmbaaQ4)AhmoI{~XE6j4KM0()o*cp2;&bx8+Rz&up`e_+Yu5x)!goY5=v*g1BCVvX0?%@|I4(X7TAYW7jPb?$*zVtz2~3$~FPq zUk=4s9~jV;##3EqDGA4OD`N+O&6s5Ho+a*+h)!VRU8{^p)grH=Cr86Xd^W`yKM0%~ z%eWz5))$5iUmz>XRhmEA;iC!-pgAZHSveuyjf$A7$6rp=p+#|DXQm-EDT0<0x2~n` z>AguNv^~-ST4IwQQ0Tig1}rD%oNSF&!f%Cp#t|Hfr=<*K1@D+(+L4%l(24z$H{Kj;(r$9DmQze|#REa#nSVVyba8JV))kJ4?v-2PlR zV0HMP6F!R<8qrxis?Xj<`6v6~Ya&J>Nq#i$$18g+kK?jVc3~MM@|TO z_z268Y!orSNTAK>pRgY%Q&1ue%}=pa4@-#DER2m18;o7nzx2`ndTQSD=lG`NJ8w!R z3yynPsFwCUy}sFXWZ%)z7~zCp+wIKbN6oI{qSBS1Ck?9K)R$5gl|Bf2SviL@%XPfm z5%A!3Fdfu-)6qZ|hhBVtLW$_62G87CQKxw3qlPS&?lDb2i7y_PipxIsS`@l{#J4p4 zrgSql+@75u2)M1V*`0oksHkrHsseYyyDt93?Xsk|@1#WiFYu62@>FIIh1;t7J*6Vn zvT`Q%SW-?&BLBO`xQ|6h!I@{lw)$`mN65>@Ptm@Ajs0UCCv_px7gnic*G~P0XpigW z(*7^2H^06UB9?oHIgpS(tI97?(f5X>YD8_bOV`p8q3yeMvOO zP*?A%a$)F9+|hMiy+ARlLPbJG-+f4}0ybWy)h-qJEKy6Ed$N44wRA>;75D8v(}+`% zbdn0_`%1e+Ux#eYWi^7ui)MDHkkghHw)q6DIyh!F4^q2pbzL;g3sq%Q)GP zd+J@2b>?y^a^@gVBj;MkJ+0TP$E7e3$OzRLNa^ZWEUe^@@$cA&ez`YcFc7Z3GLjfs zqlHolVpmC#a0Fc;+#R>ZRD9ZfrL5#%s}oHwsQxadP5^v@d)XnNrH|0GbbWkRkp z1znAx_|N$CL|Ap*V?GFq6tmL|qgHU2{D6|W$%(OyE^#H2r$B7W_zzJY`HkV3N9*l zlQdn=iJYlx5>ZrkU{+I)Bs+Q z^ZL|P(~eBGP?)~GEco|g%H|iWWSr9%Z?X07?Vyq8@U1bpmL8d-YRojuf;oi*7yKuw zv$`0L>Mu@#=}3uioqi^{)UdP-OMyEPcje0-0>5B*s zaBjWx_I~48T}%HBZ_!SP6$WC>q8+`H6#w2|RvEVNSVN94X=gXP(OnrA?wH7BEbIyB$sg7VS{l^1*ZvlV*>hk;6w z8`x+&*Fs}YI07z%w*DSnUm}j7So)i+9oRIx-+%_?b{jeBoS)Uq2XDM6@UXkP1C2fz z6jR~gQ{z}>-n?mo?*mrsHtle4iLPQ3ezOo-@fVh|p&#+zK*oo;8&zQ@i12)_)wpA6 za6z1h486{C|I?Wpq?X8$UzOfrnc&xYHEHylO@lRp<^`+fERnBswO*xR0 z(S8z26lUy0G79Utanr-&lcw34_j36M6*=d5CDEm!bU->J?=G{{V!+dJU+VsYk(sOl z-0#rKbEwOkt9J)PV2dvjNQmk;liYbQZ+_3l}J*j~AKR=z|hO(-Xsv5CADkRfmUqGc(v*3g=j9n&Hn% zxpyAnZH}IvRdTr93`jA@59}J(A3n_fj94)1%BKW)4Yi7YD+|@@wfwvU>wJA=Vbp04 zsX0YeBlrlx%IK?hxBbofKU6dcoagIRtrsb3T~@72umP>mV?6kIGLI+gvTVCgL;yOH ztHOehX&S6bh`;?VOwDm{{*^bkBwkvW; zWC<4MMQ`@|8RpC2JRSe>sBIv>JU1NWGZ?3`h8XFLAzg1e^y}jserSNMTP%F5AYr#A zPC;f%9f_2%ejvo34NXnx}}%-d*b#N7AIK<90QQ|m6L=?FgA zII;B~e`%9jdhk)v(NlJ&L(F-u^{2%2C38ZcMo?4$mzhv?kp~;2a!bnEoN@9+@>@SA zjVN01RAt6leUcJA0ta$uuyykk*>AcMq8)KA2*`m$Y^*f>)%1<1i?)vJZ@YijMl!RZ zY7g7Y(MiiEarp|RR%HQms{3 z@_RCyJqI)HF^l26ATQ%LBqDa}Ns=97K*MoYj0xJT9U=s}6{fvReC}H)S{$DxSYwgE zbM~AO)ZmQA$8$o^2%k!K_K>3x(g8Q+!qviHu(h|1otD|3p5)qEYy7r%0-ik4>QD+}8}tDe*c_ zZRV;atM~?AQj;zCuko(+H^M{m)7#(xBU$>dtvUu)uYQ)k6Zi<`;oDhsv@3Ka| z?oZBUv3_JI0dj&qp|o&of-Gc@QX9_6ucIo>GfsFh1!;t2xbNHFr$%*2A5nPmJmqMF zStg0OVfE@J3G*1{zIzA!JKtFFAEu=jk^2eSpN0lB&IVBd7O;CO{$qq?ohT!(Fam$N^s)BIXygpB_h@oKFCo5c%e*^tSbjaDA^gg42e9`~1Ey~-u+b0mtN zEuVhAq*sbis7=3K#Kq-dl=1HqC6BwX<8LhElTmY=5u%;tJht<5y=*rexMFtoYa0tI zxD3Jr29lB*lVDD%n&ZDLd0G4hG2(PP)or~hDp$4btm_i`QU87XCl92La4lIw#9NP# z@AvwE_3Q9UYT%Zlz4OgMZ&T}1L(v!zJNQ(%GrX*g+_^RV`g6k%!>5`LCk`=i{P&+q z?hFsutCAVQ(t4}!6h7)m$*)BHfG#%hc4%IOQPdB`afrN<{OD4g#(+hAFAu=u4L-{w zX&r5)d-S$4YUt#mpMaSLl=7uGgU15?PCb6p1^?F(N;m-8{NmwC##l0{Wx5L(ONj97 z`07ZzUPLurRjGTKzI?RNUYsA>%)? zW&QzO{|5geLo}rC#JuOrkS8?3Hsrq}*W#A;fFvt@?e6Dyv&1~2Gy#zW<^`fuj@-NU zO~w8j!y`+nNk#34@Wi0k_7}JlG(s;fkDc{q-c8Y-OBQyh_&4*drglnCeanHE-S>N+&Qf>~`_l7A>S>L}NAFiybdPjqh`py^)M*eCGD_ny zU1IgVtVrzd`K>z{{LSGX4`Tnxp@v}NgY*0vRQW11`_0C~P-}1l|H{Hwl<>2@-Djz_ z+mYe&HM4ij_>)onodm#ru_1 z9j6UHb*}LfKluA=Cej;mJxcQ8%wio;)@6T)J=<#_Y@38IHiz~^wg5=XiT?%Ur)Yn$kLq?#d zD%cd1HJhZiXhnMdpr5N%t(ScBWkk~)7r&|^Im`e0j6EjVZIo@_`!?VR5{N9udB0$L z=1BRVwUvokhK79*Jt_w7i<-k(sj%s5=0&!T!Qvk770Ano-T0`uEfx^GSDS4HE@ZZL zt61YP^4}`6$|V2xBC|X&NYsgjW(32%GWWkJv*vwYGf*u zFyKqUuR<0d+Mi0cYEMfg`_naLJFh~~mcwG)C|%TU7HbyvAGuJb?0+jFU%ohUx#1*vm2YdPHGMD@xUJ^;~Ke@gonH698NxwfRrVQNWVqWhFWFj z)NNz-$TrKSt-~A+?#2RSm%FouEbg&--^(NuKO^hxlh55DhmhxE0T1S&HP`!YhctpN zu?4?ygVk|)uAa!nZSewm?%>m)KwHM5UGt9|iCZBqN7zw5;w67m}e}@V{ zbH)2LQVs;jH7w@#pR!8<>HBsfHx^N z8M>I`^bKH~$f%_E2l$R)OYIJ!rsE)}4;~G^#&acz{!Qxe5psUMf~U4Ltc(e)eu|xa zOl57k+FIV$%+g;yfW@3PNvxvK8-F@@dE~-WVM`%L8pkn|+cBg^egP-n)iLkxjYJg^ zbCb3rew*1rBgrId2yml*QC|!%{pK33m_4;>`FAm00GG9Oz)8JAIhQUMDDAvK!Ogzm zn07iolkGGB3|4#$t7mumVJ$r_KIG>k2?09HD8_8j*rj;qffmjyW!lapy9R(RM5A5bkuBNPI>pbQ7@Im?};}TFKF%S|c-&$Fr?6zDEy^ zoD#7=&wSFvZr+ynRmPq_3W+=H@@p>7W6t+oJaJ(|j~W}K;Z?$PDZGhju40{8E_spO z7Ozh$Mtj1A(o365*-jyM~*2?zf{?OFBAPYQ5Un9!8B?3V*xlU%z*q()eEO>Naa4$OF3e zdVAD+dV2G;HHrV!wZA-Hwlj?@JP#gyTi@+fQkhOyYCAK6A{5alH3BUpU(~#$mT4h5 zpbXo09z>gc=D#cIb&@{(!mHo>e#O`D zAlyVq795_>fndquYx4%d4lhGvXA2i6xH6v-N&l*O<{Y=T4XwH;uh&>wmlU$}%n*CU zB@+q!p*lk;ua?u=V}Q>5HD96jVY3oTb{-=x{G_YDbO~s|oE7E4o!k?bRM;fJe6-7BmLixR=YyR&v1o$#y?vA6 zol*}mU0F&PKX5!Vq{}>M_Iu2m#V%>0*|xZK>^FmjKtQ!p5F74i8g7ab@K4YL`N(32 z4|JYMh2^OYA{}j{9TCQunJY6BIa*P{zLH^ayc^zMBk(P^Z%)?{sh+rBr2EukCH|jk zAYX1o(@&*Bu0ignDnjaU*~9%!SMRBM6ok$%hI{)c|L+>00`=j$R}YmPYbFK`)(~im zkgUluJIhL4Al7{}0^Wj&u!3&liPKVn-pLhAk>Bdxb>6b8Hwk!09NhkuYo6!;sZpbr zS{JcD5_BK(+z>+PDHeaT{(%%_jy(J9DE_)OYn0I0{EuC^w&{~q82WqUi?Hn36DOIG z;D5hee#12H-nvYlx@X~Y%We6A(aoBQ^~+Tg;Z7MFLCR20& zRT{jz(a=oj7ljFWn&b0MGP}1A9~@R!G$n_ASq>8hWczF{Dt_U}g9ew73Lb@C6!Ad< zU!&l_F!=)g$}HWj=`fw}wJWeD`p-IxkeQWVWPvw>df~Ryw@ClRtA#-N3n`9Ng%{^K$K~2G5kuV4oL2q$fA_#_OG_K&Knb7R~G5S{6GN zBtm#Gkv2r`dzdu&P~1Hg)_+LeQ`yA8c=@dMmqGp0R%aLZj{$*n#lwp#(!O3HxQ=%< zYl4rLD1jPu)Gb;WCR0;CsN#m!=P&5j5mK&OSTquO0~Mea4xnXONLKS((I#1D`s(>?bV$BD3Tbh6Ji}K@tdy{f~wruUpwXMJGRrPwOiXh0{ zrNk~9$X>|{-gklS+6m9V=$P`^cH_IPBvk16iNf1TMsunPuMl+{KQ=KS_6E61Xu~?ND+9F!DOvb2&lk(JF}K&4*C& zFZ8vec1RDjY9Wsy(nLWYJB6b~bKZoeF+-f|lFE_RmJ0RohDuM5r}lJrux}#Q^Il~; z>A818bilxuMK&pjx1~{#_I^4%sPEGDVAazcJ%MC-=Y6)uox3w4*-N?&N~;z?&5I%Y ziY{&Zbw4BCaqqljy&cQ^b7vT`T$$)_i(_>#l?`pVm|Q7}`F->QvaBFmaVz=Tjqm_} z^?T@p^A6Xwgua0`S&dtWg@vDX-(`zTN64$oA{HIE^yTd7?R##2_=|r3hdW>7#ZmCY zPukgbeWha8{DJ0gyRk3FjOd{sJ7u9O7Ad?<-^*%+DX|5jzQkjqH+E`-tn=2|GJ+L`z4FL(Xp&k@7!zSy(cUgSjNQcO3wI zUhhd^8}TgFR!CRvNNCabn>>mBHVzdyLq=4vtZm1fl@+YJ^OIpNnYU00H{-iwda?s~ zl@9-RdIKX8J{dn(Z0#`8EPF~xg}11C+5E4ebu%bmN$ycCDjI@(2hogC5rb`PbCW5c6C-8u*X6y;r#fX0N*kz75p5Cn#91Aduu z#cg_=uoERv*hz-Pi{&g=dEQ2wn(DuLw6D(w--$b@y@86A4>Tc8iGqZ6gWi5pvsfC* z9pre`C9Wy9KW+nAzJJgia;6A>KwJ7%g6$T(*!!`q$#he(lf^5jjjeW&gVzu9Wkx$t z2e6xwNTj=rEG1+r7fI^xW_Xks;#F3A?q<j2{Z5>dU2z0RoCwoIiq7WN_H0rAzkLCz+gqtMAu=$napxb`7u$)o{Et>`Cu=-`B5 z&|>_RLm022#)+-|Y(eY#h@mpMm(i>~B~m_FU<{4CrZ)U`wVS%ToAi2*?e7z0wo&Ro z^aV(;_qL0JXhb4MTUT4MJQvd^JcpXURd*2FJJHlH68eS1-Wy1f2!45=UW+^8%v~aj z^3lYh7?%Ao%_0T4Ozg~n(HMYbqhZ9MjMdd9a4P&|R2!KoRT@kN1m2&G8Utde5cf(_-Qr$%VGepAT=xf6P$rS#SLwG}Kf~ ztt7wgapj|w!CO#?@`Rl8K?YrsaEY9h(O{3tCN0cA{z+j4`X$Wl1FST2@%iwFF81KM ztF1QA-q)V$l3-3MhHipbWDz_BAgGeOe2Oq5WcVN|IYw0ZQ2ei+M07oZau?CE5(6mY z7>SDGm4Q+|uVHyR%+=Lc>#rnV&5Z3+w={Nwpx%BaL6v-YO>_k0SS`9J?^n=~SI^`9 z3tAV9OV4Z7U!{)7Nn1(_BKte-GFEvBpcVIcg*1w8Vp`i+rYFTDs@F~Z#NGwcjUlLt zvnA8D_uwC$>gk!sFT!K-NTYWDB5N_-`2Ej;_{3H}IlK4%0oA0(5&$>Gp1%Oyz4Ck!K$c+o)Eb~4KdObYZK|E4;6OVroBS%+>1hCbb(L0Qh2Th{-$*|2 zKb8&>TniA!ZxVduz>XY^$&5iJfTw<(ZephZBRJCFdjALc<$L$U?TiJrQ~@8jg!-Wu zcCvtN1Xs#a>8&nR2~&KgrY>;f$+9*!zj7f?hn<(0%{-YO*+{-bNvCwZ@%np5V_e^D zMFgsUR(@axAN2RaJ633_YI4;Yu?V_xKx(z@xHWs+X3W|)<%fmA(9!zDf~5V|J!P_h z9~P(*f7lz)zU`=)odEgL1_S+uFZn;>RU3~HXr`fReiUUX2tAvVdH)*%M@!u?U6uXJ zb)`jL5}~ZNF1xH+BvU@y!2c`QzQAt5H)xe8eOwS~N$Qi&67luBl7_KP#YCQDMnl6Q zIv0C98z@$y-|#eGO+|^pUh^B%It?f!Gj2j({3TKxETXhi@qycGO!LEZ0t=WSd@K&wqP4+#+je*U$zVSdCE^nAL`Goa1*~`_-7Ka%5W%@gPjS%nKk}|X?r7GVz zG?Q1`m7=N|T;rDhtSj46?3wGqw62oM?|?bO&yhQynd&SYp}PY5ce&zUKGAbGx*)@q zenoWO`^tIw*=W6=Wv_m})NAB6;*|Y7`Az&wkPzaqnP?zvafpxm(HqbxJRkyCq=y|#9f;yQG69J%RRD^4UUSBS^A5Sp5 zW<7yp<~wbNaW3Q~Lu)vMxGHuy!f-sxpfEB&gSDnR^j5~nh@p0Vq-EPBD_1SjldPH4 z`$HE3jyRhS`gifnBWSJ(Kd&4A+LUNJVIiH*{`Qpt4UQvaHk@|M|HM9h7@A0#>OUph z?wv6}v)&h0?Xye>&wE>V0+RdJfm6HMhIABBV&+1hlhC156KYafG2%}dDMKJ`HwgBH zS&=F#(`q$IVF?qMQz!}WRKrf=>t>c3nCkp`x2p=JeAioyzIw5R^Z9Bdxg~+;!`^(K zt@XhXM$es?G+;^uvz2F7dBO)D)*@H%NH-+tGX9po4+)z_Ie zdz$i=O4HKqn^C3=T4M5y(ZYS z3eMiu*jK(Rf0+==zeRQrH6QdZx1`&@t2>;?uL&tZx}!Ez%CqQwC(~W_;Z0|8lgtp` zx1NuR4Z|KL(L8)>wPm>d2j3qHYBY}3hNHvP320jX_I!7U5n2n2ma;{yc&m=81H#ke z=T0LUGkY!mv@lqI7nJ#Pew`z9qNQiwBq5^8myqr?xg>GoRZI8@ApmCzc|7qC_)(&9 zO(_ABvvF_c^9!mxE$`;dBJ=1MG%|Izm~GF-H@Er;jQds5l#1Och_~X%<6il^ZnWpO zi96J+12${@RFm0(l`9`;*qZoWAyNdt9%|STVTFoJ@ez$1OHKlP;8rrENy)IRQ+JH3$;J10Wp*u$FVpC5KXz`|g2S zD!xZ~tmPevBY|3ca}F(N#J^8DR!ncCe9c1RYwI>e-I<1s1yqjDqm z&lhiSpuxz1O-lZRvR}-7TDr0!8-fN~oiE?%!G~NotJ_vJlx&c(ILPh(En3sHssN%P zrXdw{HQ4z1lOv}Wyj&rtYR#0cRqG;|7!2Ei$rvozb}V7kKXdJRV22Cl{*MEexgIa< zH)7&SM?wqlPyUd8ryCol^13Tx{SjNwV+=%K`=>ub{@$t`6z+6n1}V7*T9@veE}mWx zfexQCJ^wSH60UOMcTb~3ClLFfCpq|XSDiKE_L1%Jj&zue=V9IegkbvmuS7Qm35y6a z-CWh&=wjpFp{;!)9?Z}#x@wG9AAlnv4h;f3t=va=lW9Dq(~}2@*9iECUOsJ4d_LiR lir6$KK+4ffQgy^{CktoH>Y^9l3;lm)&v5U;qSzIw{{uQ=%`gA} literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/postal1/scripts/app__localization.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/postal1/scripts/app__localization.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..200ad20aea546569f2060e13359a2f5b578698be GIT binary patch literal 747 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 IVqtS=3a|FL7ytkO literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/postal2/meta/splash.bmp.i b/mk/linux/mojosetup/.hg/store/data/examples/postal2/meta/splash.bmp.i new file mode 100644 index 0000000000000000000000000000000000000000..0ab67c604e078e26541278c1fd9f6960edf98222 GIT binary patch literal 27202 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/postal2/scripts/app__localization.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/postal2/scripts/app__localization.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..52916b2a1fbd06c0b22fbee557501b709596e400 GIT binary patch literal 747 zcmV}eJN00000000000001ZoPAVHZ__{!z2{eqa_J@Zfh*$B(g=`JsiNY55UQs3 z#NKv2Ywbs(7;yvfNB9SoIQ16#znER;!$|;3QLLS}&+omN-7JHdVshX-TCcc*rSdh5 zvuq4#2@2CR#NL5o@U?O?v+6NH?~3Vsmw>CD|2sd$cHw^ zwjI*JEBG=3c|MIl@J41d*J|=K{=6&4ha&nfusnHga0RHHfs*1PoaL>FxEE(JqZC7J z8iG<;D!j2P@CGb3Wqp)Og*jXYDg|?AtVKIiC!9X)vQehbszr-iaAA0^ zs$hlF#KGKVCa)4@aBv@}G7c(>cUYQ(&{~~3=fVdk^x1TJu-a#S$a);YJ5Gl*$`@||di1}f z%~V0`PEY0Sn~TAx5~`q~KE8c@{$Ip_znSWYyHkH@m%<1R>6jnN-Fxnl_jp?GU8i~% dJ926`{^Z&tPFJE_R<|dYU!Kc__6O)>)1}NGW?BFM literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/postal2/scripts/config.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/postal2/scripts/config.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..b873459c5e7d9fcdda83d704b4a8a64b9e7f6222 GIT binary patch literal 631 zcmV--0*L(p0RRC20000000K7v00jI10000000O@M|NsC0|NsBF=?}D)1fJY%sLt;u z$yrmJr}~fp00000000000001ZoQ+i5irX*{efL)gL7@v-=Rzo@WgixrE-6X7G=)N6 zjAD=N>B^F;%ch~^-#fA$XLF;SmxMV-Gjrx*sZ$}@!~JrW%s;Qb-7gl&YW`!!?$~%b z8c*L&-%LjDqewQigxpL0Q?J1JI(9}VD}{q7Y8{UveG&ykee>wpQGw+zz22H(GlULn zpxq#9e%pXEFU3i=Ykgc`3d+L1dyPKrO$sfm8%82qTI_y1esdw?mnQN_&SxP#95ttH z&@Yb$vNIqU-|cOA+Pc6-Y{d7A%z(m?CA zbtUaE+W@lwaUAy#c4v`4fPHehUV`#-2i27%*M$dDH0A$W{k;{Sz+ig*@RaDZmJaJZ zNuopAE4d}PsW!C9j^$`bKAniA#@bSAN0*WtU9qq2Ewk@*%xu+N^J#{)N6MfQOq;n} zkk=vHY;0Vsf*+&dmW0YAsvw2G8V!#>4?T}QK7}^hKzbnE{4kVuTcceR(J<*Qna(M! R%CU&07c2}g`U`EiWi}}EDH{L) literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/postal2aw/make.sh.i b/mk/linux/mojosetup/.hg/store/data/examples/postal2aw/make.sh.i new file mode 100644 index 0000000000000000000000000000000000000000..6cfe90266a9edb3d20fa4397531a0c54c7d9e698 GIT binary patch literal 2425 zcmV-<35NCn0RRC20000000}t&02lHA0000000O`N|NsC0|Ns9;&6ECyFpy237PA%R zcywyC&gjMf00000000000001ZoV8eObJ|D}{(SlsZR{#`ZA(hBb-BAud8-7-wl)|j zB-T#ug$Oag1ffxBqyX9Mf4}Y-frSk?ReR@h!7$VFbWe9rzs%{0J>rQy3gyf&P9d0a z2{Oufngfm!kwYd%h0I|hG6>@s(m2di2?lksK^(oBqth)Ij!eprNa2C~Q) ztVMyeNj*ns9*+rb!onPvWMwU3Y>lcf)?harsg%mYh%I< zjdB9!1jb<=+DFkYvU-7_|4$=LSSGG`0hx&PbsgH`Oozh~u{BxBzRVp&$Lf&eZ@ z%#74iM-8IJ@Fy%Yfr=ROj77P~)|X^dr9eI=ZjngWM7IOP6Pc4IkQn#_&4#!Peo(e7 zl8l8?B;hDt!-y-ZN`z))PM+)lW$X)==sd_K$ukivA4>#Gg&2c|`EhfG6>itcbb7sx zbLU>wdV=JDH$TIpE}&Efcv?u7)yVW76y%*yi!vc4@>`^w)<`<-L3jzmjH55)asQkBT_V(Elf}SVNm9#R`@pn zEq%8}B3E}~&R8m8fkGiSQh-ES+T%1lrH3g?Sf==IMWdUMqSA;=7Na~?B8^#!2WCk` zBudtpg>&+6p3uGdfaY9;Yju|+I#@Uocpr0;hM32(h1$X^$DB5u7%2PL+ zSJNm`{F@ICSJR6Nhc_ zXr}zM2@QHd#RugIyV0T3>=C3A_G&A248?Pwaun%v%2$U-jWQr|j6md~ zDk+$s)mC)miFR!KSE20^q8W?kYCm~9r2xFQI>T8iHuy8K1iVyPnH5w3SW>*zaSh{> z%*S|T%IvV(9PCVmcqQ)ZU1{3`#}E2muiFc*)I?+8wOh)8T9hc%T+ko5-nC8>G**+> zPTSwksvnPig>XW_FPPp}P^DiR`8m`5`e2D<}r+V{=}A3Cnvg5cIA zjY7}q`)(h+YejMIbOIQ3ypA6@?Kb#>Ua#8^PK;=b`P8@BCCg z`Y&Yyv(>zF-n&C(xuG)M+183rXqv-j_pax)-Tu{Cv-x!K;i0;BsH-C)og z-VNG;=k%Mm+6VSf(4zO7JN)SNltUaL37r0mFi10Oe0=j=bT=OllHClv;Z5+q*BLf06R`0rrWjW* zAyw5I!{{a!Y^ib-Cc;S(TTc?x$@9!46~1LJFkngwm?{G-zEr0u(v_{7w6`(c-V@yo zN(d7+qi*8dk^(=*n3nN#jTINX!yKx(DzUKpIV0MtINQZzGH?F0?1ZtMM&UO@JcEMY zFMK7{l>4xqVk-CPUO?%*U4&(6P*ro;Dvc=dg`31zIXQAHH`(V_j1b#%Yo+2;1ZS1( z4W>9M<_7KTcjWL#q>sFjx24*^Wtb@GHa#|V5EDMdo{wrGQDpT>aZWjF@?9KD6q4BZ zlfqY^4$wcRJaWD;O@}dcdHk#Dvi|HzpW*#4&b$}&h12ibLwdNT0=IO%j9yN}M2&aq zFN`3%GI`Fxh*B{7`mNx+QbpOcK-JTBR{bEB9fk!y@<0ZqboxyORADT!=bN)__rG9C zfjvE2NcF^WNpl4j)=K!$IJ+{c02NLXWa%-?n?$S<`LAlTh-sg0xrT zsfq1*tiwW->MHNa+ODP^r}duMLX082$X5G_&MP9m)WB`Z*+QoPbd8ut$}6xIPsVr+ zDD2#!Pj!8GAnVgEr`Kx?I<2;QRXZymM=ac`A5O}8Rjp{M+UBTc|I6mMTt+s+I%(Qa zeEd1XE)?1B?E6c~GHfiDV5Yom1hHoB50RwpHL*tNc80`#cxkkj#$5M z!TzwDBBA#VX?xgWT6j>IYsoN>?`tFu>_(}({$uXiLTFo@AK$i7(PLwx64HpC55P3b zXQD$GeI_ydM0n}8?T3}{QEf-5+m#g`J+^YEXv8@^NKt3BNhqUJ4Me2{CD)5u5P+d>eZLbR<~0R zpyg4*Xbb`ug05;XdxHkvjOsgVeGAv?cN2BZ)~c;$&9v3hBKDrG5qno+ zCJ2Hcgdj2UeV^~=`wx6yKiqTgIrp4<&;8+bpXc#>o;!c;{JH;IZ!erXUtjjW`Gt1+ z|0_R{dx=q)1^Y|kXG;*?R(s0t61o5F`QI3nyV)ApkZ0B?1spg;R)rc@O=ziz?n_@7 zk9&UoRYkav-u3G&&&}39IWe4H|Nfk5UEo3luh3(mca`~mNr(BzbA&_OF`x5bW5AOe z&lRSHgXWHdSF6!>E1XaT{z~2~T8Wy#_8r1rSm@5e+I2+LYyn_(!MC=&j zY6RHPEUB7y?cd0!P_l4gD2wiDVd!6Vhb_id(zxHqhzu0xYITh~Guc38KW?*`M#|D1 zADb6eORn~yvR382H1V0}=lhyC78{GW-V5c*%(PsFIknuS*h+=k1x{S7CpYE3vGjboZFR;UQb0!E8?b7sqv`eHrc|svMgx6OxlFxI8Ix`lqIfajk7FC8)W6TjH?XD z@XP(ia_cj=e)36|3af2{wj|AJh&FmVWY{SLxr{)uhpIeU3{8K;`QHtvV2Y~+vfg%8 z&0T7bzBz_1jJ*kaRh_%TaQF;%X9&_ubl}*IV}Hq~RDPic$>qs8a}eYms^%59yVd1p zy&G1tDyNc}Z7g+l(ClrA?}!ZcJDU3#$PBXrjMSsRvkMTvlXgMD-E4atRSHWmV^S^jL1J)qa=%12f`tMj(hI<@w-fJL>ek997cL#$1v4%{#d3V09wd| z;E7RS^EC0gDPK68@YkM3htoAqa1OZvfy+74S%xE{P(t==~Ep3c~787SaUv$cY?=!k|#3G{U zrq(PdXZ85wwji~+exF;Yjp#2)2+%s)pD%_V^6U8o>rpm_7$C&!BP2;l@d^^)`OfP! z#Z@r$nXkLq0HCboNOlfWX300Z2w~ax)S4Rzapzlr^^g0Hq4kN3<-vWk{-Z%ChtsI6 zARx!#C960;6t&?KYfCXNrOBz1lk<&a;GCA0;1|C?Wzs2%yP9=ZaHQP- zpW2~>2I1~abQc)BB(FxR-J#a*&!pd{i zd_`R@eHHR(V$Qyw#alRbgz_dZ{aMmv?7+8r?0dPT+xrxkc+3a)W~-|?y6El)hWL#C z4j%c<3nJD1QPRr1400rSW%I7wSuXXGwI9Keqx-9w6O;bf$0v@86A99Sq zjw;Pg4tHjr#_w%&SIaC`H-Ghv2bY$^mTCbFfeI)(AN!z%PtHad$*q5t?OPenk33O2 zw>LNeC%+6SJWTs`{8gqIPv5Fd{D_`ewf19EDeY15J;Mi`F{{y)u(J~7;{6U-_7!RL z&BN9lX&&N<(v}X@peigl7+U^sT~gKo3Ld}i&OT~haK;H$pPsDg?6}&;O=va@x#;mY zTK0$6BEx>`W80AXK;zaA#L%i?4Rt+@-1mn^@Jtu&&id&cVvt7Abk524v|9{Zo4V4x z%h$Y6%dmU&%!Y32uGBf#vorI$iY3?H)R{nrzgsKvo7hoOPg>7b>HIh>-^)Bg+J1j{ z_^^M*_YZ&~2rEG3`bi5kjp<-zT(U`+Ani4q>rFZAd_~ohyZj4{O^Ghy6V`bV@OUE{ z=<_?2>kzopB6r_W<14#9Q}mgI1M8)&bmpUWKoTt2PWCX3$U6VI>9Xg+i#zu1yyz?2 zNRuqD`JqfJ(YfdmT;g%#<*lb`bhWl>Q9;a*ir5NqgL+6-W@`K;JE_vs#5Vh*bs+%V zbm$m(g0*uG#rq+&kFVO{xI8tWQCogT()KvBy^dBvQLRRHG0Q4VG52z=wApcci&hyQ zGx@S+lTc)0Pp7P#g_EERYRcvlgetm^MmTQ63wM1#yNwHH>*PC+lOEN*@qTe|hbO8v zB6zvY*Gm$n(4=0W2n;9T=Tf&8tIMG)^PnH_h2IE|#L(jlv=66jSy{^~=;@3ZW=}v( z`9dw}yRnk~2~Tpmd$&Xo{L##}AOxW=e?9-le-B<61#`9?E0p5g{VT0yr;Gck_M@#* z+~q#)yfUCd!znig^K15%Ec@}IU(tfyRJ;1_SnZc zO%luR=@)6O-~))~Zyd`98fGR%ORe+CALz!M4a;H8d0rZ4G5Sw$3&D;&tpX7`XV=WtEZ=w8=9kKIWKMM^{9vN z&8##iZahwgjViVpho%Hr&*Z2nDx|9!68@dJTTX0)+;O^lE5_q9>`lY$vTWi7d9k%Y zO=kVor6%gL{r$$3(qZ@W2B;!CM-ou@>?6cD2x50}23hh=BbhKmNSHzwXZizLJSdi7 zqRXor-1U48avBadQ5x=BLxBzkWq-i!D7%lWi@yOd2Im-A|2etlx9xYRv9;?8Pr^$- z4s-dSE-{^UhjElU3NpA@{K<`yS+Wk*9buUnkqjLCZ68^2p7s%bB;z*S6pGgU)~=G@ z$F#J|T>~gMd^L^?Zrq~TPV-%zYfB`u$DEQ@2eZkNv z);^RpE9jsAG9Vx(ZGYq5^YP-5HI$mMDK7i@iA>s{)mT&n!-J$vayZ=K$F&#H1*4ixBlJDBSZp-?v? z`kd{Pw(f)T?X*yOfb~RtPv)iL_tZG`BWzp4nPyO4)oB5DfmO=lzXVvF;zvZrFt`t0 zn{uW*tLnjW`daG*&VuEO3@u)0iu94(A5#v~C=28Q`mt^kY!YgFzA(GjiAKH~9t;##h!I*fhx*O`vz;8c%iM^~dlFj*}}&Hsa8 z?tV6fGE{H91vxnrIKoCY3?GgGQ!%`o*ZR=RZH!H)GmG$*xM9$G4spzE zr^>dKGfuxiVd%aAJcoD>V23SUJ3;?#Fy1!Ze)(vsG^M^NvtXCbz7wPX3}c=F?9#Q4 z=#buqM)bdv7XN@YkNJ5PkIglV=gAkU!grF_)a&*xdA4-6!5}XG_+Qn{opZj^NtgDo zZSMJq@$S1O04TNo!p92ft(JE=D=uv>T0_sSv_!Wu~um?<8&*pS zz2C{@YVot7_u-~Kt=@^j8B=_m#O+K->Y?L0>9|Kl!KxSV?`5x!&YskdJ+O1cZ4$o^ zSA2N4ehv7Mlr%!aRC#>o1A^5MK212XnA~fZ^i7qzYx5xyB8WAif*KS4KB|lyBSsSig4sqxQZ3 zO@Vi!YuAQtUDvO+aJ2hrl&SJHt@D>2iX)MyJf&1ZX^EfUyI4YL>y{PRD?eHRmz{0b zITI$}M;2Q?f$sY$2+DM}Ky22*IT^5*ax13PLzGwt`Z7n!zoLafT7rLV%O?o@3f@=7 zg?MJZJH&Z~_D3l6M>RysDd~yeQ}(QD4X@jN))M&-o;RFJ3j1>$_6IM|jUU+Ib&=Y# zUJD(&sWJX12pMtA^C|EJf>yfEL10gTZ%8;xxK*%y^swv~?=S2W^@hGzC(39yUmp>c znQL`tUu;!AIx$TFxbA+WylZ`ZT3}yyP}ZDMK0wNUCpeWRYtZFP{A1PXBKYL(T$n7B zw_VGYA;A34%+=Aw+ovV`Bwe1=%dmUc*pa#D%FwBqnboOZvPm;jki*%j%EOtpvu4kK zpH#;(RZD-baP}gJ@&{P^C{k_`JU1aA8@kHoD@nsG1i~F-jTw7Wozi>+8Q>pQcHLgU zpKJ6ukG;)P$JJ!4Hjj?m*9@N5JU$W49cIQw>k@Tkq*lSc}re zgGbnQE=&_IqV*QS*=AL7Z9uf)AUJ4C{D}T)y6Gp5{S`kktn08 zLb=>b7pzYN_REN+*b^P_dc(YSVgy_PUPlR-PpE9Zic{Aj-g&wPcVwYn`wmSv9N2dh zMLbRmOH+VfcSzmAesy~h&Hg2NS!P;;`u#zDqRQ`+F_0^r$(4lFhW)(IxKXKnW$kFP zqOJSNwkYR+g^jrACg8S$tLNzP$r2sTDd-k=f^a5%h7BS zn*A`}=A+u?qZRl_>hW}d>;~7cdUAHyxzp#gs6Ar`?CPST-5+rI;*?z83(U!VPz zR%NAp2Jz)%B_8@-=}$qH9L58)9h{CT$01ahb{yIgCVAG*ba<|D5zs}q2^_t7GGSh# z=B=JrKKpCTuhedZ7ppp(CbwhjRF_>-c%^>-1Ze_El+hA|ls-^cTwd;Bi&uYuy&%BY zq}$r|+pOf!nH?Ceob8R2DxdoFQfB(s%W~^5I`OTDPTSjgbs1~$o}alC;!hx;V{XA? z$3jbcv}jM#CN7}MTehCyC}YPk%|PY-THc9eD-$_(?~e%P{h|IcP0HL{NIdrRK|qlf z+uS$VdrPUo?OG!exQap=(Y*X`VQJfYxeev`t%JHW|%`&@knx$&5*IQACXjm&k+?MbF*kP z?P^;f3ox|sT^I__JtEN|E^91BR%|(>>064UQ2JBB=fSApjY!3BB*mpB_p^J`%UD^3 z6OIa2X}r10s2~kf?dE#Gj&b&?#GcCh%nS)+up=l3s-no54a2(Jodqic5Hia+ z0alh?Q+w)Yp1`z7g*OC{^xC8iZgw@stPPB;Yc}V!= zd4q$chr-vq4MBnrWg7H#J^^kjV^B?)?w)cWawpLQNLqLF`K`d;d} z`fas*|3oH#&ITVAyLPs{K;46Z1;q=_zJO}$z57I>bIXlT{*YI!1ZF%tv!rRd2e*eH zE3EG4CZNBat(%R-7`6{tR~l}O$55Zo`m@3DFIyCu=(yBP-pqI4bmL)nP)T=1xkLoA810^1L%%m@GCLgDQwo{^8oThFy^Pmz32L}VI(-_# zOt{@EbLm)GFbPLv%LhmRqLNyJ%0J50ji8d$XT{>%2KsqnH3CW_bv?Dxf2hiQhY!V% zomN5Tn_(OAVM{0P+jMi}cC76cX;I&c1dpe0>9gb=dHJCVDz8VQ3ywe?4;~b~{(e31 z#%;=re4fA+S(uHR+b3@;(D7`AV_7n?;hI)`6PlV#a5#yp8U0gx6k+*5NYj!6~o@aQ~%SC!rhWX)(#Dnk*^D_$TVOc$g)mIgE>uRqg-+(&(n;hBA<1SDwRje2Teef@@4 zT7w~g7Qq@zcC||c4}bR3hE)}u8kXX@zFM5zB6?ULOJ0mhZ&=-_t36VF%=7NMOKbGd z#@C4#Sk?MCiS7O`?FeS|a-2C|DA487JI$%^MB>amJN5JdJdSq%-Nw1#4N@1eUSDSk zrj1HhgT0L(fidrmmV~~Q4*BMGatqhUh&j%MvIAe}cx7xY`EKJKdgcka`bmwPC}EFy zosDDTCI2k5TMz|f*488+V`)xmH#gOzvC110FTP;dR|oy-duR`hG-Yg)0o0a7gC z>3cOIwj1WL1vEwv zt0Z$B*tH{0HZPspitbSZs*9U%Jj_tRill@}KR$@Ogq}Q&@}~@U`^}8It-_va&|=)h zx$y@aYad=h+D*>zyf6W&Diui>vqs%5=c_;T%SVp-zEFcQ%X~V2}d!y-b^_BHU zGl8k>mzql0;~|){1Xvk!s)Z7wGAaF5$>^R@Nm{fPYEBf?r)f;tzCI=DJypX~{u*#l zUlW)||2`II^+20vBSl|A@lHp^^Pu*xHihYupaOfoE$(R>tU$T?691`QAgJ~%*D!0B z9bB}MQFH%**Ih)|*hEcWitr>v&9B>J|!rm3C|Uy6=5pBuNciKs$4p zCP8-m#HZ!d( z_u?TQu{i3D%@6qH_OFQ>Cjbr-YclfhDdRB@O;?HCIZQ&ZM^mQc$wB!W0jcOG^hTb; zcN_=(m>u;4{QX5*2}5IH_$*6oqi)et$tQ`<7Gp-A+j#k1J~fZrQiRm_Z-efFYo z@GC#avma!NC^KE<4^9A-*|vlumRd1#q;K&@Y<^D}DtowP7MT&rxo-D`n{sw&Kab|D zjy(HMqjy5-4UkS_ft>awmbC0*j^ZO;JkGhMZFIS4r9|7S5 zgky;DcXsa%!63oYj>fIPM@u(jEArntuBey$Djzz!#~}eYaln^ML?nT3S`kKnJKrjE zS3A98DPC*bUN`wSG}mrr?@D^Cx2k1M(4G|2_fbSTn6-{ zBO+;)viLcxUZo+SneNWrz6!Y;>c=(Bopmsy}JwDq=CR(c0b zM9N-5FT-;uOPXinvoz`w6dMO;X1pS#d~<5MRPR_^ST?-Q)*;w zN5z+d<^YvOhrR5YIjyxT-so3|xRJm4-^0wfH$-mnC6e2XYW_NHi)<#Dz?-67OL}&+ z$7AN|BinBZ${Y1fRdA%To(JpiDlfh1aBje|Say0l4151kzk}nYoQswdVjDpJRM@KB zvC1{AzoJ9v(3|u(t=8wbkinWCXZt~H}jQSy~C9T}t0#cb`LmC;6g{$TAEO3KLQt+c1fc}R_ZTYq(grekl3ruED%s*Gb|UkoCT$)i zhFRW*>GoP-1!0c6fCK>3sUE__asm10pUKpEBimP8;DVx6Img+teGcM9WN~NzuQ0h0`2TNx*@XJ zF^VVOD0;T!@9c5+ah(`7;L@u5oz)6MvU-05&$?Xf#T&0AnAtkQbxgG+fd!wyx3Wugb_VPEq)59V{2U2(6z zAF;KLU@z~__`Hb*L zA%&;2(0L6jKU6THc0%HXomZ2daM4(X=fqRIE@$brn=AswayOZBEC4_13y-?rTB`Pl zAzYPgeQO(6WQp#_s;e}q76kypP3_Wg*1?SUSE#&BmgNnm@j-B^GnYDr`3EK8m z?6a>mmgLamRewU7-Q4JCMl$PN((PG`H{}zUkdFuTdy1B!$9oE1bI|U+82ulotEYrW zm;vyU=yBCu9s6*Sr(@iBrPFh0jBEya{xFzt>@dQ!jS9_Cpq%fGtriMxPf}Lx`XZO( zn`zQ^9P8BTY|sd=9QQ6k9(?sY9kVDc*?QN#dK+GF|NCTiKpmQfuZq5cGQaB=w}}&6 zl3(%@)U5sD;yE;UGcTNCpxPQGD}($AuQ4m>QcM_Vm;#n2z3%qadfp^{y!EpuK$pa# z@AFIAmE?oHBCerWS$v()7+xy5G@%f1)dd{c23hO*0xnZu%?ZJ=Hmef!*vNLR(QMnK zjM5378+Hn-p2~-|&e(f?Vp?}Sgk|QB0TwI#Z`4WO_CCTfdafT5_!v}0A80H($MQUY z?|R4mwN8}1L$bT2O#*hSf~Z@@s%jg8% zR+3}4fr?6gXa3LD8sy0Z3H$t9FA4L7HSxz9;RWpnc3|(&PHPaLztR`w%bwAme*C^l zzAZZUFbj}G&@W&nT|fPUEgCi}37GjJTQpS%YIn-|bG z$|J-4cd@m#>Q1%2N2;(!Gor_QSN1GM?~FH-9P~4D*CUpv`id3kci3b0%LLc@WF z@aKti@M`I{h}x&{M4OVq%HI>%j@othKUN#=2q+`b=}D}yZX&xE|1G&)xl;4FyH{iU zMiv$AC-eQcFFLnf#W*Ryr`uIR%OaaS_4ccwYvwr* zw>XIFqN^*M-GN_5^pEd4vX=LN+rw=`^2wK4G-UBLD64RbplRs27`m5m*xr3d(@)1G zukvd{wxV*Kn*zwqP22m*wX&mchI@|LzuJ#jzw}}EG3IycDh*zlc;}MEi+dJ*z;J2_ zZ3$){6U`d^Wa}5-U&T(|EUN3)Az0T2sN1Oy6)(@;HQ`se+V#x*o!z|+)7tSj=}vMb zTs`<13upVAI=jq{aO+qFB2k&q*}v5{IRZo;Sasq#p$)aIs~r^dK>vv)HsfMbjtD03 z#TWm4=&l{z(*0Ta$_DA7R|OQC${nwcaE%zG4SMb*$iMYH$_@W~pox!XNe+JYw^5x1 z)6%s;(J3v-v5W*PStkd30ZxE;4Wz<*9ZSJhGiS4xfK)GA3wTJM{B~oRU1i~nh)Q+q zv2Sd-G?R8vBTD{1h{{Ljc!YAwuahvvR@8AWUHLuoFj00a>OXbjiBRh1z7qBxdOA4f z?g{Hd#pfqLMA5OzJIf#4^{7~YP=?g9yp58tt}Od|**$P+0gTOK)2+h3ye2Kq7`AA= z=*z$>OCi_G>PVbjAa1#=vB;TMXdrdDM2BxFxcOaDDLqd743dHTF{+4EyKT!Ovhx77 zsoZjC(BXI;yun`CRV|z52J8P;T=#BfSvJ#(J|*s$X`g^OeBi{LK465swCibR9>fOA zm=F%IQqPZ7hZhdZk;1$*=iUx}cGnU?ob&6_E`*v>pIK}JJ-jxmey1i?Sgu%ESQ`c~ z4X;`jHcXrgH0M=ZVR?=yo zkVawt62|RE=>Iq%$Nt{={q>GpowqrsWHG+Ry~pb5ft4KukzJjC^)a%dUU}4sZmHOL zVi#x33C)|=j_@>rpE1WA$Bujf2iJf6d3BP=#@y zWiAP>#t=*n)o)tN&Io!mTWu_tXEyjUJ~1e+Su`;Aliwd?p%UsvKiY+;P5t>>pR?b% z`DqJ9kY>RAa!hxaSQo zEw}Wb4=nmNvx9#{#1iE>3m485v_vqNd~&S{WIgx&$OGft0}fJ7IVk~x(<5ws#c0r8 zq7Qm<&(Lqrh};8}tM|70Uy7rUtrXoH*}XR_*O*rSv3>Jk<=OjwB)%)U|E5vLbAJs} z+MHVT!A7&$QOZy-14%-s5pIYkwb0d3d#|aNZkUs1zZjD@Da1L}E^D@4i}rueAKyF@ znk)v}-QbVk8(H6Cw>I5_9eL7T^ttKYpK#wQ(w_hM&!&q0gyClGcYFk=xZ?=+Q|qTn z3BhOs;hz4pH=A9M>CB~}{;-@+!1)L|;VWQy;Y40gBdX23OGZA8kg|WD#?fv6?EW9F zRE?)9D}kfYr)fC-VbR@t6dcG7d<;k6H(Ik1crj z9{l$HnJto#Z6xVEGzyd`IYm#jRwoGV!H6VS?_0w_OZEIH$XY~#dPlaT&Z1vwmhWdJ zuZH391_6!2YUNMh^to1#8lB#v`a01wZ(j~CsZh&CN(J-xqhhwsz~RT84b7?DsgL23 zzTUA+L|8At_kL{+To4}`ZHBKLEjWe%q6Q{y?@v&Tcd-y(6)TN-}Vw_+WNv4xE9|4Y;a$ChJ&P)9UjUUK&P@d6fHZPNS9i} z`SWVyD?uNW52O*Y$~v!wyhSOh$m+^u+sz(i>?F#!?mFoCu#&GYqmvSBI8H`LOA@qD z+Zpj!qRZIw^R`$!&bMnkqvXKEd5}fpT62<;U+&RM>5ewK>r&~5O^33IO#7g2w83C- ziYBlThWvfX406kBobuzc6!l2j&5Fes8w59gu)Ads-ISwi%H1hg{|*+aBq@0$@*S z#^k`P?69$wHzuxbJ8HyA)b7*nX_PEtRQ_Z}GCOtbSLIjbZByXoMyc-&m0#i@4~G-O zed?TsdeU=~sO2-zPQ*XAm_vL>O8|=?=}$Jb(L=DuTINGlt<~At6PhI0ZBaEyYDJ1u zS$ctKS(E&dLjp^}8V~)B7l=h9Yy4?0sWf+!B;19_hS|ttOcK6x;HrfOSo$$epXHps z+BJ~S+@dE39@8CN?bnRERlHup-;`A+lV!UXtu3WiPlnH5{r3X%MlbkRq_4P+WFR6J zzD&Kh1TZ+6-1W;UDfEkU1(U}*Uw5gSFCCyKsHL8*ThQLBQ#o*i0A_QwCK_5NQ>8-o~G2m z8*Zfg)UJ;WcP;tuPBNKnU9NBSeal^P8^=gh>~mc1;ySsc&%YH)4AEuhImx|gul}8Y zN6)DYG+7%}XJq93=X=GKq7Po?5>@}B|E+ZgO@p&S79);TQl>*$4e_~ED>?WNyk(Xk zj#cd=F4-tQ2q|fWd*v`q{KhF$RtdFyf>(YvSV5GHgA?nA<2-@)4l2ZJF7ds>zcw32~o=DOA(dfn~J2& zn-f*>IC56!3wYW6uv+$6df+eG-%@0;>-yls_Qzp(0 zbu$N@Fw%m*FMTV`y3t{@+Fjd}-l#1lGnq>JxbrHeIt5xi2>NMc1oWbDGz1#SFJ^X+ z_0#y%kT=QMye*{@GzkcM<)m1=1_osqG=)lP?ynafcF?AE8yqX~e;)CM@yIozNO8y630L5q2w4VgH#!RoO-j9{&h)tA9qi9@>Y8~us2(5`PDstg%Bj)w2Gwa zVT*9j-WLlZ@riUYAJc&$%C7?G_?4bTITA|k&3OWoo4oH3AC=3ozrtU%TQVtKy;`W@ zpq5n)mE{dq{9W*HWZPt2=Qcr7Im0EeHaNs_?ZlhLY2OJe#d)%Jkk&xoH&yY&bgo=asz_yBHP74qI zl==W9;OXiE{t{+QjvW-V=~F2rS3dOTCY?kzgTnXL>r)^dU@jhW4&)Szl_1{686 zh;Me99DIhNg$KM*tXZiKWEW4F(1GMirIq)SwVAKL+LX&NTi^4$<|uf>hAVWr0zkzr z#fK|lhwt;Mo)BL@CK>IaXX~R4b52qy0dp?J!n~%~Unl6nzY$V)$W3>{^qay2v@sN! z73#6J3!P3%J&mmO74Q8zI|^9hOdLB3+DOl*breMuJg=4L4b~HUOfKHNPj6g;JZr(B z_N6K$Oz9qZTi$qj<_cJx6j&P|Q>L#P3+F;FE6rJINH2qRCf$vJm9FSGD?LfSwr4Nj zR8bTfrWB?Y;6(TN8|8s|xI%-##oLdtm?Ehad3M9?`Ey(epideF>ODao^0^-&M^#W4 zh-FzD7`%D>l{Ta?T$SF^v+UK%l>kBd-G>xSU^Kvw;Sb^24d2)HTuz6jq^L($e4YZm zEWV1@#Wf5O?1O>AOywsvwI3`o-~Ae%;+9@X3OJW%;_0B2@+Uy4jndN3>I!`e9J%-p zEqpUdqYP=$q(YFWSMG8~r=76)*B-n0(gFzcS-V)zaX_+%8UHk;%{cFaFMpHm(Jhxn zOeLJ%h>{W{*oXRQ99(=N1l){*dnCah66#(`ru%=jl#GyV130md0#6lOcxd{7+p>j? zMq4kALnU2vkd>>7NOWC>ybk&~^*&8WyHRWj&>cKBej))bn}0oIhUVI;dZn=h>r!Nz z{vL$=s?S7r^%bZ-knlWi-GLg5^f3D+r+S>m?C}3aGkPeYhnNE$jd~pq9=_{R+`%F$ z#O&+Qh4r3!6#B&5$?1#@p9eA#z|4^n1-G4JiMD+5Ya9+%xK~&6P+^uv%y%u&PLcV| zMX%<(8~niv!$c^0`)T_d1<%+p68+_7kL;lgrZnkar%(?|CS*X;-sn`a?l29RuS`pF zFvh+|wPr8r6yMwo=qLJxId+*PCCi6ICaCC@hf;3{F^G6PK)+%ur8e`H$xq)1yG)t7 zrIFyJ3o~l#ZwOzq+{eE(z7tsA&=kppdkT+^IL~t>4BXq|=k`sb=o^md%}^mXliyt{ zN&e%9f`yg06H|d7Bf72RdOqt&)o<0iLq%dWYC2!xRjYvK4-E(^hnue$kWqE36J3>bddbzvf2LF8L>o zn)bN{ufBx0x{JO}6hMy!f11p05X+X@oh(05yR{O3u{R`4HD4~{v1&fW*nQ+7BGxxU zUZD?UNN4tkCC*o(LKY(lS;HrjZt2FPIikBasP#Y*BI!`uDW{{j*vg4^Tv%F2?wdpv1D9sa> z#??~g`mg;h$fiy#OcLXef;6HiH`JBs(ULdvNiwtINL`ffT95e1>6Upp)_bdTayFzy zUeVsm6_R~j<|hqJwi>>*{iiXePkewoyJTkE=i<`j<CIJ&ZTLa z0xlZofB#5|hil&Ei{y!zI-n~@SQz`tffB@;l(G4ILqf%yEu;O;VIo;{>9GE5}%`4oIEAgxX(me6hA*@wW!>;$rZ0xNn^&n7LdRRi(UW0Ep5(MsX?WYgH~0`r#~s8^fvonT*rZ*yLIah zc!SAVrmx1!yK;9bWDYP!N7%#$lyp!+V?0iF64PaOqbS|G7tKr(2Jr>qHp6?t3K2#& zsT9UFh9l{Ggfvcw2#nr=bjN-27cNT)VxE-sSvG07LBJ%S$NcMSYs3w>os;cs2&K(I zznm~KEA-d4Ucc+kOezpR3oS_0 z>cM*y1hiPrXm17pNF=Wl7wilSDi z5P>e1%n_?_Z);ldⅈ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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/postal2aw/scripts/config.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/postal2aw/scripts/config.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..2f7756f5adeebfac211a0193b906c5fd42a7fbe5 GIT binary patch literal 2175 zcmXw2XIN8d7rX>QNf3}GN|BP#q<16)5GkRFgifdl=qjMX3Q=iNGzRGwx&#d>0wN$y zLkS3yfOK#{%F|#FUKhy4hQkY8Sc}>X&sUHA71=cB&g3a)y;v9=Ksu!gU>I?-XaXI5^L-!;R87k|P^68srbgJG*7yU{1M`aVVK zyuOzBBhp|eA69pR{IPUB@G2KlYDLq_B}y1IVj_2?aRm-b6ixmvs6HvF|Kxy!fJbC% zV2hK<<7#X{&DrNYw-6z>V@m0#*Xf<1o>JNk)S%sa$cbRRUCSP2WaxRBY?UNKBa$(t zk#yM^BwJ_Y*LS#YMt!$1G2EvhURA2L(<%j~X@kg>< z;<6C8d@bE1ko;f71@I(1Z2oP$Y-EM#rpXBsWWcjE8RJcrBJGWuo_rV|5!b#X(VRX! zAKo5tiVtlaLwWQoV#+yrsiX;0wC#i|li4`qS3lVqHdHpH9G6GqealFHY<%cy!n5J#NWS>^ zj2E?7)?~PfrG*)19`+bP+apYCqSV}RC*}lq`TmH>*&(aHoUwh+E&8~3z@W}K29+%R z=F&m`pkNO|ZeIuLL&z6M^|Q;{tPrt+$3!Rq2oPBlbM9avD}i-K!`m+5q6uHr9!h47 z_67wq!b(`*{wsWO3EKJmw57;5lFB~OD=;Lb+yGgz6LeP1TwG8qwUp+2#L>^ujGoZ_ zo!m~*k6~EJXaAYqeJ*xov&dLKrE`9L{!@ZZ*R&r(bm!KITEoBj_Wy>HH|WaKbrtzl z`h9iQA=_cr1XGd5)Ct5vK~RBE!mdc3mxlMDyw&6RsbjR>`pZwd2PbR=K9^$LpJ?73 z7`{0aeM(EhdpY&q6|vwC`kv+UPG0h_3ZGR)x?|gR0wAl>6mm^kSE04GhJj>BPQGa1 z`x%()gKzu5y*r)6)W&5Qq>xz+>_$q20sUpy#E-xhdj=bv;@1<30=(hT8VatC-cKR-@8jqq2?DF~+^u;p+#h%d$l1=R-w*d9@^>ZgH0ny`zen&uF_-;q8^e>>>x+^69-G>Uc|(SEC~ zh3da$Y@pglIMq+5YdC7EyJ%FV5~ay1D;4Ui7dxHYMh3N2hxr5~^Q!6_n(ZxAEKGH8 z^6X(?c!g>MxVd4Qysl{xzE_OIceDP|$0ZPOKOpWJ%LWgfZAK9Qn7;$NKvZS}u@=x1 z`S&rhY3Vk>)l(7@^*k2gN^JN|`rUZum?wN?K1j+l>kpi~xxC`V3(Pilhg%pGyr?2nMG272;WEgRR*LflOE294$~cv-7ZARY9LhG)(*9suv%TpV1PI z#?x>~91aKBt|pkSB7=g0_|Zwp{RZGUMipazEO!J%NiOcrZD5pRC}YI_h1`&gI}4&< zb8|5Kx6_AA+wObww1wO;%pO3k7A-rQ2m}q#$LnY&7H zHURaoUbA*xE89=u5m_9r3%iCEw+XSLq(C$`F YPJw8YuMIPkCMHIP`i8ptCT5WT10>j#)c^nh literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/prey-demo/make.sh.i b/mk/linux/mojosetup/.hg/store/data/examples/prey-demo/make.sh.i new file mode 100644 index 0000000000000000000000000000000000000000..434a5dc2af2b6f7e87aebeca2a23f0b835c005be GIT binary patch literal 2823 zcmY*bcRUmT8@?lPD0{28l)J1m%HF4pv+snAaGg?S949Gvhm6dt>~v%%^K4m>Ju)-P zC97;@#YevHkMH^8dEfW1BhLH@zq&Dod!ci;HY2PHEcPbtd<0uj(z21hUwgEGO~%b|nsP@; z;aMs|H(`~t7J?U97b%~kDbgm&Y@pkm92!kvtEc=Fgp+$%nMUj6jloz3Ds%sgatQ1J zK7Qd0w=Bz(*$;q3$!0&sIPC_O#t6a?uLzVy<~1ndt6EpxtH{BB?tTFty^XjU$l0qa>d^bb80B%~CN0`{E_BDELr zvoL(|+??f0)D^^2i)XA*P*JoD8L`b6LCSE`Opvi(_r~dB%)ueRpgk2U_Q}&Gyi9uK z7B)@1X9$(dYLNSPJUdhxo!kW_90ae_fQT4$5o`*e|HT&Kfr~K|H$R_?ic~}>vS>61 z*erNN4@5`m>AJyURDfj(JW{if!x#$dD6P05&V>)J2jeqUj_DuMZa1!CZM&aFWHT@j zNwmA*4U;cmv%>F6kZHhFiOc1Hx{H>y_8C#E{XNp0s;c|M(?6?XHYAn$Q&0O=n#p z5BY$MUvTbDikqB^`Si_wfmg36_ukUXquZh;p5lV;2+&u}#7Bs3 zv4K)AbkRJtFzc0MAA2v1!{A#dLl-ZGN$h%vJcH0EZLkF-+E@6xpqBv`rrSOIlF|xX zS@s~`1j}#`xl`eyhEvdCoXFqpYOvJmcWUK%Dgf;!gpO@8F=i`8IjFG9G`Pmm$3Akp zqj?AOcCbH7?bjPsk3FNp@rU>GGSs}s3@K*~t;L7teuqlT!KJt;sJXDo^Y0!FbrQ~m z=VbX2ADwR{tST>+&VwpLaQOFri-2mG#L!z-j*y^H4zI-5L^Jv_RqCLcyJBk4{fco) zvJmY64>dI72Ov;a3fbvNy?pG$G3CeMZp3AuS?diC-1Zs1}{;gQ}Cf@J)%t1U_&7X^3j};WIhh z)Q8=u0J0Hj_c(&Pau$lay&$mgIlta6o)R;@b=QYqG`lySoC|-^!n^#jYh84p!c?z) z)xRJd?0)lS<{{aUL&f~B{GdVDs()QLyZcC|r~RN9oKIUSP`QP~TzK;xWF6a*RKUZP zT;hH3(jUrZS9sHO=A80_Rk9s;ZKh(A-!+M{3 zJ__Trr6qQ#FC~ERsk^1CQC8QL=w(wi6#ir}cPQ-y5#KpJX5nxOjM&(`TWp((c{4iS zHaj+dk@P%DF7oz#U5O2GU8I#(-?K)$Xq@Nw2+-TQ;Buw2gp%SL z=RfoXY6_y^Gfm5tu%F*U@QpR@9Tpa0m-b!uk?3`Jho%P?Z-Miu2=M`Glzf<%} z30v=()w}Bqx!bo>dbQfifAQ%RdAqM`1b0sD; zCMQC%`D^RkgE#NNe$$EQ*sb}4;y;@-V9pPyRHs@_PAL>wy@`lAH`^I!!!F@z_QiakGqyELxp+uaLepBI(dVWkzn+wkGr_0vl^^#RFT*v{D6vNlBH-)|&Q}c4q48l)o)>$y3Ry zjwK6oxmh>#Y)Of4_P~c5)I2Vjrx?!B1)8Rr`vXOK$hdyqguRwgthXx2C?7iU=}W;` zbComFKOV)JNXjH{JmsFsfA@J_@7bWz^tD+TO@>;?gzN>mf}2&L^#>tKPF_-~1T^gM zMV!S_m*Cm5Jy(%ck;+t)Axpgy;o9$cE8jkvgbuB<8jJjeW{OzKY3iXDci2a|ukazI z1HL{pD#E4(JW;pdjFDYjg7&2Cmf+Q^+bkS*=hXfTYW~tN4nSjcT#uvL^Fi1!7yZ^w z;>-}R*xsQ}eMG11M03J^DNeU<`}H(5-0f{>h#@6ru@`h44xyf-! z$%V=Bi8rm^FtH<_Q7j+*J&qVU*F_{xP8sno1Jbo-7R{2>jP_pH;QGuXb4W2K*H&g6H^FL!k0!9t z5hUP-#`?zQI!Kg>Jp!eP(9^PqYpGt>M40Oc*)SgOfL8u(@*cU#{p$cUBS)3y*iGb5 qTcJ}sQIhv+US1G9HkmVJ>-&l3|M>V0^F?7P$9ry4jt&p+GX4i|wLV$^ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/prey-demo/meta/splash.bmp.i b/mk/linux/mojosetup/.hg/store/data/examples/prey-demo/meta/splash.bmp.i new file mode 100644 index 0000000000000000000000000000000000000000..a5ba5a507804e305445e9187c04181fe7ef36bf4 GIT binary patch literal 94696 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/prey-demo/scripts/app__localization.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/prey-demo/scripts/app__localization.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..2bc65e2bc7685f68e801372d864962e40bbfda3e GIT binary patch literal 2845 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 Ls|x7Ws}A@t!p%G$ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/prey-demo/scripts/config.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/prey-demo/scripts/config.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..b79736c25250f0b9d27816a9574a7225492e5e6f GIT binary patch literal 1687 zcma)6eLNF*9NuQj%Xzsbl9xh^kk;9lmlU>P-a<}ZF5$d|T9+epEn^zxWv14mLXo#* zv_@Roj6_H$#!2&*A$d75oR{-*e{}!d^T+f1{=T2*`+1(f9sm#k1Z)Fb4FD)$c4m;% z#=oeuG$W$F1cV?}3D=9MU{M+@JZeX?!BM(rY+X$;`Ir?WTg~z5bew(gVKf6z+IG zZ{*XL$XWQxm1M)txjybhbJj?Ptx#=@JY9bZlkS|+VX1b14~Tc+rLW*rkgQ9Gr2>dA zasn0E>XU|So^t#(@W=>7lr9*XQLadb0##F+a)(KwS@hG0;#BVd| zc{&XTHLQ3K{X-e9_0$ypB@5-gc}E)NxMs=e`&e`mEjU|BcIvF4P7D|o1gRA|UPtNKRMP@7enu53lGSycnwV zu~l$bM$&V%S=P(2cXG}%&8{KT2H5T){)z3&G)nF}?NcfD-I4-Y5$}~L*O@~asBG%@Hb8dh`O)T_vlvUc zU1E@D&=Zy5o8pTGJc8M*w=_CIcRdSxNh9P~fv&jEp89|%3Jr_a;PxW&Lp!%ux-Q;R zjh!U~+zFCRZs0!W3Hb>tE#=3YAiLru-=*nQ>I!NH?@su7^s$wNdL6=+=7ZsvXt zv6yR(s5{3I8yp(redOlV!aZqBvi!JB|wPz0!NZ^3%V*6YMp1S@?_a zqME2$Tlk=PvH~j8Q(B_@7ugjVskcUNjqFG%bc67cZ-hPAr4=(sx%kJ)db+YhO)*>) zg-EtbmFaq(>3z|QF!8Lr-|VJZyviFBQ1!ZU4Wx!oo5fRlUv;dTC($QO64>i2FCeUg zmobHm8Cjof^UFnp*wHjj`NmQeq{amOsIJlY;-cUX3;m+IzI<(#4PnXc8#5oM){B|l zAl0o(Y@9K>M--gv7nQCOEsd0x>je|5Vk@yxv0LS}Rd|~qZq{Dq_5=XAZM|E~x38>< zs>A^{W!C8#n7u@Gb>~|d?r3)S@?ED?u1vy-?=eEV;$cb_%vzj2*dnDE&FSt_0~x`7 zJR82~e{eW0CU)j)a;co_g7yQGXx3q}OyZa-j$F_HzX$7!a`@ac2qg?9uP40@#2-zq zRj&z?rL&?I)|aG*Q;iG>eEpoa1Jsd?xX|Du86Q1I3Qg}%9)PAB+}X+iL2f5G`c3-N zn;YO(dID#k5IR@a>Dr8JG-BpMwRHyx-oF0U@ciZmv}M?IwvTH{my$S9V-~C>IiFBA>f5!g O{xAI>!=os~rr|#d!}VMM literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/prey/make.sh.i b/mk/linux/mojosetup/.hg/store/data/examples/prey/make.sh.i new file mode 100644 index 0000000000000000000000000000000000000000..013c063832be75b2b051be1fa3ff5861dce86bd9 GIT binary patch literal 2609 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 z0008l00000|NsC08dMuJGiT`@$?Ia?`r(pgljl%t000000000000000000000000A T0000CBOxzhX>KoKVRL8-fp6qd literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/prey/meta/splash.bmp.i b/mk/linux/mojosetup/.hg/store/data/examples/prey/meta/splash.bmp.i new file mode 100644 index 0000000000000000000000000000000000000000..bba92424da48c5ec5a586075cb37382c57b159cb GIT binary patch literal 94696 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/prey/scripts/app__localization.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/prey/scripts/app__localization.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..b373ec4a7ce755a23eb38371af3d3f99241ef51a GIT binary patch literal 2544 zcmYk6XHXN`7KKAIq4y$@OA8XjD3NNAARU2#2t=fZl7IpNQU$rvq!*PaC19k7DoB?q zH4;!dJX%DgHxWU=z!UF%GjGqFZ`RCNKhBx8X94H{bbvp@R1W}fU;IbYTb=wn55vN> zVKeQziS%YBOOoNT-w#}m|MC38Ktglc+&!=!SI->nHe0AS!wVwWX*t44#x0IP+@Hq) z>gcCDdhF~5GwBZ8&LxS4E} z8_7MTJ}aHJiNj%U7n?i8vW^hh&7Q<7*({w8pEPh0NYey4KO@Qs*8_OH* zOU`E!xdD!Dd(SnNXW^`knHL%*uogiHPeA+wg_6CRDXsA^Os_Ld(Ic7IIo`$o{-96u7{u+zHGYd0dBcK&x5J4lV z)&ldlWeH9RjU(QzB! zg5%;K?Zpk4f*pw|JOL$1p%knvpl&W1`8aCHEV3~kJu`XlR}A8=FeRJTR@+=k#ABnz zg<Rr zh7Z=4^82*$!I}fhDcStfUaS1@&y@+F26ScIJrvno-$W*vwi0xsSgE!$9j}5nOSRZ% z$@Ni0E0XTjkUHZPo9pev%JUkiVP@AcB%Qv<21KV=!MtpdT0dS1U+O#)3vr8Lw7Df+ z#mqaBygcnKt700#+B>fuTr)mZRdsErMfa)Cz~1BU)w{_y_q{YMQ(_B4hfS|(tX|I5 zo!5QvZH#4b@AiZ2A;C){f_Ilz?b1D)t_Z(ESD9CsWE<<)eDH7bnot-Z26d7Qnmv92~V zb%DTxBXjy8pO;^$C?4nx**6V+=rZ&Dc$_9k+c7V%MI$So2`v_tmO@EtfpEMXso*rvo+}T1$Y0d zfQTNY1?+w^R1F-WSZ{a-ZS@pL+aH7lq^XqRXoou+Gjp@E4O?1zEl5wl8H|Vc7y5el zOX@YVC7IEAlRg52Js!A;BP6QELsYp?M;lmeRA07lUx2^UO*z=~M1{nrcjzuL#O>BG zBhCv)*^3vCt|kQ2*fq+`L{HoMwDAD|x>x{!*Y;Ea0QAKDW*{d_v} zb2i00V{t?iG31l_wSjKwPq=Lno0wsv_&i6db$@{I0Gqhk6eMc8WBI%7MA)$~QJXD96a#zx=a+M0fN5Z{W|53TIR6dVnrAKvqcF`mx%~8zyPP0T4 zG|1;i;~o{BMEHDNdL@TFsRZX(yZU$VV3Mq-a@e z0Tz@}W!dA(1=ET-8SZ>UkN)s=J-2Rg7f4bDgL`$yR51cy(O`^_++tlA-`hoaE6-WKj@b#TR~#SPC?nSA48pnCUE^Y8Eg0HDU7SmOUL$kRaS zPJ{GYtIPbnjzDBz!0lt1T=}hfQW@H`dfW5bEjE4(%vCRQH94*+DnK z?;6!Y=+gTXmrh>2`|KuRL}I!xtmMHTXUB{HLp=U%{ih_Es%TGFxR~!jGkWwS2|(XW&8$W z>yzP=5T2d!Qo(dQJOTC4bPRF>w|w5)+_I;Hdv#Ah0wa~w=P=FkDq-F+Pzf+W>uqys zoh(~Mc%p@jGU8t5NC~aOc-a;r-sGX&)0PRfK$$4(f_u6GCan|>}n|Yr1 z2XiUf!9q64w1t0D6icnY+%#zT#eBS7kC30d*cNcc>quE@&F|etfdBT3uy5!o*D`O? m+QrqSl4XW>-{v>-`p-3Csk?ul%#93c&BODlKvj#BYySmMPo#qY literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/prey/scripts/config.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/prey/scripts/config.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..1a057c089dbada91d3c66b8585189d64e15d9650 GIT binary patch literal 2580 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 Y%~1O`+rBnfJ9h-#;{O)HA248)O(1Zc`~Uy| literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated-patches/make.sh.i b/mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated-patches/make.sh.i new file mode 100644 index 0000000000000000000000000000000000000000..bf64a8c0c6437262b2be531a95411a92e16630f3 GIT binary patch literal 2563 zcmZWqX*?9_7oK5U`<}haWSA0T&%Tc(yNRsn+V{y=#~4|MvX3y=cE>Honx&Mj2?=En zVN&EqLns+rlyRy5{q%o6ob$Zzd(L^!@A>iofB+!iCz#y<0N#dQ9JqD-Ke+oIb>|OT z!xy=MqaO8R0maenhreom#h9|kPRNM4%Y5|4KPLRl^C*NzHaG0i>t0Qu3(jH-Z0Q+h^&X#sFDZa`)+ zW9tl`-mo!S1Tj&5#OyeQ8OwVT&WU2d zEO2U!Gd*Q@^2Pf{P_VUH0Sx?+hi3WJrTr#zSnqQ=a4#Me>O|KC=1GIpbl|Rzmb@jV zcX6fs`u$G#c5-<6t}~dYpwq~1m-+cBb>8%pyyn3v!!tL9b}b0;ui$)>J+|gGFXBbz z(raF#Yl>ohmv6p;3_Ub+$1f*I9jY1|wa2u?@^>AmUBcJg3ykDCPF8sZ?`i9L^Y@7D zg^caZ;LCsF0uv?p_n4c>LFDFtIvn851;GT1ocUOb^N67&AP?pPnVnP$+~FCf`d+iXyMXe_0qd+ppt7C z&{FfF4({yYyyKynP7GW*&-FL?5kO zD=u8S%Cu%TF`>~Cg3!EYu`9Ws)KV6egWnzte3dm>SpUrpGiOwRL`Qtzb>Dp3(`c(g zZDLvV>J*SnxGVMPvVsQGjBbS7DM>-x%xDBbud6DiXjFuZ{qtS&oRSWYAkD`J{;iA4 zAh&AG3ODPtQb)stk@8kGw+ZF<5tER2PvQYLg}Mk#JYu|+ysI39;FP;O_8@`E$U19b z^8f(ERN~l0%XMZRW>P+=*nD;MQ^JJ<4ixnQLlAfOkca{h0&RC%0fx%M##T(k4a@P@ zo0o&Zt6Hi2mCC)d%6#Fr#tD3ZFIyg=(#(+c3BCwYQvJ~|+LW-)`IlkB;`Fqs_j07` zPzLOiP|&zoPRNS=7lH5wHGP-g(QWl~9hvH^x=hA*^1kv%`5fju96Gl!X^k<|q~@!| z+`QIPw*lKGoiYz07gNsff3VsY{-eHbw+k$Kmym;u;>7k4evxnI!X*tT*w3WE8x9B2>+K5KCdCV5jI%0AI&1~~R ze8yV5+7FLPdQ)yjm1NoJ7I7ND-sGKd`MX~nj+93$!}jU7 zR_D-7cjh%23pH}^%YyxGsEwMI~g{~9@*B`c3wnNcU*i=vFXwm zEt{n%Ws|7n*#Js$9PPJi!%oMy#2 zPdbLJ9x9n}E`so|=5jJlm|f_KN9PCGhmO8yv8fnA5$4C=H!xd*Z0{A(>5c+}({N0% zwgHPh)YE>-XOfst3c-zYKHK8;N=P2(^kZuu@H6t1r5>KGyVE)nxlfZGY%RZLl>XqY zDQ}x)fy1-SOy`RrCf(>m<7w%x44Ij@+6fzKXuXqpx(Ql8-(>K;AZaqYZTHJHLTB|b z^{}@AP)Ax|ii~$?UHgM&zZ~2>>)1{ZHJj11zZWuYh;ZSAM>)i=hsBiI$SpeV&PY(bv0nO4JD}a6PQ}NQocvBkmt-U zhi%cCX{Buf%BIfIWxW84x9Y2`1xx=<|uX2T>IxDAoQNAfS66-&VE zr82#i8*jl9Pi%^9A$y4-z9CL|1bfipim62IVlQ#K=Ijg&yli=(-tVo(VVa#YCC9z| z`1f}nlu+mFG4%kA&#k(k`dNmysqTIf+IzQWtLN#bTrF4t#k3*oYlD8W*m`ER!iM-e z*XKlc!pcjdZ13=UbeAbQyTqF9@TtX~+A;tDR6j9i*HZ=nFle2|Q-97Z-*GAKoFyAb zGqDSp@>+{Lu)2Tx_8(%(3K35&`V4r)xe~ziOL{#qRR}8vNi|18GU^sFKuo>#T}cRZ z19}VG_3UX9#r2z%USg=HG(m0bH`rKADx<{4Sls)OwidusWa0tF1t`) zV{GV)tm!G>AmBt0z5SFc9sGN`iTzHAB-sG(gY>Q5TZ|P-iZX1!uPC?QaL9|%vMnec zyzN6}Yo-mvptH;J6_;PH6>N>v!gQZ0PDa8VXRQ0DFE0#qUaZXiadBJ{+LW4Q3Elh$ z-Tcz_WBah9)|gMhr6H|($Wne(I+nClKWTnnv91pJNKDW=%d7}LD;kVMS^S+48y2Uh zr7gmh2H^-;ID4E^x{x`;KJKRP)2^%Au1nf>&|f-Wzf!2l-TVD`L%%b!*8NV)0kHW& zkDB^Hb-X26p=PO~@l-yRf}bKfoyhL>OHKyelMFnSy}}(;F;hb=A<`;flGPt(^lH77CV^SMZJTM501` zBNU`i!Tt(?NKb!Xg$VEPKvd+(71qx;;O0r&Nn$%4&a(dV3*nQse10+j!|X|BI9-b^ qvj_%S)40evamHbAf?k%}<$kjM|KW5F2jrZBSKti=FVBbowtoSek(XQm literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated-patches/scripts/config.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated-patches/scripts/config.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..5a79043caf785596b04d85971d623003ed244dcf GIT binary patch literal 1281 zcmZQzWME_f1132J29|0FoAKj+D0nj=>={o&ZNfxdPABh!I}O-kRtrPaK*)+Yt-;aR zw+%$zU1bK`uiK_SWH**k;s|< zzUKZ;FUfNvGi}cvoBZhEagq4RNxwc!nrv+(Q7g;q7VozGzL4l%E)%<1=Ekh@S+8_2 z`x)|kUXrRa`q!3+jrN5@5h+Uoy!Rz|7fhL*daHYd2(Qo|17QUfchQZ`EEajG zZ&k_BJSYFob6S=Vo>1=dr^x!6uI!thY;9W+?`5f+=aj>Yo-VlV zpmMsy;MZjJ?6zI^CIoO#SvtjS6?bXw8vUkewTKjJ% zwwveuVNd^ESR!6ytbUX$(NkL$irJ_6sIb3n=n)rN5ZRIa@%iS&WlQ+p&+Lw#^z`$| zA6b0|IX%nUnkkG`5Cw{ z_tO2PP3KBHc3bY4n3g+1RR4fosF1n2-ip>J!#AOwQhh(V9-21%<+YfYRX+D2gVMy= zRn7k#u1yVenDKOKjBMaGiPZZKawjQBo6nme)VXU4_bR6BFO#0g>&v;k1EmpAx&i`V z%7UdXCOeP-D1lkT$H`6lsnMm{S6+VC^=+qG+WJQzIT)yzlbpc7Y$|Z>q`%*pK#q_6 zg&Uf?>eZCuCPp1B=sQ&XFEEyiK$@x~u~0^M2+j*(e`g=uwi0TU-J zoVRfjUjXA|X#sIY(H9yHj)irZfkj#YzI)n&CahlEy?%9GX6ME{$0X09wvBO~uAP(A z#2Gfn$_0X)z%&!=5F;d~y8uNPK~8T}t$%H{n)PF5V6@@-e|j%vwuyng1=ay1h;q7G z+OuUKr!#!yneLl|$c2Jj!0ZNg2eQ*wfrLR$PcEMO?RqqSu<8H&r+e_DpPA+OcVDZaADiao$3roxT$0^qs}UW literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated/make.sh.i b/mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated/make.sh.i new file mode 100644 index 0000000000000000000000000000000000000000..f14c780e4018c79883b71fef19fb5f7dae29cf65 GIT binary patch literal 2959 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 TyoXT;igdzwBb^)r+#&w~vC9jT literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated/scripts/config.lua.i b/mk/linux/mojosetup/.hg/store/data/examples/ut3-dedicated/scripts/config.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..9751387a1a267bf93d3ec682b5cc601e888f0747 GIT binary patch literal 745 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 xey1y8(%szoqoD$Le1r{{#7(ky!u$ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/fileio.h.i b/mk/linux/mojosetup/.hg/store/data/fileio.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b06087a054d69c4307ea304eff01fd34009b23f4 GIT binary patch literal 6663 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 b9eV6e?)on74%9M4z87|nUuLMV??U_^U$08M literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/gui.c.i b/mk/linux/mojosetup/.hg/store/data/gui.c.i new file mode 100644 index 0000000000000000000000000000000000000000..178cafb1768ece24f8706439eba498af21407d6b GIT binary patch literal 8718 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/gui.h.i b/mk/linux/mojosetup/.hg/store/data/gui.h.i new file mode 100644 index 0000000000000000000000000000000000000000..be558b3395a922779bdc3ce6170187afb627bd99 GIT binary patch literal 11575 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 Lm;h@f(VhPTHun?& literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/gui/gui__macosx.c.i b/mk/linux/mojosetup/.hg/store/data/gui/gui__macosx.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b5ed2f3c6d1a42be97c1ed65eb45afd855f69f80 GIT binary patch literal 4492 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/gui/gui__stdio.c.i b/mk/linux/mojosetup/.hg/store/data/gui/gui__stdio.c.i new file mode 100644 index 0000000000000000000000000000000000000000..09999cc8e9fa5ca5afcb1c757d7a1a61018bb933 GIT binary patch literal 7862 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 K1_X%lsQ*9f6jlWQ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/gui__cocoa.m.i b/mk/linux/mojosetup/.hg/store/data/gui__cocoa.m.i new file mode 100644 index 0000000000000000000000000000000000000000..a1d34478d342c79159012d7f9aef08de62adb7ec GIT binary patch literal 12031 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%0D24c{^VjP=dHOlXiLo6p%@i<5f>T#%|6m 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/gui__ncurses.c.i b/mk/linux/mojosetup/.hg/store/data/gui__ncurses.c.i new file mode 100644 index 0000000000000000000000000000000000000000..6c6e3a953089ff5d3acee3754d1b55281b06a878 GIT binary patch literal 22915 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 TQe?^1CSKF&U7`@j+MfO&@5oCp literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/gui__stdio.c.i b/mk/linux/mojosetup/.hg/store/data/gui__stdio.c.i new file mode 100644 index 0000000000000000000000000000000000000000..87cdc19c53513783228af20eb072a1aa34bf59f0 GIT binary patch literal 14290 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 z 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 M4*&t+Tj4DIAKBn*#Q*>R literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/libfetch/common.h.i b/mk/linux/mojosetup/.hg/store/data/libfetch/common.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7444adb15a7a44d2be1bcc023c0bcdeeff9492d0 GIT binary patch literal 2155 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 M1Ofp|u9SHH2PgS}aR2}S literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/libfetch/fetch.h.i b/mk/linux/mojosetup/.hg/store/data/libfetch/fetch.h.i new file mode 100644 index 0000000000000000000000000000000000000000..cd4b7da11a72c68a6e7d915be0301fe6f5516b92 GIT binary patch literal 2435 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 Z^&sFEu9&oDnkuQ>qG^r^4I7$e{~sHtb z_bRzrmDCBlboTo7x5wwFr{B;pxH%RoP4XMK{4)x2^0I%a8x`Dgl$EArqBJR~rMi{T z3GBS($|%vLN|sfb6gdTXM3t75t}C|5y=|0HnIw76rgVUb4(2Wdv(xJ;IBczt%VM@>@^ zH=M#Ef@h^mlv4)a%BaDzxaF-{AO^v|yeN}U_TZ6dN`c2Pk7-SLyPS|TOoJqos)jK5 zh+Y>uc@!xRS3!QW5t7cIvPIOEYz?_-coA2}t`qMB5b4GL}+`$+Y>%yMc{wFxI{Z zkb5w9#TD~I+1~uZ^KF0b3%YciA*)NCa6i}s;k~7a!+MWs?g>L|X!({&4-|+44=!r% z*+wRN>I>JM&wSgNc4_Q zXjxY4MVc&QS%#~V)j|6O&R-I@AN{`5_qrcOGS(-n_wB`Ebm0x{VdvoGNJ)wH8`3K5 z1ESx+^y4IzCt>dvcktO?h+i-L)7Sm;GdlbB&DVc^bAE~=tV#T`rk4lZxBI!)feJFt zwQJV6hS<7gjuM62Y0tHcl49SaaLet+9y}KOUxO{~k#tKe0a<$FfyfR%2^RLkf0 z@4os!Z3Pb~-iAqDwi|y~7JN`UJNo3$&b3jjwi}yXatW0_ey@|iOJZtoH_ynEv4PiF zy*_=rDVIY#oZ?U~cM5u1!$SdZF(qv$)5{ZGF8E1M+`)jQeFPFC+U;HMjPSeD(> z_=k=3QH zc74s65w5szY}k;^!}Yxxo<=|BS;R1P>6p$r3Pg8}U+UpQcvz3#LEoI=HO~aBD`l)a z2(6TD+wpLK4E4hq*Lb%=N4QMpreqLtmH0u4f7&jw;k)kPRR_Kc{`Q5ajAII3e>Ure zpb_uMq?n^pZNCm${Ug%&!c8NxsTM6DyfI6Bi}RmmRf;wMb9LW2tR$aC)A2*px=WXH@7*VrG&B1fRvuP_4(3u7 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/libfetch/ftp.c.i b/mk/linux/mojosetup/.hg/store/data/libfetch/ftp.c.i new file mode 100644 index 0000000000000000000000000000000000000000..54da44c52bc0d021f51ce45b6ca515828a1382f9 GIT binary patch literal 10903 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/libfetch/ftp.errors.i b/mk/linux/mojosetup/.hg/store/data/libfetch/ftp.errors.i new file mode 100644 index 0000000000000000000000000000000000000000..0286fac187e89bc5a18c5324e5d2b4ce79023c6f GIT binary patch literal 986 zcmV<0110+R%D;@0ZNnv5RmM> z4)z#E*fYMFF@*i~S2H$TkT%(sf+Dr6yQ{mp=7PSAHRm^ryDKs}>E>ePei^sPrkmNa z!?jl0w09JCE-C8uqHfsh_IuR3yux32NhvopdMoKma1mV4aw81o!dSw8%eGunrd2`n z@huJGVF!>0OQlvTw#pAAIZq8SS}P&fq;^~b5rkonrjM=GoEyuurGn`#*Q9xwAA&II z(Q@=WYc06miG(A}(gO*JG8x}fA!KE_0WS7M?wDniC@Fbjg#s$C6I99Nce0vElcBip z1QJ0Q*UiTw=Pqh1Lu$(o--)eMWyva^O6hss0K4&dx2h$UCD&PADfD3|?-po;tu!=2ys6;qK_z(Ym3FYGhD}_UC5ft}^(ug%kU{@b zPFQa0=FKW?H-5LsESOhh0P*goKPD&j+?BE&6FFSU+nt; zAZ}Pn#tkgNP-RC7uE^l?BK~UZ2Jg*@M-b!W>+=Hkbn*y)baie+{-U4+diLWZt!nKi zeCDZO_iVqVSCMi>k6cTh(|9=pX}xnD|5RqjK0{wTmv|nSxB6G4AD8=)>K&LG61q1G zwYO63G0#!$(VKHJa*j%~+}(&j*EsIe=%0tha#0iWp7f>wW)BgD!(r2Vrj=ERYECQo I56u;3-9$;{yZ`_I literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/libfetch/ftperr.h.i b/mk/linux/mojosetup/.hg/store/data/libfetch/ftperr.h.i new file mode 100644 index 0000000000000000000000000000000000000000..83344d819bba21b2fd608a6134a22f14831fc5ca GIT binary patch literal 994 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 G<^KakhMoNY literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/libfetch/http.errors.i b/mk/linux/mojosetup/.hg/store/data/libfetch/http.errors.i new file mode 100644 index 0000000000000000000000000000000000000000..137bde6278f86999aa1993f56a5ecbe461642134 GIT binary patch literal 726 zcmV;{0xA6f0RRC20000000Nc(00f}`00000006H4|NsC0|Ns9!2wke#yYh_2vkZ=3 zjnBmTSz7!%wF9@ zfMTZq2)a67me+(5DAEi}BwQkMgeOjcaY6z6g_^t zCza>Ako zrcEP1ZI*FITGWn>eKbhKLs!@w2+ZiHJg@A$u3bDr5ig>oES&BnQ1Bhz$%8r41fpMY zUgT!6)(tm@_uPxeS1G8F=XDO=QEc?~D!1oD9%ZX2BNJFjQFB{-&Uj<#pbP8^M`Tc+ zppX*YncA4#qwkWtGK;_QeQQe59`-aS+F4l8pcoXVy%CHrZo3pD$e7rmZDUUDXxIGQ zG4G+bOP7xZ&92>sH1v**X=Rn5<;_tYQ9)$xGYPz_NyIx^VKZ- znkgK0vN*#IgVr|v?|YysoxyTN!gIdf^Fg7R<_Q#9m5GK0>STpV!Q)En{E^-=Ug+O{ z;2XT20X?taTwY$l*o{YbkHP%~oR6f?T$FeYZx=_zF_7t&lUpv95Gtu2Q& z&UOZVbsCRxolC_OxA3lwPZ1%|G$#gTE2Y7gDPM4-72QUweJf@KR%7vO#=Nm(9+KNZ zgeg~;eAKJg=oLmmT)F+uQX>DASeW2Zs^KiYtHKNRJ_j#Gp1nq-Js7gxnxw3qQhXEc zTJTt^C!VG#4C<)RY%-h=y@$O_V_6E*UEi+8N6ImUiXLW}+*;wUZN3KUMPN@E8tjc- zSEW5v%Rtrfq~3tjMSeM0#-8s6v$!7hT49L!8auKyr5+r3_m?+~r|-97k#Vzi&ShJb zTPcjB9mg*40mV|UPUh(xJ2!Qsxf|6rVj@M#>)OVQXO>0Rc7LeLB}w!SVkzN)sim1z z?-Q%eEb=}vX*G5xiZZ9crh^4O4K{;#mzy@%ZGHBE$R=W9iS=AesdL4G+x>QKT57n@ zIjs*nEk?gtrK5pI_elx5R8v$NRNyKlm0{EBPnD6krh8TGj1{2WpK4ie>8@|t&LEF{ ziCsUe50Bc=@dH}g4JB^X+HV%Dnb5u4Qxn>6@7Y}(hcHJ~RN4rt;njgTdL`*R%guj~dle4r=BA literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/libfetch/mojosetup__libfetch.h.i b/mk/linux/mojosetup/.hg/store/data/libfetch/mojosetup__libfetch.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d7fdab60efd3c4002ef6ba0b927a28521f4e1354 GIT binary patch literal 1509 zcmZQzWME_f1ICRE49sgFY=(9JpF%p9>^bwHYQR**oZ2Ao z?8gQYdwz%4n21}mw9cu@i1ZLnpZ&-tBk0EL3%7#SxK3=9%Vhfdaka&^Hyct9CY;Sk z+t+UUz(;HfW8AuQ$++BmX1h!NZ#;VQQ|iQb>Fa-px-;uPnDj4PnAf6t_PP$kxD2oO zvf>`$AHQCGEcWG_8q;yw-u&`gGjH2!-c{C7dzP>4=eR1(GdaT{^e>0-Oy*D1MW`fs$*?`(T` zA!4oDgz!rdI|AQite<_bsk&>$6U{ABXYRB9dbMtzp}JE@rNP~V8o7h2jh{C<8hkN` z==(k`?8@cxDBt%-dGomM98CBWEau00p7$E-A;Ye)tMjuor*1ajaX(X1`lsUjqknC4 z#Ok#F+8>y|;8StM?1k4f_wTvib8C-_>J|GB@hyjScY*-tO+nR3OX_0gn7d!96T z>7^>D8|#Z6yT0N=;EF4OD=vksa1ej^h>2lUqDT!$DYs&P_fNGnh9jq|KFBjyj#O! zA8hbiIqL*#?vr^E%}_O9s$x!W(80dT1_Eaf>Bbx8@RzJU;o2Y|#KGw`O>cwm6ceHC zCp^`*DsI%i{qmdqj)F&@e~2AByDB=YTH%t$xzlH=zg6=!B}mG=dJ}0ean-vvwuf^z z{#@{culK2}@bmxwGE>`ws(B+LRTg7 zH$|^vn=?U7C$(|I%aqW=-ru_R_AQW-F_BtZ^@`zpbgtkM=9L)?jtco2CFj}9FLC;w zeY#zxH#~Ko$W0}-+y#HOXyw@}?-1N179jb=UMJ&`L0n|6j`f5I+wZe)+I_Xn?9jr4 zyB@b$uN3W+?Afy>>7LsAAkWUril>ZZK7Z`|8EsTs-UE&r(ckhSdx}sl&hDa#065xd>%wHOk-eRI|XJjFckx7 z7LX-B1l!lmzb>#b|Ld94?9b1w)7Sk5RRd93F(1Wgw zjn^nKD%80gp&t4C@MFix0W#JJiyhTNmPx!#@^~l2u)19I4rlY(iAH&j_VUKO;rZsB fX>!JVMed2!S#M3Rt-Af~est#lzz%(nwZY#39{_cM literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/libfetch/regen__error__headers.sh.i b/mk/linux/mojosetup/.hg/store/data/libfetch/regen__error__headers.sh.i new file mode 100644 index 0000000000000000000000000000000000000000..616101198ad788918bcc5218e0793b917a8834ed GIT binary patch literal 321 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 Hbzv?F;Pzkf literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/_i_n_s_t_a_l_l.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/_i_n_s_t_a_l_l.i new file mode 100644 index 0000000000000000000000000000000000000000..2095500fe0858c8e7845ae6dc0f8bf37b78cbee2 GIT binary patch literal 1936 zcmV;B2XFWQ0RRC20000000uz-01m7G00000000vI|NsC0|NsAyuz!J|$8iL1&t^Op z&AaL~R^Q?P00000000000001ZoQ+q@ZrnB$U3wE5{q|r>AqJ}-9De~OcxsSR3@aggG`}fp_Nbd(lKUZ&7tDorC z!Meu!E$^*}ZWllJmk-)RH4bI6p7PF6ikcc5jm{ySHh7n1o6j`V$DmD0q?M=I06_2rRBc)Tyrc0D|VE}$@Xm8?)j7q19 zez!4YY67i00If;+1~|zWvMrs$5UF=6!{Uyua28NaMfWYGu%WNR;w~MJ$MuE|I}>FM z7~Hso@TxNvJ;H!#3w91M8lT;X($M!ILI9~~?p8O-Crfo|XluNQRztiWj?^g~5+1Pg zKz>VsI+j#4h**)obIzLBgb=Vd(5Pl`Y(1eadmryiRPX9J$!UpNVbTVJpFAEvBQA zxUknFU$f~q7et@U*#K&${0|8KjJTx`7c`b&1hn^ODY7l@0_wp!_LYuCWi!_f3*Xe% zZvdy=(7@f!)*HkRTi2#!QBozKv?wOv@g3_$3~+bjSdT$z*%{Gfx7x{m@NHQ^058;V z99Mj#@8uqLaL3lXr(_43yvE;~0`*3qxM&iSAQ=fP$1HfH|I#Yk(MpWtT`0FXk5 z(3dpRp)pg66$pL{lp&dRaA3#)Avj>NF0^cdf02s~S!`XJ_ncM#hauc4AVf4PHEGdC zngEoGWTX4ivHp2{`1s3Jd7indcOfzFCZOv3Dtb{Od1I=C?1-Yr*kq*qyjvFC>*^!% zi-zNl`ZTqkM5;v zK78OBVEsNkvHcuOk@!#shvMrUT(BAY^DH<4OXot3r5RGvU%*Lxur#)3tdgS4`85k!~Q~o5PwX+~~Dov1e6z6Y5v`uyKg^Zy`tpDL%=O^~yyruP&shXV zXGmPUWYWtaxHR?=es!I`Akq3A(v?H^5noRFyq=mF=ic1VY&sWV4sjW-7O|g-V~-BUH=(6e&mu<=)4hzl z9JCGQUv2t4wS6{ zW*x1)wEZ3UBff}DQGJ=ic-{=rMu|4xMD&ApK`sc{1V@XQ3iGNb&Rk?fl3XvC!>HCo z^6894ttCuTC}Ld)yiT}kEm%_UNy`i|Wc8Lc=h(x`75>Q>lNy^tGegTir@uG#4YaQ4 zA-R1wgqFx<=!mwzL=TT`?&02rYK((e4GHgFqbP>AmyiDDjUnHB_VFpz@MXg>_(~PG WR*iKMdSiBufYUJJ zo22}fHn$4^00000000000001ZoTXP$Z`w!@e$M`i5kXCmin&VdorHu`N}L82>3Cxy@sqp1<3St@AlcQjFe$?6k35N<{L z`1q=fMj7CF=%5fwB_fllxA&kkFz5$}xDu#Nu4^~`6Z(%JHEv|kLBLl!O9~?(=Vt4` z?Hpw}-v|x3u-;F^uvXcQ_CZ~7*4WAEv1`^)J%T}@)gZ|to*d*~rrrp;w+&ctu#)Lv ze(Fum=4BcsMJx`O+4Rd9CXuVd{Cs@A$Bw7;`*2h;_wUY7dW%P;BpGy<2jt`u68Ecd z=!b`F-wF_h8?*ThawXQ7U!7{AV-bSKkgcH;h9$caYtU!*MOUJ_T0e9`twc z$6ud59TD}i7UIv3AIT9DMN7P{UY`1kM>xQhb~9q@ecT=$NcSkZLsJ%max(>Y(y%Qi~tK!@rp5xGK~+cN_(O$B9Su~4qXzJ zn`RoY&@b~H6NP>e32cJn087xZ7~vb9nO=DDTE02XKp0!FoNb=dO6wh*BoQZp&2t)k zu&SI7WCRvVco9ldzEIUuA`x5*hb>3&2_XynAS{|Vyz1W4se6o-FF_9?#HT}c71@dj z@7`gk=i_f~54xWjGeVo;Rb1?LZ|th7s6fKORwPO0;E=J(0Yj*8EmahA%$dBwD0EV< zF+>+Nhj{Mh5KrBjMRqpF#MWMW%Vug5v>2}A6693f;II#4w$x(i>VVa?p;?q2r&S|HScWhd9cZz;5;8`25GwpEqHPA9 zN1IA$eCHqnu-CS|&F=lh{5Z3>*H$g3dj@q;;lry#i(yMeoqR`OaB|y6*)C6n5v`lv z=}^Yo{i)g_i-8D*buos$G}|&UEe&d2SRy&zgj)1bkwBIkiKW&Lm`&9o>9Yoq9=XB$ zPw^dYt286=(G^EaLpqMVBI)iuF2JrrDUq7w4ciez8@DB-Vr#CBP*sy!b9G#*8rS(f*??=C zm{Ar}n^~kt{~e~X&G3Y414ME0iv5+gH(k|7?KxsnnKb(>vC9oIz$m=5HA~vw==a-= zbi)LyIwd)dhgiCcVCvH;Zo12xh6~-9I}ThcUs!ofTRZ;?HcI3;`^(zh7jUBo*dC9d zGq|aS-R^(}*X5|w8Q?JnH%&ub|K7SxZ?W6lQ?Ic_H$_{XZcwR~)Ya?-IxFYV4-vCe z?1dUyTc`=^fdhRj1N8p%-VH+No3|W4w@7Ou(W_M}glSexR3r2}dqSh#MDv0ltLUO;RpcdiEQSpZ&%| z$krD^wtf&o?wSxA4zbJycP3v_AFfORbGC$%X$Q_AzY*Y4VFhH&r53o+R$3=8T}qe2 z@I!b#8I7U?uUYfq>0ojIOviO}f)Pj!s$eLb(G=QMiYaSWa^ZM@Nt$t=dW1asO33zi zwD!9RXQr$iNNpWcio#$9OLP|-z3(7p3jurU+#a+Gt>leROTRL!ArWpP?AR2T^O}v+ zx$HOyVzHp*AvJjt@P#eKG*EI{mSs>Glu7VUh839{3M`#x^=*R1)Eit}M&WRH-T&A> z=|QW#j(zB4(3!)_H{I^TnbR-||99r~(GeEA{R{Dj)Z=l5XKVf$@eN6TJPf1D9x!=} zKWZgRZ49$qh-yuQ7P;i0q%Ll;Puy5sq)tl6j75btisjPcLr)S!h8H#_J?PR`^bj|9 zULfACUfelH+#`WTtNlKF*Y`KS2b)r&(YQye7VYjMKCN`SKM8sI9LYHypN%fAj-isY p+O=;VxDrf*6ZWAQpbTdUw9x|MVm@Dj;HiPEo>et_e*wwQzFN|@?!f>6 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/_r_e_a_d_m_e.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/_r_e_a_d_m_e.i new file mode 100644 index 0000000000000000000000000000000000000000..748cebacf9834a488611a4c6b89a1e697748e41b GIT binary patch literal 967 zcmV;&133Hu0RRC20000000OrF00l|_00000000vI|NsC0|NsBaDYW6MAly2uV)p^- z&u?cTeyr>O00000000000001ZoOM)7Q`;~QzUNo$a49f}nI3xSrIQ9)(n*0yU>J@Y zYi+B@lB-8d`s=$ZlaO{u4oPgSzWp9rEw84RKd+#29u^7VQ}J;$S`oqgW_3SZEb@Z3 zA)+xDwX^xbr&9ihB9~szSNFHer(B8A*hQMHm;K>jMQm`Q( z7^WDF&f&4a2s#LfFC&1-!G|A(8ZRPrt|wn5GX|sUCQf>iALzWRJ+`g3HTSS}!kR!) z(6!}0LX2J_S;gy&hFxcLiGzeawh0a@Prnn{Xtt1qAxh7hEO|7OF8R&{8Uwpw)dY>R z#Av&Idn5)S2(F4fdSY<^-LJG*f0QY@O-8pu?HW5cr6M0U`qEwpI2pmbG{ zXYu0ZFDfHz_byqLlk1%~YR>>d<9y@{LOj};!Nb1sIZQXG4X(A(aeFjiv5vjRq1I52 zZtY?NSfZj4vgIJ>=jTF$>;-{-=2XmRpn0}adsUQy(389-Q+ zZ10*6kL#^*+*2KiV^?q>aego-MSkL?krZ=lO%*H!yoi;o*$+nI&(L){M z!n5U`jMQ-pIYWVy5pu}qfLRYHI{;t6gH`1DTfcBf(sv7S+sTZawD?RX48=Jnqa@wu z0{)--!I|9uaOPR*t=F}F)A*)N(T0rc2G$rG+q;L^WT_pT%7!~b%l~P6U11)Lq7>a%S>hX^@ zXS00z&`ESf6*sJvjTI1AB*YC`zzCyEcpviK;HMPZutM2cz{w%ne2KOPBKiQc zW4p!VGi+qT$PWPr)Tge&5q}$|kk!xbT>wKw>3Nb8Pqh(@ pyr}Wj35?TStU@P(=G2|*w#BM3i19iM(2y-Hy=e@&Dt@v_HaREYz=Z$+ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/amazon.gif.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/amazon.gif.i new file mode 100644 index 0000000000000000000000000000000000000000..1f980e2047219e05782b5a4153b9bd2b61de9be2 GIT binary patch literal 862 zcmZQzWME_f178L@%vJ2% zOkJD|+?*5YdHI^BO)p?$Wo+;4=Hg^xSjfP{wX|=>s#UY*Nbyu=R@Y2ew1l0VchTxS z)7H-2#LmFNzGMkk&!HU7&3!D@EGJm__}Oa?T{?2L_8j|p-pqR}4<2#yKH|E^^_*e< z`i+MVonOd(BC}?B&gWYG>owIoeIm0jI2@E?J;B2jairs-hCLgvQSHoH#d|0CZ4&!2L(yuF9bm#}~xhjPO2sEYsC3;J4zM zj9fkQY(BQEqrZf&`?6oGyT|i;xojkF+Etz!=a;-&YbcwZ`hs*?_4&M|YQQPOsn; z(h2d{-{!>1E#Sbgpz8Hfw(~(t78uQ+rQv<^x*My2i^4({Mkj@XEy4i_jBG6X4qj}0 z|5jy*rAGc%U0d^Rg*+skLO k6Q?P<^4MI-d_K40-h*cDnr|TDG0$wY(-zTxcm7f2qS=)eyJ&G1mAqup zFP%SBT;xs8%d?2LjmR_n`~P;%_vBxpfIZcuo%5@&H-F&w-2~ft03VmSI?JZ1&i3|R zUtb4UGhQ$D;?ep2!{_MRT^>ns`P8l>eM!JFMtja9Lj?0Jed_NSk)sWj)3^qBn?~H5fQ57 zk*eg8s^qdQpTk8dzZ^-=TopW}AVY;xWqVZ5|8!6$=b zg&za{38s_vO_)4U#nGj+HAj)adZ8B!Ca?vbp(P92X@i+h;YnHMMV{;fgRTy^n6eliL zTgVYhYVQYye|R_S!sthZe)Q2BHqXnv$54~4#x{S?MLx@mym^ZzEg}BMc4Mn=>l$X- z9fZmP)`<`%+l#GzU@)ghkxsS~TX|c)!oC0&L*A9uFFL>0p{0|XN2mgiG|;g+3zfQR>OtZO$VwfYGJ8i(~_4o6lUX4&xp&a zDquRwsz26zQ70>0j#)iVQp(agM1KsWGcY@diRtt9b`P=9L)l_!9evCH3QVaX#*d+l z9*=^x8Q;Axvpfxrk|73;p$Z$(b-_h=xfo)^7|M7tVGGzB)^8!;1c8%xV?N4Z&W6}i zWKX@h`fhjeWA+2GAGF_Z*sNV_cHH(s0KPdggP>i*Bv0zMXq?aL#I$)kjvcQy3_q;= z_6mTfkJTV3v!u>+**R%nCD$~yqFp5d7BgFi?QWAxnOex~l!+daGOyZ#u%yU^Of6#% zuwf0xDYm6B*qvCy8fp#9LmMTv_CJpp3EsV>>PcMCP4eHa(6GU-PKP1hPt$@KL zo9yIM#82hUzG@peEWWl4il34c*ONT#xeu5Jj&HSEqw~JK3D|M<$m1jC@v$>UIwO3$ z2f+#G0z7`nLAsk1aBAFMCbV3&JLRhiYCY36jb35j6@f2tAMuj&Rz%-fEoh_Q6vx1+ z-kig+2eO0c(!4ta{g^*Q{_t=3?wtE^21CqX_&$Tn$9sw^p)*aWx(3G-tbw)St!$EY z#OLT?nTgJ&dnDCI*L!nx)rZmP<(0fGm`Dz_@!|fz zFyU_Ka+{kW9Lr0Ixj&*I=b?9)_v>F}^WCS<@#yKZG`yN@v-^HK`F8*H3s`F@%p^jv zx`{{XJ8Yk-4aY+5Kk)qT>tR0Q^Sl5~eTVHCu5Iy1eub?UteLa&B_3&kM6Ar-PhwUJ zvw4-|HT0+Y4%-(z$>I@y(rlHdj6`FEjP{CBa+q7m6(t_2@34Kz)-Yo5Gi<9}MD$Pv z!M*@%{32LG^PnQ~D{NgSuk24qiAP2vF)$<~0pBEhq3s399_o?T;Cd~D3Bho>#Uu4i zvDY&~P-leb%m~qIMl`%^S2G3^)<_h_j9DWQ7})B8J$#03+p>bqemqj&Vf(cngzN4o zge78n(+ToJ8{~g3XQKKg5XDoo?Hi;uOBxwFyD60DYX~?{w5v`YDy3H*ZCOgkzf0bbo7y`96LV>+7rZ6+GSMm2JVduI$??*f z`+X_;^`+S84bihV#NYHrzsPNw4L^$Ber)O_WiuIaHxj}*;6CRpEx3U4olNBBMJtw? zlQNMj@b*e`g}KQha1gUIjiE@S1Y^&dLXk{0FSB-TL8%eh*E(;EKc!6A+46zz1tXCd z-2+Au5okps1yRt{4@ElVpfJM)?m}=&X(SSp z$z!$_Xhc4rH~C6aS|O2a&C*sEr)46SHyX+bJ_kcM+Q@T?6-iXhR{TX(Pl-gTOjd?M zkwlr}ivq1iVy*Ydo`?O9t)!MI_mb&zvS5R>fxpE9s2{dJYiB)P-$FC)_d0d%nT!4JVAJkjZqJ)RshrOlIw>vLq^Ga-Nr& zB~hW1yoOlkSgDff1sJDGODmO5i+1K%P{?F~=NKo`IsVFA=SYprcAMI-r8RRM3vv(c zh1G(2tklW8@8CZEZL7-jlhg<|-*}w^TYG#NEgtzAmCZ}_#Lw5LENmM~L!wOO%;Mu~ zR90|TTa>rl$R8e?8~JPXeE5eK@_i5gsCt3agCG1%!I)rrx_)O8TrbpLZlcbe#hGeU5b*!Owv?Ind?5) zN|;iQdyGV|U$XRBH1dYCs}optt7b(4p{Kf&2~6d+iSRI0+Q~;y`UZI;Axx`P)ktA` z{Up|k1VX(CV8t-8&;wyX7z418PA~?{HDXi}sU9163XM|FtbC2cEebv}zOyQcT-uOA zder0@ro1hi4k}Z~{3;RMk}-iqt4Ca(LZbA;6kj88-b0kl6cX=61*4I;ZkhD*8s7W)!1kh&c5{HX%x;Ic3L4(OZB|M*C^bkL+QRO7&K~W29ePS95?k0A8XO7 zWUs<)RE$RAJXacx#(B=PDv9j6(@UVx>&9TAm$=Z1&;BD1gH8@J-WG(o1F1|ft0Tf77sou=x|e21G9BHs-$og`WgbARG`2{bzQcl=%gjsBY$_b!>3(`GA*KCQ4( zQY%Eti~bHXlq6p(GULW*6i!`VIGMs!MUq-bDilh+*5~9fBf4i7K|i|)|Lj6~;mH`f zvx^{~T}1cnBIsuq;h$YduU2V8?;JpTrAk|FoCD~uQfcch+k-Pppdjw&#m0V~`ns01 z)h}*3Im|S?v*ucrLT;>=UIK;gtaetVke&6(sua>+WoR!nE6Yk&&w^T|klm`%YwE8{ zMx$`u4S>@LtbCKmNHlx(n9kS2oF2~l$2glQVSepG_nH>D-&}C(zDDdWoYf_BVt>6@ znBR77yKo*qUA6PM9u`IkR%iS)VGE5+LT~3tt0c?R<1t^OasE{C6KJ%^|6&dm`q#At zZllmXWxCksR0>%y zaJC|Wz}v5xzxKEUBJK4I?e~b*w9`A(UnNT8lD%$v%1@%@;O_Ir^b5W56TZ3)i@MOH zQAuRuqNY;Flov5w0*&^frPhdCr+-`mjqXHAtJB!cg30ApaGLInW|u&rTd~BGbz%C* zB@pPE%{2xR$=DuHZE*FGr|nAat%O(muLZo9lUoybr9 zyZJ}^AMCz8T#m=1opBXPdC;$Ke01f5<00005 zQ2+o|?f?J)00002D*ylh0RR90|GQ&6e0Bq%=qA|!LYLPU7ChI#=Kufz0000000000 z0C=3WR!wXhMHJowJ=CB!99kijmg%OcK+5jgaZ~cMw(wsY!zOX<4N+B4J6@0Nq3fO1 z&TNw)aX>=iz=4XMxFK->2~Ke0jKmEIj+~K@=%p&+zy*mnJL`>8IZZD_`Q(|m?|t)r zXIIm*zc=g)_05`lqt!rb?z)3oTUDo7L%LyE+r^q?)!n*!aM{ckkQ?EEQ$bmPeamWW z=;a)6oCH(=McZwHW?3jLxO%@F- zy=*tvuc1!6R?>YoVCI1KbyRV{A01UU+x14flrP&>rJOq~0dUr_uEMiB?vQc>|2RM_ z@M%EMT@rCfEn@wgU3E5VZ(ZNobiu=EUf~gbp9QAJMi$v6p2fPf$GBDLG&d|rL%#U> z@=~#Af%66pdSrK$IAAQ~WqPtWJO*c)VKB%7Ny<{vyYU|CM{I;D$vIho1<-3=+kgy^ zzR=NHr&XynN`(a=m4VyULyK=)Rr$PK?(U(siJByeIriy@d&9kX)pru0sKKVr%`ExvF}SV>p*>5qBtcc49bXle(H`?3eaC?}Ge zaw7EdkoX}I4DmP&StJq%#E>9am@s1R5l@)vNEf70Rwfm!>`1B2`hDtA*!M`E2Fb`P zzZ8*=gF%c3#LQh~QR4R~^obyd1|nj;*h>t+i}ch%ghwM9K>0W!35yKwh`2lz(yUa4 z@onwXz%i0p#+JsCF{v=pTyTNY3|tz~UXO`YIf7p)Xdh+5C;6cWE$C@06mSd3q(Tcm z;0Jl1l7eucAUwp6n4b`UFW)L?U)r7ZisO`XHRytf4u%3-1P~Hp>?Aq$AUy7o|Y|VV>E0Z>6Ax>qsg=LPd z)HQJRFHL) zJ98WGv0{7atO6*@j?=WW-zaD=Lw=-vLSnBK%a?*K4_9pqmY{d8sE`?+|5ZWzVp{rU z!(QKj%5nj9jP!E0lv$Kl+tg;Cu%f}(hz3t zitFMJ3P*8qIu4T4$rvv_)U>%-#WiCgdNP++^2vaCra?@X@z~keFd$0=m{bA z?#K(^*|xhxbn4v7ESdCE}mPI2P`0Z zd4K)nX5H6gQ9%7k!$dFU%KDJMPDhZkr1 Nv1Ar={{d-DEM(DSy14)V literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/cover.png.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/cover.png.i new file mode 100644 index 0000000000000000000000000000000000000000..9ca7ca58c307c945604bb31ccab4f9d3a966ce5d GIT binary patch literal 3370 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 ATL1t6 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/logo.gif.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/logo.gif.i new file mode 100644 index 0000000000000000000000000000000000000000..8be933635aad50fb487ba4f717e7fb27c7592276 GIT binary patch literal 3979 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/lua.1.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/lua.1.i new file mode 100644 index 0000000000000000000000000000000000000000..0c39ed938add492af77872a6cb25b9c724bb1595 GIT binary patch literal 1697 zcmV;S244990RRC20000000vP2EO-V;Po; zqNsylMXsa;mRxq1l&pW>H?yQfIX<+P#3Xm;1@7qYt#!zf@Ra|K2EA!fIrlt)!uZu`HL*~WgZDXPwtAk$$ zUB-zr7G?tOQDa`3Ry&Hm4Y{F}4<-4a@CEjAU)I){f|j<@VJ}}Zb@urBi-iLn4EeUH z+lH2V#QVen=QL3qFnjN=gzUV}Cf5}$4Yd(=G%V0kH~D6mjpU$R^y#I}8@n}bpQ-Hr zQ7vG2jpu3z>RB`fMxEcCD-Njxpb$$4r8>mZp}`=m5Z9m-K$#KjF7+0&Q-@M2_Mo@g zI=ys;8b2_CgklqHwT|pT)7tqZaBk#erAt!?NH9aF*@|O}h9BF~R80h2Rikk;);b5g zK9HB1k5YWpVlJ-b+$xxD*TD>x{*urCDP71 z#|MKc{g%tRKbkyGnIA*56;}|?3PcPI!PM16?KT$0>%#7N$^fYBX-eY`7aAvPwkpgE zdC8lcj?KY7Sw_wWL?Mm@qpYIWQAj0(!gvjGm0T=mD=t5X$_0JuolZdL+_eRwk>iYi z?|eYF$*Y3GcxBd_NyhmkERm{ zhtun#Gu74xUkNZV3L+510ao&;5qFRJB-~db#1~8 zBy2Vu>iGF$tfcb+Vqv(3OXehZb*BFEEwOSyHu&%er!U4M1+USrD{cpYt>7#>RY=YN zO63OxV(UVpK4TbrzSu&`?MMys*>w$-WLF2~CCeNifqsS(66iiCf54@)G&IshPz`mA zN?#mV068k_CXoQCfs4VgiZfLrt?>1Y7$)jO(pWFf~khOY6kL6FU$it%9(&eCpStLa$5_-K8#6q(ox!? zaH0nKG+sQmA;p4^Y*g-_m{n)yB{vLB6>R}ytpfxMbua#0AZ~l6+=ou(%NBZv9?6~O z*=JsAXLH-Q{rRw1(iE}piYFTXIHn_2nKNB6;<4GKx3%k<;03Z4qjXr8Ec9Ko^oC9Y zq=FeOUY+g(jHbr4Y0^Lt@rp@?>tM@MVhr_09=d^dB3fS`pJtyQJI!h~xR$OYv<0zY zBZ(b|ng*%^SG+KQE4GA82exu}#5@$HX`aR^ijw)hpg?a#X1w3&XXM2mQA*Esbs|BJ#>LNCY1kE?d*- zZH_KnwNB{LP4xtFpF|(tVM6P)TYR7c;9|4XT!%QaVUqFAg>c0VkyJXZgcC}&*&Q$&D3 zrM*Y}ygfF1+7$3asaTasQ%q2lm5#r4WA*@FTFfRL))Vz#H?-`CidBYF`(`L4ikxnw zgTZ;o$ss2m&?Cicl9$2!)7oIp#%aeHpC6VHxi9P3aW6tM?`zAK_h}7Bpi(JkmqGUW zL9|uJ>4vPeWWY-7e!_V?L}e z({G&V?e7n>`C|HUuI^+Ql+Yl(hL9b%*J#{IL{e88i{U=GyZvMFY4$W%PZ>>3Xrp$v rjQIuxxzFfR2CmX?cHJ7FQFs}Y>d%Zm8i&Tn@YC>a_M7?_9sa_SDIi5G literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/lua.css.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/lua.css.i new file mode 100644 index 0000000000000000000000000000000000000000..86da1343f90650c76d47a3d700b8e964df49f0bc GIT binary patch literal 494 zcmZQzWME`~fIbEWMtdk*=sy%x8p-_=D81%;ll#tx*k(Otm0LHNplZNW#hkh4e7O!8 z2(UgVE$(96&bDdFj&ro%$i6uyZ$h|b zT+Jn{=Lz3GadNHA)+asNy${*^zS(}qwv0Vr8-LBY$Y@|%Cv0DCvTmO6nw%A5q2D{qq?ZSbz!e0SQGY3i*JH-BEp(sDg{_R}1#zen@ErWU$?u3r*8 Mv2PE9iBQ%`0GedpTmS$7 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/lua.html.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/lua.html.i new file mode 100644 index 0000000000000000000000000000000000000000..cbbd6090cff7afc0d7265955c85e663789ccb7ac GIT binary patch literal 1819 zcmV+$2jutw0RRC20000000!Ft01s~f00000000vI|NsC0|NsAhZ1DeHlHYfi1vz;0 zw!;4 zRGn5UlNhk%#97_;qxB z&2O%*K6S3HJ6E6h^{3mbkGCKH0(r)LW$NpvAVbA1Vnap)N!yfw{Ub)z++|wI+7IsyA|4tS^4`z?k;bcA> zzq~Q39QSL8%*cQP)#bhIqDW@Sa{T1+Z1V__dhkP4x> zGlh*MUmBZoV;Ot_d$CD#rDehwDid~3Un6!gIsc--fv}RB!smtOi+ve$j6t^;hK&Bp zO*Xo$pDBi<9ws>QZz1t~2`PzW6D2TV5-YKUNIu@D587~~p4)0O9XsI7XP97;K?f}rr2WsEZ0C~Go;Xafa_ z(cxxL%^$;;;XD+gT5?4YCUObplZs%lMHhJ9^DRjJ(gW5$YyJhOVT~X@l(4`ncJ>J^dPEZnm2gE(ry| znn+CT0tt%(5V2QNa1QvjZ;DTHWi0q$kh@qSI+;@m7%McOfM{2Z0&|3_fb_d7`$1ZOC_>G|+F;+5yIiYSdA+}^ z=ZlKO9joNNd1%O4ojhe$+))dt?1e7NVh8Hy9MxTUWatM1Roa&FK&g!Q{A_gom-WjGNdj?^ia0Qx~lz{Ovhg*M^W=@*cdhi)CswIX^|yRJpt&}oZ-*` zv{5POxz+nppWfl^|A^`)=ss`}$pmdVTS?kdmS~GP=}Qr}fK(37kQS9GWNvi?^tOk| z49pm4E=L_pOlZ|&iStnmnX39neL%(G;B5m8?Vb_|CyNEp34A~o+Q?FgV<^dGp@}%< zBoJV(4pD`7=;$KMBX|4&IoV7FraM~#&d0d{#=rTSYy=r-{IT+Pyg`(w|HE@cgYlSV z;%d^K&|usq{^ERApU&P>T^cR1M^a0y2>9xv4wAinXe8&J)7$ESZZ@NgJ(A$~!wC$o5 zT^;k#<&k&z$;zLFvJyXEG;0f*mxnortl_|S;s``wpDQ%84;KK4pOUH7!qUCs=zbHX z%C*_zAcgt@XThc*uv-U;%mxGAAI-+~ixXW!F0S#;F@<;i@;12kKELgBw%cul7eixL zoks7Sm)%ak7w%=l{+E~WY(9J}DLA0+lY-X4mDJUyYA5xQBw1tvX4QR&t^aNQJf4<& zrx71YTR5Rr>f$vJZxr$82#SI~sZ}8X&BRc9X8%O|QNq=hb@4_$7(azOatE)jbd{yc J@_z?_AkSO@ZW{mq literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/luac.1.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/luac.1.i new file mode 100644 index 0000000000000000000000000000000000000000..c6651f837e2f0946d339c17cb15a221e9735a05d GIT binary patch literal 1721 zcmV;q21fY+0RRC20000000wyg01hDl00000000vI|NsC0|NsBo|2a6KyFEpgba{?% zlxT!yX+l!~00000000000001ZoSj!)Pa8QDefO`pijYdBFhILot$3ppmPjl?glbhS z`{2wtiN%aPvONjeU%%(to=ig7mz63i68nCfd(OG0cplNwq`IKGlV#CJGhWkq@##1E zbawXT^z8if>{~W26gf7g`<%uX18>I z`Ny^31oV7Dcb%ltHm$Cei{H+E+)p27lbI;K#wx^LqL`3vgSN(tzbXE@z;PoRg%9GT zZ`ZS{$H~LfWO~25r#*$0I!I86Nuc1Q@imI{)H=I#vhlQWIs|1%o86uKU8BvCYH608 zTq>bWur$|3x^1k1Q^-K2G&EPlK^@grR;nUtDpIei?1HKaQQSR93Z{*hZSXY#=+M;As>4DF};?!JmmOWtdw0z1Z>)LJ@Rf`L@AHWjN#Ci3Nk5CG;SQO(W6=j` z^s5N!HT0McjW8W^*-ZLF=!auFx$UUI14c>s2VyU}n%RaU^QaiLRt`h|`PNwAE0fe$ z>BT}h$d8V>VLmB?#!Np_3xWdF2Ir$7cH{UdVru?J?h~ajHlq*ECm%)v7d1FpfYW<=h4jxP* z(PpLC28`Me2ISEQhhqxhv{SW`p50|;$AVoWfws?SoaT1-oIZOw6K$AH78O>^G;Wuf zm?qe$>3oQ$q+00!3r;>gBs$l<`cPr5eRS;H>~7?}a%=>U7gba8`+!9YUR1V|2a+MxZ@#zD+Q3x-8WMT^kPw%Z!{TnYUsDB1=%9X4$(iZ2NC{p8X zz2>bB_WgemG8%71cyFoU2h1`@tF(tAw)`+kYKz3&VXEGYWRH7Z_~3L4dCoh$Vob7S zw$jXY=5GH)IN)I1m+Y(fY4IfStt{h{5MXcdBy(`+eoHc`QCa4aEz8a&M!C+UJwvgK zw&zEjR+@IaG_=dIi#iV*1a~T1h#Q1pLz1QhkK#Mnbj=)FBWfl7 z8Np6f+Y;8f#>T86T(fUk`?v9dIATcwscVzNX8& z*>u#KBORZA6vf<$RS50H>FH*(De!S&-SRa3sWZ9!{eC)onq1Aq^&vheuB)rGlxjf! z3St-;tlOsYF26tBP9JCDuAtijW2YOv?38w@!kT<6Xrf%_Wvv@uuD0Sf*em P{xH0r-iUtzH4@$sWHMW5 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/luac.html.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/luac.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6eda8fdfc2c3e9526dfc7928f18a59f6076473ad GIT binary patch literal 1839 zcmV+~2hjKc0RRC20000000!>>01r3-00000000vI|NsC0|NsAwEC+$V#auEU+=DSQ zkKAnNOm&n100000000000001ZoTXP?PvbZgeb2A(c1IeJ+LU2dqZKNZ3Y4YV4n@$> z3a$3RP2AQZi6h%-$^QC1*LIo|n5P|~K_vG5IQQIhZ$`fi2JF);yoScFm@*CHuq%gK;#vTYjI@uj%9lzm~J*d^(>0 zm|QcMVI|*)(a=APM)TSIpX_luzw8-XXTofSusybXewbeNta!D<#F!qtdz{{0_7F)- zf8yHE+m1$8i<@V5^~d#MzIeRs{d(*E_2|vr`S^bFeTt*!G^)~@HBh!r$$#}Iyf3$jibM#(QK?rD^+1e!`V3chq*^<+%0%6!b4}}X8LsfID1&m z7WeNBNyF?`9J!98nPpbPj|equxFTB!;$du zk*8!^6)%QyEiR%pH;p~K>PLvkip0_}qbi*UtIbh95E{9tY*|^4U!uSWSx^>a`v7-Dzyg|vX+D9C+zH@&RkKvAd6n6IM7O#I zfdzGG+Qbm!CB@N?Ryb0t$~B9pCtS)lF}g8OE@t2UK9^ZjmprFbiO2n@v6IW!h}5b9 zxXp&x8DggvIIcr`tb9ikDmJ3R4|u+=GS*Puh@H@={`)Ka2(Jp?h^bt!g+?c`6H1s) zaw}2UQ&xhgfHlYYAQ*Uyz?x<`6zH7?kHm9G8o>}&p9h~EShy*{)&$h@{IE!vYcfhz z;jZ#+6`dlu>+O9bHw7}I+X5Ivl!5?9Cr;la2?@xcMILbDdQ;`dlFFA6MvzrcZus*k zJ51!7tkx8iwyxBj&`;Yw0RTc%3GyMigSt zP&I>G$Rv>hr?togHzYq#svnW0c;LEJ$7#yAGYNv$6ZP5xg?_{AS-3G22HL{I$MVWp zCtITA8t@$2bC7kL6Om@pIAsrsAL`$9q*FRX^VzVS)V2atIfp(JusIKRTd{1}3rLWx z1{f=J;?FG1)=3~6)MWp2819oZ~ev5$xm8=FgnoR`|!F$vJVOzI?$I=l_1HR^KJzoMacnVeCo*A z)wi72RM4ZAY9zw-NDE?E1j6L|Kq$l30YOEC| zbW8drBome-!SJ;pV)+gig$dWB^>GtiD@fOiJK$spJ}phsJGCdtcQa1=$)*_gK1(+nvp^-w>%3-E1b_=>lQ|3J6Z=o!2jQx zgv#62yjLuzC1?|@rqZA}Y8pkp_Z&wL*orr$X=!Nu>Snbp(XXot+fd;(oHRFZpP1aN z7)Nw;qm~31|0}FDrsRoRE`fWE#ZE)Yn;A>|MsR^vDoHBs$)&5p&m`u;C>yG{!ui6x zOKrx~#8mjO2>67nEIW$b&8^BnCqbiB#nCNHkV5ey0j1nRT~zrB^j6XJw_GzR9WiB zU4}xvf>8yxO4mN4$&cmT;xXKv$LuZ!W7w_SR6=TzViZ5dY$kMNcqVg`Y-_i={S~uo d3~X?lK8>e~TmP*)q%TnSMe06!{{v$`Eu0eKjOPFV literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/manual.css.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/manual.css.i new file mode 100644 index 0000000000000000000000000000000000000000..f5606eb4576190ab38eadf36594845f9b3cfeb4c GIT binary patch literal 150 zcmZQzWME`~fG{9c0bw#}|A>)7{L3zXUX!mQ3Hh%F5}_VP@aeQ1xJ{V$NxUFpqQo zo}nwAJ@PqyUi+f2_nEV2R&EJ8apts#?kSzX4bN6ReWaz~q@i(cjn~#70~3SL))S)Q jD$ic3ilwAAg+6(rJ}p91Bz0MO!f++8^no` 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 BjE(>R literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/readme.html.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/doc/readme.html.i new file mode 100644 index 0000000000000000000000000000000000000000..07e73738d8505eb8fdaf930cbf167bc40aadb6ab GIT binary patch literal 734 zcmZQzWME_f1IB0u2Bt|6HiOWAC@8s=&nI^2cJa=|mxSFV&hJ`3qoo0=2254Vsht#< z-E1Im{Qh4N_iuT(oHRSQqH=Y+i(QVtNS@}V9Whn1@b@?Gkc`t_wH@X6-v2+ZI!`v$ zu#nf9Yp=uJP0nsk)4%Ze@xIqzG|gw4Z|>uj2{)d6_{L?T!uRS)zUr>c0z!^uHT<$F zNBfWLc`e{#a>sJTtC=fA=IUI1boSTgDQjCl z8t^RJmbH(&C+4@nd&Q;EsrN;CBd1t0^{4O!`6_=9mTI{Yxx?&RjPefK=Dehp=D!pk zTi$v8TctAY)1**?4*eHinr_FfW%ILE-m(6yqc2*t^2E{YD|R+;udWXJE1vPaGj!sz z1*u1wlS7||Pq0_?6%H=lTxc<=_>X|_r27l6|54O)Re%3uHveRX*VS|Cqot}{Qd>%e zetkQ#WJ8aCVN=K!2I+`(YrY1_-7xIkm8LY4RC&3Os4b!N9*HUE%WW2qlE_iok4q#5#UC+GjU zZ*WW|`Au`l4BhwP=Pj3idmUar`&7jOE>Wk4C3hC`YDuIYjEFtX#GTa^{XS{+$&{Lm zvu1p9;fHcV41_ypaNVo_bM{7K%3;aacSr3`7Qd<7)-e0))vrf)a4qy)`ev8kl|atx z`%V?UJ9Q~zan_3h?t3g}o+v%PCD^x7E-840gF(H7zr`=M-{D`Y&;Q6j;&*dJmgkx& z*OEGQqi&_!zdOuwUhY#}=SA+9y$AZ|X%x0fO|n$ETw>-w**IdIym^7u%sHRsJ6n=n E00VVPfB*mh literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/_makefile.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/_makefile.i new file mode 100644 index 0000000000000000000000000000000000000000..0eabf991889d71f8bfbd094d1d69dfacd67f87ef GIT binary patch literal 509 zcmVfV3aKlQiiC1TW59&zUomE8K}!RaRPIX&n}gK;#>vsDApi zPcs;-49P5h4^5ByNAjnQKter?{&O8v7;)z@a7J+Pg}6lvHmb0LrHU zJzPQ%#*n5Jbkho+Ucg4^L41bgB)R~di#ptQE=x5}xD%LxA=9|>+7 zTH-*S9>(BypgKkfm+rwvL_yBioMB97?8;<&tJRu~wkpS zrX{4GwbE6&JY^dCKC!@lgM^VBry=-$6|rEyp0k_iLt6KHKdt*%L#eVc(pT1C88ajp zRA$rK-@$#|1KpK7waY1K>;y^cRQK>}yryLzb_IO#FrPi8LH~1o|L?$m5_kkB(X#Is literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/_r_e_a_d_m_e.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/_r_e_a_d_m_e.i new file mode 100644 index 0000000000000000000000000000000000000000..96ff2d38a16fed668d8cfebc225799635c3be4a8 GIT binary patch literal 717 zcmZQzWME_f113=h2Id72HiOWADDb)djzcTQVs(94(kUi~NfH(AzkWm2fT@Z(slnd; z!iGF{<#nxBy&ZSASUYiOY=~Ov>Y=O9H&5mA##x>2m0Qm2KR)l>q9DDw8sENu5HG(U z%;tXb_MuFs(;F3z^2}uCH~qbi?S;k<9*MbA=9-`VF7e{U!Y_6E7`hV9yq@#M_Qz!Z z;Fp?m3%+}LMXtVOdChDB>+$9fvzJxAX(?oS_v}@J`@|O$4%zy|gfqzsZ@2xIY(<++z2t*@R@bnezSi0@>P39(_|SgMEUt;98&ot(X{dG zBX3^Ez)O)eQj@30yDF|&us|eh)=~AgrBy6_b)2&5FAM4t61f)L>`&etFzeo8;WqE2 zTif>St~T2LX@9HDp`yJpwg*oXZT?Ykar%?=1O8oo=OyDZ?xo-Fn)v9m^vvHX#u;wv zZ$saBn@;;6vvBT$>vcc#3}v(1+Fev{%iWXHYyTdySM#fnozxb#)4SFA7cVi8<6qyh zc`>tvj>T_*;NruYv&FnO-?-_L{8K$^MPPgEzXdUd2iAqS^E`X~+;&Z+#FY!%j~tGe zw#f9v>gc&)d?pX-SDx14Ka+QjPcHb%nJG^CMF&H^IF%_g&VT%MGRMQSlU?KtQy+>P z3m4lkLZL0!jn%6NZkFLmFat)dH1UK>eUL2C)P>sxmK;VQ}C?nL|r$5vq|#{ z&iwj*a@PZ?$-FaCg83b%Ssn147G8GydGQNK literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/all.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/all.c.i new file mode 100644 index 0000000000000000000000000000000000000000..6d7e429c922df580e9b85072c4c87e61c4e24cd0 GIT binary patch literal 280 zcmZQzWME`~fEx@9Ov|8bq5n{@*!273I{SmajBl;d-+lM{fhJLAWvCi3RWT>`qOac( z10L1~wf>2`ySrxYN|?{I$hgg|LxuGj4#)kE*!16 zK70Qk@%c>*tcAI*-W<8N8>flcUg%2r#Bei(+4Eg+jq9C$Pwp4zc6zYsOx1oDlJ(A( zF|4fZVAtg>6`Nj(FWdKZ`-0``ZZEEveIg?+X}aU0$=ryLH>r<*8L|nt3+pWY8s}zH R_4Dv@r5_XI+5g;T008oaf5!j- literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/lua.hpp.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/lua.hpp.i new file mode 100644 index 0000000000000000000000000000000000000000..cae015e239a1ad5d2f354d649aba7112a465b6d7 GIT binary patch literal 198 zcmZQzWME`~fHoktAIcW`4+W?554B3Cs~lm8Z!6igZ|Q}IPyQ#NYQR**oY-@YT!#z< zS|8T>ee5{hwA10`vS@un-{mF-zD|=GyDG{JITqdifADxQ-=dPc#b)OoE^C>a`Ls!w zBRpqif?V5ov%VTLJ;AbVms@5?t$L=@7(QWJNdWgemv<32CWpO~^7Q@i^2FT5w@g1z g{a`R%VDF1l8~%3ws_d(d9i1EPA$004DKQZ2$lO literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/lua.ico.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/lua.ico.i new file mode 100644 index 0000000000000000000000000000000000000000..faa1fb83d6a1b10442575f7bc9aacc2665615863 GIT binary patch literal 471 zcmV;|0Vw_e0RRC20000000EZ(00cGw00000000vI|NsC0|Ns9*FwsftNi5RbqmW{ zy;DRp<4Q1Q;@usQCTAVJO27tP+t!z>9orF0$?gzqTiX#wsgQ6zc#ILF9wlMIL%YO| znuN0hB;48w2YIEz3XZqC636R=HTTNb-{iPV*ALjt_x15vKO}#Z_lxVBm-C{Z7u4sx z-!`-~&ZCGeo#vHrHmDqformZpD@sY&03=feCW%sgKldLiZ?Jhy?cHZXTPF*eMzoTi}T_!fd<%|FT literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/lua.pc.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/lua.pc.i new file mode 100644 index 0000000000000000000000000000000000000000..4bc3ec4e5c55ea9ac05a11ec6dc02a0c02465e0f GIT binary patch literal 498 zcmZQzWME_f1IAbe2Bt|6HiOWADDV#5XUd>;!s_rF*QJ*%H@!_-D%=TG1EwnG#7^?h zZZ?o;fB#cN-={!2<3-~1ruKg~9XFKixb)cT$_uCDM?$i!&&%Uih2`>ReW<+m zEPK@QW;Q%_s602qir1Y%7Yzh5O|yt`sKwbjjDrg*g@!#lMgJ!R#Bn!E~Qw`(Jjwsg2?}i|ZaT zuG@MjMy+M>?Csy2`PVEnkCHJqRI;Ar(OE~+-W(3%;^;V$J!y9EQm^u5S6y_wUihCC zx$5n}*nRde=bB~tD_PrTn>>qK;CsxoZt1?OKDnie^H+K}rX8;T(e#gzP2$>KPzZyf z1qehDk;9}75&*@I^z@g{tZHSKPMiNhKPVvd{u~B}cOW?=Py=MQ0x@Tht%9kZp`I}p E0JR9l*#H0l literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/luavs.bat.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/luavs.bat.i new file mode 100644 index 0000000000000000000000000000000000000000..4ccdf4fbc2b034d1997a710b4cb31f929d05fe55 GIT binary patch literal 753 zcmZQzWME`~fGQxh8Oj#=4+Y0d6A~uQ+n~N|^6fv*A0D!inB(*oss>C|%<=XM)X?*K z=5;Rc!guqa3;gC`7yQF6lz-$b?J4K_`lYb5oTsn+o zOczfou!Z}j#hH1u_cztmWp;`N+_@5Ov=4TP+i(>v*H)@=ikw#|Pfe`xWgHs)?Idwpa6G>6MKnggskf8LPjk&FxqTf0eQ z$>Iz54!leIZgKM?`@+^U3cshGUtKIW|M9^Ed*lA@G~Cl7YMRvEAjPGw(tJg*psSEM zJ-)TnLce-isu3di2UG#MnyvBAPF89Minf7-&V z1-RBM^zADT(KcCBa6(eVUtsdygb9LAc~cgu%+p<# zX|za4Y3b5`OBGKgbv&CcQ2U!juvO!n`svbrUTU*bC!K#*IY(#O$&@{Qw`5+Hl$lR* zvfZM2%VC?`)Ej$w{%G9$QTp)u?Zoh^7uri^7uM~bxvbDG?rGtyrauCgPSwA@e*fTu zuhSnc^vU&8yu`PDS6^se>>s`(Vm}sdxbfZSi?T>`-p6zXgEb9p1sC^KA7m4^`*?2Q z!!T>-%J|2>j4WE;xVtvb+w8c8J^3UP(?r#5A^M6TE U&T{{Iu#~qx|L#HiNyPzd0JN z4$e0dpP8OXTkuHz-PFca;SC~NUe9?p+4b0}W6k`$LJ>yn6$dw1zua1U?Vw*^@`P>0 z*Cxv{tm4a9$x!AxoBz+k7-qKlbBfxN8Z;-&P2StGZMn$79&g2S6SFRxOIHU)%9lx&U>2o_clj+(<4v!Z-S7%q7Wz7iLSs{GVHPs})lw;fJRW+s&6W>ph zKD8lc4a0TSkCtI-cRA-_P(1lefBQ|I&XO!L(hW`SsQo)e~Wcue*QQR#je9b=b<; z?l<|?YZeP5>)C3xub#%%?B!8a(GPsju`cXUY{!oS)vZ%(qjN4P9GmRcUuHJPHeVYC>l<)0Ej(ak3=bLUn$g11-FK1%?vz5JH zt8O$F?v>xa?$0Su^nl_N2-JZws{m#(FlmEmP~;xFulL<9cd|Lh3Gv%1Q*OJ=%(W_l qsDY7;9Y7P70eR923aL58sS25C3K}`3iSe1md6_vHK02A2np^-9&-WPs literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/noparser.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/noparser.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3e2e668f6223c37c32e8efd58ac2b1a6e4d2fd7b GIT binary patch literal 696 zcmV;p0!RG-0RRC20000000MXb00iX#00000000vI|NsC0|NsB+Y%%d_j{II$6{J9x z2gU18XW3-{00000000000001ZoP|?OZ__{!z57=Tt`Lc3r69zqC)5_HlABZ%3(6&0 zd&l+C&91c{4K3ooGqX-YTp@8uc4lYZy!U2(T4V)$=@D8h5gOEX3#~A8g6L5~u&@yi z2m-1osK_CNUIdU9Js2A(Wr9$KvPejSa9){v*jO1gRm?QwmY_BMq+h;9H!oq^tF{M+ zgF}xd!21uc!FCKn6NAuc(t-f*Y<#0NSfihqlV~(ofVM(Hql|D*&?%lIj07JX4fiDw zY-=|IT}arf(1VVmWw_a@Bj`vhN_ZNfd-0eco2ax*g<}hIu}evww+FRHP+6j3g z9<55~Ame7(LD5nwRCD;10o2R-_VQv@&Cjym z$DKFMlC**v?$+b5X?F?VuU1ezmvG(0uA}RM|4V-Ao*sNJC}YG1Cu5#z%pu_V<2Y4w z%yWk5d#wUGp=VW@?r-F= literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/strict.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/etc/strict.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..4b4d5924f39f0dc510ab6365a47a19c957cda2ce GIT binary patch literal 702 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 VlzElTjAMCWHsx7qtPkRIhqoeB6ovo* literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lapi.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lapi.c.i new file mode 100644 index 0000000000000000000000000000000000000000..6cd7d767dbda39bf4acc10ce94328631fd9620da GIT binary patch literal 5534 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lapi.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lapi.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2fcfde6777d6141228e24bd70c36601ed532655e GIT binary patch literal 415 zcmZQzWME`~fEx@9j7(6r(0?fSVSDC#w|05uoKLqo#XPUCcd_>kg{lEl6?07cPG=o9 z5ODqetIK*h1S+hQ1W|LM|Y+O$9*2B+MhTJX+PWY5QtLgaZ+#^}rLO&jx_O;}=K&<$U-P~;_ z>lb%QU5&QQ?sK{E`=i~*<(w8j4#+mj=3JR6Xe6F=viWu9kGJ`~5zA)E{$2n1ZmHR~ zme#M&^!oZ|F32_WvD{p9ap`@gd-hv;Ie#2~ zKE-?8bH_gnR$YFx!JY$#2oSgf!-WmZVqnq+(V(Ew$nQ*Dx7V)!uJ^@O`}to?%~#Lt zhp2&*%s`eE5L;_$DX4g+SSjQr7G&yW=#(iK=^5!6>KQ5+85o%B8ye{wnJX9?TNxNx W8JQ{+UmE_a(F{goY5 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 E4H}wy*8l(j literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lcode.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lcode.c.i new file mode 100644 index 0000000000000000000000000000000000000000..13f5c6a29d9993f3ae14c14a36ab65e1040f3bd6 GIT binary patch literal 6127 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 Bn%@8b literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lcode.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lcode.h.i new file mode 100644 index 0000000000000000000000000000000000000000..4a132b9ca5a45f9a910b9f33315a660dbaae883b GIT binary patch literal 1115 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 LxK

      sBi%Q*`*Kb literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ldo.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ldo.c.i new file mode 100644 index 0000000000000000000000000000000000000000..dc3069f9bd30024aa8acc8de1dd23a7045f3367b GIT binary patch literal 5158 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 U6W*yP5LWsh#sRMQ1GSr)>lKv2AOHXW literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ldo.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ldo.h.i new file mode 100644 index 0000000000000000000000000000000000000000..231feb13fb8955027e4bef42e16b68e266953698 GIT binary patch literal 942 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 D6Gn+v literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lfunc.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lfunc.h.i new file mode 100644 index 0000000000000000000000000000000000000000..00d4d52569a41e7f9e39c6530f72fbc7181780c7 GIT binary patch literal 632 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

      4H=?(InB&uP3^KvyjTCe zzaC4iH6+kVVte_PwS(tw)nZ;H30SvwwW8Da@`%u$BM$)dc7kA4@WAh#r7|JTgMDA9 zYxe5ck#|#|yKXx-kC?sWKFvGp^*uW|8G)TY(oVf;dEcI%IF+^9gs4=HN6GR=@ZsBi z%{GDwAWrCfHLkIcOPy%pzk50<+D$|1Ah6UDqV77`*>Mg!r-L9T#8W_ZDJ4}tfX=MR zoIc{vZuij|=2_z`$3774@#cnqRC}DN7k>e>-!tf5zrHCRMR6C1`@jc(+RVB8WvD;=+K=VaRjEs z>0hv~%2Hxw)DcN#f{C?u{4o#!!MVFF$+9CAKBLoP`tD=yLICP%0A+)Rzy9{(M zrwT6);;puO9n{|LNdzpK{SAp!z|1~&5mXx`1{?l35nb6WEK=R;qFW1ps4)m%uyHF{ z4^^$E6lodNOIt-=I2H~oeGy17C@g5*4+q;q&r%WfMQH1^?gS{;`PnW=C|o46CBQ`ECu(#V=zbT-Mzj;5s;ZX*$rVcu$46=t#YbKfo4SR96-jr=sTQHg zB4D`eb=;tB#$(VZv}V1g9Uf_}jS~AKiW!}@HpX8iNL23qg4*h~IrVJQ)ho{sDi%ph z>22GYMWWMlW-`K6yJ-$o3L8a4k&~+7<5nSb-1t5c-8&7pw;l6eG_Ah) z&V#h0fQwe411D+jyDrd{i?tnW715nxZrsu%U2Od%NXKjHaQ3a!#J*_3FLP7_+{cgC zbRq4RMjv$8d5o-*1za1X(_=fik{poJ=PdM%8&W;GFeT6KjaF0!RUH9q?$vz5VD46Z z&VUAZ3E1s6yBYgHn0TsMoz)bL918XQf?Cw`22Z%8%!R!jZT3rxZfFq6Vg)~cmpF0!(#(|lQA~yA+=NcL21xIoi7lR*NK0LUC}N2H zRR5Nn@dT^rb_$U`eG8-ng03T#bbIaZYs1>)2OOatYGIe9Ncul zaBSfg+bv|q(^j-=Qyaxcdacm^ox`<56bbLd%m{%Z9Bk2YknVMbDP2wE&uOwI?;`p|Z3T>_a)h z)x2(bR@><7l^?XZBX0)wkP^aucaTP`|Lil5dNT+VPwVdkIoLPB83aeJnscbH7yBRP zseXkTfM(d{SAK8mh^r|D126>{`XNULs(xvy@Cuk{?y>dLRe~W%TIKi`hb5URt6}BW{2e z()xDQqbs2EeBD5neDzx@Lb@n^Y0~YUB&L7wat+M!a z2A{GmXNzLW4idEI@wM;M4|^(!uYvKXWBqEf1J`|6^YB#0K&yYSybl4J6virm2rhw6*k06@gL-6@`N|!zzl(LZ=wi4a@Eg%$)O8w@R%4 zFpXck=qB)MgYdpQ|AqMaGTP);T|Sc&pmQG%gDZgt#+)28GB({{Tj zW$q}TLjk_j^v`PvYb*8Lh94!~gOjJIy?{FM>&q@DpYwa(>D^zhA2g-ziFP$Uf*wIjc{!! zH`e`({yOxltp=_FOGe3lXuV2vQ>qu(_ul_cF1DxPn(BP2z(>Z&t1QTSx^}xAyFTOSd-40UL%(Fm2N_tj zzuWebVDo}nIBU({gYy2$ld}My>*44=tf_?5M%|PTf8T9$iEkYx_6vLc4PTn;_ohYM zdU5gzc58<8Vf8)XP1{fQ{=F6TS6OWBj{c5;F1ERum{AUT%)0jf_)F)x-tiYN`4@=p z0_S@QBH4Goz0YXtoyd17gAQ^)0R9*CpM9SI0000M$N&HU002h-08WDd0000000Juj z00030|NsB36?4n&?)S_+52~ig^PZY6?O|&G000000000000000000930024w0028G zDj+0DWI7;hXJam7EOsC=E;BeTF)lG6GB7YVFEKJNGB+SGGdeIbIx;mNa&KZ~a&&JX JMR;%^BnrPPeF^{o literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lgc.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lgc.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b93bc8e7c0de82afe50e2f516746764244af93c5 GIT binary patch literal 1334 zcmV-61bJ|7_{w#jQ#>qGmgAGz_Pix1XA%sxI)a?|U zq@7OaA)Q`|&}r^Y*rYGNy?c5W2I}wywEOI{&+hG>=(bz!HoO`;mk@gPsozw-hIqpR&zEq= zWMESWA_x<5>bKh6R_kTpMhPI11U~PozEdkI>vrh5pQh z2o@m)A&H~{mr+H{mx4 zgRfLOEAbA3M$bh^vBN1&~*LLfa7bhiI94j%oiI;JMgc* zG7O`Pc^dKeH7H1lz-BxlZ6eUSB4Vj8&~3hbi{A~Ol{wAM!a_g^HZfHdYSm)Gd8P_8 zB4wqpmdJQgbOx@sU?)7UCPUXs+X+T4EBEK}YwUWxG*AU>iP{QnNIMj)RBgr9h3*P1 zr({AlERoD$cc+qT)anXEdhTlT(@!;^Xgay^Z2vSHunz2| zs)*9zXb`Dod_q%ns2=KZvO%Dxzo^k1AH$1Eo>6ILcvL*Idl=)L+}H`{G?Li}f2sOV z&*9*q>RxB9?zweC6W)0ZN_?&{loYm4B99h&wC&2^%k{3rsx+&pNh`0v18pfoaqO%5 zH9ZjdSgZBO8&vo`JKYi0ry2piJO}f#QO$P+TDJPuthz~J`_x{J2KvN+zu@;4;D$wx zPq>3`RC}q;S|BxfKgZPxLuRLDebRx+$xZrO;B9~_IQ%^Or9Yp}uvUCB4dW_h3tZ4g zNPco7nIxf7DB$KAGTUgNRuVTnbPR-RsUjh1jNU8wXItxna2`;O*<(Cy)T`KQy!NcM;eT)7s#^UELoAM z;AY1DQZeXIsWpm28nS9L5xDfDaCmO&dzYEb z%f)TFSn$I_`p5tP00000000000000000RI306G8w06QuwAS6j-Iv{LkV=ibcb|5k? sF*PnRE-@f7FfcbSF)}YQHy|-HIxsRiGBqG_Z(?O~bZ;O9zFPn}DD#bJb;(=N}Tj|5P8U2254VNu3m% z-((=s`u?}}Jqvx2nO(ERC+BebO`fpDk)|3{e$Cex1-S`zt#4qVS z-ZJB``u45c3v15HYBv-Lr7E_%&CB`|eC1@+nhXo;Sl5=Im2N5yEdERFu6~|g!tSc` z_eV>*g>pmj;>4`LBU64e`n^1QCCl#6p_wZTpPkEzQZiJFuLxgw?c5GFPZ<}{Be7RF z)V!)UuDYqD`}S&8+=# z*Y~;Q;(bl6u8mepZ#Pei`lTIez#HDu^05$qZ!K0I{u>mV%0B zij_i6W?p8AUb0S^f}x(Fi5`$pFfuSO*EclMH!@c+G`2D@vNAGND9TStEh@=ZaIGj% HP~idqA?@%# literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/liolib.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/liolib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..04fff98457cfdc0a7d165da5087607acf305ecba GIT binary patch literal 4656 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 YIxsRiGBqG_Z(?O~bZ;O zN$fZrK8npUO0I&D*~O7tlgzBnIt@RCLFR1JFq@>-F#8y~O**mnP2$W^eEt}X!k$e9 z$JC1F3E6~wmBd$py>OUhV;jn^X8B-gM|O$bGP!*prp}!>xV6%8mSRz@aWeKEFHJ9D zWoEXb&vU+MA>`XNVYkSo>Qbh5QT%vVksr=nD?u(qzJ_~>O{(};!r%+b8zPT1`DhYE z(_xSWP;e%dZZZMB-Qz_4J~b8+{`?Ca_0)Pv^klURd(CtZVy3ZmUR>%>$4XE(2Vcoc z?-7T!iCD!iO@1Y5a)#q7aa=1d8q=}bi5;<2qAe6;#!bzS5n87;xnt8rnn7QXS=}=R zd^yG{S7b|4v_cT3tS9bZqRk7eIGEW(+_5dUwx}`bwl3C)vSn+fn5&j)s~r}rp*0q1 zFjz}1-K1Qn6vwnYa{XkaPu#K4J$=pj*L*?p((&RE%y}Q`BEH7w#D?rw(&E2tWk-PT z#8S{Zt;ZKuKO)Oq$W086Ls!#rjC8{Ph!XH0_QOXY$s22QJ8P>-Gw9WVoCK>2u5oNM zo34<&6$Lqr+R8xpq(z$^EJ?BCbW^aJ<8OdyA#HFpjYfkXw}sX{V47LKA#lfOY5SKl zs-U|c*zx7R0wqy4!~<||*GYaYdoCk-sK56;iTB{ftX&A%+ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/llimits.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/llimits.h.i new file mode 100644 index 0000000000000000000000000000000000000000..358f25c9991b6ae7c6cc633953441f51f6456045 GIT binary patch literal 1295 zcmV+q1@QU+0RRC20000000cw;00}7o00000000vI|NsC0|Ns9tpm9^6S3;%Gf5a|a zhHXJwn}%Kh00000000000001ZoPAc?ZsRr(eYU@1u)9DcBNs>McG09L;AFj9qqb4_ z0u+5wXo<3jrAR>}9lJ&Q?VX{mi_^3~kdVVO_cNp14Elose3+#7Af+gTHP`v&4sNf% z{{f=m@Z-&GbQ67o+fVnm(fx1;mEQ2mY8dZJ_&};tuXG6;W<&z^P;$I5m4eX)2W@j+ z!Lv}tGAWrAT3w~Qt-p#(_{*;;ZAPr5u*Vw+o-Ybz2CLVpypMM%q7=x*bUm8H>&bj|7hwRg zQ1&i*c>O#Z&*-t>#p@^ka(d|ZZw8R$tTNyXPk|XQ1=a%;v#w&&Kwvc3oLP7#*aZj! z6*s)vAv)8QS7wRjl?egsP=0*Y*2;Tw4 zOY4jidn^;U+h~F7GSMl=MI81!46WBH4qW4_UYGS0;fEvn<^yCfbqq46JPtbZiu-4| z8a@5ei#`r(b^NY)bzF5`o5miU5ScB*H331LP^n*VaB$M1@WgZ9!`WoMTrF0kN7|pQ ztFE+n7qz{A%jwDC#%0-YHf!TJn=zVtTz~m8UNpwfq-VyP?;f^VYGiPCK1dKuaa93r zD^FJ#hH!>)sztS!mV>Q*5!<}tEIkM=)2@xPhuYttXT~48@jU$1Esm!UODatxgd5CO zT7v)j)~nzD!+_s0T+!TEgA4xDd~_<&rvL8&=>tu)KaUoledAZ-00}Js0000000Juj00030|Ns9V z%#FMMt!DL~d5U84Hdxp9zMMq>00000000000000000093002G!002KKDj+0DWI7;h zY-w$2baO6fEOsC+q`YT!1%c@yv5ahvUXK zFb_{o!D_XRo2|2^bpqz;#nH*dkp&_caS;d5`yRq8(!GzF?=ay2sdM~s$IJt?Bba!W z0-VE#Abb|?bQZ%+fC3y`AH0Me&MNh0rBc~*{jrxg94@2Sp%7;8RxmP5NM+CA6W8a< zNbT_w8a#CELI3@Vsj9SJT|-#%U0ScMi)9#!CO+DOVSj0N*oWHDq50N4KDSPekB-mI zPtT96qqDas#!}|4d)4pW+}p$6oqg5&c-QMeZP;&`XRX7QfmSO~OjW_0V_77djUuR_ zUmI%|bEppt_)!5Wh#e-;%unW6&1a1$Xi?({?l4-p@GDEE)>#qFX>z9Xx|Qv-@{ORL|x>uL5oN^YO�vtUdFYYo4xZ+Lqv;4Ge|<&K z=%mQM6C@)KKYU?Z5t9%)KnkT{{O*R*A69{ zU%wPyFxB&pg4^ea%4SR3kJ;MZ6UUiL%MS`}@5SM|RV(z++#H8q_9>X=o-OuS-^S-e zl+=?Xc*))p<)y{V%8j)>iH7(zTalOdq~~a_uN2kTFKD}TvlN_M#UF9v`*=KB3uFfmQ$+>ax`fj$lSCS^Kgwo|fj?aaPQePZFVQ>cSCvS{@Y52Z z^vfj@cpVJpMODIT;0+NTU+)9^7Pw9%$r|1hxdCGqajKH&bWEIfdax@o(>cGvJZj*NlCP3BaDjk6W%TKGx=VAO@UDYa_{6sx54$Leq@}B2p%A6jP{g<+` z@~phz2@@i%mDHm3+`OOXR+_$5p1vp3x3*2cmb~$>0LFn=P=rTsU!x2TpRmM>FY+xQ zL*zmP(oywE1pc(B7t`<-nwvbr?OC+ZBe`b^in@AywAL(-13!w>Fz;~w$R2q9`Wq`x z7JpRPD5^Fvv-|;N(MVyu=MlcV9_BdSGZl_Rj?*;?8S47A!cYoGWH?=WmN*ePj@N$` z5K)S;hG#HNRSHHTgYi4AU?ehFwn84JBytAc7L)=}IYXqT)M%42{7+o@m zPz>b)i44Z$U%^P^a9Zf)2$92ht69O3${0B5D;$Xo#tBftNGxG$G|7S0)>~s!ALfZD zBom=mCuNx^#aP307%x1_1t%iI>4ike6QvkycnaS<46xPeKzWjVh+wqF1M00000000000000000RI306zc#06;1# zAS6j-Iv{LqVRUG0X<{y8EOsCEWgpmfeFZT2u{iWS_D`kr&R z(VM*yMQPzqTY)!)0@<*B8Kr|LihdF*lTFUyeQooculwaS3h^JIxMQ@;4#(N&$@1pY zV%o7fbFR)#BspI-1qr({{gr@XJ(cLypFFc)32VzNcK}f|aH*QCbYsDm91Let>I~M6 z%B;|8OzN!`Ii#>|m9ZBzc`v9o*7Tqj|L~;+P2a;w(KopyFY$v@or9@z60{=2S;K&}b4{{g(hp`w!Z9(W%RLzO;4y&= z6&AfQhqb~he}P^*Pjo32Dm8FIya&btE zg2~|U7?N} zpUmKO&4m0h@xyWG{P``C`(rv;EGEDI@CFsWm$3Qg%fjd#YaW*n<8gUU4GZb4Z8w+p z9>!-OJ?S?0;gVN%FM@CVkckwPusz7M!g6FKGmvs)w5jSMfq&7?gJ5SkoXg0Y;hEgK zBQ~4^hU+WuZZJYqfI-?uoa<&KaWB|k0i$-%&y13;0Ywaa%M~`I6xK?9umsvIAC{(3 zj%SQ{I1s*cHv%^ZjxU|#+6pP5WLqpAM$H+9t1<7?A+V9O;2gjc{&HD!7kk&2r<OI^8HEml0frl+SPhCl~AH;D&H0d+&0O?oa!DLYfCYPDu)UO-@Q(aUGQl@Y|G=o znoaJySjj!?O3W!H*6iKv_)u|dK7I5w!ayF&{dC%jR_m20P8-qp$+N1QRsOZ;42RQ= z!=gY}fWFQg@y;Ufq-l;E?v5FSOl#uzbX?K}MI000001JwWk0000;000Pl000000006j00000|NsC0Txf{li}>&# zt_GQ`W*+T@P5L^n000000000000000000030000x0000yDk>l(Nn|=8Y;9$2E@Lcq vATcgCFfK7JF(5K9FgGtTGA}YWATcvKFfuwaH6U_tVr6o4Zy-f@a3CZK_q8S~ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lmem.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lmem.h.i new file mode 100644 index 0000000000000000000000000000000000000000..fa8675c1bca05ae9353dbb4bb53f1b9257fce34c GIT binary patch literal 803 zcmZQzWME_f1Ey#O2G&auHiOWAD0p<>Np;-*^9JpvQi7X0oTcYj*a$$?fT@Z(Q-h=P zXB&vr@$G-4u~zL(lw!);!<)7Rho%NExzL_Aby=oR(SZij4cd<{r0uWUmKo$RE4ISn z#`E2ClZ6xblP%^h57y8Q>*c!SU{NK1D8*(U$Fb)JpD-QbzkKqiiA?h(?PXh9Zhlst z6Ll{pW0}z`1B2aytC!qzaA7?=bJJ7RTG%P8Z>j zW>xQALE8tn|pQlH21QbWo7J&+jDb^ot#rK92etY{ncbk4Q7QDAPXnwk4<;t{%wSCQNd|sw&i)3rRd3H7X|NnX7s^$~=^VPHJ zSJll+zVUX>{~7bRjaSuk-SZT`U7Wx3ZRX$J*&cz}9$c#!jF&E1_3F-%Z+An|4a{O-(gx9>)cN+1T>7L|OP#e*jZ2>yo1M2b|Jwyo11Fh* zENdXP(b7^-@l3H&$jMF3)yvQ+Q!vysHq-+`1tS9kbA3Z2eIs)PLt`rgBP%0Qg`)hV P)S{An1=orK1r;s;>>6GD literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/loadlib.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/loadlib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..c438b07a250b4d4a1c20d2a1800b1adc518068d8 GIT binary patch literal 5869 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 DQiwR6 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lobject.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lobject.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4839d8d91cc59d2bfab9b0cdb2675376c4d08da6 GIT binary patch literal 2126 zcmV-U2(kA70RRC20000000)Br02Ous00000000vI|NsC0|NsAf+?`+36)Hh7pmrw z+A3f@vfQ?nktIdl0<$yx_dU0}^~5`q4f(X=8j!p1EZD+kFsPYGL_KTCZ%tg^=+~iv=p((!hjZe9H=mf zB_%f^qe3kE$L6px0y$sY{D)v{W zwIiwKeztsY7A6mlqHxwe%feW*cD|X5MHq|1+G$XpOy0km{&ex?tOld2p>-Q4^Mp@o z2WzozomfXU52f;zcyMNLH4bmIIQ$FXNJZ~{^P^m_lP;!lSiq(e`t<4i{bX|QYT)nA zUr+AGU^>tN1uFueB>6Esti%%0K-7HdE~3O&P)ccn3!2?2(RC>kX(prq<(zySEJyIa z&1Tbg>2@VDL24yH=SOs-0fmyB5#Q5*ynh*T+M`jQ!UYR32Tx9D2oQ5}G-(1M*=;Dr zKF6B@XuI&>EoS88u?&|nFz^k?KXphy3Ya?_6CFV8CQX2oz)k=bMgpSg^n^yw4L#8Y z)XruXNKQ{_G}dQgcb6aTS>S>>UeZw?=BPZ2X~S0{lA<_p9Kq}_U(#WpK9dvpQZYye znD)Rp?%ZovSAL%P!AGi_w3vDP>};`w@t(5e@90p&V??-sjbDPa0sV{q?vcjj7+)J8 zrP3%_dfUCo*@pr(DHY{Yjyq~#IrT2RXV0%WowT2Z?#T7b71zoYW%J#e5#F11cPTU#h0#WTZEC|q*B{eKdO5TPlSk)Mc z&Vf1?Wjj6AMwvF36h<2ysvFMF*1%7|nwE3`*VBbV4+ zXyGH3=f;!FHK^Enn;w1sO!bq0_WD}D+P^~#5R;YI_;V42YfMUQlOL<^i?~#1^+*9! z2ar{gM>V`I&$1G9UD?&J*RS%?=uOyb$$AasI_mYo7)qJ?fzb1-8Vl?~w=klQeaj-ttaFgGo`< zHu^wihL%uLXO1Tw&`kDDRg&t|csq^7EuS&1aa9~-Q(QZfYC5YGmXu;Ar4`nYNMJRM zqdWSrGw-?h8Q|y60{Gp_xJbh z0#UnJ%O&frw`uzwBMXa;Nt(h)P@6TQIR(lNs=K`9#{_lC@76A@jSbORsO1E!JpLH+ z_M`D6xoVBVB+mkYribd7DjmK^#MR1c3G{Ms(kt3BaK%A-=V)<;f&)@;n<<`&b#jA3 z3bRt1DI{=RTGG9$*O`~^SmxMZh}$z^-mk;h*Rxf#-WU7zCru1F+{=xA6e23NizwLd zg|@a8KlG~MVy%vf47H~08Zh!>nCd@DeE6Z(1T1pSDce%I)Pvd{Rh1c;Q3^80h%9e- zz!r|{RtyX>qSL1T>zKG)oM^A<;iUj}6al5kB}x|XHI}m2UyDZ1f=X14Q3;@x*89#w ziUwXo@WADlwj{ddclWwdS9ny!cAJoC;R9&Dim$S+1uwbwd}Z^4mj(VC*%#eh=)Gby zuAsK%K#6?y;w000000xJLj00960|Nm{h z<>ZSXH)XB+sp6jColwK8t(5=(00000000000000000RI306qW!06!`!AS6j-Iv{Ls zVrpe$bS`5ob|5k?GBPePE-@f7FfcbSF)}YQHy|-HIxsRiGBqG_Z(?O~bZ;O<{9 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lobject.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lobject.h.i new file mode 100644 index 0000000000000000000000000000000000000000..4a45114889e489b66adedc9542603f7aa2781ed2 GIT binary patch literal 2834 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lopcodes.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lopcodes.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8737afe1f1d1169f78894f5b672b808daecdf1a8 GIT binary patch literal 2962 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 IcyJ&j3X=(|Qvd(} literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/loslib.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/loslib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..5ce7f189bb68f1ed2b9a7f0f86ace8c66d4ba00c GIT binary patch literal 2397 zcmV-j38MA@0RRC20000000(UV02Vm_00000000vI|NsC0|NsA?EHtjU;5Bni_R(w! zpLWfexlif<00000000000001ZoTXT8Z`(Ey{_bCKRhv~#lsL}1VoB;2spnzAl$X^G zu&yXPS)y$%lIV$4QZLAV-yKOwv?C{LXCQ&7JKh`bxjU+}-P+!U7pKt?BwQr%WH0n? zpu5*SgoFM4*PZ=WorBlV{qd-Kc=YNJaz0_X3hotM;Ydzx z3o;iC=(dj)DQB|CGw9Ol9{*S(*xIfvPF&xxm+z)J$Rx?x5=XEl91ltlJU}Yi&2yJ! z?X{ig7@M)2b|P`bi0`!#_YdO8zOb;s$gKoXJJ%pqsLUf?f6N!MwzTWP`IYatwMn(- z4;AJt|%I z0kkBSHhA=2nM??vXFJ1`gE})QbBipPB#aO>V;L1L1_2aV{5PVgJP4UeW-Z%Yd>j(>V=O?n0>sEq!szkz)1$l4lqX#L^ z5TV-02>Bbnn(>Ye2w9dnbGXWWwq!qME#nsShzRndgZ1&$hshcI%q*BMs z*3m6>kOM*&xp6F1QzLR4-r;{Z(uIUuhVOQ3=<~&cimnu{;cfOc84!Jy@pMGS^a`+O zVOieDGZ#g*wHsC{88@uPPNE`p(rUS>I%-cGH5vUj#D_E%f<`->*&^~xQuTCd6H7ay za+vs<&|#@kLZ4`EqHI&^o!!|Ab*ZLNZ!AGtjHNsMD^VA+!&jus{1s5TT zNKv0m%jlEt9=v?^60K4oxEl2x8+Np+H zdoyWNq@EsHbotK^O^9`hRHgdioTkoN3&_KC;R+1Twsdq?wuiznXDCUXBgF_i_MvGs zhiH=y5b&u+xTt)!Qq;jx>(IcL?!J{N!aFQox0$dmTTHlWVxlT;anZ7g4NJH!3zv-= zsY%#;Jlp9uF;ZKx_-MJ)J>1`K;=NtfP0I~JR~eUUj8%10%&Hez+-lu!7|8Wh^y%P- z*Po9oAmb5FRo+ZcLi`WoQ+LwFMJVh_WhdN?jUUGY~~?$|6n}KvA00 zc)6(T6nh#ZR4X2$s7yM|hA>%Y(>PjXBb==B87OrRRs~`ju5;={-R-V2@`suYo~U8& z>g!_3O^{hfh)2q$}kN^rfS2??bs$dO)~k|?Syqb!kB$jXB5R$Z{U5U!HyVb>aK z<&%Sa6i=s{a`>U_lH09pT<$oVfAJ~k( zxFqpJhaN@UIqLF=uF|i(gWh|J6zTIQNwh2}1~o*rAZMuN8<5&se-f&Qv9yHJ(opoR zTGOfvxuNM#FcnQNE1J6e*ECuhT6IE5wlQMJr4MGS<%9X+QTkw(nn+n>GOvZX_rG!6 z!oKC7z8}+fLdp?5EWA-?V=gw-FdvG?OzO0!1>A9z%wWOFbn?$5LmM>00000 z2W==!hqSbr3^00000 z0000000000c$`gA>uSO<6prklu>INtd;_Pw(Tl=x7AFk$W8fP&kzP_8sEs78?BZT# z@3(hYns#a+A?KWamvd4=$Q2=EuJ)5`-NIb9tkALYO)UdO&+52gBHGD;XCsLRd0{v~3e#It#E2h9z;QDRDf)G9+vS zCgv@%33wJtj)a#7DkS42Y}>zqs9|7U)xBw;NQ)ss4#b8D;NjTw`cZ-hW-(7(rg@@ z;gOlyY}N=PV+}^~O0okJ*w4P_QE!!ubGtjgnZ}mtaq850*Qw)|FV^;%44 zaZx5kchp&kSKa@7C0=c9{pBV8?Ii-ec21%2+yq!<0BB|Op(GNeg;lE;c zSA06y@At*SgHYc;?Vs$Qyo*f7>!h0IqeWb_$7M&P5p*4w(dOQGbB~{wpZP&Ns^Ht_ z^vf5kH(>pr!_g!e-AvQlw8AkKooVMb`XL>Qc6$-+wWm=elA_29-2&eO=r4)PGDMFU z=Y_b0`EJBCEi2Kc|K?)>lctM=UzHIOOLad>U~&PNnU5;*2HzZHmH4(MYR_KGie!=I z^KwUsmoLO<5(C-67y`(z5|>31-{3_2R!#Y@`R%L}`JBE~le84mJfCs5>3n#3UnL@A zWN^nnDJWsucuHN%6gH}wBs>RhmxOIzB<@J_*&?3uIM4w20#=saCIUuJsUJX00}*ln zm^kA;b8n!u)N{GRT~OB+_0>yx)JWP{(_1ks@+wFC@_rP_XkL`Kuq@9utE9M1vv?|y zJE}C#O56>k*>ofpd3putoo6?q-B0dLk&?xWX&LP}Et0!g;Wp^tGa!JGc(I5O6uWtx zjV5_9tn!;A^Tws^MiQHrn|oE4n*e>Ey&oR$f9N5_*Wa9;og5v%zlEKZ(2XT@^rj<5u-z5%Pa$4>ox~NxYd^g$uK|m|-7GmkHn4=a zLfmgf;+M7HGRC}&^;_gjMOi4!#BE+63jw+R`AYn`#C0(&Jpb$E20`GGaZM_SHkfClX%3^Wo41BH zq8cLvgb2YI6fc0Ps3Y+tSMunKLoIHh6I%>f40?jzbC@Dv`BeH_SYX9I0Fm7nC& z4~F1$T*gI_CT8g!)yO7)d%TSeSIB~aGgNyxO<_ahDN@0r19r*(h9T_tN(lL8(fYbr zbVM81mXE>ie{%_b?22REKthGDo8<3U%U_LKYX@it zF#^*c9PCp_Mn55RX~9#Q5-Gr9Z|t_Dv9vv$_L?+og}@z@F0k06OyXiRA(`CB8y+)A zy0(~ba~lX-?1AqGe~p+y0wKt(LjyE5?$sMOgaZE4TBk;2)d1n8$wLj zr8NS`1d1-Fl8-N^7V*GS;JM4GErn!v>VR)_h)KE!m-JHZ47Ay<;}=jkMF|>?}1L z0*Kb;utfBB9nn5I9skN2LE@8I&2k|35{weXE(CBu8nL;DY5+{eMq^KY1e^rCvnA_= zPT=bnG3q5Ux;A+bg$(Ol03B5ws-R9F{N;k^XrTnH0SuB>WilPxY{@hHj5Mky+tLA2 zz*JH(HI#%bvYMckVm;7AxS}q`mlr8cg8}WUbUaRgbw){jrajyw8oEe8c`l&cwHzDY zgEtY9KG+?}_!%B^42}-v5HR&Cj0eCNJcNXc!yyVfn5e{fVE`6K9+B6pY`!8v$P`mH z0~|R`vXo^Lv~k~u`3Iy6I2Ocw4KeVI4RZZJOC8__mH@M|#18QM=QLXT!3|TA$Hwt` zjEZXamZMEleXN@ZrataTVt9jZkrjVv6{0fLM>THf z1z%b1Q4m_EAhLmRku38>y;NFyOFdBP+%X6E6DfSpsZ- zuDxM=Egg8aRva0VL@qQkJc|LJ{Wk|hh=Y&AgZ|*O=k$in=lv&UiRA%Qk^=7*82PV? z94M_E<+B7e3ZWfbz6^*1zU9><(oTay)-!*oEW`x+7%$FVm!^iF88BmmJ=mzI?^lF`{Mb<+g}HIKiC!o<3AkO8~_ya+}Subo})2WtJuGJAm;!fZjY@RtTz6Q9{5JeIQV<^ z3HQ(*^hT+|o28>UNDN4`O##D)yHc!G{)C_ZF%5}TH+K!TQh?y~l{$ZyFV zA`!y`tb8UufCnU8k@L>dBEeHj4Ax+RgU*=P5x3xDVp|p|X(iK~C`uGLnKb5*UG6xA zbvYwVv~3pdi2rpo5HJ4S5g#t+=&gZe3V+>n5Oc66v#+#R0B?g7#*TSs1c6p3ghtu2 zi^HRx3x6c?|AF3Rn$6}F62NoSvLpUYw!o>9tLm^t81>nOv04IQ|cPINF zKJ1@}lkRM4~EIH;?-#%VIGWnlRhJ82Ybx49=ix4JFyAX=|mUj!wU(cU%dGBwss za<4TO1|Pt&R1EpO5pheh%V-6>Gpj<=_1{QRn%xMY>L+v_=24<09b0Xrm-?H)M z9}aagpUQN`gIp^4yeRR_?=#2lnj|!mZ#c&R`^KC!B5}O1LSbZ3r&V&x!a*U9_d@2P zvZ}yGMLGk3P10&MkuCBHV~&(tgtp^F0oF=!1=}`FZWFX2O_w;_1^lo0KG43(OPEq- zkv295DSL%V7Bt8usxMMa82jhBuVl>jUsJj6} zK0d{hCSb?UoS>b>uo&W<>JB%Og_{#ht%SVVk?07#y=-EiNaAjnsJCNQolJ%6GVIsD z;5xiXl;c97IZjCCcDphJc(hmJwA~gD6JbQ(Q@;(t)`GV*g4b$C5)x&Rj|27I!|?YY z39}qOocGU8dS{By=*{M)JnziuAa9h<@$}9+1!#kPmgQeFOZ+Lp7b&FG4j+^>- zE9k$3ZvNX_AKp8&Z>!5&!|etvU$iL&u0XLPh|2^Vx0k}mfbS(9$m~enx6xXuw1%)- zgOd2=msOMjCA|8{x#}f_pF(o(xc7G{=eDd6P5`5$5ihfw;UO9Ro$z0qA-M&HzA7iw zS-GLk*~pEA!rpW-8j7@K0wBQHGLh*%siFo+rS`7UQIk9L5#vhwo#?N&(MY-;MYh$c z)y6kg8^AQ0QI)fRP+8&>gZkEb_av@@%Cz+eikyP)l0zNIuJ}auFTbYMXkrgx&gDii zaH3SrujMiQEm$jHndsq4!FO8Z7k!YeQuy=yCZ2#rW>V{IsP$`;7mvD>&)2o!_{APp zn7I{iSp%c+u$n5s0xc~BscZzfVlV^LYAt3MlF9;(&?b}x)c4LK(?UYi%;KWLX^h0N zak^ybfr;qoQ=K(93HGfHU>Ru2eYn$#j32?-{QTmvMbz3MMrS!@D>H|tzhU$W+>4&*IFw+I#xP@6y zD$`3Ptb`Y7C4!4}=(^stzHkKX*ZouY13sJle%$LF;uC-yZO?Jj01x#T+$y-#Vk&rP zX8mVe>mDiqdHto|UIzrPNA}IR$P-CQ96fUYeEwY2_DnxsbNC5q%`;iEtfxb{i}sEb->GQw{-G@0#)&TBaLID z^^P`ILR)F_j^x6Wt>8@`wd7L_^G<6kAcf?tqGpZydJTiY$A|Ry?fLP++0o$GQgK#% zSk7i;E!eoE>?c1T6*d>wvb{opP&b7QruZPM1^W1CMVu(_mCraaH4?om%!l;zth{(( zllphO!;o34{3vfcKsvh}RswNW_c{=7z-P7l3VQwHr?NRzOB_XMI?PJd%>ShKu|!$1 zrPtP$o(31S1n}5rvnyYS(VVPPn(>*OQWBm~4k2l|9^YQ3*K^E)lIdV=eVdl@1Mlco z0386JM;sZ!8MvMrw)-P#Iiq;vC`;)na$-SPr5jJ7O}6hy3cYwHbL?Vir(it6X`}6F z-;j)2Bu6YR^AymdwL9N}yJI`3dRf-P0LbC-_1*Q*Ed0ivz`4pt<9BLTB^&mPJtsU% zB$Gk5Z-FB|1*VV9z8ks98?v)nyI*$j(!LHU;*6G{o^M!uW75?lLr(}@{~?V{ngZn63ojKQlmJp>DZNJCsEW@T4LV7waV{t z6?mQLYmS=o?o^V$2TQ&GiXv&A>C5uv{q1EwT_%WXNuou18yEMhZl!L#xu?0nY%thV z;QE;(FC0T$e8IEmi`VjnRsav?d=j`MqXYrIdvH+nO^o!}a8 zT0TE*EQU?O#S(L{aZEs61LW|=2E1{Evy<~)!w~ptr7_;__fMM!p?52dVn^KUJTCm# zEIw(3dOaFdB}fNsnraHIkKzm?mUB~u#R@~Is$sE$NEuK@5BU>`=ey$n`SCS*xS6#$ zN+Vhn_A@@AjWO;Uwhq<1tq$Jo-ilUtfmU*RR?+y1!<~8m@Nfy-r{{0%w=cX^o%ijx zFWt9?N1yDsfA;zgoO%C``}X7D?>i2<4+h5v`!2@$k=yLJ=VGqszV7|adENV)4Z_df zmUu(=d)|)OefQkH@4UY6+`jKTu=bA+-90%zbQ=s#ocDv1WyJF4C`c`w1T4?Mzpa@{ zgwtfKN-Dx9m{_@x{fB)JMe+~R4Gj5|LE;ix+FX8`xR$}toHi(h`!lplU#D8K_ z?;jfR`PZZ%Zx-+{iYw7(aO1MfM`?`pAR{&0j~($Njwb(xhD-kMJf7kzaYPVa>T7s} z+K3p9D6SGEZ@;|)Hy+=ELs4&k(|-3AF(UfPrINuT(mN~ zuTcz$q6uh94bB8`538rbeixLk(z2>kO1Y+{X|y6cLf7@twGZXhOdcVpdk`$&=lsRo z&Q&T2UWi>S{vCUe!oXwE#wO2pZCSjez@G$LX*hRZ>;xiq@3c=n$16PxHj$Px{}MZ1rK)N39%%BwIR5nJ63ST3l8QNFz*!e>Q?-&&ifm3$qLD|1x$7DB=Mo%9 zAFLesy3((wsx}AhU+w7&b+5}y=GWzM+FSsn!$oE~s&GmN(+y;(No!ZR60X7ust(hQ zJCrz?S>WONVz1UrH7ltZP)-SL|qx++rU=(%55muP)h!TZ6h^=e9 zK#2pXp=HgN7+Q=${7>T%Us^-Al?uVo^HDy#SNK+Qx;XCE>qAT5c|1)=wfe9D#7`&R zbEV!cg<>cAvxZv$L|{{a-Byz4jwmJ+xEM8O*cwiis>IdvrW5=>PCVfoe|BXne5P_C zkB$#}|L7fBwL^3RQ)$L8+@}0zn%OxEwZPf70)*apjDQ_=Vo;+5Du9F=Y4%Xh@fd^? zYgGM?VA62E9ZKbdQ`)th(#aC=f*E*YzhhHH$6k?1roD}C+zEqeHtM9UR_VuLxs{09 zEA^;o-DI?QktSI??&n>hC=CoK_3>vzbd3=xd7w|n9_!j14JBOg@w{0OCL3S^pow}~ zFD0_-tIQTm1lgjiDhy2ci5F{m4lR^zMp-)xom9+~7yS4eZ8;Ysow(f%Tx#SFBYDFw z8x&gOZp)-o=;~>esj1X-p+;~MzLsPqBqa8tsKv8gd(R1CyFwJ_jPZ?WSq|#CIYTqU z?8#9Klerh1@cuEk+*Bn$t-Hu9DCLc4xlX&#nTfYi{zRT7crvbR*yk(NP*UA751bF` zWN)HaXIb_Q9IkYrk`yi2oTKgMSPEI4{CE7tV}&TEs+~`)D?sLDNg*dT7*F(yGosw< ze9CN4zJh%zSaY_?K~NNbeAJJGyh%hsZSHnK2Nq>ZR-2e|&_IyCY!-E$r(-hZ3*>x;KD&AAY!F=Eq%s{_j5#r0KtmM>F^veJ#M&KR~yQVM`lSi=hk&^x}n67FR zIMu~lT=b?w?^NcT(XjE3`hsIl=NWC16AQ_4Yg#{d?*9bjcq(qime0-o2=P%TQWOWmWP zBSg*0C6*&e%ZW7A2#?s=#VOHxVs*|g>>L%DZx9;W=Qs@)+vQuOO z1Q`;>;LnrOXu%g52@TTbRhK1)sko{ti)cgGqa{_R1_^_QwT(+d&iaC#1hr#tlcR8L z@~Rm$qa0&=u<>Pb8)ravB|4g!yxEGnLzhC4aA@&wu#%1~oK)DI8r30}yy3%cRUXCT z^%W6gHx1*)WA{3O&{O57202Tn4KS%piQW$BLdQbKhBvN;XIewWopf)s5DBF$KXx=nDElZ_vDUbya}q0Dl;bdK!$N?m zbmon*RYONTMO69q6)v}$04H8BFfB|PFRId$UjeP&R@5Mu>g{vH$iSlW0qY7nVCN@( zj3l6LWk;1@$rUC#_@B@8-!Gb(RGCvur!3cw`lzoo!6}s>c&4crWI;E^uSK2(btr~@cd2&{wA?o;|skf?nsRnm1H1jg{z|0Xf?%nbj;$lDL1XP!R%@!4Hb~qg6ayU$(D!Mzvit3rH!+q>d1UH#sR6&{>{^FDqRyEl)hO)dvpd z7VeYD`@5~zQb)N$TdG~VkOH;uSgF28$FCJi?apqu<+o^6#^NsLE82Hy(=2e6_Hnrf z4%^-Ae;bFAH>Z6;V7BD1vjVNsQ4|&7j{*ifvgQ!|mf^BfPrnu3cRzXy#K%XoU)aAs z`?Ys$8_vF~-9!{H5+I3(k_s{$6{!gToYAu=IRc2V(ydylLZ$m)psD@B-FPJ~l+9rM z0II*}Z*mFV^GER+U+|YNs|KRR^n<(d3uvTxmelLIkL4q8e+(i5P@1?@sAd;0!8;-{ z@jC-ZJ$M)Ncj>mZtQd|Bo`g7zL*t`{OO0W#KMv?7!li9($78%HNBui|VJB0c@{KBKk#i+Rg$H$w^RP1?1WEUX%&P znzXWFnlPgG8Sn41ACKD({cv1xOPUTKkSwKi;`2{7hVeL(?cvY%sofXr8oF=e>Qg+& z9M&~MzSnSTE?CoWw7P3d#OAX?>i{nCZ$GPkTS~vKcyzcdtl?=+WQ_VRvxY0Bs;1gO zp$lNRA@X{Zy&19&gMvPEfiEn+Tiq68&A(n2x>^3ZWePp$31upR-`_3^ARC9P1FUAr zs)lIFs>?zeMaD_9kzv!Kk~mFLS&u1Q6}>t&hdyNV1%s*9Va%=Y`KOT#PHaagR7B@6G6U{E{cHZD^x?0?<|+KsD+xQo<*TkCDgAI)KeN3%{eGV z5;$6_A@`(rc7CFx2;Ut%pbZAPg30_}L!b;=W-9Wp%{fE!0T02VLqc|XrRxhlJk;u- z?r70ako|=qnWC49xpM~)OTfzJH8Jdloz&5}b7l!vF{49YJ4 z@)c7^6{l08Dks4TNO3s$crZBZ*~CcxK89=ekNQN)JGz6Fb@`6Tc;D+8g??T~C0*Fa z^?pCeLSU^nflfI@^rA8h-dgTJ_WM=Xn;1IV{{iOYpj1=IB8^1=75 zp3lzxv8`MLJ-m7LeKXWAb}Hk^8mFd>{kfaRCpW=gfblV&+&^|RoH|O5A#W`qie#t? zvxwD|T}M)Bche>Ur~0Rc%xOzCS}WT0Lg)l@gA_(DWO;vc;OJbYt}e7@Le zeX$Fnr6mC`U7q?~F;!tuw&Ucu2J=TJnyWE2O3YeoMN)O3NB^{kN|f||*lMpeU83j5C@1&u$JBQYM~FZEeC37$*?0M zZBfV+ITY8TmhA3Ql@s{iJF~l#DJ8H`J&5G+oVlJ^c7sk3z?)%u0!0-ojp{HDS8#mz zShFTv;MN-5|nQSv@E*&kc-9 zBN7B5p{V1-yc2XgojsAs6tgDUH1F)uqmbCL5J)CPog%z03b7PMALg&y#&UL#iPzt>G3@1ybQc8Cql#Ipi> z5ZCLrbxy6O6lA=_?TUt@^TDUVdE1rsu*r7Y)ux91Qn8l<@8^^&&EiieGlQ1gWure`%!#U{z2paOYl zceoY?{>@PWc}G7ohG#Fpv$)U>|JbBYb?p{rRkbOtsHd|BgRZpZfh*~elMR&Jc={>H zdT}Ow>TdZ{dr0^L$TpVOm;%P+Od>^3fli${N>pr0N?Q4hv=qZ!tT^*py0H*-C*2Er zbz>cIx>u?sM}hA|QY(ern1-HXoHio)XaybQ4(jAh+>8ggAJd=0TH^s=flG3tw>IRf z-~k;+E9VO7%qq2z^R2WuoCw#RQfNmgXheJzxPG*;EDsNkd`Wct+J(;19?oBLngKvC zD?BHUDR(};d_QIk(NDsu5(kvHrU%O1CQZ$-gV@J^YC(f$CfV*JTbmtcdJ$`5Vl_t| zI{Ue+lD8a>U%=gcy{y2!Z;AE33EBv?LYZ>Y7_My~_VOfdg-BcOIGIq|nRYgxk#gay zaeGCszd1q+t)7Ke&9w7U5tzERA`L%F@fc5R7DmR2A@eSitR!#$A)xnyMd;`9w1&+w z|5r5W52u&?Pxc!z8QlEs{59`APiisem2*kEz#A%^c?~Vaq=*%!-!*|*OUc3=4;x|g zW?S;bWOUZ77s>LEsat2*Z)-G!KZj!oK8J8QtFw%!!q>0^|Kn#rvMgF+^QY;6bJ$~b zWS##2^@+B6000001JM8g0000>000Qp000000006j00000|NsC0qmD+K#O5Byuc2KL zPGh4P>02zn000000000000000000030000!0000#Dk>l(Nn|=8Y;a+6b7gWaXe@Rh uF)lSXE-@}KATls8H!m?VFETeEF*7iv3*tf_z&D5G_Y>BM+z7&Fu zRqiCEVu5`CKL5H@ulcSvcMkco#5WhZtWiV0MgR?56GEI8y>Z%e@w7OUMFR8)*R3aMf|PkrECwJ6zJl(2|$aepUb zt;%5DXYWVL**F@{qUG$@Nxu;hURqva^Mp7$CfLYqNpPPzAw1_$N{iDk!;z)Mu+-cvg$X84`s08?%qGIu5N0>jd$(1VtHCnE&-<&{lHl zOAJpBxVw=hh=5=;zQ*$O9X7a?3;L0(5;~XJ9XbLIV*UnD+mnNYzNg9^BMvGsHn=vQ_!VijzMIi zELB-ySGT;3zyuQ0@shsw>clwM>hWF*VVnkY^5Ev`W;yu~z(LAq)8yof%_KFwi6vzX zvc9!B@3Rz+h7{G0*aJu!^w~vdc?qML+E^2+0}@J+N?W;kd^h-CG&IVeHm@!LqHE;Qzo@2c}5y1i^=u%VmS@z zXnOi?Iz~vYwkk^?ysvsGmZ|0$!hH3-Jd0AGs>lF%CwZN8nH*xqKypegu?L^4oB7-) zSr{2u8kNnzc18Q-R;kjLuJ zF|&baCovz#Ahhx*7?!%~7-Ny!g1;}3--)D%+eGl(0@k1lRaCR#^Q6R?0xbtp@>g91 zXMc={oBGD4!d4>D892x&7&XlA1`6#Mcl9_nV3K8l>%CaP&IGd?+12`Yc&wV!5w9xP z7Xv7@QYoE+uW#|tMH(yPVD}g_fj-L-VBqB72!x?i_UM*Z+ZMq>+0ryq&q?@|B&_Sr zM$r6w0lM&wzBfp0G3A+6`#wRl?20zGtrcJ=fe3=a5RcbM-&@fTG`uAb*!tud=GIFg zJWjBOZNLv?w>1|ax6K}h0osvzbimWqaD+{)$5AG8awY(GyRF|vgG*1!Ucw`}mpOrOf0Z`MxSP^UC&s~9#)O8LfNJ}`XwY#UUusH+1}ry zv0^w8u7lnt46xDAS(?P{9wU$B1~fMjaS3c7*zX}TC4urH0CoTlL=-p5a`B+s*sZDP z_Dy4FY+RQm?2=SKa9}O<1y*hF?~k+9Wbl5r>a!nbpC=#S$<3f0FK9H#p)a`q_WxycTc3!PCY1h!?8UY+BBR2UUvLB>TPcO zNq~VmG6~?h;JNe%HIUNSSO?>Dyex42wIAG2^Jbbe>|TfhG^ep|EfR_HqG5I_@ZQ!| z3KX8=-MU4-7yPzO(Yrd~nsOXM&6F!)tq3Z_gUN_zlkkJiAy5AK{5ix&PvUxEr@636Ef00#!KD3b%4Y529^bhP} zU<~}F@oMqqyG{EBLv4<{)A4Gt-=Yxlr(^I_^BvBo#Na*+0!lA<v<&^VSbK&E{{u z*dGA)zY{cPIv0p120)*QGlOw)&BsB*0$UL00007 z)Bpeg004gg02V3$0000000Juj00030|NsBclI<36`&~0fzXvB*dZTfRQ)F`h00000 z000000001ZoMT{MU}j)oumxf}EiDBV&lD?#oZ^zil2pB9oiYU@J!3OHLp>t}BLf2q zeFH;%17ih4Q!66_D`QKAqWq-PqLO?C*NOrK6)pw_P9-2V0h*+wpx~oxm*k024$200000000vI|NsC0|NsA}*3*`czv`HYp^A2t zx@qMwhl5W500000000000001ZoRwE?b0akp{=EJbI+jXoS6&w1!NI!NDr17zcTRRI zcBm`3tBI_UXGAp8)JSq-VE;Sa(!3`jT)xE9>KCc?^wX{L@nAeApD*LLL>fyiKTA*c zWO6q72bsKi^VRvA$@!bF$QNI~o&59dm*0>=Z+T%gxp>IQ=V-Z*dP^l)qbYu`IVW?S z9}1DAmRxBo7$-sz>F8NH7@rRYuf5x(!p!^5{fqhP*F^}n3K=E*=HSz-u}Xw zMQKZDv!38rp}pZ?U~J)-#SKJKtK^p~pAvFDCLwC>}Ing_k__G;Y zsP>rH;cE11c(giwC!@rUyg|Ve0Z|TZ#Yz^`7w``)D(NUh;t#f<1dh$_h{-8r3R0U= z6+`^ZC1F%TboeAjXRsri@*>!D_H^-|&Gjr=Z)Wp<6GFZO*VW2*v-NTw&6m-7`O^hy z{=V+3c;k-Na57%q%%aQXm0!aR59}f5cynb&;h#`R$kuNILKgE6{%Xj0oKllcK_p!y zl>PgJC}(&`yK)&o2-C|Y&$zPwECj9rJc?iWbnvO|dFnHT$P#L&i;P;K6(nV=oh8(# z2vODB+8o47(D(aV+q-2l&e^m)zACtJ(wg9kKje^10BDo3a-Hl7ojnx-omeWQ z2TniTxKKh$YS@W`6O|iCUqDjgp}4KQ)~4&|d!qbq_Y z6D?KzdZf9FgjqQnH2>DJ1HWg&%p1*?p0&bMhiVFdGhqUcJpxp45_y{QplX93e%p|3#C^#hh=QP00vriwCZ%R@eVpQt z9>k#b%LNRQ@l1zHA!M&bOvWyr))fqP)IA6(DCor0QnbFU93NK^qwT?l>w_!4Ple^v zmONqpxM3Uqr)ND{Y-s{kT1o&Q9HXhvd(Lw>R8np|*GBlQgPC8$0=dO>lsjlBq0rh^ zW)e6MP4EKBD1maluIZbOz3V@Z8QedLniTZVjfs-y0^u4>s8C&#N*gk~1%@u5XbS@n zqE=@D3+m8!bkFHs*9S@hFbo+6M@(`=;;3(IGlv&i+EcJEi4y%({(w%4>e|8AVjjF) zZryGNRgM2jLgHDj3q(n|)Zh{s38AJeZ72k=0muV~SQ#eOGM+Y4t1XoXok!&2g%!}G zuPqPbxZ{-@E3z7KRMi4>(RW6fbw0Upzi`}+qlCpguWC-;lgzOclK>TbyXC3CmdR2c zJIRk5_$Dl;bsxfBgTcHAa%cfdiWtWjH%9C+r>1RcEYCA1gE54<1+*w9X(8<4xT)~@ z4^=tmR0&pf1%KginlNuTl^5CucIQQ*i!##YM`TOV%n8%LG}ZhP=x3Y(L<4c*`b`d2 z#O+i34jF-8c(hnM0Nkk*>J9?6t4`-|R+oEnE@PKrHog+anf>|d<}%vM7VG~7rx}Of z0l)|$Xrh7i{aiuc8_Md2<i#7ilaM=84)%q@@=B^DTWVCx+s5XQ_@tbLj^F&DeGU=JF0@9m%;?YH1x*+ir_Z4MJ#r^$g4D?b=S_ndXPVABoD*R z{NU}IHwPe&z7K4F`6}v?8Y}; z*9hh?OS=NQ`Ls`>X-o1E_+FE|C8=opNs6~=dGntA>cb-qQ&wm{ivUkRqVW+_p9NB` z;oHE&LF|B@{Z)5frSv{wdScB`k6uB81b%>L#t^tR>%mOYq^hS#PeFSBn#J z6jrTiP4114;ZfTqs_jSpXzt};H|vY*?`NA?9nSTlxlS+_boN~xCSMNp!_C!vv;1&X z2V$}pDSg?=X7=6cqV|yX9ON%M_;~$c^PzT-_s_cj3km!9<80MrYu|FAz=ze|3Hk4! z>j&+xZdNPu`|srcbn7qquO#RF^~LP_1~-_V8n_+Yssn-7T3MPEb{h_APzxFp2tVB8 zixQgHuu(c8AoZ_32)>N)dfSr{{Je-1zc1@(*jieRrY#%)!t&bKAfHk{Y5QG$0oH@p z(Cox+F!%#3rXw2w00007d;kCd005Ez027k{0000000Juj00030|Ns9hdSzD&^9PNa zaaw@-QERA+*9fKn00000000000001ZoF&P<3c@fHhT#Kl74P92It5A6R6#4c6bJDt z`g3RlHIXD$FW;iWv%D`6t%&HnxCnv#)>oKfY7)zF`+|{XCkts{v_2?ZC|#o1S4LOm z5y7_{lE?M)M4l0C)_-&dW*6<~E459Pvb@q{+?ekyPH}b9n>FNG^XJ*$g30$ipMcA`5&%8Y|>u%5r0(gHLpF^fip32o})Y-z| z^cNWPdS~7KpgR~q|HFCz*YmRvkgJ8rje_f!4ZJ7IDcgVv7nuO>ix3+PVU~f#(vXBQ z&O{809ZZVQXA>ddN^N#|x=IY(DU(J5QVCfRo+hoJ+iJCbOl6c6v49H~Q!++jES9Mh zWt{V;AeeM87Xwl}(~%EfTL3p#pV<)v0m_q5CqtB4Ok26YEJ#F_DL*X1yYVLe z$#@lUJTMv|%v3*9h1t+YHGo{0B9}veZU9jzr83}xiVN<{%@vqD+=^VImoD142w+4h ze469y7DH3HhmpIeJB^5a3dbx^{m2G{-VMo?DhDqe^@fmMI6Hi7xBb$?WBPZ zsbhS(V8Sx%fzjyL1~hbfeB7s^u2t+MRVjUo zjBl_}IyI@1H8{~G)EXzsi$ZPY2;wC_Rn!^1M)OO5jo8s?S@ER*O&JdA0jcN!y zq#-*TrASF^A!d_9fX5vm+_{0Q`gS0>bVjK~y25ec5@<}G`s-DGJ63Itn^HwoUUKFKO|bGrfePNUodqZ^{Y9~j1jz6_OJ{wh*s!qI=jEUyJ?=`E)n^bA$lao z6&h`Jp3&`o2e={GUepZidA4Cb>-qj;MwC1Lqjzk{DP&Al=vi{UwOf+LAeFq@i`ntM zS_{b@?`hhEH2JRdP-&qJ?)(7`F~(NWRu)>c+hyNN2{xa*mK8LZKMxwAz|m37_lpq_ zM{e(C-9g2H@@^<+hn|Ch+XhGvh;sEDV_`W$yTyU%NW)R_gn|C=XdK=-iV}OZ$2hg7 z6kF-S)1r*aL24stPk7mQeCD_NRtrmI2M1Ek8D&bYIuI*)j2?)L^c|2Q`zc1f2blG% z8zk$GvLOn_Bl1E|C;a5weya7Rz=Z3I!;&L`Kapn1#RbOWCFAkHZ|^5WKAEA92-ttJ z#AJsG&1<&t*gTe8Ysk6JPvx2f1wYhxnUf%w>MdN}TaDd<3VHbKE)3;XH#4j`#mID` zlSiYq-gw-~l`#09C`w%+ot|Ghur0Dq*5M8oc-4zAt~Wh-NHxiL);plk7V9Bb!fpUn z-69R%HP^orJK_j7g+HsQ@-cdh$8a<)Y| zfEp+7jjhXS-`%oB$!Ul7YQ<`3A0Sz~lX3BHi_&sk+l*5gW(eVmZB6U-`7ph{|9CmO ztYPh%)(t-btHH_FY_capZc!%Or&4u)b&m{~{>VKC+Z00000000000000000093002Dz002HJDj+0D zWI7;hb98cPZf7oIEOsC=E;ueRE-@f7FfcbSF)}YQHy|-HIxsRiGBqG_Z(?O~bZ;O< IcyJ&j3QVH6r~m)} literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lstring.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lstring.h.i new file mode 100644 index 0000000000000000000000000000000000000000..16ece65d9e8390c9bf19df299b5c6ef538eaa5dc GIT binary patch literal 618 zcmZQzWME_f1IGCb49r>(HiOWAC}_*CVca)au_3H4Lt1d5LcGKF;vT3PFjX<9byA@J zZ3B_k`P1VILn}IbJ!b{UUGwyiW?mU|)H}Mf-E*SweG|6x>ynl?|NZq-P2`qGM&;+N z=bsn%P5#tTY!QFLGUK^)>NZc?d(P9&tV^((8MAzHq}ATGH?M1~W~U2hk#E5VAujFumgh3rn*FCzJ}5|_Af9@W-~K4`_Nbm!LH?8V!*wzIzu?Oed~B21<9 z$Yl+y;HeWMWM!U~mWWL|_26QQ-^`%xLWxVZrv~-+v2Uw5bcw(19CyD-_q|HLzenXH zt-q-*Te|kqHI3|qyY9*2g*SHZxtO76bnJfLl&u*O)~s8DDg?JXpKCkTc8EYbV~%m&;4cpZex2?>nP4Nb(=F$laLlzH6Q3gZ6~j{m#0bMgE@G@9LlM7tHVf!ML!jt>==|^F}9T{@d>Z zWCIp5m;{Ahw7-)4`zt7pKoJWB-oWV91G5;Iv_Ui|hMOdmgSlc3&afzBp7Uq&jpe)9 zyFWqHz)5Bx%MOU`wX_seJX5R`a*9ieGV{{)GIYum4E0Qm^$hh46^slF%=Hb8^o`6F b42`V}jI4}I6^incQj1FR6-a^ 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 Nx`d+FegIOcVSND!07n1- literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ltable.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ltable.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3b17b1ebf7c527c83cac0e32e4ca53d4f6572401 GIT binary patch literal 5342 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ltable.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/ltable.h.i new file mode 100644 index 0000000000000000000000000000000000000000..edc216fdcb013c99a9585ce0c4ab5bfda8af14ef GIT binary patch literal 658 zcmZQzWME_f1I7~!3@mdXYzCqKP$1iIL8&mcYxaexABs6WSv^-g-(Q2O0aF!odV>$< z-Et7HJsxk!6_^@*MMCN61doZ6OmZg*h%cDFYLnQW2fAruYmbY3`Z{;3?uN?}T0b}Z z{VbYA{MjpGYC0PCnuq9Sp=l*RQ_bvbZPww{zUhFhk^00J& ztMqD_r%YV2YsGZvzpRmwS zdB#71Oud88%WC?=CK=psu-^KeZT_x18k?rwbN0P4A!TZd`Nb9%L%UapDx3SY(^Fne zT`p|I75*SzEB?i;Q`>jd%vmV6;N*@ei);_E&Yu*1W5J)#_l|AjZ#8@rur64KZTGtk zm$llQ@>7=GOF3xw-#H*6sr&S$58as)%~f3I8GZkE=CAq|xnuv&90<%we|M$qnFzno zslvY4Fqina`RVuf%&IuEe)X%HZW?!9`Aoc&6a4j;eRchr1)D7H=j_N_YG|}t*)Yso zdRfdL)>`u-O;BWlQUDNm0n@<(FpGgn8$^SW!Y>_PzXR_IKDb@|KGoy3@{yBqS;Y`F zaFQ9wvISy0EiDBV&lD?#oRY+(oK(FGoiYU@JwpRMLp?(UBLf3-eM2LCBXb2qV=DtA WD9X;ZX6%OPuH_E2$NtE@=0gf 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 Qq|~C4dv=SK%eN9^0n#VL!c@Hpyj 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lua.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lua.h.i new file mode 100644 index 0000000000000000000000000000000000000000..12390cccc48e9f1297f9584554ce4316837a8da6 GIT binary patch literal 3791 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 FTjXk&A{GDu literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/luac.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/luac.c.i new file mode 100644 index 0000000000000000000000000000000000000000..a11648aaed63481b8890b91a54a9478313d8f0d9 GIT binary patch literal 1896 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 C3Lb?3 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lualib.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lualib.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e63e85546fb434ae761b6d225341b8d4fcb992bd GIT binary patch literal 608 zcmZQzWME_f1IB3#49x!^YzCqKP~htkx%)N8qEiif^K4kNyDERqJ_S^V02OmuCkOf; zG7vaE|K;)>JaRV{Ft@%r1*D>qwV75IvE45C- z|KYDa?^)spi_gm+Puu#aX}TA;*u^eC_kY<7*uySdU0c~$DH7aSChErRI`y6SE&lzD z-v2kMX-TDvXH31*z}@%Ruukr11#|ko6_zpco)_Fa5UF!NYeGoV)7hUl?7hb@=htaZ z-#<&VY|k5KG3S=-`NQ(~)1iW?cO1B%|6B1)wB)O!x%j-#0U!7;|A`1@GC93KU`Ohn zDaTU{_kUyA^;Bo2L}H51t~c)&GyL3ZD>yai{nMBKWPp1}1F~4T@MjH)F$vtY@tbCeNQgC7GQ~!b$ovL=Bu| z2C{5{*iK7JLB%u0N+G8-F()%gFGHtH!BEfGOwUlyP{GK+z+B(ZNZ-g@!O+;sz{twT URG}z8DYd91U%|DaKtY8I0Oauek^lez literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lundump.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lundump.c.i new file mode 100644 index 0000000000000000000000000000000000000000..ab3df668c8fedf605e61a4b0635e75643d808fb6 GIT binary patch literal 1902 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lvm.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lvm.h.i new file mode 100644 index 0000000000000000000000000000000000000000..593400c606d89d702efba3e84eb0c4c7a520a0f8 GIT binary patch literal 648 zcmZQzWME_f1I9xP3@ptMHiOWADEPC$Gu$L*Rplb#H*-$;XYOR5GUo_X4VbE!b2QL9 zf3|~wU3vXclRhPf6J{FIgxu}61V%+Jl1Z{&?v=rt?Y!w;X`;i%Df06p3u69c^+$4M zK9}Bi{LD9*XBGvPer*b?L(NOIKkR1y@cXah`ufYCYd_?*HNSrNRrg7iUeT2gA9l5Q zALjDn3!RpHQguzmoHQ?q3MH01ufM9DpQh=w!myh)g)8OcZq4GVp3+UNUPlgDxM{w= zFm=W4QzfA~r(F)T`jnXO&0wzjr;}vEP?*ZFP1q?mVcyE6qC0M}op!pjrq%WOMUJMM z+cT_Y+VvftZ?#A_cbC9+khP;hXiTdfm6&OZOtHw|?KY;M&zt<><*;dang-e$^%aynB_8+`nvX zkgw0R=C4}rvAd$LN>=r=+xnOuoLyL# zENGqU8BkNj^ik`PP(Ra*yIPmKcTPDfskgMpa^9jvZhEslX=4+L(&6wnT4F)(R^Xiy^9{hv9|M&tCWHpL4YUwYmZE93N?1W^MgnSm@zAhy!d zQc&?su~Nt>%hk)!DN``gGu1QHGgL4#Ffi9QG}1RRS1>fTGBC0-GF2$bPf9H+$yac# JC{R%00sv^24Eg{7 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lzio.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lzio.c.i new file mode 100644 index 0000000000000000000000000000000000000000..23fcb785b471a19fc854dbca253b25624e0a0204 GIT binary patch literal 910 zcmZQzWME_f1EymP3~Uh)HiOWAD6pNkylAOZLM~stnUJDR*@@)`F4RHQfT@Z(OG9G) z7dwd5J`caMBaK-kYE|Ln+^w@?gN22!xIFIG=amp0UsIfvx=Rp^BkQj43!xL)gcO~`#G@NmzXxa^NR!U|%wCMrZa+;e-p^{JoE z>0e4IleTLf(qt9*RJbQjU`CRf%BxLbC(9)7{g0V@|BfDe9J|$(gM5>^omRA6WQ<7I z*lwZ~w4>dSSLW;@vmK|}L)AXXylFozU0}}lXCs5u#)DHYt+&)YnN@mx;Q`)dj@t#V!O7=R_*an7Ong+)!1V1{R7@93DW0{ zckJVLuBg6z^@CNx0=KKzgr=GE=lDESS$g5Oosabjr4{Q}ZGIlqzasbc)|&|?MH)AM zPw3jCGk=k(=&sZ3(~~#7_`)MuaC*M)v@M>ZmQ}*vvRDr6Ie6~!6dS3tjB4*3nx(ow zNd}*A@jY^EJ=gOC#p3QKg*jMFe51dg`tEzD{It#gFDKk$>(4Ls@Rd{4?6VcQ!hCt< za?>4Gl^QReVt)H#Q^d0DY4a+0t^0Z<8J{h7zB$LBj`s;C+pY~umKnXe|NoBv^JfY^ z{^mP&U9D0`zVG?w>tOKsa&wc7Iv&xw-+dG3eEZZcmaw{Ee@>te(^qy?@lB%uAwUe~?xsFd+ zo%?6=zAE2u8M}KdS6Z(1<5?{C?}LO-;DW0^_gKhl1-?|<{%rG_05j3pg}*mf9Ca7l z&7B&rGtK#slYDml!T-PhNz8G76cWEMeERkM@AUPiZRh*&=B>lBw|OoW4W1{(Cwpqm zwKcQ*^s(pjjeo3i^@kUNk}@d$1AzxH7sP;B3{2V}8k7-sYsM*V)D0{0oN(otp6k!Y zCOdEbhNyv)%s`ek5Zh>JDX4g+SSjRGW#;Q8>y#-N>KPmA0ilACfq}Wcp^?6kxq_jw Zm4T6!k*Pvaeo|^tNxp(>MS+3}7XX6ei*En` literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lzio.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/lzio.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b7062e47d46be05d5e0e53c95f07f9898b8e37a6 GIT binary patch literal 869 zcmZQzWME_f1E#qQ3~T}rHiOWADA*XgRA$-ML*FxtnymN!ocQnky*($PYQR**oZgV! z?Arzc|8o9!Eq=@HT{>&YnjW<^$=b3am&C(o$j5XEg8v|>-GQlyOiB!LS|_^ z)85akez$Y7pR-&MpZoQfET4Lf)K^#VKAwEpa893Fx^vC(`H3}lKTGT+=Qo;qXU=V0 zJ)Nmf<6ZUC)JvyCywaCe=$-tgpc*sl(bZMUr#44F4pDNiQu~A539YVzw%73ZRunb>?v)Wt^RUS#$kp< z9QMuJwh|k<1#4RSCRe)`)|^Rj(w(7iH1&B#O7*F{Y5Qh>5WDvAK=xsg|K3|CaH!I|t zS4jAbAj?#f*v7ZV0#3x`XKs0|7I1x5i;{2cmJ@roa_5?_K6qBEanlKr)McqDEcNsA zWEb?eT{OM&{;J}=Ia=KR8QS=6bb(SRC|Lu62QYDqfLRPo+8`Q~zGFnT%!y2oeb@Ho zQQ3X_$)2;6r_F?@fs@QYmNgLDXlW^^c&1n>t*PaDH!S*8R`L{f{}rNxxS&1 fzLB|tp|O>Lk(H6DLQ#HFYEenPf@?*Af(jP^!s>UI literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/print.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/src/print.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3dcd05fcdfbeeec73b213e5db2f3db522b93a20a GIT binary patch literal 1984 zcmV;x2S4}#0RRC20000000yuC023_$00000000vI|NsC0|NsBfFE#tBcKi~AXI}HU zWefQ{qM#{+aw0+gzy$M8$LLO!1-xL`x3|6|kLA zh6(x5R7^72jmP!Q|Gn?K`PxA6t~0&40ruHv-+jOH#>0lxXpkQVcAJEe=d%M#dm%>$ zCnw~6tM&6?>*VnGh#Vcak6Z2530Xb5q`wZyk9dgl$?`LEtiX0CLKDX!y&(J?c@K|_ zi~{Ca4)J`lip_&Zsc|St?>ygH#kNB}SnPA?96X*05M{O(ASAuB9oO?6JZLSfd^wzT z7CqypFUXNswzG^M4jyF@3zmO77TW|vuIL6D`*!>sBA8z@M$0Z^-(p_i*FcBaf*V^f zCf+|z;3{jirYNwX(rm5flv`tPp@eD;7*^m@MqUEXZm0mMl0=yazTr@E+l0aAL&}^c zs|I0ImA*(ML9ItKY7nYFIE=DLfxT0SU>l4azW zPp1Xv-Yk*KO3t#xSypn~634CN_$7{C$%#swsFK4<99GGBDRExP90<4>uUNb0x!_>R zd5RMI)O+w9o5xMHRCFh))oNK(EQm?1=B%hAA({)Xw~k|3+d7Uny-N7M9M;#0Wa?qQ zn4mfOr>@-NA|K#qUJtY~CB>=+$RRT5567C5s!0Bi(Y)iSu zzPFOml-wT$v1=H^erHsWmoIo9$Ry`PW>M_Oq)lYk1Sjm0F`8X>`!|IM1QTp=c|Fzq zOyZ8?lj+T1bOp!7DvQidP%Tvl^H9RS!v@Il{eY22GYlP{K>y0EJ}2lMy>81|?k7Re z>yEhC&PGgxU<}|Rih0k0n}MoBOz=A`>Cn=Ags|77FfZxQ!kP{(Eb7q8t6C68JRJ|* zg%+=HBSb|Y=vV#e!Wj3Ai@xIV1jB1gggZA^i;e&;Gq5XwRtEM&<~paY1(+5%Ep4oz zS7J-UZ^hNZB-8V9V09Zx65!@has)~Ysb?)UC*9TUIg${E!o-p)_V(wzqy?Gv{a+}j z$L4qugueOg(7Rx+ip>ucGQw*N7tep84|<($uZ^oh9^`<@PbccZ*=~CD2i*ue(Zi_F zl^}aC`KT{}--RsD))&PVd`ttPMF9mt&=JHX0cyziwA4swWqGR0XT} z6{ZHFm+MWp=DWC6eG?V03gCkA;`i&ZT5=nGLo(eK{VGH#D2D~44~@>n$8u=y*(t$Z zUG9qRPOU)-Bw>2)e=L`kbM4tZ0dn4IS%eNMw(hTkpc7#w+De(U%j=YUsMB`c z*6Q{dQJ~>^#i&rH8aS1|)lp(Hh^z{}(j-ztt?>z)c*Mr2oy*Ur=Yyx*^j!&ZNRw)1 zqJ~S8G7*w$6GfP0R83ek(swIieo@op;#pNZD8P`=jLhd$XSxbl`ZH~~xRMive0ax0 zF2$=nx_E&_^l&aWL3Gh}tOCnirB_>NHK)tWGj+<{ zSlA6`KnI#iMdV5N9jf0L?P*oA@$tSG5}yPuGqorNT;+pfJ#3>+zUbVY?}(cNnU~IE zn;pz6k8eVmZJ9DeuYHdlsjCEQxWoS+Qy?(Ox1HoUTwGLXdNaHi9l$qEiab>X7_5pI zPNy5V+!B!7-)^FCmGK+e z^M{!?*Z7TCj{gEDhp|Zj00006umAu60058x025FE0000000Juj00030|NsB5CoD>G z1jX3Nvni(iiq!F=XyX+C00000000000001ZoMT{MU}j)oumEB+EiDBV&lD?#f}+g4 z61`-dG6h3DQ`1BRBLf37eFIZ{V?zZ)V=H3=D+5!7oQyOD*NOrK6)pw_#{EEi8)$;0 zLUCqQYJ7=8rcR!1NwKb7NpYE8PHLVtP!W?W1T&~AC@3T+7N;tx$Hb^ZElbl-iU9&8 SO>2duqSVA}Yc2qg=OYibxw1C^ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/_r_e_a_d_m_e.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/_r_e_a_d_m_e.i new file mode 100644 index 0000000000000000000000000000000000000000..3e54e1778b9b908eed3c841a3d3767f5b19b4cca GIT binary patch literal 630 zcmV-+0*U-T2doFoON*4Mm85j~Cq)l^=AAY>*5;0*^2|Mis`OdCkFOoZ&p4yp>rPQmbzt{08ad+9VzBLf>Vp5__AX; zO95%F*q|3mY9D8l)uonBkZI#wALYxU;bO&B3W4`2tR%H_sh?8@*+`OMTp(at+MW^o zOg-TTr!!u@6!?XGmtW+{APt>C;AxbJ9i#_Qs;7FpWuNLkc}!r>L#?;HP?`=?fFZzy742P^HucQQ=390~M+YaMJ~oTN;@kE8Tsr_u@r$jtK92vb=*QGG Qt@Hs?i`y{#1>PT%^g(eXRsaA1 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/bisect.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/bisect.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..a7c2f337dfe9d2fc4b899c42022523653c6a6bc4 GIT binary patch literal 436 zcmZQzWME_f1I7{t2BuaBn?dM56ihm9SkUDWdh*Xc8D8&K|Du(SB<_T&0aF!oQYT)_ zd#oVfI{$Qdk51?z%^ijEW$~}{Uw%tG;N1L#Z@0rGjrje}F{^vEQeq`%SeNr%YwB*T z>Fs=`*A8pX|n1ZLhOiLgu(_+W&4%>nyQTC+1Dza*taZ z7A(snmCiKlK^3d_ryULRP3(63`{?QDbJ)Fas>y7>Z`O}p14Uftt}wnU|89v1o8^1~ zm02sYfAxJeSfDMn_VxVr6Bo#JCmzJo4PVGE^k7(h|{ja0h)*Z@+`e{Kj~V^ z#shy1{?#@2NANpXa{J#@U{1`^y1*;_QvKcZxHsD$UNSr^_C>q!Lb~UNlh5}|PCZ|? bN403-9I2k^7j5>g%60qs@@l=^+mp!vODoTJ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/cf.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/cf.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..06e2bc33d522d84092eda77349d19f715835bffe GIT binary patch literal 232 zcmZQzWME`~fE5f3jH*z!(0?d6X`Hya@~Wihk$0JT+x6w+PHwvt096B~D(3X|Zscn+ z5OGcaC93c1)3qf+frrmWt*+Hucl|AvsLNu1Ya3nJl4J7E*}8LhSlAh?FkxkRdsox_+=GK=Oasqnk8mXvSNR6p{AA*yWAv^`T7J(}8bZ}OR6pG0$<-25GiC#{WG zu6ljbinP2|yAYp)yP_?F7kl-*n-wIrAm;gJ(b)Z8WA8k=t@m7>_43BY3(tPvmGR2H Q=~;Gxuik5E?MuPi0OP1&jQ{`u literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/echo.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/echo.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..5caa8ec7dfd1ee65630ba3f8920e95f1b5ac49d9 GIT binary patch literal 145 zcmZQzWME`~fIuJ>0A&mPhl1CQ&%EN_YM+eiymV=*hy6jJ1sjZ^YQR*fuC79Aaz?&F za(-@ZVqS_uPG(-JLSj*RX>Mv>Nii2!T7Hp2rmcZaNn%n?s$P0(NuCB!R#PD*pG%>j WC^N4_BU1+`5S1LeEI(Tx3fX&;GklTYmYVGAp-%{ z>iJ3D(VKQUa&f769a-LIcG4=M=-R}+oQ@s4ABSu)e&1U>fs#`m~>L5NQ+>%NcN--U#l#iV_5Pfd~xvg}dWx>j3RE<|yrN5Hr3 x>rTBtcf%JB3ncw@1@yZdqH~Yqm}#hIBzzzX#Re?WX4XY8ZcEcr#0ww zUW);bP5!<^Pgz7mPA@fI_vf(JUKhng<;GqgfttF*(p*8coS%3ee>~yIw9NUbj^c{0 zTYaV6lT1ynWShmRx=dB4`MpP-;&vI?6p6nH;9hHUp-uYM#x!XyPyByUc(305gVA9rhZ9B>P1V^k|2_1> zR)wussGB7)`HRGtyofdHZ~RUB!1ejWcmL=cWipoXY&z|U3iHccUmbjTt+6zz*xu}z xi2SsDRond9on>k&zAD@cv6W-Dm(bZMS)Ve)_VE{KE}?!;#`HJhM;s3M0RYUWp2YwF literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/fib.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/fib.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..a884a670a09a7aa5fe4bc3ce9efb22ec927e0ccf GIT binary patch literal 395 zcmZQzWME_f14eHK2BugDn?dM56l^tJE#Ksu{?Igtt^4*o2L=U$hkZ~rV5(wH?u3JR z%?3Pe=T8Pl%yDSWT3Z$qxA3`FD1TCK1#-_pZHBg(%m z=`BpCHo92Z+^SRt61^Lnp^DXiZdVU9+@Qm;&{v)(sSyZ(?pT1CmI*m9C;jn=z?&@D#cyW zP2K*>I%3c4zT_ueSv%=xUb4l%6XCZStuM_w8sBxw<06~;N`a})lBa78%hi@1e!9c9 zk$*$AaFeG_`@H2GpZj(RW%2v2zuag3(oW`vnC;i?#%)&$_2#Cgy49$O-_I1yOMrfteBP5i(E!r0u=W4| literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/fibfor.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/fibfor.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..ea4de7cb02269120dfe3a8d8b687ea45fdcf674a GIT binary patch literal 225 zcmZQzWME`~fQ3NnACxWh9}1Ry*z$4)&yfQsSn~42yP_BIE}Fa!ss>C|%n9{(p5eeM4W@g%N(;KyH9hnO_KG|Ark;_%R?z!!0 zOE&w_8Cvc0mrO5^(cRhaAh&z(_XWZ6me(#`d3A>G?7tR=f9JO3UN*_=K0e2_TQod3 Je}jo{Dga}fV!HqU literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/globals.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/globals.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..0307556bac645cb68ef1c2d95536a18a457ddb0f GIT binary patch literal 349 zcmZQzWME_f14dZ}2F67YHiOWAD9DxjyilPeFMsR7)#?F%ChmV4%oYJv1EwnGma3TLOwWzf8C{Dd0&)GWY697qxg>?e=Nkw&XC`ym)4$Cnw`n zwGH8=Y}p!8*M&8f&zxV=!Ls-3+)W=AHwDgh-7)Ev;p9nI`8e~K*;q=aOQtn-3d*|h zce&r!>RItH?GeKwp_i$D=AM~(bo15ElXTT5i0K_mIxO)|X!op3rv$!7vKxkamQ1_L zR>$nWpqA~LdURHA{-r3_nTd;TUX-o%9FQ+G7y#7eyXppl^tdUPw$v?&e4lNu2Tw0mu literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/hello.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/hello.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..b7402863e109732a3ac8e64d58ddcaef2ea1605a GIT binary patch literal 151 zcmZQzWME`~fN&rc24xHVhk~>@lSEc{hEz`EdUNdG++xAs7H7qwYQR*fuC78!Myf(u zW>Im8LP1e}dQoDoLS~*qYFTPgr9w_(UV3R_dMX!JX1-o|QD#Z1hLT5WPENi;d45q& eijG2BQGTw1l1_Y>Yf!MKzn_khVoaWrCKmvy)-NRh literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/life.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/life.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..f1d0e3fb267153d4f6b25dbecc06fc00ee163a54 GIT binary patch literal 1223 zcmV;&1UUNu0RRC20000000f5s018V000000000vI|NsC0|NsA8)6J?*?%aqeu&G{@nbEBR;`mB1l_Jy1P`%y`gKSti5Wp zX;p7EQE-Y^f|-F5H1+4~Z%#Y5F_831O9Zmd%X40RjO#+iwse-&(ZqFu3--+ND1)aK zmeDJPPdv+5{!9gYT=wf9W4smc zVyEC~8Ak<$lKxfGJf`KhG`3s-%MmzAfN!BmSw<(5jK`?o2v*U6@tImoCX4mzw=l5& zu}+rZVi{QfT84CENUk-RZ0kI(7|$W0S=8DNpxNu2P51%s?(a6?FYYq@5?(LE>kWY@ z`Lix7h)T#QdRRuHoq%>K@QLr?4-yVEPmqi_+A$XJau(zI#dfB?cG@0DADLs6H6&zE*XQU~!gSOo$6-2_Mr(znidi^fyLz%4-a&^}6;H?@=OJ+d3a)&dXv$G}s2 z?W=wZTGb+lO8fE0=WxBg(@?S&&kSq-#6*?KYD8d_Db~w^hE*v;t&~DcvkW33qIQTv z!+a=aBOBC)1>8L<+4XusTA9F$j%8Xq3Fh*dJgRl(OE*M9B1@ zOIT%m!E{VG+7^=EL5zP|*R;OoR)5^poV1bd^dZL_hpVXLii;se72@F(iZOdf<0+o0BaRH6 z6TMXoeP#xZ-Yb?&+`y2#VGhN{E$Nv$)g^W~tD>h&-vshTkkbeBaKSu0al}Q1t8j6< zk)sQI;^Fx*Z~XrNO>m0S^Az4DKdo2G@K(urBRTI_F8uw=`eqq+f+MhA+%w{5D1N!R zyXs{JNw1SOE8kG0?s=#C>DSFByuDoC_uhMCY|2HpA%X7vO{Ju~Zee0GL0-<{6Nq3j%;*oQ5=Dg!|1tarwyp`XxWr4^U@#n@@ zc_Gw!#qc8sy?*J#LzTeqkBarxn}7c>|Jia*P)B{e#2Jl*nF?k&_g9s%I=VD)>x_A1 z$Y8f39Y;_5k>RV6-Be~Zu0_ekfu(*B^{Q)3J-DM}gGHnjISRC(3=*HIo|SAX2^Vu& lAyo~Pk$#l8ZugyZB7MoZ{%jggPSsdv9+_j}{{wJ12X7DwXBPkf literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/luac.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/luac.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..b073bdd94e8b19ec3f2058a030ab811c67eb00a7 GIT binary patch literal 217 zcmZQzWME`~fSEw*6_hRX9|{t8hp$@Bx9EnvTkT!{e-CpuZ~E{Vss>C|%&GOW<~nS^ zbGMf3;mNie7y26SEHKxQoZ@20cAf9v1l{y}(V$(Smw$V_KPfT8VDikMB}@w+^4J|( zywHFx%F*3+_3~uNHFg5biW@{ug(jArzg@v|k^R69hR?q(4BkK4&$9BURg9wD%`Jf; zpYC|AJ>~aq@|9n=H+`%AHZ^4BP51Qa-)>z=ZEfLBkDH${@BU4hAjPkN_eApi<^cd6 CFkz?w literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/printf.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/printf.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..5dc86ebc8084bc08b2de38a68145796527e91fcf GIT binary patch literal 206 zcmZQzWME`~fIc9#63Q0(4+U!&v?2~lzn4BHBhai@FO=SMz<35!4VbE!quYCs>yUwf z%ln^QssR}b@9x)l;kwY(zlmk{%Eq+qDy#qP%lvBc;hEv((gzYwG2&fEUYT$-S40FS zd_DF<+`jA^v#F99Thjw|)}>b22aT&dFTRX3YpXDNw*EG=ZnwkKgX*2p(^hKTzp-sn pp_*#l?bA2-#Z(%vs;h2#`}Y?A)&{-1F>TM8LmEy{HDIb@PH)iZ zywwH*vD4RE>~5Okk~w{9MA>QcE1b+5v-)+D%{xm<_y0Y|;G4HvPfL;I*_oN26L!1W z395O^w-~(mI?IP|@*E@I4$YpE75=v8%;p#HXimv_8oYJt#q2Haj|0?`cE|#C$Zf z%S+kKFF(!w$D>WXev2lqxcBIB?5k73$9a$4=eC=_M%kwG&QH+-N8!{h65$*P?6w&P z%ldlkcZ!>9ADUfr>*s~*dmM8!e{t{*HFx zu2+i=b-Z3TlX1IQ@}@W^%|PxqtMs?Mo2K{GNNxXF>oc>=xzY`V!Z literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/sort.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/sort.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..edec3359d1c5448c26cd62925c51c910efa84048 GIT binary patch literal 734 zcmV<40wMhX0RRC20000000N!>00q_n00000000vI|NsC0|NsBncJ7q9k{&%|E@fSy zfFD5{b<-XI00000000000001ZoTXGvkDD+MJ%?X0;uI7><=Tcym8u?A{aC5T-5k7N zl1Yut8apAX`rkWaKC&xirAkG~2oG<@@4Yc(8Mw0nY&#`eshx0WbPuKh0ll#f8m}wP zMHwLv*aQ891~~{W0i)F=hp%41LG+-_nd+WADwm;NY9Z!Ual}33;H;>etf8@{g?nrE zR1^cxZPehm@DA6_@vC(M>hZ zK!dh-(3u{CGcyBMP6b>sf=@zuNr1Lg3k*xODQI;*AQ_0;(nD=%4M1h6Pr{q`oLp$u!vpS8m&{)9MNWhb_?mPeE5cFRRS>6Wm~}vf0;%h< zb%~+Hxc*051k1%5IwdL=O@LVgQ6?2!{X&T6J+GrBP#Er#BG5E%rosQ~iRh)0;cmj} zfSU~_>WjO2bay%=>9NEVU-*Aq5VN1hQR`?anR%RDIhMz(DT|%uV)5!tXD2&v$T*nu zx=jZ@(+#>V0vwNPwG!}Oo1?b-T5{Qp23wcff)3_Bs2VU;F(2<(d^K&~oq01mQ|e4fxrWIG;~mR( z*wpN3nqe5E=wrC>j*QV+zI{6)O?Yc6bXe^ki%vgrTE^(gvzhbdby<#c8(M9=XJfr5 zp@(Vrv1`Z8ETyK3eF)y0`(aNg3s30&!>u39@65h8K{7{gWnY%MyxY-d8s}f_wO=#; zeAGPtpG$5{uCsb)@oUpvzSlYn!`80k3;v{h!fR4~(EC63?3Z|=avts9B6k13TG)C3 D%u{th literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/trace-calls.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/trace-calls.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..f323a85543a2151c7502bf77b81e552a3d6a5767 GIT binary patch literal 428 zcmZQzWME_f1I8Q%2Bx zMVlra>sh12X#ezKMge=;q<~p1(>Pn*`d2h5G#EbCU}v+x5HkDgE#ENKw>muM_NKSo zoM1d-W5CuMK6_snX58NSrcvPSk&~|*A|Gj5Tq)(+# zrjX0+xZ-5>B!gQ?vAGI78TwNkdzwE#%>A|_&>!hEn9&Ie1 zw?b0q?XrsPsSRmIZs+Xm&A(i@Un0uQq5e}ksk1ianay4+LGYs+5+>E=bna!aK)1;}Iy7q*K(dtz{||HN7w1q*%~ zSw)chn^PqG@}pM1P{kb`_DtVUY;T zf-|$#YX7|^natz@_It*D&*F3f%634orFb`Eqym({h1A;sSDU@<0~R61B;a%c%WR?S zqXT-g1n)~CEU-bPg~%y02undo(;BAiosZmZf7%KNX<(q+5wiz7^B|@r4&+l*wh;iH zJN~;MC&tLFLe?3PImk#$j(08Xl=5sz$(MJj*S8o79?BlGx6T+xu^zjEkeE?%ry} zFLPcUJ?rF8sVmcLB98<}y(*L73-A8M`NLLK%7nVva)j9g!;RGPZ>&;}o}Kyp+T((B z@K4*Es|^co{@k_`_orU3Pv#Do71-L>UNe%V`j-?hYr=R{jsEO9A4mK!PIn#4-4ZVT tYQ!q5ez*wuVdqOgA*}f(dh@;B=Ni-_`mly)abbI;tnM|h^FQ`o?&eu~+*SYp literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/xd.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.1/test/xd.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..bb8c1364f74261730a97d9c868ccd9a6f31fdf4f GIT binary patch literal 291 zcmZQzWME`~fX56Bj5$!Y(0?fKZxFe&DR&OO6S7GB0fTWnc8dbz|5zhlx#cDt~{Uy0Ng;$)DMH^XARksy<&Bg4dg? zsa{#*Zq>M6O3v-<2gYlaNoS5bR(D)W)B4+Yclj|VDo*t%y`i-#)Z{`jXMVR3tg zodtjDB8E;cUq+1?YObaJ>jciL?ljPnz8osvH~a2yNrv62{TYg@6VH4-RNNlJ`Q}FV z+C&XKwg=5W)Ze_lvnlM`r>io}0!eua|H3><9^ZJ=e*Ie9x+TjG6wm(o_W1lW>8sB+ c$ZCnm*0G5km{%W_u-ksq&sX^uBnr;}07PbjaR2}S literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/_c_o_p_y_r_i_g_h_t.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/_c_o_p_y_r_i_g_h_t.i new file mode 100644 index 0000000000000000000000000000000000000000..a0715e0e5193d58d20bf0a27f6fd3950dc765bf0 GIT binary patch literal 940 zcmV;d15^9}0RRC20000000V3Q00u|^0000000J!k|NsC0|NsAmRU)9#*&a^ES76sJ zOkA>@leX{x00000000000001ZoV8S4Z=*U8)xP>yjQZ3{G-gBe=+1zu{b9w5a}H>+*Qy#y%-)Jt9Y&;R5TX;jH<-*VoIqyYE78f4_zcx`LYI=aupjhZ8DRhs`PQg*u%i8d zUSX24BSIF4PzlRrYdpH^fmBwJlPOC;}vHgIZ=DihFaMTXP zFB`6RIFMC1;s@-7HdvsxICU@k9dK~A6K@m3d{Ubmqfkl2gG!Y{Cwl7@f?BpH>$NlX zDnC_R-FT8p@RrEln|{86gS3qrEIMzjmZif8K=x%jRIZ2fbt^l0VsPbN2SX4P{SJJe z0d%U8wfh%-to^WUrD+1Fq=Vj~#b}-jdZPk2#~5ukqHW!ROL1Arb9X++wZ3caj)HIrRpo`CNj?i*Bo`-s$as-ayLsVuk48noyXCR-dHr=Z@to<@9!~jV~Qn(JY5uTVMc-F zu+GvSY)m7QgDPPC`NM!wxU_I#AEovVphBdWWkEWVJ^}PLRg1c!Jwh$d>O{E<09b(+s|BsaQS$_GL7dHgD(_Y z3twV-OrtBp+^*_HGHxJQ`~uz(+eQXX&56G`jdR}@BjGtTnpSn OT$_t_H{>^k%kxx;vc&ZO literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/_h_i_s_t_o_r_y.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/_h_i_s_t_o_r_y.i new file mode 100644 index 0000000000000000000000000000000000000000..f3f8c0ac02e8c389f3b3be819d06481e8ccc0f71 GIT binary patch literal 3312 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/_i_n_s_t_a_l_l.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/_i_n_s_t_a_l_l.i new file mode 100644 index 0000000000000000000000000000000000000000..918bc8e7c00d3cc4b02ebe7f0413b7a97e98c1b6 GIT binary patch literal 1773 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 MS3gtx|KX-Nbr+3{*#H0l literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/cover.png.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/cover.png.i new file mode 100644 index 0000000000000000000000000000000000000000..3ce62639bae0b2c41c6d7509245fdc7c59da1e83 GIT binary patch literal 3454 zcmV-^4T16i0RRC20000001Z9>01Z6=0000000J!k|NsC0|Ns9+byI(8*E6TZtM4a= zbR=vQ#n5H|00000000000001W0SaSpaCvfNb~+$7GG;h1H)dfsW-vB4I5amnHDon1 zWjHWoV>L2mVKQSiIAvuvW@Rx7V{dSIIv{LyVJ$T-F)lGLWN%|HV{dk4axQRgX9@ud ziBL{Q4GJ0x0000DNk~Le0000*000192m$~A0Q&w;CIA2c1ZP1_K>z@;j|==^1poj5 zICMo=bW?9;ba!ELWdK-KAXa5^b7^mGATus8Fkv7dQe}2JATcs8GC40fG$1HYPDdbc zVRU0?ATcg7Dcuz=NdN#0Nl8RORCt{2n@eyU$9czp-7~YZ4=k{FV*wB(K#&wkQ7_67 z^$Mek6qO$pIjM52lgkIk<*FQf&`s9WM_+XDB`^7qxKycBBFCw6B*ltonktJFN$~+v zBmoj60D=G)*u}nQrrQVXViv#x*aa6NqQbv$z|Qn^fB*UV>;As4zY+Z7DZWCG4_kl+ zV~5Z7#txtDjU7JQ8!P!pXt50RLlI_eI4+qSnH)t2T^7#u@VphGuH@4aFn+MVt2<;K z>uh>C-u(UHjt<-WQbb-CQ?o2&$ro|l(v@_M3)h)XuV}bZRsntCz_VS^=ewdU0i!!) zjU;okGcFGiTCwa$Ji9Z{Rlxgh*G|~*5c!33m48`r%D2DoI3IW_t z;wemHt+uOdLu<4ql_8ZuN<77E63d|AP;l52XJUp(i1`$NZE)kNNHmtPl26!_hht$NWJ;}3TBjV(QM%1G zQ;rvqqNsGz@j7iYAZ5<;JWbA1Hx>#HL-;CK$;XniHyj8^(Q2Fb3vQy|b{JAZt8K=? z6llnMs@=8P|uiZA& zj`Fk<3mBf(9kw~xWIxd!c9fpVIlr4;*b-Ms!z$w~Vg3Eo)f&OQyqj@70cl4$S_764 zQZQHa@=DJa+(g0a3Yh}#WQvZ`wjo`u(~h@AeqY3twjo4?>>9l&ZOT#W@d=yq`L3vd zv2=bY8Uig51*NadX9uIfxuP2jm}BYu$b4!#=TsSaE9RS~J!rOAhK5+c98VXr%x0Gq(VY4R`(3-F*69xB5GPf3=RrUiJ zS5>?C{y%*x|Fi zvBRe>=;gVGtxt<@r9Y}Q**u99QqbGUy#(XaG)EZjN6J!yvZ|-7HTfc$96}HYVOzE5 zSsTqqYaEy91d$-E&5TWQKS_TV8iF=$(UOYt1>XMy0gGpkloHcRj~5(%f1Z!el1Kq` zweiwXzIKQ}O{vzk^KYAA0(goKKgEz7eS}!lA4RNc?6@S;G=&LRd@)YEot7qwF2DRA zPMkw|en!tU_={tF`#9#tZ{OgxA2fiB>v8=yO3@T%AkJ_dC2!ZbmX zT;TT?h()=2i~syTl&Xk$1WIx1E<^ovwr)7_8ZqCL;^cW8mtEZmu{sC4GPhbGDu9p- z?_zfxrFi#!Ja1L_CMY_5a*>0B7+cCm>ylYNeUOk{N-J01^%VIc=`7hi`2qopaFC`j zA$!?kAOr!6T!H(^HDl44Ih4ZKU_pKWK3a2glF>Y58>YJrqfAT)Ors(fzCzM97Q=?|N$2?NDldO+*)U2mJ;!f9<@5;2 zbd?0RTO?m3k>t`Czdp&~Azpcg!8nFNz+`Vf<9DkKCfGl)p>o*dda$^ZSti5%ghM4h zi%acCXZXdhxjag~$m-L;O8EfCW%3@UM@Z)x=)n%q*21|j$QM>V*xkzCys~l@G>lKt z;ld5N+p$caOft>C{D${GA)8;9$r6^1sa-}VxN(QUKKeT8>EOl$*?c+4D~NaSy>Bwm zvo-TgYtCH3G?5jjCUYtN;XOuf0<|!aQtsZ}{nS%?Baz_k+p}lS-k85O&d>jizx^v7 z8>YXD&#rLmE>bYq$CC$$HPz@MY>H2Fg#82l0GS-W`0p~AjS-0i-+1G%fAphobab>x zDICYWc=6VoZ~pTKADq*F{~!F_cj#&7m1j^IAy~+e$`EVXxL=@de{|8l4-ffgiLS@5 zPH^FRjU5<<{K-#Vf9tK+_$m9(F`WtcuguswUfg$x^%@&@pkU*OyqfNwUJNBQ_{&5pA^e0bo8Km5A6+;b5^^z^j8_15dQZE<;&kItaV zIp;`-eFLO(H4ab@AFa7OMkMH8$rbq32@1v9`*`W4$68yPR@;IQ;^@(R@pv0b^T8ju zH@9?y$M@0JTx0)r>L(U0oiGDhbMXc@C+kYi_w=-`W!RyR9g9UkFu%ZwbH0j%U}la? zO)9E~j}ROh^h+dMkCW%|svkzIg^7v#N>!honM^*BDA(hhzDzn>`d`Czf@|Zo%<7u? zXqcQOl__aMLn6g!eaZno{P6t!`>EB3=vwPjr$+AHO#mQBBpIFbZ})YwkgX-YtzAEw zOE<_@oMYddB3rAOmLaZQz4P|l?-dHgN=jPm+qY+a`qN()i{(QePjU4Ys(fx5Yv$OI zS_Y_j|IuI?L?h)WOLJ?gihH&Zlu|$Y*}tdLxgY=dwZ6V~DP=xiJbn7wn{U2z`t zy^Y_+^N?nVlILM;T;NnQ9|12ufl)35(wdpMbst!>qkO*j_S^5h`|gRuhX*2&;KW2? zWMn*($uEC3g82m;&)?`ye!e{Bt&V#1-1p7TXq2W8kL#ZrxBh<`C zKsdRVo1L6JRPl#qofJiymp*$h1#1!JpD+G`H(vKSSF7S zF4F!9aIuVi=OaKDyf&nFwmmUNU)R=WFx6HHN`~-F)wxJo6}litO=h5+D{` zc?PqgXq!K8Tr{CXiq>X-F>(9{~saL26I4=zB|&Ax$>pSG!Qp&q!N!ZJCsmq?IAiZfTp=9YQ&0;Iq+uq{G1wuNaRMHN{SDgNts zc&bEovmbUfqCRAC_-Gg@_~Ye5kBB(0CrM!ZMMfR4cJqWYIVp zOW3k{q{=YKH2rbv+3Yugo%*-!jU7JQ8#{cqH+J}JZ|v~d-uSBV`6HXO%!n*tar*!O g00(qQO+^RR2o)1I8MO$kBLDyZ07*qoM6N<$f@Z3Re*gdg literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/logo.gif.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/logo.gif.i new file mode 100644 index 0000000000000000000000000000000000000000..bb88174f5ba60ca0a2e6f7a3c1d1d98fa1fd10d0 GIT binary patch literal 4061 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 P!4v@m0pI@sErffE71Q;t literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/lua.1.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/lua.1.i new file mode 100644 index 0000000000000000000000000000000000000000..1ae9e2c5fee0afc68c3dbe2eef86b8e08d252031 GIT binary patch literal 1763 zcmV<91|0bS0RRC20000000yG~01k5i0000000J!k|NsC0|Ns9RWJLqqO^w>?2YJJC zX!jWXghUwt00000000000001ZoRwE?PuoZkR=@7A7)6x=QZNK4Z9!KZ*U}>rC5WUt zRYz5A>`k)Lde_~xllb4?%&eU_ln=cxEw*>(<(X%mnY@c85ch8LG7XP0N^V3u>Z*%a_vB-2~C`+5yS=)L|VOLh6; z`PV&>Om5-+`pb<#^YC;8cle*SrSgSW_%DB-e7he%Ohyxt{6$fSe?>9^SCrb>Ail@P zka}H|@o(uD^!__v{&X|>_&9o)j>h-xeI1}&DhQ>t*^xBPs^@MKF)G10nFYWzpf)P4 zN)`B6;oZW^JPd@=XvX6`DAlH{q=DcnpDLI;pM&!Pzo5O;<%KpXgPFF{*ZegR2M^D` zXmlXG0#}tqRl=;scpoX?6b6CS$6Or6Kh$$Lg;Ir+5dJvRCqsFZd1%=cAkg+8U#ctzi&>#@z7+0qhh%zDATxu;O z`wqEOWkkAZZ&E^zaQ1n>k%9a7) zvZchEp^z!U>pVEFS-O;jgYsySLm zyDa$&Ym>|;dIs&;;*dUC@K*Rt*QGiPf%d~#G zVGi0h*!E~Vf#FbkO?1kxw0D+)Sz)J9TpR#u)Q{2qXiB-wK{ITbnxo;Ypl4$xViUl!}9= zwD;@~cH`K!5jP}Zxuj70Pe*;hosS@9ifT9`PEuDV;+w00lmlgh4)^f%QNJh9YtRcz z?ZB{Qlx3p|(HVkbU57wqok`SYjK-dhR;cB=Cp!78n}&+AD?Ra&WR8xYe)=3G&|C?( z#ig;-HPS?2yE+EB%XTb4Im(MNk^oafE_y{OPE-jn$FDEMFc5npj|Xy6Qtp0Ak4!Kd zWbBO0;VBe=t-3^6Hc0+msTv8v;-Sowvl?P>Ofek_BkQP*A_mubg36ZKyl9iI65a3~ zP8T#?qyG&k?@`$JTV*lQi5mb7wY98?Mhup(ir8V~f~badl?3FAUWfi; z@omWryXu2zq$Af^W>^j6e!Tct`4|g+B%^$P•n^X}rHs}nERR$p-s9W);0#Vx& z<*pi)&nwhB?2*(sntf_h7@g|U)Q8<-aZ`l0D;}Z$M;~@nCC)U(2)kzI-j=3mf(^=A z2;5;!vZ(Kpq}MkZz!gkj`s{QYU{D24n=%dr7OxOxxbQmPCq`Fq_@Nnid!qH@;c@)s zq0y{ziPz$lh&ChEZ6vmXq9zg5jw@OikSjVznf9h`bm#@L{-2mmf$2y5!4Yd0iZ3)> zIS@gWjXrxssX$jmhSm^~wM~G0)woTe8HW>NCs>(_V^_{;vq`Z^?O5opjWpC#N~2y&Z58{T$8%eY%y!4`0~nM*3Qog>P-9RQcM z=`Xd2o!|QaJ!X0D1OAop>N@7F71!SB19A1~NYFynU8i0WRNet;=n%^#Rd66ktoC+4 zTwZCc{+1{wO#mZ|00ZUr?zQuF*X(gqz$b{svMNq7Mv+%K`qqruEqrk?8#GuC#P4os z$qp4Q6s7jdP>2-S-$*-ybDNXFoM=Gz1hI)(&#*-OC-o$0=Efr6+Y`lr4WtG@t_p{B=AugYz+Eocr*Si{sS3k F*zw4RR;vI2 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/lua.css.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/lua.css.i new file mode 100644 index 0000000000000000000000000000000000000000..48c2c05eee21541e7108fed014e40a016ff21790 GIT binary patch literal 381 zcmZQzWME_f14dg02BvusHj~bOC^-9z>ouorjnuCbPjxxX6MK?otG$P)fshq*=1x4= zcSu3R^>NU?rXy=Zv!ZinZvDs3dTS8}+lFN0nf3AuqRy(QO>W%qVBel%{XLQkei=#J zOWvW(s^uA)7Pk#7 z6oa;K9e#Y(>LQP$o$zI@sS+2<_zv^#x)T?2a`y5cybja#61RU;|E$jcbJ0U}`Q1~^ z(v_CWT;rXTtTCs2sd7Vt=9QP<51%sU7hd)G<=rXs3Rm$KI<0=N^hfheZf%)##^3cG z9BtNji#N9j7m56vRld=^T7>U^YIfGe>!C&^X@Qjyv*IKT#4^XGp^j-Z!Vku V`Gu0k8*|TPi`@S)@Z_9f0sw7OrrrPm literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/lua.html.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/lua.html.i new file mode 100644 index 0000000000000000000000000000000000000000..bff4a37fed1df813a996e0c144bde538552c1ceb GIT binary patch literal 1889 zcmV-n2cGx<0RRC20000000$ue01v_d0000000J!k|NsC0|Ns95VCn}qq^M@0+x*Yf z7?A_chQ)XQ00000000000001ZoRwEmZ`(EyMql|WIB!@Iz?Pk)O`F6q=Cp2O%#DM@ z!%z%EK})nvfD%=bvZH^$yQ5^wP9C~EB#}hk9l!hTyW<-co4mAgeZ@cYF5*RRv3Msh z&yvOa_m}T`@6IpZe^{K)FXHplcS(GaT%NwYq#ajW7ozhnI*m@diHW=L6s>%!*&EjX zrPJZRjT2fDr6OyuIV?NnXT9Dw3 zf!`|g(&kpeZ(8&8?SA_3G=2)}`nLmE+V9>D*gvd49+=!KlevC(JYfHZS1z_H_w=5r`CnXrxW^=+YxC)AdtU*ZGHm(X6gku5m9b^eGM?9;IwUub!@ivR- zNvws^Vy-3k=D-*n(0Qw}r9*FmFSVHi`kq#2B9#e31J)24$mIefbzssii&SRb0f?Cw zu-D}x2H1_|hH@FN1R^6Xc*td}(5eY+SxK!a3mHC_@WK>2LC}8`2F}8c=a97w{)O+t z(cuyASBv= zsi*^JFtL4*UofA^r9eJn&8rBHnLkSDKVh68r->y=oNYIUPvfao$h9R7TY$Zrk;FzFd1bn=tb07+Pb`Z*G zsPF(I(9^Fl=A+ILg-b#KuqF~yJ4eEz07UGYDL4uZs7zR2Z2-?sEi)_@LNUSPRw@!4 z0z#Q-@CwZnx9XGM4qBZx@2FM{SbeHZRd7MBg+T71U=mcAbcB(M4 zrugyHB>U_D4NG$$$N`50rdo+j0BPj-0=~WyN}KKV2w0G!1d~YMIne}hM1;yo46Fj3 z*osilbPc7k%Uh*1kV)tg=&a-+I3k{MxfW#*Qx<}&J@F#*O229ow;};yA2cU0U4s8- zF0BRqqi;n9kv^F=$DX(mC31=Yvqc`N4_zSdAi)B`eANpQ0vyH2#-@`iCKB2$h(6bW zJ(aqoDoHfSh1d@n9t#`7fsbgHOzc@^$MQLrh)(8I0>%mrC?MK(qre=YDj@x?tA3Cc zAc{~ku{PK@<#Vo8th_Eyn)#w4al0zHIodYltVy0KD{iL+RQ5twW$_H^=N#2tb!6xV z0#({p@<6GK`0QYH9j22xbSEDg2q~NkdYxO9?lYt*NAys&$fl}&e|VgJeb|YbU%|$( zDWFcsHA{;uf$9lBx8V$j4xo)nLC>u&D}8!}xBnxmv!MIHMI;ln6Hi zpcD9jF0_`F630-Ii$W7|s!1TgTpywiZ`;vDm`ASp7ILzg3QTvl0GxMo1B`#O7ug6h z(E5GpuX&3oPydJKhz8>+&BXPj{Xm0phxm*0S#vsjO?7Fs#2$t87nsyGLn+%EDPc0k zhWt~?9c^Qf9HYQ_0*as7UmeF*4OruA$YLf#<0E+M&pb3wYSUY6!=%@)647QqJM!%U zRAGR?lfLL8fkH25-uS1j<~Y znKE1eAbv`wR&z`Dik)=Z28dJ5C zdO?ybG6Az{8Dbm$HM^TWR(l^KK9;s{LaWrpD;X%gBa) literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/luac.1.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/luac.1.i new file mode 100644 index 0000000000000000000000000000000000000000..23ff8b8fc3752b773b1a26212afbcc6ad1e337fb GIT binary patch literal 1792 zcmV+b2mkm00RRC20000000zJS01k2h0000000J!k|NsC0|NsBPWHFa*uFngRY6ihw zULMp4w&-yH00000000000001ZoSj$OZX352MPK<98$y62fIPP1OKrb7sZ$GZZNqYK zP@MFEn&C)9X2=1_k*t1w*Csi-q&_bPC{ox%?#tS1txf+TO51ImT3u6B*7fPt>81QM zpPyD|=T{fMp8a}tsV?fPvy02ivy1bKtFuq%r}4%$HN8AKFDAw0xU%IjekzNJ_(c@o zNAzx5#qVX&N;6*3r1*46pH5CLj!!1XCl@rixIQ_(K0TvmS<~%nNAE=Oa!2>yZobfj zM(=);L0!Lj;oV3SvpagY`Quh_0{VVL_r0Xjww-R2i(hAdK0H3nrZZ7|j#Y^NiegH( z3)&hl{-XF}jpIhP3crY#e!HE0d7eJKOdlV%_q3<5R0jzPF%1-)G`>NRo;qh2PPU%b zPKTfjX|uhPzqQ&dsF7yT%Y_o!1WR*mq}#+AIE4&UN<(u+9Mn-`Wu+>TrXuyK%08&7 z5XJqIctPY=B89A0(geiwWNRc+sXoqBE_?IClXU7@)Y1>}@M$biQBY;zW8U_zROqWx zR6E;}EK6M}1Z}AIxKu7tvhrhrGK8(`BScr^H#qT%kE;BEFsZC3r;c_7R2Eek8%VcZ zgC48seacZtO%N{U!T0Z5IO=H)L zszr|7WsZdMdi zTRH4H#&5mLHxsd?Bv%AvIm z%UGTV_YJcR zN9Iv6YNZ^8{_k63flnr>uhMm`9OOqIxM4migT_ohQU`(p)E4KXAhzT9SH#r(pSe$z z!q|-7e?NLZ61b?r$rAiYLWov?wGwMDtXM6m@T|)T7LM6 zWh;{EJSMM0(hk#LXmHAcrBRGJ64?ZT#aez&UcgL;9m;BGI=jZ9Hx%N-+gxWrw){@v zlaH`_W6oPerFq#7O!(=1+~aH#El?{yM)vKyRVz0kFyqy`U z!<`ZT?<}weaBKxiKD>5**W&mW|vzzXPr-4OE`d&5KP|mopNaolJ~W< z{bCt4zCg>Hm_Lr|4Zr<7kUvhalitUd6u;Q`mQJsTMg-5MvV@l$UVuU6FupIB=^+)LKENA=@bX6{ws7$D!5THZ z@v?%3XAq}c$|fUialVZrHQqKW-s)iA|1UyD<7W{*SZetJv&hjZ?V*SbKa7&vA~Cm^ zs-H%($2~86aJqv$=RICACfPDuX=XcfcX%Qka4_ym_Er3A@g(t`EaQ_9U~ljwb8zTk zOERfZS>}>0%ibkMx!$BbL$Qo*;76QRns&UjYnNrq)6UyGb=x=1LG5uD^&U0|?o_rA zUlD>0NtzNoitk|4w{vWbsFnC<1Upq@OIYU$FGHT&p#B5IR>CjsZsY8wE#i*&I=#Q0 z@o}1*9}F`);694+!f1ATOE>qk$I)Pp^kMQ*6mut*A#~Tr$LsaFz^@DI7RTvNo$1Z* z50A5#>6e+fJ;Vpa^-YzQQUl0eK@1~V)&9|4k$LE>2FX*no*y*cY^h!HbVNE_4 iG*zzmveB(Cmz(&A`cFY$uuOgY!|?X;tM~`}x%1veGI^l@ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/luac.html.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/luac.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f4c3c45bb36b86eaf479243faea57e3aaaba3447 GIT binary patch literal 1910 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 HTdUigscow= literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/readme.html.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/doc/readme.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0b4d67ac57e0e12b4f72ad678db79d555219a129 GIT binary patch literal 548 zcmV+<0^9un0RRC20000000HCx00Wo+0000000J!k|NsC0|Ns9tlN`e{OfTv^eHX!- zbPI5qPxRaX00000000000001ZoP|?SZ<{a>R$u)qEME4qVIWD9Ac8~&TcVM*B2-f! zU2_B^0tlOB`S&|R)HYJoN(i6v_uY5*ow*~TY0n+}b?L$q3$U_$K82ZMId*0{_k6PC z_k7O5vND)D(?#Zpf#K4s=ig?gZQ3kr1nYojM=%R@tjHblHt8<*afyNumvo!PkstS* zBD6n3t+*zK) z(B@4{tokV)Ebw287EP@%qa5rs`~-67pvE*uUiZ8j>bfH6)P?k*aTm-r?Ol(>Sv?Qg;rNOgsO_hBS3?FT`JzQ|AJ*yMRBN?y?uyii%Hu@CJY zFKbErHscCMaW$c@1Y`@ERh{*OK9m^!W;iKS>u!v}B;Moe#oOS+N0RRC20000000I6000ZLy0000000J!k|NsC0|Ns9@e7EGVpK*2Te)vdH z+Hh|?;u+!q00000000000001ZoPAQ;YTG~%C6Ah~m?i>Cp;}c2%eIOjwbM2R->?lK zkDJvh7F}!2N-hNY@g2$XEg^Z4=FH`sx$G4Py?r(EZ-m`2kUS0hVYe5CA(v?<>2>?P zj!c5^TfZ+lK_`6fw!3vjglfmV4hvY|%To9g{zs;nl5hn#xM={U+TeJ{kum^Qvw4h+ z!FV)?(RK*BeqjWRro#(77)>wma&Z}7Emuce%Ay1qQo@T6F#I+C@p~DgH*2H!$dy8G zWIM#~QvT#=A9mqj#YpD({!sL&zIs0^&uCCVwSk*6(8S41h*lZN6P4wX%ym|j+PspL zi=8QC0gFkDhAL8kM5cVF$_T7GDb^ZWb0v8pk!(#rjwLrQvW#$(<(TU&Cjx_-h>Ox> zqC`RYc?*EzkwqUSz_OiTJyJ6e+ILK#H?|$>)}=n^H1)t$^DbC>;jPK?^7=t4rLkN~ zBfng?@Ek+#8%!UhP9EZ=d$>MH5cpWrcIb?Cny7BIT)Fm8!r|`s=eXT^6IRXM&-32q zP$=EyqRe!TspBHipv;rX{*3P98mO;aPrI1VjP*c58(DwYE#A_ykGldkf0#|5BCB~^ MpT8aW4?Z3nL~%zGB>(^b literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/_r_e_a_d_m_e.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/_r_e_a_d_m_e.i new file mode 100644 index 0000000000000000000000000000000000000000..0946c79113eaef3ebcd21bc86697bb44e8b36dde GIT binary patch literal 694 zcmV;n0!jS<0RRC20000000MRZ00bQX0000000J!k|NsC0|NsB^ETatm8-GcQ{vabY z)+93->C^xK00000000000001ZoMlr>Pa821R*%_VG0KHjfJs1&2&$@5pa_Xn70_0d zdYQFnvsS$J%8#V`?>mzKqV%$BdFFe}!*41b`XSQ#44Tu~WQO(e+)Qh#&1`yNW|LEm z^9ju-^O>2ROz@cMlP%&5T*1TlYO1D3l=acw)%oS(s(MpBv^IgUk#r7m03Ccr>l38V z5tKwtanM*t3D6r38&cJG@9c^ox3s+g>p`ib6!ihnn&OaK>zB|{keQDWsjkK3^mqn03R|t5lYES$i|$lBSuT9Vv7cHfVx;` z;I^QGd&;o*b$j#qUbGj?ECm2+9im|xH?TZ9r*t*?Qk)YMXJ(3hB>oBtK?E5kP*sgC z1B}HZ1W#jVLgWlXU0^0|tZMtd8VOBHXqaKwF-g1F-+wf}M}L^y!}wyn_Xx8(RHO5q zK6ic#_-VZfn*?vA-y5pgNTzhgb+5Sw>Cswp1^Z5nMcjC(2WTaq{|k((lHfYpoOBBx zmb=3zTS(=yvE&tMh56&7hn~C8ua<|*+1Mo*%((TzrnU*|q-xC7=w3(L=YLua#Y?f{ zA2tITo1x*0?HqIH9dC=1ns_6BKTEN%jyFV0 zXZT<{{BJ@`cO8P+`gDZROMgX9E>gyr<%0JpLfH71<72{C?Vma$|D~ z&w&8A4%Q@a0nO7IN=(jOFhyp~JHr+5UMhU4_eAnaH05Y@R*a}d4-xw$Pc6w~kd|tP ck+*v3_yIUr^P=-Rp!AY=NAQaEFM(QLWROHod;kCd literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/all.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/all.c.i new file mode 100644 index 0000000000000000000000000000000000000000..ac1a05ef4821c9c7054094479f9f647c395115eb GIT binary patch literal 340 zcmZQzWME_f14a=B2BvQiHj~bOD0t#~>>%$h=8NZbf6lJdSa!V0ew#c*4TP+ilY7xS z@34XZTSDq-O}CflR=u?do1&HeLUt8n+Z3+mqsm^@zmm!?_b4l}%x}AX-fx9Lz5A|M zhT|Vo&Y4_GyOQuKMETK0kCj_3S0BDzXd!#-@s4#n8nkcB+qF=->eMRt=T@p^i}GEV zU$fj2yT{$cH8JjBq@-b#S3_L$*O`xGR(>nx;W+tgwX(sri5XRjaVCM779ucbM9Z&i43x?7BF$d9n56PBk^hx{0S`o7__zsufBJ}VG!s@ZY2<|fn2 zdjaMv!oI)un-t@j+E%A)n&oD??n;7HW=62xwg*Oat9Pxv-6m|hK5V{|0QW_c58-hi zX9)WBD4$PQ^O)n<`GN?&`n=t;@xteYL)x?Ux1Ut+uw+TEWI1zkzG0-(^SlK!4czt2 tN-i@0EY`51a-=X#jrsSZIe*n2vZ@>Tm literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/lua.ico.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/lua.ico.i new file mode 100644 index 0000000000000000000000000000000000000000..4c00e289ea93c6c52548c3ec0d632993ea55f086 GIT binary patch literal 563 zcmV-30?hpY0RRC20000000Hv=00f8t0000000J!k|NsC0|NsBt+eh*8%%4lh>lJ?h zJ49h@2Wb5O00000000000001ZoTXE}Zrd;rJ|#wNcxe0tji#bY94ocjI!iPV5H~-A zB0E5V0x=4;O(%085N&#uK7zKsM#hdF3P_VLccduOKnoP;N$2B7-4A*9IT+{noA003 zU$4V?{C2jA=8N_1d~ubpu2y+Af1gM3yAOGEH_PHIzRebQvxSMc4nKX#F5+o4jV{+k zeo1KhF~1)NV}JloAPgtK^6LcPHQC9;;x_@n%Tuzn4oMSW|AF~NVSf>2UQo&!erQqG zHCf(4^8%tZ{O}h4kc_ktQuWD3!id`#icU5bYlo%p-A5D$oH7=k821WMVx=p5GoakT9$rwbSH!tJ z^DgN0C-a<{AHsp>M~6NV^&dRfmay6~choV~&NJzzAl>->XscEjKO(S+LrhGbs#RUy zBDHl4)eRY}Ez;eM5cL`URzo^BO$ts~u>tz8+ckv|cHe6dayP@q3}yEtcm|a2CYRvc B2<`v? literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/lua.pc.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/lua.pc.i new file mode 100644 index 0000000000000000000000000000000000000000..369573911f5fcb0cd4e549d91b5de4c2eb906460 GIT binary patch literal 477 zcmV<30V4hY0RRC20000000Er<00QFx0000000J!k|NsC0|Ns9IrYc?~+(ovIfPL&@ z8&bHJX#1i700000000000001ZoL!RNZ<{a>$JJN=6(m+`)qZLSbNYgzak#tI{ zJgze4%&aUtkEqb)kMMT~;YBN+@VUfma%` zmJ%y^r`iD5)eeL*4V4mB^bNU?c%-Gq8fL$?^BH)aKa%Yn?2c!?x!{|gd$*Gk>H7I) zk!7#mx6fMm2L=n68UI7^^7PZMwS{|sMuuPxervQZD@G;x&^@HBAIDk&kG#_*8U9)$s|>sjH{QslfcE8jnNwoo;&=Wy=eh-Qp~=Lt#`^ zN?14j{0Z)ny`HR&NyH`gjv{%M6qlK{y?Za;43bVExAaHVx)-#fD8l9orBI^DUg T-sD$Q1yuZW53k98iEiziGwa~W literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/luavs.bat.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/luavs.bat.i new file mode 100644 index 0000000000000000000000000000000000000000..87666cf6dc52987ef207eb68ae2a50181e7b3c5e GIT binary patch literal 611 zcmV-p0-XH-0RRC20000000JWb00d?L0000000J!k|NsC0|NsB>a*bk$Z@Z%<+#1ot zMp(Ar0TQ+V00000000000001ZoQ;y(YTG~%hRLm-Vh9-85=)j{SH{5**V2WFe87j6 zLaA8ouA6PvTCp0L`0cBeEIDoh?v40o=k(2tZY-+OqvnSpc-_J7GjqRqEat@Pc04lJ zbv$p-bNgM^r9Ic}xXfc-nK1;JlXl;BZP(#Qox(a~c1+N^u^u$v!Y>?noZi+xPC&)7c-*;^$<=sh25tq{DFZ>P+N?}lAfk+_J z^i<;mRS9Yl=g1kvNASr(Fqn}f*Q89FiDwQ=BIQTRddN6RMTsmG%zjK3v*k1lMpS~6 zD5-ucaArO@i!M0dd*D!T{AjY;MC)L(T?Ns65&6M#6->sPpso>4=Z_;PlIOZa?U-#w zdu$#p$_%#EYPzRU`r{6_bn?IF-TTMhex)J;A4wVb}nq x${Hte!G$CKYn{M`d@pXR~J!6lmnMNifCa9KZko literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/min.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/etc/min.c.i new file mode 100644 index 0000000000000000000000000000000000000000..bcfae44b26d17e34fcd72ef28ff7b9fd63caa4ab GIT binary patch literal 536 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 ZYAnl`7VkQT{PvSALBF(j$=|crpB*wotgQe5 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lapi.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lapi.c.i new file mode 100644 index 0000000000000000000000000000000000000000..cff794da51a0cb990b7912ed7c2a6a5a52311775 GIT binary patch literal 5353 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 Y@N@UqbIhOry!yXL%xjYUf!k?206+_ussI20 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lauxlib.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lauxlib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..71b49dd2d5b422e2385f52177d30edbd1eb2dda7 GIT binary patch literal 5033 zcmV;a6ISd10RRC2000000265d07P8?0000000J!k|NsC0|Ns91Vk#$4WYz|iHoG;bfz3fgJbvYyRTj34_khkJ>>lMfPMcp|8C+v z55E28Th71z?)knqnM}U^{(HW^_k92PWDlPHX@Bx9rx^z&h{sh@19Nep6&0kz2^t}lY?*eSf0*# zUZ(8qK4X8x`6tzV6h~hEz``o=%P36>7N$9yS5X{9$qk!U9s}69mq)z78P}Y%ACQ{p zW>K=sw2XYtq69G=FSd4`ZEbBmjuJnv0?uCeg@c{~HKPy*gmOY(2sskTSdBWtnEq)MdN$a+mG7gby3LD!{M0;`ZMFd%`KLu4(m-CuY) z+u`?R?k$TOmwnt~2w?UjpI0}`%Mal`3Yqhj}gMkZ7WfMUWBjBUaAz>S&fN+T>0SJ63cpPpkj1edfm2+{l zU?UhJcm*^*9B=TCO1#$;_tEToag6?FKnnQRYq$W5LrxGl!2t=O^CwAc@aL1{gM5ov zU%s7A-7RYhJ7R;E1021fIKa9rG}oXegw}=Kryk8jAG*0_mIzk}(S8g|09^{a14#jo3s4hqd5B8B6v5NG^`h9D z$9y~C|=W`|4gVE{yk=+>K2bOas94#ho)CNCX)Fk~=T`AI2q#B@*lP9)*h zVhsVusjdXZlfcpUI0I0DbO6WhH&kA^454+vhflvPX0hIwMT(VX#LtbK1H}CeOxvCz zuH&M7_rC2^q_=bctP5!Y;RNUy_6ZE=^}*_O4L$YQB64Bezza-Go#<$CNEk)$4_UOk z>uPI|(M`O=`REBLFx6vCwAMHEA=_m=QF80W;6|h%R49<^uW;-Mzk|^0m1qU4G~9CO z(pQ8Lj{{u1m7NWRSGIgd&TqgV@&^&y$PeiJBr1}KY<0A!5)&Nc#X0wa2MpklM>n&R ziGUq*53rTov>RPQb`y3@(9VJV!8yb`|LSEMs5E zj6}L|!B%kQ9#d0Z+5tc+geFD8Q`3VKY6A!v3zU^-C~gFV&r~Ttg`nVGbT%R*7IOxu6lN zi5=DmMM->Yq(=aPN}C4v?EJ11jf=uf|M&xRyB{0c!zuK9I&MvKl&)BzEK)r+P z0-#fFv9A@OozQ;N^>ue1Ve%I*37Da{10(H(3`_w;Az{O%zH=)%GWjKf>tj7OzHsX2 zvK`)msnj~U$Z)$IS(mFEp;%j!3=LQ*8J&u&MJQJR+$q6VIsWRD+98}oR?c&GRS6VF zb80rNH5Xa0BH$~20~57Nxd5Bs2>>FyknmVMq^M&xp-2+Z9Ah1GdcaZkh69cSSEw$9 zqI7hOP~ifqQW~(kYlm-m(3=fu^nM36w6K;Ar^>9bEkNlgZ77n&JF$$$x`PES6I)6+ zK$nR89)wp|t*q%R1O?Pa-%(8rX4BUvKc4+KP+HQiL9k*_2%54(&U+`{ytnHh>HGD% z!v3XBmmr`j37TCnU5(nds|(tk7gb!EDVY4{59}sR=UxnTSssbH9bJbkTOkKRWT3X8 z8V469{b?^siFn3hjHYWq>jrpr~p0FjnMpT zGyT*VZmCaS-YWX_=t99^cvs! zew-GSXf^^W*a{x9`mh?iiQ;{CsPNW%7na`Abeokn@#ti}eESWIE*Sx0$${_<$R;n( zy@xN}f_n^hAT}X^U{KH>UjOv-$(z}$vp1J+%@eEKr7IkQ7}Cr*WGXA{LJ<_&l!+pL z6J5%BHi^Ry;O}9bzXH1DzLWM|1vdVHF-0A_jazjCe0F{DkF)E+sw_rD<`1~mHmj#i z{hkb9*n|3dZDvEE(<9JOx$<2U$G9aPfyYnpl6HzC6}gu7$qcP~i{RJWL7xrmW2BgY z8{=vp!GOJV$Kn<4)d7r^6m)`LCk0vzQCm6*hJz zVb-uniweDUtc-_tNIIogHeRemC@{@Kv-c0&++XMo(1J+v5DDVtw%>p@cuN8Po8Z2^kM{>y8f-O_iLZDc%u79f2@-9P7QEq|~!St%-i!Rmd4RW7*1lY3UiA{z>nqUcm&GGxvUkqA^nDz^uDn`9_J!*z8D zf~jh)ne#amcO?@0wRaG2OoH>Z3OZ1u8Vmrdw2p$PhsYVPDOts|1s*vBUM3>}k&x-; zW}~VyO)atc(L8JwiegC25F2KB3R9Mp+Gbu(#|yF4F`LGl)pNRhuH}WH+;K%+6#Xyd z#HUq#S_YXq-$MzNt9JFok98HbA;*~C3sSHEtfH$Ad5*8X)t^-*HZvButCS}4vVJs`f;jw z0JW^Npi|_}k$Iz^#<#KPmv!|@?Xt@Y{#g~J*;j4Rh@=RB>=^T6gQ0Th0)gqF?gW%6 zwwR7!N#Vi7b_iGjozmh>Qt#67;>CM5%{wfc1DXSC{nGKLvJl8(SGuXYvx}>C*O!jm@Gy9d0!`_bqIsQOtRWJqS!IYN1@a zOR>8d1lACu{M1IM%U)J=F;vyj%z?WEi;@IcO{Jc+JiFGN$^YyaBvdYI%JN*CB?r`iFAqhpP)_I~z5wb{+Y0wNu- z{NCV~WS}~~2r=YoNMJ+PtygviLWsM_Gzi&2CkOD2oQThG6O3Tktwk}NzIJ%Y)JS$< z6^?dAl;>fz`h>Ok5DEuVrAn65ai$L-iT;b&c%@Gn-Dc*3YsqrA*@3cw%iLI*jD4Wo z_mYIZ!-0PX^f?X_2rAIPBv{)tYjrhlEnu+=1Jc>m6)Ir=k)IfpV;!5+`nGPxq|wyc zf;m-zChrB}TD|erg~3m9$Nq3oR$k&Y6keKIi2W_?9kMI-I zL~lQZ*ODA!?AGx_ZGIi9TZ@p}801Qw93 zu3w`}<{$*iI*B20p|NdbKiLS2{kB(^CvVs=Szec>L9PJXYIV8#1-Y17L8Mr1TlI zDj{ILA`@#UvNdT?XvT;*1_~&a;&9m22bbPK*(owpxU`y98CisQet|m{XX%0X)Y?G~ zAdh{opiKY*Rk(JJs8+HKvXHi4=dJJoHwjifqJk|%QuslUx82CM>*Df)Zo}EcQ7W&6 zKC&aQU$-NIRl~~DU1DT^_`d$!@O=&8yHMf#x;K0mqhk?M?fzXe+^SI&IrI#nU24|^ zAFmD*R==hvP>5h|F=o?)d*-_`n*nhl5FQt@X{l}n`idfJ-^Vh8YczvGevQ>hn4>8Z zMzZoGV$nWpYj{GRXjm;8+Q3qI>z5V2cK>rHo_TSc`a%hW^2iU2%3Sk3CC00}#AuaJ z9b1i3#X|a=+tMRpt<+rs(Dmc_O1V_1wBLapB7zR#BbILEWto@2RmaI0rP}=;+yF`$ zNU97S2-sl%VEI3vTweTe0RAz{(~`dQP#>bBV~S%0G_5@PKS1EOF_5fwDrLX7REJU=W=nvAX$* z6KZM96(3{(00000000000001ZoV8eOZ`(EyMnBrWf=dcaavUdio2HG|7D?w623)sr z5@1_fc(O#%zweHuEXk6br0t9Vk;uE}j^y#VJ3VN+VRRGI%OmpS@Y(+C zS?{sebE(tqbr1c6M~}MQ1KOpJd%fAL`^PWK5|5HUg!Ev(vv^S)V<8S@V_V9^mNq~% zqGydRj;F8QzIk_iK7BnnAKOhB7!6OR$M1&VmLwKvjiz%dxvie3XVQ_Bv_@?;E$x0@ z<1%EPQ4zH&`X2|)Z5jxgtuD1>joQp6tDj|oyp2HN>{CE-nlRfg>ItLQ{$yu*=#IS) z1A8sPLlQ>65!m5v%01@SZo}JmgE6e9fIpmu5#_M;4Q0%{tdJm>2)&lELuees@w*}H zH^#xgN<0W1?{{U{AfmOwWO6zj4Ya3b0RDEmHsHydh++r`87HpPE1b|d`Pw7^&V?lI z!ihYEEBZj|pj;;i5bGyl@We58Dq*-2&x<$`H>3^= zq&HwC%MzN3-KCfp0rL`OtqbaY4j?Fj+UmfM0sPj3s{aZ0g-&JZ=*qr?k^Hru0*OFHP2LW&$amXc|7yV*-=w6N$VZgJEAotwn zyn*s6a@3&Q7t(P*SK1X{iZNUY-*qUwVHRj$iC2wQv!bg7jjQ(~xUA*PYFf!#^_P&}JDpC&e&kkxF%?#q2W76q z%XpUn%j=j-AmsaxwVuQfefO(r5?-sL|HY+%&dgyI;Imso00lNtJA%v--@heeqR5KC z;HKPR`_{{fO&-+nZXQBZ(36o|-3o#4fTGH@ez8U=6aHKzo9h%&e2so24dnsiwI!5Y zf@03AzSg*3%)7pa3xz09<&L4b1y;YRgfl(M^Pl@6gb0_EB!c=$K$eahhvJt2L-$fB z%Hb-j>u%|j^4g~OSk)Vi56woy)ajOmA~yN1RZWS z%0-LD0+{i|Xtb^mq?Bp5y;MIdG*;S{R|AozTw_0NT#C8az*Lwwn#y*jnqJdUG*4pA637y#hEpI8;eQEPS+RuV+$^;KN4P(yG8Pp*!ao5Qa@y&pp(!tjsr-9d$)0nyBL}e6U0?wi& za49L@Z(|l0a7JsKfpKW4DZ` zTUH8=D<&6Mh7xfjBwZ>g5Q5F$HQ%~$7D|8aQnCI`YW#LGI5qW%wcE1`lQ1@rE~f*rtA*=~MWC0|F;D7^**tX@J=%XY3{irs=#ynQj9H_~rZ&FmZEe|E>&y7Ajc A)c^nh literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lbaselib.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lbaselib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..ebd53e47218b394c4d5f26b853062fa0cdef1019 GIT binary patch literal 4851 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

      ?M~$~atW?5;+a=Y!j8JF#vW z*QQhPP))a){t_K!6m&e5q{%+b0(`9$YhKy{t*VrJ2kL?%hL?r}`u$LZ8l1r+<-cn{ zs*3(fXnMoZd&Um7ff}aY40Vmw(9&B!vX@lF%bceP=2F}Ag?xsvb1UR-SjVV%t}tb z?Hj+eOI1D}nq$cUsga5$7;;zdtwDw_;Mi_#<)&AfZ_6NF>;4RO(M3pY`!y<(R1||N zI)!nX^NDe7swQAAWuzMVcPMFut4(z;*aTkm5}NN>tZG6({l9^}5YQK21AVQO=tJvr zamrSAD(Pw`F>fWQF+vjQXt9v_<`oB7rJXY_7rT>LuQsW1zUpeYJI$75P|b7Ws)yv- zUJ=9D$tmmT*xHz<=ApA*)x2_5jYsDT9BQxF1!I$Pa;JmVaxSk86Kc#I2dx{%35Dm5 zgVqh>P&HP^LF=aVhQ9ql>xOZpYAfTQb;G#c&qvx@R-<}9Q*qbYaf6|p~`kwXhymr&L4>jv;g7ZVodNt#=cTd3f#Q5Sa|0Uyumv1te?!UtZ6jS+rD6I4P z72^eHuH=k#09BdVI(>6j^4&f(ZlHPfr4c;2G>bhhcT^s%iCJ3x+ z31OK-lne|uXE>)5?38R@1XH@F+|cJ#b-}1}ev;h{FuOPwS*~jLGjI2>?CxG^An`Na zmI2TQbfF=Xm%d{8+8<(SFD9z)UIi12B#-VAJ`pI{3K=T|yxNX$Xk3)@I5m>utRpFmT(ZF#=KBOr!0mnL8D8BR<*cWtkXZo z^Lw!;Vgx6Zw%ssw@L?k#uOv52wNuAuvOLEq!#$?C2|?nm2+*!;)Z{y`h(huuE#eJ3 J{|mEcYm}8X?AHJQ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lcode.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lcode.h.i new file mode 100644 index 0000000000000000000000000000000000000000..248b99eae76239cb871611db81340e957834dad9 GIT binary patch literal 1041 zcmV+s1n&C)0RRC20000000Yqg01FTR0000000J!k|NsC0|NsB7m!oT{jhVvgom;q5 zSG1mIiJxQu00000000000001ZoSjx}Z`w!@RzKFiVwCm+a1I0qnoBBGB7{b?3FJt) zJLz;ni#;}5%&xV&=7>)H?>B23LIEeae!$Gm?DNd*dS3j-@n!O;aCrgV`8lG0)@n^# zEM%?r`3Ju}ownOSaQeYJZB2u7JZrVjS{dR3;*=e?>&<$zp_Si=eHmbV=DcwlHK$gC z_x*sj?#wB)jQgRDUHf1o#M>5OwBcz83Kv`WC#orX8ak%T$?)d4R8%iP`pbP z^8o0XB21;30m}?*s%4xSv}7y@6l(2~KFG`&3q8afD*wnd4sw}b7~=wk0lGqNG{#}I zZm(i}^1*QOWqf-FmE&f06KkX}furH*syBk+-RKB-2#+!af5t?F_7K`0BVA}qWgZi> zmueMo$;B{H@UH_FIq6(oxtVZ3zRZQ&@l7sV^?xrk!(z|f@DI1Zb%%p)=V84X^zse8 z-`1L&hg@@0Sgwopb#J|+GbmVxqYcgQvOgff`Cf$ikxu+W^y57EJgoj;eD4;(jl02G zGqz0dJ%?DL^^HboY(`W(sY9T!rec_c8%))dgka<=ZvY#B-Z z*ZqNNDXBCvu8^-{d){5H%o!OaWcqkph^M_xTXSE5iY5D?GfNAp*H734G%je zyT=3#i|Dn`C(jluaAkfPOwIDA0v_#O)QkRX4}Au;CC~A(goD!*T2Zl-(wJ?U5|T*r z(5Q631YSM@4Nm)(%aLS!)m5w;%Ci@er8$)kbtGNRBx$0f`QNYcTe?VgK&1t|&z_Y& zSK4f%G$rV4SZ7oAaK~9w7+XQlk{CIola|tywGkZWeIw@EuV=F`MFUjg$qc zXp-!={CqabWIIbr)B6xX@oDfXhD7RDQ#7|1UU`C*zPu^Z>nycjONG|RtW2ueY^QHF L9yRFxg)@Z zMOj)wceS|y00000000000001ZoXuK$Z`(!^NB@jJ#g=U%$(C(Nj&p%s+i)D;)d=hK zV&`y05~villvqi@xzoyvEWLNacBno_ork3;+3_# zM=U*OBq%@A?w(7g#^5h60+1L4F4%N3p7A2%vl#e)VO^jbU%@nIn|_ad-C(HGcv

      05R@J__VZJY1abmf*cmV96@RzGawJMKKE0cqIoKb?zM7`*KkI^)HuQr zpYiNZv9x$VJQVYc2h%!dWVH#opmIjJ4eAO}yLpRrkWj-zdQ$eK^h#~=LzTQd$+^37 z;H>l|VckYh*Mb5D!kcti#HpxDY(EWM(?ud!@JbV(vUpf8JEkUX%UG2&8DFHga(K^C z!BBjb1i;g%+2jN%L`%-bB1+qG_B9<=L3XH$7uZbmF#3WKjVqDiGjttN*=CS-%Vq8J z$M9IiE6{I&kY1FCtI~6FHO@u3n8+AIvdZyxO()Ng6}li~PrBcVPPvjKGwYj6e!_1# zRL_#~H>0Gc!f%C$3blJXqAGEtQiQ1Ks=%6ER4MKqKh3>9Q?^l#cPs^ZROH)3D>j^{ zk(>_eVF6JwtVe$>Pw3DwMUVDDPbe+$9FZn*&k@`B7(QfsCAc#4T0ZFUSbz$UUvg=6 zMunJf+?+iFyM%*1!gsL0+t`aR-}Zx|;`uB*tIHeT~{D9c62Wb692>oI=P)Ze$I#Te582 zOO(r8Zi2tsSBn-uVC_-sWff|qsC3p(59{q~S?je~hrJg-2t(+C#<|xnb+mRLOorO= zO|?Qj8F+Y4+cXr|Bn^Y44G#XPidrwpc7;W=)pN5dj1_1CrmHm(^|7noi7tEVD#dES zl%_&yR0-1-AUS|ti!h^}aZ+_;ww`iLxW@{w_H$J!G-^NuwFAK>AFkkn3a9?>-24CG z%9W-H7wk2_YZ? zpjq<|pV$$l;a3l0J%OXnlcIVGSm6I*S_(V`y&`}nUd`Xz&Pwp2s07bUp*2UiaG9Srh%c^XnG!q>0?WxIEYNBrQ7z zZC9mu`~LFU$|{_9GF7TxipnHf;l6E_$`-M02wL&X(YeQH!H0Nj>l3DA*l8gKh3m9g z8!c*ECr*f1jnT-*LB~=xU(uBk4T1*)`k@=hzdBD13W#&l5!EwJ9>6vgoNT5}i1Xj>sOCJ)cU zDvza9@+Y3>6fkKNQLW3Xt6~dVu2c#KZPe~UD(lu@hk|OW(1RI~^!18`oc44jGy2f6 zW)#xNt4oF~Um76W5#ROKoE$FBYq+0qBL=Uv$b#_91ivG}r2X8mRt*MhG6@8bJ2xzRBL=#dvw=))`|6k)5^m5X6I{tr(h_1GiwSjcx4?Atd5kPv-l z;bLi40gM#IN8#BoH<$zcOX9&Bz2Ko-`( zX(0buH?30jhU?6l0gRD8in?v?8w&NnjT1tZWuS4hsl(_<^WO9PU+4bS@X2uW1SE8OFHMX|gml&ixndw-EHl73~ zZmJYiud^{~ig_T|?<$x(a*Q^~PpX$4Emuz@gj#A}^c#0>Z%cFCaK2=-)L6(gXkXo; zv0|@}1;nzaGP_7YW@zt~eAQO#?Bt3_dqE0M8D73OY{s;Cbsf6b^~lP=fu6+j8jF(G zD^rs)o|Osq%M$NO;2i*p=bona>!GLlLGxP)*)#7rE%R!}>})kXXnqkOH`}!C-4R1z zGbGIh@ebt-LL{K;p%dF|O^opC6_cT!e2sopzx{V2LGvfxki4CRV!a4r@hE;s2&Zl- zZaj06nEZCOKI`D86wXl5={*>d>_kW78MEJu(G?Azd2WC|-Z(#jd!J5^z2?t2)SvDA zmRC+y0777fL1Ez=RS~zDF7_Hbt*30fW|dtG;f8m7#^|deyx1aNe)R|l)_CiPcHW?m0eB<9-|Lt{oNB6WjkNYt|; z$ZfT9N3GmeD|gh&9ochN_IyRKd{wZ#CRkn<%p56lULg)SiOoWvS_S|{c-sjH>R-GX rpZC|s@5`82jiCPmT)7B={>jC@A&;8y! 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 Jyx(hkP(*QC5SIV| literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ldo.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ldo.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4051e9a8d02a719884f2a7fb122d7fe1ad81dea2 GIT binary patch literal 4806 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ldo.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ldo.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2fb44dce98bab298a52553d8e0ba51b4aa31615b GIT binary patch literal 870 zcmV-s1DX5)0RRC20000000Slf00+4M0000000J!k|NsC0|Ns9X53JL{mb^SXWcs}j z)IF^3ys+&600000000000001ZoRwAYZ__Xk6(5to;>3_hvaVfHO4$ZTQyEf41!x-x z5K?e$hnfXDvYn0%@xOC+`kQt@KPC3Pckk}rrT0RrsvFIx$3Px+d6zxzA3aXT-5!0y z`bWhPdD74N9ei3LZG*g(dU~h-5GzWeLXWn%Y`(Pz8)? z;zKxxffFshPAt4uR!|N?IzcEQ>4f2)C?w;BQ;<)>J$w|B&)(dvq-D)G+%MJm8>hBC zxxad7EU|p!>{cju5-!PV@*<}bPOpqp9F1Bs4nBtfqJSu(6QUuBM+eXSZC(;%;Q&_7 zt*YSZGl*oIL_*rwh+D3T=<+=&YaYkosG!O6RjccH5|HtUzvHFhK$T?3$o#G4#+t|@ zG{@d4x&X~}xFjg!?8D{xX?}5eI(UU|X&j%d6oxhH9Mwgm7=Hd)Ws3P5`TP4Pzm_mV zrhFb##X+#>K~%--mHVi80n`Xnny+**nsvc}H*v7e=O8^KG4N!?mF;r6ETyHsgq(fW8Z zXEQCwKgP}w3F901qHDQ`dguro)~(f4p`<8z>yR-x%jFktXCOhZ`OBnc&Qw_aFn{^( z^#H54^ES;GE20h8o9Iu&H;~-6oU?IbnjuK?og>?l%%^CqiCvi}b+t+3((x&mws|bE zLu(8xa+;}a;4kdeu<1-gAZPQwL&jez&bLr3b!?;X4W3cV+S>A;g@5@~Rx?o)xdl}+ zT-Vmh2`_f2Q09(Ogf_M*Vn-WhpPj*Q+c+e@cAuZSq0Nr}H+u1f+zMTH;u2*i2;1r$ wt*K%=9HYtg>SFAe*{(fUW;fho9)*8^-|o;bZ+?(c>@>07>k;L9=z;%Ya z4OmwgG)2W)Y)TL*$Jy%tz9U7+vaP(VUrh0i_wac4-1**EG>jf&Hg7{?O!r$K4-St$ z9?-GZJZALpc%R~LYkYi6{X^11HDSKCXu~uidk3{MojJ5>$Lc7w8jYiRvsG^$L36*|Xti4h5Qk$H%Mf~t2;M1MLFNpin9*<+1ykn1 zAR#~}3BMOgeZ?4@E2o3IiG*P&1Ii%a%AwlCs@5&*mw?l0;xYInq~|feHaS5degvGQ zPK{{3AKaXd&Mz)|1+%vr>g}2&9RJOzRMLV_NFv#WEaCdq%3MB13~vD;KM;u5N!-HN>HV*@@3LcRJHvyN*I*9UbA`{WEme9pZG*V~vG$s4WX7Ud!Y?1b$dXyhp@t> zAs5oPJ$68ujHF(im6ugO01QCjgWcUbN#EhRjf$nhq63j|4Tsu61)mG6V|Eq4(*RYp z-Wi+s?VYGV>EjAw4Pa?4w_QG;;7e5`A4{C0sDy=UtF`io5XI1R%HaB3YP3ZO+Ka}+ zWQNSQmE-B>&%xXxFT;2<4azJ2QZ}+DaE)EYpVAwzkdge(+<2Ytuxy`5H>P=bGZ?^+ zA8^Mcve_1uRAiE0@X>AP%$q0YK430^O$FONFZNEPnAfI^e`t1gcIs8gDpAHHn4)9w z{;$S+z_w6^TcC07n^U}Yxn5o8p~q}r7fK=Y{@w{ig@dcI)!(La`aCWEAmrsW^lQSk z)rmn{Mi_a`yD*9AlLgyl z%u66snC5}xM?AxT=kP*0C$ab+3@oHZ zU7Olt9BR07GAow0f?Gd>p^0TgpFP94mz`KX>w6MuTD;Er4Zky6mB1&`_OrbqYwhMT zJLiY%Myd@LU!z-d`k)ns*5ZO`O*^2sts_E~>UEXk0iHynOgf85OlBpjK#VX8B);2L z&By`+MDJJad95So`>Y8Tgem|1r{esD5f9r#`8+WBhK=ET^rd&&?Ok5=|LlEF2e+Hi zBsH64x1|3g6KCUmc56BqtKm=&w7y9$5V1Dw>OohHv8o#NJ=(-Bj*b}vR*Wc4l1^cU zbXFr|ffk4YUFCIc;12YfPFL=O-Y7%YOrYJGHg>ZqRPFUp)-bO&!Q0J)y=qU6BA1hD RVkVQA=jJLR{{a*;>g%9oYo`DJ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lfunc.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lfunc.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0811ca699c8621cdccbbb64989543b1d0039d29e GIT binary patch literal 1694 zcmV;P24VRC0RRC20000000v$F01{jP0000000J!k|NsC0|Ns9pyyl5I?gp}fC|ad8 zo|V7}i%IkV00000000000001ZoV8eOZ_`K+7GLu#1`d@tByJi=DJ?BR5ui%B7SWe4 z2&K+?lkCOuTK3v)LH+MHv+I|&64VlY2&pNxk zPOk?qPkmG|!hQxLcMt!%BNz>b?{@b_yQ2fxdwV!OIDGpCVmarrlJNO1f|q3cDZLYc z@Zx(Q2TI5=0bJjBp@`DJQyijLDyi-xo`4tnzyg`1F;B?&f^(QqPGY%Ia3+;t97IU* zx~ooax6|qTB|;XYK8Fv9@_oK=S0^aMA4JGa&@)zkPp>}BCgHSQe8IYKX}IGF_^T$37x zJz6r^Wlmq?bNS`!Y;t*eex_B~;Dos%nc#MNYc(Z8%K-cO0gF0EZyQVOW0GaR~k!huf9FBy!1M;21M)mHaT$pJ;n_HJxt5 zb`@QFK?Rz&sv~Bw$@Nl-O+$gol%SSBo_CrRiC=xY{xsE!X*M_^H#_u0>gwc3o^Tb4 zK!0|%j(y5$wjD2apWhO2A1>7T)Q5m)JTTEOv5&l<&{*Q;U%Muluak4#VbJSE5d}3J zoXCh9(2uIbqazyx3wAPlZqS9D9q5vi5K~t&&1lhaDBF``I~)zx%u5nvwQfY~=wT-+ z(a@0rhy|F{P#>sN4pUT z2nDok*~ zBE#mw3qY+nAhoh}wHw8bws?-Y<;p`vOg&e}YbN3`L^2U{3mHRGNmdIKVWe*0MtGGH zFiZT*R*1cE?8}s>i25gYe`A(kp)65VMC2ons&wHN!lQ;#ZA(+O+eYP*Rg{l8Ayq1K zI~zMDT5oGxy0HX;kh07hw`?iX8GkZ_CxECvi>ltpjKd<9o2PJZZdKdDB&sts z>=bj}%1(`xsYy+ZKCg44-K0cGWs_O}>gw7`fwZmgb-z(K)NrK%2@1|2y?XR?wQXIU zTfAB$#K%cCr%IbzYn-WBp(IUPt(`q9(w5teRx6_CBAEx+(Ou~jHM5Pgv8qLPTy}p; zfsmSA9$Q4~I5{uY3*kxlNu39X`S0AedCIvMZ%Is;T-iDFp}H}(aoZi6lk9CP|E+k; zD?%?X^XtQ~mBM3S-+YDvhFYpU1V= zr8fR_d0p~Ct8xK!zgY+Rb@7Cq0lnWi7JN`uV|7gen$W|^wTSsTzuD+nwUEX>ARdg zUHT0GlUQLi?8P~6ExFR$gx&@rGs{KonkS`Ro?!>id2A$+1)U4PL)4u0Q=Qz=ehZ4}HC5F*a0)VD_2)F0f-A42nC0+}bNN oN)4UzDD&P%B(Pe$^{w%LLdL1)|A&eVG&$4<{CwW{7q@$$46X+%n*aa+ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lfunc.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lfunc.h.i new file mode 100644 index 0000000000000000000000000000000000000000..52b113820c362ffd35bd9af32f2913bbd6a90239 GIT binary patch literal 557 zcmV+|0@D2e0RRC20000000Hd)00g%H0000000J!k|NsC0|NsB`VQ-%w@k(l$i7*5p zD9_fMBIi#400000000000001ZoTXF2Zrd;nMUV4W5N!{(=f<%Y*F|Y`w@0M*C=JjhskbgY vqLG>ssmRJU@6$WE_OALBZ4iZOSN7tg<3H%1pQBbzxV;8cOmOcvihOba?rjMB literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lgc.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lgc.c.i new file mode 100644 index 0000000000000000000000000000000000000000..c0718d04d16aed7cbd739e68a83f05b0f9ba6d84 GIT binary patch literal 5967 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lgc.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lgc.h.i new file mode 100644 index 0000000000000000000000000000000000000000..86f7d3935ae4771ea14b3bdd3119241e46ca052f GIT binary patch literal 1259 zcmVU0qWcR3t z$`Y)fmG0dD00000000000001ZoRwB(fH#|bQm0~yf{@rqBB^CFd!#gEJaTyLb3q@oA}3ZRi>Ta zv1OtALh~t^l1&hEu!1O=5u6vXAiu9jw4~;DV7b&Y`vNGu9cV(j2;ee!bX-nB=9`d0 zN69eiL5!MXv zf!4%}X%6dFBw6kgH9=-h5PK&00Y?R3q#I4mypD@X&?g!J!ucHsbTwDcrqhCIc z26t8Cr@{1Ll$p;<6kpQtZf=_8wu`DDG|i-Zj&j|NLatJ(%Vo*Ai_K3y#ekxzd21U^ zD;=-~?58S-lHsTjiDi67lXa*ZYDZ*)KuLaGqB%W<*M&T#&>Y}VMXBA!7`u6E#8E_j zo{sR>q7UU9CLXG6H`d~wTURvUomZj6=MqCsVK~IMX{JZotqi{2>`N?4)3TbR{Q5i6 zmOK>4zNlZ4UA7%-u^!t7Wq#X8c0}~4M1U{P;UaHT^<9CMoxWA8u96rIHJ0O{JXPQ? z_^k%GVZP~*$iz3Qu@q;`keYm0;Ocl@U?gUF+JI^EHu=r)Hoz4eeVP9}Sj^^FD?X`; za-Fcb7RX~HZ{G5N6Hh2)aC-x(Z9Eh!i5u>j3c{sC5#uyO?=}3ht5qjay!+B}4B_99m+#A~r`_Xw(qLS< zz#t7ylVzDQ?m#(QDh3@ZwM21DLt1Sr0+;@qWF(azu6p_~m@Ga%+z&y_&Vr{N!Y8AjK5IRBvmC?r{m zRySi<*0(qS00000000000001ZoMn<*Yui8&g~{vwiowl;qbSxbmR*|`lqOJtVu#py zDn+bTD|@N3YjiPbga3PHC1W|!i_o6=&d%&%E(lY*zXjjVfF~|xW8e2OKk+8%)Jaq7 z*)((f+jKhp>U;JW6-pb&4Dy=Zj7QGMvC4v3xsak7F>*mHgBS)}hAASgXzl^ATg`%N z+Y`%iEq4NrH?!TDJBC6fyr>jByzSspn?tk-nu~w55=w%~@TR1oh2SM*s?e>m6@n|y z;fJ1IY_=6FR3#V(Asb*z42ux*CFPlryqzUxr*rfY#8G&MfRHS&Qx1d1HTa}pXDyy- zw0=8^gp?JI$bczXR=R5xKl2T=w({3+_y+F;;C(PKwWxMn#tAL?!PIIq!ZNtWF&4q& zLx=1r`$IQp)H=B9K^0B%GbCL02%)<2a@8xVvMaCF&%JtC6+&)0<}q0R>_M-z+IGl& zf6SC8_3@I$OB9))zXx)dV|r*oJ`SEj*ej8?0cw{{4~BS*R~Rq{Bf4sW{FJkS97cSM zdyatKj^SLd%gy(!maO@`zHZ&1$#_?nTc&Gzw}v>-3BHzZSN O-N^VRLjD7=Cj=dUqM&Jk!`BwgqAb1 z-KKRt3r6N2>vt+ zyxHS}M??RIM~B|Qqu_gQ7XI+~P!9KJ-}ylZ4?i5pkX9Utc;)Rp+8yo=_ln%#i=#A- zX1o5@7h8M%t$ts8GY(*m8Xa7TgWbo6F#Av(?C*cSw?Et)elLcPkG_L{hayjBGA~mx zdY_4JaP_OwO9C$s#CY$e=)$uoZi-SadjN8ld-)Abl2SZF?4$Xj6z6Ff`BFp)Vz#^3 z>hEoBZG9aje!L2#__NIOB;8&7Xblx*5Umd(!nLtHO6EAW^>rY_D3R)1Q{N0s-keS+ z5S?^Y;?wPMwKPgfk*$hFE{j!MiZ0+W1*(@)^d|%Q z8VwxyVH8UQ-V-0U1Wk|$>_T)s7Gke2d@qg*0c@PCJaPK-SS-C8T%63MC>K#7uDo~! z@b_?iD7q1Y63DPA;xbFqSb9kp5E%B3=~FJtRi20;zTLuqGA?9oRT9PBiJFdJ4Wcws z%?p{42)*;5I1&#EAdQ|p5bzbwlIC5R^b|DQY$K3P<1#%LXe8${$GPy)InN=V=eFX< zRT>3^4MA(-hnLScapc~|M8+}7uyis7@caQ5(pCttOe<(RL!5nUiD{W4+zhDyWw(1a zo{U7l-y>lDLi(4hz$-ms=71CgXZ-c_{P|?m>$!p$rPJ~zlkTbcSVWipDlm8wXfL^` zq+}I<95S}6Lgr>yeYWXbmSH6007ns#i_u@kuU=pLV|@O6^vfD<$4WdA?1?ykGnt6r zeiL6QKuZbed9zsZ7Uom#UCaM~E)%5=m|9I@N}7_Sz)oTcYXeC&?%A*CxC(lDe-}_3 zl``jzI)0oMlI5mDh#Qe@nq5t+)XEY;-kF)�rI32-L1Puc?K@HEbtSBTyZ$1nZrZ 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/llex.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/llex.c.i new file mode 100644 index 0000000000000000000000000000000000000000..c36544f16da8def69b2b8bd4c1098b2841330d7e GIT binary patch literal 3688 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 z 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lmathlib.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lmathlib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3b3ad2a7a0bc5154d6c7c26e82da0e4bb7169a08 GIT binary patch literal 1536 zcmV+b2LJg00RRC20000000qDR02dqp0000000J!k|NsC0|Ns9@7(>c(1Xayj((46s z)aO5MOLCw900000000000001ZoV{3WZ`w!@R=@gJ?2-0@2?1@`?5w!60TqKf~1Gi#fL!)`3--510>^FBMfp4~T!=?5>IJ)RS)P4y0?)9EQQ zPrDt~Hf_e}Nw<4qc27I)?$mBu)6aF`Y1Wil zjl3OMAhp8lk3?&no}mWOTdlLErZ@F7qP5Rk`nldA+@CTY`DFMUkhiFR7g5im+#+a# z!H;87mw+u!`HK)>jC{iAo!LAh*FFd^;&>QYW3JSiilQ7ip6SLGBNt(0VHoodYZw|v zL^-gS?RabztzoX9@%_LUk3O!MstEg)4TQ$e!g^&>EX6=H_P`#Qj8=9hBT{WQv=gn< z)uFnb_uaE@TW`NVIaOCOw}Z>k;QG#(3~!Cg;pf}okW?q5ruM$oXsKXT2_viu^b`c}Bu}Xd@1PfvWaX9zl1=P4Yt`i$1QE+USb7p>%3{6$l9;k2@#oQxW zPg!oe38BcP+<@R-Ugo9U%y;)=`X!47f_r%>nGH(r?gutaIX57+pycj;Xz5m? zd-WPE-2`;6E}*5ChwimLsI8ZGq!)OqlRR86)$h!4OZGcR?w+ab`aUmt=%MHyo)*4U z(h*4h`ig>4JI}x6$5R(Rd_hkVc0l?B6$-=n-3f%t?dS^`cCa3#o_}b6=TXT+8zgsM zjKF^?=LQ6S{ZhF8tekfc+&xE7)>@_gXsz8nF_^hZ`2oS*y;!Vl)p9*Fx5uH^eR5iI z&*uBA?c&qs1@%M;Rb#iD1)SfiXuI19NctTI53bRRuz_7%Y@n=2lclZ`Ww6MD+PTDG`|c-%IpC z_?0CRG5oYdApLrYI9vz)MP8Ml8gN4-5AO~Mee@kG6l4|diA*IX4H;I6_xl=5JDx?H zka&z)%p%kceKKVxjZwx+A`blpBjHOJu?5V8cd>VK_nS%{(0x@sgjim(Kq+~oZVcB( zSOKU`G>75tc5r=ZTn+x*S_=+Es7hL`CI;VS3My%C@G~3>6FxbSnGW2mHh|nk>S8U5 z+kqq%Xq~6xp1&=Tw<=EUy=n@RlVvc?jDxZ=;7|&*T(!{rG5YST=nxjFK>K zVg5)Tc>ekuDvuU_ROmFU)FHF%0cBZFV7TWYzPcV}INUQO4n&6IH3}H=`nAT83P7Yd zUVBzJ5*ZHHe;E)`lCgoOFicev1|o&wJ1$`$QdqP?7N#IF2HX~;0#X@+C#K|RlQP7t zkTC?2F>n}NF_4f9=>muphT~ttKxA-I=+y|3!Emct!+}Z}FzHJih!lniP{Kg0U~DwO zA?vNT!Nxw!5|KzMg0D`}GE$PUfoCvWcvcIJM2h1JiIhi5GB)r8zP=wr%j54-S@xjO zlh@Xp0QN9S$`{h6GQJ;-M<0#BWR#ppG4(;r5MufB;Mm}7=D@d4>}P!Zyc&G{0!FR} zSHpU?eF`p!lhKM1vdDIrYax7$2Ug%z3bel5e;yit493N}^LWNk`vB&PKnA literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lmem.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lmem.c.i new file mode 100644 index 0000000000000000000000000000000000000000..fe0802de845944eb72ccb9e09d764fd421345f01 GIT binary patch literal 1106 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�&90Ssk9S(rx+~53Z}i18iyYNqPlpuK8j*6p@Pk+=+BI?FF-tkaK34 z@2XB-)g}S=LaS!-#rl#94p)4KR;UDLk?luG) zR&z4J+p85*;hApKB@o!Rt8W3qAUZ1hmJ)~?Ce20yL;;_W5!4!UnvqFIWG|{+VuBk_6J_=*yn@=T2X9Skn z)s)H<%S<#>IbTKGrqhszf>(Yxfdu^8i9B)6h{b#Du8X*0N)>*(I)(*)yAWRW#uz~v z*FxU+2Jc$Ek(5oQ7LEL@Lk2GDAj^y=X+vR?XTCR0$O1|Ug05Su?YgXY)jLtz1%N<) zqpN^SEJUtzGv{=}PrO%o$QuAp5uG}=A~e@6#W^u zn3~#9EqbiDz9a#*h+|*Y0B7cxB%(>DlS>+4prNPmmDgWl&M|PWcCFH;@!q?15U2y^ z=dE|Wjw!(6O{s=)_gQFl_HtiX3ht>;ciix7_}bV?SF8fVmGUZD#Trl?6BK2>C)t%P zpp@hHRd(FLo7kB zJ=KEc3P3PE+6b;6d?IbQc0OBq0S7b!wNsL=J|WI8`(1lc7*Lj?@URq^YoELV+dMLt zUpbWSJrNEsef)UaYBnu4xr4u@_~0j^Eg(stB#Q49sl1Y}AA0A+ z;f>aH7gCj}7}xIba^^b7yPAr@`3(M$6W%HWVm;$_BmJ`=f;)QDdZs8qt@y7#91l)G zy;XOct@6!Eu`1_Vj&Ah+@~-vzL_-2XRe`Z61F0898C3W(d9PRw$Ue?iinagA&O9+) zToQFMx>yTp_Cm_ZEQiWE;(jyJPw$fo;3^YDW6Sd~I!-t@v0i`NFI>g zZxXy>h9RwY#W4HFFY&TVmKC+${Du^sl~@K~8x3^5hnlJ(U;AJ^AE=$~SBhOsG&4zU zT_UR6(#)|G{IAN4)OFU?8|_wclqi_9L;#WuSJN|2$sQbyncyN2TzLaqyBCR9fB`i_ Zl|L2C(}=4p@7r#b(G8s6e*mWMoB9zqFJS-x literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lobject.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lobject.c.i new file mode 100644 index 0000000000000000000000000000000000000000..140bc7fac08034e64b25e207474c73c2e853dc26 GIT binary patch literal 2051 zcmV+e2>kZ|0RRC20000000+YW02R&v0000000J!k|NsC0|NsA9Vz@Z%*2|$hL@cU? znj9jx+0brY>cr*cmxO9v}L-P@xn|V zot**J(c{WiBTK5T1f~i9`+n!%tCwMu?y^5^JOTOM^Z3sDh;KSxlHO(F=9mtA*BATZ z`H^dn_YM#C9Y1iL7s7ra#Q253Klb(<*YRKMD~@A|3TJ13G#O2HW#;WhiTk_o@{!m1 zrn5Wf3?Q+2iry?!?};4{5S@JhqSReaaG7WO+ho>y*A@_P5DO z&_cu_3q1;o*vrEtmXzFxjAn&HTCh~4LeS4_MYvezbe`m)Cn$^=;b_?z>~=cehOrkF zzMz+0ewT{T^0aXzbKl7p56;5m!BG^tn`c=VE7s1pz6iotlorpu>SXr*)%@p+H)jnP zT?MV%I`I=eX&kJ?YU9K>vwbLYCl?RSG_Ka+jS`1{9vqp|yWgCs5bUIjc^sCo>4ZLg zI)6W#-47M;cjvEX_fs(Gpn??v$R#;3Je-RKqJgM6)D5D<$)S|e1Q+Dq<)S;JOr)8R z0+c>EDp;1_f9v(SKcw5G$OPp}0Xiq58wDtoWKH;<24w$JlhY1O`VPCNI?)wQ2p$NNZ4lLFV~XX_D581E@d{+{*}JVt~I*!U$#YtSF| zw~rJqOZ!>_sgy>^!hYO~oP8)zol;RT=eVN=7IXX3-aokJbW(mA4<|z#pFQ(=zVX@r z%0~$~7(VTzgd7f^_W9olIT}9g^ZzA;t7vMnIYQp-s1$BiA`%Kohs*5~I+_w^yL#Z_ zGuezglYQ%JbgfnrXU?toqi~`N_jgoYvj-0H$&fZqY*Sk(p`2%im7{Rcb<7vLUzOCj zDk*sz=H9ZwP<9T~xv1Ldu{x?Cn?}+gdH?sH&faWL!Gdre7c23H6{|kU;)hf|1J0(H zpDr$DXRppT1gxAp!~ii_inZelFI-_#Dw~`* z|DlXajaH2mK(zolPl~94cgVA>0^L-0HSYE6eAIdq_FA%90lA8Lb1;Tdrj94n{Hn(S zyKq<<(MR&@Cp{sXDxYnrG`{PDF!QS=A=`K&6M4$fe30TUwx*?VRRGs#4?aJQlZn#hg@D$K5WSz1xdDYFw|j76PL>XDpZPXH|;RQIrVkZpE zan&$1dRe1qhOQMCQPl6&L=8{L25-Yuz1!80yf!4(>J~w8X4=S>}PoGEq}o zX?G)@MtuK?q1$Si(JbSw?$;!gWA#x#>^+*D(Dzsl>RQ~mv7eZo`e)3$o2_rq79dh= z+vN*XLmsybK1N6RZH~J4oScv2?TN`GereLFh4&RaxbR=!yt)vTHzyQN>#-r58QFNv zd9)Y*)mA(jjm!ekxLL^s>ut7a^Bp4#i;hm3(nwJ2HKRQRst&5Uyy3?LwW{yNE~SkP zQCX2`iPIDu zkdj+Z@l33e8x&HQRoZkRf$P$c?$o_bzkJ8Czy?Fyo(c1Q6~>O5t%~)&+^;_=V#wiM zuJxl3QL$Y_!F(^ZZCdeTuO2SO>Zr_6W6HJ$BR__z`lG~$9~(`;Am^MiEu~96sO?c* znUNl)AhWc{>V^kw>9}sqz#tNilB!I86l*P_Uw0ag) zqH45C0Ijv&cOFu-@M?kwF26J-(bd1Z*R{IRqarrjgiK2xK>JmEm30kx$+hR?CO>#t z;J=Z5(aojaD>mZ_YBwAR@`ejF2J`h%|JU-`f;8SsuwBOY7CyZTY`N7AU01W$Au0pquye*xI%3WS|x38w%6 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lobject.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lobject.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3b67ad6dc814927b0a2991c9134f27c8fc28e2c1 GIT binary patch literal 2761 zcmV;)3O4ls0RRC20000001Al!03n9}0000000J!k|NsC0|Ns9jFEww_1mZ?wrfL5o zL_00000000000001ZoV6MKZ`-yK`_cX@xNb-#&v9aRU52_T;HFs`%uR~K zDe&<2;L;Lp>sglcB+7}`<$vGZk&;M7?ve+zKcp0SU%Wfsm%nR!ak5Rt<`wfi@5PZf z`1#25=D!>s{=#S8d_I5iYyZ#_N3)l|a`AF-G@l(3#w!-)eE(&y-|HV_sdo^@v;PWD z_LlAM+6SF>r^9|c_W`Kb?rzwiH#kIiHaI*yI_M7$21l&_;??2c)!-#dUCSsl6eEc*T8|Q=C`8$y6_tSqF5HBh*ZXz%V zi|34oA@kxe1VwVZZ)u!^wgdyB=5vBQJGrEzaxpB4oy6-kK)e^+7b#t92UX^PZP(mO zV}x3F8TiXgAPH>~AB`W&C6Li5uBjKrNbzZv0(ByBCx_rO)7e%ECXMx)rz_#t1zjpZ zfmJ5c94MeL=8g6C*@=ey(qG&&5J@&erk{{rrT7V7EI?97c7p#t(lKVJ`ZXe5Kcti)`6tuvOjbL z=NTAOI^WkG0D>q<=pErFFs6lhrG>Zb!P_$KMcl$*BO-X1&Z7GSW(egxk|XK_$oQ!1 zMYj&-x^6uQWI{HC3D^a-YuzGCM^lpWxXJ_;cnRFSQy2T9^A76-)A*S1A%RWf@(mw5 zcg0RgmU70B-CMMiC(}+EXj=iZ&SLgt7PAHxI$zX@>u@se{u6mTU?!7=ckJ;@I#sy= zHobG}d{yc!@NHK+bH;8LpxwGu`L~v;()E+%DniJ&6HH~?CyG^sX#D7eJwCMX7NC; zhqMhM;tuvQJH?CpS~``l{9ry8sfbiTo?#n;fuoC+T%7t)#bB`Zp<)jrjs*ZU3=qkw z#f7Zytq{P;_*%I7+m7cTd^X5hYDGxnX=OzP`_NOBwRpe%9iXjJExf;JH z?H2I$lG>>4-_%;6cGc+>et0cc=l+nf18lo}aaWm9gklX2M0vb$t7|HNblyjn%{A#;3MYe>-AQ#6;YO_;G%FAtn)P^0OV|tCm~qTo_?W6VE5p- zQ#ATOO{5#)tKA$bvPDGG1j&{>TdM6W_)|=w)fLoK-(%5Ey{!^>Xef9AHj=3W6@H5X ziF(`KlBX0(V4wZOjDbv9?KAbS#4q+OLnuAnV6FfEYw2?sdpvy3aw78>UFqYAa`3f~ zoGjRMD56cX%5u^eiEa))e$zb#`gMQ(&=dJ=wuPoZ zu%dBMmpzXZRod`kpYCBX>U0uCu0YJxIFkG#3w+T)6&}wItGnES zr&QZEhhQOeQEK|7-gJ~FS_7(sN3O-?6zd9do$!>eGZQ_?rXUYb7v?6sB?@&YFnTh1 ziXLmNdA8D1S#i6c$!&;3Go)aK_)nv&(bd`X{pcG0Yqk3IgY#>(Xtf6Qql?qicM9w0 z_JaYO_M9)KBLH_adT9m8Q<-?$se=?kQWE3A?Gh4y=}vHS$oUd#g~~u8@(J+~sMz=+ z;=LAWXv{a0YM@z{|0aPq{ME<3QGyfStV%kdZ&(Mg72igxkyLV5qtcRwu8@!nzFh_E zz#Ssyg)zhmSD{w1kYN2d$IF55t>E#apJ}8x5mAZ4?5lK=ROl#JKcRs$o!qlf2S$pE zcx=qYK_rae)?`+1>S6gG?Uto3!+TGL=1V97!h;8cBpw9s2i7^!Y?Xmb5sG>9Ng2cE zhS4kaA3>36ZE8(N9n9>p8ZcmYAX`0<0DHM}G! zQG$qK#{s!zv@(n-H!G@lfK7u1iCi`NhgNCB$+=0aV7fxAdje~~R=(Ht{0k?ZhkT*q zdH?n6gslaKj4b&ADv@REJBf?Y2OEh5t2s=>2h6|^F=j`|ooIydVn97kk&p1`Ipb-{ zw^mASs&|TzM9_+!LWDFT6}Hx{PK@dc6WBZzS^^$z8Gb=T%jhRglz%3`3|Lvfy4)v% zO{uQPorWCceQ3|P(7n2e5sp8vV?Ph!(h$Z{RbHSEV8M$n;1DTH2H`E=!hayptxBT< z>u0qP=r~yy!LgZbIn~^iXzbD7{l4oSA0I;bOC>Rg4ofJ6_n3lm5x}+j6nP8p9UAYJ z0~W^yyegQrEggw3iNIjF|E4suMF-;3M7|dsngPqR?xOTn*lJZ;eznq8Q zMa;2>4YJ>@jUVKonFzdzfzPadChMBNH+JCd<)O5&O=zN$OoO3JGPxEQ z$M~V`e5BCi$d=i>udYR(mlId$x9XSTwwcOy<(>#RgF`7k{tT*d`oT1?W zvVk6lqs{&RcoFQNo?zn2o<`eEunzY>Eq^>kwvL8|`$hQ$-{Fq{P#vR*QI#k%kv6% za5P~ni0!e_Ljrtj%#KAKOTn-bpd(Ay*y4||odDyW?KNBb!7t zM0Ux?1JLMmz-&GKrmRYZfJCbmqD)AGlqFCkKwEA1=&+|H!BQLOB2+3=&-RoGlFAvR zx1_ra=|xOAv2=?_{^=QeIww()7xD5Dp7TgKl)1~((!$}*?O0-Eao)Xk7}r#uCzm*M ziyX=&8M*}-<{jn(bqfM5dx2@w;QeE0dntPhc@AkrycE*1cqyd0@lr?|LK0RRC20000001E*C03YiB0000000J!k|NsC0|NsAjQe)Zh`W{a@@ZG~X zFgH$thv`oM00000000000001ZoV{6XbJ|D}uKftVqAPp1k&M8A*LlIlSCWi#oU!2m zXSXhwbA%X-E<#dCBEgqUe*1OLj9wAmy{go?cI{}?{mj!n-90^{AL_OrJcjI34;HUG z?PaI^^GWAbm)WP?6V|b)#|j}e#td@;BKwvX{*!f97myj?D~Q2 zFIm)D*MF!VAJvbJ;7`LPN~Po4CqUsYSAj0#9Cy0M-Ivfg>9xDP?kR-+f`zdUgIxfB zB7m__g_R$|XlubICyck23meN`J02sE8Dn6Q0nWoZhFd>&YzB@;uj7D2|ugX(USi6`>6x`!oZ56?S?_Twqj%&#o^YD z9p8(<3K?v@$a(PC61?pOy%DugM|a(#;M)3xFdhi{WNy4>uyVpEh8M6P@~Ae8^_zCY74GOfbA?hb|1Om#@acX?MBEU3WXHMPnjr@FGiXuTjsTRgto@bY>2lA zQF`A!!Z)f0pVyAPCjGVLt_pLDIT_e~h>C&lEpZ7DC^aJC(yD*Qprah9Gjt!O(+!2o z7e_Zt4efS$swscR$4_dxXsvU#%P}ATYYqhxf*CJ{#W7n;n^z_z#+yz*W8)&MNUToR?Hm zLvHk6_30ZDkw1#kIX{WfDzzj;W z;R{&#pU)rv++FQNGcCxvH(U)$?;t#b1H?qe34M@b6E;h(u4~sqh>8vyRy*=FGWI10P){#eOPInkbV8awhQ5$qc}h z%(K@^M7n^$y+bbPBkk?8wW`nCDKMEY1G#ihe;cnfO?AbLXtKL zq*Kib(&j}N!omxw5bWGKSJ6pkWMwLJiR;Y>Rs8_yJ~0ee#hH8O~U;lfA5M8 z&y*|JN0NTtm}XX9_ozk**Ni%9Xq-*jwg@*Y)J6_S&DCUcI?(4BzlN#!nx!o?Tm8Ls z)!{x*+lB&$^Fgv?La#|s_9_VrV8d+ zuaE99Fe33sh>XVi<+YUAr9$LKV^@|l#^aF`1v8aZ4BvNE7L# z6-4D7hLx%2@n?JZd0e5Vs~P^RL_Q;3DOxW7DdE|(4~ACI znGHr)1^GrNHTMiEjhCAG ze30*-%d(U4FNb9RRhGTGy(x!cvy?-(<9S)c^W!wrWF`!5%R(;m9`KNY#Xl!XvgY{K z)aTVfikZ{m|4#)?sq(j*3CUx3QNsl6)88E6;O`k2rKuu}?aLrj;aeYcSwltsO49R6 zy>mFA2auUtt$AohsY$By!AwreRmqhK_rQ7o0?YzSRDnbV^Qk!HR7{xZ|jo zy0|w-jFD%Unt1JMJROb46QLW)O4#U=Mpr$f{>oVi51jvnn?aR;yX6bWh~WjHaiaFQ z*jGUbaVOJ33AdTxLN3^ny$p2>J*`p@Ta{x~8btmv4%T zDvIoAI4h;nJHQ!zRHag4kU!T>0ob%BD8JDlwokbN zqCqZ{!~=yAZUIOR`wG4uUqM_moaGK2w|6)47Gah@sikvJedl*K-~D?37UMPQ;Xjlk z6^0%pImbH(gQ`(mh9o|qCxaH4$z8U%;ig(CvLd4XR+GU(SFUu2zhKbrC9nc1qDK1z zV$uCOxM=Qu$fB(qH#!nH9E? zf@SkhHJMRj%_6cyQbOY70#ID%Bmat#n8h!)Oo3RMGvT;5r>rC*J~`W>Vv;7+E5Q}c z>S-D(W?q8(?nBOR&&Brvw9iatx$;A7<2M1OO@!UNM&CLDW;-hfQ|L1tAZ)tu=U%7P z=7+3k?Qh*B`pRZOEN5465(bF2vM|*%`{^sthv=gdM9)E?0-zSYByo=UrR7Jqe{VOz zcmJ3m4jFU>DXzEkvj!m@S7S7~1#^C>$iE;sm=vhPuPNKjP7fmyHkh^PV7GbF!zITE zDUSc#Jni8MmB!&kuP`e`QhHj`6QP$qd3Gj_se>TX}EBr)BWuri8BNURMe#)`;iiq}w~n4S+&F#$QwAEm!y`Qw-R zm-<{6;^1!Y7mqQcPoa~0KOpx-?{cN_{aIEq@vttw4k?@Dax3@ANGoD&-sAE7BzLcc z+D4_abgzafUIMtdfS=WU81sLJ>6T$=mGu;7pSig9cu~@r|E|VMemhh4G9Ic!I7&Ru zHR<46@N}c|UVLGbAA-0*@>MNYB3)cqaALOM_dZw^wi|KnzF?R~bi*O5SRwdxHxZ+& f;b3$*yPpiE_gAC4*(I(u=D` literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/loslib.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/loslib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..ad60c690179bdedebcc33d23613d4604c1e36965 GIT binary patch literal 2165 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 U?V5iUFm&hYH?P3@f6Bi@S3%QR;s5{u literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lparser.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lparser.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f28b89b7bd44d40ef15b8d355ae4c08a995b06ab GIT binary patch literal 1100 zcmV-S1he}90RRC20000000ayG00}7o0000000J!k|NsC0|Ns9cQOMAVUX#cTG1e1J z4}`q&mB2Xw00000000000001ZoRw8=PuoZkRzKFiVpJ*>qLh$O%0YA=0)#486A(10 zcc&9<>~U=3tliypF0|sm-^}hhgtP)(KE(F;dFJ(*^{XH%%6oa;fIe06}#;NJlGp|qH$swhmcp|{oZzayWP?%YUQO+8r60hyb4;4pwWQ0 zgP1_IxjBdS_TE0@p|i8I-)eVSoqcHU9`1AwJA0stF)C9)e^J6)riYb)3rpswD?~Wv zM6*e1U|5(eLdYa1K_MHhAlS$f8DmmMyh(!%ddwuQSO_GeyowRtiE<>tUJgQ&-CxHVegGw!E7^&MwyasEw*3 z!&56G54!AgXO6;t^Cjf)d}zU|KoUWfoAoYIr^6TBUH2|~m!FH&O?6@+NM=gWMGKr?Aqv1(@TE zoaiST@>B2z9Y=HL3hB%$bS5WH(q3{xTzE>Z9U-R?@loLVv5IARcyQ=TqT|;tbc*(H z{+Uw`02<@mb5cRM^YP{TF=mK<6iyjApu`0|Q0_KqYK9%eCVs0j8Zb}QLh?>N(Q zp^Xu0f;@Egb6ZC5I3B-%+q-I3f_uLr*1I}rEz}Za%uQpswt?8oqqr3!ZMowlnbOX* zw)u>dQ(ukSD{}qI5n5>ZEVQhrofe9~)U`Qj_*sg_cw)UUQbdN#>rAqey#0rO-e)XA zKbOZftdIG>!%=T=bJqK6zY(MU)j!T({oeDW&L+HaE@>BdNu@Kdro|ZLLSg*A4$NAL zrtWxH3Y$0El21p&<9fYFmVe&3b%xDVjW*%0!8tU(H{ontB?(W3ugw7d$IpIbS+vCF SPtz9Xu)*p`g8u;2KhNsyqaZQ> literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lstate.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lstate.c.i new file mode 100644 index 0000000000000000000000000000000000000000..56bf648ee1b510c4a284cb2e3542946b119a4077 GIT binary patch literal 2145 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lstring.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lstring.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2d1018a2112be0a7634be8193c2d18b77c0e70db GIT binary patch literal 1433 zcmV;K1!npH0RRC20000000mh901SEn0000000J!k|NsC0|Ns9CyA6V98WZ1bj{1Gn z`pSh9K4%*M00000000000001ZoRwB>Z`(!;M!))3a9!6*wqsk$(!AP0kOe`2GzIDe z7?x$mSvp&4Wu2irImwFt_mRBQi<5T40vM5ae0fMdQtPKeZjRvaa3RIsei$tF zq}ZKDi`{5H4nq+h93Jc){(2Au?}Ocue9sm~kd z-7dVjj8Ul)_css@4oDrs(P)1dgu`$jg59H0cognIq2{tM3eF$b@P@3XYzIcnGYQ@o zDc2fAmVx!BArX0;$r$EOa8(MQO{9b~N+w+<2CkJ!BME6vKnF>uJM45iKc{(=m9c~q zhbx(&FqVrnmlf7oR7U$eK@TauMrk*Fn6^UpFe&xG0tBVWiY40PD( zY*ZQ(+Ucy2I{h2-#+TWY%%FSK$6O5L@_~+g_}T%uIQz(fpxZ@xB6M<$QtQ)Ju50Eb zBFmH?7T{fYSN_gq88IFhkI~IkKTw6)&_^|ZLYlJ3j{$~Vh(w+%0}fPNa%V2iz!YL5 z3yo2RXyXvTm{RyK!`BT$Q-z1f9qN7yu}^T!9M#`iKp5SSY@rJ9((&jR(i3NgkG-B> zMYv1v(dzp4>Wb76Um-a#qi9>3IeKl(zj9&?f;D;}73cGqj~|kh2)9Oc_D%kzh!V(E z%xp3VG9}fdE(zl-R4c1DhCRKUkoMgSi z^}pc^5vkLtae;?4WY0$_QaQE|vnim9$9*8bGXq)Q;s4LS?FL$Q)lrT9(IDddWxW6< z;C(p#eKx)PTsUj*b z1@pUYZ@uTSoUfgU(VIagbK+WCBg(z|bM(%VQ|2*MVPwhq zz1@9sz5)*DN4oi*%{z951Cnt!bq%^SAy*xXfIYstCK_tlyN1wS=+nUf%wnk`)2Tdm!K3Wa!Z z7lv}Hn;F)gVq`ke$)nL)tvzn#QX2eE6s4|^&d9F<*cRC!EAa$#yy~Thn@vvQB10Fh z*w(aJpSRQVPrsesoHlOln%1p2605<IM*TTA|y@x;Q&0^80X nI0d%YZ$oig(XyD7tPZX-cf)`Gq_q@Fu8He^$=m23toF1(kqgAC literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lstring.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lstring.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5caed20011eafa0e89a6f3887c843e0e17fb476b GIT binary patch literal 537 zcmV+!0_Oby0RRC20000000G$m00V*m0000000J!k|NsC0|NsB#9s-uNf5LXk_1|#8 zJ);uTN?beu00000000000001ZoP|`Il|G?6S>x!9I^ zsDzf~VYb;W7A$VkU*CNYQX8o%x1D`6Z)TP&i&w{&8c!=oqA-c#c^t4g=ixGmlf{Q1 zUh;x3<2+%DEDIJ%Rzw|R1+rzcxfgn&-_+cfjjn|{c%^k^`L5-g?luYFkbI4v` z(=w-HAi^Dm5rZ%Tdr?e*P>847K5v_w64ujC_F=GN^#ld2orhWUO71j zs_X}HJpvoeG!kaL={4dv_L6qvytC<86?UscrC`@bb8c;OH~S<}-G+|)I>JjF<$Qj8b-lhtF*_$cQ`r%9|J8Vil8jdkwmW^prXsnt17ke@xf$tXl z?;Gqkj(?GE7CK|Ig?Of-WZIz4gzlTs&B^=8>L<*n@UZ@N|MkmyXNa5q=XLt9f4qZJ zCGwtMBW(cknr`Viz%@>V(qN3!mGkk8*EI+35UlHW%q3E)De12J1>H-D*GK#-LhXz- bc%>Q*6dGJ}{U$1nlqmpJE(+@pTzeF5)`I%f literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lstrlib.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lstrlib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..e93f02c9e857a82c6b2c5f85eecadfa1ad141fe6 GIT binary patch literal 6510 zcmV-!8Ik4y0RRC20000002wX-09*6`0000000J!k|NsC0|NsA5&{v#DE5DI{=_>=b zv;D$53x}})00000000000001ZoYg%2Z`(MsxF4Ipg7t1{DYjGF>3%e+Q>1) z*QUS%*_^QmJ0nb1in<9t9;e2zbziowSc9Zij`|SBM z9t@v94~Aj*OaG_I&p-2Df1W(wdp7uG8a(^?*>n={J-+wTlt%2ccp3D5+8yi;o)&rd zG%m_KjwZX|*59_C?riPsupdvR&`C9SzcA>!H-rIuY}oJr@^mnKI{cLle%jv~?hp4^ zo=$jPrtJ7SV?W~f4`q-{gM7+hd>-UCY?kH>z(vWNr5VqIGD?$zK_`|4Wy$lTw+PDc z3ZBz&&e>~RS~R~Z*;!gfA!kv7XzyNa?L6Ju+WH|%!gx95>_u4KWPJDP&}u5m>6FiE zZBbfl!u3_!5J_y?`T<}>30HI&hq~qTj>9V+evZZ3z0)omblH>GmygHUvVff_ z`JCtYP&~+axy%zbIM}*1^JZl}jb<}|oux(2Wg1C1RQRYjs=Ik}5O zA@FKRbY?pR8{I`RvtXDiFJXWphG#}v^c?z%re-9ruR1QxN^8_!m-PmEWHe)*nC%4{ z_nxk>5#OVetLceUl@JX)+3Zn0lLd`?GuT;%L zHh*$c-YL-!*0N|W?ogIP7}=m@VF!n%V0t7TTIYIVbw15< z2;(R z;u2Tls=kGiHN?6T^#+%|&0I+%a}molFqb6|<2f(OH1ke`ci2SxZuqAwTVILAdicvf)r7K?hi8#;$7ip)%(F$^ zmvC+L`i=WMT`n4xX!BMPO))f(Y6E@t^EV&QUZ0=*ex_a9Lh?mdN=$W^CD~ArusfoF zodvas2iW70qc)8UEt6mpqbxAOd=7qW!e+}PMBlcxxh|D4*|*VyJ~;H<(fRrD`!n|T z==}BHPtJbBwueC*$>>XlC9jX(jX$2fIXOG|@b}~YdE|jd>O6b*`-c;xH#`|ae1h8n zPjNSwVaeWN$S3ylTh##M;TX3-h%0_WVJ*^S9_lcG1hzT|Tv4e&!MpW7{n>B(D@NLk zq%?aB&SxyfmuVTqmZAuQ3^oN6uZO%*TtVaolD|yUFJC~FOA`vfMvhiPt;YU9WJ2<) zfL|b!zCHQ_NO%76{qcuOU;v9s2NvZ|$HyODKYG;OZtJEG?~Y%e9G!l6)cVJdJDr!i z-o7FEyOjQAp4HXbR5QL{wnJ+RzRR?p{*4+ z{p$4&M3+OfQL;&3j7xXchYwe+QKPD+xO=@a`=Qo?E4Ef?^G_HDML|qm-8H*cCjF|f z5%gi+PG+o87!;Ci_GOD$-cE)~X``fUsq{hv#)}{ZiY>Uo8H37#!Aw`IMe6l`PrcUm zcFSiiUl}S*gRCo9m4ATD0^$n7G-cmNB;z#wOxqT)PnT`wxvX2qrYl)Q zMS+UJtmCq>3^|8K1ciBsknG75AURrq>a>VH;aq%+zu?>QPCfCaagDwwAns( z27!u-AkMA=a6As!B^R+WkaG*x2u@OBXO5&Hb+Je%EUj{7=)-3z6yiZZFLUDhU?G{B;DD^(^H+qHG%AeVXp)I8xt8~Zqo+X>a4RRx&;Ueq9Xls-?jM#;?7N@ zXzuj{Fv_ebephx-35X>k0t|#>I85n)TUR=0WkT18IDj0ObV;#=+BD$Zm27f7=GR$p zmk+kd&Tb%oCQOJ(TN2`7y2M-spb{;X3ntM)p9lidg%CVRcdzI~{tJulsDLb8pj8z1 z^QA;dofHWQ!i1kW&k9!NH%KoCWreJe(}%iRA(HcqmytNtvyq7CP^KOY39BaXK>869 zh=AcI*i?lvcG z4Fxw{@NW=ZdQqE^-OlQm!*|L)B3bQ>5Uo+3@({-LWmFG0JWG}IKwBSG)YgLCKvaFnphZWfiS zM2@U+Fj8ExQ|bdD-LnJY2xc^e&5^EN=sbhy+(PHJvWS^p#4HCNHR5>%d)Fs85Z|(# ze~Hp%;ULC3BQ~rqNT!c2oIF%>0<4zpy1;A~3ubr()VfPgn^fP7hJjn218Gt@6K zZAoOxrFwhXA9y1ER zMnUyW1PMWuyW+>I2JhIzRiBiG5?S60j zxnJQmOIE4^+Z2=A)88#PG8=La(HZ(Kdbiehf-;@O%2cB;N!m0K?zX17fKP1Q1+kvW z`&QLgVdXPeu?$1br+liq*)V^sX0DA+rz0miwJJn9>&G_z1xAw6Z3L!C&%4}C@$yTC z89NiclF?R+vCp*dLu58YvryL@g%1=-B9gyA)5OG)v|2|eJyf14vxq*}y#f!#QrbH3 ztZo`!>b*sSohCuNTB+(t$n4vK@_AJk8Z9Chrbxw9u2QXrR+8&SIOsmIkG650&Dhba z>*Hx-CDCJ|w4C`LTX~Nf*BSa6%|E!Y?Zlob{ zY8mXarAUeixdSHm0&QI?Zqvl77Dh`S8?`&@u|gWiU^)d>N@Fg43oA=z;M}7o;?|WY ztD>Y5v`0E&&eQG%O&L+B&5|DLs3^KGXD{K zp$1sxlNI?PI}{1lbBZR_K)3Kw>3W1BR8B+59a^Muu)MC;1>$pj=4O>hGgWhP>q~hD zwH#iys{auC4=WYCQXAhiDl{DEGfmN#k5QpZbE*zw9p?avEIkf9dJz&d=!q{GSr{Yk#n9NWhML`C z*eg0F1Ygx7HaQr{nM3!K&QfTWm@d?@53pR2gjYa>ky9!363^p1xXB=TvZ%oIp+;hb z;?bhmJp~A-`j=KgG8eBK#r+sST$(_vLuv?%tRMgesw92iE(WmTiznnQ4n!Wg<{=nf z@*QuriKYWVbt~KGILZw}0E-@3BozubdDf1?6zC$3T@;m$opmw}wv%dH2ME_K%1&$$ zx&W#ebUJiYylaJskHx0jh0V0CB#KQrx9e)Gy^0{5?0OZkPLUd|r^hbdJnu(0nLR?*nA(os16#mJh#eqt3p+6G-qcST4^M7cib5v-br zD`XVWIuTexpz~E-wd1|Q7I}{P34r*zk2*dTp%zW`5`s$>;CT$@hVVF59|Y7KOp7oI zqN8#lc8;-x?GD1N5l&n&w{rE?F?qj1&KlWyWqrQ%fVADsm4|5XKB*n_~)e`L%_p2PZye>>2C>j1WC}2bqV0kHoS1Xh0RRDx; z%XifTg-H-Qj2k>x`_{wGycc zqnwFSK06>%S6n87>G2AlRm-5`YNvz{>vEj{`mviZSAhIVx%0}oEVoc0i@rxgow0T6 zWn#yGPCTv$HTmyqf*#i1TfV$I35m8hv4Tq#BLd3>VYpl@!5Ib)6o&v-t#Kt2Rpm1R z{NLcU75rvPpNwS5w5Sv?ahtr;v*(s2)BT>ak8fWczu&L4emH-Ba`v0a|B*xyxhEA8 z3t6upSK4=nti(S?gjKg!?9HjtI{3kpbXVc31hAvQ!yu03Z93ykTjjo0gwBs%ogN!( zn%Jq|Fb!UX!;48Sj+J?CWmxmL7S7PomxxEe1;dzR764z{7YWCieWj}T^0=EH!74KV z1yYI${8Aqt=&(TJ5)}prqM|0SFJ7s{i8P6Ly^l%G4%l|#wt8DXwzhufH4oQ?$~feXV7Y2U5gAtIN=s|GQO_`aufuZ@G*iGzzCbKP zx_iW3>cS=cs5!9B*Yxb$kBI8X7Gw;Ztwtfowewo>vHB@Vtqdo5LF2SSVM$y3R9(?~ zN@9XhJBKiPYTejtxCXk$5!Rlvm6eGlqXuf_V)AVyU(A`+NjI;UjJ7t39#NE^Y-YE@yYq| z+ebeQhB$*zk+V3M7kD5YNa!NHG>gJOg&_*So71D;K0IpmI_!sjOWsLcgJuPgSAh4$ zz&UPj_xgnC6#ORu;dKUmRH&k`8U01EkZYF3ORRLx!6*=H)bIXQWl3*-fB*LA{1F9_ z>C7V}F;O9Zqu`&Moxgei_VoA++XsEW?)Ut)Op&UUBxlv@Ax)UiANb}180o&6!tyuU zt#<9@BSLKT*>_ zt#_qXiHG(SY|s?Gxmi-FQ^HGE6{NmK)AGt7wRV6vWc0MagvlZ;O5Y5WUdgV$VWw|^ zZH7mdgQ_a5w9A9Bxm~@KO=u|ylI9jh>Qx$&usfvh=@KfaQo5cE+n0pd4L#^G&05yZ z>eDssg2jWCX9Sp@3C^<8C0S!a0#qTrTCB>xN-GM^Rn|$kt=JW90zAXUix`h%F69Cg z{(ud&iwuj=+zNRZwMw`5*zgkPg()`bJ-F1XZAue2$gnvO1ZA%7IVq2RRyPHbz-tWx zjH~BX#X#jNieDW$!^STrQAu@)#S3PEb*@pW9&0l&!Yh-gIG!27=yddI?*oNoX?xpo z6u(i4tRR1-7!9dI`)VxzrKuh%v4jXK?bP0V+TPvWwXa$e03_9g@`hFq*KU>`4I5@$ zXtTLS<5OU(#7{Fm_10!wuf0~u7Pj3Ar6L1PDQ6zyE5LQdyM7Ee371qdlUu9l*tL4~ z)f6U^U!%&rTD(1H2`f=Df;B$>F1V!zx25@dZNC2TZ(^)po%r2R=LX4R?Uc>h`;~5U z{p`0*Hhr2dArSp82>w+kop64I;t&9BczB&MN|ttDhceQJfvEY~X#cRGa-3M5x2Ueu za-XfK?&n6U4<(1BCnQKlt^l}4bZu+U@4Kg|@+`wLvRDx%>u9lRSDIW@3lmEp95^uG zR_lj(XbilIiP(^*zAhB~Tzl*m7q{0TnZ%d3@quHE8 z5CoDA4gOF7RHpPkFWVAaP9xs)ITP=ey+B_CcjsFRUzOMD>bK_IcBvJmLbl>p*^2L# zlCAhvw$fQtS06#ERzZud<=x09b2-2|2UAbPsgycRQ?12vBH`dy*$T9gjqpvi;aewE zD}I;l3ama!m+cTr$X58K+vt6ux}AQ>X9f|22fd&}w$gXeE@~L?|J$wGgNjERBD3-Z zhbBt-H6LP*MK_&1?^A|blvmOdW+0gN9T(cI`tPlwO>B+0{(Yq6I<8c|J&~Yp~t~!^_`8+C0t`BuToWBPs zXGd?3yHYlR@IQcs5jm$RxjV0afBWv}eEi#+lQVj=l{{84RDk$J36H&RE}7(^F@Oin U9nCNZaQViM5oBLi2Y8zZ0 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 I0R=E}oO!$LI{*Lx literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ltable.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ltable.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d341ba5088929e258a6aeaca1b178ffd70d1e31b GIT binary patch literal 578 zcmV-I0=@kJ0RRC20000000II400i>@0000000J!k|NsC0|NsAnn2EmM3<5A-rTe)T zp#h!Gf=~kh00000000000001ZoQ+fOkD4$T&V9W86>rYV0>lGEJ$EiyvfXZ*iSdiN zFUvwIeUVNq1`5;t^=pABY^UxUefs?BOM63tWOqoh7(+=HX zgSWWy`oSQ08sZ}z^-IMV;+#GV?VjCpvNUjFNmnu25xF6bMJx;MCroi_v|E5@_gu{e z&vi#m&vU#H^!j7h8+$`YlNF{iftURb?zMWFQz*3=7!l1PQ-gCvc-C$CI+8F;Bo7d{ z&`ngZ0psyN#*pU2 zdkuW&Kg<(lg9k&Hx0)anf%^)u#iqe1XxwHfps_7*FZI6B(%Tv~PgNA^$=azEB@2~B z$aMK(;(uPwo*_s?CSmc7#yNte#_`o(qZIiTjDQl`4Z!FoDe~6%(c*Z46)r&bJZ%N8NRqy?U^UvjG!v47fN3p(h zr?D$e`5>XX&dg8>|I^FIY!je)McuVKW!O`{~@3f^8f$< literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ltablib.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ltablib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0965ab9ce0d08262af898f887f98387310e3bd33 GIT binary patch literal 2429 zcmV-@34-TpFE-leE9a%C&$!;#lf4}D;DT=bCB-g`=b&{#){rzEoYWVT$Az|wiGV$n#mG{4KMYek3HhY!H-2gy z9yAUP$gfuc0OiM>HF3NBV}SRF*Xtb}y56C8Ox$-TeecBUlO&$7B#p_(?T!*BfiQ)n({b8h`$&kzoGDaHc!cQoN}KL9-&~}dE?-)(P;d_BR|Xn zMovW<1Z>)!pTQx#@QCHIjeT=6y15vSt}ZRSrX<>+IpLnMU8AW^FYv_uN(`k+;chG5j6bApt{ zf58Vv4n{5V*dX#dALy5e3~k=TZQ++)_MT?{&ztMtzFz%tEy2*-`+VpQ2q&jQ62Y_G zR!k&~@hTJZH4QUGqBS7o@PJIS$Vayju(}Nh;;n0CHp_)H!dPBKRPbhkjOs?OS2>*?w}AaUTNbuLC1?K+9?5MfmCEhS6ENdFdr(qt<{a`viV?BzsnY9* zon`=?zJ@f6o&%C6e~XX2vX2xa3X$<@Pc7;9sK!m>>ud?72SFfjdex4pbl(5(mC6t- z*%1wfpt&GmE;1Y{VXkjJU4HzM6D%pS22~_l9LWQXI?#|vbxqDt=ayD{t-d{JOB(eI zI>HVbwwJbSjOC`z##^HO^ShOLe-~&5$}XNN?MrJEFgd| zCvg-$5YH57kw+~-)*v-g>?^oZ(0a}YSggRAKsCKD!ca5rpO^qQU9R9z;lGN;0ggg$ zfWqy9rxF1Poe|cOb~YyaHcR5o8z7O;2Ly|l&xF8%#2~9ysnp~^LgI4AX=zKzY|d7> z&X#p5JD!!F=DXPKi0LiA1D^13+`EG0Q=JhZ11J>9!iqW!%dy?uBylt&D&0vuwR{R; z(=@TKT-j{3cFIL5t(X=TT`u^4bUE8q3QT6yf_GGGtzc_Qd8*6gtCM9=WJ4Y>@hZ*3 zMatUHooV02nFj&)_T&S8F~|cH&;$==eU=IiW8WmsqClK$FBp-P>TwDsZ-(a666ZE3 zTZ%ZQ0i<0V-6F>=nQK;MF5UTtx!oj!3`jD7gHs4ec$6o%9a`-?;$Gz#`O?l~uGAz{ z53KYsGh`SN!THMeZ$&ZmQXMVf$bbO1D)9kPcsYNoQ?=FfKnsc+_N;BI}!Z>1vDA#b-Pecb`&*#xxX z5tnFtlVT#*V z{ELZ@J%H6deCT&uYQ@x{yN-E)vx-*^+)f^p_*fJJ(N1lzJYTe=A?#@gbQ$~ca#h8K zs>eiE!<|{%YvrveAN|kGoC$c~3TyP<+8C-oP$#clP_&@Zp=2x)DAbGF#l*>bwd2*{ z;*kH1zIkD*0Kv_?JBeW)qfu$#EzjBws|jkAF(Pr~lhROfN+!lIMYkM>FaV@;MH@^# zDLF^_9~uujsLD5?dSuEs`Dy^HGUF4-bI3s4Km9Bbmg#f|EtKd0Dw&wEg5HLAAkpo9 z*v?vq-kr1>z0L0G*Xyuc_^mIQmD?uRlr`b6r<dTjM)Q8bSq%lK_SzQ$JB3BngeUX(HkIz~mK6MWLJHER1do zZHH%~w*|3CDv z&qaNG?aIkzj+JM!!b;J|zRHD`TFz}(s-%GcHmQP3qzPr-cI{wB=wOiv95-Nb2DghP zZv6?F({PFl5DZNi|6KK&5XMa08Y6lAj(iGQGGHCq=p4()iy@>QAA&ps5)OIWv#nDq zq6_$nx6#9FK(gV&DM9Lni$+-#CczOQ@1ko4GHN1!+r#BU3r&T9g*(4+5Jp~{IEeS}w>^EYV@-7+S)5q2oh(`M zsv`kHr7Mtgs}jHV(pl(>pyE{DHZ{Pn|PI2+yF|5H}t@A+X>BnYz zVvpQvzmp1mVX$b^$ry`+xWz>io$=UIyCm#)daHcu$YXtR59j)=e9nsxTz^4d!YMxV z30^5T<+W&jqVGmJ`F)-~R@DcO)tf#RilQheqS2bFOsbRXn-SO$|Nqo@8i3;9r_t5r v_~P@Gnkh3H!^k{V3tZj8oUj=eDKl4?xW-;xUSE9r*ePtbyM6r^Lox!Ib-0o2 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ltm.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/ltm.c.i new file mode 100644 index 0000000000000000000000000000000000000000..120ccc1b150ff45e96c95a85b650c32d01f53cea GIT binary patch literal 941 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/luaconf.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/luaconf.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1090ed1f9c04c8536165b0ba197cf5eefabbef37 GIT binary patch literal 7556 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 a8lPb80y9txq}DlTjhNa6TK^A64D?Ft-HZGH literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lualib.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lualib.h.i new file mode 100644 index 0000000000000000000000000000000000000000..c19df61a68ce16b5ff5775cdeffe8e63941084ac GIT binary patch literal 531 zcmV+u0_^<&0RRC20000000Gkg00dP40000000J!k|NsC0|NsAdN*-*h@*I%#RTG6; zj$pD&T{-mt00000000000001ZoQ0E7Z<{a>$JNL9Q=CX20$KxxCfTwl+N3HPO{OJ# zMh2T;jbQ{PYQFt!nvzsqf_UNX|G(dzY~Kw^M0u##ehx0XpL(8$33et4^+GmTQo!=Hgj-!5HUw%(3Q8&p3Q>`Yvsx<~#^6zp%y*fDm5@AP zzzf|GU(2%DEW$Cedl%b)Dc)?ByWhs)pp$v?+&QMjh1wYsU)D$Vt*mNvJgoee<-kZpB^s#&11UwNBmZZh29_{V ztwqU-C?+*C+c4TlB2~Z8{QeQR^&dK-ByoO)*2+D&;4~i>mr-2waMqiSBkIc>QTK2* z+g}~1mK85{mtk*u5Aem`K6k{wL}r(HTJ51NPKQrf+*}#1m3wI6+Fx|Mk|ck~?#gu@ z4gX>47ppBm@*GOF!dx`YlgP1}Szy*xsU@3$*Ikc~-i`URtXY4^9g((0K){oo;F_s8VbgdQH*hp(ou z4=A$_4aN-T;OOwp+vyv}n6wX!*GET&am0kiF_|a!-eJpV8T(O4_vZlt2Fl&eH4ct zziYWCK%6qi<1BY;Obbf?=5&01J?u(~4PmTNqDiDiQ4GQF8Bl(~Mqt0ZG!fh0*4{~9 zZ@i3-$;$|fKrS0mG7TL>Fiah7bcBhEaqNcvw^SLk-yIIEzXqezKSAITLf})+Syc?W zb;TCo_C)7;QL_KO;$B zg6L|u?WJyr?R-aFY881XAc17rrHY$nkXJsJfkq~jhE7mt9FtTP(9YJO37FlELuOAA zvRkk(L;%d2!Hw0uP(%FRyCiD(+-&Qlk#M#Qz(Ys^VA&9;=B{`=CIt$zBVtQTH(7!; z85CHCEKWj>oOMe*9>rCQAaCsW*GFXF=yZKq)N3@nLR`6Y;El~L2lvSGZKfkH-~`8&fo1F0_QP#lp-%G z@!X%XN+JFc`mx_6PLV)v=J~bI6KC&)f)++{g`V7JO@O{|y~opo(DQjFjNSh@E7;tYtTATBBia@G;elgysQHAx;fs%~>@7N3osEW6;a5G;yHNEZdEe^dq)F zO=^P;sZDD`N^P()wP*#>V`g3dlt`(BMGHiJ5>i$w_o8kuaN7CRnuYdf9(Vi=@qwxo zTp?W7r8#resi>^g@9NWgJB&7L+V?3OpYpz$_!H1(B7j~CzBolZ0d(3r^;)G$>a2+Y z_+cE-azqswxJauKwMCT#qKY@cke^l(5QWAQNaQj0wlt7*&7- z5fnxO%^SpN_eRCd*55mc{Xlm#aE{Y(42wdcsQ!wN;!<5PMXZ`69jppGoyMl?WoSq7 zQ+%ETktt1wIdu`(p}nYKdC?e(zz*-$Sqpm!h|-xD1IpaujM}aROHy^TY+S;Xn3W1}_x4r;j#GP%e1fU5Ze|jLp8G|-GCp-rFShp-UF_jAfuBqM}@+^ul9NfaI=bc@v|>Tm}!2%Tk#6 z)led8IF~BK-8DCGf!TC-cTKUCCQ9Qo*2VRphI4s6ygD6~8O_v5ZF>pxub6=G;b?Qt zqDaiWlB{%jb?O-DtY6Qo47Te6tM^BRuc|Vy-8$6pt&mRZUL?O;#7hWL^#L7!RQ>~A GAfRGd4^UG8 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lundump.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lundump.h.i new file mode 100644 index 0000000000000000000000000000000000000000..518d3aef0a6efd2cca9650f67aef747276d8281d GIT binary patch literal 572 zcmV-C0>k|P0RRC20000000H~}00Yhd0000000J!k|NsC0|NsBfnjG-!s`mT#ecG?G z0&3CEbb-(S00000000000001ZoRyMYZ`v>vhSf{*D~?JpSQH3J2BGu{F{&a_n9A5B zZX(AYi`T@C9EY|2^|KS0D%wt(6v^`Wc;Dy5=fc6Vd{*=@1x!N3u0IosqcM$Q5(ndy z29rrRN+&oRT~Edlj?e@*9aG3_)E^CkLEu*k`*|%$U6g~&xo~{fab37t5?gc(dj|*x zQEclW91deY2>mdIAes)tX*dEUQ>wIt#Zw7awmp}KK&dE}MagqYU{xc)SuGwbo8D3i zb4$*DW*XK~b4-B?OJx{b-*LK}2}0QkA<3MsxpF~YMNE;vc}*x><}&?7u^wcXuY)gK z+K3sc1(K${fw%#tWbt=C490S`n=O;u-FgmRmDJL;FuSC!fS$P|Ta7ezVdcSoxp86d z!F^gYMwJWp^Z-jyY2$!QM4*Cxx@o)%^hhD2h*0%!oe<-ev;cu^jFjhz-uaT*=;-v*JPtv{!!U?uGrLy^Ro+kS7WNlOL zoWTZJo#)1=O9kPq8JJ0R{Ba-|q+B5N49qN41^qtgj8|YjyIW?Lt>bA)jPpGCzIfO! zH|tJk_%sUsLr-Vaq#4H?<+i0j`i=JO=HY(!%}6)86@RfUA8DUA-z{ceEZct3=>(y3 Kn)nZa!Y?~5{0m?J literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lvm.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lvm.c.i new file mode 100644 index 0000000000000000000000000000000000000000..09aa6019ac207cbba22cabff92f3953145b4d767 GIT binary patch literal 6253 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 XQpb({LTAbBRc^0%fy93U#il660d)^g literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lvm.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lvm.h.i new file mode 100644 index 0000000000000000000000000000000000000000..0b2b775ddd6d0f403c479d76f5ae2c641bbd450f GIT binary patch literal 572 zcmV-C0>k|P0RRC20000000H~}00h?n0000000J!k|NsC0|NsA1!T(tC#LHP1xZX9V z6Pjt2fVqwU00000000000001ZoW)UFZ`v>vRv(vNan@Ef(t!gJE#zTQV zO+t=iNLFLBN*ZtT$u#jH@tyj;0 zhG9D(G@xxDjc!Q0vzFqAr@58aw zaPs}@!;@9|;lR1&x)lXBUOS2&eC)w+G8pW7ieF};rc;}r_?mh~duvT9@6E-OZf@4H z6{%#hYJr$dt)yc@_NR}N;l23*T)&he&oN=D>U}ywh5~Aa#kI;2#?MR^29Sq9=6yb; z_U`+4H6%v}-P1cT-yIaV`$aPue|u4jY+CXA6!&6k$$mIGcS&oM9TnQDY KGv_xnm2OWEzzMei literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lzio.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lzio.c.i new file mode 100644 index 0000000000000000000000000000000000000000..e2f7d92a81dfa1f91afd24e6fa0cf0b28a6c1bb7 GIT binary patch literal 837 zcmV-L1G@YG0RRC20000000RX800yl90000000J!k|NsC0|NsAK7efNHhLwu1ho~`@ z0MwyXO)cC200000000000001ZoTXITPTN2b6|eq^5k-~lTf&$|jd3s-`r~jM`O0Gg@!IQ*x=z>W6?xE$w<7HZ#*xvp4cms3>yRuI*4}{A z9XM zWSa*>xMbquc~!z~T8aS4f=P8(hTSs^K+@ z^78I}-tanBp^o>ESR|q>7;S(FCI?7SdL96;UJYo3Bk(C!S>ftRGY44oCYuE!eW3ov=8+z#N1r8 zc@cW0*M{$$!K(clULpchdtSip<6;5t?}`nt`xfL_u5$_VyC*iLaFSA}{SG)4lo3?3 zs_dDnOJ$q3$p)>KMae#zt%%d~#aj{4{eCbVokgW*NQ1lnnPf?u#K=;caKI4&;{q#B zO}W*Y0`%;L2013_21AHMPL1{7N}K}Eo$m!NAWEQV+PP<)j*k0b=;xmr*{G^-lZsI1 z5t8DVO+nkBD{U(c?v+TOwQ7TMv{@`&HA_!@T~s~RW(4Su3T1P`_|=f7-_V66)y$~= z&ewh_HwWSNRD-KZ%^Nb-mH6#?wxurUbtPg1Q`VwZyUBE4;@w>QS7)iktXJ!V?h;5N zNJLT4nOABSwSo!tz?5*V&IRTE0TL$aTSrNR?1GQwDR5MX{IBkh#(AWksw?#7`u5l3)z$po0-n7+NS9rW2nWz9`C`&ZrFGDa P&wM=NJhp!UY1-Q+^Sh*9 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lzio.h.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/lzio.h.i new file mode 100644 index 0000000000000000000000000000000000000000..63d737626da053e6ac0d961a9857ac7a702dd928 GIT binary patch literal 795 zcmV+$1LXVw0RRC20000000P?p00w0M0000000J!k|NsC0|Ns9kztp5!r_6wQMBJp; z?lkeV`tt|?00000000000001ZoQ+g%Z<{a>RzJe8IJNtLDS3gsjYR9TRh?8RebK6Z zi6%u3n8q5lBQQ~$s{egw1BE2oG``r}J@?#mXP-~(NN!#;ww=N#@`tNo7>&a5WE3;@ zd7KPcFd4_mAPEPjC9EYKam_l06&Zz5m{a&6$y>!QAcWs~8J=b!}^5oB`3G9}^aWdomd?Drx`SjJ+=RmSLZu5AyD!KD_; zpVkU)rQ#6-F0=^D>h^5gKI4gqSz@v-*Y+9ixnT7#x*bHf+so=+ z7`)stk#8stmo8!Xpr~TtVqkrb+@?}}b;zv6vz0tTS*dwDA{Rlzg{2XncAxpaUFtF~S}&juve3mRbcs#vaPy5YkSE6GwRf75l% zi0Uyde#p?NKe*5MR+o5BGu4?#kDtRFEqiVJL*rhCw*4Qsk;SoXyNY zqaw=~s@uq%D=vk80_%g(AxFK{qg^&ZcdbfD6eiP``F literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/print.c.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/src/print.c.i new file mode 100644 index 0000000000000000000000000000000000000000..8f597905a3cb0878b2b5da54f2476cc1296930f3 GIT binary patch literal 1854 zcmV-E2f_FN0RRC20000000#a50287B0000000J!k|NsC0|Ns9uiMb4vc3sm-%P}xC zjD&O;InkN`00000000000001ZoUK@UbK1rhpZGDKrSbM9xcxSnknJNA!*L z(^2aUJ+a@>_sip>_tsn2erMTl+_rW6_MLOwJ`o%pvWl&PlV-cwK4cL+3?t9yO{#pS z95$3jgZ$99J0v950T9yu8X+@lWhd{p0jR2qkh^1bKNRct%t1La>rr}=m$kr=nV07=UC zw&QxfgN$@R^W$LFU0jZCdy*V=Wjo9Gq4}uFv|#zWL-{5#6ozh4W8aRSLnP*E#^~9{ z*r(hJ{2JIWTL@izw_s_Lg?89CO|X@R-FFN5wYK~@Q5RbrMU%(4>WmN0H5#xG&~N=#J3M3op` z!thGWO9}H*#z09}@rrk9o(oxE0;g%Q&%6iUu|;Nes$wnzLe#g4A4i zy>%R`#uhtj`l{gna_+xYl-ng%lm$j4r8SNM9yEw+h;s0xqMLrUR{xMOX586u^toXwd5p3-Iy<^?^)sPE;Pnj!HU2 zbu9?OE*Znw%|-9F5P`&mw)l86HT+EC4))3Pwm-ZEcDWBD>knw9D#kpO@b9nza(qAF zpckir-M z5)OrwEc!mA*!UsE&JStc`jR-}naFS#QZWWbAsPZnzwS*Jqw(eFs;7CPz)+2ax8y%aX~ zie$De`m2he@{cUlcnph#!q&)q>sCQf8xNqU{B2GP>4 zj6*S07#8O_NuT6!m(lN*b4-qUpuVR5dN8`!)-O@F3`l2LGQ*eax&E5?Y4>8#+mJr^ zSfnZ`DxLiG%_tTXcPdg-rEpTEuzPh?Hehy9I^WF7?qBskm(JtSucdSEKc(YfT0Zv5 z&Ozt>{WnS76gQ%bwyGu}7F_zS04(**BF+W$f&>roqp3A{#GP~_n6k(_uVk3qM3}3H6D2PFSGA&X>+lh8R+BcSa92Y?xQ3q|n7&Mq^?)|)nbt!(Ddsvuke;@9J&lw1Jno0k9*quTi z?pkvJGgWQL#Ac(bDMLz@sDQgiRu1W7f{qXUp>;Qf~S-1vO+SwKCAaqs6#PQfd=T+GKP?IyBO^FKK_#)8Z0U zRXixbk6N7ws3q&kKRUTWsz#)1#SNFks74s@%^vu9#YYn-k zPiUKNq@a*(*g;kSwN|NWns#$~%py}~B8-LKzymh0R4P)Qq~D?bjn$r26`NS^izV?% zvNAJ^VZwE>IM%}s+T_c@-T5N9xsZA3KDIf*yz=@cwb_;{1B}`~@gohD;g{?*AGjDDPjo6O=1ygX-iGFvR2LJ#7 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/_r_e_a_d_m_e.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/_r_e_a_d_m_e.i new file mode 100644 index 0000000000000000000000000000000000000000..3add93efc72da98c879f86dabba8093d752fe974 GIT binary patch literal 703 zcmV;w0zmx$0RRC20000000Msi00ip*0000000J!k|NsC0|NsAwonzVJ0?}Fnd{}}D zDpeOHuazbM00000000000001ZoNZIfauYESERNZ)m>W(9Kr?ofm!YB zt}2pd(Zi1ao*C`tQ3jU}E2+EH(=&S07@m%i_P21^f7o?9-1VEQZHN8!7B?R^*b#NJ{%}ux6?&zkgj9YL8SD)6K_2wc|$`?QHK7ajj*Su+dkCX^75+v&U8&5fR&xK&=7eP&|cPucWa5hoYM{a!?TL zFVvv8y?8UEv!EuZ3m&`Im!i6T&j&8C}?~ftF75;ngt?F9P_Dt88jT~Wg|JqOBY6x zyJN~vT?Uy*l4cyiVHnE7aJHwJ@P)$xk8cxv!+DnP<)}gmnhJrlRywwl8pNsY>gg11 z$V=xjKz$w>eVq%HnE?vbvE|^7Gq?`@X(OI7icePjzEo3}swn?E4JgU3T3HJ8)Sc#8 zRV1-R5tm|_aM0e6BfX+dO8SA^K-ZV2SlV8~p4XuoT=C;)} l)b-2p>%PtaOvw&)wDocPZ$uxv+0#gm&=o&5&0kLns_JTnO@sgd literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/bisect.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/bisect.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..232cfc20d594bedbc18fd14117d4aec799ed07f6 GIT binary patch literal 499 zcmV=Zk(H))!x{*rDV20S!K zF0_EtY`%Vnc%wF2S?CJz+_`hO5!!$J33PaZU8lFd+U@EQ*N>Zx-Wjc^)vIBx2n}si z*Xi{`t9Iv#Cm1KJH%;5L%S16Pm5roR!>8g#)HTd|>m9sP+WP^F4-ox$u9Q*fZA zsu9Qy0$lIz+e?3=dsFJ!)8NAB=hao+kLdawT~|P3r2p=99!=-b&Rz1#JdJe&1n(1g zZUEM0ca{T%1Gj%+BCicNq9KAQv09jt^RK?yW%e|qt8(_$CHYBGe+`z)WiGFNu#742 z%QgIpOsFi-BnoghKuq)z<($k$xNF+&8+_Tc2MU3C@&QROeO87po#cM(eyZ61GMt|R pT!MZlHsz5M{Nr<6@K+z}_L|6vg3mBsTG_pd%Z$9K#9w2$;=C`G^5p;k literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/cf.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/cf.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..960f347ffeaa4a83ac730754ae5b749319201340 GIT binary patch literal 292 zcmZQzWME`~fF}$LjO7p}lg@uA@ciX5y)3UQ`iZ z!n@RTCo(ke51bSGVZs>$!6zP<-%OJXV#rqd$zQZG;Y=Hc#;;X^ONFNDENw8{u$TLf z@h+FjZ(NZFzs8wRPT-l8NUpv-v0)idFr-rI+5OdEm(3$uDe`UrxN78&IUEy=CSS zDRu2NGoBcH>wXxs!mqsczkS*rzpEa{B=e1BcdCBwdQ%kOaQQ+11()}s8+Pn;SaGSU uit8ssM3Pha`&VnexaBOBIkh@0L;1nHm=jA^>whdb&!rLZgXycb(PIG4Z(NuF literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/env.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/env.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..87a69777504a9c4f07e8f607c014010d440fb30a GIT binary patch literal 282 zcmZQzWME`~fLjaGd-aYXd$5Cw0ysNI}P|L-l*-@9+7`5C{S#C@(& z{R!_>wzhA}4ZXfSO74q7pxu`hzxG|8Yj$cvSo5p@J<2;+U;lP9D>^@=!oM!pNXRcI%;mS7A#YYbYGWjI%eo(*rpj+wS(N@O0^^P3k$9T@1)Tv96wh@WBX_Ws- z$hPH5OvmT4iISDNLLXgv_S|&sJ2P$S)$c!Z_AYyU^3Rl{-z{=4x-P%*ICHT|Z^N&O T>Z-MIa`)$Zf8i-4fk}Crx14AbuU=s-^=^@hmmSZxXU)NB zQ^dCP={Sg~@HCcBl3b{=A!_T~V`3}ZGD7-im75ldEY8%FX}@;hDC_ABflg8ZyjfXa z8?sC1wdkz8xa!iE8nI1E?kC=x{>gGp=!i1(Uc#>s-{^KZlk?8qz-h{rXM*a_$!?77 z*^=e9d(VQikF%Pe{#p8fyYO5864Spe{Fc|x8k~K}zd-!i6078;k;|iBPnY?3=JCe= z)=KlUIQWD<$s`%5PuVVha`Mz&N2N9H@6V)tTqVv+U9yZLUXS@R~==3?_Kry&W>24na3SJ SaV}Ll?dTY{F@EN`yQ%<}7sZwU literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/fib.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/fib.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..c3094db7a5e3f22743b4d6c88e259f40cce78223 GIT binary patch literal 459 zcmZQzWME_f1IBI!2Br-VHj~bOC@6KFkTfCKF5%zYvfm}#yT8hmZaE8410gHsFI$Q8#_!MWnYmN= z)R)aiUvj?s6miNb|NPOFm4DiPZq(_1^D)N!Yq?EoWLU~^p3la5UFt8~W=?DWGr`_M z=8p5~*Ua{v))SW!Ct@VmLK!{x?Q^`_pQlf=bbegjdo4UB xxIIxwXuj*w?eAOkQ*2r`M*QOV?U$uixGLhq@>^=}9(qN{&FcLqz9;^2769Y@)6f6_ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/fibfor.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/fibfor.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..64d2fa476506b5c41982a55ab33ceee2ee1afcb4 GIT binary patch literal 292 zcmZQzWME`~fF}$Lj3E#vlg@uASSH2X5cja-=;Z{)v|m}(RswEPO;GhfNGWp@(q{~HzeoOK#KF?D>M{e5lz@U$p7YNOcnZ7`LuH^2(ClMXG fqPK;`zTKa>DbP#wq@4E#J+J7Lo8~hA({=&?SEz=E literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/globals.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/globals.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..aeca8e3f612f17adc4b4c400ccea7b25b8c0435f GIT binary patch literal 415 zcmZQzWME_f1IBm;2F9NdHj~bODCkQJTO`;hlRD?fq_1)}Ka>c!7^*_lK*)+Yz5y4r znhivjuCF_)>a)QwH+T76tCSprUqLsVzh9ds_;uC6Gai$+iG2I$UD9gHQsjSb=kqx} zbDX|}cRn{=lG<~1(y{KJuN04NIW<{n+0Ue@XI4MbJg4n5>8Xvc9Q#qJADwNUBJLl3 z7GK&tt9wq7sN{{A7Kt1}nJaZxGn|`}7Q42gZ0W&j#jQ<&4Cz{uXDttTUX)rpVKbj- zjMNm4FK)?f6MeGZIB+j`_Hyx`g|q-tDt}jnjNP1R~pPcv+~FL-#hF+RJhDa+-fm>LTbz>W^b2? zA52bKrdKxxrEyhGJ>IjjJmy5#)Bk}@^IRsh>7-0Ne9@IREBBDTP(KUf4mQWFWhDj? z!O<5TZ!@3E2*0psy?UUs;#yAe+g5ijUCuw8v}RpRz_k*Gztpd~tHBa0d(MHYrU&R%oaAt_3-Q(!hEkmvH9D-ZRi7xJ_c^!XH~QFI(egiI)< zQTYD-_ye7stS0o`cuiI(?(`)3KwZx}RvM=e7i2gcc_Z&_PP6=N%+_>-wBDQEa0tx~ z*IckimXH`$70k&qg-<+=S@K8)e4IDypF+M(i;RkAI>O}{q&&-M1UXlhVu`fn5nD4& zL{XSs-CjaY#a6-7EF>v~jQ&;7B&6B*G}c@IOAweuz}HZ2SWJ7pn1`re3YJr!@sV2e zdb7pl?}2aqV;#+d+1$7OwG8RnkcL*Tw=R+}XFP$3#-!@ofM&0*m%%CA-rX*PUx)MH zOK>$0u9gmv=v$HHKr%=udYBPW^*}r2dyePg4y$^84yR%DkwZWbcq& z8nza=-#z%Q+G}6+ThP1^3FO+3KR*YH#jS>twRmJ$`xO)UMplD>m2I$I7L+XCFx1*m z2x%Mx5rR~06dL9)+#02uImD@#sW*^>q1WjE*sBxD)=MQ@Y1wX<@FGu(Ty=%& zY1#H!C@6j16_FrizwHOq^eszH01}49wunhirM94|&(<*upQz}ZUfm&eIn9~XMQ>{? zQSlj#`k0R$RWq!DvB`YqK#37xIcwL z%-+Fx3P8H&`M*1Dg5TP}l}^Tl1`z3X&Mx*e#Fw}xh*rl5zm zY~C%w@hq^;ETL^x7nkROshzC6psGnruA4n;Z=4Owa3G>T-)RJShF>xF5Hr4|>U%;{ zu|#;LQ89Arwi@@FNGkerm!)72j))iuKhUzq=p*V%bNiqrP6km=a;8f*H=u zRb{MpE)Cq;U7pisuwFSeM^F2X;fs#ljm&CTh>VLpOU)o^R2P_f7dVk5kQ-Wa+)_jy-8#?vezEY@qFjX<9w(nrq zVFiJ7fE&ad_LxOw|r;)D71`|6)Lgv^K+ zlxKe1GG)6Q!!Ki})%Gnr%l2OTmBq8@#gsiKuFW}{s?7FEEF&+bpzzd;Pb)o+dMmSE zG6``y;>OmWc{lh<)vw4sk90WI?qvLOTd|SPe42xoL@{gOFQM=AFGjl`%-;3to87u! zC;oXSm>NEoOJe3X{?(Nmop|!iiFuQ*e*N7gIqzcHnxMXG{xSOZi?>GWHN+Wz_kXqZ SpTSe7L#ur17!#P&Zvp_tbAb&2 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/printf.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/printf.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..0c19894468582adb320ab6eddab7338e1cf93cb7 GIT binary patch literal 272 zcmZQzWME`~fD1tCKZMDo^B)QXK4vH0dhh-TT0s`_x&{C#f==im4x$Jw@M zp7zq0T70E-&8`_sjaKEn>Iw@BJsq0t6M6l0+K(F!)z^j{mfdL{GQQ zy3O#I#jNe!%$-?t_U)O|+G3vciNDe=w_nJK<)poc=ed3M+mB!V_xMA}I;-T7j8muc_4Erei7`QBd_@s$x!R|G~Uw z1D>|4k3WeBPH$q#be0sITJ$bCKv2A*d`{_5OmEM*XTFljO zT3W%qsl|End+(X%PX!se7TriLTqD)GXGPbhm|o$l<|phV(`%j=ez9)95Vcrb>{*KQ zrXIczty?Z{WAs%our-l#|8-h$(ORBPp;u{3-mhJ_(f@bLqT*{uC$c23;jidkW&U66 zqW6)A^ATHmFWGo3t9}3a$m5@S=NCDzzu;5oVv-dyG!n|-LGK-S>{Vd-z8_Kw26~lKlD5Nwf(*+=cKvNt^!5?v@(rg literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/sieve.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/sieve.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..44cf088dfe24628666fccb90de6282cf23bcaf86 GIT binary patch literal 518 zcmV+h0{Q&_0RRC20000000G7T00Ub90000000J!k|NsC0|NsA1CkFn8wz&uUH?U}N z{&?^?n|oOR00000000000001ZoQ+alZ<|06R35{xn74prJD4`L8;Qrh`Zwg@7JSNm zpySStrK-QZdqC_a%0m%Cu*}ZP&fZ@Hic5srkZ1lOhemlwf}T(vY}@UHj5 z7?L=va7638i$U?Psr53bR%pag^fc*UO*qusvMh0x!EbKU(bz2Y^vuf&1flh$ZKG+( zkLbKJs1O`%)AA-@9igaJC|q3UX7A>BXNiy|#^Re-Ey z96yUJy(UAQ(t-R3EAJj9nhRd~hZU8i8`o3b2J>)%kXfsy71(~3jO~ZJ|C4P zY}xMg322uRwW!fA5I}XQP{XPzGW*UwPqQG52*-_aGPf%X1^(11XYl73Y;kS;9LJ$P zfD=snyT4D_q@A?R7-1zeQ)F++7}@+#On~b)2d@l=5{IrYTX&w9NKj$Ct#O+B IFU-FWr|Am*r2qf` literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/sort.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/sort.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..104405f0e408406f847b1380c101872c6d4bcbd3 GIT binary patch literal 804 zcmV+<1Ka!n0RRC20000000QIy00t@m0000000J!k|NsC0|Ns9RU}_g_7K!9Nz*Z#& z^=NwZSF^eR00000000000001ZoTXIXYuhjorjPMoarh}Fj$5})yLRzlF!oUPqp-&| z4~i`(%4ErvrNm+Ef8U)PJ1t}|SV#`*^4;nCzLRwpqdBIdImN-6i`J6-ZJSp0;)_7Fp+S9_85& zs4xzrj<^rU{IkN1-jbp_f^2QZ?Z833=AeiJrqm>*cJJvCUo-!nX{Rjk?lNhDPGG2w zSP8{s=#}>KO=)WVrnufmV7PTgK|9}5Vnd#cR;epQp literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/table.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/table.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..e9916fa3f8cffd52d4e59c09e13decaf640f8b11 GIT binary patch literal 333 zcmZQzWME_f14dp32F3yin@Q(C6tFP-w%cF#CGF(=BPKD6Pyd=zIcK$A3 zy^rg}_h_HVvAssC&1MQ1o!(aYt;|9tdgtw@M*hb>E|BYD^66h)JLlNTTdU8lx8+*= zh~Z?s)^l0qh-9pv6}af_-tP;nZ#X>lxqpLi z(Z^%*Qf?iEqEZ$UAFk?c5?P{bU>KYwzMU)e2*(SnH%qUk^=wdJ+TXb8)BB%i&dco7 zu)g0GRJe9+4^RAs0000000J!k|NsC0|Ns97$RHk9{5h8Qy4`QX zk&l&o*{N9o00000000000001ZoP|;Azu46;ne z!W1cx<#xO5w@+f6kD@JlA*4t0@$us>k@oo4;nNO8y&j9>gC4o8iY3x&Q( zflf^*J!K}^1`ISlp>7_|-(fb=D{El1_IDb5#%Bqfe7@)=tAKRe|y zC7zr?+qS^+$vb8C+~F~0;Y-deh7aKXHAZO=rU%dE>|7|JmBF@o06(I+QhGj(*7;wP zlR4Y5{6%;u#WFzCC$Ds^PK8K()3De%BkBZ}cFBG!6F@!TOSC9sErlus z_4zSuBJS|YObX-t0=W?f1nYpMfh1!AeT;CNaF0W@%jj=b(X#A3xeqwM665y>MyWab i36x7Syfpg51TbRBX^#_ny1r;~CSCBJuk=6PdI^0}p6Dz9 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/trace-globals.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/trace-globals.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..c125e99ee0e053465d89ad54f641c6695e55857b GIT binary patch literal 521 zcmV+k0`~m?0RRC20000000GGW00T7u0000000J!k|NsC0|NsBSdM<}D*w>ttpE%X) zf1IX=dSu-I00000000000001ZoJ~^EZrd;nL|^q4gn$7Kptz3HbV&g1C-%4vhHTTW z07XhAIcZV!-$&VT;und$qsTi#Ppon0Pmh-)bhzIZ%(QDg7d{YtL2S>eOffZ)0@bYAz`QoH$S&cL{afNDnM z9L&s}=my(F?QEu23_w%I&ofdYC7&vInqi3pk8$w!rX}y3KdG4UAMad@Z_xx?l-*}f zozb>zJZ1&PJ%&SO)d__&t+04a>rYw1I z`PJ))S&Jdzcxu-dhX@d_Z$a|3;%JNb5Ul%$zMP1r2mtye-Gvc$Pt*@r(P$FDyF}b(Xu+U zmuw}zs!H1yKV&beisViS6@RbTC@Xz93;3ZC>xnZ>|(_N$>9aft$EZCXs#Y~A> L&^rGE9<>T~yNLF_ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/xd.lua.i b/mk/linux/mojosetup/.hg/store/data/lua-5.1.3/test/xd.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..7c2f3d286aa67f34c689c0097a72ecc4a722f39d GIT binary patch literal 348 zcmZQzWME_f14bDJ2F865Hj~bOC@8QF_$B;H=*syer;qkAo!&0t=9&Rf10gHs)K0jV zcSu2`?eWu!E@2_z8&NsgrPt1U|Bz&^D>G$D6QkAFx9)4xyr;csbN=^v?)>@2%9rNm z%kAG5@Y*-(J9G_Sh7To-uN%iMMC=`@?!-+vzw`?c_F_#%;~N=Y5vtA#uj zjVC=XIHJAcVTs&(=M4Ue<%v!Yn76!~IN{#OZS2cS5A4uB@pMK=N1a1J-+?Q<){k3` zhixo6%PBE;%3M?1Bg#=9B-ryA*Lvxy>)mrnQLIYlce1X}QeONyX*2tRn_u|+)%YI> zwDq<27#+-Xi~Ew0YI2Tg@*nxlS@ZYEWtDrkJekwa`Qtu^-1#20nxC^SJ?G!(e%fi) n&$E~1&!?~2xkOTQO8S?}L3~ekE?>E4YPQk8U(&M*I%fj_yAPp; literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/_c_o_p_y_r_i_g_h_t.i b/mk/linux/mojosetup/.hg/store/data/lua/_c_o_p_y_r_i_g_h_t.i new file mode 100644 index 0000000000000000000000000000000000000000..774a3155a52b49b6282ceae5a20643ce1e2977ac GIT binary patch literal 941 zcmV;e15*3|0RRC20000000V6R00u|^0000000Kw<|NsC0|NsBKs43T00000000000001ZoV8RHvFCWI85RmJCU5 znjX~Fyf^dSNMA^$4j)?ldWP?_*=#!Hllq~aKZr+B zJW3@`c0$hgepkH-g;% zeu%%22HMkI4MSfG4Ym=_Qh|P+)CB+Rs>*>xv}=}JRTp9#}SG$QhGl=k1%R%*8(E^_5VJE zM9ww2Z!FwKcknQuKi*F#lkZLu*FXT9ZFHYWh1?s|R~myIJFOa_Mfm}H&3h~A;G`Xj zUo~9saUiR3#1A+KZLmO~)n zO@6Mpx$`8o;4P88H~n%2M`;^1SajZ4Eh~o+fb6Sws9g`2>sEI1%;3ts4u&8o`W^T_ z1L#yOckW;Ku?|DoO49^TO9x$|#b}-jdZPk2#~5ukqHW!ROL1MvOLsoUwSI7d+OtH) zMUIW?K2IVI*$ui!O5tm2g_3#3e?(?=qGZISo!W!96?GxU7ve7}Sem#wqBJQoJO(&sR$NQp zSWW{7GnP9=mRY(Eh|?1*QV)W42|b}Wt>Kd;nBvacoL&K8LBkla(4XX!e}CfRb1QHQ Pac!>J-I0F*FH7@s*fXq* literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/_h_i_s_t_o_r_y.i b/mk/linux/mojosetup/.hg/store/data/lua/_h_i_s_t_o_r_y.i new file mode 100644 index 0000000000000000000000000000000000000000..b3aef44513dae0cc467a61f34f4b46f152fd4a6a GIT binary patch literal 3310 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 M;lEn^3yA43ECjDhKL7v# literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/_makefile.i b/mk/linux/mojosetup/.hg/store/data/lua/_makefile.i new file mode 100644 index 0000000000000000000000000000000000000000..8f372f2deb7b06dc0bb1fb6b2b7b9f5e4580138f GIT binary patch literal 2181 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/doc/contents.html.i b/mk/linux/mojosetup/.hg/store/data/lua/doc/contents.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a55d37b037674c50d79898a88ebece90fc8c165a GIT binary patch literal 4368 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 KYX1+=13I{TGlT>H literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/doc/cover.png.i b/mk/linux/mojosetup/.hg/store/data/lua/doc/cover.png.i new file mode 100644 index 0000000000000000000000000000000000000000..95e32c4ea67b0cb713eb62deae2ce0fa20ac374f GIT binary patch literal 3454 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/doc/logo.gif.i b/mk/linux/mojosetup/.hg/store/data/lua/doc/logo.gif.i new file mode 100644 index 0000000000000000000000000000000000000000..79ec0fdc9741221e42f055c2b2909b24475e2c82 GIT binary patch literal 4061 zcmV<34%0000000Kw<|NsC0|NsAFRD@afE%khqP>P;f z9?@JAK^K+)00000000000001Zob8kQKhulj$KUU__hw^wZ^+y?rbcKklUudTHlw3P z5nbmt6vt3*kzL&?4M(NI=2DT0O68OqDwoQkt1ix2lA=zBN~btqea`3mFMNOfJ|C~g z>$lfWuh$FIi%k{fq{nCalDyr0Xl~wgp@&zzC(SE1h9-22_Y}s*xzjv6W8zmvdw6)z z<6~ny{x{)EO5PLgLU(m@^;i*?8oMGnH6hhCAxWqQ>IDXIy;nwy0Wt75@Gt2AkO=^} z0FbY%yAO*kNKH*mOH0el%*@TrEhs1eK`{(VFc_J>zTD7IYGkA^G%Up96-$;B;qk?$ zrlscQr4|+ktgZK3TOTBo%N!gI+1V)_9LgOXE1aDx>GUIRZdG)8wVT^fU*BWCz9-hK zsbR6|*z8&sOU2=+gM%A*yvCn?Y6uBw;`2{!+;}oH^z^1pXQHB7Hg9g-y7kQV?Pmpo z^Rcn*2?^~V8wJf2*$_X=-}V-2AY)`O(?4PtKoz+TQ-JMmsv5 zU%NJT{rXsMZ*N~;-{9cjy?ggGnm-;qc<}h~%P8;fq{v^!8b!g zlf%PrA3mIV{CIkF^!@YaAI8Q$zIyfQ&6_t`?O)T=(;q*693P*Voc#Rm-RG&PFCRaC zot>SXnfZHeZtnBv?|=Wj@csMug@yn5@#6>Z|NNhE{;&P_3jk&jScbLYwW+#g7-Ofc z{cY;rBE&xU1h2jR_I{$r&X@h|4Sk150i{+!7a9jDsT*3h4qRxudxRD{cp}JH-FUoG z^yCt;BvkENh_SG^MGXrM^0TzC<^@VNz#A}JCcm-2oN0rvCZ`9W4VUkaYaYTdUkj7!2cRn^?~es-pM9OoC&Et8az$mSa`1 zG82cP2|(Fzb!N#wi<(;P{~dmM+#|Fhn{5we+YDDbx$A*P#itpqXvYxch9W2J7VGt|;&$n-(VP7)I_$$x^Wc!xbM^4(LPd$U6B1 zHq9m|%nCte(K+?ZBAX?|SCXYZ^>Qn-sm9@uxDYl^=TZpu_aZ1!85JC?dW@#~^Q#fwEGPWJv5cw~0#3cem&&n;7#j z({n+;ye13!5kWMB8Gfyj7~Y9OyNlEMclocw+SEXL!`(G#WaWsRpm7+8zN|pk?$;{3 z#A;mQjKYrV^a$J!vF4kB#o>JRZP0Ty`>?Ga9}%l+GbhJS4CZ_71PJf6eFrN?X@BG^ zpK!M)i8izQz;ez+5e^o8O+56%eR;I}Q2NpUTRnAmOa5-xK%mox6EhZ2I-&d%z~w!6 zzM3)aH4XTXD)^YUm#L&2+I995GlD4Me8UvUKZC%BF^Ve+}3PiZlk~Fq_TgRq{v{0Et>3mNDY+BF zjH0V325YkU`Iid)yC+xC2kP-k&Y(8|=IOC3&2~NU=I$kgt-|fgAF9C$K$~j`F2hC_ z+-$^#&gNlXSv(1TeqL^TA1;f(;SwUn%w?3_()(6UwNjJ!YC|6Zyp9wDfdMlX6D9=I zAEwk~X}>WSR}SEpvI!)C%?vxU?o-?_xwH+KV$oJAu7e=1rP#!#*cslQtXLdv2t)Ck zP6Z{Z_kGc0AQtJcqkuxtOVkPY$`CWbkw6{0Lpj9A6MDoH5dNlRz0`Ofz|<#Uqq;k( zMD_wkV`%zJ`xmT&3cc$wOK~Ng*Y9wbyPbg!9mj2`sI2D7=)D50*tF0;({qr`GE8J+^qdCdTF&n{T zo3XwOw?xd3Fe(nbrhHKKMCqwm`Z)oG6c)?7#GxZ=SWf|E6h8h9$6_$g!uk8{q}tDWfyEnPQ4R|EHvwwEWe23}gRe z%D`k*;|=#XU7~kUVLCe)*Fd1l5}IfizGPPpGoc?o;#F4h1VLm&&@A0|4LT`wtG|(% zV9@zf_N!A?%u;?w^TUEqUp5uK1W4n$8|}lYd|up|4!}v|Ru;G5R?lOva(z0^jR!(8 zqha6C^~L6%pBf7(V1REH;!Dw-)RnN&F@s(K+d+K6unt`MHT*qF1q)A;nGjPhA3G_n zZx;&<#xWH6BeIAFMH`J!15wKX0kYU{M;-pH=h>daILt4o7>0a>I9h)d70ihowMV~m zC3D&~2DE7JZA*W@X`z1% z9?&=by!XW%uDMX*FH|o(!8R{E#u;tNy5VxhW%B~B_WCg+J#Fg<#l|G0w<+t__XYxX zju+GH_NE&H)1o6rA+uuwS$NGJe=sqPTUfEfE$`@R_wA|6P-67&!{@uNj07A`RILWD zG7j`zlwry~IRD^wkVAPri!868`&9jJoOvH@CFirQ&(+s6p%Q1rq|t) zg`zK~7;el@DQ^0Q7jWlU5#BfA!eLXu@x~`M&eze>lxrn}UHtoK*=Sltx(#{EQloaNSk@x%_@(Rqz_zM%Y`fJRX^ez8F9_8!WNNv)G-)f{i;Z32b8AD! zhfe*ISfUT>W*b&y>0T&a6)7>o*JUoi@9|74#t}wJPm$%~bn%^E|BPI6uxreG^ZFG% zxHZ|`nClqemW-;JTrM|e|Bn3W9B1T{f8`A4UZw<7d&VI0QP=ybi6COUK7nTP2#vfw z|9+ci4zU4xl8-D?ZX!F%KfW{HM!LkxBb>5Tq9?g&?fPsSpt*mlY)!^LaxwWvUBBgl zMRBV=w{pg#_Qtmzrf(lMtOPu~jm}}$Em{5g9;5Rw?~1wP8$6S41LHLL76WPV{wu+E z+E-GcM9zp8+BqX=USjfor6Z)~(k88{eNIf+lXd#7uU1B_$r-(!NJ{fdcX! zkbQ0FETzvT1`Ks)Lz*mJIVMws-mCP<0un0`-G~`4Egqor35yEVR_v_qLAyP|Nu>2~ zDmxBwKb>&q>1r>;C6)$I+oJq00|sqwc5b@5ZIVyM@cOTylL&GgE&fn|ajk?r-u~(#TtCy7BAOP!5AqP}IX(B#Ql&n7@*^XkEa-+ID^KD~R zOmv6f$f%YkeCaJj3D7=-=Y_k+q+*+t1v&t*kXCXb3Q^3|*amylKGYSeP;10GZd%A$1FaD0 ztP%U=M@G=+kx=nbGY6jAX2dhtI7I}k=O15LZyYzWYW){jPm|+E#yl(+#ixvUsIDF_=FsODRz4auk=Eqc8ZUcpDb;xrSPy6XinRs?UIN6L{Fy?-Oq%|tiM zUSC8ehJQj(8^k9o`MTi@RA?J)Go2eYjIJJRvG+vrHE^I(P*i$k9n#wKyme^4b=czU PgK0bn0)GDisv>)n*w6G; literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/doc/lua.1.i b/mk/linux/mojosetup/.hg/store/data/lua/doc/lua.1.i new file mode 100644 index 0000000000000000000000000000000000000000..de12a3171abed4e56ef2be219202ecdf0deaaf6f GIT binary patch literal 1765 zcmVDyx2Gm-m zRZyOfmCnwc%zaNNjb{DSsUo0r*2s{qpt#yg^bQ|Ji_n7r3lTyoT8lga|73M!9wBwB!}4C$hs4d)<@xACP+ zgI+4LNksDSBqnHhj?YCK)I+Zn8Z~xxBq*dBfQ&6+D8)9O8Vv$rhHfMIPi*Y9pscL9i_&n2--n7jsV@B+QMSBF=$N7BW{EgM?-PYc`|UyrRb{S4Hp$ zR}m!M^rcJ@UhBYe&C-P=9F#-*rAjr~w2>7HWenq8(DMdg*ve!C@z2U)2I6pv)hX~# z{4N7u;x8Un+88?MRBo44*3Hi3QOtZ7nl7k<_$-i!E&!T3?TOVwWAW;+8=evXA{h;! zTjK)VXiXQHT7%`h!AKvr_CXVJ)?pOvh%rhEco_v(f+>uzkz6?y%jkm2k3^+{jvA*u zBy?)345Q)Wgn#3_MYrCIf}-(4%_WhJ0@hTBT}%*ZcpHISDr^wOqbFhjpeVovhGiPR z?J#>y8*FQu-L-9M=UALSxdj-NZe$QKxp_xdc3m(e8m_cgy;hCMyYwDQlMx+}Ns^lk0SStO zr?mI%5O%}ZwGlTYVOUV8-RI-3;Lb-7GetF=5+|vv6Y=+*0a zLG8e>Wt3&D3eg#YQrH%O$U2j#$rz12A1_hMbw{-FS=9{{Wmh`lCCMBeLH%?&N}#zB zc8g1Gscoc=plItDR>?1q@>*alpdL2 zHpti+nZ;8m09$p5vTTt2yHeE>g2h9bCubXo!7;_OFOA$pZ4@!M#uHRU(B@T}bd~6a z_i(zP=?(f{gK`dqjlWd|Mmn}VprN*s8=?_|<*G7v7`Y&-VO=Ew`KlM<0Xj;FfNdw& zLS}qhGQ)1VAZqEzb(R@c1GyhBK2|Qqf*;8!-`_JU4%IqU1Wn;}hQ=y`5D?Uj_)~$X z?TKK*n-YAnq@wJwcLbugQwcColAeA5*p=>E}#9aV`lbus*|*}1o+shePp zvgSQ^Se-2DyCms#wFYnn6PUa>-2~`WiPI*;fxzPBqYRf$=ljHH>kU8D18+~Xemsqa zU!H2s3JbgzuSB#Nv34V|9TYW*sJ2|u!hl@SIm)y%n_7onA?yE%=`Aq*h(9=Di@D+p zbyxO;SE1HthbWckipbCyBC<9KkgpAHQ)tHG#MlW|X5-kEGumuYtWq-;+G`^X`d?>S z9Nk<*%qx{hBJ_d7WvObtO|c7Sm0`NnQ$2#*B+-PoozODw7B{d3oNeZkN?ptl<=qZ| zOWWj^TEx!pe1HzKyz>G7N_cf0^45xL@8pTN`g|;Cp=z&FuL&yefHZW7<&rAc6C_r9 zyB{vEG**90l#@Du0Y-pv^RRjm+|(6#pdfQ5kFu`e}GK{4D+h H$llm){su-K literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/doc/lua.css.i b/mk/linux/mojosetup/.hg/store/data/lua/doc/lua.css.i new file mode 100644 index 0000000000000000000000000000000000000000..8e9b180dbaca7c57b8f5b199ac34d9d94decde84 GIT binary patch literal 381 zcmZQzWME_f14dg02BvusHk12*D7ccb=&)VH=kNLrY3!|+*3A-H?d}ax10gHs%$;;G z?~sB>+vBA+texA#GUtZg+`5mw)%moGLBrg$o66<4M4c6yoN5yDVg8)={~wk#?XWH9 zi|X1rp~qmw2|aP?dB!Jyh+S({*nM@`neBUY%0dI1-dJl~6Q8zL{Abcuk!kvmGY{@{ z7Y>QM_)y>EX;`%T$DS|T`xj>({jss^TartezTB^=U6*D}@GJ|m+GJ~N_xZsTpQQ}f zCm62Ha{hSyD7)%zmH9JPPdzzj)oh1C$8*=!Lz`zftt+%+T@8c5s;QR$_TBh)^yrk#q+bTh#1E`Zc8r|7hv&}BwV$*aJZ}7V z4l=lPL+p-B{|Uz*+4pYFd*f-}!9MZhf~X2NzEj4Z3wH3D+ZMhLi&R&bR<-!qw>>`% XW><&*Is53l(#eRP6Y?h0&#nLfF2T4h literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/doc/lua.html.i b/mk/linux/mojosetup/.hg/store/data/lua/doc/lua.html.i new file mode 100644 index 0000000000000000000000000000000000000000..bce0ba119635447fa852be6ab4d1b435cf2bdb96 GIT binary patch literal 1887 zcmV-l2cY->0RRC20000000$oc01v_d0000000Kw<|NsC0|NsB{Kfm(EcYb;Pmh1JBkDqe>ns+)wHn^RCo#LPI z=o9>zPv+C{aQbb;!3xjCN)Ec=9UDw1cYpGS@$|aoe5s{dOX*vD{{4P@-SYCucVp*T z{Ptn|`MQO1;3I772GeYCGyC+N-+cKvo6a7tTfcs$pB8?(eKWipeI3KnH$w(nd52Ho zx5~Vco9%@CFjx;I1iHyccbCilu@ZqS_!*+1cxi>=B%y`g7e zSM~RQ$l|B*hc#S2$++;+(X!l{ zl@+OLGpWFgg?$`BDum|F6gHN8X>7`kW$*>;#U{;_mI+^|OxTjXM(p(d_=^Gu!b)xm zpBJ7l$|~j z57``yui!a5#{1Ms35K=Vo-qurf+8Vn5K^{_tHK50SVDY9Spv)v&uU|BB|3Dx%OZLb z8=+{V&(Iyv+Y_zN~_Ro4kHZgHr!{Y#-$p%x7{XkdGL&!i*fC5I8ytm~JH05W&)BAqXxp$TftfYtPM4+s!)Jm2y}G zLE$m07-hCm)?@_H1_~0R!_Au}5QPIf2<0qP zcz_Y;>DL(ZN#}&ZC7}RV6N#x^AYoAeBKF-B9EAo{CakYEfM=&x85RqnnBZ|M6$uUj zq0BURh31J{^~rCBt!g$?1rN3=^O4lJ`%`4me;Cvz$RV}%A35be5AV2)4~kbYNHKS&D@ zMW~rr8|<6%Dc34iUYBRhd{L3OeU)6F>>6^`Bu|wUx7PwHd!ehccmnlvj_R&DGV}w1 zDs3xypj1YDezdv{)5#pVlMfAq6wU>`&aFxh8Pb#^dZ=1tQ`P>xf0%u}-;0`G!^W^F zpiam&ON%Ul>Ip!%;S7fkpp8mF&#f*ieR_en|0Ak5LHB`+NG52@*-Fxuszlq&NneS$ z1*CFthP0?nA#>{^ptlkxGcaSIx$Jc;F`-q9CC*1NWUB5T%>fmMgXaw}w0lYe6V5JqqbBFsW^ZQg$#>!eopM z`KOdS+QlF_MuGDL6hF1UI*y$hu*TPr#Y~3ANAT94d1#*0rgzweNv~ZcqRoDG Z+i;^E&pwAcau=_zbd{yc@_(4mIDZchj)5e8rYz zjvW&C2ha`x00000000000001ZoSj!)ZyPrdL|^$U7D9l;fPA*%#7X?-Bu*{BwGGQb z5j1_E?syWBJMuvCB&)x^vm{R+iThHZNMRqjAG0&F^lzfH-Nvca1(j##Z_Xwk-kn!c zmG$ZT!{l6^o|lui)mt@D)tl4z^KX8xXr&piXi~g>Pp?l;&reP#C#UB$IlnkPyEuD8&9bJer;c8T;_;epzFvN!35{NS zmO))Sd*Q`M6tio(z5L@!a02>%OgFux(zcy$l#5?y-)`^jXVaM|KE^7$jrO#KhPY=`k$LZbe_MY|>mg*ouA*O+Xlg2kF(o^T`!pYXt+UXFK zA#JvI^0!u-1vSzvdbv1E-LIN@-}Wh=V$6tgKW;(p03LRM`hr6{5Jg z7mtYCN~Dn0N}7Opo@|XoD%HoC%4KhUc#=+Ch+6s~9zKl)DhjF$e9YV4l?r`TifU(D zl4YqYg`f@f9+%1`N>+X>P=>H|eT?Xe{01kU@KKdN5GIv%@6_?GfXbpOV*}~7YtUq> zAvJ;th`A~yGB8pR*=@Zfo3-5d0qcqqRvVOzDn0P2El$l9XW0WLPs^u#vT5v^QMJgi zyUdYLzFft)BqR8QfEn{`eLuH^^Lr(7Uq+S6d+9W?`4;(b9YaimFRgRRch*!pl#AWq z78dy8|J?y(All)mcH=&vO6e4et(|CVHwNw zpggUutH|qrRHPVVMEDJpo3jp)L6)jVr@+diBo5z)t`7;h(t-%uaP=H_3$$QJfyqFy zRQN)#6p;P6p-R=VZ^Bsct^I(&fc01*|3fkle5J9N8=r`V=kLXe+d2V*j8>^YVd$j68;0R>%L*O;mABH zMy-^?(0{!(7Wib6`YK)5%0YhgiW}yWGHA^7h&m7yptd+41+g8+FA-Do-*TTQg|QjE z{C@m$BydrKlO_0*h!D`CbSwrQfsA9`jV!7@-_F;)UKsSjmlZ&T?+ljuDq5IkufX7) zYBNyME&3Kc@v!g#`U{!BNS9!Z2Ln?Zf3u+cs`c5Ze%@WosGO|3%1X{4By-OD#WO7CBm_JruFwhfz{nB<2=V_0vf9 zxaWlrPIr*!yvHlXBwJ=H&1`4x4o`#w4#s`SzKVY>o+Q4LWqc9>>e-`u!%hbm|46p9Kh<^c_iS(UlK#83I literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/doc/luac.html.i b/mk/linux/mojosetup/.hg/store/data/lua/doc/luac.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5958d539a0997dbf798e6cb388e8f6f2a5c8bf0b GIT binary patch literal 1907 zcmV-(2aNat0RRC20000000%Pw01u1+0000000Kw<|NsC0|Ns9AYo&AEd-E5=xODf| z{dJUC_`L4`00000000000001ZoTXRWZreBzMPKz5+-!lSfGy{?X%V;vlGJI8b>kpO zu_zY%KueTOR1yV}vZMX_JwsBKoU~6{1PvmQb2)S7%;-&&sH)LobHSD$vh4W$^yK_3 zJrxQ6kRBz+N9X+f!&#brOwT@^X4&#goS(WI7c8&&@Q?U7J{_eh8R4%aUfUv%-bCZy zhC}vtmbx=ZT<~(RVaM^wM|N^_bUr#d9vz*t(UH&kPYjF`}+_d)aY7ikJD-uh`jH-1akXI^Lrd7ds zlE_rRXwGVbOUW7`3p0oiMx?TA2e^a^IYPoC#$OTa4l=?suH zWWYDhHscO|2BQJ?U5qcX!tq{|lv*hgVGP$2&P)M!xQ#OU(kDu5VJcOo9nNuAx|IUL z_`O#&Fm1n9UA_0Xl4yZYQzW&QH^o&cZTS)jsgfWl6wGp+tR+>vMnr5Y?b=0X&;)F& zbjpnUS2&&#N(@hk;pDk*9jr-fBn-q1LL(Qot!nG>OB5I(OUi<5@8FIISU}S<%_p#u z8v%T;8kUNT*SQ@;bgOR=SWuUyZ45D9QXGS5i6f1wU9)(4!lmpIqZ>ozV)pItbD6bu zDGExJcsz(&JB56XNUd6cyKIP^A$Dqk{W^5Vs#i3jVk0X2fah7AvzGEkY=lPjUtbwS zcvbpFOl6h{jZS2TlrWv-R-&@+Sp}j3)&l2)VBjqRYnx?PpjRF|65m782!^nFH+<*7 z!c7UbCZLw*heg6%lToS)ca`s|=oGEN-f8X^901%pDAb{XeWuA}yvIQo;>K~LU zmp=sh2B`#QZP$V{q7++(su|=$CW#a{twk=lA^CY!gNP)>1J|cIPE*FcNf5N2sMi%J z^c!Z+!i}LY&=wv(R@BBi*%B4kfM?g9!@S>|h%}eRDSJqKSO2ynozfwicZO}Gwl$zC zIP{@}&3U-niDk!LK!Rj7z*wRae`R5oK^a5lBuB2%2NX%U2Q}%NdD+^L?@I$RNb9?c zn9=2`7##~U+>P&`7*<8Srvr>vs3=cc5Q50O^cP2mzi0)*Xh(nV!|M*oJ}9v3KwnB# zfg~@^yA^;Gr2vredq>W`z7@Qog6_3cD-o_oIuOGm5GLPGgfeU$5L6T#H>h3|DQc#` zT6*opK&m=)RR?OdD@brjd8W!4Scy^)-5`BU-)S6u1MS@;qv1|y?QaBbn$UA>NA~CX zcoETvtSjnu@7O5-n7qUQYdYUTYo(3vL=Od+igpT%LM5~>1*cK3RlQm}6<8tb#`$*@ z`-whZwJqU_SaD+qN z^y{+5HdJ~IC(RAqCnmQm#vUErs3if${|al3sd(a+OW@vMvD1+9cE%FF5nP~^N|IW8 za_PGCGl{t{s+KCQaK7;FQkO9`F%>>60zTn7&-Y??bE`JcNzf=&adZO{q)@y}Kq%~uZA>3{O0Px-lb<{sk1qX$`#ih+ za<_PVnq7yuru(QOpE^(dxXV$fXE3VdR_VrPbouS+cJUDI&SQ2PgE8zzu4*B*NHK~Z tVm1@HHawSwN!E>9-TsQ%H3qivpT^V0jsMmi(HE%uB6T0V{{iuyMiil)nYaJ| literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/doc/manual.css.i b/mk/linux/mojosetup/.hg/store/data/lua/doc/manual.css.i new file mode 100644 index 0000000000000000000000000000000000000000..5a4b08c6f8328c166eb2e4fd9f8f02d0f0e69396 GIT binary patch literal 212 zcmZQzWME`~fGI%gEQHDA{vQf#W@;p#4}2AC^So)N>{n-bF3#9*Q1xJ{Voq(3E#Dyp zk%r5Geg_{#L^YWys!WQkRzMxk2 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/doc/manual.html.i b/mk/linux/mojosetup/.hg/store/data/lua/doc/manual.html.i new file mode 100644 index 0000000000000000000000000000000000000000..fb972134afbabfb172bb7466c774b1465f56f477 GIT binary patch literal 66309 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 z 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 M&)*LG2UG|g77a}eO8@`> literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/etc/_r_e_a_d_m_e.i b/mk/linux/mojosetup/.hg/store/data/lua/etc/_r_e_a_d_m_e.i new file mode 100644 index 0000000000000000000000000000000000000000..fee6ae8fffefa280eb8d2de1715be0994bc54a9b GIT binary patch literal 696 zcmV;p0!RG-0RRC20000000MXb00bQX0000000Kw<|NsC0|NsB$DN-;osUje&_Eyz4 zzhUxxzxI#-00000000000001ZoMltpPunmM7mv+faq0`308?7n08P^vFoZ;>iFTVN z?d4)SjaA2v{E;sI{q9mg9eYVE-~B%B!+VAFZ69=Z3Dx;j;%p)-eNw)!PA|^ON>3-# z+3ZZco1V^QCl~rcolYhL;u37eqcd?LX2&|oIplBm$wL+E|pCukddiKXqq`9w~bk~1TcF>A_z!RT0!MFq)2 znT=KOkWs)wCz$_wxc|Ih?Kv@X0f18apoqryB#+h#S&Y79YZ*nENryIQ`Z5ZE1qsDa zQH*XpjM*c2r^itFKp9Fmo|veyqHfz_#5A==MGV`HaoY94!ISxY{fEdMjIYQ0PcS2W zF}m97Q|AZ3Pvex|M0msf-sqByBpolQ?v85U9(A0{*tcvf;Ko7OL(Td0pJQ0(2zSAx zC~Nqz+8#cctVPNjqn$u0FnxUT&{7xL_3DT?E3*QH2?rl!YDnm!C@~eIg$$-m|Fjyi z<6_4@Ow4Fuk+L!##Mj#;T>GYBL*IgL+B7DkkJ*7qP|?LO$K+c}+hVyU+Q{E8Qsk?l z4Uya#I+zCkn-J06d9MbaR%3A7UzX#Gm@p*1pgjuUH*R-)MEGia&bJsMagyMJacf3y zOse4}-~l^tR0Qi$J+C3h_}qAvdDgTuQ~~X!z+Js(l2@WJ1tXInL@`XoGjV4W$XrGfQ*o6XBYoC0j7&FX@vfshq*axZ%4 z9aa!vOGrJf8L+E6%i8bKo^uzhLk=4(36ao|3%qq%eEICOIlN8&%slqojfsEyN^HGv zy)}8aF+Q91_1bqAbGBH{z4CC2mY&?mrsh~HnAZ3BN@kLk zlaGkxGM<_HHJ?TlC(UrQjGIwue$>A5)zt96H>w@@Bd16IwF+CVa4}}%jDip*lly-tXudq-w!JLhnQ#8xi9aeR%Uijr3h>Q++;d&8i2%%PPD$ z(w$tDGmRY|FvM qlD+4xcy1osr?zABPRS*{T?f>>P*!v$2&J(l@-3|bKWNQup literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/etc/lua.ico.i b/mk/linux/mojosetup/.hg/store/data/lua/etc/lua.ico.i new file mode 100644 index 0000000000000000000000000000000000000000..6c3bdc256f356115f798624560d0409c4203715e GIT binary patch literal 563 zcmV-30?hpY0RRC20000000Hv=00f8t0000000Kw<|NsC0|NsAAd#1yeQyDZCLimr^ z^*yvwKn$7y00000000000001ZoTXE}Zrd;rJ|#wNcxe0tji#VW9IJ8cG)puP5H~+V ztXM#R05J-+O(%085N&#uK7zKsM#qjG0!WjuccduOKnoP;N$2B7-4A*9IT)r->u;Y{ zUv9!xbibU=vnczJrXREEGQD0cqpNu~nOrWX(^)i2C-d2Lc5fnX!pF~d=U3xse0j0T z(+fi5hxBO}3;_Z-f-oEb%daDVGqR(R#qR@vx5s2@9g@bt{yp=J!u}%4yr7gd{LrGR zDzdzT<^@D+_~9-7AsJ{Pr0S9lgb}yV7p<%<)(%VGyNk&8IAJV2G43Uz#8Q{|!T~)| z7RBOuqnn};F=sD@Sm=drM8g$2yr>Np4hz|E!VcHPAuciRuy=qC7rMn(Ua;1T-R(9= z@v_5`dS&YOd>nVzw^;4(YvR3raQ?*a7u8o^*9ZN47IN+PTicepdGuXN+j(`^8Pf&VX_UJ9tC2-Vx_^ z%)6k~AIx)Reh7P>9~}BX)PL|?Tf%C~+(FA&JI}bCf^_5iqb(a@{D{CN4ly=)%0{($ z^TgIMR5xU>Hcz&^X*ubCJ6<<<%!B2BT|pr`1c>8Z5hIrTeFPdtApQ>^vopWAnH;!Q2xa%hJ^g9zAKRX|Q9t-~MXpmz`m)8j9(r%}&xD(r$BJOqJwry;v=9>Y9&N z#Ab1wmLtNtykQ1Ew?_LYaJ+CR<1Vm{`|+(S-&*cYpO?z)`TnO(YWeK;Uq58OVaDMj zm&}h|e#{>w$dZvolrlcl}P;%&`8gsQWBV(*-G;rIZ)$$SIO3n02Rr zqsYyMYp2Uyzx&Lc_foa=?+*j98~4vV$b4}nyZpH0wq28U>gp+(i=3Mhc4+6zXZ{}= z{`|}-^-$8&6hHP?;^DsAn-|WD+pQwK?f4Gs`|MlpbgUAKI=Ug`!{30#o0N)^?c1Xq zPlepvaA~fV)NReZWz{Ote=c)0o3TymI#c`SO7`z*eGj~!AKUvqCDbEqUdE%X)3;eo zmJfWop!>7!AD4g3Mdoj(fZ_-guRx#(jNM6K76X$9hz3Ql=RPyu2fx`4-aS$v(RQ+2 fphf4rFGLLr83^T_1=81mm@~*$!Bo#s&x8vA#r^*p literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/etc/luavs.bat.i b/mk/linux/mojosetup/.hg/store/data/lua/etc/luavs.bat.i new file mode 100644 index 0000000000000000000000000000000000000000..59a9a8d869fd4ed6e4e3e9fb0973b95779443fbf GIT binary patch literal 1176 zcmV;J1ZVpI0RRC20000000JTa00d?L0000000Kw<|NsC0|NsA|*8EgU-8ckfigY-9 zoXMB_fF(=-00000000000001ZoQ;xgi`qaC$GNxp6vKhgmNRLzTJaFhn!J!EDn7In zO2cM%)7##fmCZ!XZ{KX5JbMTBP595w({E;SV^MWDX?`3-GWgsZv0-mC8YXc}`n>_8 zE@3Y1e;N)(@sK4SUAGqx%ZxF|oOB1aYxf*!XzS>>&A(%P|y4KU*ZI%gqs}<^*|W;0LbFq`a%86mcnS{><;dpcDo*7Kjuw zP3s!(s7g_bI7iMPK7mJ$f8~%3j&ZIY-%ws%h^@@ry9EuCegGivjT8bj^lP~ zCe6f%1o*Sa@VrmEIHO2-hQBO;j)Cexw|RRb47x?(LynqfD%X^sd))V~vKPqo1!s*| z9___A)pajeO~_T!i=ekSO~3`CStcB`Nb%pLid0~wVv_L!r!rXFN}*c0C-_(!h7CZf ztaTze=VYi`tq802>y1?Z@#~Y(|Jnn+x`;BO9JuUJe4A+V7uvS<7qpdd$p8QV00JTa z00001_5c6`E&u=k00002NB{r;0RR90|6p``-M^QDH()#wA9nmk*%$#DH~;_u00000 z000000C=2@Q(bG@Fcj^>o&x?4mqK70t<5_2(h^t}`ytFuLOwPIV@8&gRjVuo=_<7U zezF`p4GUxjn{#!)&OKMYx@w*`TmQzN4XH(?!-utLX# zhIp2(VWR7rCm6Rl(I6B_H7Jc>oPw?Q06q!}Oc+j4o0o^+5ZL*+@3xbC&*eRE zq(7x2dmC2-p{qAVpoSCV7QFM*hnPuubAVD*0ml59-#|mg8?>=ND6ochMcz`a(1^+* zXHdOBO7?<5L6kEjdO>G|xf4k9`p1GN_=dKdk^Bgw&>C$jc$o4)1#bo5T<#w!oi- z#iO>dU#i%0i@%})z_8&qgxl`$OdQ<$(mRKSTkQ1(bBnqh~pW@?vx z%D0KR%=RSe9M>k`lxL$V?2J(OkGet$Y*9rl_moB80iV&Oz1(M(NB>U^dQlGA>d{Oc+W2o59I}^&|xV literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/etc/min.c.i b/mk/linux/mojosetup/.hg/store/data/lua/etc/min.c.i new file mode 100644 index 0000000000000000000000000000000000000000..677ace28e1ce3bfe4c288b1d5e041cb1249dff80 GIT binary patch literal 534 zcmV+x0_pt#0RRC20000000Gtj00VFU0000000Kw<|NsC0|NsA*TsmlyVvrlmHWXEN zlQ!b@;7ADo00000000000001ZoPAQuZrd;rM6UdbEsFq>Bg?W<8;u>OKOp2%^j5&2 zM9N-(CIyO0YZUqSE-BYhi=Y=ic4uavH>|PU*{PQeluccVQb<*-KdA>%m#dX(>b3k_ zh@ued<%6tMS+4FQV*`2+^Hsjg?-$B9ixZl>VK;0sV>5^!n9o6kC!U0cY7l_NE7v(i zCxNsTvWMPFG+>QB!w>YwD_%Kg9UO&`8qFamys@KzXgpez0l9*$_w*1>g2vhjcg{vJ z0lagB=gf}c Y^Ka|t%k)p2M%!ME3oy<1H%bN*1ANu^tN;K2 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/etc/noparser.c.i b/mk/linux/mojosetup/.hg/store/data/lua/etc/noparser.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7182bdfc16790c943cc67b38c441071c7f01e839 GIT binary patch literal 762 zcmVY~ zD=3+w6SNjNI1NkofWRPY85J1>S2G7(qXnfMrIcerQ5FfwBMWs8OU+wJ6+`K96Oa;r z(r-6-l)$PMWeo-!gBF#8qvO}0D-S{w9g|^FN`QB|eIq4kCD)!4E2OUgsTqetC}!4B z2|tM`4%QhOZWAEbQZF02;II;|_70RDZaA+9x+N9~tUKtMJqF046_SU-uElfFM%>d7 z`BK-bQ51aB-Xy9Nc5{<}70ZUWZpMRfFdPI2x3&*D@4Snnz*-9H2uwH&y7+;m3yMf> z)wzwqdMOISj6j=)bxENf(15LVORT9#g>86W2+KFUpqzTPj_eXHAqLQqBDuvN4Pve; z?+7qyHLMuzggjx7S_E|9?XuZG(NcYsYT6^mN+^Wc{4&43@doerGEqE^qHQY6KP)ch zpFdJYs8Y7{-Uj|%r1fAovw58T+%39c{q6+5U(F$YO5nO^tBS5;|DX7$Zt20-j53NX zu{Y+4#ykhUem4%)KK65(*49!uG)xY&WU!&I-5&D6b0r$1O%MR|t+>`GnB`d(^z4g@ zeBJuIV^yodcKU7!+9x6Ai?GMPa%0H0x`Hh+kWPR5)p&-mN`lcbaOPMNVEjkc^rZKs su66_8wHtT6=bk)F`YU=?ctF=EE&kgr&;P$}?W5wNB9}IYKNT0PC(=7;G5`Po literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/etc/strict.lua.i b/mk/linux/mojosetup/.hg/store/data/lua/etc/strict.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..346916175a8339b76e011d0abbedafd6af45e44b GIT binary patch literal 558 zcmV+}0@3{d0RRC20000000Hg*00Z>^0000000Kw<|NsC0|NsB%ex2=BU0pbv?PG9f z)*!aJ|vK>w$y8&QlV&wX#zqDi?Ti zJfphgr0PJ)0VYZ0jb4JJ3XGhB=)HO->Q)=15IRX{6BxL9nR=wOp1Db~(*(A%K_Y0q z5>9GW2HV-71!?ZkN!98C&=_qBFnqG;Vx$rrpuv;x%Fo+ovM~VYJfh<++(dr-w#;N3 z3x{aQ^{6sPoqzt)pMBq6P-&T=YO-u}_p$vlXEp*;&mH7TqDh4&%@0!ZO#$pX z3pInz8%0H~8feN0qB~+w>}rt0Nz$f&6T>TgP7YN8=RiU(ly>k=)DQJ@HZ&`k2pf3^d z?G9P{9k+?A(lvdaYm4K=yqx+j;P8RM3~{tQ^}!4w>#|KthS&f3I7d=cS)v+}A?%3x zV&^2gC%$*3^M24u%DD62s{^5A>6*r~y#+lr^;M8BS!TxVm?DxV= zq%`lurnsf{GJ-{1jZSoDiNP!gx6^lLYtRY1eGFHUqTG(^mMhpx5-uM% zqP_;Egk-5060@{|+TG1d26vK{zKq>-RxKH|K+LY=?>@Yr#Yi#t6ba4L0INsdeY4zg zU!jX-@*kQBHWmANwDOsjcl34?7B97=RlZ{x?fEL^2>I~&7bFQzn$dV}546z70ct3B z%>KYumK!NM|CYHBEwsy#tyqIehoi^~yZX#~I|}U#pDLqI7nB&Nzcg~F*EZ++9Tl4r`mW_^$pjWeIkBjozMl&dyyUz=M~MZRxL605L%vb_dNwM`7GqKQBairtAY z{eX@5{-4F&V~7K=ZEXW=);204%Gil+?P%>+;VFhkz@QPc3a>WT^*3EP=(&70V z0s23b#fm>?C8t<=`yq`Eof?GISKOMc5ndo}e8oA)OWSzd*L2tn@3l2=$1BB^uX?i4 zhf+Pr4~k;%>P~-WpJ3QOD3HUK`g2TJCFq*f5b^`#Uh?jB0 zi2H$fdN%^@a9)@_r9^J%?w6W~P9#1$tiopq77DW{r{j2+86wREvv)~oB1Bv?t{Rk0 z6Vce$Y$>^7NA7qY%<4Xeo(mpUe?~o4(l;Zeh8Dd(LVZ2p`+Gg%_n1>)c;)c8t%ht8 z^9!PQ1`P?po?da&Sh4>ut`jvQ?n_okgx&r*kumT2&7tmt;tf@8HuLC z@0lP-QlYw3gTomHj`UlER(N5CdORAslH9|Xje%;_DOTgg+g?Yxur~WK(2D(EVqI|_U zQu3E0(WbA@+SXqErHi_@wHC&n=5)`g8v6R3TNDTo{{*k)6@nx9<&yv)LgZ%v5X41c z-kE60Ie#=_M0u1@}|+uez~m8ep<}xU6z-`F>g&? zqW`Vhv7QL7O9ZP&b99KGBrJbiroP=JLzQe>T*ZHz{}2%%t}nzcIj?DPEg+(bFgNW! zjD;`9rVPL-Rj#Rnzpnfs@7NVG?^H-~VZg4W|1wIzGjp;Iw_I)mfYJ+IJgE>zzF;k` zMdt<5gSiOiSpei&|ogg<`qDa_+_sFK$QQoaR0)2+q|>dwq2b$9=iyq!?IRl3gN|5Z|v(Yo)FV0rwS(#^Jv$o683Z14|HLp6^%EP2+bIOUw_|1 zQJL2atxZmRB;%>)gJ)KkwI5AJ?{`8d5b{f<4c=h;dyKUf^VDW9=FVJPdz+!2{J~RVV_g{Q z?FM8ylDfkvuxa=3kW!1w$!oaNJ)sJ2HoGrKILiN((koJ&&`fS3x21zQokrWjpMc-e z{tY}uP#eB3DgcNj3lv82ws}^xL(6>cJA_3noh{5JNq_qha8R22`2IimwqHC4oJqsN z%nL5Y8r%pIRQcKr~NT~L2F#D12UTjI^E&B>_oLe-E^ z4SI$eO~hlUHX=&DVSf{`OsDN35!GgLO7f2HT_1f&hN?VlO1_3r0}CiPT+%XeB9-wXtT^$r=HN z4}1krdx0KtE53q-dcl1sMz{lmzg)DFLwAT8tdx_(ok8W}ch+hvtLZo5oKU(AxTb1L Syl0cEDO%ELH-K!CgZ~5M(C7F7 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/mojosetup__init.lua.i b/mk/linux/mojosetup/.hg/store/data/lua/mojosetup__init.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..d5df9f49493bdfb2803a17574ceb26915903b8e4 GIT binary patch literal 12722 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

      bjEzLGV>}i8G1BOl6vB}aN@8nD3PrQwP;eY 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/mojosetup__mainline.lua.i b/mk/linux/mojosetup/.hg/store/data/lua/mojosetup__mainline.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..c1bd1e8f872446e833e9788ca2a8103e0e81c4eb GIT binary patch literal 6036 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 ZV_C+uc-J}Px1VeY`lY=~{ssjYpDT4ao+SVP literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lapi.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lapi.c.i new file mode 100644 index 0000000000000000000000000000000000000000..601b698b31e41173cd4ba7a6acdfdf90c0c11710 GIT binary patch literal 5733 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 Yrmpi`Wx~ApzwuYLW}T2fr=R*608?m}W&i*H literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lauxlib.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lauxlib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..978ac6099ce6f5c99fc8b4aeceb9d69ae2844286 GIT binary patch literal 5038 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 BO;!K^ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lbaselib.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lbaselib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..e9db4339e4729c03e6faade29e9def57cba9ffbb GIT binary patch literal 5233 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 FZA{rV<}CmK literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lcode.h.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lcode.h.i new file mode 100644 index 0000000000000000000000000000000000000000..78830087cb25798847635ec94ca9930e782e87a8 GIT binary patch literal 1042 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/ldebug.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/ldebug.c.i new file mode 100644 index 0000000000000000000000000000000000000000..9722cd0013bb18799126a9991d4ac65a44730124 GIT binary patch literal 5611 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 KaDD?E4^O@>B@x;H literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/ldo.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/ldo.c.i new file mode 100644 index 0000000000000000000000000000000000000000..1db2f7333e7a1fca61a5a87401661185927ee38b GIT binary patch literal 4806 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 VCAsWW6ETrQJU5pS`472c>f-?gZ2tfN literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lfunc.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lfunc.c.i new file mode 100644 index 0000000000000000000000000000000000000000..5ec7fd26ae22922963658ae1eb64046757d8a7f3 GIT binary patch literal 1695 zcmV;Q24MLB0RRC20000000v(G01{jP0000000Kw<|NsC0|NsAh5odq%9DtiuU5Mq3$4bKIhX~%1@mcyH z0^!AvKn|3UVFI|m_CgV*fu}e`u~bq$Mmzy8^nnF3Nn@Un@fGJVrkuoLso+8?!8nMJ z;&qpu-gc+c`9p*(NPP|;6XpAS?k-PJh(Cyso1mwx{GQyLO~;qtKU-#Rw68ZciB1(| zmT1uwtogbjk+Z)!Qw?FFFh%XZ(;1u0pod$2nTGs+oaYK%luWNk6?&6CW~dqbj!~ zt(dDc4uKtap4xDj{O>qSegh6cj>EA0uHz8=HxBnpfl1_&!N4(Q+A8^Bq(9O2;$|}0 zgzYA}^@0jCZB<9iV3X^m6q|+ul_^0je?IRtD-yr?c6&C_ifJ}DB{y62L+a|}NS<&N zia>vMwT^wtX|@?JcAwu8a38MJ>fDEbXFM>`FR+iipwL+0=3l!en6KkY-C@w{MG*xx z8Jx<98_*!%C zD$&r90f;%6)sxB^V7mu%nIfloz+{Y^7Rk^T;R5nH`2^MMy$6XTtGA-6PzpU%6;%|}+KX4*H_pdX6a1o9ZW=+e5lay_qydc= z1R}%c!V5qxIUu#NRka(%j<$G?x#iMBMNBKsEGO}cYkM=-=Qo~RYc??kE(Rx7Q*9(Qf*69wwp%fl2w$?IU!Xl zb2}S5CR%T6Te`6XgG>q^(vY&u8@FsJ(;2@rgcpFQK8vbe%Z$T3mg|>rZ*EoF!X&CQ zH0%^}-pWpml&MKgjlQmPqTQrKNoA8-0P5=6NP)Di@O8gYIMi^Z0SOAuAia9@bhT|< zog2JbBgE%PHm6FPT5FuCS)n9NTdkcvE7F#mjaDn7*CLq(*wJ0-6g9Jnv$3j0cT#qL zOM#G@T^<`m>o_?t)(hc9_(`1yi21MFwt33A7;i~Tm|WR8^r5;jwQ<`Wo0IH)EB`Hd z%qv1KFZ0d7HANMH<1i)RZoy(HRUMKi&G=MQ-)I!CMhrcfw~ZLN-n?-`Xz}wC#=ICX zzJ0&EzSMg2!Rg8xc<_^^wN)`?;divT99hdu;+VamkxPe`2!r7woXdvTn%D|4)|LHf zX;{02={oXaZ*6OeWSXHYURbiV_n_}7+RGAK(KJHGp%tCjZYznUN)F7U#Wid8Xh+y`a{VuR$9Sn*)gWTFH pG)fJf@+kA(MkKIWyY;Q{e?rEo=KrUP4Kz8_2mE~A_!r~ZpOBxTKz;xK literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lfunc.h.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lfunc.h.i new file mode 100644 index 0000000000000000000000000000000000000000..132bf6cdb09203fc8d2d892d938fbd851d082809 GIT binary patch literal 559 zcmV+~0?_>c0RRC20000000Hj+00g%H0000000Kw<|NsC0|NsBs*2Y4TnF|6IA@9r` z*XC=^`wUG000000000000001ZoTXDuZ`wc*RgU$q7$rH_u7f`y5a=ng8VSjYDiLyu zgqHPe*ml{q?6n*E>$?jki5s9&>)Y(SH}mF==ggt1*p%2zfRSN5WMdXH77xgfjK??Q zeiRLoD7m35AC75~;Ap_Mj0uRETwV9#UO%i#8VXiR+FLniPUt(n50}&2Kz5Ho14(aS zpfMy-Gz#M+Ohyp*Cs8sJ*d)J0>$<0HI>8~5`A_yA`5 z$213l4T=uAQ9Oq&)vEoV_3t!RA|5a~*e`;e;2kmO)k%7SdvMCuin{3#sX0mwbVbV6 xrDxPaQ6eN+o94UpUaq;T-HNt|g{;@+;)CNq=%1gZ7FM{q29!Bx&TpY;aUsY>1;_vZ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lgc.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lgc.c.i new file mode 100644 index 0000000000000000000000000000000000000000..6cf2240531c6227e952f3e8f857bab960ffafff1 GIT binary patch literal 5972 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 CcYbJ|7_o_rL)V&i07iQ!Gc*ba$3LkOWBQ@2xa zl6E?whje-=LZ{K4u<6@x@1BI-Fi?jtpxtMmeRgm6#EY8A!c9ciedu*`W6`rZ^wR2f zFRe>*c7A4Gkju*pljsI9-`H<@lv-92(FZ>!&0b4yb=y2L+rDGA+}ev;yI!l;;q{G$ z0BLHh!D#6cr-RYyT(otgZCrrf?RSj6(SwLBXe1bn9z%F7L&qdq5QoB$`93uTi==T% zr2%z%jw|4f3D2b91yTcMt+#8nSDqbM)Rsx-ZtWHR^a8qllHS1dV~fIx&lZ0mZOc7D zb1L>H#<{ofDR4mq<-lwZF5M@jofD6T(~!iRDxHccVj*#mMA6G;{y=HSMdSsJVmxsu z-LeV4iSPYMm9tzQXDbSrE3#uB7M=iPGMBt8C!(ARbaC~uvCc{iN zM$iWQtFAOn%VVBK{Cx!yk|VGgPe`i>^sWeBsta`M@802e#b=~Wy|FM5kb`whRfHO) z7=NCs!i-2+C@dw?o)n#e%PrUo-&T{NOQr1vBbTxDZ{?TR)pBVd3)m606IzjWELf`A zi7gA=7n)DWglt$Wz-Cc0BRDT|L4IG6Xi2T_!1kzb^(9bxJJ5u55y0c{;Ch0BDmEd7 zj+SBcgBU%>7!}OIC+0G9br)Omk1E8Pc)O_#RfGI&233~!~WxCTDn+zlo-zm7ggb8!{ij(+(( z8r)Wmp9YirQD#0XQG7|md%0bn9hJAJEGT_rJHYA(k^b)vyv z@LLUV!vf1Ck%ezmb1Bc7BQ^Oj$JOzDW+rBJ(tt_xI{D4?_2n1SL=dAkw+uU9^z@E zUddkS<$Bw>^ic3pFdUPqA$AUO_AQ5vBn6<6b$P9&dH1Ci7$UwQuh^G&k#Hye|sGQ_yVdW@3k2Lo2 z|LU`#z85Ta%Nq}WOy6L2)`0CIgAhj;;t=O=m*zhFgvNTjJ`k7<#L@J{!~f98L)~SX V$r}vnQaMf*4J^;D{ReM>@eH%8TNMBR literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/linit.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/linit.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4c5fc82ffee708fde6c3d4dc4db4f740963a7372 GIT binary patch literal 527 zcmV+q0`UC+0RRC20000000GYc00U0|0000000Kw<|NsC0|NsBMxWZS{tqy@E4({|j z-&q7o*!smX+_xk8wAR@~5itgtyyK|g8ol-Z;NstrYwVlAZ z_3i@f&0K%xdO|YtI&;T^N~E-s0v_K=xYXuI*%&U^Uo4s6AaZq6TH%V(8gfzT)~b~P z*ObC{JwMy-BrJtwgaYF&utSE05c-nQoN?OCl91CmehHH}x>o?>q-Zh&^3^UdxK{ZO=S~n;!${70X?Z zJPgOoXxbbvS-!-v3Hp0LhlNT{SrngyKO@)+mURJYmrf7H>X@umz!Z%5stxi}&W7St z#K*W73eejzUg&kX`Ia}Fw7=Kaof|Znluf-Ox~6w)tOh#4SBw9k?)@i%<5zk{5L^_x RW}7f=W%VY6{sH>&0`XI_`{e)t literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/liolib.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/liolib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f23958657087f3e923812e3fac00b639a0b01205 GIT binary patch literal 3977 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 F^xBWu8I%A3 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/llex.h.i b/mk/linux/mojosetup/.hg/store/data/lua/src/llex.h.i new file mode 100644 index 0000000000000000000000000000000000000000..62295da6ab95b882fe89d8df8aa5348d56cf126c GIT binary patch literal 1108 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 Md1_g|0YB-=GN~9{%K!iX literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/loadlib.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/loadlib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d2008cac8dbcdc951f622d3d22c906facf8a12cf GIT binary patch literal 5607 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 AWB>pF literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lopcodes.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lopcodes.c.i new file mode 100644 index 0000000000000000000000000000000000000000..6e3f56b721ae3d50de9b6775e5f29011f27a58f3 GIT binary patch literal 847 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/loslib.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/loslib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..af932c8dab65d2df711e6ba9cf7e2fa2f6c4242b GIT binary patch literal 2165 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 Xe#2V3=AQ)&-MRYRE3p259799Tc=mk< literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lparser.h.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lparser.h.i new file mode 100644 index 0000000000000000000000000000000000000000..4dccdd8d66b336ea954b1fdb8ec295b5dea69a1c GIT binary patch literal 1104 zcmV-W1h4x50RRC20000000a;K00}7o0000000Kw<|NsC0|Ns91EvIcm&b&3TG&<&l zXGG-{AzNqw00000000000001ZoRw8=PuoZkRzKFiVpJ*>qLjQfJlFNhCvzs)#qSw?&VM#5D_nq)5vU;Z2$*^F$ZB@tbvH zHn~HgH;mttj4ht4i!xML6iFr_#6qYf*O@XY==&Tw1(f9+es}=a*XP5N`s+pwWCn{M zEfEMu_R-L<^YzQ+cwlZ$`~H=^`&@s`ghWOe{6UuxmyksuGFj+AYA*VA_RjhFJQ|-_ z|Ky$E6c|+^=zcw#e}3He>uX-qj3ElANug0W)cE3>P+)(*$e_%vPfozy7gZjg{PUxy zAyzaUOj7JYP%hW4Q))G(AcHwRt!Owp8GId_th+KER@pvvwW?t|Q|x8Ox%u<#Vxy0R zR;AE9wOlyR<$ybLEeVxz;91o%_~<2Pk?5K$~+jD(AFyMm%hMfRZoF&^@Dp zJkTPBlnUgb-QqIQ@L!A)$UC}`F+6$!9tCM(@eft{RM%!grw9|g7_>sXeD1N*KdI)2SU z$7l}cpE=b4pf*VzCk`lgKE7N(CJZSag_8>ll(?h^%H1SQ%`k)5#(&F%2F*;e-AcAr zJI?epD6|gL6nW_E=QbDbI3B-%+q-g}gMGgy*1IZbCDa^c$W3E-VFIz2M{z4e+H%W@ z5>;5!#^y6p&RjKiugLW;M`)n=v(UVncAO~!Q`Z)x;b$ohkQlL8m+@$!*i&8ufy4-j3S;2U+W(H#?O3Y WS+vCFPty+Pu*K?#y#E0bSkBfc*bdwP literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lstate.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lstate.c.i new file mode 100644 index 0000000000000000000000000000000000000000..c1f1e0ebd73473c63298648da63831b2036b9548 GIT binary patch literal 2143 zcmV-l2%z@>0RRC20000000>^P z{P6AhAdKD&emKAI*Q;|sy5NJ0kY5bWe>hwFXI%JiNaB(uCGVa0{r=fWk%uQqp|}$L zu=P#rq|@qj*mu(icnr0B&rbVie+BMSb~+fmJsJ2XgEQuzU!D#w&n{S=twgReHh$c( z?@)S@WGkMq1&ZVQLI^fOM`gTG>^f626ilY*M1RxjoU~f4zsNL9%1E#u3l&9T-QT6m6pNFGyyOLSw*_PzI z1Vln!C@(34)sqse(`7(xv)*xOm04NFn3d)M^mtKywcHRhwM!h=tj9 z1tto{Erm=mo<=|rEY{^x=yEw}si&O)uYi!3p<=TM`>n;;-kanKUbT>+#8<6n;6pli zfQn?u?lVc2!n;7GQZYB4ncrpZYnx1*bQp3YhiLk;sF6%Y3!R9WuLy6nSnF&zb?X|S07GVWF?+E+%F#2h7-jtSN}YZ~llkw!sN z6p!DL>@ol9MFVg9%EmCUx2JA3P~V6$~jt`<2_rM6HC%b|wgt zttko;s4(~IYp-sk=W1;C4urdwIjDfcsA3Ie?>#oS(F^ubst_ub$vp<+8S?Ab?JH9E zE3zw@rQb7=s{DzqvmB~a7VOtheqXNwqZN%fuf~Y|vX2>`sAq!t^xB-ubE96@xez)* zwQ{XjtKYUAF%M9H5{wCS%A@O6N23xC3zFGxJ+n^EpR3-^b|Pgvo~r^5hAXy(>I!)Y z2LPy;Id@&dcM7G(e~keWu6^tDq)I>1_wcValki8rGNZm(|_-j0_Bo%I4?ouFkp1vb&d*EidjIQLKL?hgq2_hmJ-0U^EbR zK-iE^%V|yz7_lzP9pt&;W(Cn!V>${!X@T9X%~tP&eQ2sI8qOIcH^acS!0$!03+qHU z2?Jn*CUj8^w_heHOfs-?AVq)FRlxgGK+@DlCN-uqiOwKEMu$_vJg=b9jCEU|BMmM| z;@MsdGuWYEmZNyK`VTx76?edk0`^A_N-xhc6+^7=km)oIGaX=)4VpsrQv@8~92|i( z49c)>c(JJw474qDb9JnSUr58MT(1Sq!&hJn-{^aV%m!m#c(v~vbjz%4Gt+7wb{420 zXlx^U8FihN4MD_N`arBpkzsC~6vE>ed)gfMf$Y}i1mw2b>+pcKWF7->Y*iBN>a0gW zB2x;q%7YIM;pkc}Ki!OnABnSu1|IHI6Pqv>lKrn@GFnJ2B%>8m*2G_IcrK2hF%BxH z{~a{2o;k^wYRPH99pZM^l8_v?)YvmVJ#3H$A1b*0Y&%V+p`%Ifuu z2f^yFkN=p zPtz~skMLw?(w66UBGOCyDA1)Bx6ME}1r3E)aqXqMY*ACx=vQbpy9QWf0t;(HD$!gS znYS(6=S*cmNS5V(1B8CrPx_$x9?zwszGN}y^Ma+mf(&$pV<-%;f)}hz;eslQjj;Dd zD(%>TayuOBqoGd28Q^5coukesx1R)fP)8;KJnwia-9ZhcIMm+3I2|o^xDJ~ScBnZs z%{ulV#11USq3bOYiSnuvwkGf%S2qe29^+lRMt%_du1- zZY=r7Am0;)NeG@<|sQEE$90!3K4%Yf;bi5 z;(UrU?$aQk^g>iF(%R{xN6DdeVP@7px5KruEKQ#1=b5ehQw~qrO6XH_W(=J7-T!@u zECgf>e5J@xnQxZ@^TEVSchC*&&dsCITS9$>CIxAx3xnCaK8s4)1P>{QGWMIf%k2bM zf_*?Hr~+zDnES1*CcD(nYCrH)o4@{Ieh}FIZcy?3!G+?P0q`f{cz-y>R_l<)?xOQu VA;QsBz+{oWH2Vaq?05C>*)wsj4zBgi;WEVrU)6tz1Q$1B(DXaB3WWX zPQG?#U$-P`{X1s{r46A;JAyxia)!O0Ho0X6HxMLBM!%=on2_Tk@liv!xlkQ3f}4Yy z5JT4qCu&0?mz&0ga*vVeF9xsrdyB&lNf4QVGst-)Aj+<(SjxQm4E~`-DINGo{K4du zK-%n%=!`<8ptLcSA;e!@5=Ik<4xdD;6n11{o_m|to-Y2gx}F5f)nxh;A>?(!G5^|&R zlp3KV6lJZfA=H%!QPtVn6vT7Tcl%nJyLm{~wA=yyBH)XdSZK1blA%w(3$KeZuUoAO z!0ZEJ1rDJ&vD)C3Q3a^r$8)Y3?AwsJ^jmadO}9ME*tkev=3LvvXzz+YWKc{1XkD>l zoosTIJ{1C;7%CD6oNl>sp@3APU?&zbDmDtI;L-b~svOq60tvHu9$+YkW|nMeVtF6# z027BFP(B#cy25KR(NM*&N1B^J=!KIQ=ywGSc@6m&vrC|ci^j`z!m z!Fp%>@xc+_$HMS&Lmn}guHT0H=~$2EYZ`%-N)iAdq*33`d(JaRDk`>~DJ|UA!OX4U z1-Zp?6g#LXAy>+jW(ja0n&1HxQ9R{3UEMVuI@f<6)4P8ZHOlF(9TO$b1;RBNQ6bwV zr8ZP}4Gf*brOh=!h#Hj&yimKYqkB&8+CEU?fuTv?J7Nh(Bo4a9Cbf8=g*^rPf+*2X z=?~~MFOMC3&8FVV<=SpGaI5iOK}bB!RE{VqmTFugBO%nJp*4j7HUN3x5O0Q#RT7SC zsZoX|2%Sgd;)Es85_h*8jKh{!u8l}5#8FuZ&_&l7WyZSV!udkFEk_Xxc~;&zbx%^u zVk`pO;M+Bi1-48U^Ux-IzlLwbGFtT^>@^t7iJ*oCuq27LjB%~S7Hg`TrrPi}KZWjwp{JXd)UY4tO*C8_6xv1gic ze)04(OaY>vxN!X@11n;;F@F1sz%NWKR2Betmf5246X`On&YLr7Y4a8Is{L# zg0==)+BcmhyVec=Hgo+6^W3kA`B6ELji)M2mHY^rJZ~}_T3J1=8hh2JHzJ2>0AGSm zqRexRy*o8P`3j78I&Z5#43l7nF{>$L$b@%-5O9NxtKrkG{$@^aK5mPz{pWY%_wJGj zkU<(;@^Z>fQ1t{@bD2AZIw3B@piC-L0;f2-F*u$|2R$bIsdvoKRb}U40m|k2esdJW z(0(4QXT!?0yu9AUZQ-`KhE{43;baf=mBUmueR3RfJEYWStxNUMD!zIFz zEcIlX!$^wLN~`zAO5LSY-!)N*q%^CjA}UVzsaH#- z#^tu#4zdK_8wf*K6uFX(S-fsWNED7IIxVrq9}Y==cq*aPXsQg2Iz(1H!~jRgem|B^ zvJ%Zs3Z-QVTCK;Icbl0!6q`-pRO%_cZRZ|PcqG-O==+_y8Q%5VFXP5^J9AU5d(qA6 zx$#C8L&h^x3UZNkI#sUz5fnQXf{x){KwhOJN26=mjqBgG7EEC*w>b_5<1Qb^4asL{ z9g1WPN!bCO>=q_2PTmn|l{_*!Ww~-=4Nwjg8sAe@E>Lm>-x}T^VgpR?j=J^0rS}n2 zBcuCj@Cte@Pz}6T`tWu50dhYwhJ5=i!8hb;xw@WT%?`+(Up2b%2&jGZ_nIzIZ9C{j zvo8m`SzcU!KUqzxaJCc8wt`u&vu*3JG}NkY9UkKWKk-vsjS7{v!XUTX)F+ zq&Oe1FDBpDxWV#Nz-{4H?g%{mimO>-x8|T4wV*MA@ck`5PN5(6Yo!AMQulC#;PU{F yw>fmd&x=6v`{Ew;8%vA9xMAZSYfc+`?NjOpO}~p%uPvb@q)_u*dm|m}7Cn1SVIS`OYh(id83|61ZzsqzHRyky<|&a&ru$Xg(jsN8$UU zKm_~o;(dH17veCEe_e=3932Gv`||x^FlUQn$V#zyFbD?wLtR9}Oq(LjmxHMDrZenz zx?Om86{Aum?r$I*9HDvu;b?R?48mb}2*LjGC_D}ipipyJ7zGzkYj{W2Q?>&m=9vWV zi+R)C!m9*(;ap?ouAV@%F0;6 zsl$~_P#DWan#&67EUG2fcW1NnPoFPZhHu&1+bzjTu1M69sQF(qGB1SM2qRy~EDUtm z>1P_#R<3L2 zBqGa{9~R(Ude{EmWEn9Y7?07-R6kOM+0aKdfI^zG$WH)zF_J+>gO|@86$bEZ22<8AX=ff)7#Hi zH<#@*+$FNuu!|ANafL?fXV2(f&_iWDvT^S zzqebG)*w~9+QRI3U$2E^i}y5bGB?F@6`|Hb8{GLJ4l!b@X`7c?_Ig#{D+xBAyOxzS znEPQ13heAOd_Nrnapdaeb{N(isP2YpcIdeqx@~~;fT&Q9F&35)+AR)5M;eZrC+z6| zj>gM7M^R$0_86zumSQU%JS{6+&ZRbz_Jo&BCI@~muv%CuJ2;SP&L~s)vJbJ!cQFEy zk-h^`WItilTMo0JzCp5JoSmRxGNvf>w8u}r?WbC;OH8=AI4n65_!DWCoSq^cFPTh2 zzqg$b#bk!wqr>3A5|aZeG;i3(V{>0|ttIC^KU8ZH6#UfOWln-zYPN87Z?$#{Diq?; zT^P!(Zf00}ijnC=Cyz#Jwf4A`OKI>wQIxtuIwQXdU|VE^ti&_S@v4_1ZZ|HF3Xb4;K>kGzK zY{Hwv?ppVGK&OZBbgTYnySJiws@3 zVq4Q@ecnwkK7Tm7J!{KGmn5)< zfsv)_SgR%nTh7}3`bl=(C5BSJ>FAzw&pGl1Vb$TK#^Vz3Ho`Ezy~)!>!Q#aYqeaS# zMaZIr(5zm9G6*ofzJUv3>&l58r zK^%sQAc}){0a3CH<7J#eUFBHo3hti|aAoP6jtH9O62W;wJOGsvdc6ips<=cB`3tOD z>UIo7xU*rzzSQtoX~7VLvPO+9FCgSn6pCXpxXMa$X^ukS31X)dlPyP>$UXDR$th6f zzmVw>*l4QJV&qM)5r46lbQ<@QV~OX7o=mL3PXZr( zgWbjr&eF{ycWky0&$cL;HK=o;`(|`=^ncU(3HcNrRzL2)e_L%0alQMx${u!)cW|r( z@A);_4Pd=y8~YsK8K**NFvjhb`}u^|H3!}htm}8owWLhjq}%Qn^v)$-AMwA4ZD*{( aD%EJPp}{lPZ=%vjnF3I8QILOIJQYp$MFb)M literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lstrlib.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lstrlib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3031dd6ff625d5742e2ce210363d4f13b63dcf2e GIT binary patch literal 6724 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 aK{*F(>)y6s)0bk7UzdjrGUtDPZYER-&#ztp literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/ltable.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/ltable.c.i new file mode 100644 index 0000000000000000000000000000000000000000..6055ec2ca0834de74471693f98a7332538e5f914 GIT binary patch literal 5193 zcmV-P6t?RC0RRC20000002B!T06*FQ0000000Kw<|NsC0|Ns9r^L&w5@YQJ`dE*tA zpl8}!7}ucy00000000000001ZoV7b^cN)o+Cm+qPsCW{amH+{cXA>bbN1jn;bfS@W zZ8;~qb2L%|1(ayINp~Yz@hHE2@1veggEevD4;Iwp)_uRK_)TM+tsZiDcPRRCJduBR z)&JA$KaHlN*RnhQI_`~Lk9+cK`1AU;lz-^|vHxmJI}Sy%j@z$0z0RwHA|D?lWjsn` zXWaNr<6y6`wzOiO7SgXt7h|3Tx6vhOQBN4q%&{q9W)yH?6c)6kxQAD zajCLYWK#<(Uc@5K^Z21?iEMN$$0dHq1)iZ7MI8ij$r~0@u7oNJAsJwS=au)FSjBl+ z9Evz)aP%F%O+?JF@H+vz$kKKyXMo8aB3sIt%mM5}0UM==lSGVRo0`NW90x2INtj)g zbk1Bdbc90y#U&1n%XOTHLj6M$X=asB1${~4d?t%h+@vo>u^t0m^B8a|5lSLsn3=~3 z?<dXEW}-$D`G#vI1x+O0Z?f;Ej8kWG?F3Q1K&;+(Z(YfdC4G1WZ z)suGs;NCz^Rz)~(NBWyL5!2&EzR>s)$5esdV%lM;JTF+>J*ZrS=Jo($3v&;9$kgq@kfTpu+ z95}nU6vv|fwWU@seD(~-WKzh@nWn$H-H%`$7}&JouRM8w_J60(nmuuJWHv?(w*nPr zmEHH7Wh;#Y{cFzBY$9PmB+G2lY^I<=NDYrh@UJ06004vs%i({3-~kj(9BLnz#a)M8 zo4;w4WniNztXt`W!_BM6@)LAQ6xk9?=wT(njVa4WHNJuXN?ee{rY*a{?RqS{R1&S4;yT87mIUhS%jmw@r8-s_tMp%eX zHf_4)(SaUiBBLjUvL2HE9J= z8vJ9ye!ksh(ge7)a-FBbDnvIzXy7@t@HY~q*4adJ5^srtS$ij#M@lD68CI^UuLIF%ns z3TJ`_$uQdBJf7f!P?i1q`(Ii9AY7I~0epjK+$_;vn>ftl0y2O?YR&lYY@Bqi9?0TL$Z*$u3HiMp*n6qK{AK$%yV zphz-4@O}yBXWA?J0ZQjsq%$qi?uiV(=J$%yBdZu>Sh$IgZf;QmG_tZ(1v|Gu3w)~u z+werq9KsV81G|(V^wHBTKrzgs(1^(yqV6mrToZ-dT`&vn_cqug+B>rfl2S~*AS9sL zQltT*Cam=6u6A%9ZBBzhA+WubIYgMeh?Alt{;YCf&n&~NGD#3fkYNWB(5YH=fy=Wo zEk+O{2`ONTi5#78&qJxB|AUjj1wtfj_o||UFfh@QL*~B6ghuRvn|5aXzFeG5gp;K2 zH%X)_(ekXYb4s)-(Batd4t9ZvoxWHxBd{*GL?vFlK;JkNW&0StC#_|74Af|4)*;by z>YIvBRtAL!3Emam-Ai9eprm;Y*_@>K|82y(F{{!l$=(jN(f4?0iB2sinfOF!K*l>> zU_OlI;mi#c2L`#OpmZCH2ZN}Me@h?%YM+UOEILjgfu1~ow^^4ut;rUMB2*#tJ%!>% zek@-)C|d8|UW1pDe~0?$?dTSn+AqP3C|M)H{qjpgc>lC7p1~ZfiNtWop6t8Rlkfg= z`oAQD0?Pwn66yho2}T1T)+_m70#9WuoDcb5N15Z6p+;-OTomvoklanexO+cz2H&*B_%+?&ydkg<6a&?z6wL9833Mtf1R&W znde#F1bcaoH6D~x#;-mnj{eVi^Em=~?$e0QWty!a`wX?V%S&tudmra$)S3)-`DlG` z_7B$x_1D=f5M`|$F*e$)Z57ZlwWLiN=wQxT_V+nw37E%;3!6ciKWK~hVu&UXwe+{f zSG)iav;^{;$n1`RD`^|1IraF)iLQ{P3kfY@J-gcPnHWlopg`*vNEa;I??L+IA2SF8 zKu=3mhXI|JwTD&efL<@V56MN>Y+Z3Jp))i=tL7?-o<^-t2>r*l901xu_vWd)i4T=8 z&7g7uo3aKL1iVkfFZqWM-bv&ce)=L%LvDL{foz;DSL;%uxC()l4!VWnr>hpt?xi}8 zgb@rrl=oSgDJH)Ev(iBdlNzuW!xUSQS+*2Q45~TCmNeX#?%oL2JGpD{1Twqd;pQmD>g zvYxfh!9O+}B@nHwT8tp@E^5xu5gD{=onpG6J+Ux5F<(XgpdXHlLgr;t&!7N?h&;qn z`2WZq=GAs-%+*|=$8ZvU*vzDjDuY;@A}@C5QwuzQfybNfj}e>ArYd!T?x`X)D>~AI zu>=lhvp(e1R~QW__d#q$TyVoR3}-!)WmCH*dn+#BUJROSe?pjUxv%NT<-;sAjyVckL`MnGMnK;P@eIPG(0#-A}_W zWNt9EH?&rQo3J}7iUiyDCSD*hV}~f~SsqNQB^pi1H0z8H#*Ql)vN2t~J_ux_*OS{d z@O8af0eo1b$}o#m01<{GYj~bbY(xcM5%WreV7sy$^h=gJPG?}-{hxtl?H(kgD5xv5 zk$5@aj2})nA=bmIE^lb}t|EtMG6r?@&>(HaGr)%>W1b;>u;0D7hZ9@$k)r!{b<`hM zX^fn9%2{S5n5?gUG*TA~{#AALlM)!#xv6Tmqm2RvxrR%vBi~F>Qa@8Sj52;GEGEbd zO+YY&`rIeqs98eIEMl+aw%HPJoRVG0WJtJol5P^VX12(Jkl#u>;2*C+VZlR<83d)c zT4P#)J#bsDrCqDnnHyHpza#v@D%r5Ps7g2+-N-Nf&00paWTG^FJ(UT=WBCzxA%1m@ zcL4+SZPVtZ)`M#;&_!62^`qsQy1EQN;X@|11l7B-bGF<}_*``0&a<0T!brj`vjKxB z@w^w!AG-?(ZN?iV6_}Gq(xYZ6*6W7jZqYJGDuuqI#n_7AFP)d(PTmr+>TuL7?p0~-1 zX;*M@OpA3A?<-<1Ip^A?fo#V5^Ss9D@I#hNVk44DVXddl{{Go5rwXb&DhzQ0l@EyPd&>63&qlUkq z8`04OG_Yd>ac(3L;(Fxa`l%M%VxFsX;Tx;(Nf^w)gxFlRRf?&mGx=$rEuoZ5RWZjd zV31;HMb|(;+YK^LjJ1BG<#My^mq;^zKaMxxDEGRG8xH{vL3C@Si{+7?7%GP0bi<&*2Va6F|Qx?ZQx zh8|KKJoC3h&p|t0p-B^O5F##YRp~LFjx$g600_=<9en{g0YZ&Eflj_Z?+%;`NVQ!z zt>g9a72k-iIIN~Bd{|(DEd~^A2FqNhVB3%iDe0@A?NeqX}b*D+kER+(|me!{S(1dpZwHjT`lw%+IyL_GIsvzf!`LmHjk6{`1frJz z<;k1#QB`m#Zv~^9OEa7NSYdxUw{PKu1Q`XG`+! zVj8QY(7hew-ou0ZsMj?akCzmgvCpKkjjbWyHel-GH!{_)Rt6PUNv?E@JM!*1HG)rZ z-+FEErpC)tYd6%EG+s=!n`nLLSD9NgNl7GRilQ0fuS-cU(`>i7)xb{O^$l(G!%Wv( zA60K#y}3&5O_DbbBjHE5XswcXY?D`QY#iqCO&*#FUm0P`&$}=h@I6GUax;g` zF8z>>9u}H+462~hI^t}K7*w~pS8^m&_e5?J61XP-aER1+Z!kSUSzf7 z3UxDwTCO6zsuZ{_NF{<~49QOil{SadXu7CDor0kaMKa2p;sL0BCLFwVXoKf^qWXxE*j&o`?QPUBAT&@3_6yWVAi{$T;=jkWoz$hH-v-z zc+KKT=3To}DTgnEkrvVhY^^O<-c>s35vZ*3NUMjPRCNR}7ThA}p;Y6PaT;aB{)ZUzV5 z)g~s~=lw=g6{WRQtLJ%Bh)kfxszzXiM1BEe!nGc-Lb48kEcU z&lQO*tUZoI&0GM51Fj~{mEW|Vy1rhY&VOySFgYE)l(H{doLBW<;4S`5?_Me|!R+G^ z;E?|cGi;;L`K}M)%h9+8{mRF`)_Ce;4(G1lUW3x`Q}60CyE+Bocj`Oz0~YxDarvG$ zY{W^!YyD!;h~mpwZ5Yi+28{NeMEZ|+@Z83);BYN}E8N|}+ehztJfK`*?skUy-29UF zrf27e+r?hKE!FQ@U6akdW&HfZ$6fCoKl9=-c!Y%ko}X1=oCq)ED`aV7 zUwGF6#Y&DEo*CyNH@QOPDBu}5QULoH#`S%JFuMoQ+m{8;~fbmxtm1wg0 z26Wpkj@3X|YHo4}P|eF=KNi45oHhf6cE+*$q>K3CdFbJ}n5kq9^+KS?zN;Jh1nwJa z@(P|WWw@TwKE%C^d$DMRp?nA7FBUuKriitT?#=kMo%l*D`;QQ>UGF*4VyotgqTRZSd`68v-qMpVR{-9MOIFpK+M>z5VHqQ=k$r8AxUL zeJSb?jP3WXwC@#79O@!5s8<;!reMnvqQsu`;s}dBY&PEP-tz{+y6QF+22^27OP;RXLli$I05NCM~49 z-Wq9FE>K)pti4yWkKoPENU4ig{Rzaa%V20tTs+u&bUHw<3*8@k5q-OXzewdD3Qq91 zrPtq`zWMNd)M#)HM~d<<{UA)AT%Q0wdT-oSL1YWv@0000000Kw<|NsC0|Ns9b#{Nz*#10377T!4` zgyECMmQ-H=00000000000001ZoQ+ejd@1coO4`r3dJXosXbe0*NM*mo#Q52uWlGnl-cPA1cUlE@BicVv4Mdr=Tf zoiTQ7XG+3o;(E3{suVLw3jE}mjybaOEVL4VgM^wfxm&P zKGoj|uP%1mp-dTpN}ti3{iYTB`VZk)5qn&sOum>Nc}G(9se2!Cj4YL3M literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/ltablib.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/ltablib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..776813e258d00d00b724dcbda76ce0f825feccf4 GIT binary patch literal 2851 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 Qgy!vD=+F}X5A&}HCvwNaQ~&?~ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/ltm.h.i b/mk/linux/mojosetup/.hg/store/data/lua/src/ltm.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8c6fd44bc102072a0d772ada36df77da217900ad GIT binary patch literal 684 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 D*Dg*j4MuWp4kKG}>4OX2W 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/luaconf.h.i b/mk/linux/mojosetup/.hg/store/data/lua/src/luaconf.h.i new file mode 100644 index 0000000000000000000000000000000000000000..c7e29fd147d5eb6c9c7be350d9237e53999d46ad GIT binary patch literal 8092 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 SK!3GhElVt7KwtzJ(f``?9 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lualib.h.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lualib.h.i new file mode 100644 index 0000000000000000000000000000000000000000..c577b84e57895eee0fd84303ef7b0f34409e9fc3 GIT binary patch literal 532 zcmV+v0_*(%0RRC20000000Gnh00dP40000000Kw<|NsC0|NsA*`7|)xb?3Ywp0`{M zt4LhXc*QpW00000000000001ZoQ0ELZ=ygH#nVUUQ`}%5gly%HqOJQxt4+;P-K_32 z8DNmfvJ8R2)Nj9cs70Hu^2VKW&hOqZb8ko_ibKivGnhtWYO_g1!^E+p2P+x7u06VU zU3$+ZR_KgFHy%ACZj+cnR?|CoXb(qbRYoRO84rgkxgn-O3eXMxSP6ueoqpXe@XiZMTlxe^Zb^x3r;TgM2v3bTo z9ts9X{XqD?z2JH2FJ8RW++Xy1nko#HKX*K>{pI7zdtLOjNR*e1DEdgEzf5 W7$~N0>7>u{m?tXx{_zi9>QFue%=wuB literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lundump.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lundump.c.i new file mode 100644 index 0000000000000000000000000000000000000000..8123bbd37241056cf38706724b7ce00ac684e2e6 GIT binary patch literal 2070 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 H+Zixv7(fsc literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lvm.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lvm.c.i new file mode 100644 index 0000000000000000000000000000000000000000..8e60dd240977323745cc89c1518148da9b4bb124 GIT binary patch literal 6250 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 U)nDkXn0=qyQ!kMCZ+OKhw7~xI82|tP literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lvm.h.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lvm.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a62a9bfc24f956daa770563c768f3799f8b360b7 GIT binary patch literal 573 zcmV-D0>b?O0RRC20000000I2~00h?n0000000Kw<|NsC0|NsBd;f2EyNqvl*n0`Rn zdftU%Lak~500000000000001ZoW)UFZ`v>vRv(vNaaO7-K^eheDVK?dt?DKu#zTQV zO+t?2kgUdL$w^eC{`lE}vT)lTXUUTN9e?oH5inIKFQ zri?=>O$cq<^en59#xmluaa|-0u$F6d~wh=dLZtLT42;=$Z#cVoz98JDC@cIh2PW7~?F+e$vQ`eHkO80FmS32)b zr6%+5UmhNf(hmzRE!(aru=A=ZI`Do7llgdD_vF9yM0KYoKXH}sXzjf4hDsaZ_P9AWlEMWF$43}nuy zb82tCe^*0tg7^n|N9OfGfqhuilX3SKc|O(KhaRVz;`1m1t#CjqRT^!1OO8lG!T-_C zAOB~*aW8-TnYB%z2X-Mr{@)Yu7tRVi31DU`O^s0@@(Wy@l2JTIMTJyskAmi?`BsC= LD2=V(?6Ph_O9Kwi literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lzio.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lzio.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d148f763019f1e8cabaa67ea7678e2a43baac86b GIT binary patch literal 839 zcmV-N1GxME0RRC20000000RdA00yl90000000Kw<|NsC0|Ns9uBHUv%RZ3*7d{iY} zu;#7g$QsK400000000000001ZoTXGLIrx_0%y@4YinX*c_16AE+Yew=&HojKCNEPpH5W(ucg&UiSm-C#I5JsVAY zKc0;J$-p@~we4u=JEPGsa-%4e9#crxes|P!dV_vhg#Bd8vtFnjX?;^OO*pxZ&_ZI? z2GGbsO9x!r9`_x$?~cJ4Ol^1Sj-bc_R#X`*e&=vPzCJuN!3rJ%7x}t^vMQLL;-X?j z?1zkO9vFj5BF>*z72IYO4;fkzsoqL6` zXaFVOvSlS-GhCw8@_|Bu>A?kTyK|4=FcW13;mR+-4Aybnn65>Vg)h2i5I`Hs2YVN> zLia3MM1JL4@SQRkjbF=)$Dk|E3%GssJa~VXY-nv8P_SxU2w2=bkuio7m_qJ%!KtAf zp@vm$PgGqjTQ_ww=yVKB_R(%dl4URc3W@IbgXpL%GCe^G-1SdKOWZ_8hTMb$jsPqv zS?#GPcRDkGzS+{CU}?5t5yZT}#s+T{n*q&T;D;~3E5K>mx#!)kiu<9d=bswMsIG65 z@kr(20^{gyK`l^~T2h01DH15HERc>SiKVJ0>9Ma~-D72jfcmIWGDnPFEqUygE+na9 zhV^&9_LI3O2(_mkTv=+-lCh~Iu$tKxs-V{uPZ;Q;5w+e;XZsTG=HkCP3ngZ=TBmrI zKo&#F%M#DLRI_XpOtA;LfOB~+F!v7-FqPjbO3FnK0#>~;hOxjGk?LaO&eAY{(*t>u zatl&J(Umsci-x^yc4xN?D5*NFMgW}#{`6=~kuBBvx;URIA$65o_A|?wD093*4`=a) zjx4J$ltZyd4gqs{th;mim-k2OJYrAf6?$`h`|I)QYH@D>&E6iQ%C1L*0;rU9F{z}& RIOxV_KALeF+rNH!+Kx-Hie&%* literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/lzio.h.i b/mk/linux/mojosetup/.hg/store/data/lua/src/lzio.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a8c1c138ba4cbd9a7ff0018eb9fb979cc7b742db GIT binary patch literal 792 zcmV+z1Lynz0RRC20000000P(m00w0M0000000Kw<|NsC0|NsBV6k$noSfGIH$y{3| zq!w2Xa30eD00000000000001ZoQ+g%YuhjorXTHJakTwlxz3B7l$3;ZY^8%j`oc=T zgh5bbxe;?EW6PmU>3`ozwreM0WBwxf?z!ilJLz=fGL^mMd^3fJuabC7$LEwz7`qrw z=y)76I*uotkH$&38YeUv4KHlO6w;FR&ii41G$?X5NVh`u*Y1%!@Lk`B)0-F())s6a z>_;IYLx_gM$smjd(FDTLbQn#ebI8?-=UTz_YX+w#_IsHmJm)bKI_LDIFt$g|;mQaV z&ua~LN(;t8NFxHX`UBT>PedYPp4hC*wR?hlA$jwQZpqRz=5TCdj(03C{Kc9+qpt54 zj@Ju`<2VB!xQsz1wH`3p^jpSFGBlM;!$K%n+}zJv0=A}kB&7BjaTqPMhx-8Ru9Ss% zmRO&`1b_%a+Q98I*UZ}z0MEmvcPV>4ayf*r&~p0Lk)53pu;;K?CL&GINDh?Uu535q z-L2xmuM9K%FT|EFHOS81IL&tEel($-qHHQ5g|0l_Jg@--rP{T3S!eqKcTaQlcFl$s z9YeCmS94jUvqwaBp@!n`aN{M1+$op)Xt}Q;=LOeY=C&ePYd#2QwbX40Y!eCmavcvr zw+NzXs@R4ztt@J{xWo2T41ql;5?G?c23BS6%1Ls*Cx$rx&}r+LKYhDd{&>2(s_%ux ztBlJcqc~iqgyo~AnuCvl%{}tlO3l?FvkuQjiMYKZ`wTcA;BNy1SpMWRMzY*40balV z`)mR~rkd{Lt;N&@(-=I=c$vlvW!C;kYVU==yN7nT4`4 z&pE2gR3Wrb(ma99!I+SP-kQ;_nqazCC!}#~qiJfbZD?~?HEv!~lx0j_q8dhG;2*P{ W3-sAA^9*%+b%HOaNZdcEEb%>iH-hj0 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/src/print.c.i b/mk/linux/mojosetup/.hg/store/data/lua/src/print.c.i new file mode 100644 index 0000000000000000000000000000000000000000..6e865ee730e6c04e619682849a447d4fa875db8f GIT binary patch literal 1853 zcmV-D2g3LO0RRC20000000#X40287B0000000Kw<|NsC0|NsA_da_W0v$3~GUoFbO z#9q;nPD-r+00000000000001ZoUK@WQ{q+^pZ-Zc#cf(@f)Sx;tGLmkvX(9a71(x0 z878?&G!>IfZerQC``vra&D#wGx6jP8vjg07f9L%rCw?VSKll{duU*nPIXN{?TlDnk z#~+R@t8-*fv(xUhI!7n;(cq=!N1dQp=~UrC1z zsnHv-+Yo9hm!P->(Nzg+2kFKJ_UC3>0BVO$Z~xoN#9tu z<9aqS(k0E0!+CFcHNNW$a^#g|oAG1wNfv3o`G-xTO=7?e-Jr&v6~6>X%+*ZLv-hz_ zBiHw8V8eXLoh=Yk_b=Obl(kw@6u3}Xc2;x9$MN7=3Dg=OsPD0ey!x)yP=TaM5{nFo z4JReqrV)HTrpQ@xYLJMj(%%wEsPxGQ8-(ePcEqAkfx9z_pyFjjT+P!Xc5oiC*XGLh z;39}4WKj0xJ;XVFNEBCZoe}q)2Os$+S5dd-I*=U zTb)?ew%AeAX9@q8bN{)b+^(>q3@{=otx4!deuFp~F9%mBy4go#726Hs>)$yC=g&!* zWK|Mj3oE{wmJ*Kyw&-j$7@s0(dzd5Bt4Q0XAPzAIKyZM2^DPmPwb$ zjsZc~C1W(dz3kr=B9NHSmhW$8nwLr3!9Jbc4MsP>F7{z){0Xg8#h9lO{v9?zj_3Ii zc`|~)_6SV4-0KU1(b4OctmSbM1byC-7t7wriI9u|e1tKdN}w5_I^+buK^`V9pfCo2 zghL@E^S%!#Hhw^{^8=ctaP!0X^KM+zZFLdl1k6pA*x%@l0e>XCoIrn2t9A9 zIq1G_Ef9osXiRLW;_hIK#9kS4KJgus!50im%1wern*_gd4h|6-4aN53#7XR?us+CR>|r2h~Z#5D^fyrU6|!u8rZ`3 zZvN2P2b&hDxKd0q==QA3p5oinBj@#aK>1@j-}ELG6n?WA# zTMG`;WyNHCvr*-gAtejc!t**K@9L~ux3s!-P81lpZm}xVnFc}S?|qCI5oA_{SZNZe zq1E_=O(J4p)-L21!}TCiPWm#!6K0))uxKD$*7ueXrymn!v3PB#l@?t zcu;^Nfe{)nsm*NVN9oUW;NnS64D#SD5U~tZxor6ghw$-2-UsVt%&Uk|GXr0YHRPH; zqiw2|f&#W-2U+>lSf#3I+Rf=Pi%gyIFcy9T57@v`sYrPieh2CoR(n=eY<#^hmc(bl z%FHZ=30L{zSP!~rlP3mu=Zoa#LguFX*yaRt%j=uaW?QZdF>3$Ck2F+*H$33~A6FnT z$+wl%IVdi=G}R36MNRm|O_7(XKnAbE2)EM>y6sun&RXsLJlzTYga6t3AOs*Iy&VFa z8p8Ua>!bN_sFKi*;?Vn_LIjeIR`GOaCvlE>Rg46bs1!+QQOa~B%di0$|<;-}JmhkcV4 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/test/_r_e_a_d_m_e.i b/mk/linux/mojosetup/.hg/store/data/lua/test/_r_e_a_d_m_e.i new file mode 100644 index 0000000000000000000000000000000000000000..696c865b5e661f09df2f4a2c90a045831970f666 GIT binary patch literal 704 zcmV;x0zdr#0RRC20000000Mvj00ip*0000000Kw<|NsC0|Ns9+pG?W~0`x6(l@=*< z4^zB-fZrtm00000000000001ZoNZIfZrd;rM2^u{?5!;jJBb75bt~GSJ*1bmKd_=! z5)qQC@?pn+-(5<1z^&nfNX`srXO}09;pq@*cMrGyU3Y!e-O=V^(_L=y;_Ak1Z*Mmj z?FP5o%bU#>`@8Mtx-#y;6J>tHLwZVVqF$u zjAXJCUg!W_;%1={c4taVL@@Hc(x%8mM4!MhKdqbQJBglXA#k9Tvq7)$9^*lc5}NUa za^Exn(Ap%IttEof)A`$S5Vv{cu2!1Z?Q9qzaHw(^f&LU!SW*Gg&*V&gqKH}RktlW) zlPYCwCAg110M$0eJt@O%V~>l0dBi<4`<>T(6|C`-h^NHgZr9 z>@ZrrS7MNV$?V0ifx&T$?(I~ydNi43?P?XTE7)5}pkxW%lv+sz+jcHiJ~*H;7WxwA z$dmv^@}&hS;T?lR@vY>tU^&VKQe3Ky9w=yh9ILI_YMKQiO&s&FeHkSZH2$4eJR zlDlKdFI@(iNRnn8z+o85!f>{ynec_f9uFT9e8YK`ALXb*3YrRm(^fjRk{ZOR?&|3j zZOBXKF+hDD8hxD$m6-tw)v@K^4l}q8{c$5+F^W%C{JvFFm#QfL2Ms96u3A|N^wb^a zSyd#lMP$!M{*r28g}nApIdxXw*{tg`7({o{CxFgDhZ*a;sNOU)E0bT@5e==3fabQ< mHPrRn@%z5c08Ggab+q+y{BJ~`yV=u7&(IY=HO*hnNvZkD;8Upp literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/test/bisect.lua.i b/mk/linux/mojosetup/.hg/store/data/lua/test/bisect.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..54b8cdbd66d1a99eef19696c3e708c1a61487a87 GIT binary patch literal 500 zcmVB0RRC20000000FcB00P?p0000000Kw<|NsC0|NsA2laHNj)URh8hTr&t z<+5Z9PI{3500000000000001ZoMn;GZlf>|Mb*dkSB#J^a7U{RZ*oadULxbi17a2r1p%+#mV|uoW)nb}!F1X}ca4ic4lT%^>HRR$>7TcDA zan+|c5p&BkI?uQw6{Lbxl1iTawi%TgP4|NUibg7vzKeLMgbcYTW$}E81o40tJjU5u zP+XP*(2fl3VDFl>zgC0J)#9neMyu!gs_t8Kb&0MDz$xI5dzD60X|zk1v=UEk>(S1r~7(pmR}dbWZu}FLsGNF6fGsy?APJk q>|qW1m00H|O7Nf0X+vLmDw}H}XY?+?cxib1%GMcaQ?P#+{o+4cL+&~N literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/test/cf.lua.i b/mk/linux/mojosetup/.hg/store/data/lua/test/cf.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..c0d1fd73fd7fd123dd591c4f14c212a7f2927d79 GIT binary patch literal 295 zcmZQzWME`~faeShjO7p}lly-t=so?J)yVY3Q?q$rrpQ}VIf+jp^`By8OKg(4!_FO^Qxjv2Zzn?0s zowc{*R2N#6%6{7Y4){z@r%)*h27nI1(`*9LF7{Q3Uw+CR4D g`SlWCCUi|oXD`ipRnPHt{UP6<8T%Q7K4u*R08{#fRR910 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/test/echo.lua.i b/mk/linux/mojosetup/.hg/store/data/lua/test/echo.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..aa91afc7b3d36c43db7f5e3c8c3d1ef0387c49c8 GIT binary patch literal 209 zcmZQzWME`~fQdkA353by{vQhXZ>*^k{j(_Q=DZ;9115k4L5ij0m@17&Mj6rz2|Dx|Lo3C!qUY>jWYU+fn zEhr5nuEKR&9~d sZr#It#&F^8^3t$d!qFP-pVo-p;@F`oUi9)+u+5##Ok867;7AG^PB=^9gSTVTUP&1*ff3NmK!Y5L8l)5`@5~9VfD##OV94PZl1qvvqH#K z`&qT}3Exjf2qw>aa{F)I+@!vbb(24voGt7xlv;l0+2qn&`z;)^6?%d7{|;Z;o}s zW{HfaJ!Q3yvyY!;JNv`?p!lON@}AkhINukqn_V~SvAl!&naHijye@~CU(>hzH}iP% ze_^HhSsZ*qn|P88($(JUPg2(oJ^XG#&GUUclYcHyKm4R_(#d=__5V9I{cP8BdF*vh zjJfUTgMv5JQ&%x>uTbETyt}()_M@N`D=r^0_%BtFA9k19Ewr2c-t;eRI}3NG7|Rgd;pj5vV`DI_6Ls^u4Qu2l74%($_Z z+Q=BTXtn>oW1wU!?ZJ4Sd2i;;%mbIUn;eeMa4wIBOMcp4^73%NQ?BsRoKLDgAM?7d zRawY$Ss!IHE1sbpL{{#K-Qme&@1K;ecl5*`c$NVHYlM^<)L^97*1#|AZy<%dArFiZ z-2~d8Qd(*>{y!4FY3W~V63(vG^|9bgD=%}LW2)rq=NrLb z(|VY`jIyax3y}pzHBl7YY>ubz4&7itmYw-rw!T!itSSN*+x^T;k`V<-)_7CgQ;pK&7 z-kRZ~Mi(kBsiP>344qj;cj$yJB-}>{pZkcqR%jwos)W<0S|=XhLYN<#mGKwqHq+>1 Cui=CM literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/test/fibfor.lua.i b/mk/linux/mojosetup/.hg/store/data/lua/test/fibfor.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..a3f96e581fdd3f7591b4de7ddae3acbb5e1c9dd1 GIT binary patch literal 291 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 P?->)XpVW{0o_-AgE>e6K literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/test/printf.lua.i b/mk/linux/mojosetup/.hg/store/data/lua/test/printf.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..6aaaa26174a925f7acbf4e76e05783c06dee5f3b GIT binary patch literal 273 zcmZQzWME`~fQvxtKZMET{vQhNR{gOMT6-p{?Tn5^JagHbV}Tr>pz6U?#T?yU$807; zf!2?+;tg3?Sk2$h|uHP z!`BDD79N(fjV?RrtWe?Mbm8cHw{Hx_ORvNg~wtIciVu7j$Qx$Vk`w!+d z8}PJUef&uzP>+=}$SEO9yYO9d05hKxx2I?j*Q#Idym!CbbT{Y!{q&pCmu{VYRbUrX z7~rZGC^li`Cxuxyr&GdA=IXGn$eX`?e&xis-W8JWtJY7L7E`eEv&GN3&M($n)aEbV zq?qaD{=?~3_U(pc#yc3LdWHW!<+!+ww{z8%t6SQ6yGS;v(fH>?5cx* zqFv7Sd~Ph>mg*^|a(VCfuUG$m)bkJRk6So%@eH3A?q43v&%2`jeV3e1yLYMAt6LA= zE)VP%{}JSJ>G+eMY!Y4EJ>tDb4(c9pOy~Aa@tLNjo~>%f^!59l&%0FbAA6S12mpJt Bky-!% literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/test/sieve.lua.i b/mk/linux/mojosetup/.hg/store/data/lua/test/sieve.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..a3f93d9653117e0bfeafeefe97b47c96bfbab6a3 GIT binary patch literal 520 zcmV+j0{8s@0RRC20000000GDV00Ub90000000Kw<|NsC0|NsBCP1_)z@KysCqJZgq zr7VnuEb3|RUgY&oVS9Mq$E*7Qi;cX%{SD9fmrng z89NtgwcoyDpvkt{he`Gd z*W~N{zACECe&~3E3Sz!lEEnrnPrZNbC7o%(#pEfO&*4vmp#I}Ltwn+n<_v8Uy^%s>!I4csQ^ zid>JzS&bFEg-M!Vj$T?5(MU~}0FHcc<{@BlaiUA_z%*ij#yZGyH8ZH~KiHcjRi`oo znVNC@&XV{U1vOH6a$lr;YOGP+@ZP@6m|femG%a*cUUrJ3;i%rbmxt78PTI}T{#@|o zBo$%Fa)%?JY)sUkL_0wM*~CH#BZtV$=j_qVgwVpD7TVUSnW4+@r$j!2zsF#*d*k;w z4&?!yVBFvHbId00N~Llv#{t1H%v^!;Ov KgYUmc#2H9JJX000000000000001ZoTXGzZ`v>rRv*c)IOPdMNXc4g*O5t+rae^MR%wqd z4<>QI%&}9)hM;NxeRmECt;D2BLvV_Z@6O-%o#Trj)78Q7-5n&W`E<^bn|YqhZ{PFl zt2~>|=I>_Hc`=*c-mv0&cC)%#F<)^9(y_@bPU5Re%WHdCYhz=~1sB0&0(P%Kl$GQq zSC(0!RSmiT1_Xn`sf=_OiN}rv0*CL<->?Bls+c#U#{ zH$vY9PM!aoAh0zP$~W`YqA|=EcA&Rp#r;k^51RB>c+U_Pe&H*OUzx%9sWSfgfbrfb iA0_488siUMVf>yU)9{<#Vf@Uq@OKcr8QLGP_UV0FIg11U literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/test/table.lua.i b/mk/linux/mojosetup/.hg/store/data/lua/test/table.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..bf8ddf958f9fec99ac7ca4276f5105164e905d18 GIT binary patch literal 332 zcmZQzWME_f14bSO2F3yio5}q@6mW!BT|G3j&UEfHs}n&bn=GeGYF~z^fshq*Li_G! z9WoF({?W|8kV9Bn{I&b)rA~tLlckF$sY&@vzO-!e-8VOve0d|vmTmljR31zY{MXKv$L#s9kD&?*xr zBjweiCKcfyQe@W6m5+M7uHl+fFQemczC*r_{k=@WA;wWX+3gI=+GRcR+mC&n&}0Aa zi-FUc=@}1w6$)AiD!t$2^0Ek$Vm;e9( literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/test/trace-calls.lua.i b/mk/linux/mojosetup/.hg/store/data/lua/test/trace-calls.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..9e3ab8ddb8c423aa1d02d408abb9531d94caace0 GIT binary patch literal 491 zcmZQzWME_f1IE=149p%7Hk12*C~*Hb)hF=r@fH90)I2yHbnZL9-5mo_10gHsvk?>{^{ey zE3(1weq4Thn=dT->z56y3O37L*|ko-Jy-qrKSRr_mjm**#m1km3JyNXcSh%Q?}{V8 z>>h}`Yo5;Kt=c=&g=eF6*fa+Pff+G>6#3noL%5gj)NJ(gU%?b=^jL|F?fwOm)tjx) zgt5NW={dJI%`naR+yfDA-~PLM#H)F3@##e$?ty(o4&jWyAwdMQtm)Lj1i>g&1oJwDq0uijIc*YJDTq34l$b1$V&nCob0(I3=D zBnlmncGI+fzb0wgynuaZ)vuj?lD%yRm zw!5NG+n1&pUL3&mYWbQ!=bNX9AwET~YFu{4Rmy~%NcO;%OBi5KA?WUiHU@|e#v(W? zuT^C*FxEH*RIG>%(QDg5{7?}-dq=%tghCFMQeqJLfZ*C8bY6GbQoHGC&cL{ufO10Q z6im#GXnR{n?QEtN3_w%I?-NoYB_Atznqi3pkFodmswHooKdPAV$4@SXw`c;+%5JmA z&S)Dp9Fqd$?!zIo>WIRbMp(S0@~cYOVAXedhf&+sWgEfY4Zrh7Ta+=cd+%wpDN7z) ze(^eD7W44od@O^nuijF{n_LZ!?sfdYMPe4C$THeha-<`PvasbBmsn-#sis>(9w5%5G zIa`RIvedT0FWHH*B)MZk#lH(S$Vwm10)DCE$sl7&KC?=$)4fVTI;=KBxMC-=7c(U) LLF@bvtR@QgnF0Bo literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/test/xd.lua.i b/mk/linux/mojosetup/.hg/store/data/lua/test/xd.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..d0daa623263fe6dfa85c4253d9941f83437fe2b8 GIT binary patch literal 350 zcmZQzWME_f14cOp2F865Hk12*DCl4D(kTA==O3XfADvio;P_sH9Yy^RH4w65PVI!# zS%(b-TwiYb)#WHKAu4*~V|Sm7f6Co?Ih9j5WHet~RH=_w^~+dzp;e;r`I)O%_XuSA zhquQ|M~Gj&AhJq-bxByVZfN{zM>AP5ZA+fln^xc6mAU)(5w>MFp7(0FZsmD#_>)oB zk_qCIo);Y8?)g};>+a(B-z%0Ux;4jIg5R^X)8u@>$x|-Gt-zF8%V;dCmoc o`Dt~Zza0NOGfOekjrFPIUy~`!mG3h3-lux!?f=InZr|w*08U1rZU6uP literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua/translations.lua.i b/mk/linux/mojosetup/.hg/store/data/lua/translations.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..e127b2ad287a39f469b9c48bdca3de29a44b6b1c GIT binary patch literal 1116 zcmZQzWME`~fS(KujK`pC<^NDHPp!0fT46lHqqui{KjpMSZY-V@4OIiCD(2+&9?WYt z;BmN`z3~bfWbJ(RfYGYiOJXd>{l};wy8#M`uk?PLhGfu z2iKdjLGwEtxzNo9RrC+CCf~~eQ+@@mL^={LM!?VMRv_mfcx>UGHVIF&? zZq$kvmlKm7E1p$ww^+75j^~ERsw1BoC%DYL!npSGzc1`L58EB&-=E(8_nqp^-`{TQ z+2=i0ELiaGTIA|VSE=y~;4`XuFjM@CXpL;+kK+u74{SgEZhL4bTlm$Z>9-$! zT)BJq!NVO_U3o4Er@T)(aPZYZ%`Abmvl3esWy;%Y%U%2}O1{4}J@JgIG;(|HtOMr? z8>EGsF8w_ER`Up}<2TOLH{)0hSeLB+>{IsmEXzw?yIX8;Hgz~1-Q4Y#+M&MrP^8E1 zv^-gscXN+x{@?1d-$E^~>j!W11JAZYaWlF;P4?c`Q|J3^L5hd;#|K}9N|MYj`33sD zJgX&<^lv54#cb=X&DOeYOu2{5X3VWie02NY=lLwopL)HdU&I!#d^TaHgmIzoPmJ_%m;GRK?0z-;6CcrntS}# z+{$D9t5p^LzR%Nr5dcyR1HibL;OlqTK%lkz##b(#idaz>VNNpz0qzzC(UluAcCEXU zGD$*b_b2|)hcdS8#~Z5)7?1e{c793GHvW9}^Xspdz90B?#>mE2ynMRE^@!OGK@m+6 zGaeXT-ee+rFyf9+{_*4~Yd7eL-RD@I{#^M-nAMda!Do|iZkh3YW*ci_*qwB71=-`P z56aKl{WW_JZ>4KNkhy@y$tp$DsGD167A&385$t{Og2uybf3>qqj9+Yi>V8daUd&vH z=ZRTv!uR9POsR=D)Xf?_$&cSwrt-u3Q14xvXU{vboVSW4U1|Qx>iD@;vvs<&x!KBQ zh;*qwV&|^_N(#H?6wF?6vU9xtMorFZdb0dm(Yp zL2}*c@}|$zgbN?&NF1)p@v%el@<1btBHYch(yQbjwKTd76k`t>v!wu*B S&)vzzR5|Z^J)=<7f^7h6MEFPm literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua__glue.c.i b/mk/linux/mojosetup/.hg/store/data/lua__glue.c.i new file mode 100644 index 0000000000000000000000000000000000000000..669f7b07a5ad1f8498cf958b8a5f1083c76de08c GIT binary patch literal 46369 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

      Q?U@KU<=4~QJ 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 S*dGp%<6-4#YT@eX4*NfLMWaUm literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/lua__glue.h.i b/mk/linux/mojosetup/.hg/store/data/lua__glue.h.i new file mode 100644 index 0000000000000000000000000000000000000000..4eacdd04f0b5c370e6458c57bacc4b9fb6f1bd92 GIT binary patch literal 2509 zcmY*b2{=^i8$V+Vl5R*yma#@;D-<&_m`oViw@b{7k=px1oE^Y5G6U{hsH0fA9Cr?>+DGz27+lAOHmLa}P1#4FtvjK%*QX&^gC(`Z5t3|!uk44h=6u{3^}m0J2{N(URSuUBTve$BbkZtu`& z-(M*)Iz&X(XB(bbUQv6i`*rkrIrfr1g?PXAxX0Yg+kRT4h;{QzjuV%(S{Jdi;?mfPxj5A~;4UF#r(?07xTv4FDPtLK*UFRvsvNbT2U6 z#l3!0ja*FGh&>_Xz`*6??@PlckkadY;}e6M>ERQ_OE9pZl z1PaiZ$;mz5sdTmBhp0539dQ`=MW^9xpVI-)tj5|oJ!VS*T-7r z{usHTDH*fleWv;0(~mYib|8xxj&COOv+p$BG`zmlaOO$&>R{Eqck-24@9CWtu@JeFYi&hOKZ%A^)7_t32spMUIM@bkCZSR0)4fTAP z(R9v*Vc9UC9R^|sie}J4&_qT!!kdcTPY`OpdqQ9CR z18qb8Ji|08`p(v7V#VR-8tIsiET+kQm@O1s9_PS)mnIu2YsJrU#irU`g`Yk&H@jD2 z0H$oWYWSQ+vB#^s6EczRiC1(_iw_J}vs{Kah4kBxJC>DY?N;m-NmeA5;uw5?ACJx3Wo8^5of%tKE~w9? zUWu@*Y<b#BecG+^~O=F zJ`WLsT!E}tP~J!#IQ#7YfRYy0ApqKj3Wib8HhlYL`+ysIO{+e1*UfdGcE<`iLJ++T z78;y@>VFO>gi7WdIz(mu=V*|wun~A!Q9Fg^bPz=$Pi1@=_F(10ZEMv5>lCHHKVs>H zM}?eUFas*k)Fd+)bSf$0|J^`~ps{HrI_(%W@X^tMPbq+*(@V;2#pE$D1#YefF?88VQ3NyZct<|?BM_y$*)@G zfIDJPSSQX`4umOEYbbtOtSM@1M93|t;1I9Qh&A8c{*B&xV=tfyhrGby(x zRW|94Km#=_xGos!$?X!s8kV?*yIrzn#vY7Hv1RTf=OpA?1t?v8RhYIutjkh2bW8-0 z58WybJyTR0k_Z_95C>ZT9?+c-hr$Vbs^uT;c9v_~)a|HHmO-@`^!_B|z`*4NX5(Ct zCQ|scz9qRhADi+I2;ck-vIL2~a^v^WBHeXN4jqOuAL)#_zN9E|F z_Tf?23d&w>(*I4p{!^HmNqlaPNwR>}jM4JS)!*Cbt9xAbDo**~Mr>)t>09nqJr>Vr z{0vMzM-?qzDtKaS7+O=kV8 zG2Zs(A8oC9EpDKHQZu5||sL#XY z2Mq_;fPwk*gHTma=5TGmPn7s5tO39Zh!RjiTWOfEqt`C$j;Z6g9m_9_KR!(C7jj_W z^04i%Bol0;QLe?Sso&)ZQ{rEAWpVhBy|<>%Zc4j7lUWhhJ6Wq|cHocolP9mT?(-%xUK{QPtB*hcjx@jXV4zUh^CTOBPN#(jqc!^cUs!6;JQi zf3AN#!@#g)N7yX3$5p}>1yaX03&m<{!3*ob=|u7gseXS_82WXg>39sh3Wyv3V&W4x05lk-!8@77EcNf8q{ z`@Q7aD#bfd)W=9)y&C_pZN84_IVUn!7W2Fs;$P2Sz1iOA zFhwZfo9Y%E9K4?#931J=(%HG6*yb_c-r2IOM@%=`-p*=m+t1N&>EygH=puA<>KnQd dItT{tFCD?Pn~nT)r#9l>cP2!D)Go#Je*wMa-BrUoo4E_Rgk6#q`sjbCOydy^4D>^{TY$ z2kG(nVu4%E)xtaKGc_9(6BRD-HFPauK>m%MN5LBGW72^eQVcZ(UQ>cL5 zln|ob$mQdBJ<&Qt$*3+r=lRHm+k4R}B!Tb2sVRH{3sIH@cJ(Im9wT@BgQW=1OU04T zsq&Z)mPcpYCRA2-8iYdLP8Td*vNvBDo$3umMk0=-#?=Z3kx~P+@<63NRt`oSDu(fJ9D{pmRE(@XxGoE zixh_sF}4@d*7K$6^leO)I`@1$5d<4|K4Jc?E%z4ljT0XUJ9{ETs4Y6RHqASm=Mmy0 z`b9|w?$)|G4d&}_b-{t%6?u7S`Tfr{{?MhxB zCB8}m6<^4XO7dB^ztBibDjh$>SFv7|`Yr1j{7rS3s#3nkx#2DbPAnt(5sZT9SN*t0 zwH^H+#M)(;u-n6m4Fh3quVV|Q|ca{%Bvb0ABSYO%H4SLQf z8SO?9S30yB&E7Q=Xn*APU1EcXhg)>oSFpgxCIi(beyAr)(Gcjl?~^I5mS;>j9y{k9 zVC^*~X*w%VxR|Sm8+R`m30Y8E6rY459 z3rp#W5K#8tiljk2iadxHs#yN5`9-nzoZeaSnOk)VV_zzG2OOKGJov@)U#RTz3Qwx? z9dTv1FiyzE%Sct<;c_5PNVqI~`kw#lYlw`TWG;GRJ`@E-e}-?(^SNl6lq^sbSryDX z*wyGh`!|YYKzSa0b-F3}^Ml;Mz@+BF8^gqDk+zGylnODYQ!;7EO7N%<hWGXRo#0Mpk5|fhcb?wogdnY6Ym%d?w)!AZl_7wCk?ctr2s-Fos>7u;1+$ z4!B+O*Qj}$bR0Gb_xvY(^!O=jy^bbId#)1Q)tEf@3I5lod8e0uGg94B8ur0+?%dH~ zl0QIv&G+=E?MGm&?;TH+EdsT%ll48|w#Ysei~i>VT+hQbN&o=w5w=~{;54j|;3izh zOaL#F%E>-;@)r&c-Kl;~BGw4cz&-n4@yn?+7tY2K%Y+{#e&_c_dV zv-cq?h}))~{-&}xb1WR<8c#VuJ=*e%iT7{UdVd{>{hsz7DompKrB;4mILV(aQ4F^) zeTn}pg3qPEA0#VN7d5ninxi=qTiGmqb0QpZyb?tE6g-x zL19{g@^muU_MTUKNRmOEtu)n(!bsJbUmhI5Jc#Sjw#TJrXUReArRHMyK-ihqK?^~1 z)5mhcxcM9>THqPD&hvz!dIq)pvUg73v>WbVX6UF1j9n13c!qujO5I6P@CS6XVN1G0GZSU+EsWql_1Dcd}YNGdHhOGsjhebQK$Q0hGma8(4~ZI^P)r4( z^0p1}%&X{>*94P~CD9Ov4GB=Fhe|*bG566o#+ee~%PR%?f6q8Wn2)7x

      vorA4fA zU0~QhGiczZ)NWxBh$~4!!UO9=Nr#d39Hmm7zkF4#h${9Q&JBpE_RM?*OxdhvE%g{OjtMHuQdRG9E*53H#DapFS#|IgvQ>sJu^z_P-X!C z{Tt2={MQWy&h&FfPuu@99E#%rvFif=x?xjc5g%tb@yG0>n!P%Uvo`+6wrwa=utvwH z8_qTO<#_8up&by=Yw7PF=GdyOLQNe5g?<%Q8YFQKs%aItq{f&$k#^_M!aJ2bZ?l(1 z-Ukz}?B27tKiX?m6-gI}h5dfsMfN5#zgSsiXaPv5)#p!Y=L)fFT8L>J$@ipr22m@M zV!U&=~v^d>OK4yDnIUBgwj>Ggrwxa>#fpZ(jmu^ov?N|ry}sFww{mA zp1T*-;}N9Mh>lRd@Q`-j07kg1Zm?HdQ*&@hB}K=0M5I?(!)Sy;cK`!SDN|EBQG@7| z(P7F6c@QW5U66Afk*>4NT_`47F6YYqSvoat zNBmd(a)Q!+IE_PSdmgk_C+O+5((Je>RYP?q)d&P=E3zwvJAV{A*U)omr+ojB{FHY{ zyGX=uLFkygJ&Zvy(!x*Rn9?GUSAe!A6{XaI_<7QY8Q=<^=~ z(|mWHkg53RG;eOVrLisQNVAi#Yp1IeYhH42ak-bWvk{t(jh%(NlGXaqq;z2IQ$2%X z1fJmSe3KO@@JW4PtRx#j2m{;JFeS0~c?0`=y7720ct7l=?uWX}uPMaq6a48+o;C42 z6JJP+Qw`PDZT7T^M3L~6oVU$-XflQrjC=+&pUBn+X9icfKZVnJOD@?LUSGaTtESGb zJLQNyia{b@!cX6NuKE^E2>jt@&?&VSk%5|WW{Onj+kX!&b`3%LyT&HC-O{c_rVzRz z$#NfVGdodGot4~y87fTjE{%OTeY3TRUODVSY?z*b4+yuEfEBy4fmAcuGglOdKdSEp zCo5B{B0IuH{hmbacBJ|RL=X1_UJzOE%EqV_dcb7Ynt;AXiLD}PNf=uEy&seIg{_~SLIncN*7V&;)0$=) z4FPH-=Xp<7{uGcNX*iodB#O25+GUs;EA_%vb6Hdx$uGu#eZZlhb?nj{tP$<-V#U=*`Tw!JRA%DZNB0oDLv&sx+kcNO2 zX1_^AJjp?1Qqm3#4+@X!2x$%IOo;Rj4+v?BEUK*Cp2q_~hUuGdM#<%`O%DP9jKMcf zuzv>tF>W={62`)Is}NT+rO1J{bM147kAgBcoNMsQF@Ih2utS_NyknZ!sy(_OKTQGP zOlTCrm;|x$UW7`>AnmS*b`NDNKy0opXMdct`pqACh6vR?kBeHG`Fg?j>n)=pw;{5lNT){YJ8cT=tCQdW=ASzq&?N9xGQMcawDX*J?sn-gbwOO;}l zgW zLD{#u=+!&;5F>0bBBG}^3Xm{lm1>ePlFE5|Cj@WERq^#7bQW1NhOGI-3O_|l($k>N zAa4H^j8T%Q2;D4c)qXpQ9zJ{99~Ax#Ln;oJbp2sT650ied63S7LcEuXn~ J+g+aw{sRx!a~A*r literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/meta/xdg-utils/xdg-desktop-menu.i b/mk/linux/mojosetup/.hg/store/data/meta/xdg-utils/xdg-desktop-menu.i new file mode 100644 index 0000000000000000000000000000000000000000..8f6357a03fb12e52eaae487d4fe42dd69cc99980 GIT binary patch literal 23342 zcmYhiV~j1p8Z5fTwr$(CZQHhO+qP}nw)WWe%pUH+JLjHvlUwOjcRKaIyS`KbfB-;% z{{wPL03gfce`lb>-~S)seu^%e>C_=n{#L>lYZw`y16is6)BKM;b8q>qJhsJ?3or(X zL9B#lNRrc!Ox^8P7+OU)b*~>#$~>E+B*GyTMWN}Ijzo39O}FZ2pr@folx{yM<@qqm$h85$y^-b@C(o%N$Ksy_-Bu_ zh@w?TrSw5lq6USC>5HxCmqkI11?0~-go7=YPL3^6%{VJCC5-bSFqT5#n6fEGh{LJQ zmq`22OIVK^w4KNDT-|fVFph<71-$=`lzZaojYWCpfvr#heB7f5bTYmkCt@z;XejeH z@ZZQ*47k>QXet$S+M=rRb>x*d};8reOx-R?!Dm*wZ_>u_rMK@XJT}GMb z$1nkT`_VD9lF^hqs3o+~qTI+MPKkP=Ig*BnJJDE!p-`7zNTX7@x{-l~a6ojpda*#N z`SH=$gfWJ~l)=0T5l#R`u}t{$!9`-i`Pd_=)EJ0Kwg5tlcbpthcyyQ&L*Q*eT{VN4 z>rTvyXJJz%eN!eUPZV%Cif2S8B?E;ctJxYxR)7%i4AKKHgf-&69FyFLXXvlE=#i~I zf7J71Iiv|_06)WlQ9MF~5^xJ7=HhDj?kq_nd>}FioM^|8bIL_{n)&2`aC7W>KYoP@ zu1q4U+FGV1m)3r(upA|GVOtv;Ziygej%(B(n$F1ax6OiO6|$#iJAgz{Hy$) zdxB4~0HQ;Dg8$Y1t9#f!-k?Q*O7Cq!FE=+I65~;)kLObh=N8KDNWs|k&*5G9#rMmc zlLI56ro=>Xz=Qd~e#rUvNZ$9#?$4pjBk&nMeqJCW!CwWy!xR!7_0WqC2&m^G&z=_; zK@Y>{zweX+uk+VWiU@$t4bVZo=L#SH<$dm*N5WXn$}xvT2!3G`Od-O*2%m{Y<@-Vp z&*k8>!>o&MP=e6|HID#;l}$b{>3E39^ZBKmf`oqz26>Sh690PmJl~5UFx?Gq-aNSo z9W4g71^%G+?1tRQj6P*Xfl5xWrZS;97`$8{)ozFV-sb*IfKMvTD;Y^KdGCZmB`7#3 zW__^>STuR+p7;i0w!D9bOcz2QsU-mhbwTifh1$HoLxvq%s0hiAS+Q^EL3jX%9LyKg z@e^3NmJ2b(mo+!V>D%u$QjD}%7~K?lduZ+X1%E%p17DeZo_^J06@sr&Nj;Rx6)l9m z42``E@oFZrW3>*=HOaDBz}X?cq)m9nuAJ`vUA85^^hFPL^PV86FD8{``2>s;3Bv#x zggJpnXPS4&v1;#y_=?m?A{@BP5kH$QF~bm%6!rjte2+v9buC(t|Bz?TIk9F%?H^+7 zfqkOsfoKOOTaBFBTR9!`l;Ni*3w#Ghbotz;S5Bq)0G^ zY{A)6=lJ7oAB9gRj=1OOjs7}jnwu_^o&LMNlWC&ycn3_tnJ+QoS5*le#>E)FmhSfV z_uCikEB|oK(Qkn;>KP@5dEsPOo-wXHyK7bovXdg^LpU>hCKscM!iCyqo5Lq_ZHl)> zgx0YJ#owHEa7h}(3~lOsfXc>WM->c(%?-u?%{YTXtq!xyjp>|zWa>cLZe+u%Fzb4P zaw9=MY@HD34!?xr50fCmZ)=~hmRspZdPbY$(eiTIU@9lN1^j`gp*eFg)IkpbC6wa16VjfFm3zEnaOYPWFq7Do&1asNJPgV#PccpSZ$)_fPd`!IF zm-0tJy`;@E!%U^}^%6kaM`YlW0P)B)1RFQA-)!a3@{D8_1f?VpCz`PxSuX#zn)y^_m?zgoM+CQ%fw>Qfwxif_C(A z2B47{XNsY&8qZDR<2;C?0 zPw9*3NK0aXTOYcZq(BHgr{7cKHOD7b24Mtdi?8sgI$t6-}54 z-{&1*R}x!O+NIvS7O5gOBnUdfE^+b1F&kmqhYp5{L(5!aE3S)!59bKUces36k%{#ChEAC zWBnIqQ3=>CQ0Q`23j;w=Qb8ODbt~uyFtE$xK}O+6(e_t@2aa&GR?w7Buy&Cg<^ekR zhbHes4!edW!tBmR zs9g*Uq}>NO*5|bo?0C9xg%dYa83zM1A_XK8gHYV#3}?*~0_-bqPFa^aa|V+nt&ajL zt!3X-5MV&uFc*4NpXU706cJTCz0=&ZHF$S zw@}ih0~lA;FL&lgbzB9yV8u6nnMO`4JJ}wzlF?orjfckiTEr*-06iaD9M{T3Qo?Df zJAVq?j2kAxMxzpFi0g!%A|a1IUbsB{aLU{vetS~897_aZjO>p~+#=@# zTaooloPQ!rR^r4gyqnIhc*@{YnVY{Mm+Q-+4+Uv?-XQ7H)_3YAqo5myI>33k z!ow8K2&*|!9%pn$n2&X`(onJ;|E9v2C81g>2vr9RahU1^-K;exS2We9SAb1ABXhCAes@V8crlZXB|5z&3Hw;S@Epn5O97|$bqQ{22FND;L-|rZsk7HrwPa3eBa6;P#yV!8t=%S2eZ znEC=xISkDWsZ-~sCRRRph??NNvu(r2Qi$yi83xY}Jr1>0KCXp^kGh3BY;&%A2B^&x zwaRqiu;%T|7t3$l%zBgz|J;1M@f+R;F-GEztuz(&VA?CsbBxxA@exLib1c3NL2-1B;7RQ25-E%QIZs zs|#DLajBYGEiL_Vy4*!&0j4NOJc_J&t>BrQj#na=?WIooisdYpCU`Idi;8B4gpduu zky#9;OQxWNlewIrK&*^mrld2p(Pfz~uEulAP4y-_;oPCjyv35OwvSKmAmMC=Q4fn` zlVs56XXx1e-R_vF~_rfmoa_pyqpSJR9nlhM_de`$&pI4cZyAX8!Sj3x`j zjoG2Xk-|j?MLsz5LTU>n%Bh!-9hMHkxm_V!T-jI1Fwz^aUo;Lj>khG*yOxb0n+#6> zz^a;@mxIPOnD&gzZd*oBbzb2|7`KHcg=zsmRw&U8Eb=PL&SHnwqEt-$^Xl4Tl8P`T zCKW+>tl*;lQy`BQ#eR*%Y6ug*Y2&3nHv3f_>`2>M@peu9(2706TpsFT|u8k%(!h zQ2tO$m$PDib|QdPT+HR@GyIX2=n(ji@*snkRAj}~2Qn6U#`xX3>SpO-Y7tU}qpmxd zWei$IDmrGD1R4JyJ4Q0ihR*1E<3!r2S?S0yTaay}AjlXR*ZpV#{avX!H(xBB2{!7M zimMLZ4yH1uEVN0JQpnE0F&M#8S9-+^97~51WDu~mlviY9H%IVCM}8>gRHupytw3+9 zq4pY$puk%8gd~%T?ZJ4@H0~P=1!n1kJk}5lB= z>n~ud@E$T6QtWut)p9)TI|05+$3|)&CY7M_)^fVeR}V6W?5 zqclSN{3f(7W+C2bzTkhqsG~M8Pg6j==}Zz>K3<4|F=wICE%Fe=Sktyro{hAFLr8EA}D%u9LRbYvTi&Re@W_tf<7jhbv%7IVxDq|Q>ILsw`UbW z_>>Ul&$3jhnxCJVVArAK(^8*l36GW1@#D`hLqG1!MkH)%@3HGJ(!`UE{=~*0!JeQIK@deoo-RI!?mLibxka{^2s_RTxfx)5Pft#F0P>ki_b{KP`&b9e_a2 zO!}#h$8sznK9I`qo(|FeGPE&iu}=7_63cN2a!0V~gXIBtIeMrLJJ_%voGbJISG3Y7 z20=kI@np+%O9(3`MfugS^dS^G`*z8DmaWMg#h}$Uj5tE?Wvh0HkNkS&dIVa0_Q7?e zgow|Nl|`&!0pld8gh%SMQyl}7Dx?!(iqD-0xlF=~cxF;0*f~_k8#Hz9B(!C!EN{O7 zfNFWL(w8__A=VJ`3f7XM`gwlnL_a|@ca>Lo&HjZ(pjMN>4HbifL&8t&VMREA>T;Sh z`8dcheS#-|H+OPHTH0(#W1XqJqJnKiZmP)lutdArwFgHw-%yg8r>D>-$E$KF*WEj# zkimY_zAbw|vOr6%;vC{~70#hF!SMTg=$Vd_&WDd7qLZUy;I(~s_Fs}+tUV|ihH1jLgZMM4yl zUlbEyt8wTw%hg{s4$FTk%h!0v^U}a1q8A6kI<|T~uQ}H^IdeHk7HaGnFrs*wF8>9s ztzNMY#6L~3%|AP6K&6iCsXZ>f*HbbfxL3vEvWFrJb!5sw3rx< z!|0hjEgOm|@h=74xRSNL_;AY!Nias+t(k$DK zm}X}Hn`QI;dzzG3NWr+Togu5xjQTnjpAt9}k22-^YJV-cd$J%B+rYxdG<|Be_z7Ejtjre;hI|aO^hf;pbZA>EPw4lg=>Jw< zCmk)RU^QAYTmltn?pMnLmS!H7wqeDsXk7n~;^&tA@#h&*3q`dqNyE5Fa7-*~3AbnC z1S#=K5Dcp537qsR3zoA<)rI_A(jD?95e#`l^tl)@VYH{hb)F`#K`i)L6yMb6DG*VO-} zM0g6I6~=uWz1;V%xZX=4Y*){72a4-oVtpnlg=4x!Io_Ca4U6fRofIx1np#*OJi7&8 zYcTzVGnL)#wngzYyG}*jaQIl8+xf(9u4a!dwyT&KV*e@Q8y>Q7KEv3dir8u>&Z=Ie z@}Y#5Em6D$o=zGX*sOyfD{dRlKcr*i@Bh*s4R~XV(kRp8U!_awOSGnM@u!O>2w)#m z3nl{3y!I_Br^M9+Ru~eCOU<#e;5@fU`u+a(eQIEVyz58*79jj~g*l*=H-8RR_rUlk z&Pwv&rQ`3`Ce|+XZn}Zl>D(XxOD4y7O-QCWuWo z$fhBD5gE7g7(Q|h9&G&%_hFZENmV3Wzi-O83RW5q5Ey&Gx!AgGSuK4oF2=FBVn&m~ zf#MLgWW^siB!<4EU%#9~eIHhX@>zEqJ@s?h3?{5RZeFx%CVbH<&5`b?zaHpU8Svb# z4t{ibFDo@o*XBXmw*T#X#($u%62%h3Jc}`pCU97tUe!-p2INOk%eMa#x!?TK36H49Stanc!V+9I`3%X1@M8- zvHS$zvW+{YzUHY&IFyz82Z9yB`;FSuesrfBUp@i_ z*0ChVYHM2jH)Ul^+1;l-Cw36+q z#M0jg9lVWBL)HQW<*vGNaBsElrLb) zhm(#p-Oah1q8aI+uv_Z4?8PAL6w7HvG}t)r)N8{WCBEjcBNyy}3e$Ge`yo<+ExsXG zK=JuSw8Wl|8R0H5Y z@HfpNsD(Sg`mjvPv<>Y&M0nLEc&310TEgT$WoCk^sJ8JyJYiJf+FJ8_|{DLnp8yk}q z%hmGVRgNZVf<+JCeI^G4WNWB3m)ZAy>DNF-7LWj`y+hfP330Ddzk8^0w;ioOw3a2W zue+~enslAYCX76E%6v#uO@CUl_PvmF|@GH!hj^*AL3Fp-b@O(wSh~L)ai|p^e zXI2_!yp{L<5l_}5L@~I*_3hH2 zHq2U}b=_{2d*xvj96^=7Yq(lII!lkn!$`YsuZjkB9s`qvw@uP_M<4QyCG@;|M)|xL zoiA8F7nc2n*)?SDND zTZPrhXHZQ2nt?0$7FyWt%yOjB5CMlMKf83}JDC?(;}S}hQ1z(w(#p2H211|5Ij8&jz7lFqxY{x1Bjrn^- zB`|C(5!<}(a7@pv{}P=Rf9D*U!h*K{1?DK~!YVJ6+Vp}JsBRiKX{r28wa?sUH{Ti@ znQM+lCi}+e0y?0Dz?W3PQpLvQ24^bIz@4n&w(~j90LF&v*b@PL$VWd$A8(&?$prZp zugp&u9t~!xmhg1=Qhc-#4*nGwJ^7^#PzGW#s|G@KW|Kn^boK=!Z}y+Vd54^ehtkS!r9g-d8?0tIRdnOWOuqDrNkp~j42c&opIQsS` zz#b>^_ymUqPL3t3e`+{pm*~`2%;hyOuIK;pVo2EK+B9mRIH>p<7>WxaTCW|rE*>uz z{js;RTlr4#^rSjt=|=inAWwKr*)U}rTqF7P#P@AN%=QWC6@1dhHJ7b#O#LSp$}IOU zhgft}x%Uozfi>I6hpYFta)(f^87#5-lu!mDo_yU*Oab2E47-5=D@ZJhpV|E7EfLpq zxfP0hOvC8T?gcMA@*}cP>Zl4-H%e*AzKO+R>>$Bc-Mr>c9XQF0T8TGtoJ93}G>oZg zk8c!9@^C8ekOr4tbhvO+5c9HQ5W8+ivBw5Cy+@K`h!;J&0`k&qn87(A^>ao>LY#eV z@1cs8u+7zTAlj=2+S-VQ4!*R3PVjojYKG%pnowTd_H1QiU@ZUNLRRb`OH8g164T>Rlt9}{rMH5yWWe; zveFtDn6$xHKRuv^fHTv1IeU5%1Hu!>dTMq&vd1ti$br^^f}?zHY=^06I#tF%sE}}& zJ<}nE2l8-xgJd5Tyi|Qfs|M#`CqLh6OrGfw^@i-H4V;Ro(_{8R_*;pDDW zG3{d9XbR!H#&%b(K|*chY#8D^j5(paT=9Q+e_Qx8`#pD22FL7hck|-Aepz^SuKeU+ zuaqp7QntI)6AKlW#0&-MmUx)9l1skXmH?tlxX zSwR?=^+rX&m7!}`h?lKW)`-Oou&uA{jC+fyG&lCETUh;?$@OC|_))WI2c2st%&jL! zjSy5sYnqwDbzpQ#`fb*Q4}@yM(H9JQ=#{gETwS_C>KwlNxa7fz!gc>R-RTBn5jf(p{emM&}m%k78mp9p-`zjimD&4{SfpUB-O>#6RTRw!hqsx%<4CWj&SLo%OSRG8 zfPG+~W~Bl>kKa!1{27+K$NOt!AA5P@_LTHi#^SOAF}rGE>&)nK60WUvd=V10eT#!)ZOdi&thY*g4@xyL*M{h^i!f@8XHH6g!Q=^U-f zR}zikBZu#RCT*5;5`R9np(-l+n&g^{tTmvD?M1%LT`u=(z^*j^v9`N0mz|kCw$VJp zK#t^h72zG^nIilz4*RfA1f#(|(c+u|9%6|rH8^i=3ByOyj zRx;OxP(cB=rfV(wK6crm;;foCFR@zzCK&^Q9@%2gNU86KVglNsqKsGW!@lf%h|*|4 z7M8(}ZoV@G#vRV?p+a51i$|SAg|trj2f<7E*?ix*5nb7FleYWGhx0jl@r`o4#wKpU z-EXbK;~GKL%+45T(PnzM!?5S?$S^CY#ZXMrsnU?9@D0hyHr_zP5)n-xVz+dp{FP4-mhh;6f zveU_J;=llP#zuM=)*iiJuQ}$f)05uR%mzRgY*RW`tHyzdYHH~ZW9>7xzfc|8OlFJZ z>h1Lou58000d9_hsSP7~7q5w3YA2VDc1#Czote#u$9-(=>OfRiYcT4om`R3Se^oZR zmw-K0Cm0@v84N@zrZxY?jG)@izCpr@A@+d8AJ4LS=pJ|l6Qy)IUlW}moc*WpGBxxa zUuK_5`m}CVx|Or7x(#T-d zWyR4hUfQ>?gB#t;|H5!|`ICfoR$TL%Ker^kPjjqtRx?gcDmCLYcZzpYxZ`p4G1(KYThbo(?O z^ZlY}tX7+UM$P)7JYLAS`J%S0Y45pp_nbUEI*iIz9$Y@520R&xSe4(L%RDf)tupz8 zHGnR>&A_AtVhFyAtKRBJHGvwDp(&m<1Z1wNO-nG=)T5B5r)fo`SJkuXmTgaYRC3)S zCH@)5C*OC&=+&t)*n5o<@YvC#N%aG|sz+@oJ3%(PWrv=kUaxQTA};!6?hzE;1@=(3 z(6w5y@wE@toG*RqiEiJ~=d2-3uHjA5)5(4EZ7yD#zl1@1MNWOpW^QP$5KhcyM!XK8 z5xsxsBs0O6->DVhO24jfe8>8|)&M6ky6~$NJ7o^1FfOtz`o1A*?2&41>6#5Ro`u_- z4RVVyyRse=B<<7RNO52PSq+im)(GXlQC8mshX}u4D8mH*F*oDk>o2NwUbiv)we@ip ztL;5D39JFLtz)OwcOsn9VKAS;n z$TqFZKLpUasS}E>N-tRKY1Zb%z*Ke=DhxjjCPl9PPiE}D2{QlyE)M`8|M$Q27|`i| z_y0!C+~U|z?crWW!V_o4K#d(5Ze2sA|EKvMd*+^E={b;SxM?dvlPqCS<6rJZX-(*C zrZbUv<+GRQKkbeH(p9i|@&(Sh~8YZ)gha`gfwe5rwI>iFNo7ZKh*0a!C(8)N97W zNT;kS8WK4W`qc$2Z1Rf{ zlqhk9*2!<%>Nv+~3S6Y+K6ID132)R6o+K02Y1tV6M)_P2br(T$^3zZB5OA%#0~Me} zPoIcYs9d5cm-|q8-2+)O9~TD1))o;2AsQC)=YWL2qHClU(gM+A`~K}4N!sEg|F%$( zD60ZxDfF za0J*K2nY_@a%CMy1KJgtvVCHm_pNo8CN*;1VqjA`*~au-+?IO^K(tTMZjZ3dO}TQ9 zupzx>jFw7ozd8dO&aGaZ;&iS~x(hVr^h(>TN3&j^D8tC4ZJjjj$-E0nGlwl0)kODH z8KlWB{mKT1kye*pV|ot9u;j(L1zK~8+mJ4?PPk7?f4d&_%G9Q(U(F^pFo^h|F1_a3 zjZkHaRxQVi5XPm{6%D+!NvTpb)HBQuu@FA>%CxTCtwg`Sd5ILKO}Ys*B|~OV=g_%~ z)G|odCQaCjMJ76IZW!&P0lpb1n>zvpHrWP;j2{dY=E0#(t6ohhxlOxGE5ZmJw2mW* zc;CBjhcZYt%)2W{TB~6r5O9UszRHRIN0SbUwbFsv3>`4^=w3qVq(X~E9atOGV|LNI zrJuWC`1#pZ-21n-m@*@ey-R975jWJrT8X41eF=&;?Ka4Pp~_A|4iHQNpeF4s=SfHMs5)6;RmxZTmFR$j1o&y0(1A%k}6ddrDgC}&$s#ICE%3?nuQLHG_ zVIG02fJmr2Ebr_J-(7dipU#`D28to7Ts<{U3tL0UqX%8h2q>q@2mq?7tg*1Q$hzm; z-5en62T0*q+rEL%pO76pebEmD&X|Fl6iL9BhQAq&>6x)-w!#xPM?}|*)i)@r>VP#5 z`Awm6N=3et<^Rfei@63MUg9lyWZ84?F^_gH>e(lhzWzNN48O^2(fSkfB?J$SN|ujk z)Pop%c}%oIs7B0fx%22P5gJw?zC`(Go>3teM8_<}$o(Sz7`bf(4((2acX2^YdKbTj6-xGi%l;Se%b zMDUEiy`thMUrO#!T|=6YZF^j}jlsJkKs2H^n04}l;DC^$5D!7nWuVN#qcJf^s}i{( zyfp)8@K}cuo6#@EYTI;>@Ox6mKgccpXBxU`0F>uM)AVx8h2Q*c4X zRJnWoQjP2hf|#|WJ5;+cOB$q1$BR1-@HC_Vi_taV{SwYZOYu*jK$9^LQpX4=`(ZO; zf_;1pBXx$5f&tj+VF;L{EZnFAICR#aLs+bhE>4R{*>kL-j&&P{73d6&h8Kt`aJ*Y!on)D!vG$OeznQR{ zo|6E1C$4E)cLYPtQDrGzA;i{Cc+`$wuOOCk)CaS8Q4~J@U6UOwoj55AJ#l3i&Th`vQQuGqh{I7|SEr-70B8HIaTNGT&M))wE76?7^jeet&u>Po%pFcSTu9JuV{BsrS2#`$5? zQ0{0aVITOEQ$xTGzTIv6VTZ@|{}|wGr!mAzbb=OZ%C=U&7qgC^x@46yK!6lF1Lem+ z|KimSs)Q#jWZ98GhkI`D6h=RZi!0@O?*1KJqrc(4rMv{r#=i$XbIunax5CL!m~`QC z^v}%PAw@?pU`JOHW2zR5hpOp^r50Zeh?H36GiI(2G6y~U79YZ@xcTUrZSfNXD{iG4 zhniQo<-%wIS7yA;MDbFZq-?^H@uhd5;G!ZSkn1B6%k_+=@LZVKD-bFv zP*dl=E{HvNaC5hnJOI+YoZE-a-}~w-=G6>N=yqLzEsOK*X1n@ab<>XIeE7c5?0+Dq zRq_VNe;@D(T>@Di)dd8B2xRT_hPA!1QZbsQ3=p<gFB0$pwksHb{B2mZy`l)UJ&^$f0TfE{C1vocAJKY68 z_-5C>MNK1KD5UyxF+5{kU@z^Sbvk zysb$Yw)$M<%@@{HaB>a2;^Pe8k6=EEQb^{d#SV-o+Bg1n@Ku2nz=i?d_{gNJ9ue8U z!pR<$VWyJ|915lW443wp&>ST=2e5{I->v$4QH>vtbLxUvY?&_Oy0}{{oJarHqOpwqm&vRCpAymMe=dOjYwqN4 z)Zd#9A!fp7YvH}9SVJa@+UNeO{=fK7iO6p|9!Dx2(}ItsCr`5$$i%?i99F_&ja4n1 zSWB($?nRoqsES&;SPjFjshZ8Mtvq#17TqO!*3^Rhnz-%Da_~U_)Bi65=4%Oq<{$qD z3`~E<8-j-%AdvBV8BtSF^W?E*Gm8Ve;+nD9SWc&-(XNRo(>iq*>o$Vlf7-VczwT8| zDG4p4p`CvfaQqYV%^pjc;EStTL^~3i9Z}6Sh;JzlNl~Z2=$yfC9GqB!tD8vj{%Zt@<_G{{e6$T9dRZaxx#Nip^#FGK{EcK&X|e7)89 z-#}mldEk>;wGbo_ObU5)>*V$6pV#;LqLUso$|21#qKN=poyp`;7^Z;()L@ed5g!Hr zM(8_Z*B*iPT}aCU$Xz29m>FV+FH}82YY;4ru5BR;mpv2pJf#45zK3O2I|zJ%R9~F} zV8Q12O6G|1!KypL)m?m>BYIk7j*OWEo+O&!#ns-l^uxB83M@&WR_URlhiaCq1af|( zVtn{v$B7a~mVjW(bm9Xm=oTSgjWN#G5uhKOMO2EF6s1gfjW7b@_Y^B|4wc?b1mX*^ zK|^^u%{f-U9e|Q(Hs~zRq)YlaJc(TLKsGscydQJi#8xKpZ*8Dyh!yhCBGAjT2_aG3 z*LGn6)jIYli6L38xj_6EqD4k^8E@$Mo|G^C;%KHoF(*hb7KUz`RR7MC61OP202C=0 zNP!{H9G{6j)Dh4yq8SnGB&odR!BH-n0RjJIPNuQ0bfh6H~rtDcp_p@)i&} z@T*kgmjBWxyEDKL@3HM8ahqo$h-I;W0}-#Xx>^i`%Y{$EkuXdND2kLQRduvL+VP14{T}1WJlcsR6HM zI9Km37B9td)MJ`t&1RdGorJvb9%TIWA3U(NM6=tE6gR<)B|q|cAHEhcSduK1_q^uZ z2Eq|s&4I5@MNX7L4hh1H>5oW${&o}uhC91clVQ1ofMQf8^D7|xLu%xMN1Oqav2 z^wiNEox*Cpdpizg?O6>P*z>1tKZU+G?%5-~hyYnzo5?jwm%D4%#=yXkYc-r!o|v+# zfsmekLl&?*M2ti2=AK7qL3;?#4LuG7jjYdAf~^IYWsgUJnM!RXwH6;%rxuBMTdqOv zY?wNjE$fAumS`KbVKhf+v=D4Y6&kiZ%r8GmYYvj718ui+4X1~K=LKXvfc7`FVoI4IVpc&_pb~|xeB2UazA)Z(8J_RlFKd|mLPNV z`M+5zYw~1X)-ISv&qF{i2_!sj;Eu6sPx&&IA@h!fLptDwJ$3^cb9*9x;;wTuF%hO-lHN z-lt$5^vsw~d_Q8SC95c%jS4|;oQ4oqbKH_pf$QJ^I`U47Hbh3tUo8eDWQ7$I>=6Yf z=((nM){p2r!G8#o%CN|5AsKvriYlQ9COF7-Uc`_=E{t951pn`1D};744+@`6xw|<~ zEgJ`g01?o!qwQRkHs{s>XjD(8{2+e#6aklQU3;ExBKGVwE?+NnBb$fyReao}ZlDX} z8r+~#j>Co@A$&~!Nz6D#AGAFn;Fr;W-CS{ZggiouowsN@n3T~X`}4d@Kbs^1AfH7W zRmy;|_6HW<8Yuk0llVu@dnCj-PC3l%h6}v7V+epZthUWN`&v>Ha+YK^|Il}?x2t32 zG={33Y#OC=V(kug6SD>SVJuW*m4XzC#~fRt(u6mZid9!hCUMa-v>XXD=EXmRTa8<8 zNdD4pzl^|Cr7BQ00+r>>6yD)poT*+FT>COxB{Pl9=7}KApM2S@U^vJ>L8$s>VcbAj z{c%muEd@?bZ*^Q~9R_VF4S9&=BWME=ZQqv*sU&b*<;3)=F!M-IgPe&`R^5xFdtC%6 zmf_EUouPrYBfUR={VdVbfL}Jv^vom?`VySWi`DG-6R4Qc zkX$@~8D3~R<%T^@Vxav@3*-)r@d!JLNf0iTbH`*2x?8H@v7 zYO*%YsA9MPdURPav{wGy#*q!4S}F)n2Lf@H>JOc)^&#hv@56GAN{+>4oye<>9aNqN zY@|{Zdmum{2Ry(0wrQhe2YME&gf1nJr_05oGtrZ$pWv)CX|yk=#E~0##0A6r*LH}- zmH}in# z*RM%FATPqH_#V_*LFRBzt{LI5cElWk4MJ3%)GY#;d zwvrHK;=->w@~uTiQ35TA4MC!-Q^o;k5aN9dbLpz{EX%H3TbUEX5ZKkSxSl^<5d6X_)M4gqpZ>8T2=0why=Qa;7Ncm7#~1WM$UqmRO%~jzPH*DCs&v zlV1+RWaRY&bccY4(qTLWUOx%)tVB~hM}zBW*TGNX$wa4In7=B-Ux8<{hGWR!O1mLM zeidUgP>r1(5-`4!>>4wzqb;J~sE^nctDG2dn86Ug98}T^)g$@DEI~**adfbg7V{mW zxKAoV5;PLOoT7mJ^2p-od^~~%WWhF%nvRh%%fBk;8}nwguc@B^_e{Xy&Xg@5hmC#= zp(DsbJ5LmnYL^+XJcXAhs7T%*;7gH=X_qkipLanJWjj`1Rd$B*b6e;DOhFOG5`|| zk9$Fe0Wm!8kvqJq_V?ukdO;w-fTB-w2`elSyJl+vt%c#0;%@7dSs;&pOX9K@v@FguU@mSrT!^33K*xcq>HmNwJYs4WO zr(Fr!Y{4a=1wuZe6d$ZMs1nRqoCoJ2aF!%y$;Cplf$j)^g~d6VZ$%%cYNzHRJPVEO z8Wq`7_FL}TFHjX5XltVa0|nKQ`VxF~Fa}|NI`R_aaVzPW zfp}@gHnUfrfT%VNkz#1uK#w@3JnRP#G78|WFoQ9@g%)@vchGbCNZ8Kb(%2$_rsv|?YF~#Nhp(_ zk{_jA#RMfR&M5Si%0~T4&^TKtH&8m4U`)55HRtmJyd*0EjJRg#t#sP&2Wg5P$|x|2 zo%hg;oM9HLe-X2R5a`EiQhqu|9&IW5R!;dAwo1oKN z9W(hr0`#nDueRxYE;y5MMt;+|qm`V;C8UTygpAG?a?``C z&NPZW`45&{Y@Fqq)t`dxk6akvsau(p=3#);3qJZntT2}4!l3-@_&vKu1tUD}ViAd-y2GZru3N4HCETa~JZggH9xI036U zZi;whgojH?CQH@cLgEY zCzopghZ*=ZE`pOWO;1T!qVsztA$Cg zZBMiQkh#%zig8SONP#x)b$3}Jqu?^LMxH4{#MUea5G-6od2vnb%%hr$FvzN4jA2Sz zUKvF3ijzMRZB+T<5LVP^h7n(wq?v`PmI|(bp-QgePO4eO!$A`?BFQ2ugOv+;uQ@Qt zE(NW!0&7On!cn;fyI=|x-ru|cRt~qgFjk}6AY1(5k!H9k!E@0!nw2JE@J#ibxB>eS zVZaSh5_HlJm8u;rnJQORSYb_lA*NL|M~)E%NDYxe1UQ(z_-eStC^?@t#Lx?`FQ|z$ z$iwsqw5nBZfEMMQbe^W*x8y2_>$Kyn=QgXcjkmIl?6-K}LfDwg3_(mnHxqxO&gFwm zSQ) zY20{NI_qNAINGJZ6dSGr^YnA43T|P3e`DivV?#{B%U~p{TFQ;Ymv=6|ydxV)_OrZL zgCnR5Ky0=y#?)qGqd5UPS*^Hl1c~yv^T4sPxDiZRi}^sQ$@NfyKpN_ociv~tCM25k zJa7xn*@Ve+o(q)c?3jl~-a3vvg6F(()ZvmN%tZchqU3jQqC}D&zAb&Ft9%+r_Bi^= zx#2OQMGkmw5oj@$2RhX;%+xM?2fE>Q&qab828lfOnSNk&9LgsVBZ7Y+8n1=B{H8M7 z^wt$G#b=+%oP=1rM;&H077ef?%j@MXAS46KvWrVz#|*Gq&R-lEidN!$KX}9VB~FERSu@|FRT$ZK9)T{ z;7VDu{V0;DQk}AfBEv8W#m=J`8SI-`dQh0Ome^xF1;*Q#A8YcTf6U3N)Glx87Nu!0pS-MHMq}J-o>viGBL7HzkX!UA>PZkAVU<%TF@T*3A5Kl!0G+`umwR-+hx90WI^IH zOE#5kT~t55R=#-LvVie@_)-uuL#!>2ZM%E0`3mqZh(r-ZXy%GWjF*?{@`K?lw*h8j z%o<{0GXN@oi_dXUT@FYCtd(@zU^Rp0X;XT)ih($?JXUQq6Y=)3snEqeU=NMo#7oAT zNHu+jgDHI}RSUK=RSSI>g%#_b?Lga-^r4+-Yt3YwWjz4ZRzR46+9>A-b>0=K4E$Fr z=3SZ?7CEjjj=ye$>KVUac}=c33hU0Hqq9)ZJ&n>J6O~QwIqU^g18A&qD86n9(2{rv zaR%C}OqG6s4P}KQ_1h*WK+*Dp^Hu~AwAe5%Tt^G_l4#@mC#VNkrDIjdJeZ$>MXl9- z{J(0opZug&`_cKLf@X`^S%iCxD(Pj^i(mwdq|#+0+nwUZt=U?h5JUx=p!7J7A7p^= zcE@&mF5Ts)+nwV_M>{*my-u&!-QRP?Cfv@FX`q!847PdZ2hv85RL{qI`@0=jl-|?B z{b#ECad+DlpCSmW`)L%9O#qi@qy-;xJKjD#?zO+}P_>NsUYsVuMAQL|Z{5p5Ke+R) zy9`#=T(i&CbI91_o>Fi?{Xc}iKd#kk|L=n*xXuRS{)qhD;4z31mAe*%A(z>9B@I8r@qzJi5p;3>}V)W{ZY z803`;0O+t48+*Tvlg(G8N|sfJ?*$eb)YBF;yDPrE^-8^dwV%F#_49jP4#xBYJh+Y!GgtYXH&&F3rsL@Tjbl3owcShxUrJInx^Cr!V2}1eWXX zJ0Mik$uU~BBs}+y^AiTNU_bTY@3+wK3u}TiI|=3Dco%1)4gfxZkv{oPwb~#2D@og1 zV=wCuZ!NE_wv0N8*2;=_llw-KQJCGL*TN;(@}PIvJ~;f<`ufUhKGdpv&&@pn-u~Ql zU5giPMO1L7`{eE46o^Nt#gMtX|DMkk~*PIg-`k<3FcU)6RbzY_sWHX0c(5J01F$VI!3yfVW~LMq~276 zIdMQ!y-5p1g9bF~gRsR0oomtuSFOibK?{NE>#Jiq4l(^F|D{%Qp4MuAxP>$4vtncG zfDGS5k;KZ=V;H({TY|$U+{3Ztr!+1T&y_Ys4z>A;rARw7hV1B*I}1t9U#zTZsJ7hX zQlcANBP6%vWQ7Wwq;OT7V&eG(yi3~@ z7`Unq2A&2C?AmG?Xu72l3)C?I+$~e17)$32t(t)h&a$*s)GgZGqM?=IumSoCqXTI$ z%?*T>1ei8QI_0Q722z`^$eVMQk!3*R&4psI9N^f8=%)c_Zq`L(AU0lEgRn1v3t|j6 zV~wpDJ;G9JQ+aXhLl}Z*V?rwdF=u8Ce6QU01T^8i*Hv7qiJxjibEALl(R*xGJ|Eb>OE4gGg>yg z<_&2&jdO#W%ywuL-vm~C!_^!5u93zyf-chf^Ss1a=T;HJD`>=l|rV~1i@lP!0))L-4+VRc< zNy}ICPwu_ZCBzPr*7;7t_zVNZ#zZLPq@QFlhN0?qtGJ`k@TcSPRZ~^sTf^jt7zqiT zjj<@TEDzmn3Rjj`x}xEs@98RaPH%2VnKlh`;xza|#N7@~LN5}J5k!GK6{A~@JK8-q z28{sh!EdURr5QjhB8-9X&VvPPW2quS(4oN+2Vle_pDoikBaDAtij>Ne22ZC3Q^ z8e5e%61IcSdACs{8mVxr3`D8_{7hUf8w)QuWzoE|prO;P3#{+1Ouf;MbmY7(LA}o! z+c*8QYgV{8n6np|&(`$P>`~)2a^d%0N%2C(|gKiZ7dnTKV`Kqj^A$e;pIdfNAi9wYoFumrrE& z>MHXcC*kRF9)M~`A@_UCXu?W0*j>df$q_5kd6xTaZw_~#K_vLAG|1i}SKwwiM16dB zvz3iG{RaPXh1&QGSOy#!Zh+65zt*2uInHV;j?QXr8crM5>)EJPFbU_NmtYz2rClTS z+BErU^ZSov>D&X6d8a7^^ndz4Yqg*Gwb~#5Sutn*z{pi|nz+2hgBfMsfGE)HfmoIk zFE5Hc!B==JM>S?LfI~Tx3RTisxv^*hpv1HVv6S7!U57#?q1B_5X_U#L`fuvXs&9R{ zu4ghcy;h}EKUtD*AhYjE;Z@){)nk&ipv~}OB@xSntf2M`YpBl@RnV6ZtH9+Q=&rMr zd86uiS`%C1*L=|{fArZWEa8*6NgTHbfC`5B{CoZr0obt2l=CN4ZeN;}%^zmlg?OZz zMV?q_Ev^lDK~ zpSFpVs<+mZC zpB+8i>23+P(P|m5xNEhx54X9&dULJS>g>7o3Rw8fo%3@>Y5C`j_#2ki`I+xNsDgU` z(?&yV$6OZchnXz<8(oP8zwnn1+G7C_JfL^PpInvS_t9un1II~KKEZGI@i6=YGbMh% zMYrm9Az`&rQTdJ;0*IfRsdTdk<)&X1)$jLe^QlRjPwVCW+=HiG-u>aH`P7%q;pE)s z_R=qV%e&rhOdDLcmgbbpfDnhFQF+KHZ%E&HTW z)mw?#C2^#GLPp)=UR54AEo7Jz!suOm1Bm=Z6|e{SFS+O!8TdDLVLrY=paYiLAx7?0 z1h`%0FR-_;u+FU;CiEtL1b(iG5ps>9f`p&_Q~3MWwc3yV_xlA22F8ndvblJ$(`Ab{ z?uFWSa&ay;UBsokMtOXAr;b^EPxEsa@z2qw-XP!~y~Vfb7Q0+ag`4_u_^Fg^sy_VL zzk$EMs?~n_&#;94lFqfLa%z;7isQ_VgQ=2DhedHyZX|DBfoENa>q^Vy(9w$Jbv{)g z<(CVWBs5dI@Sy`O=T^IERBma!&%kPHzNjT{EzgHlOb~SoSH`Pj!}$Rh=*y?Z(0D`C-$KeZGI|)-`iha#X1UQ3BTJ|{{B>*n8iRfhjzQb0j{){ z?);1jev0Q+6;IAt@u~w-#`}nh1&L+>*Ze>)|5TDh5`ceRQvQOU`nfNoqO|C38x!Eq z0;<*~fhM;-VIH$M-C{sq2*wwHT!dIj3|cF&CdxBXzqx6>;apJV#6056Vs-PREIZIk z_*+iXk*o{G#Fmq58^vzcl2+oaRBKV&;IXEk{b&CBJAsokP4(Mu3qwh+pVfBWd4;l$ zkw=f_f}2rUQB-xndzd9P_UCE0p^W>hi(%}I!&e9!Pb-ySSK*nfmU#nTn(E-vHOyjR zlo`iH^2JmK_v|^%6YEMIFkewr!3YSQoJxw=og2l3a^+b2;(UcXW7hB%)ru8|+l#qO zMPmBb&Mz28)~znpd4@va2GwX)aFr&8Yo!+|A~mzA{@$qQ#a`flt<`@13kU(W4S}15 z$-?DDg}Om%*2uwf1w|S4VzpwhC2?+12XrQ=xv7qRHxlNu#{~W~GvIi~5VTlkZ+Pxp>Xw;`Newtt2n>GW@O8 zYJc$WoNEgg3#*Uii;I;mE?%~{Sjpnz<%)}!D&DY6aUlttSDrYpH1WE!M5`oGYmxay zhw}>#uP-(%6&k)zIpGH{C1hUyyjJ_gU)E}W^v`c*YOl}4Q!~94uRPV|(g>0e%!l+v zlfgBjWd*>9JggLf`pikXlJcIFcqNJ`tuqfPQJI1^^0uXCdFIxdJnEZ#pZU7urR7BS z?9xa4nDKQXoALpstMb4346Z@8Dx@%Mr1?s5+d$gyGyB0Z{vKOKURP5!Yf{5a!|#gD zT*ua^o31fu)r7IN8!`zCogK&4_rG1Q3#Dhq zQ9hPMr6IM#wS9jh1PzNHd*5gKCn~sq3^CQyjhMznRt+lTwsloiL3@)v_ytd#rMT+n z@dddD_y7l2QMU^Kz0hR^DgG1&_P@HObj`lJoRyx38gBn^_yQ4?HD#|nsP-))H&)so zZOMMFO1_}ibm$0l=MpnLzg$H0>2PiuB^>LpsQxA7{Tj4hH!E7-0)M0`W>n*GiY@_s zgtK6Gj zDzi`wwk1i&!A5*R>C-|NLb}WQt}A#tC`WdNz!d48kyd2yxPb+7I&}?5_kK9~C#u&c znre2Hrbub!_?AM22GV;M!z!HS!jE;u0qX=TC~}c;ymGCJK<%QnCJkxitOM$A5Oxc1kNTe3wSwxq zY_ZOl%X(UG&)fKj;nc4)*ES&s*%Gx+`xOeu;H^hwyIiY4Yz-Qx*G?{`zuQ)V8X}pZoVq!eIB`y>}xnmM5kFP%jaheGjNs z%r-Yxa9q?N_A#|RAjG;()wOX=Amz)a`KbQ{Jh|P5>PZ|bGrgBm{;qI-I!1PsUn9UxXn;O{`)pN z1XcdPle=m}u)fR!c^6YoJVB!6apin5ZN=0YIic^!$$Pw&;nDt%I&$(Ik-dUPJ-W-e~*-~hI8 z-_qF6+X>~Y-zRO$M5s5OP&G2qmnKPqPKkywvXjcFv?mqlsU)OfC}`fLgwvGtu*g%P za$d{C6MZ-0XXxS8dqx2v{0aTtqG&)XEQz7z*wum%T&`5X^ zJ?GB(bC;Y%(0nk?cZU-yMOJcOb#m$_sT`DQ8g}*HgEqS79W z0&~aGomP*MQN@J4m?mEdQI8ae?+}a++$5ADQ_5|!4hanYIk0!4tTkV#h9>|@tZ|Fu znG=HdLSHys!uuF-IR@{%wE`mNEqjrrg%`50p%ID6ehLF1T9Vc@e+{Rwcs0T015Z7E zbP6`!=y5Km<4NjRUKP08sZU~0LNOCS{Is&FLc0t|X?=;3hm}I^8%V){I1>jz$g#w71uqSUEA^kOxJ3xCd@PJ---leW@dS=| zsV)FM)5@1|kB+)RLSvk%DytkHGnX$T@hu5#{WhI`Jm+MAo#YgUuqoG!wRsU{?WmP% z8`8SXYAsIZC1U-Zn*u%`Ml;ite9^wPR$8vjFJW1$2M*QuxH85lc`9mLH71?c&$W4% zGHimKsR3>b23JRLL}N?x@?OA;T}?KZxdFI3i|!C-G=gTr1JahaqG>J63w23ela{4G z0n|91BiCkDK&=7L*7&v8Tm5NWk>Q5C)0ReyGDaa=yL3(LHQ39cu^3LF z`(rklbU^T0ezjyUq*p}piP2Nha2jO{?mF4Nb1Jh;wEU=o8=Zm&HkKNc zN-y;yd(HL(M>g>F6Q;;RK`7pLX32CB$ogBvUBBR(m;70P{0R3tj>GTydOTU$BZszV&WB zS>Yuc?j(T`d2j7w)T0Z*v~pDnYU~^9aq?7qbXWX*;pCr5P-oZid-uo$Gk+=ls*y9# za2yS1q>@M~>pc6-{H7RH)=zF|&2wR<)1=t{H+hC%Ed&@mx>&uQEz z)1(Jn{mhMq7|u)vLuX;z2?F!Ml)gZ#h$&+?V zCy%un$~5p$3a<9fGbd3p9Z^Vw_u9<6;9{pRgK(xy_1@OOAXXBK#udIsmirK8=}fIT zxsji@Dguhd)K5a@_bvHT+A@)y%DWi{%y{#Hp!P_@I5t~7rlj#0HtfZ(x8*|AFI*qp z6qe-}ab_HU^?Ch#WF}j=zKZYao@2d{0VN0c;494nS z(1kschfvS3kTL#^A^2tZBei<-Q}#TOr>Wrv6yGLSP*8=@U9X$8a@30%)Y_Lnl~JEb zIOB!rI3IF`zM@xS2A=#&H~$h53=E<&3=Gbne+mW$_V+*j7mWsgru~_^L#Y^irZ0a? zE3J1BI~V=8_dj@K)oYJCkjM~xKtSRBrL>|yU)NSa=AiL4n_r1BX15`)iTk=&D~m9{ z<+tsk8D!WuE&JpWm7_b<(#&de*oA^AOkXqt8yO(19 zi#y3GrR>er=2i&}X~ok{()JF3>04OXblfpQ+40xUU=c$VD^>u5P)D#g`Y1imy1OaW z-RZ{$F2#8Fp3%a%ejRM_Q@$08rQL3-Zscs1F>Gb+0#?o%GtP0WyB4JSp77_7TRTX) zk8a1I5*$1`Ina-1sIBA3A5#(OdyxS|NfQ3=5eG~sZ}F^JmtAQKPZ*J9MB2}2-e;~7 zuQ$@%*>g4=rS5dJ=K5##Z!L9pRytQfh-w5~9W_r416Jk9p1YTF9^RlPlWIf5`9X-y z?itnXeE7(ajeuwWkYYPGgSfbdJWigAYv5w+b7T(tuq_T*<2!isv$*IJ2vI1el8bFs z`F>Fb7F>Q&`W{jo0z-C!@ivEgF~5$c2@{>dHE9?+W#=f!liE}WAIOEl|9t$EU0qCl zt}$ccKv}sKE>!*QcFUf<0$RbnvO`iUF?nU>yCW5Lp@~|9wO#x~1lUU^U-$eo8JzH< zBH`P=)f#-+kt5cqSwCSQ>bG8^b9A%&TPB-nDYk%ou{JEP$Qsl>JjzMNRSRHSVACuw zvVK{$K2f)@VP!vbRs9{e+z>SNLHDjzZHbl(tv9W#NUQX9HM!(#euHL_{#>j_Dh9&T z)DvqMJNI>)1idUHLsDp!dQsMop4W}{Lgz}(!|=M_dY7mT6gG-$LeG`xF@W}&NR`M< zl&*hBZOfFbI$l1%*IJkx-QzmZrisO<`1m;h9G6;#5<0`aNoa`IV@&|WBz8<5^QMS_YKToCC9NR(it9|# zaUu=HhhlCchlkkxOA5O6eJt9qJWF*z`wex_X0Vd-gT~Cg*#OpQ;6+g#dKT5UPQi7= z0W?Ot2PTwi|s8~k{_03U6AQH{!jsG3DH1cSI9rEcmv_7Sm8bx5(1p?s^c_C)c(?Vsc{ z2MO~*(OANi61`0O)#~G4*%n9PK8cl7e5}rwJA$hR`*v$&@cbn(SW1DU%;H2%bj}NK0d#lJeiVU|~FTdPh>=}X~WI;06 zl9!&VsF~&t;?pUaiJlLa_EU7!#+*Ax`v6L2@ii_%kDBIhl~SU;;FHs8DRc6ikWGmhyg%&p77k6jWJ3Py_lC`Qy%nVbrwFByK=*RVB^ z4wg$?_DC@bt(iRh!Qr+bo9FP1SDaJ8Ddu|OHj%fXk${-=o#7No9j(LcP*;ylm7mHe zE|p4c8t?ItmU(L+oFYN@Hua8cQ>`)_qDm%dyN?J8Ur-qe!V&>TqZ*eU(+?AQq(9Ul zY2=!~w6gN5&Vw*MgUMO|JURN{sk4?_MwX*6G=Z5N=s|MH2)FjrbkE;19hNYKaT0&n zh2VT7BscHYbtaut=B8Td#&RH9cK3W?r*D*d*UMnq1A`N}KPzQ`OI%5`v3UC~C}7K? zG-E96jdmE;f#%*17WRngKW>ai_aAQ!g@M8P@?V#QUHw~O|G9BKVhR!q9F`#cC3~bY zNu;pOou%0SocLe$$TBlAfqpSDnKFZcUob&J;zdQt9LEno%0K22e@5xCuteU9z~NXC^rUZSb)l1l;a348{rqb4 z0G+*L8f||~MZ_%)@poHUO-bi2Fx8l<5e!&}aN=ADN-e?%x!XR%6vjEu+fV-$!wo5!SkPwEGDEb^i|@S;<j))tD?Cue51;jPUQCI>0fkBCO z+8f2&tFTz^53i%FhF|SIOn?k{^<+8FU8FmE2}}0Ekw9P2PNRC%fiNiHOvCe!MA+mp z>^bTeV-LmSFM7kG@Exj*<)uj$ozlE~;?HFx+zVF#>#tAGHUReD<6gDRvrT2+5CsXT zD=hm9fNQ_cE}6D{32#Pr2Z~w@OZnIh?AkIyehcwr8zpVth1>=@#v{gsQIRH6_I#vk zb(^=(fwbEjThIM*l@sX>)9l*Ue_Z^c1DA`EvNTN!;ri8_53ckHM^5iD`57v85wo%- zLNDYHlKA2fI2Wa>Ugab*RH%wq+2wVdU6r4U!7hWEyL_6v`xgFp;#fyDUG2%`7>L5f2b2h}`Hm<&PSMekJ8Fp+#Xg@QhBjjZZZUui+q7TvY z*V?EKu><#!PRSgm9UC`{9cF)aL9>i|n%LmaLv(j=0aR{DGnEo&`Hg)1|f5( zZWpNRRZw_)0xx2rPGugAo6{v|$6X800F_VlAR{#m;q|}iazCNt-XmgCZV8~=X7^kZ zN@vv`tM{?uI)LlRb2s*E2?15L?Jp&;^w*If$HXV_XBQ85#_ufutxN?P$(B`hu~{ zOEJQTNG^f%^bpOP2ZdTTejHRpfzI|=5{+6wZR%mtho-0ogac*!>vJ`tvAO|)$cn?* zo>g*S?fVdx_tn8@ODtc|TJ$Ne%R{w$IVo@OyO4%@cZm#YsrI7aoS7oC5IN=Hg96QQ zKNF5_2N#vG1Qg>`64TH;goxuNg5lN4Yvg=2iflX5=oI@fQPRgm3<(YhW{9RR)PR^p zb-UMAi9-Y!#mvpjzL>Ot(J_!lREbi_`PVTGqSE=(ev{1aGC8JdCE}EW4aFH7R;qGw zV`LXJn~Um(UA6J@YH)*ln+amOI-13d4&npoH2Ti*QfZZ+^vNQYWG^*%4l35Rab@`Wyai%n>DxEt>4<+cLe+6ehr~9oF)PyKSzQKW?n4 z=e`McSJlL3U)>`ngF(5NIe| z*9d*|JN6Jgcb5onXs>#XQzRT|*^c-md9KjjbT#teZI#NDr(Ard6F&`zb#9)7c<&di zkC{2Cyf2n@FL!JtGiuK=hZ`phe&D`gw&e$_S?y-evMF;O#h=9jB0x2u!XsPcuVTbZBj0Td}O067UGgSwnRmkd?osg0mFNCsTvM_cV>k*dgaX9(g-~k!6^1EhTH(?XymI%rx#(244+zXp1J%g?q8;X$_7*^r%Rvi&L0 zNqFxy$Z8fs zsZW`TJ&~bc!LMo!MKutC>pX^$Ci@zm8*jOU(u_e6GVvK_bxoqKfc3Jlbh9%#SX5Uu zuZ838s;*R!^$X!Upnoc&fP7cNE;`aI5i}O&igfI}P_nI8i*t zzDO|6@LHOnU8Jfl>C>dF3O)LqxKqx?{?%34`cubV78Z_ugCd-U%YX5JVTfL_`_U1<|5Ll<1pAD_v-er&?0W$a00RD%-vEF{a%bb;-btEuW6p(&H9HSsw2CK3 z2_#x8lXsNxcv2vAZ;`tUj{D^VUn!yoMe)c7{sQsB+K zXqm(pWX(fMn42H6XU@7$c25XBY-4IeW14e`TZuj_@w|Wd&12|9t|E26Cc3V1CYvQQ z)iGhD_@GRM{<7~l*dabnDHHo^VPj1-{PUANgXW9?ouRLEi4UW@0}izf={SOHkLS?F zq|6<*_+N*GhZ*g2o^8+`zjaM0?+HB{yOw>CzkT&mz{)_8aOZPofwL+4lLg!pf~%z> z1=R8pF+)f&B677T3jhd^hz#E7QZJRQtmO1r43v7AtzL=c6|Kr02L&)Vcj7p1I4{29 zzFYfxm*xBu2B{&blBq<==Z3E0q$g$<#bM(V*lX}jxwLX&pT^%SY6sWUc3KvcUxVDc zf*=!BNp?}9Mp5_C-oDyA8^dhPizFziCdl{8(hg7R=Y{3*{m8U^-d(|RA#rS4!@(hU zpS!Zu&77X-$F;mrDAENG4CRO(!ux;M0RV)^W~BF=$vZ^98(y2}{2Slb=L_JKNDel0TAwRF!+S%G3;x+;{$X`7) zPJ35j{lVILQY5WWXhz^jRAqNHxqO<`3VD#QiM2SE&q(>X8 zCpK?*gque%xp~2n?{H--o)J7KtC=lQtX;BJv}@aji<%vR9)S;gr8JQJyJAwPOs=n zSCz`V~{(Wls-%x+T7?cSglzPH4t$ zw!+r3ls{C%QXs#B{rDqSYx5a7B%wcR%{^k*oj+#Wqub%P$o^;JS5Nd~vUyqv83|Y9 zFTKRuzTmy6`5jG=l`iyma*sfqDA~6I+*kL)pqPh3JC&I{KzE`&oMoq|>WbFIbu*ya zcT@TTlkb76h_=eu=9p7f_BizbX(VJ@=owRoJ(a_dT2_;VQoHSW9GO$OM2Iv@6QL;t(cTcG~gS)I!-lTb1(7I+!a_f&>1?grLiB4YzK> zC(;bS*%Ph9>#3w|_~Kx2P!L#AQ4uUMhHdqjE3*C?8hJStI}9Pvl;q(7Lg@%m#|*j| zavTs50AOO@4a|r@4CLhXulZKkL;?e#3G4wIYctIM%#t|#kKF3(NB!@|#eQhOM3JjauE8u;TC2VH3Q`iKhsHfP>-v*ksM_}dXQmX$r< z+51SU%!D5X9F=I-;kaAO{{Vodv9X(l_fz9B&MZ#-pOOk1*4gFOH5{Qd64bvO;U82_gF zD0BQ*(kn5?5_H@O>j1{cyEibdlifrb!6mhZaJzVk;%9?HzVktgR?*K(V8mpRzdQOhlM9~2 zm&6E`(e)gikzdp3a}yr$wA6`LX$vXC9pL5Dn?+d!TEB&4!!pL&Chew#H z(>SR_HD|^?-mj7Sv-aDH+0#!H+l3&z?y1jGF#(prthP0OIO+ z(c&w~D-~~>vupib&TT0urxpQ*;k5a6rGE;ngT^DF#=VNg_Ky6M)~p<=N)<`f zUi6u*=6*_^6mv!O@OrGxrA(W;1?B57=#zN6brsC*or9ejY)$;KoMMOwF6!n80wzRnBvJK zRWAK0`W%9|39rI1ee)B#uHjEc6o%L{$m1-^Jv#d69hD6AA5yQ-t!OI!)Hi?j?tsSl za8zrP?T4Pg*;$bIcjX?uoB6%B{Ri<&P8IG@o?Dh6v{n8u)yRZky+);_5&&>`?h?e0 zKpbQybFe_RENRtxHHY{gNgwt?9&K13-EmNWDh)D*flmMSE0e3vGL~X+l|PH(8_-pz zKT9v};a3{7DpwvbL+Mw|;ei3|nNY7-y%hgm7DbL?Ft(PZw=7G-N9S=Y~?_{zY$dW@^UbvK0S$I4R&<@cQzpytF9Lk`c&)}tFVcwLaqa*lhS>7jh!<)*PmgEM8SI>G zycsw-m1Vu1d>JGev6TP3l7H2e%%w+}ZIIRS@iK zUCLWL?O)2j8W~dnT^_slG(9wwtS4DF1a0NI;yMK0lUjdWuy~m^Y(Svt#sg&X;3y({ zVE>yx#5~v=|Be92A`n&9>r}Cn4t(a$Kyx|bhk?9ggX}Gr?>PU#IKud^Bm}T?QO%wR zznSj{$l{j(={MxVpXrSv61sfairZ+_K_#bb3-3D)3Se-Scs|?+ULr-TA<5qU!6)7z z@u%7~Ez?Hw{Avsu_VIaJ%Zsn71CQx+&zM|q6a))TZvvy&gnWPWM3SuIj)3DMg#s!p z)3_bKn}4-dY-C6$ykxFe&@&7<`1t8!PP!^rbxz}`m87m*n|Tk4$OOVkWDN@drU;7$ zWdQ&(JA_Dg)ePZQgi2GedrE!$7xu{~By=M>cN`R;wys5gM@K+nXsB$}C+3gL0w(zn zqy-cizts0gkBA6~d@0pKXU-cy?8%Eap`khGrFu0+vR3paI6A3q#IKw{EWKoTz#O)w zTONdvgyEvM5Cdra%b0;29>*D}!SMh<`5b8>#02r&Lwd%wC!_N$`GZl5%J#nJEd}(2 zO(pUY`Jcex)5hwa3ra*r^lX*^dqEoA#AWY)8Mo7#R4*3wt6Zzp~|{$e(xNg6p! z!u#n=o+m@#l>*d;_tdsD-)#2td&bT1l% zP!IA%p5H;_Qh|W-n5wdQvC8A&P3HSVFq^K4t2*L)l%fq&3JoScp!p}FEn9ZSUCBzM zsYM`F4BtAA0_H626;>bdmqS5$`2mtbbP9Z;G@YJ4A>E0l98%N!R1-l`Wv$ka)??)4 z_a@bYrw68;KQ;$y7LG)g(GK)R_)JkLV6?xD=e1-|#)nW&Cd$dFZ`8gS8@64Y+An)5 zlGH0%@8&i1jlxfiYUBF;)co;yNJJEtpB-)h`XHvTrkBgPL;PjhDpP0=#jbT`cA-6o z|AQe;EOuJO>az-0icou7s%$1HJh@C=&oIG&b^=BcioKE1_l0(u31?IK*f)54yAC$- z$Du^cxA)Y7)wE*$^@Q0udGZ$ni3%|}Y*N!Y?Ds$T4TM?7gdHSge4n&Emy=QIh`6T< z_`RcvS7VJA9hdvO>mibD`75ds>{Oq=75Dl@G-d>HIIgK~wb7eyXS;f6v8NCWI*MuN$b0XG zj>?WOo617$73=Dz6=|uRU&|pQB@cp=#v$?xYDH{UfTi*m1t(|M#iXd9wCJgS&gIE1 z>2IG0&WL{zZC1jYZ4+sm%pH3vAtAP7U-#?YAIZ|S_#o&9OZ4qI!S(jqc%|y*RmjWe zooPl{qu@bCT>a?cLB~QvA$JjXbgZhP*(U1V&x^fKGVG&7?s+^SmQleU<5XTckzWjY zCbFs+R!KE*$eOM`-&oftCQj;5n&;FF?&zdcc+~p^1Ox_Ld>YA=`gD!=!P8GWiD*yy z+ZJroWNCYC{N`liB2Y}I(!;CzSGVG$EQL$Fr(6XlmVvyz5O&dJ*M`lnuMORqQ~kq< zTa#ET$!yIF{6{f0OCuj}XV5Fy9SEo;Ty*$O!p&2`Gv;BJ2l=FoW0`T_l}?6uNczAe zbB4AediWZ)ZjtIRcnh0dOUN}Z)`{kK;&711-yBl zsc%P;cQp@y-tz6@Df&FzX}xL7!};fCpB}K5Xwt$RUvGb5-s`S&`WE+$RoTf6MwTdRfrj4jZ`9 z%JvO!l8I9xygzaN+J7}Tl5yVWlGQifd5M<$*QhK|EB9wLf62DWj|7ad&*R+g5hS0~ zO~39_USwg4lB68xTi0`jD*H;5tX&aQ7M7_8J?7WX;=H&yyz;mOyE8ju+`~}&6<5{H z)w(G*Ej=eG7U;0!Bxa|59I78riPhJ7kE?Q@B2>?0ZWNbC?7B|xsy13nn{NE&q2mf4 z7I}0Cy}nw-?J_^TpZoo1oKnP%4)h;aU;Pvb%KdhOJd_E~QAac4W}*D=qDFqI5+Tp> zKaEX8SXW#GWdUjx@DwCIy!=*5Vwr3m6fcnu5RauK-cWF8sj4- zzK4>A`OHjp#*AzqnHyA+;zC2;Q@&x7#0`t~@r99caoo+{7v~*k^vr4`S6yr|8;E}qhUw8?#k{5VU zVaY0su5GW>Bk4$qla|#rND_+X9E7BJ;to+L5d?8^9CI$rUk_i`%nt!wH;Y zKQbGMfvSo4=atN;mif7E(fXHFm0iftlPOh+;cQCo)H=>a6S{rpt(h%L~%f7GnDcvqfXdW)lN`Wr78GIIBml- zUo)%rseYoDwl7$3EJ=QC?3a=V(mbn@~j{P>Z5CQJ!xUy_(DzfjS~T1#CNbk#52?G z2w^>4hM;>I-Bg3ZaH7s~Jl6Tz2X(gfJ$p;RQXe(>x~9FbH?&MG<7hWzZBo{Jo$vje zj;v+cvntB5#Lq8tSNvkA>eNp82a#gy<+v6f1Kh1MkUzp*& zO($ji_Be_O@7vX}2UdJUtUk2kLPmk$JeIQPeltNd9^V_XKSl;oswqx%{n2yF1FK^* zQzvsRMXnxVY3xZ9gnTbAB&tY-jBsFkYA=tO7X4n9>?){P^%2CY59~n+G|!5^&io=< zc`}^R=SUZ;w4Es~*heFohc>uMX@9?kjH6Q-m$tbmvBi@{g}4~Rg}-4fhKuDCU8NkG z8erK~mesPM?;UDW#oq>mYb=x()Q|FJ=vP{t(_jx;*!0)y)*cxP9q)0@t2^X9_U_s> zKxd08_crxbJ$E$-{4j(F-GABvcb9iER_-(WOf^2R=QA18F^h8u^}l{Bq=&}o&v zq?+pynm>v1sqJ0`|I_YAAiFRtTB?8@LzkLiv|4R5r#P50%}=1!svUYn^03DWBHD1n zHGsKhwsx}rrAwKM!eN)4U}lBlMo@F<^46omNB`R8SlsP;b=I48CfEQE0vek%4)TIT k-E)IhNj;>ZOmwgJuD2P*Zm)gM=KESM>jv$zY^C!500OR!E&u=k literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/misc/_find_curses.cmake.i b/mk/linux/mojosetup/.hg/store/data/misc/_find_curses.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..030a9f8a92387b028b4c3a468115d6d3dd355f2c GIT binary patch literal 1800 zcmV+j2lw~@0RRC20000000zha02>Pc0000000Qj)|NsC0|NsA8Dp?OPI|4^R56~J< zSr%}!_>ETp00000000000001ZoXuHFZ`(K!zUxWG%UF zPX;Z~u@F66QHp9T{NHzmdRP+aSJ4I5mpIbQH^brZo8kC|ydz^j@<_U2#LW`UIPoJl z$UH{Ye!vKYcY(i3XtL98v>QT3^OfPcwZsF>O$BK&3G5gI2_t$H3E=WSq&??)5L`vigqpl8h05 zU9M`dAwDPcmHGi)1+1%QDHNltG*2K5uR}TkbPlHo-Z$JAmXdXxkQH@ba+-LYxN*3p zslW0AKi!esPdDVl;14o-pf5~ptqm&GVocMh{K0@bv$;uD3;>zf$MM86mQVWVvwmmx zZxK4gL;+8&a*F|Pokecy#}O3A}Drn1O)V~?G(q-nP4^xMH% zTKa=YdPOLEw?e{FibS={WZduidaDs~20ZUoLMQQ2%(M)p4NWY+RO`1Bq}uG>@Bb*^ z_kems9!%TDz}b%O%x%&u1b-tvQY*D}_eX46vQgEd)K)EpSxdIt2qh@taLi^aP6^M-lnvr%-^Da^;{*wgY*@kuAT>Fh zk4BQd6?}$@RUVU^?;tt0kneCJ+zoSIFyYgh4v{dCax1j<0qE0|1dQ?&G<;zyM-Paf zl2yX!3nyU0V(BN_xGmi(4Wg_cm6Tce<)eJ%e-x*0ftGgY*cuB*nZ%+{G&}_*bP!$U zyKof;sQ(zb#X>8kay4jn9cK}Qf-{=9o2C%3-G)(*C15Y%V11RPfW_mGk({l_mOi8T zfX9SW@M{CBXRjJOR zmJdRA-~nzh{P6z$hj;J)9ESY)J$(IZut~!J87(GYS~w{pRD-`26dtG58k^y(*9dQ5 zi6UM!L{i%(Z0-LbWe}@K<+KhJfb!H2f-ZCoDFT4Xfab9^&4RRwFI0jJA2g1XD(O|# z0MAlc*ZU*f?rGte`NQWa$G4+eSYYXD?Oc0ce;PN8S zF;Pawld0LSjW#>9I!({XE^6VtDgC57_Z^?_#X|+MEW2n6SIBp!Biz7Rwj4b^JUv>b z<@A?@6y&<$C*(vjBjkCUCz`M*EumW2H3VSXhz3s4w#5Nb1-9)4{SVv_dbkGZ#?U|^ zkBg?B0xJu&@#Ab{k}v~$LdF0Q;CGL3zhGr76LA)JMU4QK^#czphmUlTupp)$Fs6Vb z`S+4qpg_DrcaCi+$DXrYX{!r>2(%QnVgvTwPNdqIeXlsJI-FO6u`Ey=`J#ek)>HRm zC-&+bddaxhoI(F_G|z9K2#Kpnw<2DjO)~TR%5+j6vBR~c`qX9X__>ttJkm|)yz;?t z_jYpudDNf!tc&fupIDCFh(aBi{jf}y-uYN8w<+d=>6qx(hDa?|WsNbWH^~ zQv;6nb{ExwBfZw;!79{`RT52o^ESUaGre95IJI=+Ad%9%BK+HHK-!mX$l!<0hyspC zc+vdhi0*$k+fXStooJ{^zQMj<7rrZiZ*d&(>zL(Nwrv1*lvHplFIXiku=;2xPYrH< zTm|!-Tr-R4%EtOWdo?dfJY7LX+i8e$=bnhSZ>DT z=M1-^+OgY4huA$O@fI>CqM?{!ylIZsH3j|R#J#rEB2@vmfhrLcJMi~>Vmi}rqHfGg z_-|$!P#m7K5Q=6o)!~OpZ87z)rnFE?0E`9!Y&1_{cMmCr0wpClt$S%!OCM8Gl?VB)q}Iwg?0_1%pf!GeQ9V5zCe?2+ qlFN-Dfb5v^WxM56K9?R#{q3>$M_*W{HO~MaecpTzY4R`2^+DVeRd%HS literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/misc/_mac_app_bundle_skeleton/_contents/_info.plist.i b/mk/linux/mojosetup/.hg/store/data/misc/_mac_app_bundle_skeleton/_contents/_info.plist.i new file mode 100644 index 0000000000000000000000000000000000000000..e576eaaa0cf1f749e31633868deeee43e9ec66bd GIT binary patch literal 445 zcmZQzWME_f1IAhg24-Cdn`z>IC^*Z0AeB4rqY%4i;CJyWyEbGW<@f|q10gHsv`+H& zZ*~xAz5Ywv?OW=rV-n30EK;5s-dv_HR~>xl<(`;k)Nl81uk-C29&0x-pDRDN)BJk% zt!=zf%^_1ZyFb4sYsDe)P&D=HVq<-`=IZAs_kYVjzO0kzMwG8w+V_C57&&CMjM`MSGjPBPG# j^fJYg^Vr8vs`HL6ci@-LJ9GFq_nWS{^YnLq!slaCaUiWpz6U?sbfHZk8f6R F2>|V47Ayb& literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/misc/_mac_app_bundle_skeleton/_contents/_resources/mojosetup.icns.d b/mk/linux/mojosetup/.hg/store/data/misc/_mac_app_bundle_skeleton/_contents/_resources/mojosetup.icns.d new file mode 100644 index 0000000000000000000000000000000000000000..df3189d1ac22ee50cd08f901f4655973b5dbdfb8 GIT binary patch literal 262928 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�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

      aCoYBJqB8 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/misc/_mac_app_bundle_skeleton/_contents/_resources/mojosetup.icns.i b/mk/linux/mojosetup/.hg/store/data/misc/_mac_app_bundle_skeleton/_contents/_resources/mojosetup.icns.i new file mode 100644 index 0000000000000000000000000000000000000000..39cc885fb5e57d4bc886128ff4bf9cc793a88fa3 GIT binary patch literal 64 zcmZQzU|?hb0TyNf29~&VFq?sC;(sXEA||N3#cY|{M9D)s##NUM!ZhukLexM=01dwp A3jhEB literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/misc/_mojo_setup.xib.i b/mk/linux/mojosetup/.hg/store/data/misc/_mojo_setup.xib.i new file mode 100644 index 0000000000000000000000000000000000000000..5aa0274137cffd6c79781b187085dcef8eff0b62 GIT binary patch literal 23939 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/misc/find__localizable__strings.sh.i b/mk/linux/mojosetup/.hg/store/data/misc/find__localizable__strings.sh.i new file mode 100644 index 0000000000000000000000000000000000000000..37b7e5e61611df03d8a37a17e30b8a5d76081efb GIT binary patch literal 204 zcmZQzWME`~fF2;V1j1ze@E;0T>MvRst~FvjvxRTM^|cRwTdoo*f~p5o6?0O%9k~t} zh`4;WJSxHM$?aJn+f~8)+xtRL&O+bhOOFm!l|R09b5Er~vCWL%FMOpWs*l(?RC1{A zbXYn&Z$|VIy}m@>WtT3O9hUoL;kb9fr!DOsZF;+`tS3!M|1{|o&#qaIQq~-pH*H7K o{Xakc>@GWO#NK^qA)C8j@D8)@=0E4x>QsKZ!*y)m*W0=#0KytuNB{r; literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/misc/launchpad-import.sh.i b/mk/linux/mojosetup/.hg/store/data/misc/launchpad-import.sh.i new file mode 100644 index 0000000000000000000000000000000000000000..cafc38bf0a612ce94570fa6c8571c529e5e3f0a6 GIT binary patch literal 427 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/misc/mkdir.cmake.i b/mk/linux/mojosetup/.hg/store/data/misc/mkdir.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..24f26d8d7f006e5f0543e3349366336948ec2f3c GIT binary patch literal 394 zcmZQzWME_f14b_f1|}IO+v7hJT#*d*SlRM+q02)C^BXtp_Sb#Xu7;?AkQH-c1JCC- z8Hnur9A4wduNOEi$6EJhqr&YIF1-&9UJmk}>XzZFX?*O*{`IV>Dcis8{reMiY#k;>C$*kDX`gxV#(%E;%P(s2TsoRn zEH9HBojpfFL(nN}MN~ufn<+X6U5^^4&EUw0%?u7KJ*XgR5?H;=R$*c?x1DCu76ZLA zIj*AiS;6Nm&*opbU@6?zIcZVGN$Yd7C(5lg-tg}E>C#`fY#5WJg(u{yc1Ib@be?0? z?42s>ljXKGBt4^Ztzd9Z#x&CdC7XMg>f1^m)wevZTVek*?DDGH1?2}51dso#>3XP| z@vZE4{A@LYnNi;PhrKJ`ec63)lXI=!qkE^;_n+;xiJCRp(oaV1+BFT&za?{Lct<^s fc~jllCeFNX7yr3x6K?nad@sskpNrQiFPj4ZmGQ7K literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/misc/po2localization.pl.i b/mk/linux/mojosetup/.hg/store/data/misc/po2localization.pl.i new file mode 100644 index 0000000000000000000000000000000000000000..346972c549121eca6053e70e4c3756f4c681acb4 GIT binary patch literal 2964 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/misc/poize.lua.i b/mk/linux/mojosetup/.hg/store/data/misc/poize.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..4f0158c7be64e9f1b49d6510cce70c93437a838f GIT binary patch literal 2118 zcmXw4c{~&RA0Lq;VeWM>Ppgr;Im#8rFec`jSPWwmvmC!{?%Yg{EF~jnsYazaay{&E zmMo+mEA`|^JVdS@SHH>geE#^nKcCm@{dvE?ukRn94}cHA2ly3&Yyd!PaKGk1@bll$ zKdkj_?*7_+)P>r2=g?LmQXekm5#~ zNcR%e4I~ZI{r()dDGSEXQ~ay zFn-4V!@hIbSV(7&k2<#Mb_GJsI6&J=(uPSjJ z-Juadf{sS8fec&DM*5eRZ)@ZQ+n075z>T2Y&T#-#v?A);}Rcq79J~7bwxnt zXc|thJ#Nrd;dq_2AWIIq0=AUe&%z@#6|SUod6pfQRdVCBeigC|yffRP9grX+msm4W zme&NlTX`?Yi4)Xd5!dpE9@cy`7(uUEx%MK%E-hrO2sOZY<~XbKKzS-()Yo%yi{&Eq zm9~hdcJ-&C{hF8b40~JA^BzH! zl|cz+0GXSjmRlU%$Z&Mq%WQ@=(^AjPzy3-Z0-t+0620rCZV3nM3D`3i0Mu80yGhqFPV3M@iWYA82UlsDV#QAyQ`@7F3 z^I`9mWcaQ~E@!crfUg_*>B=^>iej>LC93)-+%&Z5CvIy-tIHkCLfuc2N2mX!b1Z zJK_2e#wgBvMpN;Y>8OJ~!}W9NE1_lO>5|FJocpnxkKfKO^tQD{g(^|cuWrQ6eOv5q zQ;Ke@ve*U%4l}2{iLknfSjkttNzZ}V3+L01P8jn|%Dc5Se^qx!Wj&g0t?ZPSaJ1jz zlpC{qsO9(MT0K6berZJ32D1$3nX(K<$?>|Hanu}G9A)EajFFK^=r!tqJEP~`z6rLD zmkiiAfD;c+);FEWa1dE!?>cURM}>h)MHM>FFBbH>4gL%VTztTBGtZAVPuSeJ>0a6~ zJ!6=V=O}(u?KZ1C2B-0hjnq)6Ixs~1}dB{>| zow7T8_KmKHvp1SJysAhSZ8)8irJ?R|ai)I&Qq!n6xQZ%f^y(UW4qA@aV+!pK(_gY1 zPr>_Ajt}3ui?V4sb@-(94V6T#zEUJ;M5dimd7)&siiyTXOO%u@WLo#{AU=l7rL=F= z2CZkPrA<8^2iiJZSP+T5@>=GrTQsx2pxESQu}Q91kL%DYYGCqT3foKMsf-^O%|`{` zvsWy>UJXo@L{{5Wf%)`S&bEiluC?Ada@jhU^p_Vdjl_Z+-jsU-p?% z#UZ&vNVb_|&qldLX(wCCcoz3r|9ooM`Ld2kuqSos}<|YF$Ov9Xu#p~Fu1ShS5NV_rkOptS@ zmAjFOO_=jd>`3#9Yfk@|9W}=D_uqr2*(aM^F4>g`=UuY_+cuxg?a%ug3KmbnEa%R< zPmcW%ALfQdR1~LmosP)jNzFDVP8^J^`?wRwRY~e?jd9c8{%f_i>DsDR3wf|FhMb>vC?ICnoXA_dIK`Q^3qBKlbG2kdH!=wguL*zwA>?rQB6K z(k^~7v^cQK$fC$VYpKzNsV;dNE_x|UPn}ofy(l3xGsiWYwf&MoNdC@`4H3Lq9|JGf z>YiRYS9j*Q@5iofo|9T`;&W`Ns$rCfdBx#9?3syk{pQwL#jCu(uAGpZ%&|)^G*Gh7 z)^z5QLvA+}&YGsXy%g>_bZb_oAFu!VLn)T>?EhH0Z~Rwk{ucEAoB8=$d*j|EN}M@# zVSe8QTlVYayYK5?S2K{gI?--ddSTX|+4uGY)}B9fZF2m)tr0gLdQHERe5h{j;}(^5 zo4-Cj;xA@+r-Qrn#M5nC!@lQmihn=(Q^w!JUg_bR>1%X~1dp=hT`v8{Fh_c&Isk*z BzXbpQ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/misc/shrinksh.pl.i b/mk/linux/mojosetup/.hg/store/data/misc/shrinksh.pl.i new file mode 100644 index 0000000000000000000000000000000000000000..3e90424dd86d9e00c0ac5c663e73594a0403039d GIT binary patch literal 876 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 Ap8x;= literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/platform/beos.c.i b/mk/linux/mojosetup/.hg/store/data/platform/beos.c.i new file mode 100644 index 0000000000000000000000000000000000000000..5c14fbc3ee577e30f1f5f2db316e6abe77667bf1 GIT binary patch literal 873 zcmZQzWME_f112d32IeCWHbdrrC~&M)sqo9#oAN;B$hzO@v-TeJOFRcv1EwnGv<63K z-!>3gw*HqWJKN#B-n)9!mrZ}Wa4~;tiKa?(n!ek%eqr5BDJqt+62ISDPnv9cSMHhk zWB>a<^(NIE^1AzuCvW{jCikZc9yOo*`Jl!`B95Yb~%Od=a^Ela(?xaPD4nXjF|F;~d`l2PNL;s@6bHMyiO z+WnzCt!l6u9OCCoV{%@#c+YjgG)|M}x(iCYD)2{CQG$oumAGXt;7CCxXgruay2 zGTAGYr`aC%fmil_@Dc}&mPcvgR>kUEtIm2aUi+0fOE3wC}!_>0I&c$lY7|o7Ren&iVEDg!anl5W%-|O9R&JY`h%x zkxf|O)WyIHY@vp~Pd3b(Ct_11G+|Lgzk=!dBCDA(t2KO%nK#N*POeyg!Ff^J3I4l> zDrFe{OIYzNesKEw%Pr||8&~j4R?n9H#+_l@&$M~J*NxcC@(NW<$4fI_1}sPqh;Tj_ zFI&4#bl0AIw?9s&HLSkya0)3{H14k1SF>lf@8_eRUfRXqvDX)>c>nd$fALRSw!3zslo!^z{q>OB}?fY`p*MzHuEWd4SRs5J&)1 zRwS6kz>o!^L5a&jTWc}@gq_77C+~8KHoms3BTLZ&ss@?zgK!wvF)%QmhDk6Pfm!81 zbI(J?b^>Wekh%Qp_*jfm4?egy&BmuXTx!?%2mh>K`apEWoaBTAp9F?vHqEDJ_B@$$ zX-Wv|>?I+8-&|R==ZZ}2|Af6f)_QDgY3Uqk9S^lmpZ5v$@H(sCr>}d?(^vO`##!xi zKIgrC15cbh?;U>PtdHI)eLvrG=e;$rJz4cEh@t7xo Ic$-!Q08M^&WdHyG literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/platform/beos.cpp.i b/mk/linux/mojosetup/.hg/store/data/platform/beos.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..b7d2f28583d94e6bdaaf9c7b70f8bb4fc8e67089 GIT binary patch literal 963 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/platform__beos.c.i b/mk/linux/mojosetup/.hg/store/data/platform__beos.c.i new file mode 100644 index 0000000000000000000000000000000000000000..8514bca16e81aaf9785dcf64d206d856a6931b42 GIT binary patch literal 971 zcmZQzWME_f112*D1{P@uo8icRDEN4#d0WSd_uuqlvlSGRF07bhn79I}2254VX$=m{ zzHK0|Z2d1$_U6Rx$2_MmOU&Kg-e)IrYv}}@TYDuUt< zd9u(m?=Le>>~OwtM>in2@43RU)#y&{q;$Cu-)%b!uKkX9VCK28;kL@(7^81)k_)Xn3!XNIY>TP8 z)0`z^v)FhA`>Lnhf5Ho_x&^mw^Ey7udTslL;+KA)a4$8}=O=?l)Q8g;~C4;uJ8*!1NclKk=K z>AQ93Z!tyQPmxR2yQ#mx^PTCLe?||@-)?KT#C>DC^TN4}cFnU&ul!h@^d`G;;j6iU zb-AU}-qtMR<5Jks@H*>TNxkjf)zAF-&9DA>Rv35S_KE5L?+5r;n>bCemXCJHc>VF} ziFNPKz48CKVe_8}#)dK*%Hl3ZrOo}AmH1+2rnmI1RXeggiYL`Af7H9x-oTpU?d0z+ zI`2#_?cT`yC0{b*v*d5yNUornprivzZ$Mzhz`*b83T literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/platform__beos.cpp.i b/mk/linux/mojosetup/.hg/store/data/platform__beos.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..667f151e5f1b69fd81d384aed7bfa3936a918271 GIT binary patch literal 1405 zcmV-@1%mnj0RRC20000000OrF00jU50000000Ghe|NsC0|NsAN&RP^KvT>O<;B^i_ zgM}E3L8O-e00000000000001ZoP|{HZ`v>rRlnx1IBC)rC#vNHa7p;n7~y?{*{T!nOHf=IE>P92k_w zdX_2dL9Xyw(l?OWd8UXhjRsbhO7iA=Lgc`oDP#`8A%b5aRcz#~xfYtsjyodLwg~ zO+GKaOmDB#(Rex!kmjlq2p7%^X_D2aEhxkO16qx$FAKKBe;rQe;Us!AQb0E>RVtJz zQO7h(=Yg-7g>J4{LCYkyr>miXiB9w@0(#n_ra?*qN@nm8lwl&Jn@Ww28)oOcDUL&v z&RU^`C{r9r7cl5FKzJ-&j@5AUZ8B-A)ZGTCQx|~w&T#z zCO}(3W-S?i=@@)1(Wh-Ps?Usy<4w-SK@SM-!6=>IUyr7fba6i$r;G93q6cq-Ug!UT zLfLK*lHBB2BU~AWFF`iGE4@ACU1yzL%|>BIwQ`C!HLkRiOHFT{GPJaX4BLk^C*d|- zoHphs#ydyb;;j%ZB5FY+3;3%QC4|nvrE3HG6^Fr*B&wAnpeXBojXd?gs0000000000004NL zjZ@uj(=Zf{pjUYb4n;!gmL_n!&|Q>EDv%~kNT8|8&uL?D?8tVuR#RSrC+64=?V1&V zCCAP=pTF}T1a7VT@#34`LHdS?l6Mut2W=D++oZk@kFo;OylvAPsSPTtqG!MSo=k8@ zLIKl{Q+Na>3=}B!n&+J;>!p$p8dX$Ep$(LEuHd3me3n5U{wFki41tz5xnU(8sw)i{ zdJ1cmH1Ua~VGTkLR$;GA-hRJ>g(LEG?grD^nD#17r!hh z>o1>XS=f8SL LX-D)MOo4z;6{(H_ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/platform__unix.c.i b/mk/linux/mojosetup/.hg/store/data/platform__unix.c.i new file mode 100644 index 0000000000000000000000000000000000000000..a5686f03ffd3d3a6b63e7d57956c09c778b68cc9 GIT binary patch literal 24638 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⩔g)RYEzY*N!wtI~q%+kNkr1Ooq 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 WH~r{?0;kWPc_4KJcEqpe?!N((+KYey literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/schema.lua.i b/mk/linux/mojosetup/.hg/store/data/schema.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..0eb899ec713e1b3fcec3f866c4d0fb2fd18c2dd3 GIT binary patch literal 7365 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/scripts/localization.lua.i b/mk/linux/mojosetup/.hg/store/data/scripts/localization.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..eb888406b86dde321b664910e4f1be389234bdbb GIT binary patch literal 118509 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 =C0& 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

    1. |sR#o!yKFyRaGT9# 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 GcazJ9O*E?j literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/scripts/loki__setup__compat.lua.i b/mk/linux/mojosetup/.hg/store/data/scripts/loki__setup__compat.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..c63cad463ee86fbcc2a7875f84969c64e9df100f GIT binary patch literal 1774 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

      OvQuJZTO4d#; z%B&s~L;XB1NQN^76}t${WZsZ;l}Kr>Us|*a-7LU4sUvE^Z?(x?#&&>KHwoQurdYED zCpRuUj&Kd}e3dP>trmziTsgpfp=BPxihbloT0y^relmB6D;?Wh>i2J0kVIKAx^n1C z=?8X5`MTEwc}ySMSJrCHN5B`hn0=E-u<)wk0cow?|`adT1@6My}*?pYw?buMa9aemyf9? z`G0XwIjt3I+>#FX@kin45Q*c~5(xMtr_c1c{d~JdNM{q|V>0z=v_r<|Emvg#gaJS4 z4}YpUTk=e7&llZHGRNG`lWNSS1ri`HJK$BtMJq0QLMa`JIDD%c$@g$32-u>RqK36T z$tz$L7P-lt!uiULfr^W^2;Wa0qNPKa`7^M4LVlk8Y)CYr%zWi_eR-^h1I8#DefZp!(j9vUzInwenz#L5o!s*J~Z@N767U0kAvak)0h!lkn;Z zfkb96P;jjolbO!A96U+q3TJ{DMUr!HHFbA`R+c>7f4H#o_uYmOtKuSM|7yGCllzOO z5W}9NAZBXpOtmE(=~%w}8lXS)La5QmhqgP(F<7Au%tO)85y^u1WSMEBXZ2A`mc27jS*kyTYnpM z9WN>KpvAKDqbtDuzTHZ2JGFrQtx6R`({!qg-go|~(a;FNxg8r9!13=76rfuNC1X&O zhyEC67Qre>X?-H6KEI)w*E&@FY#7Idt3%PKtrRWz-@Z;QU9jNNUwK4*jUIi5t0M$W zrrOd3vfvlrC6^0-u!f+YCT1%#^}0!1w5IYUG9q=|Y{UTtl`~~`Z0R#YUy+c8`7

      jFZXhbuIx=SC5+qBn>am7juR%w( zr7D+e&Evj*`nbf2O;W)8>}MO&bU(+1YTjAAbd8#?cK42v*KNXL==vM+r1^iC3tf7x z;C+)&Bwf0auj5u*y4@r6%_siYuP^1+jBbb+*w@f>cJqT!{R-Sf-%DwAVZf9SYHdAJf0{1@7<3H@SKl&>s#rc1X zBm43T*AbLP6SkyJwGwVPF4Od~Pd06_^?PN@Cgajn=#OAm3Fg_&E4L$3rH8pGy7*ef z89XNbeb&tw^362rAggUHO~Vt7|IzD^S{O+1+>5#OU2uZOlyw(Iqke6*^t{BlCPYV| zZtmuS%92N*XNyyDgaz&2QM2N`5h*H^z33vk z{Ue@3lP90MO(_%<7@;G}eTfCZ7i}tnp`Ei5Rdo|nvU0VPs}pmwld~!lv%p#506FDk zZyt}az<{>E-HqP>z|p%eBmis@SRn!;kGj`Zu(mzUQ^qsXM}oZ$vDePR=Km$HOjF_W zx;V0fYjY~wayF$k|Mt1TN4iq!ny9p7>QD{xbYWpK1zu0TR-LZ3Uyf{DQXkhJ$cWoX zQHF%J;~-(C@&7_dtG9jg>ZT`2_qDXw`d00GSM3YiArWP?_X+K#LlC2tR-2JtiJMV} zHXnf-{JX2a-MStwBx}T`cC~sF=`YSDi;q&)U1_v)dSd>di#BN?UqJ%AI{&>~|&scBPntC6Q|r!Dn4i=f-jI|}C``&p!DaQu~p z2GdOj#BU|MC4Y8I=FDnpcN-D7B<$3H=`?wjHe-%lx}JzSG@(uM?0$%NGjJn6%7C=2JY+9>>to>=W-O{7>?=V;T3iSPqh?+z~As=rn&)_2T9NAs!Fcw0C z_M*Fuf^h#JB)3=hwgo`j&uaBA{5V0+S&3L}(ccXHgHQExd7FN~&AT$t{mR8V&EV50 z_iG?Kk52YUipC$rgmc|J70j91?k}mJy1)EUD#AE|cs@t>d1cA)^Z;H(|k?%;y}yCsaL2Pq%$L< z(K`f^F99r>QUrcLQj<_okJwz&q3d0+d@TV>1Fi7!|22<@_MHRr>%mEk_uqhxA1<8zbR?iSR z&Y2W+aRyG{nYC;f94Nszl>dNtu0{gOM_}kB2{tYKfs@n^Q()LS+DGBMTInZIg}dQH zC|ukA_|fITw7urzgRe?TRfmdo6^0Gr-nQ9~?gYQbHdQdkC`J+?Q8!|hQbiacD?*W3 zEMz?iykUO2Vdh#rNgG;s2i!v^QqAH+J~|^>C8O3^VV&t;g)w7{(^Xj3@aPBoE}olk zU+ffgJ=ik}E&s?oKvd?Idh@CN-1SB#&|m%dzsRa!v%nfL(8zqgIqGX*{6fZIifa53 zgm+}yOIQE@j?B!s@_D*Xc^??Y!?*?jC0m72H4ZNe@9PUMljTD!D^tYI#P+3~oP|nC zgn&LN3mj8ROL;D4Ja$}d7aXAPk9-bl?(@I5Mx}rx{3mR|)_^tQAQCETzb`WECF;^f z)O))m?*$snl>Pts2L4Ba1u*pYcIE$nBt)sGxNBC$QtpKypAYtg| zl4S9Mz8T0YEYAWN)dJ(fEqEaOoMiHuM9v>$|5V!>SC~vYm)@s47DXQBq!B zkyNs5vqI|Oiege4557N<^&ELrc3-;ZKd?#QI?4EzkW~3ckuC-`IR$1H!zuZlTfHLG zM(mY^=dYgMg>FY!AnW78{Bb*!(7qfPtTZ{nMXvy!mrJku>J8cdBsA~{@%PV<_4V&v z{s=#``ut{Q=@@7VB-k|MVbs1$QJ;M}IQ{n$D1=YSPFS+BVc>qc{cG^WE-JQh%*({d zh=Q9+8jOkTNQ8u4MYAm%ZG^PsfKU5daCVIY2YUcL1M#n&FOE=OeD4(j60@u#pLW@< z!M1axQt9GFD*QOWTbTlb@9-K_X3AY7m%3A?dT=#9Wuki2O7s$U7iQC|Q>o>^rUv>9 z*B$n{z-%b8$ViW4__cDE#5s2phdq09in0s1DZ@^uV@{GO&J^p?YHlv?KpI~1!5bwM zYZ@ax_m)AHR%zx5Mftj zp+6bwwj9=e=uu>bHw4F7CW&T99U;;R%ocHZIs)vgPLivfbTWyJEVe-Saf{@BwG7c# zie>y!Z>uKsEH94CfE&(Wzsgqz*r%09!g*> zQrrUGGMo&h7|#1dgw0B^o3(91V<*EQS^+6i+9tg`_`-tbq5%JQDx#ieXCtB7+A(6G zuNvPotPw0x51U>l39|p}uOZG5DG=W-I3xcm=so7iSA(by;MT%`TnL_L&y_ zK;HtqX%6JUfcz+Q+S9$Gi@NJ21$81*&BXD2YbUgRgUkd? zjY>iXOFXX(#_+7%2}iNLND&O!QC`bdMDPP=_a|Z78LKcxCfl;{vC86Vnp)N&sGR5- zDteX#7OHtg+?`E4t@`jOT5U2u$_Yuqzat1w3UtYethWRG2e$D(o_*yqT`O zD>}4{lA;_rMGpHn5xRQvPwL`u7b=YIFDe7@)OquXbx^Rrz93WJz6JNaiu* zRN}N_THN@gWCadk3S8B!`;oA`u(&Jk*I2EjGZBj}7E6C_Zl>qX?Z(d22#G@TA|kDq z4^u@AZP5382_qMV6={+%zq)4&{;90hx?k2e@+j2r;zL$fr^ zjPe-O*Ux&8pgP!3zvCGF@S!iPP+Qn9`b460d9iLBa4Ra{=COz^rYLP|b9S z!{5EOn|>pm^%d4%vne&({V9YI$v}714R)F-b^WVi;;75rC+{0zfHA6L z#)}wkW`^;C*Gn!Mv&XQ;e3iPt^?ly63`zzYzdRug)Ad(;Dos#vycQaj`K*L>RIfhT z53DRunaz+~v6$nuX+~~^IgDw$eokr4JA2lz_*I?~o9O033nf68L?KlFqdG+JtC!rk z1jzs$w+9+mb$e0Hr}kvTzlfbG$fFZ*cT+q1PrQmwRKa<5xP8;OCY8Dl#7AJPhrA`- z%U&l;-}zqisHV|H4=E9QNC*R=uJ0&0{*5mP5I|`P}l2U)`K0Y z;4X70&lu1$)=61>_(uGFNpu`y{i66E`yBh<&+@Ota=l=6nTewymSu{7ASnFSizes} zcz*x{(jZ3bZH~=~$c5xSo0nII#`XVF{T;mYhVmcq&W%?QkQ)@n?(HZkSy&xLUuZ}0 zaC3LX7|80bT3(luW>gjt$Jeci&1r9seifDq3Qr093-OHB>m`%j8hW=)LVho3K^vSeBGVPvI0!hA0%Xb;p!dF1tfQW9-}X)8YM1^Lg~gt7Uj*QOxbx z{o0Wzk{LJ6r+hSzrkU_{$DOl|wPe~4XanPsGW8bPnYlH-n-zZ#7CyM@w6`WHsd1ln z1YC#HI$-_)X7oO*4%Ka*-W2~rrtAjq`Q){QF_wT~r(w%FRPSb;6=49421R@>AhAw% z?((lBrCg$6S9>-VOhaEiJ@#8!RZsio_wO}deC2NKer0us^FXM_$p{tDCT@O1XQoQ- ztw&~(M)hdn=q|G?dn{RIDylA;`uPC%VG1<@^n9{@zC9)29?8r2`||=j1eP+O2g{7< zn9V}{Cj@or+{T{*Mg3f--T58o9fFQ)8ZTQI8{Y$eiK@cjHWX=4Rq(CwvNTx|vcR*e z<4q))MW{L&mf7Iq1nNbiGLp808Q{3Wth5{*%G(;kV*v=_XrMuzX3M;F%?u>>ZA}fFhrsnTKo&$UyGN;V z{DeC$`Z&MQhQnt>gdyqGH|+lfu~xv)w!j~N9CX^%#?j3kcy!gs*~Hbt(cQ@0#?_75 z($U1hf}YsU!sq=oYxa9s3pW7ZANPARV8_5x4%DA>&|kco=+$d}HO5IEUcy;f6DQmM z?Fx7UVvlx9LWqe6ECj@$6cjx$MPQNq7kZWoc8&L_jXAhLZ>{;QJC8Y*@T_Kd%bUko-#{>yUn zL*E^^a{zcBe9AL)d`4wLM|p_B&;tH&lLQq3E?kVl$|s6r=h`)~QNyv+Ue~q!%6a87 z)8SrAS zI82HGiSr4$TAcKfA6-h_UE#mK-p~i4%PgZMX6-p#L;s+1iUSQK=lvs69LRz6_kn?d zCW``y16+1}HA&=#wd~lF*j5Inue^VU%;(z`Q|ppz~FLoSV1ye1SCld2bo) z0$3`7Xn4G*YLh--{m@sgSK;uTd+AbSp6MOu9eU?_#Jzve3wT}r>uM46L!lh&_&Se?o^zw!K_ z9p2lc%6c^sUnJIzmec)JFo#>p@m~UK4ia{UIC+@h-(WgTMW3urrXU>lH%E9hld1GL8;c0b=S;xsw6-@D7iB*)9U6E`V`;yuLP*7;ewcW6g>G|gIz4r&>mS;Ed zjWrx*XO+uoM@4YeH>z|EB57%w@%9tAcvTIIT)JN4u;#{{oCZm^neGY~9FtbEB6fLg z%KpO?Z0iCFrbq~JJz}fDy{nIYVL&58#tZ&4^b&lr+1!>2r$`Sb$G+SWCH@V5x!S793@$V;ASXCZ2hb*sJc#{uLBVFbm)hp8`HHVc(v0|F) zgiq}12$ttEyD^yoN1@^uD zb_W2v1D2|wzVD4fGT07%UZ_<9`wqK|D3E%VHs5jHA*k=a1|xk}egY5>VLjle|C0}$ zK~`~!PNhMEnVngARs#@2F)9Ydkt`P*6Wsj2soVhIe=*5G?c`^_wWa_7180117n}`P zs(~n&R^&$^9NwEkS#|GEgl7%zPLIHR$9acuqyIhvjOZQ+Oe6cgk44o>+(^ywgkdhP_Np6mAawgC^otdXwH4X)E&c%PrX_pUD-N57) zKw^OVZJ-Mrq%YM$#I%`ZgG(KrppRVR+^VQ(n&;4xS-zqC2SCI)2afe^7mxP!At$F4 z!?;G0V6OJmjL#TsD&-u(SuFL zd4ZvEeX?wXSI-t@2_ixli`PwowiDZQtS+JTMA0+S(d6%G zEs~lP5sv}~XSs-}jg9kw7aXpwo#k`LN9BUche{=|Zy$8&2mE`$A2EEjC~K?`rc*&t z68N(=&zwCJop|IS-Y11)nphJ|C6gEhTPC@2&2@r~bK@O~NUpj% zy4TXbvX)`KMH9OgDf*!wP4#ey@F%}wt4Pcc45Qgq>GwmL$3&t+@)$28Y`>rg>I-@` zb)Q;t7bGioBEzH?;%qW0wOC7)ZOpmP%J*F7mv@_lG6cW~uo20IfyC|)g$QVY>KD&h zhuzAw97iG=7gjS0ABAxE2$(&OPbK_^k;F)T^%u8EVRaIk^29|OE59&!^|W|_DJ9c2 zFlZax?&4N|7}=nKg`>gJ$qI4#O`=Ihfd9&#dsEtHxr^)R0{){*-Djsg79oo#`^O~a zvZ={aPOMhz6t{s~7;CvA9C>`NB&T&A&qV5ry0yOtodofM;p%f!jIOh zcjI|TwQv$P-cqu=7HR0lq`!7RvLLT8|E&EpnE8s=s|0odUtZmLD<&^tD}qFc{qfx4 zBY0H%`gfC3;{vH)1m5A!eHHGW)KO69EMm+Xq-iE=&Qs!FP}J)>ib?K>ucgP#H2O+s zd9GwpG((MvY`BpV5W|VWatac*SQAToIl^>=!VGny#L%+C%PlB^*JhNOtog1Fm&Y8x zy5?<}o-H{2TsKl7#=0nN;f17SJ#HBK_du&tfbFGKI2kSFqef88YU6GCsPQkL5KBMe zN;pd~TUM6;JDrR;FX@wY@;?|2SJ^i`U9A2#;a`C-$@Tlx2Ui1@nxK~?Pyxoe(y$rx zCtxvhs&j;M%0>zN9p@c_(lPgd5_NIfweeep&-d-SY|>ycm{$l&rlD+K%)H>%5pngm$MWNlIne3Q$8>U ztDE1Px~P9Q-1P(P(5gdG1GHc%TEb!yj3(V;7d~3@PqhazIZ2C*;?%EI%vv~2f|UFE zVTi}GYT-9ygDI|A#sX#z;p2u_z7JvMlj*yI5BC8s4`Tk5qiT`EO+MG^hPIk!gC^YBLl;(y%dY=Aw z8SSC<5!}`zv=hXH5)iY1MgSoDKq>=xfrI3s7KnWXMh0Eo+3dW6OEaPz0cF_M4F15y z)_VFQX53WILgb1{Y9?O>{Ifwr^J=6C%nYm zcbsMx2jp}}a*i?-am+$X#w$;_n(B^d>l5e>`ivJC`BIgg>^Z*)mMmp;#yY}Kd{q)+)S zLGkn9H%9N%SBOPbOJvXhOW%dM5|A}-YkJ`02?18?ys-vHM5H(8IUajIU>o*~)Ao-Fw(HdXuhtud0`Ti%y=kPrtoMKWVrYiTE zSA!BOg^TDbW2=5Ap!@IDWuWo(P5onLq=-OGPP`N4banIW`1qopyOAbDR9 zzwUo|uU|(0$$~}FWY=1Y%Oes53<-b zmwoCMRn2(>iAFKGV&fhpaUuk9O?0{7<^!>oX1}n?JDP9f>?!Whq%~A%qhlBHnRjL~ zbTQl(CC4;Y=6)vi{Y_C~Vj7LUFMm2VX`fWI&d-gL{1&)(2qSa`WjB1@4VAOP@zZ2A zhDx~s=t~-s0hQmiuShoSksw_CQ+5fC|3rWNoKv<_MD>U2 zn0m!1a2hsz&u4iz=JX7T><0>0eSKBzHFMh>CkQ-kBRd+<7T%Qf+d^@JdTKh< z&QuZ>qwdgrCd=?x=Xqiy3W$r2b-;ANKUQPlj+Id4+BKb)xYji-#EIO*41FMk_-8$%cIXv<4U|T6Rvk`SIwkg4Td`@{=Ed3caQt17q z1Bp(L)a<$y=$0+YZ7KPX@ek(Dvc)W3Lj;@8M0A<*V6MWjEO)YB+z>jv;Cz# z9I~t?%~$?)-27>2DtAPqW5+y|>pAgL@rz;uLdfQ3kRz$GmJuy+4>-T{nj($l5+wvi zCiN*T1anqDIlk~oSM?%Sp#Y5*oxHLPhNFKSI|XSU!QIunY4F;~B>JL!!cUuT8oVHt+F0Ia5%%asVo6Wf{JqNA&@b&( zf{0q{BGH8asnn>^g;9*ixucn&muKfWdgyy3wpp~p^;CWgxg<|UL4_1gflgzudT~Fv zJ*w{KKWQ-JA4yc2sp`~?y{FY;$9H$)<(?w@^Vqht$Gfsa^i!y-HB`WZ`%RNab+-4o zC%P?_tR$@E6+3)#KKgCt(EULDl6ouc8#+^tmyDe>E4_O_-(AqNdg;-!-PpU`jRzNyT3-;q`*uMzD=|lLbko2 zy1<$R)w#hHql^ZY0b?zq^)V5eimco~(*DgG{VNRDm1i-~AdztF%|7tj_8IzRiI3d; zA3G|}1?yaS{_u4RZoq34?dzDTyjdmDnbsp!-%?PNfc802=jg)G`aTg>^y2|UJ+&HB z)alony?O=bZkTWC?yE(5pX@uwK6FiO2|e<3+NTmcehJ$-rEaMS@(fH^KM>=>=+t|K zY2{ho1qs5cArJ%yicrk|w$i{sl3foZLLpe`;mYK56|NQ21z4nR)NVe111ZA)y?~2) z^(k3=5oAVD#V7Rm{suYRXp-cxGYH6J?=c!_?Ch-kjp=E3B!Qk9QdvS0 ze^dB{A;%&9V&zW zo~$RgqzhwwkMQU;)I;MUd#Fe*gIpsH-N<2+$XD~b5N~|_I@BDWcW=jj=b4SF8l zVvRVbs8Zss1i&8_Xn)Ebrzxsi!%ml0_1nYKp*xh6t&3DR)U^3x<%I%NEk6#_HtJE^ z3Z1dYIMX1Q7W~4vFb#kEuN}4Bago`)D;t_r*|JomJKPw-q5UdM{nLX&>yGSUd8BpfZjFQDr<`{3YypTZI#bp*O8dN z75IHA{kY3Hpr@`NJwMFycqcX|#Qn%8?)B>SQ%NR72jXwE!`~yD2$u9@!fTq3QZZHX z)OzTS>6N3TY;Nb_1TI?y4CYNOdb5xJYTePEk7w8%+&B$v;(HP6zF#b~1*sWVS6v0s z{64pO*$KVilP-Js$*FqMf~~Hv>CrZmo`om-GDGccZQmla#!KR{_y9q$9ybG;3pJx} zGeQP9h2B5>0pRh#8hy|diWJx=?BD9KD6K&(ziy1UCk!EY-)wpNm-pS+N`uKhWxvRf zkbX5Vc-Na0G&gir)mS-ndyM~+fkzk|m>dR_1P0_}BKs&yTwO>lM8VgBs*{cY0C&WN z1hrTDwnhOg00}91Zyy|Fsxtr)@(5022RBtI#6(3VEFQUvGh(Cv^p5im-xiOmBYn(e z86hDeMqse-gviFK#eP+z!?4G=VRdUq-j%4Lun>kPo$O<7L5|V_Z}~|h3?^FQ6sQ^K zY%60EVkn{#C~M;ir`*oXOVPs3qlr{XOGxs8^%xyuke#hihJ`tWSo7GJgQbTZZCo8O zv4|Jmrh~$Hi5H#%CugKo#^s$a%oK88LZ?iz0De}P*X~@1(FfoQf*q;a!pBZo+ z7}%O1YG}(NE~jIwVyRmOtxh#|mDPbfSr~_pFHI<+T{;K_ki2r)0u8JdWTON?eFcEw zPJr%!uX+^_7=l=`9p6#g`GpoOncjsL>GusgAKb9RUH`ensXY z+?P}UK{eguvfT&g0zuM?^Esu_%&!LgN3VkCCfAnVt>xxz4u$#aTKL&(46-W|htj~_ z;(oK-7el?s3rZ3g&7!TsA7~$r`adj})u=l*S!ZG9qc`~Mk+zo?@;ZZ~hMven%_|em zv*C{7YQ*v6S_ZOV+*}QimaZMv{)!%RvtT1|Fd0z^{+vJjrAgl#@R2f!3Ib)07*{Ui zc9VF!mP=ZE1#f~pDl)s`xT(=z?RkhEZqy;>TMsAV1~s-Yn`u`zUx>fL*gRW0R|_j zh&*C7F0cn+`=_;Yd`3@2o#kq%_U7Bd+jCaFU>#D{h56dAdQ#}+oIW+ohwnXWbBhA{ z!cWoWU!m9jWDI0=#NWl|B`(m&jToQtO7Yfw%SPp!yQuNbNPo8&XiPcZ94}l*R~W+VXXmz1`a9Z>1O-i8;pSc?`G@s5W^; zl#Q3NKXS-(dw*y=CCyyhpWt({X_>kv=mxWYwOKu$9>Fr}q*xX}86h=Q!CX$U-&SmQ zKfqJ(wJb6G(3ZdH;kmjZgNV8-1ir&A-{5mb2@IsFbe$T)2HsY=Rhbh?# zv7IK>9O$CoY2PO&FT)}8UN_{gQ1{3(qv@t9ziL`hCeoi>5#!Pr#|!+rJo))EyD>h) z^NP#fh;ERGNl2`bu1yXj{w}RkP0Mxw|9C?7$M#r1sVLDw8oLSmV`iuzm=D&~pwH3c zclwSH10xnF^er~N0^z`+p-Tjdz{%vk{r;L-n#YW5c$pRAmHrBBIsZl@RZlxMqMo|@ zi1}lz>c`@f@>X3fI<=whl`4uCk+CDk;(|GzC|W+GRLC{3s*+IVNAw#uWyMuPxZ4X! zd|liZDw6KB;m%;i#=H<|(PqhMF|AzADaxDML?mXFbe_S8Q#?7v<5lVsPP2dHacZx! zR=f;7^8e8GmaC2RH)7an*JUI4r4f`ck=wqwQ1k9&^cm3Zo{_cds2qHi&AQ{$xMey~ z!`*=6fzl&-MbNXjR{L}BSy*Z2Klw)=gFg@_G!yL`_~G^nU+nK5p9_VxBZ>g?%ObKg zi%FZDyx7a&^#a1@m5@T}M3E2`E4DF9nsiEchlEugAvvW5zj7MjN!<{Cu-H+C^YwZg z+@H-Xmzq z{Ys3(g`pSwSlr5}VAt}|6e+_f=yM|1rc_Q1lmFc^fuM^Y#L{uIO%ST{w+iSO1X~P7 z*cH45g&(dZR#R>@A+J$-7i0Wwxa|~pE5&sKy$>n9sfn0YBv+6ox@B*Vhkr76M3Vnk{N4JsR?#`Z?)2dR~$&?THHxSYnG^=!?n>+v?MmqjGtCifX-B;ZC(4OW? zRGm(QFTG^}F;y2t2rbce6zu`G`DLq{Ll`=C7WWRQTBWsVKM{sr0o0hZmmtCYHSJA& zs{tkc)Vm-DuLYJyAc;SlUJ?!Vz4?=rmIAbmE}2C_!vo4Y&N~DtLFQxNuVWJER#^{# z0;;<*2_N{kP`|>KA%-q8Dwc-6GJ(35iq+7GB_)Y(Tg~rzPD>IqvVb+YnJFo$nYneq z4e&iroD)#PUyt6JX9bc3va0|u@H!wc29e}r$b$w9y8g!|4vP6~ zWa;YUU<7p3uyM4a{x9satCP8hnLE%tPESnA%*oD9`W6t{3>XC3$-&vl5y+$e*z#tN z0JH!T& zkgjW8f^`KOS~x*3zo1;>pqA{uQ@stxAIWv)t5}Tyb8wq^Pl#mP3pVKl;3n3xYB_1J zg;^(&;a#r7Q+HCHx1CT{Z6!emzyD+VnNq&wNI|(}_aDoH3<4FHcW*D^XY%X}iu`qg zFo|C+xQM^fCM!%LaVd35hD0hyl*$vr!{TOOLPrP-3yu;FFWJrl}Qd zvbt|8t#bAt2r`8!K?7)hH>ivP2YvQFAaIZ)j5%n~zx%db81{G_4V=$-hGoX3#Bjes zzvH|^&|Elb2ibxm;gyy36H~NvRT7PAjcc}Z3et#jbyal>Gv19bB`_IFJEq2&ZA4K< z5F9y&dsI{h)TL<$6dC3RhctjC%(S733`^V6QcS8-;VJnExk-g35$!@acGF%6_1D0QFI~Y9U%eWUQm;F#9}e52*QqwD#CZD tyhOW#k~<%Xp?y>O5eNmH)eulqn$Q;1R1_lM2IM97!xW$ZhwlE~{~y9r6};bsL^Wd(lnYQm)&|sc;(mM{o{M@IiGvZ_nvdlxd0#l2si+bGXNks`#%kU?)`>2;;gQ0 zX;_)C)foGj?9Un}E@$L#&jAs$(y?Q=$4nr1N9@p>qKvf9D6OqN8Id}a3Gl7jH1DOu z+^vba2&Bs?WcZ^p$=!{fZ)DLMe4ff5MC+*48h_mEdHC*ym3Ec{%ezvnWqQshn7|!X z(+T2$mn91x;Jj3)Fz|HUXFf_t*$5TOT+-2OrY5J!GC#g&nvID$K@0lA z1YHY6@@RQH57@en`msX`(zb?4JE ze5`a^)A?4twMvm~yP}601*URVem#P_M2CYQK+OT37b+T$OZ#a(Bde-}j~pGue&k^P z#k1^EtZJCCV8iBZPi9`&jQf2&wPqGpy^JN4gvL2>J@5CuP>Oz>Y-EAT8GkQ|#YZ+8 z+pTm4q86m9;`?L=bZ(kfn9AyKq2z+gTa5te)>?giJyHHlFOcF)`kw^RYKmBg2TYw6EC+~?Jtt9$2Mt>G<5MkGf|mfXRRQH<-SzdvumIv5;ayKzmHC*h`?HW zt=JRoa1iAz9<`S3kI7Lt@n;j&MEyeFMu*9e^+qxatdf%|+UrbqM3untRDf`u=e;i& z_42Pb%G8@v_0l-bI)z!?#ineP+FYv=;701srcDGYinI8oUMM90U$phR?Ude};uY%P zT%8X>g9n@Ry&{R!uVjV=pH%!vS@^Kd=V*s}ITQ7<#Zn*5iu)mAleF`Ue^)jrbT0Mp zFIO8|#X^*)l6iYy?Rm{O=I>W$na%8M%w)%s~g4OOUyqXF-`e z?M}{20b%&+n}GO;E8U!e@y}`uyB5GPW94BJm__bC+NroE{c$-QBTJg!vG@e3;2Eep zz@WzvIWK+Mm99K1x|s`!G6~uyoiZiFsnagh^$lKKjUJ_K;~!s^l*6%??zYETq*Ky0 zbk~6o3N@DKZA(`ImDQ3ycZ|rJDyB!**|6k5ia(Fi2`N>q*!L)*x)yBZ9sG^*TC!5# zD5;b?P{h1yDP2$LiGMqH{arpi^9=LMOey}%x5a;@x2cr-)E)kMtT}bcB|>7cMXXlE zofEKtEdCa&#+vsX!WdzmJY0Wr!%usO!EJxPcI|^=>gWr@0h_S#u9_n}MBIG_MZ3Bq z*)_+oF>~Q`m+717YWw=B#p{q9j|%^aRgQtM$y)HB-s|wuBkyv}->}B4_g397Tg!-| zD;TP2S3zaL8|ZWIAt{d72s!+r?Q&#ZMq{U6Ck7HI$yw=DieHbMiuJX#~cga=F*BYfvSov8sULF*oe#_}pMwO$uG8N`nZ-VRR5u;1{uLyyC)LWlrk z-3!=>sSlyPFdBPEyvj~24sV$Xjd?9G_XDT?D*n7cTBS!37N!iVXwqV|xPl;muS zPVEVc)0VKACw#cp5m-!+BXv>pwnvO)M)xjHN=)U4{e|71WdHz}004jy`|1~9`_KM9 z&zCKJ!+0=-;Jq0uKQ1%YDnx7p_HX|OF)N$gYz{gDAz5GZ2^Tf4@2EKWAULUkn0B05 zE{CJQ8q9-{MU`Gvw?)5V>IDs=k-aW=MJ!p-sgo+GQP@{+%R@p(vBiNp8rA8kQ9l}lS;yV0PgVx4fEFIuOT+P>`(0&p} z_mH(Lh|?ZuanhOrKlfxezO~v>G26|xU?(iH)!~~7bU-Uqwp)F6h`V2JRP$0^Sx=z&a%15tK=xDD>pYCQJ9X=YWV=*WKJUyPBH3 zTbi0Cp98pAn+}`Jj1xsXVaALEr89eE1=!!<^qajx%)qnuiqz!dQi|V z)==M+GOGl#`)CcI3)$pt^l~@JTC4`sWT-~zEK26;FR!2f^x*X`KdCH^MsWuDljU;p=)r?|x|}5QvwSbj&K^Mh z(_|K%#e2gYRr$G`#B;SyS8ABfmsvVh%So)LN{-3*vsg{jXao><5W;`__VVdp)i1xk zd;a#3KzyA+@hq9HRXSG5d>LnPzEsOpokg=)jpB=Vnl9ojSJ8Z=pmWgKMVv0CF|?hk zVKjGo7G0#tNG-B-FpX!?5{4^Xp}KQuV;;vN>fXE_p&eM6DnwUZpBgy#j z=hu`G4i<}mzP)+%T=L%i^aLASs(h8<5F`9H$m3<8lCg^9hiT&NGu0TTvqhRG%UE3` z@g|{Wl8O39qiMQ{5 ze0loIuc!a{=H|OwAxagH_F7zO!_7HUV@TC8>Jx z^40Sa)VJ@Rz5KNXs#5sn-LKDn)i{HAeVWY2>1k_+b0Fwn`E8md z!^!=eCJbTIx}Rmy5_&sWt6!2~I*oGmb~ss0uPu;6M5^U7o-GI^$H|p?y1T0`qihZ+ z{UFY=6fyG*NXk|^_?$}n@CQrclncf1bSzid9J-uk@o=eHxYmTtt2|a`X*yEV)hwCQ zS`MS>&;sn!dW@shbg9MwajBx|ViKt&S0SRuQg!$Dj|t9wBAeEIL~RXV6K&4(OV6d;A5E6kz>mij$ZnXOm?+Phibg3pJQ6^1Z!1 zr76s3YX%x}2$~2ee~Qb|Xws}x+VU*YY2(#=NHniT$!LCmsV>v(T+v)lZAUxs#|{q0 zaXn22&<4`>d9uj)_k=jH)avX#duEZV z^K^KAtVZj3G)n+QfC)yUk(9|*V+9?{fee}!4r2YsMSP|NRns|iI#tssJBxt@;i4Tw zH*#dZKwmI3%$H{XJsqlXluYf^0=xs6+EKiWX}XxzUqn+ty9)(>S26BTQ3fmHj)L$Y==OtNw>?Ofv_BAKVBd4t0W;XBm`OYJ5&gLh)$LQg|4ini z^fFhyy^e)pD|BQTU(0Fk5k}9fqFX0kRvY;EnZF2^~hG%-9T2B5K;r<9q#U$68jIOgznuV z*h>)go<*=T{G39^fs?oY6W4^gU~3+^L`+l#1Pblo&JCPohMa#I&mYX;9{``jW|u+- z;yG@I7R;dw=HucFP#LLdg248H=eYYlxP(Vzl#B_kXh}|XgWC;>aa*YyDs_b&^ zBQ+rDUaDVyd-aOA?|rDsyUl%Du4mgI{sS}DYd`KEt9$`s6>wKfAsN6WwtYl&%wYn_ zp?ANZBIJ`^&19jE{a?LGX33I8%11i{ADAS_b&e?dz{-}UcMTkR zfHU4SwT_5C0MA+wSHW>s6~pm@um=6lqj7AKwTz3KH-gX`(Gn06=%S0r5F?WqC9qn= zK?u4F81P~mt)ZJFRu5CycBGJMx7EwP`~)YHIL9qik0VZS-eoR+jB=3Xi6?^)5yvDw z0K*=xa%yh?r-aLk0oIRy*isi>oAl|wMNl0QYXBd(@u_Sg?v6x-(A6f zAU}TxJ4&ai>%+e&HNec1C_?o?9LM=0lEF;B=oP@fOh(H|pw{qp5~COb7zN+|B+FqC zGKUil2t2^brdZbpl*J2NUvV9~CZ|{EpKFOA8h7tuz62O_(l^_LNL9T1y z7@9J>Z+0}SR97N`_AC8~ zgaxYUj1FpZ8m^oJ!EgnDKnpZ)U&mP*)PND*0f+$rfu=xMmMM7$d%SQDmQUzR6X|9} z#7gjJsqPoh3l?eu#|@B46Xab0jb&F^Vx0LsYQX-+^K%Y6CT;mJcPP?KN!Y;OS29%r z!XhLfa^vb!Q;6~xmNbEjUO<0}h;~ff7$;ed;}ihYP2Lm|6tfrYX*^!GiMC-{%!!`* z3_BhaLN3HI6;R&tGKQT9!12^LUC(r`?mtZF8Q>Xij@Vh2X?QL~=19i~$yuUbu)X_w zUGL+nnnk9b=oN<67=K6@y-f0$DCuQgc`iJOSe`S@yKNI;onEG^>F5+;O;7+C;CMvv zvQ4SyduMytIaG$=5yvzN)7lRx`7!~CC7NDFYeI@MDD~#2AD;-YfaC_!r2tOxHq_D( zV&H$kw2|{c8_5y`pmY%d^6m+~J~4gLlnGe!i#r%S(s7DgJuaO`PX=jdCFi`!r5R!Q z+`+d;(jb0*Ir)>OSO=KSg|m;d&BB(owmIEGPQb?+TcGC@fJ0z_rDEX81E57)s=uL> z1u1A?DHjKir<9yz9b}xa=jAC>To%cm)@%?HnRW}(>5H_GiYE8DIi3xp%Cl} za}o{^5}@tnWKF%t@zLP0AJ2R(%Zn#3U;XyxIUIT3y!_>-w*6+7ifnyKYfNVg>~h<57!RTvS6}nNbwnC6go}q2 zt*L{W(Q28J`i@SkqnHo6D7Xp)1ak8AJ^~R%3SnU)f+*F{hr$7N1SS(F$We9Z9n@$_ zfx%qr`nf?i1DbZOvv`h2I-b+v3Xb@5nK)d)H(EEhr!^$PClR5S6Vjy72~;`>WD0W0 zMKWU2CEz@Dd+NW1o51z}I7+C2*iJyTRt{msSF(c`H3dmN!p%2CU@_F$!fcFE5(-hP2B$APPsgXWi^q->#tm{ z+hM0gO2=s>7R8%zq~`HuKr-8O8cz%QGsEXdkq{AAZs5KgWldJNkxC7ZmT*Rld23if zmqb&fGUR2>OtF%#Bs-5c3(vxP5se6UURg@0UK<=Bs!OC0&Jrzpj95NPMNpy6;P6Oz zVP1{m#cJ;1wJd>=Dh#TiUM+|HO6ys%a5P9S%BV5rWuKIny|PRJeX!VzL{{z$PHb~g zppjOo!5lwbKr+!J{1&zOV44ok+il$NMKK7FG&4X=8g5@rx^{_}D=}8#@&rbTz^!FX zHE@9UP^2rM**#w~iHO@Eu_uA))MsBK0wUTW>8I2k!1QJSRiO3Kv?V!CM}q}oJz$uU zot-}=<2jJEuYZHo`Ea@##p-)fzwJ#P@B9hXGUIXu)G*uPz;Gr|n$Anp5$uZ|DBQy^ zmsoT*oGlF07$m-(f1oOW;A&O*iRuJcn$F0pT()H`%hwg6t^XvT4*53&Q^5f;MF6Nw1|pwkti4BP-3u( zp!kx7j@`$b8d;u2U#SrX4_?1{`SX)E|BZN{+H^}nYJFj{ zsLTPe0P&7W6Q^c^AFP#a-OGet_p}NO? zJEP^6PVwY^%G$UFT|TzPZWEu|lD~Fz8~KGT*(JMSFg)`Olg&%OkfwP4*?us%tLR%l zf3^aqa@G!zssq&m{G0ciSv+D%MMYyOf*4cBuQyn}y+&l&ONL%zR-Z z0&$dA+N``ZiX#y@O{>at^_{DTLA_17T9PQfwwEb4@SM-bs9JtT^4nI>5$!jTce&GF zO5dA1T?>1gv0_=x3H&Ye@2_6|sD{%7Zr+lLMihVU8zo65k_5bhJ&)aWbKY#l2#mlGa$RqtGQc}mL8_Jl;4iD^f14;xlIieN%uzD_19Wze!J73zt&&SoG)@{${5TR zHI#w&iMOJR>gm#Ej^7Mts+;@zlz0n4)J)xN@XGJ`*Tk!eWnZ2}HOr1Bs9#~(wI%C6 zY1wsi|I%eQQ+JzX_j~@0mwl0s>h{5W^fi_p!Tb}KT{rhHU3N2dx7tO#o`2hApDQ?n z)~q|}XFg}$MFHi2`KIe$-Q2%)-Obc(UiVEs|3>RBFJR{Jr8dSl7eDzjTMd_dJ7tEW z8Z8G0nwyqi4<2)&T5%ET>)vJ&ppoizsOmJ%VbhuR+8%lZZ`&Q7+)q}U9cQd}%i^;n zM-_GCJdS{-*pzj(wD-R<_xSkAUP;Ntn0kWN(fY|p)4g>H>2=l!6^VGKJ4GAXH75kB zqisdGKm#9Bkh!L;d(%Z->bvf*45Hx-NVWKHv-%?NlY?UXf4Y^0G~X`yvka3T-2V2~ z%b6wv%CeWYgpYn&l;?4_^wXejl;K6L?ZD~JZ=at2?fIJ>d6ogQK-RDc86SEK7OkGq zjGWA+9@Sj0u3++yj?0<(1dVJkH$1S}fWB_FDrB45ObA%J*R7~6bW+H!sLf~$jjg8i zz;U!1#$vJsOUk#HfMlpI#0`a>HPj50p4~*t_>_C~9_ysz2LEcFob*31W~u7y;L4j~ zzC<=l;Uzmu@ijkUaPSkGJJH1^*)5p6O?)20x^|ogw13&z$(QshRJJ_tb^r$L=qn56 zdUS8V{8+35ik*HWDUKUg!Mdqb2c~yg zT&#kLUbCuV+*miUZXQ?XUNx-&hR$4!C0jM*_NLWT4X*P8T1Y;^f0|9F#%d^48jXUL zbal-gx}9byqK+>==H2@?WQ~etq)n`J1;&^}0J1oHc*%6ar#!)^!$L zo$8l!C%9%iw_@3LM^9+&=}BaA(m7U%`rhr@vD)2Dn(80&QUy(RWJ@7?t@-i?$$^z` z=w2ru)X9m`O&Q@t5G*{lz;HKU13EQ@PS*pYMKRrgkDIOZ4r_A#=}C6Oqip}++m2TJ=3g^3QE73FyYl_=z(1rnf1Bf~sCEgYb z7;oR36lLyh#T-T;k&a-B$7qq^7~tK@2KQJNDm2Y+8z=`?`R=%>XP8Lz-Y`PL7y@?> z!2C9++pJ}3O+ExJ19A-joqMx!fUj<--@arv9!}F7@|!Np(|v*kuA8Xxo!o8b$`Tun zyW%ncI;Dw4`cTLAWyRW*Rix~Xk??4FD3dR#gN*8{F1RkuCw zJcjKV?jjosUf`b89mAkqRnxHTvqQ%4H89rt=0(O2_Uj{~cGcWSD7wU*9p1*=xsqwN zA6HGL?VDS2+bKo6aPo<97V$&WK|GAmP?Mg4L~58ti^ZDC-1X+#Q+3s>ZCSHb-w}^v ztmfzQ^m6WqSjaeDiVgfy+mvx3eol$cJJT#%EtdCaQ`XFLGxdM9E6^<%g0v+~;9+_T z-cYKvJ)79By{e0=+ca0WB)F-$D((EOM(1lOZya5PdT@*8wq`UwMADFK&veR_>-zI= z#eeE&{w7wm_56Q1SK1CesxA$-=-$`nRh2Smjo4Q*`}-%zd(!46IdA+$V&3>`$axzK zFh5tot9aV|d4fm1a+Pp9@^!-tWr`H8#oUvazs z)>f^&uHGT;%Q^mytGhj?ziFi_ApL(})%kTI^7p(Ay=tdfo4ktTMmwIs>Hr%Vp@Ael zNae>v&T>I%d-E|0Xoo|^U5+Z+WSA`1$2cE;4O<+q$;|8NEaoSc<7k@4cWVrhZezvD zXjg+|MZBrQGeHp1s#zt5MVpGPWRtb*4Hm82ZxBpk$caxn2JyyL67o5I$s~4cq#U2e zf2wBmx3jao{nWdCx^cQK2LEsJBKP@b*#9ne&fns(NnI0P*Cw>2x|?*T{DR;#Il-ru z5Af||K*{tpK$4IBTGQ@?Yn^a${7uEB@Xpo`BGfO6*#tl_;{q6!-PrhwLICg!>Jw$Upef+nT){j|XR~z9ZWXmzyuEzUciVXVVtj;% zXB_Pn=TENp2w7*okAm`Nr-)ndXYHxtF=fsfK&Yp9f8#vqeEQ@U+L2E>f%#4QoB74J zq5R;I{b%4##E(7sG|IWycI9t<_^WzlC)*5^Y z1i2$Y7he^8RJV)UfxCm3E5oQ7(wmCiu>N-6Hh>odW_*&xpdgdK9Q)}wK9jc#O%?CX zfH@zT3%B|{!0x5{VK*_-%;UHL$k65&4(LO?+Iar!3lO0?AUh3ZBXdR}z-1)g7rI{% z)ttrK-7VkgIYWzh1>@SS7@05~$mn%laFQ+%p{WXx;eo*9?1~Of zTb%Z)g8mlJVTaxp2CHPcY$r^0b9UG(o&vN_vQcu8j8@Teg%0v)V@0>7;xU6fOThUF{l&oX2;EzgTaRHnO|yIvk(CJh7=eQx zoSgyzhHh7=0_2fvC~`s&s60h4plfmw%I!4w$a^EYlkhriy{?JpD01V1P)@r0``QBl zd$oc?+B8>#Xn4-fHj>j;2kcEI8p^VQw^o zM!~|CSGFYVA0e9in1t_7RKLj}$@lb$DjRjkqdrro#Uh;iU0bCGLnzu9Sl@(&O`A2j zAnK)KU<|0n_;p2k1{Tfk>Eo!;oPR{k`A6Bj*Qhi9XqzcsIb}oizd=~H3zhs%&!NI` zb;S{?z)yHK{EB)4jz$mCpsV8rrOCfe+Y^y!O z@!5+3YLKo3fI46tzzG3usAKRI@KzwR0~}%ndAdTsk&dT09;R~uMxF3nGR<1re8-rC zo$lvQ5?#b;uaiWncpczmXwQH|u(OCfn8M#-mTCvDT)4qw6|6TH?-`=d{DeWbNh5vV z`EUYbhd(^>_u+>Va&JC>{pb9+RIO*L>EiUatHIRP?B7&VI?&tHfo>2M`(0b|bGzET zO;_=ESO=-+LXw&qAXf}rxLx_VaRz$s3|PJ^&;=?(Yu1A3ZVkd<1v=%a?NtBEJJtWp zPGM57ZUOo(5^S>oWjNyA=#l2}9m8HfX~wf6xegn27^%;V&0!mQZ26lqJeqf$Z)LFM z+}{W1!Q8#}64#fo9~rYm*@uu7ui-!0i^SNKN;U0Xr0bjA$Q`+-QQx!y8FMySc*m(I zx*cUVPmZQT8mF#(rvUeGUTIG01Y~};!wPG`tJb<;B}n<_n12rWbId*WcqWhXeZp=l zch&g^Gh&}UPqK`qM>S81yd1$a46U?tyOhfmGG?^xqxjl?czt@ zHR7Z$cL5U`S8R+5UqKeTf?f2BZThOP%s{hvW|Ar~?beuelWg6bnrfQxE2lp&ejT~>T9;QEo42$dYp-D{RULGXmed+e?InBj?5p;zq-#` zQOq|ry;t{in526gPwFo(UcQi5{uu``iiXP-olyB6#e`MzpJZq!sz_;+Q^+^|em}<* zy;Hg9VP3nW*Up^BYTd4?r#odFB{t}6iSn^jDul96{%a;}a#3$GSUMb0O#)xsbF1qGPLS4-W-BsrV3e+TSKmTPAa zQiTt2?4l4|4i6G`jS9<3U0S45j13j2m|S+^5hZ7zobK`nc&c&+%lPuy(|3SXS#qI+ zV7>gyPxo_mKZicwmx^!_B6RWBY3xK8ITi<3WSrx|cE^FL8GOyQtXYVF{T;%r4$;$m znr2gX9_SrtRm?XGz_pAYM05CyKASQ8Nlz_-Ea+8Dckk$@$+ddjcNT>6xqv`aKL;*8Umly&GIfc69cxe38j;<5mclQst1?d6%`7I?Qw}HgN z555{qUhEL0@aTgvgHU)Ln!;utLJjVI3Y2o6;v#T#pZh=}HVq-%-}z+d)9CZ`(%@fM zwD*04hu(_KMwi2$v_wLN(UJ#K@->&MekF*AK=@k85pcw4zJ!eT2lO`2xmF-DIu#HN z4XQOUm+&hPj9rQLV*pZIfaB2%MpIV-y1sR&LlVi;LlbXOQYE z->3`klMk$av%=1#{g_tme0P^lAzGiB?1n7Mm;xWO!h65a+2Q*?mZPb1eg0>Nk(?2hImW9ZsiAxkh0a?9) z?|C5^nO$QNT$u06-)-_Jm_+6mY}|nQ`r2jAVW=*e-X2)ucsum-LWBl33Zoa z037C4+J%DjXLC>HDT*K#9MK-o07h1eEfbj!&lz%y$rI*^C0XiFvy$kSB z>Ji-lu$S8uLl5VsU8rw>JQf*9CE@wyrOHsBxa%Fj_` zI{8N@2!md57=-&lFANTPLD)SEkUj2)VGwq@y`bCa9|rx-!~NhWdmD8) z1_%55z5P#`Fp0ynUri$lIRUrui8A(f2`8f2j_2Y*IatPU9092KIDm*Y7Hu`HZ*Xq! zMx99^GmZ*0Ynshvnx+)um7++e3rFzAYb}g%n$56#9J`rCgqP3ovOUQIfsydz>!I9A zyITNBF2yB&{MhYe+u1Oh>O0kF6n3Sy$WZ6JdoVlyV04nG=OP`{KO9nUZ+9!^yw_yd4%_W^oWS!jwzBD%*5!ikI*(9c)~dc*Nix_EYv6d zMe$JP4241}=SJq=Q}0qaZIEQLS_Hsr?qBHoj*KET*u#0AvLQjTB*O@lNY0z8lgpw@ zZ8E1y=3>KenP#I>cr!n)81_Dp*X?*fOs;efp&&&cLoXu? zfW2KrYviA!6qPm{++5Ei07^#M#dW&at3h^IEhLT##sY&EF_zH*(TxQzYp7KZpoq56 zTmgV6mJRCehU!?cdfCBEg8jWK`JI1oFwFbkbDB72!7z3Zxy@li$Vx8u8XlZx z36Q4K;RgqzO$5*C*#N!|=*b8jEAMA9@bruL zJ~2>E;-m8YKunwTd76UP&=U|jOy{Ve%hpUQ3F?;!RK8cgS8&BsDQQg@i`#`2rstZU zdifUPT#B04?Hh?h{vDq&Z9X|D_~0%yn{h4bmmc z4IDO;!e)^T9lj%4EaE8BrH`(TU`#LxSBfQS7z-?7dlr36vmc7;7>51+puZdL!wHE| z2g3%TeWN;pGvWdKeF*<`;lCdIW+U|Q5YCYOK=rzKmV{(1id7&@?Q;>x3ZZ5fAoQSS zAE5T3SRab@`c$NgP#`&kY=sTM?+_q#p-A_Liu3?@A0YJs(moW~ha&q3399rC7z#Fm zjX}{aCPQ`)iuD1~K8G{fhj#Z70z!gfJ^0BtFLEVpQfOoWcM@HrmdtT^(C@9qClDByZuvXe+k_tl&k)%_7&?$Kp|DN9RXSQ)Al z-DN4@Kwh|c)@MoN=?8u9>e(oOmeDz$>)K)WXm1aWhr+Wd;^j2LSiDRAp~Z?+b@uk) zR8qZhi-9iIq#gT8sPKwrse5EL#w=kQV>CUCPxhD)5Ec3VAr`tJ1Q+gHE-rvZUih^OJRM&1eXFvz<>-V5@6knaci zL69Fd1vmbWVP>6R83xO4u-9-;)3Fi)`s2_$855jTtxLje0U4mM>&{hkJx5K@o{^8;N!_L8e zp$1pznF?L10Bdk~u-`j4II6C|gYMjR(EaTzEIVif0&CCX-dK?aImzLq~atrL>3SFwu-ns(KQhs=gX~iz(`?sh-E4{^tm5WPxcuUm4 zb=Y>$i@r?jw(CFybeol4bZ@zEi+v)|-tMB`WC9BJ!o&Te!~KI!x02!*`82V0A08d_ z!d~y7NYAzc;}Tcs?sfKiK>tSv59=$?7=)aAd!57XVHkG08(N@s=;`k7cfwvbgetWa zXj&I&3bx>WwL5!94<9}}Jm_|NwOoTMaKGB!z5Rpk!*IXfKdh`ke97=I;CK6n9hlPk zE+J|x`nos0hn?`KbI|W^8uTu*K3KRLms(FNRzRk-Wra{z*tUg^?oyAX`@LS@8kWFe zuh(*oRJ?lv+y+Iymn)ZawPg7n?Uy|M z8vRc4rmo0lqXfP+65BzmZ!Q^nc*?5uJb)uPtMouZM8i3B&><1tIXGR$52x{H4uTX& z$urRFY21`pbd-a)@89ePc&lUb`B_%VzIUpwU51SF?G(Q`6~ScXx#U{T{%t3vW&nHbuLR zvlJ~cXk~`0rHS`Pk63cMfT++wjW0;3C^g|*F_~9%*YaK+eKIaq!1s6IdnIM%oNQyFU*Fl&IM!}2s zNBk!|;J@8I|Lt}8Z(oY_rQAN1<0k44Q(82JrR{tGV#YrKtuy^N!XMBg{(wILtu+3C zKY_c%{Gr9i>>fUb!7kyCK7s5r$UcGGXOQrx>CL5$R8IENbb&EH!z&ClIt#!5K7<{4 z8l(Dakg=^*JfruO{&6t9oHLU+kK={v;=wM9_#P!4qZV+O8Vv3@htP|GMq!d`6Mg8X(V|C8lVnkNN{c8EZwC&1r44t246aulSyCzkJdYzk$XF=Kw*dh z)H+R|eMsu^sgt^AA>nP46a~JOTw{p(DX~&K>Eq*JF)$-HB>+7CJzF;5Y>XFg=^1&A zve4+pPMxI`B8Bl6TJF*NLhRKc)Is={vAO?36V{7(Z^uPxymda%NUeW#-5)*sLu#hX za#-u&BKKj_7CH2aw5y7QZV`*(Zjl48NV}>?*DYcZ-7T{36=_!$>A6KLy1PaCUXga8 z$S2>M`kTK#e{(uVjVoR2?U>8$EG9RQ=n#xd)Y(A7Tn0h(z{)O7l}1U}8B+i}?X>7E%AycfX%O*yVWnvH-!agnqYgJDEy|F?imWt^~i zG!=dS!BxI9;6SqazJL8JX2&#SC`K%FnU2z9gKux1zkT=Q%{zYfCAzT3IN}jWQKTB9 zpNFg*9n1xZ?VH^#{8$_ zYs)*Xw%nwKm8o4fmElw(7M-DB_E0@tm{#%~SV(#V({^YKDb037{ROI=6W0yNY>&g) z_#mR`5BfrGF@-4w%8tgdz5?Q{%or;0qY8S{f>1mBWIQkUOaTEjk56TJPU&Lq6wgt< zuNqtj#{n^;Em{Eh7MR*cf>MQ3pL=P5ui_XlJ0_i`!GEa2?+0Nt6e3*jI`TY$ZlCDr zX>Vcz3kz=?v*ZGw@tEiEOi;EtYcfI)P7pXO<42A}w20;SJAv7wC_-WieUB&c9vx`h zeO;&%jah=Clg5HYCbvkpxj^jsYB+Ib=MqIAgNE}Ddsn-Me3W$Oa8fL_E|&6*P$y+0 zRR3&uSw4`;V&C;H@_1Fm5`Wk2!DJL@^Ljr$3h2tcsMD7gtPa7ggw1$RF1xLdt)tzf zbrdK+JrGRM7W{7R^7ju-zdgJLBG)VI`-Cuvo?1fwhp?NONZIiSnNVO z64jA^lJ}jtN3Kv|Z*R}AozjL)#%T^`aT+!+dAU;gIj zwyEto;JUke)%`O5$DdEdv`=*;tl0YuOL*vR(tS$mh^^X8XkOgxf)bUbWLQCLR{j5c z_UrRm=L8ZKJ>&@=(`PNRz;o2^uUMnb&V(8>JJF;napc}dT5y#Er(@}9TaO#};wxY% zZ2OA^YwT}y1D&gT#K>^xa13eTL+r9rCqjkYn?fl!x{^L2_Io z<%K-%D9jlQhJB~kPnyzpUU;)oRUe0a0{~wrIOu!ND$Pf8)8z+iz>|>qj(gB|Cb*4i zt>ZFH+EsjYa?&Z`d!HBb&(1<>6REGThH`UuQC=Z>I!0RdB$%BPh4LGgemUH<_7k)C z6)QJ{ZiecQKd@NUBEm$l&){3FqJA7(-WYhC$%mTJz-NXUNnNa##VT3j@UU`FB`Y+W zd$;_27$pew%uKCrk`ONNX^FggUQR%2A;ZK%Crj5Xo7;|V+jg{}?G0-(t0t@qyBO6} zG~0rRbQYexCovr1f+5gA{$T ztN$o-Cj!fQXH?jU3Yw1?1fLQdbkweNNmi!J4|@su%1lN+)_QKd(U@b2!L5VEyt!pT%YUs%g4e{ZWDA%sVCyfu{MY(EM2UMsADyv5) z0uH!5h{@0#FH&b{c!3F>&u(HHDR`VkvslxhR-3!x@Hkk&{&)@NJA5d85(XFimqzev z?9ir%R*(aP7?wNwqM9sl67VZRT_}s%%7aQ`(~%3593+u9q)oD~c9?{voyP2QA3>yb zX*e2x*0R6ZmO=EFK<6A?0KKVg=z#VCC55>Yui~>vJQo|CHM>!P^H{r$>2rw=Ko3e@ z{^cj#)vMaBUX{Aq;W!BOvu?a0Y3LQ~m6Kuq$?C%VDlPGiEL8EXMNYg-yE_(daEW(& ztr{L(gFicEzG~Q>%T_fjNSM=AJk>4~xl8edn^k?T=A*V+Q|Wi~%Pi8~(sI)BBcL`G zpC%w;Q>=&luE%lfCiUgBS`Jm-5!_CZzMMHQt^vtLem?Aze!}DOvF^_|GvWkQOD+#C zw{=l$>!PZyzirjl@^_D06xRZ>E13Pe|EPv-pI?%`5mwPe_-Gc6q9jbwyRse-+XErW z2SOR*4ccvYnWpT{#D>N)Np$r>y0%;3a$%&nUc{uE{Kvh^!|XaF$GN}YdKVS-E}V&R z9J3TO#0um1Xzrn#pRjKYN!7qFyi{_eq06e4xDhaZHFWt>&XvCYxl+3pP&?F1K|j43 zYh7dQ)R_1+CfiQFcYPL*$MJB9N*KNx6PNnz?!~{-`}yf_%?c!TM$;+~;Vw@N_tVa3 z0e~~OR)Mm1c?KE4g$n?0pHm5nHePe=0aBjm8+z@DPsQ_ebvDti_YAT+a8Qq)o~?3) zeg^Sm#n+c?PqE7B*=)fpi@xYjoIA-ua;9%1c@iTy*ty`srN(Xa}N{mQmPiFX(0 zbJp~?xw{3W{j5T3Qwh|L!fMZDycQqF$+$g? zae8Ai_tK7LDIx~>gKe`qFQ29CKb3rSqLYEay1D?n1bPXK7c_x-uC_eBTL=vI= zfk! zZLtIx!@abO(wRDIYCv92k!%|u*_{f=czy{_H@L~vN!ws>HQ4i8J%^HTM6COwWv71Q z?_C`s%M|N6#i%RAVwzGAB;Gq*w#-!yO`ntWsTecNVA90Hq_2la){cB5D!FJt+R%a_ zVCAZN)AashtGjF7I^hp8-li7dXI}7bW!cDPgfcIv7?8CtG%u=XVRUY*hesj$5q@YE za3vI6X@~XL!gb5Y@;+&G+ucHYNjt2<7%E%rTe2J0qRsou3gDNJ;tU6RZ3m?5I8%)I zPIdtih46qHEFR*+!0@oU<-HedbiQw;?Y^G;h~8a zMJ-meBj7uqyXB*Bk#WfKSxioROinxm#LPywg>0&o=6)q7-L1ddpw!C`x1oTK0L3RS z`mLMPM0V+Q&J=2g<$5~RRNYN90_j^gwCFK2OX5-j9hKR|+4~OqyGZGNI333XR?ovp#-(&=*^(&pgj5zjqgghz8QSSy@y;}Xd$sdqBSP4fb8 z=-j{?7M%`vf}%eyI^hX^5Al20f$v>T4@3GMx|hyU{gj>}cRH;e)t8?k{R|~H15Mj^9Lu7b@!#Mjf*{;o8Pf5QR~3k`FnYN1q<;y@#oD?Kb~gkWfhNKn{SKZ!1CWC^*bn<-^b9*36ta4K$}&>018Bo% zw+JZQJ3RDygs$;i??-2a--E($&xubHtBV64_PHdkd-(dDj*|GD0>OQ%hH&OXIAaKB z4urECAPjs61BNhgAPkBSjFc$sFmw08(8)M+GrCU3z?~38UKD`)P5VsWi8v(U6_)a( zso@llr>g}!xQ%CvG>br*u~%JexSD%pN0n9!QaM!HjNJa>gp`|}g7hZ!XNB691C$rJ zogaxE)grFO1v`xl<5a?f(f759sW4kqhGJ#$&iZJihlMC~n2^9SMjK95kt)*0TXpZ+ zC?pu(iRo;*o|2fq?9kM45=Y@&BGjs*h-$eD>$x!l>HV2}eI&S`folo90LnxaLV;NBJ1!$YUdZ5^dj0H)Jr3q- zWz{Hd_#V-1+0a4TAtzg7U&i+{9rTH|rEz?z4XS&d)j5|u%i=Xz9Kdem-0md&(3Mo> zf!G%e*paXk(&*^`O~syO4td}OCg1Zn@qz@pu!@anWlYYJ!n;g)X`M)*7wRouH(|j% zwQ-~UIjNw?3EiKYo5a#(vE<6FWkL4j=k9U?bLCJi`E->FEs#MXUgu+ql%sNt-b_aD zcm*Z*UASD%M5W`g2aT?l;0%?s*r7u{5l>51|EjMV(G*1v0CgF2plBTv432Uhtl=ul zU<#*eM^7MZV;*0g)?E(qrQvR`+2Y$j_*QfzZ>v|_1;M94i(cM#aRYJjyzA^Anx0Pk zliwk4rCVKXMaF9_wk2k*ZGL&RWx<#B_7u)Dj~|y@-n&O}JsUxZi3b2EkXa-!LE$Q} zFgFIzmRBuTsum@38K=KwoSqJK(->$PwjM@ZUvFBKueT;QF9{9h%htm0A5a@>I?NWZ znxo|`oGJ{dFQO&xfK1pJuq~z+xXIaMkQN@gp|GHbQ0Ugyq-8qrXJo~HGqz*}BeH0@ zUXWi4d^BYGIuo-IJL+mlg)XywCrIk^gdIKHg23ZwLbSV0e{+>6hQuwfu&dbUb=|kq z_B17NP>YOjUJUq-N(}EVe2%xW%fwqEYoLRsL*n6}B!tVz5=r*@W?Qi3SKGax*~FTwM!KFY^+_ z+V_IyDVl!mOP>M`qQLe)0|~{+!S>6A@OO8ih1Pm^*N5l0T)!=#!2a~3*_Hy>RPtOt zW)+1(K5$9u+GQSe-r_@;p6WU4QeqO{(kwY65z>{#5utcmwR*vildH52tPr*Q?Yn0$ zf8FteBDJjVJ~}qyG3ylV6B;jGzIv`&V>u@3qvMUoM!v@<2xHGjOYu~Sk)#NU0YF#Q z8@t!wM1($%X7O$NR)B4`78xomz&KsR^M-|gFB>=pCwHyG8gmYpt*Uk!$3fLV5g~`u zG%rq)MA9;Wj<;AWmW^!yZ&qjU_+c2Iw|)S$A%FnJ=d5Ej^6|k*4+8yId&uUf9_9h7 zi}0L1UdGd@o~a51QzumxOx7%j=R1$%b6Adf@b>xhzn;E*{>~d#=1zM>H)Wa&3sRWu zZRhZY-m>C~Mg3#2C{52c3@_W>%eHOXwr$(yUbb!9wr$(CzkS}<^VZit(y8fGPbbxr znwdV51docbAV<(nGkF5dQ1`u{(HQHDs1^JPyInB=dopkWM(fW99HfxUm4O}8wp*Mz zEp$)Rsisv8vS0*pa780=a`_j}ywS|HPnO>Z40rZsYZ z0{+=HuTa(+fULqsV6?CdBx;xx9g?A`8v^W`(ifmlyKla>*?AOsSv(TgghQUii*HwP zE-!Y~&4I)u14i1!Fo!e}C7g_`aaLau;!I(C$G9S5&}BxVa>wFM%OK(PRiQtYjccfS3sY`?kfp;m8rQo_v{m^~o z8rmaqpv+h?s48es9;zc*Mgo=K`-&^mzf~R`dxMfYFOO`x;LmaMZ`a$#kV8A`t4}x| z#(f$%r`|L-&rdt|$uYEmGg@^2u^h_|*he~NK_$$^`XhR6PM4RgET*`(YYkmJu0<&c zKJ+piy?GpnalF{r_!;5p&5a}7v;4dqz$8f0*1P_csLy7B zps<;S$D{tY7mgfzysdkDN~J*hV?y?b@aXq45O2&heb^ARy|#+3oeMApo69y|sIZURv($bL?R`twZWifWyx9Hp$esQOiDL}0;j|wgztS@zmG4xpi zfb5#Alr==#Q_8Epu-v*4cNqjZw)`kByJ%4fxE}XKl|LlQwB|9bb3245=G3a{wOh+T z+L>ccFGx(UkLktm+bXU+ZfW=vezh?L)I7s&0<^JCUN}dfI^oE>B~62>XFS2A9Lnt? z>j{>DDY1ZPT2*sOs$=-MdKuqHs)ZY)Bq*e2u7IO0CW>yVx58KqWGni7WnltfN4IPFONg*0^^ zpOvY64{YKK{Io{j{)vePeARmegC1x>g+Oeq6)& zIasX2R-V0Qx@N!)I+uGsWD|f&HaoRgf+5f}3MR%nY(q{iSH}1%G5c4W+lFr@lC=?m z)PFal&LJV*utc_z<6d+pXkJDmV0z9|mPwv(Bi{x{Cn4#yapuRPi`{*Um_@N{=3D&Z zfv-{S*k?i(F9Ooe+ORj)Zq!)83Reg*`$!iGBKRP7*(BvOd)Sl1jbgg?#ZiOs;VDN0 zt_s)@mhh}b4&cXf0IbFJ80qrsDq><0LixX3?(!{@9j=Z=Y`7vAfkR>8BN@Dv95*s$ z>DKn?aB|Lu2yv;7RVaI%=0*w2|4N6=$j$@F`pw%HY%^V!Ze5(Vau#hTv+|W_Ajg#CLLWnd#ywqzJa}W3JQJdPmLn6xM&}{6V^2XFqg)802s- zLPsVVZ5WE2v1!>Q4++1PG_-rL6rPa^&*}`nqA5g8)7W>2?zxzhC@sn=pTIvkudlpZ ze6s}f#$5efOC06U8QWwkDAD?%7GZmMqeYK1hfHAHr*D1kOdeFL8(TC^p{@>{w^?xF z-=_d9OCT!mM{E`s5gwmH1Q*2sxHJNrC4mgpLn_THD1vK-%TtK{O{=tgGGwQ* zd3fi7EN51{;@d6I2xruUdo?H%1Hg{N!QD&ZAGhxXXW^9ZSmg-T#3^$?czF#XszP?{6oYrTlCR#} z<>MaGRdJC7+b-^Fp1`TXEyCRbq=BS`qJ^e|sfGROmHG{H^$HPv)5zU{TlXj<%G$#^ zJv90q3ix4!}s%Jj0VBlST>!Dg|s9S{6OC_qYj3MS8(atY23 zS-!=J;8{qobjVjvIdhVAQHZ`C$K zOBPmR7-DG0U?W5aTc(pSGRoo}w2GCS)_5mP>0DbzBulZb2O!ybtp}hrWkqvEVmE%1 zoUBQl@kf#5$W3CIiwhD7BP?-W$iNDGC@+2*7txH1pR_)fyC9Ythy&ytuCCdpvb12@%N%t<0-v?~%?N1JU<(eG@w$+tw}gd~0OB76$mS=`V*cor zp?6j$e4us>PmND~s!|z1k%)y8XVHF^>(1klu7uX#Nu}UG!(x@0VsO$^vY#CpS0ZVVaOnUx#BAv$qKT|saZX>Q|=Xji)E^e!_b;j*Y z2QXU(woww>5*bifBK)?*4XfLBX=+1XN5Hnn9`nk`tC~=1Uj$&LDj(`5PnBJ(n^9-B z&4y!NX8KS{>{f>EVA%9F{Z~N>&k-S>TsTB$A|Sf{ z5cMJ*oxF}>X*CJnW--OnS5wRZ$ntwduB>QO zo7I|HVM(>5nD-Irry#V`cpQk+dak7vU>!Sd9;(5?Q(gHsP^k`R(2NVea$WUvu%wil zBd!fxVfEgg@Gwl;me=eH7ieBfH0&m*Lj{!qhlfPxnAjG19x+OvmP+-zNw^IOQ?yIM<3QyaSQs9u$BiL1t|M8ez!MM+X*%OGg;>=U zE;LV-%NcG3Yr^38MIJwWB$l9&#q0V~GBG)+QblSyJ~<^(toLuo$|CwP08DDrIUYuq z)yl(hE&3^6xgnY_6wg#|{34EqK+Lb?NaIUSq2aJ(RCv4{_4~SpgZX_{ooWo?JQooe zrcLMec0IX5STP!Y=DjH%o>$1R_8tPt-m*c<31dBD4p;OwgrMnmy!}cwPJRNvDiAe`aama9To0=}<(kUcwF)P86WhTXq)-;N z8`Hw1@nDxe3jInDO12cwx>2x-&`9oST2)#qw{GRa^$%2N zXv}CMYpElOlMHJYH_sLz#y%!|2cUaTu`t2Uu9b~I#;TA?)Kxh2>wzAlpfTuif^kR9O^TpotD2E~1-b@jsVm@3KB7i=%REGkS#!jxClKHL#_PoWwrW z){T(B6C$qAimTI=5gRAIc}38{5F>DF)nj)!U#y4vD5w7gM6<$Et{W;xAci3GFrwp0 z^R>a_41oDXvl0b9nhxkf+p14_OrSVjs#KFfX!=)^?_cVR2ILrj2gGsy(grI>_?e#k zhT$8YQV|%A$9(3zRQknQTRZn@HJrh5=~*t===@mSO3IRE>E`r!Oo%S7JcwVlpP#$c zlu(2f%gv4VQ{$4DBTcWSm2fZf1M-RmIjmKfst4I5${$YFGaVkAz>ufag1vLTvM{+4a|X)#MG z-n4%VlakEWuUvC-I=bQjUv+lg`Rn`Lg$Np?kMVcRO^(RW$Vicu4Kt|3MF==djR9!{ zk7$&GSb)?n{i*uk?=*?J3)>blWGuGzO9vr2+^aaHN{Dg)oPh!a;ShVszc@gv9Y}QKwJP z+2xp;qMxA+$+v#zsNzcZA@~#heM9zY`cyB096LGxC%r77nVjG^lVCH<$+{BhH$zTsBqpctHPn1d_if?l!X-5X7)u>>=}Ol}ZaE4ypu5p)EfLTOC{mu2@1vh5kUmoUuwMqvjQx#A@^y zVxhY0b*DihXnMrwl%tZeYP^vP{ZB2zn_r{Ry0o$z?eNT-rk9yD&2h&fpsYW3UwM7l z-by8fN7W$RJxsrGNn-4)*2u6*k^4d4_A0tO`g|8o7u9GLEx4SUgDSm%Aaxxw_?Va@ zhok)JSbGRm)cp*t_$_inj9dYsSpHpZLceLRJC2svHQgfJ2TnG0O$d(=K!O&aa)toN z%P$9`5}fsf%RR?NcLtc$B?*H$#HH$|P}4J|XKWPH>&aY*VUPpF_j&@1R!pRYFMoVd zgao{FF^gW|dMwk=&l6i`u?|Z<_;$YTL1OUcUjUnra{<(PByB`XULhdimS$O9|^LcoF%DK4aC#LgI zUJoLU#4le|jH~jpRTY#J*I(9Dx&rDP_*KFby0BX>Jk~5|bzQFG@F%h!qhceShw$bg z?+RsIX8Op|CDG|I2Qpsbvb+7{Ym%=U_zunY3w3A zw-dP)%zrmqrA{SkWw^Z*&BzIof@@^YeD7eH(XTGbl&`VnT&#ZK?@pcCrdmLb3OW zuTWfcub;zFqZbqmg;a@7nB@4+T^VL07Z|GI>*vn0C<@*gU6uOi| zf7f3B8sw6Bded4d>i72o;Li%f`2Ls8wyfPH8|Xgr0frA-iUx`S^5C)RKqe-{UR0NN{cGo|!fN<+Hc zt9wKHzdPAaXl{+YI{qQYr}Kl9KC&+VgO6crI)>4jJKPvoC*PsKREVTK})67($_}YYfuEvDu9H9f+hVZ*;9rI z>i%p2kJNW}c)+*j%>KYSwL`*Am1SE%uknEPFb!}F_c~0?>~N4NPO|lOJ(n(hs_@dS z-00LA%zA?Ub_f0D9PX$Xl$f$2!Qea0U8rnxcKJTvyr1Mph6kwOV(tJhQz?bet^!&2 zT0#5i7J}9%3aqwAEhDKeTsQ%cACXlS2B zjZtwlgamc_>mf~|_+)QQO|UvPaNgX(3t4{~O;SP;sqm_1p-iopmj=22Mf9^11y>O? z57653hq#JfK&0C$#}Q#@MMyW3?pjX=$D5Sv6JS9w>SN-dNUZUiDAx_Ql z$r=2tDEvb<#7hM^X$X$3cB8tt!MzP+)ryb5D9=NHm_G=Jz*39$n_Z~ieS0TD;>)fQ zLfwthn(TYJ4+ud?dW=|{louKQaH6Z47r1FV39mDPr$%5tX=IgbkW!YeaXM5o zdm2PtS574V;S^ttg-*A_h;~qC9NTD~WDYPj&pkcOn=H;&aT2ql!?JeZ7p;ffn6V?G zX39D6bR@}G+$3r8DgZa*jEnB59a;g;MT_Vc7pfwcf4# zv$C|*vvOhOYGqkbm}&WPVX11aL+Q$YT=vG@hcBT_o{tY)DqoVs?1II%|HZArZ0Rav z7qz%Nw>;-9Jb&MYezk>!g9A+76qOpNnXCHfCWcyoj#j`_GzQ_pMA6||+kSQjXzT#j zWPiYu`%zI3mHgSaxHX(6!&&#;C_I$yXd9c{^Xd?>eQ9Y>+kidlr$J#)LbyPY{y~S8 zb#q5isy3tP6a-UHN8;p&2&s9DPnHZQo0m%CH%X=Ky-txA%LKnkFDeHouj%Nzccp$Y z58SR|jH10_hm9eE@Qrpa?_BybJ(#aNwY?e}dcfA8k`z;mi)8W$wSxc&3Vw$QoUiOa zv;_iWsS5&<{x};EZrJfD0;r(u0M&ZU%4eH5MvhIas-1tg82Y|$Gf*6tr4yd=pfXr| z2DW8Ru}i2Oxf=tQ^8UWB=qpPW-AM2$W=BM=t(&{JuniXF;v!hE#>_V4=N;bX@a%fsmp&v)B12atRoIiiJ?bLbo zJVbcd?8i3;mz_0A3L}un;}ZfN(BXR6!gb7aHOyj4{!yRkoEF ztJS{w)F^%2qvWCHV8OhbXHReRlS|)M8(& zMP8+Mq+mC4c;KuE0+S=o_5eeY8aP+iWB_635jkKHmpKm|nLS^ELMgq#p%{PLaemfyzfkG@u#iWB~JrMhEEA)xJ$!z z0n*g$Z5H4+B3RgkD9Ze!r_=AQ|Cywk;sAZ_!##sq_C7p# zBkmm2g~OcMpN*@Icj^I{rF?TRu2{`Z)7yGzk^L&g-EhfL^=ti$?8clsbRm?be0_-i zoA%n!ejy3(JLVDih2e8>d(2thK$U&0OhFkRR;*c9us7sy!Z~G>TqFC0(pK$RS2TW? z@BGaL`*hQbF(bI_NJo-F+r?AWyrm`ApWLixvpnXXz&Idw6-#s~g$}JOGOLuC#eI;W zCig|{5cl^ovx!l)Bjqc8fxn`-Ru+!_1-Gh%v{{DQWEt@L8-RCc;NyUYSB*dk2w?7P|LkiR1|V|t6|rJqSukIOp@T#&X7TBi{^gwgM$zCDWW7g zq#q?Z@J;A@7fb$X^n@b?y`2OFWyB*=KEb+TToD||J`V`N`?f*7^Yu* z3>^5c0qptcWk%v7eSOtBB!Q|{7p%t;D7Hq`hD*nw-m0W@u!ye1?Wt)tq>GEA0<9Xu>jeho?lC1aFrQ3Khd;?0GA`*!A#Bq-(Jt^b!wHmXi0ZNF?-&G=} zFr0{zvnO#5V0OjyZIah3{2?V8NkU!N3-gpJ-h<7BU#n9dzY{9@zJXR=a!y%s&1t;3 z$lVsB8=rnLu&vsD7L6Sru6nG;S)|rK*;mkxkiVx%_se@${3; zne87Wjf-}pNKEyihLNB`4;VAF(rg6BEd^8%H2^_i`$$_R1Ux$qML#f?i zJ#3M??JDayS!rN9QoG4q$6G>vg8K$}I(a?~YA2*aK)i!ITyQWJlxUP`a^tm4e`vXW zpD|ul%bKS;N8%N;wx7>Gr>C8eFdX>#j%^i$iG^x$S*dk@=If=(ec?3aZb^C+RZV1T zW@}OUYmSPrfH|!v`X}>iOKX$X_akm$v3iCaois<&_f|TkHRK+0Z!sCy@ zHunG+Gd|Hy->-P2_Wlo8MhT_L5y_AeG~`_FKYn{pGZk6}k};-xB)0lJ@8rkr?6)V= z`3TK#eYUQFR_oFV)clzjtp>+T@FY2viBJ!9YSNVtlezvdrTC{6VfdqO(o`qIj5&v{ z(FJyk>cJ^t%Bo?N6pKtQG7o4Ri))1+X76z-#e|F@@@6JsJaS!N&&btoIi?Gg{cff1 zmd4QS@Src3Y*=KY-Kff{EY<^i_H3H9+e0^R!nKHg;>D9gpmbRabKCsj%~F&tbfahK zY~<`cQdr zTlv_GT!6bqt3Fc5kaQK|DOjs==x(+hC4qwHgpFP{BjC!Cp54rfWkdycNpFVq)hq?V zK806OS&n>CG8B^~JMDW&j}raOkY!i8+Oc^_u}p1wF|jZ@9a4IQ6+|9dc>=IQPTIKK&VmilfF$Ss4AKtPTgT2cqNIEO8bm$; z>np(+V9y>CYaY0Y0_RPiGfr68K3R=Yir)Dns^ywrb+6&H|5?87L$nO95&W04lF4QT zD-yV9YbuDS1azA2ZtGUTqmrW47%tVSUAx*OHU{(h++m)v_?~d?ljGJ@{6|!zY(FUIX7S`kw)(;L31A()1$fKnW*Nd(>3cC|RbdBx4m49T{4&8e-xF10bWd7q z00pWO$5Hwz4u#wfQobBnfwY@Ch@~#7&l-&kHD95lktUB9_mLeLOKTKA0-vAIdkuaM z14Ie)xFf`wRp^#aed~&W$&W2Kw(~i-%ya(OpTG@1TkuA=XcFL(_XugZb0M2cbaPkU z&4+x(+>+{ci@|tO#7ffl;QjZx7BJ`S+WT>k2W`oM0_n-hjbc$3#Pme>a1i9k_K3f6 z*?!>3KV~`+F=ERz9t!2CDh>@&Nb}EiZA8%0T!qZylXo*cm9U(*nA$MvfT;7zVIq>H zQsx3VK|cF$KCeRs=$1iTuItv(3aPATn8iNP;=t%iynK*eMpJ;V+FzKb`=H+Ru2fey zK3{uJqm_1UzYJ=Hst-?|hm*HNQ8wO_L~}vghY&n6+i;?l9s>ghSsfN1G}JMbfq5dH z3bnHlbRv-~?h+^5VlF`gu`G&9z0qNyeHqXWHq<&+&@=+{?vB!Zf%3|JWJmHZx|=!* z1mChN_f|X3pF=sjmP?!0lATaJFHbL>)>OHlB(IDAy|R6n*p{91h!*MS4ulKNUF5SmN?mb%7-G%4{B{g-M&Wcg!W@|oxfaL zu?c$?=?p2@uCRTf>UcleEyz_7@nW0m8Y8WXo!_H9{M5LL3O{w|k|z#Q5bk<%gj3nD zAxi&4u$)MOOpq4w=KKue$)Oo#esPmrBED@0KBvBgJPj3)iYx;K@qX) zdNbZB6ZRE5Et4GWt)l_tICrMkyct2Ii26ic&yjVXAYaRpNmY~r70lO{B?GLgk64wdcy1{5aIN&B(pl*%G*>Tws{tJaqzW$z)8n+eRX?#Cf) z3|YTmJ~M;4L_Oow2l((>z9J9c5DAc0T4SH(Ey)cYv!DT&twp_pas2%~|7&yAR?1k& zKy3vvi76n18iQGv_i}lsfMW89I2~FT#)59PxkYC=ef8V)DYAWA>)Wdi_9fS@$Bg;# z@A`+&_vtR(&YVSuzO~OKJnO?o7lHft%b#=OJ^yuEBjtsD&F)NL{44$myG80hvgUR7 z8Y7631i$Fw(xvtzeq32qC9C!&UBNb?cmx2~Z?sR33ilg{yPo;L4o3pnl{*T(oxAI| z?`jGcJM*!%yE~ihhnP>HTJ4^3q?g(});tt-rwJ%&smA_5zPuu&7>)$Uo7 z##`4D(LEx`=K&sAlAbBva+gBzO_nO%5h9(Z=AIsKPRs7dWw}7lMtM0Pl)7-4|Eezl z_y7*ONf~W8SeLYEJS?2~xIE(*W7ldrl%Zw^;WTkuGG)NFV|rE{v(pAl#iq@b9hFost3?5E3G4Gokc4 zw1DyFV@L%p^@@f3h<;Q#2S_7~WDduYYn0CrJsUM-i9o;O@GA0|%yZ%eh7(F`i(M3x zpF(sHzv9lTbY?F373KVV?fN}0z~PnWGL!{Zg%#oQD9)<(4WD+zhs7>cn&(-ekyfdN zK{2cI{(E^z;22m8xXGs7&*zq1nPr!msl&ZE;p+A)}W|1@zUFbCwH z0N0&GHVHCz%h{3$FBW&nE@iO+D2hvm6*+~;6#!jQ{4qhFj$XDXpa+7MZoCYQ{P!f$ zEquHmsK0A}(g?-&#hx&J`MTTd{Qwl*BRLQyr1Yd*vy{pU-Ei&9vL`(B)Kf1{u#abM zR+D?E@r5Wf2(MEpk27jMi%wZzOa}GFsN-z1zF-ZKvrQ%J1JxBi|IEH)A~6c1^>}z= zKq$6qE6k$dFH;s2_@0vo{Jww<5kJTl+~vL^_$Gu;`jq);W$+)@*f|gJk6%x&mt9ud zo!J?^{3BpAzMF-u^|imoHuE(ST6veD)Pt-|??9uq+J|ELT(vguyQ8VZ7dO_eGFogh z-fo-`1>}*0A`gmC*wUUvZ5w-)MrE*dIG^Wxq<^yU&tBajI7y?+1w1EMiHwQAWnZyV z39Bn&+b%Ml^s@^dFk}@v0o#b7>117lL&{i>6HAt%tr({R(}A^-uFJf1*@qIk+Y(CjA4 z$``q7`4s!MZygTA)C%P=BagmZ^fW=s4ba*nTtZPZd_n=Q<*K`l%>Z!=hHsg!jBafo z3Cf-_JiwTas;T-!o06tE2NSX$%YF!{gVcPo>i!znD?O$${+5=BhlPD!=oV5Bad`tg ze69Hs2A1FEMsLHuYBiZ9!^({M`}2h>Ij6-IzRS>{_PHyJ5!f1;LF{>Q4#GM=L%P)vR^Xa-P$6~6Ab53fjv?WM;w|oCa%# zjGA8h$;IY$yMJF@%YomLTybjDq|Ia@r+XdixFQK7KpqyJ8xC)!k1YYYlrM^Cs`H7W zYiO{xwAilRZ;YN9>ny@Ak6)PbDUew$&J9B3@cw?^P4{c91>cs?aAk2@uL0zFGIRs* z78YJpnv+0UiGX4DIeIAUeZG8d+rUAusU*yVCY!TzMJ@g~%NGZ==|I`N`Zi2g0;@g7 z6v;KrSmkmf`tiIuAhn?Zk-+PRxyEc_aU9bJ{(JzL0F>c-L5Se1S+rg?AUtNc6&10#Sw&E#!@C*wRXFazrm^GGmfgLlC z^qSVG#&iM1JkEJW)>KY*~L&fwjh(9xfC zb+Z|Pm;l5|i|`#Gl`G$ez@_MC7UEFCTFf-#6pSo}0Pz-y3KnnhDF(}Vih%J&ze`~O z?SxM-6p#ef`yhhQ+K%s5oG=A%qvp!XENM&|fJwT5Hgq2Jq;&v+S#PT2aMH5RE#y$t zbAQWFOCj$KyG|#Zk;bbNq2^{ry}zPYkKwMpO$d^#hIGoQTtq|T0l>VY6r6bnMP(MJ zTEQoe5MXSdPK=L_%XdrKfy#{&>siihkjYW6f?()ZCFm!d%Dhk$B zt=t~A8f43WcS+FUU@bNdZ-C#f(QgnN948fMLOb$Pcjy$g;}XE&so|WorvXhQFepM) z@GBKiJhOS@;U~_V_hPGGTXUNNJSa+Y|EnQyec0Jp>s$7RG~r1krK{r!K$Qbn%BGM& z$r$o1ny;7iY-O7|82gn9sC7Hk!VZngU_3;Z)nWR3D`jzH*|mp4#-_@s6o{*Io3f1g zZH9)}4+E;lF;7l|y}Eo4HYZr2##$8Va|5faC!4N>$(c9QZn0kVFYx(2q3w6+hWXGD zGz@?0&z;Yv)j>UYkb>DhCgb}Y!Ug$ycK6! zqtAfaep=qr_eG!>A)g?)X4E(s!oZHdFste*;wQS*Q~@`UbHScZKOhFpLAv!_+iibo z3SR2KA5`~hGm|V>IxW_><()2V6M+Z`z?m79OK+$onlTPKyR|0a!-WU4bYu)A7%94e z_U$i_Xo8w1EvEE8L#eOdmM?eH-o#zTgH|Thrl6WBmv+&gQSOJBo<M7aHf{fxg0eVW79UoRt!mg|T}o7qQl;YA>W;U3o+W|!%+fJPpk zq%n&-f4B{e`)2nlyaFouS<~J4N$JfBXVR|i_L03rJNPpNVKHR8vkT+=QsW?aH&I5y zB9zLp&={J(y<34!ta)UOyP^x-NpXx9bm;H^%x1)PpOuCvx0Z@17~D3_H<4IgLYIkk z?~*$7QK?8rP)&?g>jKzAkDRx3{5FV~eVwn%W3mJe&nyYis~B}n{P#Ew3H2(`$>KPO zv-;znz1PtDel{)Na30-LSul+iY%nA*tU`EAn&thw+c5QbyP^T$10HseKN){|Tx(b= z@GiLj_IX;l%zA8(4Ssv-GF%#l9+Re92PFF%Pme2V_+|$lQBfgm+Zr_kIdCXjEs5&s zdbNQW0{+oRU74}rruVI+o_<=S zT3$_aVr&aIr;^H`nZBT4D0`$J2E@SczHqr=O|;3=ZlAU4a&M9X&#Ve&cDG%7J&rtq za>WJDaYGbj34+)~6-UuFnQq`(;x5ugV3YMqmp-(5l_{y8GRzrLR?=xeC}a$vysnE* zbnYI2m1DTeJi;c};KXWhJ;h^QpC`b1^TJD?)N)i|pygu1y>NJdu|nn*Mvs5@$9ept zg&-@tMmSb-dS{p=OpLHCp-F%mx`Ecu8!>gXbW08xbktwn=O(=fBtsrzST~j=OoFm# zk+z^wd7IN4KJ=c5-dlZ#z1iN$zZ73RfZ>#HZc$`cer(J z`Jn7TevLz|^V8HEM)jgFY!#WB`PJdb%t&f6hF-L$$wfndiru9Qp5;0otUkk{D(n=x z??BC!AseC0zgTJf-O_RkoAl}wi+i^ZYf#YETsyI}Pss4PW%Fy+3IJi?_`rr^+NG&i zB37S#ePSqGndLWZ0w6(It*?x)Mh%DKAcC(m?AGey@af^YM|x|+0rwoA*lE+`*a-Qt zd{l9kzbe*8v9=oyNJqi?T$7djgzTogmz!u1V<=Ebc&uZ=TZt~y!lBYkM7SE$U8ci`>%yiW6 z57S^a*6}Y58N+ANSj$nsN>^KNe_w#)6vTGO0;cIqcSei;ME#t}N*?rU({k!fHB4q& z@5G`SpIN2F(;bSezXXJQ{{oP$q2K*iqV``|+kXwj6aa7v=syks0MO|_`d@w9P6(V*DbN#GO)Tq+*EKnUv{P8<2WDZ%P z&mFY`G32i#XaW4@LH?P1a%l$ihXA(Jm`AMXoY6P$G`X68OOn(Gc%FHRK0xUYx;mb1 zbclv#o(3u7Q-H*?hBRRBqVyH`=RE=vsZe|o`HhM~VqvUeMBF7f+N$qdF!~#S6ygX+ z%BkzjI#I?revN1=ApIV_yg_g~9vMa(#H7?*q0dNp6@ZF?3f86ZhyLtyql!BzIUZg1 z1}VB@6L|M1)dB+^yE{q^_pcfLiJ5s zE=YOaM4!&anldyY5P92cXfpT~Oe>?Mm#8>+-DZ3|w9$TNi}&!DF%(y-H zM`ijC8{vAqwfLzz5~LohN|v|V7P@UDn89PHR?(@bMFBN4WIeIE|r0< z`Q$%=^;|9)B51}!S{g3}IZ=vg>*H^g!(V?p?6m({u~Gks{aurg6}1r1wvD}Y5qsI#Hnj;fY^ST+L|h! zb7`hvZG9~nc42LQtQ^W~!&Yg+e^}C=e{zP z{|;_a6-V?yykF*oP(eTbIAeIwd4aL3BsP-QwPPWyW9nf@*G8C2MbP$l8`?0u=}I}7SzpDL{xs??u#E1J}3oqBC8jIIguo6xA4F1rjS5c+X@PH z4qJtxtsLLa2q+{)7G2^>0&`kDqG#)?&tQN&@OfVY@H;#?cYd{+;ws0|R*g%Xh1JgH zjdJ{jUEVwO2TBLpf5s)$zfI)b8DL`65(n6C9@RtEL`6t)Ocl zmTzDr1ad|Y9U(Lb65o#rfkBPyuQM$21W!biQtIXf#W0JFFzI(dH`JyqD$#HeUYT+r zlbSaYojyU0c@fIs7iNj~@K`zwjVZX5T-j|VGvxZvw#%P7be8M4q(pA3)!pH7fSmDH0{B>I9uFC|tRpox6SwZEV8ZJbjfA0_91ETR1^XA7Y8TC;`034A;}e%e>8IdNs3W7C-eo6V2L6-57^%>Sr+ zmXZG6wXy!5&PZP$epOXoTzW|!1~w+b9v%wP?LN{FXc8yn&}^M}SQ{5m@jH8fI&4&v znm?EL26Xshy*Sr9n14~HzdHxoxxYSo+!F=9Z;Z^wY&J9i=^{zuf4A_`|BnK)0{~7} z{Kx&{-To1v{}$(Z#xyhbx6=h*S%d2au{xFB{mk(HME)Of&nk|umjo6-2tB1V&?6+O z7Z1!}bywejKbC=B?C`fJR}ythI24TEwY!5p?7f&NJ@2H4_+a7C6}yEqIh4fA@6?j z3{7VB4F;|*O5J47s}#f(iOg+zxK~T2a4~gvx0MNHZ;VW^NG>@#(0nV%gBf=>i&~cb zF0Xq>)nSw@6$IGgX6@7M{yMSS{B38FbGPx2jvWVRot?^1iuW&Lg8Y&rxzGmJq@3T@ z0@&03vi_N(h00EZj@7={py4n3D!sZP=jtpZUDg{?CZQ|Lk7yKXU?l z|LcMOvwL9b#@Cw8DRC^qK2>xSU74={*yjIa{y(bC0sx@>-zH*rayD?bFv54Suytl) z#5b}tHqkS5F*P-DW4SXadg?g}%Sx>gNgcy0;fOp=aVgHl)AN_A*R&kB>slR3h1nf6Bnq~-k zch&Z$`qf#9oAY~j1qSx?2zoj;2zrQ`>YD0y2x^*&Sk~tR2G-arm>A~ZqL=pgTIf2M zdg@w63Ob4!#tSMKdU#73N*FdtRI!v;ODGuXG9+-zc0;v5Ekl8E(ih1`sSWlZ$NX$D6YWmBM3RpI;x~U11?%!(&es<>lvA>87Ws6vmdu8^9a{u#Jcy S)Hqn^NSLCb0fF(KU3_JA>efxxjQNp}O-B{m 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/adler32.c.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/adler32.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2754a2d0d5f4ddc6ec3c66964d85eab54362f736 GIT binary patch literal 1481 zcmV;)1vdHs0RRC20000000oHv01_Pl00000005u=|NsC0|Ns9j6`zqE4=zUCf1=nG z(TVv&J<1CJ00000000000001ZoaI;BZrer>MPBt4gE&b=%Zx?pVmpkD+OZ1=knJK( zioj_qtjMLcF}YNEk)yc&_s%Tuq8rv|k(csC)b5k#6?; zLpW#QP3nTIehNbLEgcbyKt|-q5$HqA6B+;}9Y`X+0}=xMh@ zd;YPzrNOg_^GpqFIouVJ!_{lz;d6+5=HbpU3`~;YU`z|;@Qd@~4=_SFZAJYNk&0OEL_(C<3qr?W zjz+R8dxo}aLJ!nim)6$}4PGCD`TM}sjoL9zFOBXzad(6UaHrUT-XYMC_ECJY(6?{W zh?=tQD>$>jl|HQU9hbH$*29XmS+UOEduGjgzhXVCSZD9OVa?hYtNj8L$iA{p-}lj$ zVuzH&#pUdD^6TXE41^2oAPJFzz~)he8RG;zq9ni<%$JpjC|58W7A$mbS;!SB!o^if zH=QkjY#Zm7r(LGOZyn+oUEF1_^x$G$21giIl?<<6gE7`LOmDqDWPKYmYGOuhm|+t$ zY{Lwim_ZxHY+}qdjM2mxZJ2%&({I5XG$02pi2Vj)zXh?^KBE~nJK;IHurG55FUqaU#s80;Ug~K{~$Eni+Hm@F?gP09*A9K zj-!0Ks%{?sR}U4?WE#k8xH|jr^X1!jc{k8izdJzH8aysFb(YjL)g3i}l8$nBvW~F= zZ=-EGnoML&Aggni{+E%smfQi4;3QvGeH<;-03Iz`dLk}c4<>1!lh|ii48Vs%quxqF)zXV#l+-ch-|5L5M0#fJO;=b=Z;nl z4@Q8du4WhSr&DcnAI7xFMYIS)l{VM$A_7u(Yy?)q;Z8|H6!`p>x~hlRP^YP|k=;9- z()H?ijVa37Ue9WVuo?IJe@Umh(&QWKNA%SjR_%a!mz;KSbM!o4qfzyEqz|<)7F}fB6{1ubNMsmblkQY~&_kJr}fr5rUw8gifE?Z7fYMIxf$L{a*UK%cWe`J{jf3qDRL^pTyz+C1{g^T=U5{rJawod)2 jRrG&uf-BbB$y}nV9pxsV@VO!8S*okWnwkC=2grvNyA;!x literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/compress.c.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/compress.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4b3e65c8b9c4e930355c21a004c3f01bf8936b1a GIT binary patch literal 1084 zcmV-C1jG9P0RRC20000000aC0015~I00000005u=|NsC0|Ns9+d&vH#@NKlG+3Au^ zZdSFf9AQZS00000000000001ZoV8ZpbJ{o%p1$%|Y@6N<&Jl-SM?*5nU7)1pN}vN| zro)Rz*fQ3fkvLl-g--wXTS*3+koNAO^#kD5?zi85TCI3d^2KVC(DfzM+w(@N7Brg| z^kQCZzG<~u)kZD6AYn*q?XXIkt;U;nqirHCVH>k~t=>5I#d4L~NmVcH{9C+OiUK_(n zKtskU%m)3A*B?%MhR!sRqMq1<}MlL+8kOJj0*;EXxLcA1`#E`Nr&0;m!G4l#MM$C_3sZt4Z3PfT? zg1@V7?H7nivcM{2M0kPWDpsjRtJMw5bjRZ}lSed&FV!KBeIL?bS4YXJzgwt7LZwQu zwPxPv1F#TM<@>l$LBoCT-s_FWqp`LlTteXy1;y?{A%t2)8q4;#cJDmgecv4tA(nbS zG&P~*O39rx8foTDrsLl2VNSc#g>7bfN7p1~fm^~R#!i7*@6*T8cv>i`tfkotRLKOb zF0Nx0Ecw ze&t>?Nv`a!*cF%4&(cGcuAywQojS#AnG;##kjT7LpG&8Z|Ad9u@o<0pY0`V=wVEGH zARgjwME$=Z#F>&c_YL4GU_;efXLBZDN&E;W!lfP$hF=KfvZ>E`n)l^(Ub2&QQLzb- z2F1A*9#w`LkEC<44}k5Wt>{qxZ&A?^$YtmJJe6XiEs0~{>n!Gn7b@;M)dMcuFu{3> z9{T$^2eBgmDC4mfELeql*{tJcn&S5Jru?f7*)?2VjCMuh`rPeF=e=+Ml!MH?yZ*30 zdH)>F?(_`bI$(Pa%p5WhJs#{(vRM7(X>q{Y5%9;sNxrm{wC`8*xzicRWm=f&r?=rb z=ErG^m45y4SIaj>!hcVMpEC-+6l>nkr~fgYX5QQ0-R;9*>UBr=AIH7Pq(2%uKSeVA z^uz4B4T*}S9_j-#cX3oaG9HM>4wI>w9L3&t^fdPI##+#zq5-%@lM!0=p)q$Kr!>I( zN$49-tpW@UT(eD9tEU^)5eom)l%H(N_jS#$%iju-aC3v#rgLm-YFn+Qwfq;+UK$LG CPZ)my literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/crc32.c.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/crc32.c.i new file mode 100644 index 0000000000000000000000000000000000000000..59b599cae1c946188dd06c61afd2f5f7c44b06b9 GIT binary patch literal 4096 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

      NAH!I&)at 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib123/trees.h.i b/mk/linux/mojosetup/.hg/store/data/zlib123/trees.h.i new file mode 100644 index 0000000000000000000000000000000000000000..6e3a362a88657df92c29141c978ac51250e4d2ee GIT binary patch literal 1480 zcmV;(1vmNt0RRC20000000oEu03iGT00000000mF|NsC0|Ns9?BFRnLEekh~9rajq z!gj21Yr1*>00000000000001ZoXwcgYaBNa#^3j^nCHYHJ0odVOX)+1O&o|_sQpj~ z;kepIZE$U{FO+ilf3J4;?CPf@cP!^pKMeM)q;J2O`7|rt`!{m6m|rgL<>G!ZUoI|X z{(X7(=X`m6F~7O_TmHIUUdg+|Pe-S-^IwmS&SuB*=6zM&+@)c;xVwE=%EfYaIbY7@ zVcD;m-7N1Hi?3g1AAdPKI(uv1R_g2AmA1)Ut35{jzixuk zmQZ!XS_ddGjB03dDCq!YMpg}6jf66=vH&O%l5_DD=k<>=1R#bP*)U#GCAf8T{*s&6{J**B@;p^#h^6;v_d)DILeXwfD*DYvQmcNjjWg)*AU8qmG1y0gff;)0|N9}a)whM zYeX@aB0x{&NI-y&CDTYV#0nTq$$qi(C=P6%tkIipdcw$8lRJW#-u#l*(~bj!|Zz=s9F% zWTgzjv1HQny%d8nIiAW9vT|gl>$Oei;wXL6Jq$59N%jT4w0k@4`^KGE=Sox$yzXLsoB4MroOe9T={LP-Qv%TW&~ zt;x#hMnVO!QX?zj+9ony1gJIF7EqB;!5A-dB|Mxso^l(W+&Z3f91oBUPZS-`qV^0` zJ^r-yCy~qHCy~SPCz0nLM1~l{Qy1kSi|moe$NTeK|TE3nukJx)LU{WGV(r@Y0?gtQ*bh z!n82kYLz98Z8bm1s*Pu1FRLuY{em_fuia|Zj`69si5K^>YR~omKVCPNA;`gSS5&mR`+?(sFk-*}*FW7pY_p#OMI;Sz0 zp8Mqc^nXZsXwvhT{I1{UWAo?{njWGXw4El@Kjzn8gm_&Q84o}*_A?nOUN zUz4$=$-uV%Gd}F~*v}sy`f*A#uIq*=14$Vfrukub=;AOXj9_ik-<-7W`KJ!&`YBcq iV6JZaDZU=S8uk5@IDn~H9O56q%!jraV*dx?1tuKmipZq^ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib123/uncompr.c.i b/mk/linux/mojosetup/.hg/store/data/zlib123/uncompr.c.i new file mode 100644 index 0000000000000000000000000000000000000000..5d77a79a149442e3e5c6046b67ac25a1c7557276 GIT binary patch literal 971 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 Qhy~h%pK#6p1)mG*VTn=Y4gdfE literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib123/zutil.c.i b/mk/linux/mojosetup/.hg/store/data/zlib123/zutil.c.i new file mode 100644 index 0000000000000000000000000000000000000000..921aeb6123a4a176ab4f166e26881506ec9305df GIT binary patch literal 2633 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/undo.branch b/mk/linux/mojosetup/.hg/undo.branch new file mode 100644 index 00000000..331d858c --- /dev/null +++ b/mk/linux/mojosetup/.hg/undo.branch @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mk/linux/mojosetup/.hg/undo.dirstate b/mk/linux/mojosetup/.hg/undo.dirstate new file mode 100644 index 00000000..e69de29b diff --git a/mk/linux/mojosetup/.hgignore b/mk/linux/mojosetup/.hgignore new file mode 100644 index 00000000..7e763411 --- /dev/null +++ b/mk/linux/mojosetup/.hgignore @@ -0,0 +1,3 @@ +syntax:glob +cmake-build + diff --git a/mk/linux/mojosetup/.hgtags b/mk/linux/mojosetup/.hgtags new file mode 100644 index 00000000..10fce451 --- /dev/null +++ b/mk/linux/mojosetup/.hgtags @@ -0,0 +1,19 @@ +68e6c68e6cb50c045ba23496e7819ad49ed64df8 ut3-dedicated-server-installer +582c5bea1bf178b60cdc0bf0e6cf4feee67a9bdd ut3-dedicated-server-installer-1.3-patch +f786a260ac935e2555450cf2865e0640c907c4ab ut3-dedicated-server-installer-1.2-patch +068bc402ef1e4e8d31bd7425e29c9947c2a6bb62 ut3-dedicated-server-installer-1.3-patch +a8411b842201073be6ed73ab5f89905c67919306 prey-demo-installer +b67fa87feb5aeea9e449b16490e8416ec5c37dd7 prey-demo-installer-2 +7255ef72254048a6073ae90cf47d3e49610092ee prey-demo-installer-2 +8e4f3f53c34c5e82bc381384308616fae5eb63f7 prey-installer +3a019c36e58407439917f16f90f4c0a2075f4a7c prey-installer +46f3479c8070896f678e23fc52b61a2233633c3a prey-installer-2 +b7e19cb7b56d1e897a3f08a3210491ec2e7fc1d3 prey-demo-installer-3 +7c5406e784ffa9d7d4e778ef1596ab1d8ca36de4 ut3-dedicated-server-installer-2.1-patch +e1029725218c2dbd2d2b414331ecadae9f922334 postal-installers +2dfd6a1dccf9836cadee39c2a74ba56f4a9a2866 lugaru-installer +d5b64da74949842b4c69f98dbfbf791a522501bb aquaria-beta-installer +86d47398583d2d7e3aa174361c9cfc32d9608c05 aquaria-beta2-installer +922f5797c45070e72a8a34b87e3d25ac5d87071c aquaria-beta3-installer +390eb58cb9ceb35cd86facad0cbd1692a85820fa lugaru-1.0c-installer +92cfa8a3a6be8ae533b17f191e46c9fe47052402 lugaru-1.0c-installer diff --git a/mk/linux/mojosetup/CMakeLists.txt b/mk/linux/mojosetup/CMakeLists.txt new file mode 100644 index 00000000..1b2f0f25 --- /dev/null +++ b/mk/linux/mojosetup/CMakeLists.txt @@ -0,0 +1,749 @@ +# MojoSetup; a portable, flexible installation application. +# +# Please see the file LICENSE.txt in the source's root directory. +# +# This file written by Ryan C. Gordon. + + + +# The "BINARY SIZE +=" comments note about how much bulk, in kilobytes, a +# given option adds to the binary on x86 Linux (built with gcc 3.3.6 +# MinSizeRel options and stripped, uncompressed). These numbers will vary, +# and even on the original test system, become incorrect over time. +# Only choose options you want/need to squeeze every byte off the download. + + +# !!! FIXME: this is stupid. +IF(NOT BEOS) + IF(APPLE) + PROJECT(MojoSetup) + ELSE(APPLE) + PROJECT(MojoSetup C) + ENDIF(APPLE) +ELSE(NOT BEOS) + PROJECT(MojoSetup CXX) +ENDIF(NOT BEOS) + +CMAKE_MINIMUM_REQUIRED(VERSION 2.4.4) + +EXECUTE_PROCESS( + COMMAND hg tip --template hg-{rev}:{node|short} + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + RESULT_VARIABLE HGVERSION_RC + OUTPUT_VARIABLE MOJOSETUP_VERSION + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +IF(HGVERSION_RC) + SET(MOJOSETUP_VERSION "???") +ENDIF(HGVERSION_RC) + +# !!! FIXME: ditch this when Gary's curses patches go into a formal CMake +# !!! FIXME: release, and just bump the minimum required version to it. +# Search our own cmakemodules first. +SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/misc") + +# I hate that they define "WIN32" ... we're about to move to Win64...I hope! +IF(WIN32 AND NOT WINDOWS) + SET(WINDOWS TRUE) +ENDIF(WIN32 AND NOT WINDOWS) + +# Bleh, let's do it for "APPLE" too. +IF(APPLE AND NOT MACOSX) + SET(MACOSX TRUE) +ENDIF(APPLE AND NOT MACOSX) + +# And this might be wrong... +IF (CMAKE_SYSTEM MATCHES OS2) + SET(OS2 TRUE) +ENDIF (CMAKE_SYSTEM MATCHES OS2) + +IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS") + SET(SOLARIS TRUE) +ENDIF(CMAKE_SYSTEM_NAME STREQUAL "SunOS") + +INCLUDE(CheckIncludeFile) +INCLUDE(CheckLibraryExists) +INCLUDE(CheckCSourceCompiles) +INCLUDE(CheckCCompilerFlag) +INCLUDE(TestBigEndian) + +# !!! FIXME: correct this to new policy and bump minimum cmake requirement. +IF(COMMAND CMAKE_POLICY) + # Use old policy when it comes to escaping macros, + # Specifically the one in quotes below. + CMAKE_POLICY(SET CMP0005 OLD) +ENDIF(COMMAND CMAKE_POLICY) + +ADD_DEFINITIONS(-D__MOJOSETUP__=1) +ADD_DEFINITIONS(-DAPPID=mojosetup) +ADD_DEFINITIONS(-DAPPREV="${MOJOSETUP_VERSION}") +ADD_DEFINITIONS(-D_REENTRANT) +ADD_DEFINITIONS(-D_THREAD_SAFE) + +INCLUDE_DIRECTORIES(.) +INCLUDE_DIRECTORIES(lua/src) + +IF(WINDOWS) + ADD_DEFINITIONS(-DPLATFORM_WINDOWS=1) + ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS=1) + SET(USES_WINMAIN WIN32) + SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} shell32) +ENDIF(WINDOWS) + +IF(MACOSX) + ADD_DEFINITIONS(-DPLATFORM_MACOSX=1) + IF(CMAKE_OSX_ARCHITECTURES MATCHES ppc) + ADD_DEFINITIONS(-DMAC_OS_X_VERSION_MIN_REQUIRED=1020) + SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "-mmacosx-version-min=10.2") + ENDIF(CMAKE_OSX_ARCHITECTURES MATCHES ppc) + SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "-framework Carbon") +ENDIF(MACOSX) + +IF(BEOS) + ADD_DEFINITIONS(-DPLATFORM_BEOS=1) +ENDIF(BEOS) + +IF(UNIX) + ADD_DEFINITIONS(-DPLATFORM_UNIX=1) + ADD_DEFINITIONS(-DLUA_USE_MKSTEMP=1) # as opposed to tmpnam(), yuck! + # No _setjmp/_longjmp in BeOS 5 (or Haiku, at the moment). + IF(NOT BEOS) + ADD_DEFINITIONS(-DLUA_USE_ULONGJMP=1) + ENDIF(NOT BEOS) +ENDIF(UNIX) + +IF(CMAKE_COMPILER_IS_GNUCC) + ADD_DEFINITIONS(-pipe -Wall -Werror -fsigned-char) + + # See if -fvisibility=hidden is available to us. + CHECK_C_SOURCE_COMPILES(" + #if ((defined(__GNUC__)) && (__GNUC__ >= 4)) + int main(int argc, char **argv) { int is_gcc4 = 1; return 0; } + #else + #error This is not gcc4. + #endif + " MOJOSETUP_IS_GCC4) + + IF(MOJOSETUP_IS_GCC4) + IF(NOT OS2 AND NOT SOLARIS) # Not supported on OS/2 or Solaris. + ADD_DEFINITIONS(-fvisibility=hidden) + ENDIF(NOT OS2 AND NOT SOLARIS) + ENDIF(MOJOSETUP_IS_GCC4) + + # See if -fno-stack-protector is available to us. + # It doesn't seem to work well, and it adds bulk to the binary. + CHECK_C_COMPILER_FLAG("-fno-stack-protector" MOJOSETUP_GCC_HAS_STACKPROT) + IF(MOJOSETUP_GCC_HAS_STACKPROT) + ADD_DEFINITIONS(-fno-stack-protector) + ENDIF(MOJOSETUP_GCC_HAS_STACKPROT) + + # !!! FIXME: probably not safe long-term. + # CMake mailing list had this hack for getting rid of -rdynamic: + # http://public.kitware.com/pipermail/cmake/2006-July/010404.html + IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") + SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS) + SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS) + ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux") + + # Don't use -rpath. + SET(CMAKE_SKIP_RPATH ON CACHE BOOL "Skip RPATH" FORCE) +ENDIF(CMAKE_COMPILER_IS_GNUCC) + +IF(CMAKE_C_COMPILER_ID STREQUAL "SunPro") + ADD_DEFINITIONS(-erroff=E_EMPTY_TRANSLATION_UNIT) + ADD_DEFINITIONS(-xldscope=hidden) +ENDIF(CMAKE_C_COMPILER_ID STREQUAL "SunPro") + + + +TEST_BIG_ENDIAN(MOJOSETUP_IS_BIGENDIAN) +IF(MOJOSETUP_IS_BIGENDIAN) + ADD_DEFINITIONS(-DPLATFORM_BIGENDIAN=1) +ELSE(MOJOSETUP_IS_BIGENDIAN) + ADD_DEFINITIONS(-DPLATFORM_LITTLEENDIAN=1) +ENDIF(MOJOSETUP_IS_BIGENDIAN) + +SET(ZLIB_DIR zlib) +SET(ZLIB_SRCS + ${ZLIB_DIR}/adler32.c + ${ZLIB_DIR}/compress.c + ${ZLIB_DIR}/crc32.c + ${ZLIB_DIR}/deflate.c + ${ZLIB_DIR}/infback.c + ${ZLIB_DIR}/inffast.c + ${ZLIB_DIR}/inflate.c + ${ZLIB_DIR}/inftrees.c + ${ZLIB_DIR}/trees.c + ${ZLIB_DIR}/uncompr.c + ${ZLIB_DIR}/zutil.c +) + +SET(BZLIB_DIR bzip2) +SET(BZLIB_SRCS + ${BZLIB_DIR}/blocksort.c + ${BZLIB_DIR}/huffman.c + ${BZLIB_DIR}/crctable.c + ${BZLIB_DIR}/randtable.c + ${BZLIB_DIR}/compress.c + ${BZLIB_DIR}/decompress.c + ${BZLIB_DIR}/bzlib.c +) + +SET(LIBFETCH_DIR libfetch) +SET(LIBFETCH_SRCS + ${LIBFETCH_DIR}/fetch.c + ${LIBFETCH_DIR}/common.c + ${LIBFETCH_DIR}/ftp.c + ${LIBFETCH_DIR}/http.c +) + +SET(LUA_DIR lua) +SET(LUA_SRCS + ${LUA_DIR}/src/lapi.c + ${LUA_DIR}/src/ldebug.c + ${LUA_DIR}/src/ldo.c + ${LUA_DIR}/src/ldump.c + ${LUA_DIR}/src/lfunc.c + ${LUA_DIR}/src/lgc.c + ${LUA_DIR}/src/lmem.c + ${LUA_DIR}/src/lobject.c + ${LUA_DIR}/src/lopcodes.c + ${LUA_DIR}/src/lstate.c + ${LUA_DIR}/src/lstring.c + ${LUA_DIR}/src/ltable.c + ${LUA_DIR}/src/ltm.c + ${LUA_DIR}/src/lundump.c + ${LUA_DIR}/src/lvm.c + ${LUA_DIR}/src/lzio.c + ${LUA_DIR}/src/lauxlib.c + ${LUA_DIR}/src/lbaselib.c + ${LUA_DIR}/src/lstrlib.c + ${LUA_DIR}/src/ltablib.c +) + +SET(LUA_PARSER_SRCS + ${LUA_DIR}/src/lparser.c + ${LUA_DIR}/src/llex.c + ${LUA_DIR}/src/lcode.c +) + +SET(MOJOSETUP_SRCS + buildver.c + mojosetup.c + gui.c + fileio.c + archive_zip.c + archive_tar.c + archive_uz2.c + archive_pck.c + checksum_crc32.c + checksum_md5.c + checksum_sha1.c + platform_unix.c + platform_windows.c + lua_glue.c + ${LUA_SRCS} +) + +# Have to separate this, so CMake doesn't try to link in C++ support on other +# platforms. +IF(BEOS) + SET(MOJOSETUP_SRCS ${MOJOSETUP_SRCS} platform_beos.cpp) +ENDIF(BEOS) + +SET(MOJOLUAC_SRCS + ${LUA_SRCS} + ${LUA_PARSER_SRCS} + ${LUA_DIR}/src/luac.c + ${LUA_DIR}/src/print.c + ${LUA_DIR}/src/linit.c + ${LUA_DIR}/src/ldblib.c + ${LUA_DIR}/src/liolib.c + ${LUA_DIR}/src/lmathlib.c + ${LUA_DIR}/src/loslib.c + ${LUA_DIR}/src/loadlib.c +) + +SET(STBIMAGE_SRCS + stb_image.c +) + +# Disabling the parser cuts the Lua binary bits by about 35%, plus .luac files +# are almost always smaller than the original scripts. The downside is you +# (and end users in the field) can't just tweak a script without recompiling +# it, but even that's not an unclimbable obstacle. +# In reality, you probably want to keep the parser, though, unless you REALLY +# must save every single byte in the download. +# YOU NEED THE PARSER IF YOU WANT MANIFESTS WRITTEN OUT. +# YOU NEED THE PARSER IF YOU WANT THE UNINSTALLER TO WORK. +# DON'T DISABLE THIS NOW IF YOU DON'T ABSOLUTELY HAVE TO. +# BINARY SIZE += 19 +OPTION(MOJOSETUP_LUA_PARSER "Bigger binary but scripts don't need to be compiled." TRUE) +IF(MOJOSETUP_LUA_PARSER) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${LUA_PARSER_SRCS}) +ELSE(MOJOSETUP_LUA_PARSER) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${LUA_DIR}/etc/noparser.c) + ADD_DEFINITIONS(-DDISABLE_LUA_PARSER=1) +ENDIF(MOJOSETUP_LUA_PARSER) + + +# Kludge for Linux x86/amd64 bins... +IF(UNIX AND NOT MACOSX) # Just use Mach-O Universal/"fat" binaries on OS X. + OPTION(MOJOSETUP_MULTIARCH "Allow multiarch hack." FALSE) + MARK_AS_ADVANCED(MOJOSETUP_MULTIARCH) + IF(MOJOSETUP_MULTIARCH) + ADD_DEFINITIONS(-DSUPPORT_MULTIARCH=1) + ENDIF(MOJOSETUP_MULTIARCH) +ENDIF(UNIX AND NOT MACOSX) + + +# Optional bits of the Lua runtime library... + +# BINARY SIZE += 4.5 +OPTION(MOJOSETUP_LUALIB_IO "Add Lua 'io' library" TRUE) +MARK_AS_ADVANCED(MOJOSETUP_LUALIB_IO) +IF(MOJOSETUP_LUALIB_IO) + ADD_DEFINITIONS(-DSUPPORT_LUALIB_IO=1) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${LUA_DIR}/src/liolib.c) +ENDIF(MOJOSETUP_LUALIB_IO) + +# BINARY SIZE += 2.5 +OPTION(MOJOSETUP_LUALIB_OS "Add Lua 'os' library" TRUE) +MARK_AS_ADVANCED(MOJOSETUP_LUALIB_OS) +IF(MOJOSETUP_LUALIB_OS) + ADD_DEFINITIONS(-DSUPPORT_LUALIB_OS=1) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${LUA_DIR}/src/loslib.c) +ENDIF(MOJOSETUP_LUALIB_OS) + +# BINARY SIZE += 3.5 +OPTION(MOJOSETUP_LUALIB_MATH "Add Lua 'math' library" TRUE) +MARK_AS_ADVANCED(MOJOSETUP_LUALIB_MATH) +IF(MOJOSETUP_LUALIB_MATH) + ADD_DEFINITIONS(-DSUPPORT_LUALIB_MATH=1) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${LUA_DIR}/src/lmathlib.c) +ENDIF(MOJOSETUP_LUALIB_MATH) + +# BINARY SIZE += 3.5 +OPTION(MOJOSETUP_LUALIB_DB "Add Lua 'db' library" TRUE) +MARK_AS_ADVANCED(MOJOSETUP_LUALIB_DB) +IF(MOJOSETUP_LUALIB_DB) + ADD_DEFINITIONS(-DSUPPORT_LUALIB_DB=1) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${LUA_DIR}/src/ldblib.c) +ENDIF(MOJOSETUP_LUALIB_DB) + +# BINARY SIZE += 4 +OPTION(MOJOSETUP_LUALIB_PACKAGE "Add Lua 'package' library" TRUE) +MARK_AS_ADVANCED(MOJOSETUP_LUALIB_PACKAGE) +IF(MOJOSETUP_LUALIB_PACKAGE) + ADD_DEFINITIONS(-DSUPPORT_LUALIB_PACKAGE=1) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${LUA_DIR}/src/loadlib.c) +ENDIF(MOJOSETUP_LUALIB_PACKAGE) + + +# Checksums... + +# BINARY SIZE += !!! FIXME: check this. +OPTION(MOJOSETUP_CHECKSUM_CRC32 "Enable CRC-32 checksum support" TRUE) +IF(MOJOSETUP_CHECKSUM_CRC32) + ADD_DEFINITIONS(-DSUPPORT_CRC32=1) +ENDIF(MOJOSETUP_CHECKSUM_CRC32) + +# BINARY SIZE += !!! FIXME: check this. +OPTION(MOJOSETUP_CHECKSUM_MD5 "Enable MD5 checksum support" TRUE) +IF(MOJOSETUP_CHECKSUM_MD5) + ADD_DEFINITIONS(-DSUPPORT_MD5=1) +ENDIF(MOJOSETUP_CHECKSUM_MD5) + +# BINARY SIZE += !!! FIXME: check this. +OPTION(MOJOSETUP_CHECKSUM_SHA1 "Enable SHA-1 checksum support" TRUE) +IF(MOJOSETUP_CHECKSUM_SHA1) + ADD_DEFINITIONS(-DSUPPORT_SHA1=1) +ENDIF(MOJOSETUP_CHECKSUM_SHA1) + + +# GUI plugins... + +MACRO(MOJOSETUP_ADD_LIBRARY _TARGET _SRCS) + ADD_LIBRARY(${_TARGET} SHARED ${_SRCS}) + SET(MOJOSETUP_TARGETS "${MOJOSETUP_TARGETS};${_TARGET}") +ENDMACRO(MOJOSETUP_ADD_LIBRARY) + + +# BINARY SIZE += 2.5 +OPTION(MOJOSETUP_GUI_STDIO "Enable stdio GUI" TRUE) +IF(MOJOSETUP_GUI_STDIO) + ADD_DEFINITIONS(-DSUPPORT_GUI_STDIO=1) + OPTION(MOJOSETUP_GUI_STDIO_STATIC "Statically link stdio GUI" TRUE) + IF(MOJOSETUP_GUI_STDIO_STATIC) + ADD_DEFINITIONS(-DGUI_STATIC_LINK_STDIO=1) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} gui_stdio.c) + ELSE(MOJOSETUP_GUI_STDIO_STATIC) + MOJOSETUP_ADD_LIBRARY(mojosetupgui_stdio gui_stdio.c) + ENDIF(MOJOSETUP_GUI_STDIO_STATIC) +ENDIF(MOJOSETUP_GUI_STDIO) + +# BINARY SIZE += !!! FIXME: check this. +SET(CURSES_NEED_WIDE TRUE) +SET(CURSES_NEED_NCURSES TRUE) +FIND_PACKAGE(Curses) +IF(CURSES_FOUND) + OPTION(MOJOSETUP_GUI_NCURSES "Enable ncurses GUI" TRUE) + IF(MOJOSETUP_GUI_NCURSES) + ADD_DEFINITIONS(-DSUPPORT_GUI_NCURSES=1) + INCLUDE_DIRECTORIES(CURSES_INCLUDE_DIR) + + IF(CURSES_HAVE_NCURSESW_NCURSES_H) + ADD_DEFINITIONS(-DHAVE_NCURSESW_NCURSES_H) + ELSEIF(CURSES_HAVE_NCURSESW_CURSES_H) + ADD_DEFINITIONS(-DHAVE_NCURSESW_CURSES_H) + ELSEIF(CURSES_HAVE_NCURSESW_H) + ADD_DEFINITIONS(-DHAVE_NCURSESW_H) + ENDIF(CURSES_HAVE_NCURSESW_NCURSES_H) + + OPTION(MOJOSETUP_GUI_NCURSES_STATIC "Statically link ncurses GUI" FALSE) + IF(MOJOSETUP_GUI_NCURSES_STATIC) + ADD_DEFINITIONS(-DGUI_STATIC_LINK_NCURSES=1) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} gui_ncurses.c) + SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${CURSES_LIBRARIES}) + ELSE(MOJOSETUP_GUI_NCURSES_STATIC) + MOJOSETUP_ADD_LIBRARY(mojosetupgui_ncurses gui_ncurses.c) + TARGET_LINK_LIBRARIES(mojosetupgui_ncurses ${CURSES_LIBRARIES}) + ENDIF(MOJOSETUP_GUI_NCURSES_STATIC) + ENDIF(MOJOSETUP_GUI_NCURSES) +ENDIF(CURSES_FOUND) + +IF(MACOSX) + OPTION(MOJOSETUP_GUI_COCOA "Enable Cocoa GUI" TRUE) + IF(MOJOSETUP_GUI_COCOA) + ADD_DEFINITIONS(-DSUPPORT_GUI_COCOA=1) + OPTION(MOJOSETUP_GUI_COCOA_STATIC "Statically link Cocoa GUI" TRUE) + IF(MOJOSETUP_GUI_COCOA_STATIC) + ADD_DEFINITIONS(-DGUI_STATIC_LINK_COCOA=1) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} gui_cocoa.m) + SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "-framework Cocoa") + ELSE(MOJOSETUP_GUI_COCOA_STATIC) + MOJOSETUP_ADD_LIBRARY(mojosetupgui_cocoa gui_cocoa.m) + TARGET_LINK_LIBRARIES(mojosetupgui_cocoa + "-framework Carbon -framework Cocoa -mmacosx-version-min=10.2" + ) + ENDIF(MOJOSETUP_GUI_COCOA_STATIC) + ENDIF(MOJOSETUP_GUI_COCOA) +ENDIF(MACOSX) + +IF(UNIX) +IF(NOT BEOS) +IF(NOT MACOSX) +#FIND_PACKAGE(PkgConfig) +#PKGCONFIG(libgtk-2.0 LIBGTK_INCLUDE_DIR LIBGTK_LINK_DIR LIBGTK_LINK_FLAGS LIBGTK_CFLAGS) +# !!! FIXME +SET(LIBGTK_LINK_FLAGS "-lgtk-x11-2.0") +SET(LIBGTK_CFLAGS "-DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12") +IF(NOT LIBGTK_LINK_FLAGS) + MESSAGE(STATUS "Can't find GTK+v2 headers/libraries. Can't build GTK+ GUI.") +ELSE(NOT LIBGTK_LINK_FLAGS) + OPTION(MOJOSETUP_GUI_GTKPLUS2 "Enable GTK+ 2.0 GUI" TRUE) + IF(MOJOSETUP_GUI_GTKPLUS2) + ADD_DEFINITIONS(-DSUPPORT_GUI_GTKPLUS2=1) + #INCLUDE_DIRECTORIES(${LIBGTK_INCLUDE_DIR}) + OPTION(MOJOSETUP_GUI_GTKPLUS2_STATIC "Statically link GTK+ GUI" FALSE) + IF(MOJOSETUP_GUI_GTKPLUS2_STATIC) + ADD_DEFINITIONS(-DGUI_STATIC_LINK_GTKPLUS2=1 ${LIBGTK_CFLAGS}) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} gui_gtkplus2.c) + SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${LIBGTK_LINK_FLAGS}) + ELSE(MOJOSETUP_GUI_GTKPLUS2_STATIC) + MOJOSETUP_ADD_LIBRARY(mojosetupgui_gtkplus2 gui_gtkplus2.c) + ADD_DEFINITIONS(${LIBGTK_CFLAGS}) + TARGET_LINK_LIBRARIES(mojosetupgui_gtkplus2 ${LIBGTK_LINK_FLAGS}) + ENDIF(MOJOSETUP_GUI_GTKPLUS2_STATIC) + ENDIF(MOJOSETUP_GUI_GTKPLUS2) +ENDIF(NOT LIBGTK_LINK_FLAGS) +ENDIF(NOT MACOSX) +ENDIF(NOT BEOS) +ENDIF(UNIX) + +# BINARY SIZE += !!! FIXME: check this. +OPTION(MOJOSETUP_GUI_WWW "Enable www GUI" FALSE) # !!! FIXME: make TRUE +IF(MOJOSETUP_GUI_WWW) + ADD_DEFINITIONS(-DSUPPORT_GUI_WWW=1) + OPTION(MOJOSETUP_GUI_WWW_STATIC "Statically link www GUI" FALSE) + IF(MOJOSETUP_GUI_WWW_STATIC) + ADD_DEFINITIONS(-DGUI_STATIC_LINK_WWW=1) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} gui_www.c) + IF(WINDOWS) + SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} wsock32) + ENDIF(WINDOWS) + ELSE(MOJOSETUP_GUI_WWW_STATIC) + MOJOSETUP_ADD_LIBRARY(mojosetupgui_www gui_www.c) + IF(WINDOWS) + TARGET_LINK_LIBRARIES(mojosetupgui_www wsock32) + ENDIF(WINDOWS) + ENDIF(MOJOSETUP_GUI_WWW_STATIC) + SET(MOJOSETUP_USES_SOCKETS TRUE) +ENDIF(MOJOSETUP_GUI_WWW) + + +# Archivers... + +# BINARY SIZE += 8 +OPTION(MOJOSETUP_ARCHIVE_ZIP "Enable ZIP support" TRUE) +IF(MOJOSETUP_ARCHIVE_ZIP) + ADD_DEFINITIONS(-DSUPPORT_ZIP=1) + SET(MOJOSETUP_NEED_ZLIB TRUE) +ENDIF(MOJOSETUP_ARCHIVE_ZIP) + +# BINARY SIZE += 2 +OPTION(MOJOSETUP_ARCHIVE_TAR "Enable TAR support" TRUE) +IF(MOJOSETUP_ARCHIVE_TAR) + ADD_DEFINITIONS(-DSUPPORT_TAR=1) + OPTION(MOJOSETUP_ARCHIVE_TAR_GZ "Enable TAR.GZ support" TRUE) + IF(MOJOSETUP_ARCHIVE_TAR_GZ) + SET(MOJOSETUP_INPUT_GZIP TRUE) + ENDIF(MOJOSETUP_ARCHIVE_TAR_GZ) + + OPTION(MOJOSETUP_ARCHIVE_TAR_BZ2 "Enable TAR.BZ2 support" TRUE) + IF(MOJOSETUP_ARCHIVE_TAR_BZ2) + SET(MOJOSETUP_INPUT_BZIP2 TRUE) + ENDIF(MOJOSETUP_ARCHIVE_TAR_BZ2) +ENDIF(MOJOSETUP_ARCHIVE_TAR) + +OPTION(MOJOSETUP_ARCHIVE_UZ2 "Enable UZ2 support" FALSE) +IF(MOJOSETUP_ARCHIVE_UZ2) + ADD_DEFINITIONS(-DSUPPORT_UZ2=1) + SET(MOJOSETUP_NEED_ZLIB TRUE) +ENDIF(MOJOSETUP_ARCHIVE_UZ2) + +OPTION(MOJOSETUP_ARCHIVE_PCK "Enable PCK support" FALSE) +IF(MOJOSETUP_ARCHIVE_PCK) + ADD_DEFINITIONS(-DSUPPORT_PCK=1) + SET(MOJOSETUP_INPUT_GZIP TRUE) +ENDIF(MOJOSETUP_ARCHIVE_PCK) + +# Input decoders... + +# BINARY SIZE += 1.5 +IF(NOT MOJOSETUP_INPUT_GZIP) # optional if something didn't force it. + OPTION(MOJOSETUP_INPUT_GZIP "Enable GZIP support" FALSE) +ENDIF(NOT MOJOSETUP_INPUT_GZIP) + +IF(MOJOSETUP_INPUT_GZIP) + ADD_DEFINITIONS(-DSUPPORT_GZIP=1) + SET(MOJOSETUP_NEED_ZLIB TRUE) +ENDIF(MOJOSETUP_INPUT_GZIP) + +# BINARY SIZE += 1.5 +IF(NOT MOJOSETUP_INPUT_BZIP2) # optional if something didn't force it. + OPTION(MOJOSETUP_INPUT_BZIP2 "Enable BZIP2 support" FALSE) +ENDIF(NOT MOJOSETUP_INPUT_BZIP2) + +IF(MOJOSETUP_INPUT_BZIP2) + ADD_DEFINITIONS(-DSUPPORT_BZIP2=1) + ADD_DEFINITIONS(-DBZ_NO_STDIO=1) + SET(MOJOSETUP_NEED_BZLIB TRUE) +ENDIF(MOJOSETUP_INPUT_BZIP2) + + + +# Image decoders for GUIs... + +OPTION(MOJOSETUP_IMAGE_JPG "Enable JPG support" TRUE) +IF(MOJOSETUP_IMAGE_JPG) + ADD_DEFINITIONS(-DSUPPORT_JPG=1) + SET(MOJOSETUP_NEED_STBIMAGE TRUE) +ENDIF(MOJOSETUP_IMAGE_JPG) + +OPTION(MOJOSETUP_IMAGE_PNG "Enable PNG support" TRUE) +IF(MOJOSETUP_IMAGE_PNG) + ADD_DEFINITIONS(-DSUPPORT_PNG=1) + SET(MOJOSETUP_NEED_STBIMAGE TRUE) +ENDIF(MOJOSETUP_IMAGE_PNG) + +OPTION(MOJOSETUP_IMAGE_TGA "Enable TGA support" FALSE) +IF(MOJOSETUP_IMAGE_TGA) + ADD_DEFINITIONS(-DSUPPORT_TGA=1) + SET(MOJOSETUP_NEED_STBIMAGE TRUE) +ENDIF(MOJOSETUP_IMAGE_TGA) + +OPTION(MOJOSETUP_IMAGE_BMP "Enable BMP support" FALSE) +IF(MOJOSETUP_IMAGE_BMP) + ADD_DEFINITIONS(-DSUPPORT_BMP=1) + SET(MOJOSETUP_NEED_STBIMAGE TRUE) +ENDIF(MOJOSETUP_IMAGE_BMP) + +OPTION(MOJOSETUP_IMAGE_PSD "Enable PSD support" FALSE) +IF(MOJOSETUP_IMAGE_PSD) + ADD_DEFINITIONS(-DSUPPORT_PSD=1) + SET(MOJOSETUP_NEED_STBIMAGE TRUE) +ENDIF(MOJOSETUP_IMAGE_PSD) + +OPTION(MOJOSETUP_IMAGE_HDR "Enable HDR support" FALSE) +IF(MOJOSETUP_IMAGE_HDR) + ADD_DEFINITIONS(-DSUPPORT_HDR=1) + SET(MOJOSETUP_NEED_STBIMAGE TRUE) +ENDIF(MOJOSETUP_IMAGE_HDR) + +IF(MOJOSETUP_NEED_STBIMAGE) + ADD_DEFINITIONS(-DSUPPORT_STBIMAGE=1) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${STBIMAGE_SRCS}) +ENDIF(MOJOSETUP_NEED_STBIMAGE) + + +# Networking... + +# BINARY SIZE += 5 ...plus libfetch +OPTION(MOJOSETUP_URL_HTTP "Enable http:// support" TRUE) +IF(MOJOSETUP_URL_HTTP) + ADD_DEFINITIONS(-DSUPPORT_URL_HTTP=1) + SET(MOJOSETUP_NEED_LIBFETCH TRUE) +ENDIF(MOJOSETUP_URL_HTTP) + +# BINARY SIZE += 9 ...plus libfetch +OPTION(MOJOSETUP_URL_FTP "Enable ftp:// support" TRUE) +IF(MOJOSETUP_URL_FTP) + ADD_DEFINITIONS(-DSUPPORT_URL_FTP=1) + SET(MOJOSETUP_NEED_LIBFETCH TRUE) +ENDIF(MOJOSETUP_URL_FTP) + +# BINARY SIZE += 10 +IF(MOJOSETUP_NEED_LIBFETCH) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${LIBFETCH_SRCS}) + # Had to spin up some threads in libfetch...lame. + # !!! FIXME: CMake will do -lpthread on Mac OS X, but it doesn't need it. + IF(NOT MACOSX) + FIND_PACKAGE(Threads) + ENDIF(NOT MACOSX) + SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${CMAKE_THREAD_LIBS_INIT}) + SET(MOJOSETUP_USES_SOCKETS TRUE) +ENDIF(MOJOSETUP_NEED_LIBFETCH) + +IF(MOJOSETUP_USES_SOCKETS) + IF(SOLARIS) + SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "socket") + ENDIF(SOLARIS) +ENDIF(MOJOSETUP_USES_SOCKETS) + + +# Middleware... + +IF(MOJOSETUP_NEED_ZLIB) + SET(HAVE_SYSTEM_ZLIB FALSE) + CHECK_INCLUDE_FILE(zlib.h HAVE_ZLIB_H) + IF(HAVE_ZLIB_H) + CHECK_LIBRARY_EXISTS("z" "inflate" "" HAVE_LIBZ) + IF(HAVE_LIBZ) + SET(HAVE_SYSTEM_ZLIB TRUE) + ENDIF(HAVE_LIBZ) + ENDIF(HAVE_ZLIB_H) + + IF(HAVE_SYSTEM_ZLIB) + OPTION(MOJOSETUP_INTERNAL_ZLIB "Link own zlib instead of system library" FALSE) + ELSE(HAVE_SYSTEM_ZLIB) + SET(MOJOSETUP_INTERNAL_ZLIB TRUE) + ENDIF(HAVE_SYSTEM_ZLIB) + + # BINARY SIZE += 50 + IF(MOJOSETUP_INTERNAL_ZLIB) + INCLUDE_DIRECTORIES(${ZLIB_DIR}) + ADD_DEFINITIONS(-DZ_PREFIX=1) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${ZLIB_SRCS}) + ELSE(MOJOSETUP_INTERNAL_ZLIB) + SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} z) + ENDIF(MOJOSETUP_INTERNAL_ZLIB) +ENDIF(MOJOSETUP_NEED_ZLIB) + +IF(MOJOSETUP_NEED_BZLIB) + SET(HAVE_SYSTEM_BZLIB FALSE) + CHECK_INCLUDE_FILE(bzlib.h HAVE_BZLIB_H) + IF(HAVE_BZLIB_H) + CHECK_LIBRARY_EXISTS("bz2" "BZ2_bzDecompress" "" HAVE_LIBBZ2) + IF(HAVE_LIBBZ2) + SET(HAVE_SYSTEM_BZLIB TRUE) + ENDIF(HAVE_LIBBZ2) + ENDIF(HAVE_BZLIB_H) + + IF(HAVE_SYSTEM_BZLIB) + OPTION(MOJOSETUP_INTERNAL_BZLIB "Link own bzlib instead of system library" FALSE) + ELSE(HAVE_SYSTEM_BZLIB) + SET(MOJOSETUP_INTERNAL_BZLIB TRUE) + ENDIF(HAVE_SYSTEM_BZLIB) + + # BINARY SIZE += 46 + IF(MOJOSETUP_INTERNAL_BZLIB) + ADD_DEFINITIONS(-DMOJOSETUP_INTERNAL_BZLIB=1) + INCLUDE_DIRECTORIES(${BZLIB_DIR}) + SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${BZLIB_SRCS}) + ELSE(MOJOSETUP_INTERNAL_BZLIB) + SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} bz2) + ENDIF(MOJOSETUP_INTERNAL_BZLIB) +ENDIF(MOJOSETUP_NEED_BZLIB) + +IF(UNIX) + CHECK_INCLUDE_FILE(sys/ucred.h HAVE_UCRED_H) + IF(HAVE_UCRED_H) + ADD_DEFINITIONS(-DMOJOSETUP_HAVE_SYS_UCRED_H=1) + ENDIF(HAVE_UCRED_H) + + CHECK_INCLUDE_FILE(mntent.h HAVE_MNTENT_H) + IF(HAVE_MNTENT_H) + ADD_DEFINITIONS(-DMOJOSETUP_HAVE_MNTENT_H=1) + ENDIF(HAVE_MNTENT_H) + + # !!! FIXME: Solaris fails this, because mnttab.h implicitly + # !!! FIXME: depends on other system headers. :( + #CHECK_INCLUDE_FILE(sys/mnttab.h HAVE_SYS_MNTTAB_H) + CHECK_C_SOURCE_COMPILES(" + #include + #include + int main(int argc, char **argv) { return 0; } + " HAVE_SYS_MNTTAB_H) + + IF(HAVE_SYS_MNTTAB_H) + ADD_DEFINITIONS(-DMOJOSETUP_HAVE_SYS_MNTTAB_H=1) + ENDIF(HAVE_SYS_MNTTAB_H) + + IF(NOT MACOSX) + CHECK_LIBRARY_EXISTS("dl" "dlopen" "" HAVE_LIBDL) + IF(HAVE_LIBDL) + SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} dl) + ENDIF(HAVE_LIBDL) + CHECK_LIBRARY_EXISTS("m" "sin" "" HAVE_LIBM) + IF(HAVE_LIBM) + SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} m) + ENDIF(HAVE_LIBM) + ENDIF(NOT MACOSX) +ENDIF(UNIX) + +OPTION(MOJOSETUP_BUILD_LUAC "Build separate Lua compiler" TRUE) +IF(MOJOSETUP_BUILD_LUAC) + ADD_EXECUTABLE(mojoluac ${MOJOLUAC_SRCS}) + TARGET_LINK_LIBRARIES(mojoluac ${OPTIONAL_LIBS}) + GET_TARGET_PROPERTY(MOJOLUAC_LOCATION mojoluac LOCATION) + # !!! FIXME: actually compile this. + ADD_CUSTOM_TARGET(lua "${MOJOLUAC_LOCATION}" -p ${CMAKE_CURRENT_SOURCE_DIR}/scripts/*.lua) +ENDIF(MOJOSETUP_BUILD_LUAC) + +ADD_EXECUTABLE(mojosetup ${USES_WINMAIN} ${MOJOSETUP_SRCS} ${OPTIONAL_SRCS}) +GET_TARGET_PROPERTY(MOJOSETUP_BINARY_LOCATION mojosetup LOCATION) +TARGET_LINK_LIBRARIES(mojosetup ${OPTIONAL_LIBS}) +SET(MOJOSETUP_TARGETS "${MOJOSETUP_TARGETS};mojosetup") + +# For cobbling together a skeleton installer... + +# !!! FIXME: all of these custom .cmake files are built-in commands in CMake 2.6.(4?) ...! +ADD_CUSTOM_TARGET(skeleton + COMMENT "Assembling Skeleton..." + COMMAND ${CMAKE_COMMAND} -DDIR=${CMAKE_BINARY_DIR}/skeleton -P ${CMAKE_SOURCE_DIR}/misc/rm_recurse.cmake + COMMAND ${CMAKE_COMMAND} -DDIR=${CMAKE_BINARY_DIR}/skeleton -P ${CMAKE_SOURCE_DIR}/misc/mkdir.cmake + COMMAND ${CMAKE_COMMAND} -DDIR=${CMAKE_BINARY_DIR}/skeleton/scripts -P ${CMAKE_SOURCE_DIR}/misc/mkdir.cmake + COMMAND ${CMAKE_COMMAND} -DDIR=${CMAKE_BINARY_DIR}/skeleton/guis -P ${CMAKE_SOURCE_DIR}/misc/mkdir.cmake + COMMAND ${CMAKE_COMMAND} -DDIR=${CMAKE_BINARY_DIR}/skeleton/data -P ${CMAKE_SOURCE_DIR}/misc/mkdir.cmake + COMMAND ${CMAKE_COMMAND} -DFROM=${CMAKE_SOURCE_DIR}/scripts/*.lua -DTO=${CMAKE_BINARY_DIR}/skeleton/scripts -P ${CMAKE_SOURCE_DIR}/misc/cp.cmake + COMMAND ${CMAKE_COMMAND} -DFROM=${CMAKE_SOURCE_DIR}/*mojosetupgui*.* -DTO=${CMAKE_BINARY_DIR}/skeleton/guis -P ${CMAKE_SOURCE_DIR}/misc/cp.cmake + COMMAND ${CMAKE_COMMAND} -DFROM=${MOJOSETUP_BINARY_LOCATION} -DTO=${CMAKE_BINARY_DIR}/skeleton -P ${CMAKE_SOURCE_DIR}/misc/cp.cmake +) + +ADD_DEPENDENCIES(skeleton ${MOJOSETUP_TARGETS}) + +# end of CMakeLists.txt ... + diff --git a/mk/linux/mojosetup/LICENSE.txt b/mk/linux/mojosetup/LICENSE.txt new file mode 100644 index 00000000..7fdefa68 --- /dev/null +++ b/mk/linux/mojosetup/LICENSE.txt @@ -0,0 +1,32 @@ + + Copyright (c) 2006-2010 Ryan C. Gordon and others. + + This software is provided 'as-is', without any express or implied warranty. + In no event will the authors be held liable for any damages arising from + the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software in a + product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source distribution. + + Ryan C. Gordon + + + +(Please note that other pieces of code in MojoSetup fall under BSD-like and/or + public domain licenses: lua, libfetch, zlib, bzlib, stb_image, etc. All + software statically linked to MojoSetup was explicitly chosen to be friendly + with closed-source software, in case the installer needs a proprietary + change. I am not a lawyer and this is not legal advice. Please have a lawyer + consider the licenses if you have any concerns.) + diff --git a/mk/linux/mojosetup/archive_pck.c b/mk/linux/mojosetup/archive_pck.c new file mode 100644 index 00000000..36e8e9de --- /dev/null +++ b/mk/linux/mojosetup/archive_pck.c @@ -0,0 +1,283 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Steffen Pankratz. + */ + +#include "fileio.h" +#include "platform.h" + +#if !SUPPORT_PCK +MojoArchive *MojoArchive_createPCK(MojoInput *io) { return NULL; } +#else + +#define PCK_MAGIC 0x534c4850 + +typedef struct +{ + uint32 Magic; // 4 bytes, has to be PCK_MAGIC (0x534c4850) + uint32 StartOfBinaryData; // 4 bytes, offset to the data +} PCKheader; + +typedef struct +{ + int8 filename[60]; // 60 bytes, null terminated + uint32 filesize; // 4 bytes +} PCKentry; + +typedef struct +{ + uint64 fileCount; + uint64 dataStart; + uint64 nextFileStart; + int64 nextEnumPos; + MojoArchiveEntry *archiveEntries; +} PCKinfo; + + +static boolean readui32(MojoInput *io, uint32 *ui32) +{ + uint8 buf[sizeof (uint32)]; + if (io->read(io, buf, sizeof (buf)) != sizeof (buf)) + return false; + + *ui32 = (buf[0] | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24)); + return true; +} // readui32 + +static boolean MojoInput_pck_ready(MojoInput *io) +{ + return true; // !!! FIXME? +} // MojoInput_pck_ready + +static int64 MojoInput_pck_read(MojoInput *io, void *buf, uint32 bufsize) +{ + MojoArchive *ar = (MojoArchive *) io->opaque; + const MojoArchiveEntry *entry = &ar->prevEnum; + int64 pos = io->tell(io); + if ((pos + bufsize) > entry->filesize) + bufsize = (uint32) (entry->filesize - pos); + return ar->io->read(ar->io, buf, bufsize); +} // MojoInput_pck_read + +static boolean MojoInput_pck_seek(MojoInput *io, uint64 pos) +{ + MojoArchive *ar = (MojoArchive *) io->opaque; + const PCKinfo *info = (PCKinfo *) ar->opaque; + const MojoArchiveEntry *entry = &ar->prevEnum; + boolean retval = false; + if (pos < ((uint64) entry->filesize)) + { + const uint64 newpos = (info->nextFileStart - entry->filesize) + pos; + retval = ar->io->seek(ar->io, newpos); + } // if + return retval; +} // MojoInput_pck_seek + +static int64 MojoInput_pck_tell(MojoInput *io) +{ + MojoArchive *ar = (MojoArchive *) io->opaque; + const PCKinfo *info = (PCKinfo *) ar->opaque; + const MojoArchiveEntry *entry = &ar->prevEnum; + return ar->io->tell(ar->io) - (info->nextFileStart - entry->filesize); +} // MojoInput_pck_tell + +static int64 MojoInput_pck_length(MojoInput *io) +{ + MojoArchive *ar = (MojoArchive *) io->opaque; + const MojoArchiveEntry *entry = &ar->prevEnum; + return entry->filesize; +} // MojoInput_pck_length + +static MojoInput *MojoInput_pck_duplicate(MojoInput *io) +{ + MojoInput *retval = NULL; + fatal(_("BUG: Can't duplicate pck inputs")); // !!! FIXME: why not? + return retval; +} // MojoInput_pck_duplicate + +static void MojoInput_pck_close(MojoInput *io) +{ + free(io); +} // MojoInput_pck_close + +// MojoArchive implementation... + +static boolean MojoArchive_pck_enumerate(MojoArchive *ar) +{ + MojoArchiveEntry *archiveEntries = NULL; + PCKinfo *info = (PCKinfo *) ar->opaque; + const int dataStart = info->dataStart; + const int fileCount = dataStart / sizeof (PCKentry); + const size_t len = fileCount * sizeof (MojoArchiveEntry); + PCKentry fileEntry; + uint64 i, realFileCount = 0; + char directory[256] = {'\0'}; + MojoInput *io = ar->io; + + MojoArchive_resetEntry(&ar->prevEnum); + + archiveEntries = (MojoArchiveEntry *) xmalloc(len); + + for (i = 0; i < fileCount; i++) + { + int dotdot; + int64 br; + + br = io->read(io, fileEntry.filename, sizeof (fileEntry.filename)); + if (br != sizeof (fileEntry.filename)) + return false; + else if (!readui32(io, &fileEntry.filesize)) + return false; + + dotdot = (strcmp(fileEntry.filename, "..") == 0); + + if ((!dotdot) && (fileEntry.filesize == 0x80000000)) + { + MojoArchiveEntry *entry = &archiveEntries[realFileCount]; + + strcat(directory, fileEntry.filename); + strcat(directory, "/"); + + entry->filename = xstrdup(directory); + entry->type = MOJOARCHIVE_ENTRY_DIR; + entry->perms = MojoPlatform_defaultDirPerms(); + entry->filesize = 0; + realFileCount++; + } // if + + else if ((dotdot) && (fileEntry.filesize == 0x80000000)) + { + // remove trailing path separator + char *pathSep; + const size_t strLength = strlen(directory); + directory[strLength - 1] = '\0'; + + pathSep = strrchr(directory, '/'); + if(pathSep != NULL) + { + pathSep++; + *pathSep = '\0'; + } // if + } // else if + + else + { + MojoArchiveEntry *entry = &archiveEntries[realFileCount]; + if (directory[0] == '\0') + entry->filename = xstrdup(fileEntry.filename); + else + { + const size_t len = sizeof (char) * strlen(directory) + + strlen(fileEntry.filename) + 1; + entry->filename = (char *) xmalloc(len); + strcat(entry->filename, directory); + strcat(entry->filename, fileEntry.filename); + } // else + + entry->perms = MojoPlatform_defaultFilePerms(); + entry->type = MOJOARCHIVE_ENTRY_FILE; + entry->filesize = fileEntry.filesize; + + realFileCount++; + } // else + } // for + + info->fileCount = realFileCount; + info->archiveEntries = archiveEntries; + info->nextEnumPos = 0; + info->nextFileStart = dataStart; + + return true; +} // MojoArchive_pck_enumerate + + +static const MojoArchiveEntry *MojoArchive_pck_enumNext(MojoArchive *ar) +{ + PCKinfo *info = (PCKinfo *) ar->opaque; + const MojoArchiveEntry *entry = &info->archiveEntries[info->nextEnumPos]; + + if (info->nextEnumPos >= info->fileCount) + return NULL; + + if (!ar->io->seek(ar->io, info->nextFileStart)) + return NULL; + + info->nextEnumPos++; + info->nextFileStart += entry->filesize; + + memcpy(&ar->prevEnum, entry, sizeof (ar->prevEnum)); + + return &ar->prevEnum; +} // MojoArchive_pck_enumNext + + +static MojoInput *MojoArchive_pck_openCurrentEntry(MojoArchive *ar) +{ + MojoInput *io = NULL; + io = (MojoInput *) xmalloc(sizeof (MojoInput)); + io->ready = MojoInput_pck_ready; + io->read = MojoInput_pck_read; + io->seek = MojoInput_pck_seek; + io->tell = MojoInput_pck_tell; + io->length = MojoInput_pck_length; + io->duplicate = MojoInput_pck_duplicate; + io->close = MojoInput_pck_close; + io->opaque = ar; + return io; +} // MojoArchive_pck_openCurrentEntry + + +static void MojoArchive_pck_close(MojoArchive *ar) +{ + int i; + PCKinfo *info = (PCKinfo *) ar->opaque; + ar->io->close(ar->io); + + for (i = 0; i < info->fileCount; i++) + { + MojoArchiveEntry *entry = &info->archiveEntries[i]; + free(entry->filename); + } // for + + free(info->archiveEntries); + free(info); + free(ar); +} // MojoArchive_pck_close + + +MojoArchive *MojoArchive_createPCK(MojoInput *io) +{ + MojoArchive *ar = NULL; + PCKinfo *pckInfo = NULL; + PCKheader pckHeader; + + if (!readui32(io, &pckHeader.Magic)) + return NULL; + else if (!readui32(io, &pckHeader.StartOfBinaryData)) + return NULL; + + // Check if this is a *.pck file. + if (pckHeader.Magic != PCK_MAGIC) + return NULL; + + pckInfo = (PCKinfo *) xmalloc(sizeof (PCKinfo)); + pckInfo->dataStart = pckHeader.StartOfBinaryData + sizeof (PCKheader); + + ar = (MojoArchive *) xmalloc(sizeof (MojoArchive)); + ar->opaque = pckInfo; + ar->enumerate = MojoArchive_pck_enumerate; + ar->enumNext = MojoArchive_pck_enumNext; + ar->openCurrentEntry = MojoArchive_pck_openCurrentEntry; + ar->close = MojoArchive_pck_close; + ar->io = io; + + return ar; +} // MojoArchive_createPCK + +#endif // SUPPORT_PCK + +// end of archive_pck.c ... + diff --git a/mk/linux/mojosetup/archive_tar.c b/mk/linux/mojosetup/archive_tar.c new file mode 100644 index 00000000..85e83068 --- /dev/null +++ b/mk/linux/mojosetup/archive_tar.c @@ -0,0 +1,347 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +// Specs for the tar format can be found here... +// http://www.gnu.org/software/tar/manual/html_section/Standard.html + +#include "fileio.h" + +#if !SUPPORT_TAR +MojoArchive *MojoArchive_createTAR(MojoInput *io) { return NULL; } +#else + +// MojoInput implementation... + +// Decompression is handled in the parent MojoInput, so this just needs to +// make sure we stay within the bounds of the tarfile entry. + +typedef struct TARinput +{ + int64 fsize; + int64 offset; + MojoArchive *ar; +} TARinput; + +typedef struct TARinfo +{ + MojoInput *input; + uint64 curFileStart; + uint64 nextEnumPos; +} TARinfo; + +static boolean MojoInput_tar_ready(MojoInput *io) +{ + return true; // !!! FIXME: ready if there are bytes uncompressed. +} // MojoInput_tar_ready + +static int64 MojoInput_tar_read(MojoInput *io, void *buf, uint32 bufsize) +{ + TARinput *input = (TARinput *) io->opaque; + int64 pos = io->tell(io); + if ((pos + bufsize) > input->fsize) + bufsize = (uint32) (input->fsize - pos); + return input->ar->io->read(input->ar->io, buf, bufsize); +} // MojoInput_tar_read + +static boolean MojoInput_tar_seek(MojoInput *io, uint64 pos) +{ + TARinput *input = (TARinput *) io->opaque; + boolean retval = false; + if (pos < ((uint64) input->fsize)) + retval = input->ar->io->seek(input->ar->io, input->offset + pos); + return retval; +} // MojoInput_tar_seek + +static int64 MojoInput_tar_tell(MojoInput *io) +{ + TARinput *input = (TARinput *) io->opaque; + return input->ar->io->tell(input->ar->io) - input->offset; +} // MojoInput_tar_tell + +static int64 MojoInput_tar_length(MojoInput *io) +{ + return ((TARinput *) io->opaque)->fsize; +} // MojoInput_tar_length + +static MojoInput *MojoInput_tar_duplicate(MojoInput *io) +{ + MojoInput *retval = NULL; + fatal(_("BUG: Can't duplicate tar inputs")); // !!! FIXME: why not? +#if 0 + TARinput *input = (TARinput *) io->opaque; + MojoInput *origio = (MojoInput *) io->opaque; + MojoInput *newio = origio->duplicate(origio); + + if (newio != NULL) + { + TARinput *newopaque = (TARinput *) xmalloc(sizeof (TARinput)); + newopaque->origio = newio; + newopaque->fsize = input->fsize; + newopaque->offset = input->offset; + retval = (MojoInput *) xmalloc(sizeof (MojoInput)); + memcpy(retval, io, sizeof (MojoInput)); + retval->opaque = newopaque; + } // if +#endif + return retval; +} // MojoInput_tar_duplicate + +static void MojoInput_tar_close(MojoInput *io) +{ + TARinput *input = (TARinput *) io->opaque; + TARinfo *info = (TARinfo *) input->ar->opaque; + //input->ar->io->close(input->ar->io); + info->input = NULL; + free(input); + free(io); +} // MojoInput_tar_close + + +// MojoArchive implementation... + +static boolean MojoArchive_tar_enumerate(MojoArchive *ar) +{ + TARinfo *info = (TARinfo *) ar->opaque; + MojoArchive_resetEntry(&ar->prevEnum); + if (info->input != NULL) + fatal("BUG: tar entry still open on new enumeration"); + info->curFileStart = info->nextEnumPos = 0; + return true; +} // MojoArchive_tar_enumerate + + +// These are byte offsets where fields start in the tar header blocks. +#define TAR_FNAME 0 +#define TAR_FNAMELEN 100 +#define TAR_MODE 100 +#define TAR_MODELEN 8 +#define TAR_UID 108 +#define TAR_UIDLEN 8 +#define TAR_GID 116 +#define TAR_GIDLEN 8 +#define TAR_SIZE 124 +#define TAR_SIZELEN 12 +#define TAR_MTIME 136 +#define TAR_MTIMELEN 12 +#define TAR_CHKSUM 148 +#define TAR_CHKSUMLEN 8 +#define TAR_TYPE 156 +#define TAR_TYPELEN 1 +#define TAR_LINKNAME 157 +#define TAR_LINKNAMELEN 100 +#define TAR_MAGIC 257 +#define TAR_MAGICLEN 6 +#define TAR_VERSION 263 +#define TAR_VERSIONLEN 2 +#define TAR_UNAME 265 +#define TAR_UNAMELEN 32 +#define TAR_GNAME 297 +#define TAR_GNAMELEN 32 +#define TAR_DEVMAJOR 329 +#define TAR_DEVMAJORLEN 8 +#define TAR_DEVMINOR 337 +#define TAR_DEVMINORLEN 8 +#define TAR_FNAMEPRE 345 +#define TAR_FNAMEPRELEN 155 + +// tar entry types... +#define TAR_TYPE_FILE '0' +#define TAR_TYPE_HARDLINK '1' +#define TAR_TYPE_SYMLINK '2' +#define TAR_TYPE_CHARDEV '3' +#define TAR_TYPE_BLOCKDEV '4' +#define TAR_TYPE_DIRECTORY '5' +#define TAR_TYPE_FIFO '6' + +static boolean is_ustar(const uint8 *block) +{ + return ( (memcmp(&block[TAR_MAGIC], "ustar ", TAR_MAGICLEN) == 0) || + (memcmp(&block[TAR_MAGIC], "ustar\0", TAR_MAGICLEN) == 0) ); +} // is_ustar + +static int64 octal_convert(const uint8 *str, const size_t len) +{ + int64 retval = 0; + int64 multiplier = 1; + const uint8 *end = str + len; + const uint8 *ptr; + + while ((*str == ' ') && (str != end)) + str++; + + ptr = str; + while ((ptr != end) && (*ptr >= '0') && (*ptr <= '7')) + ptr++; + + while (--ptr >= str) + { + uint64 val = *ptr - '0'; + retval += val * multiplier; + multiplier *= 8; + } // while + + return retval; +} // octal_convert + + +static const MojoArchiveEntry *MojoArchive_tar_enumNext(MojoArchive *ar) +{ + TARinfo *info = (TARinfo *) ar->opaque; + boolean zeroes = true; + boolean ustar = false; + uint8 scratch[512]; + uint8 block[512]; + size_t fnamelen = 0; + int type = 0; + + memset(scratch, '\0', sizeof (scratch)); + + MojoArchive_resetEntry(&ar->prevEnum); + if (info->input != NULL) + fatal("BUG: tar entry still open on new enumeration"); + + if (!ar->io->seek(ar->io, info->nextEnumPos)) + return NULL; + + // Find a non-zero block of data. Tarballs have two 512 blocks filled with + // null bytes at the end of the archive, but you can cat tarballs + // together, so you can't treat them as EOF indicators. Just skip them. + while (zeroes) + { + if (ar->io->read(ar->io, block, sizeof (block)) != sizeof (block)) + return NULL; // !!! FIXME: fatal() ? + zeroes = (memcmp(block, scratch, sizeof (block)) == 0); + } // while + + // !!! FIXME We should probably check the checksum. + + ustar = is_ustar(block); + + ar->prevEnum.perms = (uint16) octal_convert(&block[TAR_MODE], TAR_MODELEN); + ar->prevEnum.filesize = octal_convert(&block[TAR_SIZE], TAR_SIZELEN); + info->curFileStart = info->nextEnumPos + 512; + info->nextEnumPos += 512 + ar->prevEnum.filesize; + if (ar->prevEnum.filesize % 512) + info->nextEnumPos += 512 - (ar->prevEnum.filesize % 512); + + // We count on (scratch) being zeroed out here! + // prefix of filename is at the end for legacy compat. + if (ustar) + memcpy(scratch, &block[TAR_FNAMEPRE], TAR_FNAMEPRELEN); + fnamelen = strlen((const char *) scratch); + memcpy(&scratch[fnamelen], &block[TAR_FNAME], TAR_FNAMELEN); + fnamelen += strlen((const char *) &scratch[fnamelen]); + + if (fnamelen == 0) + return NULL; // corrupt file. !!! FIXME: fatal() ? + + ar->prevEnum.filename = xstrdup((const char *) scratch); + + type = block[TAR_TYPE]; + if (type == 0) // some archivers do the file type as 0 instead of '0'. + type = TAR_TYPE_FILE; + + if (ar->prevEnum.filename[fnamelen-1] == '/') + { + while (ar->prevEnum.filename[fnamelen-1] == '/') + ar->prevEnum.filename[--fnamelen] = '\0'; + + // legacy tar entries don't have a dir type, they just append a '/' to + // the filename... + if ((!ustar) && (type == TAR_TYPE_FILE)) + type = TAR_TYPE_DIRECTORY; + } // if + + ar->prevEnum.type = MOJOARCHIVE_ENTRY_UNKNOWN; + if (type == TAR_TYPE_FILE) + ar->prevEnum.type = MOJOARCHIVE_ENTRY_FILE; + else if (type == TAR_TYPE_DIRECTORY) + ar->prevEnum.type = MOJOARCHIVE_ENTRY_DIR; + else if (type == TAR_TYPE_SYMLINK) + { + ar->prevEnum.type = MOJOARCHIVE_ENTRY_SYMLINK; + memcpy(scratch, &block[TAR_LINKNAME], TAR_LINKNAMELEN); + scratch[TAR_LINKNAMELEN] = '\0'; // just in case. + ar->prevEnum.linkdest = xstrdup((const char *) scratch); + } // else if + + return &ar->prevEnum; +} // MojoArchive_tar_enumNext + + +static MojoInput *MojoArchive_tar_openCurrentEntry(MojoArchive *ar) +{ + TARinfo *info = (TARinfo *) ar->opaque; + MojoInput *io = NULL; + TARinput *opaque = NULL; + + if (info->curFileStart == 0) + return NULL; + + // Can't open multiple, since we would end up decompressing twice + // to enumerate the next file, so I imposed this limitation for now. + if (info->input != NULL) + fatal("BUG: tar entry double open"); + + opaque = (TARinput *) xmalloc(sizeof (TARinput)); + opaque->ar = ar; + opaque->fsize = ar->prevEnum.filesize; + opaque->offset = info->curFileStart; + + io = (MojoInput *) xmalloc(sizeof (MojoInput)); + io->ready = MojoInput_tar_ready; + io->read = MojoInput_tar_read; + io->seek = MojoInput_tar_seek; + io->tell = MojoInput_tar_tell; + io->length = MojoInput_tar_length; + io->duplicate = MojoInput_tar_duplicate; + io->close = MojoInput_tar_close; + io->opaque = opaque; + info->input = io; + return io; +} // MojoArchive_tar_openCurrentEntry + + +static void MojoArchive_tar_close(MojoArchive *ar) +{ + TARinfo *info = (TARinfo *) ar->opaque; + MojoArchive_resetEntry(&ar->prevEnum); + ar->io->close(ar->io); + free(info); + free(ar); +} // MojoArchive_tar_close + + +MojoArchive *MojoArchive_createTAR(MojoInput *io) +{ + MojoArchive *ar = NULL; + uint8 sig[512]; + const int64 br = io->read(io, sig, sizeof (sig)); + + // See if this is a tar archive. We only support "USTAR" format, + // since it has a detectable header. GNU and BSD tar has been creating + // these for years, so it's okay to ignore other ones, I guess. + if ((!io->seek(io, 0)) || (br != sizeof (sig)) || (!is_ustar(sig)) ) + return NULL; + + // okay, it's a tarball, we're good to go. + + ar = (MojoArchive *) xmalloc(sizeof (MojoArchive)); + ar->opaque = (TARinfo *) xmalloc(sizeof (TARinfo)); + ar->enumerate = MojoArchive_tar_enumerate; + ar->enumNext = MojoArchive_tar_enumNext; + ar->openCurrentEntry = MojoArchive_tar_openCurrentEntry; + ar->close = MojoArchive_tar_close; + ar->io = io; + return ar; +} // MojoArchive_createTAR + +#endif // SUPPORT_TAR + +// end of archive_tar.c ... + diff --git a/mk/linux/mojosetup/archive_uz2.c b/mk/linux/mojosetup/archive_uz2.c new file mode 100644 index 00000000..1fa02a8e --- /dev/null +++ b/mk/linux/mojosetup/archive_uz2.c @@ -0,0 +1,361 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#include "fileio.h" +#include "platform.h" + +#if !SUPPORT_UZ2 +MojoArchive *MojoArchive_createUZ2(MojoInput *io) { return NULL; } +#else + +// UZ2 format is a simple compressed file format used by UnrealEngine2. +// it's just a stream of blocks like this: +// uint32 compressed size +// uint32 uncompressed size +// uint8 data[compressed size] <-- unpacks to (uncompressed size) bytes. +// Decompression is handled by zlib's "uncompress" function. + +#include "zlib/zlib.h" + +#define MAXCOMPSIZE 32768 +#define MAXUNCOMPSIZE 33096 // MAXCOMPSIZE + 1% + + +// MojoInput implementation... + +// Decompression is handled in the parent MojoInput, so this just needs to +// make sure we stay within the bounds of the tarfile entry. + +typedef struct UZ2input +{ + MojoInput *io; + int64 fsize; + uint64 position; + uint32 compsize; + uint8 compbuf[MAXCOMPSIZE]; + uint32 uncompsize; + uint8 uncompbuf[MAXUNCOMPSIZE]; + uint32 uncompindex; +} UZ2input; + +typedef struct UZ2info +{ + char *outname; + int64 outsize; + boolean enumerated; +} UZ2info; + + +static boolean readui32(MojoInput *io, uint32 *ui32) +{ + uint8 buf[sizeof (uint32)]; + if (io->read(io, buf, sizeof (buf)) != sizeof (buf)) + return false; + + *ui32 = (buf[0] | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24)); + return true; +} // readui32 + +static boolean unpack(UZ2input *inp) +{ + MojoInput *io = inp->io; + uLongf ul = (uLongf) inp->uncompsize; + + // we checked these formally elsewhere. + assert(inp->compsize > 0); + assert(inp->uncompsize > 0); + assert(inp->compsize <= MAXCOMPSIZE); + assert(inp->uncompsize <= MAXUNCOMPSIZE); + + if (io->read(io, inp->compbuf, inp->compsize) != inp->compsize) + return false; + if (uncompress(inp->uncompbuf, &ul, inp->compbuf, inp->compsize) != Z_OK) + return false; + if (ul != ((uLongf) inp->uncompsize)) // corrupt data. + return false; + + inp->uncompindex = 0; + return true; +} // unpack + +static boolean MojoInput_uz2_ready(MojoInput *io) +{ + UZ2input *input = (UZ2input *) io->opaque; + if (input->uncompsize > 0) + return true; + return true; // !!! FIXME: need to know we have a full compressed block. +} // MojoInput_uz2_ready + +static int64 MojoInput_uz2_read(MojoInput *io, void *_buf, uint32 bufsize) +{ + uint8 *buf = (uint8 *) _buf; + UZ2input *input = (UZ2input *) io->opaque; + int64 retval = 0; + while (bufsize > 0) + { + const uint32 available = input->uncompsize - input->uncompindex; + const uint32 cpy = (available < bufsize) ? available : bufsize; + if (available == 0) + { + if (input->position == input->fsize) + return 0; + else if (!readui32(input->io, &input->compsize)) + return (retval == 0) ? -1 : retval; + else if (!readui32(input->io, &input->uncompsize)) + return (retval == 0) ? -1 : retval; + else if (!unpack(input)) + return (retval == 0) ? -1 : retval; + continue; // try again. + } // if + + memcpy(buf, input->uncompbuf + input->uncompindex, cpy); + buf += cpy; + bufsize -= cpy; + retval += cpy; + input->uncompindex += cpy; + input->position += cpy; + } // while + + return retval; +} // MojoInput_uz2_read + +static boolean MojoInput_uz2_seek(MojoInput *io, uint64 pos) +{ + UZ2input *input = (UZ2input *) io->opaque; + int64 seekpos = 0; + + // in a perfect world, this wouldn't seek from the start if moving + // forward. But oh well. + input->position = 0; + while (input->position < pos) + { + if (!input->io->seek(input->io, seekpos)) + return false; + else if (!readui32(io, &input->compsize)) + return false; + else if (!readui32(io, &input->uncompsize)) + return false; + + // we checked these formally elsewhere. + assert(input->compsize > 0); + assert(input->uncompsize > 0); + assert(input->compsize <= MAXCOMPSIZE); + assert(input->uncompsize <= MAXUNCOMPSIZE); + + input->position += input->uncompsize; + seekpos += (sizeof (uint32) * 2) + input->compsize; + } // while + + // we are positioned on the compressed block that contains the seek target. + if (!unpack(input)) + return false; + + input->position -= input->uncompsize; + input->uncompindex = (uint32) (pos - input->position); + input->position += input->uncompindex; + + return true; +} // MojoInput_uz2_seek + +static int64 MojoInput_uz2_tell(MojoInput *io) +{ + return (int64) (((UZ2input *) io->opaque)->position); +} // MojoInput_uz2_tell + +static int64 MojoInput_uz2_length(MojoInput *io) +{ + return ((UZ2input *) io->opaque)->fsize; +} // MojoInput_uz2_length + +static MojoInput *MojoInput_uz2_duplicate(MojoInput *io) +{ + MojoInput *retval = NULL; + UZ2input *input = (UZ2input *) io->opaque; + MojoInput *newio = input->io->duplicate(input->io); + + if (newio != NULL) + { + UZ2input *newopaque = (UZ2input *) xmalloc(sizeof (UZ2input)); + newopaque->io = newio; + newopaque->fsize = input->fsize; + // everything else is properly zero'd by xmalloc(). + retval = (MojoInput *) xmalloc(sizeof (MojoInput)); + memcpy(retval, io, sizeof (MojoInput)); + retval->opaque = newopaque; + } // if + + return retval; +} // MojoInput_uz2_duplicate + +static void MojoInput_uz2_close(MojoInput *io) +{ + UZ2input *input = (UZ2input *) io->opaque; + input->io->close(input->io); + free(input); + free(io); +} // MojoInput_uz2_close + + +// MojoArchive implementation... + +static boolean MojoArchive_uz2_enumerate(MojoArchive *ar) +{ + UZ2info *info = (UZ2info *) ar->opaque; + MojoArchive_resetEntry(&ar->prevEnum); + info->enumerated = false; + return true; +} // MojoArchive_uz2_enumerate + + +static const MojoArchiveEntry *MojoArchive_uz2_enumNext(MojoArchive *ar) +{ + UZ2info *info = (UZ2info *) ar->opaque; + + MojoArchive_resetEntry(&ar->prevEnum); + if (info->enumerated) + return NULL; // only one file in this "archive". + + ar->prevEnum.perms = MojoPlatform_defaultFilePerms(); + ar->prevEnum.filesize = info->outsize; + ar->prevEnum.filename = xstrdup(info->outname); + ar->prevEnum.type = MOJOARCHIVE_ENTRY_FILE; + + info->enumerated = true; + return &ar->prevEnum; +} // MojoArchive_uz2_enumNext + + +static MojoInput *MojoArchive_uz2_openCurrentEntry(MojoArchive *ar) +{ + UZ2info *info = (UZ2info *) ar->opaque; + MojoInput *io = NULL; + UZ2input *opaque = NULL; + MojoInput *dupio = NULL; + + if (!info->enumerated) + return NULL; + + dupio = ar->io->duplicate(ar->io); + if (dupio == NULL) + return NULL; + + opaque = (UZ2input *) xmalloc(sizeof (UZ2input)); + opaque->io = dupio; + opaque->fsize = info->outsize; + // rest is zero'd by xmalloc(). + + io = (MojoInput *) xmalloc(sizeof (MojoInput)); + io->ready = MojoInput_uz2_ready; + io->read = MojoInput_uz2_read; + io->seek = MojoInput_uz2_seek; + io->tell = MojoInput_uz2_tell; + io->length = MojoInput_uz2_length; + io->duplicate = MojoInput_uz2_duplicate; + io->close = MojoInput_uz2_close; + io->opaque = opaque; + + return io; +} // MojoArchive_uz2_openCurrentEntry + + +static void MojoArchive_uz2_close(MojoArchive *ar) +{ + UZ2info *info = (UZ2info *) ar->opaque; + MojoArchive_resetEntry(&ar->prevEnum); + ar->io->close(ar->io); + free(info->outname); + free(info); + free(ar); +} // MojoArchive_uz2_close + + +// Unfortunately, we have to walk the whole file, but we don't have to actually +// do any decompression work here. Just seek, read 8 bytes, repeat until EOF. +static int64 calculate_uz2_outsize(MojoInput *io) +{ + int64 retval = 0; + uint32 compsize = 0; + uint32 uncompsize = 0; + int64 pos = 0; + + if (!io->seek(io, 0)) + return -1; + + while (readui32(io, &compsize)) + { + if (!readui32(io, &uncompsize)) + return -1; + else if ((compsize > MAXCOMPSIZE) || (uncompsize > MAXUNCOMPSIZE)) + return -1; + else if ((compsize == 0) || (uncompsize == 0)) + return -1; + retval += uncompsize; + pos += (sizeof (uint32) * 2) + compsize; + if (!io->seek(io, pos)) + return -1; + } // while + + if (!io->seek(io, 0)) // make sure we're back to the start. + return -1; + + return retval; +} // calculate_uz2_outsize + + +MojoArchive *MojoArchive_createUZ2(MojoInput *io, const char *origfname) +{ + MojoArchive *ar = NULL; + const char *fname = NULL; + char *outname = NULL; + size_t len = 0; + int64 outsize = 0; + UZ2info *uz2info = NULL; + + // There's no magic in a UZ2 that allows us to identify the format. + // The higher-level won't call this unless the file extension in + // (origfname) is ".uz2" + + // Figure out the output name ("x.uz2" would produce "x"). + if (origfname == NULL) + return NULL; // just in case. + fname = strrchr(origfname, '/'); + if (fname == NULL) + fname = origfname; + else + fname++; + + len = strlen(fname) - 4; // -4 == ".uz2" + if (strcasecmp(fname + len, ".uz2") != 0) + return NULL; // just in case. + + outsize = calculate_uz2_outsize(io); + if (outsize < 0) + return NULL; // wasn't really a uz2? Corrupt/truncated file? + outname = (char *) xmalloc(len+1); + memcpy(outname, fname, len); + outname[len] = '\0'; + + uz2info = (UZ2info *) xmalloc(sizeof (UZ2info)); + uz2info->enumerated = false; + uz2info->outname = outname; + uz2info->outsize = outsize; + + ar = (MojoArchive *) xmalloc(sizeof (MojoArchive)); + ar->opaque = uz2info; + ar->enumerate = MojoArchive_uz2_enumerate; + ar->enumNext = MojoArchive_uz2_enumNext; + ar->openCurrentEntry = MojoArchive_uz2_openCurrentEntry; + ar->close = MojoArchive_uz2_close; + ar->io = io; + return ar; +} // MojoArchive_createUZ2 + +#endif // SUPPORT_UZ2 + +// end of archive_uz2.c ... + diff --git a/mk/linux/mojosetup/archive_zip.c b/mk/linux/mojosetup/archive_zip.c new file mode 100644 index 00000000..996f04a1 --- /dev/null +++ b/mk/linux/mojosetup/archive_zip.c @@ -0,0 +1,1849 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#include "fileio.h" + +#if !SUPPORT_ZIP +MojoArchive *MojoArchive_createZIP(MojoInput *io) { return NULL; } +#else + +#include +#include + +#include "zlib/zlib.h" + +/* + * ZIP support routines, adapted from PhysicsFS (http://icculus.org/physfs/) + */ + +#if __MOJOSETUP__ +// Glue from PhysicsFS to MojoSetup follows... +typedef int8 PHYSFS_sint8; +typedef uint8 PHYSFS_uint8; +typedef int16 PHYSFS_sint16; +typedef uint16 PHYSFS_uint16; +typedef int32 PHYSFS_sint32; +typedef uint32 PHYSFS_uint32; +typedef int64 PHYSFS_sint64; +typedef uint64 PHYSFS_uint64; + +#define BAIL_IF_MACRO(cond, err, ret) if (cond) return ret; +#define BAIL_MACRO(err, ret) return ret; + +static void *mallocWrap(PHYSFS_uint64 s) { return xmalloc((uint32) s); } +static void *reallocWrap(void *p,PHYSFS_uint64 s){return xrealloc(p,(uint32)s);} +static void freeWrap(void *p) { free(p); } +typedef struct +{ + int (*Init)(void); /**< Initialize. Can be NULL. Zero on failure. */ + void (*Deinit)(void); /**< Deinitialize your allocator. Can be NULL. */ + void *(*Malloc)(PHYSFS_uint64); /**< Allocate like malloc(). */ + void *(*Realloc)(void *, PHYSFS_uint64); /**< Reallocate like realloc(). */ + void (*Free)(void *); /**< Free memory from Malloc or Realloc. */ +} PHYSFS_Allocator; + +static PHYSFS_Allocator allocator = { 0, 0, mallocWrap, reallocWrap, freeWrap }; + +#define ERR_ZLIB_NEED_DICT _("need dictionary") +#define ERR_ZLIB_DATA_ERROR _("data error") +#define ERR_ZLIB_MEMORY_ERROR _("memory error") +#define ERR_ZLIB_BUFFER_ERROR _("buffer error") +#define ERR_ZLIB_VERSION_ERROR _("version error") +#define ERR_ZLIB_UNKNOWN_ERROR _("unknown error") + +#define __PHYSFS_setError(x) + +#define fvoid void +#define dvoid void + +#if PLATFORM_BIGENDIAN +static PHYSFS_uint32 PHYSFS_swapULE32(PHYSFS_uint32 D) +{ + return((D<<24)|((D<<8)&0x00FF0000)|((D>>8)&0x0000FF00)|(D>>24)); +} +static PHYSFS_uint16 PHYSFS_swapULE16(PHYSFS_uint16 D) +{ + return((D<<8)|(D>>8)); +} +#else +static PHYSFS_uint32 PHYSFS_swapULE32(PHYSFS_uint32 D) { return D; } +static PHYSFS_uint16 PHYSFS_swapULE16(PHYSFS_uint16 D) { return D; } +#endif + +static PHYSFS_sint64 __PHYSFS_platformRead(void *opaque, void *buffer, + PHYSFS_uint32 size, PHYSFS_uint32 count) +{ + MojoInput *io = (MojoInput *) opaque; + int64 rc = io->read(io, buffer, size * count); + return rc / size; // !!! FIXME: what if rc == -1? +} + +static int __PHYSFS_platformSeek(void *opaque, PHYSFS_uint64 pos) +{ + MojoInput *io = (MojoInput *) opaque; + return io->seek(io, pos) ? 1 : 0; +} + +static int __PHYSFS_platformClose(void *opaque) +{ + MojoInput *io = (MojoInput *) opaque; + io->close(io); + return 1; +} + +static PHYSFS_sint64 __PHYSFS_platformFileLength(void *opaque) +{ + MojoInput *io = (MojoInput *) opaque; + return io->length(io); +} + +static PHYSFS_sint64 __PHYSFS_platformTell(void *opaque) +{ + MojoInput *io = (MojoInput *) opaque; + return io->tell(io); +} + +#define PHYSFS_QUICKSORT_THRESHOLD 4 +static void __PHYSFS_bubble_sort(void *a, PHYSFS_uint32 lo, PHYSFS_uint32 hi, + int (*cmpfn)(void *, PHYSFS_uint32, PHYSFS_uint32), + void (*swapfn)(void *, PHYSFS_uint32, PHYSFS_uint32)) +{ + PHYSFS_uint32 i; + int sorted; + + do + { + sorted = 1; + for (i = lo; i < hi; i++) + { + if (cmpfn(a, i, i + 1) > 0) + { + swapfn(a, i, i + 1); + sorted = 0; + } /* if */ + } /* for */ + } while (!sorted); +} /* __PHYSFS_bubble_sort */ + + +static void __PHYSFS_quick_sort(void *a, PHYSFS_uint32 lo, PHYSFS_uint32 hi, + int (*cmpfn)(void *, PHYSFS_uint32, PHYSFS_uint32), + void (*swapfn)(void *, PHYSFS_uint32, PHYSFS_uint32)) +{ + PHYSFS_uint32 i; + PHYSFS_uint32 j; + PHYSFS_uint32 v; + + if ((hi - lo) <= PHYSFS_QUICKSORT_THRESHOLD) + __PHYSFS_bubble_sort(a, lo, hi, cmpfn, swapfn); + else + { + i = (hi + lo) / 2; + + if (cmpfn(a, lo, i) > 0) swapfn(a, lo, i); + if (cmpfn(a, lo, hi) > 0) swapfn(a, lo, hi); + if (cmpfn(a, i, hi) > 0) swapfn(a, i, hi); + + j = hi - 1; + swapfn(a, i, j); + i = lo; + v = j; + while (1) + { + while(cmpfn(a, ++i, v) < 0) { /* do nothing */ } + while(cmpfn(a, --j, v) > 0) { /* do nothing */ } + if (j < i) + break; + swapfn(a, i, j); + } /* while */ + swapfn(a, i, hi-1); + __PHYSFS_quick_sort(a, lo, j, cmpfn, swapfn); + __PHYSFS_quick_sort(a, i+1, hi, cmpfn, swapfn); + } /* else */ +} /* __PHYSFS_quick_sort */ + + +void __PHYSFS_sort(void *entries, PHYSFS_uint32 max, + int (*cmpfn)(void *, PHYSFS_uint32, PHYSFS_uint32), + void (*swapfn)(void *, PHYSFS_uint32, PHYSFS_uint32)) +{ + /* + * Quicksort w/ Bubblesort fallback algorithm inspired by code from here: + * http://www.cs.ubc.ca/spider/harrison/Java/sorting-demo.html + */ + __PHYSFS_quick_sort(entries, 0, max - 1, cmpfn, swapfn); +} /* __PHYSFS_sort */ + + +typedef void (*PHYSFS_EnumFilesCallback)(void *, const char *, const char *); +#endif + + +/* + * A buffer of ZIP_READBUFSIZE is allocated for each compressed file opened, + * and is freed when you close the file; compressed data is read into + * this buffer, and then is decompressed into the buffer passed to + * PHYSFS_read(). + * + * Uncompressed entries in a zipfile do not allocate this buffer; they just + * read data directly into the buffer passed to PHYSFS_read(). + * + * Depending on your speed and memory requirements, you should tweak this + * value. + */ +#if __MOJOSETUP__ +#define ZIP_READBUFSIZE (128 * 1024) +#else +#define ZIP_READBUFSIZE (16 * 1024) +#endif + +/* + * Entries are "unresolved" until they are first opened. At that time, + * local file headers parsed/validated, data offsets will be updated to look + * at the actual file data instead of the header, and symlinks will be + * followed and optimized. This means that we don't seek and read around the + * archive until forced to do so, and after the first time, we had to do + * less reading and parsing, which is very CD-ROM friendly. + */ +typedef enum +{ + ZIP_UNRESOLVED_FILE, + ZIP_UNRESOLVED_SYMLINK, + ZIP_RESOLVING, + ZIP_RESOLVED, + ZIP_BROKEN_FILE, + ZIP_BROKEN_SYMLINK +} ZipResolveType; + + +/* + * One ZIPentry is kept for each file in an open ZIP archive. + */ +typedef struct _ZIPentry +{ + char *name; /* Name of file in archive */ + struct _ZIPentry *symlink; /* NULL or file we symlink to */ + #if __MOJOSETUP__ + PHYSFS_uint16 perms; + char *linkdest; + #endif + ZipResolveType resolved; /* Have we resolved file/symlink? */ + PHYSFS_uint32 offset; /* offset of data in archive */ + PHYSFS_uint16 version; /* version made by */ + PHYSFS_uint16 version_needed; /* version needed to extract */ + PHYSFS_uint16 compression_method; /* compression method */ + PHYSFS_uint32 crc; /* crc-32 */ + PHYSFS_uint32 compressed_size; /* compressed size */ + PHYSFS_uint32 uncompressed_size; /* uncompressed size */ + PHYSFS_sint64 last_mod_time; /* last file mod time */ +} ZIPentry; + +/* + * One ZIPinfo is kept for each open ZIP archive. + */ +typedef struct +{ + char *archiveName; /* path to ZIP in platform-dependent notation. */ + #if __MOJOSETUP__ + void *io; /* a MojoInput pointer */ + int32 enumIndex; /* index of last entry enumerated. */ + int64 offset; /* byte offset from start of MojoInput where zip starts. */ + #endif + PHYSFS_uint16 entryCount; /* Number of files in ZIP. */ + ZIPentry *entries; /* info on all files in ZIP. */ +} ZIPinfo; + +/* + * One ZIPfileinfo is kept for each open file in a ZIP archive. + */ +typedef struct +{ + #if __MOJOSETUP__ + ZIPinfo *archive; /* archive this belongs to, for duplication. */ + #endif + ZIPentry *entry; /* Info on file. */ + void *handle; /* physical file handle. */ + PHYSFS_uint32 compressed_position; /* offset in compressed data. */ + PHYSFS_uint32 uncompressed_position; /* tell() position. */ + PHYSFS_uint8 *buffer; /* decompression buffer. */ + z_stream stream; /* zlib stream state. */ +} ZIPfileinfo; + + +/* Magic numbers... */ +#define ZIP_LOCAL_FILE_SIG 0x04034b50 +#define ZIP_CENTRAL_DIR_SIG 0x02014b50 +#define ZIP_END_OF_CENTRAL_DIR_SIG 0x06054b50 + +/* compression methods... */ +#define COMPMETH_NONE 0 +/* ...and others... */ + + +#define UNIX_FILETYPE_MASK 0170000 +#define UNIX_FILETYPE_SYMLINK 0120000 + +/* + * Bridge physfs allocation functions to zlib's format... + */ +static voidpf zlibPhysfsAlloc(voidpf opaque, uInt items, uInt size) +{ + return(((PHYSFS_Allocator *) opaque)->Malloc(items * size)); +} /* zlibPhysfsAlloc */ + +/* + * Bridge physfs allocation functions to zlib's format... + */ +static void zlibPhysfsFree(voidpf opaque, voidpf address) +{ + ((PHYSFS_Allocator *) opaque)->Free(address); +} /* zlibPhysfsFree */ + + +/* + * Construct a new z_stream to a sane state. + */ +static void initializeZStream(z_stream *pstr) +{ + memset(pstr, '\0', sizeof (z_stream)); + pstr->zalloc = zlibPhysfsAlloc; + pstr->zfree = zlibPhysfsFree; + pstr->opaque = &allocator; +} /* initializeZStream */ + + +static const char *zlib_error_string(int rc) +{ + switch (rc) + { + case Z_OK: return(NULL); /* not an error. */ + case Z_STREAM_END: return(NULL); /* not an error. */ +#ifndef _WIN32_WCE + case Z_ERRNO: return(strerror(errno)); +#endif + case Z_NEED_DICT: return(ERR_ZLIB_NEED_DICT); + case Z_DATA_ERROR: return(ERR_ZLIB_DATA_ERROR); + case Z_MEM_ERROR: return(ERR_ZLIB_MEMORY_ERROR); + case Z_BUF_ERROR: return(ERR_ZLIB_BUFFER_ERROR); + case Z_VERSION_ERROR: return(ERR_ZLIB_VERSION_ERROR); + default: return(ERR_ZLIB_UNKNOWN_ERROR); + } /* switch */ +} /* zlib_error_string */ + + +/* + * Wrap all zlib calls in this, so the physfs error state is set appropriately. + */ +static int zlib_err(int rc) +{ + const char *str = zlib_error_string(rc); + if (str != NULL) + __PHYSFS_setError(str); + return(rc); +} /* zlib_err */ + + +/* + * Read an unsigned 32-bit int and swap to native byte order. + */ +static int readui32(void *in, PHYSFS_uint32 *val) +{ + PHYSFS_uint32 v; + BAIL_IF_MACRO(__PHYSFS_platformRead(in, &v, sizeof (v), 1) != 1, NULL, 0); + *val = PHYSFS_swapULE32(v); + return(1); +} /* readui32 */ + + +/* + * Read an unsigned 16-bit int and swap to native byte order. + */ +static int readui16(void *in, PHYSFS_uint16 *val) +{ + PHYSFS_uint16 v; + BAIL_IF_MACRO(__PHYSFS_platformRead(in, &v, sizeof (v), 1) != 1, NULL, 0); + *val = PHYSFS_swapULE16(v); + return(1); +} /* readui16 */ + + +static PHYSFS_sint64 ZIP_read(fvoid *opaque, void *buf, + PHYSFS_uint32 objSize, PHYSFS_uint32 objCount) +{ + ZIPfileinfo *finfo = (ZIPfileinfo *) opaque; + ZIPentry *entry = finfo->entry; + PHYSFS_sint64 retval = 0; + PHYSFS_sint64 maxread = ((PHYSFS_sint64) objSize) * objCount; + PHYSFS_sint64 avail = entry->uncompressed_size - + finfo->uncompressed_position; + + BAIL_IF_MACRO(maxread == 0, NULL, 0); /* quick rejection. */ + + if (avail < maxread) + { + maxread = avail - (avail % objSize); + objCount = (PHYSFS_uint32) (maxread / objSize); + BAIL_IF_MACRO(objCount == 0, ERR_PAST_EOF, 0); /* quick rejection. */ + __PHYSFS_setError(ERR_PAST_EOF); /* this is always true here. */ + } /* if */ + + if (entry->compression_method == COMPMETH_NONE) + { + retval = __PHYSFS_platformRead(finfo->handle, buf, objSize, objCount); + } /* if */ + + else + { + finfo->stream.next_out = buf; + finfo->stream.avail_out = objSize * objCount; + + while (retval < maxread) + { + PHYSFS_uint32 before = finfo->stream.total_out; + int rc; + + if (finfo->stream.avail_in == 0) + { + PHYSFS_sint64 br; + + br = entry->compressed_size - finfo->compressed_position; + if (br > 0) + { + if (br > ZIP_READBUFSIZE) + br = ZIP_READBUFSIZE; + + br = __PHYSFS_platformRead(finfo->handle, + finfo->buffer, + 1, (PHYSFS_uint32) br); + if (br <= 0) + break; + + finfo->compressed_position += (PHYSFS_uint32) br; + finfo->stream.next_in = finfo->buffer; + finfo->stream.avail_in = (PHYSFS_uint32) br; + } /* if */ + } /* if */ + + rc = zlib_err(inflate(&finfo->stream, Z_SYNC_FLUSH)); + retval += (finfo->stream.total_out - before); + + if (rc != Z_OK) + break; + } /* while */ + + retval /= objSize; + } /* else */ + + if (retval > 0) + finfo->uncompressed_position += (PHYSFS_uint32) (retval * objSize); + + return(retval); +} /* ZIP_read */ + + +#if !__MOJOSETUP__ +static PHYSFS_sint64 ZIP_write(fvoid *opaque, const void *buf, + PHYSFS_uint32 objSize, PHYSFS_uint32 objCount) +{ + BAIL_MACRO(ERR_NOT_SUPPORTED, -1); +} /* ZIP_write */ + + +static int ZIP_eof(fvoid *opaque) +{ + ZIPfileinfo *finfo = (ZIPfileinfo *) opaque; + return(finfo->uncompressed_position >= finfo->entry->uncompressed_size); +} /* ZIP_eof */ +#endif + + +static PHYSFS_sint64 ZIP_tell(fvoid *opaque) +{ + return(((ZIPfileinfo *) opaque)->uncompressed_position); +} /* ZIP_tell */ + + +static int ZIP_seek(fvoid *opaque, PHYSFS_uint64 offset) +{ + ZIPfileinfo *finfo = (ZIPfileinfo *) opaque; + ZIPentry *entry = finfo->entry; + void *in = finfo->handle; + + BAIL_IF_MACRO(offset > entry->uncompressed_size, ERR_PAST_EOF, 0); + + if (entry->compression_method == COMPMETH_NONE) + { + PHYSFS_sint64 newpos = offset + entry->offset; + BAIL_IF_MACRO(!__PHYSFS_platformSeek(in, newpos), NULL, 0); + finfo->uncompressed_position = (PHYSFS_uint32) offset; + } /* if */ + + else + { + /* + * If seeking backwards, we need to redecode the file + * from the start and throw away the compressed bits until we hit + * the offset we need. If seeking forward, we still need to + * decode, but we don't rewind first. + */ + if (offset < finfo->uncompressed_position) + { + /* we do a copy so state is sane if inflateInit2() fails. */ + z_stream str; + initializeZStream(&str); + if (zlib_err(inflateInit2(&str, -MAX_WBITS)) != Z_OK) + return(0); + + if (!__PHYSFS_platformSeek(in, entry->offset)) + return(0); + + inflateEnd(&finfo->stream); + memcpy(&finfo->stream, &str, sizeof (z_stream)); + finfo->uncompressed_position = finfo->compressed_position = 0; + } /* if */ + + while (finfo->uncompressed_position != offset) + { + PHYSFS_uint8 buf[512]; + PHYSFS_uint32 maxread; + + maxread = (PHYSFS_uint32) (offset - finfo->uncompressed_position); + if (maxread > sizeof (buf)) + maxread = sizeof (buf); + + if (ZIP_read(opaque, buf, maxread, 1) != 1) + return(0); + } /* while */ + } /* else */ + + return(1); +} /* ZIP_seek */ + + +static PHYSFS_sint64 ZIP_fileLength(fvoid *opaque) +{ + ZIPfileinfo *finfo = (ZIPfileinfo *) opaque; + return(finfo->entry->uncompressed_size); +} /* ZIP_fileLength */ + + +static int ZIP_fileClose(fvoid *opaque) +{ + ZIPfileinfo *finfo = (ZIPfileinfo *) opaque; + BAIL_IF_MACRO(!__PHYSFS_platformClose(finfo->handle), NULL, 0); + + if (finfo->entry->compression_method != COMPMETH_NONE) + inflateEnd(&finfo->stream); + + if (finfo->buffer != NULL) + allocator.Free(finfo->buffer); + + allocator.Free(finfo); + return(1); +} /* ZIP_fileClose */ + + +static PHYSFS_sint64 zip_find_end_of_central_dir(void *in, PHYSFS_sint64 *len) +{ + PHYSFS_uint8 buf[256]; + PHYSFS_sint32 i = 0; + PHYSFS_sint64 filelen; + PHYSFS_sint64 filepos; + PHYSFS_sint32 maxread; + PHYSFS_sint32 totalread = 0; + int found = 0; + PHYSFS_uint32 extra = 0; + + filelen = __PHYSFS_platformFileLength(in); + BAIL_IF_MACRO(filelen == -1, NULL, 0); /* !!! FIXME: unlocalized string */ + BAIL_IF_MACRO(filelen > 0xFFFFFFFF, "ZIP bigger than 2 gigs?!", 0); + + /* + * Jump to the end of the file and start reading backwards. + * The last thing in the file is the zipfile comment, which is variable + * length, and the field that specifies its size is before it in the + * file (argh!)...this means that we need to scan backwards until we + * hit the end-of-central-dir signature. We can then sanity check that + * the comment was as big as it should be to make sure we're in the + * right place. The comment length field is 16 bits, so we can stop + * searching for that signature after a little more than 64k at most, + * and call it a corrupted zipfile. + */ + + if (sizeof (buf) < filelen) + { + filepos = filelen - sizeof (buf); + maxread = sizeof (buf); + } /* if */ + else + { + filepos = 0; + maxread = (PHYSFS_uint32) filelen; + } /* else */ + + while ((totalread < filelen) && (totalread < 65557)) + { + BAIL_IF_MACRO(!__PHYSFS_platformSeek(in, filepos), NULL, -1); + + /* make sure we catch a signature between buffers. */ + if (totalread != 0) + { + if (__PHYSFS_platformRead(in, buf, maxread - 4, 1) != 1) + return(-1); + *((PHYSFS_uint32 *) (&buf[maxread - 4])) = extra; + totalread += maxread - 4; + } /* if */ + else + { + if (__PHYSFS_platformRead(in, buf, maxread, 1) != 1) + return(-1); + totalread += maxread; + } /* else */ + + PHYSFS_uint32 *pPhysBuf = (PHYSFS_uint32 *) (&buf[0]); + extra = *pPhysBuf; + + for (i = maxread - 4; i > 0; i--) + { + if ((buf[i + 0] == 0x50) && + (buf[i + 1] == 0x4B) && + (buf[i + 2] == 0x05) && + (buf[i + 3] == 0x06) ) + { + found = 1; /* that's the signature! */ + break; + } /* if */ + } /* for */ + + if (found) + break; + + filepos -= (maxread - 4); + if (filepos < 0) + filepos = 0; + } /* while */ + + BAIL_IF_MACRO(!found, ERR_NOT_AN_ARCHIVE, -1); + + if (len != NULL) + *len = filelen; + + return(filepos + i); +} /* zip_find_end_of_central_dir */ + + +#if !__MOJOSETUP__ +static int ZIP_isArchive(const char *filename, int forWriting) +{ + PHYSFS_uint32 sig; + int retval = 0; + void *in; + + in = __PHYSFS_platformOpenRead(filename); + BAIL_IF_MACRO(in == NULL, NULL, 0); + + /* + * The first thing in a zip file might be the signature of the + * first local file record, so it makes for a quick determination. + */ + if (readui32(in, &sig)) + { + retval = (sig == ZIP_LOCAL_FILE_SIG); + if (!retval) + { + /* + * No sig...might be a ZIP with data at the start + * (a self-extracting executable, etc), so we'll have to do + * it the hard way... + */ + retval = (zip_find_end_of_central_dir(in, NULL) != -1); + } /* if */ + } /* if */ + + __PHYSFS_platformClose(in); + return(retval); +} /* ZIP_isArchive */ +#endif + +static void zip_free_entries(ZIPentry *entries, PHYSFS_uint32 max) +{ + PHYSFS_uint32 i; + for (i = 0; i < max; i++) + { + ZIPentry *entry = &entries[i]; + if (entry->name != NULL) + allocator.Free(entry->name); + #if __MOJOSETUP__ + if (entry->linkdest != NULL) + allocator.Free(entry->linkdest); + #endif + } /* for */ + + allocator.Free(entries); +} /* zip_free_entries */ + + +/* + * This will find the ZIPentry associated with a path in platform-independent + * notation. Directories don't have ZIPentries associated with them, but + * (*isDir) will be set to non-zero if a dir was hit. + */ +static ZIPentry *zip_find_entry(ZIPinfo *info, const char *path, int *isDir) +{ + ZIPentry *a = info->entries; + PHYSFS_sint32 pathlen = strlen(path); + PHYSFS_sint32 lo = 0; + PHYSFS_sint32 hi = (PHYSFS_sint32) (info->entryCount - 1); + PHYSFS_sint32 middle; + const char *thispath = NULL; + int rc; + + while (lo <= hi) + { + middle = lo + ((hi - lo) / 2); + thispath = a[middle].name; + rc = strncmp(path, thispath, pathlen); + + if (rc > 0) + lo = middle + 1; + + else if (rc < 0) + hi = middle - 1; + + else /* substring match...might be dir or entry or nothing. */ + { + if (isDir != NULL) + { + *isDir = (thispath[pathlen] == '/'); + if (*isDir) + return(NULL); + } /* if */ + + if (thispath[pathlen] == '\0') /* found entry? */ + return(&a[middle]); + else + hi = middle - 1; /* adjust search params, try again. */ + } /* if */ + } /* while */ + + if (isDir != NULL) + *isDir = 0; + + BAIL_MACRO(ERR_NO_SUCH_FILE, NULL); +} /* zip_find_entry */ + + +/* Convert paths from old, buggy DOS zippers... */ +static void zip_convert_dos_path(ZIPentry *entry, char *path) +{ + PHYSFS_uint8 hosttype = (PHYSFS_uint8) ((entry->version >> 8) & 0xFF); + if (hosttype == 0) /* FS_FAT_ */ + { + while (*path) + { + if (*path == '\\') + *path = '/'; + path++; + } /* while */ + } /* if */ +} /* zip_convert_dos_path */ + + +static void zip_expand_symlink_path(char *path) +{ + char *ptr = path; + char *prevptr = path; + + while (1) + { + ptr = strchr(ptr, '/'); + if (ptr == NULL) + break; + + if (*(ptr + 1) == '.') + { + if (*(ptr + 2) == '/') + { + /* current dir in middle of string: ditch it. */ + memmove(ptr, ptr + 2, strlen(ptr + 2) + 1); + } /* else if */ + + else if (*(ptr + 2) == '\0') + { + /* current dir at end of string: ditch it. */ + *ptr = '\0'; + } /* else if */ + + else if (*(ptr + 2) == '.') + { + if (*(ptr + 3) == '/') + { + /* parent dir in middle: move back one, if possible. */ + memmove(prevptr, ptr + 4, strlen(ptr + 4) + 1); + ptr = prevptr; + while (prevptr != path) + { + prevptr--; + if (*prevptr == '/') + { + prevptr++; + break; + } /* if */ + } /* while */ + } /* if */ + + if (*(ptr + 3) == '\0') + { + /* parent dir at end: move back one, if possible. */ + *prevptr = '\0'; + } /* if */ + } /* if */ + } /* if */ + else + { + prevptr = ptr; + } /* else */ + } /* while */ +} /* zip_expand_symlink_path */ + +/* (forward reference: zip_follow_symlink and zip_resolve call each other.) */ +static int zip_resolve(void *in, ZIPinfo *info, ZIPentry *entry); + +/* + * Look for the entry named by (path). If it exists, resolve it, and return + * a pointer to that entry. If it's another symlink, keep resolving until you + * hit a real file and then return a pointer to the final non-symlink entry. + * If there's a problem, return NULL. (path) is always free()'d by this + * function. + */ +static ZIPentry *zip_follow_symlink(void *in, ZIPinfo *info, char *path) +{ + ZIPentry *entry; + + zip_expand_symlink_path(path); + entry = zip_find_entry(info, path, NULL); + if (entry != NULL) + { + if (!zip_resolve(in, info, entry)) /* recursive! */ + entry = NULL; + else + { + if (entry->symlink != NULL) + entry = entry->symlink; + } /* else */ + } /* if */ + + allocator.Free(path); + return(entry); +} /* zip_follow_symlink */ + + +static int zip_resolve_symlink(void *in, ZIPinfo *info, ZIPentry *entry) +{ + char *path; + PHYSFS_uint32 size = entry->uncompressed_size; + int rc = 0; + + /* + * We've already parsed the local file header of the symlink at this + * point. Now we need to read the actual link from the file data and + * follow it. + */ + + BAIL_IF_MACRO(!__PHYSFS_platformSeek(in, entry->offset), NULL, 0); + + path = (char *) allocator.Malloc(size + 1); + BAIL_IF_MACRO(path == NULL, ERR_OUT_OF_MEMORY, 0); + + if (entry->compression_method == COMPMETH_NONE) + rc = (__PHYSFS_platformRead(in, path, size, 1) == 1); + + else /* symlink target path is compressed... */ + { + z_stream stream; + PHYSFS_uint32 compsize = entry->compressed_size; + PHYSFS_uint8 *compressed = (PHYSFS_uint8 *) allocator.Malloc(compsize); + if (compressed != NULL) + { + if (__PHYSFS_platformRead(in, compressed, compsize, 1) == 1) + { + initializeZStream(&stream); + stream.next_in = compressed; + stream.avail_in = compsize; + stream.next_out = (unsigned char *) path; + stream.avail_out = size; + if (zlib_err(inflateInit2(&stream, -MAX_WBITS)) == Z_OK) + { + rc = zlib_err(inflate(&stream, Z_FINISH)); + inflateEnd(&stream); + + /* both are acceptable outcomes... */ + rc = ((rc == Z_OK) || (rc == Z_STREAM_END)); + } /* if */ + } /* if */ + allocator.Free(compressed); + } /* if */ + } /* else */ + + if (!rc) + allocator.Free(path); + else + { + path[entry->uncompressed_size] = '\0'; /* null-terminate it. */ + zip_convert_dos_path(entry, path); + #if __MOJOSETUP__ + entry->linkdest = xstrdup(path); + #endif + entry->symlink = zip_follow_symlink(in, info, path); + } /* else */ + + return(entry->symlink != NULL); +} /* zip_resolve_symlink */ + + +/* + * Parse the local file header of an entry, and update entry->offset. + */ +static int zip_parse_local(void *in, ZIPentry *entry) +{ + PHYSFS_uint32 ui32; + PHYSFS_uint16 ui16; + PHYSFS_uint16 fnamelen; + PHYSFS_uint16 extralen; + + /* + * crc and (un)compressed_size are always zero if this is a "JAR" + * archive created with Sun's Java tools, apparently. We only + * consider this archive corrupted if those entries don't match and + * aren't zero. That seems to work well. + */ + + BAIL_IF_MACRO(!__PHYSFS_platformSeek(in, entry->offset), NULL, 0); + BAIL_IF_MACRO(!readui32(in, &ui32), NULL, 0); + BAIL_IF_MACRO(ui32 != ZIP_LOCAL_FILE_SIG, ERR_CORRUPTED, 0); + BAIL_IF_MACRO(!readui16(in, &ui16), NULL, 0); + BAIL_IF_MACRO(ui16 != entry->version_needed, ERR_CORRUPTED, 0); + BAIL_IF_MACRO(!readui16(in, &ui16), NULL, 0); /* general bits. */ + BAIL_IF_MACRO(!readui16(in, &ui16), NULL, 0); + BAIL_IF_MACRO(ui16 != entry->compression_method, ERR_CORRUPTED, 0); + BAIL_IF_MACRO(!readui32(in, &ui32), NULL, 0); /* date/time */ + BAIL_IF_MACRO(!readui32(in, &ui32), NULL, 0); + BAIL_IF_MACRO(ui32 && (ui32 != entry->crc), ERR_CORRUPTED, 0); + BAIL_IF_MACRO(!readui32(in, &ui32), NULL, 0); + BAIL_IF_MACRO(ui32 && (ui32 != entry->compressed_size), ERR_CORRUPTED, 0); + BAIL_IF_MACRO(!readui32(in, &ui32), NULL, 0); + BAIL_IF_MACRO(ui32 && (ui32 != entry->uncompressed_size),ERR_CORRUPTED,0); + BAIL_IF_MACRO(!readui16(in, &fnamelen), NULL, 0); + BAIL_IF_MACRO(!readui16(in, &extralen), NULL, 0); + + entry->offset += fnamelen + extralen + 30; + return(1); +} /* zip_parse_local */ + + +static int zip_resolve(void *in, ZIPinfo *info, ZIPentry *entry) +{ + int retval = 1; + ZipResolveType resolve_type = entry->resolved; + + /* Don't bother if we've failed to resolve this entry before. */ + BAIL_IF_MACRO(resolve_type == ZIP_BROKEN_FILE, ERR_CORRUPTED, 0); + BAIL_IF_MACRO(resolve_type == ZIP_BROKEN_SYMLINK, ERR_CORRUPTED, 0); + + /* uhoh...infinite symlink loop! */ + BAIL_IF_MACRO(resolve_type == ZIP_RESOLVING, ERR_SYMLINK_LOOP, 0); + + /* + * We fix up the offset to point to the actual data on the + * first open, since we don't want to seek across the whole file on + * archive open (can be SLOW on large, CD-stored files), but we + * need to check the local file header...not just for corruption, + * but since it stores offset info the central directory does not. + */ + if (resolve_type != ZIP_RESOLVED) + { + entry->resolved = ZIP_RESOLVING; + + retval = zip_parse_local(in, entry); + if (retval) + { + /* + * If it's a symlink, find the original file. This will cause + * resolution of other entries (other symlinks and, eventually, + * the real file) if all goes well. + */ + if (resolve_type == ZIP_UNRESOLVED_SYMLINK) + retval = zip_resolve_symlink(in, info, entry); + } /* if */ + + if (resolve_type == ZIP_UNRESOLVED_SYMLINK) + entry->resolved = ((retval) ? ZIP_RESOLVED : ZIP_BROKEN_SYMLINK); + else if (resolve_type == ZIP_UNRESOLVED_FILE) + entry->resolved = ((retval) ? ZIP_RESOLVED : ZIP_BROKEN_FILE); + } /* if */ + + return(retval); +} /* zip_resolve */ + + +static int zip_version_does_symlinks(PHYSFS_uint32 version) +{ + int retval = 0; + PHYSFS_uint8 hosttype = (PHYSFS_uint8) ((version >> 8) & 0xFF); + + switch (hosttype) + { + /* + * These are the platforms that can NOT build an archive with + * symlinks, according to the Info-ZIP project. + */ + case 0: /* FS_FAT_ */ + case 1: /* AMIGA_ */ + case 2: /* VMS_ */ + case 4: /* VM_CSM_ */ + case 6: /* FS_HPFS_ */ + case 11: /* FS_NTFS_ */ + case 14: /* FS_VFAT_ */ + case 13: /* ACORN_ */ + case 15: /* MVS_ */ + case 18: /* THEOS_ */ + break; /* do nothing. */ + + default: /* assume the rest to be unix-like. */ + retval = 1; + break; + } /* switch */ + + return(retval); +} /* zip_version_does_symlinks */ + + +static int zip_entry_is_symlink(const ZIPentry *entry) +{ + return((entry->resolved == ZIP_UNRESOLVED_SYMLINK) || + (entry->resolved == ZIP_BROKEN_SYMLINK) || + (entry->symlink)); +} /* zip_entry_is_symlink */ + + +static int zip_has_symlink_attr(ZIPentry *entry, PHYSFS_uint32 extern_attr) +{ + PHYSFS_uint16 xattr = ((extern_attr >> 16) & 0xFFFF); + + return ( + (zip_version_does_symlinks(entry->version)) && + (entry->uncompressed_size > 0) && + ((xattr & UNIX_FILETYPE_MASK) == UNIX_FILETYPE_SYMLINK) + ); +} /* zip_has_symlink_attr */ + + +static PHYSFS_sint64 zip_dos_time_to_physfs_time(PHYSFS_uint32 dostime) +{ +#ifdef _WIN32_WCE + /* We have no struct tm and no mktime right now. + FIXME: This should probably be fixed at some point. + */ + return -1; +#else + PHYSFS_uint32 dosdate; + struct tm unixtime; + memset(&unixtime, '\0', sizeof (unixtime)); + + dosdate = (PHYSFS_uint32) ((dostime >> 16) & 0xFFFF); + dostime &= 0xFFFF; + + /* dissect date */ + unixtime.tm_year = ((dosdate >> 9) & 0x7F) + 80; + unixtime.tm_mon = ((dosdate >> 5) & 0x0F) - 1; + unixtime.tm_mday = ((dosdate ) & 0x1F); + + /* dissect time */ + unixtime.tm_hour = ((dostime >> 11) & 0x1F); + unixtime.tm_min = ((dostime >> 5) & 0x3F); + unixtime.tm_sec = ((dostime << 1) & 0x3E); + + /* let mktime calculate daylight savings time. */ + unixtime.tm_isdst = -1; + + return((PHYSFS_sint64) mktime(&unixtime)); +#endif +} /* zip_dos_time_to_physfs_time */ + + +static int zip_load_entry(void *in, ZIPentry *entry, PHYSFS_uint32 ofs_fixup) +{ + PHYSFS_uint16 fnamelen, extralen, commentlen; + PHYSFS_uint32 external_attr; + PHYSFS_uint16 ui16; + PHYSFS_uint32 ui32; + PHYSFS_sint64 si64; + + /* sanity check with central directory signature... */ + BAIL_IF_MACRO(!readui32(in, &ui32), NULL, 0); + BAIL_IF_MACRO(ui32 != ZIP_CENTRAL_DIR_SIG, ERR_CORRUPTED, 0); + + /* Get the pertinent parts of the record... */ + BAIL_IF_MACRO(!readui16(in, &entry->version), NULL, 0); + BAIL_IF_MACRO(!readui16(in, &entry->version_needed), NULL, 0); + BAIL_IF_MACRO(!readui16(in, &ui16), NULL, 0); /* general bits */ + BAIL_IF_MACRO(!readui16(in, &entry->compression_method), NULL, 0); + BAIL_IF_MACRO(!readui32(in, &ui32), NULL, 0); + entry->last_mod_time = zip_dos_time_to_physfs_time(ui32); + BAIL_IF_MACRO(!readui32(in, &entry->crc), NULL, 0); + BAIL_IF_MACRO(!readui32(in, &entry->compressed_size), NULL, 0); + BAIL_IF_MACRO(!readui32(in, &entry->uncompressed_size), NULL, 0); + BAIL_IF_MACRO(!readui16(in, &fnamelen), NULL, 0); + BAIL_IF_MACRO(!readui16(in, &extralen), NULL, 0); + BAIL_IF_MACRO(!readui16(in, &commentlen), NULL, 0); + BAIL_IF_MACRO(!readui16(in, &ui16), NULL, 0); /* disk number start */ + BAIL_IF_MACRO(!readui16(in, &ui16), NULL, 0); /* internal file attribs */ + BAIL_IF_MACRO(!readui32(in, &external_attr), NULL, 0); + BAIL_IF_MACRO(!readui32(in, &entry->offset), NULL, 0); + entry->offset += ofs_fixup; + + #if __MOJOSETUP__ + entry->perms = (external_attr >> 16) & 0xFFFF; + entry->linkdest = NULL; + #endif + + entry->symlink = NULL; /* will be resolved later, if necessary. */ + entry->resolved = (zip_has_symlink_attr(entry, external_attr)) ? + ZIP_UNRESOLVED_SYMLINK : ZIP_UNRESOLVED_FILE; + + entry->name = (char *) allocator.Malloc(fnamelen + 1); + BAIL_IF_MACRO(entry->name == NULL, ERR_OUT_OF_MEMORY, 0); + if (__PHYSFS_platformRead(in, entry->name, fnamelen, 1) != 1) + goto zip_load_entry_puked; + + entry->name[fnamelen] = '\0'; /* null-terminate the filename. */ + zip_convert_dos_path(entry, entry->name); + + si64 = __PHYSFS_platformTell(in); + if (si64 == -1) + goto zip_load_entry_puked; + + /* seek to the start of the next entry in the central directory... */ + if (!__PHYSFS_platformSeek(in, si64 + extralen + commentlen)) + goto zip_load_entry_puked; + + return(1); /* success. */ + +zip_load_entry_puked: + allocator.Free(entry->name); + return(0); /* failure. */ +} /* zip_load_entry */ + + +static int zip_entry_cmp(void *_a, PHYSFS_uint32 one, PHYSFS_uint32 two) +{ + if (one != two) + { + const ZIPentry *a = (const ZIPentry *) _a; + return(strcmp(a[one].name, a[two].name)); + } /* if */ + + return 0; +} /* zip_entry_cmp */ + + +static void zip_entry_swap(void *_a, PHYSFS_uint32 one, PHYSFS_uint32 two) +{ + if (one != two) + { + ZIPentry tmp; + ZIPentry *first = &(((ZIPentry *) _a)[one]); + ZIPentry *second = &(((ZIPentry *) _a)[two]); + memcpy(&tmp, first, sizeof (ZIPentry)); + memcpy(first, second, sizeof (ZIPentry)); + memcpy(second, &tmp, sizeof (ZIPentry)); + } /* if */ +} /* zip_entry_swap */ + + +static int zip_load_entries(void *in, ZIPinfo *info, + PHYSFS_uint32 data_ofs, PHYSFS_uint32 central_ofs) +{ + PHYSFS_uint32 max = info->entryCount; + PHYSFS_uint32 i; + + BAIL_IF_MACRO(!__PHYSFS_platformSeek(in, central_ofs), NULL, 0); + + info->entries = (ZIPentry *) allocator.Malloc(sizeof (ZIPentry) * max); + BAIL_IF_MACRO(info->entries == NULL, ERR_OUT_OF_MEMORY, 0); + + for (i = 0; i < max; i++) + { + if (!zip_load_entry(in, &info->entries[i], data_ofs)) + { + zip_free_entries(info->entries, i); + return(0); + } /* if */ + } /* for */ + + __PHYSFS_sort(info->entries, max, zip_entry_cmp, zip_entry_swap); + return(1); +} /* zip_load_entries */ + + +static int zip_parse_end_of_central_dir(void *in, ZIPinfo *info, + PHYSFS_uint32 *data_start, + PHYSFS_uint32 *central_dir_ofs) +{ + PHYSFS_uint32 ui32; + PHYSFS_uint16 ui16; + PHYSFS_sint64 len = 0; + PHYSFS_sint64 pos; + + /* find the end-of-central-dir record, and seek to it. */ + pos = zip_find_end_of_central_dir(in, &len); + BAIL_IF_MACRO(pos == -1, NULL, 0); + BAIL_IF_MACRO(!__PHYSFS_platformSeek(in, pos), NULL, 0); + + /* check signature again, just in case. */ + BAIL_IF_MACRO(!readui32(in, &ui32), NULL, 0); + BAIL_IF_MACRO(ui32 != ZIP_END_OF_CENTRAL_DIR_SIG, ERR_NOT_AN_ARCHIVE, 0); + + /* number of this disk */ + BAIL_IF_MACRO(!readui16(in, &ui16), NULL, 0); + BAIL_IF_MACRO(ui16 != 0, ERR_UNSUPPORTED_ARCHIVE, 0); + + /* number of the disk with the start of the central directory */ + BAIL_IF_MACRO(!readui16(in, &ui16), NULL, 0); + BAIL_IF_MACRO(ui16 != 0, ERR_UNSUPPORTED_ARCHIVE, 0); + + /* total number of entries in the central dir on this disk */ + BAIL_IF_MACRO(!readui16(in, &ui16), NULL, 0); + + /* total number of entries in the central dir */ + BAIL_IF_MACRO(!readui16(in, &info->entryCount), NULL, 0); + BAIL_IF_MACRO(ui16 != info->entryCount, ERR_UNSUPPORTED_ARCHIVE, 0); + + /* size of the central directory */ + BAIL_IF_MACRO(!readui32(in, &ui32), NULL, 0); + + /* offset of central directory */ + BAIL_IF_MACRO(!readui32(in, central_dir_ofs), NULL, 0); + BAIL_IF_MACRO(pos < *central_dir_ofs + ui32, ERR_UNSUPPORTED_ARCHIVE, 0); + + /* + * For self-extracting archives, etc, there's crapola in the file + * before the zipfile records; we calculate how much data there is + * prepended by determining how far the central directory offset is + * from where it is supposed to be (start of end-of-central-dir minus + * sizeof central dir)...the difference in bytes is how much arbitrary + * data is at the start of the physical file. + */ + *data_start = (PHYSFS_uint32) (pos - (*central_dir_ofs + ui32)); + + /* Now that we know the difference, fix up the central dir offset... */ + *central_dir_ofs += *data_start; + + /* zipfile comment length */ + BAIL_IF_MACRO(!readui16(in, &ui16), NULL, 0); + + /* + * Make sure that the comment length matches to the end of file... + * If it doesn't, we're either in the wrong part of the file, or the + * file is corrupted, but we give up either way. + */ + BAIL_IF_MACRO((pos + 22 + ui16) != len, ERR_UNSUPPORTED_ARCHIVE, 0); + + return(1); /* made it. */ +} /* zip_parse_end_of_central_dir */ + + +#if __MOJOSETUP__ +static ZIPinfo *zip_create_zipinfo(void *in, const char *name) +#else +static ZIPinfo *zip_create_zipinfo(const char *name) +#endif +{ + char *ptr; + ZIPinfo *info = (ZIPinfo *) allocator.Malloc(sizeof (ZIPinfo)); + BAIL_IF_MACRO(info == NULL, ERR_OUT_OF_MEMORY, 0); + memset(info, '\0', sizeof (ZIPinfo)); + + ptr = (char *) allocator.Malloc(strlen(name) + 1); + if (ptr == NULL) + { + allocator.Free(info); + BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL); + } /* if */ + + info->archiveName = ptr; + strcpy(info->archiveName, name); +#if __MOJOSETUP__ + info->io = in; + info->enumIndex = -1; +#endif + return(info); +} /* zip_create_zipinfo */ + + +#if __MOJOSETUP__ +static void *ZIP_openArchive(void *in, const char *name, int forWriting) +#else +static void *ZIP_openArchive(const char *name, int forWriting) +#endif +{ +#if !__MOJOSETUP__ + void *in = NULL; +#endif + + ZIPinfo *info = NULL; + PHYSFS_uint32 data_start; + PHYSFS_uint32 cent_dir_ofs; + + BAIL_IF_MACRO(forWriting, ERR_ARC_IS_READ_ONLY, NULL); + +#if __MOJOSETUP__ + if ((info = zip_create_zipinfo(in, name)) == NULL) + goto zip_openarchive_failed; +#else + if ((in = __PHYSFS_platformOpenRead(name)) == NULL) + goto zip_openarchive_failed; + if ((info = zip_create_zipinfo(name)) == NULL) + goto zip_openarchive_failed; +#endif + + if (!zip_parse_end_of_central_dir(in, info, &data_start, ¢_dir_ofs)) + goto zip_openarchive_failed; + +#if __MOJOSETUP__ + info->offset = (int64) data_start; +#endif + + if (!zip_load_entries(in, info, data_start, cent_dir_ofs)) + goto zip_openarchive_failed; + +#if !__MOJOSETUP__ + __PHYSFS_platformClose(in); +#endif + + return(info); + +zip_openarchive_failed: + if (info != NULL) + { + if (info->archiveName != NULL) + allocator.Free(info->archiveName); + allocator.Free(info); + } /* if */ + +#if !__MOJOSETUP__ + if (in != NULL) + __PHYSFS_platformClose(in); +#endif + + return(NULL); +} /* ZIP_openArchive */ + + +#if !__MOJOSETUP__ +static PHYSFS_sint32 zip_find_start_of_dir(ZIPinfo *info, const char *path, + int stop_on_first_find) +{ + PHYSFS_sint32 lo = 0; + PHYSFS_sint32 hi = (PHYSFS_sint32) (info->entryCount - 1); + PHYSFS_sint32 middle; + PHYSFS_uint32 dlen = strlen(path); + PHYSFS_sint32 retval = -1; + const char *name; + int rc; + + if (*path == '\0') /* root dir? */ + return(0); + + if ((dlen > 0) && (path[dlen - 1] == '/')) /* ignore trailing slash. */ + dlen--; + + while (lo <= hi) + { + middle = lo + ((hi - lo) / 2); + name = info->entries[middle].name; + rc = strncmp(path, name, dlen); + if (rc == 0) + { + char ch = name[dlen]; + if ('/' < ch) /* make sure this isn't just a substr match. */ + rc = -1; + else if ('/' > ch) + rc = 1; + else + { + if (stop_on_first_find) /* Just checking dir's existance? */ + return(middle); + + if (name[dlen + 1] == '\0') /* Skip initial dir entry. */ + return(middle + 1); + + /* there might be more entries earlier in the list. */ + retval = middle; + hi = middle - 1; + } /* else */ + } /* if */ + + if (rc > 0) + lo = middle + 1; + else + hi = middle - 1; + } /* while */ + + return(retval); +} /* zip_find_start_of_dir */ + + +/* + * Moved to seperate function so we can use alloca then immediately throw + * away the allocated stack space... + */ +static void doEnumCallback(PHYSFS_EnumFilesCallback cb, void *callbackdata, + const char *odir, const char *str, PHYSFS_sint32 ln) +{ + char *newstr = alloca(ln + 1); + if (newstr == NULL) + return; + + memcpy(newstr, str, ln); + newstr[ln] = '\0'; + cb(callbackdata, odir, newstr); +} /* doEnumCallback */ + + +static void ZIP_enumerateFiles(dvoid *opaque, const char *dname, + int omitSymLinks, PHYSFS_EnumFilesCallback cb, + const char *origdir, void *callbackdata) +{ + ZIPinfo *info = ((ZIPinfo *) opaque); + PHYSFS_sint32 dlen, dlen_inc, max, i; + + i = zip_find_start_of_dir(info, dname, 0); + if (i == -1) /* no such directory. */ + return; + + dlen = strlen(dname); + if ((dlen > 0) && (dname[dlen - 1] == '/')) /* ignore trailing slash. */ + dlen--; + + dlen_inc = ((dlen > 0) ? 1 : 0) + dlen; + max = (PHYSFS_sint32) info->entryCount; + while (i < max) + { + char *e = info->entries[i].name; + if ((dlen) && ((strncmp(e, dname, dlen) != 0) || (e[dlen] != '/'))) + break; /* past end of this dir; we're done. */ + + if ((omitSymLinks) && (zip_entry_is_symlink(&info->entries[i]))) + i++; + else + { + char *add = e + dlen_inc; + char *ptr = strchr(add, '/'); + PHYSFS_sint32 ln = (PHYSFS_sint32) ((ptr) ? ptr-add : strlen(add)); + doEnumCallback(cb, callbackdata, origdir, add, ln); + ln += dlen_inc; /* point past entry to children... */ + + /* increment counter and skip children of subdirs... */ + while ((++i < max) && (ptr != NULL)) + { + char *e_new = info->entries[i].name; + if ((strncmp(e, e_new, ln) != 0) || (e_new[ln] != '/')) + break; + } /* while */ + } /* else */ + } /* while */ +} /* ZIP_enumerateFiles */ + + +static int ZIP_exists(dvoid *opaque, const char *name) +{ + int isDir; + ZIPinfo *info = (ZIPinfo *) opaque; + ZIPentry *entry = zip_find_entry(info, name, &isDir); + return((entry != NULL) || (isDir)); +} /* ZIP_exists */ + + +static PHYSFS_sint64 ZIP_getLastModTime(dvoid *opaque, + const char *name, + int *fileExists) +{ + int isDir; + ZIPinfo *info = (ZIPinfo *) opaque; + ZIPentry *entry = zip_find_entry(info, name, &isDir); + + *fileExists = ((isDir) || (entry != NULL)); + if (isDir) + return(1); /* Best I can do for a dir... */ + + BAIL_IF_MACRO(entry == NULL, NULL, -1); + return(entry->last_mod_time); +} /* ZIP_getLastModTime */ + + +static int ZIP_isDirectory(dvoid *opaque, const char *name, int *fileExists) +{ + ZIPinfo *info = (ZIPinfo *) opaque; + int isDir; + ZIPentry *entry = zip_find_entry(info, name, &isDir); + + *fileExists = ((isDir) || (entry != NULL)); + if (isDir) + return(1); /* definitely a dir. */ + + /* Follow symlinks. This means we might need to resolve entries. */ + BAIL_IF_MACRO(entry == NULL, ERR_NO_SUCH_FILE, 0); + + if (entry->resolved == ZIP_UNRESOLVED_SYMLINK) /* gotta resolve it. */ + { + int rc; +#if __MOJOSETUP__ + rc = zip_resolve(info->io, info, entry); +#else + void *in = __PHYSFS_platformOpenRead(info->archiveName); + BAIL_IF_MACRO(in == NULL, NULL, 0); + rc = zip_resolve(in, info, entry); + __PHYSFS_platformClose(in); +#endif + if (!rc) + return(0); + } /* if */ + + BAIL_IF_MACRO(entry->resolved == ZIP_BROKEN_SYMLINK, NULL, 0); + BAIL_IF_MACRO(entry->symlink == NULL, ERR_NOT_A_DIR, 0); + + return(zip_find_start_of_dir(info, entry->symlink->name, 1) >= 0); +} /* ZIP_isDirectory */ + + +static int ZIP_isSymLink(dvoid *opaque, const char *name, int *fileExists) +{ + int isDir; + ZIPentry *entry = zip_find_entry((ZIPinfo *) opaque, name, &isDir); + *fileExists = ((isDir) || (entry != NULL)); + BAIL_IF_MACRO(entry == NULL, NULL, 0); + return(zip_entry_is_symlink(entry)); +} /* ZIP_isSymLink */ +#endif + +static void *zip_get_file_handle(const char *fn, ZIPinfo *inf, ZIPentry *entry) +{ + int success; +#if __MOJOSETUP__ + MojoInput *io = (MojoInput *) inf->io; + void *retval = io->duplicate(io); +#else + void *retval = __PHYSFS_platformOpenRead(fn); +#endif + BAIL_IF_MACRO(retval == NULL, NULL, NULL); + + success = zip_resolve(retval, inf, entry); + if (success) + { + PHYSFS_sint64 offset; + offset = ((entry->symlink) ? entry->symlink->offset : entry->offset); + success = __PHYSFS_platformSeek(retval, offset); + } /* if */ + + if (!success) + { + __PHYSFS_platformClose(retval); + retval = NULL; + } /* if */ + + return(retval); +} /* zip_get_file_handle */ + + +static fvoid *ZIP_openRead(dvoid *opaque, const char *fnm, int *fileExists) +{ + ZIPinfo *info = (ZIPinfo *) opaque; + ZIPentry *entry = zip_find_entry(info, fnm, NULL); + ZIPfileinfo *finfo = NULL; + void *in; + + *fileExists = (entry != NULL); + BAIL_IF_MACRO(entry == NULL, NULL, NULL); + + in = zip_get_file_handle(info->archiveName, info, entry); + BAIL_IF_MACRO(in == NULL, NULL, NULL); + + finfo = (ZIPfileinfo *) allocator.Malloc(sizeof (ZIPfileinfo)); + if (finfo == NULL) + { + __PHYSFS_platformClose(in); + BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL); + } /* if */ + + memset(finfo, '\0', sizeof (ZIPfileinfo)); + finfo->handle = in; + finfo->entry = ((entry->symlink != NULL) ? entry->symlink : entry); + initializeZStream(&finfo->stream); + if (finfo->entry->compression_method != COMPMETH_NONE) + { + if (zlib_err(inflateInit2(&finfo->stream, -MAX_WBITS)) != Z_OK) + { + ZIP_fileClose(finfo); + return(NULL); + } /* if */ + + finfo->buffer = (PHYSFS_uint8 *) allocator.Malloc(ZIP_READBUFSIZE); + if (finfo->buffer == NULL) + { + ZIP_fileClose(finfo); + BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL); + } /* if */ + } /* if */ + + #if __MOJOSETUP__ + finfo->archive = info; + #endif + + return(finfo); +} /* ZIP_openRead */ + + +#if !__MOJOSETUP__ +static fvoid *ZIP_openWrite(dvoid *opaque, const char *filename) +{ + BAIL_MACRO(ERR_NOT_SUPPORTED, NULL); +} /* ZIP_openWrite */ + + +static fvoid *ZIP_openAppend(dvoid *opaque, const char *filename) +{ + BAIL_MACRO(ERR_NOT_SUPPORTED, NULL); +} /* ZIP_openAppend */ +#endif + + +static void ZIP_dirClose(dvoid *opaque) +{ + ZIPinfo *zi = (ZIPinfo *) (opaque); + zip_free_entries(zi->entries, zi->entryCount); + allocator.Free(zi->archiveName); + allocator.Free(zi); +} /* ZIP_dirClose */ + + +#if !__MOJOSETUP__ +static int ZIP_remove(dvoid *opaque, const char *name) +{ + BAIL_MACRO(ERR_NOT_SUPPORTED, 0); +} /* ZIP_remove */ + + +static int ZIP_mkdir(dvoid *opaque, const char *name) +{ + BAIL_MACRO(ERR_NOT_SUPPORTED, 0); +} /* ZIP_mkdir */ + + +const PHYSFS_ArchiveInfo __PHYSFS_ArchiveInfo_ZIP = +{ + "ZIP", + ZIP_ARCHIVE_DESCRIPTION, + "Ryan C. Gordon ", + "http://icculus.org/physfs/", +}; + + +const PHYSFS_Archiver __PHYSFS_Archiver_ZIP = +{ + &__PHYSFS_ArchiveInfo_ZIP, + ZIP_isArchive, /* isArchive() method */ + ZIP_openArchive, /* openArchive() method */ + ZIP_enumerateFiles, /* enumerateFiles() method */ + ZIP_exists, /* exists() method */ + ZIP_isDirectory, /* isDirectory() method */ + ZIP_isSymLink, /* isSymLink() method */ + ZIP_getLastModTime, /* getLastModTime() method */ + ZIP_openRead, /* openRead() method */ + ZIP_openWrite, /* openWrite() method */ + ZIP_openAppend, /* openAppend() method */ + ZIP_remove, /* remove() method */ + ZIP_mkdir, /* mkdir() method */ + ZIP_dirClose, /* dirClose() method */ + ZIP_read, /* read() method */ + ZIP_write, /* write() method */ + ZIP_eof, /* eof() method */ + ZIP_tell, /* tell() method */ + ZIP_seek, /* seek() method */ + ZIP_fileLength, /* fileLength() method */ + ZIP_fileClose /* fileClose() method */ +}; + +#else // Glue from MojoSetup to PhysicsFS follows... + + +// MojoInput implementation... + +static boolean MojoInput_zip_ready(MojoInput *io) +{ + return true; // !!! FIXME: ready if there are bytes uncompressed. +} // MojoInput_zip_ready + +static int64 MojoInput_zip_read(MojoInput *io, void *buf, uint32 bufsize) +{ + return ZIP_read(io->opaque, buf, 1, bufsize); +} // MojoInput_zip_read + +static boolean MojoInput_zip_seek(MojoInput *io, uint64 pos) +{ + return ((ZIP_seek(io->opaque, pos)) ? true : false); +} // MojoInput_zip_seek + +static int64 MojoInput_zip_tell(MojoInput *io) +{ + return ZIP_tell(io->opaque); +} // MojoInput_zip_tell + +static int64 MojoInput_zip_length(MojoInput *io) +{ + return ZIP_fileLength(io->opaque); +} // MojoInput_zip_length + +static MojoInput *buildZipMojoInput(ZIPinfo *info, const char *fullpath); + +static MojoInput *MojoInput_zip_duplicate(MojoInput *io) +{ + ZIPfileinfo *finfo = (ZIPfileinfo *) io->opaque; + return buildZipMojoInput(finfo->archive, finfo->entry->name); +} // MojoInput_zip_duplicate + +static void MojoInput_zip_close(MojoInput *io) +{ + ZIP_fileClose(io->opaque); + free(io); +} // MojoInput_zip_close + + +// MojoArchive implementation... + +static int MojoArchive_zip_entry_is_symlink(ZIPinfo *info, ZIPentry *entry) +{ + if (entry->resolved == ZIP_UNRESOLVED_SYMLINK) /* gotta resolve it. */ + zip_resolve(info->io, info, entry); + return zip_entry_is_symlink(entry); +} // MojoArchive_zip_entry_is_symlink + + +static boolean MojoArchive_zip_enumerate(MojoArchive *ar) +{ + ZIPinfo *info = (ZIPinfo *) ar->opaque; + MojoArchive_resetEntry(&ar->prevEnum); + info->enumIndex = 0; + return true; +} // MojoArchive_zip_enumerate + + +static const MojoArchiveEntry *MojoArchive_zip_enumNext(MojoArchive *ar) +{ + ZIPinfo *info = (ZIPinfo *) ar->opaque; + MojoArchiveEntry *retval = NULL; + + MojoArchive_resetEntry(&ar->prevEnum); + + if ((info->enumIndex >= 0) && (info->enumIndex < info->entryCount)) + { + ZIPentry *entry = &info->entries[info->enumIndex]; + ar->prevEnum.filename = xstrdup(entry->name); + ar->prevEnum.filesize = entry->uncompressed_size; + ar->prevEnum.type = MOJOARCHIVE_ENTRY_FILE; + ar->prevEnum.perms = entry->perms; + + if (entry->name[strlen(entry->name) - 1] == '/') + ar->prevEnum.type = MOJOARCHIVE_ENTRY_DIR; + else if (MojoArchive_zip_entry_is_symlink(info, entry)) + { + ar->prevEnum.type = MOJOARCHIVE_ENTRY_SYMLINK; + ar->prevEnum.linkdest = xstrdup(entry->linkdest); + } // else if + + info->enumIndex++; + retval = &ar->prevEnum; + } // if + + return retval; +} // MojoArchive_zip_enumNext + + +static MojoInput *buildZipMojoInput(ZIPinfo *info, const char *fullpath) +{ + MojoInput *io = NULL; + int exists = 0; + void *opaque = ZIP_openRead(info, fullpath, &exists); + if (opaque == NULL) + return NULL; + + io = (MojoInput *) xmalloc(sizeof (MojoInput)); + io->ready = MojoInput_zip_ready; + io->read = MojoInput_zip_read; + io->seek = MojoInput_zip_seek; + io->tell = MojoInput_zip_tell; + io->length = MojoInput_zip_length; + io->duplicate = MojoInput_zip_duplicate; + io->close = MojoInput_zip_close; + io->opaque = opaque; + return io; +} // buildZipMojoInput + + +static MojoInput *MojoArchive_zip_openCurrentEntry(MojoArchive *ar) +{ + MojoInput *retval = NULL; + ZIPinfo *info = (ZIPinfo *) ar->opaque; + const int32 enumIndex = info->enumIndex - 1; + + if ((enumIndex >= 0) && (enumIndex < info->entryCount) && + (ar->prevEnum.type == MOJOARCHIVE_ENTRY_FILE)) + { + char *fullpath = (char *) xmalloc(strlen(ar->prevEnum.filename) + 1); + strcpy(fullpath, ar->prevEnum.filename); + retval = buildZipMojoInput(info, fullpath); + free(fullpath); + } // if + + return retval; +} // MojoArchive_zip_openCurrentEntry + + +static void MojoArchive_zip_close(MojoArchive *ar) +{ + ZIP_dirClose(ar->opaque); + ar->io->close(ar->io); + MojoArchive_resetEntry(&ar->prevEnum); + free(ar); +} // MojoArchive_zip_close + + +MojoArchive *MojoArchive_createZIP(MojoInput *io) +{ + MojoArchive *ar = NULL; + void *opaque = ZIP_openArchive(io, "", 0); + if (opaque == NULL) + return NULL; + + ar = (MojoArchive *) xmalloc(sizeof (MojoArchive)); + ar->enumerate = MojoArchive_zip_enumerate; + ar->enumNext = MojoArchive_zip_enumNext; + ar->openCurrentEntry = MojoArchive_zip_openCurrentEntry; + ar->close = MojoArchive_zip_close; + ar->offsetOfStart = ((const ZIPinfo *) opaque)->offset; + ar->opaque = opaque; + ar->io = io; + return ar; +} // MojoArchive_createZIP + +#endif // __MOJOSETUP__ + +#endif // SUPPORT_ZIP + +// end of archive_zip.c ... + diff --git a/mk/linux/mojosetup/build/CMakeCache.txt b/mk/linux/mojosetup/build/CMakeCache.txt new file mode 100644 index 00000000..9838b819 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeCache.txt @@ -0,0 +1,460 @@ +# This is the CMakeCache file. +# For build in directory: /home/softcoder/Code/mojosetup/build +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUI's for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//For backwards compatibility, what version of CMake commands and +// syntax should this version of CMake try to support. +CMAKE_BACKWARDS_COMPATIBILITY:STRING=2.4 + +//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//C compiler. +CMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release minsize builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds (/MD /Ob1 /Oi +// /Ot /Oy /Gs will produce slightly less optimized but smaller +// files). +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during Release with Debug Info builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=MojoSetup + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Skip RPATH +CMAKE_SKIP_RPATH:BOOL=ON + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If true, cmake will use relative paths in makefiles and projects. +CMAKE_USE_RELATIVE_PATHS:BOOL=OFF + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to a file. +CURSES_CURSESW_H_PATH:PATH=/usr/include + +//Path to a file. +CURSES_CURSES_H_PATH:PATH=/usr/include + +//Path to a library. +CURSES_CURSES_LIBRARY:FILEPATH=CURSES_CURSES_LIBRARY-NOTFOUND + +//Path to a library. +CURSES_EXTRA_LIBRARY:FILEPATH=CURSES_EXTRA_LIBRARY-NOTFOUND + +//Path to a library. +CURSES_FORM_LIBRARY:FILEPATH=CURSES_FORM_LIBRARY-NOTFOUND + +//Path to a file. +CURSES_HAVE_CURSESW_H:FILEPATH=/usr/include/cursesw.h + +//Path to a file. +CURSES_HAVE_CURSES_H:FILEPATH=/usr/include/curses.h + +//The curses include path +CURSES_INCLUDE_PATH:FILEPATH=/usr/include /usr/include + +//The curses library +CURSES_LIBRARY:FILEPATH=CURSES_CURSES_LIBRARY-NOTFOUND + +//Path to a library. +CURSES_NCURSES_LIBRARY:FILEPATH=CURSES_NCURSES_LIBRARY-NOTFOUND + +//Single output directory for building all executables. +EXECUTABLE_OUTPUT_PATH:PATH= + +//The curses form library +FORM_LIBRARY:FILEPATH=CURSES_FORM_LIBRARY-NOTFOUND + +//Single output directory for building all libraries. +LIBRARY_OUTPUT_PATH:PATH= + +//Enable PCK support +MOJOSETUP_ARCHIVE_PCK:BOOL=OFF + +//Enable TAR support +MOJOSETUP_ARCHIVE_TAR:BOOL=ON + +//Enable TAR.BZ2 support +MOJOSETUP_ARCHIVE_TAR_BZ2:BOOL=ON + +//Enable TAR.GZ support +MOJOSETUP_ARCHIVE_TAR_GZ:BOOL=ON + +//Enable UZ2 support +MOJOSETUP_ARCHIVE_UZ2:BOOL=OFF + +//Enable ZIP support +MOJOSETUP_ARCHIVE_ZIP:BOOL=ON + +//Build separate Lua compiler +MOJOSETUP_BUILD_LUAC:BOOL=ON + +//Enable CRC-32 checksum support +MOJOSETUP_CHECKSUM_CRC32:BOOL=ON + +//Enable MD5 checksum support +MOJOSETUP_CHECKSUM_MD5:BOOL=ON + +//Enable SHA-1 checksum support +MOJOSETUP_CHECKSUM_SHA1:BOOL=ON + +//Enable GTK+ 2.0 GUI +MOJOSETUP_GUI_GTKPLUS2:BOOL=ON + +//Statically link GTK+ GUI +MOJOSETUP_GUI_GTKPLUS2_STATIC:BOOL=OFF + +//Enable stdio GUI +MOJOSETUP_GUI_STDIO:BOOL=ON + +//Statically link stdio GUI +MOJOSETUP_GUI_STDIO_STATIC:BOOL=ON + +//Enable www GUI +MOJOSETUP_GUI_WWW:BOOL=OFF + +//Enable BMP support +MOJOSETUP_IMAGE_BMP:BOOL=OFF + +//Enable HDR support +MOJOSETUP_IMAGE_HDR:BOOL=OFF + +//Enable JPG support +MOJOSETUP_IMAGE_JPG:BOOL=ON + +//Enable PNG support +MOJOSETUP_IMAGE_PNG:BOOL=ON + +//Enable PSD support +MOJOSETUP_IMAGE_PSD:BOOL=OFF + +//Enable TGA support +MOJOSETUP_IMAGE_TGA:BOOL=OFF + +//Link own bzlib instead of system library +MOJOSETUP_INTERNAL_BZLIB:BOOL=OFF + +//Link own zlib instead of system library +MOJOSETUP_INTERNAL_ZLIB:BOOL=OFF + +//Add Lua 'db' library +MOJOSETUP_LUALIB_DB:BOOL=ON + +//Add Lua 'io' library +MOJOSETUP_LUALIB_IO:BOOL=ON + +//Add Lua 'math' library +MOJOSETUP_LUALIB_MATH:BOOL=ON + +//Add Lua 'os' library +MOJOSETUP_LUALIB_OS:BOOL=ON + +//Add Lua 'package' library +MOJOSETUP_LUALIB_PACKAGE:BOOL=ON + +//Bigger binary but scripts don't need to be compiled. +MOJOSETUP_LUA_PARSER:BOOL=ON + +//Allow multiarch hack. +MOJOSETUP_MULTIARCH:BOOL=OFF + +//Enable ftp:// support +MOJOSETUP_URL_FTP:BOOL=ON + +//Enable http:// support +MOJOSETUP_URL_HTTP:BOOL=ON + +//Value Computed by CMake +MojoSetup_BINARY_DIR:STATIC=/home/softcoder/Code/mojosetup/build + +//Value Computed by CMake +MojoSetup_SOURCE_DIR:STATIC=/home/softcoder/Code/mojosetup + +//Dependencies for the target +mojosetupgui_gtkplus2_LIB_DEPENDS:STATIC=general;-lgtk-x11-2.0; + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_BUILD_TOOL +CMAKE_BUILD_TOOL-ADVANCED:INTERNAL=1 +//What is the target build tool cmake is generating for. +CMAKE_BUILD_TOOL:INTERNAL=/usr/bin/make +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/softcoder/Code/mojosetup/build +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=2 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=8 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=0 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +CMAKE_C_COMPILER_WORKS:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Result of TRY_COMPILE +CMAKE_DETERMINE_C_ABI_COMPILED:INTERNAL=TRUE +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Have library pthreads +CMAKE_HAVE_PTHREADS_CREATE:INTERNAL= +//Have library pthread +CMAKE_HAVE_PTHREAD_CREATE:INTERNAL=1 +//Have include CMAKE_HAVE_PTHREAD_H +CMAKE_HAVE_PTHREAD_H:INTERNAL=1 +//Start directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/softcoder/Code/mojosetup +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_LOCAL_GENERATORS:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-2.8 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Result of CHECK_TYPE_SIZE +CMAKE_SIZEOF_UNSIGNED_SHORT:INTERNAL=2 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_USE_RELATIVE_PATHS +CMAKE_USE_RELATIVE_PATHS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURSES_CURSES_LIBRARY +CURSES_CURSES_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURSES_EXTRA_LIBRARY +CURSES_EXTRA_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURSES_FORM_LIBRARY +CURSES_FORM_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURSES_HAVE_CURSESW_H +CURSES_HAVE_CURSESW_H-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURSES_HAVE_CURSES_H +CURSES_HAVE_CURSES_H-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURSES_INCLUDE_PATH +CURSES_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURSES_LIBRARY +CURSES_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURSES_NCURSES_LIBRARY +CURSES_NCURSES_LIBRARY-ADVANCED:INTERNAL=1 +//Details about finding Threads +FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE] +//ADVANCED property for variable: FORM_LIBRARY +FORM_LIBRARY-ADVANCED:INTERNAL=1 +//Have include bzlib.h +HAVE_BZLIB_H:INTERNAL=1 +//Result of TRY_COMPILE +HAVE_CMAKE_SIZEOF_UNSIGNED_SHORT:INTERNAL=TRUE +//Have library bz2 +HAVE_LIBBZ2:INTERNAL=1 +//Have library dl +HAVE_LIBDL:INTERNAL=1 +//Have library m +HAVE_LIBM:INTERNAL=1 +//Have library z +HAVE_LIBZ:INTERNAL=1 +//Have include mntent.h +HAVE_MNTENT_H:INTERNAL=1 +//Result of TRY_COMPILE +HAVE_MOJOSETUP_IS_BIGENDIAN:INTERNAL=TRUE +//Have include stddef.h +HAVE_STDDEF_H:INTERNAL=1 +//Have include stdint.h +HAVE_STDINT_H:INTERNAL=1 +//Test HAVE_SYS_MNTTAB_H +HAVE_SYS_MNTTAB_H:INTERNAL= +//Have include sys/types.h +HAVE_SYS_TYPES_H:INTERNAL=1 +//Have include sys/ucred.h +HAVE_UCRED_H:INTERNAL= +//Have include zlib.h +HAVE_ZLIB_H:INTERNAL=1 +//Test MOJOSETUP_GCC_HAS_STACKPROT +MOJOSETUP_GCC_HAS_STACKPROT:INTERNAL=1 +//Result of TEST_BIG_ENDIAN +MOJOSETUP_IS_BIGENDIAN:INTERNAL=0 +//Test MOJOSETUP_IS_GCC4 +MOJOSETUP_IS_GCC4:INTERNAL=1 +//ADVANCED property for variable: MOJOSETUP_LUALIB_DB +MOJOSETUP_LUALIB_DB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MOJOSETUP_LUALIB_IO +MOJOSETUP_LUALIB_IO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MOJOSETUP_LUALIB_MATH +MOJOSETUP_LUALIB_MATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MOJOSETUP_LUALIB_OS +MOJOSETUP_LUALIB_OS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MOJOSETUP_LUALIB_PACKAGE +MOJOSETUP_LUALIB_PACKAGE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MOJOSETUP_MULTIARCH +MOJOSETUP_MULTIARCH-ADVANCED:INTERNAL=1 + diff --git a/mk/linux/mojosetup/build/CMakeFiles/CMakeCCompiler.cmake b/mk/linux/mojosetup/build/CMakeFiles/CMakeCCompiler.cmake new file mode 100644 index 00000000..acd3f79b --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/CMakeCCompiler.cmake @@ -0,0 +1,41 @@ +SET(CMAKE_C_COMPILER "/usr/bin/gcc") +SET(CMAKE_C_COMPILER_ARG1 "") +SET(CMAKE_C_COMPILER_ID "GNU") +SET(CMAKE_C_PLATFORM_ID "Linux") +SET(CMAKE_AR "/usr/bin/ar") +SET(CMAKE_RANLIB "/usr/bin/ranlib") +SET(CMAKE_COMPILER_IS_GNUCC 1) +SET(CMAKE_C_COMPILER_LOADED 1) +SET(CMAKE_COMPILER_IS_MINGW ) +SET(CMAKE_COMPILER_IS_CYGWIN ) +IF(CMAKE_COMPILER_IS_CYGWIN) + SET(CYGWIN 1) + SET(UNIX 1) +ENDIF(CMAKE_COMPILER_IS_CYGWIN) + +SET(CMAKE_C_COMPILER_ENV_VAR "CC") + +IF(CMAKE_COMPILER_IS_MINGW) + SET(MINGW 1) +ENDIF(CMAKE_COMPILER_IS_MINGW) +SET(CMAKE_C_COMPILER_ID_RUN 1) +SET(CMAKE_C_SOURCE_FILE_EXTENSIONS c) +SET(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +SET(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +SET(CMAKE_C_SIZEOF_DATA_PTR "4") +SET(CMAKE_C_COMPILER_ABI "ELF") + +IF(CMAKE_C_SIZEOF_DATA_PTR) + SET(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +ENDIF(CMAKE_C_SIZEOF_DATA_PTR) + +IF(CMAKE_C_COMPILER_ABI) + SET(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +ENDIF(CMAKE_C_COMPILER_ABI) + +SET(CMAKE_C_HAS_ISYSROOT "") + +SET(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c") +SET(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/i486-linux-gnu/4.4.1;/usr/lib;/lib;/usr/lib/i486-linux-gnu") diff --git a/mk/linux/mojosetup/build/CMakeFiles/CMakeDetermineCompilerABI_C.bin b/mk/linux/mojosetup/build/CMakeFiles/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..da7f565fde8e45aed7149eb4d4b1ac13856d02b9 GIT binary patch literal 8328 zcmeHMZEO_B8J@j6o1-?yd?Yc&r3(2BJ&E&>|D$Ju}>9|>OpT-e_E*1m)DopZNG z45h;4ASp7gP#U#W)e>maC_nfSsZvTyg@_zMkWz`XNrlp?qNPZV3=LFHgaqaKJTo`; z+A*c=Z@;J6cb<8ld1rQJc5XfnG_F};7>3Z|6MjKt9u5TSp_fiomU>}|pm;)5iJ77p zNwn2>frB73AX5?20tkNEfa?#!jxYt7fj0VPkixtOx8ab1`9-<1mrfL-^wmI+A%F~} z2rQR&ACw8Z2^+&DUckpeE$db z?th-Gn*`fr1d4oDXud0Dyizhhd1VL_5K0kPu5NqQ&nv+K7zh0Yub~iU-6$nWeeTKn z>UN_KF{xY}GhZx0r%dPy1eVgqbo$vfKJ>@mTzz?esPV(=rHg)8QWyEtjjeq*uAlnG z)pH;H?&|T&&uy*Tb>PSQf8BGd>~uxZ>C&lxJKq0?Pxvas#QP2=EPOvLCL)V9fM$C= zj}Sb8u>>g>72*VR#UQ?w{{_=McrUQ#o8W&3nByG^{>nrL^t&%&+(A!*M+^Er4?YBJ z0&j;V{}pJj|JA@Bz#oQ%w0{r!^darPRICTSg!~Ud)Bm@i%YoU4^tTK86fhJpTGqDP z+EYn8z7!xwS?AHNp^a|-)SNqIbuVeJ#A3iu|z?_v%J^xrt>05t~X<|EfO z=B@|&NNYaWTRUBd?(g5t=kteu?-upVKx*IneEbA?wl-hv&42ASJmstJ;>kSuYI=+@ z`tcQH%U9ELjJA(20n$L3dt>L3zvlja^XW|+V(gx)#d; zkzI0fD%_r_K&c1&r{ekc9bc~BSa>-zqvtL9&z&=VPD+02VVWg<;pKGS`647?RAp# zeC~GMopOe;)?>N;K>kv&Qk`)P1Cv+>lb+jcXMt1 z4wV>=#GCPFw}Xu`CSxry)&gTKFxCQNEil#sV=bUs0BaPv?$es7TzYbS%6%5s@Z588 zZO*;HQS2>0y_Zj!FQ~QqYdNe{k$wo6do3>TxUb^cmTP?q*C_*7;c#EabnXecpL+!1 z4ftpL1T^ zKS$*&S_0({6vdOS@CAzwF)=u9D^;L~#RLN5K<-4Ws0j~a+Dm*E`MI+!=K5L~*bEj= zGA0}T;Pha1a0>T>#w4S{!|ow5md%5xvItT9T13ZYw6HhqzgJ7oVkVa%IZzqopq zzrx(MederhHv6!HGai+$zciX_Y&YYs)dCX^P9D%VnOG|An%QI~-j;NtCYzGo6)Fro zWoGJ#v64t7+f4ZwmUj@e#KLJ^k0CA{2`jU=-3>>e-L%p%9fRFTcL*z)avf{g@}@a% zxUGQNl37c>%ba*rSVXaKCMK-t-X#1fjg7Um>~YeWcq%yz*s!IY1oBK{-Jy$v*urAK0JExs;!? zJQu{M;-J(b2N?iI63>&!ljnCZn22jpvkCU)NYK0(=HVE4Rhk5?d8-iTcSL`juaAPq z^BR4=Mjk^0!e^LM$>V%(A`(S>BySzkIH!|$2)sjxnDEKEKuKSm*S8>Wt|yQG3$Fpl z4L>l2TneW+>ZFKHrYYR3Wa*Wje!d1pWsw&i{cf@Jz(LrEd2<23Im;;bvv`TutshFZk6kVkn5LG${+>l=kf?#mt?XA~2i z!#>f%I#7Oup#Aax_7p0>{}e5{+~Y_fkMGMfyLZ9+swP2e-s^~K-T-(5;AtD_I{s#X z$G(&2&p3V?{Im4%e&ylu;AZN5cxOF49?(>Rr^|wAFy4zeswBsZJl6*A5-|Ih!aS_U zdkB0F){kdnH%IYD?)x4d*Bb-i@o!EGISd~mXn#Bt4Wa`^d*3VIF`eb|WUBl=ylb%2 zUo8TKycH@cpR_Ujqo8FX9$UdPHGtN2_!r{jYv}~9S_5cpn}CRp)BIELJ{g5KZ3OQq z7F_lyyvIlI`oVi)6yCf7ueM-o$HI+cTnp>Ofb6pEbb21Vr)VgMj#6_hYq^3$u4Cw^ zN0G1qfqjNolix1;LQBUCoOydPYJb}9)trBc)lH9@XBAcsIG-x4O5nVyFiRJ5epHw< ztC|ND<_K2vox*DL>UFBW(5sxkl$|q>nx_=zs#&dr73NGkbaw8St8g6p4d&-eh5BF~ zq4vvLk)gA5zr2-D^MbOo<*@$7_pdN}MSbTAqf;RKo)uRAQ2cHcR$q`_Kl=--dVYt> z{xFqX-z&^jJ;pM=7lkV%)^`PdfzI`aUwqMn_&)sC91{Pq8IX3axQ4_pFbF*27hm=u z^37r2NI=}m%Ze3P#C&7UdrUHL`!Ew)w}*j$>>6O*9tLKVCxM?Xw7(DSzX4dDTtgdp zzc4hff%Q_ydE_#?~zHtgk|^1lnL`^&&r^aEgT`9A~hD)cAIKMkyf@5A|$huv5# zqx^F5AvEVhatz-iq93}n&_9N+Lfi)CX}z*f5k>frbbAQjWbyC_JR5kQF5g!smICYX zVfY>rO~AVUdDpZF*n9Wm0DJF#vdmv-AKnG+2i9UD(mevd3hceBdL7t%cXZ0b=jgr& z%pC{&gLhAtfpz_OcXkcfd$;u|upY1FXio!Eg!gW(7}#r{0PMZ{nhfl{`_jwsmb9C3 zv#qVz8Q6Ac)A|kenx>7Lc)4Xa3`46!9#b@Bwb`MT-P9rS+QZ++D2O=7Ng@srO4H`EG4uyyxR$dP*yzQ zq_G=7#pOjBt`&s6a?SeX%huTISFG6BxXIqMZ26i-zDYEbvSZ<7G~wvi(nWBok9BxD zyw{eOXSOFn?z@m7K7YY{tIcukjuzXEWs|$DNT;wHwyj&Xwkae$cXJQE(9 + #include + int main(int argc, char **argv) { return 0; } + diff --git a/mk/linux/mojosetup/build/CMakeFiles/CMakeOutput.log b/mk/linux/mojosetup/build/CMakeFiles/CMakeOutput.log new file mode 100644 index 00000000..aa90fa9a --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/CMakeOutput.log @@ -0,0 +1,358 @@ +The system is: Linux - 2.6.31-21-generic-pae - i686 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/gcc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/softcoder/Code/mojosetup/build/CMakeFiles/CompilerIdC/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.o +/usr/bin/gcc -o CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.o -c /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.o -o cmTryCompileExec -rdynamic +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o +/usr/bin/gcc -o CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-2.8/Modules/CMakeCCompilerABI.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc -v CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o -o cmTryCompileExec -rdynamic +Using built-in specs. +Target: i486-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.1-4ubuntu9' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu +Thread model: posix +gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9) +COMPILER_PATH=/usr/lib/gcc/i486-linux-gnu/4.4.1/:/usr/lib/gcc/i486-linux-gnu/4.4.1/:/usr/lib/gcc/i486-linux-gnu/:/usr/lib/gcc/i486-linux-gnu/4.4.1/:/usr/lib/gcc/i486-linux-gnu/:/usr/lib/gcc/i486-linux-gnu/4.4.1/:/usr/lib/gcc/i486-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/i486-linux-gnu/4.4.1/:/usr/lib/gcc/i486-linux-gnu/4.4.1/:/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../:/lib/:/usr/lib/:/usr/lib/i486-linux-gnu/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec' '-rdynamic' '-mtune=generic' '-march=i486' + /usr/lib/gcc/i486-linux-gnu/4.4.1/collect2 --build-id --eh-frame-hdr -m elf_i386 --hash-style=both -export-dynamic -dynamic-linker /lib/ld-linux.so.2 -o cmTryCompileExec -z relro /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crti.o /usr/lib/gcc/i486-linux-gnu/4.4.1/crtbegin.o -L/usr/lib/gcc/i486-linux-gnu/4.4.1 -L/usr/lib/gcc/i486-linux-gnu/4.4.1 -L/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.4.1/../../.. -L/usr/lib/i486-linux-gnu CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/i486-linux-gnu/4.4.1/crtend.o /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crtn.o +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:/usr/bin/make "cmTryCompileExec/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build] + ignore line: [make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp'] + ignore line: [/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1] + ignore line: [Building C object CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/gcc -o CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-2.8/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTryCompileExec] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1] + ignore line: [/usr/bin/gcc -v CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o -o cmTryCompileExec -rdynamic ] + ignore line: [Using built-in specs.] + ignore line: [Target: i486-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.1-4ubuntu9' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/i486-linux-gnu/4.4.1/:/usr/lib/gcc/i486-linux-gnu/4.4.1/:/usr/lib/gcc/i486-linux-gnu/:/usr/lib/gcc/i486-linux-gnu/4.4.1/:/usr/lib/gcc/i486-linux-gnu/:/usr/lib/gcc/i486-linux-gnu/4.4.1/:/usr/lib/gcc/i486-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/i486-linux-gnu/4.4.1/:/usr/lib/gcc/i486-linux-gnu/4.4.1/:/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../:/lib/:/usr/lib/:/usr/lib/i486-linux-gnu/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec' '-rdynamic' '-mtune=generic' '-march=i486'] + link line: [ /usr/lib/gcc/i486-linux-gnu/4.4.1/collect2 --build-id --eh-frame-hdr -m elf_i386 --hash-style=both -export-dynamic -dynamic-linker /lib/ld-linux.so.2 -o cmTryCompileExec -z relro /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crti.o /usr/lib/gcc/i486-linux-gnu/4.4.1/crtbegin.o -L/usr/lib/gcc/i486-linux-gnu/4.4.1 -L/usr/lib/gcc/i486-linux-gnu/4.4.1 -L/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.4.1/../../.. -L/usr/lib/i486-linux-gnu CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/i486-linux-gnu/4.4.1/crtend.o /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crtn.o] + arg [/usr/lib/gcc/i486-linux-gnu/4.4.1/collect2] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_i386] ==> ignore + arg [--hash-style=both] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib/ld-linux.so.2] ==> ignore + arg [-o] ==> ignore + arg [cmTryCompileExec] ==> ignore + arg [-zrelro] ==> ignore + arg [/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o] ==> ignore + arg [/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crti.o] ==> ignore + arg [/usr/lib/gcc/i486-linux-gnu/4.4.1/crtbegin.o] ==> ignore + arg [-L/usr/lib/gcc/i486-linux-gnu/4.4.1] ==> dir [/usr/lib/gcc/i486-linux-gnu/4.4.1] + arg [-L/usr/lib/gcc/i486-linux-gnu/4.4.1] ==> dir [/usr/lib/gcc/i486-linux-gnu/4.4.1] + arg [-L/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib] ==> dir [/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/i486-linux-gnu/4.4.1/../../..] ==> dir [/usr/lib/gcc/i486-linux-gnu/4.4.1/../../..] + arg [-L/usr/lib/i486-linux-gnu] ==> dir [/usr/lib/i486-linux-gnu] + arg [CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--no-as-needed] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--no-as-needed] ==> ignore + arg [/usr/lib/gcc/i486-linux-gnu/4.4.1/crtend.o] ==> ignore + arg [/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crtn.o] ==> ignore + remove lib [gcc] + remove lib [gcc_s] + remove lib [gcc] + remove lib [gcc_s] + collapse dir [/usr/lib/gcc/i486-linux-gnu/4.4.1] ==> [/usr/lib/gcc/i486-linux-gnu/4.4.1] + collapse dir [/usr/lib/gcc/i486-linux-gnu/4.4.1] ==> [/usr/lib/gcc/i486-linux-gnu/4.4.1] + collapse dir [/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib] ==> [/usr/lib] + collapse dir [/lib/../lib] ==> [/lib] + collapse dir [/usr/lib/../lib] ==> [/usr/lib] + collapse dir [/usr/lib/gcc/i486-linux-gnu/4.4.1/../../..] ==> [/usr/lib] + collapse dir [/usr/lib/i486-linux-gnu] ==> [/usr/lib/i486-linux-gnu] + implicit libs: [c] + implicit dirs: [/usr/lib/gcc/i486-linux-gnu/4.4.1;/usr/lib;/lib;/usr/lib/i486-linux-gnu] + + +Performing C SOURCE FILE Test MOJOSETUP_IS_GCC4 succeded with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/src.c.o +/usr/bin/gcc -DMOJOSETUP_IS_GCC4 -o CMakeFiles/cmTryCompileExec.dir/src.c.o -c /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/src.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc -DMOJOSETUP_IS_GCC4 CMakeFiles/cmTryCompileExec.dir/src.c.o -o cmTryCompileExec -rdynamic +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + +Source file was: + + #if ((defined(__GNUC__)) && (__GNUC__ >= 4)) + int main(int argc, char **argv) { int is_gcc4 = 1; return 0; } + #else + #error This is not gcc4. + #endif + +Performing C SOURCE FILE Test MOJOSETUP_GCC_HAS_STACKPROT succeded with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/src.c.o +/usr/bin/gcc -DMOJOSETUP_GCC_HAS_STACKPROT -fno-stack-protector -o CMakeFiles/cmTryCompileExec.dir/src.c.o -c /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/src.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc -DMOJOSETUP_GCC_HAS_STACKPROT CMakeFiles/cmTryCompileExec.dir/src.c.o -o cmTryCompileExec -rdynamic +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + +Source file was: +int main() { return 0;} +Determining if the include file sys/types.h exists passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o +/usr/bin/gcc -o CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o -c /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o -o cmTryCompileExec -rdynamic +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Determining if the include file stdint.h exists passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o +/usr/bin/gcc -o CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o -c /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o -o cmTryCompileExec -rdynamic +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Determining if the include file stddef.h exists passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o +/usr/bin/gcc -o CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o -c /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o -o cmTryCompileExec -rdynamic +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Determining size of unsigned short passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CheckTypeSizeC.c.o +/usr/bin/gcc -DHAVE_SYS_TYPES_H -DHAVE_STDINT_H -DHAVE_STDDEF_H -o CMakeFiles/cmTryCompileExec.dir/CheckTypeSizeC.c.o -c /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CheckTypeSizeC.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc -DHAVE_SYS_TYPES_H -DHAVE_STDINT_H -DHAVE_STDDEF_H CMakeFiles/cmTryCompileExec.dir/CheckTypeSizeC.c.o -o cmTryCompileExec -rdynamic +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Determining if files pthread.h exist passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CheckIncludeFiles.c.o +/usr/bin/gcc -o CMakeFiles/cmTryCompileExec.dir/CheckIncludeFiles.c.o -c /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CheckIncludeFiles.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc CMakeFiles/cmTryCompileExec.dir/CheckIncludeFiles.c.o -o cmTryCompileExec -rdynamic +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Determining if the function pthread_create exists in the pthread passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o +/usr/bin/gcc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o -c /usr/share/cmake-2.8/Modules/CheckFunctionExists.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o -o cmTryCompileExec -rdynamic -lpthread +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Determining if the include file zlib.h exists passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o +/usr/bin/gcc -o CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o -c /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o -o cmTryCompileExec -rdynamic +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Determining if the function inflate exists in the z passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o +/usr/bin/gcc -DCHECK_FUNCTION_EXISTS=inflate -o CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o -c /usr/share/cmake-2.8/Modules/CheckFunctionExists.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc -DCHECK_FUNCTION_EXISTS=inflate CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o -o cmTryCompileExec -rdynamic -lz +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Determining if the include file bzlib.h exists passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o +/usr/bin/gcc -o CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o -c /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o -o cmTryCompileExec -rdynamic +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Determining if the function BZ2_bzDecompress exists in the bz2 passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o +/usr/bin/gcc -DCHECK_FUNCTION_EXISTS=BZ2_bzDecompress -o CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o -c /usr/share/cmake-2.8/Modules/CheckFunctionExists.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc -DCHECK_FUNCTION_EXISTS=BZ2_bzDecompress CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o -o cmTryCompileExec -rdynamic -lbz2 +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Determining if the include file mntent.h exists passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o +/usr/bin/gcc -o CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o -c /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc CMakeFiles/cmTryCompileExec.dir/CheckIncludeFile.c.o -o cmTryCompileExec -rdynamic +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Determining if the function dlopen exists in the dl passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o +/usr/bin/gcc -DCHECK_FUNCTION_EXISTS=dlopen -o CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o -c /usr/share/cmake-2.8/Modules/CheckFunctionExists.c +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc -DCHECK_FUNCTION_EXISTS=dlopen CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o -o cmTryCompileExec -rdynamic -ldl +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + +Determining if the function sin exists in the m passed with the following output: +Change Dir: /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp + +Run Build Command:/usr/bin/make "cmTryCompileExec/fast" +/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build +make[1]: Entering directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o +/usr/bin/gcc -DCHECK_FUNCTION_EXISTS=sin -o CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o -c /usr/share/cmake-2.8/Modules/CheckFunctionExists.c +/usr/share/cmake-2.8/Modules/CheckFunctionExists.c:3: warning: conflicting types for built-in function ‘sin’ +Linking C executable cmTryCompileExec +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 +/usr/bin/gcc -DCHECK_FUNCTION_EXISTS=sin CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o -o cmTryCompileExec -rdynamic -lm +make[1]: Leaving directory `/home/softcoder/Code/mojosetup/build/CMakeFiles/CMakeTmp' + + diff --git a/mk/linux/mojosetup/build/CMakeFiles/CMakeRuleHashes.txt b/mk/linux/mojosetup/build/CMakeFiles/CMakeRuleHashes.txt new file mode 100644 index 00000000..21c66364 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/CMakeRuleHashes.txt @@ -0,0 +1,3 @@ +# Hashes of file build rules. +a8c5d4326890019286024eb8a86d285d CMakeFiles/lua +7655e56c0923725ca6a81de43e4da44f CMakeFiles/skeleton diff --git a/mk/linux/mojosetup/build/CMakeFiles/CMakeSystem.cmake b/mk/linux/mojosetup/build/CMakeFiles/CMakeSystem.cmake new file mode 100644 index 00000000..fb57b36a --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/CMakeSystem.cmake @@ -0,0 +1,15 @@ + + +SET(CMAKE_SYSTEM "Linux-2.6.31-21-generic-pae") +SET(CMAKE_SYSTEM_NAME "Linux") +SET(CMAKE_SYSTEM_VERSION "2.6.31-21-generic-pae") +SET(CMAKE_SYSTEM_PROCESSOR "i686") + +SET(CMAKE_HOST_SYSTEM "Linux-2.6.31-21-generic-pae") +SET(CMAKE_HOST_SYSTEM_NAME "Linux") +SET(CMAKE_HOST_SYSTEM_VERSION "2.6.31-21-generic-pae") +SET(CMAKE_HOST_SYSTEM_PROCESSOR "i686") + +SET(CMAKE_CROSSCOMPILING "FALSE") + +SET(CMAKE_SYSTEM_LOADED 1) diff --git a/mk/linux/mojosetup/build/CMakeFiles/CheckTypeSize.bin b/mk/linux/mojosetup/build/CMakeFiles/CheckTypeSize.bin new file mode 100755 index 0000000000000000000000000000000000000000..f6e79c935354bdfe7f0b887fd443dd233cf9bdd6 GIT binary patch literal 8295 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 800 +# define COMPILER_ID "XL" +# else +# define COMPILER_ID "VisualAge" +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + +#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +/* Analog Devices C++ compiler for Blackfin, TigerSHARC and + SHARC (21000) DSPs */ +# define COMPILER_ID "ADSP" + +/* IAR Systems compiler for embedded systems. + http://www.iar.com + Not supported yet by CMake +#elif defined(__IAR_SYSTEMS_ICC__) +# define COMPILER_ID "IAR" */ + +/* sdcc, the small devices C compiler for embedded systems, + http://sdcc.sourceforge.net */ +#elif defined(SDCC) +# define COMPILER_ID "SDCC" + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" + +/* This compiler is either not known or is too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" + +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU) || defined(__HAIKU__) || defined(_HAIKU) +# define PLATFORM_ID "Haiku" +/* Haiku also defines __BEOS__ so we must + put it prior to the check for __BEOS__ +*/ + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#else /* unknown platform */ +# define PLATFORM_ID "" + +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; + + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + (void)argv; + return require; +} +#endif diff --git a/mk/linux/mojosetup/build/CMakeFiles/CompilerIdC/a.out b/mk/linux/mojosetup/build/CMakeFiles/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..b18090c853e4fc82112c4e79c35017298219a41b GIT binary patch literal 8337 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 Ma+4#k4S6N_FNrfF=l}o! literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/build/CMakeFiles/cmake.check_cache b/mk/linux/mojosetup/build/CMakeFiles/cmake.check_cache new file mode 100644 index 00000000..3dccd731 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/mk/linux/mojosetup/build/CMakeFiles/lua.dir/DependInfo.cmake b/mk/linux/mojosetup/build/CMakeFiles/lua.dir/DependInfo.cmake new file mode 100644 index 00000000..c6c259e1 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/lua.dir/DependInfo.cmake @@ -0,0 +1,42 @@ +# The set of languages for which implicit dependencies are needed: +SET(CMAKE_DEPENDS_LANGUAGES + ) +# The set of files for implicit dependencies of each language: + +# Preprocessor definitions for this target. +SET(CMAKE_TARGET_DEFINITIONS + "__MOJOSETUP__=1" + "APPID=mojosetup" + "_REENTRANT" + "_THREAD_SAFE" + "PLATFORM_UNIX=1" + "LUA_USE_MKSTEMP=1" + "LUA_USE_ULONGJMP=1" + "PLATFORM_LITTLEENDIAN=1" + "SUPPORT_LUALIB_IO=1" + "SUPPORT_LUALIB_OS=1" + "SUPPORT_LUALIB_MATH=1" + "SUPPORT_LUALIB_DB=1" + "SUPPORT_LUALIB_PACKAGE=1" + "SUPPORT_CRC32=1" + "SUPPORT_MD5=1" + "SUPPORT_SHA1=1" + "SUPPORT_GUI_STDIO=1" + "GUI_STATIC_LINK_STDIO=1" + "SUPPORT_GUI_GTKPLUS2=1" + "SUPPORT_ZIP=1" + "SUPPORT_TAR=1" + "SUPPORT_GZIP=1" + "SUPPORT_BZIP2=1" + "BZ_NO_STDIO=1" + "SUPPORT_JPG=1" + "SUPPORT_PNG=1" + "SUPPORT_STBIMAGE=1" + "SUPPORT_URL_HTTP=1" + "SUPPORT_URL_FTP=1" + "MOJOSETUP_HAVE_MNTENT_H=1" + ) + +# Targets to which this target links. +SET(CMAKE_TARGET_LINKED_INFO_FILES + ) diff --git a/mk/linux/mojosetup/build/CMakeFiles/lua.dir/build.make b/mk/linux/mojosetup/build/CMakeFiles/lua.dir/build.make new file mode 100644 index 00000000..bd17e746 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/lua.dir/build.make @@ -0,0 +1,60 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canoncical targets will work. +.SUFFIXES: + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/softcoder/Code/mojosetup + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/softcoder/Code/mojosetup/build + +# Utility rule file for lua. + +CMakeFiles/lua: + ./mojoluac -p /home/softcoder/Code/mojosetup/scripts/*.lua + +lua: CMakeFiles/lua +lua: CMakeFiles/lua.dir/build.make +.PHONY : lua + +# Rule to build all files generated by this target. +CMakeFiles/lua.dir/build: lua +.PHONY : CMakeFiles/lua.dir/build + +CMakeFiles/lua.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/lua.dir/cmake_clean.cmake +.PHONY : CMakeFiles/lua.dir/clean + +CMakeFiles/lua.dir/depend: + cd /home/softcoder/Code/mojosetup/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/softcoder/Code/mojosetup /home/softcoder/Code/mojosetup /home/softcoder/Code/mojosetup/build /home/softcoder/Code/mojosetup/build /home/softcoder/Code/mojosetup/build/CMakeFiles/lua.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/lua.dir/depend + diff --git a/mk/linux/mojosetup/build/CMakeFiles/lua.dir/cmake_clean.cmake b/mk/linux/mojosetup/build/CMakeFiles/lua.dir/cmake_clean.cmake new file mode 100644 index 00000000..ce2367e3 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/lua.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +FILE(REMOVE_RECURSE + "CMakeFiles/lua" +) + +# Per-language clean rules from dependency scanning. +FOREACH(lang) + INCLUDE(CMakeFiles/lua.dir/cmake_clean_${lang}.cmake OPTIONAL) +ENDFOREACH(lang) diff --git a/mk/linux/mojosetup/build/CMakeFiles/lua.dir/progress.make b/mk/linux/mojosetup/build/CMakeFiles/lua.dir/progress.make new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/lua.dir/progress.make @@ -0,0 +1 @@ + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/C.includecache b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/C.includecache new file mode 100644 index 00000000..acef3477 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/C.includecache @@ -0,0 +1,804 @@ +#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/softcoder/Code/mojosetup/lua/src/lapi.c +assert.h +- +math.h +- +stdarg.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lapi.h +/home/softcoder/Code/mojosetup/lua/src/lapi.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h +lundump.h +/home/softcoder/Code/mojosetup/lua/src/lundump.h +lvm.h +/home/softcoder/Code/mojosetup/lua/src/lvm.h + +/home/softcoder/Code/mojosetup/lua/src/lapi.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h + +/home/softcoder/Code/mojosetup/lua/src/lauxlib.c +ctype.h +- +errno.h +- +stdarg.h +- +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h + +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +stddef.h +- +stdio.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h + +/home/softcoder/Code/mojosetup/lua/src/lbaselib.c +ctype.h +- +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/lcode.c +stdlib.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lcode.h +/home/softcoder/Code/mojosetup/lua/src/lcode.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +llex.h +/home/softcoder/Code/mojosetup/lua/src/llex.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lparser.h +/home/softcoder/Code/mojosetup/lua/src/lparser.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h + +/home/softcoder/Code/mojosetup/lua/src/lcode.h +llex.h +/home/softcoder/Code/mojosetup/lua/src/llex.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lparser.h +/home/softcoder/Code/mojosetup/lua/src/lparser.h + +/home/softcoder/Code/mojosetup/lua/src/ldblib.c +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/ldebug.c +stdarg.h +- +stddef.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lapi.h +/home/softcoder/Code/mojosetup/lua/src/lapi.h +lcode.h +/home/softcoder/Code/mojosetup/lua/src/lcode.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h +lvm.h +/home/softcoder/Code/mojosetup/lua/src/lvm.h + +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h + +/home/softcoder/Code/mojosetup/lua/src/ldo.c +setjmp.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lparser.h +/home/softcoder/Code/mojosetup/lua/src/lparser.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h +lundump.h +/home/softcoder/Code/mojosetup/lua/src/lundump.h +lvm.h +/home/softcoder/Code/mojosetup/lua/src/lvm.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/ldump.c +stddef.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lundump.h +/home/softcoder/Code/mojosetup/lua/src/lundump.h + +/home/softcoder/Code/mojosetup/lua/src/lfunc.c +stddef.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h + +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h + +/home/softcoder/Code/mojosetup/lua/src/lgc.c +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h + +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h + +/home/softcoder/Code/mojosetup/lua/src/linit.c +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h + +/home/softcoder/Code/mojosetup/lua/src/liolib.c +errno.h +- +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/llex.c +ctype.h +- +locale.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +llex.h +/home/softcoder/Code/mojosetup/lua/src/llex.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lparser.h +/home/softcoder/Code/mojosetup/lua/src/lparser.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/llex.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/llimits.h +limits.h +- +stddef.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h + +/home/softcoder/Code/mojosetup/lua/src/lmathlib.c +stdlib.h +- +math.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/lmem.c +stddef.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h + +/home/softcoder/Code/mojosetup/lua/src/lmem.h +stddef.h +- +llimits.h +/home/softcoder/Code/mojosetup/lua/src/llimits.h +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h + +/home/softcoder/Code/mojosetup/lua/src/loadlib.c +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h +dlfcn.h +- +windows.h +- +mach-o/dyld.h +- + +/home/softcoder/Code/mojosetup/lua/src/lobject.c +ctype.h +- +stdarg.h +- +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +lvm.h +/home/softcoder/Code/mojosetup/lua/src/lvm.h + +/home/softcoder/Code/mojosetup/lua/src/lobject.h +stdarg.h +- +llimits.h +/home/softcoder/Code/mojosetup/lua/src/llimits.h +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h + +/home/softcoder/Code/mojosetup/lua/src/lopcodes.c +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h + +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +llimits.h +/home/softcoder/Code/mojosetup/lua/src/llimits.h + +/home/softcoder/Code/mojosetup/lua/src/loslib.c +errno.h +- +locale.h +- +stdlib.h +- +string.h +- +time.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/lparser.c +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lcode.h +/home/softcoder/Code/mojosetup/lua/src/lcode.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +llex.h +/home/softcoder/Code/mojosetup/lua/src/llex.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lparser.h +/home/softcoder/Code/mojosetup/lua/src/lparser.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h + +/home/softcoder/Code/mojosetup/lua/src/lparser.h +llimits.h +/home/softcoder/Code/mojosetup/lua/src/llimits.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/lstate.c +stddef.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +llex.h +/home/softcoder/Code/mojosetup/lua/src/llex.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h + +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/lstring.c +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h + +/home/softcoder/Code/mojosetup/lua/src/lstring.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h + +/home/softcoder/Code/mojosetup/lua/src/lstrlib.c +ctype.h +- +stddef.h +- +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/ltable.c +math.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h + +/home/softcoder/Code/mojosetup/lua/src/ltable.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h + +/home/softcoder/Code/mojosetup/lua/src/ltablib.c +stddef.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/ltm.c +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h + +/home/softcoder/Code/mojosetup/lua/src/ltm.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h + +/home/softcoder/Code/mojosetup/lua/src/lua.h +stdarg.h +- +stddef.h +- +luaconf.h +/home/softcoder/Code/mojosetup/lua/src/luaconf.h + +/home/softcoder/Code/mojosetup/lua/src/luac.c +errno.h +- +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +lundump.h +/home/softcoder/Code/mojosetup/lua/src/lundump.h + +/home/softcoder/Code/mojosetup/lua/src/luaconf.h +limits.h +- +stddef.h +- +unistd.h +- +io.h +- +stdio.h +- +stdio.h +- +readline/readline.h +- +readline/history.h +- +assert.h +- +math.h +- +unistd.h +- + +/home/softcoder/Code/mojosetup/lua/src/lualib.h +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h + +/home/softcoder/Code/mojosetup/lua/src/lundump.c +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +lundump.h +/home/softcoder/Code/mojosetup/lua/src/lundump.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/lundump.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/lvm.c +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h +lvm.h +/home/softcoder/Code/mojosetup/lua/src/lvm.h + +/home/softcoder/Code/mojosetup/lua/src/lvm.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h + +/home/softcoder/Code/mojosetup/lua/src/lzio.c +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +llimits.h +/home/softcoder/Code/mojosetup/lua/src/llimits.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/lzio.h +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h + +/home/softcoder/Code/mojosetup/lua/src/print.c +ctype.h +- +stdio.h +- +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lundump.h +/home/softcoder/Code/mojosetup/lua/src/lundump.h + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/DependInfo.cmake b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/DependInfo.cmake new file mode 100644 index 00000000..5d651b10 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/DependInfo.cmake @@ -0,0 +1,77 @@ +# The set of languages for which implicit dependencies are needed: +SET(CMAKE_DEPENDS_LANGUAGES + "C" + ) +# The set of files for implicit dependencies of each language: +SET(CMAKE_DEPENDS_CHECK_C + "/home/softcoder/Code/mojosetup/lua/src/lapi.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lapi.o" + "/home/softcoder/Code/mojosetup/lua/src/lauxlib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lauxlib.o" + "/home/softcoder/Code/mojosetup/lua/src/lbaselib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lbaselib.o" + "/home/softcoder/Code/mojosetup/lua/src/lcode.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lcode.o" + "/home/softcoder/Code/mojosetup/lua/src/ldblib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/ldblib.o" + "/home/softcoder/Code/mojosetup/lua/src/ldebug.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/ldebug.o" + "/home/softcoder/Code/mojosetup/lua/src/ldo.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/ldo.o" + "/home/softcoder/Code/mojosetup/lua/src/ldump.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/ldump.o" + "/home/softcoder/Code/mojosetup/lua/src/lfunc.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lfunc.o" + "/home/softcoder/Code/mojosetup/lua/src/lgc.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lgc.o" + "/home/softcoder/Code/mojosetup/lua/src/linit.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/linit.o" + "/home/softcoder/Code/mojosetup/lua/src/liolib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/liolib.o" + "/home/softcoder/Code/mojosetup/lua/src/llex.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/llex.o" + "/home/softcoder/Code/mojosetup/lua/src/lmathlib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lmathlib.o" + "/home/softcoder/Code/mojosetup/lua/src/lmem.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lmem.o" + "/home/softcoder/Code/mojosetup/lua/src/loadlib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/loadlib.o" + "/home/softcoder/Code/mojosetup/lua/src/lobject.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lobject.o" + "/home/softcoder/Code/mojosetup/lua/src/lopcodes.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lopcodes.o" + "/home/softcoder/Code/mojosetup/lua/src/loslib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/loslib.o" + "/home/softcoder/Code/mojosetup/lua/src/lparser.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lparser.o" + "/home/softcoder/Code/mojosetup/lua/src/lstate.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lstate.o" + "/home/softcoder/Code/mojosetup/lua/src/lstring.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lstring.o" + "/home/softcoder/Code/mojosetup/lua/src/lstrlib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lstrlib.o" + "/home/softcoder/Code/mojosetup/lua/src/ltable.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/ltable.o" + "/home/softcoder/Code/mojosetup/lua/src/ltablib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/ltablib.o" + "/home/softcoder/Code/mojosetup/lua/src/ltm.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/ltm.o" + "/home/softcoder/Code/mojosetup/lua/src/luac.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/luac.o" + "/home/softcoder/Code/mojosetup/lua/src/lundump.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lundump.o" + "/home/softcoder/Code/mojosetup/lua/src/lvm.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lvm.o" + "/home/softcoder/Code/mojosetup/lua/src/lzio.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/lzio.o" + "/home/softcoder/Code/mojosetup/lua/src/print.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/lua/src/print.o" + ) +SET(CMAKE_C_COMPILER_ID "GNU") + +# Preprocessor definitions for this target. +SET(CMAKE_TARGET_DEFINITIONS + "__MOJOSETUP__=1" + "APPID=mojosetup" + "_REENTRANT" + "_THREAD_SAFE" + "PLATFORM_UNIX=1" + "LUA_USE_MKSTEMP=1" + "LUA_USE_ULONGJMP=1" + "PLATFORM_LITTLEENDIAN=1" + "SUPPORT_LUALIB_IO=1" + "SUPPORT_LUALIB_OS=1" + "SUPPORT_LUALIB_MATH=1" + "SUPPORT_LUALIB_DB=1" + "SUPPORT_LUALIB_PACKAGE=1" + "SUPPORT_CRC32=1" + "SUPPORT_MD5=1" + "SUPPORT_SHA1=1" + "SUPPORT_GUI_STDIO=1" + "GUI_STATIC_LINK_STDIO=1" + "SUPPORT_GUI_GTKPLUS2=1" + "SUPPORT_ZIP=1" + "SUPPORT_TAR=1" + "SUPPORT_GZIP=1" + "SUPPORT_BZIP2=1" + "BZ_NO_STDIO=1" + "SUPPORT_JPG=1" + "SUPPORT_PNG=1" + "SUPPORT_STBIMAGE=1" + "SUPPORT_URL_HTTP=1" + "SUPPORT_URL_FTP=1" + "MOJOSETUP_HAVE_MNTENT_H=1" + ) + +# Targets to which this target links. +SET(CMAKE_TARGET_LINKED_INFO_FILES + ) diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/build.make b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/build.make new file mode 100644 index 00000000..591f1f66 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/build.make @@ -0,0 +1,910 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canoncical targets will work. +.SUFFIXES: + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/softcoder/Code/mojosetup + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/softcoder/Code/mojosetup/build + +# Include any dependencies generated for this target. +include CMakeFiles/mojoluac.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/mojoluac.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/mojoluac.dir/flags.make + +CMakeFiles/mojoluac.dir/lua/src/lapi.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/lapi.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_1) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lapi.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lapi.o -c /home/softcoder/Code/mojosetup/lua/src/lapi.c + +CMakeFiles/mojoluac.dir/lua/src/lapi.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lapi.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lapi.c > CMakeFiles/mojoluac.dir/lua/src/lapi.i + +CMakeFiles/mojoluac.dir/lua/src/lapi.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lapi.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lapi.c -o CMakeFiles/mojoluac.dir/lua/src/lapi.s + +CMakeFiles/mojoluac.dir/lua/src/lapi.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lapi.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lapi.o.provides: CMakeFiles/mojoluac.dir/lua/src/lapi.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lapi.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lapi.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lapi.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lapi.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lapi.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/ldebug.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_2) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/ldebug.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/ldebug.o -c /home/softcoder/Code/mojosetup/lua/src/ldebug.c + +CMakeFiles/mojoluac.dir/lua/src/ldebug.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/ldebug.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ldebug.c > CMakeFiles/mojoluac.dir/lua/src/ldebug.i + +CMakeFiles/mojoluac.dir/lua/src/ldebug.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/ldebug.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ldebug.c -o CMakeFiles/mojoluac.dir/lua/src/ldebug.s + +CMakeFiles/mojoluac.dir/lua/src/ldebug.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ldebug.o.requires + +CMakeFiles/mojoluac.dir/lua/src/ldebug.o.provides: CMakeFiles/mojoluac.dir/lua/src/ldebug.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldebug.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ldebug.o.provides + +CMakeFiles/mojoluac.dir/lua/src/ldebug.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/ldebug.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ldebug.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/ldo.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/ldo.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_3) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/ldo.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/ldo.o -c /home/softcoder/Code/mojosetup/lua/src/ldo.c + +CMakeFiles/mojoluac.dir/lua/src/ldo.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/ldo.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ldo.c > CMakeFiles/mojoluac.dir/lua/src/ldo.i + +CMakeFiles/mojoluac.dir/lua/src/ldo.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/ldo.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ldo.c -o CMakeFiles/mojoluac.dir/lua/src/ldo.s + +CMakeFiles/mojoluac.dir/lua/src/ldo.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ldo.o.requires + +CMakeFiles/mojoluac.dir/lua/src/ldo.o.provides: CMakeFiles/mojoluac.dir/lua/src/ldo.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldo.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ldo.o.provides + +CMakeFiles/mojoluac.dir/lua/src/ldo.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/ldo.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ldo.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/ldump.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/ldump.o: ../lua/src/ldump.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_4) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/ldump.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/ldump.o -c /home/softcoder/Code/mojosetup/lua/src/ldump.c + +CMakeFiles/mojoluac.dir/lua/src/ldump.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/ldump.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ldump.c > CMakeFiles/mojoluac.dir/lua/src/ldump.i + +CMakeFiles/mojoluac.dir/lua/src/ldump.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/ldump.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ldump.c -o CMakeFiles/mojoluac.dir/lua/src/ldump.s + +CMakeFiles/mojoluac.dir/lua/src/ldump.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ldump.o.requires + +CMakeFiles/mojoluac.dir/lua/src/ldump.o.provides: CMakeFiles/mojoluac.dir/lua/src/ldump.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldump.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ldump.o.provides + +CMakeFiles/mojoluac.dir/lua/src/ldump.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/ldump.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ldump.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lfunc.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lfunc.o: ../lua/src/lfunc.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_5) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lfunc.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lfunc.o -c /home/softcoder/Code/mojosetup/lua/src/lfunc.c + +CMakeFiles/mojoluac.dir/lua/src/lfunc.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lfunc.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lfunc.c > CMakeFiles/mojoluac.dir/lua/src/lfunc.i + +CMakeFiles/mojoluac.dir/lua/src/lfunc.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lfunc.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lfunc.c -o CMakeFiles/mojoluac.dir/lua/src/lfunc.s + +CMakeFiles/mojoluac.dir/lua/src/lfunc.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lfunc.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lfunc.o.provides: CMakeFiles/mojoluac.dir/lua/src/lfunc.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lfunc.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lfunc.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lfunc.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lfunc.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lfunc.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lgc.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/lgc.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_6) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lgc.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lgc.o -c /home/softcoder/Code/mojosetup/lua/src/lgc.c + +CMakeFiles/mojoluac.dir/lua/src/lgc.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lgc.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lgc.c > CMakeFiles/mojoluac.dir/lua/src/lgc.i + +CMakeFiles/mojoluac.dir/lua/src/lgc.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lgc.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lgc.c -o CMakeFiles/mojoluac.dir/lua/src/lgc.s + +CMakeFiles/mojoluac.dir/lua/src/lgc.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lgc.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lgc.o.provides: CMakeFiles/mojoluac.dir/lua/src/lgc.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lgc.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lgc.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lgc.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lgc.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lgc.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lmem.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lmem.o: ../lua/src/lmem.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_7) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lmem.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lmem.o -c /home/softcoder/Code/mojosetup/lua/src/lmem.c + +CMakeFiles/mojoluac.dir/lua/src/lmem.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lmem.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lmem.c > CMakeFiles/mojoluac.dir/lua/src/lmem.i + +CMakeFiles/mojoluac.dir/lua/src/lmem.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lmem.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lmem.c -o CMakeFiles/mojoluac.dir/lua/src/lmem.s + +CMakeFiles/mojoluac.dir/lua/src/lmem.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lmem.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lmem.o.provides: CMakeFiles/mojoluac.dir/lua/src/lmem.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lmem.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lmem.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lmem.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lmem.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lmem.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lobject.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/lobject.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_8) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lobject.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lobject.o -c /home/softcoder/Code/mojosetup/lua/src/lobject.c + +CMakeFiles/mojoluac.dir/lua/src/lobject.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lobject.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lobject.c > CMakeFiles/mojoluac.dir/lua/src/lobject.i + +CMakeFiles/mojoluac.dir/lua/src/lobject.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lobject.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lobject.c -o CMakeFiles/mojoluac.dir/lua/src/lobject.s + +CMakeFiles/mojoluac.dir/lua/src/lobject.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lobject.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lobject.o.provides: CMakeFiles/mojoluac.dir/lua/src/lobject.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lobject.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lobject.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lobject.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lobject.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lobject.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lopcodes.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lopcodes.o: ../lua/src/lopcodes.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_9) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lopcodes.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lopcodes.o -c /home/softcoder/Code/mojosetup/lua/src/lopcodes.c + +CMakeFiles/mojoluac.dir/lua/src/lopcodes.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lopcodes.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lopcodes.c > CMakeFiles/mojoluac.dir/lua/src/lopcodes.i + +CMakeFiles/mojoluac.dir/lua/src/lopcodes.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lopcodes.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lopcodes.c -o CMakeFiles/mojoluac.dir/lua/src/lopcodes.s + +CMakeFiles/mojoluac.dir/lua/src/lopcodes.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lopcodes.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lopcodes.o.provides: CMakeFiles/mojoluac.dir/lua/src/lopcodes.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lopcodes.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lopcodes.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lopcodes.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lopcodes.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lopcodes.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lstate.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/lstate.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_10) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lstate.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lstate.o -c /home/softcoder/Code/mojosetup/lua/src/lstate.c + +CMakeFiles/mojoluac.dir/lua/src/lstate.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lstate.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lstate.c > CMakeFiles/mojoluac.dir/lua/src/lstate.i + +CMakeFiles/mojoluac.dir/lua/src/lstate.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lstate.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lstate.c -o CMakeFiles/mojoluac.dir/lua/src/lstate.s + +CMakeFiles/mojoluac.dir/lua/src/lstate.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lstate.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lstate.o.provides: CMakeFiles/mojoluac.dir/lua/src/lstate.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lstate.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lstate.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lstate.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lstate.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lstate.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lstring.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lstring.o: ../lua/src/lstring.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_11) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lstring.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lstring.o -c /home/softcoder/Code/mojosetup/lua/src/lstring.c + +CMakeFiles/mojoluac.dir/lua/src/lstring.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lstring.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lstring.c > CMakeFiles/mojoluac.dir/lua/src/lstring.i + +CMakeFiles/mojoluac.dir/lua/src/lstring.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lstring.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lstring.c -o CMakeFiles/mojoluac.dir/lua/src/lstring.s + +CMakeFiles/mojoluac.dir/lua/src/lstring.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lstring.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lstring.o.provides: CMakeFiles/mojoluac.dir/lua/src/lstring.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lstring.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lstring.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lstring.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lstring.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lstring.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/ltable.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/ltable.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_12) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/ltable.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/ltable.o -c /home/softcoder/Code/mojosetup/lua/src/ltable.c + +CMakeFiles/mojoluac.dir/lua/src/ltable.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/ltable.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ltable.c > CMakeFiles/mojoluac.dir/lua/src/ltable.i + +CMakeFiles/mojoluac.dir/lua/src/ltable.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/ltable.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ltable.c -o CMakeFiles/mojoluac.dir/lua/src/ltable.s + +CMakeFiles/mojoluac.dir/lua/src/ltable.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ltable.o.requires + +CMakeFiles/mojoluac.dir/lua/src/ltable.o.provides: CMakeFiles/mojoluac.dir/lua/src/ltable.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ltable.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ltable.o.provides + +CMakeFiles/mojoluac.dir/lua/src/ltable.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/ltable.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ltable.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/ltm.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/ltm.o: ../lua/src/ltm.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_13) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/ltm.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/ltm.o -c /home/softcoder/Code/mojosetup/lua/src/ltm.c + +CMakeFiles/mojoluac.dir/lua/src/ltm.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/ltm.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ltm.c > CMakeFiles/mojoluac.dir/lua/src/ltm.i + +CMakeFiles/mojoluac.dir/lua/src/ltm.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/ltm.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ltm.c -o CMakeFiles/mojoluac.dir/lua/src/ltm.s + +CMakeFiles/mojoluac.dir/lua/src/ltm.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ltm.o.requires + +CMakeFiles/mojoluac.dir/lua/src/ltm.o.provides: CMakeFiles/mojoluac.dir/lua/src/ltm.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ltm.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ltm.o.provides + +CMakeFiles/mojoluac.dir/lua/src/ltm.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/ltm.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ltm.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lundump.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/lundump.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_14) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lundump.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lundump.o -c /home/softcoder/Code/mojosetup/lua/src/lundump.c + +CMakeFiles/mojoluac.dir/lua/src/lundump.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lundump.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lundump.c > CMakeFiles/mojoluac.dir/lua/src/lundump.i + +CMakeFiles/mojoluac.dir/lua/src/lundump.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lundump.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lundump.c -o CMakeFiles/mojoluac.dir/lua/src/lundump.s + +CMakeFiles/mojoluac.dir/lua/src/lundump.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lundump.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lundump.o.provides: CMakeFiles/mojoluac.dir/lua/src/lundump.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lundump.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lundump.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lundump.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lundump.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lundump.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lvm.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/lvm.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_15) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lvm.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lvm.o -c /home/softcoder/Code/mojosetup/lua/src/lvm.c + +CMakeFiles/mojoluac.dir/lua/src/lvm.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lvm.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lvm.c > CMakeFiles/mojoluac.dir/lua/src/lvm.i + +CMakeFiles/mojoluac.dir/lua/src/lvm.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lvm.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lvm.c -o CMakeFiles/mojoluac.dir/lua/src/lvm.s + +CMakeFiles/mojoluac.dir/lua/src/lvm.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lvm.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lvm.o.provides: CMakeFiles/mojoluac.dir/lua/src/lvm.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lvm.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lvm.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lvm.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lvm.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lvm.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lzio.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lzio.o: ../lua/src/lzio.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_16) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lzio.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lzio.o -c /home/softcoder/Code/mojosetup/lua/src/lzio.c + +CMakeFiles/mojoluac.dir/lua/src/lzio.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lzio.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lzio.c > CMakeFiles/mojoluac.dir/lua/src/lzio.i + +CMakeFiles/mojoluac.dir/lua/src/lzio.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lzio.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lzio.c -o CMakeFiles/mojoluac.dir/lua/src/lzio.s + +CMakeFiles/mojoluac.dir/lua/src/lzio.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lzio.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lzio.o.provides: CMakeFiles/mojoluac.dir/lua/src/lzio.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lzio.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lzio.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lzio.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lzio.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lzio.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lauxlib.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lauxlib.o: ../lua/src/lauxlib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_17) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lauxlib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lauxlib.o -c /home/softcoder/Code/mojosetup/lua/src/lauxlib.c + +CMakeFiles/mojoluac.dir/lua/src/lauxlib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lauxlib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lauxlib.c > CMakeFiles/mojoluac.dir/lua/src/lauxlib.i + +CMakeFiles/mojoluac.dir/lua/src/lauxlib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lauxlib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lauxlib.c -o CMakeFiles/mojoluac.dir/lua/src/lauxlib.s + +CMakeFiles/mojoluac.dir/lua/src/lauxlib.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lauxlib.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lauxlib.o.provides: CMakeFiles/mojoluac.dir/lua/src/lauxlib.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lauxlib.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lauxlib.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lauxlib.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lauxlib.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lauxlib.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lbaselib.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lbaselib.o: ../lua/src/lbaselib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_18) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lbaselib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lbaselib.o -c /home/softcoder/Code/mojosetup/lua/src/lbaselib.c + +CMakeFiles/mojoluac.dir/lua/src/lbaselib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lbaselib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lbaselib.c > CMakeFiles/mojoluac.dir/lua/src/lbaselib.i + +CMakeFiles/mojoluac.dir/lua/src/lbaselib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lbaselib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lbaselib.c -o CMakeFiles/mojoluac.dir/lua/src/lbaselib.s + +CMakeFiles/mojoluac.dir/lua/src/lbaselib.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lbaselib.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lbaselib.o.provides: CMakeFiles/mojoluac.dir/lua/src/lbaselib.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lbaselib.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lbaselib.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lbaselib.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lbaselib.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lbaselib.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lstrlib.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lstrlib.o: ../lua/src/lstrlib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_19) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lstrlib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lstrlib.o -c /home/softcoder/Code/mojosetup/lua/src/lstrlib.c + +CMakeFiles/mojoluac.dir/lua/src/lstrlib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lstrlib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lstrlib.c > CMakeFiles/mojoluac.dir/lua/src/lstrlib.i + +CMakeFiles/mojoluac.dir/lua/src/lstrlib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lstrlib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lstrlib.c -o CMakeFiles/mojoluac.dir/lua/src/lstrlib.s + +CMakeFiles/mojoluac.dir/lua/src/lstrlib.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lstrlib.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lstrlib.o.provides: CMakeFiles/mojoluac.dir/lua/src/lstrlib.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lstrlib.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lstrlib.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lstrlib.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lstrlib.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lstrlib.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/ltablib.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/ltablib.o: ../lua/src/ltablib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_20) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/ltablib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/ltablib.o -c /home/softcoder/Code/mojosetup/lua/src/ltablib.c + +CMakeFiles/mojoluac.dir/lua/src/ltablib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/ltablib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ltablib.c > CMakeFiles/mojoluac.dir/lua/src/ltablib.i + +CMakeFiles/mojoluac.dir/lua/src/ltablib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/ltablib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ltablib.c -o CMakeFiles/mojoluac.dir/lua/src/ltablib.s + +CMakeFiles/mojoluac.dir/lua/src/ltablib.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ltablib.o.requires + +CMakeFiles/mojoluac.dir/lua/src/ltablib.o.provides: CMakeFiles/mojoluac.dir/lua/src/ltablib.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ltablib.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ltablib.o.provides + +CMakeFiles/mojoluac.dir/lua/src/ltablib.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/ltablib.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ltablib.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lparser.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/lparser.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_21) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lparser.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lparser.o -c /home/softcoder/Code/mojosetup/lua/src/lparser.c + +CMakeFiles/mojoluac.dir/lua/src/lparser.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lparser.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lparser.c > CMakeFiles/mojoluac.dir/lua/src/lparser.i + +CMakeFiles/mojoluac.dir/lua/src/lparser.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lparser.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lparser.c -o CMakeFiles/mojoluac.dir/lua/src/lparser.s + +CMakeFiles/mojoluac.dir/lua/src/lparser.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lparser.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lparser.o.provides: CMakeFiles/mojoluac.dir/lua/src/lparser.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lparser.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lparser.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lparser.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lparser.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lparser.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/llex.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/llex.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_22) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/llex.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/llex.o -c /home/softcoder/Code/mojosetup/lua/src/llex.c + +CMakeFiles/mojoluac.dir/lua/src/llex.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/llex.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/llex.c > CMakeFiles/mojoluac.dir/lua/src/llex.i + +CMakeFiles/mojoluac.dir/lua/src/llex.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/llex.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/llex.c -o CMakeFiles/mojoluac.dir/lua/src/llex.s + +CMakeFiles/mojoluac.dir/lua/src/llex.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/llex.o.requires + +CMakeFiles/mojoluac.dir/lua/src/llex.o.provides: CMakeFiles/mojoluac.dir/lua/src/llex.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/llex.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/llex.o.provides + +CMakeFiles/mojoluac.dir/lua/src/llex.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/llex.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/llex.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lcode.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/lcode.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_23) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lcode.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lcode.o -c /home/softcoder/Code/mojosetup/lua/src/lcode.c + +CMakeFiles/mojoluac.dir/lua/src/lcode.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lcode.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lcode.c > CMakeFiles/mojoluac.dir/lua/src/lcode.i + +CMakeFiles/mojoluac.dir/lua/src/lcode.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lcode.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lcode.c -o CMakeFiles/mojoluac.dir/lua/src/lcode.s + +CMakeFiles/mojoluac.dir/lua/src/lcode.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lcode.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lcode.o.provides: CMakeFiles/mojoluac.dir/lua/src/lcode.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lcode.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lcode.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lcode.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lcode.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lcode.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/luac.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/luac.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_24) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/luac.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/luac.o -c /home/softcoder/Code/mojosetup/lua/src/luac.c + +CMakeFiles/mojoluac.dir/lua/src/luac.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/luac.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/luac.c > CMakeFiles/mojoluac.dir/lua/src/luac.i + +CMakeFiles/mojoluac.dir/lua/src/luac.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/luac.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/luac.c -o CMakeFiles/mojoluac.dir/lua/src/luac.s + +CMakeFiles/mojoluac.dir/lua/src/luac.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/luac.o.requires + +CMakeFiles/mojoluac.dir/lua/src/luac.o.provides: CMakeFiles/mojoluac.dir/lua/src/luac.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/luac.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/luac.o.provides + +CMakeFiles/mojoluac.dir/lua/src/luac.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/luac.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/luac.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/print.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/print.o: ../lua/src/print.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_25) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/print.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/print.o -c /home/softcoder/Code/mojosetup/lua/src/print.c + +CMakeFiles/mojoluac.dir/lua/src/print.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/print.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/print.c > CMakeFiles/mojoluac.dir/lua/src/print.i + +CMakeFiles/mojoluac.dir/lua/src/print.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/print.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/print.c -o CMakeFiles/mojoluac.dir/lua/src/print.s + +CMakeFiles/mojoluac.dir/lua/src/print.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/print.o.requires + +CMakeFiles/mojoluac.dir/lua/src/print.o.provides: CMakeFiles/mojoluac.dir/lua/src/print.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/print.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/print.o.provides + +CMakeFiles/mojoluac.dir/lua/src/print.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/print.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/print.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/linit.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/linit.o: ../lua/src/linit.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_26) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/linit.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/linit.o -c /home/softcoder/Code/mojosetup/lua/src/linit.c + +CMakeFiles/mojoluac.dir/lua/src/linit.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/linit.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/linit.c > CMakeFiles/mojoluac.dir/lua/src/linit.i + +CMakeFiles/mojoluac.dir/lua/src/linit.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/linit.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/linit.c -o CMakeFiles/mojoluac.dir/lua/src/linit.s + +CMakeFiles/mojoluac.dir/lua/src/linit.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/linit.o.requires + +CMakeFiles/mojoluac.dir/lua/src/linit.o.provides: CMakeFiles/mojoluac.dir/lua/src/linit.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/linit.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/linit.o.provides + +CMakeFiles/mojoluac.dir/lua/src/linit.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/linit.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/linit.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/ldblib.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/ldblib.o: ../lua/src/ldblib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_27) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/ldblib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/ldblib.o -c /home/softcoder/Code/mojosetup/lua/src/ldblib.c + +CMakeFiles/mojoluac.dir/lua/src/ldblib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/ldblib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ldblib.c > CMakeFiles/mojoluac.dir/lua/src/ldblib.i + +CMakeFiles/mojoluac.dir/lua/src/ldblib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/ldblib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ldblib.c -o CMakeFiles/mojoluac.dir/lua/src/ldblib.s + +CMakeFiles/mojoluac.dir/lua/src/ldblib.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ldblib.o.requires + +CMakeFiles/mojoluac.dir/lua/src/ldblib.o.provides: CMakeFiles/mojoluac.dir/lua/src/ldblib.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldblib.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ldblib.o.provides + +CMakeFiles/mojoluac.dir/lua/src/ldblib.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/ldblib.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/ldblib.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/liolib.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/liolib.o: ../lua/src/liolib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_28) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/liolib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/liolib.o -c /home/softcoder/Code/mojosetup/lua/src/liolib.c + +CMakeFiles/mojoluac.dir/lua/src/liolib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/liolib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/liolib.c > CMakeFiles/mojoluac.dir/lua/src/liolib.i + +CMakeFiles/mojoluac.dir/lua/src/liolib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/liolib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/liolib.c -o CMakeFiles/mojoluac.dir/lua/src/liolib.s + +CMakeFiles/mojoluac.dir/lua/src/liolib.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/liolib.o.requires + +CMakeFiles/mojoluac.dir/lua/src/liolib.o.provides: CMakeFiles/mojoluac.dir/lua/src/liolib.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/liolib.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/liolib.o.provides + +CMakeFiles/mojoluac.dir/lua/src/liolib.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/liolib.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/liolib.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/lmathlib.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/lmathlib.o: ../lua/src/lmathlib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_29) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/lmathlib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/lmathlib.o -c /home/softcoder/Code/mojosetup/lua/src/lmathlib.c + +CMakeFiles/mojoluac.dir/lua/src/lmathlib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/lmathlib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lmathlib.c > CMakeFiles/mojoluac.dir/lua/src/lmathlib.i + +CMakeFiles/mojoluac.dir/lua/src/lmathlib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/lmathlib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lmathlib.c -o CMakeFiles/mojoluac.dir/lua/src/lmathlib.s + +CMakeFiles/mojoluac.dir/lua/src/lmathlib.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lmathlib.o.requires + +CMakeFiles/mojoluac.dir/lua/src/lmathlib.o.provides: CMakeFiles/mojoluac.dir/lua/src/lmathlib.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lmathlib.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lmathlib.o.provides + +CMakeFiles/mojoluac.dir/lua/src/lmathlib.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/lmathlib.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/lmathlib.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/loslib.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/loslib.o: ../lua/src/loslib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_30) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/loslib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/loslib.o -c /home/softcoder/Code/mojosetup/lua/src/loslib.c + +CMakeFiles/mojoluac.dir/lua/src/loslib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/loslib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/loslib.c > CMakeFiles/mojoluac.dir/lua/src/loslib.i + +CMakeFiles/mojoluac.dir/lua/src/loslib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/loslib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/loslib.c -o CMakeFiles/mojoluac.dir/lua/src/loslib.s + +CMakeFiles/mojoluac.dir/lua/src/loslib.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/loslib.o.requires + +CMakeFiles/mojoluac.dir/lua/src/loslib.o.provides: CMakeFiles/mojoluac.dir/lua/src/loslib.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/loslib.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/loslib.o.provides + +CMakeFiles/mojoluac.dir/lua/src/loslib.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/loslib.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/loslib.o.provides.build + +CMakeFiles/mojoluac.dir/lua/src/loadlib.o: CMakeFiles/mojoluac.dir/flags.make +CMakeFiles/mojoluac.dir/lua/src/loadlib.o: ../lua/src/loadlib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_31) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojoluac.dir/lua/src/loadlib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojoluac.dir/lua/src/loadlib.o -c /home/softcoder/Code/mojosetup/lua/src/loadlib.c + +CMakeFiles/mojoluac.dir/lua/src/loadlib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojoluac.dir/lua/src/loadlib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/loadlib.c > CMakeFiles/mojoluac.dir/lua/src/loadlib.i + +CMakeFiles/mojoluac.dir/lua/src/loadlib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojoluac.dir/lua/src/loadlib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/loadlib.c -o CMakeFiles/mojoluac.dir/lua/src/loadlib.s + +CMakeFiles/mojoluac.dir/lua/src/loadlib.o.requires: +.PHONY : CMakeFiles/mojoluac.dir/lua/src/loadlib.o.requires + +CMakeFiles/mojoluac.dir/lua/src/loadlib.o.provides: CMakeFiles/mojoluac.dir/lua/src/loadlib.o.requires + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/loadlib.o.provides.build +.PHONY : CMakeFiles/mojoluac.dir/lua/src/loadlib.o.provides + +CMakeFiles/mojoluac.dir/lua/src/loadlib.o.provides.build: CMakeFiles/mojoluac.dir/lua/src/loadlib.o +.PHONY : CMakeFiles/mojoluac.dir/lua/src/loadlib.o.provides.build + +# Object files for target mojoluac +mojoluac_OBJECTS = \ +"CMakeFiles/mojoluac.dir/lua/src/lapi.o" \ +"CMakeFiles/mojoluac.dir/lua/src/ldebug.o" \ +"CMakeFiles/mojoluac.dir/lua/src/ldo.o" \ +"CMakeFiles/mojoluac.dir/lua/src/ldump.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lfunc.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lgc.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lmem.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lobject.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lopcodes.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lstate.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lstring.o" \ +"CMakeFiles/mojoluac.dir/lua/src/ltable.o" \ +"CMakeFiles/mojoluac.dir/lua/src/ltm.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lundump.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lvm.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lzio.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lauxlib.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lbaselib.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lstrlib.o" \ +"CMakeFiles/mojoluac.dir/lua/src/ltablib.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lparser.o" \ +"CMakeFiles/mojoluac.dir/lua/src/llex.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lcode.o" \ +"CMakeFiles/mojoluac.dir/lua/src/luac.o" \ +"CMakeFiles/mojoluac.dir/lua/src/print.o" \ +"CMakeFiles/mojoluac.dir/lua/src/linit.o" \ +"CMakeFiles/mojoluac.dir/lua/src/ldblib.o" \ +"CMakeFiles/mojoluac.dir/lua/src/liolib.o" \ +"CMakeFiles/mojoluac.dir/lua/src/lmathlib.o" \ +"CMakeFiles/mojoluac.dir/lua/src/loslib.o" \ +"CMakeFiles/mojoluac.dir/lua/src/loadlib.o" + +# External object files for target mojoluac +mojoluac_EXTERNAL_OBJECTS = + +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lapi.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/ldebug.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/ldo.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/ldump.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lfunc.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lgc.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lmem.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lobject.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lopcodes.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lstate.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lstring.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/ltable.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/ltm.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lundump.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lvm.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lzio.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lauxlib.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lbaselib.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lstrlib.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/ltablib.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lparser.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/llex.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lcode.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/luac.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/print.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/linit.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/ldblib.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/liolib.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/lmathlib.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/loslib.o +mojoluac: CMakeFiles/mojoluac.dir/lua/src/loadlib.o +mojoluac: CMakeFiles/mojoluac.dir/build.make +mojoluac: CMakeFiles/mojoluac.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking C executable mojoluac" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/mojoluac.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/mojoluac.dir/build: mojoluac +.PHONY : CMakeFiles/mojoluac.dir/build + +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lapi.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/ldebug.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/ldo.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/ldump.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lfunc.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lgc.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lmem.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lobject.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lopcodes.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lstate.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lstring.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/ltable.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/ltm.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lundump.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lvm.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lzio.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lauxlib.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lbaselib.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lstrlib.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/ltablib.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lparser.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/llex.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lcode.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/luac.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/print.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/linit.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/ldblib.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/liolib.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/lmathlib.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/loslib.o.requires +CMakeFiles/mojoluac.dir/requires: CMakeFiles/mojoluac.dir/lua/src/loadlib.o.requires +.PHONY : CMakeFiles/mojoluac.dir/requires + +CMakeFiles/mojoluac.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/mojoluac.dir/cmake_clean.cmake +.PHONY : CMakeFiles/mojoluac.dir/clean + +CMakeFiles/mojoluac.dir/depend: + cd /home/softcoder/Code/mojosetup/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/softcoder/Code/mojosetup /home/softcoder/Code/mojosetup /home/softcoder/Code/mojosetup/build /home/softcoder/Code/mojosetup/build /home/softcoder/Code/mojosetup/build/CMakeFiles/mojoluac.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/mojoluac.dir/depend + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/cmake_clean.cmake b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/cmake_clean.cmake new file mode 100644 index 00000000..88a32f07 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/cmake_clean.cmake @@ -0,0 +1,40 @@ +FILE(REMOVE_RECURSE + "CMakeFiles/mojoluac.dir/lua/src/lapi.o" + "CMakeFiles/mojoluac.dir/lua/src/ldebug.o" + "CMakeFiles/mojoluac.dir/lua/src/ldo.o" + "CMakeFiles/mojoluac.dir/lua/src/ldump.o" + "CMakeFiles/mojoluac.dir/lua/src/lfunc.o" + "CMakeFiles/mojoluac.dir/lua/src/lgc.o" + "CMakeFiles/mojoluac.dir/lua/src/lmem.o" + "CMakeFiles/mojoluac.dir/lua/src/lobject.o" + "CMakeFiles/mojoluac.dir/lua/src/lopcodes.o" + "CMakeFiles/mojoluac.dir/lua/src/lstate.o" + "CMakeFiles/mojoluac.dir/lua/src/lstring.o" + "CMakeFiles/mojoluac.dir/lua/src/ltable.o" + "CMakeFiles/mojoluac.dir/lua/src/ltm.o" + "CMakeFiles/mojoluac.dir/lua/src/lundump.o" + "CMakeFiles/mojoluac.dir/lua/src/lvm.o" + "CMakeFiles/mojoluac.dir/lua/src/lzio.o" + "CMakeFiles/mojoluac.dir/lua/src/lauxlib.o" + "CMakeFiles/mojoluac.dir/lua/src/lbaselib.o" + "CMakeFiles/mojoluac.dir/lua/src/lstrlib.o" + "CMakeFiles/mojoluac.dir/lua/src/ltablib.o" + "CMakeFiles/mojoluac.dir/lua/src/lparser.o" + "CMakeFiles/mojoluac.dir/lua/src/llex.o" + "CMakeFiles/mojoluac.dir/lua/src/lcode.o" + "CMakeFiles/mojoluac.dir/lua/src/luac.o" + "CMakeFiles/mojoluac.dir/lua/src/print.o" + "CMakeFiles/mojoluac.dir/lua/src/linit.o" + "CMakeFiles/mojoluac.dir/lua/src/ldblib.o" + "CMakeFiles/mojoluac.dir/lua/src/liolib.o" + "CMakeFiles/mojoluac.dir/lua/src/lmathlib.o" + "CMakeFiles/mojoluac.dir/lua/src/loslib.o" + "CMakeFiles/mojoluac.dir/lua/src/loadlib.o" + "mojoluac.pdb" + "mojoluac" +) + +# Per-language clean rules from dependency scanning. +FOREACH(lang C) + INCLUDE(CMakeFiles/mojoluac.dir/cmake_clean_${lang}.cmake OPTIONAL) +ENDFOREACH(lang) diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/depend.internal b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/depend.internal new file mode 100644 index 00000000..a5465dc8 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/depend.internal @@ -0,0 +1,378 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +CMakeFiles/mojoluac.dir/lua/src/lapi.o + /home/softcoder/Code/mojosetup/lua/src/lapi.c + /home/softcoder/Code/mojosetup/lua/src/lapi.h + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lundump.h + /home/softcoder/Code/mojosetup/lua/src/lvm.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/lauxlib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.c + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lbaselib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/lbaselib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o + /home/softcoder/Code/mojosetup/lua/src/lcode.c + /home/softcoder/Code/mojosetup/lua/src/lcode.h + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llex.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lparser.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/ldblib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/ldblib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o + /home/softcoder/Code/mojosetup/lua/src/lapi.h + /home/softcoder/Code/mojosetup/lua/src/lcode.h + /home/softcoder/Code/mojosetup/lua/src/ldebug.c + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llex.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lparser.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lvm.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.c + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lparser.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lundump.h + /home/softcoder/Code/mojosetup/lua/src/lvm.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/ldump.o + /home/softcoder/Code/mojosetup/lua/src/ldump.c + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lundump.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/lfunc.o + /home/softcoder/Code/mojosetup/lua/src/lfunc.c + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.c + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/linit.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/linit.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojoluac.dir/lua/src/liolib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/liolib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojoluac.dir/lua/src/llex.o + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llex.c + /home/softcoder/Code/mojosetup/lua/src/llex.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lparser.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/lmathlib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/lmathlib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojoluac.dir/lua/src/lmem.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.c + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/loadlib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/loadlib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojoluac.dir/lua/src/lobject.o + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.c + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lvm.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/lopcodes.o + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.c + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/loslib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/loslib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o + /home/softcoder/Code/mojosetup/lua/src/lcode.h + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llex.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lparser.c + /home/softcoder/Code/mojosetup/lua/src/lparser.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llex.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.c + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/lstring.o + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.c + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/lstrlib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/lstrlib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojoluac.dir/lua/src/ltable.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/ltable.c + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/ltablib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/ltablib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojoluac.dir/lua/src/ltm.o + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.c + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/luac.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luac.c + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lundump.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lundump.c + /home/softcoder/Code/mojosetup/lua/src/lundump.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lvm.c + /home/softcoder/Code/mojosetup/lua/src/lvm.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/lzio.o + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.c + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/print.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lundump.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h + /home/softcoder/Code/mojosetup/lua/src/print.c diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/depend.make b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/depend.make new file mode 100644 index 00000000..7f6468f9 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/depend.make @@ -0,0 +1,378 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/lapi.c +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/lapi.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/ldebug.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/lfunc.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/lstring.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/ltable.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/lundump.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/lvm.h +CMakeFiles/mojoluac.dir/lua/src/lapi.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/lauxlib.o: ../lua/src/lauxlib.c +CMakeFiles/mojoluac.dir/lua/src/lauxlib.o: ../lua/src/lauxlib.h +CMakeFiles/mojoluac.dir/lua/src/lauxlib.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lauxlib.o: ../lua/src/luaconf.h + +CMakeFiles/mojoluac.dir/lua/src/lbaselib.o: ../lua/src/lauxlib.h +CMakeFiles/mojoluac.dir/lua/src/lbaselib.o: ../lua/src/lbaselib.c +CMakeFiles/mojoluac.dir/lua/src/lbaselib.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lbaselib.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lbaselib.o: ../lua/src/lualib.h + +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/lcode.c +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/lcode.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/ldebug.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/llex.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/lopcodes.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/lparser.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/ltable.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lcode.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/ldblib.o: ../lua/src/lauxlib.h +CMakeFiles/mojoluac.dir/lua/src/ldblib.o: ../lua/src/ldblib.c +CMakeFiles/mojoluac.dir/lua/src/ldblib.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/ldblib.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/ldblib.o: ../lua/src/lualib.h + +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/lapi.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/lcode.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/ldebug.c +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/ldebug.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/lfunc.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/llex.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/lopcodes.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/lparser.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/lstring.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/ltable.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/lvm.h +CMakeFiles/mojoluac.dir/lua/src/ldebug.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/ldebug.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/ldo.c +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/lfunc.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/lopcodes.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/lparser.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/lstring.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/ltable.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/lundump.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/lvm.h +CMakeFiles/mojoluac.dir/lua/src/ldo.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/ldump.o: ../lua/src/ldump.c +CMakeFiles/mojoluac.dir/lua/src/ldump.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/ldump.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/ldump.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/ldump.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/ldump.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/ldump.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/ldump.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/ldump.o: ../lua/src/lundump.h +CMakeFiles/mojoluac.dir/lua/src/ldump.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/lfunc.o: ../lua/src/lfunc.c +CMakeFiles/mojoluac.dir/lua/src/lfunc.o: ../lua/src/lfunc.h +CMakeFiles/mojoluac.dir/lua/src/lfunc.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/lfunc.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/lfunc.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/lfunc.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/lfunc.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/lfunc.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/lfunc.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lfunc.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lfunc.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/ldebug.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/lfunc.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/lgc.c +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/lstring.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/ltable.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lgc.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/linit.o: ../lua/src/lauxlib.h +CMakeFiles/mojoluac.dir/lua/src/linit.o: ../lua/src/linit.c +CMakeFiles/mojoluac.dir/lua/src/linit.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/linit.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/linit.o: ../lua/src/lualib.h + +CMakeFiles/mojoluac.dir/lua/src/liolib.o: ../lua/src/lauxlib.h +CMakeFiles/mojoluac.dir/lua/src/liolib.o: ../lua/src/liolib.c +CMakeFiles/mojoluac.dir/lua/src/liolib.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/liolib.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/liolib.o: ../lua/src/lualib.h + +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/llex.c +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/llex.h +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/lparser.h +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/lstring.h +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/ltable.h +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/llex.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/lmathlib.o: ../lua/src/lauxlib.h +CMakeFiles/mojoluac.dir/lua/src/lmathlib.o: ../lua/src/lmathlib.c +CMakeFiles/mojoluac.dir/lua/src/lmathlib.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lmathlib.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lmathlib.o: ../lua/src/lualib.h + +CMakeFiles/mojoluac.dir/lua/src/lmem.o: ../lua/src/ldebug.h +CMakeFiles/mojoluac.dir/lua/src/lmem.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/lmem.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/lmem.o: ../lua/src/lmem.c +CMakeFiles/mojoluac.dir/lua/src/lmem.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/lmem.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/lmem.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/lmem.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/lmem.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lmem.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lmem.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/loadlib.o: ../lua/src/lauxlib.h +CMakeFiles/mojoluac.dir/lua/src/loadlib.o: ../lua/src/loadlib.c +CMakeFiles/mojoluac.dir/lua/src/loadlib.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/loadlib.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/loadlib.o: ../lua/src/lualib.h + +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/lobject.c +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/lstring.h +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/lvm.h +CMakeFiles/mojoluac.dir/lua/src/lobject.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/lopcodes.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/lopcodes.o: ../lua/src/lopcodes.c +CMakeFiles/mojoluac.dir/lua/src/lopcodes.o: ../lua/src/lopcodes.h +CMakeFiles/mojoluac.dir/lua/src/lopcodes.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lopcodes.o: ../lua/src/luaconf.h + +CMakeFiles/mojoluac.dir/lua/src/loslib.o: ../lua/src/lauxlib.h +CMakeFiles/mojoluac.dir/lua/src/loslib.o: ../lua/src/loslib.c +CMakeFiles/mojoluac.dir/lua/src/loslib.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/loslib.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/loslib.o: ../lua/src/lualib.h + +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/lcode.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/ldebug.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/lfunc.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/llex.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/lopcodes.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/lparser.c +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/lparser.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/lstring.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/ltable.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lparser.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/ldebug.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/lfunc.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/llex.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/lstate.c +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/lstring.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/ltable.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lstate.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/lstring.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/lstring.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/lstring.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/lstring.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/lstring.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/lstring.o: ../lua/src/lstring.c +CMakeFiles/mojoluac.dir/lua/src/lstring.o: ../lua/src/lstring.h +CMakeFiles/mojoluac.dir/lua/src/lstring.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/lstring.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lstring.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lstring.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/lstrlib.o: ../lua/src/lauxlib.h +CMakeFiles/mojoluac.dir/lua/src/lstrlib.o: ../lua/src/lstrlib.c +CMakeFiles/mojoluac.dir/lua/src/lstrlib.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lstrlib.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lstrlib.o: ../lua/src/lualib.h + +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/ldebug.h +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/ltable.c +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/ltable.h +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/ltable.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/ltablib.o: ../lua/src/lauxlib.h +CMakeFiles/mojoluac.dir/lua/src/ltablib.o: ../lua/src/ltablib.c +CMakeFiles/mojoluac.dir/lua/src/ltablib.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/ltablib.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/ltablib.o: ../lua/src/lualib.h + +CMakeFiles/mojoluac.dir/lua/src/ltm.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/ltm.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/ltm.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/ltm.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/ltm.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/ltm.o: ../lua/src/lstring.h +CMakeFiles/mojoluac.dir/lua/src/ltm.o: ../lua/src/ltable.h +CMakeFiles/mojoluac.dir/lua/src/ltm.o: ../lua/src/ltm.c +CMakeFiles/mojoluac.dir/lua/src/ltm.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/ltm.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/ltm.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/ltm.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/lauxlib.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/lfunc.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/lopcodes.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/lstring.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/luac.c +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/lundump.h +CMakeFiles/mojoluac.dir/lua/src/luac.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/ldebug.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/lfunc.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/lstring.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/lundump.c +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/lundump.h +CMakeFiles/mojoluac.dir/lua/src/lundump.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/ldebug.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/ldo.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/lfunc.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/lgc.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/lopcodes.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/lstring.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/ltable.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/lvm.c +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/lvm.h +CMakeFiles/mojoluac.dir/lua/src/lvm.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/lzio.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/lzio.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/lzio.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/lzio.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/lzio.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/lzio.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/lzio.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/lzio.o: ../lua/src/lzio.c +CMakeFiles/mojoluac.dir/lua/src/lzio.o: ../lua/src/lzio.h + +CMakeFiles/mojoluac.dir/lua/src/print.o: ../lua/src/ldebug.h +CMakeFiles/mojoluac.dir/lua/src/print.o: ../lua/src/llimits.h +CMakeFiles/mojoluac.dir/lua/src/print.o: ../lua/src/lmem.h +CMakeFiles/mojoluac.dir/lua/src/print.o: ../lua/src/lobject.h +CMakeFiles/mojoluac.dir/lua/src/print.o: ../lua/src/lopcodes.h +CMakeFiles/mojoluac.dir/lua/src/print.o: ../lua/src/lstate.h +CMakeFiles/mojoluac.dir/lua/src/print.o: ../lua/src/ltm.h +CMakeFiles/mojoluac.dir/lua/src/print.o: ../lua/src/lua.h +CMakeFiles/mojoluac.dir/lua/src/print.o: ../lua/src/luaconf.h +CMakeFiles/mojoluac.dir/lua/src/print.o: ../lua/src/lundump.h +CMakeFiles/mojoluac.dir/lua/src/print.o: ../lua/src/lzio.h +CMakeFiles/mojoluac.dir/lua/src/print.o: ../lua/src/print.c + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/flags.make b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/flags.make new file mode 100644 index 00000000..af60b456 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/flags.make @@ -0,0 +1,8 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +# compile C with /usr/bin/gcc +C_FLAGS = -I/home/softcoder/Code/mojosetup/. -I/home/softcoder/Code/mojosetup/lua/src -DAPPREV="hg-767:48f7a9461c37" -pipe -Wall -Werror -fsigned-char -fvisibility=hidden -fno-stack-protector -DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 + +C_DEFINES = -D__MOJOSETUP__=1 -DAPPID=mojosetup -D_REENTRANT -D_THREAD_SAFE -DPLATFORM_UNIX=1 -DLUA_USE_MKSTEMP=1 -DLUA_USE_ULONGJMP=1 -DPLATFORM_LITTLEENDIAN=1 -DSUPPORT_LUALIB_IO=1 -DSUPPORT_LUALIB_OS=1 -DSUPPORT_LUALIB_MATH=1 -DSUPPORT_LUALIB_DB=1 -DSUPPORT_LUALIB_PACKAGE=1 -DSUPPORT_CRC32=1 -DSUPPORT_MD5=1 -DSUPPORT_SHA1=1 -DSUPPORT_GUI_STDIO=1 -DGUI_STATIC_LINK_STDIO=1 -DSUPPORT_GUI_GTKPLUS2=1 -DSUPPORT_ZIP=1 -DSUPPORT_TAR=1 -DSUPPORT_GZIP=1 -DSUPPORT_BZIP2=1 -DBZ_NO_STDIO=1 -DSUPPORT_JPG=1 -DSUPPORT_PNG=1 -DSUPPORT_STBIMAGE=1 -DSUPPORT_URL_HTTP=1 -DSUPPORT_URL_FTP=1 -DMOJOSETUP_HAVE_MNTENT_H=1 + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/link.txt b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/link.txt new file mode 100644 index 00000000..724565fb --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/gcc CMakeFiles/mojoluac.dir/lua/src/lapi.o CMakeFiles/mojoluac.dir/lua/src/ldebug.o CMakeFiles/mojoluac.dir/lua/src/ldo.o CMakeFiles/mojoluac.dir/lua/src/ldump.o CMakeFiles/mojoluac.dir/lua/src/lfunc.o CMakeFiles/mojoluac.dir/lua/src/lgc.o CMakeFiles/mojoluac.dir/lua/src/lmem.o CMakeFiles/mojoluac.dir/lua/src/lobject.o CMakeFiles/mojoluac.dir/lua/src/lopcodes.o CMakeFiles/mojoluac.dir/lua/src/lstate.o CMakeFiles/mojoluac.dir/lua/src/lstring.o CMakeFiles/mojoluac.dir/lua/src/ltable.o CMakeFiles/mojoluac.dir/lua/src/ltm.o CMakeFiles/mojoluac.dir/lua/src/lundump.o CMakeFiles/mojoluac.dir/lua/src/lvm.o CMakeFiles/mojoluac.dir/lua/src/lzio.o CMakeFiles/mojoluac.dir/lua/src/lauxlib.o CMakeFiles/mojoluac.dir/lua/src/lbaselib.o CMakeFiles/mojoluac.dir/lua/src/lstrlib.o CMakeFiles/mojoluac.dir/lua/src/ltablib.o CMakeFiles/mojoluac.dir/lua/src/lparser.o CMakeFiles/mojoluac.dir/lua/src/llex.o CMakeFiles/mojoluac.dir/lua/src/lcode.o CMakeFiles/mojoluac.dir/lua/src/luac.o CMakeFiles/mojoluac.dir/lua/src/print.o CMakeFiles/mojoluac.dir/lua/src/linit.o CMakeFiles/mojoluac.dir/lua/src/ldblib.o CMakeFiles/mojoluac.dir/lua/src/liolib.o CMakeFiles/mojoluac.dir/lua/src/lmathlib.o CMakeFiles/mojoluac.dir/lua/src/loslib.o CMakeFiles/mojoluac.dir/lua/src/loadlib.o -o mojoluac -lpthread -lz -lbz2 -ldl -lm diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/progress.make b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/progress.make new file mode 100644 index 00000000..117b06c8 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojoluac.dir/progress.make @@ -0,0 +1,32 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_3 = 3 +CMAKE_PROGRESS_4 = 4 +CMAKE_PROGRESS_5 = 5 +CMAKE_PROGRESS_6 = 6 +CMAKE_PROGRESS_7 = 7 +CMAKE_PROGRESS_8 = 8 +CMAKE_PROGRESS_9 = 9 +CMAKE_PROGRESS_10 = 10 +CMAKE_PROGRESS_11 = 11 +CMAKE_PROGRESS_12 = 12 +CMAKE_PROGRESS_13 = 13 +CMAKE_PROGRESS_14 = 14 +CMAKE_PROGRESS_15 = 15 +CMAKE_PROGRESS_16 = 16 +CMAKE_PROGRESS_17 = 17 +CMAKE_PROGRESS_18 = 18 +CMAKE_PROGRESS_19 = 19 +CMAKE_PROGRESS_20 = 20 +CMAKE_PROGRESS_21 = 21 +CMAKE_PROGRESS_22 = 22 +CMAKE_PROGRESS_23 = 23 +CMAKE_PROGRESS_24 = 24 +CMAKE_PROGRESS_25 = 25 +CMAKE_PROGRESS_26 = 26 +CMAKE_PROGRESS_27 = 27 +CMAKE_PROGRESS_28 = 28 +CMAKE_PROGRESS_29 = 29 +CMAKE_PROGRESS_30 = 30 +CMAKE_PROGRESS_31 = 31 + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/C.includecache b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/C.includecache new file mode 100644 index 00000000..354065ae --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/C.includecache @@ -0,0 +1,1230 @@ +#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +../lua/src/lauxlib.h +stddef.h +- +stdio.h +- +lua.h +../lua/src/lua.h + +../lua/src/lua.h +stdarg.h +- +stddef.h +- +luaconf.h +../lua/src/luaconf.h + +../lua/src/luaconf.h +limits.h +- +stddef.h +- +unistd.h +- +io.h +- +stdio.h +- +stdio.h +- +readline/readline.h +- +readline/history.h +- +assert.h +- +math.h +- +unistd.h +- + +../lua/src/lualib.h +lua.h +../lua/src/lua.h + +/home/softcoder/Code/mojosetup/archive_pck.c +fileio.h +/home/softcoder/Code/mojosetup/fileio.h +platform.h +/home/softcoder/Code/mojosetup/platform.h + +/home/softcoder/Code/mojosetup/archive_tar.c +fileio.h +/home/softcoder/Code/mojosetup/fileio.h + +/home/softcoder/Code/mojosetup/archive_uz2.c +fileio.h +/home/softcoder/Code/mojosetup/fileio.h +platform.h +/home/softcoder/Code/mojosetup/platform.h +zlib/zlib.h +/home/softcoder/Code/mojosetup/zlib/zlib.h + +/home/softcoder/Code/mojosetup/archive_zip.c +fileio.h +/home/softcoder/Code/mojosetup/fileio.h +time.h +- +errno.h +- +zlib/zlib.h +/home/softcoder/Code/mojosetup/zlib/zlib.h + +/home/softcoder/Code/mojosetup/buildver.c + +/home/softcoder/Code/mojosetup/bzip2/bzlib.h +stdio.h +- +windows.h +- + +/home/softcoder/Code/mojosetup/checksum_crc32.c +universal.h +/home/softcoder/Code/mojosetup/universal.h + +/home/softcoder/Code/mojosetup/checksum_md5.c +universal.h +/home/softcoder/Code/mojosetup/universal.h + +/home/softcoder/Code/mojosetup/checksum_sha1.c +universal.h +/home/softcoder/Code/mojosetup/universal.h + +/home/softcoder/Code/mojosetup/fileio.c +fileio.h +/home/softcoder/Code/mojosetup/fileio.h +platform.h +/home/softcoder/Code/mojosetup/platform.h +zlib/zlib.h +/home/softcoder/Code/mojosetup/zlib/zlib.h +bzip2/bzlib.h +/home/softcoder/Code/mojosetup/bzip2/bzlib.h + +/home/softcoder/Code/mojosetup/fileio.h +universal.h +/home/softcoder/Code/mojosetup/universal.h + +/home/softcoder/Code/mojosetup/gui.c +gui.h +/home/softcoder/Code/mojosetup/gui.h +platform.h +/home/softcoder/Code/mojosetup/platform.h +fileio.h +/home/softcoder/Code/mojosetup/fileio.h + +/home/softcoder/Code/mojosetup/gui.h +universal.h +/home/softcoder/Code/mojosetup/universal.h + +/home/softcoder/Code/mojosetup/gui_stdio.c +gui.h +/home/softcoder/Code/mojosetup/gui.h +ctype.h +- + +/home/softcoder/Code/mojosetup/libfetch/../fileio.h +universal.h +/home/softcoder/Code/mojosetup/libfetch/../universal.h + +/home/softcoder/Code/mojosetup/libfetch/../platform.h +universal.h +/home/softcoder/Code/mojosetup/libfetch/../universal.h + +/home/softcoder/Code/mojosetup/libfetch/../universal.h +stdio.h +- +stdlib.h +- +string.h +- +assert.h +- +time.h +- +malloc.h +- + +/home/softcoder/Code/mojosetup/libfetch/common.c +mojosetup_libfetch.h +/home/softcoder/Code/mojosetup/libfetch/mojosetup_libfetch.h +pthread.h +- +sys/cdefs.h +- +sys/param.h +- +sys/socket.h +- +sys/time.h +- +sys/uio.h +- +netinet/in.h +- +errno.h +- +netdb.h +- +pwd.h +- +stdarg.h +- +stdlib.h +- +stdio.h +- +string.h +- +unistd.h +- +fetch.h +/home/softcoder/Code/mojosetup/libfetch/fetch.h +common.h +/home/softcoder/Code/mojosetup/libfetch/common.h + +/home/softcoder/Code/mojosetup/libfetch/common.h +openssl/crypto.h +- +openssl/x509.h +- +openssl/pem.h +- +openssl/ssl.h +- +openssl/err.h +- + +/home/softcoder/Code/mojosetup/libfetch/fetch.c +mojosetup_libfetch.h +/home/softcoder/Code/mojosetup/libfetch/mojosetup_libfetch.h +sys/cdefs.h +- +sys/param.h +- +sys/errno.h +- +ctype.h +- +stdio.h +- +stdlib.h +- +string.h +- +fetch.h +/home/softcoder/Code/mojosetup/libfetch/fetch.h +common.h +/home/softcoder/Code/mojosetup/libfetch/common.h + +/home/softcoder/Code/mojosetup/libfetch/fetch.h + +/home/softcoder/Code/mojosetup/libfetch/ftp.c +mojosetup_libfetch.h +/home/softcoder/Code/mojosetup/libfetch/mojosetup_libfetch.h +sys/cdefs.h +- +sys/param.h +- +sys/socket.h +- +netinet/in.h +- +ctype.h +- +err.h +- +errno.h +- +fcntl.h +- +netdb.h +- +stdarg.h +- +stdint.h +- +stdio.h +- +stdlib.h +- +string.h +- +time.h +- +unistd.h +- +fetch.h +/home/softcoder/Code/mojosetup/libfetch/fetch.h +common.h +/home/softcoder/Code/mojosetup/libfetch/common.h +ftperr.h +/home/softcoder/Code/mojosetup/libfetch/ftperr.h + +/home/softcoder/Code/mojosetup/libfetch/ftperr.h + +/home/softcoder/Code/mojosetup/libfetch/http.c +mojosetup_libfetch.h +/home/softcoder/Code/mojosetup/libfetch/mojosetup_libfetch.h +sys/cdefs.h +- +sys/param.h +- +sys/socket.h +- +ctype.h +- +err.h +- +errno.h +- +locale.h +- +netdb.h +- +stdarg.h +- +stdio.h +- +stdlib.h +- +string.h +- +time.h +- +unistd.h +- +netinet/in.h +- +netinet/tcp.h +- +fetch.h +/home/softcoder/Code/mojosetup/libfetch/fetch.h +common.h +/home/softcoder/Code/mojosetup/libfetch/common.h +httperr.h +/home/softcoder/Code/mojosetup/libfetch/httperr.h + +/home/softcoder/Code/mojosetup/libfetch/httperr.h + +/home/softcoder/Code/mojosetup/libfetch/mojosetup_libfetch.h +../universal.h +/home/softcoder/Code/mojosetup/libfetch/../universal.h +../platform.h +/home/softcoder/Code/mojosetup/libfetch/../platform.h +../fileio.h +/home/softcoder/Code/mojosetup/libfetch/../fileio.h +stdarg.h +- +stdint.h +- +time.h +- +limits.h +- + +/home/softcoder/Code/mojosetup/lua/src/lapi.c +assert.h +- +math.h +- +stdarg.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lapi.h +/home/softcoder/Code/mojosetup/lua/src/lapi.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h +lundump.h +/home/softcoder/Code/mojosetup/lua/src/lundump.h +lvm.h +/home/softcoder/Code/mojosetup/lua/src/lvm.h + +/home/softcoder/Code/mojosetup/lua/src/lapi.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h + +/home/softcoder/Code/mojosetup/lua/src/lauxlib.c +ctype.h +- +errno.h +- +stdarg.h +- +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h + +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +stddef.h +- +stdio.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h + +/home/softcoder/Code/mojosetup/lua/src/lbaselib.c +ctype.h +- +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/lcode.c +stdlib.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lcode.h +/home/softcoder/Code/mojosetup/lua/src/lcode.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +llex.h +/home/softcoder/Code/mojosetup/lua/src/llex.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lparser.h +/home/softcoder/Code/mojosetup/lua/src/lparser.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h + +/home/softcoder/Code/mojosetup/lua/src/lcode.h +llex.h +/home/softcoder/Code/mojosetup/lua/src/llex.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lparser.h +/home/softcoder/Code/mojosetup/lua/src/lparser.h + +/home/softcoder/Code/mojosetup/lua/src/ldblib.c +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/ldebug.c +stdarg.h +- +stddef.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lapi.h +/home/softcoder/Code/mojosetup/lua/src/lapi.h +lcode.h +/home/softcoder/Code/mojosetup/lua/src/lcode.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h +lvm.h +/home/softcoder/Code/mojosetup/lua/src/lvm.h + +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h + +/home/softcoder/Code/mojosetup/lua/src/ldo.c +setjmp.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lparser.h +/home/softcoder/Code/mojosetup/lua/src/lparser.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h +lundump.h +/home/softcoder/Code/mojosetup/lua/src/lundump.h +lvm.h +/home/softcoder/Code/mojosetup/lua/src/lvm.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/ldump.c +stddef.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lundump.h +/home/softcoder/Code/mojosetup/lua/src/lundump.h + +/home/softcoder/Code/mojosetup/lua/src/lfunc.c +stddef.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h + +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h + +/home/softcoder/Code/mojosetup/lua/src/lgc.c +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h + +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h + +/home/softcoder/Code/mojosetup/lua/src/liolib.c +errno.h +- +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/llex.c +ctype.h +- +locale.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +llex.h +/home/softcoder/Code/mojosetup/lua/src/llex.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lparser.h +/home/softcoder/Code/mojosetup/lua/src/lparser.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/llex.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/llimits.h +limits.h +- +stddef.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h + +/home/softcoder/Code/mojosetup/lua/src/lmathlib.c +stdlib.h +- +math.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/lmem.c +stddef.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h + +/home/softcoder/Code/mojosetup/lua/src/lmem.h +stddef.h +- +llimits.h +/home/softcoder/Code/mojosetup/lua/src/llimits.h +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h + +/home/softcoder/Code/mojosetup/lua/src/loadlib.c +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h +dlfcn.h +- +windows.h +- +mach-o/dyld.h +- + +/home/softcoder/Code/mojosetup/lua/src/lobject.c +ctype.h +- +stdarg.h +- +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +lvm.h +/home/softcoder/Code/mojosetup/lua/src/lvm.h + +/home/softcoder/Code/mojosetup/lua/src/lobject.h +stdarg.h +- +llimits.h +/home/softcoder/Code/mojosetup/lua/src/llimits.h +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h + +/home/softcoder/Code/mojosetup/lua/src/lopcodes.c +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h + +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +llimits.h +/home/softcoder/Code/mojosetup/lua/src/llimits.h + +/home/softcoder/Code/mojosetup/lua/src/loslib.c +errno.h +- +locale.h +- +stdlib.h +- +string.h +- +time.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/lparser.c +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lcode.h +/home/softcoder/Code/mojosetup/lua/src/lcode.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +llex.h +/home/softcoder/Code/mojosetup/lua/src/llex.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lparser.h +/home/softcoder/Code/mojosetup/lua/src/lparser.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h + +/home/softcoder/Code/mojosetup/lua/src/lparser.h +llimits.h +/home/softcoder/Code/mojosetup/lua/src/llimits.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/lstate.c +stddef.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +llex.h +/home/softcoder/Code/mojosetup/lua/src/llex.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h + +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/lstring.c +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h + +/home/softcoder/Code/mojosetup/lua/src/lstring.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h + +/home/softcoder/Code/mojosetup/lua/src/lstrlib.c +ctype.h +- +stddef.h +- +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/ltable.c +math.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h + +/home/softcoder/Code/mojosetup/lua/src/ltable.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h + +/home/softcoder/Code/mojosetup/lua/src/ltablib.c +stddef.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lua/src/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lua/src/lualib.h + +/home/softcoder/Code/mojosetup/lua/src/ltm.c +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h + +/home/softcoder/Code/mojosetup/lua/src/ltm.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h + +/home/softcoder/Code/mojosetup/lua/src/lua.h +stdarg.h +- +stddef.h +- +luaconf.h +/home/softcoder/Code/mojosetup/lua/src/luaconf.h + +/home/softcoder/Code/mojosetup/lua/src/luaconf.h +limits.h +- +stddef.h +- +unistd.h +- +io.h +- +stdio.h +- +stdio.h +- +readline/readline.h +- +readline/history.h +- +assert.h +- +math.h +- +unistd.h +- + +/home/softcoder/Code/mojosetup/lua/src/lualib.h +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h + +/home/softcoder/Code/mojosetup/lua/src/lundump.c +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +lundump.h +/home/softcoder/Code/mojosetup/lua/src/lundump.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/lundump.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/lvm.c +stdio.h +- +stdlib.h +- +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +ldebug.h +/home/softcoder/Code/mojosetup/lua/src/ldebug.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lfunc.h +/home/softcoder/Code/mojosetup/lua/src/lfunc.h +lgc.h +/home/softcoder/Code/mojosetup/lua/src/lgc.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +lopcodes.h +/home/softcoder/Code/mojosetup/lua/src/lopcodes.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lstring.h +/home/softcoder/Code/mojosetup/lua/src/lstring.h +ltable.h +/home/softcoder/Code/mojosetup/lua/src/ltable.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h +lvm.h +/home/softcoder/Code/mojosetup/lua/src/lvm.h + +/home/softcoder/Code/mojosetup/lua/src/lvm.h +ldo.h +/home/softcoder/Code/mojosetup/lua/src/ldo.h +lobject.h +/home/softcoder/Code/mojosetup/lua/src/lobject.h +ltm.h +/home/softcoder/Code/mojosetup/lua/src/ltm.h + +/home/softcoder/Code/mojosetup/lua/src/lzio.c +string.h +- +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +llimits.h +/home/softcoder/Code/mojosetup/lua/src/llimits.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h +lstate.h +/home/softcoder/Code/mojosetup/lua/src/lstate.h +lzio.h +/home/softcoder/Code/mojosetup/lua/src/lzio.h + +/home/softcoder/Code/mojosetup/lua/src/lzio.h +lua.h +/home/softcoder/Code/mojosetup/lua/src/lua.h +lmem.h +/home/softcoder/Code/mojosetup/lua/src/lmem.h + +/home/softcoder/Code/mojosetup/lua_glue.c +universal.h +/home/softcoder/Code/mojosetup/universal.h +lua_glue.h +/home/softcoder/Code/mojosetup/lua_glue.h +platform.h +/home/softcoder/Code/mojosetup/platform.h +fileio.h +/home/softcoder/Code/mojosetup/fileio.h +lua.h +/home/softcoder/Code/mojosetup/lua.h +lauxlib.h +/home/softcoder/Code/mojosetup/lauxlib.h +lualib.h +/home/softcoder/Code/mojosetup/lualib.h +gui.h +/home/softcoder/Code/mojosetup/gui.h + +/home/softcoder/Code/mojosetup/lua_glue.h +universal.h +/home/softcoder/Code/mojosetup/universal.h + +/home/softcoder/Code/mojosetup/mojosetup.c +stdarg.h +- +universal.h +/home/softcoder/Code/mojosetup/universal.h +platform.h +/home/softcoder/Code/mojosetup/platform.h +gui.h +/home/softcoder/Code/mojosetup/gui.h +lua_glue.h +/home/softcoder/Code/mojosetup/lua_glue.h +fileio.h +/home/softcoder/Code/mojosetup/fileio.h + +/home/softcoder/Code/mojosetup/platform.h +universal.h +/home/softcoder/Code/mojosetup/universal.h + +/home/softcoder/Code/mojosetup/platform_unix.c +Carbon/Carbon.h +- +sys/time.h +- +sys/types.h +- +sys/stat.h +- +sys/param.h +- +sys/utsname.h +- +sys/mount.h +- +stdio.h +- +time.h +- +unistd.h +- +signal.h +- +syslog.h +- +dirent.h +- +fcntl.h +- +sys/wait.h +- +limits.h +- +sys/ucred.h +- +mntent.h +- +sys/mnttab.h +- +dlfcn.h +- +platform.h +/home/softcoder/Code/mojosetup/platform.h +gui.h +/home/softcoder/Code/mojosetup/gui.h +fileio.h +/home/softcoder/Code/mojosetup/fileio.h + +/home/softcoder/Code/mojosetup/platform_windows.c +platform.h +/home/softcoder/Code/mojosetup/platform.h +gui.h +/home/softcoder/Code/mojosetup/gui.h +windows.h +- +shellapi.h +- +io.h +- +fcntl.h +- + +/home/softcoder/Code/mojosetup/stb_image.c +universal.h +/home/softcoder/Code/mojosetup/universal.h +stdio.h +- +math.h +- +string.h +- +stdio.h +- +stdlib.h +- +memory.h +- +assert.h +- +stdarg.h +- + +/home/softcoder/Code/mojosetup/universal.h +stdio.h +- +stdlib.h +- +string.h +- +assert.h +- +time.h +- +malloc.h +- + +/home/softcoder/Code/mojosetup/zlib/zconf.h +windows.h +- +sys/types.h +- +unistd.h +- +unixio.h +- +sys/types.h +- + +/home/softcoder/Code/mojosetup/zlib/zlib.h +zconf.h +/home/softcoder/Code/mojosetup/zlib/zconf.h + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/DependInfo.cmake b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/DependInfo.cmake new file mode 100644 index 00000000..bab91290 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/DependInfo.cmake @@ -0,0 +1,94 @@ +# The set of languages for which implicit dependencies are needed: +SET(CMAKE_DEPENDS_LANGUAGES + "C" + ) +# The set of files for implicit dependencies of each language: +SET(CMAKE_DEPENDS_CHECK_C + "/home/softcoder/Code/mojosetup/archive_pck.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/archive_pck.o" + "/home/softcoder/Code/mojosetup/archive_tar.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/archive_tar.o" + "/home/softcoder/Code/mojosetup/archive_uz2.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/archive_uz2.o" + "/home/softcoder/Code/mojosetup/archive_zip.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/archive_zip.o" + "/home/softcoder/Code/mojosetup/buildver.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/buildver.o" + "/home/softcoder/Code/mojosetup/checksum_crc32.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/checksum_crc32.o" + "/home/softcoder/Code/mojosetup/checksum_md5.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/checksum_md5.o" + "/home/softcoder/Code/mojosetup/checksum_sha1.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/checksum_sha1.o" + "/home/softcoder/Code/mojosetup/fileio.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/fileio.o" + "/home/softcoder/Code/mojosetup/gui.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/gui.o" + "/home/softcoder/Code/mojosetup/gui_stdio.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/gui_stdio.o" + "/home/softcoder/Code/mojosetup/libfetch/common.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/libfetch/common.o" + "/home/softcoder/Code/mojosetup/libfetch/fetch.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/libfetch/fetch.o" + "/home/softcoder/Code/mojosetup/libfetch/ftp.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/libfetch/ftp.o" + "/home/softcoder/Code/mojosetup/libfetch/http.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/libfetch/http.o" + "/home/softcoder/Code/mojosetup/lua/src/lapi.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lapi.o" + "/home/softcoder/Code/mojosetup/lua/src/lauxlib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lauxlib.o" + "/home/softcoder/Code/mojosetup/lua/src/lbaselib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lbaselib.o" + "/home/softcoder/Code/mojosetup/lua/src/lcode.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lcode.o" + "/home/softcoder/Code/mojosetup/lua/src/ldblib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/ldblib.o" + "/home/softcoder/Code/mojosetup/lua/src/ldebug.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/ldebug.o" + "/home/softcoder/Code/mojosetup/lua/src/ldo.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/ldo.o" + "/home/softcoder/Code/mojosetup/lua/src/ldump.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/ldump.o" + "/home/softcoder/Code/mojosetup/lua/src/lfunc.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lfunc.o" + "/home/softcoder/Code/mojosetup/lua/src/lgc.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lgc.o" + "/home/softcoder/Code/mojosetup/lua/src/liolib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/liolib.o" + "/home/softcoder/Code/mojosetup/lua/src/llex.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/llex.o" + "/home/softcoder/Code/mojosetup/lua/src/lmathlib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lmathlib.o" + "/home/softcoder/Code/mojosetup/lua/src/lmem.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lmem.o" + "/home/softcoder/Code/mojosetup/lua/src/loadlib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/loadlib.o" + "/home/softcoder/Code/mojosetup/lua/src/lobject.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lobject.o" + "/home/softcoder/Code/mojosetup/lua/src/lopcodes.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lopcodes.o" + "/home/softcoder/Code/mojosetup/lua/src/loslib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/loslib.o" + "/home/softcoder/Code/mojosetup/lua/src/lparser.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lparser.o" + "/home/softcoder/Code/mojosetup/lua/src/lstate.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lstate.o" + "/home/softcoder/Code/mojosetup/lua/src/lstring.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lstring.o" + "/home/softcoder/Code/mojosetup/lua/src/lstrlib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lstrlib.o" + "/home/softcoder/Code/mojosetup/lua/src/ltable.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/ltable.o" + "/home/softcoder/Code/mojosetup/lua/src/ltablib.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/ltablib.o" + "/home/softcoder/Code/mojosetup/lua/src/ltm.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/ltm.o" + "/home/softcoder/Code/mojosetup/lua/src/lundump.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lundump.o" + "/home/softcoder/Code/mojosetup/lua/src/lvm.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lvm.o" + "/home/softcoder/Code/mojosetup/lua/src/lzio.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua/src/lzio.o" + "/home/softcoder/Code/mojosetup/lua_glue.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/lua_glue.o" + "/home/softcoder/Code/mojosetup/mojosetup.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/mojosetup.o" + "/home/softcoder/Code/mojosetup/platform_unix.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/platform_unix.o" + "/home/softcoder/Code/mojosetup/platform_windows.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/platform_windows.o" + "/home/softcoder/Code/mojosetup/stb_image.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/stb_image.o" + ) +SET(CMAKE_C_COMPILER_ID "GNU") + +# Preprocessor definitions for this target. +SET(CMAKE_TARGET_DEFINITIONS + "__MOJOSETUP__=1" + "APPID=mojosetup" + "_REENTRANT" + "_THREAD_SAFE" + "PLATFORM_UNIX=1" + "LUA_USE_MKSTEMP=1" + "LUA_USE_ULONGJMP=1" + "PLATFORM_LITTLEENDIAN=1" + "SUPPORT_LUALIB_IO=1" + "SUPPORT_LUALIB_OS=1" + "SUPPORT_LUALIB_MATH=1" + "SUPPORT_LUALIB_DB=1" + "SUPPORT_LUALIB_PACKAGE=1" + "SUPPORT_CRC32=1" + "SUPPORT_MD5=1" + "SUPPORT_SHA1=1" + "SUPPORT_GUI_STDIO=1" + "GUI_STATIC_LINK_STDIO=1" + "SUPPORT_GUI_GTKPLUS2=1" + "SUPPORT_ZIP=1" + "SUPPORT_TAR=1" + "SUPPORT_GZIP=1" + "SUPPORT_BZIP2=1" + "BZ_NO_STDIO=1" + "SUPPORT_JPG=1" + "SUPPORT_PNG=1" + "SUPPORT_STBIMAGE=1" + "SUPPORT_URL_HTTP=1" + "SUPPORT_URL_FTP=1" + "MOJOSETUP_HAVE_MNTENT_H=1" + ) + +# Targets to which this target links. +SET(CMAKE_TARGET_LINKED_INFO_FILES + ) diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/build.make b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/build.make new file mode 100644 index 00000000..6559a1f0 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/build.make @@ -0,0 +1,1369 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canoncical targets will work. +.SUFFIXES: + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/softcoder/Code/mojosetup + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/softcoder/Code/mojosetup/build + +# Include any dependencies generated for this target. +include CMakeFiles/mojosetup.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/mojosetup.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/mojosetup.dir/flags.make + +CMakeFiles/mojosetup.dir/buildver.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/buildver.o: ../buildver.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_1) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/buildver.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/buildver.o -c /home/softcoder/Code/mojosetup/buildver.c + +CMakeFiles/mojosetup.dir/buildver.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/buildver.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/buildver.c > CMakeFiles/mojosetup.dir/buildver.i + +CMakeFiles/mojosetup.dir/buildver.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/buildver.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/buildver.c -o CMakeFiles/mojosetup.dir/buildver.s + +CMakeFiles/mojosetup.dir/buildver.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/buildver.o.requires + +CMakeFiles/mojosetup.dir/buildver.o.provides: CMakeFiles/mojosetup.dir/buildver.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/buildver.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/buildver.o.provides + +CMakeFiles/mojosetup.dir/buildver.o.provides.build: CMakeFiles/mojosetup.dir/buildver.o +.PHONY : CMakeFiles/mojosetup.dir/buildver.o.provides.build + +CMakeFiles/mojosetup.dir/mojosetup.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/mojosetup.o: ../mojosetup.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_2) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/mojosetup.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/mojosetup.o -c /home/softcoder/Code/mojosetup/mojosetup.c + +CMakeFiles/mojosetup.dir/mojosetup.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/mojosetup.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/mojosetup.c > CMakeFiles/mojosetup.dir/mojosetup.i + +CMakeFiles/mojosetup.dir/mojosetup.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/mojosetup.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/mojosetup.c -o CMakeFiles/mojosetup.dir/mojosetup.s + +CMakeFiles/mojosetup.dir/mojosetup.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/mojosetup.o.requires + +CMakeFiles/mojosetup.dir/mojosetup.o.provides: CMakeFiles/mojosetup.dir/mojosetup.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/mojosetup.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/mojosetup.o.provides + +CMakeFiles/mojosetup.dir/mojosetup.o.provides.build: CMakeFiles/mojosetup.dir/mojosetup.o +.PHONY : CMakeFiles/mojosetup.dir/mojosetup.o.provides.build + +CMakeFiles/mojosetup.dir/gui.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/gui.o: ../gui.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_3) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/gui.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/gui.o -c /home/softcoder/Code/mojosetup/gui.c + +CMakeFiles/mojosetup.dir/gui.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/gui.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/gui.c > CMakeFiles/mojosetup.dir/gui.i + +CMakeFiles/mojosetup.dir/gui.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/gui.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/gui.c -o CMakeFiles/mojosetup.dir/gui.s + +CMakeFiles/mojosetup.dir/gui.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/gui.o.requires + +CMakeFiles/mojosetup.dir/gui.o.provides: CMakeFiles/mojosetup.dir/gui.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/gui.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/gui.o.provides + +CMakeFiles/mojosetup.dir/gui.o.provides.build: CMakeFiles/mojosetup.dir/gui.o +.PHONY : CMakeFiles/mojosetup.dir/gui.o.provides.build + +CMakeFiles/mojosetup.dir/fileio.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/fileio.o: ../fileio.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_4) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/fileio.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/fileio.o -c /home/softcoder/Code/mojosetup/fileio.c + +CMakeFiles/mojosetup.dir/fileio.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/fileio.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/fileio.c > CMakeFiles/mojosetup.dir/fileio.i + +CMakeFiles/mojosetup.dir/fileio.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/fileio.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/fileio.c -o CMakeFiles/mojosetup.dir/fileio.s + +CMakeFiles/mojosetup.dir/fileio.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/fileio.o.requires + +CMakeFiles/mojosetup.dir/fileio.o.provides: CMakeFiles/mojosetup.dir/fileio.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/fileio.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/fileio.o.provides + +CMakeFiles/mojosetup.dir/fileio.o.provides.build: CMakeFiles/mojosetup.dir/fileio.o +.PHONY : CMakeFiles/mojosetup.dir/fileio.o.provides.build + +CMakeFiles/mojosetup.dir/archive_zip.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/archive_zip.o: ../archive_zip.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_5) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/archive_zip.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/archive_zip.o -c /home/softcoder/Code/mojosetup/archive_zip.c + +CMakeFiles/mojosetup.dir/archive_zip.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/archive_zip.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/archive_zip.c > CMakeFiles/mojosetup.dir/archive_zip.i + +CMakeFiles/mojosetup.dir/archive_zip.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/archive_zip.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/archive_zip.c -o CMakeFiles/mojosetup.dir/archive_zip.s + +CMakeFiles/mojosetup.dir/archive_zip.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/archive_zip.o.requires + +CMakeFiles/mojosetup.dir/archive_zip.o.provides: CMakeFiles/mojosetup.dir/archive_zip.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_zip.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/archive_zip.o.provides + +CMakeFiles/mojosetup.dir/archive_zip.o.provides.build: CMakeFiles/mojosetup.dir/archive_zip.o +.PHONY : CMakeFiles/mojosetup.dir/archive_zip.o.provides.build + +CMakeFiles/mojosetup.dir/archive_tar.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/archive_tar.o: ../archive_tar.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_6) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/archive_tar.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/archive_tar.o -c /home/softcoder/Code/mojosetup/archive_tar.c + +CMakeFiles/mojosetup.dir/archive_tar.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/archive_tar.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/archive_tar.c > CMakeFiles/mojosetup.dir/archive_tar.i + +CMakeFiles/mojosetup.dir/archive_tar.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/archive_tar.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/archive_tar.c -o CMakeFiles/mojosetup.dir/archive_tar.s + +CMakeFiles/mojosetup.dir/archive_tar.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/archive_tar.o.requires + +CMakeFiles/mojosetup.dir/archive_tar.o.provides: CMakeFiles/mojosetup.dir/archive_tar.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_tar.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/archive_tar.o.provides + +CMakeFiles/mojosetup.dir/archive_tar.o.provides.build: CMakeFiles/mojosetup.dir/archive_tar.o +.PHONY : CMakeFiles/mojosetup.dir/archive_tar.o.provides.build + +CMakeFiles/mojosetup.dir/archive_uz2.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/archive_uz2.o: ../archive_uz2.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_7) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/archive_uz2.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/archive_uz2.o -c /home/softcoder/Code/mojosetup/archive_uz2.c + +CMakeFiles/mojosetup.dir/archive_uz2.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/archive_uz2.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/archive_uz2.c > CMakeFiles/mojosetup.dir/archive_uz2.i + +CMakeFiles/mojosetup.dir/archive_uz2.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/archive_uz2.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/archive_uz2.c -o CMakeFiles/mojosetup.dir/archive_uz2.s + +CMakeFiles/mojosetup.dir/archive_uz2.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/archive_uz2.o.requires + +CMakeFiles/mojosetup.dir/archive_uz2.o.provides: CMakeFiles/mojosetup.dir/archive_uz2.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_uz2.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/archive_uz2.o.provides + +CMakeFiles/mojosetup.dir/archive_uz2.o.provides.build: CMakeFiles/mojosetup.dir/archive_uz2.o +.PHONY : CMakeFiles/mojosetup.dir/archive_uz2.o.provides.build + +CMakeFiles/mojosetup.dir/archive_pck.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/archive_pck.o: ../archive_pck.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_8) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/archive_pck.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/archive_pck.o -c /home/softcoder/Code/mojosetup/archive_pck.c + +CMakeFiles/mojosetup.dir/archive_pck.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/archive_pck.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/archive_pck.c > CMakeFiles/mojosetup.dir/archive_pck.i + +CMakeFiles/mojosetup.dir/archive_pck.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/archive_pck.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/archive_pck.c -o CMakeFiles/mojosetup.dir/archive_pck.s + +CMakeFiles/mojosetup.dir/archive_pck.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/archive_pck.o.requires + +CMakeFiles/mojosetup.dir/archive_pck.o.provides: CMakeFiles/mojosetup.dir/archive_pck.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_pck.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/archive_pck.o.provides + +CMakeFiles/mojosetup.dir/archive_pck.o.provides.build: CMakeFiles/mojosetup.dir/archive_pck.o +.PHONY : CMakeFiles/mojosetup.dir/archive_pck.o.provides.build + +CMakeFiles/mojosetup.dir/checksum_crc32.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/checksum_crc32.o: ../checksum_crc32.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_9) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/checksum_crc32.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/checksum_crc32.o -c /home/softcoder/Code/mojosetup/checksum_crc32.c + +CMakeFiles/mojosetup.dir/checksum_crc32.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/checksum_crc32.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/checksum_crc32.c > CMakeFiles/mojosetup.dir/checksum_crc32.i + +CMakeFiles/mojosetup.dir/checksum_crc32.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/checksum_crc32.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/checksum_crc32.c -o CMakeFiles/mojosetup.dir/checksum_crc32.s + +CMakeFiles/mojosetup.dir/checksum_crc32.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/checksum_crc32.o.requires + +CMakeFiles/mojosetup.dir/checksum_crc32.o.provides: CMakeFiles/mojosetup.dir/checksum_crc32.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/checksum_crc32.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/checksum_crc32.o.provides + +CMakeFiles/mojosetup.dir/checksum_crc32.o.provides.build: CMakeFiles/mojosetup.dir/checksum_crc32.o +.PHONY : CMakeFiles/mojosetup.dir/checksum_crc32.o.provides.build + +CMakeFiles/mojosetup.dir/checksum_md5.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/checksum_md5.o: ../checksum_md5.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_10) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/checksum_md5.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/checksum_md5.o -c /home/softcoder/Code/mojosetup/checksum_md5.c + +CMakeFiles/mojosetup.dir/checksum_md5.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/checksum_md5.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/checksum_md5.c > CMakeFiles/mojosetup.dir/checksum_md5.i + +CMakeFiles/mojosetup.dir/checksum_md5.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/checksum_md5.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/checksum_md5.c -o CMakeFiles/mojosetup.dir/checksum_md5.s + +CMakeFiles/mojosetup.dir/checksum_md5.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/checksum_md5.o.requires + +CMakeFiles/mojosetup.dir/checksum_md5.o.provides: CMakeFiles/mojosetup.dir/checksum_md5.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/checksum_md5.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/checksum_md5.o.provides + +CMakeFiles/mojosetup.dir/checksum_md5.o.provides.build: CMakeFiles/mojosetup.dir/checksum_md5.o +.PHONY : CMakeFiles/mojosetup.dir/checksum_md5.o.provides.build + +CMakeFiles/mojosetup.dir/checksum_sha1.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/checksum_sha1.o: ../checksum_sha1.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_11) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/checksum_sha1.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/checksum_sha1.o -c /home/softcoder/Code/mojosetup/checksum_sha1.c + +CMakeFiles/mojosetup.dir/checksum_sha1.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/checksum_sha1.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/checksum_sha1.c > CMakeFiles/mojosetup.dir/checksum_sha1.i + +CMakeFiles/mojosetup.dir/checksum_sha1.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/checksum_sha1.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/checksum_sha1.c -o CMakeFiles/mojosetup.dir/checksum_sha1.s + +CMakeFiles/mojosetup.dir/checksum_sha1.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/checksum_sha1.o.requires + +CMakeFiles/mojosetup.dir/checksum_sha1.o.provides: CMakeFiles/mojosetup.dir/checksum_sha1.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/checksum_sha1.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/checksum_sha1.o.provides + +CMakeFiles/mojosetup.dir/checksum_sha1.o.provides.build: CMakeFiles/mojosetup.dir/checksum_sha1.o +.PHONY : CMakeFiles/mojosetup.dir/checksum_sha1.o.provides.build + +CMakeFiles/mojosetup.dir/platform_unix.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/platform_unix.o: ../platform_unix.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_12) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/platform_unix.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/platform_unix.o -c /home/softcoder/Code/mojosetup/platform_unix.c + +CMakeFiles/mojosetup.dir/platform_unix.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/platform_unix.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/platform_unix.c > CMakeFiles/mojosetup.dir/platform_unix.i + +CMakeFiles/mojosetup.dir/platform_unix.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/platform_unix.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/platform_unix.c -o CMakeFiles/mojosetup.dir/platform_unix.s + +CMakeFiles/mojosetup.dir/platform_unix.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/platform_unix.o.requires + +CMakeFiles/mojosetup.dir/platform_unix.o.provides: CMakeFiles/mojosetup.dir/platform_unix.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/platform_unix.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/platform_unix.o.provides + +CMakeFiles/mojosetup.dir/platform_unix.o.provides.build: CMakeFiles/mojosetup.dir/platform_unix.o +.PHONY : CMakeFiles/mojosetup.dir/platform_unix.o.provides.build + +CMakeFiles/mojosetup.dir/platform_windows.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/platform_windows.o: ../platform_windows.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_13) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/platform_windows.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/platform_windows.o -c /home/softcoder/Code/mojosetup/platform_windows.c + +CMakeFiles/mojosetup.dir/platform_windows.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/platform_windows.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/platform_windows.c > CMakeFiles/mojosetup.dir/platform_windows.i + +CMakeFiles/mojosetup.dir/platform_windows.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/platform_windows.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/platform_windows.c -o CMakeFiles/mojosetup.dir/platform_windows.s + +CMakeFiles/mojosetup.dir/platform_windows.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/platform_windows.o.requires + +CMakeFiles/mojosetup.dir/platform_windows.o.provides: CMakeFiles/mojosetup.dir/platform_windows.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/platform_windows.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/platform_windows.o.provides + +CMakeFiles/mojosetup.dir/platform_windows.o.provides.build: CMakeFiles/mojosetup.dir/platform_windows.o +.PHONY : CMakeFiles/mojosetup.dir/platform_windows.o.provides.build + +CMakeFiles/mojosetup.dir/lua_glue.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua_glue.o: ../lua_glue.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_14) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua_glue.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua_glue.o -c /home/softcoder/Code/mojosetup/lua_glue.c + +CMakeFiles/mojosetup.dir/lua_glue.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua_glue.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua_glue.c > CMakeFiles/mojosetup.dir/lua_glue.i + +CMakeFiles/mojosetup.dir/lua_glue.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua_glue.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua_glue.c -o CMakeFiles/mojosetup.dir/lua_glue.s + +CMakeFiles/mojosetup.dir/lua_glue.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua_glue.o.requires + +CMakeFiles/mojosetup.dir/lua_glue.o.provides: CMakeFiles/mojosetup.dir/lua_glue.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua_glue.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua_glue.o.provides + +CMakeFiles/mojosetup.dir/lua_glue.o.provides.build: CMakeFiles/mojosetup.dir/lua_glue.o +.PHONY : CMakeFiles/mojosetup.dir/lua_glue.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lapi.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/lapi.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_15) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lapi.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lapi.o -c /home/softcoder/Code/mojosetup/lua/src/lapi.c + +CMakeFiles/mojosetup.dir/lua/src/lapi.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lapi.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lapi.c > CMakeFiles/mojosetup.dir/lua/src/lapi.i + +CMakeFiles/mojosetup.dir/lua/src/lapi.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lapi.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lapi.c -o CMakeFiles/mojosetup.dir/lua/src/lapi.s + +CMakeFiles/mojosetup.dir/lua/src/lapi.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lapi.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lapi.o.provides: CMakeFiles/mojosetup.dir/lua/src/lapi.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lapi.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lapi.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lapi.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lapi.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lapi.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/ldebug.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_16) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/ldebug.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/ldebug.o -c /home/softcoder/Code/mojosetup/lua/src/ldebug.c + +CMakeFiles/mojosetup.dir/lua/src/ldebug.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/ldebug.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ldebug.c > CMakeFiles/mojosetup.dir/lua/src/ldebug.i + +CMakeFiles/mojosetup.dir/lua/src/ldebug.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/ldebug.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ldebug.c -o CMakeFiles/mojosetup.dir/lua/src/ldebug.s + +CMakeFiles/mojosetup.dir/lua/src/ldebug.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ldebug.o.requires + +CMakeFiles/mojosetup.dir/lua/src/ldebug.o.provides: CMakeFiles/mojosetup.dir/lua/src/ldebug.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldebug.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ldebug.o.provides + +CMakeFiles/mojosetup.dir/lua/src/ldebug.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/ldebug.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ldebug.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/ldo.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/ldo.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_17) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/ldo.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/ldo.o -c /home/softcoder/Code/mojosetup/lua/src/ldo.c + +CMakeFiles/mojosetup.dir/lua/src/ldo.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/ldo.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ldo.c > CMakeFiles/mojosetup.dir/lua/src/ldo.i + +CMakeFiles/mojosetup.dir/lua/src/ldo.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/ldo.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ldo.c -o CMakeFiles/mojosetup.dir/lua/src/ldo.s + +CMakeFiles/mojosetup.dir/lua/src/ldo.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ldo.o.requires + +CMakeFiles/mojosetup.dir/lua/src/ldo.o.provides: CMakeFiles/mojosetup.dir/lua/src/ldo.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldo.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ldo.o.provides + +CMakeFiles/mojosetup.dir/lua/src/ldo.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/ldo.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ldo.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/ldump.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/ldump.o: ../lua/src/ldump.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_18) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/ldump.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/ldump.o -c /home/softcoder/Code/mojosetup/lua/src/ldump.c + +CMakeFiles/mojosetup.dir/lua/src/ldump.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/ldump.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ldump.c > CMakeFiles/mojosetup.dir/lua/src/ldump.i + +CMakeFiles/mojosetup.dir/lua/src/ldump.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/ldump.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ldump.c -o CMakeFiles/mojosetup.dir/lua/src/ldump.s + +CMakeFiles/mojosetup.dir/lua/src/ldump.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ldump.o.requires + +CMakeFiles/mojosetup.dir/lua/src/ldump.o.provides: CMakeFiles/mojosetup.dir/lua/src/ldump.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldump.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ldump.o.provides + +CMakeFiles/mojosetup.dir/lua/src/ldump.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/ldump.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ldump.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lfunc.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lfunc.o: ../lua/src/lfunc.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_19) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lfunc.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lfunc.o -c /home/softcoder/Code/mojosetup/lua/src/lfunc.c + +CMakeFiles/mojosetup.dir/lua/src/lfunc.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lfunc.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lfunc.c > CMakeFiles/mojosetup.dir/lua/src/lfunc.i + +CMakeFiles/mojosetup.dir/lua/src/lfunc.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lfunc.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lfunc.c -o CMakeFiles/mojosetup.dir/lua/src/lfunc.s + +CMakeFiles/mojosetup.dir/lua/src/lfunc.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lfunc.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lfunc.o.provides: CMakeFiles/mojosetup.dir/lua/src/lfunc.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lfunc.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lfunc.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lfunc.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lfunc.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lfunc.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lgc.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/lgc.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_20) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lgc.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lgc.o -c /home/softcoder/Code/mojosetup/lua/src/lgc.c + +CMakeFiles/mojosetup.dir/lua/src/lgc.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lgc.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lgc.c > CMakeFiles/mojosetup.dir/lua/src/lgc.i + +CMakeFiles/mojosetup.dir/lua/src/lgc.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lgc.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lgc.c -o CMakeFiles/mojosetup.dir/lua/src/lgc.s + +CMakeFiles/mojosetup.dir/lua/src/lgc.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lgc.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lgc.o.provides: CMakeFiles/mojosetup.dir/lua/src/lgc.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lgc.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lgc.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lgc.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lgc.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lgc.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lmem.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lmem.o: ../lua/src/lmem.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_21) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lmem.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lmem.o -c /home/softcoder/Code/mojosetup/lua/src/lmem.c + +CMakeFiles/mojosetup.dir/lua/src/lmem.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lmem.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lmem.c > CMakeFiles/mojosetup.dir/lua/src/lmem.i + +CMakeFiles/mojosetup.dir/lua/src/lmem.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lmem.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lmem.c -o CMakeFiles/mojosetup.dir/lua/src/lmem.s + +CMakeFiles/mojosetup.dir/lua/src/lmem.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lmem.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lmem.o.provides: CMakeFiles/mojosetup.dir/lua/src/lmem.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lmem.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lmem.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lmem.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lmem.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lmem.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lobject.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/lobject.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_22) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lobject.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lobject.o -c /home/softcoder/Code/mojosetup/lua/src/lobject.c + +CMakeFiles/mojosetup.dir/lua/src/lobject.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lobject.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lobject.c > CMakeFiles/mojosetup.dir/lua/src/lobject.i + +CMakeFiles/mojosetup.dir/lua/src/lobject.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lobject.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lobject.c -o CMakeFiles/mojosetup.dir/lua/src/lobject.s + +CMakeFiles/mojosetup.dir/lua/src/lobject.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lobject.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lobject.o.provides: CMakeFiles/mojosetup.dir/lua/src/lobject.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lobject.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lobject.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lobject.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lobject.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lobject.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lopcodes.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lopcodes.o: ../lua/src/lopcodes.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_23) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lopcodes.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lopcodes.o -c /home/softcoder/Code/mojosetup/lua/src/lopcodes.c + +CMakeFiles/mojosetup.dir/lua/src/lopcodes.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lopcodes.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lopcodes.c > CMakeFiles/mojosetup.dir/lua/src/lopcodes.i + +CMakeFiles/mojosetup.dir/lua/src/lopcodes.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lopcodes.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lopcodes.c -o CMakeFiles/mojosetup.dir/lua/src/lopcodes.s + +CMakeFiles/mojosetup.dir/lua/src/lopcodes.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lopcodes.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lopcodes.o.provides: CMakeFiles/mojosetup.dir/lua/src/lopcodes.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lopcodes.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lopcodes.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lopcodes.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lopcodes.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lopcodes.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lstate.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/lstate.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_24) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lstate.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lstate.o -c /home/softcoder/Code/mojosetup/lua/src/lstate.c + +CMakeFiles/mojosetup.dir/lua/src/lstate.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lstate.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lstate.c > CMakeFiles/mojosetup.dir/lua/src/lstate.i + +CMakeFiles/mojosetup.dir/lua/src/lstate.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lstate.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lstate.c -o CMakeFiles/mojosetup.dir/lua/src/lstate.s + +CMakeFiles/mojosetup.dir/lua/src/lstate.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lstate.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lstate.o.provides: CMakeFiles/mojosetup.dir/lua/src/lstate.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lstate.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lstate.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lstate.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lstate.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lstate.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lstring.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lstring.o: ../lua/src/lstring.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_25) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lstring.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lstring.o -c /home/softcoder/Code/mojosetup/lua/src/lstring.c + +CMakeFiles/mojosetup.dir/lua/src/lstring.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lstring.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lstring.c > CMakeFiles/mojosetup.dir/lua/src/lstring.i + +CMakeFiles/mojosetup.dir/lua/src/lstring.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lstring.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lstring.c -o CMakeFiles/mojosetup.dir/lua/src/lstring.s + +CMakeFiles/mojosetup.dir/lua/src/lstring.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lstring.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lstring.o.provides: CMakeFiles/mojosetup.dir/lua/src/lstring.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lstring.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lstring.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lstring.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lstring.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lstring.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/ltable.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/ltable.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_26) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/ltable.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/ltable.o -c /home/softcoder/Code/mojosetup/lua/src/ltable.c + +CMakeFiles/mojosetup.dir/lua/src/ltable.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/ltable.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ltable.c > CMakeFiles/mojosetup.dir/lua/src/ltable.i + +CMakeFiles/mojosetup.dir/lua/src/ltable.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/ltable.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ltable.c -o CMakeFiles/mojosetup.dir/lua/src/ltable.s + +CMakeFiles/mojosetup.dir/lua/src/ltable.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ltable.o.requires + +CMakeFiles/mojosetup.dir/lua/src/ltable.o.provides: CMakeFiles/mojosetup.dir/lua/src/ltable.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ltable.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ltable.o.provides + +CMakeFiles/mojosetup.dir/lua/src/ltable.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/ltable.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ltable.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/ltm.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/ltm.o: ../lua/src/ltm.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_27) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/ltm.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/ltm.o -c /home/softcoder/Code/mojosetup/lua/src/ltm.c + +CMakeFiles/mojosetup.dir/lua/src/ltm.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/ltm.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ltm.c > CMakeFiles/mojosetup.dir/lua/src/ltm.i + +CMakeFiles/mojosetup.dir/lua/src/ltm.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/ltm.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ltm.c -o CMakeFiles/mojosetup.dir/lua/src/ltm.s + +CMakeFiles/mojosetup.dir/lua/src/ltm.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ltm.o.requires + +CMakeFiles/mojosetup.dir/lua/src/ltm.o.provides: CMakeFiles/mojosetup.dir/lua/src/ltm.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ltm.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ltm.o.provides + +CMakeFiles/mojosetup.dir/lua/src/ltm.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/ltm.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ltm.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lundump.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/lundump.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_28) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lundump.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lundump.o -c /home/softcoder/Code/mojosetup/lua/src/lundump.c + +CMakeFiles/mojosetup.dir/lua/src/lundump.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lundump.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lundump.c > CMakeFiles/mojosetup.dir/lua/src/lundump.i + +CMakeFiles/mojosetup.dir/lua/src/lundump.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lundump.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lundump.c -o CMakeFiles/mojosetup.dir/lua/src/lundump.s + +CMakeFiles/mojosetup.dir/lua/src/lundump.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lundump.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lundump.o.provides: CMakeFiles/mojosetup.dir/lua/src/lundump.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lundump.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lundump.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lundump.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lundump.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lundump.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lvm.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/lvm.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_29) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lvm.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lvm.o -c /home/softcoder/Code/mojosetup/lua/src/lvm.c + +CMakeFiles/mojosetup.dir/lua/src/lvm.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lvm.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lvm.c > CMakeFiles/mojosetup.dir/lua/src/lvm.i + +CMakeFiles/mojosetup.dir/lua/src/lvm.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lvm.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lvm.c -o CMakeFiles/mojosetup.dir/lua/src/lvm.s + +CMakeFiles/mojosetup.dir/lua/src/lvm.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lvm.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lvm.o.provides: CMakeFiles/mojosetup.dir/lua/src/lvm.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lvm.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lvm.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lvm.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lvm.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lvm.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lzio.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lzio.o: ../lua/src/lzio.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_30) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lzio.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lzio.o -c /home/softcoder/Code/mojosetup/lua/src/lzio.c + +CMakeFiles/mojosetup.dir/lua/src/lzio.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lzio.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lzio.c > CMakeFiles/mojosetup.dir/lua/src/lzio.i + +CMakeFiles/mojosetup.dir/lua/src/lzio.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lzio.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lzio.c -o CMakeFiles/mojosetup.dir/lua/src/lzio.s + +CMakeFiles/mojosetup.dir/lua/src/lzio.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lzio.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lzio.o.provides: CMakeFiles/mojosetup.dir/lua/src/lzio.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lzio.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lzio.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lzio.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lzio.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lzio.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lauxlib.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lauxlib.o: ../lua/src/lauxlib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_31) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lauxlib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lauxlib.o -c /home/softcoder/Code/mojosetup/lua/src/lauxlib.c + +CMakeFiles/mojosetup.dir/lua/src/lauxlib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lauxlib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lauxlib.c > CMakeFiles/mojosetup.dir/lua/src/lauxlib.i + +CMakeFiles/mojosetup.dir/lua/src/lauxlib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lauxlib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lauxlib.c -o CMakeFiles/mojosetup.dir/lua/src/lauxlib.s + +CMakeFiles/mojosetup.dir/lua/src/lauxlib.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lauxlib.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lauxlib.o.provides: CMakeFiles/mojosetup.dir/lua/src/lauxlib.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lauxlib.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lauxlib.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lauxlib.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lauxlib.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lauxlib.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lbaselib.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lbaselib.o: ../lua/src/lbaselib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_32) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lbaselib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lbaselib.o -c /home/softcoder/Code/mojosetup/lua/src/lbaselib.c + +CMakeFiles/mojosetup.dir/lua/src/lbaselib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lbaselib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lbaselib.c > CMakeFiles/mojosetup.dir/lua/src/lbaselib.i + +CMakeFiles/mojosetup.dir/lua/src/lbaselib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lbaselib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lbaselib.c -o CMakeFiles/mojosetup.dir/lua/src/lbaselib.s + +CMakeFiles/mojosetup.dir/lua/src/lbaselib.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lbaselib.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lbaselib.o.provides: CMakeFiles/mojosetup.dir/lua/src/lbaselib.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lbaselib.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lbaselib.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lbaselib.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lbaselib.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lbaselib.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lstrlib.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lstrlib.o: ../lua/src/lstrlib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_33) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lstrlib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lstrlib.o -c /home/softcoder/Code/mojosetup/lua/src/lstrlib.c + +CMakeFiles/mojosetup.dir/lua/src/lstrlib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lstrlib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lstrlib.c > CMakeFiles/mojosetup.dir/lua/src/lstrlib.i + +CMakeFiles/mojosetup.dir/lua/src/lstrlib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lstrlib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lstrlib.c -o CMakeFiles/mojosetup.dir/lua/src/lstrlib.s + +CMakeFiles/mojosetup.dir/lua/src/lstrlib.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lstrlib.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lstrlib.o.provides: CMakeFiles/mojosetup.dir/lua/src/lstrlib.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lstrlib.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lstrlib.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lstrlib.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lstrlib.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lstrlib.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/ltablib.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/ltablib.o: ../lua/src/ltablib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_34) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/ltablib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/ltablib.o -c /home/softcoder/Code/mojosetup/lua/src/ltablib.c + +CMakeFiles/mojosetup.dir/lua/src/ltablib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/ltablib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ltablib.c > CMakeFiles/mojosetup.dir/lua/src/ltablib.i + +CMakeFiles/mojosetup.dir/lua/src/ltablib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/ltablib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ltablib.c -o CMakeFiles/mojosetup.dir/lua/src/ltablib.s + +CMakeFiles/mojosetup.dir/lua/src/ltablib.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ltablib.o.requires + +CMakeFiles/mojosetup.dir/lua/src/ltablib.o.provides: CMakeFiles/mojosetup.dir/lua/src/ltablib.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ltablib.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ltablib.o.provides + +CMakeFiles/mojosetup.dir/lua/src/ltablib.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/ltablib.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ltablib.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lparser.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/lparser.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_35) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lparser.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lparser.o -c /home/softcoder/Code/mojosetup/lua/src/lparser.c + +CMakeFiles/mojosetup.dir/lua/src/lparser.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lparser.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lparser.c > CMakeFiles/mojosetup.dir/lua/src/lparser.i + +CMakeFiles/mojosetup.dir/lua/src/lparser.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lparser.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lparser.c -o CMakeFiles/mojosetup.dir/lua/src/lparser.s + +CMakeFiles/mojosetup.dir/lua/src/lparser.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lparser.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lparser.o.provides: CMakeFiles/mojosetup.dir/lua/src/lparser.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lparser.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lparser.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lparser.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lparser.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lparser.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/llex.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/llex.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_36) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/llex.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/llex.o -c /home/softcoder/Code/mojosetup/lua/src/llex.c + +CMakeFiles/mojosetup.dir/lua/src/llex.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/llex.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/llex.c > CMakeFiles/mojosetup.dir/lua/src/llex.i + +CMakeFiles/mojosetup.dir/lua/src/llex.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/llex.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/llex.c -o CMakeFiles/mojosetup.dir/lua/src/llex.s + +CMakeFiles/mojosetup.dir/lua/src/llex.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/llex.o.requires + +CMakeFiles/mojosetup.dir/lua/src/llex.o.provides: CMakeFiles/mojosetup.dir/lua/src/llex.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/llex.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/llex.o.provides + +CMakeFiles/mojosetup.dir/lua/src/llex.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/llex.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/llex.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lcode.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/lcode.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_37) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lcode.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lcode.o -c /home/softcoder/Code/mojosetup/lua/src/lcode.c + +CMakeFiles/mojosetup.dir/lua/src/lcode.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lcode.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lcode.c > CMakeFiles/mojosetup.dir/lua/src/lcode.i + +CMakeFiles/mojosetup.dir/lua/src/lcode.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lcode.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lcode.c -o CMakeFiles/mojosetup.dir/lua/src/lcode.s + +CMakeFiles/mojosetup.dir/lua/src/lcode.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lcode.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lcode.o.provides: CMakeFiles/mojosetup.dir/lua/src/lcode.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lcode.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lcode.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lcode.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lcode.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lcode.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/liolib.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/liolib.o: ../lua/src/liolib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_38) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/liolib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/liolib.o -c /home/softcoder/Code/mojosetup/lua/src/liolib.c + +CMakeFiles/mojosetup.dir/lua/src/liolib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/liolib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/liolib.c > CMakeFiles/mojosetup.dir/lua/src/liolib.i + +CMakeFiles/mojosetup.dir/lua/src/liolib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/liolib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/liolib.c -o CMakeFiles/mojosetup.dir/lua/src/liolib.s + +CMakeFiles/mojosetup.dir/lua/src/liolib.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/liolib.o.requires + +CMakeFiles/mojosetup.dir/lua/src/liolib.o.provides: CMakeFiles/mojosetup.dir/lua/src/liolib.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/liolib.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/liolib.o.provides + +CMakeFiles/mojosetup.dir/lua/src/liolib.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/liolib.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/liolib.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/loslib.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/loslib.o: ../lua/src/loslib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_39) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/loslib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/loslib.o -c /home/softcoder/Code/mojosetup/lua/src/loslib.c + +CMakeFiles/mojosetup.dir/lua/src/loslib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/loslib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/loslib.c > CMakeFiles/mojosetup.dir/lua/src/loslib.i + +CMakeFiles/mojosetup.dir/lua/src/loslib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/loslib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/loslib.c -o CMakeFiles/mojosetup.dir/lua/src/loslib.s + +CMakeFiles/mojosetup.dir/lua/src/loslib.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/loslib.o.requires + +CMakeFiles/mojosetup.dir/lua/src/loslib.o.provides: CMakeFiles/mojosetup.dir/lua/src/loslib.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/loslib.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/loslib.o.provides + +CMakeFiles/mojosetup.dir/lua/src/loslib.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/loslib.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/loslib.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/lmathlib.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/lmathlib.o: ../lua/src/lmathlib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_40) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/lmathlib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/lmathlib.o -c /home/softcoder/Code/mojosetup/lua/src/lmathlib.c + +CMakeFiles/mojosetup.dir/lua/src/lmathlib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/lmathlib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/lmathlib.c > CMakeFiles/mojosetup.dir/lua/src/lmathlib.i + +CMakeFiles/mojosetup.dir/lua/src/lmathlib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/lmathlib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/lmathlib.c -o CMakeFiles/mojosetup.dir/lua/src/lmathlib.s + +CMakeFiles/mojosetup.dir/lua/src/lmathlib.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lmathlib.o.requires + +CMakeFiles/mojosetup.dir/lua/src/lmathlib.o.provides: CMakeFiles/mojosetup.dir/lua/src/lmathlib.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lmathlib.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lmathlib.o.provides + +CMakeFiles/mojosetup.dir/lua/src/lmathlib.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/lmathlib.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/lmathlib.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/ldblib.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/ldblib.o: ../lua/src/ldblib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_41) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/ldblib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/ldblib.o -c /home/softcoder/Code/mojosetup/lua/src/ldblib.c + +CMakeFiles/mojosetup.dir/lua/src/ldblib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/ldblib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/ldblib.c > CMakeFiles/mojosetup.dir/lua/src/ldblib.i + +CMakeFiles/mojosetup.dir/lua/src/ldblib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/ldblib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/ldblib.c -o CMakeFiles/mojosetup.dir/lua/src/ldblib.s + +CMakeFiles/mojosetup.dir/lua/src/ldblib.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ldblib.o.requires + +CMakeFiles/mojosetup.dir/lua/src/ldblib.o.provides: CMakeFiles/mojosetup.dir/lua/src/ldblib.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldblib.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ldblib.o.provides + +CMakeFiles/mojosetup.dir/lua/src/ldblib.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/ldblib.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/ldblib.o.provides.build + +CMakeFiles/mojosetup.dir/lua/src/loadlib.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/lua/src/loadlib.o: ../lua/src/loadlib.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_42) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/lua/src/loadlib.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/lua/src/loadlib.o -c /home/softcoder/Code/mojosetup/lua/src/loadlib.c + +CMakeFiles/mojosetup.dir/lua/src/loadlib.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/lua/src/loadlib.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/lua/src/loadlib.c > CMakeFiles/mojosetup.dir/lua/src/loadlib.i + +CMakeFiles/mojosetup.dir/lua/src/loadlib.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/lua/src/loadlib.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/lua/src/loadlib.c -o CMakeFiles/mojosetup.dir/lua/src/loadlib.s + +CMakeFiles/mojosetup.dir/lua/src/loadlib.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/lua/src/loadlib.o.requires + +CMakeFiles/mojosetup.dir/lua/src/loadlib.o.provides: CMakeFiles/mojosetup.dir/lua/src/loadlib.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/loadlib.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/lua/src/loadlib.o.provides + +CMakeFiles/mojosetup.dir/lua/src/loadlib.o.provides.build: CMakeFiles/mojosetup.dir/lua/src/loadlib.o +.PHONY : CMakeFiles/mojosetup.dir/lua/src/loadlib.o.provides.build + +CMakeFiles/mojosetup.dir/gui_stdio.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/gui_stdio.o: ../gui_stdio.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_43) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/gui_stdio.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/gui_stdio.o -c /home/softcoder/Code/mojosetup/gui_stdio.c + +CMakeFiles/mojosetup.dir/gui_stdio.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/gui_stdio.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/gui_stdio.c > CMakeFiles/mojosetup.dir/gui_stdio.i + +CMakeFiles/mojosetup.dir/gui_stdio.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/gui_stdio.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/gui_stdio.c -o CMakeFiles/mojosetup.dir/gui_stdio.s + +CMakeFiles/mojosetup.dir/gui_stdio.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/gui_stdio.o.requires + +CMakeFiles/mojosetup.dir/gui_stdio.o.provides: CMakeFiles/mojosetup.dir/gui_stdio.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/gui_stdio.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/gui_stdio.o.provides + +CMakeFiles/mojosetup.dir/gui_stdio.o.provides.build: CMakeFiles/mojosetup.dir/gui_stdio.o +.PHONY : CMakeFiles/mojosetup.dir/gui_stdio.o.provides.build + +CMakeFiles/mojosetup.dir/stb_image.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/stb_image.o: ../stb_image.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_44) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/stb_image.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/stb_image.o -c /home/softcoder/Code/mojosetup/stb_image.c + +CMakeFiles/mojosetup.dir/stb_image.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/stb_image.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/stb_image.c > CMakeFiles/mojosetup.dir/stb_image.i + +CMakeFiles/mojosetup.dir/stb_image.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/stb_image.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/stb_image.c -o CMakeFiles/mojosetup.dir/stb_image.s + +CMakeFiles/mojosetup.dir/stb_image.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/stb_image.o.requires + +CMakeFiles/mojosetup.dir/stb_image.o.provides: CMakeFiles/mojosetup.dir/stb_image.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/stb_image.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/stb_image.o.provides + +CMakeFiles/mojosetup.dir/stb_image.o.provides.build: CMakeFiles/mojosetup.dir/stb_image.o +.PHONY : CMakeFiles/mojosetup.dir/stb_image.o.provides.build + +CMakeFiles/mojosetup.dir/libfetch/fetch.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/libfetch/fetch.o: ../libfetch/fetch.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_45) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/libfetch/fetch.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/libfetch/fetch.o -c /home/softcoder/Code/mojosetup/libfetch/fetch.c + +CMakeFiles/mojosetup.dir/libfetch/fetch.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/libfetch/fetch.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/libfetch/fetch.c > CMakeFiles/mojosetup.dir/libfetch/fetch.i + +CMakeFiles/mojosetup.dir/libfetch/fetch.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/libfetch/fetch.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/libfetch/fetch.c -o CMakeFiles/mojosetup.dir/libfetch/fetch.s + +CMakeFiles/mojosetup.dir/libfetch/fetch.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/libfetch/fetch.o.requires + +CMakeFiles/mojosetup.dir/libfetch/fetch.o.provides: CMakeFiles/mojosetup.dir/libfetch/fetch.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/fetch.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/libfetch/fetch.o.provides + +CMakeFiles/mojosetup.dir/libfetch/fetch.o.provides.build: CMakeFiles/mojosetup.dir/libfetch/fetch.o +.PHONY : CMakeFiles/mojosetup.dir/libfetch/fetch.o.provides.build + +CMakeFiles/mojosetup.dir/libfetch/common.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/libfetch/common.o: ../libfetch/common.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_46) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/libfetch/common.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/libfetch/common.o -c /home/softcoder/Code/mojosetup/libfetch/common.c + +CMakeFiles/mojosetup.dir/libfetch/common.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/libfetch/common.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/libfetch/common.c > CMakeFiles/mojosetup.dir/libfetch/common.i + +CMakeFiles/mojosetup.dir/libfetch/common.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/libfetch/common.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/libfetch/common.c -o CMakeFiles/mojosetup.dir/libfetch/common.s + +CMakeFiles/mojosetup.dir/libfetch/common.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/libfetch/common.o.requires + +CMakeFiles/mojosetup.dir/libfetch/common.o.provides: CMakeFiles/mojosetup.dir/libfetch/common.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/common.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/libfetch/common.o.provides + +CMakeFiles/mojosetup.dir/libfetch/common.o.provides.build: CMakeFiles/mojosetup.dir/libfetch/common.o +.PHONY : CMakeFiles/mojosetup.dir/libfetch/common.o.provides.build + +CMakeFiles/mojosetup.dir/libfetch/ftp.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/libfetch/ftp.o: ../libfetch/ftp.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_47) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/libfetch/ftp.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/libfetch/ftp.o -c /home/softcoder/Code/mojosetup/libfetch/ftp.c + +CMakeFiles/mojosetup.dir/libfetch/ftp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/libfetch/ftp.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/libfetch/ftp.c > CMakeFiles/mojosetup.dir/libfetch/ftp.i + +CMakeFiles/mojosetup.dir/libfetch/ftp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/libfetch/ftp.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/libfetch/ftp.c -o CMakeFiles/mojosetup.dir/libfetch/ftp.s + +CMakeFiles/mojosetup.dir/libfetch/ftp.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/libfetch/ftp.o.requires + +CMakeFiles/mojosetup.dir/libfetch/ftp.o.provides: CMakeFiles/mojosetup.dir/libfetch/ftp.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/ftp.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/libfetch/ftp.o.provides + +CMakeFiles/mojosetup.dir/libfetch/ftp.o.provides.build: CMakeFiles/mojosetup.dir/libfetch/ftp.o +.PHONY : CMakeFiles/mojosetup.dir/libfetch/ftp.o.provides.build + +CMakeFiles/mojosetup.dir/libfetch/http.o: CMakeFiles/mojosetup.dir/flags.make +CMakeFiles/mojosetup.dir/libfetch/http.o: ../libfetch/http.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_48) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetup.dir/libfetch/http.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetup.dir/libfetch/http.o -c /home/softcoder/Code/mojosetup/libfetch/http.c + +CMakeFiles/mojosetup.dir/libfetch/http.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetup.dir/libfetch/http.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/libfetch/http.c > CMakeFiles/mojosetup.dir/libfetch/http.i + +CMakeFiles/mojosetup.dir/libfetch/http.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetup.dir/libfetch/http.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/libfetch/http.c -o CMakeFiles/mojosetup.dir/libfetch/http.s + +CMakeFiles/mojosetup.dir/libfetch/http.o.requires: +.PHONY : CMakeFiles/mojosetup.dir/libfetch/http.o.requires + +CMakeFiles/mojosetup.dir/libfetch/http.o.provides: CMakeFiles/mojosetup.dir/libfetch/http.o.requires + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/http.o.provides.build +.PHONY : CMakeFiles/mojosetup.dir/libfetch/http.o.provides + +CMakeFiles/mojosetup.dir/libfetch/http.o.provides.build: CMakeFiles/mojosetup.dir/libfetch/http.o +.PHONY : CMakeFiles/mojosetup.dir/libfetch/http.o.provides.build + +# Object files for target mojosetup +mojosetup_OBJECTS = \ +"CMakeFiles/mojosetup.dir/buildver.o" \ +"CMakeFiles/mojosetup.dir/mojosetup.o" \ +"CMakeFiles/mojosetup.dir/gui.o" \ +"CMakeFiles/mojosetup.dir/fileio.o" \ +"CMakeFiles/mojosetup.dir/archive_zip.o" \ +"CMakeFiles/mojosetup.dir/archive_tar.o" \ +"CMakeFiles/mojosetup.dir/archive_uz2.o" \ +"CMakeFiles/mojosetup.dir/archive_pck.o" \ +"CMakeFiles/mojosetup.dir/checksum_crc32.o" \ +"CMakeFiles/mojosetup.dir/checksum_md5.o" \ +"CMakeFiles/mojosetup.dir/checksum_sha1.o" \ +"CMakeFiles/mojosetup.dir/platform_unix.o" \ +"CMakeFiles/mojosetup.dir/platform_windows.o" \ +"CMakeFiles/mojosetup.dir/lua_glue.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lapi.o" \ +"CMakeFiles/mojosetup.dir/lua/src/ldebug.o" \ +"CMakeFiles/mojosetup.dir/lua/src/ldo.o" \ +"CMakeFiles/mojosetup.dir/lua/src/ldump.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lfunc.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lgc.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lmem.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lobject.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lopcodes.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lstate.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lstring.o" \ +"CMakeFiles/mojosetup.dir/lua/src/ltable.o" \ +"CMakeFiles/mojosetup.dir/lua/src/ltm.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lundump.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lvm.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lzio.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lauxlib.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lbaselib.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lstrlib.o" \ +"CMakeFiles/mojosetup.dir/lua/src/ltablib.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lparser.o" \ +"CMakeFiles/mojosetup.dir/lua/src/llex.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lcode.o" \ +"CMakeFiles/mojosetup.dir/lua/src/liolib.o" \ +"CMakeFiles/mojosetup.dir/lua/src/loslib.o" \ +"CMakeFiles/mojosetup.dir/lua/src/lmathlib.o" \ +"CMakeFiles/mojosetup.dir/lua/src/ldblib.o" \ +"CMakeFiles/mojosetup.dir/lua/src/loadlib.o" \ +"CMakeFiles/mojosetup.dir/gui_stdio.o" \ +"CMakeFiles/mojosetup.dir/stb_image.o" \ +"CMakeFiles/mojosetup.dir/libfetch/fetch.o" \ +"CMakeFiles/mojosetup.dir/libfetch/common.o" \ +"CMakeFiles/mojosetup.dir/libfetch/ftp.o" \ +"CMakeFiles/mojosetup.dir/libfetch/http.o" + +# External object files for target mojosetup +mojosetup_EXTERNAL_OBJECTS = + +mojosetup: CMakeFiles/mojosetup.dir/buildver.o +mojosetup: CMakeFiles/mojosetup.dir/mojosetup.o +mojosetup: CMakeFiles/mojosetup.dir/gui.o +mojosetup: CMakeFiles/mojosetup.dir/fileio.o +mojosetup: CMakeFiles/mojosetup.dir/archive_zip.o +mojosetup: CMakeFiles/mojosetup.dir/archive_tar.o +mojosetup: CMakeFiles/mojosetup.dir/archive_uz2.o +mojosetup: CMakeFiles/mojosetup.dir/archive_pck.o +mojosetup: CMakeFiles/mojosetup.dir/checksum_crc32.o +mojosetup: CMakeFiles/mojosetup.dir/checksum_md5.o +mojosetup: CMakeFiles/mojosetup.dir/checksum_sha1.o +mojosetup: CMakeFiles/mojosetup.dir/platform_unix.o +mojosetup: CMakeFiles/mojosetup.dir/platform_windows.o +mojosetup: CMakeFiles/mojosetup.dir/lua_glue.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lapi.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/ldebug.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/ldo.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/ldump.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lfunc.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lgc.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lmem.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lobject.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lopcodes.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lstate.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lstring.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/ltable.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/ltm.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lundump.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lvm.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lzio.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lauxlib.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lbaselib.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lstrlib.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/ltablib.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lparser.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/llex.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lcode.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/liolib.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/loslib.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/lmathlib.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/ldblib.o +mojosetup: CMakeFiles/mojosetup.dir/lua/src/loadlib.o +mojosetup: CMakeFiles/mojosetup.dir/gui_stdio.o +mojosetup: CMakeFiles/mojosetup.dir/stb_image.o +mojosetup: CMakeFiles/mojosetup.dir/libfetch/fetch.o +mojosetup: CMakeFiles/mojosetup.dir/libfetch/common.o +mojosetup: CMakeFiles/mojosetup.dir/libfetch/ftp.o +mojosetup: CMakeFiles/mojosetup.dir/libfetch/http.o +mojosetup: CMakeFiles/mojosetup.dir/build.make +mojosetup: CMakeFiles/mojosetup.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking C executable mojosetup" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/mojosetup.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/mojosetup.dir/build: mojosetup +.PHONY : CMakeFiles/mojosetup.dir/build + +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/buildver.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/mojosetup.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/gui.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/fileio.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/archive_zip.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/archive_tar.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/archive_uz2.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/archive_pck.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/checksum_crc32.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/checksum_md5.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/checksum_sha1.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/platform_unix.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/platform_windows.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua_glue.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lapi.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/ldebug.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/ldo.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/ldump.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lfunc.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lgc.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lmem.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lobject.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lopcodes.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lstate.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lstring.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/ltable.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/ltm.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lundump.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lvm.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lzio.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lauxlib.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lbaselib.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lstrlib.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/ltablib.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lparser.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/llex.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lcode.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/liolib.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/loslib.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/lmathlib.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/ldblib.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/lua/src/loadlib.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/gui_stdio.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/stb_image.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/libfetch/fetch.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/libfetch/common.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/libfetch/ftp.o.requires +CMakeFiles/mojosetup.dir/requires: CMakeFiles/mojosetup.dir/libfetch/http.o.requires +.PHONY : CMakeFiles/mojosetup.dir/requires + +CMakeFiles/mojosetup.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/mojosetup.dir/cmake_clean.cmake +.PHONY : CMakeFiles/mojosetup.dir/clean + +CMakeFiles/mojosetup.dir/depend: + cd /home/softcoder/Code/mojosetup/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/softcoder/Code/mojosetup /home/softcoder/Code/mojosetup /home/softcoder/Code/mojosetup/build /home/softcoder/Code/mojosetup/build /home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetup.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/mojosetup.dir/depend + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/cmake_clean.cmake b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/cmake_clean.cmake new file mode 100644 index 00000000..229f3d51 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/cmake_clean.cmake @@ -0,0 +1,57 @@ +FILE(REMOVE_RECURSE + "CMakeFiles/mojosetup.dir/buildver.o" + "CMakeFiles/mojosetup.dir/mojosetup.o" + "CMakeFiles/mojosetup.dir/gui.o" + "CMakeFiles/mojosetup.dir/fileio.o" + "CMakeFiles/mojosetup.dir/archive_zip.o" + "CMakeFiles/mojosetup.dir/archive_tar.o" + "CMakeFiles/mojosetup.dir/archive_uz2.o" + "CMakeFiles/mojosetup.dir/archive_pck.o" + "CMakeFiles/mojosetup.dir/checksum_crc32.o" + "CMakeFiles/mojosetup.dir/checksum_md5.o" + "CMakeFiles/mojosetup.dir/checksum_sha1.o" + "CMakeFiles/mojosetup.dir/platform_unix.o" + "CMakeFiles/mojosetup.dir/platform_windows.o" + "CMakeFiles/mojosetup.dir/lua_glue.o" + "CMakeFiles/mojosetup.dir/lua/src/lapi.o" + "CMakeFiles/mojosetup.dir/lua/src/ldebug.o" + "CMakeFiles/mojosetup.dir/lua/src/ldo.o" + "CMakeFiles/mojosetup.dir/lua/src/ldump.o" + "CMakeFiles/mojosetup.dir/lua/src/lfunc.o" + "CMakeFiles/mojosetup.dir/lua/src/lgc.o" + "CMakeFiles/mojosetup.dir/lua/src/lmem.o" + "CMakeFiles/mojosetup.dir/lua/src/lobject.o" + "CMakeFiles/mojosetup.dir/lua/src/lopcodes.o" + "CMakeFiles/mojosetup.dir/lua/src/lstate.o" + "CMakeFiles/mojosetup.dir/lua/src/lstring.o" + "CMakeFiles/mojosetup.dir/lua/src/ltable.o" + "CMakeFiles/mojosetup.dir/lua/src/ltm.o" + "CMakeFiles/mojosetup.dir/lua/src/lundump.o" + "CMakeFiles/mojosetup.dir/lua/src/lvm.o" + "CMakeFiles/mojosetup.dir/lua/src/lzio.o" + "CMakeFiles/mojosetup.dir/lua/src/lauxlib.o" + "CMakeFiles/mojosetup.dir/lua/src/lbaselib.o" + "CMakeFiles/mojosetup.dir/lua/src/lstrlib.o" + "CMakeFiles/mojosetup.dir/lua/src/ltablib.o" + "CMakeFiles/mojosetup.dir/lua/src/lparser.o" + "CMakeFiles/mojosetup.dir/lua/src/llex.o" + "CMakeFiles/mojosetup.dir/lua/src/lcode.o" + "CMakeFiles/mojosetup.dir/lua/src/liolib.o" + "CMakeFiles/mojosetup.dir/lua/src/loslib.o" + "CMakeFiles/mojosetup.dir/lua/src/lmathlib.o" + "CMakeFiles/mojosetup.dir/lua/src/ldblib.o" + "CMakeFiles/mojosetup.dir/lua/src/loadlib.o" + "CMakeFiles/mojosetup.dir/gui_stdio.o" + "CMakeFiles/mojosetup.dir/stb_image.o" + "CMakeFiles/mojosetup.dir/libfetch/fetch.o" + "CMakeFiles/mojosetup.dir/libfetch/common.o" + "CMakeFiles/mojosetup.dir/libfetch/ftp.o" + "CMakeFiles/mojosetup.dir/libfetch/http.o" + "mojosetup.pdb" + "mojosetup" +) + +# Per-language clean rules from dependency scanning. +FOREACH(lang C) + INCLUDE(CMakeFiles/mojosetup.dir/cmake_clean_${lang}.cmake OPTIONAL) +ENDFOREACH(lang) diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/depend.internal b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/depend.internal new file mode 100644 index 00000000..ecdf5ce1 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/depend.internal @@ -0,0 +1,459 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +CMakeFiles/mojosetup.dir/archive_pck.o + /home/softcoder/Code/mojosetup/archive_pck.c + /home/softcoder/Code/mojosetup/fileio.h + /home/softcoder/Code/mojosetup/platform.h + /home/softcoder/Code/mojosetup/universal.h +CMakeFiles/mojosetup.dir/archive_tar.o + /home/softcoder/Code/mojosetup/archive_tar.c + /home/softcoder/Code/mojosetup/fileio.h + /home/softcoder/Code/mojosetup/universal.h +CMakeFiles/mojosetup.dir/archive_uz2.o + /home/softcoder/Code/mojosetup/archive_uz2.c + /home/softcoder/Code/mojosetup/fileio.h + /home/softcoder/Code/mojosetup/platform.h + /home/softcoder/Code/mojosetup/universal.h + /home/softcoder/Code/mojosetup/zlib/zconf.h + /home/softcoder/Code/mojosetup/zlib/zlib.h +CMakeFiles/mojosetup.dir/archive_zip.o + /home/softcoder/Code/mojosetup/archive_zip.c + /home/softcoder/Code/mojosetup/fileio.h + /home/softcoder/Code/mojosetup/universal.h + /home/softcoder/Code/mojosetup/zlib/zconf.h + /home/softcoder/Code/mojosetup/zlib/zlib.h +CMakeFiles/mojosetup.dir/buildver.o + /home/softcoder/Code/mojosetup/buildver.c +CMakeFiles/mojosetup.dir/checksum_crc32.o + /home/softcoder/Code/mojosetup/checksum_crc32.c + /home/softcoder/Code/mojosetup/universal.h +CMakeFiles/mojosetup.dir/checksum_md5.o + /home/softcoder/Code/mojosetup/checksum_md5.c + /home/softcoder/Code/mojosetup/universal.h +CMakeFiles/mojosetup.dir/checksum_sha1.o + /home/softcoder/Code/mojosetup/checksum_sha1.c + /home/softcoder/Code/mojosetup/universal.h +CMakeFiles/mojosetup.dir/fileio.o + /home/softcoder/Code/mojosetup/bzip2/bzlib.h + /home/softcoder/Code/mojosetup/fileio.c + /home/softcoder/Code/mojosetup/fileio.h + /home/softcoder/Code/mojosetup/platform.h + /home/softcoder/Code/mojosetup/universal.h + /home/softcoder/Code/mojosetup/zlib/zconf.h + /home/softcoder/Code/mojosetup/zlib/zlib.h +CMakeFiles/mojosetup.dir/gui.o + /home/softcoder/Code/mojosetup/fileio.h + /home/softcoder/Code/mojosetup/gui.c + /home/softcoder/Code/mojosetup/gui.h + /home/softcoder/Code/mojosetup/platform.h + /home/softcoder/Code/mojosetup/universal.h +CMakeFiles/mojosetup.dir/gui_stdio.o + /home/softcoder/Code/mojosetup/gui.h + /home/softcoder/Code/mojosetup/gui_stdio.c + /home/softcoder/Code/mojosetup/universal.h +CMakeFiles/mojosetup.dir/libfetch/common.o + /home/softcoder/Code/mojosetup/libfetch/../fileio.h + /home/softcoder/Code/mojosetup/libfetch/../platform.h + /home/softcoder/Code/mojosetup/libfetch/../universal.h + /home/softcoder/Code/mojosetup/libfetch/common.c + /home/softcoder/Code/mojosetup/libfetch/common.h + /home/softcoder/Code/mojosetup/libfetch/fetch.h + /home/softcoder/Code/mojosetup/libfetch/mojosetup_libfetch.h +CMakeFiles/mojosetup.dir/libfetch/fetch.o + /home/softcoder/Code/mojosetup/libfetch/../fileio.h + /home/softcoder/Code/mojosetup/libfetch/../platform.h + /home/softcoder/Code/mojosetup/libfetch/../universal.h + /home/softcoder/Code/mojosetup/libfetch/common.h + /home/softcoder/Code/mojosetup/libfetch/fetch.c + /home/softcoder/Code/mojosetup/libfetch/fetch.h + /home/softcoder/Code/mojosetup/libfetch/mojosetup_libfetch.h +CMakeFiles/mojosetup.dir/libfetch/ftp.o + /home/softcoder/Code/mojosetup/libfetch/../fileio.h + /home/softcoder/Code/mojosetup/libfetch/../platform.h + /home/softcoder/Code/mojosetup/libfetch/../universal.h + /home/softcoder/Code/mojosetup/libfetch/common.h + /home/softcoder/Code/mojosetup/libfetch/fetch.h + /home/softcoder/Code/mojosetup/libfetch/ftp.c + /home/softcoder/Code/mojosetup/libfetch/ftperr.h + /home/softcoder/Code/mojosetup/libfetch/mojosetup_libfetch.h +CMakeFiles/mojosetup.dir/libfetch/http.o + /home/softcoder/Code/mojosetup/libfetch/../fileio.h + /home/softcoder/Code/mojosetup/libfetch/../platform.h + /home/softcoder/Code/mojosetup/libfetch/../universal.h + /home/softcoder/Code/mojosetup/libfetch/common.h + /home/softcoder/Code/mojosetup/libfetch/fetch.h + /home/softcoder/Code/mojosetup/libfetch/http.c + /home/softcoder/Code/mojosetup/libfetch/httperr.h + /home/softcoder/Code/mojosetup/libfetch/mojosetup_libfetch.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o + /home/softcoder/Code/mojosetup/lua/src/lapi.c + /home/softcoder/Code/mojosetup/lua/src/lapi.h + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lundump.h + /home/softcoder/Code/mojosetup/lua/src/lvm.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/lauxlib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.c + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lbaselib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/lbaselib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o + /home/softcoder/Code/mojosetup/lua/src/lcode.c + /home/softcoder/Code/mojosetup/lua/src/lcode.h + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llex.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lparser.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/ldblib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/ldblib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o + /home/softcoder/Code/mojosetup/lua/src/lapi.h + /home/softcoder/Code/mojosetup/lua/src/lcode.h + /home/softcoder/Code/mojosetup/lua/src/ldebug.c + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llex.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lparser.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lvm.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.c + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lparser.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lundump.h + /home/softcoder/Code/mojosetup/lua/src/lvm.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/ldump.o + /home/softcoder/Code/mojosetup/lua/src/ldump.c + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lundump.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/lfunc.o + /home/softcoder/Code/mojosetup/lua/src/lfunc.c + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.c + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/liolib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/liolib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojosetup.dir/lua/src/llex.o + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llex.c + /home/softcoder/Code/mojosetup/lua/src/llex.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lparser.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/lmathlib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/lmathlib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojosetup.dir/lua/src/lmem.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.c + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/loadlib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/loadlib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojosetup.dir/lua/src/lobject.o + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.c + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lvm.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/lopcodes.o + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.c + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/loslib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/loslib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o + /home/softcoder/Code/mojosetup/lua/src/lcode.h + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llex.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lparser.c + /home/softcoder/Code/mojosetup/lua/src/lparser.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llex.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.c + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/lstring.o + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.c + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/lstrlib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/lstrlib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojosetup.dir/lua/src/ltable.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/ltable.c + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/ltablib.o + /home/softcoder/Code/mojosetup/lua/src/lauxlib.h + /home/softcoder/Code/mojosetup/lua/src/ltablib.c + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lualib.h +CMakeFiles/mojosetup.dir/lua/src/ltm.o + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.c + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lundump.c + /home/softcoder/Code/mojosetup/lua/src/lundump.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o + /home/softcoder/Code/mojosetup/lua/src/ldebug.h + /home/softcoder/Code/mojosetup/lua/src/ldo.h + /home/softcoder/Code/mojosetup/lua/src/lfunc.h + /home/softcoder/Code/mojosetup/lua/src/lgc.h + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lopcodes.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/lstring.h + /home/softcoder/Code/mojosetup/lua/src/ltable.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lvm.c + /home/softcoder/Code/mojosetup/lua/src/lvm.h + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua/src/lzio.o + /home/softcoder/Code/mojosetup/lua/src/llimits.h + /home/softcoder/Code/mojosetup/lua/src/lmem.h + /home/softcoder/Code/mojosetup/lua/src/lobject.h + /home/softcoder/Code/mojosetup/lua/src/lstate.h + /home/softcoder/Code/mojosetup/lua/src/ltm.h + /home/softcoder/Code/mojosetup/lua/src/lua.h + /home/softcoder/Code/mojosetup/lua/src/luaconf.h + /home/softcoder/Code/mojosetup/lua/src/lzio.c + /home/softcoder/Code/mojosetup/lua/src/lzio.h +CMakeFiles/mojosetup.dir/lua_glue.o + ../lua/src/lauxlib.h + ../lua/src/lua.h + ../lua/src/luaconf.h + ../lua/src/lualib.h + /home/softcoder/Code/mojosetup/fileio.h + /home/softcoder/Code/mojosetup/gui.h + /home/softcoder/Code/mojosetup/lua_glue.c + /home/softcoder/Code/mojosetup/lua_glue.h + /home/softcoder/Code/mojosetup/platform.h + /home/softcoder/Code/mojosetup/universal.h +CMakeFiles/mojosetup.dir/mojosetup.o + /home/softcoder/Code/mojosetup/fileio.h + /home/softcoder/Code/mojosetup/gui.h + /home/softcoder/Code/mojosetup/lua_glue.h + /home/softcoder/Code/mojosetup/mojosetup.c + /home/softcoder/Code/mojosetup/platform.h + /home/softcoder/Code/mojosetup/universal.h +CMakeFiles/mojosetup.dir/platform_unix.o + /home/softcoder/Code/mojosetup/fileio.h + /home/softcoder/Code/mojosetup/gui.h + /home/softcoder/Code/mojosetup/platform.h + /home/softcoder/Code/mojosetup/platform_unix.c + /home/softcoder/Code/mojosetup/universal.h +CMakeFiles/mojosetup.dir/platform_windows.o + /home/softcoder/Code/mojosetup/gui.h + /home/softcoder/Code/mojosetup/platform.h + /home/softcoder/Code/mojosetup/platform_windows.c + /home/softcoder/Code/mojosetup/universal.h +CMakeFiles/mojosetup.dir/stb_image.o + /home/softcoder/Code/mojosetup/stb_image.c + /home/softcoder/Code/mojosetup/universal.h diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/depend.make b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/depend.make new file mode 100644 index 00000000..75526912 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/depend.make @@ -0,0 +1,459 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +CMakeFiles/mojosetup.dir/archive_pck.o: ../archive_pck.c +CMakeFiles/mojosetup.dir/archive_pck.o: ../fileio.h +CMakeFiles/mojosetup.dir/archive_pck.o: ../platform.h +CMakeFiles/mojosetup.dir/archive_pck.o: ../universal.h + +CMakeFiles/mojosetup.dir/archive_tar.o: ../archive_tar.c +CMakeFiles/mojosetup.dir/archive_tar.o: ../fileio.h +CMakeFiles/mojosetup.dir/archive_tar.o: ../universal.h + +CMakeFiles/mojosetup.dir/archive_uz2.o: ../archive_uz2.c +CMakeFiles/mojosetup.dir/archive_uz2.o: ../fileio.h +CMakeFiles/mojosetup.dir/archive_uz2.o: ../platform.h +CMakeFiles/mojosetup.dir/archive_uz2.o: ../universal.h +CMakeFiles/mojosetup.dir/archive_uz2.o: ../zlib/zconf.h +CMakeFiles/mojosetup.dir/archive_uz2.o: ../zlib/zlib.h + +CMakeFiles/mojosetup.dir/archive_zip.o: ../archive_zip.c +CMakeFiles/mojosetup.dir/archive_zip.o: ../fileio.h +CMakeFiles/mojosetup.dir/archive_zip.o: ../universal.h +CMakeFiles/mojosetup.dir/archive_zip.o: ../zlib/zconf.h +CMakeFiles/mojosetup.dir/archive_zip.o: ../zlib/zlib.h + +CMakeFiles/mojosetup.dir/buildver.o: ../buildver.c + +CMakeFiles/mojosetup.dir/checksum_crc32.o: ../checksum_crc32.c +CMakeFiles/mojosetup.dir/checksum_crc32.o: ../universal.h + +CMakeFiles/mojosetup.dir/checksum_md5.o: ../checksum_md5.c +CMakeFiles/mojosetup.dir/checksum_md5.o: ../universal.h + +CMakeFiles/mojosetup.dir/checksum_sha1.o: ../checksum_sha1.c +CMakeFiles/mojosetup.dir/checksum_sha1.o: ../universal.h + +CMakeFiles/mojosetup.dir/fileio.o: ../bzip2/bzlib.h +CMakeFiles/mojosetup.dir/fileio.o: ../fileio.c +CMakeFiles/mojosetup.dir/fileio.o: ../fileio.h +CMakeFiles/mojosetup.dir/fileio.o: ../platform.h +CMakeFiles/mojosetup.dir/fileio.o: ../universal.h +CMakeFiles/mojosetup.dir/fileio.o: ../zlib/zconf.h +CMakeFiles/mojosetup.dir/fileio.o: ../zlib/zlib.h + +CMakeFiles/mojosetup.dir/gui.o: ../fileio.h +CMakeFiles/mojosetup.dir/gui.o: ../gui.c +CMakeFiles/mojosetup.dir/gui.o: ../gui.h +CMakeFiles/mojosetup.dir/gui.o: ../platform.h +CMakeFiles/mojosetup.dir/gui.o: ../universal.h + +CMakeFiles/mojosetup.dir/gui_stdio.o: ../gui.h +CMakeFiles/mojosetup.dir/gui_stdio.o: ../gui_stdio.c +CMakeFiles/mojosetup.dir/gui_stdio.o: ../universal.h + +CMakeFiles/mojosetup.dir/libfetch/common.o: ../libfetch/../fileio.h +CMakeFiles/mojosetup.dir/libfetch/common.o: ../libfetch/../platform.h +CMakeFiles/mojosetup.dir/libfetch/common.o: ../libfetch/../universal.h +CMakeFiles/mojosetup.dir/libfetch/common.o: ../libfetch/common.c +CMakeFiles/mojosetup.dir/libfetch/common.o: ../libfetch/common.h +CMakeFiles/mojosetup.dir/libfetch/common.o: ../libfetch/fetch.h +CMakeFiles/mojosetup.dir/libfetch/common.o: ../libfetch/mojosetup_libfetch.h + +CMakeFiles/mojosetup.dir/libfetch/fetch.o: ../libfetch/../fileio.h +CMakeFiles/mojosetup.dir/libfetch/fetch.o: ../libfetch/../platform.h +CMakeFiles/mojosetup.dir/libfetch/fetch.o: ../libfetch/../universal.h +CMakeFiles/mojosetup.dir/libfetch/fetch.o: ../libfetch/common.h +CMakeFiles/mojosetup.dir/libfetch/fetch.o: ../libfetch/fetch.c +CMakeFiles/mojosetup.dir/libfetch/fetch.o: ../libfetch/fetch.h +CMakeFiles/mojosetup.dir/libfetch/fetch.o: ../libfetch/mojosetup_libfetch.h + +CMakeFiles/mojosetup.dir/libfetch/ftp.o: ../libfetch/../fileio.h +CMakeFiles/mojosetup.dir/libfetch/ftp.o: ../libfetch/../platform.h +CMakeFiles/mojosetup.dir/libfetch/ftp.o: ../libfetch/../universal.h +CMakeFiles/mojosetup.dir/libfetch/ftp.o: ../libfetch/common.h +CMakeFiles/mojosetup.dir/libfetch/ftp.o: ../libfetch/fetch.h +CMakeFiles/mojosetup.dir/libfetch/ftp.o: ../libfetch/ftp.c +CMakeFiles/mojosetup.dir/libfetch/ftp.o: ../libfetch/ftperr.h +CMakeFiles/mojosetup.dir/libfetch/ftp.o: ../libfetch/mojosetup_libfetch.h + +CMakeFiles/mojosetup.dir/libfetch/http.o: ../libfetch/../fileio.h +CMakeFiles/mojosetup.dir/libfetch/http.o: ../libfetch/../platform.h +CMakeFiles/mojosetup.dir/libfetch/http.o: ../libfetch/../universal.h +CMakeFiles/mojosetup.dir/libfetch/http.o: ../libfetch/common.h +CMakeFiles/mojosetup.dir/libfetch/http.o: ../libfetch/fetch.h +CMakeFiles/mojosetup.dir/libfetch/http.o: ../libfetch/http.c +CMakeFiles/mojosetup.dir/libfetch/http.o: ../libfetch/httperr.h +CMakeFiles/mojosetup.dir/libfetch/http.o: ../libfetch/mojosetup_libfetch.h + +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/lapi.c +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/lapi.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/ldebug.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/ldo.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/lfunc.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/lstring.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/ltable.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/lundump.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/lvm.h +CMakeFiles/mojosetup.dir/lua/src/lapi.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/lauxlib.o: ../lua/src/lauxlib.c +CMakeFiles/mojosetup.dir/lua/src/lauxlib.o: ../lua/src/lauxlib.h +CMakeFiles/mojosetup.dir/lua/src/lauxlib.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lauxlib.o: ../lua/src/luaconf.h + +CMakeFiles/mojosetup.dir/lua/src/lbaselib.o: ../lua/src/lauxlib.h +CMakeFiles/mojosetup.dir/lua/src/lbaselib.o: ../lua/src/lbaselib.c +CMakeFiles/mojosetup.dir/lua/src/lbaselib.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lbaselib.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lbaselib.o: ../lua/src/lualib.h + +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/lcode.c +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/lcode.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/ldebug.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/ldo.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/llex.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/lopcodes.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/lparser.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/ltable.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lcode.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/ldblib.o: ../lua/src/lauxlib.h +CMakeFiles/mojosetup.dir/lua/src/ldblib.o: ../lua/src/ldblib.c +CMakeFiles/mojosetup.dir/lua/src/ldblib.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/ldblib.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/ldblib.o: ../lua/src/lualib.h + +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/lapi.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/lcode.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/ldebug.c +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/ldebug.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/ldo.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/lfunc.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/llex.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/lopcodes.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/lparser.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/lstring.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/ltable.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/lvm.h +CMakeFiles/mojosetup.dir/lua/src/ldebug.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/ldebug.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/ldo.c +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/ldo.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/lfunc.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/lopcodes.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/lparser.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/lstring.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/ltable.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/lundump.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/lvm.h +CMakeFiles/mojosetup.dir/lua/src/ldo.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/ldump.o: ../lua/src/ldump.c +CMakeFiles/mojosetup.dir/lua/src/ldump.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/ldump.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/ldump.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/ldump.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/ldump.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/ldump.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/ldump.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/ldump.o: ../lua/src/lundump.h +CMakeFiles/mojosetup.dir/lua/src/ldump.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/lfunc.o: ../lua/src/lfunc.c +CMakeFiles/mojosetup.dir/lua/src/lfunc.o: ../lua/src/lfunc.h +CMakeFiles/mojosetup.dir/lua/src/lfunc.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/lfunc.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/lfunc.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/lfunc.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/lfunc.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/lfunc.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/lfunc.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lfunc.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lfunc.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/ldebug.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/ldo.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/lfunc.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/lgc.c +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/lstring.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/ltable.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lgc.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/liolib.o: ../lua/src/lauxlib.h +CMakeFiles/mojosetup.dir/lua/src/liolib.o: ../lua/src/liolib.c +CMakeFiles/mojosetup.dir/lua/src/liolib.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/liolib.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/liolib.o: ../lua/src/lualib.h + +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/ldo.h +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/llex.c +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/llex.h +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/lparser.h +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/lstring.h +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/ltable.h +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/llex.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/lmathlib.o: ../lua/src/lauxlib.h +CMakeFiles/mojosetup.dir/lua/src/lmathlib.o: ../lua/src/lmathlib.c +CMakeFiles/mojosetup.dir/lua/src/lmathlib.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lmathlib.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lmathlib.o: ../lua/src/lualib.h + +CMakeFiles/mojosetup.dir/lua/src/lmem.o: ../lua/src/ldebug.h +CMakeFiles/mojosetup.dir/lua/src/lmem.o: ../lua/src/ldo.h +CMakeFiles/mojosetup.dir/lua/src/lmem.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/lmem.o: ../lua/src/lmem.c +CMakeFiles/mojosetup.dir/lua/src/lmem.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/lmem.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/lmem.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/lmem.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/lmem.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lmem.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lmem.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/loadlib.o: ../lua/src/lauxlib.h +CMakeFiles/mojosetup.dir/lua/src/loadlib.o: ../lua/src/loadlib.c +CMakeFiles/mojosetup.dir/lua/src/loadlib.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/loadlib.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/loadlib.o: ../lua/src/lualib.h + +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/ldo.h +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/lobject.c +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/lstring.h +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/lvm.h +CMakeFiles/mojosetup.dir/lua/src/lobject.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/lopcodes.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/lopcodes.o: ../lua/src/lopcodes.c +CMakeFiles/mojosetup.dir/lua/src/lopcodes.o: ../lua/src/lopcodes.h +CMakeFiles/mojosetup.dir/lua/src/lopcodes.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lopcodes.o: ../lua/src/luaconf.h + +CMakeFiles/mojosetup.dir/lua/src/loslib.o: ../lua/src/lauxlib.h +CMakeFiles/mojosetup.dir/lua/src/loslib.o: ../lua/src/loslib.c +CMakeFiles/mojosetup.dir/lua/src/loslib.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/loslib.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/loslib.o: ../lua/src/lualib.h + +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/lcode.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/ldebug.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/ldo.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/lfunc.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/llex.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/lopcodes.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/lparser.c +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/lparser.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/lstring.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/ltable.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lparser.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/ldebug.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/ldo.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/lfunc.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/llex.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/lstate.c +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/lstring.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/ltable.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lstate.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/lstring.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/lstring.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/lstring.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/lstring.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/lstring.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/lstring.o: ../lua/src/lstring.c +CMakeFiles/mojosetup.dir/lua/src/lstring.o: ../lua/src/lstring.h +CMakeFiles/mojosetup.dir/lua/src/lstring.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/lstring.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lstring.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lstring.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/lstrlib.o: ../lua/src/lauxlib.h +CMakeFiles/mojosetup.dir/lua/src/lstrlib.o: ../lua/src/lstrlib.c +CMakeFiles/mojosetup.dir/lua/src/lstrlib.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lstrlib.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lstrlib.o: ../lua/src/lualib.h + +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/ldebug.h +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/ldo.h +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/ltable.c +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/ltable.h +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/ltable.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/ltablib.o: ../lua/src/lauxlib.h +CMakeFiles/mojosetup.dir/lua/src/ltablib.o: ../lua/src/ltablib.c +CMakeFiles/mojosetup.dir/lua/src/ltablib.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/ltablib.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/ltablib.o: ../lua/src/lualib.h + +CMakeFiles/mojosetup.dir/lua/src/ltm.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/ltm.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/ltm.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/ltm.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/ltm.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/ltm.o: ../lua/src/lstring.h +CMakeFiles/mojosetup.dir/lua/src/ltm.o: ../lua/src/ltable.h +CMakeFiles/mojosetup.dir/lua/src/ltm.o: ../lua/src/ltm.c +CMakeFiles/mojosetup.dir/lua/src/ltm.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/ltm.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/ltm.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/ltm.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/ldebug.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/ldo.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/lfunc.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/lstring.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/lundump.c +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/lundump.h +CMakeFiles/mojosetup.dir/lua/src/lundump.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/ldebug.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/ldo.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/lfunc.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/lgc.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/lopcodes.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/lstring.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/ltable.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/lvm.c +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/lvm.h +CMakeFiles/mojosetup.dir/lua/src/lvm.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua/src/lzio.o: ../lua/src/llimits.h +CMakeFiles/mojosetup.dir/lua/src/lzio.o: ../lua/src/lmem.h +CMakeFiles/mojosetup.dir/lua/src/lzio.o: ../lua/src/lobject.h +CMakeFiles/mojosetup.dir/lua/src/lzio.o: ../lua/src/lstate.h +CMakeFiles/mojosetup.dir/lua/src/lzio.o: ../lua/src/ltm.h +CMakeFiles/mojosetup.dir/lua/src/lzio.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua/src/lzio.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua/src/lzio.o: ../lua/src/lzio.c +CMakeFiles/mojosetup.dir/lua/src/lzio.o: ../lua/src/lzio.h + +CMakeFiles/mojosetup.dir/lua_glue.o: ../lua/src/lauxlib.h +CMakeFiles/mojosetup.dir/lua_glue.o: ../lua/src/lua.h +CMakeFiles/mojosetup.dir/lua_glue.o: ../lua/src/luaconf.h +CMakeFiles/mojosetup.dir/lua_glue.o: ../lua/src/lualib.h +CMakeFiles/mojosetup.dir/lua_glue.o: ../fileio.h +CMakeFiles/mojosetup.dir/lua_glue.o: ../gui.h +CMakeFiles/mojosetup.dir/lua_glue.o: ../lua_glue.c +CMakeFiles/mojosetup.dir/lua_glue.o: ../lua_glue.h +CMakeFiles/mojosetup.dir/lua_glue.o: ../platform.h +CMakeFiles/mojosetup.dir/lua_glue.o: ../universal.h + +CMakeFiles/mojosetup.dir/mojosetup.o: ../fileio.h +CMakeFiles/mojosetup.dir/mojosetup.o: ../gui.h +CMakeFiles/mojosetup.dir/mojosetup.o: ../lua_glue.h +CMakeFiles/mojosetup.dir/mojosetup.o: ../mojosetup.c +CMakeFiles/mojosetup.dir/mojosetup.o: ../platform.h +CMakeFiles/mojosetup.dir/mojosetup.o: ../universal.h + +CMakeFiles/mojosetup.dir/platform_unix.o: ../fileio.h +CMakeFiles/mojosetup.dir/platform_unix.o: ../gui.h +CMakeFiles/mojosetup.dir/platform_unix.o: ../platform.h +CMakeFiles/mojosetup.dir/platform_unix.o: ../platform_unix.c +CMakeFiles/mojosetup.dir/platform_unix.o: ../universal.h + +CMakeFiles/mojosetup.dir/platform_windows.o: ../gui.h +CMakeFiles/mojosetup.dir/platform_windows.o: ../platform.h +CMakeFiles/mojosetup.dir/platform_windows.o: ../platform_windows.c +CMakeFiles/mojosetup.dir/platform_windows.o: ../universal.h + +CMakeFiles/mojosetup.dir/stb_image.o: ../stb_image.c +CMakeFiles/mojosetup.dir/stb_image.o: ../universal.h + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/flags.make b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/flags.make new file mode 100644 index 00000000..af60b456 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/flags.make @@ -0,0 +1,8 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +# compile C with /usr/bin/gcc +C_FLAGS = -I/home/softcoder/Code/mojosetup/. -I/home/softcoder/Code/mojosetup/lua/src -DAPPREV="hg-767:48f7a9461c37" -pipe -Wall -Werror -fsigned-char -fvisibility=hidden -fno-stack-protector -DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 + +C_DEFINES = -D__MOJOSETUP__=1 -DAPPID=mojosetup -D_REENTRANT -D_THREAD_SAFE -DPLATFORM_UNIX=1 -DLUA_USE_MKSTEMP=1 -DLUA_USE_ULONGJMP=1 -DPLATFORM_LITTLEENDIAN=1 -DSUPPORT_LUALIB_IO=1 -DSUPPORT_LUALIB_OS=1 -DSUPPORT_LUALIB_MATH=1 -DSUPPORT_LUALIB_DB=1 -DSUPPORT_LUALIB_PACKAGE=1 -DSUPPORT_CRC32=1 -DSUPPORT_MD5=1 -DSUPPORT_SHA1=1 -DSUPPORT_GUI_STDIO=1 -DGUI_STATIC_LINK_STDIO=1 -DSUPPORT_GUI_GTKPLUS2=1 -DSUPPORT_ZIP=1 -DSUPPORT_TAR=1 -DSUPPORT_GZIP=1 -DSUPPORT_BZIP2=1 -DBZ_NO_STDIO=1 -DSUPPORT_JPG=1 -DSUPPORT_PNG=1 -DSUPPORT_STBIMAGE=1 -DSUPPORT_URL_HTTP=1 -DSUPPORT_URL_FTP=1 -DMOJOSETUP_HAVE_MNTENT_H=1 + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/link.txt b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/link.txt new file mode 100644 index 00000000..5c014c13 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/gcc CMakeFiles/mojosetup.dir/buildver.o CMakeFiles/mojosetup.dir/mojosetup.o CMakeFiles/mojosetup.dir/gui.o CMakeFiles/mojosetup.dir/fileio.o CMakeFiles/mojosetup.dir/archive_zip.o CMakeFiles/mojosetup.dir/archive_tar.o CMakeFiles/mojosetup.dir/archive_uz2.o CMakeFiles/mojosetup.dir/archive_pck.o CMakeFiles/mojosetup.dir/checksum_crc32.o CMakeFiles/mojosetup.dir/checksum_md5.o CMakeFiles/mojosetup.dir/checksum_sha1.o CMakeFiles/mojosetup.dir/platform_unix.o CMakeFiles/mojosetup.dir/platform_windows.o CMakeFiles/mojosetup.dir/lua_glue.o CMakeFiles/mojosetup.dir/lua/src/lapi.o CMakeFiles/mojosetup.dir/lua/src/ldebug.o CMakeFiles/mojosetup.dir/lua/src/ldo.o CMakeFiles/mojosetup.dir/lua/src/ldump.o CMakeFiles/mojosetup.dir/lua/src/lfunc.o CMakeFiles/mojosetup.dir/lua/src/lgc.o CMakeFiles/mojosetup.dir/lua/src/lmem.o CMakeFiles/mojosetup.dir/lua/src/lobject.o CMakeFiles/mojosetup.dir/lua/src/lopcodes.o CMakeFiles/mojosetup.dir/lua/src/lstate.o CMakeFiles/mojosetup.dir/lua/src/lstring.o CMakeFiles/mojosetup.dir/lua/src/ltable.o CMakeFiles/mojosetup.dir/lua/src/ltm.o CMakeFiles/mojosetup.dir/lua/src/lundump.o CMakeFiles/mojosetup.dir/lua/src/lvm.o CMakeFiles/mojosetup.dir/lua/src/lzio.o CMakeFiles/mojosetup.dir/lua/src/lauxlib.o CMakeFiles/mojosetup.dir/lua/src/lbaselib.o CMakeFiles/mojosetup.dir/lua/src/lstrlib.o CMakeFiles/mojosetup.dir/lua/src/ltablib.o CMakeFiles/mojosetup.dir/lua/src/lparser.o CMakeFiles/mojosetup.dir/lua/src/llex.o CMakeFiles/mojosetup.dir/lua/src/lcode.o CMakeFiles/mojosetup.dir/lua/src/liolib.o CMakeFiles/mojosetup.dir/lua/src/loslib.o CMakeFiles/mojosetup.dir/lua/src/lmathlib.o CMakeFiles/mojosetup.dir/lua/src/ldblib.o CMakeFiles/mojosetup.dir/lua/src/loadlib.o CMakeFiles/mojosetup.dir/gui_stdio.o CMakeFiles/mojosetup.dir/stb_image.o CMakeFiles/mojosetup.dir/libfetch/fetch.o CMakeFiles/mojosetup.dir/libfetch/common.o CMakeFiles/mojosetup.dir/libfetch/ftp.o CMakeFiles/mojosetup.dir/libfetch/http.o -o mojosetup -lpthread -lz -lbz2 -ldl -lm diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/progress.make b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/progress.make new file mode 100644 index 00000000..369321ff --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetup.dir/progress.make @@ -0,0 +1,49 @@ +CMAKE_PROGRESS_1 = 32 +CMAKE_PROGRESS_2 = 33 +CMAKE_PROGRESS_3 = 34 +CMAKE_PROGRESS_4 = 35 +CMAKE_PROGRESS_5 = 36 +CMAKE_PROGRESS_6 = 37 +CMAKE_PROGRESS_7 = 38 +CMAKE_PROGRESS_8 = 39 +CMAKE_PROGRESS_9 = 40 +CMAKE_PROGRESS_10 = 41 +CMAKE_PROGRESS_11 = 42 +CMAKE_PROGRESS_12 = 43 +CMAKE_PROGRESS_13 = 44 +CMAKE_PROGRESS_14 = 45 +CMAKE_PROGRESS_15 = 46 +CMAKE_PROGRESS_16 = 47 +CMAKE_PROGRESS_17 = 48 +CMAKE_PROGRESS_18 = 49 +CMAKE_PROGRESS_19 = 50 +CMAKE_PROGRESS_20 = 51 +CMAKE_PROGRESS_21 = 52 +CMAKE_PROGRESS_22 = 53 +CMAKE_PROGRESS_23 = 54 +CMAKE_PROGRESS_24 = 55 +CMAKE_PROGRESS_25 = 56 +CMAKE_PROGRESS_26 = 57 +CMAKE_PROGRESS_27 = 58 +CMAKE_PROGRESS_28 = 59 +CMAKE_PROGRESS_29 = 60 +CMAKE_PROGRESS_30 = 61 +CMAKE_PROGRESS_31 = 62 +CMAKE_PROGRESS_32 = 63 +CMAKE_PROGRESS_33 = 64 +CMAKE_PROGRESS_34 = 65 +CMAKE_PROGRESS_35 = 66 +CMAKE_PROGRESS_36 = 67 +CMAKE_PROGRESS_37 = 68 +CMAKE_PROGRESS_38 = 69 +CMAKE_PROGRESS_39 = 70 +CMAKE_PROGRESS_40 = 71 +CMAKE_PROGRESS_41 = 72 +CMAKE_PROGRESS_42 = 73 +CMAKE_PROGRESS_43 = 74 +CMAKE_PROGRESS_44 = 75 +CMAKE_PROGRESS_45 = 76 +CMAKE_PROGRESS_46 = 77 +CMAKE_PROGRESS_47 = 78 +CMAKE_PROGRESS_48 = 79 + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/C.includecache b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/C.includecache new file mode 100644 index 00000000..328d51cd --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/C.includecache @@ -0,0 +1,32 @@ +#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/softcoder/Code/mojosetup/gui.h +universal.h +/home/softcoder/Code/mojosetup/universal.h + +/home/softcoder/Code/mojosetup/gui_gtkplus2.c +gui.h +/home/softcoder/Code/mojosetup/gui.h +gtk/gtk.h +- + +/home/softcoder/Code/mojosetup/universal.h +stdio.h +- +stdlib.h +- +string.h +- +assert.h +- +time.h +- +malloc.h +- + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/DependInfo.cmake b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/DependInfo.cmake new file mode 100644 index 00000000..f6782a55 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/DependInfo.cmake @@ -0,0 +1,47 @@ +# The set of languages for which implicit dependencies are needed: +SET(CMAKE_DEPENDS_LANGUAGES + "C" + ) +# The set of files for implicit dependencies of each language: +SET(CMAKE_DEPENDS_CHECK_C + "/home/softcoder/Code/mojosetup/gui_gtkplus2.c" "/home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o" + ) +SET(CMAKE_C_COMPILER_ID "GNU") + +# Preprocessor definitions for this target. +SET(CMAKE_TARGET_DEFINITIONS + "__MOJOSETUP__=1" + "APPID=mojosetup" + "_REENTRANT" + "_THREAD_SAFE" + "PLATFORM_UNIX=1" + "LUA_USE_MKSTEMP=1" + "LUA_USE_ULONGJMP=1" + "PLATFORM_LITTLEENDIAN=1" + "SUPPORT_LUALIB_IO=1" + "SUPPORT_LUALIB_OS=1" + "SUPPORT_LUALIB_MATH=1" + "SUPPORT_LUALIB_DB=1" + "SUPPORT_LUALIB_PACKAGE=1" + "SUPPORT_CRC32=1" + "SUPPORT_MD5=1" + "SUPPORT_SHA1=1" + "SUPPORT_GUI_STDIO=1" + "GUI_STATIC_LINK_STDIO=1" + "SUPPORT_GUI_GTKPLUS2=1" + "SUPPORT_ZIP=1" + "SUPPORT_TAR=1" + "SUPPORT_GZIP=1" + "SUPPORT_BZIP2=1" + "BZ_NO_STDIO=1" + "SUPPORT_JPG=1" + "SUPPORT_PNG=1" + "SUPPORT_STBIMAGE=1" + "SUPPORT_URL_HTTP=1" + "SUPPORT_URL_FTP=1" + "MOJOSETUP_HAVE_MNTENT_H=1" + ) + +# Targets to which this target links. +SET(CMAKE_TARGET_LINKED_INFO_FILES + ) diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/build.make b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/build.make new file mode 100644 index 00000000..3daa8a67 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/build.make @@ -0,0 +1,100 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canoncical targets will work. +.SUFFIXES: + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/softcoder/Code/mojosetup + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/softcoder/Code/mojosetup/build + +# Include any dependencies generated for this target. +include CMakeFiles/mojosetupgui_gtkplus2.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/mojosetupgui_gtkplus2.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/mojosetupgui_gtkplus2.dir/flags.make + +CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o: CMakeFiles/mojosetupgui_gtkplus2.dir/flags.make +CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o: ../gui_gtkplus2.c + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_1) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o -c /home/softcoder/Code/mojosetup/gui_gtkplus2.c + +CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.i" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -E /home/softcoder/Code/mojosetup/gui_gtkplus2.c > CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.i + +CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.s" + /usr/bin/gcc $(C_DEFINES) $(C_FLAGS) -S /home/softcoder/Code/mojosetup/gui_gtkplus2.c -o CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.s + +CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o.requires: +.PHONY : CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o.requires + +CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o.provides: CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o.requires + $(MAKE) -f CMakeFiles/mojosetupgui_gtkplus2.dir/build.make CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o.provides.build +.PHONY : CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o.provides + +CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o.provides.build: CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o +.PHONY : CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o.provides.build + +# Object files for target mojosetupgui_gtkplus2 +mojosetupgui_gtkplus2_OBJECTS = \ +"CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o" + +# External object files for target mojosetupgui_gtkplus2 +mojosetupgui_gtkplus2_EXTERNAL_OBJECTS = + +libmojosetupgui_gtkplus2.so: CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o +libmojosetupgui_gtkplus2.so: CMakeFiles/mojosetupgui_gtkplus2.dir/build.make +libmojosetupgui_gtkplus2.so: CMakeFiles/mojosetupgui_gtkplus2.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking C shared library libmojosetupgui_gtkplus2.so" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/mojosetupgui_gtkplus2.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/mojosetupgui_gtkplus2.dir/build: libmojosetupgui_gtkplus2.so +.PHONY : CMakeFiles/mojosetupgui_gtkplus2.dir/build + +CMakeFiles/mojosetupgui_gtkplus2.dir/requires: CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o.requires +.PHONY : CMakeFiles/mojosetupgui_gtkplus2.dir/requires + +CMakeFiles/mojosetupgui_gtkplus2.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/mojosetupgui_gtkplus2.dir/cmake_clean.cmake +.PHONY : CMakeFiles/mojosetupgui_gtkplus2.dir/clean + +CMakeFiles/mojosetupgui_gtkplus2.dir/depend: + cd /home/softcoder/Code/mojosetup/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/softcoder/Code/mojosetup /home/softcoder/Code/mojosetup /home/softcoder/Code/mojosetup/build /home/softcoder/Code/mojosetup/build /home/softcoder/Code/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/mojosetupgui_gtkplus2.dir/depend + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/cmake_clean.cmake b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/cmake_clean.cmake new file mode 100644 index 00000000..ae24bcf8 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +FILE(REMOVE_RECURSE + "CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o" + "libmojosetupgui_gtkplus2.pdb" + "libmojosetupgui_gtkplus2.so" +) + +# Per-language clean rules from dependency scanning. +FOREACH(lang C) + INCLUDE(CMakeFiles/mojosetupgui_gtkplus2.dir/cmake_clean_${lang}.cmake OPTIONAL) +ENDFOREACH(lang) diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/depend.internal b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/depend.internal new file mode 100644 index 00000000..672bb642 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/depend.internal @@ -0,0 +1,7 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o + /home/softcoder/Code/mojosetup/gui.h + /home/softcoder/Code/mojosetup/gui_gtkplus2.c + /home/softcoder/Code/mojosetup/universal.h diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/depend.make b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/depend.make new file mode 100644 index 00000000..7431b41e --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/depend.make @@ -0,0 +1,7 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o: ../gui.h +CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o: ../gui_gtkplus2.c +CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o: ../universal.h + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/flags.make b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/flags.make new file mode 100644 index 00000000..61aa8a9a --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/flags.make @@ -0,0 +1,8 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +# compile C with /usr/bin/gcc +C_FLAGS = -fPIC -I/home/softcoder/Code/mojosetup/. -I/home/softcoder/Code/mojosetup/lua/src -DAPPREV="hg-767:48f7a9461c37" -pipe -Wall -Werror -fsigned-char -fvisibility=hidden -fno-stack-protector -DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 + +C_DEFINES = -Dmojosetupgui_gtkplus2_EXPORTS -D__MOJOSETUP__=1 -DAPPID=mojosetup -D_REENTRANT -D_THREAD_SAFE -DPLATFORM_UNIX=1 -DLUA_USE_MKSTEMP=1 -DLUA_USE_ULONGJMP=1 -DPLATFORM_LITTLEENDIAN=1 -DSUPPORT_LUALIB_IO=1 -DSUPPORT_LUALIB_OS=1 -DSUPPORT_LUALIB_MATH=1 -DSUPPORT_LUALIB_DB=1 -DSUPPORT_LUALIB_PACKAGE=1 -DSUPPORT_CRC32=1 -DSUPPORT_MD5=1 -DSUPPORT_SHA1=1 -DSUPPORT_GUI_STDIO=1 -DGUI_STATIC_LINK_STDIO=1 -DSUPPORT_GUI_GTKPLUS2=1 -DSUPPORT_ZIP=1 -DSUPPORT_TAR=1 -DSUPPORT_GZIP=1 -DSUPPORT_BZIP2=1 -DBZ_NO_STDIO=1 -DSUPPORT_JPG=1 -DSUPPORT_PNG=1 -DSUPPORT_STBIMAGE=1 -DSUPPORT_URL_HTTP=1 -DSUPPORT_URL_FTP=1 -DMOJOSETUP_HAVE_MNTENT_H=1 + diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/link.txt b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/link.txt new file mode 100644 index 00000000..aa8e0d32 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/gcc -fPIC -shared -Wl,-soname,libmojosetupgui_gtkplus2.so -o libmojosetupgui_gtkplus2.so CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o -lgtk-x11-2.0 diff --git a/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/progress.make b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/progress.make new file mode 100644 index 00000000..e12baea5 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/mojosetupgui_gtkplus2.dir/progress.make @@ -0,0 +1,2 @@ +CMAKE_PROGRESS_1 = 80 + diff --git a/mk/linux/mojosetup/build/CMakeFiles/progress.marks b/mk/linux/mojosetup/build/CMakeFiles/progress.marks new file mode 100644 index 00000000..d15a2cc4 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/progress.marks @@ -0,0 +1 @@ +80 diff --git a/mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/DependInfo.cmake b/mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/DependInfo.cmake new file mode 100644 index 00000000..c6c259e1 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/DependInfo.cmake @@ -0,0 +1,42 @@ +# The set of languages for which implicit dependencies are needed: +SET(CMAKE_DEPENDS_LANGUAGES + ) +# The set of files for implicit dependencies of each language: + +# Preprocessor definitions for this target. +SET(CMAKE_TARGET_DEFINITIONS + "__MOJOSETUP__=1" + "APPID=mojosetup" + "_REENTRANT" + "_THREAD_SAFE" + "PLATFORM_UNIX=1" + "LUA_USE_MKSTEMP=1" + "LUA_USE_ULONGJMP=1" + "PLATFORM_LITTLEENDIAN=1" + "SUPPORT_LUALIB_IO=1" + "SUPPORT_LUALIB_OS=1" + "SUPPORT_LUALIB_MATH=1" + "SUPPORT_LUALIB_DB=1" + "SUPPORT_LUALIB_PACKAGE=1" + "SUPPORT_CRC32=1" + "SUPPORT_MD5=1" + "SUPPORT_SHA1=1" + "SUPPORT_GUI_STDIO=1" + "GUI_STATIC_LINK_STDIO=1" + "SUPPORT_GUI_GTKPLUS2=1" + "SUPPORT_ZIP=1" + "SUPPORT_TAR=1" + "SUPPORT_GZIP=1" + "SUPPORT_BZIP2=1" + "BZ_NO_STDIO=1" + "SUPPORT_JPG=1" + "SUPPORT_PNG=1" + "SUPPORT_STBIMAGE=1" + "SUPPORT_URL_HTTP=1" + "SUPPORT_URL_FTP=1" + "MOJOSETUP_HAVE_MNTENT_H=1" + ) + +# Targets to which this target links. +SET(CMAKE_TARGET_LINKED_INFO_FILES + ) diff --git a/mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/build.make b/mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/build.make new file mode 100644 index 00000000..166dbc7b --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/build.make @@ -0,0 +1,69 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canoncical targets will work. +.SUFFIXES: + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/softcoder/Code/mojosetup + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/softcoder/Code/mojosetup/build + +# Utility rule file for skeleton. + +CMakeFiles/skeleton: + $(CMAKE_COMMAND) -E cmake_progress_report /home/softcoder/Code/mojosetup/build/CMakeFiles $(CMAKE_PROGRESS_1) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold "Assembling Skeleton..." + /usr/bin/cmake -DDIR=/home/softcoder/Code/mojosetup/build/skeleton -P /home/softcoder/Code/mojosetup/misc/rm_recurse.cmake + /usr/bin/cmake -DDIR=/home/softcoder/Code/mojosetup/build/skeleton -P /home/softcoder/Code/mojosetup/misc/mkdir.cmake + /usr/bin/cmake -DDIR=/home/softcoder/Code/mojosetup/build/skeleton/scripts -P /home/softcoder/Code/mojosetup/misc/mkdir.cmake + /usr/bin/cmake -DDIR=/home/softcoder/Code/mojosetup/build/skeleton/guis -P /home/softcoder/Code/mojosetup/misc/mkdir.cmake + /usr/bin/cmake -DDIR=/home/softcoder/Code/mojosetup/build/skeleton/data -P /home/softcoder/Code/mojosetup/misc/mkdir.cmake + /usr/bin/cmake -DFROM=/home/softcoder/Code/mojosetup/scripts/*.lua -DTO=/home/softcoder/Code/mojosetup/build/skeleton/scripts -P /home/softcoder/Code/mojosetup/misc/cp.cmake + /usr/bin/cmake -DFROM=/home/softcoder/Code/mojosetup/*mojosetupgui*.* -DTO=/home/softcoder/Code/mojosetup/build/skeleton/guis -P /home/softcoder/Code/mojosetup/misc/cp.cmake + /usr/bin/cmake -DFROM=/home/softcoder/Code/mojosetup/build/mojosetup -DTO=/home/softcoder/Code/mojosetup/build/skeleton -P /home/softcoder/Code/mojosetup/misc/cp.cmake + +skeleton: CMakeFiles/skeleton +skeleton: CMakeFiles/skeleton.dir/build.make +.PHONY : skeleton + +# Rule to build all files generated by this target. +CMakeFiles/skeleton.dir/build: skeleton +.PHONY : CMakeFiles/skeleton.dir/build + +CMakeFiles/skeleton.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/skeleton.dir/cmake_clean.cmake +.PHONY : CMakeFiles/skeleton.dir/clean + +CMakeFiles/skeleton.dir/depend: + cd /home/softcoder/Code/mojosetup/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/softcoder/Code/mojosetup /home/softcoder/Code/mojosetup /home/softcoder/Code/mojosetup/build /home/softcoder/Code/mojosetup/build /home/softcoder/Code/mojosetup/build/CMakeFiles/skeleton.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/skeleton.dir/depend + diff --git a/mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/cmake_clean.cmake b/mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/cmake_clean.cmake new file mode 100644 index 00000000..1dc597d1 --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +FILE(REMOVE_RECURSE + "CMakeFiles/skeleton" +) + +# Per-language clean rules from dependency scanning. +FOREACH(lang) + INCLUDE(CMakeFiles/skeleton.dir/cmake_clean_${lang}.cmake OPTIONAL) +ENDFOREACH(lang) diff --git a/mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/progress.make b/mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/progress.make new file mode 100644 index 00000000..4e4c166c --- /dev/null +++ b/mk/linux/mojosetup/build/CMakeFiles/skeleton.dir/progress.make @@ -0,0 +1,2 @@ +CMAKE_PROGRESS_1 = 81 + diff --git a/mk/linux/mojosetup/build/Makefile b/mk/linux/mojosetup/build/Makefile new file mode 100644 index 00000000..adc9c139 --- /dev/null +++ b/mk/linux/mojosetup/build/Makefile @@ -0,0 +1,1209 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canoncical targets will work. +.SUFFIXES: + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/softcoder/Code/mojosetup + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/softcoder/Code/mojosetup/build + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running interactive CMake command-line interface..." + /usr/bin/cmake -i . +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/softcoder/Code/mojosetup/build/CMakeFiles /home/softcoder/Code/mojosetup/build/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/softcoder/Code/mojosetup/build/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named lua + +# Build rule for target. +lua: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 lua +.PHONY : lua + +# fast build rule for target. +lua/fast: + $(MAKE) -f CMakeFiles/lua.dir/build.make CMakeFiles/lua.dir/build +.PHONY : lua/fast + +#============================================================================= +# Target rules for targets named mojoluac + +# Build rule for target. +mojoluac: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 mojoluac +.PHONY : mojoluac + +# fast build rule for target. +mojoluac/fast: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/build +.PHONY : mojoluac/fast + +#============================================================================= +# Target rules for targets named mojosetup + +# Build rule for target. +mojosetup: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 mojosetup +.PHONY : mojosetup + +# fast build rule for target. +mojosetup/fast: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/build +.PHONY : mojosetup/fast + +#============================================================================= +# Target rules for targets named mojosetupgui_gtkplus2 + +# Build rule for target. +mojosetupgui_gtkplus2: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 mojosetupgui_gtkplus2 +.PHONY : mojosetupgui_gtkplus2 + +# fast build rule for target. +mojosetupgui_gtkplus2/fast: + $(MAKE) -f CMakeFiles/mojosetupgui_gtkplus2.dir/build.make CMakeFiles/mojosetupgui_gtkplus2.dir/build +.PHONY : mojosetupgui_gtkplus2/fast + +#============================================================================= +# Target rules for targets named skeleton + +# Build rule for target. +skeleton: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 skeleton +.PHONY : skeleton + +# fast build rule for target. +skeleton/fast: + $(MAKE) -f CMakeFiles/skeleton.dir/build.make CMakeFiles/skeleton.dir/build +.PHONY : skeleton/fast + +# target to build an object file +archive_pck.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_pck.o +.PHONY : archive_pck.o + +# target to preprocess a source file +archive_pck.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_pck.i +.PHONY : archive_pck.i + +# target to generate assembly for a file +archive_pck.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_pck.s +.PHONY : archive_pck.s + +# target to build an object file +archive_tar.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_tar.o +.PHONY : archive_tar.o + +# target to preprocess a source file +archive_tar.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_tar.i +.PHONY : archive_tar.i + +# target to generate assembly for a file +archive_tar.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_tar.s +.PHONY : archive_tar.s + +# target to build an object file +archive_uz2.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_uz2.o +.PHONY : archive_uz2.o + +# target to preprocess a source file +archive_uz2.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_uz2.i +.PHONY : archive_uz2.i + +# target to generate assembly for a file +archive_uz2.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_uz2.s +.PHONY : archive_uz2.s + +# target to build an object file +archive_zip.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_zip.o +.PHONY : archive_zip.o + +# target to preprocess a source file +archive_zip.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_zip.i +.PHONY : archive_zip.i + +# target to generate assembly for a file +archive_zip.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/archive_zip.s +.PHONY : archive_zip.s + +# target to build an object file +buildver.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/buildver.o +.PHONY : buildver.o + +# target to preprocess a source file +buildver.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/buildver.i +.PHONY : buildver.i + +# target to generate assembly for a file +buildver.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/buildver.s +.PHONY : buildver.s + +# target to build an object file +checksum_crc32.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/checksum_crc32.o +.PHONY : checksum_crc32.o + +# target to preprocess a source file +checksum_crc32.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/checksum_crc32.i +.PHONY : checksum_crc32.i + +# target to generate assembly for a file +checksum_crc32.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/checksum_crc32.s +.PHONY : checksum_crc32.s + +# target to build an object file +checksum_md5.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/checksum_md5.o +.PHONY : checksum_md5.o + +# target to preprocess a source file +checksum_md5.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/checksum_md5.i +.PHONY : checksum_md5.i + +# target to generate assembly for a file +checksum_md5.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/checksum_md5.s +.PHONY : checksum_md5.s + +# target to build an object file +checksum_sha1.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/checksum_sha1.o +.PHONY : checksum_sha1.o + +# target to preprocess a source file +checksum_sha1.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/checksum_sha1.i +.PHONY : checksum_sha1.i + +# target to generate assembly for a file +checksum_sha1.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/checksum_sha1.s +.PHONY : checksum_sha1.s + +# target to build an object file +fileio.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/fileio.o +.PHONY : fileio.o + +# target to preprocess a source file +fileio.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/fileio.i +.PHONY : fileio.i + +# target to generate assembly for a file +fileio.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/fileio.s +.PHONY : fileio.s + +# target to build an object file +gui.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/gui.o +.PHONY : gui.o + +# target to preprocess a source file +gui.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/gui.i +.PHONY : gui.i + +# target to generate assembly for a file +gui.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/gui.s +.PHONY : gui.s + +# target to build an object file +gui_gtkplus2.o: + $(MAKE) -f CMakeFiles/mojosetupgui_gtkplus2.dir/build.make CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.o +.PHONY : gui_gtkplus2.o + +# target to preprocess a source file +gui_gtkplus2.i: + $(MAKE) -f CMakeFiles/mojosetupgui_gtkplus2.dir/build.make CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.i +.PHONY : gui_gtkplus2.i + +# target to generate assembly for a file +gui_gtkplus2.s: + $(MAKE) -f CMakeFiles/mojosetupgui_gtkplus2.dir/build.make CMakeFiles/mojosetupgui_gtkplus2.dir/gui_gtkplus2.s +.PHONY : gui_gtkplus2.s + +# target to build an object file +gui_stdio.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/gui_stdio.o +.PHONY : gui_stdio.o + +# target to preprocess a source file +gui_stdio.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/gui_stdio.i +.PHONY : gui_stdio.i + +# target to generate assembly for a file +gui_stdio.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/gui_stdio.s +.PHONY : gui_stdio.s + +# target to build an object file +libfetch/common.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/common.o +.PHONY : libfetch/common.o + +# target to preprocess a source file +libfetch/common.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/common.i +.PHONY : libfetch/common.i + +# target to generate assembly for a file +libfetch/common.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/common.s +.PHONY : libfetch/common.s + +# target to build an object file +libfetch/fetch.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/fetch.o +.PHONY : libfetch/fetch.o + +# target to preprocess a source file +libfetch/fetch.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/fetch.i +.PHONY : libfetch/fetch.i + +# target to generate assembly for a file +libfetch/fetch.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/fetch.s +.PHONY : libfetch/fetch.s + +# target to build an object file +libfetch/ftp.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/ftp.o +.PHONY : libfetch/ftp.o + +# target to preprocess a source file +libfetch/ftp.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/ftp.i +.PHONY : libfetch/ftp.i + +# target to generate assembly for a file +libfetch/ftp.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/ftp.s +.PHONY : libfetch/ftp.s + +# target to build an object file +libfetch/http.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/http.o +.PHONY : libfetch/http.o + +# target to preprocess a source file +libfetch/http.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/http.i +.PHONY : libfetch/http.i + +# target to generate assembly for a file +libfetch/http.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/libfetch/http.s +.PHONY : libfetch/http.s + +# target to build an object file +lua/src/lapi.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lapi.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lapi.o +.PHONY : lua/src/lapi.o + +# target to preprocess a source file +lua/src/lapi.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lapi.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lapi.i +.PHONY : lua/src/lapi.i + +# target to generate assembly for a file +lua/src/lapi.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lapi.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lapi.s +.PHONY : lua/src/lapi.s + +# target to build an object file +lua/src/lauxlib.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lauxlib.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lauxlib.o +.PHONY : lua/src/lauxlib.o + +# target to preprocess a source file +lua/src/lauxlib.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lauxlib.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lauxlib.i +.PHONY : lua/src/lauxlib.i + +# target to generate assembly for a file +lua/src/lauxlib.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lauxlib.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lauxlib.s +.PHONY : lua/src/lauxlib.s + +# target to build an object file +lua/src/lbaselib.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lbaselib.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lbaselib.o +.PHONY : lua/src/lbaselib.o + +# target to preprocess a source file +lua/src/lbaselib.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lbaselib.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lbaselib.i +.PHONY : lua/src/lbaselib.i + +# target to generate assembly for a file +lua/src/lbaselib.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lbaselib.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lbaselib.s +.PHONY : lua/src/lbaselib.s + +# target to build an object file +lua/src/lcode.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lcode.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lcode.o +.PHONY : lua/src/lcode.o + +# target to preprocess a source file +lua/src/lcode.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lcode.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lcode.i +.PHONY : lua/src/lcode.i + +# target to generate assembly for a file +lua/src/lcode.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lcode.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lcode.s +.PHONY : lua/src/lcode.s + +# target to build an object file +lua/src/ldblib.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldblib.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldblib.o +.PHONY : lua/src/ldblib.o + +# target to preprocess a source file +lua/src/ldblib.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldblib.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldblib.i +.PHONY : lua/src/ldblib.i + +# target to generate assembly for a file +lua/src/ldblib.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldblib.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldblib.s +.PHONY : lua/src/ldblib.s + +# target to build an object file +lua/src/ldebug.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldebug.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldebug.o +.PHONY : lua/src/ldebug.o + +# target to preprocess a source file +lua/src/ldebug.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldebug.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldebug.i +.PHONY : lua/src/ldebug.i + +# target to generate assembly for a file +lua/src/ldebug.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldebug.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldebug.s +.PHONY : lua/src/ldebug.s + +# target to build an object file +lua/src/ldo.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldo.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldo.o +.PHONY : lua/src/ldo.o + +# target to preprocess a source file +lua/src/ldo.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldo.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldo.i +.PHONY : lua/src/ldo.i + +# target to generate assembly for a file +lua/src/ldo.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldo.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldo.s +.PHONY : lua/src/ldo.s + +# target to build an object file +lua/src/ldump.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldump.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldump.o +.PHONY : lua/src/ldump.o + +# target to preprocess a source file +lua/src/ldump.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldump.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldump.i +.PHONY : lua/src/ldump.i + +# target to generate assembly for a file +lua/src/ldump.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ldump.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ldump.s +.PHONY : lua/src/ldump.s + +# target to build an object file +lua/src/lfunc.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lfunc.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lfunc.o +.PHONY : lua/src/lfunc.o + +# target to preprocess a source file +lua/src/lfunc.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lfunc.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lfunc.i +.PHONY : lua/src/lfunc.i + +# target to generate assembly for a file +lua/src/lfunc.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lfunc.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lfunc.s +.PHONY : lua/src/lfunc.s + +# target to build an object file +lua/src/lgc.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lgc.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lgc.o +.PHONY : lua/src/lgc.o + +# target to preprocess a source file +lua/src/lgc.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lgc.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lgc.i +.PHONY : lua/src/lgc.i + +# target to generate assembly for a file +lua/src/lgc.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lgc.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lgc.s +.PHONY : lua/src/lgc.s + +# target to build an object file +lua/src/linit.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/linit.o +.PHONY : lua/src/linit.o + +# target to preprocess a source file +lua/src/linit.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/linit.i +.PHONY : lua/src/linit.i + +# target to generate assembly for a file +lua/src/linit.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/linit.s +.PHONY : lua/src/linit.s + +# target to build an object file +lua/src/liolib.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/liolib.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/liolib.o +.PHONY : lua/src/liolib.o + +# target to preprocess a source file +lua/src/liolib.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/liolib.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/liolib.i +.PHONY : lua/src/liolib.i + +# target to generate assembly for a file +lua/src/liolib.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/liolib.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/liolib.s +.PHONY : lua/src/liolib.s + +# target to build an object file +lua/src/llex.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/llex.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/llex.o +.PHONY : lua/src/llex.o + +# target to preprocess a source file +lua/src/llex.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/llex.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/llex.i +.PHONY : lua/src/llex.i + +# target to generate assembly for a file +lua/src/llex.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/llex.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/llex.s +.PHONY : lua/src/llex.s + +# target to build an object file +lua/src/lmathlib.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lmathlib.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lmathlib.o +.PHONY : lua/src/lmathlib.o + +# target to preprocess a source file +lua/src/lmathlib.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lmathlib.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lmathlib.i +.PHONY : lua/src/lmathlib.i + +# target to generate assembly for a file +lua/src/lmathlib.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lmathlib.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lmathlib.s +.PHONY : lua/src/lmathlib.s + +# target to build an object file +lua/src/lmem.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lmem.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lmem.o +.PHONY : lua/src/lmem.o + +# target to preprocess a source file +lua/src/lmem.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lmem.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lmem.i +.PHONY : lua/src/lmem.i + +# target to generate assembly for a file +lua/src/lmem.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lmem.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lmem.s +.PHONY : lua/src/lmem.s + +# target to build an object file +lua/src/loadlib.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/loadlib.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/loadlib.o +.PHONY : lua/src/loadlib.o + +# target to preprocess a source file +lua/src/loadlib.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/loadlib.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/loadlib.i +.PHONY : lua/src/loadlib.i + +# target to generate assembly for a file +lua/src/loadlib.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/loadlib.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/loadlib.s +.PHONY : lua/src/loadlib.s + +# target to build an object file +lua/src/lobject.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lobject.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lobject.o +.PHONY : lua/src/lobject.o + +# target to preprocess a source file +lua/src/lobject.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lobject.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lobject.i +.PHONY : lua/src/lobject.i + +# target to generate assembly for a file +lua/src/lobject.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lobject.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lobject.s +.PHONY : lua/src/lobject.s + +# target to build an object file +lua/src/lopcodes.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lopcodes.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lopcodes.o +.PHONY : lua/src/lopcodes.o + +# target to preprocess a source file +lua/src/lopcodes.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lopcodes.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lopcodes.i +.PHONY : lua/src/lopcodes.i + +# target to generate assembly for a file +lua/src/lopcodes.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lopcodes.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lopcodes.s +.PHONY : lua/src/lopcodes.s + +# target to build an object file +lua/src/loslib.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/loslib.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/loslib.o +.PHONY : lua/src/loslib.o + +# target to preprocess a source file +lua/src/loslib.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/loslib.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/loslib.i +.PHONY : lua/src/loslib.i + +# target to generate assembly for a file +lua/src/loslib.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/loslib.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/loslib.s +.PHONY : lua/src/loslib.s + +# target to build an object file +lua/src/lparser.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lparser.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lparser.o +.PHONY : lua/src/lparser.o + +# target to preprocess a source file +lua/src/lparser.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lparser.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lparser.i +.PHONY : lua/src/lparser.i + +# target to generate assembly for a file +lua/src/lparser.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lparser.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lparser.s +.PHONY : lua/src/lparser.s + +# target to build an object file +lua/src/lstate.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lstate.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lstate.o +.PHONY : lua/src/lstate.o + +# target to preprocess a source file +lua/src/lstate.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lstate.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lstate.i +.PHONY : lua/src/lstate.i + +# target to generate assembly for a file +lua/src/lstate.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lstate.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lstate.s +.PHONY : lua/src/lstate.s + +# target to build an object file +lua/src/lstring.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lstring.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lstring.o +.PHONY : lua/src/lstring.o + +# target to preprocess a source file +lua/src/lstring.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lstring.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lstring.i +.PHONY : lua/src/lstring.i + +# target to generate assembly for a file +lua/src/lstring.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lstring.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lstring.s +.PHONY : lua/src/lstring.s + +# target to build an object file +lua/src/lstrlib.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lstrlib.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lstrlib.o +.PHONY : lua/src/lstrlib.o + +# target to preprocess a source file +lua/src/lstrlib.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lstrlib.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lstrlib.i +.PHONY : lua/src/lstrlib.i + +# target to generate assembly for a file +lua/src/lstrlib.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lstrlib.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lstrlib.s +.PHONY : lua/src/lstrlib.s + +# target to build an object file +lua/src/ltable.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ltable.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ltable.o +.PHONY : lua/src/ltable.o + +# target to preprocess a source file +lua/src/ltable.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ltable.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ltable.i +.PHONY : lua/src/ltable.i + +# target to generate assembly for a file +lua/src/ltable.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ltable.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ltable.s +.PHONY : lua/src/ltable.s + +# target to build an object file +lua/src/ltablib.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ltablib.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ltablib.o +.PHONY : lua/src/ltablib.o + +# target to preprocess a source file +lua/src/ltablib.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ltablib.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ltablib.i +.PHONY : lua/src/ltablib.i + +# target to generate assembly for a file +lua/src/ltablib.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ltablib.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ltablib.s +.PHONY : lua/src/ltablib.s + +# target to build an object file +lua/src/ltm.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ltm.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ltm.o +.PHONY : lua/src/ltm.o + +# target to preprocess a source file +lua/src/ltm.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ltm.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ltm.i +.PHONY : lua/src/ltm.i + +# target to generate assembly for a file +lua/src/ltm.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/ltm.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/ltm.s +.PHONY : lua/src/ltm.s + +# target to build an object file +lua/src/luac.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/luac.o +.PHONY : lua/src/luac.o + +# target to preprocess a source file +lua/src/luac.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/luac.i +.PHONY : lua/src/luac.i + +# target to generate assembly for a file +lua/src/luac.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/luac.s +.PHONY : lua/src/luac.s + +# target to build an object file +lua/src/lundump.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lundump.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lundump.o +.PHONY : lua/src/lundump.o + +# target to preprocess a source file +lua/src/lundump.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lundump.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lundump.i +.PHONY : lua/src/lundump.i + +# target to generate assembly for a file +lua/src/lundump.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lundump.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lundump.s +.PHONY : lua/src/lundump.s + +# target to build an object file +lua/src/lvm.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lvm.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lvm.o +.PHONY : lua/src/lvm.o + +# target to preprocess a source file +lua/src/lvm.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lvm.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lvm.i +.PHONY : lua/src/lvm.i + +# target to generate assembly for a file +lua/src/lvm.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lvm.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lvm.s +.PHONY : lua/src/lvm.s + +# target to build an object file +lua/src/lzio.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lzio.o + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lzio.o +.PHONY : lua/src/lzio.o + +# target to preprocess a source file +lua/src/lzio.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lzio.i + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lzio.i +.PHONY : lua/src/lzio.i + +# target to generate assembly for a file +lua/src/lzio.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/lzio.s + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua/src/lzio.s +.PHONY : lua/src/lzio.s + +# target to build an object file +lua/src/print.o: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/print.o +.PHONY : lua/src/print.o + +# target to preprocess a source file +lua/src/print.i: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/print.i +.PHONY : lua/src/print.i + +# target to generate assembly for a file +lua/src/print.s: + $(MAKE) -f CMakeFiles/mojoluac.dir/build.make CMakeFiles/mojoluac.dir/lua/src/print.s +.PHONY : lua/src/print.s + +# target to build an object file +lua_glue.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua_glue.o +.PHONY : lua_glue.o + +# target to preprocess a source file +lua_glue.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua_glue.i +.PHONY : lua_glue.i + +# target to generate assembly for a file +lua_glue.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/lua_glue.s +.PHONY : lua_glue.s + +# target to build an object file +mojosetup.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/mojosetup.o +.PHONY : mojosetup.o + +# target to preprocess a source file +mojosetup.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/mojosetup.i +.PHONY : mojosetup.i + +# target to generate assembly for a file +mojosetup.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/mojosetup.s +.PHONY : mojosetup.s + +# target to build an object file +platform_unix.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/platform_unix.o +.PHONY : platform_unix.o + +# target to preprocess a source file +platform_unix.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/platform_unix.i +.PHONY : platform_unix.i + +# target to generate assembly for a file +platform_unix.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/platform_unix.s +.PHONY : platform_unix.s + +# target to build an object file +platform_windows.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/platform_windows.o +.PHONY : platform_windows.o + +# target to preprocess a source file +platform_windows.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/platform_windows.i +.PHONY : platform_windows.i + +# target to generate assembly for a file +platform_windows.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/platform_windows.s +.PHONY : platform_windows.s + +# target to build an object file +stb_image.o: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/stb_image.o +.PHONY : stb_image.o + +# target to preprocess a source file +stb_image.i: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/stb_image.i +.PHONY : stb_image.i + +# target to generate assembly for a file +stb_image.s: + $(MAKE) -f CMakeFiles/mojosetup.dir/build.make CMakeFiles/mojosetup.dir/stb_image.s +.PHONY : stb_image.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... lua" + @echo "... mojoluac" + @echo "... mojosetup" + @echo "... mojosetupgui_gtkplus2" + @echo "... rebuild_cache" + @echo "... skeleton" + @echo "... archive_pck.o" + @echo "... archive_pck.i" + @echo "... archive_pck.s" + @echo "... archive_tar.o" + @echo "... archive_tar.i" + @echo "... archive_tar.s" + @echo "... archive_uz2.o" + @echo "... archive_uz2.i" + @echo "... archive_uz2.s" + @echo "... archive_zip.o" + @echo "... archive_zip.i" + @echo "... archive_zip.s" + @echo "... buildver.o" + @echo "... buildver.i" + @echo "... buildver.s" + @echo "... checksum_crc32.o" + @echo "... checksum_crc32.i" + @echo "... checksum_crc32.s" + @echo "... checksum_md5.o" + @echo "... checksum_md5.i" + @echo "... checksum_md5.s" + @echo "... checksum_sha1.o" + @echo "... checksum_sha1.i" + @echo "... checksum_sha1.s" + @echo "... fileio.o" + @echo "... fileio.i" + @echo "... fileio.s" + @echo "... gui.o" + @echo "... gui.i" + @echo "... gui.s" + @echo "... gui_gtkplus2.o" + @echo "... gui_gtkplus2.i" + @echo "... gui_gtkplus2.s" + @echo "... gui_stdio.o" + @echo "... gui_stdio.i" + @echo "... gui_stdio.s" + @echo "... libfetch/common.o" + @echo "... libfetch/common.i" + @echo "... libfetch/common.s" + @echo "... libfetch/fetch.o" + @echo "... libfetch/fetch.i" + @echo "... libfetch/fetch.s" + @echo "... libfetch/ftp.o" + @echo "... libfetch/ftp.i" + @echo "... libfetch/ftp.s" + @echo "... libfetch/http.o" + @echo "... libfetch/http.i" + @echo "... libfetch/http.s" + @echo "... lua/src/lapi.o" + @echo "... lua/src/lapi.i" + @echo "... lua/src/lapi.s" + @echo "... lua/src/lauxlib.o" + @echo "... lua/src/lauxlib.i" + @echo "... lua/src/lauxlib.s" + @echo "... lua/src/lbaselib.o" + @echo "... lua/src/lbaselib.i" + @echo "... lua/src/lbaselib.s" + @echo "... lua/src/lcode.o" + @echo "... lua/src/lcode.i" + @echo "... lua/src/lcode.s" + @echo "... lua/src/ldblib.o" + @echo "... lua/src/ldblib.i" + @echo "... lua/src/ldblib.s" + @echo "... lua/src/ldebug.o" + @echo "... lua/src/ldebug.i" + @echo "... lua/src/ldebug.s" + @echo "... lua/src/ldo.o" + @echo "... lua/src/ldo.i" + @echo "... lua/src/ldo.s" + @echo "... lua/src/ldump.o" + @echo "... lua/src/ldump.i" + @echo "... lua/src/ldump.s" + @echo "... lua/src/lfunc.o" + @echo "... lua/src/lfunc.i" + @echo "... lua/src/lfunc.s" + @echo "... lua/src/lgc.o" + @echo "... lua/src/lgc.i" + @echo "... lua/src/lgc.s" + @echo "... lua/src/linit.o" + @echo "... lua/src/linit.i" + @echo "... lua/src/linit.s" + @echo "... lua/src/liolib.o" + @echo "... lua/src/liolib.i" + @echo "... lua/src/liolib.s" + @echo "... lua/src/llex.o" + @echo "... lua/src/llex.i" + @echo "... lua/src/llex.s" + @echo "... lua/src/lmathlib.o" + @echo "... lua/src/lmathlib.i" + @echo "... lua/src/lmathlib.s" + @echo "... lua/src/lmem.o" + @echo "... lua/src/lmem.i" + @echo "... lua/src/lmem.s" + @echo "... lua/src/loadlib.o" + @echo "... lua/src/loadlib.i" + @echo "... lua/src/loadlib.s" + @echo "... lua/src/lobject.o" + @echo "... lua/src/lobject.i" + @echo "... lua/src/lobject.s" + @echo "... lua/src/lopcodes.o" + @echo "... lua/src/lopcodes.i" + @echo "... lua/src/lopcodes.s" + @echo "... lua/src/loslib.o" + @echo "... lua/src/loslib.i" + @echo "... lua/src/loslib.s" + @echo "... lua/src/lparser.o" + @echo "... lua/src/lparser.i" + @echo "... lua/src/lparser.s" + @echo "... lua/src/lstate.o" + @echo "... lua/src/lstate.i" + @echo "... lua/src/lstate.s" + @echo "... lua/src/lstring.o" + @echo "... lua/src/lstring.i" + @echo "... lua/src/lstring.s" + @echo "... lua/src/lstrlib.o" + @echo "... lua/src/lstrlib.i" + @echo "... lua/src/lstrlib.s" + @echo "... lua/src/ltable.o" + @echo "... lua/src/ltable.i" + @echo "... lua/src/ltable.s" + @echo "... lua/src/ltablib.o" + @echo "... lua/src/ltablib.i" + @echo "... lua/src/ltablib.s" + @echo "... lua/src/ltm.o" + @echo "... lua/src/ltm.i" + @echo "... lua/src/ltm.s" + @echo "... lua/src/luac.o" + @echo "... lua/src/luac.i" + @echo "... lua/src/luac.s" + @echo "... lua/src/lundump.o" + @echo "... lua/src/lundump.i" + @echo "... lua/src/lundump.s" + @echo "... lua/src/lvm.o" + @echo "... lua/src/lvm.i" + @echo "... lua/src/lvm.s" + @echo "... lua/src/lzio.o" + @echo "... lua/src/lzio.i" + @echo "... lua/src/lzio.s" + @echo "... lua/src/print.o" + @echo "... lua/src/print.i" + @echo "... lua/src/print.s" + @echo "... lua_glue.o" + @echo "... lua_glue.i" + @echo "... lua_glue.s" + @echo "... mojosetup.o" + @echo "... mojosetup.i" + @echo "... mojosetup.s" + @echo "... platform_unix.o" + @echo "... platform_unix.i" + @echo "... platform_unix.s" + @echo "... platform_windows.o" + @echo "... platform_windows.i" + @echo "... platform_windows.s" + @echo "... stb_image.o" + @echo "... stb_image.i" + @echo "... stb_image.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/mk/linux/mojosetup/build/cmake_install.cmake b/mk/linux/mojosetup/build/cmake_install.cmake new file mode 100644 index 00000000..3e0048dc --- /dev/null +++ b/mk/linux/mojosetup/build/cmake_install.cmake @@ -0,0 +1,44 @@ +# Install script for directory: /home/softcoder/Code/mojosetup + +# Set the install prefix +IF(NOT DEFINED CMAKE_INSTALL_PREFIX) + SET(CMAKE_INSTALL_PREFIX "/usr/local") +ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX) +STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + IF(BUILD_TYPE) + STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + ELSE(BUILD_TYPE) + SET(CMAKE_INSTALL_CONFIG_NAME "") + ENDIF(BUILD_TYPE) + MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + +# Set the component getting installed. +IF(NOT CMAKE_INSTALL_COMPONENT) + IF(COMPONENT) + MESSAGE(STATUS "Install component: \"${COMPONENT}\"") + SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + ELSE(COMPONENT) + SET(CMAKE_INSTALL_COMPONENT) + ENDIF(COMPONENT) +ENDIF(NOT CMAKE_INSTALL_COMPONENT) + +# Install shared libraries without execute permission? +IF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + SET(CMAKE_INSTALL_SO_NO_EXE "1") +ENDIF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + +IF(CMAKE_INSTALL_COMPONENT) + SET(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +ELSE(CMAKE_INSTALL_COMPONENT) + SET(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +ENDIF(CMAKE_INSTALL_COMPONENT) + +FILE(WRITE "/home/softcoder/Code/mojosetup/build/${CMAKE_INSTALL_MANIFEST}" "") +FOREACH(file ${CMAKE_INSTALL_MANIFEST_FILES}) + FILE(APPEND "/home/softcoder/Code/mojosetup/build/${CMAKE_INSTALL_MANIFEST}" "${file}\n") +ENDFOREACH(file) diff --git a/mk/linux/mojosetup/build/mojoluac b/mk/linux/mojosetup/build/mojoluac new file mode 100755 index 0000000000000000000000000000000000000000..fb32ee015dde703ee563a9667447f8bb3b8e04ee GIT binary patch literal 188727 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/build/mojosetup b/mk/linux/mojosetup/build/mojosetup new file mode 100755 index 0000000000000000000000000000000000000000..b738864c96a082f5216f01158e62e7f521feec7b GIT binary patch literal 352754 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%0Db-VlUb@iiNlNE)>c^|vbluEY?+AEz) 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 Avj6}9 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/buildver.c b/mk/linux/mojosetup/buildver.c new file mode 100644 index 00000000..cd14aaad --- /dev/null +++ b/mk/linux/mojosetup/buildver.c @@ -0,0 +1,74 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +/* + * This is in a separate file so that we can recompile it every time + * without it forcing a recompile on something ccache would otherwise not + * have to rebuild...this file's checksum changes every time you build it + * due to the __DATE__ and __TIME__ macros. + * + * The makefile will rebuild this file everytime it relinks an executable + * so that we'll always have a unique build string. + * + * APPNAME and APPREV need to be predefined in the build system. + * The rest are supposed to be supplied by the compiler. + */ + +#ifndef APPID +#error Please define APPID in the build system. +#endif + +#ifndef APPREV +#error Please define APPREV in the build system. +#endif + +#if (defined __GNUC__) +# define VERSTR2(x) #x +# define VERSTR(x) VERSTR2(x) +# define COMPILERVER " " VERSTR(__GNUC__) "." VERSTR(__GNUC_MINOR__) "." VERSTR(__GNUC_PATCHLEVEL__) +#elif (defined __SUNPRO_C) +# define VERSTR2(x) #x +# define VERSTR(x) VERSTR2(x) +# define COMPILERVER " " VERSTR(__SUNPRO_C) +#elif (defined __VERSION__) +# define COMPILERVER " " __VERSION__ +#else +# define COMPILERVER "" +#endif + +#ifndef __DATE__ +#define __DATE__ "(Unknown build date)" +#endif + +#ifndef __TIME__ +#define __TIME__ "(Unknown build time)" +#endif + +#ifndef COMPILER + #if (defined __GNUC__) + #define COMPILER "GCC" + #elif (defined _MSC_VER) + #define COMPILER "Visual Studio" + #elif (defined __SUNPRO_C) + #define COMPILER "Sun Studio" + #else + #error Please define your platform. + #endif +#endif + +// macro mess so we can turn APPID and APPREV into a string literal... +#define MAKEBUILDVERSTRINGLITERAL2(id, rev) \ + #id ", revision " #rev ", built " __DATE__ " " __TIME__ \ + ", by " COMPILER COMPILERVER + +#define MAKEBUILDVERSTRINGLITERAL(id, rev) MAKEBUILDVERSTRINGLITERAL2(id, rev) + +const char *GBuildVer = MAKEBUILDVERSTRINGLITERAL(APPID, APPREV); + +// end of buildver.c ... + diff --git a/mk/linux/mojosetup/bzip2/blocksort.c b/mk/linux/mojosetup/bzip2/blocksort.c new file mode 100644 index 00000000..bd2dec15 --- /dev/null +++ b/mk/linux/mojosetup/bzip2/blocksort.c @@ -0,0 +1,1094 @@ + +/*-------------------------------------------------------------*/ +/*--- Block sorting machinery ---*/ +/*--- blocksort.c ---*/ +/*-------------------------------------------------------------*/ + +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. + + bzip2/libbzip2 version 1.0.5 of 10 December 2007 + Copyright (C) 1996-2007 Julian Seward + + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. + + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ + + +#include "bzlib_private.h" + +/*---------------------------------------------*/ +/*--- Fallback O(N log(N)^2) sorting ---*/ +/*--- algorithm, for repetitive blocks ---*/ +/*---------------------------------------------*/ + +/*---------------------------------------------*/ +static +__inline__ +void fallbackSimpleSort ( UInt32* fmap, + UInt32* eclass, + Int32 lo, + Int32 hi ) +{ + Int32 i, j, tmp; + UInt32 ec_tmp; + + if (lo == hi) return; + + if (hi - lo > 3) { + for ( i = hi-4; i >= lo; i-- ) { + tmp = fmap[i]; + ec_tmp = eclass[tmp]; + for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 ) + fmap[j-4] = fmap[j]; + fmap[j-4] = tmp; + } + } + + for ( i = hi-1; i >= lo; i-- ) { + tmp = fmap[i]; + ec_tmp = eclass[tmp]; + for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ ) + fmap[j-1] = fmap[j]; + fmap[j-1] = tmp; + } +} + + +/*---------------------------------------------*/ +#define fswap(zz1, zz2) \ + { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; } + +#define fvswap(zzp1, zzp2, zzn) \ +{ \ + Int32 yyp1 = (zzp1); \ + Int32 yyp2 = (zzp2); \ + Int32 yyn = (zzn); \ + while (yyn > 0) { \ + fswap(fmap[yyp1], fmap[yyp2]); \ + yyp1++; yyp2++; yyn--; \ + } \ +} + + +#define fmin(a,b) ((a) < (b)) ? (a) : (b) + +#define fpush(lz,hz) { stackLo[sp] = lz; \ + stackHi[sp] = hz; \ + sp++; } + +#define fpop(lz,hz) { sp--; \ + lz = stackLo[sp]; \ + hz = stackHi[sp]; } + +#define FALLBACK_QSORT_SMALL_THRESH 10 +#define FALLBACK_QSORT_STACK_SIZE 100 + + +static +void fallbackQSort3 ( UInt32* fmap, + UInt32* eclass, + Int32 loSt, + Int32 hiSt ) +{ + Int32 unLo, unHi, ltLo, gtHi, n, m; + Int32 sp, lo, hi; + UInt32 med, r, r3; + Int32 stackLo[FALLBACK_QSORT_STACK_SIZE]; + Int32 stackHi[FALLBACK_QSORT_STACK_SIZE]; + + r = 0; + + sp = 0; + fpush ( loSt, hiSt ); + + while (sp > 0) { + + AssertH ( sp < FALLBACK_QSORT_STACK_SIZE - 1, 1004 ); + + fpop ( lo, hi ); + if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) { + fallbackSimpleSort ( fmap, eclass, lo, hi ); + continue; + } + + /* Random partitioning. Median of 3 sometimes fails to + avoid bad cases. Median of 9 seems to help but + looks rather expensive. This too seems to work but + is cheaper. Guidance for the magic constants + 7621 and 32768 is taken from Sedgewick's algorithms + book, chapter 35. + */ + r = ((r * 7621) + 1) % 32768; + r3 = r % 3; + if (r3 == 0) med = eclass[fmap[lo]]; else + if (r3 == 1) med = eclass[fmap[(lo+hi)>>1]]; else + med = eclass[fmap[hi]]; + + unLo = ltLo = lo; + unHi = gtHi = hi; + + while (1) { + while (1) { + if (unLo > unHi) break; + n = (Int32)eclass[fmap[unLo]] - (Int32)med; + if (n == 0) { + fswap(fmap[unLo], fmap[ltLo]); + ltLo++; unLo++; + continue; + }; + if (n > 0) break; + unLo++; + } + while (1) { + if (unLo > unHi) break; + n = (Int32)eclass[fmap[unHi]] - (Int32)med; + if (n == 0) { + fswap(fmap[unHi], fmap[gtHi]); + gtHi--; unHi--; + continue; + }; + if (n < 0) break; + unHi--; + } + if (unLo > unHi) break; + fswap(fmap[unLo], fmap[unHi]); unLo++; unHi--; + } + + AssertD ( unHi == unLo-1, "fallbackQSort3(2)" ); + + if (gtHi < ltLo) continue; + + n = fmin(ltLo-lo, unLo-ltLo); fvswap(lo, unLo-n, n); + m = fmin(hi-gtHi, gtHi-unHi); fvswap(unLo, hi-m+1, m); + + n = lo + unLo - ltLo - 1; + m = hi - (gtHi - unHi) + 1; + + if (n - lo > hi - m) { + fpush ( lo, n ); + fpush ( m, hi ); + } else { + fpush ( m, hi ); + fpush ( lo, n ); + } + } +} + +#undef fmin +#undef fpush +#undef fpop +#undef fswap +#undef fvswap +#undef FALLBACK_QSORT_SMALL_THRESH +#undef FALLBACK_QSORT_STACK_SIZE + + +/*---------------------------------------------*/ +/* Pre: + nblock > 0 + eclass exists for [0 .. nblock-1] + ((UChar*)eclass) [0 .. nblock-1] holds block + ptr exists for [0 .. nblock-1] + + Post: + ((UChar*)eclass) [0 .. nblock-1] holds block + All other areas of eclass destroyed + fmap [0 .. nblock-1] holds sorted order + bhtab [ 0 .. 2+(nblock/32) ] destroyed +*/ + +#define SET_BH(zz) bhtab[(zz) >> 5] |= (1 << ((zz) & 31)) +#define CLEAR_BH(zz) bhtab[(zz) >> 5] &= ~(1 << ((zz) & 31)) +#define ISSET_BH(zz) (bhtab[(zz) >> 5] & (1 << ((zz) & 31))) +#define WORD_BH(zz) bhtab[(zz) >> 5] +#define UNALIGNED_BH(zz) ((zz) & 0x01f) + +static +void fallbackSort ( UInt32* fmap, + UInt32* eclass, + UInt32* bhtab, + Int32 nblock, + Int32 verb ) +{ + Int32 ftab[257]; + Int32 ftabCopy[256]; + Int32 H, i, j, k, l, r, cc, cc1; + Int32 nNotDone; + Int32 nBhtab; + UChar* eclass8 = (UChar*)eclass; + + /*-- + Initial 1-char radix sort to generate + initial fmap and initial BH bits. + --*/ + if (verb >= 4) + VPrintf0 ( " bucket sorting ...\n" ); + for (i = 0; i < 257; i++) ftab[i] = 0; + for (i = 0; i < nblock; i++) ftab[eclass8[i]]++; + for (i = 0; i < 256; i++) ftabCopy[i] = ftab[i]; + for (i = 1; i < 257; i++) ftab[i] += ftab[i-1]; + + for (i = 0; i < nblock; i++) { + j = eclass8[i]; + k = ftab[j] - 1; + ftab[j] = k; + fmap[k] = i; + } + + nBhtab = 2 + (nblock / 32); + for (i = 0; i < nBhtab; i++) bhtab[i] = 0; + for (i = 0; i < 256; i++) SET_BH(ftab[i]); + + /*-- + Inductively refine the buckets. Kind-of an + "exponential radix sort" (!), inspired by the + Manber-Myers suffix array construction algorithm. + --*/ + + /*-- set sentinel bits for block-end detection --*/ + for (i = 0; i < 32; i++) { + SET_BH(nblock + 2*i); + CLEAR_BH(nblock + 2*i + 1); + } + + /*-- the log(N) loop --*/ + H = 1; + while (1) { + + if (verb >= 4) + VPrintf1 ( " depth %6d has ", H ); + + j = 0; + for (i = 0; i < nblock; i++) { + if (ISSET_BH(i)) j = i; + k = fmap[i] - H; if (k < 0) k += nblock; + eclass[k] = j; + } + + nNotDone = 0; + r = -1; + while (1) { + + /*-- find the next non-singleton bucket --*/ + k = r + 1; + while (ISSET_BH(k) && UNALIGNED_BH(k)) k++; + if (ISSET_BH(k)) { + while (WORD_BH(k) == 0xffffffff) k += 32; + while (ISSET_BH(k)) k++; + } + l = k - 1; + if (l >= nblock) break; + while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++; + if (!ISSET_BH(k)) { + while (WORD_BH(k) == 0x00000000) k += 32; + while (!ISSET_BH(k)) k++; + } + r = k - 1; + if (r >= nblock) break; + + /*-- now [l, r] bracket current bucket --*/ + if (r > l) { + nNotDone += (r - l + 1); + fallbackQSort3 ( fmap, eclass, l, r ); + + /*-- scan bucket and generate header bits-- */ + cc = -1; + for (i = l; i <= r; i++) { + cc1 = eclass[fmap[i]]; + if (cc != cc1) { SET_BH(i); cc = cc1; }; + } + } + } + + if (verb >= 4) + VPrintf1 ( "%6d unresolved strings\n", nNotDone ); + + H *= 2; + if (H > nblock || nNotDone == 0) break; + } + + /*-- + Reconstruct the original block in + eclass8 [0 .. nblock-1], since the + previous phase destroyed it. + --*/ + if (verb >= 4) + VPrintf0 ( " reconstructing block ...\n" ); + j = 0; + for (i = 0; i < nblock; i++) { + while (ftabCopy[j] == 0) j++; + ftabCopy[j]--; + eclass8[fmap[i]] = (UChar)j; + } + AssertH ( j < 256, 1005 ); +} + +#undef SET_BH +#undef CLEAR_BH +#undef ISSET_BH +#undef WORD_BH +#undef UNALIGNED_BH + + +/*---------------------------------------------*/ +/*--- The main, O(N^2 log(N)) sorting ---*/ +/*--- algorithm. Faster for "normal" ---*/ +/*--- non-repetitive blocks. ---*/ +/*---------------------------------------------*/ + +/*---------------------------------------------*/ +static +__inline__ +Bool mainGtU ( UInt32 i1, + UInt32 i2, + UChar* block, + UInt16* quadrant, + UInt32 nblock, + Int32* budget ) +{ + Int32 k; + UChar c1, c2; + UInt16 s1, s2; + + AssertD ( i1 != i2, "mainGtU" ); + /* 1 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + i1++; i2++; + /* 2 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + i1++; i2++; + /* 3 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + i1++; i2++; + /* 4 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + i1++; i2++; + /* 5 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + i1++; i2++; + /* 6 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + i1++; i2++; + /* 7 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + i1++; i2++; + /* 8 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + i1++; i2++; + /* 9 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + i1++; i2++; + /* 10 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + i1++; i2++; + /* 11 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + i1++; i2++; + /* 12 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + i1++; i2++; + + k = nblock + 8; + + do { + /* 1 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + s1 = quadrant[i1]; s2 = quadrant[i2]; + if (s1 != s2) return (s1 > s2); + i1++; i2++; + /* 2 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + s1 = quadrant[i1]; s2 = quadrant[i2]; + if (s1 != s2) return (s1 > s2); + i1++; i2++; + /* 3 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + s1 = quadrant[i1]; s2 = quadrant[i2]; + if (s1 != s2) return (s1 > s2); + i1++; i2++; + /* 4 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + s1 = quadrant[i1]; s2 = quadrant[i2]; + if (s1 != s2) return (s1 > s2); + i1++; i2++; + /* 5 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + s1 = quadrant[i1]; s2 = quadrant[i2]; + if (s1 != s2) return (s1 > s2); + i1++; i2++; + /* 6 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + s1 = quadrant[i1]; s2 = quadrant[i2]; + if (s1 != s2) return (s1 > s2); + i1++; i2++; + /* 7 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + s1 = quadrant[i1]; s2 = quadrant[i2]; + if (s1 != s2) return (s1 > s2); + i1++; i2++; + /* 8 */ + c1 = block[i1]; c2 = block[i2]; + if (c1 != c2) return (c1 > c2); + s1 = quadrant[i1]; s2 = quadrant[i2]; + if (s1 != s2) return (s1 > s2); + i1++; i2++; + + if (i1 >= nblock) i1 -= nblock; + if (i2 >= nblock) i2 -= nblock; + + k -= 8; + (*budget)--; + } + while (k >= 0); + + return False; +} + + +/*---------------------------------------------*/ +/*-- + Knuth's increments seem to work better + than Incerpi-Sedgewick here. Possibly + because the number of elems to sort is + usually small, typically <= 20. +--*/ +static +Int32 incs[14] = { 1, 4, 13, 40, 121, 364, 1093, 3280, + 9841, 29524, 88573, 265720, + 797161, 2391484 }; + +static +void mainSimpleSort ( UInt32* ptr, + UChar* block, + UInt16* quadrant, + Int32 nblock, + Int32 lo, + Int32 hi, + Int32 d, + Int32* budget ) +{ + Int32 i, j, h, bigN, hp; + UInt32 v; + + bigN = hi - lo + 1; + if (bigN < 2) return; + + hp = 0; + while (incs[hp] < bigN) hp++; + hp--; + + for (; hp >= 0; hp--) { + h = incs[hp]; + + i = lo + h; + while (True) { + + /*-- copy 1 --*/ + if (i > hi) break; + v = ptr[i]; + j = i; + while ( mainGtU ( + ptr[j-h]+d, v+d, block, quadrant, nblock, budget + ) ) { + ptr[j] = ptr[j-h]; + j = j - h; + if (j <= (lo + h - 1)) break; + } + ptr[j] = v; + i++; + + /*-- copy 2 --*/ + if (i > hi) break; + v = ptr[i]; + j = i; + while ( mainGtU ( + ptr[j-h]+d, v+d, block, quadrant, nblock, budget + ) ) { + ptr[j] = ptr[j-h]; + j = j - h; + if (j <= (lo + h - 1)) break; + } + ptr[j] = v; + i++; + + /*-- copy 3 --*/ + if (i > hi) break; + v = ptr[i]; + j = i; + while ( mainGtU ( + ptr[j-h]+d, v+d, block, quadrant, nblock, budget + ) ) { + ptr[j] = ptr[j-h]; + j = j - h; + if (j <= (lo + h - 1)) break; + } + ptr[j] = v; + i++; + + if (*budget < 0) return; + } + } +} + + +/*---------------------------------------------*/ +/*-- + The following is an implementation of + an elegant 3-way quicksort for strings, + described in a paper "Fast Algorithms for + Sorting and Searching Strings", by Robert + Sedgewick and Jon L. Bentley. +--*/ + +#define mswap(zz1, zz2) \ + { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; } + +#define mvswap(zzp1, zzp2, zzn) \ +{ \ + Int32 yyp1 = (zzp1); \ + Int32 yyp2 = (zzp2); \ + Int32 yyn = (zzn); \ + while (yyn > 0) { \ + mswap(ptr[yyp1], ptr[yyp2]); \ + yyp1++; yyp2++; yyn--; \ + } \ +} + +static +__inline__ +UChar mmed3 ( UChar a, UChar b, UChar c ) +{ + UChar t; + if (a > b) { t = a; a = b; b = t; }; + if (b > c) { + b = c; + if (a > b) b = a; + } + return b; +} + +#define mmin(a,b) ((a) < (b)) ? (a) : (b) + +#define mpush(lz,hz,dz) { stackLo[sp] = lz; \ + stackHi[sp] = hz; \ + stackD [sp] = dz; \ + sp++; } + +#define mpop(lz,hz,dz) { sp--; \ + lz = stackLo[sp]; \ + hz = stackHi[sp]; \ + dz = stackD [sp]; } + + +#define mnextsize(az) (nextHi[az]-nextLo[az]) + +#define mnextswap(az,bz) \ + { Int32 tz; \ + tz = nextLo[az]; nextLo[az] = nextLo[bz]; nextLo[bz] = tz; \ + tz = nextHi[az]; nextHi[az] = nextHi[bz]; nextHi[bz] = tz; \ + tz = nextD [az]; nextD [az] = nextD [bz]; nextD [bz] = tz; } + + +#define MAIN_QSORT_SMALL_THRESH 20 +#define MAIN_QSORT_DEPTH_THRESH (BZ_N_RADIX + BZ_N_QSORT) +#define MAIN_QSORT_STACK_SIZE 100 + +static +void mainQSort3 ( UInt32* ptr, + UChar* block, + UInt16* quadrant, + Int32 nblock, + Int32 loSt, + Int32 hiSt, + Int32 dSt, + Int32* budget ) +{ + Int32 unLo, unHi, ltLo, gtHi, n, m, med; + Int32 sp, lo, hi, d; + + Int32 stackLo[MAIN_QSORT_STACK_SIZE]; + Int32 stackHi[MAIN_QSORT_STACK_SIZE]; + Int32 stackD [MAIN_QSORT_STACK_SIZE]; + + Int32 nextLo[3]; + Int32 nextHi[3]; + Int32 nextD [3]; + + sp = 0; + mpush ( loSt, hiSt, dSt ); + + while (sp > 0) { + + AssertH ( sp < MAIN_QSORT_STACK_SIZE - 2, 1001 ); + + mpop ( lo, hi, d ); + if (hi - lo < MAIN_QSORT_SMALL_THRESH || + d > MAIN_QSORT_DEPTH_THRESH) { + mainSimpleSort ( ptr, block, quadrant, nblock, lo, hi, d, budget ); + if (*budget < 0) return; + continue; + } + + med = (Int32) + mmed3 ( block[ptr[ lo ]+d], + block[ptr[ hi ]+d], + block[ptr[ (lo+hi)>>1 ]+d] ); + + unLo = ltLo = lo; + unHi = gtHi = hi; + + while (True) { + while (True) { + if (unLo > unHi) break; + n = ((Int32)block[ptr[unLo]+d]) - med; + if (n == 0) { + mswap(ptr[unLo], ptr[ltLo]); + ltLo++; unLo++; continue; + }; + if (n > 0) break; + unLo++; + } + while (True) { + if (unLo > unHi) break; + n = ((Int32)block[ptr[unHi]+d]) - med; + if (n == 0) { + mswap(ptr[unHi], ptr[gtHi]); + gtHi--; unHi--; continue; + }; + if (n < 0) break; + unHi--; + } + if (unLo > unHi) break; + mswap(ptr[unLo], ptr[unHi]); unLo++; unHi--; + } + + AssertD ( unHi == unLo-1, "mainQSort3(2)" ); + + if (gtHi < ltLo) { + mpush(lo, hi, d+1 ); + continue; + } + + n = mmin(ltLo-lo, unLo-ltLo); mvswap(lo, unLo-n, n); + m = mmin(hi-gtHi, gtHi-unHi); mvswap(unLo, hi-m+1, m); + + n = lo + unLo - ltLo - 1; + m = hi - (gtHi - unHi) + 1; + + nextLo[0] = lo; nextHi[0] = n; nextD[0] = d; + nextLo[1] = m; nextHi[1] = hi; nextD[1] = d; + nextLo[2] = n+1; nextHi[2] = m-1; nextD[2] = d+1; + + if (mnextsize(0) < mnextsize(1)) mnextswap(0,1); + if (mnextsize(1) < mnextsize(2)) mnextswap(1,2); + if (mnextsize(0) < mnextsize(1)) mnextswap(0,1); + + AssertD (mnextsize(0) >= mnextsize(1), "mainQSort3(8)" ); + AssertD (mnextsize(1) >= mnextsize(2), "mainQSort3(9)" ); + + mpush (nextLo[0], nextHi[0], nextD[0]); + mpush (nextLo[1], nextHi[1], nextD[1]); + mpush (nextLo[2], nextHi[2], nextD[2]); + } +} + +#undef mswap +#undef mvswap +#undef mpush +#undef mpop +#undef mmin +#undef mnextsize +#undef mnextswap +#undef MAIN_QSORT_SMALL_THRESH +#undef MAIN_QSORT_DEPTH_THRESH +#undef MAIN_QSORT_STACK_SIZE + + +/*---------------------------------------------*/ +/* Pre: + nblock > N_OVERSHOOT + block32 exists for [0 .. nblock-1 +N_OVERSHOOT] + ((UChar*)block32) [0 .. nblock-1] holds block + ptr exists for [0 .. nblock-1] + + Post: + ((UChar*)block32) [0 .. nblock-1] holds block + All other areas of block32 destroyed + ftab [0 .. 65536 ] destroyed + ptr [0 .. nblock-1] holds sorted order + if (*budget < 0), sorting was abandoned +*/ + +#define BIGFREQ(b) (ftab[((b)+1) << 8] - ftab[(b) << 8]) +#define SETMASK (1 << 21) +#define CLEARMASK (~(SETMASK)) + +static +void mainSort ( UInt32* ptr, + UChar* block, + UInt16* quadrant, + UInt32* ftab, + Int32 nblock, + Int32 verb, + Int32* budget ) +{ + Int32 i, j, k, ss, sb; + Int32 runningOrder[256]; + Bool bigDone[256]; + Int32 copyStart[256]; + Int32 copyEnd [256]; + UChar c1; + Int32 numQSorted; + UInt16 s; + if (verb >= 4) VPrintf0 ( " main sort initialise ...\n" ); + + /*-- set up the 2-byte frequency table --*/ + for (i = 65536; i >= 0; i--) ftab[i] = 0; + + j = block[0] << 8; + i = nblock-1; + for (; i >= 3; i -= 4) { + quadrant[i] = 0; + j = (j >> 8) | ( ((UInt16)block[i]) << 8); + ftab[j]++; + quadrant[i-1] = 0; + j = (j >> 8) | ( ((UInt16)block[i-1]) << 8); + ftab[j]++; + quadrant[i-2] = 0; + j = (j >> 8) | ( ((UInt16)block[i-2]) << 8); + ftab[j]++; + quadrant[i-3] = 0; + j = (j >> 8) | ( ((UInt16)block[i-3]) << 8); + ftab[j]++; + } + for (; i >= 0; i--) { + quadrant[i] = 0; + j = (j >> 8) | ( ((UInt16)block[i]) << 8); + ftab[j]++; + } + + /*-- (emphasises close relationship of block & quadrant) --*/ + for (i = 0; i < BZ_N_OVERSHOOT; i++) { + block [nblock+i] = block[i]; + quadrant[nblock+i] = 0; + } + + if (verb >= 4) VPrintf0 ( " bucket sorting ...\n" ); + + /*-- Complete the initial radix sort --*/ + for (i = 1; i <= 65536; i++) ftab[i] += ftab[i-1]; + + s = block[0] << 8; + i = nblock-1; + for (; i >= 3; i -= 4) { + s = (s >> 8) | (block[i] << 8); + j = ftab[s] -1; + ftab[s] = j; + ptr[j] = i; + s = (s >> 8) | (block[i-1] << 8); + j = ftab[s] -1; + ftab[s] = j; + ptr[j] = i-1; + s = (s >> 8) | (block[i-2] << 8); + j = ftab[s] -1; + ftab[s] = j; + ptr[j] = i-2; + s = (s >> 8) | (block[i-3] << 8); + j = ftab[s] -1; + ftab[s] = j; + ptr[j] = i-3; + } + for (; i >= 0; i--) { + s = (s >> 8) | (block[i] << 8); + j = ftab[s] -1; + ftab[s] = j; + ptr[j] = i; + } + + /*-- + Now ftab contains the first loc of every small bucket. + Calculate the running order, from smallest to largest + big bucket. + --*/ + for (i = 0; i <= 255; i++) { + bigDone [i] = False; + runningOrder[i] = i; + } + + { + Int32 vv; + Int32 h = 1; + do h = 3 * h + 1; while (h <= 256); + do { + h = h / 3; + for (i = h; i <= 255; i++) { + vv = runningOrder[i]; + j = i; + while ( BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv) ) { + runningOrder[j] = runningOrder[j-h]; + j = j - h; + if (j <= (h - 1)) goto zero; + } + zero: + runningOrder[j] = vv; + } + } while (h != 1); + } + + /*-- + The main sorting loop. + --*/ + + numQSorted = 0; + + for (i = 0; i <= 255; i++) { + + /*-- + Process big buckets, starting with the least full. + Basically this is a 3-step process in which we call + mainQSort3 to sort the small buckets [ss, j], but + also make a big effort to avoid the calls if we can. + --*/ + ss = runningOrder[i]; + + /*-- + Step 1: + Complete the big bucket [ss] by quicksorting + any unsorted small buckets [ss, j], for j != ss. + Hopefully previous pointer-scanning phases have already + completed many of the small buckets [ss, j], so + we don't have to sort them at all. + --*/ + for (j = 0; j <= 255; j++) { + if (j != ss) { + sb = (ss << 8) + j; + if ( ! (ftab[sb] & SETMASK) ) { + Int32 lo = ftab[sb] & CLEARMASK; + Int32 hi = (ftab[sb+1] & CLEARMASK) - 1; + if (hi > lo) { + if (verb >= 4) + VPrintf4 ( " qsort [0x%x, 0x%x] " + "done %d this %d\n", + ss, j, numQSorted, hi - lo + 1 ); + mainQSort3 ( + ptr, block, quadrant, nblock, + lo, hi, BZ_N_RADIX, budget + ); + numQSorted += (hi - lo + 1); + if (*budget < 0) return; + } + } + ftab[sb] |= SETMASK; + } + } + + AssertH ( !bigDone[ss], 1006 ); + + /*-- + Step 2: + Now scan this big bucket [ss] so as to synthesise the + sorted order for small buckets [t, ss] for all t, + including, magically, the bucket [ss,ss] too. + This will avoid doing Real Work in subsequent Step 1's. + --*/ + { + for (j = 0; j <= 255; j++) { + copyStart[j] = ftab[(j << 8) + ss] & CLEARMASK; + copyEnd [j] = (ftab[(j << 8) + ss + 1] & CLEARMASK) - 1; + } + for (j = ftab[ss << 8] & CLEARMASK; j < copyStart[ss]; j++) { + k = ptr[j]-1; if (k < 0) k += nblock; + c1 = block[k]; + if (!bigDone[c1]) + ptr[ copyStart[c1]++ ] = k; + } + for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) { + k = ptr[j]-1; if (k < 0) k += nblock; + c1 = block[k]; + if (!bigDone[c1]) + ptr[ copyEnd[c1]-- ] = k; + } + } + + AssertH ( (copyStart[ss]-1 == copyEnd[ss]) + || + /* Extremely rare case missing in bzip2-1.0.0 and 1.0.1. + Necessity for this case is demonstrated by compressing + a sequence of approximately 48.5 million of character + 251; 1.0.0/1.0.1 will then die here. */ + (copyStart[ss] == 0 && copyEnd[ss] == nblock-1), + 1007 ) + + for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK; + + /*-- + Step 3: + The [ss] big bucket is now done. Record this fact, + and update the quadrant descriptors. Remember to + update quadrants in the overshoot area too, if + necessary. The "if (i < 255)" test merely skips + this updating for the last bucket processed, since + updating for the last bucket is pointless. + + The quadrant array provides a way to incrementally + cache sort orderings, as they appear, so as to + make subsequent comparisons in fullGtU() complete + faster. For repetitive blocks this makes a big + difference (but not big enough to be able to avoid + the fallback sorting mechanism, exponential radix sort). + + The precise meaning is: at all times: + + for 0 <= i < nblock and 0 <= j <= nblock + + if block[i] != block[j], + + then the relative values of quadrant[i] and + quadrant[j] are meaningless. + + else { + if quadrant[i] < quadrant[j] + then the string starting at i lexicographically + precedes the string starting at j + + else if quadrant[i] > quadrant[j] + then the string starting at j lexicographically + precedes the string starting at i + + else + the relative ordering of the strings starting + at i and j has not yet been determined. + } + --*/ + bigDone[ss] = True; + + if (i < 255) { + Int32 bbStart = ftab[ss << 8] & CLEARMASK; + Int32 bbSize = (ftab[(ss+1) << 8] & CLEARMASK) - bbStart; + Int32 shifts = 0; + + while ((bbSize >> shifts) > 65534) shifts++; + + for (j = bbSize-1; j >= 0; j--) { + Int32 a2update = ptr[bbStart + j]; + UInt16 qVal = (UInt16)(j >> shifts); + quadrant[a2update] = qVal; + if (a2update < BZ_N_OVERSHOOT) + quadrant[a2update + nblock] = qVal; + } + AssertH ( ((bbSize-1) >> shifts) <= 65535, 1002 ); + } + + } + + if (verb >= 4) + VPrintf3 ( " %d pointers, %d sorted, %d scanned\n", + nblock, numQSorted, nblock - numQSorted ); +} + +#undef BIGFREQ +#undef SETMASK +#undef CLEARMASK + + +/*---------------------------------------------*/ +/* Pre: + nblock > 0 + arr2 exists for [0 .. nblock-1 +N_OVERSHOOT] + ((UChar*)arr2) [0 .. nblock-1] holds block + arr1 exists for [0 .. nblock-1] + + Post: + ((UChar*)arr2) [0 .. nblock-1] holds block + All other areas of block destroyed + ftab [ 0 .. 65536 ] destroyed + arr1 [0 .. nblock-1] holds sorted order +*/ +void BZ2_blockSort ( EState* s ) +{ + UInt32* ptr = s->ptr; + UChar* block = s->block; + UInt32* ftab = s->ftab; + Int32 nblock = s->nblock; + Int32 verb = s->verbosity; + Int32 wfact = s->workFactor; + UInt16* quadrant; + Int32 budget; + Int32 budgetInit; + Int32 i; + + if (nblock < 10000) { + fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb ); + } else { + /* Calculate the location for quadrant, remembering to get + the alignment right. Assumes that &(block[0]) is at least + 2-byte aligned -- this should be ok since block is really + the first section of arr2. + */ + i = nblock+BZ_N_OVERSHOOT; + if (i & 1) i++; + quadrant = (UInt16*)(&(block[i])); + + /* (wfact-1) / 3 puts the default-factor-30 + transition point at very roughly the same place as + with v0.1 and v0.9.0. + Not that it particularly matters any more, since the + resulting compressed stream is now the same regardless + of whether or not we use the main sort or fallback sort. + */ + if (wfact < 1 ) wfact = 1; + if (wfact > 100) wfact = 100; + budgetInit = nblock * ((wfact-1) / 3); + budget = budgetInit; + + mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget ); + if (verb >= 3) + VPrintf3 ( " %d work, %d block, ratio %5.2f\n", + budgetInit - budget, + nblock, + (float)(budgetInit - budget) / + (float)(nblock==0 ? 1 : nblock) ); + if (budget < 0) { + if (verb >= 2) + VPrintf0 ( " too repetitive; using fallback" + " sorting algorithm\n" ); + fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb ); + } + } + + s->origPtr = -1; + for (i = 0; i < s->nblock; i++) + if (ptr[i] == 0) + { s->origPtr = i; break; }; + + AssertH( s->origPtr != -1, 1003 ); +} + + +/*-------------------------------------------------------------*/ +/*--- end blocksort.c ---*/ +/*-------------------------------------------------------------*/ diff --git a/mk/linux/mojosetup/bzip2/bzlib.c b/mk/linux/mojosetup/bzip2/bzlib.c new file mode 100644 index 00000000..ef86c91e --- /dev/null +++ b/mk/linux/mojosetup/bzip2/bzlib.c @@ -0,0 +1,1572 @@ + +/*-------------------------------------------------------------*/ +/*--- Library top-level functions. ---*/ +/*--- bzlib.c ---*/ +/*-------------------------------------------------------------*/ + +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. + + bzip2/libbzip2 version 1.0.5 of 10 December 2007 + Copyright (C) 1996-2007 Julian Seward + + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. + + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ + +/* CHANGES + 0.9.0 -- original version. + 0.9.0a/b -- no changes in this file. + 0.9.0c -- made zero-length BZ_FLUSH work correctly in bzCompress(). + fixed bzWrite/bzRead to ignore zero-length requests. + fixed bzread to correctly handle read requests after EOF. + wrong parameter order in call to bzDecompressInit in + bzBuffToBuffDecompress. Fixed. +*/ + +#include "bzlib_private.h" + + +/*---------------------------------------------------*/ +/*--- Compression stuff ---*/ +/*---------------------------------------------------*/ + + +/*---------------------------------------------------*/ +#ifndef BZ_NO_STDIO +void BZ2_bz__AssertH__fail ( int errcode ) +{ + fprintf(stderr, + "\n\nbzip2/libbzip2: internal error number %d.\n" + "This is a bug in bzip2/libbzip2, %s.\n" + "Please report it to me at: jseward@bzip.org. If this happened\n" + "when you were using some program which uses libbzip2 as a\n" + "component, you should also report this bug to the author(s)\n" + "of that program. Please make an effort to report this bug;\n" + "timely and accurate bug reports eventually lead to higher\n" + "quality software. Thanks. Julian Seward, 10 December 2007.\n\n", + errcode, + BZ2_bzlibVersion() + ); + + if (errcode == 1007) { + fprintf(stderr, + "\n*** A special note about internal error number 1007 ***\n" + "\n" + "Experience suggests that a common cause of i.e. 1007\n" + "is unreliable memory or other hardware. The 1007 assertion\n" + "just happens to cross-check the results of huge numbers of\n" + "memory reads/writes, and so acts (unintendedly) as a stress\n" + "test of your memory system.\n" + "\n" + "I suggest the following: try compressing the file again,\n" + "possibly monitoring progress in detail with the -vv flag.\n" + "\n" + "* If the error cannot be reproduced, and/or happens at different\n" + " points in compression, you may have a flaky memory system.\n" + " Try a memory-test program. I have used Memtest86\n" + " (www.memtest86.com). At the time of writing it is free (GPLd).\n" + " Memtest86 tests memory much more thorougly than your BIOSs\n" + " power-on test, and may find failures that the BIOS doesn't.\n" + "\n" + "* If the error can be repeatably reproduced, this is a bug in\n" + " bzip2, and I would very much like to hear about it. Please\n" + " let me know, and, ideally, save a copy of the file causing the\n" + " problem -- without which I will be unable to investigate it.\n" + "\n" + ); + } + + exit(3); +} +#endif + + +/*---------------------------------------------------*/ +static +int bz_config_ok ( void ) +{ + if (sizeof(int) != 4) return 0; + if (sizeof(short) != 2) return 0; + if (sizeof(char) != 1) return 0; + return 1; +} + + +/*---------------------------------------------------*/ +static +void* default_bzalloc ( void* opaque, Int32 items, Int32 size ) +{ + void* v = malloc ( items * size ); + return v; +} + +static +void default_bzfree ( void* opaque, void* addr ) +{ + if (addr != NULL) free ( addr ); +} + + +/*---------------------------------------------------*/ +static +void prepare_new_block ( EState* s ) +{ + Int32 i; + s->nblock = 0; + s->numZ = 0; + s->state_out_pos = 0; + BZ_INITIALISE_CRC ( s->blockCRC ); + for (i = 0; i < 256; i++) s->inUse[i] = False; + s->blockNo++; +} + + +/*---------------------------------------------------*/ +static +void init_RL ( EState* s ) +{ + s->state_in_ch = 256; + s->state_in_len = 0; +} + + +static +Bool isempty_RL ( EState* s ) +{ + if (s->state_in_ch < 256 && s->state_in_len > 0) + return False; else + return True; +} + + +/*---------------------------------------------------*/ +int BZ_API(BZ2_bzCompressInit) + ( bz_stream* strm, + int blockSize100k, + int verbosity, + int workFactor ) +{ + Int32 n; + EState* s; + + if (!bz_config_ok()) return BZ_CONFIG_ERROR; + + if (strm == NULL || + blockSize100k < 1 || blockSize100k > 9 || + workFactor < 0 || workFactor > 250) + return BZ_PARAM_ERROR; + + if (workFactor == 0) workFactor = 30; + if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc; + if (strm->bzfree == NULL) strm->bzfree = default_bzfree; + + s = BZALLOC( sizeof(EState) ); + if (s == NULL) return BZ_MEM_ERROR; + s->strm = strm; + + s->arr1 = NULL; + s->arr2 = NULL; + s->ftab = NULL; + + n = 100000 * blockSize100k; + s->arr1 = BZALLOC( n * sizeof(UInt32) ); + s->arr2 = BZALLOC( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) ); + s->ftab = BZALLOC( 65537 * sizeof(UInt32) ); + + if (s->arr1 == NULL || s->arr2 == NULL || s->ftab == NULL) { + if (s->arr1 != NULL) BZFREE(s->arr1); + if (s->arr2 != NULL) BZFREE(s->arr2); + if (s->ftab != NULL) BZFREE(s->ftab); + if (s != NULL) BZFREE(s); + return BZ_MEM_ERROR; + } + + s->blockNo = 0; + s->state = BZ_S_INPUT; + s->mode = BZ_M_RUNNING; + s->combinedCRC = 0; + s->blockSize100k = blockSize100k; + s->nblockMAX = 100000 * blockSize100k - 19; + s->verbosity = verbosity; + s->workFactor = workFactor; + + s->block = (UChar*)s->arr2; + s->mtfv = (UInt16*)s->arr1; + s->zbits = NULL; + s->ptr = (UInt32*)s->arr1; + + strm->state = s; + strm->total_in_lo32 = 0; + strm->total_in_hi32 = 0; + strm->total_out_lo32 = 0; + strm->total_out_hi32 = 0; + init_RL ( s ); + prepare_new_block ( s ); + return BZ_OK; +} + + +/*---------------------------------------------------*/ +static +void add_pair_to_block ( EState* s ) +{ + Int32 i; + UChar ch = (UChar)(s->state_in_ch); + for (i = 0; i < s->state_in_len; i++) { + BZ_UPDATE_CRC( s->blockCRC, ch ); + } + s->inUse[s->state_in_ch] = True; + switch (s->state_in_len) { + case 1: + s->block[s->nblock] = (UChar)ch; s->nblock++; + break; + case 2: + s->block[s->nblock] = (UChar)ch; s->nblock++; + s->block[s->nblock] = (UChar)ch; s->nblock++; + break; + case 3: + s->block[s->nblock] = (UChar)ch; s->nblock++; + s->block[s->nblock] = (UChar)ch; s->nblock++; + s->block[s->nblock] = (UChar)ch; s->nblock++; + break; + default: + s->inUse[s->state_in_len-4] = True; + s->block[s->nblock] = (UChar)ch; s->nblock++; + s->block[s->nblock] = (UChar)ch; s->nblock++; + s->block[s->nblock] = (UChar)ch; s->nblock++; + s->block[s->nblock] = (UChar)ch; s->nblock++; + s->block[s->nblock] = ((UChar)(s->state_in_len-4)); + s->nblock++; + break; + } +} + + +/*---------------------------------------------------*/ +static +void flush_RL ( EState* s ) +{ + if (s->state_in_ch < 256) add_pair_to_block ( s ); + init_RL ( s ); +} + + +/*---------------------------------------------------*/ +#define ADD_CHAR_TO_BLOCK(zs,zchh0) \ +{ \ + UInt32 zchh = (UInt32)(zchh0); \ + /*-- fast track the common case --*/ \ + if (zchh != zs->state_in_ch && \ + zs->state_in_len == 1) { \ + UChar ch = (UChar)(zs->state_in_ch); \ + BZ_UPDATE_CRC( zs->blockCRC, ch ); \ + zs->inUse[zs->state_in_ch] = True; \ + zs->block[zs->nblock] = (UChar)ch; \ + zs->nblock++; \ + zs->state_in_ch = zchh; \ + } \ + else \ + /*-- general, uncommon cases --*/ \ + if (zchh != zs->state_in_ch || \ + zs->state_in_len == 255) { \ + if (zs->state_in_ch < 256) \ + add_pair_to_block ( zs ); \ + zs->state_in_ch = zchh; \ + zs->state_in_len = 1; \ + } else { \ + zs->state_in_len++; \ + } \ +} + + +/*---------------------------------------------------*/ +static +Bool copy_input_until_stop ( EState* s ) +{ + Bool progress_in = False; + + if (s->mode == BZ_M_RUNNING) { + + /*-- fast track the common case --*/ + while (True) { + /*-- block full? --*/ + if (s->nblock >= s->nblockMAX) break; + /*-- no input? --*/ + if (s->strm->avail_in == 0) break; + progress_in = True; + ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); + s->strm->next_in++; + s->strm->avail_in--; + s->strm->total_in_lo32++; + if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++; + } + + } else { + + /*-- general, uncommon case --*/ + while (True) { + /*-- block full? --*/ + if (s->nblock >= s->nblockMAX) break; + /*-- no input? --*/ + if (s->strm->avail_in == 0) break; + /*-- flush/finish end? --*/ + if (s->avail_in_expect == 0) break; + progress_in = True; + ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); + s->strm->next_in++; + s->strm->avail_in--; + s->strm->total_in_lo32++; + if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++; + s->avail_in_expect--; + } + } + return progress_in; +} + + +/*---------------------------------------------------*/ +static +Bool copy_output_until_stop ( EState* s ) +{ + Bool progress_out = False; + + while (True) { + + /*-- no output space? --*/ + if (s->strm->avail_out == 0) break; + + /*-- block done? --*/ + if (s->state_out_pos >= s->numZ) break; + + progress_out = True; + *(s->strm->next_out) = s->zbits[s->state_out_pos]; + s->state_out_pos++; + s->strm->avail_out--; + s->strm->next_out++; + s->strm->total_out_lo32++; + if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; + } + + return progress_out; +} + + +/*---------------------------------------------------*/ +static +Bool handle_compress ( bz_stream* strm ) +{ + Bool progress_in = False; + Bool progress_out = False; + EState* s = strm->state; + + while (True) { + + if (s->state == BZ_S_OUTPUT) { + progress_out |= copy_output_until_stop ( s ); + if (s->state_out_pos < s->numZ) break; + if (s->mode == BZ_M_FINISHING && + s->avail_in_expect == 0 && + isempty_RL(s)) break; + prepare_new_block ( s ); + s->state = BZ_S_INPUT; + if (s->mode == BZ_M_FLUSHING && + s->avail_in_expect == 0 && + isempty_RL(s)) break; + } + + if (s->state == BZ_S_INPUT) { + progress_in |= copy_input_until_stop ( s ); + if (s->mode != BZ_M_RUNNING && s->avail_in_expect == 0) { + flush_RL ( s ); + BZ2_compressBlock ( s, (Bool)(s->mode == BZ_M_FINISHING) ); + s->state = BZ_S_OUTPUT; + } + else + if (s->nblock >= s->nblockMAX) { + BZ2_compressBlock ( s, False ); + s->state = BZ_S_OUTPUT; + } + else + if (s->strm->avail_in == 0) { + break; + } + } + + } + + return progress_in || progress_out; +} + + +/*---------------------------------------------------*/ +int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action ) +{ + Bool progress; + EState* s; + if (strm == NULL) return BZ_PARAM_ERROR; + s = strm->state; + if (s == NULL) return BZ_PARAM_ERROR; + if (s->strm != strm) return BZ_PARAM_ERROR; + + preswitch: + switch (s->mode) { + + case BZ_M_IDLE: + return BZ_SEQUENCE_ERROR; + + case BZ_M_RUNNING: + if (action == BZ_RUN) { + progress = handle_compress ( strm ); + return progress ? BZ_RUN_OK : BZ_PARAM_ERROR; + } + else + if (action == BZ_FLUSH) { + s->avail_in_expect = strm->avail_in; + s->mode = BZ_M_FLUSHING; + goto preswitch; + } + else + if (action == BZ_FINISH) { + s->avail_in_expect = strm->avail_in; + s->mode = BZ_M_FINISHING; + goto preswitch; + } + else + return BZ_PARAM_ERROR; + + case BZ_M_FLUSHING: + if (action != BZ_FLUSH) return BZ_SEQUENCE_ERROR; + if (s->avail_in_expect != s->strm->avail_in) + return BZ_SEQUENCE_ERROR; + progress = handle_compress ( strm ); + if (s->avail_in_expect > 0 || !isempty_RL(s) || + s->state_out_pos < s->numZ) return BZ_FLUSH_OK; + s->mode = BZ_M_RUNNING; + return BZ_RUN_OK; + + case BZ_M_FINISHING: + if (action != BZ_FINISH) return BZ_SEQUENCE_ERROR; + if (s->avail_in_expect != s->strm->avail_in) + return BZ_SEQUENCE_ERROR; + progress = handle_compress ( strm ); + if (!progress) return BZ_SEQUENCE_ERROR; + if (s->avail_in_expect > 0 || !isempty_RL(s) || + s->state_out_pos < s->numZ) return BZ_FINISH_OK; + s->mode = BZ_M_IDLE; + return BZ_STREAM_END; + } + return BZ_OK; /*--not reached--*/ +} + + +/*---------------------------------------------------*/ +int BZ_API(BZ2_bzCompressEnd) ( bz_stream *strm ) +{ + EState* s; + if (strm == NULL) return BZ_PARAM_ERROR; + s = strm->state; + if (s == NULL) return BZ_PARAM_ERROR; + if (s->strm != strm) return BZ_PARAM_ERROR; + + if (s->arr1 != NULL) BZFREE(s->arr1); + if (s->arr2 != NULL) BZFREE(s->arr2); + if (s->ftab != NULL) BZFREE(s->ftab); + BZFREE(strm->state); + + strm->state = NULL; + + return BZ_OK; +} + + +/*---------------------------------------------------*/ +/*--- Decompression stuff ---*/ +/*---------------------------------------------------*/ + +/*---------------------------------------------------*/ +int BZ_API(BZ2_bzDecompressInit) + ( bz_stream* strm, + int verbosity, + int small ) +{ + DState* s; + + if (!bz_config_ok()) return BZ_CONFIG_ERROR; + + if (strm == NULL) return BZ_PARAM_ERROR; + if (small != 0 && small != 1) return BZ_PARAM_ERROR; + if (verbosity < 0 || verbosity > 4) return BZ_PARAM_ERROR; + + if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc; + if (strm->bzfree == NULL) strm->bzfree = default_bzfree; + + s = BZALLOC( sizeof(DState) ); + if (s == NULL) return BZ_MEM_ERROR; + s->strm = strm; + strm->state = s; + s->state = BZ_X_MAGIC_1; + s->bsLive = 0; + s->bsBuff = 0; + s->calculatedCombinedCRC = 0; + strm->total_in_lo32 = 0; + strm->total_in_hi32 = 0; + strm->total_out_lo32 = 0; + strm->total_out_hi32 = 0; + s->smallDecompress = (Bool)small; + s->ll4 = NULL; + s->ll16 = NULL; + s->tt = NULL; + s->currBlockNo = 0; + s->verbosity = verbosity; + + return BZ_OK; +} + + +/*---------------------------------------------------*/ +/* Return True iff data corruption is discovered. + Returns False if there is no problem. +*/ +static +Bool unRLE_obuf_to_output_FAST ( DState* s ) +{ + UChar k1; + + if (s->blockRandomised) { + + while (True) { + /* try to finish existing run */ + while (True) { + if (s->strm->avail_out == 0) return False; + if (s->state_out_len == 0) break; + *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; + BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); + s->state_out_len--; + s->strm->next_out++; + s->strm->avail_out--; + s->strm->total_out_lo32++; + if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; + } + + /* can a new run be started? */ + if (s->nblock_used == s->save_nblock+1) return False; + + /* Only caused by corrupt data stream? */ + if (s->nblock_used > s->save_nblock+1) + return True; + + s->state_out_len = 1; + s->state_out_ch = s->k0; + BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; + k1 ^= BZ_RAND_MASK; s->nblock_used++; + if (s->nblock_used == s->save_nblock+1) continue; + if (k1 != s->k0) { s->k0 = k1; continue; }; + + s->state_out_len = 2; + BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; + k1 ^= BZ_RAND_MASK; s->nblock_used++; + if (s->nblock_used == s->save_nblock+1) continue; + if (k1 != s->k0) { s->k0 = k1; continue; }; + + s->state_out_len = 3; + BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; + k1 ^= BZ_RAND_MASK; s->nblock_used++; + if (s->nblock_used == s->save_nblock+1) continue; + if (k1 != s->k0) { s->k0 = k1; continue; }; + + BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; + k1 ^= BZ_RAND_MASK; s->nblock_used++; + s->state_out_len = ((Int32)k1) + 4; + BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK; + s->k0 ^= BZ_RAND_MASK; s->nblock_used++; + } + + } else { + + /* restore */ + UInt32 c_calculatedBlockCRC = s->calculatedBlockCRC; + UChar c_state_out_ch = s->state_out_ch; + Int32 c_state_out_len = s->state_out_len; + Int32 c_nblock_used = s->nblock_used; + Int32 c_k0 = s->k0; + UInt32* c_tt = s->tt; + UInt32 c_tPos = s->tPos; + char* cs_next_out = s->strm->next_out; + unsigned int cs_avail_out = s->strm->avail_out; + Int32 ro_blockSize100k = s->blockSize100k; + /* end restore */ + + UInt32 avail_out_INIT = cs_avail_out; + Int32 s_save_nblockPP = s->save_nblock+1; + unsigned int total_out_lo32_old; + + while (True) { + + /* try to finish existing run */ + if (c_state_out_len > 0) { + while (True) { + if (cs_avail_out == 0) goto return_notr; + if (c_state_out_len == 1) break; + *( (UChar*)(cs_next_out) ) = c_state_out_ch; + BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch ); + c_state_out_len--; + cs_next_out++; + cs_avail_out--; + } + s_state_out_len_eq_one: + { + if (cs_avail_out == 0) { + c_state_out_len = 1; goto return_notr; + }; + *( (UChar*)(cs_next_out) ) = c_state_out_ch; + BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch ); + cs_next_out++; + cs_avail_out--; + } + } + /* Only caused by corrupt data stream? */ + if (c_nblock_used > s_save_nblockPP) + return True; + + /* can a new run be started? */ + if (c_nblock_used == s_save_nblockPP) { + c_state_out_len = 0; goto return_notr; + }; + c_state_out_ch = c_k0; + BZ_GET_FAST_C(k1); c_nblock_used++; + if (k1 != c_k0) { + c_k0 = k1; goto s_state_out_len_eq_one; + }; + if (c_nblock_used == s_save_nblockPP) + goto s_state_out_len_eq_one; + + c_state_out_len = 2; + BZ_GET_FAST_C(k1); c_nblock_used++; + if (c_nblock_used == s_save_nblockPP) continue; + if (k1 != c_k0) { c_k0 = k1; continue; }; + + c_state_out_len = 3; + BZ_GET_FAST_C(k1); c_nblock_used++; + if (c_nblock_used == s_save_nblockPP) continue; + if (k1 != c_k0) { c_k0 = k1; continue; }; + + BZ_GET_FAST_C(k1); c_nblock_used++; + c_state_out_len = ((Int32)k1) + 4; + BZ_GET_FAST_C(c_k0); c_nblock_used++; + } + + return_notr: + total_out_lo32_old = s->strm->total_out_lo32; + s->strm->total_out_lo32 += (avail_out_INIT - cs_avail_out); + if (s->strm->total_out_lo32 < total_out_lo32_old) + s->strm->total_out_hi32++; + + /* save */ + s->calculatedBlockCRC = c_calculatedBlockCRC; + s->state_out_ch = c_state_out_ch; + s->state_out_len = c_state_out_len; + s->nblock_used = c_nblock_used; + s->k0 = c_k0; + s->tt = c_tt; + s->tPos = c_tPos; + s->strm->next_out = cs_next_out; + s->strm->avail_out = cs_avail_out; + /* end save */ + } + return False; +} + + + +/*---------------------------------------------------*/ +__inline__ Int32 BZ2_indexIntoF ( Int32 indx, Int32 *cftab ) +{ + Int32 nb, na, mid; + nb = 0; + na = 256; + do { + mid = (nb + na) >> 1; + if (indx >= cftab[mid]) nb = mid; else na = mid; + } + while (na - nb != 1); + return nb; +} + + +/*---------------------------------------------------*/ +/* Return True iff data corruption is discovered. + Returns False if there is no problem. +*/ +static +Bool unRLE_obuf_to_output_SMALL ( DState* s ) +{ + UChar k1; + + if (s->blockRandomised) { + + while (True) { + /* try to finish existing run */ + while (True) { + if (s->strm->avail_out == 0) return False; + if (s->state_out_len == 0) break; + *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; + BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); + s->state_out_len--; + s->strm->next_out++; + s->strm->avail_out--; + s->strm->total_out_lo32++; + if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; + } + + /* can a new run be started? */ + if (s->nblock_used == s->save_nblock+1) return False; + + /* Only caused by corrupt data stream? */ + if (s->nblock_used > s->save_nblock+1) + return True; + + s->state_out_len = 1; + s->state_out_ch = s->k0; + BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; + k1 ^= BZ_RAND_MASK; s->nblock_used++; + if (s->nblock_used == s->save_nblock+1) continue; + if (k1 != s->k0) { s->k0 = k1; continue; }; + + s->state_out_len = 2; + BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; + k1 ^= BZ_RAND_MASK; s->nblock_used++; + if (s->nblock_used == s->save_nblock+1) continue; + if (k1 != s->k0) { s->k0 = k1; continue; }; + + s->state_out_len = 3; + BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; + k1 ^= BZ_RAND_MASK; s->nblock_used++; + if (s->nblock_used == s->save_nblock+1) continue; + if (k1 != s->k0) { s->k0 = k1; continue; }; + + BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; + k1 ^= BZ_RAND_MASK; s->nblock_used++; + s->state_out_len = ((Int32)k1) + 4; + BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK; + s->k0 ^= BZ_RAND_MASK; s->nblock_used++; + } + + } else { + + while (True) { + /* try to finish existing run */ + while (True) { + if (s->strm->avail_out == 0) return False; + if (s->state_out_len == 0) break; + *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; + BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); + s->state_out_len--; + s->strm->next_out++; + s->strm->avail_out--; + s->strm->total_out_lo32++; + if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; + } + + /* can a new run be started? */ + if (s->nblock_used == s->save_nblock+1) return False; + + /* Only caused by corrupt data stream? */ + if (s->nblock_used > s->save_nblock+1) + return True; + + s->state_out_len = 1; + s->state_out_ch = s->k0; + BZ_GET_SMALL(k1); s->nblock_used++; + if (s->nblock_used == s->save_nblock+1) continue; + if (k1 != s->k0) { s->k0 = k1; continue; }; + + s->state_out_len = 2; + BZ_GET_SMALL(k1); s->nblock_used++; + if (s->nblock_used == s->save_nblock+1) continue; + if (k1 != s->k0) { s->k0 = k1; continue; }; + + s->state_out_len = 3; + BZ_GET_SMALL(k1); s->nblock_used++; + if (s->nblock_used == s->save_nblock+1) continue; + if (k1 != s->k0) { s->k0 = k1; continue; }; + + BZ_GET_SMALL(k1); s->nblock_used++; + s->state_out_len = ((Int32)k1) + 4; + BZ_GET_SMALL(s->k0); s->nblock_used++; + } + + } +} + + +/*---------------------------------------------------*/ +int BZ_API(BZ2_bzDecompress) ( bz_stream *strm ) +{ + Bool corrupt; + DState* s; + if (strm == NULL) return BZ_PARAM_ERROR; + s = strm->state; + if (s == NULL) return BZ_PARAM_ERROR; + if (s->strm != strm) return BZ_PARAM_ERROR; + + while (True) { + if (s->state == BZ_X_IDLE) return BZ_SEQUENCE_ERROR; + if (s->state == BZ_X_OUTPUT) { + if (s->smallDecompress) + corrupt = unRLE_obuf_to_output_SMALL ( s ); else + corrupt = unRLE_obuf_to_output_FAST ( s ); + if (corrupt) return BZ_DATA_ERROR; + if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) { + BZ_FINALISE_CRC ( s->calculatedBlockCRC ); + if (s->verbosity >= 3) + VPrintf2 ( " {0x%08x, 0x%08x}", s->storedBlockCRC, + s->calculatedBlockCRC ); + if (s->verbosity >= 2) VPrintf0 ( "]" ); + if (s->calculatedBlockCRC != s->storedBlockCRC) + return BZ_DATA_ERROR; + s->calculatedCombinedCRC + = (s->calculatedCombinedCRC << 1) | + (s->calculatedCombinedCRC >> 31); + s->calculatedCombinedCRC ^= s->calculatedBlockCRC; + s->state = BZ_X_BLKHDR_1; + } else { + return BZ_OK; + } + } + if (s->state >= BZ_X_MAGIC_1) { + Int32 r = BZ2_decompress ( s ); + if (r == BZ_STREAM_END) { + if (s->verbosity >= 3) + VPrintf2 ( "\n combined CRCs: stored = 0x%08x, computed = 0x%08x", + s->storedCombinedCRC, s->calculatedCombinedCRC ); + if (s->calculatedCombinedCRC != s->storedCombinedCRC) + return BZ_DATA_ERROR; + return r; + } + if (s->state != BZ_X_OUTPUT) return r; + } + } + + AssertH ( 0, 6001 ); + + return 0; /*NOTREACHED*/ +} + + +/*---------------------------------------------------*/ +int BZ_API(BZ2_bzDecompressEnd) ( bz_stream *strm ) +{ + DState* s; + if (strm == NULL) return BZ_PARAM_ERROR; + s = strm->state; + if (s == NULL) return BZ_PARAM_ERROR; + if (s->strm != strm) return BZ_PARAM_ERROR; + + if (s->tt != NULL) BZFREE(s->tt); + if (s->ll16 != NULL) BZFREE(s->ll16); + if (s->ll4 != NULL) BZFREE(s->ll4); + + BZFREE(strm->state); + strm->state = NULL; + + return BZ_OK; +} + + +#ifndef BZ_NO_STDIO +/*---------------------------------------------------*/ +/*--- File I/O stuff ---*/ +/*---------------------------------------------------*/ + +#define BZ_SETERR(eee) \ +{ \ + if (bzerror != NULL) *bzerror = eee; \ + if (bzf != NULL) bzf->lastErr = eee; \ +} + +typedef + struct { + FILE* handle; + Char buf[BZ_MAX_UNUSED]; + Int32 bufN; + Bool writing; + bz_stream strm; + Int32 lastErr; + Bool initialisedOk; + } + bzFile; + + +/*---------------------------------------------*/ +static Bool myfeof ( FILE* f ) +{ + Int32 c = fgetc ( f ); + if (c == EOF) return True; + ungetc ( c, f ); + return False; +} + + +/*---------------------------------------------------*/ +BZFILE* BZ_API(BZ2_bzWriteOpen) + ( int* bzerror, + FILE* f, + int blockSize100k, + int verbosity, + int workFactor ) +{ + Int32 ret; + bzFile* bzf = NULL; + + BZ_SETERR(BZ_OK); + + if (f == NULL || + (blockSize100k < 1 || blockSize100k > 9) || + (workFactor < 0 || workFactor > 250) || + (verbosity < 0 || verbosity > 4)) + { BZ_SETERR(BZ_PARAM_ERROR); return NULL; }; + + if (ferror(f)) + { BZ_SETERR(BZ_IO_ERROR); return NULL; }; + + bzf = malloc ( sizeof(bzFile) ); + if (bzf == NULL) + { BZ_SETERR(BZ_MEM_ERROR); return NULL; }; + + BZ_SETERR(BZ_OK); + bzf->initialisedOk = False; + bzf->bufN = 0; + bzf->handle = f; + bzf->writing = True; + bzf->strm.bzalloc = NULL; + bzf->strm.bzfree = NULL; + bzf->strm.opaque = NULL; + + if (workFactor == 0) workFactor = 30; + ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k, + verbosity, workFactor ); + if (ret != BZ_OK) + { BZ_SETERR(ret); free(bzf); return NULL; }; + + bzf->strm.avail_in = 0; + bzf->initialisedOk = True; + return bzf; +} + + + +/*---------------------------------------------------*/ +void BZ_API(BZ2_bzWrite) + ( int* bzerror, + BZFILE* b, + void* buf, + int len ) +{ + Int32 n, n2, ret; + bzFile* bzf = (bzFile*)b; + + BZ_SETERR(BZ_OK); + if (bzf == NULL || buf == NULL || len < 0) + { BZ_SETERR(BZ_PARAM_ERROR); return; }; + if (!(bzf->writing)) + { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; + if (ferror(bzf->handle)) + { BZ_SETERR(BZ_IO_ERROR); return; }; + + if (len == 0) + { BZ_SETERR(BZ_OK); return; }; + + bzf->strm.avail_in = len; + bzf->strm.next_in = buf; + + while (True) { + bzf->strm.avail_out = BZ_MAX_UNUSED; + bzf->strm.next_out = bzf->buf; + ret = BZ2_bzCompress ( &(bzf->strm), BZ_RUN ); + if (ret != BZ_RUN_OK) + { BZ_SETERR(ret); return; }; + + if (bzf->strm.avail_out < BZ_MAX_UNUSED) { + n = BZ_MAX_UNUSED - bzf->strm.avail_out; + n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), + n, bzf->handle ); + if (n != n2 || ferror(bzf->handle)) + { BZ_SETERR(BZ_IO_ERROR); return; }; + } + + if (bzf->strm.avail_in == 0) + { BZ_SETERR(BZ_OK); return; }; + } +} + + +/*---------------------------------------------------*/ +void BZ_API(BZ2_bzWriteClose) + ( int* bzerror, + BZFILE* b, + int abandon, + unsigned int* nbytes_in, + unsigned int* nbytes_out ) +{ + BZ2_bzWriteClose64 ( bzerror, b, abandon, + nbytes_in, NULL, nbytes_out, NULL ); +} + + +void BZ_API(BZ2_bzWriteClose64) + ( int* bzerror, + BZFILE* b, + int abandon, + unsigned int* nbytes_in_lo32, + unsigned int* nbytes_in_hi32, + unsigned int* nbytes_out_lo32, + unsigned int* nbytes_out_hi32 ) +{ + Int32 n, n2, ret; + bzFile* bzf = (bzFile*)b; + + if (bzf == NULL) + { BZ_SETERR(BZ_OK); return; }; + if (!(bzf->writing)) + { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; + if (ferror(bzf->handle)) + { BZ_SETERR(BZ_IO_ERROR); return; }; + + if (nbytes_in_lo32 != NULL) *nbytes_in_lo32 = 0; + if (nbytes_in_hi32 != NULL) *nbytes_in_hi32 = 0; + if (nbytes_out_lo32 != NULL) *nbytes_out_lo32 = 0; + if (nbytes_out_hi32 != NULL) *nbytes_out_hi32 = 0; + + if ((!abandon) && bzf->lastErr == BZ_OK) { + while (True) { + bzf->strm.avail_out = BZ_MAX_UNUSED; + bzf->strm.next_out = bzf->buf; + ret = BZ2_bzCompress ( &(bzf->strm), BZ_FINISH ); + if (ret != BZ_FINISH_OK && ret != BZ_STREAM_END) + { BZ_SETERR(ret); return; }; + + if (bzf->strm.avail_out < BZ_MAX_UNUSED) { + n = BZ_MAX_UNUSED - bzf->strm.avail_out; + n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), + n, bzf->handle ); + if (n != n2 || ferror(bzf->handle)) + { BZ_SETERR(BZ_IO_ERROR); return; }; + } + + if (ret == BZ_STREAM_END) break; + } + } + + if ( !abandon && !ferror ( bzf->handle ) ) { + fflush ( bzf->handle ); + if (ferror(bzf->handle)) + { BZ_SETERR(BZ_IO_ERROR); return; }; + } + + if (nbytes_in_lo32 != NULL) + *nbytes_in_lo32 = bzf->strm.total_in_lo32; + if (nbytes_in_hi32 != NULL) + *nbytes_in_hi32 = bzf->strm.total_in_hi32; + if (nbytes_out_lo32 != NULL) + *nbytes_out_lo32 = bzf->strm.total_out_lo32; + if (nbytes_out_hi32 != NULL) + *nbytes_out_hi32 = bzf->strm.total_out_hi32; + + BZ_SETERR(BZ_OK); + BZ2_bzCompressEnd ( &(bzf->strm) ); + free ( bzf ); +} + + +/*---------------------------------------------------*/ +BZFILE* BZ_API(BZ2_bzReadOpen) + ( int* bzerror, + FILE* f, + int verbosity, + int small, + void* unused, + int nUnused ) +{ + bzFile* bzf = NULL; + int ret; + + BZ_SETERR(BZ_OK); + + if (f == NULL || + (small != 0 && small != 1) || + (verbosity < 0 || verbosity > 4) || + (unused == NULL && nUnused != 0) || + (unused != NULL && (nUnused < 0 || nUnused > BZ_MAX_UNUSED))) + { BZ_SETERR(BZ_PARAM_ERROR); return NULL; }; + + if (ferror(f)) + { BZ_SETERR(BZ_IO_ERROR); return NULL; }; + + bzf = malloc ( sizeof(bzFile) ); + if (bzf == NULL) + { BZ_SETERR(BZ_MEM_ERROR); return NULL; }; + + BZ_SETERR(BZ_OK); + + bzf->initialisedOk = False; + bzf->handle = f; + bzf->bufN = 0; + bzf->writing = False; + bzf->strm.bzalloc = NULL; + bzf->strm.bzfree = NULL; + bzf->strm.opaque = NULL; + + while (nUnused > 0) { + bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++; + unused = ((void*)( 1 + ((UChar*)(unused)) )); + nUnused--; + } + + ret = BZ2_bzDecompressInit ( &(bzf->strm), verbosity, small ); + if (ret != BZ_OK) + { BZ_SETERR(ret); free(bzf); return NULL; }; + + bzf->strm.avail_in = bzf->bufN; + bzf->strm.next_in = bzf->buf; + + bzf->initialisedOk = True; + return bzf; +} + + +/*---------------------------------------------------*/ +void BZ_API(BZ2_bzReadClose) ( int *bzerror, BZFILE *b ) +{ + bzFile* bzf = (bzFile*)b; + + BZ_SETERR(BZ_OK); + if (bzf == NULL) + { BZ_SETERR(BZ_OK); return; }; + + if (bzf->writing) + { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; + + if (bzf->initialisedOk) + (void)BZ2_bzDecompressEnd ( &(bzf->strm) ); + free ( bzf ); +} + + +/*---------------------------------------------------*/ +int BZ_API(BZ2_bzRead) + ( int* bzerror, + BZFILE* b, + void* buf, + int len ) +{ + Int32 n, ret; + bzFile* bzf = (bzFile*)b; + + BZ_SETERR(BZ_OK); + + if (bzf == NULL || buf == NULL || len < 0) + { BZ_SETERR(BZ_PARAM_ERROR); return 0; }; + + if (bzf->writing) + { BZ_SETERR(BZ_SEQUENCE_ERROR); return 0; }; + + if (len == 0) + { BZ_SETERR(BZ_OK); return 0; }; + + bzf->strm.avail_out = len; + bzf->strm.next_out = buf; + + while (True) { + + if (ferror(bzf->handle)) + { BZ_SETERR(BZ_IO_ERROR); return 0; }; + + if (bzf->strm.avail_in == 0 && !myfeof(bzf->handle)) { + n = fread ( bzf->buf, sizeof(UChar), + BZ_MAX_UNUSED, bzf->handle ); + if (ferror(bzf->handle)) + { BZ_SETERR(BZ_IO_ERROR); return 0; }; + bzf->bufN = n; + bzf->strm.avail_in = bzf->bufN; + bzf->strm.next_in = bzf->buf; + } + + ret = BZ2_bzDecompress ( &(bzf->strm) ); + + if (ret != BZ_OK && ret != BZ_STREAM_END) + { BZ_SETERR(ret); return 0; }; + + if (ret == BZ_OK && myfeof(bzf->handle) && + bzf->strm.avail_in == 0 && bzf->strm.avail_out > 0) + { BZ_SETERR(BZ_UNEXPECTED_EOF); return 0; }; + + if (ret == BZ_STREAM_END) + { BZ_SETERR(BZ_STREAM_END); + return len - bzf->strm.avail_out; }; + if (bzf->strm.avail_out == 0) + { BZ_SETERR(BZ_OK); return len; }; + + } + + return 0; /*not reached*/ +} + + +/*---------------------------------------------------*/ +void BZ_API(BZ2_bzReadGetUnused) + ( int* bzerror, + BZFILE* b, + void** unused, + int* nUnused ) +{ + bzFile* bzf = (bzFile*)b; + if (bzf == NULL) + { BZ_SETERR(BZ_PARAM_ERROR); return; }; + if (bzf->lastErr != BZ_STREAM_END) + { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; + if (unused == NULL || nUnused == NULL) + { BZ_SETERR(BZ_PARAM_ERROR); return; }; + + BZ_SETERR(BZ_OK); + *nUnused = bzf->strm.avail_in; + *unused = bzf->strm.next_in; +} +#endif + + +/*---------------------------------------------------*/ +/*--- Misc convenience stuff ---*/ +/*---------------------------------------------------*/ + +/*---------------------------------------------------*/ +int BZ_API(BZ2_bzBuffToBuffCompress) + ( char* dest, + unsigned int* destLen, + char* source, + unsigned int sourceLen, + int blockSize100k, + int verbosity, + int workFactor ) +{ + bz_stream strm; + int ret; + + if (dest == NULL || destLen == NULL || + source == NULL || + blockSize100k < 1 || blockSize100k > 9 || + verbosity < 0 || verbosity > 4 || + workFactor < 0 || workFactor > 250) + return BZ_PARAM_ERROR; + + if (workFactor == 0) workFactor = 30; + strm.bzalloc = NULL; + strm.bzfree = NULL; + strm.opaque = NULL; + ret = BZ2_bzCompressInit ( &strm, blockSize100k, + verbosity, workFactor ); + if (ret != BZ_OK) return ret; + + strm.next_in = source; + strm.next_out = dest; + strm.avail_in = sourceLen; + strm.avail_out = *destLen; + + ret = BZ2_bzCompress ( &strm, BZ_FINISH ); + if (ret == BZ_FINISH_OK) goto output_overflow; + if (ret != BZ_STREAM_END) goto errhandler; + + /* normal termination */ + *destLen -= strm.avail_out; + BZ2_bzCompressEnd ( &strm ); + return BZ_OK; + + output_overflow: + BZ2_bzCompressEnd ( &strm ); + return BZ_OUTBUFF_FULL; + + errhandler: + BZ2_bzCompressEnd ( &strm ); + return ret; +} + + +/*---------------------------------------------------*/ +int BZ_API(BZ2_bzBuffToBuffDecompress) + ( char* dest, + unsigned int* destLen, + char* source, + unsigned int sourceLen, + int small, + int verbosity ) +{ + bz_stream strm; + int ret; + + if (dest == NULL || destLen == NULL || + source == NULL || + (small != 0 && small != 1) || + verbosity < 0 || verbosity > 4) + return BZ_PARAM_ERROR; + + strm.bzalloc = NULL; + strm.bzfree = NULL; + strm.opaque = NULL; + ret = BZ2_bzDecompressInit ( &strm, verbosity, small ); + if (ret != BZ_OK) return ret; + + strm.next_in = source; + strm.next_out = dest; + strm.avail_in = sourceLen; + strm.avail_out = *destLen; + + ret = BZ2_bzDecompress ( &strm ); + if (ret == BZ_OK) goto output_overflow_or_eof; + if (ret != BZ_STREAM_END) goto errhandler; + + /* normal termination */ + *destLen -= strm.avail_out; + BZ2_bzDecompressEnd ( &strm ); + return BZ_OK; + + output_overflow_or_eof: + if (strm.avail_out > 0) { + BZ2_bzDecompressEnd ( &strm ); + return BZ_UNEXPECTED_EOF; + } else { + BZ2_bzDecompressEnd ( &strm ); + return BZ_OUTBUFF_FULL; + }; + + errhandler: + BZ2_bzDecompressEnd ( &strm ); + return ret; +} + + +/*---------------------------------------------------*/ +/*-- + Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp) + to support better zlib compatibility. + This code is not _officially_ part of libbzip2 (yet); + I haven't tested it, documented it, or considered the + threading-safeness of it. + If this code breaks, please contact both Yoshioka and me. +--*/ +/*---------------------------------------------------*/ + +/*---------------------------------------------------*/ +/*-- + return version like "0.9.5d, 4-Sept-1999". +--*/ +const char * BZ_API(BZ2_bzlibVersion)(void) +{ + return BZ_VERSION; +} + + +#ifndef BZ_NO_STDIO +/*---------------------------------------------------*/ + +#if defined(_WIN32) || defined(OS2) || defined(MSDOS) +# include +# include +# define SET_BINARY_MODE(file) setmode(fileno(file),O_BINARY) +#else +# define SET_BINARY_MODE(file) +#endif +static +BZFILE * bzopen_or_bzdopen + ( const char *path, /* no use when bzdopen */ + int fd, /* no use when bzdopen */ + const char *mode, + int open_mode) /* bzopen: 0, bzdopen:1 */ +{ + int bzerr; + char unused[BZ_MAX_UNUSED]; + int blockSize100k = 9; + int writing = 0; + char mode2[10] = ""; + FILE *fp = NULL; + BZFILE *bzfp = NULL; + int verbosity = 0; + int workFactor = 30; + int smallMode = 0; + int nUnused = 0; + + if (mode == NULL) return NULL; + while (*mode) { + switch (*mode) { + case 'r': + writing = 0; break; + case 'w': + writing = 1; break; + case 's': + smallMode = 1; break; + default: + if (isdigit((int)(*mode))) { + blockSize100k = *mode-BZ_HDR_0; + } + } + mode++; + } + strcat(mode2, writing ? "w" : "r" ); + strcat(mode2,"b"); /* binary mode */ + + if (open_mode==0) { + if (path==NULL || strcmp(path,"")==0) { + fp = (writing ? stdout : stdin); + SET_BINARY_MODE(fp); + } else { + fp = fopen(path,mode2); + } + } else { +#ifdef BZ_STRICT_ANSI + fp = NULL; +#else + fp = fdopen(fd,mode2); +#endif + } + if (fp == NULL) return NULL; + + if (writing) { + /* Guard against total chaos and anarchy -- JRS */ + if (blockSize100k < 1) blockSize100k = 1; + if (blockSize100k > 9) blockSize100k = 9; + bzfp = BZ2_bzWriteOpen(&bzerr,fp,blockSize100k, + verbosity,workFactor); + } else { + bzfp = BZ2_bzReadOpen(&bzerr,fp,verbosity,smallMode, + unused,nUnused); + } + if (bzfp == NULL) { + if (fp != stdin && fp != stdout) fclose(fp); + return NULL; + } + return bzfp; +} + + +/*---------------------------------------------------*/ +/*-- + open file for read or write. + ex) bzopen("file","w9") + case path="" or NULL => use stdin or stdout. +--*/ +BZFILE * BZ_API(BZ2_bzopen) + ( const char *path, + const char *mode ) +{ + return bzopen_or_bzdopen(path,-1,mode,/*bzopen*/0); +} + + +/*---------------------------------------------------*/ +BZFILE * BZ_API(BZ2_bzdopen) + ( int fd, + const char *mode ) +{ + return bzopen_or_bzdopen(NULL,fd,mode,/*bzdopen*/1); +} + + +/*---------------------------------------------------*/ +int BZ_API(BZ2_bzread) (BZFILE* b, void* buf, int len ) +{ + int bzerr, nread; + if (((bzFile*)b)->lastErr == BZ_STREAM_END) return 0; + nread = BZ2_bzRead(&bzerr,b,buf,len); + if (bzerr == BZ_OK || bzerr == BZ_STREAM_END) { + return nread; + } else { + return -1; + } +} + + +/*---------------------------------------------------*/ +int BZ_API(BZ2_bzwrite) (BZFILE* b, void* buf, int len ) +{ + int bzerr; + + BZ2_bzWrite(&bzerr,b,buf,len); + if(bzerr == BZ_OK){ + return len; + }else{ + return -1; + } +} + + +/*---------------------------------------------------*/ +int BZ_API(BZ2_bzflush) (BZFILE *b) +{ + /* do nothing now... */ + return 0; +} + + +/*---------------------------------------------------*/ +void BZ_API(BZ2_bzclose) (BZFILE* b) +{ + int bzerr; + FILE *fp; + + if (b==NULL) {return;} + fp = ((bzFile *)b)->handle; + if(((bzFile*)b)->writing){ + BZ2_bzWriteClose(&bzerr,b,0,NULL,NULL); + if(bzerr != BZ_OK){ + BZ2_bzWriteClose(NULL,b,1,NULL,NULL); + } + }else{ + BZ2_bzReadClose(&bzerr,b); + } + if(fp!=stdin && fp!=stdout){ + fclose(fp); + } +} + + +/*---------------------------------------------------*/ +/*-- + return last error code +--*/ +static const char *bzerrorstrings[] = { + "OK" + ,"SEQUENCE_ERROR" + ,"PARAM_ERROR" + ,"MEM_ERROR" + ,"DATA_ERROR" + ,"DATA_ERROR_MAGIC" + ,"IO_ERROR" + ,"UNEXPECTED_EOF" + ,"OUTBUFF_FULL" + ,"CONFIG_ERROR" + ,"???" /* for future */ + ,"???" /* for future */ + ,"???" /* for future */ + ,"???" /* for future */ + ,"???" /* for future */ + ,"???" /* for future */ +}; + + +const char * BZ_API(BZ2_bzerror) (BZFILE *b, int *errnum) +{ + int err = ((bzFile *)b)->lastErr; + + if(err>0) err = 0; + *errnum = err; + return bzerrorstrings[err*-1]; +} +#endif + + +/*-------------------------------------------------------------*/ +/*--- end bzlib.c ---*/ +/*-------------------------------------------------------------*/ diff --git a/mk/linux/mojosetup/bzip2/bzlib.h b/mk/linux/mojosetup/bzip2/bzlib.h new file mode 100644 index 00000000..c5b75d6d --- /dev/null +++ b/mk/linux/mojosetup/bzip2/bzlib.h @@ -0,0 +1,282 @@ + +/*-------------------------------------------------------------*/ +/*--- Public header file for the library. ---*/ +/*--- bzlib.h ---*/ +/*-------------------------------------------------------------*/ + +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. + + bzip2/libbzip2 version 1.0.5 of 10 December 2007 + Copyright (C) 1996-2007 Julian Seward + + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. + + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ + + +#ifndef _BZLIB_H +#define _BZLIB_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define BZ_RUN 0 +#define BZ_FLUSH 1 +#define BZ_FINISH 2 + +#define BZ_OK 0 +#define BZ_RUN_OK 1 +#define BZ_FLUSH_OK 2 +#define BZ_FINISH_OK 3 +#define BZ_STREAM_END 4 +#define BZ_SEQUENCE_ERROR (-1) +#define BZ_PARAM_ERROR (-2) +#define BZ_MEM_ERROR (-3) +#define BZ_DATA_ERROR (-4) +#define BZ_DATA_ERROR_MAGIC (-5) +#define BZ_IO_ERROR (-6) +#define BZ_UNEXPECTED_EOF (-7) +#define BZ_OUTBUFF_FULL (-8) +#define BZ_CONFIG_ERROR (-9) + +typedef + struct { + char *next_in; + unsigned int avail_in; + unsigned int total_in_lo32; + unsigned int total_in_hi32; + + char *next_out; + unsigned int avail_out; + unsigned int total_out_lo32; + unsigned int total_out_hi32; + + void *state; + + void *(*bzalloc)(void *,int,int); + void (*bzfree)(void *,void *); + void *opaque; + } + bz_stream; + + +#ifndef BZ_IMPORT +#define BZ_EXPORT +#endif + +#ifndef BZ_NO_STDIO +/* Need a definitition for FILE */ +#include +#endif + +#ifdef _WIN32 +# include +# ifdef small + /* windows.h define small to char */ +# undef small +# endif +# ifdef BZ_EXPORT +# define BZ_API(func) WINAPI func +# define BZ_EXTERN extern +# else + /* import windows dll dynamically */ +# define BZ_API(func) (WINAPI * func) +# define BZ_EXTERN +# endif +#else +# define BZ_API(func) func +# define BZ_EXTERN extern +#endif + + +/*-- Core (low-level) library functions --*/ + +BZ_EXTERN int BZ_API(BZ2_bzCompressInit) ( + bz_stream* strm, + int blockSize100k, + int verbosity, + int workFactor + ); + +BZ_EXTERN int BZ_API(BZ2_bzCompress) ( + bz_stream* strm, + int action + ); + +BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) ( + bz_stream* strm + ); + +BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) ( + bz_stream *strm, + int verbosity, + int small + ); + +BZ_EXTERN int BZ_API(BZ2_bzDecompress) ( + bz_stream* strm + ); + +BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) ( + bz_stream *strm + ); + + + +/*-- High(er) level library functions --*/ + +#ifndef BZ_NO_STDIO +#define BZ_MAX_UNUSED 5000 + +typedef void BZFILE; + +BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) ( + int* bzerror, + FILE* f, + int verbosity, + int small, + void* unused, + int nUnused + ); + +BZ_EXTERN void BZ_API(BZ2_bzReadClose) ( + int* bzerror, + BZFILE* b + ); + +BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) ( + int* bzerror, + BZFILE* b, + void** unused, + int* nUnused + ); + +BZ_EXTERN int BZ_API(BZ2_bzRead) ( + int* bzerror, + BZFILE* b, + void* buf, + int len + ); + +BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) ( + int* bzerror, + FILE* f, + int blockSize100k, + int verbosity, + int workFactor + ); + +BZ_EXTERN void BZ_API(BZ2_bzWrite) ( + int* bzerror, + BZFILE* b, + void* buf, + int len + ); + +BZ_EXTERN void BZ_API(BZ2_bzWriteClose) ( + int* bzerror, + BZFILE* b, + int abandon, + unsigned int* nbytes_in, + unsigned int* nbytes_out + ); + +BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) ( + int* bzerror, + BZFILE* b, + int abandon, + unsigned int* nbytes_in_lo32, + unsigned int* nbytes_in_hi32, + unsigned int* nbytes_out_lo32, + unsigned int* nbytes_out_hi32 + ); +#endif + + +/*-- Utility functions --*/ + +BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) ( + char* dest, + unsigned int* destLen, + char* source, + unsigned int sourceLen, + int blockSize100k, + int verbosity, + int workFactor + ); + +BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) ( + char* dest, + unsigned int* destLen, + char* source, + unsigned int sourceLen, + int small, + int verbosity + ); + + +/*-- + Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp) + to support better zlib compatibility. + This code is not _officially_ part of libbzip2 (yet); + I haven't tested it, documented it, or considered the + threading-safeness of it. + If this code breaks, please contact both Yoshioka and me. +--*/ + +BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) ( + void + ); + +#ifndef BZ_NO_STDIO +BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) ( + const char *path, + const char *mode + ); + +BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) ( + int fd, + const char *mode + ); + +BZ_EXTERN int BZ_API(BZ2_bzread) ( + BZFILE* b, + void* buf, + int len + ); + +BZ_EXTERN int BZ_API(BZ2_bzwrite) ( + BZFILE* b, + void* buf, + int len + ); + +BZ_EXTERN int BZ_API(BZ2_bzflush) ( + BZFILE* b + ); + +BZ_EXTERN void BZ_API(BZ2_bzclose) ( + BZFILE* b + ); + +BZ_EXTERN const char * BZ_API(BZ2_bzerror) ( + BZFILE *b, + int *errnum + ); +#endif + +#ifdef __cplusplus +} +#endif + +#endif + +/*-------------------------------------------------------------*/ +/*--- end bzlib.h ---*/ +/*-------------------------------------------------------------*/ diff --git a/mk/linux/mojosetup/bzip2/bzlib_private.h b/mk/linux/mojosetup/bzip2/bzlib_private.h new file mode 100644 index 00000000..23427879 --- /dev/null +++ b/mk/linux/mojosetup/bzip2/bzlib_private.h @@ -0,0 +1,509 @@ + +/*-------------------------------------------------------------*/ +/*--- Private header file for the library. ---*/ +/*--- bzlib_private.h ---*/ +/*-------------------------------------------------------------*/ + +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. + + bzip2/libbzip2 version 1.0.5 of 10 December 2007 + Copyright (C) 1996-2007 Julian Seward + + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. + + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ + + +#ifndef _BZLIB_PRIVATE_H +#define _BZLIB_PRIVATE_H + +#include + +#ifndef BZ_NO_STDIO +#include +#include +#include +#endif + +#include "bzlib.h" + + + +/*-- General stuff. --*/ + +#define BZ_VERSION "1.0.5, 10-Dec-2007" + +typedef char Char; +typedef unsigned char Bool; +typedef unsigned char UChar; +typedef int Int32; +typedef unsigned int UInt32; +typedef short Int16; +typedef unsigned short UInt16; + +#define True ((Bool)1) +#define False ((Bool)0) + +#ifndef __GNUC__ +#define __inline__ /* */ +#endif + +#ifndef BZ_NO_STDIO + +extern void BZ2_bz__AssertH__fail ( int errcode ); +#define AssertH(cond,errcode) \ + { if (!(cond)) BZ2_bz__AssertH__fail ( errcode ); } + +#if BZ_DEBUG +#define AssertD(cond,msg) \ + { if (!(cond)) { \ + fprintf ( stderr, \ + "\n\nlibbzip2(debug build): internal error\n\t%s\n", msg );\ + exit(1); \ + }} +#else +#define AssertD(cond,msg) /* */ +#endif + +#define VPrintf0(zf) \ + fprintf(stderr,zf) +#define VPrintf1(zf,za1) \ + fprintf(stderr,zf,za1) +#define VPrintf2(zf,za1,za2) \ + fprintf(stderr,zf,za1,za2) +#define VPrintf3(zf,za1,za2,za3) \ + fprintf(stderr,zf,za1,za2,za3) +#define VPrintf4(zf,za1,za2,za3,za4) \ + fprintf(stderr,zf,za1,za2,za3,za4) +#define VPrintf5(zf,za1,za2,za3,za4,za5) \ + fprintf(stderr,zf,za1,za2,za3,za4,za5) + +#else + +extern void bz_internal_error ( int errcode ); +#define AssertH(cond,errcode) \ + { if (!(cond)) bz_internal_error ( errcode ); } +#define AssertD(cond,msg) do { } while (0) +#define VPrintf0(zf) do { } while (0) +#define VPrintf1(zf,za1) do { } while (0) +#define VPrintf2(zf,za1,za2) do { } while (0) +#define VPrintf3(zf,za1,za2,za3) do { } while (0) +#define VPrintf4(zf,za1,za2,za3,za4) do { } while (0) +#define VPrintf5(zf,za1,za2,za3,za4,za5) do { } while (0) + +#endif + + +#define BZALLOC(nnn) (strm->bzalloc)(strm->opaque,(nnn),1) +#define BZFREE(ppp) (strm->bzfree)(strm->opaque,(ppp)) + + +/*-- Header bytes. --*/ + +#define BZ_HDR_B 0x42 /* 'B' */ +#define BZ_HDR_Z 0x5a /* 'Z' */ +#define BZ_HDR_h 0x68 /* 'h' */ +#define BZ_HDR_0 0x30 /* '0' */ + +/*-- Constants for the back end. --*/ + +#define BZ_MAX_ALPHA_SIZE 258 +#define BZ_MAX_CODE_LEN 23 + +#define BZ_RUNA 0 +#define BZ_RUNB 1 + +#define BZ_N_GROUPS 6 +#define BZ_G_SIZE 50 +#define BZ_N_ITERS 4 + +#define BZ_MAX_SELECTORS (2 + (900000 / BZ_G_SIZE)) + + + +/*-- Stuff for randomising repetitive blocks. --*/ + +extern Int32 BZ2_rNums[512]; + +#define BZ_RAND_DECLS \ + Int32 rNToGo; \ + Int32 rTPos \ + +#define BZ_RAND_INIT_MASK \ + s->rNToGo = 0; \ + s->rTPos = 0 \ + +#define BZ_RAND_MASK ((s->rNToGo == 1) ? 1 : 0) + +#define BZ_RAND_UPD_MASK \ + if (s->rNToGo == 0) { \ + s->rNToGo = BZ2_rNums[s->rTPos]; \ + s->rTPos++; \ + if (s->rTPos == 512) s->rTPos = 0; \ + } \ + s->rNToGo--; + + + +/*-- Stuff for doing CRCs. --*/ + +extern UInt32 BZ2_crc32Table[256]; + +#define BZ_INITIALISE_CRC(crcVar) \ +{ \ + crcVar = 0xffffffffL; \ +} + +#define BZ_FINALISE_CRC(crcVar) \ +{ \ + crcVar = ~(crcVar); \ +} + +#define BZ_UPDATE_CRC(crcVar,cha) \ +{ \ + crcVar = (crcVar << 8) ^ \ + BZ2_crc32Table[(crcVar >> 24) ^ \ + ((UChar)cha)]; \ +} + + + +/*-- States and modes for compression. --*/ + +#define BZ_M_IDLE 1 +#define BZ_M_RUNNING 2 +#define BZ_M_FLUSHING 3 +#define BZ_M_FINISHING 4 + +#define BZ_S_OUTPUT 1 +#define BZ_S_INPUT 2 + +#define BZ_N_RADIX 2 +#define BZ_N_QSORT 12 +#define BZ_N_SHELL 18 +#define BZ_N_OVERSHOOT (BZ_N_RADIX + BZ_N_QSORT + BZ_N_SHELL + 2) + + + + +/*-- Structure holding all the compression-side stuff. --*/ + +typedef + struct { + /* pointer back to the struct bz_stream */ + bz_stream* strm; + + /* mode this stream is in, and whether inputting */ + /* or outputting data */ + Int32 mode; + Int32 state; + + /* remembers avail_in when flush/finish requested */ + UInt32 avail_in_expect; + + /* for doing the block sorting */ + UInt32* arr1; + UInt32* arr2; + UInt32* ftab; + Int32 origPtr; + + /* aliases for arr1 and arr2 */ + UInt32* ptr; + UChar* block; + UInt16* mtfv; + UChar* zbits; + + /* for deciding when to use the fallback sorting algorithm */ + Int32 workFactor; + + /* run-length-encoding of the input */ + UInt32 state_in_ch; + Int32 state_in_len; + BZ_RAND_DECLS; + + /* input and output limits and current posns */ + Int32 nblock; + Int32 nblockMAX; + Int32 numZ; + Int32 state_out_pos; + + /* map of bytes used in block */ + Int32 nInUse; + Bool inUse[256]; + UChar unseqToSeq[256]; + + /* the buffer for bit stream creation */ + UInt32 bsBuff; + Int32 bsLive; + + /* block and combined CRCs */ + UInt32 blockCRC; + UInt32 combinedCRC; + + /* misc administratium */ + Int32 verbosity; + Int32 blockNo; + Int32 blockSize100k; + + /* stuff for coding the MTF values */ + Int32 nMTF; + Int32 mtfFreq [BZ_MAX_ALPHA_SIZE]; + UChar selector [BZ_MAX_SELECTORS]; + UChar selectorMtf[BZ_MAX_SELECTORS]; + + UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; + Int32 code [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; + Int32 rfreq [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; + /* second dimension: only 3 needed; 4 makes index calculations faster */ + UInt32 len_pack[BZ_MAX_ALPHA_SIZE][4]; + + } + EState; + + + +/*-- externs for compression. --*/ + +extern void +BZ2_blockSort ( EState* ); + +extern void +BZ2_compressBlock ( EState*, Bool ); + +extern void +BZ2_bsInitWrite ( EState* ); + +extern void +BZ2_hbAssignCodes ( Int32*, UChar*, Int32, Int32, Int32 ); + +extern void +BZ2_hbMakeCodeLengths ( UChar*, Int32*, Int32, Int32 ); + + + +/*-- states for decompression. --*/ + +#define BZ_X_IDLE 1 +#define BZ_X_OUTPUT 2 + +#define BZ_X_MAGIC_1 10 +#define BZ_X_MAGIC_2 11 +#define BZ_X_MAGIC_3 12 +#define BZ_X_MAGIC_4 13 +#define BZ_X_BLKHDR_1 14 +#define BZ_X_BLKHDR_2 15 +#define BZ_X_BLKHDR_3 16 +#define BZ_X_BLKHDR_4 17 +#define BZ_X_BLKHDR_5 18 +#define BZ_X_BLKHDR_6 19 +#define BZ_X_BCRC_1 20 +#define BZ_X_BCRC_2 21 +#define BZ_X_BCRC_3 22 +#define BZ_X_BCRC_4 23 +#define BZ_X_RANDBIT 24 +#define BZ_X_ORIGPTR_1 25 +#define BZ_X_ORIGPTR_2 26 +#define BZ_X_ORIGPTR_3 27 +#define BZ_X_MAPPING_1 28 +#define BZ_X_MAPPING_2 29 +#define BZ_X_SELECTOR_1 30 +#define BZ_X_SELECTOR_2 31 +#define BZ_X_SELECTOR_3 32 +#define BZ_X_CODING_1 33 +#define BZ_X_CODING_2 34 +#define BZ_X_CODING_3 35 +#define BZ_X_MTF_1 36 +#define BZ_X_MTF_2 37 +#define BZ_X_MTF_3 38 +#define BZ_X_MTF_4 39 +#define BZ_X_MTF_5 40 +#define BZ_X_MTF_6 41 +#define BZ_X_ENDHDR_2 42 +#define BZ_X_ENDHDR_3 43 +#define BZ_X_ENDHDR_4 44 +#define BZ_X_ENDHDR_5 45 +#define BZ_X_ENDHDR_6 46 +#define BZ_X_CCRC_1 47 +#define BZ_X_CCRC_2 48 +#define BZ_X_CCRC_3 49 +#define BZ_X_CCRC_4 50 + + + +/*-- Constants for the fast MTF decoder. --*/ + +#define MTFA_SIZE 4096 +#define MTFL_SIZE 16 + + + +/*-- Structure holding all the decompression-side stuff. --*/ + +typedef + struct { + /* pointer back to the struct bz_stream */ + bz_stream* strm; + + /* state indicator for this stream */ + Int32 state; + + /* for doing the final run-length decoding */ + UChar state_out_ch; + Int32 state_out_len; + Bool blockRandomised; + BZ_RAND_DECLS; + + /* the buffer for bit stream reading */ + UInt32 bsBuff; + Int32 bsLive; + + /* misc administratium */ + Int32 blockSize100k; + Bool smallDecompress; + Int32 currBlockNo; + Int32 verbosity; + + /* for undoing the Burrows-Wheeler transform */ + Int32 origPtr; + UInt32 tPos; + Int32 k0; + Int32 unzftab[256]; + Int32 nblock_used; + Int32 cftab[257]; + Int32 cftabCopy[257]; + + /* for undoing the Burrows-Wheeler transform (FAST) */ + UInt32 *tt; + + /* for undoing the Burrows-Wheeler transform (SMALL) */ + UInt16 *ll16; + UChar *ll4; + + /* stored and calculated CRCs */ + UInt32 storedBlockCRC; + UInt32 storedCombinedCRC; + UInt32 calculatedBlockCRC; + UInt32 calculatedCombinedCRC; + + /* map of bytes used in block */ + Int32 nInUse; + Bool inUse[256]; + Bool inUse16[16]; + UChar seqToUnseq[256]; + + /* for decoding the MTF values */ + UChar mtfa [MTFA_SIZE]; + Int32 mtfbase[256 / MTFL_SIZE]; + UChar selector [BZ_MAX_SELECTORS]; + UChar selectorMtf[BZ_MAX_SELECTORS]; + UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; + + Int32 limit [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; + Int32 base [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; + Int32 perm [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; + Int32 minLens[BZ_N_GROUPS]; + + /* save area for scalars in the main decompress code */ + Int32 save_i; + Int32 save_j; + Int32 save_t; + Int32 save_alphaSize; + Int32 save_nGroups; + Int32 save_nSelectors; + Int32 save_EOB; + Int32 save_groupNo; + Int32 save_groupPos; + Int32 save_nextSym; + Int32 save_nblockMAX; + Int32 save_nblock; + Int32 save_es; + Int32 save_N; + Int32 save_curr; + Int32 save_zt; + Int32 save_zn; + Int32 save_zvec; + Int32 save_zj; + Int32 save_gSel; + Int32 save_gMinlen; + Int32* save_gLimit; + Int32* save_gBase; + Int32* save_gPerm; + + } + DState; + + + +/*-- Macros for decompression. --*/ + +#define BZ_GET_FAST(cccc) \ + /* c_tPos is unsigned, hence test < 0 is pointless. */ \ + if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \ + s->tPos = s->tt[s->tPos]; \ + cccc = (UChar)(s->tPos & 0xff); \ + s->tPos >>= 8; + +#define BZ_GET_FAST_C(cccc) \ + /* c_tPos is unsigned, hence test < 0 is pointless. */ \ + if (c_tPos >= (UInt32)100000 * (UInt32)ro_blockSize100k) return True; \ + c_tPos = c_tt[c_tPos]; \ + cccc = (UChar)(c_tPos & 0xff); \ + c_tPos >>= 8; + +#define SET_LL4(i,n) \ + { if (((i) & 0x1) == 0) \ + s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0xf0) | (n); else \ + s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0x0f) | ((n) << 4); \ + } + +#define GET_LL4(i) \ + ((((UInt32)(s->ll4[(i) >> 1])) >> (((i) << 2) & 0x4)) & 0xF) + +#define SET_LL(i,n) \ + { s->ll16[i] = (UInt16)(n & 0x0000ffff); \ + SET_LL4(i, n >> 16); \ + } + +#define GET_LL(i) \ + (((UInt32)s->ll16[i]) | (GET_LL4(i) << 16)) + +#define BZ_GET_SMALL(cccc) \ + /* c_tPos is unsigned, hence test < 0 is pointless. */ \ + if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \ + cccc = BZ2_indexIntoF ( s->tPos, s->cftab ); \ + s->tPos = GET_LL(s->tPos); + + +/*-- externs for decompression. --*/ + +extern Int32 +BZ2_indexIntoF ( Int32, Int32* ); + +extern Int32 +BZ2_decompress ( DState* ); + +extern void +BZ2_hbCreateDecodeTables ( Int32*, Int32*, Int32*, UChar*, + Int32, Int32, Int32 ); + + +#endif + + +/*-- BZ_NO_STDIO seems to make NULL disappear on some platforms. --*/ + +#ifdef BZ_NO_STDIO +#ifndef NULL +#define NULL 0 +#endif +#endif + + +/*-------------------------------------------------------------*/ +/*--- end bzlib_private.h ---*/ +/*-------------------------------------------------------------*/ diff --git a/mk/linux/mojosetup/bzip2/compress.c b/mk/linux/mojosetup/bzip2/compress.c new file mode 100644 index 00000000..8c80a079 --- /dev/null +++ b/mk/linux/mojosetup/bzip2/compress.c @@ -0,0 +1,672 @@ + +/*-------------------------------------------------------------*/ +/*--- Compression machinery (not incl block sorting) ---*/ +/*--- compress.c ---*/ +/*-------------------------------------------------------------*/ + +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. + + bzip2/libbzip2 version 1.0.5 of 10 December 2007 + Copyright (C) 1996-2007 Julian Seward + + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. + + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ + + +/* CHANGES + 0.9.0 -- original version. + 0.9.0a/b -- no changes in this file. + 0.9.0c -- changed setting of nGroups in sendMTFValues() + so as to do a bit better on small files +*/ + +#include "bzlib_private.h" + + +/*---------------------------------------------------*/ +/*--- Bit stream I/O ---*/ +/*---------------------------------------------------*/ + +/*---------------------------------------------------*/ +void BZ2_bsInitWrite ( EState* s ) +{ + s->bsLive = 0; + s->bsBuff = 0; +} + + +/*---------------------------------------------------*/ +static +void bsFinishWrite ( EState* s ) +{ + while (s->bsLive > 0) { + s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24); + s->numZ++; + s->bsBuff <<= 8; + s->bsLive -= 8; + } +} + + +/*---------------------------------------------------*/ +#define bsNEEDW(nz) \ +{ \ + while (s->bsLive >= 8) { \ + s->zbits[s->numZ] \ + = (UChar)(s->bsBuff >> 24); \ + s->numZ++; \ + s->bsBuff <<= 8; \ + s->bsLive -= 8; \ + } \ +} + + +/*---------------------------------------------------*/ +static +__inline__ +void bsW ( EState* s, Int32 n, UInt32 v ) +{ + bsNEEDW ( n ); + s->bsBuff |= (v << (32 - s->bsLive - n)); + s->bsLive += n; +} + + +/*---------------------------------------------------*/ +static +void bsPutUInt32 ( EState* s, UInt32 u ) +{ + bsW ( s, 8, (u >> 24) & 0xffL ); + bsW ( s, 8, (u >> 16) & 0xffL ); + bsW ( s, 8, (u >> 8) & 0xffL ); + bsW ( s, 8, u & 0xffL ); +} + + +/*---------------------------------------------------*/ +static +void bsPutUChar ( EState* s, UChar c ) +{ + bsW( s, 8, (UInt32)c ); +} + + +/*---------------------------------------------------*/ +/*--- The back end proper ---*/ +/*---------------------------------------------------*/ + +/*---------------------------------------------------*/ +static +void makeMaps_e ( EState* s ) +{ + Int32 i; + s->nInUse = 0; + for (i = 0; i < 256; i++) + if (s->inUse[i]) { + s->unseqToSeq[i] = s->nInUse; + s->nInUse++; + } +} + + +/*---------------------------------------------------*/ +static +void generateMTFValues ( EState* s ) +{ + UChar yy[256]; + Int32 i, j; + Int32 zPend; + Int32 wr; + Int32 EOB; + + /* + After sorting (eg, here), + s->arr1 [ 0 .. s->nblock-1 ] holds sorted order, + and + ((UChar*)s->arr2) [ 0 .. s->nblock-1 ] + holds the original block data. + + The first thing to do is generate the MTF values, + and put them in + ((UInt16*)s->arr1) [ 0 .. s->nblock-1 ]. + Because there are strictly fewer or equal MTF values + than block values, ptr values in this area are overwritten + with MTF values only when they are no longer needed. + + The final compressed bitstream is generated into the + area starting at + (UChar*) (&((UChar*)s->arr2)[s->nblock]) + + These storage aliases are set up in bzCompressInit(), + except for the last one, which is arranged in + compressBlock(). + */ + UInt32* ptr = s->ptr; + UChar* block = s->block; + UInt16* mtfv = s->mtfv; + + makeMaps_e ( s ); + EOB = s->nInUse+1; + + for (i = 0; i <= EOB; i++) s->mtfFreq[i] = 0; + + wr = 0; + zPend = 0; + for (i = 0; i < s->nInUse; i++) yy[i] = (UChar) i; + + for (i = 0; i < s->nblock; i++) { + UChar ll_i; + AssertD ( wr <= i, "generateMTFValues(1)" ); + j = ptr[i]-1; if (j < 0) j += s->nblock; + ll_i = s->unseqToSeq[block[j]]; + AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" ); + + if (yy[0] == ll_i) { + zPend++; + } else { + + if (zPend > 0) { + zPend--; + while (True) { + if (zPend & 1) { + mtfv[wr] = BZ_RUNB; wr++; + s->mtfFreq[BZ_RUNB]++; + } else { + mtfv[wr] = BZ_RUNA; wr++; + s->mtfFreq[BZ_RUNA]++; + } + if (zPend < 2) break; + zPend = (zPend - 2) / 2; + }; + zPend = 0; + } + { + register UChar rtmp; + register UChar* ryy_j; + register UChar rll_i; + rtmp = yy[1]; + yy[1] = yy[0]; + ryy_j = &(yy[1]); + rll_i = ll_i; + while ( rll_i != rtmp ) { + register UChar rtmp2; + ryy_j++; + rtmp2 = rtmp; + rtmp = *ryy_j; + *ryy_j = rtmp2; + }; + yy[0] = rtmp; + j = ryy_j - &(yy[0]); + mtfv[wr] = j+1; wr++; s->mtfFreq[j+1]++; + } + + } + } + + if (zPend > 0) { + zPend--; + while (True) { + if (zPend & 1) { + mtfv[wr] = BZ_RUNB; wr++; + s->mtfFreq[BZ_RUNB]++; + } else { + mtfv[wr] = BZ_RUNA; wr++; + s->mtfFreq[BZ_RUNA]++; + } + if (zPend < 2) break; + zPend = (zPend - 2) / 2; + }; + zPend = 0; + } + + mtfv[wr] = EOB; wr++; s->mtfFreq[EOB]++; + + s->nMTF = wr; +} + + +/*---------------------------------------------------*/ +#define BZ_LESSER_ICOST 0 +#define BZ_GREATER_ICOST 15 + +static +void sendMTFValues ( EState* s ) +{ + Int32 v, t, i, j, gs, ge, totc, bt, bc, iter; + Int32 nSelectors, alphaSize, minLen, maxLen, selCtr; + Int32 nGroups, nBytes; + + /*-- + UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; + is a global since the decoder also needs it. + + Int32 code[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; + Int32 rfreq[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; + are also globals only used in this proc. + Made global to keep stack frame size small. + --*/ + + + UInt16 cost[BZ_N_GROUPS]; + Int32 fave[BZ_N_GROUPS]; + + UInt16* mtfv = s->mtfv; + + if (s->verbosity >= 3) + VPrintf3( " %d in block, %d after MTF & 1-2 coding, " + "%d+2 syms in use\n", + s->nblock, s->nMTF, s->nInUse ); + + alphaSize = s->nInUse+2; + for (t = 0; t < BZ_N_GROUPS; t++) + for (v = 0; v < alphaSize; v++) + s->len[t][v] = BZ_GREATER_ICOST; + + /*--- Decide how many coding tables to use ---*/ + AssertH ( s->nMTF > 0, 3001 ); + if (s->nMTF < 200) nGroups = 2; else + if (s->nMTF < 600) nGroups = 3; else + if (s->nMTF < 1200) nGroups = 4; else + if (s->nMTF < 2400) nGroups = 5; else + nGroups = 6; + + /*--- Generate an initial set of coding tables ---*/ + { + Int32 nPart, remF, tFreq, aFreq; + + nPart = nGroups; + remF = s->nMTF; + gs = 0; + while (nPart > 0) { + tFreq = remF / nPart; + ge = gs-1; + aFreq = 0; + while (aFreq < tFreq && ge < alphaSize-1) { + ge++; + aFreq += s->mtfFreq[ge]; + } + + if (ge > gs + && nPart != nGroups && nPart != 1 + && ((nGroups-nPart) % 2 == 1)) { + aFreq -= s->mtfFreq[ge]; + ge--; + } + + if (s->verbosity >= 3) + VPrintf5( " initial group %d, [%d .. %d], " + "has %d syms (%4.1f%%)\n", + nPart, gs, ge, aFreq, + (100.0 * (float)aFreq) / (float)(s->nMTF) ); + + for (v = 0; v < alphaSize; v++) + if (v >= gs && v <= ge) + s->len[nPart-1][v] = BZ_LESSER_ICOST; else + s->len[nPart-1][v] = BZ_GREATER_ICOST; + + nPart--; + gs = ge+1; + remF -= aFreq; + } + } + + /*--- + Iterate up to BZ_N_ITERS times to improve the tables. + ---*/ + for (iter = 0; iter < BZ_N_ITERS; iter++) { + + for (t = 0; t < nGroups; t++) fave[t] = 0; + + for (t = 0; t < nGroups; t++) + for (v = 0; v < alphaSize; v++) + s->rfreq[t][v] = 0; + + /*--- + Set up an auxiliary length table which is used to fast-track + the common case (nGroups == 6). + ---*/ + if (nGroups == 6) { + for (v = 0; v < alphaSize; v++) { + s->len_pack[v][0] = (s->len[1][v] << 16) | s->len[0][v]; + s->len_pack[v][1] = (s->len[3][v] << 16) | s->len[2][v]; + s->len_pack[v][2] = (s->len[5][v] << 16) | s->len[4][v]; + } + } + + nSelectors = 0; + totc = 0; + gs = 0; + while (True) { + + /*--- Set group start & end marks. --*/ + if (gs >= s->nMTF) break; + ge = gs + BZ_G_SIZE - 1; + if (ge >= s->nMTF) ge = s->nMTF-1; + + /*-- + Calculate the cost of this group as coded + by each of the coding tables. + --*/ + for (t = 0; t < nGroups; t++) cost[t] = 0; + + if (nGroups == 6 && 50 == ge-gs+1) { + /*--- fast track the common case ---*/ + register UInt32 cost01, cost23, cost45; + register UInt16 icv; + cost01 = cost23 = cost45 = 0; + +# define BZ_ITER(nn) \ + icv = mtfv[gs+(nn)]; \ + cost01 += s->len_pack[icv][0]; \ + cost23 += s->len_pack[icv][1]; \ + cost45 += s->len_pack[icv][2]; \ + + BZ_ITER(0); BZ_ITER(1); BZ_ITER(2); BZ_ITER(3); BZ_ITER(4); + BZ_ITER(5); BZ_ITER(6); BZ_ITER(7); BZ_ITER(8); BZ_ITER(9); + BZ_ITER(10); BZ_ITER(11); BZ_ITER(12); BZ_ITER(13); BZ_ITER(14); + BZ_ITER(15); BZ_ITER(16); BZ_ITER(17); BZ_ITER(18); BZ_ITER(19); + BZ_ITER(20); BZ_ITER(21); BZ_ITER(22); BZ_ITER(23); BZ_ITER(24); + BZ_ITER(25); BZ_ITER(26); BZ_ITER(27); BZ_ITER(28); BZ_ITER(29); + BZ_ITER(30); BZ_ITER(31); BZ_ITER(32); BZ_ITER(33); BZ_ITER(34); + BZ_ITER(35); BZ_ITER(36); BZ_ITER(37); BZ_ITER(38); BZ_ITER(39); + BZ_ITER(40); BZ_ITER(41); BZ_ITER(42); BZ_ITER(43); BZ_ITER(44); + BZ_ITER(45); BZ_ITER(46); BZ_ITER(47); BZ_ITER(48); BZ_ITER(49); + +# undef BZ_ITER + + cost[0] = cost01 & 0xffff; cost[1] = cost01 >> 16; + cost[2] = cost23 & 0xffff; cost[3] = cost23 >> 16; + cost[4] = cost45 & 0xffff; cost[5] = cost45 >> 16; + + } else { + /*--- slow version which correctly handles all situations ---*/ + for (i = gs; i <= ge; i++) { + UInt16 icv = mtfv[i]; + for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv]; + } + } + + /*-- + Find the coding table which is best for this group, + and record its identity in the selector table. + --*/ + bc = 999999999; bt = -1; + for (t = 0; t < nGroups; t++) + if (cost[t] < bc) { bc = cost[t]; bt = t; }; + totc += bc; + fave[bt]++; + s->selector[nSelectors] = bt; + nSelectors++; + + /*-- + Increment the symbol frequencies for the selected table. + --*/ + if (nGroups == 6 && 50 == ge-gs+1) { + /*--- fast track the common case ---*/ + +# define BZ_ITUR(nn) s->rfreq[bt][ mtfv[gs+(nn)] ]++ + + BZ_ITUR(0); BZ_ITUR(1); BZ_ITUR(2); BZ_ITUR(3); BZ_ITUR(4); + BZ_ITUR(5); BZ_ITUR(6); BZ_ITUR(7); BZ_ITUR(8); BZ_ITUR(9); + BZ_ITUR(10); BZ_ITUR(11); BZ_ITUR(12); BZ_ITUR(13); BZ_ITUR(14); + BZ_ITUR(15); BZ_ITUR(16); BZ_ITUR(17); BZ_ITUR(18); BZ_ITUR(19); + BZ_ITUR(20); BZ_ITUR(21); BZ_ITUR(22); BZ_ITUR(23); BZ_ITUR(24); + BZ_ITUR(25); BZ_ITUR(26); BZ_ITUR(27); BZ_ITUR(28); BZ_ITUR(29); + BZ_ITUR(30); BZ_ITUR(31); BZ_ITUR(32); BZ_ITUR(33); BZ_ITUR(34); + BZ_ITUR(35); BZ_ITUR(36); BZ_ITUR(37); BZ_ITUR(38); BZ_ITUR(39); + BZ_ITUR(40); BZ_ITUR(41); BZ_ITUR(42); BZ_ITUR(43); BZ_ITUR(44); + BZ_ITUR(45); BZ_ITUR(46); BZ_ITUR(47); BZ_ITUR(48); BZ_ITUR(49); + +# undef BZ_ITUR + + } else { + /*--- slow version which correctly handles all situations ---*/ + for (i = gs; i <= ge; i++) + s->rfreq[bt][ mtfv[i] ]++; + } + + gs = ge+1; + } + if (s->verbosity >= 3) { + VPrintf2 ( " pass %d: size is %d, grp uses are ", + iter+1, totc/8 ); + for (t = 0; t < nGroups; t++) + VPrintf1 ( "%d ", fave[t] ); + VPrintf0 ( "\n" ); + } + + /*-- + Recompute the tables based on the accumulated frequencies. + --*/ + /* maxLen was changed from 20 to 17 in bzip2-1.0.3. See + comment in huffman.c for details. */ + for (t = 0; t < nGroups; t++) + BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]), + alphaSize, 17 /*20*/ ); + } + + + AssertH( nGroups < 8, 3002 ); + AssertH( nSelectors < 32768 && + nSelectors <= (2 + (900000 / BZ_G_SIZE)), + 3003 ); + + + /*--- Compute MTF values for the selectors. ---*/ + { + UChar pos[BZ_N_GROUPS], ll_i, tmp2, tmp; + for (i = 0; i < nGroups; i++) pos[i] = i; + for (i = 0; i < nSelectors; i++) { + ll_i = s->selector[i]; + j = 0; + tmp = pos[j]; + while ( ll_i != tmp ) { + j++; + tmp2 = tmp; + tmp = pos[j]; + pos[j] = tmp2; + }; + pos[0] = tmp; + s->selectorMtf[i] = j; + } + }; + + /*--- Assign actual codes for the tables. --*/ + for (t = 0; t < nGroups; t++) { + minLen = 32; + maxLen = 0; + for (i = 0; i < alphaSize; i++) { + if (s->len[t][i] > maxLen) maxLen = s->len[t][i]; + if (s->len[t][i] < minLen) minLen = s->len[t][i]; + } + AssertH ( !(maxLen > 17 /*20*/ ), 3004 ); + AssertH ( !(minLen < 1), 3005 ); + BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]), + minLen, maxLen, alphaSize ); + } + + /*--- Transmit the mapping table. ---*/ + { + Bool inUse16[16]; + for (i = 0; i < 16; i++) { + inUse16[i] = False; + for (j = 0; j < 16; j++) + if (s->inUse[i * 16 + j]) inUse16[i] = True; + } + + nBytes = s->numZ; + for (i = 0; i < 16; i++) + if (inUse16[i]) bsW(s,1,1); else bsW(s,1,0); + + for (i = 0; i < 16; i++) + if (inUse16[i]) + for (j = 0; j < 16; j++) { + if (s->inUse[i * 16 + j]) bsW(s,1,1); else bsW(s,1,0); + } + + if (s->verbosity >= 3) + VPrintf1( " bytes: mapping %d, ", s->numZ-nBytes ); + } + + /*--- Now the selectors. ---*/ + nBytes = s->numZ; + bsW ( s, 3, nGroups ); + bsW ( s, 15, nSelectors ); + for (i = 0; i < nSelectors; i++) { + for (j = 0; j < s->selectorMtf[i]; j++) bsW(s,1,1); + bsW(s,1,0); + } + if (s->verbosity >= 3) + VPrintf1( "selectors %d, ", s->numZ-nBytes ); + + /*--- Now the coding tables. ---*/ + nBytes = s->numZ; + + for (t = 0; t < nGroups; t++) { + Int32 curr = s->len[t][0]; + bsW ( s, 5, curr ); + for (i = 0; i < alphaSize; i++) { + while (curr < s->len[t][i]) { bsW(s,2,2); curr++; /* 10 */ }; + while (curr > s->len[t][i]) { bsW(s,2,3); curr--; /* 11 */ }; + bsW ( s, 1, 0 ); + } + } + + if (s->verbosity >= 3) + VPrintf1 ( "code lengths %d, ", s->numZ-nBytes ); + + /*--- And finally, the block data proper ---*/ + nBytes = s->numZ; + selCtr = 0; + gs = 0; + while (True) { + if (gs >= s->nMTF) break; + ge = gs + BZ_G_SIZE - 1; + if (ge >= s->nMTF) ge = s->nMTF-1; + AssertH ( s->selector[selCtr] < nGroups, 3006 ); + + if (nGroups == 6 && 50 == ge-gs+1) { + /*--- fast track the common case ---*/ + UInt16 mtfv_i; + UChar* s_len_sel_selCtr + = &(s->len[s->selector[selCtr]][0]); + Int32* s_code_sel_selCtr + = &(s->code[s->selector[selCtr]][0]); + +# define BZ_ITAH(nn) \ + mtfv_i = mtfv[gs+(nn)]; \ + bsW ( s, \ + s_len_sel_selCtr[mtfv_i], \ + s_code_sel_selCtr[mtfv_i] ) + + BZ_ITAH(0); BZ_ITAH(1); BZ_ITAH(2); BZ_ITAH(3); BZ_ITAH(4); + BZ_ITAH(5); BZ_ITAH(6); BZ_ITAH(7); BZ_ITAH(8); BZ_ITAH(9); + BZ_ITAH(10); BZ_ITAH(11); BZ_ITAH(12); BZ_ITAH(13); BZ_ITAH(14); + BZ_ITAH(15); BZ_ITAH(16); BZ_ITAH(17); BZ_ITAH(18); BZ_ITAH(19); + BZ_ITAH(20); BZ_ITAH(21); BZ_ITAH(22); BZ_ITAH(23); BZ_ITAH(24); + BZ_ITAH(25); BZ_ITAH(26); BZ_ITAH(27); BZ_ITAH(28); BZ_ITAH(29); + BZ_ITAH(30); BZ_ITAH(31); BZ_ITAH(32); BZ_ITAH(33); BZ_ITAH(34); + BZ_ITAH(35); BZ_ITAH(36); BZ_ITAH(37); BZ_ITAH(38); BZ_ITAH(39); + BZ_ITAH(40); BZ_ITAH(41); BZ_ITAH(42); BZ_ITAH(43); BZ_ITAH(44); + BZ_ITAH(45); BZ_ITAH(46); BZ_ITAH(47); BZ_ITAH(48); BZ_ITAH(49); + +# undef BZ_ITAH + + } else { + /*--- slow version which correctly handles all situations ---*/ + for (i = gs; i <= ge; i++) { + bsW ( s, + s->len [s->selector[selCtr]] [mtfv[i]], + s->code [s->selector[selCtr]] [mtfv[i]] ); + } + } + + + gs = ge+1; + selCtr++; + } + AssertH( selCtr == nSelectors, 3007 ); + + if (s->verbosity >= 3) + VPrintf1( "codes %d\n", s->numZ-nBytes ); +} + + +/*---------------------------------------------------*/ +void BZ2_compressBlock ( EState* s, Bool is_last_block ) +{ + if (s->nblock > 0) { + + BZ_FINALISE_CRC ( s->blockCRC ); + s->combinedCRC = (s->combinedCRC << 1) | (s->combinedCRC >> 31); + s->combinedCRC ^= s->blockCRC; + if (s->blockNo > 1) s->numZ = 0; + + if (s->verbosity >= 2) + VPrintf4( " block %d: crc = 0x%08x, " + "combined CRC = 0x%08x, size = %d\n", + s->blockNo, s->blockCRC, s->combinedCRC, s->nblock ); + + BZ2_blockSort ( s ); + } + + s->zbits = (UChar*) (&((UChar*)s->arr2)[s->nblock]); + + /*-- If this is the first block, create the stream header. --*/ + if (s->blockNo == 1) { + BZ2_bsInitWrite ( s ); + bsPutUChar ( s, BZ_HDR_B ); + bsPutUChar ( s, BZ_HDR_Z ); + bsPutUChar ( s, BZ_HDR_h ); + bsPutUChar ( s, (UChar)(BZ_HDR_0 + s->blockSize100k) ); + } + + if (s->nblock > 0) { + + bsPutUChar ( s, 0x31 ); bsPutUChar ( s, 0x41 ); + bsPutUChar ( s, 0x59 ); bsPutUChar ( s, 0x26 ); + bsPutUChar ( s, 0x53 ); bsPutUChar ( s, 0x59 ); + + /*-- Now the block's CRC, so it is in a known place. --*/ + bsPutUInt32 ( s, s->blockCRC ); + + /*-- + Now a single bit indicating (non-)randomisation. + As of version 0.9.5, we use a better sorting algorithm + which makes randomisation unnecessary. So always set + the randomised bit to 'no'. Of course, the decoder + still needs to be able to handle randomised blocks + so as to maintain backwards compatibility with + older versions of bzip2. + --*/ + bsW(s,1,0); + + bsW ( s, 24, s->origPtr ); + generateMTFValues ( s ); + sendMTFValues ( s ); + } + + + /*-- If this is the last block, add the stream trailer. --*/ + if (is_last_block) { + + bsPutUChar ( s, 0x17 ); bsPutUChar ( s, 0x72 ); + bsPutUChar ( s, 0x45 ); bsPutUChar ( s, 0x38 ); + bsPutUChar ( s, 0x50 ); bsPutUChar ( s, 0x90 ); + bsPutUInt32 ( s, s->combinedCRC ); + if (s->verbosity >= 2) + VPrintf1( " final combined CRC = 0x%08x\n ", s->combinedCRC ); + bsFinishWrite ( s ); + } +} + + +/*-------------------------------------------------------------*/ +/*--- end compress.c ---*/ +/*-------------------------------------------------------------*/ diff --git a/mk/linux/mojosetup/bzip2/crctable.c b/mk/linux/mojosetup/bzip2/crctable.c new file mode 100644 index 00000000..215687b2 --- /dev/null +++ b/mk/linux/mojosetup/bzip2/crctable.c @@ -0,0 +1,104 @@ + +/*-------------------------------------------------------------*/ +/*--- Table for doing CRCs ---*/ +/*--- crctable.c ---*/ +/*-------------------------------------------------------------*/ + +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. + + bzip2/libbzip2 version 1.0.5 of 10 December 2007 + Copyright (C) 1996-2007 Julian Seward + + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. + + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ + + +#include "bzlib_private.h" + +/*-- + I think this is an implementation of the AUTODIN-II, + Ethernet & FDDI 32-bit CRC standard. Vaguely derived + from code by Rob Warnock, in Section 51 of the + comp.compression FAQ. +--*/ + +UInt32 BZ2_crc32Table[256] = { + + /*-- Ugly, innit? --*/ + + 0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L, + 0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L, + 0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L, + 0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL, + 0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L, + 0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L, + 0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L, + 0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL, + 0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L, + 0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L, + 0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L, + 0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL, + 0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L, + 0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L, + 0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L, + 0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL, + 0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL, + 0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L, + 0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L, + 0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL, + 0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL, + 0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L, + 0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L, + 0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL, + 0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL, + 0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L, + 0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L, + 0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL, + 0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL, + 0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L, + 0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L, + 0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL, + 0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L, + 0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL, + 0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL, + 0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L, + 0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L, + 0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL, + 0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL, + 0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L, + 0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L, + 0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL, + 0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL, + 0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L, + 0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L, + 0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL, + 0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL, + 0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L, + 0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L, + 0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL, + 0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L, + 0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L, + 0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L, + 0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL, + 0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L, + 0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L, + 0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L, + 0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL, + 0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L, + 0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L, + 0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L, + 0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL, + 0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L, + 0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L +}; + + +/*-------------------------------------------------------------*/ +/*--- end crctable.c ---*/ +/*-------------------------------------------------------------*/ diff --git a/mk/linux/mojosetup/bzip2/decompress.c b/mk/linux/mojosetup/bzip2/decompress.c new file mode 100644 index 00000000..bba5e0fa --- /dev/null +++ b/mk/linux/mojosetup/bzip2/decompress.c @@ -0,0 +1,626 @@ + +/*-------------------------------------------------------------*/ +/*--- Decompression machinery ---*/ +/*--- decompress.c ---*/ +/*-------------------------------------------------------------*/ + +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. + + bzip2/libbzip2 version 1.0.5 of 10 December 2007 + Copyright (C) 1996-2007 Julian Seward + + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. + + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ + + +#include "bzlib_private.h" + + +/*---------------------------------------------------*/ +static +void makeMaps_d ( DState* s ) +{ + Int32 i; + s->nInUse = 0; + for (i = 0; i < 256; i++) + if (s->inUse[i]) { + s->seqToUnseq[s->nInUse] = i; + s->nInUse++; + } +} + + +/*---------------------------------------------------*/ +#define RETURN(rrr) \ + { retVal = rrr; goto save_state_and_return; }; + +#define GET_BITS(lll,vvv,nnn) \ + case lll: s->state = lll; \ + while (True) { \ + if (s->bsLive >= nnn) { \ + UInt32 v; \ + v = (s->bsBuff >> \ + (s->bsLive-nnn)) & ((1 << nnn)-1); \ + s->bsLive -= nnn; \ + vvv = v; \ + break; \ + } \ + if (s->strm->avail_in == 0) RETURN(BZ_OK); \ + s->bsBuff \ + = (s->bsBuff << 8) | \ + ((UInt32) \ + (*((UChar*)(s->strm->next_in)))); \ + s->bsLive += 8; \ + s->strm->next_in++; \ + s->strm->avail_in--; \ + s->strm->total_in_lo32++; \ + if (s->strm->total_in_lo32 == 0) \ + s->strm->total_in_hi32++; \ + } + +#define GET_UCHAR(lll,uuu) \ + GET_BITS(lll,uuu,8) + +#define GET_BIT(lll,uuu) \ + GET_BITS(lll,uuu,1) + +/*---------------------------------------------------*/ +#define GET_MTF_VAL(label1,label2,lval) \ +{ \ + if (groupPos == 0) { \ + groupNo++; \ + if (groupNo >= nSelectors) \ + RETURN(BZ_DATA_ERROR); \ + groupPos = BZ_G_SIZE; \ + gSel = s->selector[groupNo]; \ + gMinlen = s->minLens[gSel]; \ + gLimit = &(s->limit[gSel][0]); \ + gPerm = &(s->perm[gSel][0]); \ + gBase = &(s->base[gSel][0]); \ + } \ + groupPos--; \ + zn = gMinlen; \ + GET_BITS(label1, zvec, zn); \ + while (1) { \ + if (zn > 20 /* the longest code */) \ + RETURN(BZ_DATA_ERROR); \ + if (zvec <= gLimit[zn]) break; \ + zn++; \ + GET_BIT(label2, zj); \ + zvec = (zvec << 1) | zj; \ + }; \ + if (zvec - gBase[zn] < 0 \ + || zvec - gBase[zn] >= BZ_MAX_ALPHA_SIZE) \ + RETURN(BZ_DATA_ERROR); \ + lval = gPerm[zvec - gBase[zn]]; \ +} + + +/*---------------------------------------------------*/ +Int32 BZ2_decompress ( DState* s ) +{ + UChar uc; + Int32 retVal; + Int32 minLen, maxLen; + bz_stream* strm = s->strm; + + /* stuff that needs to be saved/restored */ + Int32 i; + Int32 j; + Int32 t; + Int32 alphaSize; + Int32 nGroups; + Int32 nSelectors; + Int32 EOB; + Int32 groupNo; + Int32 groupPos; + Int32 nextSym; + Int32 nblockMAX; + Int32 nblock; + Int32 es; + Int32 N; + Int32 curr; + Int32 zt; + Int32 zn; + Int32 zvec; + Int32 zj; + Int32 gSel; + Int32 gMinlen; + Int32* gLimit; + Int32* gBase; + Int32* gPerm; + + if (s->state == BZ_X_MAGIC_1) { + /*initialise the save area*/ + s->save_i = 0; + s->save_j = 0; + s->save_t = 0; + s->save_alphaSize = 0; + s->save_nGroups = 0; + s->save_nSelectors = 0; + s->save_EOB = 0; + s->save_groupNo = 0; + s->save_groupPos = 0; + s->save_nextSym = 0; + s->save_nblockMAX = 0; + s->save_nblock = 0; + s->save_es = 0; + s->save_N = 0; + s->save_curr = 0; + s->save_zt = 0; + s->save_zn = 0; + s->save_zvec = 0; + s->save_zj = 0; + s->save_gSel = 0; + s->save_gMinlen = 0; + s->save_gLimit = NULL; + s->save_gBase = NULL; + s->save_gPerm = NULL; + } + + /*restore from the save area*/ + i = s->save_i; + j = s->save_j; + t = s->save_t; + alphaSize = s->save_alphaSize; + nGroups = s->save_nGroups; + nSelectors = s->save_nSelectors; + EOB = s->save_EOB; + groupNo = s->save_groupNo; + groupPos = s->save_groupPos; + nextSym = s->save_nextSym; + nblockMAX = s->save_nblockMAX; + nblock = s->save_nblock; + es = s->save_es; + N = s->save_N; + curr = s->save_curr; + zt = s->save_zt; + zn = s->save_zn; + zvec = s->save_zvec; + zj = s->save_zj; + gSel = s->save_gSel; + gMinlen = s->save_gMinlen; + gLimit = s->save_gLimit; + gBase = s->save_gBase; + gPerm = s->save_gPerm; + + retVal = BZ_OK; + + switch (s->state) { + + GET_UCHAR(BZ_X_MAGIC_1, uc); + if (uc != BZ_HDR_B) RETURN(BZ_DATA_ERROR_MAGIC); + + GET_UCHAR(BZ_X_MAGIC_2, uc); + if (uc != BZ_HDR_Z) RETURN(BZ_DATA_ERROR_MAGIC); + + GET_UCHAR(BZ_X_MAGIC_3, uc) + if (uc != BZ_HDR_h) RETURN(BZ_DATA_ERROR_MAGIC); + + GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8) + if (s->blockSize100k < (BZ_HDR_0 + 1) || + s->blockSize100k > (BZ_HDR_0 + 9)) RETURN(BZ_DATA_ERROR_MAGIC); + s->blockSize100k -= BZ_HDR_0; + + if (s->smallDecompress) { + s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) ); + s->ll4 = BZALLOC( + ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar) + ); + if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR); + } else { + s->tt = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) ); + if (s->tt == NULL) RETURN(BZ_MEM_ERROR); + } + + GET_UCHAR(BZ_X_BLKHDR_1, uc); + + if (uc == 0x17) goto endhdr_2; + if (uc != 0x31) RETURN(BZ_DATA_ERROR); + GET_UCHAR(BZ_X_BLKHDR_2, uc); + if (uc != 0x41) RETURN(BZ_DATA_ERROR); + GET_UCHAR(BZ_X_BLKHDR_3, uc); + if (uc != 0x59) RETURN(BZ_DATA_ERROR); + GET_UCHAR(BZ_X_BLKHDR_4, uc); + if (uc != 0x26) RETURN(BZ_DATA_ERROR); + GET_UCHAR(BZ_X_BLKHDR_5, uc); + if (uc != 0x53) RETURN(BZ_DATA_ERROR); + GET_UCHAR(BZ_X_BLKHDR_6, uc); + if (uc != 0x59) RETURN(BZ_DATA_ERROR); + + s->currBlockNo++; + if (s->verbosity >= 2) + VPrintf1 ( "\n [%d: huff+mtf ", s->currBlockNo ); + + s->storedBlockCRC = 0; + GET_UCHAR(BZ_X_BCRC_1, uc); + s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); + GET_UCHAR(BZ_X_BCRC_2, uc); + s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); + GET_UCHAR(BZ_X_BCRC_3, uc); + s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); + GET_UCHAR(BZ_X_BCRC_4, uc); + s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); + + GET_BITS(BZ_X_RANDBIT, s->blockRandomised, 1); + + s->origPtr = 0; + GET_UCHAR(BZ_X_ORIGPTR_1, uc); + s->origPtr = (s->origPtr << 8) | ((Int32)uc); + GET_UCHAR(BZ_X_ORIGPTR_2, uc); + s->origPtr = (s->origPtr << 8) | ((Int32)uc); + GET_UCHAR(BZ_X_ORIGPTR_3, uc); + s->origPtr = (s->origPtr << 8) | ((Int32)uc); + + if (s->origPtr < 0) + RETURN(BZ_DATA_ERROR); + if (s->origPtr > 10 + 100000*s->blockSize100k) + RETURN(BZ_DATA_ERROR); + + /*--- Receive the mapping table ---*/ + for (i = 0; i < 16; i++) { + GET_BIT(BZ_X_MAPPING_1, uc); + if (uc == 1) + s->inUse16[i] = True; else + s->inUse16[i] = False; + } + + for (i = 0; i < 256; i++) s->inUse[i] = False; + + for (i = 0; i < 16; i++) + if (s->inUse16[i]) + for (j = 0; j < 16; j++) { + GET_BIT(BZ_X_MAPPING_2, uc); + if (uc == 1) s->inUse[i * 16 + j] = True; + } + makeMaps_d ( s ); + if (s->nInUse == 0) RETURN(BZ_DATA_ERROR); + alphaSize = s->nInUse+2; + + /*--- Now the selectors ---*/ + GET_BITS(BZ_X_SELECTOR_1, nGroups, 3); + if (nGroups < 2 || nGroups > 6) RETURN(BZ_DATA_ERROR); + GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15); + if (nSelectors < 1) RETURN(BZ_DATA_ERROR); + for (i = 0; i < nSelectors; i++) { + j = 0; + while (True) { + GET_BIT(BZ_X_SELECTOR_3, uc); + if (uc == 0) break; + j++; + if (j >= nGroups) RETURN(BZ_DATA_ERROR); + } + s->selectorMtf[i] = j; + } + + /*--- Undo the MTF values for the selectors. ---*/ + { + UChar pos[BZ_N_GROUPS], tmp, v; + for (v = 0; v < nGroups; v++) pos[v] = v; + + for (i = 0; i < nSelectors; i++) { + v = s->selectorMtf[i]; + tmp = pos[v]; + while (v > 0) { pos[v] = pos[v-1]; v--; } + pos[0] = tmp; + s->selector[i] = tmp; + } + } + + /*--- Now the coding tables ---*/ + for (t = 0; t < nGroups; t++) { + GET_BITS(BZ_X_CODING_1, curr, 5); + for (i = 0; i < alphaSize; i++) { + while (True) { + if (curr < 1 || curr > 20) RETURN(BZ_DATA_ERROR); + GET_BIT(BZ_X_CODING_2, uc); + if (uc == 0) break; + GET_BIT(BZ_X_CODING_3, uc); + if (uc == 0) curr++; else curr--; + } + s->len[t][i] = curr; + } + } + + /*--- Create the Huffman decoding tables ---*/ + for (t = 0; t < nGroups; t++) { + minLen = 32; + maxLen = 0; + for (i = 0; i < alphaSize; i++) { + if (s->len[t][i] > maxLen) maxLen = s->len[t][i]; + if (s->len[t][i] < minLen) minLen = s->len[t][i]; + } + BZ2_hbCreateDecodeTables ( + &(s->limit[t][0]), + &(s->base[t][0]), + &(s->perm[t][0]), + &(s->len[t][0]), + minLen, maxLen, alphaSize + ); + s->minLens[t] = minLen; + } + + /*--- Now the MTF values ---*/ + + EOB = s->nInUse+1; + nblockMAX = 100000 * s->blockSize100k; + groupNo = -1; + groupPos = 0; + + for (i = 0; i <= 255; i++) s->unzftab[i] = 0; + + /*-- MTF init --*/ + { + Int32 ii, jj, kk; + kk = MTFA_SIZE-1; + for (ii = 256 / MTFL_SIZE - 1; ii >= 0; ii--) { + for (jj = MTFL_SIZE-1; jj >= 0; jj--) { + s->mtfa[kk] = (UChar)(ii * MTFL_SIZE + jj); + kk--; + } + s->mtfbase[ii] = kk + 1; + } + } + /*-- end MTF init --*/ + + nblock = 0; + GET_MTF_VAL(BZ_X_MTF_1, BZ_X_MTF_2, nextSym); + + while (True) { + + if (nextSym == EOB) break; + + if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) { + + es = -1; + N = 1; + do { + if (nextSym == BZ_RUNA) es = es + (0+1) * N; else + if (nextSym == BZ_RUNB) es = es + (1+1) * N; + N = N * 2; + GET_MTF_VAL(BZ_X_MTF_3, BZ_X_MTF_4, nextSym); + } + while (nextSym == BZ_RUNA || nextSym == BZ_RUNB); + + es++; + uc = s->seqToUnseq[ s->mtfa[s->mtfbase[0]] ]; + s->unzftab[uc] += es; + + if (s->smallDecompress) + while (es > 0) { + if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); + s->ll16[nblock] = (UInt16)uc; + nblock++; + es--; + } + else + while (es > 0) { + if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); + s->tt[nblock] = (UInt32)uc; + nblock++; + es--; + }; + + continue; + + } else { + + if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); + + /*-- uc = MTF ( nextSym-1 ) --*/ + { + Int32 ii, jj, kk, pp, lno, off; + UInt32 nn; + nn = (UInt32)(nextSym - 1); + + if (nn < MTFL_SIZE) { + /* avoid general-case expense */ + pp = s->mtfbase[0]; + uc = s->mtfa[pp+nn]; + while (nn > 3) { + Int32 z = pp+nn; + s->mtfa[(z) ] = s->mtfa[(z)-1]; + s->mtfa[(z)-1] = s->mtfa[(z)-2]; + s->mtfa[(z)-2] = s->mtfa[(z)-3]; + s->mtfa[(z)-3] = s->mtfa[(z)-4]; + nn -= 4; + } + while (nn > 0) { + s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--; + }; + s->mtfa[pp] = uc; + } else { + /* general case */ + lno = nn / MTFL_SIZE; + off = nn % MTFL_SIZE; + pp = s->mtfbase[lno] + off; + uc = s->mtfa[pp]; + while (pp > s->mtfbase[lno]) { + s->mtfa[pp] = s->mtfa[pp-1]; pp--; + }; + s->mtfbase[lno]++; + while (lno > 0) { + s->mtfbase[lno]--; + s->mtfa[s->mtfbase[lno]] + = s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1]; + lno--; + } + s->mtfbase[0]--; + s->mtfa[s->mtfbase[0]] = uc; + if (s->mtfbase[0] == 0) { + kk = MTFA_SIZE-1; + for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) { + for (jj = MTFL_SIZE-1; jj >= 0; jj--) { + s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj]; + kk--; + } + s->mtfbase[ii] = kk + 1; + } + } + } + } + /*-- end uc = MTF ( nextSym-1 ) --*/ + + s->unzftab[s->seqToUnseq[uc]]++; + if (s->smallDecompress) + s->ll16[nblock] = (UInt16)(s->seqToUnseq[uc]); else + s->tt[nblock] = (UInt32)(s->seqToUnseq[uc]); + nblock++; + + GET_MTF_VAL(BZ_X_MTF_5, BZ_X_MTF_6, nextSym); + continue; + } + } + + /* Now we know what nblock is, we can do a better sanity + check on s->origPtr. + */ + if (s->origPtr < 0 || s->origPtr >= nblock) + RETURN(BZ_DATA_ERROR); + + /*-- Set up cftab to facilitate generation of T^(-1) --*/ + s->cftab[0] = 0; + for (i = 1; i <= 256; i++) s->cftab[i] = s->unzftab[i-1]; + for (i = 1; i <= 256; i++) s->cftab[i] += s->cftab[i-1]; + for (i = 0; i <= 256; i++) { + if (s->cftab[i] < 0 || s->cftab[i] > nblock) { + /* s->cftab[i] can legitimately be == nblock */ + RETURN(BZ_DATA_ERROR); + } + } + + s->state_out_len = 0; + s->state_out_ch = 0; + BZ_INITIALISE_CRC ( s->calculatedBlockCRC ); + s->state = BZ_X_OUTPUT; + if (s->verbosity >= 2) VPrintf0 ( "rt+rld" ); + + if (s->smallDecompress) { + + /*-- Make a copy of cftab, used in generation of T --*/ + for (i = 0; i <= 256; i++) s->cftabCopy[i] = s->cftab[i]; + + /*-- compute the T vector --*/ + for (i = 0; i < nblock; i++) { + uc = (UChar)(s->ll16[i]); + SET_LL(i, s->cftabCopy[uc]); + s->cftabCopy[uc]++; + } + + /*-- Compute T^(-1) by pointer reversal on T --*/ + i = s->origPtr; + j = GET_LL(i); + do { + Int32 tmp = GET_LL(j); + SET_LL(j, i); + i = j; + j = tmp; + } + while (i != s->origPtr); + + s->tPos = s->origPtr; + s->nblock_used = 0; + if (s->blockRandomised) { + BZ_RAND_INIT_MASK; + BZ_GET_SMALL(s->k0); s->nblock_used++; + BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; + } else { + BZ_GET_SMALL(s->k0); s->nblock_used++; + } + + } else { + + /*-- compute the T^(-1) vector --*/ + for (i = 0; i < nblock; i++) { + uc = (UChar)(s->tt[i] & 0xff); + s->tt[s->cftab[uc]] |= (i << 8); + s->cftab[uc]++; + } + + s->tPos = s->tt[s->origPtr] >> 8; + s->nblock_used = 0; + if (s->blockRandomised) { + BZ_RAND_INIT_MASK; + BZ_GET_FAST(s->k0); s->nblock_used++; + BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; + } else { + BZ_GET_FAST(s->k0); s->nblock_used++; + } + + } + + RETURN(BZ_OK); + + + + endhdr_2: + + GET_UCHAR(BZ_X_ENDHDR_2, uc); + if (uc != 0x72) RETURN(BZ_DATA_ERROR); + GET_UCHAR(BZ_X_ENDHDR_3, uc); + if (uc != 0x45) RETURN(BZ_DATA_ERROR); + GET_UCHAR(BZ_X_ENDHDR_4, uc); + if (uc != 0x38) RETURN(BZ_DATA_ERROR); + GET_UCHAR(BZ_X_ENDHDR_5, uc); + if (uc != 0x50) RETURN(BZ_DATA_ERROR); + GET_UCHAR(BZ_X_ENDHDR_6, uc); + if (uc != 0x90) RETURN(BZ_DATA_ERROR); + + s->storedCombinedCRC = 0; + GET_UCHAR(BZ_X_CCRC_1, uc); + s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); + GET_UCHAR(BZ_X_CCRC_2, uc); + s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); + GET_UCHAR(BZ_X_CCRC_3, uc); + s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); + GET_UCHAR(BZ_X_CCRC_4, uc); + s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); + + s->state = BZ_X_IDLE; + RETURN(BZ_STREAM_END); + + default: AssertH ( False, 4001 ); + } + + AssertH ( False, 4002 ); + + save_state_and_return: + + s->save_i = i; + s->save_j = j; + s->save_t = t; + s->save_alphaSize = alphaSize; + s->save_nGroups = nGroups; + s->save_nSelectors = nSelectors; + s->save_EOB = EOB; + s->save_groupNo = groupNo; + s->save_groupPos = groupPos; + s->save_nextSym = nextSym; + s->save_nblockMAX = nblockMAX; + s->save_nblock = nblock; + s->save_es = es; + s->save_N = N; + s->save_curr = curr; + s->save_zt = zt; + s->save_zn = zn; + s->save_zvec = zvec; + s->save_zj = zj; + s->save_gSel = gSel; + s->save_gMinlen = gMinlen; + s->save_gLimit = gLimit; + s->save_gBase = gBase; + s->save_gPerm = gPerm; + + return retVal; +} + + +/*-------------------------------------------------------------*/ +/*--- end decompress.c ---*/ +/*-------------------------------------------------------------*/ diff --git a/mk/linux/mojosetup/bzip2/huffman.c b/mk/linux/mojosetup/bzip2/huffman.c new file mode 100644 index 00000000..87e79e38 --- /dev/null +++ b/mk/linux/mojosetup/bzip2/huffman.c @@ -0,0 +1,205 @@ + +/*-------------------------------------------------------------*/ +/*--- Huffman coding low-level stuff ---*/ +/*--- huffman.c ---*/ +/*-------------------------------------------------------------*/ + +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. + + bzip2/libbzip2 version 1.0.5 of 10 December 2007 + Copyright (C) 1996-2007 Julian Seward + + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. + + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ + + +#include "bzlib_private.h" + +/*---------------------------------------------------*/ +#define WEIGHTOF(zz0) ((zz0) & 0xffffff00) +#define DEPTHOF(zz1) ((zz1) & 0x000000ff) +#define MYMAX(zz2,zz3) ((zz2) > (zz3) ? (zz2) : (zz3)) + +#define ADDWEIGHTS(zw1,zw2) \ + (WEIGHTOF(zw1)+WEIGHTOF(zw2)) | \ + (1 + MYMAX(DEPTHOF(zw1),DEPTHOF(zw2))) + +#define UPHEAP(z) \ +{ \ + Int32 zz, tmp; \ + zz = z; tmp = heap[zz]; \ + while (weight[tmp] < weight[heap[zz >> 1]]) { \ + heap[zz] = heap[zz >> 1]; \ + zz >>= 1; \ + } \ + heap[zz] = tmp; \ +} + +#define DOWNHEAP(z) \ +{ \ + Int32 zz, yy, tmp; \ + zz = z; tmp = heap[zz]; \ + while (True) { \ + yy = zz << 1; \ + if (yy > nHeap) break; \ + if (yy < nHeap && \ + weight[heap[yy+1]] < weight[heap[yy]]) \ + yy++; \ + if (weight[tmp] < weight[heap[yy]]) break; \ + heap[zz] = heap[yy]; \ + zz = yy; \ + } \ + heap[zz] = tmp; \ +} + + +/*---------------------------------------------------*/ +void BZ2_hbMakeCodeLengths ( UChar *len, + Int32 *freq, + Int32 alphaSize, + Int32 maxLen ) +{ + /*-- + Nodes and heap entries run from 1. Entry 0 + for both the heap and nodes is a sentinel. + --*/ + Int32 nNodes, nHeap, n1, n2, i, j, k; + Bool tooLong; + + Int32 heap [ BZ_MAX_ALPHA_SIZE + 2 ]; + Int32 weight [ BZ_MAX_ALPHA_SIZE * 2 ]; + Int32 parent [ BZ_MAX_ALPHA_SIZE * 2 ]; + + for (i = 0; i < alphaSize; i++) + weight[i+1] = (freq[i] == 0 ? 1 : freq[i]) << 8; + + while (True) { + + nNodes = alphaSize; + nHeap = 0; + + heap[0] = 0; + weight[0] = 0; + parent[0] = -2; + + for (i = 1; i <= alphaSize; i++) { + parent[i] = -1; + nHeap++; + heap[nHeap] = i; + UPHEAP(nHeap); + } + + AssertH( nHeap < (BZ_MAX_ALPHA_SIZE+2), 2001 ); + + while (nHeap > 1) { + n1 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1); + n2 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1); + nNodes++; + parent[n1] = parent[n2] = nNodes; + weight[nNodes] = ADDWEIGHTS(weight[n1], weight[n2]); + parent[nNodes] = -1; + nHeap++; + heap[nHeap] = nNodes; + UPHEAP(nHeap); + } + + AssertH( nNodes < (BZ_MAX_ALPHA_SIZE * 2), 2002 ); + + tooLong = False; + for (i = 1; i <= alphaSize; i++) { + j = 0; + k = i; + while (parent[k] >= 0) { k = parent[k]; j++; } + len[i-1] = j; + if (j > maxLen) tooLong = True; + } + + if (! tooLong) break; + + /* 17 Oct 04: keep-going condition for the following loop used + to be 'i < alphaSize', which missed the last element, + theoretically leading to the possibility of the compressor + looping. However, this count-scaling step is only needed if + one of the generated Huffman code words is longer than + maxLen, which up to and including version 1.0.2 was 20 bits, + which is extremely unlikely. In version 1.0.3 maxLen was + changed to 17 bits, which has minimal effect on compression + ratio, but does mean this scaling step is used from time to + time, enough to verify that it works. + + This means that bzip2-1.0.3 and later will only produce + Huffman codes with a maximum length of 17 bits. However, in + order to preserve backwards compatibility with bitstreams + produced by versions pre-1.0.3, the decompressor must still + handle lengths of up to 20. */ + + for (i = 1; i <= alphaSize; i++) { + j = weight[i] >> 8; + j = 1 + (j / 2); + weight[i] = j << 8; + } + } +} + + +/*---------------------------------------------------*/ +void BZ2_hbAssignCodes ( Int32 *code, + UChar *length, + Int32 minLen, + Int32 maxLen, + Int32 alphaSize ) +{ + Int32 n, vec, i; + + vec = 0; + for (n = minLen; n <= maxLen; n++) { + for (i = 0; i < alphaSize; i++) + if (length[i] == n) { code[i] = vec; vec++; }; + vec <<= 1; + } +} + + +/*---------------------------------------------------*/ +void BZ2_hbCreateDecodeTables ( Int32 *limit, + Int32 *base, + Int32 *perm, + UChar *length, + Int32 minLen, + Int32 maxLen, + Int32 alphaSize ) +{ + Int32 pp, i, j, vec; + + pp = 0; + for (i = minLen; i <= maxLen; i++) + for (j = 0; j < alphaSize; j++) + if (length[j] == i) { perm[pp] = j; pp++; }; + + for (i = 0; i < BZ_MAX_CODE_LEN; i++) base[i] = 0; + for (i = 0; i < alphaSize; i++) base[length[i]+1]++; + + for (i = 1; i < BZ_MAX_CODE_LEN; i++) base[i] += base[i-1]; + + for (i = 0; i < BZ_MAX_CODE_LEN; i++) limit[i] = 0; + vec = 0; + + for (i = minLen; i <= maxLen; i++) { + vec += (base[i+1] - base[i]); + limit[i] = vec-1; + vec <<= 1; + } + for (i = minLen + 1; i <= maxLen; i++) + base[i] = ((limit[i-1] + 1) << 1) - base[i]; +} + + +/*-------------------------------------------------------------*/ +/*--- end huffman.c ---*/ +/*-------------------------------------------------------------*/ diff --git a/mk/linux/mojosetup/bzip2/randtable.c b/mk/linux/mojosetup/bzip2/randtable.c new file mode 100644 index 00000000..068b7636 --- /dev/null +++ b/mk/linux/mojosetup/bzip2/randtable.c @@ -0,0 +1,84 @@ + +/*-------------------------------------------------------------*/ +/*--- Table for randomising repetitive blocks ---*/ +/*--- randtable.c ---*/ +/*-------------------------------------------------------------*/ + +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. + + bzip2/libbzip2 version 1.0.5 of 10 December 2007 + Copyright (C) 1996-2007 Julian Seward + + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. + + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ + + +#include "bzlib_private.h" + + +/*---------------------------------------------*/ +Int32 BZ2_rNums[512] = { + 619, 720, 127, 481, 931, 816, 813, 233, 566, 247, + 985, 724, 205, 454, 863, 491, 741, 242, 949, 214, + 733, 859, 335, 708, 621, 574, 73, 654, 730, 472, + 419, 436, 278, 496, 867, 210, 399, 680, 480, 51, + 878, 465, 811, 169, 869, 675, 611, 697, 867, 561, + 862, 687, 507, 283, 482, 129, 807, 591, 733, 623, + 150, 238, 59, 379, 684, 877, 625, 169, 643, 105, + 170, 607, 520, 932, 727, 476, 693, 425, 174, 647, + 73, 122, 335, 530, 442, 853, 695, 249, 445, 515, + 909, 545, 703, 919, 874, 474, 882, 500, 594, 612, + 641, 801, 220, 162, 819, 984, 589, 513, 495, 799, + 161, 604, 958, 533, 221, 400, 386, 867, 600, 782, + 382, 596, 414, 171, 516, 375, 682, 485, 911, 276, + 98, 553, 163, 354, 666, 933, 424, 341, 533, 870, + 227, 730, 475, 186, 263, 647, 537, 686, 600, 224, + 469, 68, 770, 919, 190, 373, 294, 822, 808, 206, + 184, 943, 795, 384, 383, 461, 404, 758, 839, 887, + 715, 67, 618, 276, 204, 918, 873, 777, 604, 560, + 951, 160, 578, 722, 79, 804, 96, 409, 713, 940, + 652, 934, 970, 447, 318, 353, 859, 672, 112, 785, + 645, 863, 803, 350, 139, 93, 354, 99, 820, 908, + 609, 772, 154, 274, 580, 184, 79, 626, 630, 742, + 653, 282, 762, 623, 680, 81, 927, 626, 789, 125, + 411, 521, 938, 300, 821, 78, 343, 175, 128, 250, + 170, 774, 972, 275, 999, 639, 495, 78, 352, 126, + 857, 956, 358, 619, 580, 124, 737, 594, 701, 612, + 669, 112, 134, 694, 363, 992, 809, 743, 168, 974, + 944, 375, 748, 52, 600, 747, 642, 182, 862, 81, + 344, 805, 988, 739, 511, 655, 814, 334, 249, 515, + 897, 955, 664, 981, 649, 113, 974, 459, 893, 228, + 433, 837, 553, 268, 926, 240, 102, 654, 459, 51, + 686, 754, 806, 760, 493, 403, 415, 394, 687, 700, + 946, 670, 656, 610, 738, 392, 760, 799, 887, 653, + 978, 321, 576, 617, 626, 502, 894, 679, 243, 440, + 680, 879, 194, 572, 640, 724, 926, 56, 204, 700, + 707, 151, 457, 449, 797, 195, 791, 558, 945, 679, + 297, 59, 87, 824, 713, 663, 412, 693, 342, 606, + 134, 108, 571, 364, 631, 212, 174, 643, 304, 329, + 343, 97, 430, 751, 497, 314, 983, 374, 822, 928, + 140, 206, 73, 263, 980, 736, 876, 478, 430, 305, + 170, 514, 364, 692, 829, 82, 855, 953, 676, 246, + 369, 970, 294, 750, 807, 827, 150, 790, 288, 923, + 804, 378, 215, 828, 592, 281, 565, 555, 710, 82, + 896, 831, 547, 261, 524, 462, 293, 465, 502, 56, + 661, 821, 976, 991, 658, 869, 905, 758, 745, 193, + 768, 550, 608, 933, 378, 286, 215, 979, 792, 961, + 61, 688, 793, 644, 986, 403, 106, 366, 905, 644, + 372, 567, 466, 434, 645, 210, 389, 550, 919, 135, + 780, 773, 635, 389, 707, 100, 626, 958, 165, 504, + 920, 176, 193, 713, 857, 265, 203, 50, 668, 108, + 645, 990, 626, 197, 510, 357, 358, 850, 858, 364, + 936, 638 +}; + + +/*-------------------------------------------------------------*/ +/*--- end randtable.c ---*/ +/*-------------------------------------------------------------*/ diff --git a/mk/linux/mojosetup/bzip2/version.txt b/mk/linux/mojosetup/bzip2/version.txt new file mode 100644 index 00000000..db284dad --- /dev/null +++ b/mk/linux/mojosetup/bzip2/version.txt @@ -0,0 +1 @@ +bzip2-1.0.5 diff --git a/mk/linux/mojosetup/checksum_crc32.c b/mk/linux/mojosetup/checksum_crc32.c new file mode 100644 index 00000000..7bd18882 --- /dev/null +++ b/mk/linux/mojosetup/checksum_crc32.c @@ -0,0 +1,81 @@ +#include "universal.h" + +#if SUPPORT_CRC32 + +void MojoCrc32_init(MojoCrc32 *context) +{ + *context = (MojoCrc32) 0xFFFFFFFF; +} // MojoCrc32_init + + +void MojoCrc32_append(MojoCrc32 *_crc, const uint8 *buf, uint32 len) +{ + uint32 crc = (uint32) *_crc; + + uint32 n; + for (n = 0; n < len; n++) + { + uint32 xorval = (uint32) ((crc ^ buf[n]) & 0xFF); + xorval = ((xorval & 1) ? (0xEDB88320 ^ (xorval >> 1)) : (xorval >> 1)); + xorval = ((xorval & 1) ? (0xEDB88320 ^ (xorval >> 1)) : (xorval >> 1)); + xorval = ((xorval & 1) ? (0xEDB88320 ^ (xorval >> 1)) : (xorval >> 1)); + xorval = ((xorval & 1) ? (0xEDB88320 ^ (xorval >> 1)) : (xorval >> 1)); + xorval = ((xorval & 1) ? (0xEDB88320 ^ (xorval >> 1)) : (xorval >> 1)); + xorval = ((xorval & 1) ? (0xEDB88320 ^ (xorval >> 1)) : (xorval >> 1)); + xorval = ((xorval & 1) ? (0xEDB88320 ^ (xorval >> 1)) : (xorval >> 1)); + xorval = ((xorval & 1) ? (0xEDB88320 ^ (xorval >> 1)) : (xorval >> 1)); + crc = xorval ^ (crc >> 8); + } // for + + *_crc = (MojoCrc32) crc; +} // MojoCrc32_append + + +void MojoCrc32_finish(MojoCrc32 *context, uint32 *digest) +{ + *digest = (*context ^ 0xFFFFFFFF); +} // MojoCrc32_finish + + +#endif // SUPPORT_CRC32 + +#if TEST_CRC32 +int main(int argc, char **argv) +{ + int i = 0; + for (i = 1; i < argc; i++) + { + FILE *in = NULL; + MojoCrc32 ctx; + MojoCrc32_init(&ctx); + in = fopen(argv[i], "rb"); + if (!in) + perror("fopen"); + else + { + uint32 digest = 0; + int err = 0; + while ( (!err) && (!feof(in)) ) + { + uint8 buf[1024]; + size_t rc = fread(buf, 1, sizeof (buf), in); + if (rc > 0) + MojoCrc32_append(&ctx, buf, rc); + err = ferror(in); + } // while + + if (err) + perror("fread"); + fclose(in); + MojoCrc32_finish(&ctx, &digest); + if (!err) + printf("%s: %X\n", argv[i], (unsigned int) digest); + } // else + } // for + + return 0; +} // main +#endif + +// end of checksum_crc32.c ... + diff --git a/mk/linux/mojosetup/checksum_md5.c b/mk/linux/mojosetup/checksum_md5.c new file mode 100644 index 00000000..bb940be1 --- /dev/null +++ b/mk/linux/mojosetup/checksum_md5.c @@ -0,0 +1,441 @@ +#include "universal.h" + +#if SUPPORT_MD5 + +// MD5 code originally from http://sourceforge.net/projects/libmd5-rfc/ +// License: zlib. +// I cleaned it up a little for MojoSetup's specific purposes. --ryan. + +/* + Copyright (C) 1999, 2000, 2002 Aladdin Enterprises. All rights reserved. + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + L. Peter Deutsch + ghost@aladdin.com + + */ +/* $Id: md5.c,v 1.6 2002/04/13 19:20:28 lpd Exp $ */ +/* + Independent implementation of MD5 (RFC 1321). + + This code implements the MD5 Algorithm defined in RFC 1321, whose + text is available at + http://www.ietf.org/rfc/rfc1321.txt + The code is derived from the text of the RFC, including the test suite + (section A.5) but excluding the rest of Appendix A. It does not include + any code or documentation that is identified in the RFC as being + copyrighted. + + The original and principal author of md5.c is L. Peter Deutsch + . Other authors are noted in the change history + that follows (in reverse chronological order): + + 2002-04-13 lpd Clarified derivation from RFC 1321; now handles byte order + either statically or dynamically; added missing #include + in library. + 2002-03-11 lpd Corrected argument list for main(), and added int return + type, in test program and T value program. + 2002-02-21 lpd Added missing #include in test program. + 2000-07-03 lpd Patched to eliminate warnings about "constant is + unsigned in ANSI C, signed in traditional"; made test program + self-checking. + 1999-11-04 lpd Edited comments slightly for automatic TOC extraction. + 1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5). + 1999-05-03 lpd Original version. + */ + +#undef BYTE_ORDER /* 1 = big-endian, -1 = little-endian, 0 = unknown */ +//#ifdef ARCH_IS_BIG_ENDIAN +//# define BYTE_ORDER (ARCH_IS_BIG_ENDIAN ? 1 : -1) +//#else +//# define BYTE_ORDER 0 +//#endif +#if PLATFORM_BIGENDIAN +# define BYTE_ORDER 1 +#else +# define BYTE_ORDER -1 +#endif + +#define T_MASK ((uint32)~0) +#define T1 /* 0xd76aa478 */ (T_MASK ^ 0x28955b87) +#define T2 /* 0xe8c7b756 */ (T_MASK ^ 0x173848a9) +#define T3 0x242070db +#define T4 /* 0xc1bdceee */ (T_MASK ^ 0x3e423111) +#define T5 /* 0xf57c0faf */ (T_MASK ^ 0x0a83f050) +#define T6 0x4787c62a +#define T7 /* 0xa8304613 */ (T_MASK ^ 0x57cfb9ec) +#define T8 /* 0xfd469501 */ (T_MASK ^ 0x02b96afe) +#define T9 0x698098d8 +#define T10 /* 0x8b44f7af */ (T_MASK ^ 0x74bb0850) +#define T11 /* 0xffff5bb1 */ (T_MASK ^ 0x0000a44e) +#define T12 /* 0x895cd7be */ (T_MASK ^ 0x76a32841) +#define T13 0x6b901122 +#define T14 /* 0xfd987193 */ (T_MASK ^ 0x02678e6c) +#define T15 /* 0xa679438e */ (T_MASK ^ 0x5986bc71) +#define T16 0x49b40821 +#define T17 /* 0xf61e2562 */ (T_MASK ^ 0x09e1da9d) +#define T18 /* 0xc040b340 */ (T_MASK ^ 0x3fbf4cbf) +#define T19 0x265e5a51 +#define T20 /* 0xe9b6c7aa */ (T_MASK ^ 0x16493855) +#define T21 /* 0xd62f105d */ (T_MASK ^ 0x29d0efa2) +#define T22 0x02441453 +#define T23 /* 0xd8a1e681 */ (T_MASK ^ 0x275e197e) +#define T24 /* 0xe7d3fbc8 */ (T_MASK ^ 0x182c0437) +#define T25 0x21e1cde6 +#define T26 /* 0xc33707d6 */ (T_MASK ^ 0x3cc8f829) +#define T27 /* 0xf4d50d87 */ (T_MASK ^ 0x0b2af278) +#define T28 0x455a14ed +#define T29 /* 0xa9e3e905 */ (T_MASK ^ 0x561c16fa) +#define T30 /* 0xfcefa3f8 */ (T_MASK ^ 0x03105c07) +#define T31 0x676f02d9 +#define T32 /* 0x8d2a4c8a */ (T_MASK ^ 0x72d5b375) +#define T33 /* 0xfffa3942 */ (T_MASK ^ 0x0005c6bd) +#define T34 /* 0x8771f681 */ (T_MASK ^ 0x788e097e) +#define T35 0x6d9d6122 +#define T36 /* 0xfde5380c */ (T_MASK ^ 0x021ac7f3) +#define T37 /* 0xa4beea44 */ (T_MASK ^ 0x5b4115bb) +#define T38 0x4bdecfa9 +#define T39 /* 0xf6bb4b60 */ (T_MASK ^ 0x0944b49f) +#define T40 /* 0xbebfbc70 */ (T_MASK ^ 0x4140438f) +#define T41 0x289b7ec6 +#define T42 /* 0xeaa127fa */ (T_MASK ^ 0x155ed805) +#define T43 /* 0xd4ef3085 */ (T_MASK ^ 0x2b10cf7a) +#define T44 0x04881d05 +#define T45 /* 0xd9d4d039 */ (T_MASK ^ 0x262b2fc6) +#define T46 /* 0xe6db99e5 */ (T_MASK ^ 0x1924661a) +#define T47 0x1fa27cf8 +#define T48 /* 0xc4ac5665 */ (T_MASK ^ 0x3b53a99a) +#define T49 /* 0xf4292244 */ (T_MASK ^ 0x0bd6ddbb) +#define T50 0x432aff97 +#define T51 /* 0xab9423a7 */ (T_MASK ^ 0x546bdc58) +#define T52 /* 0xfc93a039 */ (T_MASK ^ 0x036c5fc6) +#define T53 0x655b59c3 +#define T54 /* 0x8f0ccc92 */ (T_MASK ^ 0x70f3336d) +#define T55 /* 0xffeff47d */ (T_MASK ^ 0x00100b82) +#define T56 /* 0x85845dd1 */ (T_MASK ^ 0x7a7ba22e) +#define T57 0x6fa87e4f +#define T58 /* 0xfe2ce6e0 */ (T_MASK ^ 0x01d3191f) +#define T59 /* 0xa3014314 */ (T_MASK ^ 0x5cfebceb) +#define T60 0x4e0811a1 +#define T61 /* 0xf7537e82 */ (T_MASK ^ 0x08ac817d) +#define T62 /* 0xbd3af235 */ (T_MASK ^ 0x42c50dca) +#define T63 0x2ad7d2bb +#define T64 /* 0xeb86d391 */ (T_MASK ^ 0x14792c6e) + + +static void +MojoMd5_process(MojoMd5 *pms, const uint8 *data /*[64]*/) +{ + uint32 + a = pms->abcd[0], b = pms->abcd[1], + c = pms->abcd[2], d = pms->abcd[3]; + uint32 t; +#if BYTE_ORDER > 0 + /* Define storage only for big-endian CPUs. */ + uint32 X[16]; +#else + /* Define storage for little-endian or both types of CPUs. */ + uint32 xbuf[16]; + const uint32 *X; +#endif + + { +#if BYTE_ORDER == 0 + /* + * Determine dynamically whether this is a big-endian or + * little-endian machine, since we can use a more efficient + * algorithm on the latter. + */ + static const int w = 1; + + if (*((const uint8 *)&w)) /* dynamic little-endian */ +#endif +#if BYTE_ORDER <= 0 /* little-endian */ + { + /* + * On little-endian machines, we can process properly aligned + * data without copying it. + */ + if (!((data - (const uint8 *)0) & 3)) { + /* data are properly aligned */ + X = (const uint32 *)data; + } else { + /* not aligned */ + memcpy(xbuf, data, 64); + X = xbuf; + } + } +#endif +#if BYTE_ORDER == 0 + else /* dynamic big-endian */ +#endif +#if BYTE_ORDER >= 0 /* big-endian */ + { + /* + * On big-endian machines, we must arrange the bytes in the + * right order. + */ + const uint8 *xp = data; + int i; + +# if BYTE_ORDER == 0 + X = xbuf; /* (dynamic only) */ +# else +# define xbuf X /* (static only) */ +# endif + for (i = 0; i < 16; ++i, xp += 4) + xbuf[i] = xp[0] + (xp[1] << 8) + (xp[2] << 16) + (xp[3] << 24); + } +#endif + } + +#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) + + /* Round 1. */ + /* Let [abcd k s i] denote the operation + a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */ +#define F(x, y, z) (((x) & (y)) | (~(x) & (z))) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + F(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 0, 7, T1); + SET(d, a, b, c, 1, 12, T2); + SET(c, d, a, b, 2, 17, T3); + SET(b, c, d, a, 3, 22, T4); + SET(a, b, c, d, 4, 7, T5); + SET(d, a, b, c, 5, 12, T6); + SET(c, d, a, b, 6, 17, T7); + SET(b, c, d, a, 7, 22, T8); + SET(a, b, c, d, 8, 7, T9); + SET(d, a, b, c, 9, 12, T10); + SET(c, d, a, b, 10, 17, T11); + SET(b, c, d, a, 11, 22, T12); + SET(a, b, c, d, 12, 7, T13); + SET(d, a, b, c, 13, 12, T14); + SET(c, d, a, b, 14, 17, T15); + SET(b, c, d, a, 15, 22, T16); +#undef SET + + /* Round 2. */ + /* Let [abcd k s i] denote the operation + a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */ +#define G(x, y, z) (((x) & (z)) | ((y) & ~(z))) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + G(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 1, 5, T17); + SET(d, a, b, c, 6, 9, T18); + SET(c, d, a, b, 11, 14, T19); + SET(b, c, d, a, 0, 20, T20); + SET(a, b, c, d, 5, 5, T21); + SET(d, a, b, c, 10, 9, T22); + SET(c, d, a, b, 15, 14, T23); + SET(b, c, d, a, 4, 20, T24); + SET(a, b, c, d, 9, 5, T25); + SET(d, a, b, c, 14, 9, T26); + SET(c, d, a, b, 3, 14, T27); + SET(b, c, d, a, 8, 20, T28); + SET(a, b, c, d, 13, 5, T29); + SET(d, a, b, c, 2, 9, T30); + SET(c, d, a, b, 7, 14, T31); + SET(b, c, d, a, 12, 20, T32); +#undef SET + + /* Round 3. */ + /* Let [abcd k s t] denote the operation + a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */ +#define H(x, y, z) ((x) ^ (y) ^ (z)) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + H(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 5, 4, T33); + SET(d, a, b, c, 8, 11, T34); + SET(c, d, a, b, 11, 16, T35); + SET(b, c, d, a, 14, 23, T36); + SET(a, b, c, d, 1, 4, T37); + SET(d, a, b, c, 4, 11, T38); + SET(c, d, a, b, 7, 16, T39); + SET(b, c, d, a, 10, 23, T40); + SET(a, b, c, d, 13, 4, T41); + SET(d, a, b, c, 0, 11, T42); + SET(c, d, a, b, 3, 16, T43); + SET(b, c, d, a, 6, 23, T44); + SET(a, b, c, d, 9, 4, T45); + SET(d, a, b, c, 12, 11, T46); + SET(c, d, a, b, 15, 16, T47); + SET(b, c, d, a, 2, 23, T48); +#undef SET + + /* Round 4. */ + /* Let [abcd k s t] denote the operation + a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */ +#define I(x, y, z) ((y) ^ ((x) | ~(z))) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + I(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 0, 6, T49); + SET(d, a, b, c, 7, 10, T50); + SET(c, d, a, b, 14, 15, T51); + SET(b, c, d, a, 5, 21, T52); + SET(a, b, c, d, 12, 6, T53); + SET(d, a, b, c, 3, 10, T54); + SET(c, d, a, b, 10, 15, T55); + SET(b, c, d, a, 1, 21, T56); + SET(a, b, c, d, 8, 6, T57); + SET(d, a, b, c, 15, 10, T58); + SET(c, d, a, b, 6, 15, T59); + SET(b, c, d, a, 13, 21, T60); + SET(a, b, c, d, 4, 6, T61); + SET(d, a, b, c, 11, 10, T62); + SET(c, d, a, b, 2, 15, T63); + SET(b, c, d, a, 9, 21, T64); +#undef SET + + /* Then perform the following additions. (That is increment each + of the four registers by the value it had before this block + was started.) */ + pms->abcd[0] += a; + pms->abcd[1] += b; + pms->abcd[2] += c; + pms->abcd[3] += d; +} + +void +MojoMd5_init(MojoMd5 *pms) +{ + pms->count[0] = pms->count[1] = 0; + pms->abcd[0] = 0x67452301; + pms->abcd[1] = /*0xefcdab89*/ T_MASK ^ 0x10325476; + pms->abcd[2] = /*0x98badcfe*/ T_MASK ^ 0x67452301; + pms->abcd[3] = 0x10325476; +} + +void +MojoMd5_append(MojoMd5 *pms, const uint8 *data, int nbytes) +{ + const uint8 *p = data; + int left = nbytes; + int offset = (pms->count[0] >> 3) & 63; + uint32 nbits = (uint32)(nbytes << 3); + + if (nbytes <= 0) + return; + + /* Update the message length. */ + pms->count[1] += nbytes >> 29; + pms->count[0] += nbits; + if (pms->count[0] < nbits) + pms->count[1]++; + + /* Process an initial partial block. */ + if (offset) { + int copy = (offset + nbytes > 64 ? 64 - offset : nbytes); + + memcpy(pms->buf + offset, p, copy); + if (offset + copy < 64) + return; + p += copy; + left -= copy; + MojoMd5_process(pms, pms->buf); + } + + /* Process full blocks. */ + for (; left >= 64; p += 64, left -= 64) + MojoMd5_process(pms, p); + + /* Process a final partial block. */ + if (left) + memcpy(pms->buf, p, left); +} + +void +MojoMd5_finish(MojoMd5 *pms, uint8 digest[16]) +{ + const uint8 pad[64] = { + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + uint8 data[8]; + int i; + + /* Save the length before padding. */ + for (i = 0; i < 8; ++i) + data[i] = (uint8)(pms->count[i >> 2] >> ((i & 3) << 3)); + /* Pad to 56 bytes mod 64. */ + MojoMd5_append(pms, pad, ((55 - (pms->count[0] >> 3)) & 63) + 1); + /* Append the length. */ + MojoMd5_append(pms, data, 8); + for (i = 0; i < 16; ++i) + digest[i] = (uint8)(pms->abcd[i >> 2] >> ((i & 3) << 3)); +} + +#endif // SUPPORT_MD5 + +#if TEST_MD5 +int main(int argc, char **argv) +{ + int i = 0; + for (i = 1; i < argc; i++) + { + FILE *in = NULL; + MojoMd5 ctx; + MojoMd5_init(&ctx); + in = fopen(argv[i], "rb"); + if (!in) + perror("fopen"); + else + { + uint8 dig[16]; + int err = 0; + while ( (!err) && (!feof(in)) ) + { + uint8 buf[1024]; + size_t rc = fread(buf, 1, sizeof (buf), in); + if (rc > 0) + MojoMd5_append(&ctx, buf, rc); + err = ferror(in); + } // while + + if (err) + perror("fread"); + fclose(in); + MojoMd5_finish(&ctx, dig); + + if (!err) + { + printf("%s: %x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x\n", argv[i], + (int) dig[0], (int) dig[1], (int) dig[2], (int) dig[3], + (int) dig[4], (int) dig[5], (int) dig[6], (int) dig[7], + (int) dig[8], (int) dig[9], (int) dig[10], (int) dig[11], + (int) dig[12], (int) dig[13], (int) dig[14], (int) dig[15]); + } // if + } // else + } // for + + return 0; +} // main +#endif + +// end of checksum_md5.c ... + diff --git a/mk/linux/mojosetup/checksum_sha1.c b/mk/linux/mojosetup/checksum_sha1.c new file mode 100644 index 00000000..ea9e18cd --- /dev/null +++ b/mk/linux/mojosetup/checksum_sha1.c @@ -0,0 +1,210 @@ +#include "universal.h" + +#if SUPPORT_SHA1 + +// SHA-1 code originally from ftp://ftp.funet.fi/pub/crypt/hash/sha/sha1.c +// License: public domain. +// I cleaned it up a little for MojoSetup's specific purposes. --ryan. + +/* +SHA-1 in C +By Steve Reid +100% Public Domain + +Test Vectors (from FIPS PUB 180-1) +"abc" + A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D +"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" + 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 +A million repetitions of "a" + 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F +*/ + +#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits)))) + +/* blk0() and blk() perform the initial expand. */ +/* I got the idea of expanding during the round function from SSLeay */ +#if PLATFORM_LITTLEENDIAN +#define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \ + |(rol(block->l[i],8)&0x00FF00FF)) +#else +#define blk0(i) block->l[i] +#endif +#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \ + ^block->l[(i+2)&15]^block->l[i&15],1)) + +/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */ +#define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30); +#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30); +#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30); +#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30); +#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30); + + +/* Hash a single 512-bit block. This is the core of the algorithm. */ + +static void MojoSha1_transform(uint32 state[5], const uint8 buffer[64]) +{ + uint32 a, b, c, d, e; + typedef union { + uint8 c[64]; + uint32 l[16]; + } CHAR64LONG16; + CHAR64LONG16* block; + static uint8 workspace[64]; + block = (CHAR64LONG16*)workspace; + memcpy(block, buffer, 64); + /* Copy context->state[] to working vars */ + a = state[0]; + b = state[1]; + c = state[2]; + d = state[3]; + e = state[4]; + /* 4 rounds of 20 operations each. Loop unrolled. */ + R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3); + R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7); + R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11); + R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15); + R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19); + R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23); + R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27); + R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31); + R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35); + R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39); + R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43); + R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47); + R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51); + R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55); + R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59); + R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63); + R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67); + R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71); + R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75); + R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79); + /* Add the working vars back into context.state[] */ + state[0] += a; + state[1] += b; + state[2] += c; + state[3] += d; + state[4] += e; + /* Wipe variables */ + a = b = c = d = e = 0; +} + + +/* MojoSha1_init - Initialize new context */ + +void MojoSha1_init(MojoSha1 *context) +{ + /* SHA1 initialization constants */ + context->state[0] = 0x67452301; + context->state[1] = 0xEFCDAB89; + context->state[2] = 0x98BADCFE; + context->state[3] = 0x10325476; + context->state[4] = 0xC3D2E1F0; + context->count[0] = context->count[1] = 0; +} + + +/* Run your data through this. */ + +void MojoSha1_append(MojoSha1 *context, const uint8 *data, uint32 len) +{ + uint32 i, j; + + j = (context->count[0] >> 3) & 63; + if ((context->count[0] += len << 3) < (len << 3)) context->count[1]++; + context->count[1] += (len >> 29); + if ((j + len) > 63) { + memcpy(&context->buffer[j], data, (i = 64-j)); + MojoSha1_transform(context->state, context->buffer); + for ( ; i + 63 < len; i += 64) { + MojoSha1_transform(context->state, &data[i]); + } + j = 0; + } + else i = 0; + memcpy(&context->buffer[j], &data[i], len - i); +} + + +/* Add padding and return the message digest. */ + +void MojoSha1_finish(MojoSha1 *context, uint8 digest[20]) +{ + uint32 i, j; + uint8 finalcount[8]; + + for (i = 0; i < 8; i++) { + finalcount[i] = (uint8)((context->count[(i >= 4 ? 0 : 1)] + >> ((3-(i & 3)) * 8) ) & 255); /* Endian independent */ + } + MojoSha1_append(context, (uint8 *)"\200", 1); + while ((context->count[0] & 504) != 448) { + MojoSha1_append(context, (uint8 *)"\0", 1); + } + MojoSha1_append(context, finalcount, 8); /* Should cause a MojoSha1_transform() */ + for (i = 0; i < 20; i++) { + digest[i] = (uint8) + ((context->state[i>>2] >> ((3-(i & 3)) * 8) ) & 255); + } + /* Wipe variables */ + i = j = 0; + memset(context->buffer, 0, 64); + memset(context->state, 0, 20); + memset(context->count, 0, 8); + memset(&finalcount, 0, 8); + MojoSha1_transform(context->state, context->buffer); +} + +#endif // SUPPORT_SHA1 + +#if TEST_SHA1 +int main(int argc, char **argv) +{ + int i = 0; + for (i = 1; i < argc; i++) + { + FILE *in = NULL; + MojoSha1 ctx; + MojoSha1_init(&ctx); + in = fopen(argv[i], "rb"); + if (!in) + perror("fopen"); + else + { + uint8 dig[20]; + int err = 0; + while ( (!err) && (!feof(in)) ) + { + uint8 buf[1024]; + size_t rc = fread(buf, 1, sizeof (buf), in); + if (rc > 0) + MojoSha1_append(&ctx, buf, rc); + err = ferror(in); + } // while + + if (err) + perror("fread"); + fclose(in); + MojoSha1_finish(&ctx, dig); + + if (!err) + { + printf("%s: %x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x\n", + argv[i], + (int) dig[0], (int) dig[1], (int) dig[2], (int) dig[3], + (int) dig[4], (int) dig[5], (int) dig[6], (int) dig[7], + (int) dig[8], (int) dig[9], (int) dig[10], (int) dig[11], + (int) dig[12], (int) dig[13], (int) dig[14], (int) dig[15], + (int) dig[16], (int) dig[17], (int) dig[18], (int) dig[19]); + } // if + } // else + } // for + + return 0; +} // main +#endif + +// end of checksum_sha1.c ... + diff --git a/mk/linux/mojosetup/docs.txt b/mk/linux/mojosetup/docs.txt new file mode 100644 index 00000000..7c86c5a8 --- /dev/null +++ b/mk/linux/mojosetup/docs.txt @@ -0,0 +1,1405 @@ + +Using MojoSetup. + +If there are gaps in this documentation, please ask on the MojoSetup mailing + list. To subscribe to the list, go here... + + http://icculus.org/mailman/listinfo/mojosetup + + ...and then questions can go to mojosetup@icculus.org. This document will + be updated as we see what parts are confusing, so feedback is appreciated. + + +Putting together a MojoSetup installer involves five general steps: +1) Compile the software. +2) Set up the installer filesystem structure. +3) Write a config file. +4) Add any localized strings. +5) Package up the final file for distribution. + +Each step has a lot of details, but all installers basically follow those same + basic development steps. + + +Compile the software: + +You will need some tools. First, you'll need your platform's favorite build + tools. You'll also need CMake (http://www.cmake.org/), and a Mercurial + (http://www.selenic.com/mercurial/) client. These are all available for most + popular operating systems, and some not-so-popular ones. + +Get the latest version of MojoSetup from Mercurial: + + hg clone http://hg.icculus.org/icculus/mojosetup + + +Then you'll need to point CMake at it: + + cd mojosetup + mkdir cmake-build + cd cmake-build + ccmake .. + +Tweak the build settings to your liking. You'll want to set CMAKE_BUILD_TYPE + to MinSizeRel, to make the compiled binary be as small as possible, and + then trim out features you don't need. For example, you can drop the + HTTP and FTP support to save about 25 kilobytes on the binary. You can also + drop support for various archive types, pieces of Lua you don't plan to use, + etc. + +CMake will get you project files for whatever development environment you use + (Makefiles, XCode, Visual Studio, etc). Build the project. You should end + up with some shared libraries for whatever GUIs you left enabled, and + a mojsetup binary. Strip the debug symbols and put these aside for later. + +If you are building MojoSetup without the Lua parser, you'll want to build + the separate Lua compiler (MOJOSETUP_BUILD_LUAC in ccmake). That will produce + a "mojoluac" binary. Put that aside for later, too. + + +Set up the installer filesystem structure: + +This is fairly easy. The installer eventually wants to see a directory + tree like this: + + data/ + scripts/ + guis/ + meta/ + +This is called the "Base Archive," even if it's a real directory tree in the + physical filesystem and not in an actual archive, such as a .zip file. + +"data" is where the installer looks for files included in the installer itself + that need installation (as opposed to those being read from the network + or a CD-ROM, etc). READMEs and EULAs go in here, too. The installer + doesn't care how things under data/ are arranged. + +"guis" is where the installer looks for those shared libraries that got + built in the first step. Copy them in here, if you built any. + +"meta" contains installer metadata: graphics for splash screens, etc. It's sort + of a catch-all for things that don't fit elsewhere. + +"scripts" is where Lua scripts go. You'll put your config file in here + (config.lua), the translation table (localizations.lua), and whatever other + scripts come with MojoSetup, which are required application logic. The + installer will not work if you don't include all these files! This + directory can hold either .lua files (source code), or their .luac + equivalents. If you built MojoSetup without the Lua parser to save space, + you'll need to compile the .lua sources into .luac objects now, or the + installer won't know what to do with them. It's safe to compile them even + if you include the parser. + + cd scripts + ../mojoluac -o config.luac config.lua + cd .. + +You can strip debug symbols from the compiled scripts to save more space, + but you'll get less useful information if there's a script error: + + cd scripts + ../mojoluac -s -o config.luac config.lua + cd .. + +Once you finish constructing this directory tree, put it aside for later. + + +Write a config file: + +This is the complicated part, and where most of your effort will be spent. + This document will try to cover all the provided facilities, but as the + configuration file also provides a robust programming language, not only + is the full scope beyond this document, you can also accomplish all sorts + of things we haven't even considered yet. + +Configuration files are Lua scripts. The Lua language and runtime library is + documented at http://www.lua.org/, and they sell an excellent book called + "Programming in Lua" which is a fast read and will demonstrate all manners + of wild and interesting features of the language. That being said, most + people rolling config files don't need any significant Lua expertise, and + basic config files don't need any programming experience at all. + +MojoSetup provides some functions for your benefit, if you want to add any + programming logic to your config. These are documented below. + +The config file is named config.lua, and it must be a text file in UTF-8 + encoding. If you are doing any programming, you may use any symbol you like, + so long as the name isn't "Setup", "MojoSetup", or any of the standard Lua + runtime names like "string" or "table". + +Configuration files are a hierarchy of elements that take this form: + + Setup.DataType + { + someattribute = value1, + someotherattribute = value2, + } + +Elements can nest: + + Setup.DataType + { + someattribute = value1, + someotherattribute = value2, + Setup.AnotherDataType + { + something = value3, + } + } + + +Case is important! Setup.Option and Setup.option are NOT the same thing! + + +Here are the elements, and the attributes they can possess. + + There are some specifiers by the attributes: + mustExist: Error if is nil (usually if you don't specify it). The other + "mustBe" descriptions consider nil to be valid when mustExist + isn't explicitly mentioned. + no default: This attribute will not have a default if not specified. + default X: This attribute defaults to X if not specified. + mustBeString: Error if isn't a string. + cantBeEmpty: Error is this string is "". String can be nil, though. + mustBeBool: Error if isn't true, false, or nil. + mustBeFunction: Error if isn't a function (can be C or Lua). + mustBeNumber: Error if isn't a number. + mustBeUrl: Error if isn't a string that matches the regexp "^.+://.-/.*". + mustBePerms: Error if isn't a valid permissions string for the platform. + mustBeStringOrTableOfStrings: Error if isn't a string or an array of strings. + mustBeSplashPosition: Error if isn't a string in the set of "top", + "left", "bottom", "right", or "background". + + Attributes that aren't explicitly specified take on their default value. In + cases without a default, they are effectively set to Lua's "nil" value. + This makes boolean values be treated as "false." Plan accordingly. + + + Setup.Package: + + All configurations need at least one Setup.Package element. Every other + element is added under Setup.Package. One full run of the installer is + done for each Setup.Package. You can have multiple packages in one file, and + the installer will run through for each one as if the program was started + multiple times. If there are multiple packages and an installation failure + occurs, all successfully-installed packages will remain. In most cases, you + only want one Setup.Package and should use Setup.Option to cull pieces + of the package. + + Setup.Package attributes: + + vendor (no default, mustExist, mustBeString, cantBeEmpty) + + This is a unique identifier for your organization. This should be in the + format "companyname.dom" ... the hope is that your primary website is + a unique identifier for your company. If your website is www.icculus.org, + you'd enter your vendor setting as "icculus.org" ... just the hostname and + top-level domain. This is used largely by the OS to maintain packages + (Mac OS X application bundles, vendor IDs for Unix desktop menus, etc). + This is, in theory, never shown to the user, so you don't need this to + actually exist as a website with meaningful content, so long as you can + reasonably assure that the string is unique and follows the "host.dom" + format. + + + id (no default, mustExist, mustBeString, cantBeEmpty) + + This is a unique identifier for your package. Currently it is used as + the base of the install path, but future features may use it for other + things. Set this to something short, unique, and human-readable, like + "mygame". + + + disabled (no default, mustBeBool) + + If this is true, the entire package will be skipped by the installer. You + probably want this to be true, but you might need to programmatically shut + off a whole package. + + + description (no default, mustExist, mustBeString, cantBeEmpty) + + This is your product's name. This will be displayed in the title bar, and + other locations during installation. + + + version (no default, mustExist, mustBeString, cantBeEmpty) + + This is the version of this package. This is arbitrary, and doesn't matter + to the installer what you specify. It's usually a value like "1.0" or + "beta3" + + The installer may use this for future features, like upgrading previous + installations. + + + destination (no default, mustBeString, cantBeEmpty) + + This attribute can be used to force the installation into a specific + location in the physical filesystem. Unless you are building something + very specific (like device drivers for a well-defined platform), you + probably should not use this attribute. If destination isn't forced, + the installer will prompt the user, possibly recommmending locations + to him. + + + recommended_destinations (no default, mustBeStringOrTableOfStrings) + + This attribute lets you define some favorable places to install the + package. You can have a table of strings or a single string: + + recommended_destinations = MojoSetup.info.homedir, + ...or... + recommended_destinations = { "/usr/local/games", "/opt/games" }, + + These strings are presented in the UI to the user when selecting a + install destination, but they can override them with their own choice. + The "id" attribute is appended to these before displaying to the end + user, so they'll see, for example, "/usr/local/games/mygame" and + "/opt/games/mygame" ... if a listed directory is determined to be + unwritable to the user (lack of permissions), it will be removed from the + list before presentation to the user. + + + precheck (no default, mustBeFunction) + + If this attribute is defined, it is called by the installer after the + configuration is parsed and the GUI has started, but before the user has + interacted with the installer at all. It passes the finalized + Setup.Package table as a parameter. + + + preflight (no default, mustBeFunction) + + If this attribute is defined, it is called by the installer after the + user has chosen options to install. The heavy-lifting of the installer + is about to begin: downloading files and installing the Package. It + passes the finalized Setup.Package table as a parameter. + + + preinstall (no default, mustBeFunction) + + If this attribute is defined, it is called by the installer after all + needed external files are downloaded and installation of files is about + to begin. It passes the finalized Setup.Package table as a parameter. + + + postinstall (no default, mustBeFunction) + + If this attribute is defined, it is called by the installer after the + entire package was successfully installed to disk. It passes the finalized + Setup.Package table as a parameter. + + + preuninstall (no default, mustBeFunction) + + If this attribute is defined, it is called by the uninstaller after the + user confirms that uninstallation is acceptable and deletion of + files is about to begin. It passes something like the finalized + Setup.Package table as a parameter. This function is serialized for later + use, in a different program running in a different context: it may NOT use + any Lua upvalues (they will be local variables set to nil when the function + runs) and any globals you reference may or may not exist when the + function runs. Try to do the bare minimum here if you must use this hook. + + + postuninstall (no default, mustBeFunction) + + If this attribute is defined, it is called by the uninstaller after the + uninstallation has successfully finished. It passes something like the + finalized Setup.Package table as a parameter. This function is serialized + for later use, in a different program running in a different context: it + may NOT use any Lua upvalues (they will be local variables set to nil when + the function runs) and any globals you reference may or may not exist when + the function runs. Try to do the bare minimum here if you must use this + hook. + + + updateurl (no default, mustBeUrl) + + This is written to the manifest files for the aid of external tools, but + isn't currently used by MojoSetup itself. + + + splash (no default, mustBeString, cantBeEmpty) + + This is the filename of an image file that will be used in the GUI. + The file should be placed in the "meta" directory (but you should omit + "meta" from this string). Please note that not all GUIs can show graphics, + and you must build MojoSetup with support for whatever image format you + used for the file. + + + splashpos (no default, mustBeSplashPosition) + + This is the location of the splash image that will be used in the GUI. + Please note that not all GUIs can show graphics, or handle the position + requested, but this makes a best effort. If you specify a splash and no + position, the GUI is free to place it wherever it thinks is best. + + + url (no default, mustBeString, cantBeEmpty) + + (!!! FIXME) This attribute is for future expansion. + + + once (default true, mustBeBool) + + (!!! FIXME) This attribute is for future expansion. + + + category (default "Games", mustBeString, cantBeEmpty) + + (!!! FIXME) This attribute is for future expansion. + + + promptoverwrite (default true, mustBeBool) + + (!!! FIXME) This attribute is for future expansion. + Please refer to Setup.File.allowoverwrite for now. + + + binarypath (no default, mustBeString, cantBeEmpty) + + (!!! FIXME) This attribute is for future expansion. + + + superuser (default false, mustBeBool) + + (!!! FIXME) This attribute is for future expansion. + + + write_manifest (default true, mustBeBool) + + If true, MojoSetup will create a hidden metadata directory in the + destination folder with lists of all files installed and some other + pertinent facts about the installed package. This allows other tools to + operate on the installation later, such as a software updater program or + an uninstaller. MojoSetup will also install tools in the metadata + directory to aid in manifest management and uninstallation. + + Unless your package is a well-defined, static installation, you probably + want this. It adds a couple hundred kilobytes to the final install in the + filesystem (but not your download package), and puts an extra directory + in there (Usually called ".mojosetup", and hidden from the end-user). + + + support_uninstall (default true, mustBeBool) + + If true, MojoSetup will include a means for the end-user to uninstall + this package. On Unix, this takes the form of a shell script in the + destination folder, on Windows, this hooks your package into the + "Add/Remove Programs" control panel. + + If you enable support_uninstall, you must enable write_manifest, or the + installer will refuse to run to alert you to the problem immediately. + + Please note that if you haven't anything outside the destination folder + to clean up, uninstall is merely a user-friendly formality; MojoSetup + doesn't implicitly write anything to the system outside this folder, so + the user can just drag it to the trash in the basic usage scenario. Indeed, + on Mac OS X, this is Apple's recommended "uninstall" procedure. On Windows, + hooking into Add/Remove Programs is probably desirable in all cases. + + Enabling this option adds very little overhead to the normal install, once + you swallow the cost from write_manifest. + + + Setup.Eula: + + This element can be a child of Setup.Package or Setup.Option. It can be + used to display a license agreement to the end user, which they must agree + to before installation can proceed. If they refuse the license, the installer + terminates without installing anything (or, in the Setup.Option case, steps + back in the installation to let them change options, so they can disable the + installation of whatever they disagree with). There can be multiple + Setup.Eula elements listed, in which case the end user will be asked to + agree to each license individually before installation may proceed. The + Setup.Package licenses are shown first before any other interaction occurs, + and the Setup.Option licenses are shown after the user selects her install + options. + + Setup.Eula attributes: + + description (no default, mustExist, mustBeString, cantBeEmpty) + + This is a brief description of the license, used for title bars and such. + + + source (no default, mustExist, mustBeString, cantBeEmpty) + + This is a filename in the Base Archive's "data" directory that contains + the license text. Currently this must be a text file in UTF-8 encoding. + + + Setup.Readme: + + This element is a child of Setup.Package. It can be used to display a + information about the package to the end user, such as a welcome message, + FAQs, or other orientation information. There can be multiple Setup.Readme + elements listed, in which case the end user will be shown each readme + individually before installation may proceed. The readmes are shown after + any EULA elements in the Setup.Package. EULA elements in a Setup.Option + are shown later, however. + + Setup.Readme attributes: + + description (no default, mustExist, mustBeString, cantBeEmpty) + + This is a brief description of the Readme, used for title bars and such. + + + source (no default, mustExist, mustBeString, cantBeEmpty) + + This is a filename in the Base Archive's "data" directory that contains + the readme text. Currently this must be a text file in UTF-8 encoding. + + + Setup.ProductKey: + + This element can be a child of Setup.Package or Setup.Option. It can be + used to prompt the user for a "CD key" or some other sort of code that + is required to install the product. If they can't enter a valid key, + the installer terminates without installing anything (or, in the + Setup.Option case, steps back in the installation to let them change options, + so they can disable the installation of whatever they don't have keys for). + There can be multiple Setup.ProductKey elements listed, in which case the + end user will be asked to enter each key individually before installation + may proceed. The Setup.Package keys are requested after any global EULAs are + agreed to, and the Setup.Option keys are requested after any per-option + EULAs. + + Setup.ProductKey attributes: + + description (no default, mustExist, mustBeString, cantBeEmpty) + + This is a brief description of the key being requested, used for + title bars and such. + + + format (no default, mustBeString, cantBeEmpty) + + This specifies the exact format a key must be. This is a string of + characters. The GUI will not allow the user to continue until they either + enter a string that matches this format or abort entry. + + The following characters are acceptable in a format string: + 'X', '#', ' ', '-', '?', '*' + + 'X' means "any letter." + '#' means "any number." + '?' means "any letter or number." + '*' means "any character." + ' ' and '-' specify new blocks of text. + + Obviously, these are not regular expressions, or filename-style wildcards. + + For example, if you expect a valid product key to be four segments of + four numbers, followed by two letters, your format would be this: + + ####-####-####-#### XX + + '-' and ' ' are optional. The GUI may be able to optimize for these cases, + such as splitting input into separate text boxes. Users won't have to + enter these characters; MojoSetup will fill them in if they are missing. + + If no format is specified, the user may enter any string. + + + verify (no default, nil, mustBeFunction) + + This function is called after the user finishes typing in their key. It + allows the installer to verify that the key is valid before continuing. + The function returns true or false, and maybe optionally return a second + value that transforms the key, perhaps to encrypt it before writing it + to disk. + + Here is a very basic example function in Lua: + + local function verify_cdkey(key) + if key == "this-is-a-valid-cdkey" then + -- You could just "return true" too, to not change the key. + return true, key .. "-some-extra-junk-on-the-end" + end + return false + end + + One could also call into a C function, which can be handy to reuse the + same key validation routines that your installed application would use. + MojoSetup's license allows for you to statically link such code without + releasing the source code to it. To do so, please see the function + luahook_verifyproductkey() in lua_glue.c, and change it to fit your needs. + + If no verify function is specified, no verification occurs; MojoSetup + assumes that whatever the user entered is okay, only making sure it + matched the specified format. + + In the case of a successful verification, MojoSetup will quietly continue + on. If you wish to say something to the user here, such as: "don't tell + anyone your CD key, we will never ask you for it," then you should call + MojoSetup.msgbox() before returning from your verify function (or, in C + code: GGui->msgbox("window title", "message to show"). + + + destination (no default, nil, mustBeString, cantBeEmpty) + + This is where MojoSetup should write the product key. It will be a text + file with the final ASCII key string. + + If no destination is specified, the product key is not written to disk. + This may be desirable if the installer just needs to make sure a key is + available and valid. + + On Windows, the destination is allowed to use a magic format for targeting + a specific key in the Windows Registry instead of a file, such as: + + "$WINDOWSREGISTRY/HKEY_LOCAL_MACHINE/Software/MyApp/ProductKey" + + + Setup.Media: + + This element is required if you need to install data from removable media, + such as a DVD-ROM drive. The installer needs a means to identify the + media as the correct source when it is connected to the system. + + Setup.Media attributes: + + id (no default, mustExist, mustBeString, cantBeEmpty) + + A unique specifier for this media, such as "disc1" or "game-disc". This + will be used for Setup.File.source: "media://game-disc/path/filename.zip" + + + description (no default, mustExist, mustBeString, cantBeEmpty) + + A human-readable description of this media, such as "MyGame Disc 2". This + string will be used when the end user must be prompted to insert a new + piece of media to continue the installation. + + + uniquefile (no default, mustExist, mustBeString, cantBeEmpty) + + This is a path that is unique to this media, relative to its root + directory, such as "sounds/guitar.wav". The installer looks at all + media available to the system until it finds this path exists, to + determine if the correct media has been made available by the end user. + + + Setup.Option: + + This element defines an optional section of the install, and is a child + of Setup.Package. You must have at least one Setup.Option in your + configuration, but you can make it mandatory with the "required" attribute + if you don't want it to be actually optional. + + The GUI will show all selectable options to the end user, and they can + pick and choose the parts they want. If there are no optional portions of + the install, the GUI will skip the option selection screen. + + Setup.Options can nest. If a parent option is unchecked in the GUI, its + child options become disabled and will be considered unchecked also when + installation proceeds. + + Setup.Option + { + description = "Wing Commander 1" + source = "base:///wc1.zip", + + -- This option can only install if "Wing Commander 1" is checked too. + Setup.Option + { + description = "WC1 Speech Pack", + source = "base:///wc1sp.zip", + }, + }, + + + Setup.Option attributes: + + disabled (default false, mustBeBool) + + If true, this whole group (including all children) will be removed from + the GUI, and the installer will treat all the child options as unchecked. + If an option has both "required" and "disabled" set to true, then + "disabled" takes precedence. + + + value (default false, mustBeBool) + + If true, the checkbox will be checked by default in the GUI. Checked + options are installed. + + + required (default false, mustBeBool) + + If true, the option won't be shown to the end user, but will just be + treated as if it was checked when installation proceeds. If an option + has both "required" and "disabled" set to true, then "disabled" takes + precedence. + + + bytes (no default, mustExist, mustBeNumber) + + This is the size, in bytes, of files this option will write to disk. The + installer uses this to determine space requirements for the total install. + If you don't know the size, you should set this to -1, but this will + disable some functionality. + + + description (no default, mustExist, mustBeString, cantBeEmpty) + + This string will be shown to the end user, as a label with the GUI's + checkbox. + + + tooltip (no default, mustBeString, cantBeEmpty) + + This string will be used in mouseover "tooltips" in GUI environments for + this option's UI widget. There is no guarantee that they will be shown to + a user in any GUI target, so don't rely on them! + + + Setup.OptionGroup: + + This element can be the parent or child of Setup.Option, or a child of + Setup.Package. It contains of a collection of Setup.Option elements. + The children Setup.Options will be grouped radio buttons in the GUI instead + of individual checkboxes. As such, only one child Setup.Option in an + Setup.OptionGroup will be checked in the GUI. + + Setup.OptionGroup + { + description = "Language", + Setup.Option { description = "English", source = "base:///en.zip" }, + Setup.Option { description = "French", source = "base:///fr.zip" }, + Setup.Option { description = "German", source = "base:///fr.zip" }, + }, + + Setup.OptionGroup attributes: + + disabled (no default, mustBeBool) + + If true, this option (including all children) will be removed from + the GUI, and the installer will treat this and all child options as + unchecked. + + + description (no default, mustExist, mustBeString, cantBeEmpty) + + This string will be shown to the end user, as a label with the GUI's + radio button group. + + + tooltip (no default, mustBeString, cantBeEmpty) + + This string will be used in mouseover "tooltips" in GUI environments for + this option's UI widget. There is no guarantee that they will be shown to + a user in any GUI target, so don't rely on them! + + + Setup.File: + + This element specifies a fileset, a collection of files, to install. These + are children of Setup.Option, and you can specify as many as you like per + option. Each Setup.File represents an "archive," that is, some set of files, + such as a .zip file or a directory. + + Setup.File attributes: + + source (no default, mustBeUrl) + + This is a URL that provides the source for this fileset. You can only + specify archives (directories and files like .zip, .tar, etc), not + specific individual files. If you need a specific file, use its parent + directory here and a "wildcards" attribute. + + There are some standard and non-standard URL handlers you can specify: + + base:///path/file.ext + + This references an archive in the Base Archive, where the "data" + directory is the root...so the above looks for data/path/file.ext in + the Base Archive. + + This can install from an archive inside an archive, like this: + + base:///mydir/outside.zip/internalpath/inside.tar + + + media://id/path/file.ext + + This references a file on an external media with a specific id, + as defined in a Setup.Media element. The user will be prompted for + the correct media if the installer can't find it. This can install + archives-in-archives, like the base:/// version can. + + + ftp://hostname.dom/path/file.ext + http://hostname.dom/path/file.ext + + The references a file on an FTP or web server. These files will all be + downloaded before local files are installed. You may only specify + archives at this time, not individual files or directories. + MojoSetup must be built with support for the proper network protocol. + + + destination (no default, mustBeString, cantBeEmpty) + + This attribute lets you, across the board, redirect files in this archive + to a specific destination. This is a path relative to the base of the + installation destination path. If the user specified an installation + destination of "/games/mygame", this attribute is "gamemod", and the + source produces a file "maps/level1.map", then the final file written to + disk would be "/games/mygame/gamemod/maps/level1.map". + + After the path is prepared with this attribute, it is tested against the + "wildcards" attribute, and if it passes there, it is pushed through the + "filter" attribute. + + + wildcards (no default, mustBeStringOrTableOfStrings) + + This is the first step to culling files from an archive or directory. + Files are only installed if they match a specified wildcard. + Wildcards are simple to use: they only allow '?' for single character + matches and '*' to match a sequence of characters. You may specify a + single string, or a list of wildcards, like this: + + -- matches sounds/heroes/laser13.wav and sounds/villians/laser02.wav + wildcards = "sounds/*/laser??.wav" + + ...or... + + -- everything in the maps, sounds, and graphics directories. + -- (this includes subdirs! '*' matches past '/' separators!) + wildcards = { "maps/*", "sounds/*", "graphics/*" } + + + filter (no default, mustBeFunction) + + This is a function that takes one argument, a string that represents the + path of a single file relative to the root of the installation destination. + This function may return nil to choose not to install this file, which is + useful for culling files from an archive, or a string that represents a + new destination for the file, which is useful for renaming some files + on-the-fly: + + filter = function(dest) + if string.match(dest, ".exe$") then + return nil -- skip Windows .exe files on Unix. + end + if dest == "SOMEFILE.TXT" then + return "somefile.txt" -- force this to lowercase. + end + return dest -- everything else can go through as-is. + end + + Filters can optionally return a second argument, a string, that defines + the destination file's permissions. This can be omitted, or nil, to use + the default permissions: + + filter = function(dest) + if dest == "mygame-binary" then + return dest, "0755" -- make sure it's executable. + end + return dest -- everything else just goes through as-is. + end + + Please see the documentation for Setup.File's "permissions" attribute for + further discussion. + + + allowoverwrite (no default, mustBeBool) + + If true, the installer will overwrite existing files without warning. If + false, the user will be prompted before overwriting each file. + + Files are actually moved out of the way instead of overwritten, so the + installer can restore them if the install is cancelled or fails mid-way. + They are deleted only after a successful install. + + + permissions (no default, mustBePerms) + + Override the permissions with which the files will be created. This is + a string, not a number...this allows both for future expansion (non-Unix + systems, extended attributes, etc), and works around the fact that Lua + does not have syntax for specifying octal numbers directly. + + Currently this string maps to Unix permissions as an octal number: + "0644" would be read/write access for the user, and read-only for the + group and everyone else. + + If set to nil or not specified, the new file's permissions will be + whatever is already associated with the file (such as the Unix permissions + in a .tar file's entry). + + Please note that files coming from a real filesystem will have their + defaults overridden by MojoSetup (to "0644"), since many operating systems + tend to report every file on a CD-ROM as read-only and executable, which + is frequently not what you want in the installed copy. Plan accordingly. + + You can return a permissions string as the second value from your filter + function as well, which may be more efficient if you only need to change + a few files, (each Setup.File has to iterate the whole archive, so you + want to avoid specifying multiple Setup.Files for one archive when + possible), or need to adjust permissions in only a portion of a downloaded + archive. This attribute applies permissions to every file installed + through this element. If this attribute is set and the filter returns a + non-nil permission, the filter takes precedence. + + + Setup.DesktopMenuItem: + + This element specifies a menu item that will be installed in the system + desktop menu: this might be the "Applications" dropdown in the Gnome panel, + or the "Start" bar on Windows, for example. This can be a child of + Setup.Option (in which case it is only considered for installation if the + option itself is too), or Setup.Package (in which case it is always + considered for installation). Some of this element's properties are ignored + on some operating systems, but they are still required both for + cross-platform safety and future expansion. + + Setup.DesktopMenuItem attributes: + + disabled (no default, mustBeBool) + + If this is true, the menu item will be skipped by the installer. You + probably want this to be true, but you might need to programmatically shut + off specific menu items. + + + name (no default, mustExist, mustBeString, cantBeEmpty) + + This is the proper name of the item to be installed ("Firefox"). + + + genericname (no default, mustExist, mustBeString, cantBeEmpty) + + This is a generic name for the item to be installed ("Web Browser"). + + + tooltip (no default, mustExist, mustBeString, cantBeEmpty) + + This is used as a tooltip for the item by the OS when the user hovers + the mouse pointer over it. + + builtin_icon (no default, mustBeBool) + + If this is true, then "icon" refers to a platform-dependent standard + icon. Currently, this only makes sense on Unix systems that follow + the freedesktop.org standards. If this is false, then "icon" refers + to a file, relative to the installation's destination directory, which + the must be installed through a Setup.File. Most installers should set + this to false (the default) unless they know what they are doing. + + icon (no default, mustExist, mustBeString, cantBeEmpty) + + The icon to use with this menu item. Please see builtin_icon for info + on what this string means. The format of files that may be used as icons + varies from platform to platform; you may need to install a different + file programmatically, based on the value of MojoSetup.info.platform. + + commandline (no default, mustExist, mustBeString, cantBeEmpty) + + This is the command line that will be used to launch the application + when the end user clicks on the desktop menu item. The string "%0" is + replaced with the install destination, so if you need an absolute path + to mygame.exe, and the user is installing to /home/user/mygame, you should + specify "%0/mygame.exe" to get "/home/user/mygame/mygame.exe". + + category (no default, mustExist, mustBeStringOrTableOfStrings) + + This is a category (or array of categories) that the menu item applies + to. You can choose several, but one is usually less confusing. Valid + choices are currently: AudioVideo, Development, Education, Game, Graphics, Network, + Office, Settings, System, Utility. + + mimetype (no default, mustBeStringOrTableOfStrings) + + This is a MIME type (or array of MIME types) that the menu item can handle. + For example, if you are installing an image viewer, you might specify: + mimetype={"image/jpeg", "image/png"}; ... this is optional, you don't + have to specify any mimetypes at all. + + !!! FIXME: there is currently no way for an installer to inform the system + !!! FIXME: of associations between new file extensions and mimetypes. + !!! FIXME: Things that collect mime info themselves, like web browsers + !!! FIXME: and email clients, can use new apps this way, however. + + !!! FIXME: there is currently no way for an installer to add submenus. + + + +Add any localized strings: + +If you added strings to the installer or your config file that you want + translated at runtime, you need to add them to scripts/app_localization.lua. + This is a Lua script, too, of course, but you really should treat it like a + basic config file. + +The format looks something like this: + + ["Yes"] = { + es = "Si"; + fr = "Oui"; + }; + +As you can see, the ["Yes"] is a string to translate. These are always English + by convention, but this is whatever the string you wish to translate. Please + note that the brackets are important, and only used on this specific string. + +The fields in this structure are language abbreviations that match a user's + locale and the string of translated text. + +Please note that you can do locale-specific translations, too: + + ["colors"] = { + en_UK = "colours"; + }; + +All strings in this file (and all Lua scripts) are UTF-8 encoded. Using a + high-ASCII character will not work like you expect at runtime! + +These lookup tables are used at runtime to translate strings, both by you and + internally by MojoSetup. You can do a translation by calling: + + MojoSetup.translate("colors") + +We recommend making a convenience function like this at the top of your + config.lua... + + local function _ = MojoSetup.translate + +...so that you have a convention for translations that cause minimal clutter: + + Setup.Option { + description = _("Level editor utility"), + -- ...etc... + } + +A detailed example of how to do this is scripts/localization.lua, which you + should ship with your installer. You probably shouldn't add your strings to + localization.lua directly, though. MojoSetup uses this file for text it uses + internally, and the file changes a lot. Using app_localization.lua allows + your translations to live separately from MojoSetup's, which has two benefits. + First, you don't have to merge your translation work with MojoSetup's every + time you upgrade. Second, you can override default translations, like this: + + ["Uninstall complete"] = { + en = "Uninstall complete. You may also delete '.MyGame' in your home directory to remove personal savegames and settings.", + it = "Disinstallazione completata. Se desideri cancellare i salvataggi e le impostazione cancella '.MyGame' nella tua directory home.", + -- ...other languages here... + }; + +app_localization.lua's translations will be favored over localization.lua's. + In the above example, a language that doesn't have an override may still get + a correctly translated "Uninstall complete" without the extras from the base + file. + + +Package up the final file for distribution: + +Now you have a MojoSetup binary and a directory tree containing your data, GUI + plugins, and scripts (including the config.lua you just wrote). Now you just + need to glue them together. MojoSetup will attempt to look at itself as an + archive on startup, which works in the same way "self-extracting" exe files + worked on other operating systems. If you want MojoSetup to be + self-extracting, zip your directory tree up and append it to the binary: + + zip -9r mydata.zip data guis scripts + cat mydata.zip >> mojosetup + +Now rename "mojosetup" to something meaningful (mygame-1.0-linux-x86.bin or + whatever), and you've got an installer. + +If you have the luxury of a real filesystem (inside a disk image or on a CD + you are shipping, for example), MojoSetup will use the binary's directory + if it doesn't find a zipfile appended to the binary itself, so you can just + have "data", "scripts" and "guis" in the same directory as "mojosetup" to + have it work, too. + + +Now you're done! Give your installer to the public. + + + +MojoSetup-provided globals: + +Your config file is a Lua script, and as such, has access to all of Lua's + runtime library (presuming you didn't disable it when building MojoSetup) + and several other bits of MojoSetup-specific functionality. Everything the + installer provides to your script is under the "MojoSetup" table, so as not + to pollute the namespace. Also, the config files use the "Setup" table for + the basic config schema. Everything else is free game. Here are the globals + that MojoSetup provides: + + MojoSetup.format(fmt, ...) + + Format a string, sort of (but not exactly!) like sprintf(). + The only formatters accepted are %0 through %9 (and %%), which do not + have to appear in order in the string, but match the varargs in the + order they are passed to the function. + + format('%1 %0 %1 %%', 'X', 'Y', 'Z') will return the string: 'Y X Y %' + + + MojoSetup.fatal(errstr) + + Display (errstr) to the end user and stop the installation. The installer + will attempt to clean up any half-finished installation, including rolling + back any files that would have been replaced had the installation succeeded. + You should never use error() in the standard Lua runtime; use this instead. + + + MojoSetup.runfile(script) + + Run the code in a given Lua file. This is JUST the base filename. MojoSetup + will look for it in the Base Archive in the scripts/ directory, both as + script.luac and script.lua. This code chunk will accept no arguments, and + return no results, but it can change the global state and alter tables, + etc, so it can have lasting side effects. Will return false if the file + couldn't be loaded, or true if the chunk successfully ran. Will not return + if there's a runtime error in the chunk, as it will call MojoSetup.fatal() + instead. You should use this instead of the "require" function in the Lua + runtime, as require() won't respect the Base Archive. + + + MojoSetup.translate(str) + + Find the proper translation for the end user's locale in the localization + table. Returns the translation, or the original string if no translation + was available. It's common to use this for shorthand: + + local function _ = MojoSetup.translate + + ...so you can be less verbose: print(_("translate this string")) + + + MojoSetup.ticks() + + Return the time, in milliseconds, that the process has been running. + + + MojoSetup.logwarning(str) + + Write a warning to the installation log, if logging settings permit. + + + MojoSetup.logerror(str) + + Write an error to the installation log, if logging settings permit. + + + MojoSetup.loginfo(str) + + Write an info string to the installation log, if logging settings permit. + + + MojoSetup.logdebug(str) + + Write debug info to the installation log, if logging settings permit. + + + MojoSetup.launchbrowser(url) + + Launch a web browser to view the URL (url). This will try to launch a + new window/tab of the user's preferred handler for the url. Launching + "http://" URLs are probably always safe, other protocols, like "ftp://" + may or may not work, depending on what the platform offers. + + Returns true if the browser launched, false otherwise. We can't know + if the URL actually loaded or rendered, just if the browser launched. + The hope is that the browser will inform the user if there's a problem + loading the URL. + + + MojoSetup.msgbox(title, str) + + Show (str) to the user with a GUI message box, and wait until they click + an "OK" button. (title) is the message box's title. + + + MojoSetup.promptyn(title, str, defval) + + Show (str) to the user with a GUI message box, and wait until they click + either a "YES" or "NO" button. Returns true if they clicked YES, false + if they clicked "NO". (title) is the message box's title. + (defval) is an optional boolean value: whether the default action should + be "YES" or "NO". If (defval) isn't specified, it defaults to false. + + + MojoSetup.promptynan(title, str, defval) + + Show (str) to the user with a GUI message box, and wait until they click + either a "YES", "NO", "ALWAYS" or "NEVER" button. Returns the string + "yes", "no", "always", or "never". (title) is the message box's title. + (defval) is an optional boolean value: whether the default action should + be "YES" or "NO" ... "always" and "never" can not be the default, since + these tend to be destructive actions that the user should consciously + choose to do. If (defval) isn't specified, it defaults to false. + + + MojoSetup.stackwalk() + + This writes a backtrace of the current Lua callstack to the installation + log, if logging settings permit debug-level logging. + + + MojoSetup.cmdline(flag) + + See if a given flag was on the command line for the process. + MojoSetup.cmdline("nosound") will return true if "-nosound", "--nosound", + etc was on the command line. The option must start with a '-' on the + command line to be noticed by this function. Returns true if flag was on + the command line, false otherwise. + + + MojoSetup.cmdlinestr(flag, envr, deflt) + + Get robust command line options, with optional default for missing ones. + + If the command line was ./myapp --a=b -c=d ----e f + - cmdlinestr("a") will return "b" + - cmdlinestr("c") will return "d" + - cmdlinestr("e") will return "f" + - cmdlinestr("g") will return the default string. + + Like MojoSetup.cmdline(), the option must start with a '-'. + + (envr) is an optional environment var to check if command line wasn't + found. You can call this function without specifying this parameter, or + pass a nil here. + (deflt) is the return value if (flag) isn't on the command line. + + + MojoSetup.collectgarbage() + + Do a complete run of the Lua garbage collector. Use this instead of the + version in the Lua standard runtime, since this version does better debug + logging. + + + MojoSetup.date() + + Return a string of the current date. This is roughly the same as os.date() + in the standard Lua runtime, but we didn't want to add the os table + dependencies just to write this string into the log. + + + MojoSetup.info.uid + + This is a number (not a function!) that lists the user id of the person + running the installer. On Unix, this is what getuid() reports (and zero + would be the root user). + + + MojoSetup.info.euid + + This is a number (not a function!) that lists the EFFECTIVE user id of the + person running the installer. On Unix, this is what geteuid() reports (and + zero would be the root user). + + + MojoSetup.info.gid + + This is a number (not a function!) that lists the group id of the person + running the installer. On Unix, this is what getgid() reports. + + + MojoSetup.info.locale + + This is a string (not a function!) of the current locale, in the format + xx_YY, where "xx" is the language code (en for english, de for German, etc) + and "YY" is the country code: "en_US" for American English, fr_CA for + Canadian French, etc. + + If MojoSetup can't determine the user's locale, this string is "???". + + + MojoSetup.info.platform + + This is a string (not a function!) of the current platform. This is + currently one of "macosx", "unix", "windows", or "beos", or one of several + others, depending on your build and target platform. + + + MojoSetup.info.arch + + This is a string (not a function!) of the current platform's CPU type. + This is currently one of "x86", "x86-64", "powerpc", "powerpc64", + or one of several others, depending on your build and target platform. + + Please note that this is the arch of the installer binary...you can run + a 32-bit binary on an amd64 chip, in which case it will report "x86"! + + + MojoSetup.info.ostype + + This is a string (not a function!) of the current platform's operating + system. This is currently one of "macosx", "beos", "linux", "freebsd", + "netbsd", "openbsd", "bsdi", "aix", "hpux", "irix", or "solaris". + + Please note that this is the OS target of the installer binary...you can + run a Linux binary on FreeBSD through the binary compatibility layer, + in which case it will still report "linux"! + + On Windows, this is currently either "win9x" or "winnt" to differentiate + Windows 95/98/ME from NT/XP/Vista/etc, since their version numbers can + overlap. Installers should not rely on there never being a third string + some day in the distant future, though. + + + MojoSetup.info.osversion + + This is a string (not a function!) of the current platform's operating + system version. This may not be useful information on many platforms. + On Mac OS X, it's the system version (So it might be 10.4.9 on a Tiger + install, 10.3.8 on a Panther install, etc). + + On other Unixes, it's the "release" field from uname(), which on Linux + gives you the kernel version, which is usually not helpful, but could be + on, say, BeOS. + + On Windows, it'll be the Major.Minor.Build version for the OS. This is the + same information that the win32 OSVERSIONINFO structure supplies: + + http://msdn2.microsoft.com/en-us/library/ms724834.aspx + + So "5.1.2600" might mean "Windows XP, service pack 1" ... relying on the + build number can be very dangerous if you don't know what you're doing, + but the major/minor values appear to be reliable to differentiate various + flavors of Windows (and MojoSetup.info.ostype can differentiate between + the Win95-based and WinNT-based versions). + + On any platform, it would be wise to not rely too heavily on this data: + it's frequently better to check for the specific thing you want to know + about ("Is DirectX 9 installed?") rather than ask a general question ("Is + this Windows XP?"). This prevents problems when unexpected values arise in + situations you never expected to handle (for example, if you ran the + Windows installer under Wine, it could report that its Windows XP, but + there's no DirectX 9 support). Knowing what you really want to know is + half the battle. + + + MojoSetup.info.ui + + This is a string (not a function!) of the UI plugin that MojoSetup chose. + This is currently one of "stdio", "ncurses", "macosx", "gtkplus2", "www", + or one of several others, depending on your build and target platform. + It's best to not rely on this being within a specific set of values. + + + MojoSetup.info.buildver + + This is a string (not a function!) of the build identifier for this binary. + You can print this string to stdout by running ./mojosetup --buildver + at the command line. + + + MojoSetup.info.loglevel + + This is a string (not a function!) of the logging level that MojoSetup + is enforcing. This is currently one of "nothing", "errors", "warnings", + "info", "debug", or "everything" ... each level includes the previous + level, so "warnings" will also log error messages, but not info or debug + messages. + + + MojoSetup.info.homedir + + This is a string (not a function!) of the "home directory" of the end-user + in the physical filesystem. This is useful if you want to determine a sane + default location to write files. + + + MojoSetup.info.argv + + This is a string array (not a function!) of the installer process's + command line arguments. You might find MojoSetup.cmdline() or + MojoSetup.cmdlinestr() to be more useful. + + + MojoSetup.info.supportedurls + + This is a string array (not a function!) of URL types the installer + supports. You can either iterate it... + + for k,v in pairs(MojoSetup.info.supportedurls) do + print("installer supports " .. v .. ":// URLs") + end + + ...or you can query it... + + if MojoSetup.info.supportedurls["http"] ~= nil then + print("installer supports http:// URLs") + end + + "base" and "media" are included in the list, always. The rest are + compile-time options. + + + MojoSetup.destination + + This is a string (not a function!) of the path on the physical filesystem + where the package is being installed. This is not available until the + user has selected a destination, but could be useful in your postinstall + script. + + + MojoSetup.manifest + + This is a table of tables (not a function!) that is built during the + course of the installation. As changes are made to the destination + filesystem, they are noted in MojoSetup.manifest, so this will be + complete and most useful during a postinstall hook in your config file. + + As with most other globals listed here, MojoSetup depends on this data, + so you should treat it as read-only. Modifying this table from your config + script will result in undefined (but probably bad) behaviour. + + There is one element in the array for each Setup.Option that generated + a change to the filesystem. Each of these elements is an array of tables. + + for option,items in pairs(MojoSetup.manifest) do + local desc = option + if type(desc) == "table" then -- could be a string in some cases! + desc = desc.description + end + print("Option: " .. desc) + for i,item in ipairs(items) do + -- ... do stuff with "item" here ... + end + end + + The format of the item tables vary depending on type. They all have a + "type" field, which is a string. Based on the type, different fields are + available: + + if item.type == "file" then + print("file created at " .. item.path) + print("with permissions" .. item.mode) -- This is a string! + + -- Checksums may or may not exist in this table, depending on how + -- MojoSetup was compiled. You can iterate to find out what's there: + print("checksums:") + if item.checksums ~= nil then + for k,v in pairs(item.checksums) do + print(" " .. k .. ": " .. v) -- "crc32: 92FAB211E", etc. + end + end + end + + if item.type == "dir" then + print("directory created at " .. item.path) + print("with permissions" .. item.mode) -- This is a string! + end + + if item.type == "symlink" then + print("symbolic link created at " .. item.path) + print("pointing to " .. item.linkdest) + end + +// end of docs.txt ... + diff --git a/mk/linux/mojosetup/fileio.c b/mk/linux/mojosetup/fileio.c new file mode 100644 index 00000000..73312778 --- /dev/null +++ b/mk/linux/mojosetup/fileio.c @@ -0,0 +1,1157 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#include "fileio.h" +#include "platform.h" + +typedef MojoArchive* (*MojoArchiveCreateEntryPoint)(MojoInput *io); + +MojoArchive *MojoArchive_createZIP(MojoInput *io); +MojoArchive *MojoArchive_createTAR(MojoInput *io); +MojoArchive *MojoArchive_createUZ2(MojoInput *io); +MojoArchive *MojoArchive_createPCK(MojoInput *io); + +typedef struct +{ + const char *ext; + MojoArchiveCreateEntryPoint create; + boolean hasMagic; // can determine file type from contents? +} MojoArchiveType; + +static const MojoArchiveType archives[] = +{ + { "zip", MojoArchive_createZIP, true }, + { "tar", MojoArchive_createTAR, true }, + { "tar.gz", MojoArchive_createTAR, true }, + { "tar.bz2", MojoArchive_createTAR, true }, + { "tgz", MojoArchive_createTAR, true }, + { "tbz2", MojoArchive_createTAR, true }, + { "tb2", MojoArchive_createTAR, true }, + { "tbz", MojoArchive_createTAR, true }, + { "uz2", MojoArchive_createUZ2, false }, + { "pck", MojoArchive_createPCK, true }, +}; + + +#if SUPPORT_GZIP + +#include "zlib/zlib.h" + +#define GZIP_READBUFSIZE (128 * 1024) + +static MojoInput *make_gzip_input(MojoInput *origio); + +typedef struct GZIPinfo +{ + MojoInput *origio; + uint64 uncompressed_position; + uint8 *buffer; + z_stream stream; +} GZIPinfo; + +static voidpf mojoZlibAlloc(voidpf opaque, uInt items, uInt size) +{ + return xmalloc(items * size); +} // mojoZlibAlloc + +static void mojoZlibFree(voidpf opaque, voidpf address) +{ + free(address); +} // mojoZlibFree + +static void initializeZStream(z_stream *pstr) +{ + memset(pstr, '\0', sizeof (z_stream)); + pstr->zalloc = mojoZlibAlloc; + pstr->zfree = mojoZlibFree; +} // initializeZStream + +static boolean MojoInput_gzip_ready(MojoInput *io) +{ + return true; // !!! FIXME: ready if there are bytes uncompressed. +} // MojoInput_gzip_ready + +static boolean MojoInput_gzip_seek(MojoInput *io, uint64 offset) +{ + // This is all really expensive. + GZIPinfo *info = (GZIPinfo *) io->opaque; + + /* + * If seeking backwards, we need to redecode the file + * from the start and throw away the compressed bits until we hit + * the offset we need. If seeking forward, we still need to + * decode, but we don't rewind first. + */ + if (offset < info->uncompressed_position) + { + if (!info->origio->seek(info->origio, 0)) + return false; + inflateEnd(&info->stream); + initializeZStream(&info->stream); + if (inflateInit2(&info->stream, 31) != Z_OK) + return false; + info->uncompressed_position = 0; + } // if + + while (info->uncompressed_position != offset) + { + uint8 buf[512]; + uint32 maxread; + int64 br; + + maxread = (uint32) (offset - info->uncompressed_position); + if (maxread > sizeof (buf)) + maxread = sizeof (buf); + + br = io->read(io, buf, maxread); + if (br != maxread) + return false; + } /* while */ + + return true; +} // MojoInput_gzip_seek + +static int64 MojoInput_gzip_tell(MojoInput *io) +{ + return (((GZIPinfo *) io->opaque)->uncompressed_position); +} // MojoInput_gzip_tell + +static int64 MojoInput_gzip_length(MojoInput *io) +{ + return -1; +} // MojoInput_gzip_length + +static int64 MojoInput_gzip_read(MojoInput *io, void *buf, uint32 bufsize) +{ + GZIPinfo *info = (GZIPinfo *) io->opaque; + MojoInput *origio = info->origio; + int64 retval = 0; + + if (bufsize == 0) + return 0; // quick rejection. + else + { + info->stream.next_out = buf; + info->stream.avail_out = bufsize; + + while (retval < ((int64) bufsize)) + { + const uint32 before = info->stream.total_out; + int rc; + + if (info->stream.avail_in == 0) + { + int64 br; + + br = origio->length(origio) - origio->tell(origio); + if (br > 0) + { + if (br > GZIP_READBUFSIZE) + br = GZIP_READBUFSIZE; + + br = origio->read(origio, info->buffer, (uint32) br); + if (br <= 0) + return -1; + + info->stream.next_in = info->buffer; + info->stream.avail_in = (uint32) br; + } // if + } // if + + rc = inflate(&info->stream, Z_SYNC_FLUSH); + retval += (info->stream.total_out - before); + + if (rc != Z_OK) + return -1; + } // while + } // else + + if (retval > 0) + info->uncompressed_position += (uint32) retval; + + return retval; +} // MojoInput_gzip_read + +static MojoInput* MojoInput_gzip_duplicate(MojoInput *io) +{ + GZIPinfo *info = (GZIPinfo *) io->opaque; + MojoInput *retval = NULL; + MojoInput *newio = info->origio->duplicate(info->origio); + if (newio != NULL) + { + retval = make_gzip_input(newio); + if (retval != NULL) + retval->seek(retval, io->tell(io)); // slow, slow, slow... + } // if + return retval; +} // MojoInput_gzip_duplicate + +static void MojoInput_gzip_close(MojoInput *io) +{ + GZIPinfo *info = (GZIPinfo *) io->opaque; + if (info->origio != NULL) + info->origio->close(info->origio); + inflateEnd(&info->stream); + free(info->buffer); + free(info); + free(io); +} // MojoInput_gzip_close + +static MojoInput *make_gzip_input(MojoInput *origio) +{ + MojoInput *io = NULL; + GZIPinfo *info = (GZIPinfo *) xmalloc(sizeof (GZIPinfo)); + + initializeZStream(&info->stream); + if (inflateInit2(&info->stream, 31) != Z_OK) + { + free(info); + return NULL; + } // if + + info->origio = origio; + info->buffer = (uint8 *) xmalloc(GZIP_READBUFSIZE); + + io = (MojoInput *) xmalloc(sizeof (MojoInput)); + io->ready = MojoInput_gzip_ready; + io->read = MojoInput_gzip_read; + io->seek = MojoInput_gzip_seek; + io->tell = MojoInput_gzip_tell; + io->length = MojoInput_gzip_length; + io->duplicate = MojoInput_gzip_duplicate; + io->close = MojoInput_gzip_close; + io->opaque = info; + return io; +} // make_gzip_input + +#endif // SUPPORT_GZIP + + +#if SUPPORT_BZIP2 + +#include "bzip2/bzlib.h" + +#define BZIP2_READBUFSIZE (128 * 1024) + +static MojoInput *make_bzip2_input(MojoInput *origio); + +typedef struct BZIP2info +{ + MojoInput *origio; + uint64 uncompressed_position; + uint8 *buffer; + bz_stream stream; +} BZIP2info; + +static void *mojoBzlib2Alloc(void *opaque, int items, int size) +{ + return xmalloc(items * size); +} // mojoBzlib2Alloc + +static void mojoBzlib2Free(void *opaque, void *address) +{ + free(address); +} // mojoBzlib2Free + +static void initializeBZ2Stream(bz_stream *pstr) +{ + memset(pstr, '\0', sizeof (bz_stream)); + pstr->bzalloc = mojoBzlib2Alloc; + pstr->bzfree = mojoBzlib2Free; +} // initializeBZ2Stream + +static boolean MojoInput_bzip2_ready(MojoInput *io) +{ + return true; // !!! FIXME: ready if there are bytes uncompressed. +} // MojoInput_bzip2_ready + +static boolean MojoInput_bzip2_seek(MojoInput *io, uint64 offset) +{ + // This is all really expensive. + BZIP2info *info = (BZIP2info *) io->opaque; + + /* + * If seeking backwards, we need to redecode the file + * from the start and throw away the compressed bits until we hit + * the offset we need. If seeking forward, we still need to + * decode, but we don't rewind first. + */ + if (offset < info->uncompressed_position) + { +#if 0 + /* we do a copy so state is sane if inflateInit2() fails. */ + bz_stream str; + initializeBZ2Stream(&str); + if (BZ2_bzDecompressInit(&str, 0, 0) != BZ_OK) + return false; + + if (!info->origio->seek(info->origio, 0)) + return false; // !!! FIXME: leaking (str)? + + BZ2_bzDecompressEnd(&info->stream); + memcpy(&info->stream, &str, sizeof (bz_stream)); +#endif + + if (!info->origio->seek(info->origio, 0)) + return false; + BZ2_bzDecompressEnd(&info->stream); + initializeBZ2Stream(&info->stream); + if (BZ2_bzDecompressInit(&info->stream, 0, 0) != BZ_OK) + return false; + info->uncompressed_position = 0; + } // if + + while (info->uncompressed_position != offset) + { + uint8 buf[512]; + uint32 maxread; + int64 br; + + maxread = (uint32) (offset - info->uncompressed_position); + if (maxread > sizeof (buf)) + maxread = sizeof (buf); + + br = io->read(io, buf, maxread); + if (br != maxread) + return false; + } /* while */ + + return true; +} // MojoInput_bzip2_seek + +static int64 MojoInput_bzip2_tell(MojoInput *io) +{ + return (((BZIP2info *) io->opaque)->uncompressed_position); +} // MojoInput_bzip2_tell + +static int64 MojoInput_bzip2_length(MojoInput *io) +{ + return -1; +} // MojoInput_bzip2_length + +static int64 MojoInput_bzip2_read(MojoInput *io, void *buf, uint32 bufsize) +{ + BZIP2info *info = (BZIP2info *) io->opaque; + MojoInput *origio = info->origio; + int64 retval = 0; + + if (bufsize == 0) + return 0; // quick rejection. + else + { + info->stream.next_out = buf; + info->stream.avail_out = bufsize; + + while (retval < ((int64) bufsize)) + { + const uint32 before = info->stream.total_out_lo32; + int rc; + + if (info->stream.avail_in == 0) + { + int64 br; + + br = origio->length(origio) - origio->tell(origio); + if (br > 0) + { + if (br > BZIP2_READBUFSIZE) + br = BZIP2_READBUFSIZE; + + br = origio->read(origio, info->buffer, (uint32) br); + if (br <= 0) + return -1; + + info->stream.next_in = (char *) info->buffer; + info->stream.avail_in = (uint32) br; + } // if + } // if + + rc = BZ2_bzDecompress(&info->stream); + retval += (info->stream.total_out_lo32 - before); + if (rc != BZ_OK) + return -1; + } // while + } // else + + if (retval > 0) + info->uncompressed_position += (uint32) retval; + + return retval; +} // MojoInput_bzip2_read + +static MojoInput* MojoInput_bzip2_duplicate(MojoInput *io) +{ + BZIP2info *info = (BZIP2info *) io->opaque; + MojoInput *retval = NULL; + MojoInput *newio = info->origio->duplicate(info->origio); + if (newio != NULL) + { + retval = make_bzip2_input(newio); + if (retval != NULL) + retval->seek(retval, io->tell(io)); // slow, slow, slow... + } // if + return retval; +} // MojoInput_bzip2_duplicate + +static void MojoInput_bzip2_close(MojoInput *io) +{ + BZIP2info *info = (BZIP2info *) io->opaque; + if (info->origio != NULL) + info->origio->close(info->origio); + BZ2_bzDecompressEnd(&info->stream); + free(info->buffer); + free(info); + free(io); +} // MojoInput_bzip2_close + +static MojoInput *make_bzip2_input(MojoInput *origio) +{ + MojoInput *io = NULL; + BZIP2info *info = (BZIP2info *) xmalloc(sizeof (BZIP2info)); + + initializeBZ2Stream(&info->stream); + if (BZ2_bzDecompressInit(&info->stream, 0, 0) != BZ_OK) + { + free(info); + return NULL; + } // if + + info->origio = origio; + info->buffer = (uint8 *) xmalloc(BZIP2_READBUFSIZE); + + io = (MojoInput *) xmalloc(sizeof (MojoInput)); + io->ready = MojoInput_bzip2_ready; + io->read = MojoInput_bzip2_read; + io->seek = MojoInput_bzip2_seek; + io->tell = MojoInput_bzip2_tell; + io->length = MojoInput_bzip2_length; + io->duplicate = MojoInput_bzip2_duplicate; + io->close = MojoInput_bzip2_close; + io->opaque = info; + return io; +} // make_bzip2_input + +#endif // SUPPORT_BZIP2 + + +MojoInput *MojoInput_newCompressedStream(MojoInput *origio) +{ +#if SUPPORT_GZIP || SUPPORT_BZIP2 + // Look at the first piece of the file to decide if it is compressed + // by a general compression algorithm, and if so, wrap the MojoInput + // in a decompressor. + uint8 magic[4]; + const int64 br = origio->read(origio, magic, sizeof (magic)); + if ((origio->seek(origio, 0)) && (br == sizeof (magic))) + { + #if SUPPORT_GZIP + if ((magic[0] == 0x1F) && (magic[1] == 0x8B) && (magic[2] == 0x08)) + return make_gzip_input(origio); + #endif + + #if SUPPORT_BZIP2 + if ((magic[0] == 0x42) && (magic[1] == 0x5A)) + return make_bzip2_input(origio); + #endif + } // if +#endif + + return NULL; +} // MojoInput_newCompressedStream + + +MojoArchive *MojoArchive_newFromInput(MojoInput *_io, const char *origfname) +{ + int i; + MojoArchive *retval = NULL; + const char *ext = NULL; + MojoInput *io = MojoInput_newCompressedStream(_io); + if (io == NULL) + io = _io; + + if (origfname != NULL) + { + ext = strrchr(origfname, '/'); + if (ext == NULL) + ext = strchr(origfname, '.'); + else + ext = strchr(ext+1, '.'); + } // if + + while (ext != NULL) + { + // Try for an exact match by filename extension. + ext++; // skip that '.' + for (i = 0; i < STATICARRAYLEN(archives); i++) + { + const MojoArchiveType *arc = &archives[i]; + if (strcasecmp(ext, arc->ext) == 0) + return arc->create(io); + } // for + ext = strchr(ext, '.'); + } // while + + // Try any that could be determined without the file extension... + for (i = 0; i < STATICARRAYLEN(archives); i++) + { + const MojoArchiveType *arc = &archives[i]; + if ((arc->hasMagic) && ((retval = arc->create(io)) != NULL)) + return retval; + } // for + + io->close(io); + return NULL; // nothing can handle this data. +} // MojoArchive_newFromInput + + +void MojoArchive_resetEntry(MojoArchiveEntry *info) +{ + free(info->filename); + free(info->linkdest); + memset(info, '\0', sizeof (MojoArchiveEntry)); +} // MojoArchive_resetEntry + + +// !!! FIXME: I'd rather not use a callback here, but I can't see a cleaner +// !!! FIXME: way right now... +boolean MojoInput_toPhysicalFile(MojoInput *in, const char *fname, uint16 perms, + MojoChecksums *checksums, int64 maxbytes, + MojoInput_FileCopyCallback cb, void *data) +{ + boolean retval = false; + uint32 start = MojoPlatform_ticks(); + void *out = NULL; + boolean iofailure = false; + int64 flen = 0; + int64 bw = 0; + MojoChecksumContext sumctx; + + if (in == NULL) + return false; + + if (checksums != NULL) + { + memset(checksums, '\0', sizeof (MojoChecksums)); + MojoChecksum_init(&sumctx); + } // if + + // Wait for a ready(), so length() can be meaningful on network streams. + while ((!in->ready(in)) && (!iofailure)) + { + MojoPlatform_sleep(100); + if (cb != NULL) + { + if (!cb(MojoPlatform_ticks() - start, 0, 0, -1, data)) + iofailure = true; + } // if + } // while + + flen = in->length(in); + if ((maxbytes >= 0) && (flen > maxbytes)) + flen = maxbytes; + + MojoPlatform_unlink(fname); + if (!iofailure) + { + const uint32 flags = MOJOFILE_WRITE|MOJOFILE_CREATE|MOJOFILE_TRUNCATE; + const uint16 mode = MojoPlatform_defaultFilePerms(); + out = MojoPlatform_open(fname, flags, mode); + } // if + + if (out != NULL) + { + while (!iofailure) + { + int64 br = 0; + int64 maxread = sizeof (scratchbuf_128k); + + // see if we need to clamp to eof or maxbytes... + if (flen >= 0) + { + const int64 avail = flen - bw; + if (avail < maxread) + { + maxread = avail; + if (maxread == 0) + break; // nothing left to do, break out. + } // if + } // if + + // If there's a callback, then poll. Otherwise, just block on + // the reads from the MojoInput. + if ((cb != NULL) && (!in->ready(in))) + MojoPlatform_sleep(100); + else + { + br = in->read(in, scratchbuf_128k, (uint32) maxread); + if (br == 0) // we're done! + break; + else if (br < 0) + iofailure = true; + else + { + if (MojoPlatform_write(out, scratchbuf_128k, (uint32) br) != br) + iofailure = true; + else + { + if (checksums != NULL) + MojoChecksum_append(&sumctx, scratchbuf_128k, (uint32) br); + bw += br; + } // else + } // else + } // else + + if (cb != NULL) + { + if (!cb(MojoPlatform_ticks() - start, br, bw, flen, data)) + iofailure = true; + } // if + } // while + + if (MojoPlatform_close(out) != 0) + iofailure = true; + else if (bw != flen) + iofailure = true; + + if (iofailure) + MojoPlatform_unlink(fname); + else + { + MojoPlatform_chmod(fname, perms); + if (checksums != NULL) + MojoChecksum_finish(&sumctx, checksums); + retval = true; + } // else + } // if + + in->close(in); + return retval; +} // MojoInput_toPhysicalFile + + +MojoInput *MojoInput_newFromArchivePath(MojoArchive *ar, const char *fname) +{ + MojoInput *retval = NULL; + if (ar->enumerate(ar)) + { + const MojoArchiveEntry *entinfo; + while ((entinfo = ar->enumNext(ar)) != NULL) + { + if (strcmp(entinfo->filename, fname) == 0) + { + if (entinfo->type == MOJOARCHIVE_ENTRY_FILE) + retval = ar->openCurrentEntry(ar); + break; + } // if + } // while + } // if + + return retval; +} // MojoInput_newFromArchivePath + + + +// MojoInputs from files on the OS filesystem. + +typedef struct +{ + void *handle; + char *path; +} MojoInputFileInstance; + +static boolean MojoInput_file_ready(MojoInput *io) +{ + // !!! FIXME: select()? Does that help with network filesystems? + return true; +} // MojoInput_file_ready + +static int64 MojoInput_file_read(MojoInput *io, void *buf, uint32 bufsize) +{ + MojoInputFileInstance *inst = (MojoInputFileInstance *) io->opaque; + return MojoPlatform_read(inst->handle, buf, bufsize); +} // MojoInput_file_read + +static boolean MojoInput_file_seek(MojoInput *io, uint64 pos) +{ + MojoInputFileInstance *inst = (MojoInputFileInstance *) io->opaque; + return (MojoPlatform_seek(inst->handle, pos, MOJOSEEK_SET) == pos); +} // MojoInput_file_seek + +static int64 MojoInput_file_tell(MojoInput *io) +{ + MojoInputFileInstance *inst = (MojoInputFileInstance *) io->opaque; + return MojoPlatform_tell(inst->handle); +} // MojoInput_file_tell + +static int64 MojoInput_file_length(MojoInput *io) +{ + MojoInputFileInstance *inst = (MojoInputFileInstance *) io->opaque; + return MojoPlatform_flen(inst->handle); +} // MojoInput_file_length + +static MojoInput *MojoInput_file_duplicate(MojoInput *io) +{ + MojoInputFileInstance *inst = (MojoInputFileInstance *) io->opaque; + return MojoInput_newFromFile(inst->path); +} // MojoInput_file_duplicate + +static void MojoInput_file_close(MojoInput *io) +{ + MojoInputFileInstance *inst = (MojoInputFileInstance *) io->opaque; + MojoPlatform_close(inst->handle); + free(inst->path); + free(inst); + free(io); +} // MojoInput_file_close + +MojoInput *MojoInput_newFromFile(const char *path) +{ + MojoInput *io = NULL; + void *f = NULL; + + f = MojoPlatform_open(path, MOJOFILE_READ, 0); + if (f != NULL) + { + MojoInputFileInstance *inst; + inst = (MojoInputFileInstance *) xmalloc(sizeof (MojoInputFileInstance)); + inst->path = xstrdup(path); + inst->handle = f; + + io = (MojoInput *) xmalloc(sizeof (MojoInput)); + io->ready = MojoInput_file_ready; + io->read = MojoInput_file_read; + io->seek = MojoInput_file_seek; + io->tell = MojoInput_file_tell; + io->length = MojoInput_file_length; + io->duplicate = MojoInput_file_duplicate; + io->close = MojoInput_file_close; + io->opaque = inst; + } // if + + return io; +} // MojoInput_newFromFile + + + +// MojoInputs from blocks of memory. + +typedef struct +{ + void *ptr; // original pointer from xmalloc() + uint32 *refcount; // address in xmalloc()'d block for reference count. + const uint8 *data; // base of actual "file" data in xmalloc()'d block. + uint32 len; // size, in bytes, of "file" data. + uint32 pos; // current read position. +} MojoInputMemInstance; + +static boolean MojoInput_memory_ready(MojoInput *io) +{ + return true; // always ready! +} // MojoInput_memory_ready + +static int64 MojoInput_memory_read(MojoInput *io, void *buf, uint32 bufsize) +{ + MojoInputMemInstance *inst = (MojoInputMemInstance *) io->opaque; + const uint32 avail = inst->len - inst->pos; + if (bufsize > avail) + bufsize = avail; + memcpy(buf, inst->data + inst->pos, bufsize); + inst->pos += bufsize; + return bufsize; +} // MojoInput_memory_read + +static boolean MojoInput_memory_seek(MojoInput *io, uint64 pos) +{ + MojoInputMemInstance *inst = (MojoInputMemInstance *) io->opaque; + if (pos > (uint64) inst->len) + return false; + inst->pos = (uint32) pos; + return true; +} // MojoInput_memory_seek + +static int64 MojoInput_memory_tell(MojoInput *io) +{ + MojoInputMemInstance *inst = (MojoInputMemInstance *) io->opaque; + return (int64) inst->pos; +} // MojoInput_memory_tell + +static int64 MojoInput_memory_length(MojoInput *io) +{ + MojoInputMemInstance *inst = (MojoInputMemInstance *) io->opaque; + return (int64) inst->len; +} // MojoInput_memory_length + +static MojoInput *MojoInput_memory_duplicate(MojoInput *io) +{ + MojoInputMemInstance *srcinst = (MojoInputMemInstance *) io->opaque; + MojoInput *retval = NULL; + MojoInputMemInstance *inst = NULL; + + if (srcinst->refcount != NULL) + { + // we don't copy the data for each duplicate; we just bump a reference + // counter. We free the data when all referencers are closed. + (*srcinst->refcount)++; // !!! FIXME: not thread safe! + } // if + + inst = (MojoInputMemInstance*) xmalloc(sizeof (MojoInputMemInstance)); + memcpy(inst, srcinst, sizeof (MojoInputMemInstance)); + inst->pos = 0; + + retval = (MojoInput *) xmalloc(sizeof (MojoInput)); + memcpy(retval, io, sizeof (MojoInput)); + retval->opaque = inst; + + return retval; +} // MojoInput_memory_duplicate + +static void MojoInput_memory_close(MojoInput *io) +{ + MojoInputMemInstance *inst = (MojoInputMemInstance *) io->opaque; + + if (inst->refcount != NULL) // memory we have to free? + { + assert(*inst->refcount > 0); + if (--(*inst->refcount) == 0) // !!! FIXME: not thread safe! + free(inst->ptr); + } // if + + free(inst); + free(io); +} // MojoInput_memory_close + +MojoInput *MojoInput_newFromMemory(const uint8 *ptr, uint32 len, int constant) +{ + MojoInput *io = (MojoInput *) xmalloc(sizeof (MojoInput)); + MojoInputMemInstance *inst = (MojoInputMemInstance*) + xmalloc(sizeof (MojoInputMemInstance)); + + if (constant) + inst->data = ptr; + else + { + inst->ptr = xmalloc(len + sizeof (uint32)); + inst->refcount = (uint32 *) inst->ptr; + inst->data = ((const uint8 *) inst->ptr) + sizeof (uint32); + *inst->refcount = 1; + memcpy((void *) inst->data, ptr, len); + } // else + + inst->len = len; + + io->ready = MojoInput_memory_ready; + io->read = MojoInput_memory_read; + io->seek = MojoInput_memory_seek; + io->tell = MojoInput_memory_tell; + io->length = MojoInput_memory_length; + io->duplicate = MojoInput_memory_duplicate; + io->close = MojoInput_memory_close; + io->opaque = inst; + + return io; +} // MojoInput_newFromMemory + + + + +// MojoArchives from directories on the OS filesystem. + +typedef struct DirStack +{ + void *dir; + char *basepath; + struct DirStack *next; +} DirStack; + +static void pushDirStack(DirStack **_stack, const char *basepath, void *dir) +{ + DirStack *stack = (DirStack *) xmalloc(sizeof (DirStack)); + stack->dir = dir; + stack->basepath = xstrdup(basepath); + stack->next = *_stack; + *_stack = stack; +} // pushDirStack + +static void popDirStack(DirStack **_stack) +{ + DirStack *stack = *_stack; + if (stack != NULL) + { + DirStack *next = stack->next; + if (stack->dir) + MojoPlatform_closedir(stack->dir); + free(stack->basepath); + free(stack); + *_stack = next; + } // if +} // popDirStack + +static void freeDirStack(DirStack **_stack) +{ + while (*_stack) + popDirStack(_stack); +} // freeDirStack + + +typedef struct +{ + DirStack *dirs; + char *base; +} MojoArchiveDirInstance; + +static boolean MojoArchive_dir_enumerate(MojoArchive *ar) +{ + MojoArchiveDirInstance *inst = (MojoArchiveDirInstance *) ar->opaque; + void *dir = NULL; + + freeDirStack(&inst->dirs); + MojoArchive_resetEntry(&ar->prevEnum); + + dir = MojoPlatform_opendir(inst->base); + if (dir != NULL) + pushDirStack(&inst->dirs, inst->base, dir); + + return (dir != NULL); +} // MojoArchive_dir_enumerate + + +static const MojoArchiveEntry *MojoArchive_dir_enumNext(MojoArchive *ar) +{ + uint16 perms = 0644; //(S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); + char *fullpath = NULL; + char *dent = NULL; // "dent" == "directory entry" + MojoArchiveDirInstance *inst = (MojoArchiveDirInstance *) ar->opaque; + const char *basepath; + + MojoArchive_resetEntry(&ar->prevEnum); + + if (inst->dirs == NULL) + return NULL; + + basepath = inst->dirs->basepath; + + // if readdir fails, it's end of dir (!!! FIXME: what about i/o failures?) + dent = MojoPlatform_readdir(inst->dirs->dir); + if (dent == NULL) // end of dir? + { + popDirStack(&inst->dirs); + return MojoArchive_dir_enumNext(ar); // try higher level in tree. + } // if + + // MojoPlatform layer shouldn't return "." or ".." paths. + assert((strcmp(dent, ".") != 0) && (strcmp(dent, "..") != 0)); + + fullpath = (char *) xmalloc(strlen(basepath) + strlen(dent) + 2); + sprintf(fullpath, "%s/%s", basepath, dent); + free(dent); + + ar->prevEnum.filename = xstrdup(fullpath + strlen(inst->base) + 1); + ar->prevEnum.filesize = 0; + ar->prevEnum.type = MOJOARCHIVE_ENTRY_UNKNOWN; + + // We currently force the perms from physical files, since CDs on + // Linux tend to mark every files as executable and read-only. If you + // want to install something with specific permissions, wrap it in a + // tarball, or use Setup.File.permissions, or return a permissions + // string from Setup.File.filter. + //MojoPlatform_perms(fullpath, &perms); + ar->prevEnum.perms = perms; + + if (MojoPlatform_isfile(fullpath)) + { + ar->prevEnum.type = MOJOARCHIVE_ENTRY_FILE; + ar->prevEnum.filesize = MojoPlatform_filesize(fullpath); + } // if + + else if (MojoPlatform_issymlink(fullpath)) + { + ar->prevEnum.type = MOJOARCHIVE_ENTRY_SYMLINK; + ar->prevEnum.linkdest = MojoPlatform_readlink(fullpath); + if (ar->prevEnum.linkdest == NULL) + { + free(fullpath); + return MojoArchive_dir_enumNext(ar); + } // if + } // else if + + else if (MojoPlatform_isdir(fullpath)) + { + void *dir = MojoPlatform_opendir(fullpath); + ar->prevEnum.type = MOJOARCHIVE_ENTRY_DIR; + if (dir == NULL) + { + free(fullpath); + return MojoArchive_dir_enumNext(ar); + } // if + + // push this dir on the stack. Next enum will start there. + pushDirStack(&inst->dirs, fullpath, dir); + } // else if + + else + { + assert(false && "possible file i/o error?"); + } // else + + free(fullpath); + return &ar->prevEnum; +} // MojoArchive_dir_enumNext + + +static MojoInput *MojoArchive_dir_openCurrentEntry(MojoArchive *ar) +{ + MojoInput *retval = NULL; + MojoArchiveDirInstance *inst = (MojoArchiveDirInstance *) ar->opaque; + + if ((inst->dirs != NULL) && (ar->prevEnum.type == MOJOARCHIVE_ENTRY_FILE)) + { + char *fullpath = (char *) xmalloc(strlen(inst->base) + + strlen(ar->prevEnum.filename) + 2); + sprintf(fullpath, "%s/%s", inst->base, ar->prevEnum.filename); + retval = MojoInput_newFromFile(fullpath); + free(fullpath); + } // if + + return retval; +} // MojoArchive_dir_openCurrentEntry + + +static void MojoArchive_dir_close(MojoArchive *ar) +{ + MojoArchiveDirInstance *inst = (MojoArchiveDirInstance *) ar->opaque; + freeDirStack(&inst->dirs); + free(inst->base); + free(inst); + MojoArchive_resetEntry(&ar->prevEnum); + free(ar); +} // MojoArchive_dir_close + + +MojoArchive *MojoArchive_newFromDirectory(const char *dirname) +{ + MojoArchive *ar = NULL; + MojoArchiveDirInstance *inst; + char *real = MojoPlatform_realpath(dirname); + + if (real == NULL) + return NULL; + + if (!MojoPlatform_exists(real, NULL)) + return NULL; + + if (!MojoPlatform_isdir(real)) + return NULL; + + inst = (MojoArchiveDirInstance *) xmalloc(sizeof (MojoArchiveDirInstance)); + inst->base = real; + ar = (MojoArchive *) xmalloc(sizeof (MojoArchive)); + ar->enumerate = MojoArchive_dir_enumerate; + ar->enumNext = MojoArchive_dir_enumNext; + ar->openCurrentEntry = MojoArchive_dir_openCurrentEntry; + ar->close = MojoArchive_dir_close; + ar->offsetOfStart = -1; // doesn't mean anything here. + ar->opaque = inst; + return ar; +} // MojoArchive_newFromDirectory + + + + +MojoArchive *GBaseArchive = NULL; +const char *GBaseArchivePath = NULL; + +MojoArchive *MojoArchive_initBaseArchive(void) +{ + char *basepath = NULL; + const char *cmd = NULL; + MojoInput *io = NULL; + + if (GBaseArchive != NULL) + return GBaseArchive; // already initialized. + + if ((cmd = cmdlinestr("base", "MOJOSETUP_BASE", NULL)) != NULL) + { + char *real = MojoPlatform_realpath(cmd); + if (real != NULL) + { + if (MojoPlatform_isdir(real)) + GBaseArchive = MojoArchive_newFromDirectory(real); + else + { + io = MojoInput_newFromFile(real); + if (io != NULL) + GBaseArchive = MojoArchive_newFromInput(io, real); + } // else + + if (GBaseArchive != NULL) + basepath = real; + else + free(real); + } // if + } // else if + + else + { + basepath = MojoPlatform_appBinaryPath(); + io = MojoInput_newFromFile(basepath); + + if (io != NULL) + GBaseArchive = MojoArchive_newFromInput(io, basepath); + + if (GBaseArchive == NULL) + { + // Just use the same directory as the binary instead. + char *ptr = strrchr(basepath, '/'); + if (ptr != NULL) + *ptr = '\0'; + else + { + free(basepath); // oh well, try cwd. + basepath = MojoPlatform_currentWorkingDir(); + } // else + GBaseArchive = MojoArchive_newFromDirectory(basepath); + + // !!! FIXME: failing this, maybe default.mojosetup? + } // if + } // else + + if (GBaseArchive == NULL) + { + free(basepath); + basepath = NULL; + } // if + GBaseArchivePath = basepath; + + return GBaseArchive; +} // MojoArchive_initBaseArchive + + +void MojoArchive_deinitBaseArchive(void) +{ + if (GBaseArchive != NULL) + { + GBaseArchive->close(GBaseArchive); + GBaseArchive = NULL; + } // if + + free((void *) GBaseArchivePath); + GBaseArchivePath = NULL; +} // MojoArchive_deinitBaseArchive + + +// This stub is here if we didn't compile in libfetch... +#if !SUPPORT_URL_HTTP && !SUPPORT_URL_FTP +MojoInput *MojoInput_newFromURL(const char *url) +{ + logError("No networking support in this build."); + return NULL; +} // MojoInput_newFromURL +#endif + +// end of fileio.c ... + diff --git a/mk/linux/mojosetup/fileio.h b/mk/linux/mojosetup/fileio.h new file mode 100644 index 00000000..32b866c5 --- /dev/null +++ b/mk/linux/mojosetup/fileio.h @@ -0,0 +1,128 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#ifndef _INCL_FILEIO_H_ +#define _INCL_FILEIO_H_ + +#include "universal.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * File i/o may go through multiple layers: the archive attached to the binary, + * then an archive in there that's being read entirely out of memory that's + * being uncompressed to on the fly, or it might be a straight read from a + * regular uncompressed file on physical media. It might be a single file + * compressed with bzip2. As such, we have to have an abstraction over the + * usual channels...basically what we need here is archives-within-archives, + * done transparently and with arbitrary depth, although usually not more + * than one deep. This also works as a general transport layer, so the + * abstraction could be extended to network connections and such, too. + */ + +// Abstract input interface. Files, memory, archive entries, etc. +typedef struct MojoInput MojoInput; +struct MojoInput +{ + // public + boolean (*ready)(MojoInput *io); + int64 (*read)(MojoInput *io, void *buf, uint32 bufsize); + boolean (*seek)(MojoInput *io, uint64 pos); + int64 (*tell)(MojoInput *io); + int64 (*length)(MojoInput *io); + MojoInput* (*duplicate)(MojoInput *io); + void (*close)(MojoInput *io); + + // private + void *opaque; +}; + +// This copies the memory, so you may free (ptr) after this function returns. +MojoInput *MojoInput_newFromMemory(const uint8 *ptr, uint32 len, int constant); +MojoInput *MojoInput_newFromFile(const char *fname); + + +typedef enum +{ + MOJOARCHIVE_ENTRY_UNKNOWN = 0, + MOJOARCHIVE_ENTRY_FILE, + MOJOARCHIVE_ENTRY_DIR, + MOJOARCHIVE_ENTRY_SYMLINK, +} MojoArchiveEntryType; + +// Abstract archive interface. Archives, directories, etc. +typedef struct MojoArchiveEntry +{ + char *filename; + char *linkdest; + MojoArchiveEntryType type; + int64 filesize; + uint16 perms; +} MojoArchiveEntry; + +void MojoArchive_resetEntry(MojoArchiveEntry *info); + + +typedef struct MojoArchive MojoArchive; +struct MojoArchive +{ + // public + boolean (*enumerate)(MojoArchive *ar); + const MojoArchiveEntry* (*enumNext)(MojoArchive *ar); + MojoInput* (*openCurrentEntry)(MojoArchive *ar); + void (*close)(MojoArchive *ar); + + // private + MojoInput *io; + MojoArchiveEntry prevEnum; + int64 offsetOfStart; // byte offset in MojoInput where archive starts. + void *opaque; +}; + +MojoArchive *MojoArchive_newFromDirectory(const char *dirname); +MojoArchive *MojoArchive_newFromInput(MojoInput *io, const char *origfname); + +// This will reset enumeration in the archive, don't use it while iterating! +// Also, this can be very slow depending on the archive in question, so +// try to limit your random access filename lookups to known-fast quantities +// (like directories on the physical filesystem or a zipfile...tarballs and +// zipfiles-in-zipfiles will bog down here, for example). +MojoInput *MojoInput_newFromArchivePath(MojoArchive *ar, const char *fname); + +// Wrap (origio) in a new MojoInput that decompresses a compressed stream +// on the fly. Returns NULL on error or if (origio) isn't a supported +// compressed format. The returned MojoInput wraps the original input; +// closing the returned MojoInput will close (origio), too, and you should +// consider origio lost. If this function returns non-NULL, you should not, +// under any circumstances, interact directly with origio again, as the +// new MojoInput now owns it. +MojoInput *MojoInput_newCompressedStream(MojoInput *origio); + +extern MojoArchive *GBaseArchive; +extern const char *GBaseArchivePath; +MojoArchive *MojoArchive_initBaseArchive(void); +void MojoArchive_deinitBaseArchive(void); + +typedef boolean (*MojoInput_FileCopyCallback)(uint32 ticks, int64 justwrote, + int64 bw, int64 total, void *data); +boolean MojoInput_toPhysicalFile(MojoInput *in, const char *fname, uint16 perms, + MojoChecksums *checksums, int64 maxbytes, + MojoInput_FileCopyCallback cb, void *data); + +MojoInput *MojoInput_newFromURL(const char *url); + +#ifdef __cplusplus +} +#endif + +#endif + +// end of fileio.h ... + diff --git a/mk/linux/mojosetup/gui.c b/mk/linux/mojosetup/gui.c new file mode 100644 index 00000000..f4d1b959 --- /dev/null +++ b/mk/linux/mojosetup/gui.c @@ -0,0 +1,220 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#include "gui.h" +#include "platform.h" +#include "fileio.h" + +typedef struct S_PLUGINLIST +{ + void *lib; + const MojoGui *gui; + MojoGuiPluginPriority priority; + struct S_PLUGINLIST *next; +} PluginList; + +const MojoGui *GGui = NULL; +static PluginList *pluginDetails = NULL; + +static const MojoGuiEntryPoint staticGui[] = +{ +#if GUI_STATIC_LINK_STDIO + MojoGuiPlugin_stdio, +#endif +#if GUI_STATIC_LINK_COCOA + MojoGuiPlugin_cocoa, +#endif +#if GUI_STATIC_LINK_GTKPLUS2 + MojoGuiPlugin_gtkplus2, +#endif +#if GUI_STATIC_LINK_WWW + MojoGuiPlugin_www, +#endif +#if GUI_STATIC_LINK_NCURSES + MojoGuiPlugin_ncurses, +#endif + NULL +}; + + +static MojoGuiPluginPriority calcGuiPriority(const MojoGui *gui) +{ + MojoGuiPluginPriority retval; + + retval = gui->priority(MojoPlatform_istty()); + + // If the plugin isn't saying "don't try me at all" then see if the + // user explicitly wants this one. + if (retval != MOJOGUI_PRIORITY_NEVER_TRY) + { + static const char *envr = NULL; + if (envr == NULL) + envr = cmdlinestr("ui", "MOJOSETUP_UI", NULL); + if ((envr != NULL) && (strcasecmp(envr, gui->name()) == 0)) + retval = MOJOGUI_PRIORITY_USER_REQUESTED; + } // if + + return retval; +} // calcGuiPriority + + +static PluginList *initGuiPluginsByPriority(PluginList *plugins) +{ + MojoGuiPluginPriority p; + for (p = MOJOGUI_PRIORITY_USER_REQUESTED; p < MOJOGUI_PRIORITY_TOTAL; p++) + { + PluginList *i; + for (i = plugins->next; i != NULL; i = i->next) + { + if ( (i->priority == p) && (i->gui->init()) ) + { + logInfo("Selected '%0' UI.", i->gui->name()); + return i; + } // if + } // for + } // for + + return NULL; +} // initGuiPluginsByPriority + + +static void deleteGuiPlugin(PluginList *plugin) +{ + if (plugin != NULL) + { + if (plugin->gui) + plugin->gui->deinit(); + if (plugin->lib) + MojoPlatform_dlclose(plugin->lib); + free(plugin); + } // if +} // deleteGuiPlugin + + +static boolean tryGuiPlugin(PluginList *plugins, MojoGuiEntryPoint entry) +{ + boolean retval = false; + const MojoGui *gui = entry(MOJOGUI_INTERFACE_REVISION, &GEntryPoints); + if (gui != NULL) + { + PluginList *plug = xmalloc(sizeof (PluginList)); + plug->lib = NULL; + plug->gui = gui; + plug->priority = calcGuiPriority(gui); + plug->next = plugins->next; + plugins->next = plug; + retval = true; + } // if + + return retval; +} // tryGuiPlugin + + +static void loadStaticGuiPlugins(PluginList *plugins) +{ + int i; + for (i = 0; staticGui[i] != NULL; i++) + tryGuiPlugin(plugins, staticGui[i]); +} // loadStaticGuiPlugins + + +static boolean loadDynamicGuiPlugin(PluginList *plugins, MojoArchive *ar) +{ + boolean rc = false; + void *lib = NULL; + MojoInput *io = ar->openCurrentEntry(ar); + if (io != NULL) + { + const uint32 imglen = (uint32) io->length(io); + uint8 *img = (uint8 *) xmalloc(imglen); + const uint32 br = (uint32) io->read(io, img, imglen); + io->close(io); + if (br == imglen) + lib = MojoPlatform_dlopen(img, imglen); + free(img); + } // if + + if (lib != NULL) + { + void *addr = MojoPlatform_dlsym(lib, MOJOGUI_ENTRY_POINT_STR); + MojoGuiEntryPoint entry = (MojoGuiEntryPoint) addr; + if (entry != NULL) + { + if ((rc = tryGuiPlugin(plugins, entry)) == false) + MojoPlatform_dlclose(lib); + } // if + } // if + + return rc; +} // loadDynamicGuiPlugin + + +static void loadDynamicGuiPlugins(PluginList *plugins) +{ + if (GBaseArchive->enumerate(GBaseArchive)) + { + const MojoArchiveEntry *entinfo; + while ((entinfo = GBaseArchive->enumNext(GBaseArchive)) != NULL) + { + if (entinfo->type != MOJOARCHIVE_ENTRY_FILE) + continue; + + if (strncmp(entinfo->filename, "guis/", 5) != 0) + continue; + + loadDynamicGuiPlugin(plugins, GBaseArchive); + } // while + } // if +} // loadDynamicGuiPlugins + + +const MojoGui *MojoGui_initGuiPlugin(void) +{ + PluginList plugins; + PluginList *i = NULL; + + if (pluginDetails != NULL) + return pluginDetails->gui; + + memset(&plugins, '\0', sizeof (plugins)); + assert(GGui == NULL); + + loadDynamicGuiPlugins(&plugins); + loadStaticGuiPlugins(&plugins); + + pluginDetails = initGuiPluginsByPriority(&plugins); + + // cleanout unused plugins... + i = plugins.next; + while (i != NULL) + { + PluginList *next = i->next; + if (i != pluginDetails) + deleteGuiPlugin(i); + i = next; + } // while + + if (pluginDetails != NULL) + { + GGui = pluginDetails->gui; + pluginDetails->next = NULL; + } // if + + return GGui; +} // MojoGui_findGuiPlugin + + +void MojoGui_deinitGuiPlugin(void) +{ + GGui = NULL; + deleteGuiPlugin(pluginDetails); + pluginDetails = NULL; +} // MojoGui_deinitGuiPlugin + +// end of gui.c ... + diff --git a/mk/linux/mojosetup/gui.h b/mk/linux/mojosetup/gui.h new file mode 100644 index 00000000..7b80dda8 --- /dev/null +++ b/mk/linux/mojosetup/gui.h @@ -0,0 +1,302 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#ifndef _INCL_GUI_H_ +#define _INCL_GUI_H_ + +#include "universal.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum +{ + MOJOGUI_PRIORITY_NEVER_TRY = 0, + MOJOGUI_PRIORITY_USER_REQUESTED, + MOJOGUI_PRIORITY_TRY_FIRST, + MOJOGUI_PRIORITY_TRY_NORMAL, + MOJOGUI_PRIORITY_TRY_LAST, + MOJOGUI_PRIORITY_TRY_ABSOLUTELY_LAST, + MOJOGUI_PRIORITY_TOTAL +} MojoGuiPluginPriority; + + +typedef enum +{ + MOJOGUI_NO, + MOJOGUI_YES, + MOJOGUI_ALWAYS, + MOJOGUI_NEVER +} MojoGuiYNAN; + + + +/* + * Abstract GUI interfaces. + */ + +typedef struct MojoGuiSetupOptions MojoGuiSetupOptions; +struct MojoGuiSetupOptions +{ + const char *description; + const char *tooltip; + boolean value; + boolean is_group_parent; + uint64 size; + int opaque; // GUI drivers shouldn't touch this. + void *guiopaque; // For GUI drivers. App won't touch or free this. + MojoGuiSetupOptions *next_sibling; + MojoGuiSetupOptions *child; +}; + + +typedef enum +{ + MOJOGUI_SPLASH_NONE, + MOJOGUI_SPLASH_TOP, + MOJOGUI_SPLASH_LEFT, + MOJOGUI_SPLASH_RIGHT, + MOJOGUI_SPLASH_BOTTOM, + MOJOGUI_SPLASH_BACKGROUND, +} MojoGuiSplashPos; + +typedef struct MojoGuiSplash MojoGuiSplash; +struct MojoGuiSplash +{ + const uint8 *rgba; // framebuffer. + uint32 w; // width in pixels. + uint32 h; // height in pixels. + MojoGuiSplashPos position; // where to put the splash. +}; + + +#define MOJOGUI_ENTRY_POINT MojoSetup_Gui_GetInterface +#define MOJOGUI_ENTRY_POINT_STR DEFINE_TO_STR(MOJOGUI_ENTRY_POINT) + +// Increment this value when MojoGui's structure changes. +#define MOJOGUI_INTERFACE_REVISION 6 + +typedef struct MojoGui MojoGui; +struct MojoGui +{ + uint8 (*priority)(boolean istty); + const char* (*name)(void); + boolean (*init)(void); + void (*deinit)(void); + void (*msgbox)(const char *title, const char *text); + boolean (*promptyn)(const char *title, const char *text, boolean def); + MojoGuiYNAN (*promptynan)(const char *title, const char *text, boolean def); + boolean (*start)(const char *title, const MojoGuiSplash *splash); + void (*stop)(void); + int (*readme)(const char *name, const uint8 *data, size_t len, + boolean can_back, boolean can_fwd); + int (*options)(MojoGuiSetupOptions *opts, + boolean can_back, boolean can_fwd); + char * (*destination)(const char **recommendations, int recnum, + int *command, boolean can_back, boolean can_fwd); + int (*productkey)(const char *desc, const char *fmt, char *buf, + const int buflen, boolean can_back, boolean can_fwd); + boolean (*insertmedia)(const char *medianame); + void (*progressitem)(void); + boolean (*progress)(const char *type, const char *component, + int percent, const char *item, boolean can_cancel); + void (*final)(const char *msg); +}; + +typedef const MojoGui* (*MojoGuiEntryPoint)(int revision, + const MojoSetupEntryPoints *e); + +#if !BUILDING_EXTERNAL_PLUGIN +extern const MojoGui *GGui; +const MojoGui *MojoGui_initGuiPlugin(void); +void MojoGui_deinitGuiPlugin(void); +#else + +__EXPORT__ const MojoGui *MOJOGUI_ENTRY_POINT(int revision, + const MojoSetupEntryPoints *e); + +/* + * We do this as a macro so we only have to update one place, and it + * enforces some details in the plugins. Without effort, plugins don't + * support anything but the latest version of the interface. + */ +#define MOJOGUI_PLUGIN(module) \ +static const MojoSetupEntryPoints *entry = NULL; \ +static uint8 MojoGui_##module##_priority(boolean istty); \ +static const char* MojoGui_##module##_name(void) { return #module; } \ +static boolean MojoGui_##module##_init(void); \ +static void MojoGui_##module##_deinit(void); \ +static void MojoGui_##module##_msgbox(const char *title, const char *text); \ +static boolean MojoGui_##module##_promptyn(const char *t1, const char *t2, \ + boolean d); \ +static MojoGuiYNAN MojoGui_##module##_promptynan(const char *t1, \ + const char *t2, boolean d); \ +static boolean MojoGui_##module##_start(const char *t, \ + const MojoGuiSplash *splash); \ +static void MojoGui_##module##_stop(void); \ +static int MojoGui_##module##_readme(const char *name, const uint8 *data, \ + size_t len, boolean can_back, \ + boolean can_fwd); \ +static int MojoGui_##module##_options(MojoGuiSetupOptions *opts, \ + boolean can_back, boolean can_fwd); \ +static char *MojoGui_##module##_destination(const char **r, int recnum, \ + int *command, boolean can_back, boolean can_fwd); \ +static int MojoGui_##module##_productkey(const char *desc, const char *fmt, \ + char *buf, const int buflen, boolean can_back, \ + boolean can_fwd); \ +static boolean MojoGui_##module##_insertmedia(const char *medianame); \ +static void MojoGui_##module##_progressitem(void); \ +static boolean MojoGui_##module##_progress(const char *typ, const char *comp, \ + int percent, const char *item, \ + boolean can_cancel); \ +static void MojoGui_##module##_final(const char *msg); \ +const MojoGui *MojoGuiPlugin_##module(int rev, const MojoSetupEntryPoints *e) \ +{ \ + if (rev == MOJOGUI_INTERFACE_REVISION) { \ + static const MojoGui retval = { \ + MojoGui_##module##_priority, \ + MojoGui_##module##_name, \ + MojoGui_##module##_init, \ + MojoGui_##module##_deinit, \ + MojoGui_##module##_msgbox, \ + MojoGui_##module##_promptyn, \ + MojoGui_##module##_promptynan, \ + MojoGui_##module##_start, \ + MojoGui_##module##_stop, \ + MojoGui_##module##_readme, \ + MojoGui_##module##_options, \ + MojoGui_##module##_destination, \ + MojoGui_##module##_productkey, \ + MojoGui_##module##_insertmedia, \ + MojoGui_##module##_progressitem, \ + MojoGui_##module##_progress, \ + MojoGui_##module##_final, \ + }; \ + entry = e; \ + return &retval; \ + } \ + return NULL; \ +} \ + +#define CREATE_MOJOGUI_ENTRY_POINT(module) \ +const MojoGui *MOJOGUI_ENTRY_POINT(int rev, const MojoSetupEntryPoints *e) \ +{ \ + return MojoGuiPlugin_##module(rev, e); \ +} \ + + +// Redefine things that need to go through the plugin entry point interface, +// so plugins calling into the MojoSetup core can use the same code as the +// rest of the app. + +#ifdef _ +#undef _ +#endif +#define _(x) entry->translate(x) + +#ifdef xmalloc +#undef xmalloc +#endif +#define xmalloc(x) entry->xmalloc(x) + +#ifdef xrealloc +#undef xrealloc +#endif +#define xrealloc(x,y) entry->xrealloc(x,y) + +#ifdef xstrdup +#undef xstrdup +#endif +#define xstrdup(x) entry->xstrdup(x) + +#ifdef xstrncpy +#undef xstrncpy +#endif +#define xstrncpy(x,y,z) entry->xstrcpy(x,y,z) + +#ifdef logWarning +#undef logWarning +#endif +#define logWarning entry->logWarning + +#ifdef logError +#undef logError +#endif +#define logError entry->logError + +#ifdef logInfo +#undef logInfo +#endif +#define logInfo entry->logInfo + +#ifdef logDebug +#undef logDebug +#endif +#define logDebug entry->logDebug + +#ifdef format +#undef format +#endif +#define format entry->format + +#ifdef numstr +#undef numstr +#endif +#define numstr(x) entry->numstr(x) + +#ifdef ticks +#undef ticks +#endif +#define ticks() entry->ticks() + +#ifdef utf8codepoint +#undef utf8codepoint +#endif +#define utf8codepoint(x) entry->utf8codepoint(x) + +#ifdef utf8len +#undef utf8len +#endif +#define utf8len(x) entry->utf8len(x) + +#ifdef splitText +#undef splitText +#endif +#define splitText(w,x,y,z) entry->splitText(w,x,y,z) + +#ifdef isValidProductKey +#undef isValidProductKey +#endif +#define isValidProductKey(x,y) entry->isValidProductKey(x,y) + +#endif + + +/* + * make some decisions about which GUI plugins to build... + * We list them all here, but some are built, some aren't. Some are DLLs, + * some aren't... + */ + +const MojoGui *MojoGuiPlugin_stdio(int rev, const MojoSetupEntryPoints *e); +const MojoGui *MojoGuiPlugin_ncurses(int rev, const MojoSetupEntryPoints *e); +const MojoGui *MojoGuiPlugin_gtkplus2(int rev, const MojoSetupEntryPoints *e); +const MojoGui *MojoGuiPlugin_www(int rev, const MojoSetupEntryPoints *e); +const MojoGui *MojoGuiPlugin_cocoa(int rev, const MojoSetupEntryPoints *e); + +// !!! FIXME: Qt? KDE? Gnome? Console? wxWidgets? + +#ifdef __cplusplus +} +#endif + +#endif + +// end of gui.h ... + diff --git a/mk/linux/mojosetup/gui_cocoa.m b/mk/linux/mojosetup/gui_cocoa.m new file mode 100644 index 00000000..05d0e685 --- /dev/null +++ b/mk/linux/mojosetup/gui_cocoa.m @@ -0,0 +1,800 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#if !SUPPORT_GUI_COCOA +#error Something is wrong in the build system. +#endif + +#import +#undef true +#undef false + +#define BUILDING_EXTERNAL_PLUGIN 1 +#include "gui.h" + +MOJOGUI_PLUGIN(cocoa) + +#if !GUI_STATIC_LINK_COCOA +CREATE_MOJOGUI_ENTRY_POINT(cocoa) +#endif + +typedef enum +{ + CLICK_BACK=-1, + CLICK_CANCEL, + CLICK_NEXT, + CLICK_NONE +} ClickValue; + +// This nasty hack is because we appear to need to be under +// -[NSApp run] when calling things like NSRunAlertPanel(). +// So we push a custom event, call -[NSApp run], catch it, do +// the panel, then call -[NSApp stop]. Yuck. +typedef enum +{ + CUSTOMEVENT_BASEVALUE=3234, + CUSTOMEVENT_RUNQUEUE, + CUSTOMEVENT_MSGBOX, + CUSTOMEVENT_PROMPTYN, + CUSTOMEVENT_PROMPTYNAN, + CUSTOMEVENT_INSERTMEDIA, +} CustomEvent; + + +static NSAutoreleasePool *GAutoreleasePool = nil; + +@interface MojoSetupController : NSView +{ + IBOutlet NSButton *BackButton; + IBOutlet NSButton *CancelButton; + IBOutlet NSComboBox *DestinationCombo; + IBOutlet NSTextField *FinalText; + IBOutlet NSWindow *MainWindow; + IBOutlet NSButton *NextButton; + IBOutlet NSProgressIndicator *ProgressBar; + IBOutlet NSTextField *ProgressComponentLabel; + IBOutlet NSTextField *ProgressItemLabel; + IBOutlet NSTextView *ReadmeText; + IBOutlet NSTabView *TabView; + IBOutlet NSTextField *TitleLabel; + IBOutlet NSMenuItem *QuitMenuItem; + IBOutlet NSMenuItem *AboutMenuItem; + IBOutlet NSMenuItem *HideMenuItem; + IBOutlet NSMenuItem *WindowMenuItem; + IBOutlet NSMenuItem *HideOthersMenuItem; + IBOutlet NSMenuItem *ShowAllMenuItem; + IBOutlet NSMenuItem *ServicesMenuItem; + IBOutlet NSMenuItem *MinimizeMenuItem; + IBOutlet NSMenuItem *ZoomMenuItem; + IBOutlet NSMenuItem *BringAllToFrontMenuItem; + IBOutlet NSView *OptionsView; + ClickValue clickValue; + boolean canForward; + boolean needToBreakEventLoop; + boolean finalPage; + MojoGuiYNAN answerYNAN; + MojoGuiSetupOptions *mojoOpts; +} +- (void)awakeFromNib; +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification; +- (void)prepareWidgets:(const char*)winTitle; +- (void)unprepareWidgets; +- (void)fireCustomEvent:(CustomEvent)eventType data1:(NSInteger)data1 data2:(NSInteger)data2 atStart:(BOOL)atStart; +- (void)doCustomEvent:(NSEvent *)event; +- (void)doMsgBox:(const char *)title text:(const char *)text; +- (void)doPromptYN:(const char *)title text:(const char *)text; +- (void)doPromptYNAN:(const char *)title text:(const char *)text; +- (void)doInsertMedia:(const char *)medianame; +- (MojoGuiYNAN)getAnswerYNAN; +- (IBAction)backClicked:(NSButton *)sender; +- (IBAction)cancelClicked:(NSButton *)sender; +- (IBAction)nextClicked:(NSButton *)sender; +- (IBAction)browseClicked:(NSButton *)sender; +- (IBAction)menuQuit:(NSMenuItem *)sender; +- (int)doPage:(NSString *)pageId title:(const char *)_title canBack:(boolean)canBack canFwd:(boolean)canFwd canCancel:(boolean)canCancel canFwdAtStart:(boolean)canFwdAtStart shouldBlock:(BOOL)shouldBlock; +- (int)doReadme:(const char *)title text:(NSString *)text canBack:(boolean)canBack canFwd:(boolean)canFwd; +- (void)setOptionTreeSensitivity:(MojoGuiSetupOptions *)opts enabled:(boolean)val; +- (void)optionToggled:(id)toggle; +- (NSView *)newOptionLevel:(NSView *)box; +- (void)buildOptions:(MojoGuiSetupOptions *)opts view:(NSView *)box sensitive:(boolean)sensitive; +- (int)doOptions:(MojoGuiSetupOptions *)opts canBack:(boolean)canBack canFwd:(boolean)canFwd; +- (char *)doDestination:(const char **)recommends recnum:(int)recnum command:(int *)command canBack:(boolean)canBack canFwd:(boolean)canFwd; +- (int)doProductKey:(const char *)desc fmt:(const char *)fmt buf:(char *)buf buflen:(const int)buflen canBack:(boolean)canBack canFwd:(boolean)canFwd; +- (int)doProgress:(const char *)type component:(const char *)component percent:(int)percent item:(const char *)item canCancel:(boolean)canCancel; +- (void)doFinal:(const char *)msg; +@end // interface MojoSetupController + +@implementation MojoSetupController + - (void)awakeFromNib + { + clickValue = CLICK_NONE; + canForward = false; + answerYNAN = MOJOGUI_NO; + needToBreakEventLoop = false; + finalPage = false; + mojoOpts = nil; + } // awakeFromNib + + - (void)applicationDidFinishLaunching:(NSNotification *)aNotification + { + printf("didfinishlaunching\n"); + [NSApp stop:self]; // break out of NSApp::run() + } // applicationDidFinishLaunching + + - (void)prepareWidgets:(const char*)winTitle + { + #if 1 + [BackButton setTitle:[NSString stringWithUTF8String:_("Back")]]; + [NextButton setTitle:[NSString stringWithUTF8String:_("Next")]]; + [CancelButton setTitle:[NSString stringWithUTF8String:_("Cancel")]]; + #else + // !!! FIXME: there's probably a better way to do this. + // Set the correct localization for the buttons, then resize them so + // the new text fits perfectly. After that, we need to reposition + // them so they don't look scattered. + NSRect frameBack = [BackButton frame]; + NSRect frameNext = [NextButton frame]; + NSRect frameCancel = [CancelButton frame]; + const float startX = frameCancel.origin.x + frameCancel.size.width; + const float spacing = (frameBack.origin.x + frameBack.size.width) - frameNext.origin.x; + [BackButton setTitle:[NSString stringWithUTF8String:_("Back")]]; + [NextButton setTitle:[NSString stringWithUTF8String:_("Next")]]; + [CancelButton setTitle:[NSString stringWithUTF8String:_("Cancel")]]; + [BackButton sizeToFit]; + [NextButton sizeToFit]; + [CancelButton sizeToFit]; + frameBack = [BackButton frame]; + frameNext = [NextButton frame]; + frameCancel = [CancelButton frame]; + frameCancel.origin.x = startX - frameCancel.size.width; + frameNext.origin.x = (frameCancel.origin.x - frameNext.size.width) - spacing; + frameBack.origin.x = (frameNext.origin.x - frameBack.size.width) - spacing; + [CancelButton setFrame:frameCancel]; + [CancelButton setNeedsDisplay:YES]; + [NextButton setFrame:frameNext]; + [NextButton setNeedsDisplay:YES]; + [BackButton setFrame:frameBack]; + [BackButton setNeedsDisplay:YES]; + #endif + + [ProgressBar setUsesThreadedAnimation:YES]; // we don't pump fast enough. + [ProgressBar startAnimation:self]; + + [WindowMenuItem setTitle:[NSString stringWithUTF8String:_("Window")]]; + [HideOthersMenuItem setTitle:[NSString stringWithUTF8String:_("Hide Others")]]; + [ShowAllMenuItem setTitle:[NSString stringWithUTF8String:_("Show All")]]; + [ServicesMenuItem setTitle:[NSString stringWithUTF8String:_("Services")]]; + [MinimizeMenuItem setTitle:[NSString stringWithUTF8String:_("Minimize")]]; + [ZoomMenuItem setTitle:[NSString stringWithUTF8String:_("Zoom")]]; + [BringAllToFrontMenuItem setTitle:[NSString stringWithUTF8String:_("Bring All to Front")]]; + + NSString *appName; + appName = (NSString *) [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"]; + if (appName == nil) + appName = [[NSProcessInfo processInfo] processName]; + + const char *utf8AppName = [appName UTF8String]; + char *text; + + text = format(_("About %0"), utf8AppName); + [AboutMenuItem setTitle:[NSString stringWithUTF8String:text]]; + free(text); + + text = format(_("Hide %0"), utf8AppName); + [HideMenuItem setTitle:[NSString stringWithUTF8String:text]]; + free(text); + + text = format(_("Quit %0"), utf8AppName); + [QuitMenuItem setTitle:[NSString stringWithUTF8String:text]]; + free(text); + + [MainWindow setTitle:[NSString stringWithUTF8String:winTitle]]; + [MainWindow center]; + [MainWindow makeKeyAndOrderFront:self]; + } // prepareWidgets + + - (void)unprepareWidgets + { + [MainWindow orderOut:self]; + } // unprepareWidgets + + - (void)fireCustomEvent:(CustomEvent)eventType data1:(NSInteger)data1 data2:(NSInteger)data2 atStart:(BOOL)atStart + { + NSEvent *event = [NSEvent otherEventWithType:NSApplicationDefined location:NSZeroPoint modifierFlags:0 timestamp:0 windowNumber:0 context:nil subtype:(short)eventType data1:data1 data2:data2]; + [NSApp postEvent:event atStart:atStart]; + [NSApp run]; // event handler _must_ call -[NSApp stop], or you block here forever. + } // fireCustomEvent + + - (void)doCustomEvent:(NSEvent*)event + { + printf("custom event!\n"); + switch ((CustomEvent) [event subtype]) + { + case CUSTOMEVENT_RUNQUEUE: + if ([NSApp modalWindow] != nil) + { + // If we're in a modal thing, so don't break the event loop. + // Just make a note to break it later. + needToBreakEventLoop = true; + return; + } // if + break; // we just need the -[NSApp stop] call. + case CUSTOMEVENT_MSGBOX: + [self doMsgBox:(const char *)[event data1] text:(const char *)[event data2]]; + break; + case CUSTOMEVENT_PROMPTYN: + [self doPromptYN:(const char *)[event data1] text:(const char *)[event data2]]; + break; + case CUSTOMEVENT_PROMPTYNAN: + [self doPromptYNAN:(const char *)[event data1] text:(const char *)[event data2]]; + break; + case CUSTOMEVENT_INSERTMEDIA: + [self doInsertMedia:(const char *)[event data1]]; + break; + default: + return; // let it go without breaking the event loop. + } // switch + + [NSApp stop:self]; // break the event loop. + } // doCustomEvent + + - (void)doMsgBox:(const char *)title text:(const char *)text + { + NSString *titlestr = [NSString stringWithUTF8String:title]; + NSString *textstr = [NSString stringWithUTF8String:text]; + NSString *okstr = [NSString stringWithUTF8String:_("OK")]; + NSRunInformationalAlertPanel(titlestr, textstr, okstr, nil, nil); + if (needToBreakEventLoop) + { + needToBreakEventLoop = false; + [self fireCustomEvent:CUSTOMEVENT_RUNQUEUE data1:0 data2:0 atStart:NO]; + } // if + } // doMsgBox + + - (void)doPromptYN:(const char *)title text:(const char *)text + { + NSString *titlestr = [NSString stringWithUTF8String:title]; + NSString *textstr = [NSString stringWithUTF8String:text]; + NSString *yesstr = [NSString stringWithUTF8String:_("Yes")]; + NSString *nostr = [NSString stringWithUTF8String:_("No")]; + const NSInteger rc = NSRunAlertPanel(titlestr, textstr, yesstr, nostr, nil); + answerYNAN = ((rc == NSAlertDefaultReturn) ? MOJOGUI_YES : MOJOGUI_NO); + if (needToBreakEventLoop) + { + needToBreakEventLoop = false; + [self fireCustomEvent:CUSTOMEVENT_RUNQUEUE data1:0 data2:0 atStart:NO]; + } // if + } // doPromptYN + + - (void)doPromptYNAN:(const char *)title text:(const char *)text + { + // !!! FIXME + [self doPromptYN:title text:text]; + } // doPromptYN + + - (void)doInsertMedia:(const char *)medianame + { + NSString *title = [NSString stringWithUTF8String:_("Media change")]; + char *fmt = xstrdup(_("Please insert '%0'")); + char *_text = format(fmt, medianame); + NSString *text = [NSString stringWithUTF8String:_text]; + free(_text); + free(fmt); + NSString *okstr = [NSString stringWithUTF8String:_("OK")]; + NSString *cancelstr = [NSString stringWithUTF8String:_("Cancel")]; + const NSInteger rc = NSRunAlertPanel(title, text, okstr, cancelstr, nil); + answerYNAN = ((rc == NSAlertDefaultReturn) ? MOJOGUI_YES : MOJOGUI_NO); + if (needToBreakEventLoop) + { + needToBreakEventLoop = false; + [self fireCustomEvent:CUSTOMEVENT_RUNQUEUE data1:0 data2:0 atStart:NO]; + } // if + } // doInsertMedia + + - (MojoGuiYNAN)getAnswerYNAN + { + return answerYNAN; + } // getAnswerYNAN + + - (IBAction)backClicked:(NSButton *)sender + { + clickValue = CLICK_BACK; + [NSApp stop:self]; + } // backClicked + + - (IBAction)cancelClicked:(NSButton *)sender + { + char *title = xstrdup(_("Cancel installation")); + char *text = xstrdup(_("Are you sure you want to cancel installation?")); + [self doPromptYN:title text:text]; + free(title); + free(text); + if (answerYNAN == MOJOGUI_YES) + { + clickValue = CLICK_CANCEL; + [NSApp stop:self]; + } // if + } // cancelClicked + + - (IBAction)nextClicked:(NSButton *)sender + { + clickValue = CLICK_NEXT; + [NSApp stop:self]; + } // nextClicked + + - (IBAction)browseClicked:(NSButton *)sender + { + NSOpenPanel *panel = [NSOpenPanel openPanel]; + [panel setTitle:[NSString stringWithUTF8String:_("Destination")]]; + [panel setAllowsMultipleSelection:NO]; + [panel setCanCreateDirectories:YES]; + [panel setCanChooseDirectories:YES]; + [panel setCanChooseFiles:NO]; + if ([panel runModal] == NSOKButton) + [DestinationCombo setStringValue:[panel filename]]; + } // browseClicked + + - (IBAction)menuQuit:(NSMenuItem *)sender + { + if (finalPage) // make this work like you clicked "finished". + [self nextClicked:nil]; + else if ([CancelButton isEnabled]) // make this work like you clicked "cancel". + [self cancelClicked:nil]; + } // menuQuit + + - (int)doPage:(NSString *)pageId title:(const char *)_title canBack:(boolean)canBack canFwd:(boolean)canFwd canCancel:(boolean)canCancel canFwdAtStart:(boolean)canFwdAtStart shouldBlock:(BOOL)shouldBlock + { + [TitleLabel setStringValue:[NSString stringWithUTF8String:_title]]; + clickValue = CLICK_NONE; + canForward = canFwd; + [BackButton setEnabled:canBack ? YES : NO]; + [NextButton setEnabled:canFwdAtStart ? YES : NO]; + [CancelButton setEnabled:canCancel ? YES : NO]; + [TabView selectTabViewItemWithIdentifier:pageId]; + if (shouldBlock == NO) + [self fireCustomEvent:CUSTOMEVENT_RUNQUEUE data1:0 data2:0 atStart:NO]; + else + { + [NSApp run]; + assert(clickValue < CLICK_NONE); + } // else + return (int) clickValue; + } // doPage + + - (int)doReadme:(const char *)title text:(NSString *)text canBack:(boolean)canBack canFwd:(boolean)canFwd + { + NSRange range = {0, 1}; // reset scrolling to start of text. + [ReadmeText setString:text]; + [ReadmeText scrollRangeToVisible:range]; + return [self doPage:@"Readme" title:title canBack:canBack canFwd:canFwd canCancel:true canFwdAtStart:canFwd shouldBlock:YES]; + } // doReadme + + - (void)setOptionTreeSensitivity:(MojoGuiSetupOptions *)opts enabled:(boolean)val + { + if (opts != nil) + { + [((id) opts->guiopaque) setEnabled:(val ? YES : NO)]; + [self setOptionTreeSensitivity:opts->next_sibling enabled:val]; + [self setOptionTreeSensitivity:opts->child enabled:(val && opts->value)]; + } // if + } // setOptionTreeSensitivity + + - (MojoGuiSetupOptions *)findMojoOption:(id)obj opt:(MojoGuiSetupOptions *)opt + { + // !!! FIXME: this is not ideal. How can we attach this pointer to + // !!! FIXME: the objects themselves so we don't have to walk a tree + // !!! FIXME: to find it on each action? The objects are controls + // !!! FIXME: and cells (distinct classes), and I don't control the + // !!! FIXME: creation of all of them (radio buttons). + // !!! FIXME: Alternately, let's just hold a hashtable to map + // !!! FIXME: objects to options without walking this tree. + if (opt == nil) + return nil; + + MojoGuiSetupOptions *i; + for (i = opt; i != nil; i = i->next_sibling) + { + if (i->guiopaque == ((void *) obj)) + return i; + MojoGuiSetupOptions *rc = [self findMojoOption:obj opt:i->child]; + if (rc != nil) + return rc; + } // for + + return [self findMojoOption:obj opt:opt->child]; + } // findMojoOption + + - (void)optionToggled:(id)toggle + { + MojoGuiSetupOptions *opts = [self findMojoOption:toggle opt:mojoOpts]; + assert(opts != nil); + // !!! FIXME: cast is wrong. use a selector? + const boolean enabled = ([((NSControl*)toggle) isEnabled] == YES); + opts->value = enabled; + [self setOptionTreeSensitivity:opts->child enabled:enabled]; + } // optionToggled + + - (NSView *)newOptionLevel:(NSView *)box + { + NSRect frame = NSMakeRect(10, 10, 10, 10); + NSView *widget = [[NSView alloc] initWithFrame:frame]; + [box addSubview:widget positioned:NSWindowBelow relativeTo:nil]; + [widget release]; // (box) owns it now. + return widget; + } // newOptionLevel + + // !!! FIXME: most of this mess is cut, pasted, and Cocoaized from the + // !!! FIXME: GTK+ GUI. Can we abstract this in the high level and just + // !!! FIXME: implement the target-specific bits in the plugins? + - (void)buildOptions:(MojoGuiSetupOptions *)opts view:(NSView *)box sensitive:(boolean)sensitive + { + NSRect frame = NSMakeRect(10, 10, 10, 10); + if (opts != nil) + { + if (opts->is_group_parent) + { + MojoGuiSetupOptions *kids = opts->child; + NSView *childbox = nil; + //GtkWidget *alignment = gtk_alignment_new(0.0, 0.5, 0, 0); + //gtk_widget_show(alignment); + + // !!! FIXME: disable line wrap? + // !!! FIXME: resize on superview resize? + NSTextField *widget = [[NSTextField alloc] initWithFrame:frame]; + [widget setStringValue:[NSString stringWithUTF8String:opts->description]]; + [widget setEnabled:(sensitive ? YES : NO)]; + [widget setEditable:NO]; + [widget setSelectable:NO]; + [widget setBordered:NO]; + [widget setBezeled:NO]; + [widget setAlignment:NSLeftTextAlignment]; + [widget sizeToFit]; + if (opts->tooltip != nil) + [widget setToolTip:[NSString stringWithUTF8String:opts->tooltip]]; + [box addSubview:widget positioned:NSWindowBelow relativeTo:nil]; + [widget release]; // (box) owns it now. + //!!! FIXME[box sizeToFit]; + + childbox = [self newOptionLevel:box]; + NSButtonCell *prototype = [[NSButtonCell alloc] init]; + [prototype setButtonType:NSRadioButton]; + [prototype setAllowsMixedState:NO]; + NSMatrix *matrix = [[NSMatrix alloc] initWithFrame:frame mode:NSRadioModeMatrix prototype:(NSCell *)prototype numberOfRows:0 numberOfColumns:1]; + int row = 0; + while (kids) + { + [matrix addRow]; + NSButtonCell *cell = (NSButtonCell *) [matrix cellAtRow:row column:0]; + kids->guiopaque = cell; + [cell setTitle:[NSString stringWithUTF8String:kids->description]]; + [matrix setState:(kids->value ? NSOnState : NSOffState) atRow:row column:0]; + [cell setEnabled:(kids->value ? YES : NO)]; + [cell setTarget:self]; + [cell setAction:@selector(optionToggled:)]; + + if (kids->tooltip != nil) + [matrix setToolTip:[NSString stringWithUTF8String:kids->tooltip] forCell:cell]; + + if (kids->child != nil) + [self buildOptions:kids->child view:[self newOptionLevel:childbox] sensitive:sensitive]; + + kids = kids->next_sibling; + row++; + } // while + + [matrix sizeToCells]; + [childbox addSubview:matrix positioned:NSWindowBelow relativeTo:nil]; + [matrix release]; // childbox owns it now. + //!!! FIXME: [childbox sizeToFit]; + //!!! FIXME: [[childbox superview] sizeToFit]; + } // if + + else + { + NSButton *widget = [[NSButton alloc] initWithFrame:frame]; + opts->guiopaque = widget; + [widget setAllowsMixedState:NO]; + [widget setTitle:[NSString stringWithUTF8String:opts->description]]; + [widget setState:(opts->value ? NSOnState : NSOffState)]; + [widget setEnabled:(sensitive ? YES : NO)]; + [widget setTarget:self]; + [widget setAction:@selector(optionToggled:)]; + [box addSubview:widget positioned:NSWindowBelow relativeTo:nil]; + [widget release]; // (box) owns it now. + //!!!FIXME:[box sizeToFit]; + + if (opts->tooltip != nil) + [widget setToolTip:[NSString stringWithUTF8String:opts->tooltip]]; + + if (opts->child != nil) + [self buildOptions:opts->child view:[self newOptionLevel:box] sensitive:((sensitive) && (opts->value))]; + } // else + + [self buildOptions:opts->next_sibling view:box sensitive:sensitive]; + } // if + + //!!! FIXME:[box sizeToFit]; + } // buildOptions + + - (int)doOptions:(MojoGuiSetupOptions *)opts canBack:(boolean)canBack canFwd:(boolean)canFwd + { + // add all the option widgets to the page's view. + [self buildOptions:opts view:OptionsView sensitive:true]; + + // run the page. + mojoOpts = opts; + int retval = [self doPage:@"Options" title:_("Options") canBack:canBack canFwd:canFwd canCancel:true canFwdAtStart:canFwd shouldBlock:YES]; + mojoOpts = nil; + + // we're done, so nuke everything from the view. + NSArray *array = [[OptionsView subviews] copy]; + NSEnumerator *enumerator = [array objectEnumerator]; + NSView *obj; + while ((obj = (NSView *) [enumerator nextObject]) != nil) + [obj removeFromSuperviewWithoutNeedingDisplay]; + [OptionsView setNeedsDisplay:YES]; + [enumerator release]; + [array release]; + + return retval; + } // doOptions + + - (char *)doDestination:(const char **)recommends recnum:(int)recnum command:(int *)command canBack:(boolean)canBack canFwd:(boolean)canFwd + { + const boolean fwdAtStart = ( (recnum > 0) && (*(recommends[0])) ); + int i; + + [DestinationCombo removeAllItems]; + for (i = 0; i < recnum; i++) + [DestinationCombo addItemWithObjectValue:[NSString stringWithUTF8String:recommends[i]]]; + + if (recnum > 0) + [DestinationCombo setStringValue:[NSString stringWithUTF8String:recommends[0]]]; + else + [DestinationCombo setStringValue:@""]; + + *command = [self doPage:@"Destination" title:_("Destination") canBack:canBack canFwd:canFwd canCancel:true canFwdAtStart:fwdAtStart shouldBlock:YES]; + char *retval = xstrdup([[DestinationCombo stringValue] UTF8String]); + [DestinationCombo removeAllItems]; + [DestinationCombo setStringValue:@""]; + return retval; + } // doDestination + + - (int)doProductKey:(const char *)desc fmt:(const char *)fmt buf:(char *)buf buflen:(const int)buflen canBack:(boolean)canBack canFwd:(boolean)canFwd + { + // !!! FIXME: write me! + return [self doPage:@"ProductKey" title:desc canBack:canBack canFwd:canFwd canCancel:true canFwdAtStart:canFwd shouldBlock:YES]; + } // doProductKey + + - (int)doProgress:(const char *)type component:(const char *)component percent:(int)percent item:(const char *)item canCancel:(boolean)canCancel + { + const BOOL indeterminate = (percent < 0) ? YES : NO; + [ProgressComponentLabel setStringValue:[NSString stringWithUTF8String:component]]; + [ProgressItemLabel setStringValue:[NSString stringWithUTF8String:item]]; + [ProgressBar setIndeterminate:indeterminate]; + if (!indeterminate) + [ProgressBar setDoubleValue:(double)percent]; + return [self doPage:@"Progress" title:type canBack:false canFwd:false canCancel:canCancel canFwdAtStart:false shouldBlock:NO]; + } // doProgress + + - (void)doFinal:(const char *)msg + { + finalPage = true; + [FinalText setStringValue:[NSString stringWithUTF8String:msg]]; + [NextButton setTitle:[NSString stringWithUTF8String:_("Finish")]]; + [self doPage:@"Final" title:_("Finish") canBack:false canFwd:true canCancel:false canFwdAtStart:true shouldBlock:YES]; + } // doFinal +@end // implementation MojoSetupController + +// Override [NSApplication sendEvent], so we can catch custom events. +@interface MojoSetupApplication : NSApplication +{ +} +- (void)sendEvent:(NSEvent *)event; +@end // interface MojoSetupApplication + +@implementation MojoSetupApplication + - (void)sendEvent:(NSEvent *)event + { + if ([event type] == NSApplicationDefined) + [((MojoSetupController *)[self delegate]) doCustomEvent:event]; + [super sendEvent:event]; + } // sendEvent +@end // implementation MojoSetupApplication + + +static uint8 MojoGui_cocoa_priority(boolean istty) +{ + // obviously this is the thing you want on Mac OS X. + return MOJOGUI_PRIORITY_TRY_FIRST; +} // MojoGui_cocoa_priority + + +static boolean MojoGui_cocoa_init(void) +{ + // This lets a stdio app become a GUI app. Otherwise, you won't get + // GUI events from the system and other things will fail to work. + // Putting the app in an application bundle does the same thing. + // TransformProcessType() is a 10.3+ API. SetFrontProcess() is 10.0+. + if (TransformProcessType != NULL) // check it as a weak symbol. + { + ProcessSerialNumber psn = { 0, kCurrentProcess }; + TransformProcessType(&psn, kProcessTransformToForegroundApplication); + SetFrontProcess(&psn); + } // if + + GAutoreleasePool = [[NSAutoreleasePool alloc] init]; + + // !!! FIXME: make sure we have access to the desktop...may be ssh'd in + // !!! FIXME: as another user that doesn't have the Finder loaded or + // !!! FIXME: something. + + // For NSApp to be our subclass, instead of default NSApplication. + [MojoSetupApplication sharedApplication]; + if ([NSBundle loadNibNamed:@"MojoSetup" owner:NSApp] == NO) + return false; + + // Force NSApp initialization stuff. MojoSetupController is set, in the + // .nib, to be NSApp's delegate. Its applicationDidFinishLaunching calls + // [NSApp stop] to break event loop right away so we can continue. + [NSApp run]; + + return true; // always succeeds. +} // MojoGui_cocoa_init + + +static void MojoGui_cocoa_deinit(void) +{ + [GAutoreleasePool release]; + GAutoreleasePool = nil; + // !!! FIXME: destroy nib and NSApp? +} // MojoGui_cocoa_deinit + + +static void MojoGui_cocoa_msgbox(const char *title, const char *text) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + [[NSApp delegate] fireCustomEvent:CUSTOMEVENT_MSGBOX data1:(NSInteger)title data2:(NSInteger)text atStart:YES]; + [pool release]; +} // MojoGui_cocoa_msgbox + + +static boolean MojoGui_cocoa_promptyn(const char *title, const char *text, + boolean defval) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + [[NSApp delegate] fireCustomEvent:CUSTOMEVENT_PROMPTYN data1:(NSInteger)title data2:(NSInteger)text atStart:YES]; + const MojoGuiYNAN ynan = [[NSApp delegate] getAnswerYNAN]; + [pool release]; + assert((ynan == MOJOGUI_YES) || (ynan == MOJOGUI_NO)); + return (ynan == MOJOGUI_YES); +} // MojoGui_cocoa_promptyn + + +static MojoGuiYNAN MojoGui_cocoa_promptynan(const char *title, + const char *text, + boolean defval) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + [[NSApp delegate] fireCustomEvent:CUSTOMEVENT_PROMPTYNAN data1:(NSInteger)title data2:(NSInteger)text atStart:YES]; + const MojoGuiYNAN retval = [[NSApp delegate] getAnswerYNAN]; + [pool release]; + return retval; +} // MojoGui_cocoa_promptynan + + +static boolean MojoGui_cocoa_start(const char *title, + const MojoGuiSplash *splash) +{ +printf("start\n"); + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + // !!! FIXME: deal with (splash). + [[NSApp delegate] prepareWidgets:title]; + [pool release]; + return true; +} // MojoGui_cocoa_start + + +static void MojoGui_cocoa_stop(void) +{ +printf("stop\n"); + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + [[NSApp delegate] unprepareWidgets]; + [pool release]; +} // MojoGui_cocoa_stop + + +static int MojoGui_cocoa_readme(const char *name, const uint8 *data, + size_t len, boolean can_back, + boolean can_fwd) +{ +printf("readme\n"); + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSString *str = [[[NSString alloc] initWithBytes:data length:len encoding:NSUTF8StringEncoding] autorelease]; + const int retval = [[NSApp delegate] doReadme:name text:str canBack:can_back canFwd:can_fwd]; + [pool release]; + return retval; +} // MojoGui_cocoa_readme + + +static int MojoGui_cocoa_options(MojoGuiSetupOptions *opts, + boolean can_back, boolean can_fwd) +{ +printf("options\n"); + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + const int retval = [[NSApp delegate] doOptions:opts canBack:can_back canFwd:can_fwd]; + [pool release]; + return retval; +} // MojoGui_cocoa_options + + +static char *MojoGui_cocoa_destination(const char **recommends, int recnum, + int *command, boolean can_back, + boolean can_fwd) +{ +printf("destination\n"); + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + char *retval = [[NSApp delegate] doDestination:recommends recnum:recnum command:command canBack:can_back canFwd:can_fwd]; + [pool release]; + return retval; +} // MojoGui_cocoa_destination + + +static int MojoGui_cocoa_productkey(const char *desc, const char *fmt, + char *buf, const int buflen, + boolean can_back, boolean can_fwd) +{ +printf("productkey\n"); + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + const int retval = [[NSApp delegate] doProductKey:desc fmt:fmt buf:buf buflen:buflen canBack:can_back canFwd:can_fwd]; + [pool release]; + return retval; +} // MojoGui_cocoa_productkey + + +static boolean MojoGui_cocoa_insertmedia(const char *medianame) +{ +printf("insertmedia\n"); + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + [[NSApp delegate] fireCustomEvent:CUSTOMEVENT_INSERTMEDIA data1:(NSInteger)medianame data2:0 atStart:YES]; + const MojoGuiYNAN ynan = [[NSApp delegate] getAnswerYNAN]; + assert((ynan == MOJOGUI_YES) || (ynan == MOJOGUI_NO)); + [pool release]; + return (ynan == MOJOGUI_YES); +} // MojoGui_cocoa_insertmedia + + +static void MojoGui_cocoa_progressitem(void) +{ +printf("progressitem\n"); + // no-op in this UI target. +} // MojoGui_cocoa_progressitem + + +static int MojoGui_cocoa_progress(const char *type, const char *component, + int percent, const char *item, + boolean can_cancel) +{ +printf("progress\n"); + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + const int retval = [[NSApp delegate] doProgress:type component:component percent:percent item:item canCancel:can_cancel]; + [pool release]; + return retval; +} // MojoGui_cocoa_progress + + +static void MojoGui_cocoa_final(const char *msg) +{ +printf("final\n"); + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + [[NSApp delegate] doFinal:msg]; + [pool release]; +} // MojoGui_cocoa_final + +// end of gui_cocoa.m ... + diff --git a/mk/linux/mojosetup/gui_gtkplus2.c b/mk/linux/mojosetup/gui_gtkplus2.c new file mode 100644 index 00000000..fed2f133 --- /dev/null +++ b/mk/linux/mojosetup/gui_gtkplus2.c @@ -0,0 +1,912 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +// Not only does GTK+ 2.x _look_ better than 1.x, it offers a lot of basic +// functionality, like message boxes, that you'd expect to exist in a GUI +// toolkit. In GTK+v1, you'd have to roll all that on your own! +// +// It's easier to implement in that regard, and produces a smaller DLL, but +// it has a million dependencies, so you might need to use a GTK+v1 plugin, +// too, in case they break backwards compatibility. + +#if !SUPPORT_GUI_GTKPLUS2 +#error Something is wrong in the build system. +#endif + +#define BUILDING_EXTERNAL_PLUGIN 1 +#include "gui.h" + +MOJOGUI_PLUGIN(gtkplus2) + +#if !GUI_STATIC_LINK_GTKPLUS2 +CREATE_MOJOGUI_ENTRY_POINT(gtkplus2) +#endif + +#undef format +#include +#define format entry->format + +typedef enum +{ + PAGE_INTRO, + PAGE_README, + PAGE_OPTIONS, + PAGE_DEST, + PAGE_PRODUCTKEY, + PAGE_PROGRESS, + PAGE_FINAL +} WizardPages; + +static WizardPages currentpage = PAGE_INTRO; +static gboolean canfwd = TRUE; +static GtkWidget *gtkwindow = NULL; +static GtkWidget *pagetitle = NULL; +static GtkWidget *notebook = NULL; +static GtkWidget *readme = NULL; +static GtkWidget *cancel = NULL; +static GtkWidget *back = NULL; +static GtkWidget *next = NULL; +static GtkWidget *finish = NULL; +static GtkWidget *msgbox = NULL; +static GtkWidget *destination = NULL; +static GtkWidget *productkey = NULL; +static GtkWidget *progressbar = NULL; +static GtkWidget *progresslabel = NULL; +static GtkWidget *finallabel = NULL; +static GtkWidget *browse = NULL; +static GtkWidget *splash = NULL; + +static volatile enum +{ + CLICK_BACK=-1, + CLICK_CANCEL, + CLICK_NEXT, + CLICK_NONE +} click_value = CLICK_NONE; + + +static void prepare_wizard(const char *name, WizardPages page, + boolean can_back, boolean can_fwd, + boolean can_cancel, boolean fwd_at_start) +{ + char *markup = g_markup_printf_escaped( + "%s", + name); + + currentpage = page; + canfwd = can_fwd; + + gtk_label_set_markup(GTK_LABEL(pagetitle), markup); + g_free(markup); + + gtk_widget_set_sensitive(back, can_back); + gtk_widget_set_sensitive(next, fwd_at_start); + gtk_widget_set_sensitive(cancel, can_cancel); + gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), (gint) page); + + assert(click_value == CLICK_NONE); + assert(gtkwindow != NULL); + assert(msgbox == NULL); +} // prepare_wizard + + +static int wait_event(void) +{ + int retval = 0; + + // signals fired under gtk_main_iteration can change click_value. + gtk_main_iteration(); + if (click_value == CLICK_CANCEL) + { + char *title = xstrdup(_("Cancel installation")); + char *text = xstrdup(_("Are you sure you want to cancel installation?")); + if (!MojoGui_gtkplus2_promptyn(title, text, false)) + click_value = CLICK_NONE; + free(title); + free(text); + } // if + + assert(click_value <= CLICK_NONE); + retval = (int) click_value; + click_value = CLICK_NONE; + return retval; +} // wait_event + + +static int pump_events(void) +{ + int retval = (int) CLICK_NONE; + while ( (retval == ((int) CLICK_NONE)) && (gtk_events_pending()) ) + retval = wait_event(); + return retval; +} // pump_events + + +static int run_wizard(const char *name, WizardPages page, + boolean can_back, boolean can_fwd, boolean can_cancel, + boolean fwd_at_start) +{ + int retval = CLICK_NONE; + prepare_wizard(name, page, can_back, can_fwd, can_cancel, fwd_at_start); + while (retval == ((int) CLICK_NONE)) + retval = wait_event(); + + assert(retval < ((int) CLICK_NONE)); + return retval; +} // run_wizard + + +static gboolean signal_delete(GtkWidget *w, GdkEvent *evt, gpointer data) +{ + click_value = CLICK_CANCEL; + return TRUE; /* eat event: default handler destroys window! */ +} // signal_delete + + +static void signal_clicked(GtkButton *_button, gpointer data) +{ + GtkWidget *button = GTK_WIDGET(_button); + if (button == back) + click_value = CLICK_BACK; + else if (button == cancel) + click_value = CLICK_CANCEL; + else if ((button == next) || (button == finish)) + click_value = CLICK_NEXT; + else + { + assert(0 && "Unknown click event."); + } // else +} // signal_clicked + + +static void signal_browse_clicked(GtkButton *_button, gpointer data) +{ + GtkWidget *dialog = gtk_file_chooser_dialog_new ( + _("Destination"), + NULL, + GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, + NULL); + + gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), + gtk_combo_box_get_active_text(GTK_COMBO_BOX(destination))); + + if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { + gchar *filename; + gchar *utfname; + + filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); + + utfname = g_filename_to_utf8(filename, -1, NULL, NULL, NULL); + gtk_combo_box_prepend_text(GTK_COMBO_BOX(destination), utfname); + gtk_combo_box_set_active(GTK_COMBO_BOX(destination), 0); + + g_free(utfname); + g_free(filename); + } + + // !!! FIXME: should append the package name to the directory they chose? + // !!! FIXME: This is annoying, they might have created the folder + // !!! FIXME: themselves in the dialog. + // !!! FIXME: Could warn when the target directory already contains files? + + gtk_widget_destroy(dialog); +} // signal_browse_clicked + + +static void signal_dest_changed(GtkComboBox *combo, gpointer user_data) +{ + // Disable the forward button when the destination entry is blank. + if ((currentpage == PAGE_DEST) && (canfwd)) + { + gchar *str = gtk_combo_box_get_active_text(combo); + const gboolean filled_in = ((str != NULL) && (*str != '\0')); + g_free(str); + gtk_widget_set_sensitive(next, filled_in); + } // if +} // signal_dest_changed + + +static void signal_productkey_changed(GtkEditable *edit, gpointer user_data) +{ + // Disable the forward button when the entry is blank. + if ((currentpage == PAGE_PRODUCTKEY) && (canfwd)) + { + const char *fmt = (const char *) user_data; + char *key = (char *) gtk_editable_get_chars(edit, 0, -1); + const gboolean okay = isValidProductKey(fmt, key); + g_free(key); + gtk_widget_set_sensitive(next, okay); + } // if +} // signal_productkey_changed + + +static uint8 MojoGui_gtkplus2_priority(boolean istty) +{ + // gnome-session exports this environment variable since 2002. + if (getenv("GNOME_DESKTOP_SESSION_ID") != NULL) + return MOJOGUI_PRIORITY_TRY_FIRST; + + return MOJOGUI_PRIORITY_TRY_NORMAL; +} // MojoGui_gtkplus2_priority + + +static boolean MojoGui_gtkplus2_init(void) +{ + int tmpargc = 0; + char *args[] = { NULL, NULL }; + char **tmpargv = args; + if (!gtk_init_check(&tmpargc, &tmpargv)) + { + logInfo("gtkplus2: gtk_init_check() failed, use another UI."); + return false; + } // if + return true; +} // MojoGui_gtkplus2_init + + +static void MojoGui_gtkplus2_deinit(void) +{ + // !!! FIXME: GTK+ doesn't have a deinit function...it installs a crappy + // !!! FIXME: atexit() function! +} // MojoGui_gtkplus2_deinit + +/** + * + * @param defbutton The response ID to use when enter is pressed, or 0 + * to leave it up to GTK+. + */ +static gint do_msgbox(const char *title, const char *text, + GtkMessageType mtype, GtkButtonsType btype, + GtkResponseType defbutton, + void (*addButtonCallback)(GtkWidget *_msgbox)) +{ + gint retval = 0; + + // Modal dialog, this will never be called recursively. + assert(msgbox == NULL); + + msgbox = gtk_message_dialog_new(GTK_WINDOW(gtkwindow), GTK_DIALOG_MODAL, + mtype, btype, "%s", title); + gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(msgbox), + "%s", text); + + if (defbutton) + gtk_dialog_set_default_response(GTK_DIALOG(msgbox), defbutton); + + if (addButtonCallback != NULL) + addButtonCallback(msgbox); + + retval = gtk_dialog_run(GTK_DIALOG(msgbox)); + gtk_widget_destroy(msgbox); + msgbox = NULL; + + return retval; +} // do_msgbox + + +static void MojoGui_gtkplus2_msgbox(const char *title, const char *text) +{ + do_msgbox(title, text, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, 0, NULL); +} // MojoGui_gtkplus2_msgbox + + +static boolean MojoGui_gtkplus2_promptyn(const char *title, const char *text, + boolean defval) +{ + gint rc = do_msgbox(title, text, GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + defval ? GTK_RESPONSE_YES : GTK_RESPONSE_NO, + NULL); + + return (rc == GTK_RESPONSE_YES); +} // MojoGui_gtkplus2_promptyn + + +static void promptynanButtonCallback(GtkWidget *_msgbox) +{ + char *always = xstrdup(_("_Always")); + char *never = xstrdup(_("N_ever")); + gtk_dialog_add_buttons(GTK_DIALOG(_msgbox), + GTK_STOCK_YES, GTK_RESPONSE_YES, + GTK_STOCK_NO, GTK_RESPONSE_NO, + always, 1, + never, 0, + NULL); + + free(always); + free(never); +} // promptynanButtonCallback + + +static MojoGuiYNAN MojoGui_gtkplus2_promptynan(const char *title, + const char *text, + boolean defval) +{ + const gint rc = do_msgbox(title, text, GTK_MESSAGE_QUESTION, + GTK_BUTTONS_NONE, + defval ? GTK_RESPONSE_YES : GTK_RESPONSE_NO, + promptynanButtonCallback); + switch (rc) + { + case GTK_RESPONSE_YES: return MOJOGUI_YES; + case GTK_RESPONSE_NO: return MOJOGUI_NO; + case 1: return MOJOGUI_ALWAYS; + case 0: return MOJOGUI_NEVER; + } // switch + + assert(false && "BUG: unhandled case in switch statement"); + return MOJOGUI_NO; // just in case. +} // MojoGui_gtkplus2_promptynan + + +static GtkWidget *create_button(GtkWidget *box, const char *iconname, + const char *text, + void (*signal_callback) + (GtkButton *button, gpointer data)) +{ + GtkWidget *button = gtk_button_new_with_mnemonic(text); + GtkWidget *image = gtk_image_new_from_stock(iconname, GTK_ICON_SIZE_BUTTON); + gtk_button_set_image (GTK_BUTTON(button), image); + gtk_widget_show(button); + gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 6); + gtk_signal_connect(GTK_OBJECT(button), "clicked", + GTK_SIGNAL_FUNC(signal_callback), NULL); + return button; +} // create_button + + +static void free_splash(guchar *pixels, gpointer data) +{ + free(pixels); +} // free_splash + + +static GtkWidget *build_splash(const MojoGuiSplash *splash) +{ + GtkWidget *retval = NULL; + GdkPixbuf *pixbuf = NULL; + guchar *rgba = NULL; + const uint32 splashlen = splash->w * splash->h * 4; + + if (splash->position == MOJOGUI_SPLASH_NONE) + return NULL; + + if ((splash->rgba == NULL) || (splashlen == 0)) + return NULL; + + rgba = (guchar *) xmalloc(splashlen); + memcpy(rgba, splash->rgba, splashlen); + pixbuf = gdk_pixbuf_new_from_data(rgba, GDK_COLORSPACE_RGB, TRUE, 8, + splash->w, splash->h, splash->w * 4, + free_splash, NULL); + if (pixbuf == NULL) + free(rgba); + else + { + retval = gtk_image_new_from_pixbuf(pixbuf); + g_object_unref(pixbuf); // retval adds a ref to pixbuf, so lose our's. + if (retval != NULL) + gtk_widget_show(retval); + } // else + + return retval; +} // build_splash + + +static GtkWidget *create_gtkwindow(const char *title, + const MojoGuiSplash *_splash) +{ + GtkWidget *splashbox = NULL; + GtkWidget *window; + GtkWidget *widget; + GtkWidget *box; + GtkWidget *alignment; + GtkWidget *hbox; + + currentpage = PAGE_INTRO; + canfwd = TRUE; + + window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_resizable(GTK_WINDOW(window), FALSE); + gtk_window_set_title(GTK_WINDOW(window), title); + gtk_container_set_border_width(GTK_CONTAINER(window), 8); + + GdkPixbuf *icon = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), + "system-software-installer", + 48, 0, NULL); + if (icon) + gtk_window_set_icon(GTK_WINDOW(window), icon); + + assert(splash == NULL); + splash = build_splash(_splash); + if (splash != NULL) + { + // !!! FIXME: MOJOGUI_SPLASH_BACKGROUND? + const MojoGuiSplashPos pos = _splash->position; + if ((pos == MOJOGUI_SPLASH_LEFT) || (pos == MOJOGUI_SPLASH_RIGHT)) + { + splashbox = gtk_hbox_new(FALSE, 6); + gtk_widget_show(splashbox); + gtk_container_add(GTK_CONTAINER(window), splashbox); + if (pos == MOJOGUI_SPLASH_LEFT) + gtk_box_pack_start(GTK_BOX(splashbox), splash, FALSE, FALSE, 6); + else + gtk_box_pack_end(GTK_BOX(splashbox), splash, FALSE, FALSE, 6); + } // if + + else if ((pos == MOJOGUI_SPLASH_TOP) || (pos == MOJOGUI_SPLASH_BOTTOM)) + { + splashbox = gtk_vbox_new(FALSE, 6); + gtk_widget_show(splashbox); + gtk_container_add(GTK_CONTAINER(window), splashbox); + if (pos == MOJOGUI_SPLASH_TOP) + gtk_box_pack_start(GTK_BOX(splashbox), splash, FALSE, FALSE, 6); + else + gtk_box_pack_end(GTK_BOX(splashbox), splash, FALSE, FALSE, 6); + } // else if + } // if + + if (splashbox == NULL) // no splash, use the window for the top container. + splashbox = window; + + box = gtk_vbox_new(FALSE, 6); + gtk_widget_show(box); + gtk_container_add(GTK_CONTAINER(splashbox), box); + + pagetitle = gtk_label_new(""); + gtk_widget_show(pagetitle); + gtk_box_pack_start(GTK_BOX(box), pagetitle, FALSE, TRUE, 16); + + notebook = gtk_notebook_new(); + gtk_widget_show(notebook); + gtk_container_set_border_width(GTK_CONTAINER(notebook), 0); + gtk_box_pack_start(GTK_BOX(box), notebook, TRUE, TRUE, 0); + gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE); + gtk_notebook_set_show_border(GTK_NOTEBOOK(notebook), FALSE); + gtk_widget_set_size_request(notebook, + (gint) (((float) gdk_screen_width()) * 0.3), + (gint) (((float) gdk_screen_height()) * 0.3)); + + widget = gtk_hbutton_box_new(); + gtk_widget_show(widget); + gtk_box_pack_start(GTK_BOX(box), widget, FALSE, FALSE, 0); + gtk_button_box_set_layout(GTK_BUTTON_BOX (widget), GTK_BUTTONBOX_END); + gtk_button_box_set_child_ipadding(GTK_BUTTON_BOX (widget), 6, 0); + gtk_button_box_set_spacing(GTK_BUTTON_BOX (widget), 6); + + box = widget; + cancel = create_button(box, "gtk-cancel", _("Cancel"), signal_clicked); + back = create_button(box, "gtk-go-back", _("Back"), signal_clicked); + next = create_button(box, "gtk-go-forward", _("Next"), signal_clicked); + finish = create_button(box, "gtk-goto-last", _("Finish"), signal_clicked); + gtk_widget_hide(finish); + + // !!! FIXME: intro page. + widget = gtk_vbox_new(FALSE, 0); + gtk_widget_show(widget); + gtk_container_add(GTK_CONTAINER(notebook), widget); + + // README/EULA page. + widget = gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy( + GTK_SCROLLED_WINDOW(widget), + GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); + gtk_scrolled_window_set_shadow_type( + GTK_SCROLLED_WINDOW(widget), + GTK_SHADOW_IN); + gtk_widget_show(widget); + gtk_container_add(GTK_CONTAINER(notebook), widget); + + readme = gtk_text_view_new(); + gtk_widget_show(readme); + gtk_container_add(GTK_CONTAINER(widget), readme); + gtk_text_view_set_editable(GTK_TEXT_VIEW(readme), FALSE); + gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(readme), GTK_WRAP_NONE); + gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(readme), FALSE); + gtk_text_view_set_left_margin(GTK_TEXT_VIEW(readme), 4); + gtk_text_view_set_right_margin(GTK_TEXT_VIEW(readme), 4); + + // !!! FIXME: options page. + box = gtk_vbox_new(FALSE, 0); + gtk_widget_show(box); + gtk_container_add(GTK_CONTAINER(notebook), box); + + // Destination page + box = gtk_vbox_new(FALSE, 0); + gtk_widget_show(box); + + hbox = gtk_hbox_new (FALSE, 6); + widget = gtk_label_new(_("Folder:")); + gtk_widget_show(widget); + gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0); + gtk_label_set_justify(GTK_LABEL(widget), GTK_JUSTIFY_CENTER); + gtk_label_set_line_wrap(GTK_LABEL(widget), FALSE); + alignment = gtk_alignment_new(0.5, 0.5, 1, 0); + destination = gtk_combo_box_entry_new_text(); + gtk_signal_connect(GTK_OBJECT(destination), "changed", + GTK_SIGNAL_FUNC(signal_dest_changed), NULL); + gtk_container_add(GTK_CONTAINER(alignment), destination); + gtk_box_pack_start(GTK_BOX(hbox), alignment, TRUE, TRUE, 0); + browse = create_button(hbox, "gtk-open", + _("B_rowse..."), signal_browse_clicked); + gtk_widget_show_all (hbox); + gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); + gtk_container_add(GTK_CONTAINER(notebook), box); + + // Product key page + box = gtk_vbox_new(FALSE, 0); + gtk_widget_show(box); + + widget = gtk_label_new(_("Please enter your product key")); + gtk_label_set_justify(GTK_LABEL(widget), GTK_JUSTIFY_CENTER); + gtk_label_set_line_wrap(GTK_LABEL(widget), TRUE); + gtk_widget_show(widget); + gtk_box_pack_start(GTK_BOX(box), widget, FALSE, TRUE, 0); + + hbox = gtk_hbox_new(FALSE, 0); + gtk_widget_show(hbox); + productkey = gtk_entry_new(); + gtk_entry_set_editable(GTK_ENTRY(productkey), TRUE); + gtk_entry_set_visibility(GTK_ENTRY(productkey), TRUE); + gtk_widget_show(productkey); + gtk_box_pack_start(GTK_BOX(hbox), productkey, TRUE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, TRUE, 0); + + gtk_container_add(GTK_CONTAINER(notebook), box); + + // Progress page + box = gtk_vbox_new(FALSE, 6); + gtk_widget_show(box); + alignment = gtk_alignment_new(0.5, 0.5, 1, 0); + gtk_widget_show(alignment); + progressbar = gtk_progress_bar_new(); + gtk_widget_show(progressbar); + gtk_container_add(GTK_CONTAINER(alignment), progressbar); + gtk_box_pack_start(GTK_BOX(box), alignment, FALSE, TRUE, 0); + progresslabel = gtk_label_new(""); + gtk_widget_show(progresslabel); + gtk_box_pack_start(GTK_BOX(box), progresslabel, FALSE, TRUE, 0); + gtk_label_set_justify(GTK_LABEL(progresslabel), GTK_JUSTIFY_LEFT); + gtk_label_set_line_wrap(GTK_LABEL(progresslabel), FALSE); + gtk_container_add(GTK_CONTAINER(notebook), box); + + // !!! FIXME: final page. + widget = gtk_vbox_new(FALSE, 0); + gtk_widget_show(widget); + gtk_container_add(GTK_CONTAINER(notebook), widget); + finallabel = gtk_label_new(""); + gtk_widget_show(finallabel); + gtk_box_pack_start(GTK_BOX(widget), finallabel, FALSE, TRUE, 0); + gtk_label_set_justify(GTK_LABEL(finallabel), GTK_JUSTIFY_LEFT); + gtk_label_set_line_wrap(GTK_LABEL(finallabel), TRUE); + + gtk_signal_connect(GTK_OBJECT(window), "delete-event", + GTK_SIGNAL_FUNC(signal_delete), NULL); + + gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); + gtk_widget_show(window); + return window; +} // create_gtkwindow + + +static boolean MojoGui_gtkplus2_start(const char *title, + const MojoGuiSplash *splash) +{ + gtkwindow = create_gtkwindow(title, splash); + return (gtkwindow != NULL); +} // MojoGui_gtkplus2_start + + +static void MojoGui_gtkplus2_stop(void) +{ + assert(msgbox == NULL); + if (gtkwindow != NULL) + gtk_widget_destroy(gtkwindow); + + gtkwindow = NULL; + pagetitle = NULL; + finallabel = NULL; + progresslabel = NULL; + progressbar = NULL; + destination = NULL; + productkey = NULL; + notebook = NULL; + readme = NULL; + cancel = NULL; + back = NULL; + next = NULL; + finish = NULL; + splash = NULL; +} // MojoGui_gtkplus2_stop + + +static int MojoGui_gtkplus2_readme(const char *name, const uint8 *data, + size_t datalen, boolean can_back, + boolean can_fwd) +{ + GtkTextBuffer *textbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(readme)); + gtk_text_buffer_set_text(textbuf, (const gchar *) data, datalen); + return run_wizard(name, PAGE_README, can_back, can_fwd, true, can_fwd); +} // MojoGui_gtkplus2_readme + + +static void set_option_tree_sensitivity(MojoGuiSetupOptions *opts, boolean val) +{ + if (opts != NULL) + { + gtk_widget_set_sensitive((GtkWidget *) opts->guiopaque, val); + set_option_tree_sensitivity(opts->next_sibling, val); + set_option_tree_sensitivity(opts->child, val && opts->value); + } // if +} // set_option_tree_sensitivity + + +static void signal_option_toggled(GtkToggleButton *toggle, gpointer data) +{ + MojoGuiSetupOptions *opts = (MojoGuiSetupOptions *) data; + const boolean enabled = gtk_toggle_button_get_active(toggle); + opts->value = enabled; + set_option_tree_sensitivity(opts->child, enabled); +} // signal_option_toggled + + +static GtkWidget *new_option_level(GtkWidget *box) +{ + GtkWidget *alignment = gtk_alignment_new(0.0, 0.5, 0, 0); + GtkWidget *retval = gtk_vbox_new(FALSE, 0); + gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 15, 0); + gtk_widget_show(alignment); + gtk_widget_show(retval); + gtk_container_add(GTK_CONTAINER(alignment), retval); + gtk_box_pack_start(GTK_BOX(box), alignment, TRUE, TRUE, 0); + return retval; +} // new_option_level + + +// use this to generate a tooltip only as needed. +static GtkTooltips *get_tip(GtkTooltips **_tip) +{ + if (*_tip == NULL) + { + GtkTooltips *tip = gtk_tooltips_new(); + gtk_tooltips_enable(tip); + *_tip = tip; + } // if + + return *_tip; +} // get_tip + + +static void build_options(MojoGuiSetupOptions *opts, GtkWidget *box, + gboolean sensitive) +{ + if (opts != NULL) + { + GtkTooltips *tip = NULL; + GtkWidget *widget = NULL; + + if (opts->is_group_parent) + { + MojoGuiSetupOptions *kids = opts->child; + GtkWidget *childbox = NULL; + GtkWidget *alignment = gtk_alignment_new(0.0, 0.5, 0, 0); + gtk_widget_show(alignment); + widget = gtk_label_new(opts->description); + opts->guiopaque = widget; + gtk_widget_set_sensitive(widget, sensitive); + gtk_widget_show(widget); + gtk_label_set_justify(GTK_LABEL(widget), GTK_JUSTIFY_LEFT); + gtk_label_set_line_wrap(GTK_LABEL(widget), FALSE); + gtk_container_add(GTK_CONTAINER(alignment), widget); + gtk_box_pack_start(GTK_BOX(box), alignment, FALSE, TRUE, 0); + + if (opts->tooltip != NULL) + gtk_tooltips_set_tip(get_tip(&tip), widget, opts->tooltip, 0); + + widget = NULL; + childbox = new_option_level(box); + while (kids) + { + widget = gtk_radio_button_new_with_label_from_widget( + GTK_RADIO_BUTTON(widget), + kids->description); + kids->guiopaque = widget; + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), + kids->value); + gtk_widget_set_sensitive(widget, sensitive); + gtk_widget_show(widget); + gtk_box_pack_start(GTK_BOX(childbox), widget, FALSE, TRUE, 0); + gtk_signal_connect(GTK_OBJECT(widget), "toggled", + GTK_SIGNAL_FUNC(signal_option_toggled), kids); + + if (kids->tooltip != NULL) + gtk_tooltips_set_tip(get_tip(&tip),widget,kids->tooltip,0); + + if (kids->child != NULL) + { + build_options(kids->child, new_option_level(childbox), + sensitive); + } // if + kids = kids->next_sibling; + } // while + } // if + + else + { + widget = gtk_check_button_new_with_label(opts->description); + opts->guiopaque = widget; + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), + opts->value); + gtk_widget_set_sensitive(widget, sensitive); + gtk_widget_show(widget); + gtk_box_pack_start(GTK_BOX(box), widget, FALSE, TRUE, 0); + gtk_signal_connect(GTK_OBJECT(widget), "toggled", + GTK_SIGNAL_FUNC(signal_option_toggled), opts); + + if (opts->tooltip != NULL) + gtk_tooltips_set_tip(get_tip(&tip), widget, opts->tooltip, 0); + + if (opts->child != NULL) + { + build_options(opts->child, new_option_level(box), + ((sensitive) && (opts->value)) ); + } // if + } // else + + build_options(opts->next_sibling, box, sensitive); + } // if +} // build_options + + +static int MojoGui_gtkplus2_options(MojoGuiSetupOptions *opts, + boolean can_back, boolean can_fwd) +{ + int retval; + GtkWidget *box; + GtkWidget *page; // this is a vbox. + + page = gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), PAGE_OPTIONS); + box = gtk_vbox_new(FALSE, 0); + gtk_widget_show(box); + gtk_box_pack_start(GTK_BOX(page), box, FALSE, FALSE, 0); + + build_options(opts, box, TRUE); + retval = run_wizard(_("Options"), PAGE_OPTIONS, + can_back, can_fwd, true, can_fwd); + gtk_widget_destroy(box); + return retval; +} // MojoGui_gtkplus2_options + + +static char *MojoGui_gtkplus2_destination(const char **recommends, int recnum, + int *command, boolean can_back, + boolean can_fwd) +{ + GtkComboBox *combo = GTK_COMBO_BOX(destination); + const boolean fwd_at_start = ( (recnum > 0) && (*(recommends[0])) ); + gchar *str = NULL; + char *retval = NULL; + int i; + + for (i = 0; i < recnum; i++) + gtk_combo_box_append_text(combo, recommends[i]); + gtk_combo_box_set_active (combo, 0); + + *command = run_wizard(_("Destination"), PAGE_DEST, + can_back, can_fwd, true, fwd_at_start); + + str = gtk_combo_box_get_active_text(combo); + + // shouldn't ever be empty ("next" should be disabled in that case). + assert( (*command <= 0) || ((str != NULL) && (*str != '\0')) ); + + retval = xstrdup(str); + g_free(str); + + for (i = recnum-1; i >= 0; i--) + gtk_combo_box_remove_text(combo, i); + + return retval; +} // MojoGui_gtkplus2_destination + + +static int MojoGui_gtkplus2_productkey(const char *desc, const char *fmt, + char *buf, const int buflen, + boolean can_back, boolean can_fwd) +{ + gchar *str = NULL; + int retval = 0; + const boolean fwd_at_start = isValidProductKey(fmt, buf); + + gtk_entry_set_max_length(GTK_ENTRY(productkey), buflen - 1); + gtk_entry_set_width_chars(GTK_ENTRY(productkey), buflen - 1); + gtk_entry_set_text(GTK_ENTRY(productkey), (gchar *) buf); + + const guint connid = gtk_signal_connect(GTK_OBJECT(productkey), "changed", + GTK_SIGNAL_FUNC(signal_productkey_changed), + (void *) fmt); + retval = run_wizard(desc, PAGE_PRODUCTKEY, + can_back, can_fwd, true, fwd_at_start); + gtk_signal_disconnect(GTK_OBJECT(productkey), connid); + + str = gtk_editable_get_chars(GTK_EDITABLE(productkey), 0, -1); + // should never be invalid ("next" should be disabled in that case). + assert( (retval <= 0) || ((str) && (isValidProductKey(fmt, str))) ); + assert(strlen(str) < buflen); + strcpy(buf, (char *) str); + g_free(str); + gtk_entry_set_text(GTK_ENTRY(productkey), ""); + + return retval; +} // MojoGui_gtkplus2_productkey + + +static boolean MojoGui_gtkplus2_insertmedia(const char *medianame) +{ + gint rc = 0; + // !!! FIXME: Use stock GTK icon for "media"? + // !!! FIXME: better text. + const char *title = xstrdup(_("Media change")); + // !!! FIXME: better text. + const char *fmt = xstrdup(_("Please insert '%0'")); + const char *text = format(fmt, medianame); + rc = do_msgbox(title, text, GTK_MESSAGE_WARNING, + GTK_BUTTONS_OK_CANCEL, GTK_RESPONSE_OK, NULL); + free((void *) text); + free((void *) fmt); + free((void *) title); + return (rc == GTK_RESPONSE_OK); +} // MojoGui_gtkplus2_insertmedia + + +static void MojoGui_gtkplus2_progressitem(void) +{ + // no-op in this UI target. +} // MojoGui_gtkplus2_progressitem + + +static boolean MojoGui_gtkplus2_progress(const char *type, const char *component, + int percent, const char *item, + boolean can_cancel) +{ + static uint32 lastTicks = 0; + const uint32 ticks = ticks(); + int rc; + + if ((ticks - lastTicks) > 200) // just not to spam this... + { + GtkProgressBar *progress = GTK_PROGRESS_BAR(progressbar); + if (percent < 0) + gtk_progress_bar_pulse(progress); + else + gtk_progress_bar_set_fraction(progress, ((gdouble) percent) / 100.0); + + gtk_progress_bar_set_text(progress, component); + gtk_label_set_text(GTK_LABEL(progresslabel), item); + lastTicks = ticks; + } // if + + prepare_wizard(type, PAGE_PROGRESS, false, false, can_cancel, false); + rc = pump_events(); + assert( (rc == ((int) CLICK_CANCEL)) || (rc == ((int) CLICK_NONE)) ); + return (rc != CLICK_CANCEL); +} // MojoGui_gtkplus2_progress + + +static void MojoGui_gtkplus2_final(const char *msg) +{ + gtk_widget_hide(next); + gtk_widget_show(finish); + gtk_label_set_text(GTK_LABEL(finallabel), msg); + run_wizard(_("Finish"), PAGE_FINAL, false, true, false, true); +} // MojoGui_gtkplus2_final + +// end of gui_gtkplus2.c ... + diff --git a/mk/linux/mojosetup/gui_ncurses.c b/mk/linux/mojosetup/gui_ncurses.c new file mode 100644 index 00000000..733f0b26 --- /dev/null +++ b/mk/linux/mojosetup/gui_ncurses.c @@ -0,0 +1,1487 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#if !SUPPORT_GUI_NCURSES +#error Something is wrong in the build system. +#endif + +#define BUILDING_EXTERNAL_PLUGIN 1 +#include "gui.h" + +MOJOGUI_PLUGIN(ncurses) + +#if !GUI_STATIC_LINK_NCURSES +CREATE_MOJOGUI_ENTRY_POINT(ncurses) +#endif + +#include +#include +// CMake searches for a whole bunch of different possible curses includes +#if defined(HAVE_NCURSESW_NCURSES_H) +#include +#elif defined(HAVE_NCURSESW_CURSES_H) +#include +#elif defined(HAVE_NCURSESW_H) +#include +#else +#error ncurses gui enabled, but no known header file found +#endif + +#include + +// This was built to look roughly like dialog(1), but it's not nearly as +// robust. Also, I didn't use any of dialog's code, as it is GPL/LGPL, +// depending on what version you start with. There _is_ a libdialog, but +// it's never something installed on any systems, and I can't link it +// statically due to the license. +// +// ncurses is almost always installed as a shared library, though, so we'll +// just talk to it directly. Fortunately we don't need much of what dialog(1) +// offers, so rolling our own isn't too painful (well, compared to massive +// head trauma, I guess). +// +// Pradeep Padala's ncurses HOWTO was very helpful in teaching me curses +// quickly: http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/index.html + +// !!! FIXME: this should all be UTF-8 and Unicode clean with ncursesw, but +// !!! FIXME: it relies on the terminal accepting UTF-8 output (we don't +// !!! FIXME: attempt to convert) and assumes all characters fit in one +// !!! FIXME: column, which they don't necessarily for some Asian languages, +// !!! FIXME: etc. I'm not sure how to properly figure out column width, if +// !!! FIXME: it's possible at all, but for that, you should probably +// !!! FIXME: go to a proper GUI plugin like GTK+ anyhow. + +typedef enum +{ + MOJOCOLOR_BACKGROUND=1, + MOJOCOLOR_BORDERTOP, + MOJOCOLOR_BORDERBOTTOM, + MOJOCOLOR_BORDERTITLE, + MOJOCOLOR_TEXT, + MOJOCOLOR_TEXTENTRY, + MOJOCOLOR_BUTTONHOVER, + MOJOCOLOR_BUTTONNORMAL, + MOJOCOLOR_BUTTONBORDER, + MOJOCOLOR_TODO, + MOJOCOLOR_DONE, +} MojoColor; + + +typedef struct +{ + WINDOW *mainwin; + WINDOW *textwin; + WINDOW **buttons; + char *title; + char *text; + char **textlines; + char **buttontext; + int buttoncount; + int textlinecount; + int hoverover; + int textpos; + boolean hidecursor; + boolean ndelay; + int cursval; +} MojoBox; + + +static char *lastProgressType = NULL; +static char *lastComponent = NULL; +static boolean lastCanCancel = false; +static uint32 percentTicks = 0; +static char *title = NULL; +static MojoBox *progressBox = NULL; + + +static void drawButton(MojoBox *mojobox, int button) +{ + const boolean hover = (mojobox->hoverover == button); + int borderattr = 0; + WINDOW *win = mojobox->buttons[button]; + const char *str = mojobox->buttontext[button]; + int w, h; + getmaxyx(win, h, w); + + if (!hover) + wbkgdset(win, COLOR_PAIR(MOJOCOLOR_BUTTONNORMAL)); + else + { + borderattr = COLOR_PAIR(MOJOCOLOR_BUTTONBORDER) | A_BOLD; + wbkgdset(win, COLOR_PAIR(MOJOCOLOR_BUTTONHOVER)); + } // else + + werase(win); + wmove(win, 0, 0); + waddch(win, borderattr | '<'); + wmove(win, 0, w-1); + waddch(win, borderattr | '>'); + wmove(win, 0, 2); + + if (!hover) + waddstr(win, str); + else + { + wattron(win, COLOR_PAIR(MOJOCOLOR_BUTTONHOVER) | A_BOLD); + waddstr(win, str); + wattroff(win, COLOR_PAIR(MOJOCOLOR_BUTTONHOVER) | A_BOLD); + } // else +} // drawButton + + +static void drawText(MojoBox *mojobox) +{ + int i; + const int tcount = mojobox->textlinecount; + int pos = mojobox->textpos; + int w, h; + WINDOW *win = mojobox->textwin; + getmaxyx(win, h, w); + + werase(mojobox->textwin); + for (i = 0; (pos < tcount) && (i < h); i++, pos++) + mvwaddstr(win, i, 0, mojobox->textlines[pos]); + + if (tcount > h) + { + const int pct = (int) ((((double) pos) / ((double) tcount)) * 100.0); + win = mojobox->mainwin; + wattron(win, COLOR_PAIR(MOJOCOLOR_BORDERTITLE) | A_BOLD); + mvwprintw(win, h+1, w-5, "(%3d%%)", pct); + wattroff(win, COLOR_PAIR(MOJOCOLOR_BORDERTITLE) | A_BOLD); + } // if +} // drawText + + +static void drawBackground(WINDOW *win) +{ + wclear(win); + if (title != NULL) + { + int w, h; + getmaxyx(win, h, w); + wattron(win, COLOR_PAIR(MOJOCOLOR_BACKGROUND) | A_BOLD); + mvwaddstr(win, 0, 0, title); + mvwhline(win, 1, 1, ACS_HLINE, w-2); + wattroff(win, COLOR_PAIR(MOJOCOLOR_BACKGROUND) | A_BOLD); + } // if +} // drawBackground + + +static void confirmTerminalSize(void) +{ + int scrw = 0; + int scrh = 0; + char *msg = NULL; + int len = 0; + int x = 0; + int y = 0; + + while (1) // loop until the window meets a minimum dimension requirement. + { + getmaxyx(stdscr, scrh, scrw); + scrh--; // -1 to save the title at the top of the screen... + + if (scrw < 30) // too thin + msg = xstrdup(_("[Make the window wider!]")); + else if (scrh < 10) // too short + msg = xstrdup(_("[Make the window taller!]")); + else + break; // we're good, get out. + + len = utf8len(msg); + y = scrh / 2; + x = ((scrw - len) / 2); + + if (y < 0) y = 0; + if (x < 0) x = 0; + + wclear(stdscr); + wmove(stdscr, y, x); + wrefresh(stdscr); + wmove(stdscr, y, x); + wattron(stdscr, COLOR_PAIR(MOJOCOLOR_BACKGROUND) | A_BOLD); + waddstr(stdscr, msg); + wattroff(stdscr, COLOR_PAIR(MOJOCOLOR_BACKGROUND) | A_BOLD); + nodelay(stdscr, 0); + wrefresh(stdscr); + free(msg); + + while (wgetch(stdscr) != KEY_RESIZE) { /* no-op. */ } + } // while +} // confirmTerminalSize + + +static MojoBox *makeBox(const char *title, const char *text, + char **buttons, int bcount, + boolean ndelay, boolean hidecursor) +{ + MojoBox *retval = NULL; + WINDOW *win = NULL; + int scrw, scrh; + int len = 0; + int buttonsw = 0; + int x = 0; + int y = 0; + int h = 0; + int w = 0; + int texth = 0; + int i; + + confirmTerminalSize(); // blocks until window is large enough to continue. + + getmaxyx(stdscr, scrh, scrw); + scrh--; // -1 to save the title at the top of the screen... + + retval = (MojoBox *) xmalloc(sizeof (MojoBox)); + retval->hidecursor = hidecursor; + retval->ndelay = ndelay; + retval->cursval = ((hidecursor) ? curs_set(0) : ERR); + retval->title = xstrdup(title); + retval->text = xstrdup(text); + retval->buttoncount = bcount; + retval->buttons = (WINDOW **) xmalloc(sizeof (WINDOW*) * bcount); + retval->buttontext = (char **) xmalloc(sizeof (char*) * bcount); + + for (i = 0; i < bcount; i++) + retval->buttontext[i] = xstrdup(buttons[i]); + + retval->textlines = splitText(retval->text, scrw-4, + &retval->textlinecount, &w); + + len = utf8len(title); + if (len > scrw-4) + { + len = scrw-4; + strcpy(&retval->title[len-3], "..."); // !!! FIXME: not Unicode safe! + } // if + + if (len > w) + w = len; + + if (bcount > 0) + { + for (i = 0; i < bcount; i++) + buttonsw += utf8len(buttons[i]) + 5; // '<', ' ', ' ', '>', ' ' + if (buttonsw > w) + w = buttonsw; + // !!! FIXME: what if these overflow the screen? + } // if + + w += 4; + h = retval->textlinecount + 2; + if (bcount > 0) + h += 2; + + if (h > scrh-2) + h = scrh-2; + + x = (scrw - w) / 2; + y = ((scrh - h) / 2) + 1; + + // can't have negative coordinates, so in case we survived the call to + // confirmTerminalSize() but still need more, just draw as much as + // possible from the top/left to fill the window. + if (x < 0) x = 0; + if (y < 0) y = 0; + + win = retval->mainwin = newwin(h, w, y, x); + keypad(win, TRUE); + nodelay(win, ndelay); + wbkgdset(win, COLOR_PAIR(MOJOCOLOR_TEXT)); + wclear(win); + waddch(win, ACS_ULCORNER | A_BOLD | COLOR_PAIR(MOJOCOLOR_BORDERTOP)); + whline(win, ACS_HLINE | A_BOLD | COLOR_PAIR(MOJOCOLOR_BORDERTOP), w-2); + wmove(win, 0, w-1); + waddch(win, ACS_URCORNER | COLOR_PAIR(MOJOCOLOR_BORDERBOTTOM)); + wmove(win, 1, 0); + wvline(win, ACS_VLINE | A_BOLD | COLOR_PAIR(MOJOCOLOR_BORDERTOP), h-2); + wmove(win, 1, w-1); + wvline(win, ACS_VLINE | COLOR_PAIR(MOJOCOLOR_BORDERBOTTOM), h-2); + wmove(win, h-1, 0); + waddch(win, ACS_LLCORNER | A_BOLD | COLOR_PAIR(MOJOCOLOR_BORDERTOP)); + whline(win, ACS_HLINE | COLOR_PAIR(MOJOCOLOR_BORDERBOTTOM), w-2); + wmove(win, h-1, w-1); + waddch(win, ACS_LRCORNER | COLOR_PAIR(MOJOCOLOR_BORDERBOTTOM)); + + len = utf8len(retval->title); + wmove(win, 0, ((w-len)/2)-1); + wattron(win, COLOR_PAIR(MOJOCOLOR_BORDERTITLE) | A_BOLD); + waddch(win, ' '); + waddstr(win, retval->title); + wmove(win, 0, ((w-len)/2)+len); + waddch(win, ' '); + wattroff(win, COLOR_PAIR(MOJOCOLOR_BORDERTITLE) | A_BOLD); + + if (bcount > 0) + { + const int buttony = (y + h) - 2; + int buttonx = (x + w) - ((w - buttonsw) / 2); + wmove(win, h-3, 1); + whline(win, ACS_HLINE | A_BOLD | COLOR_PAIR(MOJOCOLOR_BORDERTOP), w-2); + for (i = 0; i < bcount; i++) + { + len = utf8len(buttons[i]) + 4; + buttonx -= len+1; + win = retval->buttons[i] = newwin(1, len, buttony, buttonx); + keypad(win, TRUE); + nodelay(win, ndelay); + } // for + } // if + + texth = h-2; + if (bcount > 0) + texth -= 2; + win = retval->textwin = newwin(texth, w-4, y+1, x+2); + keypad(win, TRUE); + nodelay(win, ndelay); + wbkgdset(win, COLOR_PAIR(MOJOCOLOR_TEXT)); + drawText(retval); + + drawBackground(stdscr); + wnoutrefresh(stdscr); + wnoutrefresh(retval->mainwin); + wnoutrefresh(retval->textwin); + for (i = 0; i < bcount; i++) + { + drawButton(retval, i); + wnoutrefresh(retval->buttons[i]); + } // for + + doupdate(); // push it all to the screen. + + return retval; +} // makeBox + + +static void freeBox(MojoBox *mojobox, boolean clearscreen) +{ + if (mojobox != NULL) + { + int i; + const int bcount = mojobox->buttoncount; + const int tcount = mojobox->textlinecount; + + if (mojobox->cursval != ERR) + curs_set(mojobox->cursval); + + for (i = 0; i < bcount; i++) + { + free(mojobox->buttontext[i]); + delwin(mojobox->buttons[i]); + } // for + + free(mojobox->buttontext); + free(mojobox->buttons); + + delwin(mojobox->textwin); + delwin(mojobox->mainwin); + + free(mojobox->title); + free(mojobox->text); + + for (i = 0; i < tcount; i++) + free(mojobox->textlines[i]); + + free(mojobox->textlines); + free(mojobox); + + if (clearscreen) + { + wclear(stdscr); + wrefresh(stdscr); + } // if + } // if +} // freeBox + + +static int upkeepBox(MojoBox **_mojobox, int ch) +{ + static boolean justResized = false; + MEVENT mevt; + int i; + int w, h; + MojoBox *mojobox = *_mojobox; + if (mojobox == NULL) + return -2; + + if (justResized) // !!! FIXME: this is a kludge. + { + justResized = false; + if (ch == ERR) + return -1; + } // if + + switch (ch) + { + case ERR: + return -2; + + case '\r': + case '\n': + case KEY_ENTER: + case ' ': + return (mojobox->buttoncount <= 0) ? -1 : mojobox->hoverover; + + case '\e': + return mojobox->buttoncount-1; + + case KEY_UP: + if (mojobox->textpos > 0) + { + mojobox->textpos--; + drawText(mojobox); + wrefresh(mojobox->textwin); + } // if + return -1; + + case KEY_DOWN: + getmaxyx(mojobox->textwin, h, w); + if (mojobox->textpos < (mojobox->textlinecount-h)) + { + mojobox->textpos++; + drawText(mojobox); + wrefresh(mojobox->textwin); + } // if + return -1; + + case KEY_PPAGE: + if (mojobox->textpos > 0) + { + getmaxyx(mojobox->textwin, h, w); + mojobox->textpos -= h; + if (mojobox->textpos < 0) + mojobox->textpos = 0; + drawText(mojobox); + wrefresh(mojobox->textwin); + } // if + return -1; + + case KEY_NPAGE: + getmaxyx(mojobox->textwin, h, w); + if (mojobox->textpos < (mojobox->textlinecount-h)) + { + mojobox->textpos += h; + if (mojobox->textpos > (mojobox->textlinecount-h)) + mojobox->textpos = (mojobox->textlinecount-h); + drawText(mojobox); + wrefresh(mojobox->textwin); + } // if + return -1; + + case KEY_LEFT: + if (mojobox->buttoncount > 1) + { + if (mojobox->hoverover < (mojobox->buttoncount-1)) + { + mojobox->hoverover++; + drawButton(mojobox, mojobox->hoverover-1); + drawButton(mojobox, mojobox->hoverover); + wrefresh(mojobox->buttons[mojobox->hoverover-1]); + wrefresh(mojobox->buttons[mojobox->hoverover]); + } // if + } // if + return -1; + + case KEY_RIGHT: + if (mojobox->buttoncount > 1) + { + if (mojobox->hoverover > 0) + { + mojobox->hoverover--; + drawButton(mojobox, mojobox->hoverover+1); + drawButton(mojobox, mojobox->hoverover); + wrefresh(mojobox->buttons[mojobox->hoverover+1]); + wrefresh(mojobox->buttons[mojobox->hoverover]); + } // if + } // if + return -1; + + case 12: // ctrl-L...redraw everything on the screen. + redrawwin(stdscr); + wnoutrefresh(stdscr); + redrawwin(mojobox->mainwin); + wnoutrefresh(mojobox->mainwin); + redrawwin(mojobox->textwin); + wnoutrefresh(mojobox->textwin); + for (i = 0; i < mojobox->buttoncount; i++) + { + redrawwin(mojobox->buttons[i]); + wnoutrefresh(mojobox->buttons[i]); + } // for + doupdate(); // push it all to the screen. + return -1; + + case KEY_RESIZE: + mojobox = makeBox(mojobox->title, mojobox->text, + mojobox->buttontext, mojobox->buttoncount, + mojobox->ndelay, mojobox->hidecursor); + mojobox->cursval = (*_mojobox)->cursval; // keep this sane. + mojobox->hoverover = (*_mojobox)->hoverover; + freeBox(*_mojobox, false); + if (mojobox->hidecursor) + curs_set(0); // make sure this stays sane. + *_mojobox = mojobox; + justResized = true; // !!! FIXME: kludge. + return -1; + + case KEY_MOUSE: + if ((getmouse(&mevt) == OK) && (mevt.bstate & BUTTON1_CLICKED)) + { + int i; + for (i = 0; i < mojobox->buttoncount; i++) + { + int x1, y1, x2, y2; + getbegyx(mojobox->buttons[i], y1, x1); + getmaxyx(mojobox->buttons[i], y2, x2); + x2 += x1; + y2 += y1; + if ( (mevt.x >= x1) && (mevt.x < x2) && + (mevt.y >= y1) && (mevt.y < y2) ) + return i; + } // for + } // if + return -1; + } // switch + + return -1; +} // upkeepBox + + +static uint8 MojoGui_ncurses_priority(boolean istty) +{ + if (!istty) + return MOJOGUI_PRIORITY_NEVER_TRY; // need a terminal for this! + else if (getenv("DISPLAY") != NULL) + return MOJOGUI_PRIORITY_TRY_LAST; // let graphical stuff go first. + return MOJOGUI_PRIORITY_TRY_NORMAL; +} // MojoGui_ncurses_priority + + +static boolean MojoGui_ncurses_init(void) +{ + setlocale(LC_CTYPE, ""); // !!! FIXME: we assume you have a UTF-8 terminal. + if (initscr() == NULL) + { + logInfo("ncurses: initscr() failed, use another UI."); + return false; + } // if + + cbreak(); + keypad(stdscr, TRUE); + noecho(); + start_color(); + mousemask(BUTTON1_CLICKED, NULL); + init_pair(MOJOCOLOR_BACKGROUND, COLOR_CYAN, COLOR_BLUE); + init_pair(MOJOCOLOR_BORDERTOP, COLOR_WHITE, COLOR_WHITE); + init_pair(MOJOCOLOR_BORDERBOTTOM, COLOR_BLACK, COLOR_WHITE); + init_pair(MOJOCOLOR_BORDERTITLE, COLOR_YELLOW, COLOR_WHITE); + init_pair(MOJOCOLOR_TEXT, COLOR_BLACK, COLOR_WHITE); + init_pair(MOJOCOLOR_TEXTENTRY, COLOR_WHITE, COLOR_BLUE); + init_pair(MOJOCOLOR_BUTTONHOVER, COLOR_YELLOW, COLOR_BLUE); + init_pair(MOJOCOLOR_BUTTONNORMAL, COLOR_BLACK, COLOR_WHITE); + init_pair(MOJOCOLOR_BUTTONBORDER, COLOR_WHITE, COLOR_BLUE); + init_pair(MOJOCOLOR_DONE, COLOR_YELLOW, COLOR_RED); + init_pair(MOJOCOLOR_TODO, COLOR_CYAN, COLOR_BLUE); + + wbkgdset(stdscr, COLOR_PAIR(MOJOCOLOR_BACKGROUND)); + wclear(stdscr); + wrefresh(stdscr); + + percentTicks = 0; + return true; // always succeeds. +} // MojoGui_ncurses_init + + +static void MojoGui_ncurses_deinit(void) +{ + freeBox(progressBox, false); + progressBox = NULL; + endwin(); + delwin(stdscr); // not sure if this is safe, but valgrind said it leaks. + stdscr = NULL; + free(title); + title = NULL; + free(lastComponent); + lastComponent = NULL; + free(lastProgressType); + lastProgressType = NULL; +} // MojoGui_ncurses_deinit + + +static void MojoGui_ncurses_msgbox(const char *title, const char *text) +{ + char *localized_ok = xstrdup(_("OK")); + MojoBox *mojobox = makeBox(title, text, &localized_ok, 1, false, true); + while (upkeepBox(&mojobox, wgetch(mojobox->mainwin)) == -1) {} + freeBox(mojobox, true); + free(localized_ok); +} // MojoGui_ncurses_msgbox + + +static boolean MojoGui_ncurses_promptyn(const char *title, const char *text, + boolean defval) +{ + char *localized_yes = xstrdup(_("Yes")); + char *localized_no = xstrdup(_("No")); + char *buttons[] = { localized_yes, localized_no }; + MojoBox *mojobox = makeBox(title, text, buttons, 2, false, true); + int rc = 0; + + // set the default to "no" instead of "yes"? + if (defval == false) + { + mojobox->hoverover = 1; + drawButton(mojobox, 0); + drawButton(mojobox, 1); + wrefresh(mojobox->buttons[0]); + wrefresh(mojobox->buttons[1]); + } // if + + while ((rc = upkeepBox(&mojobox, wgetch(mojobox->mainwin))) == -1) {} + freeBox(mojobox, true); + free(localized_yes); + free(localized_no); + return (rc == 0); +} // MojoGui_ncurses_promptyn + + +static MojoGuiYNAN MojoGui_ncurses_promptynan(const char *title, + const char *text, + boolean defval) +{ + char *loc_yes = xstrdup(_("Yes")); + char *loc_no = xstrdup(_("No")); + char *loc_always = xstrdup(_("Always")); + char *loc_never = xstrdup(_("Never")); + char *buttons[] = { loc_yes, loc_always, loc_never, loc_no }; + MojoBox *mojobox = makeBox(title, text, buttons, 4, false, true); + int rc = 0; + + // set the default to "no" instead of "yes"? + if (defval == false) + { + mojobox->hoverover = 3; + drawButton(mojobox, 0); + drawButton(mojobox, 3); + wrefresh(mojobox->buttons[0]); + wrefresh(mojobox->buttons[3]); + } // if + + while ((rc = upkeepBox(&mojobox, wgetch(mojobox->mainwin))) == -1) {} + freeBox(mojobox, true); + free(loc_yes); + free(loc_no); + free(loc_always); + free(loc_never); + + switch (rc) + { + case 0: return MOJOGUI_YES; + case 1: return MOJOGUI_ALWAYS; + case 2: return MOJOGUI_NEVER; + case 3: return MOJOGUI_NO; + } // switch + + assert(false && "BUG: unhandled case in switch statement!"); + return MOJOGUI_NO; +} // MojoGui_ncurses_promptynan + + +static boolean MojoGui_ncurses_start(const char *_title, + const MojoGuiSplash *splash) +{ + free(title); + title = xstrdup(_title); + drawBackground(stdscr); + wrefresh(stdscr); + return true; +} // MojoGui_ncurses_start + + +static void MojoGui_ncurses_stop(void) +{ + free(title); + title = NULL; + drawBackground(stdscr); + wrefresh(stdscr); +} // MojoGui_ncurses_stop + + +static int MojoGui_ncurses_readme(const char *name, const uint8 *data, + size_t datalen, boolean can_back, + boolean can_fwd) +{ + MojoBox *mojobox = NULL; + char *buttons[3] = { NULL, NULL, NULL }; + int bcount = 0; + int backbutton = -99; + int fwdbutton = -99; + int rc = 0; + int i = 0; + + if (can_fwd) + { + fwdbutton = bcount++; + buttons[fwdbutton] = xstrdup(_("Next")); + } // if + + if (can_back) + { + backbutton = bcount++; + buttons[backbutton] = xstrdup(_("Back")); + } // if + + buttons[bcount++] = xstrdup(_("Cancel")); + + mojobox = makeBox(name, (char *) data, buttons, bcount, false, true); + while ((rc = upkeepBox(&mojobox, wgetch(mojobox->mainwin))) == -1) {} + freeBox(mojobox, true); + + for (i = 0; i < bcount; i++) + free(buttons[i]); + + if (rc == backbutton) + return -1; + else if (rc == fwdbutton) + return 1; + + return 0; // error? Cancel? +} // MojoGui_ncurses_readme + + +static int toggle_option(MojoGuiSetupOptions *parent, + MojoGuiSetupOptions *opts, int *line, int target) +{ + int rc = -1; + if ((opts != NULL) && (target > *line)) + { + const char *desc = opts->description; + boolean blanked = false; + blanked = ( (opts->is_group_parent) && ((!desc) || (!(*desc))) ); + + if ((!blanked) && (++(*line) == target)) + { + const boolean toggled = ((opts->value) ? false : true); + + if (opts->is_group_parent) + return 0; + + // "radio buttons" in a group? + if ((parent) && (parent->is_group_parent)) + { + if (toggled) // drop unless we weren't the current toggle. + { + // set all siblings to false... + MojoGuiSetupOptions *i = parent->child; + while (i != NULL) + { + i->value = false; + i = i->next_sibling; + } // while + opts->value = true; // reset us to be true. + } // if + } // if + + else // individual "check box" was chosen. + { + opts->value = toggled; + } // else + + return 1; // we found it, bail. + } // if + + if (opts->value) // if option is toggled on, descend to children. + rc = toggle_option(opts, opts->child, line, target); + if (rc == -1) + rc = toggle_option(parent, opts->next_sibling, line, target); + } // if + + return rc; +} // toggle_option + + +// This code is pretty scary. +static void build_options(MojoGuiSetupOptions *opts, int *line, int level, + int maxw, char **lines) +{ + if (opts != NULL) + { + const char *desc = opts->description; + char *spacebuf = (char *) xmalloc(maxw + 1); + char *buf = (char *) xmalloc(maxw + 1); + int len = 0; + int spacing = level * 2; + + if ((desc != NULL) && (*desc == '\0')) + desc = NULL; + + if (spacing > (maxw-5)) + spacing = 0; // oh well. + + if (spacing > 0) + memset(spacebuf, ' ', spacing); // null-term'd by xmalloc(). + + if (opts->is_group_parent) + { + if (desc != NULL) + len = snprintf(buf, maxw-2, "%s%s", spacebuf, desc); + } // if + else + { + (*line)++; + len = snprintf(buf, maxw-2, "%s[%c] %s", spacebuf, + opts->value ? 'X' : ' ', desc); + } // else + + free(spacebuf); + + if (len >= maxw-1) + strcpy(buf+(maxw-4), "..."); // !!! FIXME: Unicode issues! + + if (len > 0) + { + const size_t newlen = strlen(*lines) + strlen(buf) + 2; + *lines = (char*) xrealloc(*lines, newlen); + strcat(*lines, buf); + strcat(*lines, "\n"); // I'm sorry, Joel Spolsky! + } // if + + if ((opts->value) || (opts->is_group_parent)) + { + int newlev = level + 1; + if ((opts->is_group_parent) && (desc == NULL)) + newlev--; + build_options(opts->child, line, newlev, maxw, lines); + } // if + + build_options(opts->next_sibling, line, level, maxw, lines); + } // if +} // build_options + + +static int optionBox(const char *title, MojoGuiSetupOptions *opts, + boolean can_back, boolean can_fwd) +{ + MojoBox *mojobox = NULL; + char *buttons[4] = { NULL, NULL, NULL, NULL }; + boolean ignoreerr = false; + int lasthoverover = 0; + int lasttextpos = 0; + int bcount = 0; + int backbutton = -99; + int fwdbutton = -99; + int togglebutton = -99; + int cancelbutton = -99; + int selected = 0; + int ch = 0; + int rc = -1; + int i = 0; + + if (can_fwd) + { + fwdbutton = bcount++; + buttons[fwdbutton] = xstrdup(_("Next")); + } // if + + if (can_back) + { + backbutton = bcount++; + buttons[backbutton] = xstrdup(_("Back")); + } // if + + lasthoverover = togglebutton = bcount++; + buttons[togglebutton] = xstrdup(_("Toggle")); + cancelbutton = bcount++; + buttons[cancelbutton] = xstrdup(_("Cancel")); + + do + { + if (mojobox == NULL) + { + int y = 0; + int line = 0; + int maxw, maxh; + getmaxyx(stdscr, maxh, maxw); + char *text = xstrdup(""); + build_options(opts, &line, 0, maxw-6, &text); + mojobox = makeBox(title, text, buttons, bcount, false, true); + free(text); + + getmaxyx(mojobox->textwin, maxh, maxw); + + if (lasthoverover != mojobox->hoverover) + { + const int orighover = mojobox->hoverover; + mojobox->hoverover = lasthoverover; + drawButton(mojobox, orighover); + drawButton(mojobox, lasthoverover); + wrefresh(mojobox->buttons[orighover]); + wrefresh(mojobox->buttons[lasthoverover]); + } // if + + if (lasttextpos != mojobox->textpos) + { + mojobox->textpos = lasttextpos; + drawText(mojobox); + } // if + + if (selected >= (mojobox->textlinecount - 1)) + selected = mojobox->textlinecount - 1; + if (selected >= mojobox->textpos+maxh) + selected = (mojobox->textpos+maxh) - 1; + y = selected - lasttextpos; + + wattron(mojobox->textwin, COLOR_PAIR(MOJOCOLOR_BUTTONHOVER) | A_BOLD); + mvwhline(mojobox->textwin, y, 0, ' ', maxw); + mvwaddstr(mojobox->textwin, y, 0, mojobox->textlines[selected]); + wattroff(mojobox->textwin, COLOR_PAIR(MOJOCOLOR_BUTTONHOVER) | A_BOLD); + wrefresh(mojobox->textwin); + } // if + + lasttextpos = mojobox->textpos; + lasthoverover = mojobox->hoverover; + + ch = wgetch(mojobox->mainwin); + + if (ignoreerr) // kludge. + { + ignoreerr = false; + if (ch == ERR) + continue; + } // if + + if (ch == KEY_RESIZE) + { + freeBox(mojobox, false); // catch and rebuild without upkeepBox, + mojobox = NULL; // so we can rebuild the text ourself. + ignoreerr = true; // kludge. + } // if + + else if (ch == KEY_UP) + { + if (selected > 0) + { + WINDOW *win = mojobox->textwin; + int maxw, maxh; + int y = --selected - mojobox->textpos; + getmaxyx(win, maxh, maxw); + if (selected < mojobox->textpos) + { + upkeepBox(&mojobox, ch); // upkeepBox does scrolling + y++; + } // if + else + { + wattron(win, COLOR_PAIR(MOJOCOLOR_TEXT)); + mvwhline(win, y+1, 0, ' ', maxw); + mvwaddstr(win, y+1, 0, mojobox->textlines[selected+1]); + wattroff(win, COLOR_PAIR(MOJOCOLOR_TEXT)); + } // else + wattron(win, COLOR_PAIR(MOJOCOLOR_BUTTONHOVER) | A_BOLD); + mvwhline(win, y, 0, ' ', maxw); + mvwaddstr(win, y, 0, mojobox->textlines[selected]); + wattroff(win, COLOR_PAIR(MOJOCOLOR_BUTTONHOVER) | A_BOLD); + wrefresh(win); + } // if + } // else if + + else if (ch == KEY_DOWN) + { + if (selected < (mojobox->textlinecount-1)) + { + WINDOW *win = mojobox->textwin; + int maxw, maxh; + int y = ++selected - mojobox->textpos; + getmaxyx(win, maxh, maxw); + if (selected >= mojobox->textpos+maxh) + { + upkeepBox(&mojobox, ch); // upkeepBox does scrolling + y--; + } // if + else + { + wattron(win, COLOR_PAIR(MOJOCOLOR_TEXT)); + mvwhline(win, y-1, 0, ' ', maxw); + mvwaddstr(win, y-1, 0, mojobox->textlines[selected-1]); + wattroff(win, COLOR_PAIR(MOJOCOLOR_TEXT)); + } // else + wattron(win, COLOR_PAIR(MOJOCOLOR_BUTTONHOVER) | A_BOLD); + mvwhline(win, y, 0, ' ', maxw); + mvwaddstr(win, y, 0, mojobox->textlines[selected]); + wattroff(win, COLOR_PAIR(MOJOCOLOR_BUTTONHOVER) | A_BOLD); + wrefresh(win); + } // if + } // else if + + else if ((ch == KEY_NPAGE) || (ch == KEY_NPAGE)) + { + // !!! FIXME: maybe handle this when I'm not so lazy. + // !!! FIXME: For now, this if statement is to block + // !!! FIXME: upkeepBox() from scrolling and screwing up state. + } // else if + + else // let upkeepBox handle other input (button selection, etc). + { + rc = upkeepBox(&mojobox, ch); + if (rc == togglebutton) + { + int line = 0; + rc = -1; // reset so we don't stop processing input. + if (toggle_option(NULL, opts, &line, selected+1) == 1) + { + freeBox(mojobox, false); // rebuild to reflect new options... + mojobox = NULL; + } // if + } // if + } // else + } while (rc == -1); + + freeBox(mojobox, true); + + for (i = 0; i < bcount; i++) + free(buttons[i]); + + if (rc == backbutton) + return -1; + else if (rc == fwdbutton) + return 1; + + return 0; // error? Cancel? +} // optionBox + + +static int MojoGui_ncurses_options(MojoGuiSetupOptions *opts, + boolean can_back, boolean can_fwd) +{ + char *title = xstrdup(_("Options")); + int rc = optionBox(title, opts, can_back, can_fwd); + free(title); + return rc; +} // MojoGui_ncurses_options + + +static char *inputBox(const char *prompt, int *command, boolean can_back, + const char *defval) +{ + char *text = NULL; + int w, h; + int i; + int ch; + int rc = -1; + MojoBox *mojobox = NULL; + size_t retvalalloc = 64; + size_t retvallen = 0; + char *retval = NULL; + char *buttons[3] = { NULL, NULL, NULL }; + int drawpos = 0; + int drawlen = 0; + int bcount = 0; + int backbutton = -1; + int cancelbutton = -1; + + if (defval == NULL) + retval = (char *) xmalloc(retvalalloc); + else + { + const size_t defvallen = strlen(defval); + if ((defvallen * 2) > retvalalloc) + retvalalloc = defvallen * 2; + retval = (char *) xmalloc(retvalalloc); + retvallen = defvallen; + strcpy(retval, defval); + } // else + + buttons[bcount++] = xstrdup(_("OK")); + + if (can_back) + { + backbutton = bcount++; + buttons[backbutton] = xstrdup(_("Back")); + } // if + + cancelbutton = bcount++; + buttons[cancelbutton] = xstrdup(_("Cancel")); + + getmaxyx(stdscr, h, w); + w -= 10; + text = (char *) xmalloc(w+4); + text[0] = '\n'; + memset(text+1, ' ', w); + text[w+1] = '\n'; + text[w+2] = ' '; + text[w+3] = '\0'; + mojobox = makeBox(prompt, text, buttons, bcount, false, false); + free(text); + text = NULL; + + do + { + getmaxyx(mojobox->textwin, h, w); + w -= 2; + + if (drawpos >= retvallen) + drawpos = 0; + while ((drawlen = (retvallen - drawpos)) >= w) + drawpos += 5; + + wattron(mojobox->textwin, COLOR_PAIR(MOJOCOLOR_TEXTENTRY) | A_BOLD); + mvwhline(mojobox->textwin, 1, 1, ' ', w); // blank line... + mvwaddstr(mojobox->textwin, 1, 1, retval + drawpos); + wattroff(mojobox->textwin, COLOR_PAIR(MOJOCOLOR_TEXTENTRY) | A_BOLD); + wrefresh(mojobox->textwin); + + ch = wgetch(mojobox->mainwin); + if ( (ch > 0) && (ch < KEY_MIN) && (isprint(ch)) ) // regular key. + { + if (retvalalloc <= retvallen) + { + retvalalloc *= 2; + retval = xrealloc(retval, retvalalloc); + } // if + retval[retvallen++] = (char) ch; + retval[retvallen] = '\0'; + } // if + + else if (ch == KEY_BACKSPACE) + { + if (retvallen > 0) + retval[--retvallen] = '\0'; + } // else if + + else if (ch == KEY_RESIZE) + { + wrefresh(stdscr); + getmaxyx(stdscr, h, w); + w -= 10; + text = (char *) xrealloc(mojobox->text, w+4); + text[0] = '\n'; + memset(text+1, ' ', w); + text[w+1] = '\n'; + text[w+2] = ' '; + text[w+3] = '\0'; + mojobox->text = text; + text = NULL; + upkeepBox(&mojobox, KEY_RESIZE); // let real resize happen... + } // else if + + else + { + rc = upkeepBox(&mojobox, ch); + } // else + } while (rc == -1); + + freeBox(mojobox, true); + + for (i = 0; i < bcount; i++) + free(buttons[i]); + + if (rc == backbutton) + *command = -1; + else if (rc == cancelbutton) + *command = 0; + else + *command = 1; + + if (*command <= 0) + { + free(retval); + retval = NULL; + } // if + + return retval; +} // inputBox + + +static char *MojoGui_ncurses_destination(const char **recommends, int recnum, + int *command, boolean can_back, + boolean can_fwd) +{ + char *retval = NULL; + while (true) + { + const char *localized = NULL; + char *title = NULL; + char *choosetxt = NULL; + int rc = 0; + + if (recnum > 0) // recommendations available. + { + int chosen = -1; + MojoGuiSetupOptions opts; + MojoGuiSetupOptions *prev = &opts; + MojoGuiSetupOptions *next = NULL; + MojoGuiSetupOptions *opt = NULL; + memset(&opts, '\0', sizeof (MojoGuiSetupOptions)); + int i; + for (i = 0; i < recnum; i++) + { + opt = (MojoGuiSetupOptions *) xmalloc(sizeof (*opt)); + opt->description = recommends[i]; + opt->size = -1; + prev->next_sibling = opt; + prev = opt; + } // for + + choosetxt = xstrdup(_("(I want to specify a path.)")); + opt = (MojoGuiSetupOptions *) xmalloc(sizeof (*opt)); + opt->description = choosetxt; + opt->size = -1; + prev->next_sibling = opt; + prev = opt; + + opts.child = opts.next_sibling; // fix this field. + opts.next_sibling = NULL; + opts.value = opts.child->value = true; // make first default. + opts.is_group_parent = true; + opts.size = -1; + + title = xstrdup(_("Destination")); + rc = optionBox(title, &opts, can_back, can_fwd); + free(title); + + for (i = 0, next = opts.child; next != NULL; i++) + { + if (next->value) + chosen = i; + prev = next; + next = prev->next_sibling; + free(prev); + } // for + + free(choosetxt); + + *command = rc; + if (rc <= 0) // back or cancel. + return NULL; + + else if ((chosen >= 0) && (chosen < recnum)) // a specific entry + return xstrdup(recommends[chosen]); + } // if + + // either no recommendations or user wants to enter own path... + + localized = _("Enter path where files will be installed."); + title = xstrdup(localized); + retval = inputBox(title, &rc, (can_back) || (recnum > 0), NULL); + free(title); + + // user cancelled or entered text, or hit back and we aren't falling + // back to the option list...return. + if ( (rc >= 0) || ((rc == -1) && (recnum == 0)) ) + { + *command = rc; + return retval; + } // if + + // falling back to the option list again...loop. + } // while + + // Shouldn't ever hit this, but just in case... + *command = 0; + return NULL; +} // MojoGui_ncurses_destination + + +static int MojoGui_ncurses_productkey(const char *desc, const char *fmt, + char *buf, const int buflen, + boolean can_back, boolean can_fwd) +{ + // !!! FIXME: need text option for (desc). + // !!! FIXME: need max text entry of (buflen) + // !!! FIXME: need to disable "next" button if code is invalid. + char *prompt = xstrdup(_("Please enter your product key")); + boolean getout = false; + int retval = 0; + + while (!getout) + { + char *text = inputBox(prompt, &retval, can_back, buf); + + if (retval != 1) + getout = true; + else + { + snprintf(buf, buflen, "%s", text); + if (isValidProductKey(fmt, text)) + getout = true; + else + { + // !!! FIXME: just improve inputBox. + // We can't check the input character-by-character, so reuse + // the failed-verification localized string. + char *failtitle = xstrdup(_("Invalid product key")); + char *failstr = xstrdup(_("That key appears to be invalid. Please try again.")); + MojoGui_ncurses_msgbox(failtitle, failstr); + free(failstr); + free(failtitle); + } // else + } // else + free(text); + } // while + + free(prompt); + + return retval; +} // MojoGui_ncurses_productkey + + +static boolean MojoGui_ncurses_insertmedia(const char *medianame) +{ + char *fmt = xstrdup(_("Please insert '%0'")); + char *text = format(fmt, medianame); + char *localized_ok = xstrdup(_("OK")); + char *localized_cancel = xstrdup(_("Cancel")); + char *buttons[] = { localized_ok, localized_cancel }; + MojoBox *mojobox = NULL; + int rc = 0; + + mojobox = makeBox(_("Media change"), text, buttons, 2, false, true); + while ((rc = upkeepBox(&mojobox, wgetch(mojobox->mainwin))) == -1) {} + + freeBox(mojobox, true); + free(localized_cancel); + free(localized_ok); + free(text); + free(fmt); + return (rc == 0); +} // MojoGui_ncurses_insertmedia + + +static void MojoGui_ncurses_progressitem(void) +{ + // no-op in this UI target. +} // MojoGui_ncurses_progressitem + + +static boolean MojoGui_ncurses_progress(const char *type, const char *component, + int percent, const char *item, + boolean can_cancel) +{ + const uint32 now = ticks(); + boolean rebuild = (progressBox == NULL); + int ch = 0; + int rc = -1; + + if ( (lastComponent == NULL) || + (strcmp(lastComponent, component) != 0) || + (lastProgressType == NULL) || + (strcmp(lastProgressType, type) != 0) || + (lastCanCancel != can_cancel) ) + { + free(lastProgressType); + free(lastComponent); + lastProgressType = xstrdup(type); + lastComponent = xstrdup(component); + lastCanCancel = can_cancel; + rebuild = true; + } // if + + if (rebuild) + { + int w, h; + char *text = NULL; + char *localized_cancel = (can_cancel) ? xstrdup(_("Cancel")) : NULL; + char *buttons[] = { localized_cancel }; + const int buttoncount = (can_cancel) ? 1 : 0; + char *spacebuf = NULL; + getmaxyx(stdscr, h, w); + w -= 10; + text = (char *) xmalloc((w * 3) + 16); + if (snprintf(text, w, "%s", component) > (w-4)) + strcpy((text+w)-4, "..."); // !!! FIXME: Unicode problem. + strcat(text, "\n\n"); + spacebuf = (char *) xmalloc(w+1); + memset(spacebuf, ' ', w); // xmalloc provides null termination. + strcat(text, spacebuf); + free(spacebuf); + strcat(text, "\n\n "); + + freeBox(progressBox, false); + progressBox = makeBox(type, text, buttons, buttoncount, true, true); + free(text); + free(localized_cancel); + } // if + + // limit update spam... will only write every one second, tops. + if ((rebuild) || (percentTicks <= now)) + { + static boolean unknownToggle = false; + char *buf = NULL; + WINDOW *win = progressBox->textwin; + int w, h; + getmaxyx(win, h, w); + w -= 2; + buf = (char *) xmalloc(w+1); + + if (percent < 0) + { + const boolean origToggle = unknownToggle; + int i; + wmove(win, h-3, 1); + for (i = 0; i < w; i++) + { + if (unknownToggle) + waddch(win, ' ' | COLOR_PAIR(MOJOCOLOR_TODO)); + else + waddch(win, ' ' | COLOR_PAIR(MOJOCOLOR_DONE)); + unknownToggle = !unknownToggle; + } // for + unknownToggle = !origToggle; // animate by reversing next time. + } // if + else + { + int cells = (int) ( ((double) w) * (((double) percent) / 100.0) ); + snprintf(buf, w+1, "%d%%", percent); + mvwaddstr(win, h-3, ((w+2) - utf8len(buf)) / 2, buf); + mvwchgat(win, h-3, 1, cells, A_BOLD, MOJOCOLOR_DONE, NULL); + mvwchgat(win, h-3, 1+cells, w-cells, A_BOLD, MOJOCOLOR_TODO, NULL); + } // else + + wtouchln(win, h-3, 1, 1); // force reattributed cells to update. + + if (snprintf(buf, w+1, "%s", item) > (w-4)) + strcpy((buf+w)-4, "..."); // !!! FIXME: Unicode problem. + mvwhline(win, h-2, 1, ' ', w); + mvwaddstr(win, h-2, ((w+2) - utf8len(buf)) / 2, buf); + + free(buf); + wrefresh(win); + + percentTicks = now + 1000; + } // if + + // !!! FIXME: check for input here for cancel button, resize, etc... + ch = wgetch(progressBox->mainwin); + if (ch == KEY_RESIZE) + { + freeBox(progressBox, false); + progressBox = NULL; + } // if + else if (ch == ERR) // can't distinguish between an error and a timeout! + { + // do nothing... + } // else if + else + { + rc = upkeepBox(&progressBox, ch); + } // else + + return (rc == -1); +} // MojoGui_ncurses_progress + + +static void MojoGui_ncurses_final(const char *msg) +{ + char *title = xstrdup(_("Finish")); + MojoGui_ncurses_msgbox(title, msg); + free(title); +} // MojoGui_ncurses_final + +// end of gui_ncurses.c ... + diff --git a/mk/linux/mojosetup/gui_stdio.c b/mk/linux/mojosetup/gui_stdio.c new file mode 100644 index 00000000..e5f24db8 --- /dev/null +++ b/mk/linux/mojosetup/gui_stdio.c @@ -0,0 +1,631 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#if !SUPPORT_GUI_STDIO +#error Something is wrong in the build system. +#endif + +#define BUILDING_EXTERNAL_PLUGIN 1 +#include "gui.h" + +MOJOGUI_PLUGIN(stdio) + +#if !GUI_STATIC_LINK_STDIO +CREATE_MOJOGUI_ENTRY_POINT(stdio) +#endif + +#include + +static char *lastProgressType = NULL; +static char *lastComponent = NULL; +static uint32 percentTicks = 0; + +static int read_stdin(char *buf, int len) +{ + if (fgets(buf, len, stdin) == NULL) + return -1; + + len = strlen(buf) - 1; + while ( (len >= 0) && ((buf[len] == '\n') || (buf[len] == '\r')) ) + buf[len--] = '\0'; + + return len+1; +} // read_stdin + + +static int readstr(const char *prompt, char *buf, int len, + boolean back, boolean fwd) +{ + // !!! FIXME: if read_stdin() returns -1, we return 0, which makes it + // !!! FIXME: indistinguishable from "user hit enter" ... maybe we should + // !!! FIXME: abort in read_stdin() if i/o fails? + + int retval = 0; + char *backstr = (back) ? xstrdup(_("back")) : NULL; + + if (prompt != NULL) + printf("%s\n", prompt); + + if (back) + { + char *fmt = xstrdup(_("Type '%0' to go back.")); + char *msg = format(fmt, backstr); + printf("%s\n", msg); + free(msg); + free(fmt); + } // if + + if (fwd) + { + printf("%s", _("Press enter to continue.")); + printf("\n"); + } // if + + printf("%s",_("> ")); + fflush(stdout); + + if ((retval = read_stdin(buf, len)) >= 0) + { + if ((back) && (strcmp(buf, backstr) == 0)) // !!! FIXME: utf8casecmp? + retval = -1; + } // if + + free(backstr); + return retval; +} // readstr + + +static uint8 MojoGui_stdio_priority(boolean istty) +{ + // if not a tty and no other GUI plugins worked out, let the base + // application try to spawn a terminal and try again. If it can't do so, + // it will panic() and thus end the process, so we don't end up blocking + // on some prompt the user can't see. + + if (!istty) + return MOJOGUI_PRIORITY_NEVER_TRY; + + return MOJOGUI_PRIORITY_TRY_ABSOLUTELY_LAST; // always a last resort. +} // MojoGui_stdio_priority + + +static boolean MojoGui_stdio_init(void) +{ + percentTicks = 0; + return true; // always succeeds. +} // MojoGui_stdio_init + + +static void MojoGui_stdio_deinit(void) +{ + free(lastProgressType); + free(lastComponent); + lastProgressType = NULL; + lastComponent = NULL; +} // MojoGui_stdio_deinit + + +static void MojoGui_stdio_msgbox(const char *title, const char *text) +{ + char buf[128]; + char *fmt = xstrdup(_("NOTICE: %0\n[hit enter]")); + char *msg = format(fmt, text); + printf("%s\n", msg); + free(msg); + free(fmt); + fflush(stdout); + read_stdin(buf, sizeof (buf)); +} // MojoGui_stdio_msgbox + + +static boolean MojoGui_stdio_promptyn(const char *title, const char *text, + boolean defval) +{ + boolean retval = false; + if (!feof(stdin)) + { + const char *_fmt = ((defval) ? _("%0 [Y/n]: ") : _("%0 [y/N]: ")); + char *fmt = xstrdup(_fmt); + char *msg = format(fmt, text); + char *localized_no = xstrdup(_("N")); + char *localized_yes = xstrdup(_("Y")); + boolean getout = false; + char buf[128]; + + while (!getout) + { + int rc = 0; + + getout = true; // we may reset this later. + printf("%s", msg); + fflush(stdout); + rc = read_stdin(buf, sizeof (buf)); + + if (rc < 0) + retval = false; + else if (rc == 0) + retval = defval; + else if (strcasecmp(buf, localized_no) == 0) + retval = false; + else if (strcasecmp(buf, localized_yes) == 0) + retval = true; + else + getout = false; // try again. + } // while + + free(localized_yes); + free(localized_no); + free(msg); + free(fmt); + } // if + + return retval; +} // MojoGui_stdio_promptyn + + +static MojoGuiYNAN MojoGui_stdio_promptynan(const char *title, const char *txt, + boolean defval) +{ + MojoGuiYNAN retval = MOJOGUI_NO; + if (!feof(stdin)) + { + char *fmt = xstrdup(_("%0\n[y/n/Always/Never]: ")); + char *msg = format(fmt, txt); + char *localized_no = xstrdup(_("N")); + char *localized_yes = xstrdup(_("Y")); + char *localized_always = xstrdup(_("Always")); + char *localized_never = xstrdup(_("Never")); + boolean getout = false; + char buf[128]; + + while (!getout) + { + int rc = 0; + + getout = true; // we may reset this later. + printf("%s\n", msg); + fflush(stdout); + rc = read_stdin(buf, sizeof (buf)); + + if (rc < 0) + retval = MOJOGUI_NO; + else if (rc == 0) + retval = (defval) ? MOJOGUI_YES : MOJOGUI_NO; + else if (strcasecmp(buf, localized_no) == 0) + retval = MOJOGUI_NO; + else if (strcasecmp(buf, localized_yes) == 0) + retval = MOJOGUI_YES; + else if (strcasecmp(buf, localized_always) == 0) + retval = MOJOGUI_ALWAYS; + else if (strcasecmp(buf, localized_never) == 0) + retval = MOJOGUI_NEVER; + else + getout = false; // try again. + } // while + + free(localized_never); + free(localized_always); + free(localized_yes); + free(localized_no); + free(msg); + free(fmt); + } // if + + return retval; +} // MojoGui_stdio_promptynan + + +static boolean MojoGui_stdio_start(const char *title, + const MojoGuiSplash *splash) +{ + printf("%s\n", title); + return true; +} // MojoGui_stdio_start + + +static void MojoGui_stdio_stop(void) +{ + // no-op. +} // MojoGui_stdio_stop + + +static void dumb_pager(const char *name, const char *data, size_t datalen) +{ + const int MAX_PAGE_LINES = 21; + char *fmt = xstrdup(_("(%0-%1 of %2 lines, see more?)")); + int i = 0; + int w = 0; + int linecount = 0; + boolean getout = false; + char **lines = splitText(data, 80, &linecount, &w); + + assert(linecount >= 0); + + printf("%s\n", name); + + if (lines == NULL) // failed to parse?! + printf("%s\n", data); // just dump it all. Oh well. + else + { + int printed = 0; + do + { + for (i = 0; (i < MAX_PAGE_LINES) && (printed < linecount); i++) + printf("%s", lines[printed++]); + + if (printed >= linecount) + getout = true; + else + { + char *msg = NULL; + printf("\n"); + msg = format(fmt, numstr((printed-i)+1), + numstr(printed), numstr(linecount)); + getout = !MojoGui_stdio_promptyn("", msg, true); + free(msg); + printf("\n"); + } // else + } while (!getout); + } // while + + for (i = 0; i < linecount; i++) + free(lines[i]); + free(lines); + free(fmt); +} // dumb_pager + + +static int MojoGui_stdio_readme(const char *name, const uint8 *_data, + size_t datalen, boolean can_back, + boolean can_fwd) +{ + const char *data = (const char *) _data; + char buf[256]; + int retval = -1; + boolean failed = true; + + // !!! FIXME: popen() isn't reliable. + #if 0 //PLATFORM_UNIX + const size_t namelen = strlen(name); + const char *programs[] = { getenv("PAGER"), "more", "less -M", "less" }; + int i = 0; + + // flush streams, so output doesn't mingle with the popen()'d process. + fflush(stdout); + fflush(stderr); + + for (i = 0; i < STATICARRAYLEN(programs); i++) + { + const char *cmd = programs[i]; + if (cmd != NULL) + { + FILE *io = popen(cmd, "w"); + if (io != NULL) + { + failed = false; + if (!failed) failed = (fwrite("\n", 1, 1, io) != 1); + if (!failed) failed = (fwrite(name, namelen, 1, io) != 1); + if (!failed) failed = (fwrite("\n", 1, 1, io) != 1); + if (!failed) failed = (fwrite(data, datalen, 1, io) != 1); + if (!failed) failed = (fwrite("\n", 1, 1, io) != 1); + failed |= (pclose(io) != 0); // call whether we failed or not. + if (!failed) + break; // it worked, we're done! + } // if + } // if + } // for + #endif // PLATFORM_UNIX + + if (failed) // We're not Unix, or none of the pagers worked? + dumb_pager(name, data, datalen); + + // Put up the "hit enter to continue (or 'back' to go back)" prompt, + // but only if there's an choice to be made here. + if ((!can_back) || (readstr(NULL, buf, sizeof (buf), can_back, true) >= 0)) + retval = 1; + + return retval; +} // MojoGui_stdio_readme + + +static void toggle_option(MojoGuiSetupOptions *parent, + MojoGuiSetupOptions *opts, int *line, int target) +{ + if ((opts != NULL) && (target > *line)) + { + if (!opts->is_group_parent) + { + if (++(*line) == target) + { + const boolean toggled = ((opts->value) ? false : true); + + // "radio buttons" in a group? + if ((parent) && (parent->is_group_parent)) + { + if (toggled) // drop unless we weren't the current toggle. + { + // set all siblings to false... + MojoGuiSetupOptions *i = parent->child; + while (i != NULL) + { + i->value = false; + i = i->next_sibling; + } // while + opts->value = true; // reset us to be true. + } // if + } // if + + else // individual "check box" was chosen. + { + opts->value = toggled; + } // else + + return; // we found it, bail. + } // if + } // if + + if (opts->value) // if option is toggled on, descend to children. + toggle_option(opts, opts->child, line, target); + toggle_option(parent, opts->next_sibling, line, target); + } // if +} // toggle_option + + +static void print_options(MojoGuiSetupOptions *opts, int *line, int level) +{ + if (opts != NULL) + { + int i; + int spacing = 1; + if (opts->is_group_parent) + spacing += 6; + else + { + (*line)++; + printf("%2d [%c]", *line, opts->value ? 'X' : ' '); + } // else + + for (i = 0; i < (level + spacing); i++) + putchar(' '); + + printf("%s%s\n", opts->description, opts->is_group_parent ? ":" : ""); + + if ((opts->value) || (opts->is_group_parent)) + print_options(opts->child, line, level+1); + print_options(opts->next_sibling, line, level); + } // if +} // print_options + + +static int MojoGui_stdio_options(MojoGuiSetupOptions *opts, + boolean can_back, boolean can_fwd) +{ + const char *inst_opts_str = xstrdup(_("Options")); + const char *prompt = xstrdup(_("Choose number to change.")); + int retval = -1; + boolean getout = false; + char buf[128]; + int len = 0; + + while (!getout) + { + int line = 0; + + printf("\n\n"); + printf("%s", inst_opts_str); + printf("\n"); + print_options(opts, &line, 1); + printf("\n"); + + if ((len = readstr(prompt, buf, sizeof (buf), can_back, true)) < 0) + getout = true; + else if (len == 0) + { + getout = true; + retval = 1; + } // else if + else + { + char *endptr = NULL; + int target = (int) strtol(buf, &endptr, 10); + if (*endptr == '\0') // complete string was a valid number? + { + line = 0; + toggle_option(NULL, opts, &line, target); + } // if + } // else + } // while + + free((void *) inst_opts_str); + free((void *) prompt); + + return retval; +} // MojoGui_stdio_options + + +static char *MojoGui_stdio_destination(const char **recommends, int recnum, + int *command, boolean can_back, + boolean can_fwd) +{ + const char *instdeststr = xstrdup(_("Destination")); + const char *prompt = NULL; + char *retval = NULL; + boolean getout = false; + char buf[128]; + int len = 0; + int i = 0; + + *command = -1; + + if (recnum > 0) + prompt = xstrdup(_("Choose install destination by number (hit enter for #1), or enter your own.")); + else + prompt = xstrdup(_("Enter path where files will be installed.")); + + while (!getout) + { + printf("\n\n%s\n", instdeststr); + for (i = 0; i < recnum; i++) + printf(" %2d %s\n", i+1, recommends[i]); + printf("\n"); + + if ((len = readstr(prompt, buf, sizeof (buf), can_back, false)) < 0) + getout = true; + + else if ((len == 0) && (recnum > 0)) // default to first in list. + { + retval = xstrdup(recommends[0]); + *command = 1; + getout = true; + } // else if + + else if (len > 0) + { + char *endptr = NULL; + int target = (int) strtol(buf, &endptr, 10); + // complete string was a valid number? + if ((*endptr == '\0') && (target > 0) && (target <= recnum)) + retval = xstrdup(recommends[target-1]); + else + retval = xstrdup(buf); + + *command = 1; + getout = true; + } // else + } // while + + free((void *) prompt); + free((void *) instdeststr); + + return retval; +} // MojoGui_stdio_destination + + +static int MojoGui_stdio_productkey(const char *desc, const char *fmt, + char *buf, const int buflen, + boolean can_back, boolean can_fwd) +{ + const char *prompt = xstrdup(_("Please enter your product key")); + char *defval = ((*buf) ? xstrdup(buf) : NULL); + boolean getout = false; + int retval = -1; + char *msg = NULL; + + if (defval != NULL) + { + char *locfmt = xstrdup(_("(just press enter to use '%0')")); + msg = format(locfmt, defval); + free(locfmt); + } // if + + while (!getout) + { + int len; + printf("\n\n%s\n", desc); + if (msg != NULL) + printf("%s\n", msg); + if ((len = readstr(prompt, buf, buflen, can_back, false)) < 0) + getout = true; + else + { + if ((len == 0) && (defval != NULL)) + strcpy(buf, defval); + + if (isValidProductKey(fmt, buf)) + { + retval = 1; + getout = true; + } // else if + else + { + // We can't check the input character-by-character, so reuse + // the failed-verification localized string. + printf("\n%s\n\n", + _("That key appears to be invalid. Please try again.")); + } // else + } // else + } // while + + free(msg); + free(defval); + free((void *) prompt); + + return retval; +} // MojoGui_stdio_productkey + + +static boolean MojoGui_stdio_insertmedia(const char *medianame) +{ + char buf[32]; + char *fmt = xstrdup(_("Please insert '%0'")); + char *msg = format(fmt, medianame); + printf("%s\n", _("Media change")); + printf("%s\n", msg); + free(msg); + free(fmt); + return (readstr(NULL, buf, sizeof (buf), false, true) >= 0); +} // MojoGui_stdio_insertmedia + + +static void MojoGui_stdio_progressitem(void) +{ + // force new line of output on next call to MojoGui_stdio_progress() + percentTicks = 0; +} // MojoGui_stdio_progressitem + + +static boolean MojoGui_stdio_progress(const char *type, const char *component, + int percent, const char *item, + boolean can_cancel) +{ + const uint32 now = ticks(); + + if ( (lastComponent == NULL) || + (strcmp(lastComponent, component) != 0) || + (lastProgressType == NULL) || + (strcmp(lastProgressType, type) != 0) ) + { + free(lastProgressType); + free(lastComponent); + lastProgressType = xstrdup(type); + lastComponent = xstrdup(component); + printf("%s\n%s\n", type, component); + } // if + + // limit update spam... will only write every one second, tops, + // on any given filename, but it writes each filename at least once + // so it doesn't look like we only installed a few things. + if (percentTicks <= now) + { + char *fmt = NULL; + char *msg = NULL; + percentTicks = now + 1000; + if (percent < 0) + printf("%s\n", item); + else + { + fmt = xstrdup(_("%0 (total progress: %1%%)")); + msg = format(fmt, item, numstr(percent)); + printf("%s\n", msg); + free(msg); + free(fmt); + } // else + } // if + + return true; +} // MojoGui_stdio_progress + + +static void MojoGui_stdio_final(const char *msg) +{ + printf("%s\n\n", msg); + fflush(stdout); +} // MojoGui_stdio_final + +// end of gui_stdio.c ... + diff --git a/mk/linux/mojosetup/gui_www.c b/mk/linux/mojosetup/gui_www.c new file mode 100644 index 00000000..a2459ba9 --- /dev/null +++ b/mk/linux/mojosetup/gui_www.c @@ -0,0 +1,1116 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#if !SUPPORT_GUI_WWW +#error Something is wrong in the build system. +#endif + +#define BUILDING_EXTERNAL_PLUGIN 1 +#include "gui.h" + +MOJOGUI_PLUGIN(www) + +#if !GUI_STATIC_LINK_WWW +CREATE_MOJOGUI_ENTRY_POINT(www) +#endif + +#include + +#define FREE_AND_NULL(x) { free(x); x = NULL; } + +// tapdance between things WinSock and BSD Sockets define differently... +#if PLATFORM_WINDOWS + #include + + typedef int socklen_t; + + #define setprotoent(x) assert(x == 0) + #define sockErrno() WSAGetLastError() + #define wouldBlockError(err) (err == WSAEWOULDBLOCK) + #define intrError(err) (err == WSAEINTR) + + static inline void setBlocking(SOCKET s, boolean blocking) + { + u_long val = (blocking) ? 0 : 1; + ioctlsocket(s, FIONBIO, &val); + } // setBlocking + + static const char *sockStrErrVal(int val) + { + STUBBED("Windows strerror"); + return "sockStrErrVal() is unimplemented."; + } // sockStrErrVal + + + static boolean initSocketSupport(void) + { + WSADATA data; + int rc = WSAStartup(MAKEWORD(1, 1), &data); + if (rc != 0) + { + logError("www: WSAStartup() failed: %0", sockStrErrVal(rc)); + return false; + } // if + + logInfo("www: WinSock initialized (want %0.%1, got %2.%3).", + numstr((int) (LOBYTE(data.wVersion))), + numstr((int) (HIBYTE(data.wVersion))), + numstr((int) (LOBYTE(data.wHighVersion))), + numstr((int) (HIBYTE(data.wHighVersion)))); + logInfo("www: WinSock description: %0", data.szDescription); + logInfo("www: WinSock system status: %0", data.szSystemStatus); + logInfo("www: WinSock max sockets: %0", numstr((int) data.iMaxSockets)); + + return true; + } // initSocketSupport + + #define deinitSocketSupport() WSACleanup() + +#else + #include + #include + #include + #include + #include + #include + #include + #include + #include + + typedef int SOCKET; + + #define SOCKET_ERROR (-1) + #define INVALID_SOCKET (-1) + #define closesocket(x) close(x) + #define sockErrno() (errno) + #define sockStrErrVal(val) strerror(val) + #define intrError(err) (err == EINTR) + #define initSocketSupport() (true) + #define deinitSocketSupport() + + static inline boolean wouldBlockError(int err) + { + return ((err == EWOULDBLOCK) || (err == EAGAIN)); + } // wouldBlockError + + static void setBlocking(SOCKET s, boolean blocking) + { + int flags = fcntl(s, F_GETFL, 0); + if (blocking) + flags &= ~O_NONBLOCK; + else + flags |= O_NONBLOCK; + fcntl(s, F_SETFL, flags); + } // setBlocking + +#endif + +#define sockStrError() (sockStrErrVal(sockErrno())) + + +typedef struct _S_WebRequest +{ + char *key; + char *value; + struct _S_WebRequest *next; +} WebRequest; + + +static char *output = NULL; +static char *lastProgressType = NULL; +static char *lastComponent = NULL; +static char *baseUrl = NULL; +static WebRequest *webRequest = NULL; +static uint32 percentTicks = 0; +static SOCKET listenSocket = INVALID_SOCKET; +static SOCKET clientSocket = INVALID_SOCKET; + + +static uint8 MojoGui_www_priority(boolean istty) +{ + return MOJOGUI_PRIORITY_TRY_LAST; +} // MojoGui_www_priority + + +static void freeWebRequest(void) +{ + while (webRequest) + { + WebRequest *next = webRequest->next; + free(webRequest->key); + free(webRequest->value); + free(webRequest); + webRequest = next; + } // while +} // freeWebRequest + + +static void addWebRequest(const char *key, const char *val) +{ + if ((key != NULL) && (*key != '\0')) + { + WebRequest *req = (WebRequest *) xmalloc(sizeof (WebRequest)); + req->key = xstrdup(key); + req->value = xstrdup(val); + req->next = webRequest; + webRequest = req; + logDebug("www: request element '%0' = '%1'", key, val); + } // if +} // addWebRequest + + +static int hexVal(char ch) +{ + if ((ch >= 'a') && (ch <= 'f')) + return (ch - 'a') + 10; + else if ((ch >= 'A') && (ch <= 'F')) + return (ch - 'A') + 10; + else if ((ch >= '0') && (ch <= '9')) + return (ch - '0'); + return -1; +} // hexVal + + +static void unescapeUri(char *uri) +{ + char *ptr = uri; + while ((ptr = strchr(ptr, '%')) != NULL) + { + int a, b; + if ((a = hexVal(ptr[1])) != -1) + { + if ((b = hexVal(ptr[2])) != -1) + { + *(ptr++) = (char) ((a * 16) + b); + memmove(ptr, ptr+2, strlen(ptr+1)); + } // if + else + { + *(ptr++) = '?'; + memmove(ptr, ptr+1, strlen(ptr)); + } // else + } // if + else + { + *(ptr++) = '?'; + } // else + } // while +} // unescapeUri + + +static int strAdd(char **ptr, size_t *len, size_t *alloc, const char *fmt, ...) +{ + size_t bw = 0; + size_t avail = *alloc - *len; + va_list ap; + va_start(ap, fmt); + bw = vsnprintf(*ptr + *len, avail, fmt, ap); + va_end(ap); + + if (bw >= avail) + { + const size_t add = (*alloc + (bw + 1)); // double plus the new len. + *alloc += add; + avail += add; + *ptr = xrealloc(*ptr, *alloc); + va_start(ap, fmt); + bw = vsnprintf(*ptr + *len, avail, fmt, ap); + va_end(ap); + } // if + + *len += bw; + return bw; +} // strAdd + + +static char *htmlescape(const char *str) +{ + size_t len = 0, alloc = 0; + char *retval = NULL; + char ch; + + while ((ch = *(str++)) != '\0') + { + switch (ch) + { + case '&': strAdd(&retval, &len, &alloc, "&"); break; + case '<': strAdd(&retval, &len, &alloc, "<"); break; + case '>': strAdd(&retval, &len, &alloc, ">"); break; + case '"': strAdd(&retval, &len, &alloc, """); break; + case '\'': strAdd(&retval, &len, &alloc, "'"); break; + default: strAdd(&retval, &len, &alloc, "%c", ch); break; + } // switch + } // while + + return retval; +} // htmlescape + + +static const char *standardResponseHeaders = + "Content-Type: text/html; charset=utf-8\n" + "Accept-Ranges: none\n" + "Cache-Control: no-cache\n" + "Connection: close\n\n"; + + +static void setHtmlString(char **str, int responseCode, + const char *responseString, + const char *title, const char *html) +{ + size_t len = 0, alloc = 0; + FREE_AND_NULL(*str); + strAdd(str, &len, &alloc, + "HTTP/1.1 %d %s\n" // responseCode, responseString + "%s" // standardResponseHeaders + "" + "" + "%s" // title + "" + "%s" // html + "\n", + responseCode, responseString, + standardResponseHeaders, + title, html); +} // setHtmlString + + +static void setHtml(const char *title, const char *html) +{ + setHtmlString(&output, 200, "OK", title, html); +} // setHtml + + +static void sendStringAndDrop(SOCKET *_s, const char *str) +{ + SOCKET s = *_s; + int outlen = 0; + if (str == NULL) + str = ""; + else + outlen = strlen(str); + + setBlocking(s, true); + + while (outlen > 0) + { + int rc = send(s, str, outlen, 0); + if (rc != SOCKET_ERROR) + { + str += rc; + outlen -= rc; + } // if + else + { + const int err = sockErrno(); + if (!intrError(err)) + { + logError("www: send() failed: %0", sockStrErrVal(err)); + break; + } // if + } // else + } // while + + closesocket(s); + *_s = INVALID_SOCKET; +} // sendStringAndDrop + + +static void respond404(SOCKET *s) +{ + char *text = htmlescape(_("Not Found")); + char *str = NULL; + size_t len = 0, alloc = 0; + char *html = NULL; + strAdd(&html, &len, &alloc, "

      %s

      ", text); + setHtmlString(&str, 404, text, text, html); + free(html); + free(text); + sendStringAndDrop(s, str); + free(str); +} // respond404 + + +static boolean parseGet(char *get) +{ + char *uri = NULL; + char *ver = NULL; + + uri = strchr(get, ' '); + if (uri == NULL) return false; + *(uri++) = '\0'; + + ver = strchr(uri, ' '); + if (ver == NULL) return false; + *(ver++) = '\0'; + + if (strcmp(get, "GET") != 0) return false; + if (uri[0] != '/') return false; + uri++; // skip dirsep. + + // !!! FIXME: we may want to feed stock files ( tags, etc) + // !!! FIXME: at some point in the future. + if ((uri[0] != '?') && (uri[0] != '\0')) return false; + if (strncmp(ver, "HTTP/", 5) != 0) return false; + + if (*uri == '?') + uri++; // skip initial argsep. + + do + { + char *next = strchr(uri, '&'); + char *val = NULL; + if (next != NULL) + *(next++) = '\0'; + + val = strchr(uri, '='); + if (val == NULL) + val = ""; + else + *(val++) = '\0'; + + unescapeUri(uri); + unescapeUri(val); + addWebRequest(uri, val); + + uri = next; + } while (uri != NULL); + + return true; +} // parseGet + + +static boolean parseRequest(char *reqstr) +{ + do + { + char *next = strchr(reqstr, '\n'); + char *val = NULL; + if (next != NULL) + *(next++) = '\0'; + + val = strchr(reqstr, ':'); + if (val == NULL) + val = ""; + else + { + *(val++) = '\0'; + while (*val == ' ') + val++; + } // else + + if (*reqstr != '\0') + { + size_t len = 0, alloc = 0; + char *buf = NULL; + strAdd(&buf, &len, &alloc, "HTTP-%s", reqstr); + addWebRequest(buf, val); + free(buf); + } // if + + reqstr = next; + } while (reqstr != NULL); + + return true; +} // parseRequest + + + +static WebRequest *servePage(boolean blocking) +{ + int newline = 0; + char ch = 0; + struct sockaddr_in addr; + socklen_t addrlen = 0; + int s = 0; + char *reqstr = NULL; + size_t len = 0, alloc = 0; + int err = 0; + + freeWebRequest(); + + if (listenSocket == INVALID_SOCKET) + return NULL; + + if (clientSocket != INVALID_SOCKET) // response to feed to client. + sendStringAndDrop(&clientSocket, output); + + if (blocking) + setBlocking(listenSocket, true); + + do + { + s = accept(listenSocket, (struct sockaddr *) &addr, &addrlen); + err = sockErrno(); + } while ( (s == INVALID_SOCKET) && (intrError(err)) ); + + if (blocking) + setBlocking(listenSocket, false); // reset what we toggled up there. + + if (s == INVALID_SOCKET) + { + if (wouldBlockError(err)) + assert(!blocking); + else + { + logError("www: accept() failed: %0", sockStrErrVal(err)); + closesocket(listenSocket); // make all future i/o fail too. + listenSocket = INVALID_SOCKET; + } // else + return NULL; + } // if + + setBlocking(s, true); + + // Doing this one char at a time isn't efficient, but it's easy. + + while (1) + { + if (recv(s, &ch, 1, 0) == SOCKET_ERROR) + { + const int err = sockErrno(); + if (!intrError(err)) // just try again on interrupt. + { + logError("www: recv() failed: %0", sockStrErrVal(err)); + FREE_AND_NULL(reqstr); + closesocket(s); + s = INVALID_SOCKET; + break; + } // if + } // if + + else if (ch == '\n') // newline + { + if (++newline == 2) + break; // end of request. + strAdd(&reqstr, &len, &alloc, "\n"); + } // if + + else if (ch != '\r') + { + newline = 0; + strAdd(&reqstr, &len, &alloc, "%c", ch); + } // else if + } // while + + if (reqstr != NULL) + { + char *get = NULL; + char *ptr = strchr(reqstr, '\n'); + if (ptr != NULL) + { + *ptr = '\0'; + ptr++; + } // if + + // reqstr is the GET (or whatever) request, ptr is the rest. + get = xstrdup(reqstr); + if (ptr == NULL) + { + *ptr = '\0'; + len = 0; + } // if + else + { + len = strlen(ptr); + memmove(reqstr, ptr, len+1); + } // else + + logDebug("www: request '%0'", get); + + // okay, now (get) and (reqptr) are separate strings. + // These parse*() functions update (webRequest). + if ( (parseGet(get)) && (parseRequest(reqstr)) ) + logDebug("www: accepted request"); + else + { + logError("www: rejected bogus request"); + freeWebRequest(); + respond404(&s); + } // else + + free(reqstr); + free(get); + } // if + + clientSocket = s; + return webRequest; +} // servePage + + +static SOCKET create_listen_socket(short portnum) +{ + SOCKET s = INVALID_SOCKET; + int protocol = 0; // pray this is right. + struct protoent *prot; + + setprotoent(0); + prot = getprotobyname("tcp"); + if (prot != NULL) + protocol = prot->p_proto; + + s = socket(PF_INET, SOCK_STREAM, protocol); + if (s == INVALID_SOCKET) + logInfo("www: socket() failed ('%0')", sockStrError()); + else + { + boolean success = false; + struct sockaddr_in addr; + addr.sin_family = AF_INET; + addr.sin_port = htons(portnum); + addr.sin_addr.s_addr = INADDR_ANY; // !!! FIXME: bind to localhost. + + // So we can bind this socket over and over in debug runs... + #if ((!defined _NDEBUG) && (!defined NDEBUG)) + { + int on = 1; + setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char*) &on, sizeof (on)); + } + #endif + + if (bind(s, (struct sockaddr *) &addr, sizeof (addr)) == SOCKET_ERROR) + logError("www: bind() failed ('%0')", sockStrError()); + else if (listen(s, 5) == SOCKET_ERROR) + logError("www: listen() failed ('%0')", sockStrError()); + else + { + logInfo("www: socket created on port %0", + numstr(portnum)); + success = true; + } // else + + if (!success) + { + closesocket(s); + s = INVALID_SOCKET; + } // if + } // if + + return s; +} // create_listen_socket + + +static boolean MojoGui_www_init(void) +{ + size_t len = 0, alloc = 0; + short portnum = 7341; // !!! FIXME: try some random ports. + percentTicks = 0; + + if (!initSocketSupport()) + { + logInfo("www: socket subsystem init failed, use another UI."); + return false; + } // if + + listenSocket = create_listen_socket(portnum); + if (listenSocket < 0) + { + logInfo("www: no listen socket, use another UI."); + return false; + } // if + + setBlocking(listenSocket, false); + + strAdd(&baseUrl, &len, &alloc, "http://localhost:%d/", (int) portnum); + return true; +} // MojoGui_www_init + + +static void MojoGui_www_deinit(void) +{ + // Catch any waiting browser connections...and tell them to buzz off! :) + char *donetitle = htmlescape(_("Shutting down...")); + char *donetext = htmlescape(_("You can close this browser now.")); + size_t len = 0, alloc = 0; + char *html = NULL; + + strAdd(&html, &len, &alloc, "
      %s

      ", donetext); + setHtml(donetitle, html); + free(html); + free(donetitle); + free(donetext); + while (servePage(false) != NULL) { /* no-op. */ } + + freeWebRequest(); + FREE_AND_NULL(output); + FREE_AND_NULL(lastProgressType); + FREE_AND_NULL(lastComponent); + FREE_AND_NULL(baseUrl); + + if (clientSocket != INVALID_SOCKET) + { + closesocket(clientSocket); + clientSocket = INVALID_SOCKET; + } // if + + if (listenSocket != INVALID_SOCKET) + { + closesocket(listenSocket); + listenSocket = INVALID_SOCKET; + } // if + + deinitSocketSupport(); +} // MojoGui_www_deinit + + +static int doPromptPage(const char *title, const char *text, boolean centertxt, + const char *pagename, + const char **buttons, const char **locButtons, + int bcount) +{ + char *htmltitle = htmlescape(title); + boolean sawPage = false; + int answer = -1; + int i = 0; + char *html = NULL; + size_t len = 0, alloc = 0; + const char *align = ((centertxt) ? " align='center'" : ""); + + strAdd(&html, &len, &alloc, + "
      " + "
      " // pagename + "" // pagename + "" + "%s" // align, text + "" + "" + "" + "
      ", pagename, pagename, align, text); + + for (i = 0; i < bcount; i++) + { + const char *button = buttons[i]; + const char *loc = locButtons[i]; + strAdd(&html, &len, &alloc, + "", button, loc); + } // for + + strAdd(&html, &len, &alloc, + "
      " + "
      " + "
      "); + + setHtml(htmltitle, html); + free(htmltitle); + free(html); + + while ((!sawPage) || (answer == -1)) + { + WebRequest *req = servePage(true); + sawPage = false; + answer = -1; + while (req != NULL) + { + const char *k = req->key; + const char *v = req->value; + if ( (strcmp(k, "page") == 0) && (strcmp(v, pagename) == 0) ) + sawPage = true; + else + { + for (i = 0; i < bcount; i++) + { + if (strcmp(k, buttons[i]) == 0) + { + answer = i; + break; + } // if + } // for + } // else + + req = req->next; + } // while + } // while + + return answer; +} // doPromptPage + + +static void MojoGui_www_msgbox(const char *title, const char *text) +{ + const char *buttons[] = { "ok" }; + const char *locButtons[] = { htmlescape(_("OK")) }; + char *htmltext = htmlescape(text); + doPromptPage(title, htmltext, true, "msgbox", buttons, locButtons, 1); + free(htmltext); + free((void *) locButtons[0]); +} // MojoGui_www_msgbox + + +static boolean MojoGui_www_promptyn(const char *title, const char *text, + boolean defval) +{ + // !!! FIXME: + // We currently ignore defval + + int i, rc; + char *htmltext = htmlescape(text); + const char *buttons[] = { "no", "yes" }; + const char *locButtons[] = { htmlescape(_("No")), htmlescape(_("Yes")) }; + + assert(STATICARRAYLEN(buttons) == STATICARRAYLEN(locButtons)); + + rc = doPromptPage(title, htmltext, true, "promptyn", buttons, locButtons, + STATICARRAYLEN(buttons)); + free(htmltext); + + for (i = 0; i < STATICARRAYLEN(locButtons); i++) + free((void *) locButtons[i]); + + return (rc == 1); +} // MojoGui_www_promptyn + + +static MojoGuiYNAN MojoGui_www_promptynan(const char *title, const char *text, + boolean defval) +{ + // !!! FIXME: + // We currently ignore defval + + int i, rc; + char *htmltext = htmlescape(text); + const char *buttons[] = { "no", "yes", "always", "never" }; + const char *locButtons[] = { + htmlescape(_("No")), + htmlescape(_("Yes")), + htmlescape(_("Always")), + htmlescape(_("Never")), + }; + assert(STATICARRAYLEN(buttons) == STATICARRAYLEN(locButtons)); + + rc = doPromptPage(title, htmltext, true, "promptynan", buttons, locButtons, + STATICARRAYLEN(buttons)); + + free(htmltext); + for (i = 0; i < STATICARRAYLEN(locButtons); i++) + free((void *) locButtons[i]); + + return (MojoGuiYNAN) rc; +} // MojoGui_www_promptynan + + +static boolean MojoGui_www_start(const char *title, + const MojoGuiSplash *splash) +{ + return true; +} // MojoGui_www_start + + +static void MojoGui_www_stop(void) +{ + // no-op. +} // MojoGui_www_stop + + +static int MojoGui_www_readme(const char *name, const uint8 *data, + size_t datalen, boolean can_back, + boolean can_fwd) +{ + char *text = NULL; + size_t len = 0, alloc = 0; + char *htmldata = htmlescape((const char *) data); + int i, rc; + int cancelbutton = -1; + int backbutton = -1; + int fwdbutton = -1; + int bcount = 0; + const char *buttons[4] = { NULL, NULL, NULL, NULL }; + const char *locButtons[4] = { NULL, NULL, NULL, NULL }; + assert(STATICARRAYLEN(buttons) == STATICARRAYLEN(locButtons)); + + cancelbutton = bcount++; + buttons[cancelbutton] = "cancel"; + locButtons[cancelbutton] = xstrdup(_("Cancel")); + + if (can_back) + { + backbutton = bcount++; + buttons[backbutton] = "back"; + locButtons[backbutton] = xstrdup(_("Back")); + } // if + + if (can_fwd) + { + fwdbutton = bcount++; + buttons[fwdbutton] = "next"; + locButtons[fwdbutton] = xstrdup(_("Next")); + } // if + + strAdd(&text, &len, &alloc, "
      \n%s\n
      ", htmldata); + free(htmldata); + + rc = doPromptPage(name, text, false, "readme", buttons, locButtons, bcount); + + free(text); + for (i = 0; i < STATICARRAYLEN(locButtons); i++) + free((void *) locButtons[i]); + + if (rc == backbutton) + return -1; + else if (rc == cancelbutton) + return 0; + return 1; +} // MojoGui_www_readme + + +static int MojoGui_www_options(MojoGuiSetupOptions *opts, + boolean can_back, boolean can_fwd) +{ + // !!! FIXME: write me. + STUBBED("www options"); + return 1; +} // MojoGui_www_options + + +static char *MojoGui_www_destination(const char **recommends, int recnum, + int *command, boolean can_back, + boolean can_fwd) +{ + char *retval = NULL; + char *title = xstrdup(_("Destination")); + char *html = NULL; + size_t len = 0, alloc = 0; + boolean checked = true; + int cancelbutton = -1; + int backbutton = -1; + int fwdbutton = -1; + int bcount = 0; + int rc = 0; + int i = 0; + const char *buttons[4] = { NULL, NULL, NULL, NULL }; + const char *locButtons[4] = { NULL, NULL, NULL, NULL }; + assert(STATICARRAYLEN(buttons) == STATICARRAYLEN(locButtons)); + + cancelbutton = bcount++; + buttons[cancelbutton] = "cancel"; + locButtons[cancelbutton] = xstrdup(_("Cancel")); + + if (can_back) + { + backbutton = bcount++; + buttons[backbutton] = "back"; + locButtons[backbutton] = xstrdup(_("Back")); + } // if + + if (can_fwd) + { + fwdbutton = bcount++; + buttons[fwdbutton] = "next"; + locButtons[fwdbutton] = xstrdup(_("Next")); + } // if + + strAdd(&html, &len, &alloc, + "
      " + ""); + + for (i = 0; i < recnum; i++) + { + strAdd(&html, &len, &alloc, + "" + "" + "", + ((checked) ? "checked='true'" : ""), recommends[i], recommends[i]); + checked = false; + } // for + + strAdd(&html, &len, &alloc, + "" + "" + "" + "
      " + "%s" + "
      " + "" + "" + "
      " + "
      ", ((checked) ? "checked='true'" : "")); + + rc = doPromptPage(title, html, true, "destination", + buttons, locButtons, bcount); + + free(title); + free(html); + for (i = 0; i < STATICARRAYLEN(locButtons); i++) + free((void *) locButtons[i]); + + if (rc == backbutton) + *command = -1; + else if (rc == cancelbutton) + *command = 0; + else + { + const char *dest = NULL; + const char *customdest = NULL; + WebRequest *req = webRequest; + while (req != NULL) + { + const char *k = req->key; + const char *v = req->value; + if (strcmp(k, "dest") == 0) + dest = v; + else if (strcmp(k, "customdest") == 0) + customdest = v; + req = req->next; + } // while + + if (dest != NULL) + { + if (strcmp(dest, "*") == 0) + dest = customdest; + } // if + + if (dest == NULL) + *command = 0; // !!! FIXME: maybe loop with doPromptPage again. + else + { + retval = xstrdup(dest); + *command = 1; + } // else + } // else + + return retval; +} // MojoGui_www_destination + + +static int MojoGui_www_productkey(const char *desc, const char *fmt, + char *buf, const int buflen, + boolean can_back, boolean can_fwd) +{ + char *prompt = xstrdup(_("Please enter your product key")); + int retval = -1; + char *html = NULL; + size_t len = 0, alloc = 0; + int cancelbutton = -1; + int backbutton = -1; + int fwdbutton = -1; + int bcount = 0; + int rc = 0; + int i = 0; + const char *buttons[4] = { NULL, NULL, NULL, NULL }; + const char *locButtons[4] = { NULL, NULL, NULL, NULL }; + assert(STATICARRAYLEN(buttons) == STATICARRAYLEN(locButtons)); + + cancelbutton = bcount++; + buttons[cancelbutton] = "cancel"; + locButtons[cancelbutton] = xstrdup(_("Cancel")); + + if (can_back) + { + backbutton = bcount++; + buttons[backbutton] = "back"; + locButtons[backbutton] = xstrdup(_("Back")); + } // if + + if (can_fwd) + { + fwdbutton = bcount++; + buttons[fwdbutton] = "next"; + locButtons[fwdbutton] = xstrdup(_("Next")); + } // if + + strAdd(&html, &len, &alloc, + "
      " + "%s
      " + "" + "
      ", prompt, ((*buf) ? buf : "")); + + free(prompt); + + rc = doPromptPage(desc, html, true, "productkey", + buttons, locButtons, bcount); + + free(html); + for (i = 0; i < STATICARRAYLEN(locButtons); i++) + free((void *) locButtons[i]); + + if (rc == backbutton) + retval = -1; + else if (rc == cancelbutton) + retval = 0; + else + { + WebRequest *req = webRequest; + const char *keyval = NULL; + while (req != NULL) + { + const char *k = req->key; + const char *v = req->value; + if (strcmp(k, "productkey") == 0) + keyval = v; + + req = req->next; + } // while + + if (keyval == NULL) + retval = 0; // !!! FIXME: maybe loop with doPromptPage again. + else + { + snprintf(buf, buflen, "%s", keyval); + if (isValidProductKey(fmt, buf)) + retval = 1; + // !!! FIXME: must try again if invalid key. + } // else + } // else + + return retval; +} // MojoGui_www_productkey + + +static boolean MojoGui_www_insertmedia(const char *medianame) +{ + char *htmltext = NULL; + char *text = NULL; + size_t len = 0, alloc = 0; + int i, rc; + + const char *buttons[] = { "cancel", "ok" }; + const char *locButtons[] = { htmlescape(_("Cancel")), htmlescape(_("OK")) }; + + char *title = xstrdup(_("Media change")); + char *fmt = xstrdup(_("Please insert '%0'")); + char *msg = format(fmt, medianame); + strAdd(&text, &len, &alloc, msg); + free(msg); + free(fmt); + + htmltext = htmlescape(text); + free(text); + + assert(STATICARRAYLEN(buttons) == STATICARRAYLEN(locButtons)); + + rc = doPromptPage(title, htmltext, true, "insertmedia", buttons, + locButtons, STATICARRAYLEN(buttons)); + + free(title); + free(htmltext); + for (i = 0; i < STATICARRAYLEN(locButtons); i++) + free((void *) locButtons[i]); + + return (rc == 1); +} // MojoGui_www_insertmedia + + +static void MojoGui_www_progressitem(void) +{ + // no-op in this UI target. +} // MojoGui_www_progressitem + + +static boolean MojoGui_www_progress(const char *type, const char *component, + int percent, const char *item, + boolean can_cancel) +{ + return true; +} // MojoGui_www_progress + + +static void MojoGui_www_final(const char *msg) +{ + MojoGui_www_msgbox(_("Finish"), msg); +} // MojoGui_www_final + +// end of gui_www.c ... + diff --git a/mk/linux/mojosetup/libfetch/README.txt b/mk/linux/mojosetup/libfetch/README.txt new file mode 100644 index 00000000..a21514e2 --- /dev/null +++ b/mk/linux/mojosetup/libfetch/README.txt @@ -0,0 +1,48 @@ + +This is libfetch, from FreeBSD. + +I grabbed it from CVS, like this: + cvs -z9 -dfreebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src/lib/libfetch + +Checkout was from May 5th, 2007, 1pm EST. + +This just has minor modifications to make it play nicely with our build system, + and code, and stuff we don't need was trimmed out. + +Changes made for MojoSetup that aren't part of a virgin copy of libfetch are + noted with "#if __MOJOSETUP__" sections. + + +Here is the libfetch copyright from common.c ... + +/*- + * Copyright (c) 1998-2004 Dag-Erling Coïdan Smørgrav + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer + * in this position and unchanged. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +--ryan. + diff --git a/mk/linux/mojosetup/libfetch/common.c b/mk/linux/mojosetup/libfetch/common.c new file mode 100644 index 00000000..36e1075e --- /dev/null +++ b/mk/linux/mojosetup/libfetch/common.c @@ -0,0 +1,1114 @@ +/*- + * Copyright (c) 1998-2004 Dag-Erling Coïdan Smørgrav + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer + * in this position and unchanged. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#if __MOJOSETUP__ +#include "mojosetup_libfetch.h" +#include +#endif + +#if !sun /* __MOJOSETUP__ Solaris support... */ +#include +__FBSDID("$FreeBSD: src/lib/libfetch/common.c,v 1.50 2005/02/16 12:46:46 des Exp $"); +#endif + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fetch.h" +#include "common.h" + + +/*** Local data **************************************************************/ + +/* + * Error messages for resolver errors + */ +static struct fetcherr _netdb_errlist[] = { +#ifdef EAI_NODATA + { EAI_NODATA, FETCH_RESOLV, "Host not found" }, +#endif + { EAI_AGAIN, FETCH_TEMP, "Transient resolver failure" }, + { EAI_FAIL, FETCH_RESOLV, "Non-recoverable resolver failure" }, + { EAI_NONAME, FETCH_RESOLV, "No address record" }, + { -1, FETCH_UNKNOWN, "Unknown resolver error" } +}; + +/* End-of-Line */ +static const char ENDL[2] = "\r\n"; + + +/*** Error-reporting functions ***********************************************/ + +/* + * Map error code to string + */ +static struct fetcherr * +_fetch_finderr(struct fetcherr *p, int e) +{ + while (p->num != -1 && p->num != e) + p++; + return (p); +} + +/* + * Set error code + */ +void +_fetch_seterr(struct fetcherr *p, int e) +{ + p = _fetch_finderr(p, e); + fetchLastErrCode = p->cat; + snprintf(fetchLastErrString, MAXERRSTRING, "%s", p->string); +} + +/* + * Set error code according to errno + */ +void +_fetch_syserr(void) +{ + switch (errno) { + case 0: + fetchLastErrCode = FETCH_OK; + break; + case EPERM: + case EACCES: + case EROFS: +#if __MOJOSETUP__ +#if FREEBSD + case EAUTH: + case ENEEDAUTH: +#endif +#endif + fetchLastErrCode = FETCH_AUTH; + break; + case ENOENT: + case EISDIR: /* XXX */ + fetchLastErrCode = FETCH_UNAVAIL; + break; + case ENOMEM: + fetchLastErrCode = FETCH_MEMORY; + break; + case EBUSY: + case EAGAIN: + fetchLastErrCode = FETCH_TEMP; + break; + case EEXIST: + fetchLastErrCode = FETCH_EXISTS; + break; + case ENOSPC: + fetchLastErrCode = FETCH_FULL; + break; + case EADDRINUSE: + case EADDRNOTAVAIL: + case ENETDOWN: + case ENETUNREACH: + case ENETRESET: + case EHOSTUNREACH: + fetchLastErrCode = FETCH_NETWORK; + break; + case ECONNABORTED: + case ECONNRESET: + fetchLastErrCode = FETCH_ABORT; + break; + case ETIMEDOUT: + fetchLastErrCode = FETCH_TIMEOUT; + break; + case ECONNREFUSED: + case EHOSTDOWN: + fetchLastErrCode = FETCH_DOWN; + break; +default: + fetchLastErrCode = FETCH_UNKNOWN; + } + snprintf(fetchLastErrString, MAXERRSTRING, "%s", strerror(errno)); +} + + +/* + * Emit status message + */ +void +_fetch_info(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + fputc('\n', stderr); +} + + +/*** Network-related utility functions ***************************************/ + +/* + * Return the default port for a scheme + */ +int +_fetch_default_port(const char *scheme) +{ + struct servent *se; + + if ((se = getservbyname(scheme, "tcp")) != NULL) + return (ntohs(se->s_port)); + if (strcasecmp(scheme, SCHEME_FTP) == 0) + return (FTP_DEFAULT_PORT); + if (strcasecmp(scheme, SCHEME_HTTP) == 0) + return (HTTP_DEFAULT_PORT); + return (0); +} + +/* + * Return the default proxy port for a scheme + */ +int +_fetch_default_proxy_port(const char *scheme) +{ + if (strcasecmp(scheme, SCHEME_FTP) == 0) + return (FTP_DEFAULT_PROXY_PORT); + if (strcasecmp(scheme, SCHEME_HTTP) == 0) + return (HTTP_DEFAULT_PROXY_PORT); + return (0); +} + + +/* + * Create a connection for an existing descriptor. + */ +conn_t * +_fetch_reopen(int sd) +{ + conn_t *conn; + + /* allocate and fill connection structure */ + if ((conn = calloc(1, sizeof(*conn))) == NULL) + return (NULL); + conn->sd = sd; + ++conn->ref; + return (conn); +} + + +/* + * Bump a connection's reference count. + */ +conn_t * +_fetch_ref(conn_t *conn) +{ + + ++conn->ref; + return (conn); +} + + +/* + * Bind a socket to a specific local address + */ +int +_fetch_bind(int sd, int af, const char *addr) +{ + struct addrinfo hints, *res, *res0; + int err; + + memset(&hints, 0, sizeof(hints)); + hints.ai_family = af; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = 0; + if ((err = getaddrinfo(addr, NULL, &hints, &res0)) != 0) + return (-1); + for (res = res0; res; res = res->ai_next) + if (bind(sd, res->ai_addr, res->ai_addrlen) == 0) + return (0); + return (-1); +} + + +/* + * Establish a TCP connection to the specified port on the specified host. + */ +conn_t * +_fetch_connect(const char *host, int port, int af, int verbose) +{ + conn_t *conn; + char pbuf[10]; + const char *bindaddr; + struct addrinfo hints, *res, *res0; + int sd, err; + + DEBUG(fprintf(stderr, "---> %s:%d\n", host, port)); + + if (verbose) + _fetch_info("looking up %s", host); + + /* look up host name and set up socket address structure */ + snprintf(pbuf, sizeof(pbuf), "%d", port); + memset(&hints, 0, sizeof(hints)); + hints.ai_family = af; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = 0; + if ((err = getaddrinfo(host, pbuf, &hints, &res0)) != 0) { + _netdb_seterr(err); + return (NULL); + } + bindaddr = getenv("FETCH_BIND_ADDRESS"); + + if (verbose) + _fetch_info("connecting to %s:%d", host, port); + + /* try to connect */ + for (sd = -1, res = res0; res; sd = -1, res = res->ai_next) { + if ((sd = socket(res->ai_family, res->ai_socktype, + res->ai_protocol)) == -1) + continue; + if (bindaddr != NULL && *bindaddr != '\0' && + _fetch_bind(sd, res->ai_family, bindaddr) != 0) { + _fetch_info("failed to bind to '%s'", bindaddr); + close(sd); + continue; + } + if (connect(sd, res->ai_addr, res->ai_addrlen) == 0) + break; + close(sd); + } + freeaddrinfo(res0); + if (sd == -1) { + _fetch_syserr(); + return (NULL); + } + + if ((conn = _fetch_reopen(sd)) == NULL) { + _fetch_syserr(); + close(sd); + } + return (conn); +} + + +/* + * Enable SSL on a connection. + */ +int +_fetch_ssl(conn_t *conn, int verbose) +{ + +#ifdef WITH_SSL + /* Init the SSL library and context */ + if (!SSL_library_init()){ + fprintf(stderr, "SSL library init failed\n"); + return (-1); + } + + SSL_load_error_strings(); + + conn->ssl_meth = SSLv23_client_method(); + conn->ssl_ctx = SSL_CTX_new(conn->ssl_meth); + SSL_CTX_set_mode(conn->ssl_ctx, SSL_MODE_AUTO_RETRY); + + conn->ssl = SSL_new(conn->ssl_ctx); + if (conn->ssl == NULL){ + fprintf(stderr, "SSL context creation failed\n"); + return (-1); + } + SSL_set_fd(conn->ssl, conn->sd); + if (SSL_connect(conn->ssl) == -1){ + ERR_print_errors_fp(stderr); + return (-1); + } + + if (verbose) { + X509_NAME *name; + char *str; + + fprintf(stderr, "SSL connection established using %s\n", + SSL_get_cipher(conn->ssl)); + conn->ssl_cert = SSL_get_peer_certificate(conn->ssl); + name = X509_get_subject_name(conn->ssl_cert); + str = X509_NAME_oneline(name, 0, 0); + printf("Certificate subject: %s\n", str); + free(str); + name = X509_get_issuer_name(conn->ssl_cert); + str = X509_NAME_oneline(name, 0, 0); + printf("Certificate issuer: %s\n", str); + free(str); + } + + return (0); +#else + (void)conn; + (void)verbose; + fprintf(stderr, "SSL support disabled\n"); + return (-1); +#endif +} + + +/* + * Read a character from a connection w/ timeout + */ +ssize_t +_fetch_read(conn_t *conn, char *buf, size_t len) +{ + struct timeval now, timeout, wait; + fd_set readfds; + ssize_t rlen, total; + int r; + + if (fetchTimeout) { + FD_ZERO(&readfds); + gettimeofday(&timeout, NULL); + timeout.tv_sec += fetchTimeout; + } + + total = 0; + while (len > 0) { + while (fetchTimeout && !FD_ISSET(conn->sd, &readfds)) { + FD_SET(conn->sd, &readfds); + gettimeofday(&now, NULL); + wait.tv_sec = timeout.tv_sec - now.tv_sec; + wait.tv_usec = timeout.tv_usec - now.tv_usec; + if (wait.tv_usec < 0) { + wait.tv_usec += 1000000; + wait.tv_sec--; + } + if (wait.tv_sec < 0) { + errno = ETIMEDOUT; + _fetch_syserr(); + return (-1); + } + errno = 0; + r = select(conn->sd + 1, &readfds, NULL, NULL, &wait); + if (r == -1) { + if (errno == EINTR && fetchRestartCalls) + continue; + _fetch_syserr(); + return (-1); + } + } +#ifdef WITH_SSL + if (conn->ssl != NULL) + rlen = SSL_read(conn->ssl, buf, len); + else +#endif + rlen = read(conn->sd, buf, len); + if (rlen == 0) + break; + if (rlen < 0) { + if (errno == EINTR && fetchRestartCalls) + continue; + return (-1); + } + len -= rlen; + buf += rlen; + total += rlen; + } + return (total); +} + + +/* + * Read a line of text from a connection w/ timeout + */ +#define MIN_BUF_SIZE 1024 + +int +_fetch_getln(conn_t *conn) +{ + char *tmp; + size_t tmpsize; + ssize_t len; + char c; + + if (conn->buf == NULL) { + if ((conn->buf = malloc(MIN_BUF_SIZE)) == NULL) { + errno = ENOMEM; + return (-1); + } + conn->bufsize = MIN_BUF_SIZE; + } + + conn->buf[0] = '\0'; + conn->buflen = 0; + + do { + len = _fetch_read(conn, &c, 1); + if (len == -1) + return (-1); + if (len == 0) + break; + conn->buf[conn->buflen++] = c; + if (conn->buflen == conn->bufsize) { + tmp = conn->buf; + tmpsize = conn->bufsize * 2 + 1; + if ((tmp = realloc(tmp, tmpsize)) == NULL) { + errno = ENOMEM; + return (-1); + } + conn->buf = tmp; + conn->bufsize = tmpsize; + } + } while (c != '\n'); + + conn->buf[conn->buflen] = '\0'; + DEBUG(fprintf(stderr, "<<< %s", conn->buf)); + return (0); +} + + +/* + * Write to a connection w/ timeout + */ +ssize_t +_fetch_write(conn_t *conn, const char *buf, size_t len) +{ + struct iovec iov; + + iov.iov_base = __DECONST(char *, buf); + iov.iov_len = len; + return _fetch_writev(conn, &iov, 1); +} + +/* + * Write a vector to a connection w/ timeout + * Note: can modify the iovec. + */ +ssize_t +_fetch_writev(conn_t *conn, struct iovec *iov, int iovcnt) +{ + struct timeval now, timeout, wait; + fd_set writefds; + ssize_t wlen, total; + int r; + + if (fetchTimeout) { + FD_ZERO(&writefds); + gettimeofday(&timeout, NULL); + timeout.tv_sec += fetchTimeout; + } + + total = 0; + while (iovcnt > 0) { + while (fetchTimeout && !FD_ISSET(conn->sd, &writefds)) { + FD_SET(conn->sd, &writefds); + gettimeofday(&now, NULL); + wait.tv_sec = timeout.tv_sec - now.tv_sec; + wait.tv_usec = timeout.tv_usec - now.tv_usec; + if (wait.tv_usec < 0) { + wait.tv_usec += 1000000; + wait.tv_sec--; + } + if (wait.tv_sec < 0) { + errno = ETIMEDOUT; + _fetch_syserr(); + return (-1); + } + errno = 0; + r = select(conn->sd + 1, NULL, &writefds, NULL, &wait); + if (r == -1) { + if (errno == EINTR && fetchRestartCalls) + continue; + return (-1); + } + } + errno = 0; +#ifdef WITH_SSL + if (conn->ssl != NULL) + wlen = SSL_write(conn->ssl, + iov->iov_base, iov->iov_len); + else +#endif + wlen = writev(conn->sd, iov, iovcnt); + if (wlen == 0) { + /* we consider a short write a failure */ + errno = EPIPE; + _fetch_syserr(); + return (-1); + } + if (wlen < 0) { + if (errno == EINTR && fetchRestartCalls) + continue; + return (-1); + } + total += wlen; + while (iovcnt > 0 && wlen >= (ssize_t)iov->iov_len) { + wlen -= iov->iov_len; + iov++; + iovcnt--; + } + if (iovcnt > 0) { + iov->iov_len -= wlen; + iov->iov_base = __DECONST(char *, iov->iov_base) + wlen; + } + } + return (total); +} + + +/* + * Write a line of text to a connection w/ timeout + */ +int +_fetch_putln(conn_t *conn, const char *str, size_t len) +{ + struct iovec iov[2]; + int ret; + + DEBUG(fprintf(stderr, ">>> %s\n", str)); + iov[0].iov_base = __DECONST(char *, str); + iov[0].iov_len = len; + iov[1].iov_base = __DECONST(char *, ENDL); + iov[1].iov_len = sizeof(ENDL); + if (len == 0) + ret = _fetch_writev(conn, &iov[1], 1); + else + ret = _fetch_writev(conn, iov, 2); + if (ret == -1) + return (-1); + return (0); +} + + +/* + * Close connection + */ +int +_fetch_close(conn_t *conn) +{ + int ret; + + if (--conn->ref > 0) + return (0); + ret = close(conn->sd); + free(conn->buf); + free(conn); + return (ret); +} + + +/*** Directory-related utility functions *************************************/ + +int +_fetch_add_entry(struct url_ent **p, int *size, int *len, + const char *name, struct url_stat *us) +{ + struct url_ent *tmp; + + if (*p == NULL) { + *size = 0; + *len = 0; + } + + if (*len >= *size - 1) { + tmp = realloc(*p, (*size * 2 + 1) * sizeof(**p)); + if (tmp == NULL) { + errno = ENOMEM; + _fetch_syserr(); + return (-1); + } + *size = (*size * 2 + 1); + *p = tmp; + } + + tmp = *p + *len; + snprintf(tmp->name, PATH_MAX, "%s", name); + +#if __MOJOSETUP__ + memmove(&tmp->stat, us, sizeof(*us)); +#else + bcopy(us, &tmp->stat, sizeof(*us)); +#endif + + (*len)++; + (++tmp)->name[0] = 0; + + return (0); +} + + +/*** Authentication-related utility functions ********************************/ + +static const char * +_fetch_read_word(FILE *f) +{ + static char word[1024]; + + if (fscanf(f, " %1024s ", word) != 1) + return (NULL); + return (word); +} + +/* + * Get authentication data for a URL from .netrc + */ +int +_fetch_netrc_auth(struct url *url) +{ + char fn[PATH_MAX]; + const char *word; + char *p; + FILE *f; + + if ((p = getenv("NETRC")) != NULL) { + if (snprintf(fn, sizeof(fn), "%s", p) >= (int)sizeof(fn)) { + _fetch_info("$NETRC specifies a file name " + "longer than PATH_MAX"); + return (-1); + } + } else { + if ((p = getenv("HOME")) != NULL) { + struct passwd *pwd; + + if ((pwd = getpwuid(getuid())) == NULL || + (p = pwd->pw_dir) == NULL) + return (-1); + } + if (snprintf(fn, sizeof(fn), "%s/.netrc", p) >= (int)sizeof(fn)) + return (-1); + } + + if ((f = fopen(fn, "r")) == NULL) + return (-1); + while ((word = _fetch_read_word(f)) != NULL) { + if (strcmp(word, "default") == 0) { + DEBUG(_fetch_info("Using default .netrc settings")); + break; + } + if (strcmp(word, "machine") == 0 && + (word = _fetch_read_word(f)) != NULL && + strcasecmp(word, url->host) == 0) { + DEBUG(_fetch_info("Using .netrc settings for %s", word)); + break; + } + } + if (word == NULL) + goto ferr; + while ((word = _fetch_read_word(f)) != NULL) { + if (strcmp(word, "login") == 0) { + if ((word = _fetch_read_word(f)) == NULL) + goto ferr; + if (snprintf(url->user, sizeof(url->user), + "%s", word) > (int)sizeof(url->user)) { + _fetch_info("login name in .netrc is too long"); + url->user[0] = '\0'; + } + } else if (strcmp(word, "password") == 0) { + if ((word = _fetch_read_word(f)) == NULL) + goto ferr; + if (snprintf(url->pwd, sizeof(url->pwd), + "%s", word) > (int)sizeof(url->pwd)) { + _fetch_info("password in .netrc is too long"); + url->pwd[0] = '\0'; + } + } else if (strcmp(word, "account") == 0) { + if ((word = _fetch_read_word(f)) == NULL) + goto ferr; + /* XXX not supported! */ + } else { + break; + } + } + fclose(f); + return (0); + ferr: + fclose(f); + return (-1); +} + +#if __MOJOSETUP__ +int MOJOSETUP_vasprintf(char **strp, const char *fmt, va_list ap) +{ + int len = 0; + char dummy = 0; + va_list aq; + va_copy(aq, ap); + len = vsnprintf(&dummy, sizeof (dummy), fmt, aq); + va_end(aq); + *strp = (char *) xmalloc(len+1); + return vsnprintf(*strp, len+1, fmt, ap); +} // MOJOSETUP_vasprintf + +int MOJOSETUP_asprintf(char **strp, const char *fmt, ...) +{ + va_list ap; + int len = 0; + char dummy = 0; + va_start(ap, fmt); + len = vsnprintf(&dummy, sizeof (dummy), fmt, ap); + va_end(ap); + *strp = (char *) xmalloc(len+1); + va_start(ap, fmt); + len = vsnprintf(*strp, len+1, fmt, ap); + va_end(ap); + return len; +} // MOJOSETUP_asprintf + +time_t timegm_portable(struct tm *tm) +{ + char *envr = getenv("TZ"); + time_t retval; + setenv("TZ", "", 1); + tzset(); + retval = mktime(tm); + if (envr) + setenv("TZ", envr, 1); + else + unsetenv("TZ"); + tzset(); + return retval; +} // timegm_portable + +boolean ishexnumber(char ch) +{ + return ( ((ch >= '0') && (ch <= '9')) || + ((ch >= 'a') && (ch <= 'f')) || + ((ch >= 'A') && (ch <= 'F')) ); +} // ishexnumber + + +// This is a workaround because libfetch is a pain to make non-blocking. +// The ring buffer code is from my OpenAL implementation: +// http://icculus.org/al_osx/ + +typedef struct +{ + uint8 *buffer; + uint32 size; + uint32 write; + uint32 read; + uint32 used; +} MojoRing; + +static MojoRing *MojoRing_new(uint32 size) +{ + MojoRing *ring = (MojoRing *) xmalloc(sizeof (MojoRing)); + ring->buffer = (uint8 *) xmalloc(size); + ring->size = size; + ring->write = 0; + ring->read = 0; + ring->used = 0; + return ring; +} // MojoRing_new + +static void MojoRing_free(MojoRing *ring) +{ + free(ring->buffer); + free(ring); +} // MojoRing_free + +uint32 MojoRing_availableForGet(MojoRing *ring) +{ + return(ring->used); +} // MojoRing_size + +uint32 MojoRing_availableForPut(MojoRing *ring) +{ + return ring->size - ring->used; +} // MojoRing_size + +void MojoRing_put(MojoRing *ring, uint8 *data, uint32 size) +{ + uint32 cpy; + uint32 avail; + + if (!size) // just in case... + return; + + // Putting more data than ring buffer holds in total? Replace it all. + if (size > ring->size) + { + ring->write = 0; + ring->read = 0; + ring->used = ring->size; + memcpy(ring->buffer, data + (size - ring->size), ring->size); + return; + } // if + + // Buffer overflow? Push read pointer to oldest sample not overwritten... + avail = ring->size - ring->used; + if (size > avail) + { + ring->read += size - avail; + if (ring->read > ring->size) + ring->read -= ring->size; + } // if + + // Clip to end of buffer and copy first block... + cpy = ring->size - ring->write; + if (size < cpy) + cpy = size; + if (cpy) memcpy(ring->buffer + ring->write, data, cpy); + + // Wrap around to front of ring buffer and copy remaining data... + avail = size - cpy; + if (avail) memcpy(ring->buffer, data + cpy, avail); + + // Update write pointer... + ring->write += size; + if (ring->write > ring->size) + ring->write -= ring->size; + + ring->used += size; + if (ring->used > ring->size) + ring->used = ring->size; +} // MojoRing_put + +uint32 MojoRing_get(MojoRing *ring, uint8 *data, uint32 size) +{ + uint32 cpy; + uint32 avail = ring->used; + + // Clamp amount to read to available data... + if (size > avail) + size = avail; + + // Clip to end of buffer and copy first block... + cpy = ring->size - ring->read; + if (cpy > size) cpy = size; + if (cpy) memcpy(data, ring->buffer + ring->read, cpy); + + // Wrap around to front of ring buffer and copy remaining data... + avail = size - cpy; + if (avail) memcpy(data + cpy, ring->buffer, avail); + + // Update read pointer... + ring->read += size; + if (ring->read > ring->size) + ring->read -= ring->size; + + ring->used -= size; + + return(size); // may have been clamped if there wasn't enough data... +} // MojoRing_get + + + +typedef struct +{ + const char *url; + MojoRing *ring; + int64 bytes_read; + int64 length; + boolean error; + volatile boolean stop; + pthread_t tid; + pthread_mutex_t mutex; +} BlockingInfo; + +static void *blocking_thread(void *data) +{ + struct url_stat us; + uint8 buf[512]; + BlockingInfo *info = (BlockingInfo *) data; + + // !!! FIXME: This function can hang until the connect() or read() times + // !!! FIXME: out, without any way to stop it. ready() can deal with + // !!! FIXME: the blocking reads, but closing the socket has to wait + // !!! FIXME: for a pthread_join, and thus can block for a LONG time. + // !!! FIXME: This is only a problem if the user wants to cancel a + // !!! FIXME: download, but it needs to be addressed. Moving libfetch + // !!! FIXME: to non-blocking sockets will fix this and let me flush + // !!! FIXME: all this heroic coding, too. + + MojoInput *io = fetchXGetURL(info->url, &us, "rbp"); + if (io != NULL) + { + if (!info->stop) + info->length = io->length(io); + } // if + else + { + info->error = true; + info->stop = true; + } // else + + while (!info->stop) + { + uint8 *ptr = buf; + int64 br = io->read(io, buf, sizeof (buf)); + + if (br < 0) + info->stop = info->error = true; + else if (br == 0) + info->stop = true; + else + { + while (br > 0) + { + uint32 avail; + pthread_mutex_lock(&info->mutex); + avail = MojoRing_availableForPut(info->ring); + if (avail > br) + avail = br; + if (avail) + MojoRing_put(info->ring, ptr, avail); + pthread_mutex_unlock(&info->mutex); + ptr += avail; + br -= avail; + if (br > 0) + MojoPlatform_sleep(10); + } // while + } // else + } // while + + if (io != NULL) + io->close(io); + + return NULL; +} // blocking_thread + +static boolean MojoInput_blocking_ready(MojoInput *io) +{ + boolean retval = false; + BlockingInfo *info = (BlockingInfo *) io->opaque; + if (pthread_mutex_lock(&info->mutex) == 0) + { + retval = ( (info->stop) || (info->error) || + MojoRing_availableForGet(info->ring) ); + pthread_mutex_unlock(&info->mutex); + } // if + return retval; +} // MojoInput_blocking_ready + +static int64 MojoInput_blocking_read(MojoInput *io, void *buf, uint32 bufsize) +{ + BlockingInfo *info = (BlockingInfo *) io->opaque; + uint32 avail = 0; + while (!io->ready(io)) + MojoPlatform_sleep(100); + + if (pthread_mutex_lock(&info->mutex) != 0) + { + info->stop = info->error = true; // oh well. + return -1; + } // if + + avail = MojoRing_availableForGet(info->ring); + if (avail > 0) + { + if (avail > bufsize) + avail = bufsize; + MojoRing_get(info->ring, (uint8 *) buf, avail); + info->bytes_read += avail; + } // if + + pthread_mutex_unlock(&info->mutex); + + if (avail > 0) + return avail; + + if (info->error) + return -1; + + assert(info->stop); + return 0; +} // MojoInput_blocking_read + +static boolean MojoInput_blocking_seek(MojoInput *io, uint64 pos) +{ + return -1; +} // MojoInput_blocking_seek + +static int64 MojoInput_blocking_tell(MojoInput *io) +{ + BlockingInfo *info = (BlockingInfo *) io->opaque; + return info->bytes_read; +} // MojoInput_blocking_tell + +static int64 MojoInput_blocking_length(MojoInput *io) +{ + BlockingInfo *info = (BlockingInfo *) io->opaque; + return info->length; +} // MojoInput_blocking_length + +static MojoInput* MojoInput_blocking_duplicate(MojoInput *io) +{ + return NULL; +} // MojoInput_blocking_duplicate + +static void MojoInput_blocking_free(MojoInput *io) +{ + BlockingInfo *info = (BlockingInfo *) io->opaque; + MojoRing_free(info->ring); + pthread_mutex_destroy(&info->mutex); + free((void *) info->url); + free(info); + free(io); +} // MojoInput_blocking_free + +static void MojoInput_blocking_close(MojoInput *io) +{ + BlockingInfo *info = (BlockingInfo *) io->opaque; + info->stop = true; + pthread_join(info->tid, NULL); + MojoInput_blocking_free(io); +} // MojoInput_blocking_close + + + +MojoInput *MojoInput_newFromURL(const char *url) +{ + MojoInput *retval = NULL; + if (url != NULL) + { + BlockingInfo *info = (BlockingInfo *) xmalloc(sizeof (BlockingInfo)); + info->url = xstrdup(url); + info->ring = MojoRing_new(512 * 1024); + info->length = -1; + retval = (MojoInput *) xmalloc(sizeof (MojoInput)); + retval->ready = MojoInput_blocking_ready; + retval->read = MojoInput_blocking_read; + retval->seek = MojoInput_blocking_seek; + retval->tell = MojoInput_blocking_tell; + retval->length = MojoInput_blocking_length; + retval->duplicate = MojoInput_blocking_duplicate; + retval->close = MojoInput_blocking_close; + retval->opaque = info; + + if ( (pthread_mutex_init(&info->mutex, NULL) != 0) || + (pthread_create(&info->tid, NULL, blocking_thread, info) != 0) ) + { + MojoInput_blocking_free(retval); + retval = NULL; + } // if + } // if + return retval; +} // MojoInput_newFromURL +#endif + diff --git a/mk/linux/mojosetup/libfetch/common.h b/mk/linux/mojosetup/libfetch/common.h new file mode 100644 index 00000000..f1b1d66f --- /dev/null +++ b/mk/linux/mojosetup/libfetch/common.h @@ -0,0 +1,135 @@ +/*- + * Copyright (c) 1998-2004 Dag-Erling Coïdan Smørgrav + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer + * in this position and unchanged. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD: src/lib/libfetch/common.h,v 1.28 2004/09/21 18:35:20 des Exp $ + */ + +#ifndef _COMMON_H_INCLUDED +#define _COMMON_H_INCLUDED + +#define FTP_DEFAULT_PORT 21 +#define HTTP_DEFAULT_PORT 80 +#define FTP_DEFAULT_PROXY_PORT 21 +#define HTTP_DEFAULT_PROXY_PORT 3128 + +#ifdef WITH_SSL +#include +#include +#include +#include +#include +#endif + +/* Connection */ +typedef struct fetchconn conn_t; +struct fetchconn { + int sd; /* socket descriptor */ + char *buf; /* buffer */ + size_t bufsize; /* buffer size */ + size_t buflen; /* length of buffer contents */ + int err; /* last protocol reply code */ +#ifdef WITH_SSL + SSL *ssl; /* SSL handle */ + SSL_CTX *ssl_ctx; /* SSL context */ + X509 *ssl_cert; /* server certificate */ + SSL_METHOD *ssl_meth; /* SSL method */ +#endif + int ref; /* reference count */ +}; + +/* Structure used for error message lists */ +struct fetcherr { + const int num; + const int cat; + const char *string; +}; + +/* for _fetch_writev */ +struct iovec; + +void _fetch_seterr(struct fetcherr *, int); +void _fetch_syserr(void); +#if __MOJOSETUP__ +void _fetch_info(const char *fmt, ...) ISPRINTF(1,2); +#else +void _fetch_info(const char *, ...); +#endif +int _fetch_default_port(const char *); +int _fetch_default_proxy_port(const char *); +int _fetch_bind(int, int, const char *); +conn_t *_fetch_connect(const char *, int, int, int); +conn_t *_fetch_reopen(int); +conn_t *_fetch_ref(conn_t *); +int _fetch_ssl(conn_t *, int); +ssize_t _fetch_read(conn_t *, char *, size_t); +int _fetch_getln(conn_t *); +ssize_t _fetch_write(conn_t *, const char *, size_t); +ssize_t _fetch_writev(conn_t *, struct iovec *, int); +int _fetch_putln(conn_t *, const char *, size_t); +int _fetch_close(conn_t *); +int _fetch_add_entry(struct url_ent **, int *, int *, + const char *, struct url_stat *); +int _fetch_netrc_auth(struct url *url); + +#define _ftp_seterr(n) _fetch_seterr(_ftp_errlist, n) +#define _http_seterr(n) _fetch_seterr(_http_errlist, n) +#define _netdb_seterr(n) _fetch_seterr(_netdb_errlist, n) +#define _url_seterr(n) _fetch_seterr(_url_errlist, n) + +#ifndef NDEBUG +#define DEBUG(x) do { if (fetchDebug) { x; } } while (0) +#else +#define DEBUG(x) do { } while (0) +#endif + +/* + * I don't really like exporting _http_request() and _ftp_request(), + * but the HTTP and FTP code occasionally needs to cross-call + * eachother, and this saves me from adding a lot of special-case code + * to handle those cases. + * + * Note that _*_request() free purl, which is way ugly but saves us a + * whole lot of trouble. + */ +#if __MOJOSETUP__ +MojoInput *_http_request(struct url *, const char *, + struct url_stat *, struct url *, const char *); +MojoInput *_ftp_request(struct url *, const char *, + struct url_stat *, struct url *, const char *); +#else +FILE *_http_request(struct url *, const char *, + struct url_stat *, struct url *, const char *); +FILE *_ftp_request(struct url *, const char *, + struct url_stat *, struct url *, const char *); +#endif + +/* + * Check whether a particular flag is set + */ +#define CHECK_FLAG(x) (flags && strchr(flags, (x))) + +#endif diff --git a/mk/linux/mojosetup/libfetch/fetch.c b/mk/linux/mojosetup/libfetch/fetch.c new file mode 100644 index 00000000..230bc58e --- /dev/null +++ b/mk/linux/mojosetup/libfetch/fetch.c @@ -0,0 +1,478 @@ +/*- + * Copyright (c) 1998-2004 Dag-Erling Coïdan Smørgrav + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer + * in this position and unchanged. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#if __MOJOSETUP__ +#include "mojosetup_libfetch.h" +#endif + + +#if !sun /* __MOJOSETUP__ Solaris support... */ +#include +__FBSDID("$FreeBSD: src/lib/libfetch/fetch.c,v 1.38 2004/09/21 18:35:20 des Exp $"); +#endif + +#include +#include + +#include +#include +#include +#include + +#include "fetch.h" +#include "common.h" + +auth_t fetchAuthMethod; +int fetchLastErrCode; +char fetchLastErrString[MAXERRSTRING]; +int fetchTimeout; +int fetchRestartCalls = 1; +int fetchDebug; + + +/*** Local data **************************************************************/ + +/* + * Error messages for parser errors + */ +#define URL_MALFORMED 1 +#define URL_BAD_SCHEME 2 +#define URL_BAD_PORT 3 +static struct fetcherr _url_errlist[] = { + { URL_MALFORMED, FETCH_URL, "Malformed URL" }, + { URL_BAD_SCHEME, FETCH_URL, "Invalid URL scheme" }, + { URL_BAD_PORT, FETCH_URL, "Invalid server port" }, + { -1, FETCH_UNKNOWN, "Unknown parser error" } +}; + + +/*** Public API **************************************************************/ + +/* + * Select the appropriate protocol for the URL scheme, and return a + * read-only stream connected to the document referenced by the URL. + * Also fill out the struct url_stat. + */ +#if __MOJOSETUP__ +MojoInput * +#else +FILE * +#endif +fetchXGet(struct url *URL, struct url_stat *us, const char *flags) +{ + int direct; + + direct = CHECK_FLAG('d'); + if (us != NULL) { + us->size = -1; + us->atime = us->mtime = 0; + } +#if __MOJOSETUP__ + #if SUPPORT_URL_FTP + if (strcasecmp(URL->scheme, SCHEME_FTP) == 0) + return (fetchXGetFTP(URL, us, flags)); + #endif + #if SUPPORT_URL_HTTP + if (strcasecmp(URL->scheme, SCHEME_HTTP) == 0) + return (fetchXGetHTTP(URL, us, flags)); + #endif + #if SUPPORT_URL_HTTPS + if (strcasecmp(URL->scheme, SCHEME_HTTPS) == 0) + return (fetchXGetHTTP(URL, us, flags)); + #endif +#else + if (strcasecmp(URL->scheme, SCHEME_FILE) == 0) + return (fetchXGetFile(URL, us, flags)); + else if (strcasecmp(URL->scheme, SCHEME_FTP) == 0) + return (fetchXGetFTP(URL, us, flags)); + else if (strcasecmp(URL->scheme, SCHEME_HTTP) == 0) + return (fetchXGetHTTP(URL, us, flags)); + else if (strcasecmp(URL->scheme, SCHEME_HTTPS) == 0) + return (fetchXGetHTTP(URL, us, flags)); +#endif + _url_seterr(URL_BAD_SCHEME); + return (NULL); +} + +/* + * Select the appropriate protocol for the URL scheme, and return a + * read-only stream connected to the document referenced by the URL. + */ +#if !__MOJOSETUP__ +FILE * +fetchGet(struct url *URL, const char *flags) +{ + return (fetchXGet(URL, NULL, flags)); +} + +/* + * Select the appropriate protocol for the URL scheme, and return a + * write-only stream connected to the document referenced by the URL. + */ +FILE * +fetchPut(struct url *URL, const char *flags) +{ + int direct; + + direct = CHECK_FLAG('d'); + if (strcasecmp(URL->scheme, SCHEME_FILE) == 0) + return (fetchPutFile(URL, flags)); + else if (strcasecmp(URL->scheme, SCHEME_FTP) == 0) + return (fetchPutFTP(URL, flags)); + else if (strcasecmp(URL->scheme, SCHEME_HTTP) == 0) + return (fetchPutHTTP(URL, flags)); + else if (strcasecmp(URL->scheme, SCHEME_HTTPS) == 0) + return (fetchPutHTTP(URL, flags)); + _url_seterr(URL_BAD_SCHEME); + return (NULL); +} + +/* + * Select the appropriate protocol for the URL scheme, and return the + * size of the document referenced by the URL if it exists. + */ +int +fetchStat(struct url *URL, struct url_stat *us, const char *flags) +{ + int direct; + + direct = CHECK_FLAG('d'); + if (us != NULL) { + us->size = -1; + us->atime = us->mtime = 0; + } + if (strcasecmp(URL->scheme, SCHEME_FILE) == 0) + return (fetchStatFile(URL, us, flags)); + else if (strcasecmp(URL->scheme, SCHEME_FTP) == 0) + return (fetchStatFTP(URL, us, flags)); + else if (strcasecmp(URL->scheme, SCHEME_HTTP) == 0) + return (fetchStatHTTP(URL, us, flags)); + else if (strcasecmp(URL->scheme, SCHEME_HTTPS) == 0) + return (fetchStatHTTP(URL, us, flags)); + _url_seterr(URL_BAD_SCHEME); + return (-1); +} + +/* + * Select the appropriate protocol for the URL scheme, and return a + * list of files in the directory pointed to by the URL. + */ +struct url_ent * +fetchList(struct url *URL, const char *flags) +{ + int direct; + + direct = CHECK_FLAG('d'); + if (strcasecmp(URL->scheme, SCHEME_FILE) == 0) + return (fetchListFile(URL, flags)); + else if (strcasecmp(URL->scheme, SCHEME_FTP) == 0) + return (fetchListFTP(URL, flags)); + else if (strcasecmp(URL->scheme, SCHEME_HTTP) == 0) + return (fetchListHTTP(URL, flags)); + else if (strcasecmp(URL->scheme, SCHEME_HTTPS) == 0) + return (fetchListHTTP(URL, flags)); + _url_seterr(URL_BAD_SCHEME); + return (NULL); +} +#endif + +/* + * Attempt to parse the given URL; if successful, call fetchXGet(). + */ +#if __MOJOSETUP__ +MojoInput * +#else +FILE * +#endif +fetchXGetURL(const char *URL, struct url_stat *us, const char *flags) +{ + struct url *u; +#if __MOJOSETUP__ + MojoInput *f = NULL; +#else + FILE *f; +#endif + + if ((u = fetchParseURL(URL)) == NULL) + return (NULL); + + f = fetchXGet(u, us, flags); + + fetchFreeURL(u); + return (f); +} + +/* + * Attempt to parse the given URL; if successful, call fetchGet(). + */ +#if !__MOJOSETUP__ +FILE * +fetchGetURL(const char *URL, const char *flags) +{ + return (fetchXGetURL(URL, NULL, flags)); +} + + +/* + * Attempt to parse the given URL; if successful, call fetchPut(). + */ +FILE * +fetchPutURL(const char *URL, const char *flags) +{ + struct url *u; + FILE *f; + + if ((u = fetchParseURL(URL)) == NULL) + return (NULL); + + f = fetchPut(u, flags); + + fetchFreeURL(u); + return (f); +} + +/* + * Attempt to parse the given URL; if successful, call fetchStat(). + */ +int +fetchStatURL(const char *URL, struct url_stat *us, const char *flags) +{ + struct url *u; + int s; + + if ((u = fetchParseURL(URL)) == NULL) + return (-1); + + s = fetchStat(u, us, flags); + + fetchFreeURL(u); + return (s); +} + +/* + * Attempt to parse the given URL; if successful, call fetchList(). + */ +struct url_ent * +fetchListURL(const char *URL, const char *flags) +{ + struct url *u; + struct url_ent *ue; + + if ((u = fetchParseURL(URL)) == NULL) + return (NULL); + + ue = fetchList(u, flags); + + fetchFreeURL(u); + return (ue); +} +#endif + +/* + * Make a URL + */ +struct url * +fetchMakeURL(const char *scheme, const char *host, int port, const char *doc, + const char *user, const char *pwd) +{ + struct url *u; + + if (!scheme || (!host && !doc)) { + _url_seterr(URL_MALFORMED); + return (NULL); + } + + if (port < 0 || port > 65535) { + _url_seterr(URL_BAD_PORT); + return (NULL); + } + + /* allocate struct url */ + if ((u = calloc(1, sizeof(*u))) == NULL) { + _fetch_syserr(); + return (NULL); + } + + if ((u->doc = strdup(doc ? doc : "/")) == NULL) { + _fetch_syserr(); + free(u); + return (NULL); + } + +#define seturl(x) snprintf(u->x, sizeof(u->x), "%s", x) + seturl(scheme); + seturl(host); + seturl(user); + seturl(pwd); +#undef seturl + u->port = port; + + return (u); +} + +/* + * Split an URL into components. URL syntax is: + * [method:/][/[user[:pwd]@]host[:port]/][document] + * This almost, but not quite, RFC1738 URL syntax. + */ +struct url * +fetchParseURL(const char *URL) +{ + char *doc; + const char *p, *q; + struct url *u; + int i; + + /* allocate struct url */ + if ((u = calloc(1, sizeof(*u))) == NULL) { + _fetch_syserr(); + return (NULL); + } + + /* scheme name */ + if ((p = strstr(URL, ":/"))) { + snprintf(u->scheme, URL_SCHEMELEN+1, + "%.*s", (int)(p - URL), URL); + URL = ++p; + /* + * Only one slash: no host, leave slash as part of document + * Two slashes: host follows, strip slashes + */ + if (URL[1] == '/') + URL = (p += 2); + } else { + p = URL; + } + if (!*URL || *URL == '/' || *URL == '.' || + (u->scheme[0] == '\0' && + strchr(URL, '/') == NULL && strchr(URL, ':') == NULL)) + goto nohost; + + p = strpbrk(URL, "/@"); + if (p && *p == '@') { + /* username */ + for (q = URL, i = 0; (*q != ':') && (*q != '@'); q++) + if (i < URL_USERLEN) + u->user[i++] = *q; + + /* password */ + if (*q == ':') + for (q++, i = 0; (*q != ':') && (*q != '@'); q++) + if (i < URL_PWDLEN) + u->pwd[i++] = *q; + + p++; + } else { + p = URL; + } + + /* hostname */ +#ifdef INET6 + if (*p == '[' && (q = strchr(p + 1, ']')) != NULL && + (*++q == '\0' || *q == '/' || *q == ':')) { + if ((i = q - p - 2) > MAXHOSTNAMELEN) + i = MAXHOSTNAMELEN; + strncpy(u->host, ++p, i); + p = q; + } else +#endif + for (i = 0; *p && (*p != '/') && (*p != ':'); p++) + if (i < MAXHOSTNAMELEN) + u->host[i++] = *p; + + /* port */ + if (*p == ':') { + for (q = ++p; *q && (*q != '/'); q++) + if (isdigit(*q)) + u->port = u->port * 10 + (*q - '0'); + else { + /* invalid port */ + _url_seterr(URL_BAD_PORT); + goto ouch; + } + p = q; + } + +nohost: + /* document */ + if (!*p) + p = "/"; + + if (strcasecmp(u->scheme, SCHEME_HTTP) == 0 || + strcasecmp(u->scheme, SCHEME_HTTPS) == 0) { + const char hexnums[] = "0123456789abcdef"; + + /* percent-escape whitespace. */ + if ((doc = malloc(strlen(p) * 3 + 1)) == NULL) { + _fetch_syserr(); + goto ouch; + } + u->doc = doc; + while (*p != '\0') { + if (!isspace(*p)) { + *doc++ = *p++; + } else { + *doc++ = '%'; + *doc++ = hexnums[((unsigned int)*p) >> 4]; + *doc++ = hexnums[((unsigned int)*p) & 0xf]; + p++; + } + } + *doc = '\0'; + } else if ((u->doc = strdup(p)) == NULL) { + _fetch_syserr(); + goto ouch; + } + + DEBUG(fprintf(stderr, + "scheme: [%s]\n" + "user: [%s]\n" + "password: [%s]\n" + "host: [%s]\n" + "port: [%d]\n" + "document: [%s]\n", + u->scheme, u->user, u->pwd, + u->host, u->port, u->doc)); + + return (u); + +ouch: + free(u); + return (NULL); +} + +/* + * Free a URL + */ +void +fetchFreeURL(struct url *u) +{ + free(u->doc); + free(u); +} + diff --git a/mk/linux/mojosetup/libfetch/fetch.h b/mk/linux/mojosetup/libfetch/fetch.h new file mode 100644 index 00000000..4486169c --- /dev/null +++ b/mk/linux/mojosetup/libfetch/fetch.h @@ -0,0 +1,184 @@ +/*- + * Copyright (c) 1998-2004 Dag-Erling Coïdan Smørgrav + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer + * in this position and unchanged. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD: src/lib/libfetch/fetch.h,v 1.26 2004/09/21 18:35:20 des Exp $ + */ + +#ifndef _FETCH_H_INCLUDED +#define _FETCH_H_INCLUDED + +#if __MOJOSETUP__ +#define _LIBFETCH_VER3(ver) "libfetch/2.0 (MojoSetup " #ver ")" +#define _LIBFETCH_VER2(ver) _LIBFETCH_VER3(ver) +#define _LIBFETCH_VER _LIBFETCH_VER2(APPREV) +#ifndef MAXHOSTNAMELEN +#define MAXHOSTNAMELEN 256 +#endif +#ifndef __BEGIN_DECLS +#define __BEGIN_DECLS +#endif +#ifndef __END_DECLS +#define __END_DECLS +#endif +#else +#define _LIBFETCH_VER "libfetch/2.0" +#endif + +#define URL_SCHEMELEN 16 +#define URL_USERLEN 256 +#define URL_PWDLEN 256 + +struct url { + char scheme[URL_SCHEMELEN+1]; + char user[URL_USERLEN+1]; + char pwd[URL_PWDLEN+1]; + char host[MAXHOSTNAMELEN+1]; + int port; + char *doc; + off_t offset; + size_t length; +}; + +struct url_stat { + off_t size; + time_t atime; + time_t mtime; +}; + +struct url_ent { + char name[PATH_MAX]; + struct url_stat stat; +}; + +/* Recognized schemes */ +#define SCHEME_FTP "ftp" +#define SCHEME_HTTP "http" +#define SCHEME_HTTPS "https" +#define SCHEME_FILE "file" + +/* Error codes */ +#define FETCH_ABORT 1 +#define FETCH_AUTH 2 +#define FETCH_DOWN 3 +#define FETCH_EXISTS 4 +#define FETCH_FULL 5 +#define FETCH_INFO 6 +#define FETCH_MEMORY 7 +#define FETCH_MOVED 8 +#define FETCH_NETWORK 9 +#define FETCH_OK 10 +#define FETCH_PROTO 11 +#define FETCH_RESOLV 12 +#define FETCH_SERVER 13 +#define FETCH_TEMP 14 +#define FETCH_TIMEOUT 15 +#define FETCH_UNAVAIL 16 +#define FETCH_UNKNOWN 17 +#define FETCH_URL 18 +#define FETCH_VERBOSE 19 + +__BEGIN_DECLS + +/* FILE-specific functions */ +#if !__MOJOSETUP__ +FILE *fetchXGetFile(struct url *, struct url_stat *, const char *); +FILE *fetchGetFile(struct url *, const char *); +FILE *fetchPutFile(struct url *, const char *); +int fetchStatFile(struct url *, struct url_stat *, const char *); +struct url_ent *fetchListFile(struct url *, const char *); +#endif + +/* HTTP-specific functions */ +#if __MOJOSETUP__ +MojoInput *fetchXGetHTTP(struct url *, struct url_stat *, const char *); +#else +FILE *fetchXGetHTTP(struct url *, struct url_stat *, const char *); +FILE *fetchGetHTTP(struct url *, const char *); +FILE *fetchPutHTTP(struct url *, const char *); +int fetchStatHTTP(struct url *, struct url_stat *, const char *); +struct url_ent *fetchListHTTP(struct url *, const char *); +#endif + +/* FTP-specific functions */ +#if __MOJOSETUP__ +MojoInput *fetchXGetFTP(struct url *, struct url_stat *, const char *); +#else +FILE *fetchXGetFTP(struct url *, struct url_stat *, const char *); +FILE *fetchGetFTP(struct url *, const char *); +FILE *fetchPutFTP(struct url *, const char *); +int fetchStatFTP(struct url *, struct url_stat *, const char *); +struct url_ent *fetchListFTP(struct url *, const char *); +#endif + +/* Generic functions */ +#if __MOJOSETUP__ +MojoInput *fetchXGetURL(const char *, struct url_stat *, const char *); +#else +FILE *fetchXGetURL(const char *, struct url_stat *, const char *); +FILE *fetchGetURL(const char *, const char *); +FILE *fetchPutURL(const char *, const char *); +int fetchStatURL(const char *, struct url_stat *, const char *); +struct url_ent *fetchListURL(const char *, const char *); +#endif + +#if __MOJOSETUP__ +MojoInput *fetchXGet(struct url *, struct url_stat *, const char *); +#else +FILE *fetchXGet(struct url *, struct url_stat *, const char *); +FILE *fetchGet(struct url *, const char *); +FILE *fetchPut(struct url *, const char *); +int fetchStat(struct url *, struct url_stat *, const char *); +struct url_ent *fetchList(struct url *, const char *); +#endif + +/* URL parsing */ +struct url *fetchMakeURL(const char *, const char *, int, + const char *, const char *, const char *); +struct url *fetchParseURL(const char *); +void fetchFreeURL(struct url *); + +__END_DECLS + +/* Authentication */ +typedef int (*auth_t)(struct url *); +extern auth_t fetchAuthMethod; + +/* Last error code */ +extern int fetchLastErrCode; +#define MAXERRSTRING 256 +extern char fetchLastErrString[MAXERRSTRING]; + +/* I/O timeout */ +extern int fetchTimeout; + +/* Restart interrupted syscalls */ +extern int fetchRestartCalls; + +/* Extra verbosity */ +extern int fetchDebug; + +#endif diff --git a/mk/linux/mojosetup/libfetch/ftp.c b/mk/linux/mojosetup/libfetch/ftp.c new file mode 100644 index 00000000..aefc724c --- /dev/null +++ b/mk/linux/mojosetup/libfetch/ftp.c @@ -0,0 +1,1394 @@ +/*- + * Copyright (c) 1998-2004 Dag-Erling Coïdan Smørgrav + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer + * in this position and unchanged. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "mojosetup_libfetch.h" + +#if SUPPORT_URL_FTP + +#if !sun /* __MOJOSETUP__ Solaris support... */ +#include +__FBSDID("$FreeBSD: src/lib/libfetch/ftp.c,v 1.96 2007/04/22 22:33:29 njl Exp $"); +#endif + +/* + * Portions of this code were taken from or based on ftpio.c: + * + * ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * wrote this file. As long as you retain this notice you + * can do whatever you want with this stuff. If we meet some day, and you think + * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp + * ---------------------------------------------------------------------------- + * + * Major Changelog: + * + * Dag-Erling Coïdan Smørgrav + * 9 Jun 1998 + * + * Incorporated into libfetch + * + * Jordan K. Hubbard + * 17 Jan 1996 + * + * Turned inside out. Now returns xfers as new file ids, not as a special + * `state' of FTP_t + * + * $ftpioId: ftpio.c,v 1.30 1998/04/11 07:28:53 phk Exp $ + * + */ + +#include +#include +#include + +#include +#if !sun /* __MOJOSETUP__ Solaris support... */ +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fetch.h" +#include "common.h" +#include "ftperr.h" + +#define FTP_ANONYMOUS_USER "anonymous" + +#define FTP_CONNECTION_ALREADY_OPEN 125 +#define FTP_OPEN_DATA_CONNECTION 150 +#define FTP_OK 200 +#define FTP_FILE_STATUS 213 +#define FTP_SERVICE_READY 220 +#define FTP_TRANSFER_COMPLETE 226 +#define FTP_PASSIVE_MODE 227 +#define FTP_LPASSIVE_MODE 228 +#define FTP_EPASSIVE_MODE 229 +#define FTP_LOGGED_IN 230 +#define FTP_FILE_ACTION_OK 250 +#define FTP_DIRECTORY_CREATED 257 /* multiple meanings */ +#define FTP_FILE_CREATED 257 /* multiple meanings */ +#define FTP_WORKING_DIRECTORY 257 /* multiple meanings */ +#define FTP_NEED_PASSWORD 331 +#define FTP_NEED_ACCOUNT 332 +#define FTP_FILE_OK 350 +#define FTP_SYNTAX_ERROR 500 +#define FTP_PROTOCOL_ERROR 999 + +static struct url cached_host; +static conn_t *cached_connection; + +#define isftpreply(foo) (isdigit(foo[0]) && isdigit(foo[1]) \ + && isdigit(foo[2]) \ + && (foo[3] == ' ' || foo[3] == '\0')) +#define isftpinfo(foo) (isdigit(foo[0]) && isdigit(foo[1]) \ + && isdigit(foo[2]) && foo[3] == '-') + +/* + * Translate IPv4 mapped IPv6 address to IPv4 address + */ +static void +unmappedaddr(struct sockaddr_in6 *sin6) +{ + struct sockaddr_in *sin4; + u_int32_t addr; + int port; + + if (sin6->sin6_family != AF_INET6 || + !IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) + return; + sin4 = (struct sockaddr_in *)sin6; + addr = *(u_int32_t *)&sin6->sin6_addr.s6_addr[12]; + port = sin6->sin6_port; + memset(sin4, 0, sizeof(struct sockaddr_in)); + sin4->sin_addr.s_addr = addr; + sin4->sin_port = port; + sin4->sin_family = AF_INET; +#if __MOJOSETUP__ +#if FREEBSD + sin4->sin_len = sizeof(struct sockaddr_in); +#endif +#endif +} + +/* + * Get server response + */ +static int +_ftp_chkerr(conn_t *conn) +{ + if (_fetch_getln(conn) == -1) { + _fetch_syserr(); + return (-1); + } + if (isftpinfo(conn->buf)) { + while (conn->buflen && !isftpreply(conn->buf)) { + if (_fetch_getln(conn) == -1) { + _fetch_syserr(); + return (-1); + } + } + } + + while (conn->buflen && isspace(conn->buf[conn->buflen - 1])) + conn->buflen--; + conn->buf[conn->buflen] = '\0'; + + if (!isftpreply(conn->buf)) { + _ftp_seterr(FTP_PROTOCOL_ERROR); + return (-1); + } + + conn->err = (conn->buf[0] - '0') * 100 + + (conn->buf[1] - '0') * 10 + + (conn->buf[2] - '0'); + + return (conn->err); +} + +/* + * Send a command and check reply + */ +#if __MOJOSETUP__ +static int _ftp_cmd(conn_t *conn, const char *fmt, ...) ISPRINTF(2,3); +#endif +static int +_ftp_cmd(conn_t *conn, const char *fmt, ...) +{ + va_list ap; + size_t len; + char *msg; + int r; + + va_start(ap, fmt); + len = vasprintf(&msg, fmt, ap); + va_end(ap); + + if (msg == NULL) { + errno = ENOMEM; + _fetch_syserr(); + return (-1); + } + + r = _fetch_putln(conn, msg, len); + free(msg); + + if (r == -1) { + _fetch_syserr(); + return (-1); + } + + return (_ftp_chkerr(conn)); +} + +/* + * Return a pointer to the filename part of a path + */ +static const char * +_ftp_filename(const char *file, int *len, int *type) +{ + const char *s; + + if ((s = strrchr(file, '/')) == NULL) + s = file; + else + s = s + 1; + *len = strlen(s); + if (*len > 7 && strncmp(s + *len - 7, ";type=", 6) == 0) { + *type = s[*len - 1]; + *len -= 7; + } else { + *type = '\0'; + } + return (s); +} + +/* + * Get current working directory from the reply to a CWD, PWD or CDUP + * command. + */ +static int +_ftp_pwd(conn_t *conn, char *pwd, size_t pwdlen) +{ + char *src, *dst, *end; + int q; + + if (conn->err != FTP_WORKING_DIRECTORY && + conn->err != FTP_FILE_ACTION_OK) + return (FTP_PROTOCOL_ERROR); + end = conn->buf + conn->buflen; + src = conn->buf + 4; + if (src >= end || *src++ != '"') + return (FTP_PROTOCOL_ERROR); + for (q = 0, dst = pwd; src < end && pwdlen--; ++src) { + if (!q && *src == '"') + q = 1; + else if (q && *src != '"') + break; + else if (q) + *dst++ = '"', q = 0; + else + *dst++ = *src; + } + if (!pwdlen) + return (FTP_PROTOCOL_ERROR); + *dst = '\0'; +#if 0 + DEBUG(fprintf(stderr, "pwd: [%s]\n", pwd)); +#endif + return (FTP_OK); +} + +/* + * Change working directory to the directory that contains the specified + * file. + */ +static int +_ftp_cwd(conn_t *conn, const char *file) +{ + const char *beg, *end; + char pwd[PATH_MAX]; + int e, i, len; + + /* If no slashes in name, no need to change dirs. */ + if ((end = strrchr(file, '/')) == NULL) + return (0); + if ((e = _ftp_cmd(conn, "PWD")) != FTP_WORKING_DIRECTORY || + (e = _ftp_pwd(conn, pwd, sizeof(pwd))) != FTP_OK) { + _ftp_seterr(e); + return (-1); + } + for (;;) { + len = strlen(pwd); + + /* Look for a common prefix between PWD and dir to fetch. */ + for (i = 0; i <= len && i <= end - file; ++i) + if (pwd[i] != file[i]) + break; +#if 0 + DEBUG(fprintf(stderr, "have: [%.*s|%s]\n", i, pwd, pwd + i)); + DEBUG(fprintf(stderr, "want: [%.*s|%s]\n", i, file, file + i)); +#endif + /* Keep going up a dir until we have a matching prefix. */ + if (pwd[i] == '\0' && (file[i - 1] == '/' || file[i] == '/')) + break; + if ((e = _ftp_cmd(conn, "CDUP")) != FTP_FILE_ACTION_OK || + (e = _ftp_cmd(conn, "PWD")) != FTP_WORKING_DIRECTORY || + (e = _ftp_pwd(conn, pwd, sizeof(pwd))) != FTP_OK) { + _ftp_seterr(e); + return (-1); + } + } + +#ifdef FTP_COMBINE_CWDS + /* Skip leading slashes, even "////". */ + for (beg = file + i; beg < end && *beg == '/'; ++beg, ++i) + /* nothing */ ; + + /* If there is no trailing dir, we're already there. */ + if (beg >= end) + return (0); + + /* Change to the directory all in one chunk (e.g., foo/bar/baz). */ + e = _ftp_cmd(conn, "CWD %.*s", (int)(end - beg), beg); + if (e == FTP_FILE_ACTION_OK) + return (0); +#endif /* FTP_COMBINE_CWDS */ + + /* That didn't work so go back to legacy behavior (multiple CWDs). */ + for (beg = file + i; beg < end; beg = file + i + 1) { + while (*beg == '/') + ++beg, ++i; + for (++i; file + i < end && file[i] != '/'; ++i) + /* nothing */ ; +#if __MOJOSETUP__ + e = _ftp_cmd(conn, "CWD %.*s", (int) (file + i - beg), beg); +#else + e = _ftp_cmd(conn, "CWD %.*s", file + i - beg, beg); +#endif + if (e != FTP_FILE_ACTION_OK) { + _ftp_seterr(e); + return (-1); + } + } + return (0); +} + +/* + * Set transfer mode and data type + */ +static int +_ftp_mode_type(conn_t *conn, int mode, int type) +{ + int e; + + switch (mode) { + case 0: + case 's': + mode = 'S'; + case 'S': + break; + default: + return (FTP_PROTOCOL_ERROR); + } + if ((e = _ftp_cmd(conn, "MODE %c", mode)) != FTP_OK) { + if (mode == 'S') { + /* + * Stream mode is supposed to be the default - so + * much so that some servers not only do not + * support any other mode, but do not support the + * MODE command at all. + * + * If "MODE S" fails, it is unlikely that we + * previously succeeded in setting a different + * mode. Therefore, we simply hope that the + * server is already in the correct mode, and + * silently ignore the failure. + */ + } else { + return (e); + } + } + + switch (type) { + case 0: + case 'i': + type = 'I'; + case 'I': + break; + case 'a': + type = 'A'; + case 'A': + break; + case 'd': + type = 'D'; + case 'D': + /* can't handle yet */ + default: + return (FTP_PROTOCOL_ERROR); + } + if ((e = _ftp_cmd(conn, "TYPE %c", type)) != FTP_OK) + return (e); + + return (FTP_OK); +} + +/* + * Request and parse file stats + */ +static int +_ftp_stat(conn_t *conn, const char *file, struct url_stat *us) +{ + char *ln; + const char *filename; + int filenamelen, type; + struct tm tm; + time_t t; + int e; + + us->size = -1; + us->atime = us->mtime = 0; + + filename = _ftp_filename(file, &filenamelen, &type); + + if ((e = _ftp_mode_type(conn, 0, type)) != FTP_OK) { + _ftp_seterr(e); + return (-1); + } + + e = _ftp_cmd(conn, "SIZE %.*s", filenamelen, filename); + if (e != FTP_FILE_STATUS) { + _ftp_seterr(e); + return (-1); + } + for (ln = conn->buf + 4; *ln && isspace(*ln); ln++) + /* nothing */ ; + for (us->size = 0; *ln && isdigit(*ln); ln++) + us->size = us->size * 10 + *ln - '0'; + if (*ln && !isspace(*ln)) { + _ftp_seterr(FTP_PROTOCOL_ERROR); + us->size = -1; + return (-1); + } + if (us->size == 0) + us->size = -1; + DEBUG(fprintf(stderr, "size: [%lld]\n", (long long)us->size)); + + e = _ftp_cmd(conn, "MDTM %.*s", filenamelen, filename); + if (e != FTP_FILE_STATUS) { + _ftp_seterr(e); + return (-1); + } + for (ln = conn->buf + 4; *ln && isspace(*ln); ln++) + /* nothing */ ; + switch (strspn(ln, "0123456789")) { + case 14: + break; + case 15: + ln++; + ln[0] = '2'; + ln[1] = '0'; + break; + default: + _ftp_seterr(FTP_PROTOCOL_ERROR); + return (-1); + } + if (sscanf(ln, "%04d%02d%02d%02d%02d%02d", + &tm.tm_year, &tm.tm_mon, &tm.tm_mday, + &tm.tm_hour, &tm.tm_min, &tm.tm_sec) != 6) { + _ftp_seterr(FTP_PROTOCOL_ERROR); + return (-1); + } + tm.tm_mon--; + tm.tm_year -= 1900; + tm.tm_isdst = -1; + t = timegm(&tm); + if (t == (time_t)-1) + t = time(NULL); + us->mtime = t; + us->atime = t; + DEBUG(fprintf(stderr, + "last modified: [%04d-%02d-%02d %02d:%02d:%02d]\n", + tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, + tm.tm_hour, tm.tm_min, tm.tm_sec)); + return (0); +} + +/* + * I/O functions for FTP + */ +struct ftpio { + conn_t *cconn; /* Control connection */ + conn_t *dconn; /* Data connection */ + int dir; /* Direction */ + int eof; /* EOF reached */ + int err; /* Error code */ +#if __MOJOSETUP__ + int64 bytes_read; + int64 length; +#endif +}; + + + +#if !__MOJOSETUP__ +static int _ftp_readfn(void *, char *, int); +static int _ftp_writefn(void *, const char *, int); +static fpos_t _ftp_seekfn(void *, fpos_t, int); +static int _ftp_closefn(void *); +#endif + + +#if __MOJOSETUP__ +static boolean MojoInput_ftp_ready(MojoInput *v) +{ + boolean retval = true; + struct ftpio *io = (struct ftpio *)v->opaque; + if (io->dconn != NULL) + { + fd_set rfds; + struct timeval tv; + tv.tv_sec = tv.tv_usec = 0; + FD_ZERO(&rfds); + FD_SET(io->dconn->sd, &rfds); + retval = (select(io->dconn->sd+1, &rfds, NULL, NULL, &tv) > 0); + } // if + return retval; +} +static int64 MojoInput_ftp_tell(MojoInput *v) +{ + struct ftpio *io = (struct ftpio *)v->opaque; + return io->bytes_read; +} +static int64 MojoInput_ftp_length(MojoInput *v) +{ + struct ftpio *io = (struct ftpio *)v->opaque; + return io->length; +} +static MojoInput* MojoInput_ftp_duplicate(MojoInput *v) +{ + return NULL; // !!! FIXME: fatal? +} +#endif + + +#if __MOJOSETUP__ +static int64 MojoInput_ftp_read(MojoInput *v, void *buf, uint32 len) +#else +static int +_ftp_readfn(void *v, char *buf, int len) +#endif +{ + struct ftpio *io; + int r; + +#if __MOJOSETUP__ + io = (struct ftpio *)v->opaque; +#else + io = (struct ftpio *)v; + if (io == NULL) { + errno = EBADF; + return (-1); + } +#endif + if (io->cconn == NULL || io->dconn == NULL || io->dir == O_WRONLY) { + errno = EBADF; + return (-1); + } + if (io->err) { + errno = io->err; + return (-1); + } + if (io->eof) + return (0); + r = _fetch_read(io->dconn, buf, len); +#if __MOJOSETUP__ + if (r > 0) { + io->bytes_read += r; + return (r); + } +#else + if (r > 0) + return (r); +#endif + if (r == 0) { + io->eof = 1; + return (0); + } + if (errno != EINTR) + io->err = errno; + return (-1); +} + +#if !__MOJOSETUP__ +static int +_ftp_writefn(void *v, const char *buf, int len) +{ + struct ftpio *io; + int w; + + io = (struct ftpio *)v; + if (io == NULL) { + errno = EBADF; + return (-1); + } + if (io->cconn == NULL || io->dconn == NULL || io->dir == O_RDONLY) { + errno = EBADF; + return (-1); + } + if (io->err) { + errno = io->err; + return (-1); + } + w = _fetch_write(io->dconn, buf, len); + if (w >= 0) + return (w); + if (errno != EINTR) + io->err = errno; + return (-1); +} +#endif + +#if __MOJOSETUP__ +static boolean MojoInput_ftp_seek(MojoInput *v, uint64 pos) +#else +static fpos_t +_ftp_seekfn(void *v, fpos_t pos __unused, int whence __unused) +#endif +{ + struct ftpio *io; + +#if __MOJOSETUP__ + io = (struct ftpio *)v->opaque; +#else + io = (struct ftpio *)v; + if (io == NULL) { + errno = EBADF; + return (-1); + } +#endif + errno = ESPIPE; + return (-1); +} + +static int +_ftp_closefn(void *v) +{ + struct ftpio *io; + int r; + +#if __MOJOSETUP__ + io = (struct ftpio *) ((MojoInput *)v)->opaque; +#else + io = (struct ftpio *)v; + if (io == NULL) { + errno = EBADF; + return (-1); + } +#endif + if (io->dir == -1) + return (0); + if (io->cconn == NULL || io->dconn == NULL) { + errno = EBADF; + return (-1); + } + _fetch_close(io->dconn); + io->dir = -1; + io->dconn = NULL; + DEBUG(fprintf(stderr, "Waiting for final status\n")); + r = _ftp_chkerr(io->cconn); + if (io->cconn == cached_connection && io->cconn->ref == 1) + cached_connection = NULL; + _fetch_close(io->cconn); + free(io); + +#if __MOJOSETUP__ + free(v); +#endif + + return (r == FTP_TRANSFER_COMPLETE) ? 0 : -1; +} + +#if __MOJOSETUP__ +static void MojoInput_ftp_close(MojoInput *v) +{ + _ftp_closefn(v); +} +#endif + + +#if __MOJOSETUP__ +static MojoInput * +#else +static FILE * +#endif +_ftp_setup(conn_t *cconn, conn_t *dconn, int mode) +{ + struct ftpio *io; +#if __MOJOSETUP__ + MojoInput *f = NULL; +#else + FILE *f; +#endif + + if (cconn == NULL || dconn == NULL) + return (NULL); + if ((io = malloc(sizeof(*io))) == NULL) + return (NULL); + io->cconn = cconn; + io->dconn = dconn; + io->dir = mode; + io->eof = io->err = 0; +#if __MOJOSETUP__ + io->bytes_read = 0; + io->length = -1; + f = (MojoInput *) xmalloc(sizeof (MojoInput)); + f->ready = MojoInput_ftp_ready; + f->read = MojoInput_ftp_read; + f->seek = MojoInput_ftp_seek; + f->tell = MojoInput_ftp_tell; + f->length = MojoInput_ftp_length; + f->duplicate = MojoInput_ftp_duplicate; + f->close = MojoInput_ftp_close; + f->opaque = io; +#else + f = funopen(io, _ftp_readfn, _ftp_writefn, _ftp_seekfn, _ftp_closefn); + if (f == NULL) + free(io); +#endif + + return (f); +} + +/* + * Transfer file + */ +#if __MOJOSETUP__ +static MojoInput * +#else +static FILE * +#endif +_ftp_transfer(conn_t *conn, const char *oper, const char *file, + int mode, off_t offset, const char *flags) +{ + struct sockaddr_storage sa; + struct sockaddr_in6 *sin6; + struct sockaddr_in *sin4; + const char *bindaddr; + const char *filename; + int filenamelen, type; + int low, pasv, verbose; + int e, sd = -1; + socklen_t l; + char *s; +#if __MOJOSETUP__ + MojoInput *df = NULL; +#else + FILE *df; +#endif + + /* check flags */ + low = CHECK_FLAG('l'); + pasv = CHECK_FLAG('p'); + verbose = CHECK_FLAG('v'); + + /* passive mode */ + if (!pasv) + pasv = ((s = getenv("FTP_PASSIVE_MODE")) != NULL && + strncasecmp(s, "no", 2) != 0); + + /* isolate filename */ + filename = _ftp_filename(file, &filenamelen, &type); + + /* set transfer mode and data type */ + if ((e = _ftp_mode_type(conn, 0, type)) != FTP_OK) + goto ouch; + + /* find our own address, bind, and listen */ + l = sizeof(sa); + if (getsockname(conn->sd, (struct sockaddr *)&sa, &l) == -1) + goto sysouch; + if (sa.ss_family == AF_INET6) + unmappedaddr((struct sockaddr_in6 *)&sa); + + /* open data socket */ + if ((sd = socket(sa.ss_family, SOCK_STREAM, IPPROTO_TCP)) == -1) { + _fetch_syserr(); + return (NULL); + } + + if (pasv) { + u_char addr[64]; + char *ln, *p; + unsigned int i; + int port; + + /* send PASV command */ + if (verbose) + _fetch_info("setting passive mode"); + switch (sa.ss_family) { + case AF_INET: + if ((e = _ftp_cmd(conn, "PASV")) != FTP_PASSIVE_MODE) + goto ouch; + break; + case AF_INET6: + if ((e = _ftp_cmd(conn, "EPSV")) != FTP_EPASSIVE_MODE) { + if (e == -1) + goto ouch; + if ((e = _ftp_cmd(conn, "LPSV")) != + FTP_LPASSIVE_MODE) + goto ouch; + } + break; + default: + e = FTP_PROTOCOL_ERROR; /* XXX: error code should be prepared */ + goto ouch; + } + + /* + * Find address and port number. The reply to the PASV command + * is IMHO the one and only weak point in the FTP protocol. + */ + ln = conn->buf; + switch (e) { + case FTP_PASSIVE_MODE: + case FTP_LPASSIVE_MODE: + for (p = ln + 3; *p && !isdigit(*p); p++) + /* nothing */ ; + if (!*p) { + e = FTP_PROTOCOL_ERROR; + goto ouch; + } + l = (e == FTP_PASSIVE_MODE ? 6 : 21); + for (i = 0; *p && i < l; i++, p++) + addr[i] = strtol(p, &p, 10); + if (i < l) { + e = FTP_PROTOCOL_ERROR; + goto ouch; + } + break; + case FTP_EPASSIVE_MODE: + for (p = ln + 3; *p && *p != '('; p++) + /* nothing */ ; + if (!*p) { + e = FTP_PROTOCOL_ERROR; + goto ouch; + } + ++p; + if (sscanf(p, "%c%c%c%d%c", &addr[0], &addr[1], &addr[2], + &port, &addr[3]) != 5 || + addr[0] != addr[1] || + addr[0] != addr[2] || addr[0] != addr[3]) { + e = FTP_PROTOCOL_ERROR; + goto ouch; + } + break; + } + + /* seek to required offset */ + if (offset) + if (_ftp_cmd(conn, "REST %lu", (u_long)offset) != FTP_FILE_OK) + goto sysouch; + + /* construct sockaddr for data socket */ + l = sizeof(sa); + if (getpeername(conn->sd, (struct sockaddr *)&sa, &l) == -1) + goto sysouch; + if (sa.ss_family == AF_INET6) + unmappedaddr((struct sockaddr_in6 *)&sa); + switch (sa.ss_family) { + case AF_INET6: + sin6 = (struct sockaddr_in6 *)&sa; + if (e == FTP_EPASSIVE_MODE) + sin6->sin6_port = htons(port); + else { +#if __MOJOSETUP__ + memmove((char *)&sin6->sin6_addr, addr + 2, 16); + memmove((char *)&sin6->sin6_port, addr + 19, 2); +#else + bcopy(addr + 2, (char *)&sin6->sin6_addr, 16); + bcopy(addr + 19, (char *)&sin6->sin6_port, 2); +#endif + } + break; + case AF_INET: + sin4 = (struct sockaddr_in *)&sa; + if (e == FTP_EPASSIVE_MODE) + sin4->sin_port = htons(port); + else { +#if __MOJOSETUP__ + memmove((char *)&sin4->sin_addr, addr, 4); + memmove((char *)&sin4->sin_port, addr + 4, 2); +#else + bcopy(addr, (char *)&sin4->sin_addr, 4); + bcopy(addr + 4, (char *)&sin4->sin_port, 2); +#endif + } + break; + default: + e = FTP_PROTOCOL_ERROR; /* XXX: error code should be prepared */ + break; + } + + /* connect to data port */ + if (verbose) + _fetch_info("opening data connection"); + bindaddr = getenv("FETCH_BIND_ADDRESS"); + if (bindaddr != NULL && *bindaddr != '\0' && + _fetch_bind(sd, sa.ss_family, bindaddr) != 0) + goto sysouch; +#if __MOJOSETUP__ + { + int socklen = sizeof (struct sockaddr_in); + if (sa.ss_family == AF_INET6) + socklen = sizeof (struct sockaddr_in6); + if (connect(sd, (struct sockaddr *)&sa, socklen) == -1) + goto sysouch; + } +#else + if (connect(sd, (struct sockaddr *)&sa, sa.ss_len) == -1) + goto sysouch; +#endif + + /* make the server initiate the transfer */ + if (verbose) + _fetch_info("initiating transfer"); + e = _ftp_cmd(conn, "%s %.*s", oper, filenamelen, filename); + if (e != FTP_CONNECTION_ALREADY_OPEN && e != FTP_OPEN_DATA_CONNECTION) + goto ouch; + + } else { + u_int32_t a; + u_short p; + int arg, d; + char *ap; + char hname[INET6_ADDRSTRLEN]; + +#if __MOJOSETUP__ + arg = 0; +#if FREEBSD + switch (sa.ss_family) { + case AF_INET6: + ((struct sockaddr_in6 *)&sa)->sin6_port = 0; +#ifdef IPV6_PORTRANGE + arg = low ? IPV6_PORTRANGE_DEFAULT : IPV6_PORTRANGE_HIGH; + if (setsockopt(sd, IPPROTO_IPV6, IPV6_PORTRANGE, + (char *)&arg, sizeof(arg)) == -1) + goto sysouch; +#endif + break; + case AF_INET: + ((struct sockaddr_in *)&sa)->sin_port = 0; + arg = low ? IP_PORTRANGE_DEFAULT : IP_PORTRANGE_HIGH; + if (setsockopt(sd, IPPROTO_IP, IP_PORTRANGE, + (char *)&arg, sizeof(arg)) == -1) + goto sysouch; + break; + } +#endif +#endif + + if (verbose) + _fetch_info("binding data socket"); +#if __MOJOSETUP__ + { + int socklen = sizeof (struct sockaddr_in); + if (sa.ss_family == AF_INET6) + socklen = sizeof (struct sockaddr_in6); + if (bind(sd, (struct sockaddr *)&sa, socklen) == -1) + goto sysouch; + } +#else + if (bind(sd, (struct sockaddr *)&sa, sa.ss_len) == -1) + goto sysouch; +#endif + if (listen(sd, 1) == -1) + goto sysouch; + + /* find what port we're on and tell the server */ + if (getsockname(sd, (struct sockaddr *)&sa, &l) == -1) + goto sysouch; + switch (sa.ss_family) { + case AF_INET: + sin4 = (struct sockaddr_in *)&sa; + a = ntohl(sin4->sin_addr.s_addr); + p = ntohs(sin4->sin_port); + e = _ftp_cmd(conn, "PORT %d,%d,%d,%d,%d,%d", + (a >> 24) & 0xff, (a >> 16) & 0xff, + (a >> 8) & 0xff, a & 0xff, + (p >> 8) & 0xff, p & 0xff); + break; + case AF_INET6: +#define UC(b) (((int)b)&0xff) + e = -1; + sin6 = (struct sockaddr_in6 *)&sa; + sin6->sin6_scope_id = 0; +#if __MOJOSETUP__ + if (getnameinfo((struct sockaddr *)&sa, sizeof (struct sockaddr_in6), +#else + if (getnameinfo((struct sockaddr *)&sa, sa.ss_len, +#endif + hname, sizeof(hname), + NULL, 0, NI_NUMERICHOST) == 0) { + e = _ftp_cmd(conn, "EPRT |%d|%s|%d|", 2, hname, + htons(sin6->sin6_port)); + if (e == -1) + goto ouch; + } + if (e != FTP_OK) { + ap = (char *)&sin6->sin6_addr; + e = _ftp_cmd(conn, + "LPRT %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", + 6, 16, + UC(ap[0]), UC(ap[1]), UC(ap[2]), UC(ap[3]), + UC(ap[4]), UC(ap[5]), UC(ap[6]), UC(ap[7]), + UC(ap[8]), UC(ap[9]), UC(ap[10]), UC(ap[11]), + UC(ap[12]), UC(ap[13]), UC(ap[14]), UC(ap[15]), + 2, + (ntohs(sin6->sin6_port) >> 8) & 0xff, + ntohs(sin6->sin6_port) & 0xff); + } + break; + default: + e = FTP_PROTOCOL_ERROR; /* XXX: error code should be prepared */ + goto ouch; + } + if (e != FTP_OK) + goto ouch; + + /* seek to required offset */ + if (offset) + if (_ftp_cmd(conn, "REST %ju", (uintmax_t)offset) != FTP_FILE_OK) + goto sysouch; + + /* make the server initiate the transfer */ + if (verbose) + _fetch_info("initiating transfer"); + e = _ftp_cmd(conn, "%s %.*s", oper, filenamelen, filename); + if (e != FTP_CONNECTION_ALREADY_OPEN && e != FTP_OPEN_DATA_CONNECTION) + goto ouch; + + /* accept the incoming connection and go to town */ + if ((d = accept(sd, NULL, NULL)) == -1) + goto sysouch; + close(sd); + sd = d; + } + + if ((df = _ftp_setup(conn, _fetch_reopen(sd), mode)) == NULL) + goto sysouch; + return (df); + +sysouch: + _fetch_syserr(); + if (sd >= 0) + close(sd); + return (NULL); + +ouch: + if (e != -1) + _ftp_seterr(e); + if (sd >= 0) + close(sd); + return (NULL); +} + +/* + * Authenticate + */ +static int +_ftp_authenticate(conn_t *conn, struct url *url, struct url *purl) +{ + const char *user, *pwd, *logname; + char pbuf[MAXHOSTNAMELEN + MAXLOGNAME + 1]; + int e, len; + + /* XXX FTP_AUTH, and maybe .netrc */ + + /* send user name and password */ + if (url->user[0] == '\0') + _fetch_netrc_auth(url); + user = url->user; + if (*user == '\0') + user = getenv("FTP_LOGIN"); + if (user == NULL || *user == '\0') + user = FTP_ANONYMOUS_USER; + if (purl && url->port == _fetch_default_port(url->scheme)) + e = _ftp_cmd(conn, "USER %s@%s", user, url->host); + else if (purl) + e = _ftp_cmd(conn, "USER %s@%s@%d", user, url->host, url->port); + else + e = _ftp_cmd(conn, "USER %s", user); + + /* did the server request a password? */ + if (e == FTP_NEED_PASSWORD) { + pwd = url->pwd; + if (*pwd == '\0') + pwd = getenv("FTP_PASSWORD"); + if (pwd == NULL || *pwd == '\0') { + if ((logname = getlogin()) == 0) + logname = FTP_ANONYMOUS_USER; + if ((len = snprintf(pbuf, MAXLOGNAME + 1, "%s@", logname)) < 0) + len = 0; + else if (len > MAXLOGNAME) + len = MAXLOGNAME; + gethostname(pbuf + len, sizeof(pbuf) - len); + pwd = pbuf; + } + e = _ftp_cmd(conn, "PASS %s", pwd); + } + + return (e); +} + +/* + * Log on to FTP server + */ +static conn_t * +_ftp_connect(struct url *url, struct url *purl, const char *flags) +{ + conn_t *conn; + int e, direct, verbose; +#ifdef INET6 + int af = AF_UNSPEC; +#else + int af = AF_INET; +#endif + + direct = CHECK_FLAG('d'); + verbose = CHECK_FLAG('v'); + if (CHECK_FLAG('4')) + af = AF_INET; + else if (CHECK_FLAG('6')) + af = AF_INET6; + + if (direct) + purl = NULL; + + /* check for proxy */ + if (purl) { + /* XXX proxy authentication! */ + conn = _fetch_connect(purl->host, purl->port, af, verbose); + } else { + /* no proxy, go straight to target */ + conn = _fetch_connect(url->host, url->port, af, verbose); + purl = NULL; + } + + /* check connection */ + if (conn == NULL) + /* _fetch_connect() has already set an error code */ + return (NULL); + + /* expect welcome message */ + if ((e = _ftp_chkerr(conn)) != FTP_SERVICE_READY) + goto fouch; + + /* authenticate */ + if ((e = _ftp_authenticate(conn, url, purl)) != FTP_LOGGED_IN) + goto fouch; + + /* TODO: Request extended features supported, if any (RFC 3659). */ + + /* done */ + return (conn); + +fouch: + if (e != -1) + _ftp_seterr(e); + _fetch_close(conn); + return (NULL); +} + +/* + * Disconnect from server + */ +static void +_ftp_disconnect(conn_t *conn) +{ + (void)_ftp_cmd(conn, "QUIT"); + if (conn == cached_connection && conn->ref == 1) + cached_connection = NULL; + _fetch_close(conn); +} + +/* + * Check if we're already connected + */ +static int +_ftp_isconnected(struct url *url) +{ + return (cached_connection + && (strcmp(url->host, cached_host.host) == 0) + && (strcmp(url->user, cached_host.user) == 0) + && (strcmp(url->pwd, cached_host.pwd) == 0) + && (url->port == cached_host.port)); +} + +/* + * Check the cache, reconnect if no luck + */ +static conn_t * +_ftp_cached_connect(struct url *url, struct url *purl, const char *flags) +{ + conn_t *conn; + int e; + + /* set default port */ + if (!url->port) + url->port = _fetch_default_port(url->scheme); + + /* try to use previously cached connection */ + if (_ftp_isconnected(url)) { + e = _ftp_cmd(cached_connection, "NOOP"); + if (e == FTP_OK || e == FTP_SYNTAX_ERROR) + return (_fetch_ref(cached_connection)); + } + + /* connect to server */ + if ((conn = _ftp_connect(url, purl, flags)) == NULL) + return (NULL); + if (cached_connection) + _ftp_disconnect(cached_connection); + cached_connection = _fetch_ref(conn); + memcpy(&cached_host, url, sizeof(*url)); + return (conn); +} + +/* + * Check the proxy settings + */ +static struct url * +_ftp_get_proxy(const char *flags) +{ + struct url *purl; + char *p; + + if (flags != NULL && strchr(flags, 'd') != NULL) + return (NULL); + if (((p = getenv("FTP_PROXY")) || (p = getenv("ftp_proxy")) || + (p = getenv("HTTP_PROXY")) || (p = getenv("http_proxy"))) && + *p && (purl = fetchParseURL(p)) != NULL) { + if (!*purl->scheme) { + if (getenv("FTP_PROXY") || getenv("ftp_proxy")) + strcpy(purl->scheme, SCHEME_FTP); + else + strcpy(purl->scheme, SCHEME_HTTP); + } + if (!purl->port) + purl->port = _fetch_default_proxy_port(purl->scheme); + if (strcasecmp(purl->scheme, SCHEME_FTP) == 0 || + strcasecmp(purl->scheme, SCHEME_HTTP) == 0) + return (purl); + fetchFreeURL(purl); + } + return (NULL); +} + +/* + * Process an FTP request + */ +#if __MOJOSETUP__ +MojoInput * +#else +FILE * +#endif +_ftp_request(struct url *url, const char *op, struct url_stat *us, + struct url *purl, const char *flags) +{ + conn_t *conn; + int oflag; + + /* check if we should use HTTP instead */ +#if !__MOJOSETUP__ + if (purl && strcasecmp(purl->scheme, SCHEME_HTTP) == 0) { + if (strcmp(op, "STAT") == 0) + return (_http_request(url, "HEAD", us, purl, flags)); + else if (strcmp(op, "RETR") == 0) + return (_http_request(url, "GET", us, purl, flags)); + /* + * Our HTTP code doesn't support PUT requests yet, so try + * a direct connection. + */ + } +#endif + + /* connect to server */ + conn = _ftp_cached_connect(url, purl, flags); + if (purl) + fetchFreeURL(purl); + if (conn == NULL) + return (NULL); + + /* change directory */ + if (_ftp_cwd(conn, url->doc) == -1) + return (NULL); + + /* stat file */ + if (us && _ftp_stat(conn, url->doc, us) == -1 + && fetchLastErrCode != FETCH_PROTO + && fetchLastErrCode != FETCH_UNAVAIL) + return (NULL); + + /* just a stat */ +#if __MOJOSETUP__ + if (strcmp(op, "STAT") == 0) + return (MojoInput *)1; /* bogus return value */ +#else + if (strcmp(op, "STAT") == 0) + return (FILE *)1; /* bogus return value */ +#endif + if (strcmp(op, "STOR") == 0 || strcmp(op, "APPE") == 0) + oflag = O_WRONLY; + else + oflag = O_RDONLY; + + /* initiate the transfer */ +#if __MOJOSETUP__ +{ + MojoInput *retval = _ftp_transfer(conn, op, url->doc, oflag, url->offset, flags); + if ((retval != NULL) && (us != NULL)) + { + struct ftpio *io = (struct ftpio *)retval->opaque; + io->length = us->size; + } // if + return retval; +} +#else + return (_ftp_transfer(conn, op, url->doc, oflag, url->offset, flags)); +#endif +} + +/* + * Get and stat file + */ +#if __MOJOSETUP__ +MojoInput * +#else +FILE * +#endif +fetchXGetFTP(struct url *url, struct url_stat *us, const char *flags) +{ + return (_ftp_request(url, "RETR", us, _ftp_get_proxy(flags), flags)); +} + +/* + * Get file + */ +#if !__MOJOSETUP__ +FILE * +fetchGetFTP(struct url *url, const char *flags) +{ + return (fetchXGetFTP(url, NULL, flags)); +} + +/* + * Put file + */ +FILE * +fetchPutFTP(struct url *url, const char *flags) +{ + + return (_ftp_request(url, CHECK_FLAG('a') ? "APPE" : "STOR", NULL, + _ftp_get_proxy(flags), flags)); +} + +/* + * Get file stats + */ +int +fetchStatFTP(struct url *url, struct url_stat *us, const char *flags) +{ + FILE *f; + + f = _ftp_request(url, "STAT", us, _ftp_get_proxy(flags), flags); + if (f == NULL) + return (-1); + return (0); +} + +/* + * List a directory + */ +struct url_ent * +fetchListFTP(struct url *url __unused, const char *flags __unused) +{ + warnx("fetchListFTP(): not implemented"); + return (NULL); +} + +#endif +#endif + diff --git a/mk/linux/mojosetup/libfetch/ftp.errors b/mk/linux/mojosetup/libfetch/ftp.errors new file mode 100644 index 00000000..9ce0277f --- /dev/null +++ b/mk/linux/mojosetup/libfetch/ftp.errors @@ -0,0 +1,47 @@ +# $FreeBSD: src/lib/libfetch/ftp.errors,v 1.6 2002/10/30 06:06:16 des Exp $ +# +# This list is taken from RFC 959. +# It probably needs a going over. +# +110 OK Restart marker reply +120 TEMP Service ready in a few minutes +125 OK Data connection already open; transfer starting +150 OK File status okay; about to open data connection +200 OK Command okay +202 PROTO Command not implemented, superfluous at this site +211 INFO System status, or system help reply +212 INFO Directory status +213 INFO File status +214 INFO Help message +215 INFO Set system type +220 OK Service ready for new user +221 OK Service closing control connection +225 OK Data connection open; no transfer in progress +226 OK Requested file action successful +227 OK Entering Passive Mode +229 OK Entering Extended Passive Mode +230 OK User logged in, proceed +250 OK Requested file action okay, completed +257 OK File/directory created +331 AUTH User name okay, need password +332 AUTH Need account for login +350 OK Requested file action pending further information +421 DOWN Service not available, closing control connection +425 NETWORK Can't open data connection +426 ABORT Connection closed; transfer aborted +450 UNAVAIL File unavailable (e.g., file busy) +451 SERVER Requested action aborted: local error in processing +452 FULL Insufficient storage space in system +500 PROTO Syntax error, command unrecognized +501 PROTO Syntax error in parameters or arguments +502 PROTO Command not implemented +503 PROTO Bad sequence of commands +504 PROTO Command not implemented for that parameter +530 AUTH Not logged in +532 AUTH Need account for storing files +535 PROTO Bug in MediaHawk Video Kernel FTP server +550 UNAVAIL File unavailable (e.g., file not found, no access) +551 PROTO Requested action aborted. Page type unknown +552 FULL Exceeded storage allocation +553 EXISTS File name not allowed +999 PROTO Protocol error diff --git a/mk/linux/mojosetup/libfetch/ftperr.h b/mk/linux/mojosetup/libfetch/ftperr.h new file mode 100644 index 00000000..e4800a05 --- /dev/null +++ b/mk/linux/mojosetup/libfetch/ftperr.h @@ -0,0 +1,46 @@ +static struct fetcherr _ftp_errlist[] = { + { 110, FETCH_OK, "Restart marker reply" }, + { 120, FETCH_TEMP, "Service ready in a few minutes" }, + { 125, FETCH_OK, "Data connection already open; transfer starting" }, + { 150, FETCH_OK, "File status okay; about to open data connection" }, + { 200, FETCH_OK, "Command okay" }, + { 202, FETCH_PROTO, "Command not implemented, superfluous at this site" }, + { 211, FETCH_INFO, "System status, or system help reply" }, + { 212, FETCH_INFO, "Directory status" }, + { 213, FETCH_INFO, "File status" }, + { 214, FETCH_INFO, "Help message" }, + { 215, FETCH_INFO, "Set system type" }, + { 220, FETCH_OK, "Service ready for new user" }, + { 221, FETCH_OK, "Service closing control connection" }, + { 225, FETCH_OK, "Data connection open; no transfer in progress" }, + { 226, FETCH_OK, "Requested file action successful" }, + { 227, FETCH_OK, "Entering Passive Mode" }, + { 229, FETCH_OK, "Entering Extended Passive Mode" }, + { 230, FETCH_OK, "User logged in, proceed" }, + { 250, FETCH_OK, "Requested file action okay, completed" }, + { 257, FETCH_OK, "File/directory created" }, + { 331, FETCH_AUTH, "User name okay, need password" }, + { 332, FETCH_AUTH, "Need account for login" }, + { 350, FETCH_OK, "Requested file action pending further information" }, + { 421, FETCH_DOWN, "Service not available, closing control connection" }, + { 425, FETCH_NETWORK, "Can't open data connection" }, + { 426, FETCH_ABORT, "Connection closed; transfer aborted" }, + { 450, FETCH_UNAVAIL, "File unavailable (e.g., file busy)" }, + { 451, FETCH_SERVER, "Requested action aborted: local error in processing" }, + { 452, FETCH_FULL, "Insufficient storage space in system" }, + { 500, FETCH_PROTO, "Syntax error, command unrecognized" }, + { 501, FETCH_PROTO, "Syntax error in parameters or arguments" }, + { 502, FETCH_PROTO, "Command not implemented" }, + { 503, FETCH_PROTO, "Bad sequence of commands" }, + { 504, FETCH_PROTO, "Command not implemented for that parameter" }, + { 530, FETCH_AUTH, "Not logged in" }, + { 532, FETCH_AUTH, "Need account for storing files" }, + { 535, FETCH_PROTO, "Bug in MediaHawk Video Kernel FTP server" }, + { 550, FETCH_UNAVAIL, "File unavailable (e.g., file not found, no access)" }, + { 551, FETCH_PROTO, "Requested action aborted. Page type unknown" }, + { 552, FETCH_FULL, "Exceeded storage allocation" }, + { 553, FETCH_EXISTS, "File name not allowed" }, + { 999, FETCH_PROTO, "Protocol error" }, + { -1, FETCH_UNKNOWN, "Unknown FTP error" } +}; + diff --git a/mk/linux/mojosetup/libfetch/http.c b/mk/linux/mojosetup/libfetch/http.c new file mode 100644 index 00000000..87205d8e --- /dev/null +++ b/mk/linux/mojosetup/libfetch/http.c @@ -0,0 +1,1373 @@ +/*- + * Copyright (c) 2000-2004 Dag-Erling Coïdan Smørgrav + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer + * in this position and unchanged. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#if __MOJOSETUP__ +#include "mojosetup_libfetch.h" +#endif + +#if SUPPORT_URL_HTTP || SUPPORT_URL_HTTPS + +#if !sun /* __MOJOSETUP__ Solaris support... */ +#include +__FBSDID("$FreeBSD: src/lib/libfetch/http.c,v 1.77 2005/08/24 12:28:05 des Exp $"); +#endif + +/* + * The following copyright applies to the base64 code: + * + *- + * Copyright 1997 Massachusetts Institute of Technology + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose and without fee is hereby + * granted, provided that both the above copyright notice and this + * permission notice appear in all copies, that both the above + * copyright notice and this permission notice appear in all + * supporting documentation, and that the name of M.I.T. not be used + * in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. M.I.T. makes + * no representations about the suitability of this software for any + * purpose. It is provided "as is" without express or implied + * warranty. + * + * THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS + * ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT + * SHALL M.I.T. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include +#if !sun /* __MOJOSETUP__ Solaris support... */ +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "fetch.h" +#include "common.h" +#include "httperr.h" + +/* Maximum number of redirects to follow */ +#define MAX_REDIRECT 5 + +/* Symbolic names for reply codes we care about */ +#define HTTP_OK 200 +#define HTTP_PARTIAL 206 +#define HTTP_MOVED_PERM 301 +#define HTTP_MOVED_TEMP 302 +#define HTTP_SEE_OTHER 303 +#define HTTP_TEMP_REDIRECT 307 +#define HTTP_NEED_AUTH 401 +#define HTTP_NEED_PROXY_AUTH 407 +#define HTTP_BAD_RANGE 416 +#define HTTP_PROTOCOL_ERROR 999 + +#define HTTP_REDIRECT(xyz) ((xyz) == HTTP_MOVED_PERM \ + || (xyz) == HTTP_MOVED_TEMP \ + || (xyz) == HTTP_TEMP_REDIRECT \ + || (xyz) == HTTP_SEE_OTHER) + +#define HTTP_ERROR(xyz) ((xyz) > 400 && (xyz) < 599) + + +/***************************************************************************** + * I/O functions for decoding chunked streams + */ + +struct httpio +{ + conn_t *conn; /* connection */ + int chunked; /* chunked mode */ + char *buf; /* chunk buffer */ + size_t bufsize; /* size of chunk buffer */ + ssize_t buflen; /* amount of data currently in buffer */ + int bufpos; /* current read offset in buffer */ + int eof; /* end-of-file flag */ + int error; /* error flag */ + size_t chunksize; /* remaining size of current chunk */ +#ifndef NDEBUG + size_t total; +#endif + +#if __MOJOSETUP__ + int64 bytes_read; + int64 length; +#endif +}; + + +#if __MOJOSETUP__ +static boolean MojoInput_http_ready(MojoInput *v) +{ + boolean retval = false; + struct httpio *io = (struct httpio *)v->opaque; + if (io->conn != NULL) + { + fd_set rfds; + struct timeval tv; + tv.tv_sec = tv.tv_usec = 0; + FD_ZERO(&rfds); + FD_SET(io->conn->sd, &rfds); + retval = (select(io->conn->sd+1, &rfds, NULL, NULL, &tv) > 0); + } // if + return retval; +} +static boolean MojoInput_http_seek(MojoInput *v, uint64 pos) +{ + return -1; +} +static int64 MojoInput_http_tell(MojoInput *v) +{ + struct httpio *io = (struct httpio *)v->opaque; + return io->bytes_read; +} +static int64 MojoInput_http_length(MojoInput *v) +{ + struct httpio *io = (struct httpio *)v->opaque; + return io->length; +} +static MojoInput* MojoInput_http_duplicate(MojoInput *v) +{ + return NULL; // !!! FIXME: fatal? +} +#endif + + +/* + * Get next chunk header + */ +static int +_http_new_chunk(struct httpio *io) +{ + char *p; + + if (_fetch_getln(io->conn) == -1) + return (-1); + + if (io->conn->buflen < 2 || !ishexnumber(*io->conn->buf)) + return (-1); + + for (p = io->conn->buf; *p && !isspace(*p); ++p) { + if (*p == ';') + break; + if (!ishexnumber(*p)) + return (-1); + if (isdigit(*p)) { + io->chunksize = io->chunksize * 16 + + *p - '0'; + } else { + io->chunksize = io->chunksize * 16 + + 10 + tolower(*p) - 'a'; + } + } + +#ifndef NDEBUG + if (fetchDebug) { + io->total += io->chunksize; + if (io->chunksize == 0) + fprintf(stderr, "%s(): end of last chunk\n", __func__); + else + fprintf(stderr, "%s(): new chunk: %lu (%lu)\n", + __func__, (unsigned long)io->chunksize, + (unsigned long)io->total); + } +#endif + + return (io->chunksize); +} + +/* + * Grow the input buffer to at least len bytes + */ +static inline int +_http_growbuf(struct httpio *io, size_t len) +{ + char *tmp; + + if (io->bufsize >= len) + return (0); + + if ((tmp = realloc(io->buf, len)) == NULL) + return (-1); + io->buf = tmp; + io->bufsize = len; + return (0); +} + +/* + * Fill the input buffer, do chunk decoding on the fly + */ +static int +_http_fillbuf(struct httpio *io, size_t len) +{ + if (io->error) + return (-1); + if (io->eof) + return (0); + + if (io->chunked == 0) { + if (_http_growbuf(io, len) == -1) + return (-1); + if ((io->buflen = _fetch_read(io->conn, io->buf, len)) == -1) { + io->error = 1; + return (-1); + } + io->bufpos = 0; + return (io->buflen); + } + + if (io->chunksize == 0) { + switch (_http_new_chunk(io)) { + case -1: + io->error = 1; + return (-1); + case 0: + io->eof = 1; + return (0); + } + } + + if (len > io->chunksize) + len = io->chunksize; + if (_http_growbuf(io, len) == -1) + return (-1); + if ((io->buflen = _fetch_read(io->conn, io->buf, len)) == -1) { + io->error = 1; + return (-1); + } + io->chunksize -= io->buflen; + + if (io->chunksize == 0) { + char endl[2]; + + if (_fetch_read(io->conn, endl, 2) != 2 || + endl[0] != '\r' || endl[1] != '\n') + return (-1); + } + + io->bufpos = 0; + + return (io->buflen); +} + +/* + * Read function + */ +#if __MOJOSETUP__ +static int64 MojoInput_http_read(MojoInput *v, void *buf, uint32 len) +#else +static int +_http_readfn(void *v, char *buf, int len) +#endif +{ +#if __MOJOSETUP__ + struct httpio *io = (struct httpio *)v->opaque; +#else + struct httpio *io = (struct httpio *)v; +#endif + int l, pos; + + if (io->error) + return (-1); + if (io->eof) + return (0); + + for (pos = 0; len > 0; pos += l, len -= l) { + /* empty buffer */ + if (!io->buf || io->bufpos == io->buflen) + if (_http_fillbuf(io, len) < 1) + break; + l = io->buflen - io->bufpos; + if (len < l) + l = len; +#if __MOJOSETUP__ + memmove(((char *)buf) + pos, io->buf + io->bufpos, l); +#else + bcopy(io->buf + io->bufpos, buf + pos, l); +#endif + io->bufpos += l; +#if __MOJOSETUP__ + io->bytes_read += l; +#endif + } + + if (!pos && io->error) + return (-1); + return (pos); +} + +/* + * Write function + */ +#if !__MOJOSETUP__ +static int +_http_writefn(void *v, const char *buf, int len) +{ + struct httpio *io = (struct httpio *)v; + + return (_fetch_write(io->conn, buf, len)); +} +#endif + +/* + * Close function + */ +static int +_http_closefn(void *v) +{ +#if __MOJOSETUP__ + struct httpio *io = (struct httpio *) ((MojoInput *)v)->opaque; +#else + struct httpio *io = (struct httpio *)v; +#endif + int r; + + r = _fetch_close(io->conn); + if (io->buf) + free(io->buf); + free(io); +#if __MOJOSETUP__ + free(v); +#endif + return (r); +} + +#if __MOJOSETUP__ +static void MojoInput_http_close(MojoInput *v) +{ + _http_closefn(v); +} +#endif + +/* + * Wrap a file descriptor up + */ +#if __MOJOSETUP__ +static MojoInput * +#else +static FILE * +#endif +_http_funopen(conn_t *conn, int chunked) +{ + struct httpio *io; +#if __MOJOSETUP__ + MojoInput *f = NULL; +#else + FILE *f; +#endif + + if ((io = calloc(1, sizeof(*io))) == NULL) { + _fetch_syserr(); + return (NULL); + } + io->conn = conn; + io->chunked = chunked; +#if __MOJOSETUP__ + io->bytes_read = 0; + io->length = -1; + f = (MojoInput *) xmalloc(sizeof (MojoInput)); + f->ready = MojoInput_http_ready; + f->read = MojoInput_http_read; + f->seek = MojoInput_http_seek; + f->tell = MojoInput_http_tell; + f->length = MojoInput_http_length; + f->duplicate = MojoInput_http_duplicate; + f->close = MojoInput_http_close; + f->opaque = io; +#else + f = funopen(io, _http_readfn, _http_writefn, NULL, _http_closefn); + if (f == NULL) { + _fetch_syserr(); + free(io); + return (NULL); + } +#endif + return (f); +} + + +/***************************************************************************** + * Helper functions for talking to the server and parsing its replies + */ + +/* Header types */ +typedef enum { + hdr_syserror = -2, + hdr_error = -1, + hdr_end = 0, + hdr_unknown = 1, + hdr_content_length, + hdr_content_range, + hdr_last_modified, + hdr_location, + hdr_transfer_encoding, + hdr_www_authenticate +} hdr_t; + +/* Names of interesting headers */ +static struct { + hdr_t num; + const char *name; +} hdr_names[] = { + { hdr_content_length, "Content-Length" }, + { hdr_content_range, "Content-Range" }, + { hdr_last_modified, "Last-Modified" }, + { hdr_location, "Location" }, + { hdr_transfer_encoding, "Transfer-Encoding" }, + { hdr_www_authenticate, "WWW-Authenticate" }, + { hdr_unknown, NULL }, +}; + +/* + * Send a formatted line; optionally echo to terminal + */ +#if __MOJOSETUP__ +static int _http_cmd(conn_t *conn, const char *fmt, ...) ISPRINTF(2,3); +#endif +static int +_http_cmd(conn_t *conn, const char *fmt, ...) +{ + va_list ap; + size_t len; + char *msg; + int r; + + va_start(ap, fmt); + len = vasprintf(&msg, fmt, ap); + va_end(ap); + + if (msg == NULL) { + errno = ENOMEM; + _fetch_syserr(); + return (-1); + } + + r = _fetch_putln(conn, msg, len); + free(msg); + + if (r == -1) { + _fetch_syserr(); + return (-1); + } + + return (0); +} + +/* + * Get and parse status line + */ +static int +_http_get_reply(conn_t *conn) +{ + char *p; + + if (_fetch_getln(conn) == -1) + return (-1); + /* + * A valid status line looks like "HTTP/m.n xyz reason" where m + * and n are the major and minor protocol version numbers and xyz + * is the reply code. + * Unfortunately, there are servers out there (NCSA 1.5.1, to name + * just one) that do not send a version number, so we can't rely + * on finding one, but if we do, insist on it being 1.0 or 1.1. + * We don't care about the reason phrase. + */ + if (strncmp(conn->buf, "HTTP", 4) != 0) + return (HTTP_PROTOCOL_ERROR); + p = conn->buf + 4; + if (*p == '/') { + if (p[1] != '1' || p[2] != '.' || (p[3] != '0' && p[3] != '1')) + return (HTTP_PROTOCOL_ERROR); + p += 4; + } + if (*p != ' ' || !isdigit(p[1]) || !isdigit(p[2]) || !isdigit(p[3])) + return (HTTP_PROTOCOL_ERROR); + + conn->err = (p[1] - '0') * 100 + (p[2] - '0') * 10 + (p[3] - '0'); + return (conn->err); +} + +/* + * Check a header; if the type matches the given string, return a pointer + * to the beginning of the value. + */ +static const char * +_http_match(const char *str, const char *hdr) +{ + while (*str && *hdr && tolower(*str++) == tolower(*hdr++)) + /* nothing */; + if (*str || *hdr != ':') + return (NULL); + while (*hdr && isspace(*++hdr)) + /* nothing */; + return (hdr); +} + +/* + * Get the next header and return the appropriate symbolic code. + */ +static hdr_t +_http_next_header(conn_t *conn, const char **p) +{ + int i; + + if (_fetch_getln(conn) == -1) + return (hdr_syserror); + while (conn->buflen && isspace(conn->buf[conn->buflen - 1])) + conn->buflen--; + conn->buf[conn->buflen] = '\0'; + if (conn->buflen == 0) + return (hdr_end); + /* + * We could check for malformed headers but we don't really care. + * A valid header starts with a token immediately followed by a + * colon; a token is any sequence of non-control, non-whitespace + * characters except "()<>@,;:\\\"{}". + */ + for (i = 0; hdr_names[i].num != hdr_unknown; i++) + if ((*p = _http_match(hdr_names[i].name, conn->buf)) != NULL) + return (hdr_names[i].num); + return (hdr_unknown); +} + +/* + * Parse a last-modified header + */ +static int +_http_parse_mtime(const char *p, time_t *mtime) +{ + char locale[64], *r; + struct tm tm; + + strncpy(locale, setlocale(LC_TIME, NULL), sizeof(locale)); + setlocale(LC_TIME, "C"); + r = strptime(p, "%a, %d %b %Y %H:%M:%S GMT", &tm); + /* XXX should add support for date-2 and date-3 */ + setlocale(LC_TIME, locale); + if (r == NULL) + return (-1); + DEBUG(fprintf(stderr, "last modified: [%04d-%02d-%02d " + "%02d:%02d:%02d]\n", + tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, + tm.tm_hour, tm.tm_min, tm.tm_sec)); + *mtime = timegm(&tm); + return (0); +} + +/* + * Parse a content-length header + */ +static int +_http_parse_length(const char *p, off_t *length) +{ + off_t len; + + for (len = 0; *p && isdigit(*p); ++p) + len = len * 10 + (*p - '0'); + if (*p) + return (-1); + DEBUG(fprintf(stderr, "content length: [%lld]\n", + (long long)len)); + *length = len; + return (0); +} + +/* + * Parse a content-range header + */ +static int +_http_parse_range(const char *p, off_t *offset, off_t *length, off_t *size) +{ + off_t first, last, len; + + if (strncasecmp(p, "bytes ", 6) != 0) + return (-1); + p += 6; + if (*p == '*') { + first = last = -1; + ++p; + } else { + for (first = 0; *p && isdigit(*p); ++p) + first = first * 10 + *p - '0'; + if (*p != '-') + return (-1); + for (last = 0, ++p; *p && isdigit(*p); ++p) + last = last * 10 + *p - '0'; + } + if (first > last || *p != '/') + return (-1); + for (len = 0, ++p; *p && isdigit(*p); ++p) + len = len * 10 + *p - '0'; + if (*p || len < last - first + 1) + return (-1); + if (first == -1) { + DEBUG(fprintf(stderr, "content range: [*/%lld]\n", + (long long)len)); + *length = 0; + } else { + DEBUG(fprintf(stderr, "content range: [%lld-%lld/%lld]\n", + (long long)first, (long long)last, (long long)len)); + *length = last - first + 1; + } + *offset = first; + *size = len; + return (0); +} + + +/***************************************************************************** + * Helper functions for authorization + */ + +/* + * Base64 encoding + */ +static char * +_http_base64(const char *src) +{ + static const char base64[] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789+/"; + char *str, *dst; + size_t l; + int t, r; + + l = strlen(src); + if ((str = malloc(((l + 2) / 3) * 4 + 1)) == NULL) + return (NULL); + dst = str; + r = 0; + + while (l >= 3) { + t = (src[0] << 16) | (src[1] << 8) | src[2]; + dst[0] = base64[(t >> 18) & 0x3f]; + dst[1] = base64[(t >> 12) & 0x3f]; + dst[2] = base64[(t >> 6) & 0x3f]; + dst[3] = base64[(t >> 0) & 0x3f]; + src += 3; l -= 3; + dst += 4; r += 4; + } + + switch (l) { + case 2: + t = (src[0] << 16) | (src[1] << 8); + dst[0] = base64[(t >> 18) & 0x3f]; + dst[1] = base64[(t >> 12) & 0x3f]; + dst[2] = base64[(t >> 6) & 0x3f]; + dst[3] = '='; + dst += 4; + r += 4; + break; + case 1: + t = src[0] << 16; + dst[0] = base64[(t >> 18) & 0x3f]; + dst[1] = base64[(t >> 12) & 0x3f]; + dst[2] = dst[3] = '='; + dst += 4; + r += 4; + break; + case 0: + break; + } + + *dst = 0; + return (str); +} + +/* + * Encode username and password + */ +static int +_http_basic_auth(conn_t *conn, const char *hdr, const char *usr, const char *pwd) +{ + char *upw, *auth; + int r; + + DEBUG(fprintf(stderr, "usr: [%s]\n", usr)); + DEBUG(fprintf(stderr, "pwd: [%s]\n", pwd)); + if (asprintf(&upw, "%s:%s", usr, pwd) == -1) + return (-1); + auth = _http_base64(upw); + free(upw); + if (auth == NULL) + return (-1); + r = _http_cmd(conn, "%s: Basic %s", hdr, auth); + free(auth); + return (r); +} + +/* + * Send an authorization header + */ +static int +_http_authorize(conn_t *conn, const char *hdr, const char *p) +{ + /* basic authorization */ + if (strncasecmp(p, "basic:", 6) == 0) { + char *user, *pwd, *str; + int r; + + /* skip realm */ + for (p += 6; *p && *p != ':'; ++p) + /* nothing */ ; + if (!*p || strchr(++p, ':') == NULL) + return (-1); + if ((str = strdup(p)) == NULL) + return (-1); /* XXX */ + user = str; + pwd = strchr(str, ':'); + *pwd++ = '\0'; + r = _http_basic_auth(conn, hdr, user, pwd); + free(str); + return (r); + } + return (-1); +} + + +/***************************************************************************** + * Helper functions for connecting to a server or proxy + */ + +/* + * Connect to the correct HTTP server or proxy. + */ +static conn_t * +_http_connect(struct url *URL, struct url *purl, const char *flags) +{ + conn_t *conn; + int verbose; + int af, val; + +#ifdef INET6 + af = AF_UNSPEC; +#else + af = AF_INET; +#endif + + verbose = CHECK_FLAG('v'); + if (CHECK_FLAG('4')) + af = AF_INET; +#ifdef INET6 + else if (CHECK_FLAG('6')) + af = AF_INET6; +#endif + + if (purl && strcasecmp(URL->scheme, SCHEME_HTTPS) != 0) { + URL = purl; + } else if (strcasecmp(URL->scheme, SCHEME_FTP) == 0) { + /* can't talk http to an ftp server */ + /* XXX should set an error code */ + return (NULL); + } + + if ((conn = _fetch_connect(URL->host, URL->port, af, verbose)) == NULL) + /* _fetch_connect() has already set an error code */ + return (NULL); + if (strcasecmp(URL->scheme, SCHEME_HTTPS) == 0 && + _fetch_ssl(conn, verbose) == -1) { + _fetch_close(conn); + /* grrr */ + errno = EAUTH; + _fetch_syserr(); + return (NULL); + } + + val = 1; + +#if !sun /* __MOJOSETUP__ Solaris support... */ + setsockopt(conn->sd, IPPROTO_TCP, TCP_NOPUSH, &val, sizeof(val)); +#endif + + return (conn); +} + +static struct url * +_http_get_proxy(const char *flags) +{ + struct url *purl; + char *p; + + if (flags != NULL && strchr(flags, 'd') != NULL) + return (NULL); + if (((p = getenv("HTTP_PROXY")) || (p = getenv("http_proxy"))) && + *p && (purl = fetchParseURL(p))) { + if (!*purl->scheme) + strcpy(purl->scheme, SCHEME_HTTP); + if (!purl->port) + purl->port = _fetch_default_proxy_port(purl->scheme); + if (strcasecmp(purl->scheme, SCHEME_HTTP) == 0) + return (purl); + fetchFreeURL(purl); + } + return (NULL); +} + +#if !__MOJOSETUP__ +static void +_http_print_html(FILE *out, FILE *in) +{ + size_t len; + char *line, *p, *q; + int comment, tag; + + comment = tag = 0; + while ((line = fgetln(in, &len)) != NULL) { + while (len && isspace(line[len - 1])) + --len; + for (p = q = line; q < line + len; ++q) { + if (comment && *q == '-') { + if (q + 2 < line + len && + strcmp(q, "-->") == 0) { + tag = comment = 0; + q += 2; + } + } else if (tag && !comment && *q == '>') { + p = q + 1; + tag = 0; + } else if (!tag && *q == '<') { + if (q > p) + fwrite(p, q - p, 1, out); + tag = 1; + if (q + 3 < line + len && + strcmp(q, " + + + diff --git a/mk/linux/mojosetup/lua/doc/cover.png b/mk/linux/mojosetup/lua/doc/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..2dbb198123f03a7250bfa57c8253739962d69afb GIT binary patch literal 3305 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/lua/doc/logo.gif b/mk/linux/mojosetup/lua/doc/logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f5e4ac2e742fbb7675e739879211553758aea9c GIT binary patch literal 4232 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 PWz_J}_#7St0k8iB@FZjZ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/lua/doc/lua.1 b/mk/linux/mojosetup/lua/doc/lua.1 new file mode 100644 index 00000000..24809cc6 --- /dev/null +++ b/mk/linux/mojosetup/lua/doc/lua.1 @@ -0,0 +1,163 @@ +.\" $Id: lua.man,v 1.11 2006/01/06 16:03:34 lhf Exp $ +.TH LUA 1 "$Date: 2006/01/06 16:03:34 $" +.SH NAME +lua \- Lua interpreter +.SH SYNOPSIS +.B lua +[ +.I options +] +[ +.I script +[ +.I args +] +] +.SH DESCRIPTION +.B lua +is the stand-alone Lua interpreter. +It loads and executes Lua programs, +either in textual source form or +in precompiled binary form. +(Precompiled binaries are output by +.BR luac , +the Lua compiler.) +.B lua +can be used as a batch interpreter and also interactively. +.LP +The given +.I options +(see below) +are executed and then +the Lua program in file +.I script +is loaded and executed. +The given +.I args +are available to +.I script +as strings in a global table named +.BR arg . +If these arguments contain spaces or other characters special to the shell, +then they should be quoted +(but note that the quotes will be removed by the shell). +The arguments in +.B arg +start at 0, +which contains the string +.RI ' script '. +The index of the last argument is stored in +.BR arg.n . +The arguments given in the command line before +.IR script , +including the name of the interpreter, +are available in negative indices in +.BR arg . +.LP +At the very start, +before even handling the command line, +.B lua +executes the contents of the environment variable +.BR LUA_INIT , +if it is defined. +If the value of +.B LUA_INIT +is of the form +.RI '@ filename ', +then +.I filename +is executed. +Otherwise, the string is assumed to be a Lua statement and is executed. +.LP +Options start with +.B '\-' +and are described below. +You can use +.B "'\--'" +to signal the end of options. +.LP +If no arguments are given, +then +.B "\-v \-i" +is assumed when the standard input is a terminal; +otherwise, +.B "\-" +is assumed. +.LP +In interactive mode, +.B lua +prompts the user, +reads lines from the standard input, +and executes them as they are read. +If a line does not contain a complete statement, +then a secondary prompt is displayed and +lines are read until a complete statement is formed or +a syntax error is found. +So, one way to interrupt the reading of an incomplete statement is +to force a syntax error: +adding a +.B ';' +in the middle of a statement is a sure way of forcing a syntax error +(except inside multiline strings and comments; these must be closed explicitly). +If a line starts with +.BR '=' , +then +.B lua +displays the values of all the expressions in the remainder of the +line. The expressions must be separated by commas. +The primary prompt is the value of the global variable +.BR _PROMPT , +if this value is a string; +otherwise, the default prompt is used. +Similarly, the secondary prompt is the value of the global variable +.BR _PROMPT2 . +So, +to change the prompts, +set the corresponding variable to a string of your choice. +You can do that after calling the interpreter +or on the command line +(but in this case you have to be careful with quotes +if the prompt string contains a space; otherwise you may confuse the shell.) +The default prompts are "> " and ">> ". +.SH OPTIONS +.TP +.B \- +load and execute the standard input as a file, +that is, +not interactively, +even when the standard input is a terminal. +.TP +.BI \-e " stat" +execute statement +.IR stat . +You need to quote +.I stat +if it contains spaces, quotes, +or other characters special to the shell. +.TP +.B \-i +enter interactive mode after +.I script +is executed. +.TP +.BI \-l " name" +call +.BI require(' name ') +before executing +.IR script . +Typically used to load libraries. +.TP +.B \-v +show version information. +.SH "SEE ALSO" +.BR luac (1) +.br +http://www.lua.org/ +.SH DIAGNOSTICS +Error messages should be self explanatory. +.SH AUTHORS +R. Ierusalimschy, +L. H. de Figueiredo, +and +W. Celes +.\" EOF diff --git a/mk/linux/mojosetup/lua/doc/lua.css b/mk/linux/mojosetup/lua/doc/lua.css new file mode 100644 index 00000000..039cf116 --- /dev/null +++ b/mk/linux/mojosetup/lua/doc/lua.css @@ -0,0 +1,41 @@ +body { + color: #000000 ; + background-color: #FFFFFF ; + font-family: sans-serif ; + text-align: justify ; + margin-right: 20px ; + margin-left: 20px ; +} + +h1, h2, h3, h4 { + font-weight: normal ; + font-style: italic ; +} + +a:link { + color: #000080 ; + background-color: inherit ; + text-decoration: none ; +} + +a:visited { + background-color: inherit ; + text-decoration: none ; +} + +a:link:hover, a:visited:hover { + color: #000080 ; + background-color: #E0E0FF ; +} + +a:link:active, a:visited:active { + color: #FF0000 ; +} + +hr { + border: 0 ; + height: 1px ; + color: #a0a0a0 ; + background-color: #a0a0a0 ; +} + diff --git a/mk/linux/mojosetup/lua/doc/lua.html b/mk/linux/mojosetup/lua/doc/lua.html new file mode 100644 index 00000000..1d435ab0 --- /dev/null +++ b/mk/linux/mojosetup/lua/doc/lua.html @@ -0,0 +1,172 @@ + + + +LUA man page + + + + + +

      NAME

      +lua - Lua interpreter +

      SYNOPSIS

      +lua +[ +options +] +[ +script +[ +args +] +] +

      DESCRIPTION

      +lua +is the stand-alone Lua interpreter. +It loads and executes Lua programs, +either in textual source form or +in precompiled binary form. +(Precompiled binaries are output by +luac, +the Lua compiler.) +lua +can be used as a batch interpreter and also interactively. +

      +The given +options +(see below) +are executed and then +the Lua program in file +script +is loaded and executed. +The given +args +are available to +script +as strings in a global table named +arg. +If these arguments contain spaces or other characters special to the shell, +then they should be quoted +(but note that the quotes will be removed by the shell). +The arguments in +arg +start at 0, +which contains the string +'script'. +The index of the last argument is stored in +arg.n. +The arguments given in the command line before +script, +including the name of the interpreter, +are available in negative indices in +arg. +

      +At the very start, +before even handling the command line, +lua +executes the contents of the environment variable +LUA_INIT, +if it is defined. +If the value of +LUA_INIT +is of the form +'@filename', +then +filename +is executed. +Otherwise, the string is assumed to be a Lua statement and is executed. +

      +Options start with +'-' +and are described below. +You can use +'--' +to signal the end of options. +

      +If no arguments are given, +then +"-v -i" +is assumed when the standard input is a terminal; +otherwise, +"-" +is assumed. +

      +In interactive mode, +lua +prompts the user, +reads lines from the standard input, +and executes them as they are read. +If a line does not contain a complete statement, +then a secondary prompt is displayed and +lines are read until a complete statement is formed or +a syntax error is found. +So, one way to interrupt the reading of an incomplete statement is +to force a syntax error: +adding a +';' +in the middle of a statement is a sure way of forcing a syntax error +(except inside multiline strings and comments; these must be closed explicitly). +If a line starts with +'=', +then +lua +displays the values of all the expressions in the remainder of the +line. The expressions must be separated by commas. +The primary prompt is the value of the global variable +_PROMPT, +if this value is a string; +otherwise, the default prompt is used. +Similarly, the secondary prompt is the value of the global variable +_PROMPT2. +So, +to change the prompts, +set the corresponding variable to a string of your choice. +You can do that after calling the interpreter +or on the command line +(but in this case you have to be careful with quotes +if the prompt string contains a space; otherwise you may confuse the shell.) +The default prompts are "> " and ">> ". +

      OPTIONS

      +

      +- +load and execute the standard input as a file, +that is, +not interactively, +even when the standard input is a terminal. +

      +-e stat +execute statement +stat. +You need to quote +stat +if it contains spaces, quotes, +or other characters special to the shell. +

      +-i +enter interactive mode after +script +is executed. +

      +-l name +call +require('name') +before executing +script. +Typically used to load libraries. +

      +-v +show version information. +

      SEE ALSO

      +luac(1) +
      +
      http://www.lua.org/ +

      DIAGNOSTICS

      +Error messages should be self explanatory. +

      AUTHORS

      +R. Ierusalimschy, +L. H. de Figueiredo, +and +W. Celes + + + diff --git a/mk/linux/mojosetup/lua/doc/luac.1 b/mk/linux/mojosetup/lua/doc/luac.1 new file mode 100644 index 00000000..d8146782 --- /dev/null +++ b/mk/linux/mojosetup/lua/doc/luac.1 @@ -0,0 +1,136 @@ +.\" $Id: luac.man,v 1.28 2006/01/06 16:03:34 lhf Exp $ +.TH LUAC 1 "$Date: 2006/01/06 16:03:34 $" +.SH NAME +luac \- Lua compiler +.SH SYNOPSIS +.B luac +[ +.I options +] [ +.I filenames +] +.SH DESCRIPTION +.B luac +is the Lua compiler. +It translates programs written in the Lua programming language +into binary files that can be later loaded and executed. +.LP +The main advantages of precompiling chunks are: +faster loading, +protecting source code from accidental user changes, +and +off-line syntax checking. +.LP +Pre-compiling does not imply faster execution +because in Lua chunks are always compiled into bytecodes before being executed. +.B luac +simply allows those bytecodes to be saved in a file for later execution. +.LP +Pre-compiled chunks are not necessarily smaller than the corresponding source. +The main goal in pre-compiling is faster loading. +.LP +The binary files created by +.B luac +are portable only among architectures with the same word size and byte order. +.LP +.B luac +produces a single output file containing the bytecodes +for all source files given. +By default, +the output file is named +.BR luac.out , +but you can change this with the +.B \-o +option. +.LP +In the command line, +you can mix +text files containing Lua source and +binary files containing precompiled chunks. +This is useful to combine several precompiled chunks, +even from different (but compatible) platforms, +into a single precompiled chunk. +.LP +You can use +.B "'\-'" +to indicate the standard input as a source file +and +.B "'\--'" +to signal the end of options +(that is, +all remaining arguments will be treated as files even if they start with +.BR "'\-'" ). +.LP +The internal format of the binary files produced by +.B luac +is likely to change when a new version of Lua is released. +So, +save the source files of all Lua programs that you precompile. +.LP +.SH OPTIONS +Options must be separate. +.TP +.B \-l +produce a listing of the compiled bytecode for Lua's virtual machine. +Listing bytecodes is useful to learn about Lua's virtual machine. +If no files are given, then +.B luac +loads +.B luac.out +and lists its contents. +.TP +.BI \-o " file" +output to +.IR file , +instead of the default +.BR luac.out . +(You can use +.B "'\-'" +for standard output, +but not on platforms that open standard output in text mode.) +The output file may be a source file because +all files are loaded before the output file is written. +Be careful not to overwrite precious files. +.TP +.B \-p +load files but do not generate any output file. +Used mainly for syntax checking and for testing precompiled chunks: +corrupted files will probably generate errors when loaded. +Lua always performs a thorough integrity test on precompiled chunks. +Bytecode that passes this test is completely safe, +in the sense that it will not break the interpreter. +However, +there is no guarantee that such code does anything sensible. +(None can be given, because the halting problem is unsolvable.) +If no files are given, then +.B luac +loads +.B luac.out +and tests its contents. +No messages are displayed if the file passes the integrity test. +.TP +.B \-s +strip debug information before writing the output file. +This saves some space in very large chunks, +but if errors occur when running a stripped chunk, +then the error messages may not contain the full information they usually do. +For instance, +line numbers and names of local variables are lost. +.TP +.B \-v +show version information. +.SH FILES +.TP 15 +.B luac.out +default output file +.SH "SEE ALSO" +.BR lua (1) +.br +http://www.lua.org/ +.SH DIAGNOSTICS +Error messages should be self explanatory. +.SH AUTHORS +L. H. de Figueiredo, +R. Ierusalimschy and +W. Celes +.\" EOF diff --git a/mk/linux/mojosetup/lua/doc/luac.html b/mk/linux/mojosetup/lua/doc/luac.html new file mode 100644 index 00000000..179ffe82 --- /dev/null +++ b/mk/linux/mojosetup/lua/doc/luac.html @@ -0,0 +1,145 @@ + + + +LUAC man page + + + + + +

      NAME

      +luac - Lua compiler +

      SYNOPSIS

      +luac +[ +options +] [ +filenames +] +

      DESCRIPTION

      +luac +is the Lua compiler. +It translates programs written in the Lua programming language +into binary files that can be later loaded and executed. +

      +The main advantages of precompiling chunks are: +faster loading, +protecting source code from accidental user changes, +and +off-line syntax checking. +

      +Precompiling does not imply faster execution +because in Lua chunks are always compiled into bytecodes before being executed. +luac +simply allows those bytecodes to be saved in a file for later execution. +

      +Precompiled chunks are not necessarily smaller than the corresponding source. +The main goal in precompiling is faster loading. +

      +The binary files created by +luac +are portable only among architectures with the same word size and byte order. +

      +luac +produces a single output file containing the bytecodes +for all source files given. +By default, +the output file is named +luac.out, +but you can change this with the +-o +option. +

      +In the command line, +you can mix +text files containing Lua source and +binary files containing precompiled chunks. +This is useful because several precompiled chunks, +even from different (but compatible) platforms, +can be combined into a single precompiled chunk. +

      +You can use +'-' +to indicate the standard input as a source file +and +'--' +to signal the end of options +(that is, +all remaining arguments will be treated as files even if they start with +'-'). +

      +The internal format of the binary files produced by +luac +is likely to change when a new version of Lua is released. +So, +save the source files of all Lua programs that you precompile. +

      +

      OPTIONS

      +Options must be separate. +

      +-l +produce a listing of the compiled bytecode for Lua's virtual machine. +Listing bytecodes is useful to learn about Lua's virtual machine. +If no files are given, then +luac +loads +luac.out +and lists its contents. +

      +-o file +output to +file, +instead of the default +luac.out. +(You can use +'-' +for standard output, +but not on platforms that open standard output in text mode.) +The output file may be a source file because +all files are loaded before the output file is written. +Be careful not to overwrite precious files. +

      +-p +load files but do not generate any output file. +Used mainly for syntax checking and for testing precompiled chunks: +corrupted files will probably generate errors when loaded. +Lua always performs a thorough integrity test on precompiled chunks. +Bytecode that passes this test is completely safe, +in the sense that it will not break the interpreter. +However, +there is no guarantee that such code does anything sensible. +(None can be given, because the halting problem is unsolvable.) +If no files are given, then +luac +loads +luac.out +and tests its contents. +No messages are displayed if the file passes the integrity test. +

      +-s +strip debug information before writing the output file. +This saves some space in very large chunks, +but if errors occur when running a stripped chunk, +then the error messages may not contain the full information they usually do. +For instance, +line numbers and names of local variables are lost. +

      +-v +show version information. +

      FILES

      +

      +luac.out +default output file +

      SEE ALSO

      +lua(1) +
      +http://www.lua.org/ +

      DIAGNOSTICS

      +Error messages should be self explanatory. +

      AUTHORS

      +L. H. de Figueiredo, +R. Ierusalimschy and +W. Celes + + + diff --git a/mk/linux/mojosetup/lua/doc/manual.css b/mk/linux/mojosetup/lua/doc/manual.css new file mode 100644 index 00000000..eed5afd9 --- /dev/null +++ b/mk/linux/mojosetup/lua/doc/manual.css @@ -0,0 +1,13 @@ +h3 code { + font-family: inherit ; +} + +pre { + font-size: 105% ; +} + +span.apii { + float: right ; + font-family: inherit ; +} + diff --git a/mk/linux/mojosetup/lua/doc/manual.html b/mk/linux/mojosetup/lua/doc/manual.html new file mode 100644 index 00000000..f46f17c8 --- /dev/null +++ b/mk/linux/mojosetup/lua/doc/manual.html @@ -0,0 +1,8801 @@ + + + + +Lua 5.1 Reference Manual + + + + + + + +
      +

      + +Lua 5.1 Reference Manual +

      + +by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes +

      + +Copyright © 2006-2008 Lua.org, PUC-Rio. +Freely available under the terms of the +Lua license. + +


      +

      + +contents +· +index + + +

      + + + + + + +

      1 - Introduction

      + +

      +Lua is an extension programming language designed to support +general procedural programming with data description +facilities. +It also offers good support for object-oriented programming, +functional programming, and data-driven programming. +Lua is intended to be used as a powerful, light-weight +scripting language for any program that needs one. +Lua is implemented as a library, written in clean C +(that is, in the common subset of ANSI C and C++). + + +

      +Being an extension language, Lua has no notion of a "main" program: +it only works embedded in a host client, +called the embedding program or simply the host. +This host program can invoke functions to execute a piece of Lua code, +can write and read Lua variables, +and can register C functions to be called by Lua code. +Through the use of C functions, Lua can be augmented to cope with +a wide range of different domains, +thus creating customized programming languages sharing a syntactical framework. +The Lua distribution includes a sample host program called lua, +which uses the Lua library to offer a complete, stand-alone Lua interpreter. + + +

      +Lua is free software, +and is provided as usual with no guarantees, +as stated in its license. +The implementation described in this manual is available +at Lua's official web site, www.lua.org. + + +

      +Like any other reference manual, +this document is dry in places. +For a discussion of the decisions behind the design of Lua, +see the technical papers available at Lua's web site. +For a detailed introduction to programming in Lua, +see Roberto's book, Programming in Lua (Second Edition). + + + +

      2 - The Language

      + +

      +This section describes the lexis, the syntax, and the semantics of Lua. +In other words, +this section describes +which tokens are valid, +how they can be combined, +and what their combinations mean. + + +

      +The language constructs will be explained using the usual extended BNF notation, +in which +{a} means 0 or more a's, and +[a] means an optional a. +Non-terminals are shown like non-terminal, +keywords are shown like kword, +and other terminal symbols are shown like `=´. +The complete syntax of Lua can be found in §8 +at the end of this manual. + + + +

      2.1 - Lexical Conventions

      + +

      +Names +(also called identifiers) +in Lua can be any string of letters, +digits, and underscores, +not beginning with a digit. +This coincides with the definition of names in most languages. +(The definition of letter depends on the current locale: +any character considered alphabetic by the current locale +can be used in an identifier.) +Identifiers are used to name variables and table fields. + + +

      +The following keywords are reserved +and cannot be used as names: + + +

      +     and       break     do        else      elseif
      +     end       false     for       function  if
      +     in        local     nil       not       or
      +     repeat    return    then      true      until     while
      +
      + +

      +Lua is a case-sensitive language: +and is a reserved word, but And and AND +are two different, valid names. +As a convention, names starting with an underscore followed by +uppercase letters (such as _VERSION) +are reserved for internal global variables used by Lua. + + +

      +The following strings denote other tokens: + +

      +     +     -     *     /     %     ^     #
      +     ==    ~=    <=    >=    <     >     =
      +     (     )     {     }     [     ]
      +     ;     :     ,     .     ..    ...
      +
      + +

      +Literal strings +can be delimited by matching single or double quotes, +and can contain the following C-like escape sequences: +'\a' (bell), +'\b' (backspace), +'\f' (form feed), +'\n' (newline), +'\r' (carriage return), +'\t' (horizontal tab), +'\v' (vertical tab), +'\\' (backslash), +'\"' (quotation mark [double quote]), +and '\'' (apostrophe [single quote]). +Moreover, a backslash followed by a real newline +results in a newline in the string. +A character in a string can also be specified by its numerical value +using the escape sequence \ddd, +where ddd is a sequence of up to three decimal digits. +(Note that if a numerical escape is to be followed by a digit, +it must be expressed using exactly three digits.) +Strings in Lua can contain any 8-bit value, including embedded zeros, +which can be specified as '\0'. + + +

      +Literal strings can also be defined using a long format +enclosed by long brackets. +We define an opening long bracket of level n as an opening +square bracket followed by n equal signs followed by another +opening square bracket. +So, an opening long bracket of level 0 is written as [[, +an opening long bracket of level 1 is written as [=[, +and so on. +A closing long bracket is defined similarly; +for instance, a closing long bracket of level 4 is written as ]====]. +A long string starts with an opening long bracket of any level and +ends at the first closing long bracket of the same level. +Literals in this bracketed form can run for several lines, +do not interpret any escape sequences, +and ignore long brackets of any other level. +They can contain anything except a closing bracket of the proper level. + + +

      +For convenience, +when the opening long bracket is immediately followed by a newline, +the newline is not included in the string. +As an example, in a system using ASCII +(in which 'a' is coded as 97, +newline is coded as 10, and '1' is coded as 49), +the five literal strings below denote the same string: + +

      +     a = 'alo\n123"'
      +     a = "alo\n123\""
      +     a = '\97lo\10\04923"'
      +     a = [[alo
      +     123"]]
      +     a = [==[
      +     alo
      +     123"]==]
      +
      + +

      +A numerical constant can be written with an optional decimal part +and an optional decimal exponent. +Lua also accepts integer hexadecimal constants, +by prefixing them with 0x. +Examples of valid numerical constants are + +

      +     3   3.0   3.1416   314.16e-2   0.31416E1   0xff   0x56
      +
      + +

      +A comment starts with a double hyphen (--) +anywhere outside a string. +If the text immediately after -- is not an opening long bracket, +the comment is a short comment, +which runs until the end of the line. +Otherwise, it is a long comment, +which runs until the corresponding closing long bracket. +Long comments are frequently used to disable code temporarily. + + + + + +

      2.2 - Values and Types

      + +

      +Lua is a dynamically typed language. +This means that +variables do not have types; only values do. +There are no type definitions in the language. +All values carry their own type. + + +

      +All values in Lua are first-class values. +This means that all values can be stored in variables, +passed as arguments to other functions, and returned as results. + + +

      +There are eight basic types in Lua: +nil, boolean, number, +string, function, userdata, +thread, and table. +Nil is the type of the value nil, +whose main property is to be different from any other value; +it usually represents the absence of a useful value. +Boolean is the type of the values false and true. +Both nil and false make a condition false; +any other value makes it true. +Number represents real (double-precision floating-point) numbers. +(It is easy to build Lua interpreters that use other +internal representations for numbers, +such as single-precision float or long integers; +see file luaconf.h.) +String represents arrays of characters. + +Lua is 8-bit clean: +strings can contain any 8-bit character, +including embedded zeros ('\0') (see §2.1). + + +

      +Lua can call (and manipulate) functions written in Lua and +functions written in C +(see §2.5.8). + + +

      +The type userdata is provided to allow arbitrary C data to +be stored in Lua variables. +This type corresponds to a block of raw memory +and has no pre-defined operations in Lua, +except assignment and identity test. +However, by using metatables, +the programmer can define operations for userdata values +(see §2.8). +Userdata values cannot be created or modified in Lua, +only through the C API. +This guarantees the integrity of data owned by the host program. + + +

      +The type thread represents independent threads of execution +and it is used to implement coroutines (see §2.11). +Do not confuse Lua threads with operating-system threads. +Lua supports coroutines on all systems, +even those that do not support threads. + + +

      +The type table implements associative arrays, +that is, arrays that can be indexed not only with numbers, +but with any value (except nil). +Tables can be heterogeneous; +that is, they can contain values of all types (except nil). +Tables are the sole data structuring mechanism in Lua; +they can be used to represent ordinary arrays, +symbol tables, sets, records, graphs, trees, etc. +To represent records, Lua uses the field name as an index. +The language supports this representation by +providing a.name as syntactic sugar for a["name"]. +There are several convenient ways to create tables in Lua +(see §2.5.7). + + +

      +Like indices, +the value of a table field can be of any type (except nil). +In particular, +because functions are first-class values, +table fields can contain functions. +Thus tables can also carry methods (see §2.5.9). + + +

      +Tables, functions, threads, and (full) userdata values are objects: +variables do not actually contain these values, +only references to them. +Assignment, parameter passing, and function returns +always manipulate references to such values; +these operations do not imply any kind of copy. + + +

      +The library function type returns a string describing the type +of a given value. + + + +

      2.2.1 - Coercion

      + +

      +Lua provides automatic conversion between +string and number values at run time. +Any arithmetic operation applied to a string tries to convert +this string to a number, following the usual conversion rules. +Conversely, whenever a number is used where a string is expected, +the number is converted to a string, in a reasonable format. +For complete control over how numbers are converted to strings, +use the format function from the string library +(see string.format). + + + + + + + +

      2.3 - Variables

      + +

      +Variables are places that store values. + +There are three kinds of variables in Lua: +global variables, local variables, and table fields. + + +

      +A single name can denote a global variable or a local variable +(or a function's formal parameter, +which is a particular kind of local variable): + +

      +	var ::= Name
      +

      +Name denotes identifiers, as defined in §2.1. + + +

      +Any variable is assumed to be global unless explicitly declared +as a local (see §2.4.7). +Local variables are lexically scoped: +local variables can be freely accessed by functions +defined inside their scope (see §2.6). + + +

      +Before the first assignment to a variable, its value is nil. + + +

      +Square brackets are used to index a table: + +

      +	var ::= prefixexp `[´ exp `]´
      +

      +The meaning of accesses to global variables +and table fields can be changed via metatables. +An access to an indexed variable t[i] is equivalent to +a call gettable_event(t,i). +(See §2.8 for a complete description of the +gettable_event function. +This function is not defined or callable in Lua. +We use it here only for explanatory purposes.) + + +

      +The syntax var.Name is just syntactic sugar for +var["Name"]: + +

      +	var ::= prefixexp `.´ Name
      +
      + +

      +All global variables live as fields in ordinary Lua tables, +called environment tables or simply +environments (see §2.9). +Each function has its own reference to an environment, +so that all global variables in this function +will refer to this environment table. +When a function is created, +it inherits the environment from the function that created it. +To get the environment table of a Lua function, +you call getfenv. +To replace it, +you call setfenv. +(You can only manipulate the environment of C functions +through the debug library; (see §5.9).) + + +

      +An access to a global variable x +is equivalent to _env.x, +which in turn is equivalent to + +

      +     gettable_event(_env, "x")
      +

      +where _env is the environment of the running function. +(See §2.8 for a complete description of the +gettable_event function. +This function is not defined or callable in Lua. +Similarly, the _env variable is not defined in Lua. +We use them here only for explanatory purposes.) + + + + + +

      2.4 - Statements

      + +

      +Lua supports an almost conventional set of statements, +similar to those in Pascal or C. +This set includes +assignments, control structures, function calls, +and variable declarations. + + + +

      2.4.1 - Chunks

      + +

      +The unit of execution of Lua is called a chunk. +A chunk is simply a sequence of statements, +which are executed sequentially. +Each statement can be optionally followed by a semicolon: + +

      +	chunk ::= {stat [`;´]}
      +

      +There are no empty statements and thus ';;' is not legal. + + +

      +Lua handles a chunk as the body of an anonymous function +with a variable number of arguments +(see §2.5.9). +As such, chunks can define local variables, +receive arguments, and return values. + + +

      +A chunk can be stored in a file or in a string inside the host program. +To execute a chunk, +Lua first pre-compiles the chunk into instructions for a virtual machine, +and then it executes the compiled code +with an interpreter for the virtual machine. + + +

      +Chunks can also be pre-compiled into binary form; +see program luac for details. +Programs in source and compiled forms are interchangeable; +Lua automatically detects the file type and acts accordingly. + + + + + + +

      2.4.2 - Blocks

      +A block is a list of statements; +syntactically, a block is the same as a chunk: + +

      +	block ::= chunk
      +
      + +

      +A block can be explicitly delimited to produce a single statement: + +

      +	stat ::= do block end
      +

      +Explicit blocks are useful +to control the scope of variable declarations. +Explicit blocks are also sometimes used to +add a return or break statement in the middle +of another block (see §2.4.4). + + + + + +

      2.4.3 - Assignment

      + +

      +Lua allows multiple assignments. +Therefore, the syntax for assignment +defines a list of variables on the left side +and a list of expressions on the right side. +The elements in both lists are separated by commas: + +

      +	stat ::= varlist `=´ explist
      +	varlist ::= var {`,´ var}
      +	explist ::= exp {`,´ exp}
      +

      +Expressions are discussed in §2.5. + + +

      +Before the assignment, +the list of values is adjusted to the length of +the list of variables. +If there are more values than needed, +the excess values are thrown away. +If there are fewer values than needed, +the list is extended with as many nil's as needed. +If the list of expressions ends with a function call, +then all values returned by that call enter the list of values, +before the adjustment +(except when the call is enclosed in parentheses; see §2.5). + + +

      +The assignment statement first evaluates all its expressions +and only then are the assignments performed. +Thus the code + +

      +     i = 3
      +     i, a[i] = i+1, 20
      +

      +sets a[3] to 20, without affecting a[4] +because the i in a[i] is evaluated (to 3) +before it is assigned 4. +Similarly, the line + +

      +     x, y = y, x
      +

      +exchanges the values of x and y, +and + +

      +     x, y, z = y, z, x
      +

      +cyclically permutes the values of x, y, and z. + + +

      +The meaning of assignments to global variables +and table fields can be changed via metatables. +An assignment to an indexed variable t[i] = val is equivalent to +settable_event(t,i,val). +(See §2.8 for a complete description of the +settable_event function. +This function is not defined or callable in Lua. +We use it here only for explanatory purposes.) + + +

      +An assignment to a global variable x = val +is equivalent to the assignment +_env.x = val, +which in turn is equivalent to + +

      +     settable_event(_env, "x", val)
      +

      +where _env is the environment of the running function. +(The _env variable is not defined in Lua. +We use it here only for explanatory purposes.) + + + + + +

      2.4.4 - Control Structures

      +The control structures +if, while, and repeat have the usual meaning and +familiar syntax: + + + + +

      +	stat ::= while exp do block end
      +	stat ::= repeat block until exp
      +	stat ::= if exp then block {elseif exp then block} [else block] end
      +

      +Lua also has a for statement, in two flavors (see §2.4.5). + + +

      +The condition expression of a +control structure can return any value. +Both false and nil are considered false. +All values different from nil and false are considered true +(in particular, the number 0 and the empty string are also true). + + +

      +In the repeatuntil loop, +the inner block does not end at the until keyword, +but only after the condition. +So, the condition can refer to local variables +declared inside the loop block. + + +

      +The return statement is used to return values +from a function or a chunk (which is just a function). + +Functions and chunks can return more than one value, +and so the syntax for the return statement is + +

      +	stat ::= return [explist]
      +
      + +

      +The break statement is used to terminate the execution of a +while, repeat, or for loop, +skipping to the next statement after the loop: + + +

      +	stat ::= break
      +

      +A break ends the innermost enclosing loop. + + +

      +The return and break +statements can only be written as the last statement of a block. +If it is really necessary to return or break in the +middle of a block, +then an explicit inner block can be used, +as in the idioms +do return end and do break end, +because now return and break are the last statements in +their (inner) blocks. + + + + + +

      2.4.5 - For Statement

      + +

      + +The for statement has two forms: +one numeric and one generic. + + +

      +The numeric for loop repeats a block of code while a +control variable runs through an arithmetic progression. +It has the following syntax: + +

      +	stat ::= for Name `=´ exp `,´ exp [`,´ exp] do block end
      +

      +The block is repeated for name starting at the value of +the first exp, until it passes the second exp by steps of the +third exp. +More precisely, a for statement like + +

      +     for v = e1, e2, e3 do block end
      +

      +is equivalent to the code: + +

      +     do
      +       local var, limit, step = tonumber(e1), tonumber(e2), tonumber(e3)
      +       if not (var and limit and step) then error() end
      +       while (step > 0 and var <= limit) or (step <= 0 and var >= limit) do
      +         local v = var
      +         block
      +         var = var + step
      +       end
      +     end
      +

      +Note the following: + +

        + +
      • +All three control expressions are evaluated only once, +before the loop starts. +They must all result in numbers. +
      • + +
      • +var, limit, and step are invisible variables. +The names shown here are for explanatory purposes only. +
      • + +
      • +If the third expression (the step) is absent, +then a step of 1 is used. +
      • + +
      • +You can use break to exit a for loop. +
      • + +
      • +The loop variable v is local to the loop; +you cannot use its value after the for ends or is broken. +If you need this value, +assign it to another variable before breaking or exiting the loop. +
      • + +
      + +

      +The generic for statement works over functions, +called iterators. +On each iteration, the iterator function is called to produce a new value, +stopping when this new value is nil. +The generic for loop has the following syntax: + +

      +	stat ::= for namelist in explist do block end
      +	namelist ::= Name {`,´ Name}
      +

      +A for statement like + +

      +     for var_1, ···, var_n in explist do block end
      +

      +is equivalent to the code: + +

      +     do
      +       local f, s, var = explist
      +       while true do
      +         local var_1, ···, var_n = f(s, var)
      +         var = var_1
      +         if var == nil then break end
      +         block
      +       end
      +     end
      +

      +Note the following: + +

        + +
      • +explist is evaluated only once. +Its results are an iterator function, +a state, +and an initial value for the first iterator variable. +
      • + +
      • +f, s, and var are invisible variables. +The names are here for explanatory purposes only. +
      • + +
      • +You can use break to exit a for loop. +
      • + +
      • +The loop variables var_i are local to the loop; +you cannot use their values after the for ends. +If you need these values, +then assign them to other variables before breaking or exiting the loop. +
      • + +
      + + + + +

      2.4.6 - Function Calls as Statements

      +To allow possible side-effects, +function calls can be executed as statements: + +

      +	stat ::= functioncall
      +

      +In this case, all returned values are thrown away. +Function calls are explained in §2.5.8. + + + + + +

      2.4.7 - Local Declarations

      +Local variables can be declared anywhere inside a block. +The declaration can include an initial assignment: + +

      +	stat ::= local namelist [`=´ explist]
      +

      +If present, an initial assignment has the same semantics +of a multiple assignment (see §2.4.3). +Otherwise, all variables are initialized with nil. + + +

      +A chunk is also a block (see §2.4.1), +and so local variables can be declared in a chunk outside any explicit block. +The scope of such local variables extends until the end of the chunk. + + +

      +The visibility rules for local variables are explained in §2.6. + + + + + + + +

      2.5 - Expressions

      + +

      +The basic expressions in Lua are the following: + +

      +	exp ::= prefixexp
      +	exp ::= nil | false | true
      +	exp ::= Number
      +	exp ::= String
      +	exp ::= function
      +	exp ::= tableconstructor
      +	exp ::= `...´
      +	exp ::= exp binop exp
      +	exp ::= unop exp
      +	prefixexp ::= var | functioncall | `(´ exp `)´
      +
      + +

      +Numbers and literal strings are explained in §2.1; +variables are explained in §2.3; +function definitions are explained in §2.5.9; +function calls are explained in §2.5.8; +table constructors are explained in §2.5.7. +Vararg expressions, +denoted by three dots ('...'), can only be used when +directly inside a vararg function; +they are explained in §2.5.9. + + +

      +Binary operators comprise arithmetic operators (see §2.5.1), +relational operators (see §2.5.2), logical operators (see §2.5.3), +and the concatenation operator (see §2.5.4). +Unary operators comprise the unary minus (see §2.5.1), +the unary not (see §2.5.3), +and the unary length operator (see §2.5.5). + + +

      +Both function calls and vararg expressions can result in multiple values. +If an expression is used as a statement +(only possible for function calls (see §2.4.6)), +then its return list is adjusted to zero elements, +thus discarding all returned values. +If an expression is used as the last (or the only) element +of a list of expressions, +then no adjustment is made +(unless the call is enclosed in parentheses). +In all other contexts, +Lua adjusts the result list to one element, +discarding all values except the first one. + + +

      +Here are some examples: + +

      +     f()                -- adjusted to 0 results
      +     g(f(), x)          -- f() is adjusted to 1 result
      +     g(x, f())          -- g gets x plus all results from f()
      +     a,b,c = f(), x     -- f() is adjusted to 1 result (c gets nil)
      +     a,b = ...          -- a gets the first vararg parameter, b gets
      +                        -- the second (both a and b can get nil if there
      +                        -- is no corresponding vararg parameter)
      +     
      +     a,b,c = x, f()     -- f() is adjusted to 2 results
      +     a,b,c = f()        -- f() is adjusted to 3 results
      +     return f()         -- returns all results from f()
      +     return ...         -- returns all received vararg parameters
      +     return x,y,f()     -- returns x, y, and all results from f()
      +     {f()}              -- creates a list with all results from f()
      +     {...}              -- creates a list with all vararg parameters
      +     {f(), nil}         -- f() is adjusted to 1 result
      +
      + +

      +Any expression enclosed in parentheses always results in only one value. +Thus, +(f(x,y,z)) is always a single value, +even if f returns several values. +(The value of (f(x,y,z)) is the first value returned by f +or nil if f does not return any values.) + + + +

      2.5.1 - Arithmetic Operators

      +Lua supports the usual arithmetic operators: +the binary + (addition), +- (subtraction), * (multiplication), +/ (division), % (modulo), and ^ (exponentiation); +and unary - (negation). +If the operands are numbers, or strings that can be converted to +numbers (see §2.2.1), +then all operations have the usual meaning. +Exponentiation works for any exponent. +For instance, x^(-0.5) computes the inverse of the square root of x. +Modulo is defined as + +

      +     a % b == a - math.floor(a/b)*b
      +

      +That is, it is the remainder of a division that rounds +the quotient towards minus infinity. + + + + + +

      2.5.2 - Relational Operators

      +The relational operators in Lua are + +

      +     ==    ~=    <     >     <=    >=
      +

      +These operators always result in false or true. + + +

      +Equality (==) first compares the type of its operands. +If the types are different, then the result is false. +Otherwise, the values of the operands are compared. +Numbers and strings are compared in the usual way. +Objects (tables, userdata, threads, and functions) +are compared by reference: +two objects are considered equal only if they are the same object. +Every time you create a new object +(a table, userdata, thread, or function), +this new object is different from any previously existing object. + + +

      +You can change the way that Lua compares tables and userdata +by using the "eq" metamethod (see §2.8). + + +

      +The conversion rules of §2.2.1 +do not apply to equality comparisons. +Thus, "0"==0 evaluates to false, +and t[0] and t["0"] denote different +entries in a table. + + +

      +The operator ~= is exactly the negation of equality (==). + + +

      +The order operators work as follows. +If both arguments are numbers, then they are compared as such. +Otherwise, if both arguments are strings, +then their values are compared according to the current locale. +Otherwise, Lua tries to call the "lt" or the "le" +metamethod (see §2.8). +A comparison a > b is translated to b < a +and a >= b is translated to b <= a. + + + + + +

      2.5.3 - Logical Operators

      +The logical operators in Lua are +and, or, and not. +Like the control structures (see §2.4.4), +all logical operators consider both false and nil as false +and anything else as true. + + +

      +The negation operator not always returns false or true. +The conjunction operator and returns its first argument +if this value is false or nil; +otherwise, and returns its second argument. +The disjunction operator or returns its first argument +if this value is different from nil and false; +otherwise, or returns its second argument. +Both and and or use short-cut evaluation; +that is, +the second operand is evaluated only if necessary. +Here are some examples: + +

      +     10 or 20            --> 10
      +     10 or error()       --> 10
      +     nil or "a"          --> "a"
      +     nil and 10          --> nil
      +     false and error()   --> false
      +     false and nil       --> false
      +     false or nil        --> nil
      +     10 and 20           --> 20
      +

      +(In this manual, +--> indicates the result of the preceding expression.) + + + + + +

      2.5.4 - Concatenation

      +The string concatenation operator in Lua is +denoted by two dots ('..'). +If both operands are strings or numbers, then they are converted to +strings according to the rules mentioned in §2.2.1. +Otherwise, the "concat" metamethod is called (see §2.8). + + + + + +

      2.5.5 - The Length Operator

      + +

      +The length operator is denoted by the unary operator #. +The length of a string is its number of bytes +(that is, the usual meaning of string length when each +character is one byte). + + +

      +The length of a table t is defined to be any +integer index n +such that t[n] is not nil and t[n+1] is nil; +moreover, if t[1] is nil, n can be zero. +For a regular array, with non-nil values from 1 to a given n, +its length is exactly that n, +the index of its last value. +If the array has "holes" +(that is, nil values between other non-nil values), +then #t can be any of the indices that +directly precedes a nil value +(that is, it may consider any such nil value as the end of +the array). + + + + + +

      2.5.6 - Precedence

      +Operator precedence in Lua follows the table below, +from lower to higher priority: + +

      +     or
      +     and
      +     <     >     <=    >=    ~=    ==
      +     ..
      +     +     -
      +     *     /     %
      +     not   #     - (unary)
      +     ^
      +

      +As usual, +you can use parentheses to change the precedences of an expression. +The concatenation ('..') and exponentiation ('^') +operators are right associative. +All other binary operators are left associative. + + + + + +

      2.5.7 - Table Constructors

      +Table constructors are expressions that create tables. +Every time a constructor is evaluated, a new table is created. +A constructor can be used to create an empty table +or to create a table and initialize some of its fields. +The general syntax for constructors is + +

      +	tableconstructor ::= `{´ [fieldlist] `}´
      +	fieldlist ::= field {fieldsep field} [fieldsep]
      +	field ::= `[´ exp `]´ `=´ exp | Name `=´ exp | exp
      +	fieldsep ::= `,´ | `;´
      +
      + +

      +Each field of the form [exp1] = exp2 adds to the new table an entry +with key exp1 and value exp2. +A field of the form name = exp is equivalent to +["name"] = exp. +Finally, fields of the form exp are equivalent to +[i] = exp, where i are consecutive numerical integers, +starting with 1. +Fields in the other formats do not affect this counting. +For example, + +

      +     a = { [f(1)] = g; "x", "y"; x = 1, f(x), [30] = 23; 45 }
      +

      +is equivalent to + +

      +     do
      +       local t = {}
      +       t[f(1)] = g
      +       t[1] = "x"         -- 1st exp
      +       t[2] = "y"         -- 2nd exp
      +       t.x = 1            -- t["x"] = 1
      +       t[3] = f(x)        -- 3rd exp
      +       t[30] = 23
      +       t[4] = 45          -- 4th exp
      +       a = t
      +     end
      +
      + +

      +If the last field in the list has the form exp +and the expression is a function call or a vararg expression, +then all values returned by this expression enter the list consecutively +(see §2.5.8). +To avoid this, +enclose the function call or the vararg expression +in parentheses (see §2.5). + + +

      +The field list can have an optional trailing separator, +as a convenience for machine-generated code. + + + + + +

      2.5.8 - Function Calls

      +A function call in Lua has the following syntax: + +

      +	functioncall ::= prefixexp args
      +

      +In a function call, +first prefixexp and args are evaluated. +If the value of prefixexp has type function, +then this function is called +with the given arguments. +Otherwise, the prefixexp "call" metamethod is called, +having as first parameter the value of prefixexp, +followed by the original call arguments +(see §2.8). + + +

      +The form + +

      +	functioncall ::= prefixexp `:´ Name args
      +

      +can be used to call "methods". +A call v:name(args) +is syntactic sugar for v.name(v,args), +except that v is evaluated only once. + + +

      +Arguments have the following syntax: + +

      +	args ::= `(´ [explist] `)´
      +	args ::= tableconstructor
      +	args ::= String
      +

      +All argument expressions are evaluated before the call. +A call of the form f{fields} is +syntactic sugar for f({fields}); +that is, the argument list is a single new table. +A call of the form f'string' +(or f"string" or f[[string]]) +is syntactic sugar for f('string'); +that is, the argument list is a single literal string. + + +

      +As an exception to the free-format syntax of Lua, +you cannot put a line break before the '(' in a function call. +This restriction avoids some ambiguities in the language. +If you write + +

      +     a = f
      +     (g).x(a)
      +

      +Lua would see that as a single statement, a = f(g).x(a). +So, if you want two statements, you must add a semi-colon between them. +If you actually want to call f, +you must remove the line break before (g). + + +

      +A call of the form return functioncall is called +a tail call. +Lua implements proper tail calls +(or proper tail recursion): +in a tail call, +the called function reuses the stack entry of the calling function. +Therefore, there is no limit on the number of nested tail calls that +a program can execute. +However, a tail call erases any debug information about the +calling function. +Note that a tail call only happens with a particular syntax, +where the return has one single function call as argument; +this syntax makes the calling function return exactly +the returns of the called function. +So, none of the following examples are tail calls: + +

      +     return (f(x))        -- results adjusted to 1
      +     return 2 * f(x)
      +     return x, f(x)       -- additional results
      +     f(x); return         -- results discarded
      +     return x or f(x)     -- results adjusted to 1
      +
      + + + + +

      2.5.9 - Function Definitions

      + +

      +The syntax for function definition is + +

      +	function ::= function funcbody
      +	funcbody ::= `(´ [parlist] `)´ block end
      +
      + +

      +The following syntactic sugar simplifies function definitions: + +

      +	stat ::= function funcname funcbody
      +	stat ::= local function Name funcbody
      +	funcname ::= Name {`.´ Name} [`:´ Name]
      +

      +The statement + +

      +     function f () body end
      +

      +translates to + +

      +     f = function () body end
      +

      +The statement + +

      +     function t.a.b.c.f () body end
      +

      +translates to + +

      +     t.a.b.c.f = function () body end
      +

      +The statement + +

      +     local function f () body end
      +

      +translates to + +

      +     local f; f = function () body end
      +

      +not to + +

      +     local f = function () body end
      +

      +(This only makes a difference when the body of the function +contains references to f.) + + +

      +A function definition is an executable expression, +whose value has type function. +When Lua pre-compiles a chunk, +all its function bodies are pre-compiled too. +Then, whenever Lua executes the function definition, +the function is instantiated (or closed). +This function instance (or closure) +is the final value of the expression. +Different instances of the same function +can refer to different external local variables +and can have different environment tables. + + +

      +Parameters act as local variables that are +initialized with the argument values: + +

      +	parlist ::= namelist [`,´ `...´] | `...´
      +

      +When a function is called, +the list of arguments is adjusted to +the length of the list of parameters, +unless the function is a variadic or vararg function, +which is +indicated by three dots ('...') at the end of its parameter list. +A vararg function does not adjust its argument list; +instead, it collects all extra arguments and supplies them +to the function through a vararg expression, +which is also written as three dots. +The value of this expression is a list of all actual extra arguments, +similar to a function with multiple results. +If a vararg expression is used inside another expression +or in the middle of a list of expressions, +then its return list is adjusted to one element. +If the expression is used as the last element of a list of expressions, +then no adjustment is made +(unless that last expression is enclosed in parentheses). + + +

      +As an example, consider the following definitions: + +

      +     function f(a, b) end
      +     function g(a, b, ...) end
      +     function r() return 1,2,3 end
      +

      +Then, we have the following mapping from arguments to parameters and +to the vararg expression: + +

      +     CALL            PARAMETERS
      +     
      +     f(3)             a=3, b=nil
      +     f(3, 4)          a=3, b=4
      +     f(3, 4, 5)       a=3, b=4
      +     f(r(), 10)       a=1, b=10
      +     f(r())           a=1, b=2
      +     
      +     g(3)             a=3, b=nil, ... -->  (nothing)
      +     g(3, 4)          a=3, b=4,   ... -->  (nothing)
      +     g(3, 4, 5, 8)    a=3, b=4,   ... -->  5  8
      +     g(5, r())        a=5, b=1,   ... -->  2  3
      +
      + +

      +Results are returned using the return statement (see §2.4.4). +If control reaches the end of a function +without encountering a return statement, +then the function returns with no results. + + +

      +The colon syntax +is used for defining methods, +that is, functions that have an implicit extra parameter self. +Thus, the statement + +

      +     function t.a.b.c:f (params) body end
      +

      +is syntactic sugar for + +

      +     t.a.b.c.f = function (self, params) body end
      +
      + + + + + + +

      2.6 - Visibility Rules

      + +

      + +Lua is a lexically scoped language. +The scope of variables begins at the first statement after +their declaration and lasts until the end of the innermost block that +includes the declaration. +Consider the following example: + +

      +     x = 10                -- global variable
      +     do                    -- new block
      +       local x = x         -- new 'x', with value 10
      +       print(x)            --> 10
      +       x = x+1
      +       do                  -- another block
      +         local x = x+1     -- another 'x'
      +         print(x)          --> 12
      +       end
      +       print(x)            --> 11
      +     end
      +     print(x)              --> 10  (the global one)
      +
      + +

      +Notice that, in a declaration like local x = x, +the new x being declared is not in scope yet, +and so the second x refers to the outside variable. + + +

      +Because of the lexical scoping rules, +local variables can be freely accessed by functions +defined inside their scope. +A local variable used by an inner function is called +an upvalue, or external local variable, +inside the inner function. + + +

      +Notice that each execution of a local statement +defines new local variables. +Consider the following example: + +

      +     a = {}
      +     local x = 20
      +     for i=1,10 do
      +       local y = 0
      +       a[i] = function () y=y+1; return x+y end
      +     end
      +

      +The loop creates ten closures +(that is, ten instances of the anonymous function). +Each of these closures uses a different y variable, +while all of them share the same x. + + + + + +

      2.7 - Error Handling

      + +

      +Because Lua is an embedded extension language, +all Lua actions start from C code in the host program +calling a function from the Lua library (see lua_pcall). +Whenever an error occurs during Lua compilation or execution, +control returns to C, +which can take appropriate measures +(such as printing an error message). + + +

      +Lua code can explicitly generate an error by calling the +error function. +If you need to catch errors in Lua, +you can use the pcall function. + + + + + +

      2.8 - Metatables

      + +

      +Every value in Lua can have a metatable. +This metatable is an ordinary Lua table +that defines the behavior of the original value +under certain special operations. +You can change several aspects of the behavior +of operations over a value by setting specific fields in its metatable. +For instance, when a non-numeric value is the operand of an addition, +Lua checks for a function in the field "__add" in its metatable. +If it finds one, +Lua calls this function to perform the addition. + + +

      +We call the keys in a metatable events +and the values metamethods. +In the previous example, the event is "add" +and the metamethod is the function that performs the addition. + + +

      +You can query the metatable of any value +through the getmetatable function. + + +

      +You can replace the metatable of tables +through the setmetatable +function. +You cannot change the metatable of other types from Lua +(except by using the debug library); +you must use the C API for that. + + +

      +Tables and full userdata have individual metatables +(although multiple tables and userdata can share their metatables). +Values of all other types share one single metatable per type; +that is, there is one single metatable for all numbers, +one for all strings, etc. + + +

      +A metatable controls how an object behaves in arithmetic operations, +order comparisons, concatenation, length operation, and indexing. +A metatable also can define a function to be called when a userdata +is garbage collected. +For each of these operations Lua associates a specific key +called an event. +When Lua performs one of these operations over a value, +it checks whether this value has a metatable with the corresponding event. +If so, the value associated with that key (the metamethod) +controls how Lua will perform the operation. + + +

      +Metatables control the operations listed next. +Each operation is identified by its corresponding name. +The key for each operation is a string with its name prefixed by +two underscores, '__'; +for instance, the key for operation "add" is the +string "__add". +The semantics of these operations is better explained by a Lua function +describing how the interpreter executes the operation. + + +

      +The code shown here in Lua is only illustrative; +the real behavior is hard coded in the interpreter +and it is much more efficient than this simulation. +All functions used in these descriptions +(rawget, tonumber, etc.) +are described in §5.1. +In particular, to retrieve the metamethod of a given object, +we use the expression + +

      +     metatable(obj)[event]
      +

      +This should be read as + +

      +     rawget(getmetatable(obj) or {}, event)
      +

      + +That is, the access to a metamethod does not invoke other metamethods, +and the access to objects with no metatables does not fail +(it simply results in nil). + + + +

        + +
      • "add": +the + operation. + + + +

        +The function getbinhandler below defines how Lua chooses a handler +for a binary operation. +First, Lua tries the first operand. +If its type does not define a handler for the operation, +then Lua tries the second operand. + +

        +     function getbinhandler (op1, op2, event)
        +       return metatable(op1)[event] or metatable(op2)[event]
        +     end
        +

        +By using this function, +the behavior of the op1 + op2 is + +

        +     function add_event (op1, op2)
        +       local o1, o2 = tonumber(op1), tonumber(op2)
        +       if o1 and o2 then  -- both operands are numeric?
        +         return o1 + o2   -- '+' here is the primitive 'add'
        +       else  -- at least one of the operands is not numeric
        +         local h = getbinhandler(op1, op2, "__add")
        +         if h then
        +           -- call the handler with both operands
        +           return (h(op1, op2))
        +         else  -- no handler available: default behavior
        +           error(···)
        +         end
        +       end
        +     end
        +

        +

      • + +
      • "sub": +the - operation. + +Behavior similar to the "add" operation. +
      • + +
      • "mul": +the * operation. + +Behavior similar to the "add" operation. +
      • + +
      • "div": +the / operation. + +Behavior similar to the "add" operation. +
      • + +
      • "mod": +the % operation. + +Behavior similar to the "add" operation, +with the operation +o1 - floor(o1/o2)*o2 as the primitive operation. +
      • + +
      • "pow": +the ^ (exponentiation) operation. + +Behavior similar to the "add" operation, +with the function pow (from the C math library) +as the primitive operation. +
      • + +
      • "unm": +the unary - operation. + + +
        +     function unm_event (op)
        +       local o = tonumber(op)
        +       if o then  -- operand is numeric?
        +         return -o  -- '-' here is the primitive 'unm'
        +       else  -- the operand is not numeric.
        +         -- Try to get a handler from the operand
        +         local h = metatable(op).__unm
        +         if h then
        +           -- call the handler with the operand
        +           return (h(op))
        +         else  -- no handler available: default behavior
        +           error(···)
        +         end
        +       end
        +     end
        +

        +

      • + +
      • "concat": +the .. (concatenation) operation. + + +
        +     function concat_event (op1, op2)
        +       if (type(op1) == "string" or type(op1) == "number") and
        +          (type(op2) == "string" or type(op2) == "number") then
        +         return op1 .. op2  -- primitive string concatenation
        +       else
        +         local h = getbinhandler(op1, op2, "__concat")
        +         if h then
        +           return (h(op1, op2))
        +         else
        +           error(···)
        +         end
        +       end
        +     end
        +

        +

      • + +
      • "len": +the # operation. + + +
        +     function len_event (op)
        +       if type(op) == "string" then
        +         return strlen(op)         -- primitive string length
        +       elseif type(op) == "table" then
        +         return #op                -- primitive table length
        +       else
        +         local h = metatable(op).__len
        +         if h then
        +           -- call the handler with the operand
        +           return (h(op))
        +         else  -- no handler available: default behavior
        +           error(···)
        +         end
        +       end
        +     end
        +

        +See §2.5.5 for a description of the length of a table. +

      • + +
      • "eq": +the == operation. + +The function getcomphandler defines how Lua chooses a metamethod +for comparison operators. +A metamethod only is selected when both objects +being compared have the same type +and the same metamethod for the selected operation. + +
        +     function getcomphandler (op1, op2, event)
        +       if type(op1) ~= type(op2) then return nil end
        +       local mm1 = metatable(op1)[event]
        +       local mm2 = metatable(op2)[event]
        +       if mm1 == mm2 then return mm1 else return nil end
        +     end
        +

        +The "eq" event is defined as follows: + +

        +     function eq_event (op1, op2)
        +       if type(op1) ~= type(op2) then  -- different types?
        +         return false   -- different objects
        +       end
        +       if op1 == op2 then   -- primitive equal?
        +         return true   -- objects are equal
        +       end
        +       -- try metamethod
        +       local h = getcomphandler(op1, op2, "__eq")
        +       if h then
        +         return (h(op1, op2))
        +       else
        +         return false
        +       end
        +     end
        +

        +a ~= b is equivalent to not (a == b). +

      • + +
      • "lt": +the < operation. + + +
        +     function lt_event (op1, op2)
        +       if type(op1) == "number" and type(op2) == "number" then
        +         return op1 < op2   -- numeric comparison
        +       elseif type(op1) == "string" and type(op2) == "string" then
        +         return op1 < op2   -- lexicographic comparison
        +       else
        +         local h = getcomphandler(op1, op2, "__lt")
        +         if h then
        +           return (h(op1, op2))
        +         else
        +           error(···)
        +         end
        +       end
        +     end
        +

        +a > b is equivalent to b < a. +

      • + +
      • "le": +the <= operation. + + +
        +     function le_event (op1, op2)
        +       if type(op1) == "number" and type(op2) == "number" then
        +         return op1 <= op2   -- numeric comparison
        +       elseif type(op1) == "string" and type(op2) == "string" then
        +         return op1 <= op2   -- lexicographic comparison
        +       else
        +         local h = getcomphandler(op1, op2, "__le")
        +         if h then
        +           return (h(op1, op2))
        +         else
        +           h = getcomphandler(op1, op2, "__lt")
        +           if h then
        +             return not h(op2, op1)
        +           else
        +             error(···)
        +           end
        +         end
        +       end
        +     end
        +

        +a >= b is equivalent to b <= a. +Note that, in the absence of a "le" metamethod, +Lua tries the "lt", assuming that a <= b is +equivalent to not (b < a). +

      • + +
      • "index": +The indexing access table[key]. + + +
        +     function gettable_event (table, key)
        +       local h
        +       if type(table) == "table" then
        +         local v = rawget(table, key)
        +         if v ~= nil then return v end
        +         h = metatable(table).__index
        +         if h == nil then return nil end
        +       else
        +         h = metatable(table).__index
        +         if h == nil then
        +           error(···)
        +         end
        +       end
        +       if type(h) == "function" then
        +         return (h(table, key))     -- call the handler
        +       else return h[key]           -- or repeat operation on it
        +       end
        +     end
        +

        +

      • + +
      • "newindex": +The indexing assignment table[key] = value. + + +
        +     function settable_event (table, key, value)
        +       local h
        +       if type(table) == "table" then
        +         local v = rawget(table, key)
        +         if v ~= nil then rawset(table, key, value); return end
        +         h = metatable(table).__newindex
        +         if h == nil then rawset(table, key, value); return end
        +       else
        +         h = metatable(table).__newindex
        +         if h == nil then
        +           error(···)
        +         end
        +       end
        +       if type(h) == "function" then
        +         h(table, key,value)           -- call the handler
        +       else h[key] = value             -- or repeat operation on it
        +       end
        +     end
        +

        +

      • + +
      • "call": +called when Lua calls a value. + + +
        +     function function_event (func, ...)
        +       if type(func) == "function" then
        +         return func(...)   -- primitive call
        +       else
        +         local h = metatable(func).__call
        +         if h then
        +           return h(func, ...)
        +         else
        +           error(···)
        +         end
        +       end
        +     end
        +

        +

      • + +
      + + + + +

      2.9 - Environments

      + +

      +Besides metatables, +objects of types thread, function, and userdata +have another table associated with them, +called their environment. +Like metatables, environments are regular tables and +multiple objects can share the same environment. + + +

      +Threads are created sharing the environment of the creating thread. +Userdata and C functions are created sharing the environment +of the creating C function. +Non-nested Lua functions +(created by loadfile, loadstring or load) +are created sharing the environment of the creating thread. +Nested Lua functions are created sharing the environment of +the creating Lua function. + + +

      +Environments associated with userdata have no meaning for Lua. +It is only a convenience feature for programmers to associate a table to +a userdata. + + +

      +Environments associated with threads are called +global environments. +They are used as the default environment for threads and +non-nested Lua functions created by the thread +and can be directly accessed by C code (see §3.3). + + +

      +The environment associated with a C function can be directly +accessed by C code (see §3.3). +It is used as the default environment for other C functions +and userdata created by the function. + + +

      +Environments associated with Lua functions are used to resolve +all accesses to global variables within the function (see §2.3). +They are used as the default environment for nested Lua functions +created by the function. + + +

      +You can change the environment of a Lua function or the +running thread by calling setfenv. +You can get the environment of a Lua function or the running thread +by calling getfenv. +To manipulate the environment of other objects +(userdata, C functions, other threads) you must +use the C API. + + + + + +

      2.10 - Garbage Collection

      + +

      +Lua performs automatic memory management. +This means that +you have to worry neither about allocating memory for new objects +nor about freeing it when the objects are no longer needed. +Lua manages memory automatically by running +a garbage collector from time to time +to collect all dead objects +(that is, objects that are no longer accessible from Lua). +All memory used by Lua is subject to automatic management: +tables, userdata, functions, threads, strings, etc. + + +

      +Lua implements an incremental mark-and-sweep collector. +It uses two numbers to control its garbage-collection cycles: +the garbage-collector pause and +the garbage-collector step multiplier. +Both use percentage points as units +(so that a value of 100 means an internal value of 1). + + +

      +The garbage-collector pause +controls how long the collector waits before starting a new cycle. +Larger values make the collector less aggressive. +Values smaller than 100 mean the collector will not wait to +start a new cycle. +A value of 200 means that the collector waits for the total memory in use +to double before starting a new cycle. + + +

      +The step multiplier +controls the relative speed of the collector relative to +memory allocation. +Larger values make the collector more aggressive but also increase +the size of each incremental step. +Values smaller than 100 make the collector too slow and +can result in the collector never finishing a cycle. +The default, 200, means that the collector runs at "twice" +the speed of memory allocation. + + +

      +You can change these numbers by calling lua_gc in C +or collectgarbage in Lua. +With these functions you can also control +the collector directly (e.g., stop and restart it). + + + +

      2.10.1 - Garbage-Collection Metamethods

      + +

      +Using the C API, +you can set garbage-collector metamethods for userdata (see §2.8). +These metamethods are also called finalizers. +Finalizers allow you to coordinate Lua's garbage collection +with external resource management +(such as closing files, network or database connections, +or freeing your own memory). + + +

      +Garbage userdata with a field __gc in their metatables are not +collected immediately by the garbage collector. +Instead, Lua puts them in a list. +After the collection, +Lua does the equivalent of the following function +for each userdata in that list: + +

      +     function gc_event (udata)
      +       local h = metatable(udata).__gc
      +       if h then
      +         h(udata)
      +       end
      +     end
      +
      + +

      +At the end of each garbage-collection cycle, +the finalizers for userdata are called in reverse +order of their creation, +among those collected in that cycle. +That is, the first finalizer to be called is the one associated +with the userdata created last in the program. +The userdata itself is freed only in the next garbage-collection cycle. + + + + + +

      2.10.2 - Weak Tables

      + +

      +A weak table is a table whose elements are +weak references. +A weak reference is ignored by the garbage collector. +In other words, +if the only references to an object are weak references, +then the garbage collector will collect this object. + + +

      +A weak table can have weak keys, weak values, or both. +A table with weak keys allows the collection of its keys, +but prevents the collection of its values. +A table with both weak keys and weak values allows the collection of +both keys and values. +In any case, if either the key or the value is collected, +the whole pair is removed from the table. +The weakness of a table is controlled by the +__mode field of its metatable. +If the __mode field is a string containing the character 'k', +the keys in the table are weak. +If __mode contains 'v', +the values in the table are weak. + + +

      +After you use a table as a metatable, +you should not change the value of its __mode field. +Otherwise, the weak behavior of the tables controlled by this +metatable is undefined. + + + + + + + +

      2.11 - Coroutines

      + +

      +Lua supports coroutines, +also called collaborative multithreading. +A coroutine in Lua represents an independent thread of execution. +Unlike threads in multithread systems, however, +a coroutine only suspends its execution by explicitly calling +a yield function. + + +

      +You create a coroutine with a call to coroutine.create. +Its sole argument is a function +that is the main function of the coroutine. +The create function only creates a new coroutine and +returns a handle to it (an object of type thread); +it does not start the coroutine execution. + + +

      +When you first call coroutine.resume, +passing as its first argument +a thread returned by coroutine.create, +the coroutine starts its execution, +at the first line of its main function. +Extra arguments passed to coroutine.resume are passed on +to the coroutine main function. +After the coroutine starts running, +it runs until it terminates or yields. + + +

      +A coroutine can terminate its execution in two ways: +normally, when its main function returns +(explicitly or implicitly, after the last instruction); +and abnormally, if there is an unprotected error. +In the first case, coroutine.resume returns true, +plus any values returned by the coroutine main function. +In case of errors, coroutine.resume returns false +plus an error message. + + +

      +A coroutine yields by calling coroutine.yield. +When a coroutine yields, +the corresponding coroutine.resume returns immediately, +even if the yield happens inside nested function calls +(that is, not in the main function, +but in a function directly or indirectly called by the main function). +In the case of a yield, coroutine.resume also returns true, +plus any values passed to coroutine.yield. +The next time you resume the same coroutine, +it continues its execution from the point where it yielded, +with the call to coroutine.yield returning any extra +arguments passed to coroutine.resume. + + +

      +Like coroutine.create, +the coroutine.wrap function also creates a coroutine, +but instead of returning the coroutine itself, +it returns a function that, when called, resumes the coroutine. +Any arguments passed to this function +go as extra arguments to coroutine.resume. +coroutine.wrap returns all the values returned by coroutine.resume, +except the first one (the boolean error code). +Unlike coroutine.resume, +coroutine.wrap does not catch errors; +any error is propagated to the caller. + + +

      +As an example, +consider the following code: + +

      +     function foo (a)
      +       print("foo", a)
      +       return coroutine.yield(2*a)
      +     end
      +     
      +     co = coroutine.create(function (a,b)
      +           print("co-body", a, b)
      +           local r = foo(a+1)
      +           print("co-body", r)
      +           local r, s = coroutine.yield(a+b, a-b)
      +           print("co-body", r, s)
      +           return b, "end"
      +     end)
      +            
      +     print("main", coroutine.resume(co, 1, 10))
      +     print("main", coroutine.resume(co, "r"))
      +     print("main", coroutine.resume(co, "x", "y"))
      +     print("main", coroutine.resume(co, "x", "y"))
      +

      +When you run it, it produces the following output: + +

      +     co-body 1       10
      +     foo     2
      +     
      +     main    true    4
      +     co-body r
      +     main    true    11      -9
      +     co-body x       y
      +     main    true    10      end
      +     main    false   cannot resume dead coroutine
      +
      + + + + +

      3 - The Application Program Interface

      + +

      + +This section describes the C API for Lua, that is, +the set of C functions available to the host program to communicate +with Lua. +All API functions and related types and constants +are declared in the header file lua.h. + + +

      +Even when we use the term "function", +any facility in the API may be provided as a macro instead. +All such macros use each of their arguments exactly once +(except for the first argument, which is always a Lua state), +and so do not generate any hidden side-effects. + + +

      +As in most C libraries, +the Lua API functions do not check their arguments for validity or consistency. +However, you can change this behavior by compiling Lua +with a proper definition for the macro luai_apicheck, +in file luaconf.h. + + + +

      3.1 - The Stack

      + +

      +Lua uses a virtual stack to pass values to and from C. +Each element in this stack represents a Lua value +(nil, number, string, etc.). + + +

      +Whenever Lua calls C, the called function gets a new stack, +which is independent of previous stacks and of stacks of +C functions that are still active. +This stack initially contains any arguments to the C function +and it is where the C function pushes its results +to be returned to the caller (see lua_CFunction). + + +

      +For convenience, +most query operations in the API do not follow a strict stack discipline. +Instead, they can refer to any element in the stack +by using an index: +A positive index represents an absolute stack position +(starting at 1); +a negative index represents an offset relative to the top of the stack. +More specifically, if the stack has n elements, +then index 1 represents the first element +(that is, the element that was pushed onto the stack first) +and +index n represents the last element; +index -1 also represents the last element +(that is, the element at the top) +and index -n represents the first element. +We say that an index is valid +if it lies between 1 and the stack top +(that is, if 1 ≤ abs(index) ≤ top). + + + + + + +

      3.2 - Stack Size

      + +

      +When you interact with Lua API, +you are responsible for ensuring consistency. +In particular, +you are responsible for controlling stack overflow. +You can use the function lua_checkstack +to grow the stack size. + + +

      +Whenever Lua calls C, +it ensures that at least LUA_MINSTACK stack positions are available. +LUA_MINSTACK is defined as 20, +so that usually you do not have to worry about stack space +unless your code has loops pushing elements onto the stack. + + +

      +Most query functions accept as indices any value inside the +available stack space, that is, indices up to the maximum stack size +you have set through lua_checkstack. +Such indices are called acceptable indices. +More formally, we define an acceptable index +as follows: + +

      +     (index < 0 && abs(index) <= top) ||
      +     (index > 0 && index <= stackspace)
      +

      +Note that 0 is never an acceptable index. + + + + + +

      3.3 - Pseudo-Indices

      + +

      +Unless otherwise noted, +any function that accepts valid indices can also be called with +pseudo-indices, +which represent some Lua values that are accessible to C code +but which are not in the stack. +Pseudo-indices are used to access the thread environment, +the function environment, +the registry, +and the upvalues of a C function (see §3.4). + + +

      +The thread environment (where global variables live) is +always at pseudo-index LUA_GLOBALSINDEX. +The environment of the running C function is always +at pseudo-index LUA_ENVIRONINDEX. + + +

      +To access and change the value of global variables, +you can use regular table operations over an environment table. +For instance, to access the value of a global variable, do + +

      +     lua_getfield(L, LUA_GLOBALSINDEX, varname);
      +
      + + + + +

      3.4 - C Closures

      + +

      +When a C function is created, +it is possible to associate some values with it, +thus creating a C closure; +these values are called upvalues and are +accessible to the function whenever it is called +(see lua_pushcclosure). + + +

      +Whenever a C function is called, +its upvalues are located at specific pseudo-indices. +These pseudo-indices are produced by the macro +lua_upvalueindex. +The first value associated with a function is at position +lua_upvalueindex(1), and so on. +Any access to lua_upvalueindex(n), +where n is greater than the number of upvalues of the +current function (but not greater than 256), +produces an acceptable (but invalid) index. + + + + + +

      3.5 - Registry

      + +

      +Lua provides a registry, +a pre-defined table that can be used by any C code to +store whatever Lua value it needs to store. +This table is always located at pseudo-index +LUA_REGISTRYINDEX. +Any C library can store data into this table, +but it should take care to choose keys different from those used +by other libraries, to avoid collisions. +Typically, you should use as key a string containing your library name +or a light userdata with the address of a C object in your code. + + +

      +The integer keys in the registry are used by the reference mechanism, +implemented by the auxiliary library, +and therefore should not be used for other purposes. + + + + + +

      3.6 - Error Handling in C

      + +

      +Internally, Lua uses the C longjmp facility to handle errors. +(You can also choose to use exceptions if you use C++; +see file luaconf.h.) +When Lua faces any error +(such as memory allocation errors, type errors, syntax errors, +and runtime errors) +it raises an error; +that is, it does a long jump. +A protected environment uses setjmp +to set a recover point; +any error jumps to the most recent active recover point. + + +

      +Most functions in the API can throw an error, +for instance due to a memory allocation error. +The documentation for each function indicates whether +it can throw errors. + + +

      +Inside a C function you can throw an error by calling lua_error. + + + + + +

      3.7 - Functions and Types

      + +

      +Here we list all functions and types from the C API in +alphabetical order. +Each function has an indicator like this: +[-o, +p, x] + + +

      +The first field, o, +is how many elements the function pops from the stack. +The second field, p, +is how many elements the function pushes onto the stack. +(Any function always pushes its results after popping its arguments.) +A field in the form x|y means the function can push (or pop) +x or y elements, +depending on the situation; +an interrogation mark '?' means that +we cannot know how many elements the function pops/pushes +by looking only at its arguments +(e.g., they may depend on what is on the stack). +The third field, x, +tells whether the function may throw errors: +'-' means the function never throws any error; +'m' means the function may throw an error +only due to not enough memory; +'e' means the function may throw other kinds of errors; +'v' means the function may throw an error on purpose. + + + +


      lua_Alloc

      +
      typedef void * (*lua_Alloc) (void *ud,
      +                             void *ptr,
      +                             size_t osize,
      +                             size_t nsize);
      + +

      +The type of the memory-allocation function used by Lua states. +The allocator function must provide a +functionality similar to realloc, +but not exactly the same. +Its arguments are +ud, an opaque pointer passed to lua_newstate; +ptr, a pointer to the block being allocated/reallocated/freed; +osize, the original size of the block; +nsize, the new size of the block. +ptr is NULL if and only if osize is zero. +When nsize is zero, the allocator must return NULL; +if osize is not zero, +it should free the block pointed to by ptr. +When nsize is not zero, the allocator returns NULL +if and only if it cannot fill the request. +When nsize is not zero and osize is zero, +the allocator should behave like malloc. +When nsize and osize are not zero, +the allocator behaves like realloc. +Lua assumes that the allocator never fails when +osize >= nsize. + + +

      +Here is a simple implementation for the allocator function. +It is used in the auxiliary library by luaL_newstate. + +

      +     static void *l_alloc (void *ud, void *ptr, size_t osize,
      +                                                size_t nsize) {
      +       (void)ud;  (void)osize;  /* not used */
      +       if (nsize == 0) {
      +         free(ptr);
      +         return NULL;
      +       }
      +       else
      +         return realloc(ptr, nsize);
      +     }
      +

      +This code assumes +that free(NULL) has no effect and that +realloc(NULL, size) is equivalent to malloc(size). +ANSI C ensures both behaviors. + + + + + +


      lua_atpanic

      +[-0, +0, -] +

      lua_CFunction lua_atpanic (lua_State *L, lua_CFunction panicf);
      + +

      +Sets a new panic function and returns the old one. + + +

      +If an error happens outside any protected environment, +Lua calls a panic function +and then calls exit(EXIT_FAILURE), +thus exiting the host application. +Your panic function can avoid this exit by +never returning (e.g., doing a long jump). + + +

      +The panic function can access the error message at the top of the stack. + + + + + +


      lua_call

      +[-(nargs + 1), +nresults, e] +

      void lua_call (lua_State *L, int nargs, int nresults);
      + +

      +Calls a function. + + +

      +To call a function you must use the following protocol: +first, the function to be called is pushed onto the stack; +then, the arguments to the function are pushed +in direct order; +that is, the first argument is pushed first. +Finally you call lua_call; +nargs is the number of arguments that you pushed onto the stack. +All arguments and the function value are popped from the stack +when the function is called. +The function results are pushed onto the stack when the function returns. +The number of results is adjusted to nresults, +unless nresults is LUA_MULTRET. +In this case, all results from the function are pushed. +Lua takes care that the returned values fit into the stack space. +The function results are pushed onto the stack in direct order +(the first result is pushed first), +so that after the call the last result is on the top of the stack. + + +

      +Any error inside the called function is propagated upwards +(with a longjmp). + + +

      +The following example shows how the host program can do the +equivalent to this Lua code: + +

      +     a = f("how", t.x, 14)
      +

      +Here it is in C: + +

      +     lua_getfield(L, LUA_GLOBALSINDEX, "f"); /* function to be called */
      +     lua_pushstring(L, "how");                        /* 1st argument */
      +     lua_getfield(L, LUA_GLOBALSINDEX, "t");   /* table to be indexed */
      +     lua_getfield(L, -1, "x");        /* push result of t.x (2nd arg) */
      +     lua_remove(L, -2);                  /* remove 't' from the stack */
      +     lua_pushinteger(L, 14);                          /* 3rd argument */
      +     lua_call(L, 3, 1);     /* call 'f' with 3 arguments and 1 result */
      +     lua_setfield(L, LUA_GLOBALSINDEX, "a");        /* set global 'a' */
      +

      +Note that the code above is "balanced": +at its end, the stack is back to its original configuration. +This is considered good programming practice. + + + + + +


      lua_CFunction

      +
      typedef int (*lua_CFunction) (lua_State *L);
      + +

      +Type for C functions. + + +

      +In order to communicate properly with Lua, +a C function must use the following protocol, +which defines the way parameters and results are passed: +a C function receives its arguments from Lua in its stack +in direct order (the first argument is pushed first). +So, when the function starts, +lua_gettop(L) returns the number of arguments received by the function. +The first argument (if any) is at index 1 +and its last argument is at index lua_gettop(L). +To return values to Lua, a C function just pushes them onto the stack, +in direct order (the first result is pushed first), +and returns the number of results. +Any other value in the stack below the results will be properly +discarded by Lua. +Like a Lua function, a C function called by Lua can also return +many results. + + +

      +As an example, the following function receives a variable number +of numerical arguments and returns their average and sum: + +

      +     static int foo (lua_State *L) {
      +       int n = lua_gettop(L);    /* number of arguments */
      +       lua_Number sum = 0;
      +       int i;
      +       for (i = 1; i <= n; i++) {
      +         if (!lua_isnumber(L, i)) {
      +           lua_pushstring(L, "incorrect argument");
      +           lua_error(L);
      +         }
      +         sum += lua_tonumber(L, i);
      +       }
      +       lua_pushnumber(L, sum/n);        /* first result */
      +       lua_pushnumber(L, sum);         /* second result */
      +       return 2;                   /* number of results */
      +     }
      +
      + + + + +

      lua_checkstack

      +[-0, +0, m] +

      int lua_checkstack (lua_State *L, int extra);
      + +

      +Ensures that there are at least extra free stack slots in the stack. +It returns false if it cannot grow the stack to that size. +This function never shrinks the stack; +if the stack is already larger than the new size, +it is left unchanged. + + + + + +


      lua_close

      +[-0, +0, -] +

      void lua_close (lua_State *L);
      + +

      +Destroys all objects in the given Lua state +(calling the corresponding garbage-collection metamethods, if any) +and frees all dynamic memory used by this state. +On several platforms, you may not need to call this function, +because all resources are naturally released when the host program ends. +On the other hand, long-running programs, +such as a daemon or a web server, +might need to release states as soon as they are not needed, +to avoid growing too large. + + + + + +


      lua_concat

      +[-n, +1, e] +

      void lua_concat (lua_State *L, int n);
      + +

      +Concatenates the n values at the top of the stack, +pops them, and leaves the result at the top. +If n is 1, the result is the single value on the stack +(that is, the function does nothing); +if n is 0, the result is the empty string. +Concatenation is performed following the usual semantics of Lua +(see §2.5.4). + + + + + +


      lua_cpcall

      +[-0, +(0|1), -] +

      int lua_cpcall (lua_State *L, lua_CFunction func, void *ud);
      + +

      +Calls the C function func in protected mode. +func starts with only one element in its stack, +a light userdata containing ud. +In case of errors, +lua_cpcall returns the same error codes as lua_pcall, +plus the error object on the top of the stack; +otherwise, it returns zero, and does not change the stack. +All values returned by func are discarded. + + + + + +


      lua_createtable

      +[-0, +1, m] +

      void lua_createtable (lua_State *L, int narr, int nrec);
      + +

      +Creates a new empty table and pushes it onto the stack. +The new table has space pre-allocated +for narr array elements and nrec non-array elements. +This pre-allocation is useful when you know exactly how many elements +the table will have. +Otherwise you can use the function lua_newtable. + + + + + +


      lua_dump

      +[-0, +0, m] +

      int lua_dump (lua_State *L, lua_Writer writer, void *data);
      + +

      +Dumps a function as a binary chunk. +Receives a Lua function on the top of the stack +and produces a binary chunk that, +if loaded again, +results in a function equivalent to the one dumped. +As it produces parts of the chunk, +lua_dump calls function writer (see lua_Writer) +with the given data +to write them. + + +

      +The value returned is the error code returned by the last +call to the writer; +0 means no errors. + + +

      +This function does not pop the Lua function from the stack. + + + + + +


      lua_equal

      +[-0, +0, e] +

      int lua_equal (lua_State *L, int index1, int index2);
      + +

      +Returns 1 if the two values in acceptable indices index1 and +index2 are equal, +following the semantics of the Lua == operator +(that is, may call metamethods). +Otherwise returns 0. +Also returns 0 if any of the indices is non valid. + + + + + +


      lua_error

      +[-1, +0, v] +

      int lua_error (lua_State *L);
      + +

      +Generates a Lua error. +The error message (which can actually be a Lua value of any type) +must be on the stack top. +This function does a long jump, +and therefore never returns. +(see luaL_error). + + + + + +


      lua_gc

      +[-0, +0, e] +

      int lua_gc (lua_State *L, int what, int data);
      + +

      +Controls the garbage collector. + + +

      +This function performs several tasks, +according to the value of the parameter what: + +

        + +
      • LUA_GCSTOP: +stops the garbage collector. +
      • + +
      • LUA_GCRESTART: +restarts the garbage collector. +
      • + +
      • LUA_GCCOLLECT: +performs a full garbage-collection cycle. +
      • + +
      • LUA_GCCOUNT: +returns the current amount of memory (in Kbytes) in use by Lua. +
      • + +
      • LUA_GCCOUNTB: +returns the remainder of dividing the current amount of bytes of +memory in use by Lua by 1024. +
      • + +
      • LUA_GCSTEP: +performs an incremental step of garbage collection. +The step "size" is controlled by data +(larger values mean more steps) in a non-specified way. +If you want to control the step size +you must experimentally tune the value of data. +The function returns 1 if the step finished a +garbage-collection cycle. +
      • + +
      • LUA_GCSETPAUSE: +sets data as the new value +for the pause of the collector (see §2.10). +The function returns the previous value of the pause. +
      • + +
      • LUA_GCSETSTEPMUL: +sets data as the new value for the step multiplier of +the collector (see §2.10). +The function returns the previous value of the step multiplier. +
      • + +
      + + + + +

      lua_getallocf

      +[-0, +0, -] +

      lua_Alloc lua_getallocf (lua_State *L, void **ud);
      + +

      +Returns the memory-allocation function of a given state. +If ud is not NULL, Lua stores in *ud the +opaque pointer passed to lua_newstate. + + + + + +


      lua_getfenv

      +[-0, +1, -] +

      void lua_getfenv (lua_State *L, int index);
      + +

      +Pushes onto the stack the environment table of +the value at the given index. + + + + + +


      lua_getfield

      +[-0, +1, e] +

      void lua_getfield (lua_State *L, int index, const char *k);
      + +

      +Pushes onto the stack the value t[k], +where t is the value at the given valid index. +As in Lua, this function may trigger a metamethod +for the "index" event (see §2.8). + + + + + +


      lua_getglobal

      +[-0, +1, e] +

      void lua_getglobal (lua_State *L, const char *name);
      + +

      +Pushes onto the stack the value of the global name. +It is defined as a macro: + +

      +     #define lua_getglobal(L,s)  lua_getfield(L, LUA_GLOBALSINDEX, s)
      +
      + + + + +

      lua_getmetatable

      +[-0, +(0|1), -] +

      int lua_getmetatable (lua_State *L, int index);
      + +

      +Pushes onto the stack the metatable of the value at the given +acceptable index. +If the index is not valid, +or if the value does not have a metatable, +the function returns 0 and pushes nothing on the stack. + + + + + +


      lua_gettable

      +[-1, +1, e] +

      void lua_gettable (lua_State *L, int index);
      + +

      +Pushes onto the stack the value t[k], +where t is the value at the given valid index +and k is the value at the top of the stack. + + +

      +This function pops the key from the stack +(putting the resulting value in its place). +As in Lua, this function may trigger a metamethod +for the "index" event (see §2.8). + + + + + +


      lua_gettop

      +[-0, +0, -] +

      int lua_gettop (lua_State *L);
      + +

      +Returns the index of the top element in the stack. +Because indices start at 1, +this result is equal to the number of elements in the stack +(and so 0 means an empty stack). + + + + + +


      lua_insert

      +[-1, +1, -] +

      void lua_insert (lua_State *L, int index);
      + +

      +Moves the top element into the given valid index, +shifting up the elements above this index to open space. +Cannot be called with a pseudo-index, +because a pseudo-index is not an actual stack position. + + + + + +


      lua_Integer

      +
      typedef ptrdiff_t lua_Integer;
      + +

      +The type used by the Lua API to represent integral values. + + +

      +By default it is a ptrdiff_t, +which is usually the largest signed integral type the machine handles +"comfortably". + + + + + +


      lua_isboolean

      +[-0, +0, -] +

      int lua_isboolean (lua_State *L, int index);
      + +

      +Returns 1 if the value at the given acceptable index has type boolean, +and 0 otherwise. + + + + + +


      lua_iscfunction

      +[-0, +0, -] +

      int lua_iscfunction (lua_State *L, int index);
      + +

      +Returns 1 if the value at the given acceptable index is a C function, +and 0 otherwise. + + + + + +


      lua_isfunction

      +[-0, +0, -] +

      int lua_isfunction (lua_State *L, int index);
      + +

      +Returns 1 if the value at the given acceptable index is a function +(either C or Lua), and 0 otherwise. + + + + + +


      lua_islightuserdata

      +[-0, +0, -] +

      int lua_islightuserdata (lua_State *L, int index);
      + +

      +Returns 1 if the value at the given acceptable index is a light userdata, +and 0 otherwise. + + + + + +


      lua_isnil

      +[-0, +0, -] +

      int lua_isnil (lua_State *L, int index);
      + +

      +Returns 1 if the value at the given acceptable index is nil, +and 0 otherwise. + + + + + +


      lua_isnone

      +[-0, +0, -] +

      int lua_isnone (lua_State *L, int index);
      + +

      +Returns 1 if the given acceptable index is not valid +(that is, it refers to an element outside the current stack), +and 0 otherwise. + + + + + +


      lua_isnoneornil

      +[-0, +0, -] +

      int lua_isnoneornil (lua_State *L, int index);
      + +

      +Returns 1 if the given acceptable index is not valid +(that is, it refers to an element outside the current stack) +or if the value at this index is nil, +and 0 otherwise. + + + + + +


      lua_isnumber

      +[-0, +0, -] +

      int lua_isnumber (lua_State *L, int index);
      + +

      +Returns 1 if the value at the given acceptable index is a number +or a string convertible to a number, +and 0 otherwise. + + + + + +


      lua_isstring

      +[-0, +0, -] +

      int lua_isstring (lua_State *L, int index);
      + +

      +Returns 1 if the value at the given acceptable index is a string +or a number (which is always convertible to a string), +and 0 otherwise. + + + + + +


      lua_istable

      +[-0, +0, -] +

      int lua_istable (lua_State *L, int index);
      + +

      +Returns 1 if the value at the given acceptable index is a table, +and 0 otherwise. + + + + + +


      lua_isthread

      +[-0, +0, -] +

      int lua_isthread (lua_State *L, int index);
      + +

      +Returns 1 if the value at the given acceptable index is a thread, +and 0 otherwise. + + + + + +


      lua_isuserdata

      +[-0, +0, -] +

      int lua_isuserdata (lua_State *L, int index);
      + +

      +Returns 1 if the value at the given acceptable index is a userdata +(either full or light), and 0 otherwise. + + + + + +


      lua_lessthan

      +[-0, +0, e] +

      int lua_lessthan (lua_State *L, int index1, int index2);
      + +

      +Returns 1 if the value at acceptable index index1 is smaller +than the value at acceptable index index2, +following the semantics of the Lua < operator +(that is, may call metamethods). +Otherwise returns 0. +Also returns 0 if any of the indices is non valid. + + + + + +


      lua_load

      +[-0, +1, -] +

      int lua_load (lua_State *L,
      +              lua_Reader reader,
      +              void *data,
      +              const char *chunkname);
      + +

      +Loads a Lua chunk. +If there are no errors, +lua_load pushes the compiled chunk as a Lua +function on top of the stack. +Otherwise, it pushes an error message. +The return values of lua_load are: + +

        + +
      • 0: no errors;
      • + +
      • LUA_ERRSYNTAX: +syntax error during pre-compilation;
      • + +
      • LUA_ERRMEM: +memory allocation error.
      • + +
      + +

      +This function only loads a chunk; +it does not run it. + + +

      +lua_load automatically detects whether the chunk is text or binary, +and loads it accordingly (see program luac). + + +

      +The lua_load function uses a user-supplied reader function +to read the chunk (see lua_Reader). +The data argument is an opaque value passed to the reader function. + + +

      +The chunkname argument gives a name to the chunk, +which is used for error messages and in debug information (see §3.8). + + + + + +


      lua_newstate

      +[-0, +0, -] +

      lua_State *lua_newstate (lua_Alloc f, void *ud);
      + +

      +Creates a new, independent state. +Returns NULL if cannot create the state +(due to lack of memory). +The argument f is the allocator function; +Lua does all memory allocation for this state through this function. +The second argument, ud, is an opaque pointer that Lua +simply passes to the allocator in every call. + + + + + +


      lua_newtable

      +[-0, +1, m] +

      void lua_newtable (lua_State *L);
      + +

      +Creates a new empty table and pushes it onto the stack. +It is equivalent to lua_createtable(L, 0, 0). + + + + + +


      lua_newthread

      +[-0, +1, m] +

      lua_State *lua_newthread (lua_State *L);
      + +

      +Creates a new thread, pushes it on the stack, +and returns a pointer to a lua_State that represents this new thread. +The new state returned by this function shares with the original state +all global objects (such as tables), +but has an independent execution stack. + + +

      +There is no explicit function to close or to destroy a thread. +Threads are subject to garbage collection, +like any Lua object. + + + + + +


      lua_newuserdata

      +[-0, +1, m] +

      void *lua_newuserdata (lua_State *L, size_t size);
      + +

      +This function allocates a new block of memory with the given size, +pushes onto the stack a new full userdata with the block address, +and returns this address. + + +

      +Userdata represent C values in Lua. +A full userdata represents a block of memory. +It is an object (like a table): +you must create it, it can have its own metatable, +and you can detect when it is being collected. +A full userdata is only equal to itself (under raw equality). + + +

      +When Lua collects a full userdata with a gc metamethod, +Lua calls the metamethod and marks the userdata as finalized. +When this userdata is collected again then +Lua frees its corresponding memory. + + + + + +


      lua_next

      +[-1, +(2|0), e] +

      int lua_next (lua_State *L, int index);
      + +

      +Pops a key from the stack, +and pushes a key-value pair from the table at the given index +(the "next" pair after the given key). +If there are no more elements in the table, +then lua_next returns 0 (and pushes nothing). + + +

      +A typical traversal looks like this: + +

      +     /* table is in the stack at index 't' */
      +     lua_pushnil(L);  /* first key */
      +     while (lua_next(L, t) != 0) {
      +       /* uses 'key' (at index -2) and 'value' (at index -1) */
      +       printf("%s - %s\n",
      +              lua_typename(L, lua_type(L, -2)),
      +              lua_typename(L, lua_type(L, -1)));
      +       /* removes 'value'; keeps 'key' for next iteration */
      +       lua_pop(L, 1);
      +     }
      +
      + +

      +While traversing a table, +do not call lua_tolstring directly on a key, +unless you know that the key is actually a string. +Recall that lua_tolstring changes +the value at the given index; +this confuses the next call to lua_next. + + + + + +


      lua_Number

      +
      typedef double lua_Number;
      + +

      +The type of numbers in Lua. +By default, it is double, but that can be changed in luaconf.h. + + +

      +Through the configuration file you can change +Lua to operate with another type for numbers (e.g., float or long). + + + + + +


      lua_objlen

      +[-0, +0, -] +

      size_t lua_objlen (lua_State *L, int index);
      + +

      +Returns the "length" of the value at the given acceptable index: +for strings, this is the string length; +for tables, this is the result of the length operator ('#'); +for userdata, this is the size of the block of memory allocated +for the userdata; +for other values, it is 0. + + + + + +


      lua_pcall

      +[-(nargs + 1), +(nresults|1), -] +

      int lua_pcall (lua_State *L, int nargs, int nresults, int errfunc);
      + +

      +Calls a function in protected mode. + + +

      +Both nargs and nresults have the same meaning as +in lua_call. +If there are no errors during the call, +lua_pcall behaves exactly like lua_call. +However, if there is any error, +lua_pcall catches it, +pushes a single value on the stack (the error message), +and returns an error code. +Like lua_call, +lua_pcall always removes the function +and its arguments from the stack. + + +

      +If errfunc is 0, +then the error message returned on the stack +is exactly the original error message. +Otherwise, errfunc is the stack index of an +error handler function. +(In the current implementation, this index cannot be a pseudo-index.) +In case of runtime errors, +this function will be called with the error message +and its return value will be the message returned on the stack by lua_pcall. + + +

      +Typically, the error handler function is used to add more debug +information to the error message, such as a stack traceback. +Such information cannot be gathered after the return of lua_pcall, +since by then the stack has unwound. + + +

      +The lua_pcall function returns 0 in case of success +or one of the following error codes +(defined in lua.h): + +

        + +
      • LUA_ERRRUN: +a runtime error. +
      • + +
      • LUA_ERRMEM: +memory allocation error. +For such errors, Lua does not call the error handler function. +
      • + +
      • LUA_ERRERR: +error while running the error handler function. +
      • + +
      + + + + +

      lua_pop

      +[-n, +0, -] +

      void lua_pop (lua_State *L, int n);
      + +

      +Pops n elements from the stack. + + + + + +


      lua_pushboolean

      +[-0, +1, -] +

      void lua_pushboolean (lua_State *L, int b);
      + +

      +Pushes a boolean value with value b onto the stack. + + + + + +


      lua_pushcclosure

      +[-n, +1, m] +

      void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n);
      + +

      +Pushes a new C closure onto the stack. + + +

      +When a C function is created, +it is possible to associate some values with it, +thus creating a C closure (see §3.4); +these values are then accessible to the function whenever it is called. +To associate values with a C function, +first these values should be pushed onto the stack +(when there are multiple values, the first value is pushed first). +Then lua_pushcclosure +is called to create and push the C function onto the stack, +with the argument n telling how many values should be +associated with the function. +lua_pushcclosure also pops these values from the stack. + + +

      +The maximum value for n is 255. + + + + + +


      lua_pushcfunction

      +[-0, +1, m] +

      void lua_pushcfunction (lua_State *L, lua_CFunction f);
      + +

      +Pushes a C function onto the stack. +This function receives a pointer to a C function +and pushes onto the stack a Lua value of type function that, +when called, invokes the corresponding C function. + + +

      +Any function to be registered in Lua must +follow the correct protocol to receive its parameters +and return its results (see lua_CFunction). + + +

      +lua_pushcfunction is defined as a macro: + +

      +     #define lua_pushcfunction(L,f)  lua_pushcclosure(L,f,0)
      +
      + + + + +

      lua_pushfstring

      +[-0, +1, m] +

      const char *lua_pushfstring (lua_State *L, const char *fmt, ...);
      + +

      +Pushes onto the stack a formatted string +and returns a pointer to this string. +It is similar to the C function sprintf, +but has some important differences: + +

        + +
      • +You do not have to allocate space for the result: +the result is a Lua string and Lua takes care of memory allocation +(and deallocation, through garbage collection). +
      • + +
      • +The conversion specifiers are quite restricted. +There are no flags, widths, or precisions. +The conversion specifiers can only be +'%%' (inserts a '%' in the string), +'%s' (inserts a zero-terminated string, with no size restrictions), +'%f' (inserts a lua_Number), +'%p' (inserts a pointer as a hexadecimal numeral), +'%d' (inserts an int), and +'%c' (inserts an int as a character). +
      • + +
      + + + + +

      lua_pushinteger

      +[-0, +1, -] +

      void lua_pushinteger (lua_State *L, lua_Integer n);
      + +

      +Pushes a number with value n onto the stack. + + + + + +


      lua_pushlightuserdata

      +[-0, +1, -] +

      void lua_pushlightuserdata (lua_State *L, void *p);
      + +

      +Pushes a light userdata onto the stack. + + +

      +Userdata represent C values in Lua. +A light userdata represents a pointer. +It is a value (like a number): +you do not create it, it has no individual metatable, +and it is not collected (as it was never created). +A light userdata is equal to "any" +light userdata with the same C address. + + + + + +


      lua_pushliteral

      +[-0, +1, m] +

      void lua_pushliteral (lua_State *L, const char *s);
      + +

      +This macro is equivalent to lua_pushlstring, +but can be used only when s is a literal string. +In these cases, it automatically provides the string length. + + + + + +


      lua_pushlstring

      +[-0, +1, m] +

      void lua_pushlstring (lua_State *L, const char *s, size_t len);
      + +

      +Pushes the string pointed to by s with size len +onto the stack. +Lua makes (or reuses) an internal copy of the given string, +so the memory at s can be freed or reused immediately after +the function returns. +The string can contain embedded zeros. + + + + + +


      lua_pushnil

      +[-0, +1, -] +

      void lua_pushnil (lua_State *L);
      + +

      +Pushes a nil value onto the stack. + + + + + +


      lua_pushnumber

      +[-0, +1, -] +

      void lua_pushnumber (lua_State *L, lua_Number n);
      + +

      +Pushes a number with value n onto the stack. + + + + + +


      lua_pushstring

      +[-0, +1, m] +

      void lua_pushstring (lua_State *L, const char *s);
      + +

      +Pushes the zero-terminated string pointed to by s +onto the stack. +Lua makes (or reuses) an internal copy of the given string, +so the memory at s can be freed or reused immediately after +the function returns. +The string cannot contain embedded zeros; +it is assumed to end at the first zero. + + + + + +


      lua_pushthread

      +[-0, +1, -] +

      int lua_pushthread (lua_State *L);
      + +

      +Pushes the thread represented by L onto the stack. +Returns 1 if this thread is the main thread of its state. + + + + + +


      lua_pushvalue

      +[-0, +1, -] +

      void lua_pushvalue (lua_State *L, int index);
      + +

      +Pushes a copy of the element at the given valid index +onto the stack. + + + + + +


      lua_pushvfstring

      +[-0, +1, m] +

      const char *lua_pushvfstring (lua_State *L,
      +                              const char *fmt,
      +                              va_list argp);
      + +

      +Equivalent to lua_pushfstring, except that it receives a va_list +instead of a variable number of arguments. + + + + + +


      lua_rawequal

      +[-0, +0, -] +

      int lua_rawequal (lua_State *L, int index1, int index2);
      + +

      +Returns 1 if the two values in acceptable indices index1 and +index2 are primitively equal +(that is, without calling metamethods). +Otherwise returns 0. +Also returns 0 if any of the indices are non valid. + + + + + +


      lua_rawget

      +[-1, +1, -] +

      void lua_rawget (lua_State *L, int index);
      + +

      +Similar to lua_gettable, but does a raw access +(i.e., without metamethods). + + + + + +


      lua_rawgeti

      +[-0, +1, -] +

      void lua_rawgeti (lua_State *L, int index, int n);
      + +

      +Pushes onto the stack the value t[n], +where t is the value at the given valid index. +The access is raw; +that is, it does not invoke metamethods. + + + + + +


      lua_rawset

      +[-2, +0, m] +

      void lua_rawset (lua_State *L, int index);
      + +

      +Similar to lua_settable, but does a raw assignment +(i.e., without metamethods). + + + + + +


      lua_rawseti

      +[-1, +0, m] +

      void lua_rawseti (lua_State *L, int index, int n);
      + +

      +Does the equivalent of t[n] = v, +where t is the value at the given valid index +and v is the value at the top of the stack. + + +

      +This function pops the value from the stack. +The assignment is raw; +that is, it does not invoke metamethods. + + + + + +


      lua_Reader

      +
      typedef const char * (*lua_Reader) (lua_State *L,
      +                                    void *data,
      +                                    size_t *size);
      + +

      +The reader function used by lua_load. +Every time it needs another piece of the chunk, +lua_load calls the reader, +passing along its data parameter. +The reader must return a pointer to a block of memory +with a new piece of the chunk +and set size to the block size. +The block must exist until the reader function is called again. +To signal the end of the chunk, +the reader must return NULL or set size to zero. +The reader function may return pieces of any size greater than zero. + + + + + +


      lua_register

      +[-0, +0, e] +

      void lua_register (lua_State *L,
      +                   const char *name,
      +                   lua_CFunction f);
      + +

      +Sets the C function f as the new value of global name. +It is defined as a macro: + +

      +     #define lua_register(L,n,f) \
      +            (lua_pushcfunction(L, f), lua_setglobal(L, n))
      +
      + + + + +

      lua_remove

      +[-1, +0, -] +

      void lua_remove (lua_State *L, int index);
      + +

      +Removes the element at the given valid index, +shifting down the elements above this index to fill the gap. +Cannot be called with a pseudo-index, +because a pseudo-index is not an actual stack position. + + + + + +


      lua_replace

      +[-1, +0, -] +

      void lua_replace (lua_State *L, int index);
      + +

      +Moves the top element into the given position (and pops it), +without shifting any element +(therefore replacing the value at the given position). + + + + + +


      lua_resume

      +[-?, +?, -] +

      int lua_resume (lua_State *L, int narg);
      + +

      +Starts and resumes a coroutine in a given thread. + + +

      +To start a coroutine, you first create a new thread +(see lua_newthread); +then you push onto its stack the main function plus any arguments; +then you call lua_resume, +with narg being the number of arguments. +This call returns when the coroutine suspends or finishes its execution. +When it returns, the stack contains all values passed to lua_yield, +or all values returned by the body function. +lua_resume returns +LUA_YIELD if the coroutine yields, +0 if the coroutine finishes its execution +without errors, +or an error code in case of errors (see lua_pcall). +In case of errors, +the stack is not unwound, +so you can use the debug API over it. +The error message is on the top of the stack. +To restart a coroutine, you put on its stack only the values to +be passed as results from yield, +and then call lua_resume. + + + + + +


      lua_setallocf

      +[-0, +0, -] +

      void lua_setallocf (lua_State *L, lua_Alloc f, void *ud);
      + +

      +Changes the allocator function of a given state to f +with user data ud. + + + + + +


      lua_setfenv

      +[-1, +0, -] +

      int lua_setfenv (lua_State *L, int index);
      + +

      +Pops a table from the stack and sets it as +the new environment for the value at the given index. +If the value at the given index is +neither a function nor a thread nor a userdata, +lua_setfenv returns 0. +Otherwise it returns 1. + + + + + +


      lua_setfield

      +[-1, +0, e] +

      void lua_setfield (lua_State *L, int index, const char *k);
      + +

      +Does the equivalent to t[k] = v, +where t is the value at the given valid index +and v is the value at the top of the stack. + + +

      +This function pops the value from the stack. +As in Lua, this function may trigger a metamethod +for the "newindex" event (see §2.8). + + + + + +


      lua_setglobal

      +[-1, +0, e] +

      void lua_setglobal (lua_State *L, const char *name);
      + +

      +Pops a value from the stack and +sets it as the new value of global name. +It is defined as a macro: + +

      +     #define lua_setglobal(L,s)   lua_setfield(L, LUA_GLOBALSINDEX, s)
      +
      + + + + +

      lua_setmetatable

      +[-1, +0, -] +

      int lua_setmetatable (lua_State *L, int index);
      + +

      +Pops a table from the stack and +sets it as the new metatable for the value at the given +acceptable index. + + + + + +


      lua_settable

      +[-2, +0, e] +

      void lua_settable (lua_State *L, int index);
      + +

      +Does the equivalent to t[k] = v, +where t is the value at the given valid index, +v is the value at the top of the stack, +and k is the value just below the top. + + +

      +This function pops both the key and the value from the stack. +As in Lua, this function may trigger a metamethod +for the "newindex" event (see §2.8). + + + + + +


      lua_settop

      +[-?, +?, -] +

      void lua_settop (lua_State *L, int index);
      + +

      +Accepts any acceptable index, or 0, +and sets the stack top to this index. +If the new top is larger than the old one, +then the new elements are filled with nil. +If index is 0, then all stack elements are removed. + + + + + +


      lua_State

      +
      typedef struct lua_State lua_State;
      + +

      +Opaque structure that keeps the whole state of a Lua interpreter. +The Lua library is fully reentrant: +it has no global variables. +All information about a state is kept in this structure. + + +

      +A pointer to this state must be passed as the first argument to +every function in the library, except to lua_newstate, +which creates a Lua state from scratch. + + + + + +


      lua_status

      +[-0, +0, -] +

      int lua_status (lua_State *L);
      + +

      +Returns the status of the thread L. + + +

      +The status can be 0 for a normal thread, +an error code if the thread finished its execution with an error, +or LUA_YIELD if the thread is suspended. + + + + + +


      lua_toboolean

      +[-0, +0, -] +

      int lua_toboolean (lua_State *L, int index);
      + +

      +Converts the Lua value at the given acceptable index to a C boolean +value (0 or 1). +Like all tests in Lua, +lua_toboolean returns 1 for any Lua value +different from false and nil; +otherwise it returns 0. +It also returns 0 when called with a non-valid index. +(If you want to accept only actual boolean values, +use lua_isboolean to test the value's type.) + + + + + +


      lua_tocfunction

      +[-0, +0, -] +

      lua_CFunction lua_tocfunction (lua_State *L, int index);
      + +

      +Converts a value at the given acceptable index to a C function. +That value must be a C function; +otherwise, returns NULL. + + + + + +


      lua_tointeger

      +[-0, +0, -] +

      lua_Integer lua_tointeger (lua_State *L, int index);
      + +

      +Converts the Lua value at the given acceptable index +to the signed integral type lua_Integer. +The Lua value must be a number or a string convertible to a number +(see §2.2.1); +otherwise, lua_tointeger returns 0. + + +

      +If the number is not an integer, +it is truncated in some non-specified way. + + + + + +


      lua_tolstring

      +[-0, +0, m] +

      const char *lua_tolstring (lua_State *L, int index, size_t *len);
      + +

      +Converts the Lua value at the given acceptable index to a C string. +If len is not NULL, +it also sets *len with the string length. +The Lua value must be a string or a number; +otherwise, the function returns NULL. +If the value is a number, +then lua_tolstring also +changes the actual value in the stack to a string. +(This change confuses lua_next +when lua_tolstring is applied to keys during a table traversal.) + + +

      +lua_tolstring returns a fully aligned pointer +to a string inside the Lua state. +This string always has a zero ('\0') +after its last character (as in C), +but can contain other zeros in its body. +Because Lua has garbage collection, +there is no guarantee that the pointer returned by lua_tolstring +will be valid after the corresponding value is removed from the stack. + + + + + +


      lua_tonumber

      +[-0, +0, -] +

      lua_Number lua_tonumber (lua_State *L, int index);
      + +

      +Converts the Lua value at the given acceptable index +to the C type lua_Number (see lua_Number). +The Lua value must be a number or a string convertible to a number +(see §2.2.1); +otherwise, lua_tonumber returns 0. + + + + + +


      lua_topointer

      +[-0, +0, -] +

      const void *lua_topointer (lua_State *L, int index);
      + +

      +Converts the value at the given acceptable index to a generic +C pointer (void*). +The value can be a userdata, a table, a thread, or a function; +otherwise, lua_topointer returns NULL. +Different objects will give different pointers. +There is no way to convert the pointer back to its original value. + + +

      +Typically this function is used only for debug information. + + + + + +


      lua_tostring

      +[-0, +0, m] +

      const char *lua_tostring (lua_State *L, int index);
      + +

      +Equivalent to lua_tolstring with len equal to NULL. + + + + + +


      lua_tothread

      +[-0, +0, -] +

      lua_State *lua_tothread (lua_State *L, int index);
      + +

      +Converts the value at the given acceptable index to a Lua thread +(represented as lua_State*). +This value must be a thread; +otherwise, the function returns NULL. + + + + + +


      lua_touserdata

      +[-0, +0, -] +

      void *lua_touserdata (lua_State *L, int index);
      + +

      +If the value at the given acceptable index is a full userdata, +returns its block address. +If the value is a light userdata, +returns its pointer. +Otherwise, returns NULL. + + + + + +


      lua_type

      +[-0, +0, -] +

      int lua_type (lua_State *L, int index);
      + +

      +Returns the type of the value in the given acceptable index, +or LUA_TNONE for a non-valid index +(that is, an index to an "empty" stack position). +The types returned by lua_type are coded by the following constants +defined in lua.h: +LUA_TNIL, +LUA_TNUMBER, +LUA_TBOOLEAN, +LUA_TSTRING, +LUA_TTABLE, +LUA_TFUNCTION, +LUA_TUSERDATA, +LUA_TTHREAD, +and +LUA_TLIGHTUSERDATA. + + + + + +


      lua_typename

      +[-0, +0, -] +

      const char *lua_typename  (lua_State *L, int tp);
      + +

      +Returns the name of the type encoded by the value tp, +which must be one the values returned by lua_type. + + + + + +


      lua_Writer

      +
      typedef int (*lua_Writer) (lua_State *L,
      +                           const void* p,
      +                           size_t sz,
      +                           void* ud);
      + +

      +The type of the writer function used by lua_dump. +Every time it produces another piece of chunk, +lua_dump calls the writer, +passing along the buffer to be written (p), +its size (sz), +and the data parameter supplied to lua_dump. + + +

      +The writer returns an error code: +0 means no errors; +any other value means an error and stops lua_dump from +calling the writer again. + + + + + +


      lua_xmove

      +[-?, +?, -] +

      void lua_xmove (lua_State *from, lua_State *to, int n);
      + +

      +Exchange values between different threads of the same global state. + + +

      +This function pops n values from the stack from, +and pushes them onto the stack to. + + + + + +


      lua_yield

      +[-?, +?, -] +

      int lua_yield  (lua_State *L, int nresults);
      + +

      +Yields a coroutine. + + +

      +This function should only be called as the +return expression of a C function, as follows: + +

      +     return lua_yield (L, nresults);
      +

      +When a C function calls lua_yield in that way, +the running coroutine suspends its execution, +and the call to lua_resume that started this coroutine returns. +The parameter nresults is the number of values from the stack +that are passed as results to lua_resume. + + + + + + + +

      3.8 - The Debug Interface

      + +

      +Lua has no built-in debugging facilities. +Instead, it offers a special interface +by means of functions and hooks. +This interface allows the construction of different +kinds of debuggers, profilers, and other tools +that need "inside information" from the interpreter. + + + +


      lua_Debug

      +
      typedef struct lua_Debug {
      +  int event;
      +  const char *name;           /* (n) */
      +  const char *namewhat;       /* (n) */
      +  const char *what;           /* (S) */
      +  const char *source;         /* (S) */
      +  int currentline;            /* (l) */
      +  int nups;                   /* (u) number of upvalues */
      +  int linedefined;            /* (S) */
      +  int lastlinedefined;        /* (S) */
      +  char short_src[LUA_IDSIZE]; /* (S) */
      +  /* private part */
      +  other fields
      +} lua_Debug;
      + +

      +A structure used to carry different pieces of +information about an active function. +lua_getstack fills only the private part +of this structure, for later use. +To fill the other fields of lua_Debug with useful information, +call lua_getinfo. + + +

      +The fields of lua_Debug have the following meaning: + +

        + +
      • source: +If the function was defined in a string, +then source is that string. +If the function was defined in a file, +then source starts with a '@' followed by the file name. +
      • + +
      • short_src: +a "printable" version of source, to be used in error messages. +
      • + +
      • linedefined: +the line number where the definition of the function starts. +
      • + +
      • lastlinedefined: +the line number where the definition of the function ends. +
      • + +
      • what: +the string "Lua" if the function is a Lua function, +"C" if it is a C function, +"main" if it is the main part of a chunk, +and "tail" if it was a function that did a tail call. +In the latter case, +Lua has no other information about the function. +
      • + +
      • currentline: +the current line where the given function is executing. +When no line information is available, +currentline is set to -1. +
      • + +
      • name: +a reasonable name for the given function. +Because functions in Lua are first-class values, +they do not have a fixed name: +some functions can be the value of multiple global variables, +while others can be stored only in a table field. +The lua_getinfo function checks how the function was +called to find a suitable name. +If it cannot find a name, +then name is set to NULL. +
      • + +
      • namewhat: +explains the name field. +The value of namewhat can be +"global", "local", "method", +"field", "upvalue", or "" (the empty string), +according to how the function was called. +(Lua uses the empty string when no other option seems to apply.) +
      • + +
      • nups: +the number of upvalues of the function. +
      • + +
      + + + + +

      lua_gethook

      +[-0, +0, -] +

      lua_Hook lua_gethook (lua_State *L);
      + +

      +Returns the current hook function. + + + + + +


      lua_gethookcount

      +[-0, +0, -] +

      int lua_gethookcount (lua_State *L);
      + +

      +Returns the current hook count. + + + + + +


      lua_gethookmask

      +[-0, +0, -] +

      int lua_gethookmask (lua_State *L);
      + +

      +Returns the current hook mask. + + + + + +


      lua_getinfo

      +[-(0|1), +(0|1|2), m] +

      int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar);
      + +

      +Returns information about a specific function or function invocation. + + +

      +To get information about a function invocation, +the parameter ar must be a valid activation record that was +filled by a previous call to lua_getstack or +given as argument to a hook (see lua_Hook). + + +

      +To get information about a function you push it onto the stack +and start the what string with the character '>'. +(In that case, +lua_getinfo pops the function in the top of the stack.) +For instance, to know in which line a function f was defined, +you can write the following code: + +

      +     lua_Debug ar;
      +     lua_getfield(L, LUA_GLOBALSINDEX, "f");  /* get global 'f' */
      +     lua_getinfo(L, ">S", &ar);
      +     printf("%d\n", ar.linedefined);
      +
      + +

      +Each character in the string what +selects some fields of the structure ar to be filled or +a value to be pushed on the stack: + +

        + +
      • 'n': fills in the field name and namewhat; +
      • + +
      • 'S': +fills in the fields source, short_src, +linedefined, lastlinedefined, and what; +
      • + +
      • 'l': fills in the field currentline; +
      • + +
      • 'u': fills in the field nups; +
      • + +
      • 'f': +pushes onto the stack the function that is +running at the given level; +
      • + +
      • 'L': +pushes onto the stack a table whose indices are the +numbers of the lines that are valid on the function. +(A valid line is a line with some associated code, +that is, a line where you can put a break point. +Non-valid lines include empty lines and comments.) +
      • + +
      + +

      +This function returns 0 on error +(for instance, an invalid option in what). + + + + + +


      lua_getlocal

      +[-0, +(0|1), -] +

      const char *lua_getlocal (lua_State *L, lua_Debug *ar, int n);
      + +

      +Gets information about a local variable of a given activation record. +The parameter ar must be a valid activation record that was +filled by a previous call to lua_getstack or +given as argument to a hook (see lua_Hook). +The index n selects which local variable to inspect +(1 is the first parameter or active local variable, and so on, +until the last active local variable). +lua_getlocal pushes the variable's value onto the stack +and returns its name. + + +

      +Variable names starting with '(' (open parentheses) +represent internal variables +(loop control variables, temporaries, and C function locals). + + +

      +Returns NULL (and pushes nothing) +when the index is greater than +the number of active local variables. + + + + + +


      lua_getstack

      +[-0, +0, -] +

      int lua_getstack (lua_State *L, int level, lua_Debug *ar);
      + +

      +Get information about the interpreter runtime stack. + + +

      +This function fills parts of a lua_Debug structure with +an identification of the activation record +of the function executing at a given level. +Level 0 is the current running function, +whereas level n+1 is the function that has called level n. +When there are no errors, lua_getstack returns 1; +when called with a level greater than the stack depth, +it returns 0. + + + + + +


      lua_getupvalue

      +[-0, +(0|1), -] +

      const char *lua_getupvalue (lua_State *L, int funcindex, int n);
      + +

      +Gets information about a closure's upvalue. +(For Lua functions, +upvalues are the external local variables that the function uses, +and that are consequently included in its closure.) +lua_getupvalue gets the index n of an upvalue, +pushes the upvalue's value onto the stack, +and returns its name. +funcindex points to the closure in the stack. +(Upvalues have no particular order, +as they are active through the whole function. +So, they are numbered in an arbitrary order.) + + +

      +Returns NULL (and pushes nothing) +when the index is greater than the number of upvalues. +For C functions, this function uses the empty string "" +as a name for all upvalues. + + + + + +


      lua_Hook

      +
      typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar);
      + +

      +Type for debugging hook functions. + + +

      +Whenever a hook is called, its ar argument has its field +event set to the specific event that triggered the hook. +Lua identifies these events with the following constants: +LUA_HOOKCALL, LUA_HOOKRET, +LUA_HOOKTAILRET, LUA_HOOKLINE, +and LUA_HOOKCOUNT. +Moreover, for line events, the field currentline is also set. +To get the value of any other field in ar, +the hook must call lua_getinfo. +For return events, event can be LUA_HOOKRET, +the normal value, or LUA_HOOKTAILRET. +In the latter case, Lua is simulating a return from +a function that did a tail call; +in this case, it is useless to call lua_getinfo. + + +

      +While Lua is running a hook, it disables other calls to hooks. +Therefore, if a hook calls back Lua to execute a function or a chunk, +this execution occurs without any calls to hooks. + + + + + +


      lua_sethook

      +[-0, +0, -] +

      int lua_sethook (lua_State *L, lua_Hook f, int mask, int count);
      + +

      +Sets the debugging hook function. + + +

      +Argument f is the hook function. +mask specifies on which events the hook will be called: +it is formed by a bitwise or of the constants +LUA_MASKCALL, +LUA_MASKRET, +LUA_MASKLINE, +and LUA_MASKCOUNT. +The count argument is only meaningful when the mask +includes LUA_MASKCOUNT. +For each event, the hook is called as explained below: + +

        + +
      • The call hook: is called when the interpreter calls a function. +The hook is called just after Lua enters the new function, +before the function gets its arguments. +
      • + +
      • The return hook: is called when the interpreter returns from a function. +The hook is called just before Lua leaves the function. +You have no access to the values to be returned by the function. +
      • + +
      • The line hook: is called when the interpreter is about to +start the execution of a new line of code, +or when it jumps back in the code (even to the same line). +(This event only happens while Lua is executing a Lua function.) +
      • + +
      • The count hook: is called after the interpreter executes every +count instructions. +(This event only happens while Lua is executing a Lua function.) +
      • + +
      + +

      +A hook is disabled by setting mask to zero. + + + + + +


      lua_setlocal

      +[-(0|1), +0, -] +

      const char *lua_setlocal (lua_State *L, lua_Debug *ar, int n);
      + +

      +Sets the value of a local variable of a given activation record. +Parameters ar and n are as in lua_getlocal +(see lua_getlocal). +lua_setlocal assigns the value at the top of the stack +to the variable and returns its name. +It also pops the value from the stack. + + +

      +Returns NULL (and pops nothing) +when the index is greater than +the number of active local variables. + + + + + +


      lua_setupvalue

      +[-(0|1), +0, -] +

      const char *lua_setupvalue (lua_State *L, int funcindex, int n);
      + +

      +Sets the value of a closure's upvalue. +It assigns the value at the top of the stack +to the upvalue and returns its name. +It also pops the value from the stack. +Parameters funcindex and n are as in the lua_getupvalue +(see lua_getupvalue). + + +

      +Returns NULL (and pops nothing) +when the index is greater than the number of upvalues. + + + + + + + +

      4 - The Auxiliary Library

      + +

      + +The auxiliary library provides several convenient functions +to interface C with Lua. +While the basic API provides the primitive functions for all +interactions between C and Lua, +the auxiliary library provides higher-level functions for some +common tasks. + + +

      +All functions from the auxiliary library +are defined in header file lauxlib.h and +have a prefix luaL_. + + +

      +All functions in the auxiliary library are built on +top of the basic API, +and so they provide nothing that cannot be done with this API. + + +

      +Several functions in the auxiliary library are used to +check C function arguments. +Their names are always luaL_check* or luaL_opt*. +All of these functions throw an error if the check is not satisfied. +Because the error message is formatted for arguments +(e.g., "bad argument #1"), +you should not use these functions for other stack values. + + + +

      4.1 - Functions and Types

      + +

      +Here we list all functions and types from the auxiliary library +in alphabetical order. + + + +


      luaL_addchar

      +[-0, +0, m] +

      void luaL_addchar (luaL_Buffer *B, char c);
      + +

      +Adds the character c to the buffer B +(see luaL_Buffer). + + + + + +


      luaL_addlstring

      +[-0, +0, m] +

      void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l);
      + +

      +Adds the string pointed to by s with length l to +the buffer B +(see luaL_Buffer). +The string may contain embedded zeros. + + + + + +


      luaL_addsize

      +[-0, +0, m] +

      void luaL_addsize (luaL_Buffer *B, size_t n);
      + +

      +Adds to the buffer B (see luaL_Buffer) +a string of length n previously copied to the +buffer area (see luaL_prepbuffer). + + + + + +


      luaL_addstring

      +[-0, +0, m] +

      void luaL_addstring (luaL_Buffer *B, const char *s);
      + +

      +Adds the zero-terminated string pointed to by s +to the buffer B +(see luaL_Buffer). +The string may not contain embedded zeros. + + + + + +


      luaL_addvalue

      +[-1, +0, m] +

      void luaL_addvalue (luaL_Buffer *B);
      + +

      +Adds the value at the top of the stack +to the buffer B +(see luaL_Buffer). +Pops the value. + + +

      +This is the only function on string buffers that can (and must) +be called with an extra element on the stack, +which is the value to be added to the buffer. + + + + + +


      luaL_argcheck

      +[-0, +0, v] +

      void luaL_argcheck (lua_State *L,
      +                    int cond,
      +                    int narg,
      +                    const char *extramsg);
      + +

      +Checks whether cond is true. +If not, raises an error with the following message, +where func is retrieved from the call stack: + +

      +     bad argument #<narg> to <func> (<extramsg>)
      +
      + + + + +

      luaL_argerror

      +[-0, +0, v] +

      int luaL_argerror (lua_State *L, int narg, const char *extramsg);
      + +

      +Raises an error with the following message, +where func is retrieved from the call stack: + +

      +     bad argument #<narg> to <func> (<extramsg>)
      +
      + +

      +This function never returns, +but it is an idiom to use it in C functions +as return luaL_argerror(args). + + + + + +


      luaL_Buffer

      +
      typedef struct luaL_Buffer luaL_Buffer;
      + +

      +Type for a string buffer. + + +

      +A string buffer allows C code to build Lua strings piecemeal. +Its pattern of use is as follows: + +

        + +
      • First you declare a variable b of type luaL_Buffer.
      • + +
      • Then you initialize it with a call luaL_buffinit(L, &b).
      • + +
      • +Then you add string pieces to the buffer calling any of +the luaL_add* functions. +
      • + +
      • +You finish by calling luaL_pushresult(&b). +This call leaves the final string on the top of the stack. +
      • + +
      + +

      +During its normal operation, +a string buffer uses a variable number of stack slots. +So, while using a buffer, you cannot assume that you know where +the top of the stack is. +You can use the stack between successive calls to buffer operations +as long as that use is balanced; +that is, +when you call a buffer operation, +the stack is at the same level +it was immediately after the previous buffer operation. +(The only exception to this rule is luaL_addvalue.) +After calling luaL_pushresult the stack is back to its +level when the buffer was initialized, +plus the final string on its top. + + + + + +


      luaL_buffinit

      +[-0, +0, -] +

      void luaL_buffinit (lua_State *L, luaL_Buffer *B);
      + +

      +Initializes a buffer B. +This function does not allocate any space; +the buffer must be declared as a variable +(see luaL_Buffer). + + + + + +


      luaL_callmeta

      +[-0, +(0|1), e] +

      int luaL_callmeta (lua_State *L, int obj, const char *e);
      + +

      +Calls a metamethod. + + +

      +If the object at index obj has a metatable and this +metatable has a field e, +this function calls this field and passes the object as its only argument. +In this case this function returns 1 and pushes onto the +stack the value returned by the call. +If there is no metatable or no metamethod, +this function returns 0 (without pushing any value on the stack). + + + + + +


      luaL_checkany

      +[-0, +0, v] +

      void luaL_checkany (lua_State *L, int narg);
      + +

      +Checks whether the function has an argument +of any type (including nil) at position narg. + + + + + +


      luaL_checkint

      +[-0, +0, v] +

      int luaL_checkint (lua_State *L, int narg);
      + +

      +Checks whether the function argument narg is a number +and returns this number cast to an int. + + + + + +


      luaL_checkinteger

      +[-0, +0, v] +

      lua_Integer luaL_checkinteger (lua_State *L, int narg);
      + +

      +Checks whether the function argument narg is a number +and returns this number cast to a lua_Integer. + + + + + +


      luaL_checklong

      +[-0, +0, v] +

      long luaL_checklong (lua_State *L, int narg);
      + +

      +Checks whether the function argument narg is a number +and returns this number cast to a long. + + + + + +


      luaL_checklstring

      +[-0, +0, v] +

      const char *luaL_checklstring (lua_State *L, int narg, size_t *l);
      + +

      +Checks whether the function argument narg is a string +and returns this string; +if l is not NULL fills *l +with the string's length. + + +

      +This function uses lua_tolstring to get its result, +so all conversions and caveats of that function apply here. + + + + + +


      luaL_checknumber

      +[-0, +0, v] +

      lua_Number luaL_checknumber (lua_State *L, int narg);
      + +

      +Checks whether the function argument narg is a number +and returns this number. + + + + + +


      luaL_checkoption

      +[-0, +0, v] +

      int luaL_checkoption (lua_State *L,
      +                      int narg,
      +                      const char *def,
      +                      const char *const lst[]);
      + +

      +Checks whether the function argument narg is a string and +searches for this string in the array lst +(which must be NULL-terminated). +Returns the index in the array where the string was found. +Raises an error if the argument is not a string or +if the string cannot be found. + + +

      +If def is not NULL, +the function uses def as a default value when +there is no argument narg or if this argument is nil. + + +

      +This is a useful function for mapping strings to C enums. +(The usual convention in Lua libraries is +to use strings instead of numbers to select options.) + + + + + +


      luaL_checkstack

      +[-0, +0, v] +

      void luaL_checkstack (lua_State *L, int sz, const char *msg);
      + +

      +Grows the stack size to top + sz elements, +raising an error if the stack cannot grow to that size. +msg is an additional text to go into the error message. + + + + + +


      luaL_checkstring

      +[-0, +0, v] +

      const char *luaL_checkstring (lua_State *L, int narg);
      + +

      +Checks whether the function argument narg is a string +and returns this string. + + +

      +This function uses lua_tolstring to get its result, +so all conversions and caveats of that function apply here. + + + + + +


      luaL_checktype

      +[-0, +0, v] +

      void luaL_checktype (lua_State *L, int narg, int t);
      + +

      +Checks whether the function argument narg has type t. +See lua_type for the encoding of types for t. + + + + + +


      luaL_checkudata

      +[-0, +0, v] +

      void *luaL_checkudata (lua_State *L, int narg, const char *tname);
      + +

      +Checks whether the function argument narg is a userdata +of the type tname (see luaL_newmetatable). + + + + + +


      luaL_dofile

      +[-0, +?, m] +

      int luaL_dofile (lua_State *L, const char *filename);
      + +

      +Loads and runs the given file. +It is defined as the following macro: + +

      +     (luaL_loadfile(L, filename) || lua_pcall(L, 0, LUA_MULTRET, 0))
      +

      +It returns 0 if there are no errors +or 1 in case of errors. + + + + + +


      luaL_dostring

      +[-0, +?, m] +

      int luaL_dostring (lua_State *L, const char *str);
      + +

      +Loads and runs the given string. +It is defined as the following macro: + +

      +     (luaL_loadstring(L, str) || lua_pcall(L, 0, LUA_MULTRET, 0))
      +

      +It returns 0 if there are no errors +or 1 in case of errors. + + + + + +


      luaL_error

      +[-0, +0, v] +

      int luaL_error (lua_State *L, const char *fmt, ...);
      + +

      +Raises an error. +The error message format is given by fmt +plus any extra arguments, +following the same rules of lua_pushfstring. +It also adds at the beginning of the message the file name and +the line number where the error occurred, +if this information is available. + + +

      +This function never returns, +but it is an idiom to use it in C functions +as return luaL_error(args). + + + + + +


      luaL_getmetafield

      +[-0, +(0|1), m] +

      int luaL_getmetafield (lua_State *L, int obj, const char *e);
      + +

      +Pushes onto the stack the field e from the metatable +of the object at index obj. +If the object does not have a metatable, +or if the metatable does not have this field, +returns 0 and pushes nothing. + + + + + +


      luaL_getmetatable

      +[-0, +1, -] +

      void luaL_getmetatable (lua_State *L, const char *tname);
      + +

      +Pushes onto the stack the metatable associated with name tname +in the registry (see luaL_newmetatable). + + + + + +


      luaL_gsub

      +[-0, +1, m] +

      const char *luaL_gsub (lua_State *L,
      +                       const char *s,
      +                       const char *p,
      +                       const char *r);
      + +

      +Creates a copy of string s by replacing +any occurrence of the string p +with the string r. +Pushes the resulting string on the stack and returns it. + + + + + +


      luaL_loadbuffer

      +[-0, +1, m] +

      int luaL_loadbuffer (lua_State *L,
      +                     const char *buff,
      +                     size_t sz,
      +                     const char *name);
      + +

      +Loads a buffer as a Lua chunk. +This function uses lua_load to load the chunk in the +buffer pointed to by buff with size sz. + + +

      +This function returns the same results as lua_load. +name is the chunk name, +used for debug information and error messages. + + + + + +


      luaL_loadfile

      +[-0, +1, m] +

      int luaL_loadfile (lua_State *L, const char *filename);
      + +

      +Loads a file as a Lua chunk. +This function uses lua_load to load the chunk in the file +named filename. +If filename is NULL, +then it loads from the standard input. +The first line in the file is ignored if it starts with a #. + + +

      +This function returns the same results as lua_load, +but it has an extra error code LUA_ERRFILE +if it cannot open/read the file. + + +

      +As lua_load, this function only loads the chunk; +it does not run it. + + + + + +


      luaL_loadstring

      +[-0, +1, m] +

      int luaL_loadstring (lua_State *L, const char *s);
      + +

      +Loads a string as a Lua chunk. +This function uses lua_load to load the chunk in +the zero-terminated string s. + + +

      +This function returns the same results as lua_load. + + +

      +Also as lua_load, this function only loads the chunk; +it does not run it. + + + + + +


      luaL_newmetatable

      +[-0, +1, m] +

      int luaL_newmetatable (lua_State *L, const char *tname);
      + +

      +If the registry already has the key tname, +returns 0. +Otherwise, +creates a new table to be used as a metatable for userdata, +adds it to the registry with key tname, +and returns 1. + + +

      +In both cases pushes onto the stack the final value associated +with tname in the registry. + + + + + +


      luaL_newstate

      +[-0, +0, -] +

      lua_State *luaL_newstate (void);
      + +

      +Creates a new Lua state. +It calls lua_newstate with an +allocator based on the standard C realloc function +and then sets a panic function (see lua_atpanic) that prints +an error message to the standard error output in case of fatal +errors. + + +

      +Returns the new state, +or NULL if there is a memory allocation error. + + + + + +


      luaL_openlibs

      +[-0, +0, m] +

      void luaL_openlibs (lua_State *L);
      + +

      +Opens all standard Lua libraries into the given state. + + + + + +


      luaL_optint

      +[-0, +0, v] +

      int luaL_optint (lua_State *L, int narg, int d);
      + +

      +If the function argument narg is a number, +returns this number cast to an int. +If this argument is absent or is nil, +returns d. +Otherwise, raises an error. + + + + + +


      luaL_optinteger

      +[-0, +0, v] +

      lua_Integer luaL_optinteger (lua_State *L,
      +                             int narg,
      +                             lua_Integer d);
      + +

      +If the function argument narg is a number, +returns this number cast to a lua_Integer. +If this argument is absent or is nil, +returns d. +Otherwise, raises an error. + + + + + +


      luaL_optlong

      +[-0, +0, v] +

      long luaL_optlong (lua_State *L, int narg, long d);
      + +

      +If the function argument narg is a number, +returns this number cast to a long. +If this argument is absent or is nil, +returns d. +Otherwise, raises an error. + + + + + +


      luaL_optlstring

      +[-0, +0, v] +

      const char *luaL_optlstring (lua_State *L,
      +                             int narg,
      +                             const char *d,
      +                             size_t *l);
      + +

      +If the function argument narg is a string, +returns this string. +If this argument is absent or is nil, +returns d. +Otherwise, raises an error. + + +

      +If l is not NULL, +fills the position *l with the results's length. + + + + + +


      luaL_optnumber

      +[-0, +0, v] +

      lua_Number luaL_optnumber (lua_State *L, int narg, lua_Number d);
      + +

      +If the function argument narg is a number, +returns this number. +If this argument is absent or is nil, +returns d. +Otherwise, raises an error. + + + + + +


      luaL_optstring

      +[-0, +0, v] +

      const char *luaL_optstring (lua_State *L,
      +                            int narg,
      +                            const char *d);
      + +

      +If the function argument narg is a string, +returns this string. +If this argument is absent or is nil, +returns d. +Otherwise, raises an error. + + + + + +


      luaL_prepbuffer

      +[-0, +0, -] +

      char *luaL_prepbuffer (luaL_Buffer *B);
      + +

      +Returns an address to a space of size LUAL_BUFFERSIZE +where you can copy a string to be added to buffer B +(see luaL_Buffer). +After copying the string into this space you must call +luaL_addsize with the size of the string to actually add +it to the buffer. + + + + + +


      luaL_pushresult

      +[-?, +1, m] +

      void luaL_pushresult (luaL_Buffer *B);
      + +

      +Finishes the use of buffer B leaving the final string on +the top of the stack. + + + + + +


      luaL_ref

      +[-1, +0, m] +

      int luaL_ref (lua_State *L, int t);
      + +

      +Creates and returns a reference, +in the table at index t, +for the object at the top of the stack (and pops the object). + + +

      +A reference is a unique integer key. +As long as you do not manually add integer keys into table t, +luaL_ref ensures the uniqueness of the key it returns. +You can retrieve an object referred by reference r +by calling lua_rawgeti(L, t, r). +Function luaL_unref frees a reference and its associated object. + + +

      +If the object at the top of the stack is nil, +luaL_ref returns the constant LUA_REFNIL. +The constant LUA_NOREF is guaranteed to be different +from any reference returned by luaL_ref. + + + + + +


      luaL_Reg

      +
      typedef struct luaL_Reg {
      +  const char *name;
      +  lua_CFunction func;
      +} luaL_Reg;
      + +

      +Type for arrays of functions to be registered by +luaL_register. +name is the function name and func is a pointer to +the function. +Any array of luaL_Reg must end with an sentinel entry +in which both name and func are NULL. + + + + + +


      luaL_register

      +[-(0|1), +1, m] +

      void luaL_register (lua_State *L,
      +                    const char *libname,
      +                    const luaL_Reg *l);
      + +

      +Opens a library. + + +

      +When called with libname equal to NULL, +it simply registers all functions in the list l +(see luaL_Reg) into the table on the top of the stack. + + +

      +When called with a non-null libname, +luaL_register creates a new table t, +sets it as the value of the global variable libname, +sets it as the value of package.loaded[libname], +and registers on it all functions in the list l. +If there is a table in package.loaded[libname] or in +variable libname, +reuses this table instead of creating a new one. + + +

      +In any case the function leaves the table +on the top of the stack. + + + + + +


      luaL_typename

      +[-0, +0, -] +

      const char *luaL_typename (lua_State *L, int index);
      + +

      +Returns the name of the type of the value at the given index. + + + + + +


      luaL_typerror

      +[-0, +0, v] +

      int luaL_typerror (lua_State *L, int narg, const char *tname);
      + +

      +Generates an error with a message like the following: + +

      +     location: bad argument narg to 'func' (tname expected, got rt)
      +

      +where location is produced by luaL_where, +func is the name of the current function, +and rt is the type name of the actual argument. + + + + + +


      luaL_unref

      +[-0, +0, -] +

      void luaL_unref (lua_State *L, int t, int ref);
      + +

      +Releases reference ref from the table at index t +(see luaL_ref). +The entry is removed from the table, +so that the referred object can be collected. +The reference ref is also freed to be used again. + + +

      +If ref is LUA_NOREF or LUA_REFNIL, +luaL_unref does nothing. + + + + + +


      luaL_where

      +[-0, +1, m] +

      void luaL_where (lua_State *L, int lvl);
      + +

      +Pushes onto the stack a string identifying the current position +of the control at level lvl in the call stack. +Typically this string has the following format: + +

      +     chunkname:currentline:
      +

      +Level 0 is the running function, +level 1 is the function that called the running function, +etc. + + +

      +This function is used to build a prefix for error messages. + + + + + + + +

      5 - Standard Libraries

      + +

      +The standard Lua libraries provide useful functions +that are implemented directly through the C API. +Some of these functions provide essential services to the language +(e.g., type and getmetatable); +others provide access to "outside" services (e.g., I/O); +and others could be implemented in Lua itself, +but are quite useful or have critical performance requirements that +deserve an implementation in C (e.g., table.sort). + + +

      +All libraries are implemented through the official C API +and are provided as separate C modules. +Currently, Lua has the following standard libraries: + +

        + +
      • basic library,
      • which includes the coroutine sub-library; + +
      • package library;
      • + +
      • string manipulation;
      • + +
      • table manipulation;
      • + +
      • mathematical functions (sin, log, etc.);
      • + +
      • input and output;
      • + +
      • operating system facilities;
      • + +
      • debug facilities.
      • + +

      +Except for the basic and package libraries, +each library provides all its functions as fields of a global table +or as methods of its objects. + + +

      +To have access to these libraries, +the C host program should call the luaL_openlibs function, +which opens all standard libraries. +Alternatively, +it can open them individually by calling +luaopen_base (for the basic library), +luaopen_package (for the package library), +luaopen_string (for the string library), +luaopen_table (for the table library), +luaopen_math (for the mathematical library), +luaopen_io (for the I/O library), +luaopen_os (for the Operating System library), +and luaopen_debug (for the debug library). +These functions are declared in lualib.h +and should not be called directly: +you must call them like any other Lua C function, +e.g., by using lua_call. + + + +

      5.1 - Basic Functions

      + +

      +The basic library provides some core functions to Lua. +If you do not include this library in your application, +you should check carefully whether you need to provide +implementations for some of its facilities. + + +

      +


      assert (v [, message])

      +Issues an error when +the value of its argument v is false (i.e., nil or false); +otherwise, returns all its arguments. +message is an error message; +when absent, it defaults to "assertion failed!" + + + + +

      +


      collectgarbage (opt [, arg])

      + + +

      +This function is a generic interface to the garbage collector. +It performs different functions according to its first argument, opt: + +

        + +
      • "stop": +stops the garbage collector. +
      • + +
      • "restart": +restarts the garbage collector. +
      • + +
      • "collect": +performs a full garbage-collection cycle. +
      • + +
      • "count": +returns the total memory in use by Lua (in Kbytes). +
      • + +
      • "step": +performs a garbage-collection step. +The step "size" is controlled by arg +(larger values mean more steps) in a non-specified way. +If you want to control the step size +you must experimentally tune the value of arg. +Returns true if the step finished a collection cycle. +
      • + +
      • "setpause": +sets arg as the new value for the pause of +the collector (see §2.10). +Returns the previous value for pause. +
      • + +
      • "setstepmul": +sets arg as the new value for the step multiplier of +the collector (see §2.10). +Returns the previous value for step. +
      • + +
      + + + +

      +


      dofile (filename)

      +Opens the named file and executes its contents as a Lua chunk. +When called without arguments, +dofile executes the contents of the standard input (stdin). +Returns all values returned by the chunk. +In case of errors, dofile propagates the error +to its caller (that is, dofile does not run in protected mode). + + + + +

      +


      error (message [, level])

      +Terminates the last protected function called +and returns message as the error message. +Function error never returns. + + +

      +Usually, error adds some information about the error position +at the beginning of the message. +The level argument specifies how to get the error position. +With level 1 (the default), the error position is where the +error function was called. +Level 2 points the error to where the function +that called error was called; and so on. +Passing a level 0 avoids the addition of error position information +to the message. + + + + +

      +


      _G

      +A global variable (not a function) that +holds the global environment (that is, _G._G = _G). +Lua itself does not use this variable; +changing its value does not affect any environment, +nor vice-versa. +(Use setfenv to change environments.) + + + + +

      +


      getfenv ([f])

      +Returns the current environment in use by the function. +f can be a Lua function or a number +that specifies the function at that stack level: +Level 1 is the function calling getfenv. +If the given function is not a Lua function, +or if f is 0, +getfenv returns the global environment. +The default for f is 1. + + + + +

      +


      getmetatable (object)

      + + +

      +If object does not have a metatable, returns nil. +Otherwise, +if the object's metatable has a "__metatable" field, +returns the associated value. +Otherwise, returns the metatable of the given object. + + + + +

      +


      ipairs (t)

      + + +

      +Returns three values: an iterator function, the table t, and 0, +so that the construction + +

      +     for i,v in ipairs(t) do body end
      +

      +will iterate over the pairs (1,t[1]), (2,t[2]), ···, +up to the first integer key absent from the table. + + + + +

      +


      load (func [, chunkname])

      + + +

      +Loads a chunk using function func to get its pieces. +Each call to func must return a string that concatenates +with previous results. +A return of an empty string, nil, or no value signals the end of the chunk. + + +

      +If there are no errors, +returns the compiled chunk as a function; +otherwise, returns nil plus the error message. +The environment of the returned function is the global environment. + + +

      +chunkname is used as the chunk name for error messages +and debug information. +When absent, +it defaults to "=(load)". + + + + +

      +


      loadfile ([filename])

      + + +

      +Similar to load, +but gets the chunk from file filename +or from the standard input, +if no file name is given. + + + + +

      +


      loadstring (string [, chunkname])

      + + +

      +Similar to load, +but gets the chunk from the given string. + + +

      +To load and run a given string, use the idiom + +

      +     assert(loadstring(s))()
      +
      + +

      +When absent, +chunkname defaults to the given string. + + + + +

      +


      next (table [, index])

      + + +

      +Allows a program to traverse all fields of a table. +Its first argument is a table and its second argument +is an index in this table. +next returns the next index of the table +and its associated value. +When called with nil as its second argument, +next returns an initial index +and its associated value. +When called with the last index, +or with nil in an empty table, +next returns nil. +If the second argument is absent, then it is interpreted as nil. +In particular, +you can use next(t) to check whether a table is empty. + + +

      +The order in which the indices are enumerated is not specified, +even for numeric indices. +(To traverse a table in numeric order, +use a numerical for or the ipairs function.) + + +

      +The behavior of next is undefined if, +during the traversal, +you assign any value to a non-existent field in the table. +You may however modify existing fields. +In particular, you may clear existing fields. + + + + +

      +


      pairs (t)

      + + +

      +Returns three values: the next function, the table t, and nil, +so that the construction + +

      +     for k,v in pairs(t) do body end
      +

      +will iterate over all key–value pairs of table t. + + +

      +See function next for the caveats of modifying +the table during its traversal. + + + + +

      +


      pcall (f, arg1, ···)

      + + +

      +Calls function f with +the given arguments in protected mode. +This means that any error inside f is not propagated; +instead, pcall catches the error +and returns a status code. +Its first result is the status code (a boolean), +which is true if the call succeeds without errors. +In such case, pcall also returns all results from the call, +after this first result. +In case of any error, pcall returns false plus the error message. + + + + +

      +


      print (···)

      +Receives any number of arguments, +and prints their values to stdout, +using the tostring function to convert them to strings. +print is not intended for formatted output, +but only as a quick way to show a value, +typically for debugging. +For formatted output, use string.format. + + + + +

      +


      rawequal (v1, v2)

      +Checks whether v1 is equal to v2, +without invoking any metamethod. +Returns a boolean. + + + + +

      +


      rawget (table, index)

      +Gets the real value of table[index], +without invoking any metamethod. +table must be a table; +index may be any value. + + + + +

      +


      rawset (table, index, value)

      +Sets the real value of table[index] to value, +without invoking any metamethod. +table must be a table, +index any value different from nil, +and value any Lua value. + + +

      +This function returns table. + + + + +

      +


      select (index, ···)

      + + +

      +If index is a number, +returns all arguments after argument number index. +Otherwise, index must be the string "#", +and select returns the total number of extra arguments it received. + + + + +

      +


      setfenv (f, table)

      + + +

      +Sets the environment to be used by the given function. +f can be a Lua function or a number +that specifies the function at that stack level: +Level 1 is the function calling setfenv. +setfenv returns the given function. + + +

      +As a special case, when f is 0 setfenv changes +the environment of the running thread. +In this case, setfenv returns no values. + + + + +

      +


      setmetatable (table, metatable)

      + + +

      +Sets the metatable for the given table. +(You cannot change the metatable of other types from Lua, only from C.) +If metatable is nil, +removes the metatable of the given table. +If the original metatable has a "__metatable" field, +raises an error. + + +

      +This function returns table. + + + + +

      +


      tonumber (e [, base])

      +Tries to convert its argument to a number. +If the argument is already a number or a string convertible +to a number, then tonumber returns this number; +otherwise, it returns nil. + + +

      +An optional argument specifies the base to interpret the numeral. +The base may be any integer between 2 and 36, inclusive. +In bases above 10, the letter 'A' (in either upper or lower case) +represents 10, 'B' represents 11, and so forth, +with 'Z' representing 35. +In base 10 (the default), the number can have a decimal part, +as well as an optional exponent part (see §2.1). +In other bases, only unsigned integers are accepted. + + + + +

      +


      tostring (e)

      +Receives an argument of any type and +converts it to a string in a reasonable format. +For complete control of how numbers are converted, +use string.format. + + +

      +If the metatable of e has a "__tostring" field, +then tostring calls the corresponding value +with e as argument, +and uses the result of the call as its result. + + + + +

      +


      type (v)

      +Returns the type of its only argument, coded as a string. +The possible results of this function are +"nil" (a string, not the value nil), +"number", +"string", +"boolean", +"table", +"function", +"thread", +and "userdata". + + + + +

      +


      unpack (list [, i [, j]])

      +Returns the elements from the given table. +This function is equivalent to + +
      +     return list[i], list[i+1], ···, list[j]
      +

      +except that the above code can be written only for a fixed number +of elements. +By default, i is 1 and j is the length of the list, +as defined by the length operator (see §2.5.5). + + + + +

      +


      _VERSION

      +A global variable (not a function) that +holds a string containing the current interpreter version. +The current contents of this variable is "Lua 5.1". + + + + +

      +


      xpcall (f, err)

      + + +

      +This function is similar to pcall, +except that you can set a new error handler. + + +

      +xpcall calls function f in protected mode, +using err as the error handler. +Any error inside f is not propagated; +instead, xpcall catches the error, +calls the err function with the original error object, +and returns a status code. +Its first result is the status code (a boolean), +which is true if the call succeeds without errors. +In this case, xpcall also returns all results from the call, +after this first result. +In case of any error, +xpcall returns false plus the result from err. + + + + + + + +

      5.2 - Coroutine Manipulation

      + +

      +The operations related to coroutines comprise a sub-library of +the basic library and come inside the table coroutine. +See §2.11 for a general description of coroutines. + + +

      +


      coroutine.create (f)

      + + +

      +Creates a new coroutine, with body f. +f must be a Lua function. +Returns this new coroutine, +an object with type "thread". + + + + +

      +


      coroutine.resume (co [, val1, ···])

      + + +

      +Starts or continues the execution of coroutine co. +The first time you resume a coroutine, +it starts running its body. +The values val1, ··· are passed +as the arguments to the body function. +If the coroutine has yielded, +resume restarts it; +the values val1, ··· are passed +as the results from the yield. + + +

      +If the coroutine runs without any errors, +resume returns true plus any values passed to yield +(if the coroutine yields) or any values returned by the body function +(if the coroutine terminates). +If there is any error, +resume returns false plus the error message. + + + + +

      +


      coroutine.running ()

      + + +

      +Returns the running coroutine, +or nil when called by the main thread. + + + + +

      +


      coroutine.status (co)

      + + +

      +Returns the status of coroutine co, as a string: +"running", +if the coroutine is running (that is, it called status); +"suspended", if the coroutine is suspended in a call to yield, +or if it has not started running yet; +"normal" if the coroutine is active but not running +(that is, it has resumed another coroutine); +and "dead" if the coroutine has finished its body function, +or if it has stopped with an error. + + + + +

      +


      coroutine.wrap (f)

      + + +

      +Creates a new coroutine, with body f. +f must be a Lua function. +Returns a function that resumes the coroutine each time it is called. +Any arguments passed to the function behave as the +extra arguments to resume. +Returns the same values returned by resume, +except the first boolean. +In case of error, propagates the error. + + + + +

      +


      coroutine.yield (···)

      + + +

      +Suspends the execution of the calling coroutine. +The coroutine cannot be running a C function, +a metamethod, or an iterator. +Any arguments to yield are passed as extra results to resume. + + + + + + + +

      5.3 - Modules

      + +

      +The package library provides basic +facilities for loading and building modules in Lua. +It exports two of its functions directly in the global environment: +require and module. +Everything else is exported in a table package. + + +

      +


      module (name [, ···])

      + + +

      +Creates a module. +If there is a table in package.loaded[name], +this table is the module. +Otherwise, if there is a global table t with the given name, +this table is the module. +Otherwise creates a new table t and +sets it as the value of the global name and +the value of package.loaded[name]. +This function also initializes t._NAME with the given name, +t._M with the module (t itself), +and t._PACKAGE with the package name +(the full module name minus last component; see below). +Finally, module sets t as the new environment +of the current function and the new value of package.loaded[name], +so that require returns t. + + +

      +If name is a compound name +(that is, one with components separated by dots), +module creates (or reuses, if they already exist) +tables for each component. +For instance, if name is a.b.c, +then module stores the module table in field c of +field b of global a. + + +

      +This function can receive optional options after +the module name, +where each option is a function to be applied over the module. + + + + +

      +


      require (modname)

      + + +

      +Loads the given module. +The function starts by looking into the package.loaded table +to determine whether modname is already loaded. +If it is, then require returns the value stored +at package.loaded[modname]. +Otherwise, it tries to find a loader for the module. + + +

      +To find a loader, +require is guided by the package.loaders array. +By changing this array, +we can change how require looks for a module. +The following explanation is based on the default configuration +for package.loaders. + + +

      +First require queries package.preload[modname]. +If it has a value, +this value (which should be a function) is the loader. +Otherwise require searches for a Lua loader using the +path stored in package.path. +If that also fails, it searches for a C loader using the +path stored in package.cpath. +If that also fails, +it tries an all-in-one loader (see package.loaders). + + +

      +Once a loader is found, +require calls the loader with a single argument, modname. +If the loader returns any value, +require assigns the returned value to package.loaded[modname]. +If the loader returns no value and +has not assigned any value to package.loaded[modname], +then require assigns true to this entry. +In any case, require returns the +final value of package.loaded[modname]. + + +

      +If there is any error loading or running the module, +or if it cannot find any loader for the module, +then require signals an error. + + + + +

      +


      package.cpath

      + + +

      +The path used by require to search for a C loader. + + +

      +Lua initializes the C path package.cpath in the same way +it initializes the Lua path package.path, +using the environment variable LUA_CPATH +or a default path defined in luaconf.h. + + + + +

      + +


      package.loaded

      + + +

      +A table used by require to control which +modules are already loaded. +When you require a module modname and +package.loaded[modname] is not false, +require simply returns the value stored there. + + + + +

      +


      package.loaders

      + + +

      +A table used by require to control how to load modules. + + +

      +Each entry in this table is a searcher function. +When looking for a module, +require calls each of these searchers in ascending order, +with the module name (the argument given to require) as its +sole parameter. +The function can return another function (the module loader) +or a string explaining why it did not find that module +(or nil if it has nothing to say). +Lua initializes this table with four functions. + + +

      +The first searcher simply looks for a loader in the +package.preload table. + + +

      +The second searcher looks for a loader as a Lua library, +using the path stored at package.path. +A path is a sequence of templates separated by semicolons. +For each template, +the searcher will change each interrogation +mark in the template by filename, +which is the module name with each dot replaced by a +"directory separator" (such as "/" in Unix); +then it will try to open the resulting file name. +So, for instance, if the Lua path is the string + +

      +     "./?.lua;./?.lc;/usr/local/?/init.lua"
      +

      +the search for a Lua file for module foo +will try to open the files +./foo.lua, ./foo.lc, and +/usr/local/foo/init.lua, in that order. + + +

      +The third searcher looks for a loader as a C library, +using the path given by the variable package.cpath. +For instance, +if the C path is the string + +

      +     "./?.so;./?.dll;/usr/local/?/init.so"
      +

      +the searcher for module foo +will try to open the files ./foo.so, ./foo.dll, +and /usr/local/foo/init.so, in that order. +Once it finds a C library, +this searcher first uses a dynamic link facility to link the +application with the library. +Then it tries to find a C function inside the library to +be used as the loader. +The name of this C function is the string "luaopen_" +concatenated with a copy of the module name where each dot +is replaced by an underscore. +Moreover, if the module name has a hyphen, +its prefix up to (and including) the first hyphen is removed. +For instance, if the module name is a.v1-b.c, +the function name will be luaopen_b_c. + + +

      +The fourth searcher tries an all-in-one loader. +It searches the C path for a library for +the root name of the given module. +For instance, when requiring a.b.c, +it will search for a C library for a. +If found, it looks into it for an open function for +the submodule; +in our example, that would be luaopen_a_b_c. +With this facility, a package can pack several C submodules +into one single library, +with each submodule keeping its original open function. + + + + +

      +


      package.loadlib (libname, funcname)

      + + +

      +Dynamically links the host program with the C library libname. +Inside this library, looks for a function funcname +and returns this function as a C function. +(So, funcname must follow the protocol (see lua_CFunction)). + + +

      +This is a low-level function. +It completely bypasses the package and module system. +Unlike require, +it does not perform any path searching and +does not automatically adds extensions. +libname must be the complete file name of the C library, +including if necessary a path and extension. +funcname must be the exact name exported by the C library +(which may depend on the C compiler and linker used). + + +

      +This function is not supported by ANSI C. +As such, it is only available on some platforms +(Windows, Linux, Mac OS X, Solaris, BSD, +plus other Unix systems that support the dlfcn standard). + + + + +

      +


      package.path

      + + +

      +The path used by require to search for a Lua loader. + + +

      +At start-up, Lua initializes this variable with +the value of the environment variable LUA_PATH or +with a default path defined in luaconf.h, +if the environment variable is not defined. +Any ";;" in the value of the environment variable +is replaced by the default path. + + + + +

      +


      package.preload

      + + +

      +A table to store loaders for specific modules +(see require). + + + + +

      +


      package.seeall (module)

      + + +

      +Sets a metatable for module with +its __index field referring to the global environment, +so that this module inherits values +from the global environment. +To be used as an option to function module. + + + + + + + +

      5.4 - String Manipulation

      + +

      +This library provides generic functions for string manipulation, +such as finding and extracting substrings, and pattern matching. +When indexing a string in Lua, the first character is at position 1 +(not at 0, as in C). +Indices are allowed to be negative and are interpreted as indexing backwards, +from the end of the string. +Thus, the last character is at position -1, and so on. + + +

      +The string library provides all its functions inside the table +string. +It also sets a metatable for strings +where the __index field points to the string table. +Therefore, you can use the string functions in object-oriented style. +For instance, string.byte(s, i) +can be written as s:byte(i). + + +

      +The string library assumes one-byte character encodings. + + +

      +


      string.byte (s [, i [, j]])

      +Returns the internal numerical codes of the characters s[i], +s[i+1], ···, s[j]. +The default value for i is 1; +the default value for j is i. + + +

      +Note that numerical codes are not necessarily portable across platforms. + + + + +

      +


      string.char (···)

      +Receives zero or more integers. +Returns a string with length equal to the number of arguments, +in which each character has the internal numerical code equal +to its corresponding argument. + + +

      +Note that numerical codes are not necessarily portable across platforms. + + + + +

      +


      string.dump (function)

      + + +

      +Returns a string containing a binary representation of the given function, +so that a later loadstring on this string returns +a copy of the function. +function must be a Lua function without upvalues. + + + + +

      +


      string.find (s, pattern [, init [, plain]])

      +Looks for the first match of +pattern in the string s. +If it finds a match, then find returns the indices of s +where this occurrence starts and ends; +otherwise, it returns nil. +A third, optional numerical argument init specifies +where to start the search; +its default value is 1 and can be negative. +A value of true as a fourth, optional argument plain +turns off the pattern matching facilities, +so the function does a plain "find substring" operation, +with no characters in pattern being considered "magic". +Note that if plain is given, then init must be given as well. + + +

      +If the pattern has captures, +then in a successful match +the captured values are also returned, +after the two indices. + + + + +

      +


      string.format (formatstring, ···)

      +Returns a formatted version of its variable number of arguments +following the description given in its first argument (which must be a string). +The format string follows the same rules as the printf family of +standard C functions. +The only differences are that the options/modifiers +*, l, L, n, p, +and h are not supported +and that there is an extra option, q. +The q option formats a string in a form suitable to be safely read +back by the Lua interpreter: +the string is written between double quotes, +and all double quotes, newlines, embedded zeros, +and backslashes in the string +are correctly escaped when written. +For instance, the call + +
      +     string.format('%q', 'a string with "quotes" and \n new line')
      +

      +will produce the string: + +

      +     "a string with \"quotes\" and \
      +      new line"
      +
      + +

      +The options c, d, E, e, f, +g, G, i, o, u, X, and x all +expect a number as argument, +whereas q and s expect a string. + + +

      +This function does not accept string values +containing embedded zeros, +except as arguments to the q option. + + + + +

      +


      string.gmatch (s, pattern)

      +Returns an iterator function that, +each time it is called, +returns the next captures from pattern over string s. +If pattern specifies no captures, +then the whole match is produced in each call. + + +

      +As an example, the following loop + +

      +     s = "hello world from Lua"
      +     for w in string.gmatch(s, "%a+") do
      +       print(w)
      +     end
      +

      +will iterate over all the words from string s, +printing one per line. +The next example collects all pairs key=value from the +given string into a table: + +

      +     t = {}
      +     s = "from=world, to=Lua"
      +     for k, v in string.gmatch(s, "(%w+)=(%w+)") do
      +       t[k] = v
      +     end
      +
      + +

      +For this function, a '^' at the start of a pattern does not +work as an anchor, as this would prevent the iteration. + + + + +

      +


      string.gsub (s, pattern, repl [, n])

      +Returns a copy of s +in which all (or the first n, if given) +occurrences of the pattern have been +replaced by a replacement string specified by repl, +which can be a string, a table, or a function. +gsub also returns, as its second value, +the total number of matches that occurred. + + +

      +If repl is a string, then its value is used for replacement. +The character % works as an escape character: +any sequence in repl of the form %n, +with n between 1 and 9, +stands for the value of the n-th captured substring (see below). +The sequence %0 stands for the whole match. +The sequence %% stands for a single %. + + +

      +If repl is a table, then the table is queried for every match, +using the first capture as the key; +if the pattern specifies no captures, +then the whole match is used as the key. + + +

      +If repl is a function, then this function is called every time a +match occurs, with all captured substrings passed as arguments, +in order; +if the pattern specifies no captures, +then the whole match is passed as a sole argument. + + +

      +If the value returned by the table query or by the function call +is a string or a number, +then it is used as the replacement string; +otherwise, if it is false or nil, +then there is no replacement +(that is, the original match is kept in the string). + + +

      +Here are some examples: + +

      +     x = string.gsub("hello world", "(%w+)", "%1 %1")
      +     --> x="hello hello world world"
      +     
      +     x = string.gsub("hello world", "%w+", "%0 %0", 1)
      +     --> x="hello hello world"
      +     
      +     x = string.gsub("hello world from Lua", "(%w+)%s*(%w+)", "%2 %1")
      +     --> x="world hello Lua from"
      +     
      +     x = string.gsub("home = $HOME, user = $USER", "%$(%w+)", os.getenv)
      +     --> x="home = /home/roberto, user = roberto"
      +     
      +     x = string.gsub("4+5 = $return 4+5$", "%$(.-)%$", function (s)
      +           return loadstring(s)()
      +         end)
      +     --> x="4+5 = 9"
      +     
      +     local t = {name="lua", version="5.1"}
      +     x = string.gsub("$name-$version.tar.gz", "%$(%w+)", t)
      +     --> x="lua-5.1.tar.gz"
      +
      + + + +

      +


      string.len (s)

      +Receives a string and returns its length. +The empty string "" has length 0. +Embedded zeros are counted, +so "a\000bc\000" has length 5. + + + + +

      +


      string.lower (s)

      +Receives a string and returns a copy of this string with all +uppercase letters changed to lowercase. +All other characters are left unchanged. +The definition of what an uppercase letter is depends on the current locale. + + + + +

      +


      string.match (s, pattern [, init])

      +Looks for the first match of +pattern in the string s. +If it finds one, then match returns +the captures from the pattern; +otherwise it returns nil. +If pattern specifies no captures, +then the whole match is returned. +A third, optional numerical argument init specifies +where to start the search; +its default value is 1 and can be negative. + + + + +

      +


      string.rep (s, n)

      +Returns a string that is the concatenation of n copies of +the string s. + + + + +

      +


      string.reverse (s)

      +Returns a string that is the string s reversed. + + + + +

      +


      string.sub (s, i [, j])

      +Returns the substring of s that +starts at i and continues until j; +i and j can be negative. +If j is absent, then it is assumed to be equal to -1 +(which is the same as the string length). +In particular, +the call string.sub(s,1,j) returns a prefix of s +with length j, +and string.sub(s, -i) returns a suffix of s +with length i. + + + + +

      +


      string.upper (s)

      +Receives a string and returns a copy of this string with all +lowercase letters changed to uppercase. +All other characters are left unchanged. +The definition of what a lowercase letter is depends on the current locale. + + + +

      5.4.1 - Patterns

      + + +

      Character Class:

      +A character class is used to represent a set of characters. +The following combinations are allowed in describing a character class: + +

        + +
      • x: +(where x is not one of the magic characters +^$()%.[]*+-?) +represents the character x itself. +
      • + +
      • .: (a dot) represents all characters.
      • + +
      • %a: represents all letters.
      • + +
      • %c: represents all control characters.
      • + +
      • %d: represents all digits.
      • + +
      • %l: represents all lowercase letters.
      • + +
      • %p: represents all punctuation characters.
      • + +
      • %s: represents all space characters.
      • + +
      • %u: represents all uppercase letters.
      • + +
      • %w: represents all alphanumeric characters.
      • + +
      • %x: represents all hexadecimal digits.
      • + +
      • %z: represents the character with representation 0.
      • + +
      • %x: (where x is any non-alphanumeric character) +represents the character x. +This is the standard way to escape the magic characters. +Any punctuation character (even the non magic) +can be preceded by a '%' +when used to represent itself in a pattern. +
      • + +
      • [set]: +represents the class which is the union of all +characters in set. +A range of characters can be specified by +separating the end characters of the range with a '-'. +All classes %x described above can also be used as +components in set. +All other characters in set represent themselves. +For example, [%w_] (or [_%w]) +represents all alphanumeric characters plus the underscore, +[0-7] represents the octal digits, +and [0-7%l%-] represents the octal digits plus +the lowercase letters plus the '-' character. + + +

        +The interaction between ranges and classes is not defined. +Therefore, patterns like [%a-z] or [a-%%] +have no meaning. +

      • + +
      • [^set]: +represents the complement of set, +where set is interpreted as above. +
      • + +

      +For all classes represented by single letters (%a, %c, etc.), +the corresponding uppercase letter represents the complement of the class. +For instance, %S represents all non-space characters. + + +

      +The definitions of letter, space, and other character groups +depend on the current locale. +In particular, the class [a-z] may not be equivalent to %l. + + + + + +

      Pattern Item:

      +A pattern item can be + +

        + +
      • +a single character class, +which matches any single character in the class; +
      • + +
      • +a single character class followed by '*', +which matches 0 or more repetitions of characters in the class. +These repetition items will always match the longest possible sequence; +
      • + +
      • +a single character class followed by '+', +which matches 1 or more repetitions of characters in the class. +These repetition items will always match the longest possible sequence; +
      • + +
      • +a single character class followed by '-', +which also matches 0 or more repetitions of characters in the class. +Unlike '*', +these repetition items will always match the shortest possible sequence; +
      • + +
      • +a single character class followed by '?', +which matches 0 or 1 occurrence of a character in the class; +
      • + +
      • +%n, for n between 1 and 9; +such item matches a substring equal to the n-th captured string +(see below); +
      • + +
      • +%bxy, where x and y are two distinct characters; +such item matches strings that start with x, end with y, +and where the x and y are balanced. +This means that, if one reads the string from left to right, +counting +1 for an x and -1 for a y, +the ending y is the first y where the count reaches 0. +For instance, the item %b() matches expressions with +balanced parentheses. +
      • + +
      + + + + +

      Pattern:

      +A pattern is a sequence of pattern items. +A '^' at the beginning of a pattern anchors the match at the +beginning of the subject string. +A '$' at the end of a pattern anchors the match at the +end of the subject string. +At other positions, +'^' and '$' have no special meaning and represent themselves. + + + + + +

      Captures:

      +A pattern can contain sub-patterns enclosed in parentheses; +they describe captures. +When a match succeeds, the substrings of the subject string +that match captures are stored (captured) for future use. +Captures are numbered according to their left parentheses. +For instance, in the pattern "(a*(.)%w(%s*))", +the part of the string matching "a*(.)%w(%s*)" is +stored as the first capture (and therefore has number 1); +the character matching "." is captured with number 2, +and the part matching "%s*" has number 3. + + +

      +As a special case, the empty capture () captures +the current string position (a number). +For instance, if we apply the pattern "()aa()" on the +string "flaaap", there will be two captures: 3 and 5. + + +

      +A pattern cannot contain embedded zeros. Use %z instead. + + + + + + + + + + + +

      5.5 - Table Manipulation

      +This library provides generic functions for table manipulation. +It provides all its functions inside the table table. + + +

      +Most functions in the table library assume that the table +represents an array or a list. +For these functions, when we talk about the "length" of a table +we mean the result of the length operator. + + +

      +


      table.concat (table [, sep [, i [, j]]])

      +Given an array where all elements are strings or numbers, +returns table[i]..sep..table[i+1] ··· sep..table[j]. +The default value for sep is the empty string, +the default for i is 1, +and the default for j is the length of the table. +If i is greater than j, returns the empty string. + + + + +

      +


      table.insert (table, [pos,] value)

      + + +

      +Inserts element value at position pos in table, +shifting up other elements to open space, if necessary. +The default value for pos is n+1, +where n is the length of the table (see §2.5.5), +so that a call table.insert(t,x) inserts x at the end +of table t. + + + + +

      +


      table.maxn (table)

      + + +

      +Returns the largest positive numerical index of the given table, +or zero if the table has no positive numerical indices. +(To do its job this function does a linear traversal of +the whole table.) + + + + +

      +


      table.remove (table [, pos])

      + + +

      +Removes from table the element at position pos, +shifting down other elements to close the space, if necessary. +Returns the value of the removed element. +The default value for pos is n, +where n is the length of the table, +so that a call table.remove(t) removes the last element +of table t. + + + + +

      +


      table.sort (table [, comp])

      +Sorts table elements in a given order, in-place, +from table[1] to table[n], +where n is the length of the table. +If comp is given, +then it must be a function that receives two table elements, +and returns true +when the first is less than the second +(so that not comp(a[i+1],a[i]) will be true after the sort). +If comp is not given, +then the standard Lua operator < is used instead. + + +

      +The sort algorithm is not stable; +that is, elements considered equal by the given order +may have their relative positions changed by the sort. + + + + + + + +

      5.6 - Mathematical Functions

      + +

      +This library is an interface to the standard C math library. +It provides all its functions inside the table math. + + +

      +


      math.abs (x)

      + + +

      +Returns the absolute value of x. + + + + +

      +


      math.acos (x)

      + + +

      +Returns the arc cosine of x (in radians). + + + + +

      +


      math.asin (x)

      + + +

      +Returns the arc sine of x (in radians). + + + + +

      +


      math.atan (x)

      + + +

      +Returns the arc tangent of x (in radians). + + + + +

      +


      math.atan2 (y, x)

      + + +

      +Returns the arc tangent of y/x (in radians), +but uses the signs of both parameters to find the +quadrant of the result. +(It also handles correctly the case of x being zero.) + + + + +

      +


      math.ceil (x)

      + + +

      +Returns the smallest integer larger than or equal to x. + + + + +

      +


      math.cos (x)

      + + +

      +Returns the cosine of x (assumed to be in radians). + + + + +

      +


      math.cosh (x)

      + + +

      +Returns the hyperbolic cosine of x. + + + + +

      +


      math.deg (x)

      + + +

      +Returns the angle x (given in radians) in degrees. + + + + +

      +


      math.exp (x)

      + + +

      +Returns the value ex. + + + + +

      +


      math.floor (x)

      + + +

      +Returns the largest integer smaller than or equal to x. + + + + +

      +


      math.fmod (x, y)

      + + +

      +Returns the remainder of the division of x by y +that rounds the quotient towards zero. + + + + +

      +


      math.frexp (x)

      + + +

      +Returns m and e such that x = m2e, +e is an integer and the absolute value of m is +in the range [0.5, 1) +(or zero when x is zero). + + + + +

      +


      math.huge

      + + +

      +The value HUGE_VAL, +a value larger than or equal to any other numerical value. + + + + +

      +


      math.ldexp (m, e)

      + + +

      +Returns m2e (e should be an integer). + + + + +

      +


      math.log (x)

      + + +

      +Returns the natural logarithm of x. + + + + +

      +


      math.log10 (x)

      + + +

      +Returns the base-10 logarithm of x. + + + + +

      +


      math.max (x, ···)

      + + +

      +Returns the maximum value among its arguments. + + + + +

      +


      math.min (x, ···)

      + + +

      +Returns the minimum value among its arguments. + + + + +

      +


      math.modf (x)

      + + +

      +Returns two numbers, +the integral part of x and the fractional part of x. + + + + +

      +


      math.pi

      + + +

      +The value of pi. + + + + +

      +


      math.pow (x, y)

      + + +

      +Returns xy. +(You can also use the expression x^y to compute this value.) + + + + +

      +


      math.rad (x)

      + + +

      +Returns the angle x (given in degrees) in radians. + + + + +

      +


      math.random ([m [, n]])

      + + +

      +This function is an interface to the simple +pseudo-random generator function rand provided by ANSI C. +(No guarantees can be given for its statistical properties.) + + +

      +When called without arguments, +returns a uniform pseudo-random real number +in the range [0,1). +When called with an integer number m, +math.random returns +a uniform pseudo-random integer in the range [1, m]. +When called with two integer numbers m and n, +math.random returns a uniform pseudo-random +integer in the range [m, n]. + + + + +

      +


      math.randomseed (x)

      + + +

      +Sets x as the "seed" +for the pseudo-random generator: +equal seeds produce equal sequences of numbers. + + + + +

      +


      math.sin (x)

      + + +

      +Returns the sine of x (assumed to be in radians). + + + + +

      +


      math.sinh (x)

      + + +

      +Returns the hyperbolic sine of x. + + + + +

      +


      math.sqrt (x)

      + + +

      +Returns the square root of x. +(You can also use the expression x^0.5 to compute this value.) + + + + +

      +


      math.tan (x)

      + + +

      +Returns the tangent of x (assumed to be in radians). + + + + +

      +


      math.tanh (x)

      + + +

      +Returns the hyperbolic tangent of x. + + + + + + + +

      5.7 - Input and Output Facilities

      + +

      +The I/O library provides two different styles for file manipulation. +The first one uses implicit file descriptors; +that is, there are operations to set a default input file and a +default output file, +and all input/output operations are over these default files. +The second style uses explicit file descriptors. + + +

      +When using implicit file descriptors, +all operations are supplied by table io. +When using explicit file descriptors, +the operation io.open returns a file descriptor +and then all operations are supplied as methods of the file descriptor. + + +

      +The table io also provides +three predefined file descriptors with their usual meanings from C: +io.stdin, io.stdout, and io.stderr. +The I/O library never closes these files. + + +

      +Unless otherwise stated, +all I/O functions return nil on failure +(plus an error message as a second result and +a system-dependent error code as a third result) +and some value different from nil on success. + + +

      +


      io.close ([file])

      + + +

      +Equivalent to file:close(). +Without a file, closes the default output file. + + + + +

      +


      io.flush ()

      + + +

      +Equivalent to file:flush over the default output file. + + + + +

      +


      io.input ([file])

      + + +

      +When called with a file name, it opens the named file (in text mode), +and sets its handle as the default input file. +When called with a file handle, +it simply sets this file handle as the default input file. +When called without parameters, +it returns the current default input file. + + +

      +In case of errors this function raises the error, +instead of returning an error code. + + + + +

      +


      io.lines ([filename])

      + + +

      +Opens the given file name in read mode +and returns an iterator function that, +each time it is called, +returns a new line from the file. +Therefore, the construction + +

      +     for line in io.lines(filename) do body end
      +

      +will iterate over all lines of the file. +When the iterator function detects the end of file, +it returns nil (to finish the loop) and automatically closes the file. + + +

      +The call io.lines() (with no file name) is equivalent +to io.input():lines(); +that is, it iterates over the lines of the default input file. +In this case it does not close the file when the loop ends. + + + + +

      +


      io.open (filename [, mode])

      + + +

      +This function opens a file, +in the mode specified in the string mode. +It returns a new file handle, +or, in case of errors, nil plus an error message. + + +

      +The mode string can be any of the following: + +

        +
      • "r": read mode (the default);
      • +
      • "w": write mode;
      • +
      • "a": append mode;
      • +
      • "r+": update mode, all previous data is preserved;
      • +
      • "w+": update mode, all previous data is erased;
      • +
      • "a+": append update mode, previous data is preserved, + writing is only allowed at the end of file.
      • +

      +The mode string can also have a 'b' at the end, +which is needed in some systems to open the file in binary mode. +This string is exactly what is used in the +standard C function fopen. + + + + +

      +


      io.output ([file])

      + + +

      +Similar to io.input, but operates over the default output file. + + + + +

      +


      io.popen (prog [, mode])

      + + +

      +Starts program prog in a separated process and returns +a file handle that you can use to read data from this program +(if mode is "r", the default) +or to write data to this program +(if mode is "w"). + + +

      +This function is system dependent and is not available +on all platforms. + + + + +

      +


      io.read (···)

      + + +

      +Equivalent to io.input():read. + + + + +

      +


      io.tmpfile ()

      + + +

      +Returns a handle for a temporary file. +This file is opened in update mode +and it is automatically removed when the program ends. + + + + +

      +


      io.type (obj)

      + + +

      +Checks whether obj is a valid file handle. +Returns the string "file" if obj is an open file handle, +"closed file" if obj is a closed file handle, +or nil if obj is not a file handle. + + + + +

      +


      io.write (···)

      + + +

      +Equivalent to io.output():write. + + + + +

      +


      file:close ()

      + + +

      +Closes file. +Note that files are automatically closed when +their handles are garbage collected, +but that takes an unpredictable amount of time to happen. + + + + +

      +


      file:flush ()

      + + +

      +Saves any written data to file. + + + + +

      +


      file:lines ()

      + + +

      +Returns an iterator function that, +each time it is called, +returns a new line from the file. +Therefore, the construction + +

      +     for line in file:lines() do body end
      +

      +will iterate over all lines of the file. +(Unlike io.lines, this function does not close the file +when the loop ends.) + + + + +

      +


      file:read (···)

      + + +

      +Reads the file file, +according to the given formats, which specify what to read. +For each format, +the function returns a string (or a number) with the characters read, +or nil if it cannot read data with the specified format. +When called without formats, +it uses a default format that reads the entire next line +(see below). + + +

      +The available formats are + +

        + +
      • "*n": +reads a number; +this is the only format that returns a number instead of a string. +
      • + +
      • "*a": +reads the whole file, starting at the current position. +On end of file, it returns the empty string. +
      • + +
      • "*l": +reads the next line (skipping the end of line), +returning nil on end of file. +This is the default format. +
      • + +
      • number: +reads a string with up to this number of characters, +returning nil on end of file. +If number is zero, +it reads nothing and returns an empty string, +or nil on end of file. +
      • + +
      + + + +

      +


      file:seek ([whence] [, offset])

      + + +

      +Sets and gets the file position, +measured from the beginning of the file, +to the position given by offset plus a base +specified by the string whence, as follows: + +

        +
      • "set": base is position 0 (beginning of the file);
      • +
      • "cur": base is current position;
      • +
      • "end": base is end of file;
      • +

      +In case of success, function seek returns the final file position, +measured in bytes from the beginning of the file. +If this function fails, it returns nil, +plus a string describing the error. + + +

      +The default value for whence is "cur", +and for offset is 0. +Therefore, the call file:seek() returns the current +file position, without changing it; +the call file:seek("set") sets the position to the +beginning of the file (and returns 0); +and the call file:seek("end") sets the position to the +end of the file, and returns its size. + + + + +

      +


      file:setvbuf (mode [, size])

      + + +

      +Sets the buffering mode for an output file. +There are three available modes: + +

        + +
      • "no": +no buffering; the result of any output operation appears immediately. +
      • + +
      • "full": +full buffering; output operation is performed only +when the buffer is full (or when you explicitly flush the file +(see io.flush)). +
      • + +
      • "line": +line buffering; output is buffered until a newline is output +or there is any input from some special files +(such as a terminal device). +
      • + +

      +For the last two cases, size +specifies the size of the buffer, in bytes. +The default is an appropriate size. + + + + +

      +


      file:write (···)

      + + +

      +Writes the value of each of its arguments to +the file. +The arguments must be strings or numbers. +To write other values, +use tostring or string.format before write. + + + + + + + +

      5.8 - Operating System Facilities

      + +

      +This library is implemented through table os. + + +

      +


      os.clock ()

      + + +

      +Returns an approximation of the amount in seconds of CPU time +used by the program. + + + + +

      +


      os.date ([format [, time]])

      + + +

      +Returns a string or a table containing date and time, +formatted according to the given string format. + + +

      +If the time argument is present, +this is the time to be formatted +(see the os.time function for a description of this value). +Otherwise, date formats the current time. + + +

      +If format starts with '!', +then the date is formatted in Coordinated Universal Time. +After this optional character, +if format is the string "*t", +then date returns a table with the following fields: +year (four digits), month (1--12), day (1--31), +hour (0--23), min (0--59), sec (0--61), +wday (weekday, Sunday is 1), +yday (day of the year), +and isdst (daylight saving flag, a boolean). + + +

      +If format is not "*t", +then date returns the date as a string, +formatted according to the same rules as the C function strftime. + + +

      +When called without arguments, +date returns a reasonable date and time representation that depends on +the host system and on the current locale +(that is, os.date() is equivalent to os.date("%c")). + + + + +

      +


      os.difftime (t2, t1)

      + + +

      +Returns the number of seconds from time t1 to time t2. +In POSIX, Windows, and some other systems, +this value is exactly t2-t1. + + + + +

      +


      os.execute ([command])

      + + +

      +This function is equivalent to the C function system. +It passes command to be executed by an operating system shell. +It returns a status code, which is system-dependent. +If command is absent, then it returns nonzero if a shell is available +and zero otherwise. + + + + +

      +


      os.exit ([code])

      + + +

      +Calls the C function exit, +with an optional code, +to terminate the host program. +The default value for code is the success code. + + + + +

      +


      os.getenv (varname)

      + + +

      +Returns the value of the process environment variable varname, +or nil if the variable is not defined. + + + + +

      +


      os.remove (filename)

      + + +

      +Deletes the file or directory with the given name. +Directories must be empty to be removed. +If this function fails, it returns nil, +plus a string describing the error. + + + + +

      +


      os.rename (oldname, newname)

      + + +

      +Renames file or directory named oldname to newname. +If this function fails, it returns nil, +plus a string describing the error. + + + + +

      +


      os.setlocale (locale [, category])

      + + +

      +Sets the current locale of the program. +locale is a string specifying a locale; +category is an optional string describing which category to change: +"all", "collate", "ctype", +"monetary", "numeric", or "time"; +the default category is "all". +The function returns the name of the new locale, +or nil if the request cannot be honored. + + +

      +If locale is the empty string, +the current locale is set to an implementation-defined native locale. +If locale is the string "C", +the current locale is set to the standard C locale. + + +

      +When called with nil as the first argument, +this function only returns the name of the current locale +for the given category. + + + + +

      +


      os.time ([table])

      + + +

      +Returns the current time when called without arguments, +or a time representing the date and time specified by the given table. +This table must have fields year, month, and day, +and may have fields hour, min, sec, and isdst +(for a description of these fields, see the os.date function). + + +

      +The returned value is a number, whose meaning depends on your system. +In POSIX, Windows, and some other systems, this number counts the number +of seconds since some given start time (the "epoch"). +In other systems, the meaning is not specified, +and the number returned by time can be used only as an argument to +date and difftime. + + + + +

      +


      os.tmpname ()

      + + +

      +Returns a string with a file name that can +be used for a temporary file. +The file must be explicitly opened before its use +and explicitly removed when no longer needed. + + +

      +On some systems (POSIX), +this function also creates a file with that name, +to avoid security risks. +(Someone else might create the file with wrong permissions +in the time between getting the name and creating the file.) +You still have to open the file to use it +and to remove it (even if you do not use it). + + +

      +When possible, +you may prefer to use io.tmpfile, +which automatically removes the file when the program ends. + + + + + + + +

      5.9 - The Debug Library

      + +

      +This library provides +the functionality of the debug interface to Lua programs. +You should exert care when using this library. +The functions provided here should be used exclusively for debugging +and similar tasks, such as profiling. +Please resist the temptation to use them as a +usual programming tool: +they can be very slow. +Moreover, several of these functions +violate some assumptions about Lua code +(e.g., that variables local to a function +cannot be accessed from outside or +that userdata metatables cannot be changed by Lua code) +and therefore can compromise otherwise secure code. + + +

      +All functions in this library are provided +inside the debug table. +All functions that operate over a thread +have an optional first argument which is the +thread to operate over. +The default is always the current thread. + + +

      +


      debug.debug ()

      + + +

      +Enters an interactive mode with the user, +running each string that the user enters. +Using simple commands and other debug facilities, +the user can inspect global and local variables, +change their values, evaluate expressions, and so on. +A line containing only the word cont finishes this function, +so that the caller continues its execution. + + +

      +Note that commands for debug.debug are not lexically nested +within any function, and so have no direct access to local variables. + + + + +

      +


      debug.getfenv (o)

      +Returns the environment of object o. + + + + +

      +


      debug.gethook ([thread])

      + + +

      +Returns the current hook settings of the thread, as three values: +the current hook function, the current hook mask, +and the current hook count +(as set by the debug.sethook function). + + + + +

      +


      debug.getinfo ([thread,] function [, what])

      + + +

      +Returns a table with information about a function. +You can give the function directly, +or you can give a number as the value of function, +which means the function running at level function of the call stack +of the given thread: +level 0 is the current function (getinfo itself); +level 1 is the function that called getinfo; +and so on. +If function is a number larger than the number of active functions, +then getinfo returns nil. + + +

      +The returned table can contain all the fields returned by lua_getinfo, +with the string what describing which fields to fill in. +The default for what is to get all information available, +except the table of valid lines. +If present, +the option 'f' +adds a field named func with the function itself. +If present, +the option 'L' +adds a field named activelines with the table of +valid lines. + + +

      +For instance, the expression debug.getinfo(1,"n").name returns +a table with a name for the current function, +if a reasonable name can be found, +and the expression debug.getinfo(print) +returns a table with all available information +about the print function. + + + + +

      +


      debug.getlocal ([thread,] level, local)

      + + +

      +This function returns the name and the value of the local variable +with index local of the function at level level of the stack. +(The first parameter or local variable has index 1, and so on, +until the last active local variable.) +The function returns nil if there is no local +variable with the given index, +and raises an error when called with a level out of range. +(You can call debug.getinfo to check whether the level is valid.) + + +

      +Variable names starting with '(' (open parentheses) +represent internal variables +(loop control variables, temporaries, and C function locals). + + + + +

      +


      debug.getmetatable (object)

      + + +

      +Returns the metatable of the given object +or nil if it does not have a metatable. + + + + +

      +


      debug.getregistry ()

      + + +

      +Returns the registry table (see §3.5). + + + + +

      +


      debug.getupvalue (func, up)

      + + +

      +This function returns the name and the value of the upvalue +with index up of the function func. +The function returns nil if there is no upvalue with the given index. + + + + +

      +


      debug.setfenv (object, table)

      + + +

      +Sets the environment of the given object to the given table. +Returns object. + + + + +

      +


      debug.sethook ([thread,] hook, mask [, count])

      + + +

      +Sets the given function as a hook. +The string mask and the number count describe +when the hook will be called. +The string mask may have the following characters, +with the given meaning: + +

        +
      • "c": the hook is called every time Lua calls a function;
      • +
      • "r": the hook is called every time Lua returns from a function;
      • +
      • "l": the hook is called every time Lua enters a new line of code.
      • +

      +With a count different from zero, +the hook is called after every count instructions. + + +

      +When called without arguments, +debug.sethook turns off the hook. + + +

      +When the hook is called, its first parameter is a string +describing the event that has triggered its call: +"call", "return" (or "tail return", +when simulating a return from a tail call), +"line", and "count". +For line events, +the hook also gets the new line number as its second parameter. +Inside a hook, +you can call getinfo with level 2 to get more information about +the running function +(level 0 is the getinfo function, +and level 1 is the hook function), +unless the event is "tail return". +In this case, Lua is only simulating the return, +and a call to getinfo will return invalid data. + + + + +

      +


      debug.setlocal ([thread,] level, local, value)

      + + +

      +This function assigns the value value to the local variable +with index local of the function at level level of the stack. +The function returns nil if there is no local +variable with the given index, +and raises an error when called with a level out of range. +(You can call getinfo to check whether the level is valid.) +Otherwise, it returns the name of the local variable. + + + + +

      +


      debug.setmetatable (object, table)

      + + +

      +Sets the metatable for the given object to the given table +(which can be nil). + + + + +

      +


      debug.setupvalue (func, up, value)

      + + +

      +This function assigns the value value to the upvalue +with index up of the function func. +The function returns nil if there is no upvalue +with the given index. +Otherwise, it returns the name of the upvalue. + + + + +

      +


      debug.traceback ([thread,] [message] [, level])

      + + +

      +Returns a string with a traceback of the call stack. +An optional message string is appended +at the beginning of the traceback. +An optional level number tells at which level +to start the traceback +(default is 1, the function calling traceback). + + + + + + + +

      6 - Lua Stand-alone

      + +

      +Although Lua has been designed as an extension language, +to be embedded in a host C program, +it is also frequently used as a stand-alone language. +An interpreter for Lua as a stand-alone language, +called simply lua, +is provided with the standard distribution. +The stand-alone interpreter includes +all standard libraries, including the debug library. +Its usage is: + +

      +     lua [options] [script [args]]
      +

      +The options are: + +

        +
      • -e stat: executes string stat;
      • +
      • -l mod: "requires" mod;
      • +
      • -i: enters interactive mode after running script;
      • +
      • -v: prints version information;
      • +
      • --: stops handling options;
      • +
      • -: executes stdin as a file and stops handling options.
      • +

      +After handling its options, lua runs the given script, +passing to it the given args as string arguments. +When called without arguments, +lua behaves as lua -v -i +when the standard input (stdin) is a terminal, +and as lua - otherwise. + + +

      +Before running any argument, +the interpreter checks for an environment variable LUA_INIT. +If its format is @filename, +then lua executes the file. +Otherwise, lua executes the string itself. + + +

      +All options are handled in order, except -i. +For instance, an invocation like + +

      +     $ lua -e'a=1' -e 'print(a)' script.lua
      +

      +will first set a to 1, then print the value of a (which is '1'), +and finally run the file script.lua with no arguments. +(Here $ is the shell prompt. Your prompt may be different.) + + +

      +Before starting to run the script, +lua collects all arguments in the command line +in a global table called arg. +The script name is stored at index 0, +the first argument after the script name goes to index 1, +and so on. +Any arguments before the script name +(that is, the interpreter name plus the options) +go to negative indices. +For instance, in the call + +

      +     $ lua -la b.lua t1 t2
      +

      +the interpreter first runs the file a.lua, +then creates a table + +

      +     arg = { [-2] = "lua", [-1] = "-la",
      +             [0] = "b.lua",
      +             [1] = "t1", [2] = "t2" }
      +

      +and finally runs the file b.lua. +The script is called with arg[1], arg[2], ··· +as arguments; +it can also access these arguments with the vararg expression '...'. + + +

      +In interactive mode, +if you write an incomplete statement, +the interpreter waits for its completion +by issuing a different prompt. + + +

      +If the global variable _PROMPT contains a string, +then its value is used as the prompt. +Similarly, if the global variable _PROMPT2 contains a string, +its value is used as the secondary prompt +(issued during incomplete statements). +Therefore, both prompts can be changed directly on the command line +or in any Lua programs by assigning to _PROMPT. +See the next example: + +

      +     $ lua -e"_PROMPT='myprompt> '" -i
      +

      +(The outer pair of quotes is for the shell, +the inner pair is for Lua.) +Note the use of -i to enter interactive mode; +otherwise, +the program would just end silently +right after the assignment to _PROMPT. + + +

      +To allow the use of Lua as a +script interpreter in Unix systems, +the stand-alone interpreter skips +the first line of a chunk if it starts with #. +Therefore, Lua scripts can be made into executable programs +by using chmod +x and the #! form, +as in + +

      +     #!/usr/local/bin/lua
      +

      +(Of course, +the location of the Lua interpreter may be different in your machine. +If lua is in your PATH, +then + +

      +     #!/usr/bin/env lua
      +

      +is a more portable solution.) + + + +

      7 - Incompatibilities with the Previous Version

      + +

      +Here we list the incompatibilities that you may find when moving a program +from Lua 5.0 to Lua 5.1. +You can avoid most of the incompatibilities compiling Lua with +appropriate options (see file luaconf.h). +However, +all these compatibility options will be removed in the next version of Lua. + + + +

      7.1 - Changes in the Language

      +
        + +
      • +The vararg system changed from the pseudo-argument arg with a +table with the extra arguments to the vararg expression. +(See compile-time option LUA_COMPAT_VARARG in luaconf.h.) +
      • + +
      • +There was a subtle change in the scope of the implicit +variables of the for statement and for the repeat statement. +
      • + +
      • +The long string/long comment syntax ([[string]]) +does not allow nesting. +You can use the new syntax ([=[string]=]) in these cases. +(See compile-time option LUA_COMPAT_LSTR in luaconf.h.) +
      • + +
      + + + + +

      7.2 - Changes in the Libraries

      +
        + +
      • +Function string.gfind was renamed string.gmatch. +(See compile-time option LUA_COMPAT_GFIND in luaconf.h.) +
      • + +
      • +When string.gsub is called with a function as its +third argument, +whenever this function returns nil or false the +replacement string is the whole match, +instead of the empty string. +
      • + +
      • +Function table.setn was deprecated. +Function table.getn corresponds +to the new length operator (#); +use the operator instead of the function. +(See compile-time option LUA_COMPAT_GETN in luaconf.h.) +
      • + +
      • +Function loadlib was renamed package.loadlib. +(See compile-time option LUA_COMPAT_LOADLIB in luaconf.h.) +
      • + +
      • +Function math.mod was renamed math.fmod. +(See compile-time option LUA_COMPAT_MOD in luaconf.h.) +
      • + +
      • +Functions table.foreach and table.foreachi are deprecated. +You can use a for loop with pairs or ipairs instead. +
      • + +
      • +There were substantial changes in function require due to +the new module system. +However, the new behavior is mostly compatible with the old, +but require gets the path from package.path instead +of from LUA_PATH. +
      • + +
      • +Function collectgarbage has different arguments. +Function gcinfo is deprecated; +use collectgarbage("count") instead. +
      • + +
      + + + + +

      7.3 - Changes in the API

      +
        + +
      • +The luaopen_* functions (to open libraries) +cannot be called directly, +like a regular C function. +They must be called through Lua, +like a Lua function. +
      • + +
      • +Function lua_open was replaced by lua_newstate to +allow the user to set a memory-allocation function. +You can use luaL_newstate from the standard library to +create a state with a standard allocation function +(based on realloc). +
      • + +
      • +Functions luaL_getn and luaL_setn +(from the auxiliary library) are deprecated. +Use lua_objlen instead of luaL_getn +and nothing instead of luaL_setn. +
      • + +
      • +Function luaL_openlib was replaced by luaL_register. +
      • + +
      • +Function luaL_checkudata now throws an error when the given value +is not a userdata of the expected type. +(In Lua 5.0 it returned NULL.) +
      • + +
      + + + + +

      8 - The Complete Syntax of Lua

      + +

      +Here is the complete syntax of Lua in extended BNF. +(It does not describe operator precedences.) + + + + +

      +
      +	chunk ::= {stat [`;´]} [laststat [`;´]]
      +
      +	block ::= chunk
      +
      +	stat ::=  varlist `=´ explist | 
      +		 functioncall | 
      +		 do block end | 
      +		 while exp do block end | 
      +		 repeat block until exp | 
      +		 if exp then block {elseif exp then block} [else block] end | 
      +		 for Name `=´ exp `,´ exp [`,´ exp] do block end | 
      +		 for namelist in explist do block end | 
      +		 function funcname funcbody | 
      +		 local function Name funcbody | 
      +		 local namelist [`=´ explist] 
      +
      +	laststat ::= return [explist] | break
      +
      +	funcname ::= Name {`.´ Name} [`:´ Name]
      +
      +	varlist ::= var {`,´ var}
      +
      +	var ::=  Name | prefixexp `[´ exp `]´ | prefixexp `.´ Name 
      +
      +	namelist ::= Name {`,´ Name}
      +
      +	explist ::= {exp `,´} exp
      +
      +	exp ::=  nil | false | true | Number | String | `...´ | function | 
      +		 prefixexp | tableconstructor | exp binop exp | unop exp 
      +
      +	prefixexp ::= var | functioncall | `(´ exp `)´
      +
      +	functioncall ::=  prefixexp args | prefixexp `:´ Name args 
      +
      +	args ::=  `(´ [explist] `)´ | tableconstructor | String 
      +
      +	function ::= function funcbody
      +
      +	funcbody ::= `(´ [parlist] `)´ block end
      +
      +	parlist ::= namelist [`,´ `...´] | `...´
      +
      +	tableconstructor ::= `{´ [fieldlist] `}´
      +
      +	fieldlist ::= field {fieldsep field} [fieldsep]
      +
      +	field ::= `[´ exp `]´ `=´ exp | Name `=´ exp | exp
      +
      +	fieldsep ::= `,´ | `;´
      +
      +	binop ::= `+´ | `-´ | `*´ | `/´ | `^´ | `%´ | `..´ | 
      +		 `<´ | `<=´ | `>´ | `>=´ | `==´ | `~=´ | 
      +		 and | or
      +
      +	unop ::= `-´ | not | `#´
      +
      +
      + +

      + + + + + + + +


      + +Last update: +Mon Aug 18 13:25:46 BRT 2008 + + + + + diff --git a/mk/linux/mojosetup/lua/doc/readme.html b/mk/linux/mojosetup/lua/doc/readme.html new file mode 100644 index 00000000..38be6dbb --- /dev/null +++ b/mk/linux/mojosetup/lua/doc/readme.html @@ -0,0 +1,40 @@ + + +Lua documentation + + + + + +
      +

      +Lua +Documentation +

      + +This is the documentation included in the source distribution of Lua 5.1.4. + + + +Lua's +official web site +contains updated documentation, +especially the +reference manual. +

      + +


      + +Last update: +Tue Aug 12 14:46:07 BRT 2008 + + + + diff --git a/mk/linux/mojosetup/lua/etc/Makefile b/mk/linux/mojosetup/lua/etc/Makefile new file mode 100644 index 00000000..6d00008d --- /dev/null +++ b/mk/linux/mojosetup/lua/etc/Makefile @@ -0,0 +1,44 @@ +# makefile for Lua etc + +TOP= .. +LIB= $(TOP)/src +INC= $(TOP)/src +BIN= $(TOP)/src +SRC= $(TOP)/src +TST= $(TOP)/test + +CC= gcc +CFLAGS= -O2 -Wall -I$(INC) $(MYCFLAGS) +MYCFLAGS= +MYLDFLAGS= -Wl,-E +MYLIBS= -lm +#MYLIBS= -lm -Wl,-E -ldl -lreadline -lhistory -lncurses +RM= rm -f + +default: + @echo 'Please choose a target: min noparser one strict clean' + +min: min.c + $(CC) $(CFLAGS) $@.c -L$(LIB) -llua $(MYLIBS) + echo 'print"Hello there!"' | ./a.out + +noparser: noparser.o + $(CC) noparser.o $(SRC)/lua.o -L$(LIB) -llua $(MYLIBS) + $(BIN)/luac $(TST)/hello.lua + -./a.out luac.out + -./a.out -e'a=1' + +one: + $(CC) $(CFLAGS) all.c $(MYLIBS) + ./a.out $(TST)/hello.lua + +strict: + -$(BIN)/lua -e 'print(a);b=2' + -$(BIN)/lua -lstrict -e 'print(a)' + -$(BIN)/lua -e 'function f() b=2 end f()' + -$(BIN)/lua -lstrict -e 'function f() b=2 end f()' + +clean: + $(RM) a.out core core.* *.o luac.out + +.PHONY: default min noparser one strict clean diff --git a/mk/linux/mojosetup/lua/etc/README b/mk/linux/mojosetup/lua/etc/README new file mode 100644 index 00000000..5149fc91 --- /dev/null +++ b/mk/linux/mojosetup/lua/etc/README @@ -0,0 +1,37 @@ +This directory contains some useful files and code. +Unlike the code in ../src, everything here is in the public domain. + +If any of the makes fail, you're probably not using the same libraries +used to build Lua. Set MYLIBS in Makefile accordingly. + +all.c + Full Lua interpreter in a single file. + Do "make one" for a demo. + +lua.hpp + Lua header files for C++ using 'extern "C"'. + +lua.ico + A Lua icon for Windows (and web sites: save as favicon.ico). + Drawn by hand by Markus Gritsch . + +lua.pc + pkg-config data for Lua + +luavs.bat + Script to build Lua under "Visual Studio .NET Command Prompt". + Run it from the toplevel as etc\luavs.bat. + +min.c + A minimal Lua interpreter. + Good for learning and for starting your own. + Do "make min" for a demo. + +noparser.c + Linking with noparser.o avoids loading the parsing modules in lualib.a. + Do "make noparser" for a demo. + +strict.lua + Traps uses of undeclared global variables. + Do "make strict" for a demo. + diff --git a/mk/linux/mojosetup/lua/etc/all.c b/mk/linux/mojosetup/lua/etc/all.c new file mode 100644 index 00000000..dab68fac --- /dev/null +++ b/mk/linux/mojosetup/lua/etc/all.c @@ -0,0 +1,38 @@ +/* +* all.c -- Lua core, libraries and interpreter in a single file +*/ + +#define luaall_c + +#include "lapi.c" +#include "lcode.c" +#include "ldebug.c" +#include "ldo.c" +#include "ldump.c" +#include "lfunc.c" +#include "lgc.c" +#include "llex.c" +#include "lmem.c" +#include "lobject.c" +#include "lopcodes.c" +#include "lparser.c" +#include "lstate.c" +#include "lstring.c" +#include "ltable.c" +#include "ltm.c" +#include "lundump.c" +#include "lvm.c" +#include "lzio.c" + +#include "lauxlib.c" +#include "lbaselib.c" +#include "ldblib.c" +#include "liolib.c" +#include "linit.c" +#include "lmathlib.c" +#include "loadlib.c" +#include "loslib.c" +#include "lstrlib.c" +#include "ltablib.c" + +#include "lua.c" diff --git a/mk/linux/mojosetup/lua/etc/lua.hpp b/mk/linux/mojosetup/lua/etc/lua.hpp new file mode 100644 index 00000000..ec417f59 --- /dev/null +++ b/mk/linux/mojosetup/lua/etc/lua.hpp @@ -0,0 +1,9 @@ +// lua.hpp +// Lua header files for C++ +// <> not supplied automatically because Lua also compiles as C++ + +extern "C" { +#include "lua.h" +#include "lualib.h" +#include "lauxlib.h" +} diff --git a/mk/linux/mojosetup/lua/etc/lua.ico b/mk/linux/mojosetup/lua/etc/lua.ico new file mode 100644 index 0000000000000000000000000000000000000000..ccbabc4e2004683f29598a991006d7caff6d837d GIT binary patch literal 1078 zcma)5y>7xl4E|D3VJbX9VX7GW1~6FSw!BIQq_T0tNo32b^bxZ4H5fZGR7xh?&v!Y3 zDh3=J`#b+#Yy%W{!g4u>(a#g`Mme7+yefc~5wPOflDr`o81qe{?|t$BfABsDzNw;V z8cH*0{6W<;G9Np#7ik(qoR4aR5-A@{5)}DJ9&}FRBA#X_5+im4-kQSzMF^)-t2(Vi ztw-^|Sn8@O_lM9`oos+0wMZGt&`Bq(aK&XCv1Gfr&Jtd6%lKPdD{s=unqGWyb3%y{X9SS{jB~HMh0oKMISQrDC zJ;K?)>ElnpmN^UNE-rXxtyk{c#rCe~`P=qnFT7 bCxwx*w%~s~=?o*z_6Fk4@7l(poWF`cPpA(! literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/lua/etc/lua.pc b/mk/linux/mojosetup/lua/etc/lua.pc new file mode 100644 index 00000000..f52f55b0 --- /dev/null +++ b/mk/linux/mojosetup/lua/etc/lua.pc @@ -0,0 +1,31 @@ +# lua.pc -- pkg-config data for Lua + +# vars from install Makefile + +# grep '^V=' ../Makefile +V= 5.1 +# grep '^R=' ../Makefile +R= 5.1.4 + +# grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/' +prefix= /usr/local +INSTALL_BIN= ${prefix}/bin +INSTALL_INC= ${prefix}/include +INSTALL_LIB= ${prefix}/lib +INSTALL_MAN= ${prefix}/man/man1 +INSTALL_LMOD= ${prefix}/share/lua/${V} +INSTALL_CMOD= ${prefix}/lib/lua/${V} + +# canonical vars +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: Lua +Description: An Extensible Extension Language +Version: ${R} +Requires: +Libs: -L${libdir} -llua -lm +Cflags: -I${includedir} + +# (end of lua.pc) diff --git a/mk/linux/mojosetup/lua/etc/luavs.bat b/mk/linux/mojosetup/lua/etc/luavs.bat new file mode 100644 index 00000000..08c2bedd --- /dev/null +++ b/mk/linux/mojosetup/lua/etc/luavs.bat @@ -0,0 +1,28 @@ +@rem Script to build Lua under "Visual Studio .NET Command Prompt". +@rem Do not run from this directory; run it from the toplevel: etc\luavs.bat . +@rem It creates lua51.dll, lua51.lib, lua.exe, and luac.exe in src. +@rem (contributed by David Manura and Mike Pall) + +@setlocal +@set MYCOMPILE=cl /nologo /MD /O2 /W3 /c /D_CRT_SECURE_NO_DEPRECATE +@set MYLINK=link /nologo +@set MYMT=mt /nologo + +cd src +%MYCOMPILE% /DLUA_BUILD_AS_DLL l*.c +del lua.obj luac.obj +%MYLINK% /DLL /out:lua51.dll l*.obj +if exist lua51.dll.manifest^ + %MYMT% -manifest lua51.dll.manifest -outputresource:lua51.dll;2 +%MYCOMPILE% /DLUA_BUILD_AS_DLL lua.c +%MYLINK% /out:lua.exe lua.obj lua51.lib +if exist lua.exe.manifest^ + %MYMT% -manifest lua.exe.manifest -outputresource:lua.exe +%MYCOMPILE% l*.c print.c +del lua.obj linit.obj lbaselib.obj ldblib.obj liolib.obj lmathlib.obj^ + loslib.obj ltablib.obj lstrlib.obj loadlib.obj +%MYLINK% /out:luac.exe *.obj +if exist luac.exe.manifest^ + %MYMT% -manifest luac.exe.manifest -outputresource:luac.exe +del *.obj *.manifest +cd .. diff --git a/mk/linux/mojosetup/lua/etc/min.c b/mk/linux/mojosetup/lua/etc/min.c new file mode 100644 index 00000000..6a85a4d1 --- /dev/null +++ b/mk/linux/mojosetup/lua/etc/min.c @@ -0,0 +1,39 @@ +/* +* min.c -- a minimal Lua interpreter +* loads stdin only with minimal error handling. +* no interaction, and no standard library, only a "print" function. +*/ + +#include + +#include "lua.h" +#include "lauxlib.h" + +static int print(lua_State *L) +{ + int n=lua_gettop(L); + int i; + for (i=1; i<=n; i++) + { + if (i>1) printf("\t"); + if (lua_isstring(L,i)) + printf("%s",lua_tostring(L,i)); + else if (lua_isnil(L,i)) + printf("%s","nil"); + else if (lua_isboolean(L,i)) + printf("%s",lua_toboolean(L,i) ? "true" : "false"); + else + printf("%s:%p",luaL_typename(L,i),lua_topointer(L,i)); + } + printf("\n"); + return 0; +} + +int main(void) +{ + lua_State *L=lua_open(); + lua_register(L,"print",print); + if (luaL_dofile(L,NULL)!=0) fprintf(stderr,"%s\n",lua_tostring(L,-1)); + lua_close(L); + return 0; +} diff --git a/mk/linux/mojosetup/lua/etc/noparser.c b/mk/linux/mojosetup/lua/etc/noparser.c new file mode 100644 index 00000000..13ba5462 --- /dev/null +++ b/mk/linux/mojosetup/lua/etc/noparser.c @@ -0,0 +1,50 @@ +/* +* The code below can be used to make a Lua core that does not contain the +* parsing modules (lcode, llex, lparser), which represent 35% of the total core. +* You'll only be able to load binary files and strings, precompiled with luac. +* (Of course, you'll have to build luac with the original parsing modules!) +* +* To use this module, simply compile it ("make noparser" does that) and list +* its object file before the Lua libraries. The linker should then not load +* the parsing modules. To try it, do "make luab". +* +* If you also want to avoid the dump module (ldump.o), define NODUMP. +* #define NODUMP +*/ + +#define LUA_CORE + +#include "llex.h" +#include "lparser.h" +#include "lzio.h" + +LUAI_FUNC void luaX_init (lua_State *L) { + UNUSED(L); +} + +LUAI_FUNC Proto *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, const char *name) { + UNUSED(z); + UNUSED(buff); + UNUSED(name); + lua_pushliteral(L,"parser not loaded"); + lua_error(L); + return NULL; +} + +#ifdef NODUMP +#include "lundump.h" + +LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip) { + UNUSED(f); + UNUSED(w); + UNUSED(data); + UNUSED(strip); +#if 1 + UNUSED(L); + return 0; +#else + lua_pushliteral(L,"dumper not loaded"); + lua_error(L); +#endif +} +#endif diff --git a/mk/linux/mojosetup/lua/etc/strict.lua b/mk/linux/mojosetup/lua/etc/strict.lua new file mode 100644 index 00000000..604619dd --- /dev/null +++ b/mk/linux/mojosetup/lua/etc/strict.lua @@ -0,0 +1,41 @@ +-- +-- strict.lua +-- checks uses of undeclared global variables +-- All global variables must be 'declared' through a regular assignment +-- (even assigning nil will do) in a main chunk before being used +-- anywhere or assigned to inside a function. +-- + +local getinfo, error, rawset, rawget = debug.getinfo, error, rawset, rawget + +local mt = getmetatable(_G) +if mt == nil then + mt = {} + setmetatable(_G, mt) +end + +mt.__declared = {} + +local function what () + local d = getinfo(3, "S") + return d and d.what or "C" +end + +mt.__newindex = function (t, n, v) + if not mt.__declared[n] then + local w = what() + if w ~= "main" and w ~= "C" then + error("assign to undeclared variable '"..n.."'", 2) + end + mt.__declared[n] = true + end + rawset(t, n, v) +end + +mt.__index = function (t, n) + if not mt.__declared[n] and what() ~= "C" then + error("variable '"..n.."' is not declared", 2) + end + return rawget(t, n) +end + diff --git a/mk/linux/mojosetup/lua/src/Makefile b/mk/linux/mojosetup/lua/src/Makefile new file mode 100644 index 00000000..e4a3cd61 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/Makefile @@ -0,0 +1,182 @@ +# makefile for building Lua +# see ../INSTALL for installation instructions +# see ../Makefile and luaconf.h for further customization + +# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= + +# Your platform. See PLATS for possible values. +PLAT= none + +CC= gcc +CFLAGS= -O2 -Wall $(MYCFLAGS) +AR= ar rcu +RANLIB= ranlib +RM= rm -f +LIBS= -lm $(MYLIBS) + +MYCFLAGS= +MYLDFLAGS= +MYLIBS= + +# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE ========= + +PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris + +LUA_A= liblua.a +CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \ + lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \ + lundump.o lvm.o lzio.o +LIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \ + lstrlib.o loadlib.o linit.o + +LUA_T= lua +LUA_O= lua.o + +LUAC_T= luac +LUAC_O= luac.o print.o + +ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O) +ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) +ALL_A= $(LUA_A) + +default: $(PLAT) + +all: $(ALL_T) + +o: $(ALL_O) + +a: $(ALL_A) + +$(LUA_A): $(CORE_O) $(LIB_O) + $(AR) $@ $? + $(RANLIB) $@ + +$(LUA_T): $(LUA_O) $(LUA_A) + $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) + +$(LUAC_T): $(LUAC_O) $(LUA_A) + $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) + +clean: + $(RM) $(ALL_T) $(ALL_O) + +depend: + @$(CC) $(CFLAGS) -MM l*.c print.c + +echo: + @echo "PLAT = $(PLAT)" + @echo "CC = $(CC)" + @echo "CFLAGS = $(CFLAGS)" + @echo "AR = $(AR)" + @echo "RANLIB = $(RANLIB)" + @echo "RM = $(RM)" + @echo "MYCFLAGS = $(MYCFLAGS)" + @echo "MYLDFLAGS = $(MYLDFLAGS)" + @echo "MYLIBS = $(MYLIBS)" + +# convenience targets for popular platforms + +none: + @echo "Please choose a platform:" + @echo " $(PLATS)" + +aix: + $(MAKE) all CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-ldl" MYLDFLAGS="-brtl -bexpall" + +ansi: + $(MAKE) all MYCFLAGS=-DLUA_ANSI + +bsd: + $(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-Wl,-E" + +freebsd: + $(MAKE) all MYCFLAGS="-DLUA_USE_LINUX" MYLIBS="-Wl,-E -lreadline" + +generic: + $(MAKE) all MYCFLAGS= + +linux: + $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses" + +macosx: + $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-lreadline" +# use this on Mac OS X 10.3- +# $(MAKE) all MYCFLAGS=-DLUA_USE_MACOSX + +mingw: + $(MAKE) "LUA_A=lua51.dll" "LUA_T=lua.exe" \ + "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ + "MYCFLAGS=-DLUA_BUILD_AS_DLL" "MYLIBS=" "MYLDFLAGS=-s" lua.exe + $(MAKE) "LUAC_T=luac.exe" luac.exe + +posix: + $(MAKE) all MYCFLAGS=-DLUA_USE_POSIX + +solaris: + $(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-ldl" + +# list targets that do not create files (but not all makes understand .PHONY) +.PHONY: all $(PLATS) default o a clean depend echo none + +# DO NOT DELETE + +lapi.o: lapi.c lua.h luaconf.h lapi.h lobject.h llimits.h ldebug.h \ + lstate.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h \ + lundump.h lvm.h +lauxlib.o: lauxlib.c lua.h luaconf.h lauxlib.h +lbaselib.o: lbaselib.c lua.h luaconf.h lauxlib.h lualib.h +lcode.o: lcode.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \ + lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h lgc.h \ + ltable.h +ldblib.o: ldblib.c lua.h luaconf.h lauxlib.h lualib.h +ldebug.o: ldebug.c lua.h luaconf.h lapi.h lobject.h llimits.h lcode.h \ + llex.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h \ + lfunc.h lstring.h lgc.h ltable.h lvm.h +ldo.o: ldo.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \ + lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lparser.h lstring.h \ + ltable.h lundump.h lvm.h +ldump.o: ldump.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h \ + lzio.h lmem.h lundump.h +lfunc.o: lfunc.c lua.h luaconf.h lfunc.h lobject.h llimits.h lgc.h lmem.h \ + lstate.h ltm.h lzio.h +lgc.o: lgc.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \ + lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h +linit.o: linit.c lua.h luaconf.h lualib.h lauxlib.h +liolib.o: liolib.c lua.h luaconf.h lauxlib.h lualib.h +llex.o: llex.c lua.h luaconf.h ldo.h lobject.h llimits.h lstate.h ltm.h \ + lzio.h lmem.h llex.h lparser.h lstring.h lgc.h ltable.h +lmathlib.o: lmathlib.c lua.h luaconf.h lauxlib.h lualib.h +lmem.o: lmem.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \ + ltm.h lzio.h lmem.h ldo.h +loadlib.o: loadlib.c lua.h luaconf.h lauxlib.h lualib.h +lobject.o: lobject.c lua.h luaconf.h ldo.h lobject.h llimits.h lstate.h \ + ltm.h lzio.h lmem.h lstring.h lgc.h lvm.h +lopcodes.o: lopcodes.c lopcodes.h llimits.h lua.h luaconf.h +loslib.o: loslib.c lua.h luaconf.h lauxlib.h lualib.h +lparser.o: lparser.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \ + lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h \ + lfunc.h lstring.h lgc.h ltable.h +lstate.o: lstate.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \ + ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h llex.h lstring.h ltable.h +lstring.o: lstring.c lua.h luaconf.h lmem.h llimits.h lobject.h lstate.h \ + ltm.h lzio.h lstring.h lgc.h +lstrlib.o: lstrlib.c lua.h luaconf.h lauxlib.h lualib.h +ltable.o: ltable.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \ + ltm.h lzio.h lmem.h ldo.h lgc.h ltable.h +ltablib.o: ltablib.c lua.h luaconf.h lauxlib.h lualib.h +ltm.o: ltm.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h lzio.h \ + lmem.h lstring.h lgc.h ltable.h +lua.o: lua.c lua.h luaconf.h lauxlib.h lualib.h +luac.o: luac.c lua.h luaconf.h lauxlib.h ldo.h lobject.h llimits.h \ + lstate.h ltm.h lzio.h lmem.h lfunc.h lopcodes.h lstring.h lgc.h \ + lundump.h +lundump.o: lundump.c lua.h luaconf.h ldebug.h lstate.h lobject.h \ + llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h lundump.h +lvm.o: lvm.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \ + lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h ltable.h lvm.h +lzio.o: lzio.c lua.h luaconf.h llimits.h lmem.h lstate.h lobject.h ltm.h \ + lzio.h +print.o: print.c ldebug.h lstate.h lua.h luaconf.h lobject.h llimits.h \ + ltm.h lzio.h lmem.h lopcodes.h lundump.h + +# (end of Makefile) diff --git a/mk/linux/mojosetup/lua/src/lapi.c b/mk/linux/mojosetup/lua/src/lapi.c new file mode 100644 index 00000000..5d5145d2 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lapi.c @@ -0,0 +1,1087 @@ +/* +** $Id: lapi.c,v 2.55.1.5 2008/07/04 18:41:18 roberto Exp $ +** Lua API +** See Copyright Notice in lua.h +*/ + + +#include +#include +#include +#include + +#define lapi_c +#define LUA_CORE + +#include "lua.h" + +#include "lapi.h" +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lgc.h" +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" +#include "lundump.h" +#include "lvm.h" + + + +const char lua_ident[] = + "$Lua: " LUA_RELEASE " " LUA_COPYRIGHT " $\n" + "$Authors: " LUA_AUTHORS " $\n" + "$URL: www.lua.org $\n"; + + + +#define api_checknelems(L, n) api_check(L, (n) <= (L->top - L->base)) + +#define api_checkvalidindex(L, i) api_check(L, (i) != luaO_nilobject) + +#define api_incr_top(L) {api_check(L, L->top < L->ci->top); L->top++;} + + + +static TValue *index2adr (lua_State *L, int idx) { + if (idx > 0) { + TValue *o = L->base + (idx - 1); + api_check(L, idx <= L->ci->top - L->base); + if (o >= L->top) return cast(TValue *, luaO_nilobject); + else return o; + } + else if (idx > LUA_REGISTRYINDEX) { + api_check(L, idx != 0 && -idx <= L->top - L->base); + return L->top + idx; + } + else switch (idx) { /* pseudo-indices */ + case LUA_REGISTRYINDEX: return registry(L); + case LUA_ENVIRONINDEX: { + Closure *func = curr_func(L); + sethvalue(L, &L->env, func->c.env); + return &L->env; + } + case LUA_GLOBALSINDEX: return gt(L); + default: { + Closure *func = curr_func(L); + idx = LUA_GLOBALSINDEX - idx; + return (idx <= func->c.nupvalues) + ? &func->c.upvalue[idx-1] + : cast(TValue *, luaO_nilobject); + } + } +} + + +static Table *getcurrenv (lua_State *L) { + if (L->ci == L->base_ci) /* no enclosing function? */ + return hvalue(gt(L)); /* use global table as environment */ + else { + Closure *func = curr_func(L); + return func->c.env; + } +} + + +void luaA_pushobject (lua_State *L, const TValue *o) { + setobj2s(L, L->top, o); + api_incr_top(L); +} + + +LUA_API int lua_checkstack (lua_State *L, int size) { + int res = 1; + lua_lock(L); + if (size > LUAI_MAXCSTACK || (L->top - L->base + size) > LUAI_MAXCSTACK) + res = 0; /* stack overflow */ + else if (size > 0) { + luaD_checkstack(L, size); + if (L->ci->top < L->top + size) + L->ci->top = L->top + size; + } + lua_unlock(L); + return res; +} + + +LUA_API void lua_xmove (lua_State *from, lua_State *to, int n) { + int i; + if (from == to) return; + lua_lock(to); + api_checknelems(from, n); + api_check(from, G(from) == G(to)); + api_check(from, to->ci->top - to->top >= n); + from->top -= n; + for (i = 0; i < n; i++) { + setobj2s(to, to->top++, from->top + i); + } + lua_unlock(to); +} + + +LUA_API void lua_setlevel (lua_State *from, lua_State *to) { + to->nCcalls = from->nCcalls; +} + + +LUA_API lua_CFunction lua_atpanic (lua_State *L, lua_CFunction panicf) { + lua_CFunction old; + lua_lock(L); + old = G(L)->panic; + G(L)->panic = panicf; + lua_unlock(L); + return old; +} + + +LUA_API lua_State *lua_newthread (lua_State *L) { + lua_State *L1; + lua_lock(L); + luaC_checkGC(L); + L1 = luaE_newthread(L); + setthvalue(L, L->top, L1); + api_incr_top(L); + lua_unlock(L); + luai_userstatethread(L, L1); + return L1; +} + + + +/* +** basic stack manipulation +*/ + + +LUA_API int lua_gettop (lua_State *L) { + return cast_int(L->top - L->base); +} + + +LUA_API void lua_settop (lua_State *L, int idx) { + lua_lock(L); + if (idx >= 0) { + api_check(L, idx <= L->stack_last - L->base); + while (L->top < L->base + idx) + setnilvalue(L->top++); + L->top = L->base + idx; + } + else { + api_check(L, -(idx+1) <= (L->top - L->base)); + L->top += idx+1; /* `subtract' index (index is negative) */ + } + lua_unlock(L); +} + + +LUA_API void lua_remove (lua_State *L, int idx) { + StkId p; + lua_lock(L); + p = index2adr(L, idx); + api_checkvalidindex(L, p); + while (++p < L->top) setobjs2s(L, p-1, p); + L->top--; + lua_unlock(L); +} + + +LUA_API void lua_insert (lua_State *L, int idx) { + StkId p; + StkId q; + lua_lock(L); + p = index2adr(L, idx); + api_checkvalidindex(L, p); + for (q = L->top; q>p; q--) setobjs2s(L, q, q-1); + setobjs2s(L, p, L->top); + lua_unlock(L); +} + + +LUA_API void lua_replace (lua_State *L, int idx) { + StkId o; + lua_lock(L); + /* explicit test for incompatible code */ + if (idx == LUA_ENVIRONINDEX && L->ci == L->base_ci) + luaG_runerror(L, "no calling environment"); + api_checknelems(L, 1); + o = index2adr(L, idx); + api_checkvalidindex(L, o); + if (idx == LUA_ENVIRONINDEX) { + Closure *func = curr_func(L); + api_check(L, ttistable(L->top - 1)); + func->c.env = hvalue(L->top - 1); + luaC_barrier(L, func, L->top - 1); + } + else { + setobj(L, o, L->top - 1); + if (idx < LUA_GLOBALSINDEX) /* function upvalue? */ + luaC_barrier(L, curr_func(L), L->top - 1); + } + L->top--; + lua_unlock(L); +} + + +LUA_API void lua_pushvalue (lua_State *L, int idx) { + lua_lock(L); + setobj2s(L, L->top, index2adr(L, idx)); + api_incr_top(L); + lua_unlock(L); +} + + + +/* +** access functions (stack -> C) +*/ + + +LUA_API int lua_type (lua_State *L, int idx) { + StkId o = index2adr(L, idx); + return (o == luaO_nilobject) ? LUA_TNONE : ttype(o); +} + + +LUA_API const char *lua_typename (lua_State *L, int t) { + UNUSED(L); + return (t == LUA_TNONE) ? "no value" : luaT_typenames[t]; +} + + +LUA_API int lua_iscfunction (lua_State *L, int idx) { + StkId o = index2adr(L, idx); + return iscfunction(o); +} + + +LUA_API int lua_isnumber (lua_State *L, int idx) { + TValue n; + const TValue *o = index2adr(L, idx); + return tonumber(o, &n); +} + + +LUA_API int lua_isstring (lua_State *L, int idx) { + int t = lua_type(L, idx); + return (t == LUA_TSTRING || t == LUA_TNUMBER); +} + + +LUA_API int lua_isuserdata (lua_State *L, int idx) { + const TValue *o = index2adr(L, idx); + return (ttisuserdata(o) || ttislightuserdata(o)); +} + + +LUA_API int lua_rawequal (lua_State *L, int index1, int index2) { + StkId o1 = index2adr(L, index1); + StkId o2 = index2adr(L, index2); + return (o1 == luaO_nilobject || o2 == luaO_nilobject) ? 0 + : luaO_rawequalObj(o1, o2); +} + + +LUA_API int lua_equal (lua_State *L, int index1, int index2) { + StkId o1, o2; + int i; + lua_lock(L); /* may call tag method */ + o1 = index2adr(L, index1); + o2 = index2adr(L, index2); + i = (o1 == luaO_nilobject || o2 == luaO_nilobject) ? 0 : equalobj(L, o1, o2); + lua_unlock(L); + return i; +} + + +LUA_API int lua_lessthan (lua_State *L, int index1, int index2) { + StkId o1, o2; + int i; + lua_lock(L); /* may call tag method */ + o1 = index2adr(L, index1); + o2 = index2adr(L, index2); + i = (o1 == luaO_nilobject || o2 == luaO_nilobject) ? 0 + : luaV_lessthan(L, o1, o2); + lua_unlock(L); + return i; +} + + + +LUA_API lua_Number lua_tonumber (lua_State *L, int idx) { + TValue n; + const TValue *o = index2adr(L, idx); + if (tonumber(o, &n)) + return nvalue(o); + else + return 0; +} + + +LUA_API lua_Integer lua_tointeger (lua_State *L, int idx) { + TValue n; + const TValue *o = index2adr(L, idx); + if (tonumber(o, &n)) { + lua_Integer res; + lua_Number num = nvalue(o); + lua_number2integer(res, num); + return res; + } + else + return 0; +} + + +LUA_API int lua_toboolean (lua_State *L, int idx) { + const TValue *o = index2adr(L, idx); + return !l_isfalse(o); +} + + +LUA_API const char *lua_tolstring (lua_State *L, int idx, size_t *len) { + StkId o = index2adr(L, idx); + if (!ttisstring(o)) { + lua_lock(L); /* `luaV_tostring' may create a new string */ + if (!luaV_tostring(L, o)) { /* conversion failed? */ + if (len != NULL) *len = 0; + lua_unlock(L); + return NULL; + } + luaC_checkGC(L); + o = index2adr(L, idx); /* previous call may reallocate the stack */ + lua_unlock(L); + } + if (len != NULL) *len = tsvalue(o)->len; + return svalue(o); +} + + +LUA_API size_t lua_objlen (lua_State *L, int idx) { + StkId o = index2adr(L, idx); + switch (ttype(o)) { + case LUA_TSTRING: return tsvalue(o)->len; + case LUA_TUSERDATA: return uvalue(o)->len; + case LUA_TTABLE: return luaH_getn(hvalue(o)); + case LUA_TNUMBER: { + size_t l; + lua_lock(L); /* `luaV_tostring' may create a new string */ + l = (luaV_tostring(L, o) ? tsvalue(o)->len : 0); + lua_unlock(L); + return l; + } + default: return 0; + } +} + + +LUA_API lua_CFunction lua_tocfunction (lua_State *L, int idx) { + StkId o = index2adr(L, idx); + return (!iscfunction(o)) ? NULL : clvalue(o)->c.f; +} + + +LUA_API void *lua_touserdata (lua_State *L, int idx) { + StkId o = index2adr(L, idx); + switch (ttype(o)) { + case LUA_TUSERDATA: return (rawuvalue(o) + 1); + case LUA_TLIGHTUSERDATA: return pvalue(o); + default: return NULL; + } +} + + +LUA_API lua_State *lua_tothread (lua_State *L, int idx) { + StkId o = index2adr(L, idx); + return (!ttisthread(o)) ? NULL : thvalue(o); +} + + +LUA_API const void *lua_topointer (lua_State *L, int idx) { + StkId o = index2adr(L, idx); + switch (ttype(o)) { + case LUA_TTABLE: return hvalue(o); + case LUA_TFUNCTION: return clvalue(o); + case LUA_TTHREAD: return thvalue(o); + case LUA_TUSERDATA: + case LUA_TLIGHTUSERDATA: + return lua_touserdata(L, idx); + default: return NULL; + } +} + + + +/* +** push functions (C -> stack) +*/ + + +LUA_API void lua_pushnil (lua_State *L) { + lua_lock(L); + setnilvalue(L->top); + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API void lua_pushnumber (lua_State *L, lua_Number n) { + lua_lock(L); + setnvalue(L->top, n); + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API void lua_pushinteger (lua_State *L, lua_Integer n) { + lua_lock(L); + setnvalue(L->top, cast_num(n)); + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API void lua_pushlstring (lua_State *L, const char *s, size_t len) { + lua_lock(L); + luaC_checkGC(L); + setsvalue2s(L, L->top, luaS_newlstr(L, s, len)); + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API void lua_pushstring (lua_State *L, const char *s) { + if (s == NULL) + lua_pushnil(L); + else + lua_pushlstring(L, s, strlen(s)); +} + + +LUA_API const char *lua_pushvfstring (lua_State *L, const char *fmt, + va_list argp) { + const char *ret; + lua_lock(L); + luaC_checkGC(L); + ret = luaO_pushvfstring(L, fmt, argp); + lua_unlock(L); + return ret; +} + + +LUA_API const char *lua_pushfstring (lua_State *L, const char *fmt, ...) { + const char *ret; + va_list argp; + lua_lock(L); + luaC_checkGC(L); + va_start(argp, fmt); + ret = luaO_pushvfstring(L, fmt, argp); + va_end(argp); + lua_unlock(L); + return ret; +} + + +LUA_API void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n) { + Closure *cl; + lua_lock(L); + luaC_checkGC(L); + api_checknelems(L, n); + cl = luaF_newCclosure(L, n, getcurrenv(L)); + cl->c.f = fn; + L->top -= n; + while (n--) + setobj2n(L, &cl->c.upvalue[n], L->top+n); + setclvalue(L, L->top, cl); + lua_assert(iswhite(obj2gco(cl))); + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API void lua_pushboolean (lua_State *L, int b) { + lua_lock(L); + setbvalue(L->top, (b != 0)); /* ensure that true is 1 */ + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API void lua_pushlightuserdata (lua_State *L, void *p) { + lua_lock(L); + setpvalue(L->top, p); + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API int lua_pushthread (lua_State *L) { + lua_lock(L); + setthvalue(L, L->top, L); + api_incr_top(L); + lua_unlock(L); + return (G(L)->mainthread == L); +} + + + +/* +** get functions (Lua -> stack) +*/ + + +LUA_API void lua_gettable (lua_State *L, int idx) { + StkId t; + lua_lock(L); + t = index2adr(L, idx); + api_checkvalidindex(L, t); + luaV_gettable(L, t, L->top - 1, L->top - 1); + lua_unlock(L); +} + + +LUA_API void lua_getfield (lua_State *L, int idx, const char *k) { + StkId t; + TValue key; + lua_lock(L); + t = index2adr(L, idx); + api_checkvalidindex(L, t); + setsvalue(L, &key, luaS_new(L, k)); + luaV_gettable(L, t, &key, L->top); + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API void lua_rawget (lua_State *L, int idx) { + StkId t; + lua_lock(L); + t = index2adr(L, idx); + api_check(L, ttistable(t)); + setobj2s(L, L->top - 1, luaH_get(hvalue(t), L->top - 1)); + lua_unlock(L); +} + + +LUA_API void lua_rawgeti (lua_State *L, int idx, int n) { + StkId o; + lua_lock(L); + o = index2adr(L, idx); + api_check(L, ttistable(o)); + setobj2s(L, L->top, luaH_getnum(hvalue(o), n)); + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API void lua_createtable (lua_State *L, int narray, int nrec) { + lua_lock(L); + luaC_checkGC(L); + sethvalue(L, L->top, luaH_new(L, narray, nrec)); + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API int lua_getmetatable (lua_State *L, int objindex) { + const TValue *obj; + Table *mt = NULL; + int res; + lua_lock(L); + obj = index2adr(L, objindex); + switch (ttype(obj)) { + case LUA_TTABLE: + mt = hvalue(obj)->metatable; + break; + case LUA_TUSERDATA: + mt = uvalue(obj)->metatable; + break; + default: + mt = G(L)->mt[ttype(obj)]; + break; + } + if (mt == NULL) + res = 0; + else { + sethvalue(L, L->top, mt); + api_incr_top(L); + res = 1; + } + lua_unlock(L); + return res; +} + + +LUA_API void lua_getfenv (lua_State *L, int idx) { + StkId o; + lua_lock(L); + o = index2adr(L, idx); + api_checkvalidindex(L, o); + switch (ttype(o)) { + case LUA_TFUNCTION: + sethvalue(L, L->top, clvalue(o)->c.env); + break; + case LUA_TUSERDATA: + sethvalue(L, L->top, uvalue(o)->env); + break; + case LUA_TTHREAD: + setobj2s(L, L->top, gt(thvalue(o))); + break; + default: + setnilvalue(L->top); + break; + } + api_incr_top(L); + lua_unlock(L); +} + + +/* +** set functions (stack -> Lua) +*/ + + +LUA_API void lua_settable (lua_State *L, int idx) { + StkId t; + lua_lock(L); + api_checknelems(L, 2); + t = index2adr(L, idx); + api_checkvalidindex(L, t); + luaV_settable(L, t, L->top - 2, L->top - 1); + L->top -= 2; /* pop index and value */ + lua_unlock(L); +} + + +LUA_API void lua_setfield (lua_State *L, int idx, const char *k) { + StkId t; + TValue key; + lua_lock(L); + api_checknelems(L, 1); + t = index2adr(L, idx); + api_checkvalidindex(L, t); + setsvalue(L, &key, luaS_new(L, k)); + luaV_settable(L, t, &key, L->top - 1); + L->top--; /* pop value */ + lua_unlock(L); +} + + +LUA_API void lua_rawset (lua_State *L, int idx) { + StkId t; + lua_lock(L); + api_checknelems(L, 2); + t = index2adr(L, idx); + api_check(L, ttistable(t)); + setobj2t(L, luaH_set(L, hvalue(t), L->top-2), L->top-1); + luaC_barriert(L, hvalue(t), L->top-1); + L->top -= 2; + lua_unlock(L); +} + + +LUA_API void lua_rawseti (lua_State *L, int idx, int n) { + StkId o; + lua_lock(L); + api_checknelems(L, 1); + o = index2adr(L, idx); + api_check(L, ttistable(o)); + setobj2t(L, luaH_setnum(L, hvalue(o), n), L->top-1); + luaC_barriert(L, hvalue(o), L->top-1); + L->top--; + lua_unlock(L); +} + + +LUA_API int lua_setmetatable (lua_State *L, int objindex) { + TValue *obj; + Table *mt; + lua_lock(L); + api_checknelems(L, 1); + obj = index2adr(L, objindex); + api_checkvalidindex(L, obj); + if (ttisnil(L->top - 1)) + mt = NULL; + else { + api_check(L, ttistable(L->top - 1)); + mt = hvalue(L->top - 1); + } + switch (ttype(obj)) { + case LUA_TTABLE: { + hvalue(obj)->metatable = mt; + if (mt) + luaC_objbarriert(L, hvalue(obj), mt); + break; + } + case LUA_TUSERDATA: { + uvalue(obj)->metatable = mt; + if (mt) + luaC_objbarrier(L, rawuvalue(obj), mt); + break; + } + default: { + G(L)->mt[ttype(obj)] = mt; + break; + } + } + L->top--; + lua_unlock(L); + return 1; +} + + +LUA_API int lua_setfenv (lua_State *L, int idx) { + StkId o; + int res = 1; + lua_lock(L); + api_checknelems(L, 1); + o = index2adr(L, idx); + api_checkvalidindex(L, o); + api_check(L, ttistable(L->top - 1)); + switch (ttype(o)) { + case LUA_TFUNCTION: + clvalue(o)->c.env = hvalue(L->top - 1); + break; + case LUA_TUSERDATA: + uvalue(o)->env = hvalue(L->top - 1); + break; + case LUA_TTHREAD: + sethvalue(L, gt(thvalue(o)), hvalue(L->top - 1)); + break; + default: + res = 0; + break; + } + if (res) luaC_objbarrier(L, gcvalue(o), hvalue(L->top - 1)); + L->top--; + lua_unlock(L); + return res; +} + + +/* +** `load' and `call' functions (run Lua code) +*/ + + +#define adjustresults(L,nres) \ + { if (nres == LUA_MULTRET && L->top >= L->ci->top) L->ci->top = L->top; } + + +#define checkresults(L,na,nr) \ + api_check(L, (nr) == LUA_MULTRET || (L->ci->top - L->top >= (nr) - (na))) + + +LUA_API void lua_call (lua_State *L, int nargs, int nresults) { + StkId func; + lua_lock(L); + api_checknelems(L, nargs+1); + checkresults(L, nargs, nresults); + func = L->top - (nargs+1); + luaD_call(L, func, nresults); + adjustresults(L, nresults); + lua_unlock(L); +} + + + +/* +** Execute a protected call. +*/ +struct CallS { /* data to `f_call' */ + StkId func; + int nresults; +}; + + +static void f_call (lua_State *L, void *ud) { + struct CallS *c = cast(struct CallS *, ud); + luaD_call(L, c->func, c->nresults); +} + + + +LUA_API int lua_pcall (lua_State *L, int nargs, int nresults, int errfunc) { + struct CallS c; + int status; + ptrdiff_t func; + lua_lock(L); + api_checknelems(L, nargs+1); + checkresults(L, nargs, nresults); + if (errfunc == 0) + func = 0; + else { + StkId o = index2adr(L, errfunc); + api_checkvalidindex(L, o); + func = savestack(L, o); + } + c.func = L->top - (nargs+1); /* function to be called */ + c.nresults = nresults; + status = luaD_pcall(L, f_call, &c, savestack(L, c.func), func); + adjustresults(L, nresults); + lua_unlock(L); + return status; +} + + +/* +** Execute a protected C call. +*/ +struct CCallS { /* data to `f_Ccall' */ + lua_CFunction func; + void *ud; +}; + + +static void f_Ccall (lua_State *L, void *ud) { + struct CCallS *c = cast(struct CCallS *, ud); + Closure *cl; + cl = luaF_newCclosure(L, 0, getcurrenv(L)); + cl->c.f = c->func; + setclvalue(L, L->top, cl); /* push function */ + api_incr_top(L); + setpvalue(L->top, c->ud); /* push only argument */ + api_incr_top(L); + luaD_call(L, L->top - 2, 0); +} + + +LUA_API int lua_cpcall (lua_State *L, lua_CFunction func, void *ud) { + struct CCallS c; + int status; + lua_lock(L); + c.func = func; + c.ud = ud; + status = luaD_pcall(L, f_Ccall, &c, savestack(L, L->top), 0); + lua_unlock(L); + return status; +} + + +LUA_API int lua_load (lua_State *L, lua_Reader reader, void *data, + const char *chunkname) { + ZIO z; + int status; + lua_lock(L); + if (!chunkname) chunkname = "?"; + luaZ_init(L, &z, reader, data); + status = luaD_protectedparser(L, &z, chunkname); + lua_unlock(L); + return status; +} + + +LUA_API int lua_dump (lua_State *L, lua_Writer writer, void *data) { + int status; + TValue *o; + lua_lock(L); + api_checknelems(L, 1); + o = L->top - 1; + if (isLfunction(o)) + status = luaU_dump(L, clvalue(o)->l.p, writer, data, 0); + else + status = 1; + lua_unlock(L); + return status; +} + + +LUA_API int lua_status (lua_State *L) { + return L->status; +} + + +/* +** Garbage-collection function +*/ + +LUA_API int lua_gc (lua_State *L, int what, int data) { + int res = 0; + global_State *g; + lua_lock(L); + g = G(L); + switch (what) { + case LUA_GCSTOP: { + g->GCthreshold = MAX_LUMEM; + break; + } + case LUA_GCRESTART: { + g->GCthreshold = g->totalbytes; + break; + } + case LUA_GCCOLLECT: { + luaC_fullgc(L); + break; + } + case LUA_GCCOUNT: { + /* GC values are expressed in Kbytes: #bytes/2^10 */ + res = cast_int(g->totalbytes >> 10); + break; + } + case LUA_GCCOUNTB: { + res = cast_int(g->totalbytes & 0x3ff); + break; + } + case LUA_GCSTEP: { + lu_mem a = (cast(lu_mem, data) << 10); + if (a <= g->totalbytes) + g->GCthreshold = g->totalbytes - a; + else + g->GCthreshold = 0; + while (g->GCthreshold <= g->totalbytes) { + luaC_step(L); + if (g->gcstate == GCSpause) { /* end of cycle? */ + res = 1; /* signal it */ + break; + } + } + break; + } + case LUA_GCSETPAUSE: { + res = g->gcpause; + g->gcpause = data; + break; + } + case LUA_GCSETSTEPMUL: { + res = g->gcstepmul; + g->gcstepmul = data; + break; + } + default: res = -1; /* invalid option */ + } + lua_unlock(L); + return res; +} + + + +/* +** miscellaneous functions +*/ + + +LUA_API int lua_error (lua_State *L) { + lua_lock(L); + api_checknelems(L, 1); + luaG_errormsg(L); + lua_unlock(L); + return 0; /* to avoid warnings */ +} + + +LUA_API int lua_next (lua_State *L, int idx) { + StkId t; + int more; + lua_lock(L); + t = index2adr(L, idx); + api_check(L, ttistable(t)); + more = luaH_next(L, hvalue(t), L->top - 1); + if (more) { + api_incr_top(L); + } + else /* no more elements */ + L->top -= 1; /* remove key */ + lua_unlock(L); + return more; +} + + +LUA_API void lua_concat (lua_State *L, int n) { + lua_lock(L); + api_checknelems(L, n); + if (n >= 2) { + luaC_checkGC(L); + luaV_concat(L, n, cast_int(L->top - L->base) - 1); + L->top -= (n-1); + } + else if (n == 0) { /* push empty string */ + setsvalue2s(L, L->top, luaS_newlstr(L, "", 0)); + api_incr_top(L); + } + /* else n == 1; nothing to do */ + lua_unlock(L); +} + + +LUA_API lua_Alloc lua_getallocf (lua_State *L, void **ud) { + lua_Alloc f; + lua_lock(L); + if (ud) *ud = G(L)->ud; + f = G(L)->frealloc; + lua_unlock(L); + return f; +} + + +LUA_API void lua_setallocf (lua_State *L, lua_Alloc f, void *ud) { + lua_lock(L); + G(L)->ud = ud; + G(L)->frealloc = f; + lua_unlock(L); +} + + +LUA_API void *lua_newuserdata (lua_State *L, size_t size) { + Udata *u; + lua_lock(L); + luaC_checkGC(L); + u = luaS_newudata(L, size, getcurrenv(L)); + setuvalue(L, L->top, u); + api_incr_top(L); + lua_unlock(L); + return u + 1; +} + + + + +static const char *aux_upvalue (StkId fi, int n, TValue **val) { + Closure *f; + if (!ttisfunction(fi)) return NULL; + f = clvalue(fi); + if (f->c.isC) { + if (!(1 <= n && n <= f->c.nupvalues)) return NULL; + *val = &f->c.upvalue[n-1]; + return ""; + } + else { + Proto *p = f->l.p; + if (!(1 <= n && n <= p->sizeupvalues)) return NULL; + *val = f->l.upvals[n-1]->v; + return getstr(p->upvalues[n-1]); + } +} + + +LUA_API const char *lua_getupvalue (lua_State *L, int funcindex, int n) { + const char *name; + TValue *val; + lua_lock(L); + name = aux_upvalue(index2adr(L, funcindex), n, &val); + if (name) { + setobj2s(L, L->top, val); + api_incr_top(L); + } + lua_unlock(L); + return name; +} + + +LUA_API const char *lua_setupvalue (lua_State *L, int funcindex, int n) { + const char *name; + TValue *val; + StkId fi; + lua_lock(L); + fi = index2adr(L, funcindex); + api_checknelems(L, 1); + name = aux_upvalue(fi, n, &val); + if (name) { + L->top--; + setobj(L, val, L->top); + luaC_barrier(L, clvalue(fi), L->top); + } + lua_unlock(L); + return name; +} + diff --git a/mk/linux/mojosetup/lua/src/lapi.h b/mk/linux/mojosetup/lua/src/lapi.h new file mode 100644 index 00000000..2c3fab24 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lapi.h @@ -0,0 +1,16 @@ +/* +** $Id: lapi.h,v 2.2.1.1 2007/12/27 13:02:25 roberto Exp $ +** Auxiliary functions from Lua API +** See Copyright Notice in lua.h +*/ + +#ifndef lapi_h +#define lapi_h + + +#include "lobject.h" + + +LUAI_FUNC void luaA_pushobject (lua_State *L, const TValue *o); + +#endif diff --git a/mk/linux/mojosetup/lua/src/lauxlib.c b/mk/linux/mojosetup/lua/src/lauxlib.c new file mode 100644 index 00000000..10f14e2c --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lauxlib.c @@ -0,0 +1,652 @@ +/* +** $Id: lauxlib.c,v 1.159.1.3 2008/01/21 13:20:51 roberto Exp $ +** Auxiliary functions for building Lua libraries +** See Copyright Notice in lua.h +*/ + + +#include +#include +#include +#include +#include +#include + + +/* This file uses only the official API of Lua. +** Any function declared here could be written as an application function. +*/ + +#define lauxlib_c +#define LUA_LIB + +#include "lua.h" + +#include "lauxlib.h" + + +#define FREELIST_REF 0 /* free list of references */ + + +/* convert a stack index to positive */ +#define abs_index(L, i) ((i) > 0 || (i) <= LUA_REGISTRYINDEX ? (i) : \ + lua_gettop(L) + (i) + 1) + + +/* +** {====================================================== +** Error-report functions +** ======================================================= +*/ + + +LUALIB_API int luaL_argerror (lua_State *L, int narg, const char *extramsg) { + lua_Debug ar; + if (!lua_getstack(L, 0, &ar)) /* no stack frame? */ + return luaL_error(L, "bad argument #%d (%s)", narg, extramsg); + lua_getinfo(L, "n", &ar); + if (strcmp(ar.namewhat, "method") == 0) { + narg--; /* do not count `self' */ + if (narg == 0) /* error is in the self argument itself? */ + return luaL_error(L, "calling " LUA_QS " on bad self (%s)", + ar.name, extramsg); + } + if (ar.name == NULL) + ar.name = "?"; + return luaL_error(L, "bad argument #%d to " LUA_QS " (%s)", + narg, ar.name, extramsg); +} + + +LUALIB_API int luaL_typerror (lua_State *L, int narg, const char *tname) { + const char *msg = lua_pushfstring(L, "%s expected, got %s", + tname, luaL_typename(L, narg)); + return luaL_argerror(L, narg, msg); +} + + +static void tag_error (lua_State *L, int narg, int tag) { + luaL_typerror(L, narg, lua_typename(L, tag)); +} + + +LUALIB_API void luaL_where (lua_State *L, int level) { + lua_Debug ar; + if (lua_getstack(L, level, &ar)) { /* check function at level */ + lua_getinfo(L, "Sl", &ar); /* get info about it */ + if (ar.currentline > 0) { /* is there info? */ + lua_pushfstring(L, "%s:%d: ", ar.short_src, ar.currentline); + return; + } + } + lua_pushliteral(L, ""); /* else, no information available... */ +} + + +LUALIB_API int luaL_error (lua_State *L, const char *fmt, ...) { + va_list argp; + va_start(argp, fmt); + luaL_where(L, 1); + lua_pushvfstring(L, fmt, argp); + va_end(argp); + lua_concat(L, 2); + return lua_error(L); +} + +/* }====================================================== */ + + +LUALIB_API int luaL_checkoption (lua_State *L, int narg, const char *def, + const char *const lst[]) { + const char *name = (def) ? luaL_optstring(L, narg, def) : + luaL_checkstring(L, narg); + int i; + for (i=0; lst[i]; i++) + if (strcmp(lst[i], name) == 0) + return i; + return luaL_argerror(L, narg, + lua_pushfstring(L, "invalid option " LUA_QS, name)); +} + + +LUALIB_API int luaL_newmetatable (lua_State *L, const char *tname) { + lua_getfield(L, LUA_REGISTRYINDEX, tname); /* get registry.name */ + if (!lua_isnil(L, -1)) /* name already in use? */ + return 0; /* leave previous value on top, but return 0 */ + lua_pop(L, 1); + lua_newtable(L); /* create metatable */ + lua_pushvalue(L, -1); + lua_setfield(L, LUA_REGISTRYINDEX, tname); /* registry.name = metatable */ + return 1; +} + + +LUALIB_API void *luaL_checkudata (lua_State *L, int ud, const char *tname) { + void *p = lua_touserdata(L, ud); + if (p != NULL) { /* value is a userdata? */ + if (lua_getmetatable(L, ud)) { /* does it have a metatable? */ + lua_getfield(L, LUA_REGISTRYINDEX, tname); /* get correct metatable */ + if (lua_rawequal(L, -1, -2)) { /* does it have the correct mt? */ + lua_pop(L, 2); /* remove both metatables */ + return p; + } + } + } + luaL_typerror(L, ud, tname); /* else error */ + return NULL; /* to avoid warnings */ +} + + +LUALIB_API void luaL_checkstack (lua_State *L, int space, const char *mes) { + if (!lua_checkstack(L, space)) + luaL_error(L, "stack overflow (%s)", mes); +} + + +LUALIB_API void luaL_checktype (lua_State *L, int narg, int t) { + if (lua_type(L, narg) != t) + tag_error(L, narg, t); +} + + +LUALIB_API void luaL_checkany (lua_State *L, int narg) { + if (lua_type(L, narg) == LUA_TNONE) + luaL_argerror(L, narg, "value expected"); +} + + +LUALIB_API const char *luaL_checklstring (lua_State *L, int narg, size_t *len) { + const char *s = lua_tolstring(L, narg, len); + if (!s) tag_error(L, narg, LUA_TSTRING); + return s; +} + + +LUALIB_API const char *luaL_optlstring (lua_State *L, int narg, + const char *def, size_t *len) { + if (lua_isnoneornil(L, narg)) { + if (len) + *len = (def ? strlen(def) : 0); + return def; + } + else return luaL_checklstring(L, narg, len); +} + + +LUALIB_API lua_Number luaL_checknumber (lua_State *L, int narg) { + lua_Number d = lua_tonumber(L, narg); + if (d == 0 && !lua_isnumber(L, narg)) /* avoid extra test when d is not 0 */ + tag_error(L, narg, LUA_TNUMBER); + return d; +} + + +LUALIB_API lua_Number luaL_optnumber (lua_State *L, int narg, lua_Number def) { + return luaL_opt(L, luaL_checknumber, narg, def); +} + + +LUALIB_API lua_Integer luaL_checkinteger (lua_State *L, int narg) { + lua_Integer d = lua_tointeger(L, narg); + if (d == 0 && !lua_isnumber(L, narg)) /* avoid extra test when d is not 0 */ + tag_error(L, narg, LUA_TNUMBER); + return d; +} + + +LUALIB_API lua_Integer luaL_optinteger (lua_State *L, int narg, + lua_Integer def) { + return luaL_opt(L, luaL_checkinteger, narg, def); +} + + +LUALIB_API int luaL_getmetafield (lua_State *L, int obj, const char *event) { + if (!lua_getmetatable(L, obj)) /* no metatable? */ + return 0; + lua_pushstring(L, event); + lua_rawget(L, -2); + if (lua_isnil(L, -1)) { + lua_pop(L, 2); /* remove metatable and metafield */ + return 0; + } + else { + lua_remove(L, -2); /* remove only metatable */ + return 1; + } +} + + +LUALIB_API int luaL_callmeta (lua_State *L, int obj, const char *event) { + obj = abs_index(L, obj); + if (!luaL_getmetafield(L, obj, event)) /* no metafield? */ + return 0; + lua_pushvalue(L, obj); + lua_call(L, 1, 1); + return 1; +} + + +LUALIB_API void (luaL_register) (lua_State *L, const char *libname, + const luaL_Reg *l) { + luaI_openlib(L, libname, l, 0); +} + + +static int libsize (const luaL_Reg *l) { + int size = 0; + for (; l->name; l++) size++; + return size; +} + + +LUALIB_API void luaI_openlib (lua_State *L, const char *libname, + const luaL_Reg *l, int nup) { + if (libname) { + int size = libsize(l); + /* check whether lib already exists */ + luaL_findtable(L, LUA_REGISTRYINDEX, "_LOADED", 1); + lua_getfield(L, -1, libname); /* get _LOADED[libname] */ + if (!lua_istable(L, -1)) { /* not found? */ + lua_pop(L, 1); /* remove previous result */ + /* try global variable (and create one if it does not exist) */ + if (luaL_findtable(L, LUA_GLOBALSINDEX, libname, size) != NULL) + luaL_error(L, "name conflict for module " LUA_QS, libname); + lua_pushvalue(L, -1); + lua_setfield(L, -3, libname); /* _LOADED[libname] = new table */ + } + lua_remove(L, -2); /* remove _LOADED table */ + lua_insert(L, -(nup+1)); /* move library table to below upvalues */ + } + for (; l->name; l++) { + int i; + for (i=0; ifunc, nup); + lua_setfield(L, -(nup+2), l->name); + } + lua_pop(L, nup); /* remove upvalues */ +} + + + +/* +** {====================================================== +** getn-setn: size for arrays +** ======================================================= +*/ + +#if defined(LUA_COMPAT_GETN) + +static int checkint (lua_State *L, int topop) { + int n = (lua_type(L, -1) == LUA_TNUMBER) ? lua_tointeger(L, -1) : -1; + lua_pop(L, topop); + return n; +} + + +static void getsizes (lua_State *L) { + lua_getfield(L, LUA_REGISTRYINDEX, "LUA_SIZES"); + if (lua_isnil(L, -1)) { /* no `size' table? */ + lua_pop(L, 1); /* remove nil */ + lua_newtable(L); /* create it */ + lua_pushvalue(L, -1); /* `size' will be its own metatable */ + lua_setmetatable(L, -2); + lua_pushliteral(L, "kv"); + lua_setfield(L, -2, "__mode"); /* metatable(N).__mode = "kv" */ + lua_pushvalue(L, -1); + lua_setfield(L, LUA_REGISTRYINDEX, "LUA_SIZES"); /* store in register */ + } +} + + +LUALIB_API void luaL_setn (lua_State *L, int t, int n) { + t = abs_index(L, t); + lua_pushliteral(L, "n"); + lua_rawget(L, t); + if (checkint(L, 1) >= 0) { /* is there a numeric field `n'? */ + lua_pushliteral(L, "n"); /* use it */ + lua_pushinteger(L, n); + lua_rawset(L, t); + } + else { /* use `sizes' */ + getsizes(L); + lua_pushvalue(L, t); + lua_pushinteger(L, n); + lua_rawset(L, -3); /* sizes[t] = n */ + lua_pop(L, 1); /* remove `sizes' */ + } +} + + +LUALIB_API int luaL_getn (lua_State *L, int t) { + int n; + t = abs_index(L, t); + lua_pushliteral(L, "n"); /* try t.n */ + lua_rawget(L, t); + if ((n = checkint(L, 1)) >= 0) return n; + getsizes(L); /* else try sizes[t] */ + lua_pushvalue(L, t); + lua_rawget(L, -2); + if ((n = checkint(L, 2)) >= 0) return n; + return (int)lua_objlen(L, t); +} + +#endif + +/* }====================================================== */ + + + +LUALIB_API const char *luaL_gsub (lua_State *L, const char *s, const char *p, + const char *r) { + const char *wild; + size_t l = strlen(p); + luaL_Buffer b; + luaL_buffinit(L, &b); + while ((wild = strstr(s, p)) != NULL) { + luaL_addlstring(&b, s, wild - s); /* push prefix */ + luaL_addstring(&b, r); /* push replacement in place of pattern */ + s = wild + l; /* continue after `p' */ + } + luaL_addstring(&b, s); /* push last suffix */ + luaL_pushresult(&b); + return lua_tostring(L, -1); +} + + +LUALIB_API const char *luaL_findtable (lua_State *L, int idx, + const char *fname, int szhint) { + const char *e; + lua_pushvalue(L, idx); + do { + e = strchr(fname, '.'); + if (e == NULL) e = fname + strlen(fname); + lua_pushlstring(L, fname, e - fname); + lua_rawget(L, -2); + if (lua_isnil(L, -1)) { /* no such field? */ + lua_pop(L, 1); /* remove this nil */ + lua_createtable(L, 0, (*e == '.' ? 1 : szhint)); /* new table for field */ + lua_pushlstring(L, fname, e - fname); + lua_pushvalue(L, -2); + lua_settable(L, -4); /* set new table into field */ + } + else if (!lua_istable(L, -1)) { /* field has a non-table value? */ + lua_pop(L, 2); /* remove table and value */ + return fname; /* return problematic part of the name */ + } + lua_remove(L, -2); /* remove previous table */ + fname = e + 1; + } while (*e == '.'); + return NULL; +} + + + +/* +** {====================================================== +** Generic Buffer manipulation +** ======================================================= +*/ + + +#define bufflen(B) ((B)->p - (B)->buffer) +#define bufffree(B) ((size_t)(LUAL_BUFFERSIZE - bufflen(B))) + +#define LIMIT (LUA_MINSTACK/2) + + +static int emptybuffer (luaL_Buffer *B) { + size_t l = bufflen(B); + if (l == 0) return 0; /* put nothing on stack */ + else { + lua_pushlstring(B->L, B->buffer, l); + B->p = B->buffer; + B->lvl++; + return 1; + } +} + + +static void adjuststack (luaL_Buffer *B) { + if (B->lvl > 1) { + lua_State *L = B->L; + int toget = 1; /* number of levels to concat */ + size_t toplen = lua_strlen(L, -1); + do { + size_t l = lua_strlen(L, -(toget+1)); + if (B->lvl - toget + 1 >= LIMIT || toplen > l) { + toplen += l; + toget++; + } + else break; + } while (toget < B->lvl); + lua_concat(L, toget); + B->lvl = B->lvl - toget + 1; + } +} + + +LUALIB_API char *luaL_prepbuffer (luaL_Buffer *B) { + if (emptybuffer(B)) + adjuststack(B); + return B->buffer; +} + + +LUALIB_API void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l) { + while (l--) + luaL_addchar(B, *s++); +} + + +LUALIB_API void luaL_addstring (luaL_Buffer *B, const char *s) { + luaL_addlstring(B, s, strlen(s)); +} + + +LUALIB_API void luaL_pushresult (luaL_Buffer *B) { + emptybuffer(B); + lua_concat(B->L, B->lvl); + B->lvl = 1; +} + + +LUALIB_API void luaL_addvalue (luaL_Buffer *B) { + lua_State *L = B->L; + size_t vl; + const char *s = lua_tolstring(L, -1, &vl); + if (vl <= bufffree(B)) { /* fit into buffer? */ + memcpy(B->p, s, vl); /* put it there */ + B->p += vl; + lua_pop(L, 1); /* remove from stack */ + } + else { + if (emptybuffer(B)) + lua_insert(L, -2); /* put buffer before new value */ + B->lvl++; /* add new value into B stack */ + adjuststack(B); + } +} + + +LUALIB_API void luaL_buffinit (lua_State *L, luaL_Buffer *B) { + B->L = L; + B->p = B->buffer; + B->lvl = 0; +} + +/* }====================================================== */ + + +LUALIB_API int luaL_ref (lua_State *L, int t) { + int ref; + t = abs_index(L, t); + if (lua_isnil(L, -1)) { + lua_pop(L, 1); /* remove from stack */ + return LUA_REFNIL; /* `nil' has a unique fixed reference */ + } + lua_rawgeti(L, t, FREELIST_REF); /* get first free element */ + ref = (int)lua_tointeger(L, -1); /* ref = t[FREELIST_REF] */ + lua_pop(L, 1); /* remove it from stack */ + if (ref != 0) { /* any free element? */ + lua_rawgeti(L, t, ref); /* remove it from list */ + lua_rawseti(L, t, FREELIST_REF); /* (t[FREELIST_REF] = t[ref]) */ + } + else { /* no free elements */ + ref = (int)lua_objlen(L, t); + ref++; /* create new reference */ + } + lua_rawseti(L, t, ref); + return ref; +} + + +LUALIB_API void luaL_unref (lua_State *L, int t, int ref) { + if (ref >= 0) { + t = abs_index(L, t); + lua_rawgeti(L, t, FREELIST_REF); + lua_rawseti(L, t, ref); /* t[ref] = t[FREELIST_REF] */ + lua_pushinteger(L, ref); + lua_rawseti(L, t, FREELIST_REF); /* t[FREELIST_REF] = ref */ + } +} + + + +/* +** {====================================================== +** Load functions +** ======================================================= +*/ + +typedef struct LoadF { + int extraline; + FILE *f; + char buff[LUAL_BUFFERSIZE]; +} LoadF; + + +static const char *getF (lua_State *L, void *ud, size_t *size) { + LoadF *lf = (LoadF *)ud; + (void)L; + if (lf->extraline) { + lf->extraline = 0; + *size = 1; + return "\n"; + } + if (feof(lf->f)) return NULL; + *size = fread(lf->buff, 1, sizeof(lf->buff), lf->f); + return (*size > 0) ? lf->buff : NULL; +} + + +static int errfile (lua_State *L, const char *what, int fnameindex) { + const char *serr = strerror(errno); + const char *filename = lua_tostring(L, fnameindex) + 1; + lua_pushfstring(L, "cannot %s %s: %s", what, filename, serr); + lua_remove(L, fnameindex); + return LUA_ERRFILE; +} + + +LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) { + LoadF lf; + int status, readstatus; + int c; + int fnameindex = lua_gettop(L) + 1; /* index of filename on the stack */ + lf.extraline = 0; + if (filename == NULL) { + lua_pushliteral(L, "=stdin"); + lf.f = stdin; + } + else { + lua_pushfstring(L, "@%s", filename); + lf.f = fopen(filename, "r"); + if (lf.f == NULL) return errfile(L, "open", fnameindex); + } + c = getc(lf.f); + if (c == '#') { /* Unix exec. file? */ + lf.extraline = 1; + while ((c = getc(lf.f)) != EOF && c != '\n') ; /* skip first line */ + if (c == '\n') c = getc(lf.f); + } + if (c == LUA_SIGNATURE[0] && filename) { /* binary file? */ + lf.f = freopen(filename, "rb", lf.f); /* reopen in binary mode */ + if (lf.f == NULL) return errfile(L, "reopen", fnameindex); + /* skip eventual `#!...' */ + while ((c = getc(lf.f)) != EOF && c != LUA_SIGNATURE[0]) ; + lf.extraline = 0; + } + ungetc(c, lf.f); + status = lua_load(L, getF, &lf, lua_tostring(L, -1)); + readstatus = ferror(lf.f); + if (filename) fclose(lf.f); /* close file (even in case of errors) */ + if (readstatus) { + lua_settop(L, fnameindex); /* ignore results from `lua_load' */ + return errfile(L, "read", fnameindex); + } + lua_remove(L, fnameindex); + return status; +} + + +typedef struct LoadS { + const char *s; + size_t size; +} LoadS; + + +static const char *getS (lua_State *L, void *ud, size_t *size) { + LoadS *ls = (LoadS *)ud; + (void)L; + if (ls->size == 0) return NULL; + *size = ls->size; + ls->size = 0; + return ls->s; +} + + +LUALIB_API int luaL_loadbuffer (lua_State *L, const char *buff, size_t size, + const char *name) { + LoadS ls; + ls.s = buff; + ls.size = size; + return lua_load(L, getS, &ls, name); +} + + +LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s) { + return luaL_loadbuffer(L, s, strlen(s), s); +} + + + +/* }====================================================== */ + + +static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) { + (void)ud; + (void)osize; + if (nsize == 0) { + free(ptr); + return NULL; + } + else + return realloc(ptr, nsize); +} + + +static int panic (lua_State *L) { + (void)L; /* to avoid warnings */ + fprintf(stderr, "PANIC: unprotected error in call to Lua API (%s)\n", + lua_tostring(L, -1)); + return 0; +} + + +LUALIB_API lua_State *luaL_newstate (void) { + lua_State *L = lua_newstate(l_alloc, NULL); + if (L) lua_atpanic(L, &panic); + return L; +} + diff --git a/mk/linux/mojosetup/lua/src/lauxlib.h b/mk/linux/mojosetup/lua/src/lauxlib.h new file mode 100644 index 00000000..34258235 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lauxlib.h @@ -0,0 +1,174 @@ +/* +** $Id: lauxlib.h,v 1.88.1.1 2007/12/27 13:02:25 roberto Exp $ +** Auxiliary functions for building Lua libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lauxlib_h +#define lauxlib_h + + +#include +#include + +#include "lua.h" + + +#if defined(LUA_COMPAT_GETN) +LUALIB_API int (luaL_getn) (lua_State *L, int t); +LUALIB_API void (luaL_setn) (lua_State *L, int t, int n); +#else +#define luaL_getn(L,i) ((int)lua_objlen(L, i)) +#define luaL_setn(L,i,j) ((void)0) /* no op! */ +#endif + +#if defined(LUA_COMPAT_OPENLIB) +#define luaI_openlib luaL_openlib +#endif + + +/* extra error code for `luaL_load' */ +#define LUA_ERRFILE (LUA_ERRERR+1) + + +typedef struct luaL_Reg { + const char *name; + lua_CFunction func; +} luaL_Reg; + + + +LUALIB_API void (luaI_openlib) (lua_State *L, const char *libname, + const luaL_Reg *l, int nup); +LUALIB_API void (luaL_register) (lua_State *L, const char *libname, + const luaL_Reg *l); +LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e); +LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e); +LUALIB_API int (luaL_typerror) (lua_State *L, int narg, const char *tname); +LUALIB_API int (luaL_argerror) (lua_State *L, int numarg, const char *extramsg); +LUALIB_API const char *(luaL_checklstring) (lua_State *L, int numArg, + size_t *l); +LUALIB_API const char *(luaL_optlstring) (lua_State *L, int numArg, + const char *def, size_t *l); +LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int numArg); +LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int nArg, lua_Number def); + +LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int numArg); +LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int nArg, + lua_Integer def); + +LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg); +LUALIB_API void (luaL_checktype) (lua_State *L, int narg, int t); +LUALIB_API void (luaL_checkany) (lua_State *L, int narg); + +LUALIB_API int (luaL_newmetatable) (lua_State *L, const char *tname); +LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname); + +LUALIB_API void (luaL_where) (lua_State *L, int lvl); +LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...); + +LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def, + const char *const lst[]); + +LUALIB_API int (luaL_ref) (lua_State *L, int t); +LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref); + +LUALIB_API int (luaL_loadfile) (lua_State *L, const char *filename); +LUALIB_API int (luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz, + const char *name); +LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s); + +LUALIB_API lua_State *(luaL_newstate) (void); + + +LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p, + const char *r); + +LUALIB_API const char *(luaL_findtable) (lua_State *L, int idx, + const char *fname, int szhint); + + + + +/* +** =============================================================== +** some useful macros +** =============================================================== +*/ + +#define luaL_argcheck(L, cond,numarg,extramsg) \ + ((void)((cond) || luaL_argerror(L, (numarg), (extramsg)))) +#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL)) +#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL)) +#define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n))) +#define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d))) +#define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n))) +#define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d))) + +#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i))) + +#define luaL_dofile(L, fn) \ + (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_dostring(L, s) \ + (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n))) + +#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n))) + +/* +** {====================================================== +** Generic Buffer manipulation +** ======================================================= +*/ + + + +typedef struct luaL_Buffer { + char *p; /* current position in buffer */ + int lvl; /* number of strings in the stack (level) */ + lua_State *L; + char buffer[LUAL_BUFFERSIZE]; +} luaL_Buffer; + +#define luaL_addchar(B,c) \ + ((void)((B)->p < ((B)->buffer+LUAL_BUFFERSIZE) || luaL_prepbuffer(B)), \ + (*(B)->p++ = (char)(c))) + +/* compatibility only */ +#define luaL_putchar(B,c) luaL_addchar(B,c) + +#define luaL_addsize(B,n) ((B)->p += (n)) + +LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B); +LUALIB_API char *(luaL_prepbuffer) (luaL_Buffer *B); +LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l); +LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s); +LUALIB_API void (luaL_addvalue) (luaL_Buffer *B); +LUALIB_API void (luaL_pushresult) (luaL_Buffer *B); + + +/* }====================================================== */ + + +/* compatibility with ref system */ + +/* pre-defined references */ +#define LUA_NOREF (-2) +#define LUA_REFNIL (-1) + +#define lua_ref(L,lock) ((lock) ? luaL_ref(L, LUA_REGISTRYINDEX) : \ + (lua_pushstring(L, "unlocked references are obsolete"), lua_error(L), 0)) + +#define lua_unref(L,ref) luaL_unref(L, LUA_REGISTRYINDEX, (ref)) + +#define lua_getref(L,ref) lua_rawgeti(L, LUA_REGISTRYINDEX, (ref)) + + +#define luaL_reg luaL_Reg + +#endif + + diff --git a/mk/linux/mojosetup/lua/src/lbaselib.c b/mk/linux/mojosetup/lua/src/lbaselib.c new file mode 100644 index 00000000..2a4c079d --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lbaselib.c @@ -0,0 +1,653 @@ +/* +** $Id: lbaselib.c,v 1.191.1.6 2008/02/14 16:46:22 roberto Exp $ +** Basic library +** See Copyright Notice in lua.h +*/ + + + +#include +#include +#include +#include + +#define lbaselib_c +#define LUA_LIB + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + + + +/* +** If your system does not support `stdout', you can just remove this function. +** If you need, you can define your own `print' function, following this +** model but changing `fputs' to put the strings at a proper place +** (a console window or a log file, for instance). +*/ +static int luaB_print (lua_State *L) { + int n = lua_gettop(L); /* number of arguments */ + int i; + lua_getglobal(L, "tostring"); + for (i=1; i<=n; i++) { + const char *s; + lua_pushvalue(L, -1); /* function to be called */ + lua_pushvalue(L, i); /* value to print */ + lua_call(L, 1, 1); + s = lua_tostring(L, -1); /* get result */ + if (s == NULL) + return luaL_error(L, LUA_QL("tostring") " must return a string to " + LUA_QL("print")); + if (i>1) fputs("\t", stdout); + fputs(s, stdout); + lua_pop(L, 1); /* pop result */ + } + fputs("\n", stdout); + return 0; +} + + +static int luaB_tonumber (lua_State *L) { + int base = luaL_optint(L, 2, 10); + if (base == 10) { /* standard conversion */ + luaL_checkany(L, 1); + if (lua_isnumber(L, 1)) { + lua_pushnumber(L, lua_tonumber(L, 1)); + return 1; + } + } + else { + const char *s1 = luaL_checkstring(L, 1); + char *s2; + unsigned long n; + luaL_argcheck(L, 2 <= base && base <= 36, 2, "base out of range"); + n = strtoul(s1, &s2, base); + if (s1 != s2) { /* at least one valid digit? */ + while (isspace((unsigned char)(*s2))) s2++; /* skip trailing spaces */ + if (*s2 == '\0') { /* no invalid trailing characters? */ + lua_pushnumber(L, (lua_Number)n); + return 1; + } + } + } + lua_pushnil(L); /* else not a number */ + return 1; +} + + +static int luaB_error (lua_State *L) { + int level = luaL_optint(L, 2, 1); + lua_settop(L, 1); + if (lua_isstring(L, 1) && level > 0) { /* add extra information? */ + luaL_where(L, level); + lua_pushvalue(L, 1); + lua_concat(L, 2); + } + return lua_error(L); +} + + +static int luaB_getmetatable (lua_State *L) { + luaL_checkany(L, 1); + if (!lua_getmetatable(L, 1)) { + lua_pushnil(L); + return 1; /* no metatable */ + } + luaL_getmetafield(L, 1, "__metatable"); + return 1; /* returns either __metatable field (if present) or metatable */ +} + + +static int luaB_setmetatable (lua_State *L) { + int t = lua_type(L, 2); + luaL_checktype(L, 1, LUA_TTABLE); + luaL_argcheck(L, t == LUA_TNIL || t == LUA_TTABLE, 2, + "nil or table expected"); + if (luaL_getmetafield(L, 1, "__metatable")) + luaL_error(L, "cannot change a protected metatable"); + lua_settop(L, 2); + lua_setmetatable(L, 1); + return 1; +} + + +static void getfunc (lua_State *L, int opt) { + if (lua_isfunction(L, 1)) lua_pushvalue(L, 1); + else { + lua_Debug ar; + int level = opt ? luaL_optint(L, 1, 1) : luaL_checkint(L, 1); + luaL_argcheck(L, level >= 0, 1, "level must be non-negative"); + if (lua_getstack(L, level, &ar) == 0) + luaL_argerror(L, 1, "invalid level"); + lua_getinfo(L, "f", &ar); + if (lua_isnil(L, -1)) + luaL_error(L, "no function environment for tail call at level %d", + level); + } +} + + +static int luaB_getfenv (lua_State *L) { + getfunc(L, 1); + if (lua_iscfunction(L, -1)) /* is a C function? */ + lua_pushvalue(L, LUA_GLOBALSINDEX); /* return the thread's global env. */ + else + lua_getfenv(L, -1); + return 1; +} + + +static int luaB_setfenv (lua_State *L) { + luaL_checktype(L, 2, LUA_TTABLE); + getfunc(L, 0); + lua_pushvalue(L, 2); + if (lua_isnumber(L, 1) && lua_tonumber(L, 1) == 0) { + /* change environment of current thread */ + lua_pushthread(L); + lua_insert(L, -2); + lua_setfenv(L, -2); + return 0; + } + else if (lua_iscfunction(L, -2) || lua_setfenv(L, -2) == 0) + luaL_error(L, + LUA_QL("setfenv") " cannot change environment of given object"); + return 1; +} + + +static int luaB_rawequal (lua_State *L) { + luaL_checkany(L, 1); + luaL_checkany(L, 2); + lua_pushboolean(L, lua_rawequal(L, 1, 2)); + return 1; +} + + +static int luaB_rawget (lua_State *L) { + luaL_checktype(L, 1, LUA_TTABLE); + luaL_checkany(L, 2); + lua_settop(L, 2); + lua_rawget(L, 1); + return 1; +} + +static int luaB_rawset (lua_State *L) { + luaL_checktype(L, 1, LUA_TTABLE); + luaL_checkany(L, 2); + luaL_checkany(L, 3); + lua_settop(L, 3); + lua_rawset(L, 1); + return 1; +} + + +static int luaB_gcinfo (lua_State *L) { + lua_pushinteger(L, lua_getgccount(L)); + return 1; +} + + +static int luaB_collectgarbage (lua_State *L) { + static const char *const opts[] = {"stop", "restart", "collect", + "count", "step", "setpause", "setstepmul", NULL}; + static const int optsnum[] = {LUA_GCSTOP, LUA_GCRESTART, LUA_GCCOLLECT, + LUA_GCCOUNT, LUA_GCSTEP, LUA_GCSETPAUSE, LUA_GCSETSTEPMUL}; + int o = luaL_checkoption(L, 1, "collect", opts); + int ex = luaL_optint(L, 2, 0); + int res = lua_gc(L, optsnum[o], ex); + switch (optsnum[o]) { + case LUA_GCCOUNT: { + int b = lua_gc(L, LUA_GCCOUNTB, 0); + lua_pushnumber(L, res + ((lua_Number)b/1024)); + return 1; + } + case LUA_GCSTEP: { + lua_pushboolean(L, res); + return 1; + } + default: { + lua_pushnumber(L, res); + return 1; + } + } +} + + +static int luaB_type (lua_State *L) { + luaL_checkany(L, 1); + lua_pushstring(L, luaL_typename(L, 1)); + return 1; +} + + +static int luaB_next (lua_State *L) { + luaL_checktype(L, 1, LUA_TTABLE); + lua_settop(L, 2); /* create a 2nd argument if there isn't one */ + if (lua_next(L, 1)) + return 2; + else { + lua_pushnil(L); + return 1; + } +} + + +static int luaB_pairs (lua_State *L) { + luaL_checktype(L, 1, LUA_TTABLE); + lua_pushvalue(L, lua_upvalueindex(1)); /* return generator, */ + lua_pushvalue(L, 1); /* state, */ + lua_pushnil(L); /* and initial value */ + return 3; +} + + +static int ipairsaux (lua_State *L) { + int i = luaL_checkint(L, 2); + luaL_checktype(L, 1, LUA_TTABLE); + i++; /* next value */ + lua_pushinteger(L, i); + lua_rawgeti(L, 1, i); + return (lua_isnil(L, -1)) ? 0 : 2; +} + + +static int luaB_ipairs (lua_State *L) { + luaL_checktype(L, 1, LUA_TTABLE); + lua_pushvalue(L, lua_upvalueindex(1)); /* return generator, */ + lua_pushvalue(L, 1); /* state, */ + lua_pushinteger(L, 0); /* and initial value */ + return 3; +} + + +static int load_aux (lua_State *L, int status) { + if (status == 0) /* OK? */ + return 1; + else { + lua_pushnil(L); + lua_insert(L, -2); /* put before error message */ + return 2; /* return nil plus error message */ + } +} + + +static int luaB_loadstring (lua_State *L) { + size_t l; + const char *s = luaL_checklstring(L, 1, &l); + const char *chunkname = luaL_optstring(L, 2, s); + return load_aux(L, luaL_loadbuffer(L, s, l, chunkname)); +} + + +static int luaB_loadfile (lua_State *L) { + const char *fname = luaL_optstring(L, 1, NULL); + return load_aux(L, luaL_loadfile(L, fname)); +} + + +/* +** Reader for generic `load' function: `lua_load' uses the +** stack for internal stuff, so the reader cannot change the +** stack top. Instead, it keeps its resulting string in a +** reserved slot inside the stack. +*/ +static const char *generic_reader (lua_State *L, void *ud, size_t *size) { + (void)ud; /* to avoid warnings */ + luaL_checkstack(L, 2, "too many nested functions"); + lua_pushvalue(L, 1); /* get function */ + lua_call(L, 0, 1); /* call it */ + if (lua_isnil(L, -1)) { + *size = 0; + return NULL; + } + else if (lua_isstring(L, -1)) { + lua_replace(L, 3); /* save string in a reserved stack slot */ + return lua_tolstring(L, 3, size); + } + else luaL_error(L, "reader function must return a string"); + return NULL; /* to avoid warnings */ +} + + +static int luaB_load (lua_State *L) { + int status; + const char *cname = luaL_optstring(L, 2, "=(load)"); + luaL_checktype(L, 1, LUA_TFUNCTION); + lua_settop(L, 3); /* function, eventual name, plus one reserved slot */ + status = lua_load(L, generic_reader, NULL, cname); + return load_aux(L, status); +} + + +static int luaB_dofile (lua_State *L) { + const char *fname = luaL_optstring(L, 1, NULL); + int n = lua_gettop(L); + if (luaL_loadfile(L, fname) != 0) lua_error(L); + lua_call(L, 0, LUA_MULTRET); + return lua_gettop(L) - n; +} + + +static int luaB_assert (lua_State *L) { + luaL_checkany(L, 1); + if (!lua_toboolean(L, 1)) + return luaL_error(L, "%s", luaL_optstring(L, 2, "assertion failed!")); + return lua_gettop(L); +} + + +static int luaB_unpack (lua_State *L) { + int i, e, n; + luaL_checktype(L, 1, LUA_TTABLE); + i = luaL_optint(L, 2, 1); + e = luaL_opt(L, luaL_checkint, 3, luaL_getn(L, 1)); + if (i > e) return 0; /* empty range */ + n = e - i + 1; /* number of elements */ + if (n <= 0 || !lua_checkstack(L, n)) /* n <= 0 means arith. overflow */ + return luaL_error(L, "too many results to unpack"); + lua_rawgeti(L, 1, i); /* push arg[i] (avoiding overflow problems) */ + while (i++ < e) /* push arg[i + 1...e] */ + lua_rawgeti(L, 1, i); + return n; +} + + +static int luaB_select (lua_State *L) { + int n = lua_gettop(L); + if (lua_type(L, 1) == LUA_TSTRING && *lua_tostring(L, 1) == '#') { + lua_pushinteger(L, n-1); + return 1; + } + else { + int i = luaL_checkint(L, 1); + if (i < 0) i = n + i; + else if (i > n) i = n; + luaL_argcheck(L, 1 <= i, 1, "index out of range"); + return n - i; + } +} + + +static int luaB_pcall (lua_State *L) { + int status; + luaL_checkany(L, 1); + status = lua_pcall(L, lua_gettop(L) - 1, LUA_MULTRET, 0); + lua_pushboolean(L, (status == 0)); + lua_insert(L, 1); + return lua_gettop(L); /* return status + all results */ +} + + +static int luaB_xpcall (lua_State *L) { + int status; + luaL_checkany(L, 2); + lua_settop(L, 2); + lua_insert(L, 1); /* put error function under function to be called */ + status = lua_pcall(L, 0, LUA_MULTRET, 1); + lua_pushboolean(L, (status == 0)); + lua_replace(L, 1); + return lua_gettop(L); /* return status + all results */ +} + + +static int luaB_tostring (lua_State *L) { + luaL_checkany(L, 1); + if (luaL_callmeta(L, 1, "__tostring")) /* is there a metafield? */ + return 1; /* use its value */ + switch (lua_type(L, 1)) { + case LUA_TNUMBER: + lua_pushstring(L, lua_tostring(L, 1)); + break; + case LUA_TSTRING: + lua_pushvalue(L, 1); + break; + case LUA_TBOOLEAN: + lua_pushstring(L, (lua_toboolean(L, 1) ? "true" : "false")); + break; + case LUA_TNIL: + lua_pushliteral(L, "nil"); + break; + default: + lua_pushfstring(L, "%s: %p", luaL_typename(L, 1), lua_topointer(L, 1)); + break; + } + return 1; +} + + +static int luaB_newproxy (lua_State *L) { + lua_settop(L, 1); + lua_newuserdata(L, 0); /* create proxy */ + if (lua_toboolean(L, 1) == 0) + return 1; /* no metatable */ + else if (lua_isboolean(L, 1)) { + lua_newtable(L); /* create a new metatable `m' ... */ + lua_pushvalue(L, -1); /* ... and mark `m' as a valid metatable */ + lua_pushboolean(L, 1); + lua_rawset(L, lua_upvalueindex(1)); /* weaktable[m] = true */ + } + else { + int validproxy = 0; /* to check if weaktable[metatable(u)] == true */ + if (lua_getmetatable(L, 1)) { + lua_rawget(L, lua_upvalueindex(1)); + validproxy = lua_toboolean(L, -1); + lua_pop(L, 1); /* remove value */ + } + luaL_argcheck(L, validproxy, 1, "boolean or proxy expected"); + lua_getmetatable(L, 1); /* metatable is valid; get it */ + } + lua_setmetatable(L, 2); + return 1; +} + + +static const luaL_Reg base_funcs[] = { + {"assert", luaB_assert}, + {"collectgarbage", luaB_collectgarbage}, + {"dofile", luaB_dofile}, + {"error", luaB_error}, + {"gcinfo", luaB_gcinfo}, + {"getfenv", luaB_getfenv}, + {"getmetatable", luaB_getmetatable}, + {"loadfile", luaB_loadfile}, + {"load", luaB_load}, + {"loadstring", luaB_loadstring}, + {"next", luaB_next}, + {"pcall", luaB_pcall}, + {"print", luaB_print}, + {"rawequal", luaB_rawequal}, + {"rawget", luaB_rawget}, + {"rawset", luaB_rawset}, + {"select", luaB_select}, + {"setfenv", luaB_setfenv}, + {"setmetatable", luaB_setmetatable}, + {"tonumber", luaB_tonumber}, + {"tostring", luaB_tostring}, + {"type", luaB_type}, + {"unpack", luaB_unpack}, + {"xpcall", luaB_xpcall}, + {NULL, NULL} +}; + + +/* +** {====================================================== +** Coroutine library +** ======================================================= +*/ + +#define CO_RUN 0 /* running */ +#define CO_SUS 1 /* suspended */ +#define CO_NOR 2 /* 'normal' (it resumed another coroutine) */ +#define CO_DEAD 3 + +static const char *const statnames[] = + {"running", "suspended", "normal", "dead"}; + +static int costatus (lua_State *L, lua_State *co) { + if (L == co) return CO_RUN; + switch (lua_status(co)) { + case LUA_YIELD: + return CO_SUS; + case 0: { + lua_Debug ar; + if (lua_getstack(co, 0, &ar) > 0) /* does it have frames? */ + return CO_NOR; /* it is running */ + else if (lua_gettop(co) == 0) + return CO_DEAD; + else + return CO_SUS; /* initial state */ + } + default: /* some error occured */ + return CO_DEAD; + } +} + + +static int luaB_costatus (lua_State *L) { + lua_State *co = lua_tothread(L, 1); + luaL_argcheck(L, co, 1, "coroutine expected"); + lua_pushstring(L, statnames[costatus(L, co)]); + return 1; +} + + +static int auxresume (lua_State *L, lua_State *co, int narg) { + int status = costatus(L, co); + if (!lua_checkstack(co, narg)) + luaL_error(L, "too many arguments to resume"); + if (status != CO_SUS) { + lua_pushfstring(L, "cannot resume %s coroutine", statnames[status]); + return -1; /* error flag */ + } + lua_xmove(L, co, narg); + lua_setlevel(L, co); + status = lua_resume(co, narg); + if (status == 0 || status == LUA_YIELD) { + int nres = lua_gettop(co); + if (!lua_checkstack(L, nres + 1)) + luaL_error(L, "too many results to resume"); + lua_xmove(co, L, nres); /* move yielded values */ + return nres; + } + else { + lua_xmove(co, L, 1); /* move error message */ + return -1; /* error flag */ + } +} + + +static int luaB_coresume (lua_State *L) { + lua_State *co = lua_tothread(L, 1); + int r; + luaL_argcheck(L, co, 1, "coroutine expected"); + r = auxresume(L, co, lua_gettop(L) - 1); + if (r < 0) { + lua_pushboolean(L, 0); + lua_insert(L, -2); + return 2; /* return false + error message */ + } + else { + lua_pushboolean(L, 1); + lua_insert(L, -(r + 1)); + return r + 1; /* return true + `resume' returns */ + } +} + + +static int luaB_auxwrap (lua_State *L) { + lua_State *co = lua_tothread(L, lua_upvalueindex(1)); + int r = auxresume(L, co, lua_gettop(L)); + if (r < 0) { + if (lua_isstring(L, -1)) { /* error object is a string? */ + luaL_where(L, 1); /* add extra info */ + lua_insert(L, -2); + lua_concat(L, 2); + } + lua_error(L); /* propagate error */ + } + return r; +} + + +static int luaB_cocreate (lua_State *L) { + lua_State *NL = lua_newthread(L); + luaL_argcheck(L, lua_isfunction(L, 1) && !lua_iscfunction(L, 1), 1, + "Lua function expected"); + lua_pushvalue(L, 1); /* move function to top */ + lua_xmove(L, NL, 1); /* move function from L to NL */ + return 1; +} + + +static int luaB_cowrap (lua_State *L) { + luaB_cocreate(L); + lua_pushcclosure(L, luaB_auxwrap, 1); + return 1; +} + + +static int luaB_yield (lua_State *L) { + return lua_yield(L, lua_gettop(L)); +} + + +static int luaB_corunning (lua_State *L) { + if (lua_pushthread(L)) + lua_pushnil(L); /* main thread is not a coroutine */ + return 1; +} + + +static const luaL_Reg co_funcs[] = { + {"create", luaB_cocreate}, + {"resume", luaB_coresume}, + {"running", luaB_corunning}, + {"status", luaB_costatus}, + {"wrap", luaB_cowrap}, + {"yield", luaB_yield}, + {NULL, NULL} +}; + +/* }====================================================== */ + + +static void auxopen (lua_State *L, const char *name, + lua_CFunction f, lua_CFunction u) { + lua_pushcfunction(L, u); + lua_pushcclosure(L, f, 1); + lua_setfield(L, -2, name); +} + + +static void base_open (lua_State *L) { + /* set global _G */ + lua_pushvalue(L, LUA_GLOBALSINDEX); + lua_setglobal(L, "_G"); + /* open lib into global table */ + luaL_register(L, "_G", base_funcs); + lua_pushliteral(L, LUA_VERSION); + lua_setglobal(L, "_VERSION"); /* set global _VERSION */ + /* `ipairs' and `pairs' need auxliliary functions as upvalues */ + auxopen(L, "ipairs", luaB_ipairs, ipairsaux); + auxopen(L, "pairs", luaB_pairs, luaB_next); + /* `newproxy' needs a weaktable as upvalue */ + lua_createtable(L, 0, 1); /* new table `w' */ + lua_pushvalue(L, -1); /* `w' will be its own metatable */ + lua_setmetatable(L, -2); + lua_pushliteral(L, "kv"); + lua_setfield(L, -2, "__mode"); /* metatable(w).__mode = "kv" */ + lua_pushcclosure(L, luaB_newproxy, 1); + lua_setglobal(L, "newproxy"); /* set global `newproxy' */ +} + + +LUALIB_API int luaopen_base (lua_State *L) { + base_open(L); + luaL_register(L, LUA_COLIBNAME, co_funcs); + return 2; +} + diff --git a/mk/linux/mojosetup/lua/src/lcode.c b/mk/linux/mojosetup/lua/src/lcode.c new file mode 100644 index 00000000..cff626b7 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lcode.c @@ -0,0 +1,839 @@ +/* +** $Id: lcode.c,v 2.25.1.3 2007/12/28 15:32:23 roberto Exp $ +** Code generator for Lua +** See Copyright Notice in lua.h +*/ + + +#include + +#define lcode_c +#define LUA_CORE + +#include "lua.h" + +#include "lcode.h" +#include "ldebug.h" +#include "ldo.h" +#include "lgc.h" +#include "llex.h" +#include "lmem.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lparser.h" +#include "ltable.h" + + +#define hasjumps(e) ((e)->t != (e)->f) + + +static int isnumeral(expdesc *e) { + return (e->k == VKNUM && e->t == NO_JUMP && e->f == NO_JUMP); +} + + +void luaK_nil (FuncState *fs, int from, int n) { + Instruction *previous; + if (fs->pc > fs->lasttarget) { /* no jumps to current position? */ + if (fs->pc == 0) { /* function start? */ + if (from >= fs->nactvar) + return; /* positions are already clean */ + } + else { + previous = &fs->f->code[fs->pc-1]; + if (GET_OPCODE(*previous) == OP_LOADNIL) { + int pfrom = GETARG_A(*previous); + int pto = GETARG_B(*previous); + if (pfrom <= from && from <= pto+1) { /* can connect both? */ + if (from+n-1 > pto) + SETARG_B(*previous, from+n-1); + return; + } + } + } + } + luaK_codeABC(fs, OP_LOADNIL, from, from+n-1, 0); /* else no optimization */ +} + + +int luaK_jump (FuncState *fs) { + int jpc = fs->jpc; /* save list of jumps to here */ + int j; + fs->jpc = NO_JUMP; + j = luaK_codeAsBx(fs, OP_JMP, 0, NO_JUMP); + luaK_concat(fs, &j, jpc); /* keep them on hold */ + return j; +} + + +void luaK_ret (FuncState *fs, int first, int nret) { + luaK_codeABC(fs, OP_RETURN, first, nret+1, 0); +} + + +static int condjump (FuncState *fs, OpCode op, int A, int B, int C) { + luaK_codeABC(fs, op, A, B, C); + return luaK_jump(fs); +} + + +static void fixjump (FuncState *fs, int pc, int dest) { + Instruction *jmp = &fs->f->code[pc]; + int offset = dest-(pc+1); + lua_assert(dest != NO_JUMP); + if (abs(offset) > MAXARG_sBx) + luaX_syntaxerror(fs->ls, "control structure too long"); + SETARG_sBx(*jmp, offset); +} + + +/* +** returns current `pc' and marks it as a jump target (to avoid wrong +** optimizations with consecutive instructions not in the same basic block). +*/ +int luaK_getlabel (FuncState *fs) { + fs->lasttarget = fs->pc; + return fs->pc; +} + + +static int getjump (FuncState *fs, int pc) { + int offset = GETARG_sBx(fs->f->code[pc]); + if (offset == NO_JUMP) /* point to itself represents end of list */ + return NO_JUMP; /* end of list */ + else + return (pc+1)+offset; /* turn offset into absolute position */ +} + + +static Instruction *getjumpcontrol (FuncState *fs, int pc) { + Instruction *pi = &fs->f->code[pc]; + if (pc >= 1 && testTMode(GET_OPCODE(*(pi-1)))) + return pi-1; + else + return pi; +} + + +/* +** check whether list has any jump that do not produce a value +** (or produce an inverted value) +*/ +static int need_value (FuncState *fs, int list) { + for (; list != NO_JUMP; list = getjump(fs, list)) { + Instruction i = *getjumpcontrol(fs, list); + if (GET_OPCODE(i) != OP_TESTSET) return 1; + } + return 0; /* not found */ +} + + +static int patchtestreg (FuncState *fs, int node, int reg) { + Instruction *i = getjumpcontrol(fs, node); + if (GET_OPCODE(*i) != OP_TESTSET) + return 0; /* cannot patch other instructions */ + if (reg != NO_REG && reg != GETARG_B(*i)) + SETARG_A(*i, reg); + else /* no register to put value or register already has the value */ + *i = CREATE_ABC(OP_TEST, GETARG_B(*i), 0, GETARG_C(*i)); + + return 1; +} + + +static void removevalues (FuncState *fs, int list) { + for (; list != NO_JUMP; list = getjump(fs, list)) + patchtestreg(fs, list, NO_REG); +} + + +static void patchlistaux (FuncState *fs, int list, int vtarget, int reg, + int dtarget) { + while (list != NO_JUMP) { + int next = getjump(fs, list); + if (patchtestreg(fs, list, reg)) + fixjump(fs, list, vtarget); + else + fixjump(fs, list, dtarget); /* jump to default target */ + list = next; + } +} + + +static void dischargejpc (FuncState *fs) { + patchlistaux(fs, fs->jpc, fs->pc, NO_REG, fs->pc); + fs->jpc = NO_JUMP; +} + + +void luaK_patchlist (FuncState *fs, int list, int target) { + if (target == fs->pc) + luaK_patchtohere(fs, list); + else { + lua_assert(target < fs->pc); + patchlistaux(fs, list, target, NO_REG, target); + } +} + + +void luaK_patchtohere (FuncState *fs, int list) { + luaK_getlabel(fs); + luaK_concat(fs, &fs->jpc, list); +} + + +void luaK_concat (FuncState *fs, int *l1, int l2) { + if (l2 == NO_JUMP) return; + else if (*l1 == NO_JUMP) + *l1 = l2; + else { + int list = *l1; + int next; + while ((next = getjump(fs, list)) != NO_JUMP) /* find last element */ + list = next; + fixjump(fs, list, l2); + } +} + + +void luaK_checkstack (FuncState *fs, int n) { + int newstack = fs->freereg + n; + if (newstack > fs->f->maxstacksize) { + if (newstack >= MAXSTACK) + luaX_syntaxerror(fs->ls, "function or expression too complex"); + fs->f->maxstacksize = cast_byte(newstack); + } +} + + +void luaK_reserveregs (FuncState *fs, int n) { + luaK_checkstack(fs, n); + fs->freereg += n; +} + + +static void freereg (FuncState *fs, int reg) { + if (!ISK(reg) && reg >= fs->nactvar) { + fs->freereg--; + lua_assert(reg == fs->freereg); + } +} + + +static void freeexp (FuncState *fs, expdesc *e) { + if (e->k == VNONRELOC) + freereg(fs, e->u.s.info); +} + + +static int addk (FuncState *fs, TValue *k, TValue *v) { + lua_State *L = fs->L; + TValue *idx = luaH_set(L, fs->h, k); + Proto *f = fs->f; + int oldsize = f->sizek; + if (ttisnumber(idx)) { + lua_assert(luaO_rawequalObj(&fs->f->k[cast_int(nvalue(idx))], v)); + return cast_int(nvalue(idx)); + } + else { /* constant not found; create a new entry */ + setnvalue(idx, cast_num(fs->nk)); + luaM_growvector(L, f->k, fs->nk, f->sizek, TValue, + MAXARG_Bx, "constant table overflow"); + while (oldsize < f->sizek) setnilvalue(&f->k[oldsize++]); + setobj(L, &f->k[fs->nk], v); + luaC_barrier(L, f, v); + return fs->nk++; + } +} + + +int luaK_stringK (FuncState *fs, TString *s) { + TValue o; + setsvalue(fs->L, &o, s); + return addk(fs, &o, &o); +} + + +int luaK_numberK (FuncState *fs, lua_Number r) { + TValue o; + setnvalue(&o, r); + return addk(fs, &o, &o); +} + + +static int boolK (FuncState *fs, int b) { + TValue o; + setbvalue(&o, b); + return addk(fs, &o, &o); +} + + +static int nilK (FuncState *fs) { + TValue k, v; + setnilvalue(&v); + /* cannot use nil as key; instead use table itself to represent nil */ + sethvalue(fs->L, &k, fs->h); + return addk(fs, &k, &v); +} + + +void luaK_setreturns (FuncState *fs, expdesc *e, int nresults) { + if (e->k == VCALL) { /* expression is an open function call? */ + SETARG_C(getcode(fs, e), nresults+1); + } + else if (e->k == VVARARG) { + SETARG_B(getcode(fs, e), nresults+1); + SETARG_A(getcode(fs, e), fs->freereg); + luaK_reserveregs(fs, 1); + } +} + + +void luaK_setoneret (FuncState *fs, expdesc *e) { + if (e->k == VCALL) { /* expression is an open function call? */ + e->k = VNONRELOC; + e->u.s.info = GETARG_A(getcode(fs, e)); + } + else if (e->k == VVARARG) { + SETARG_B(getcode(fs, e), 2); + e->k = VRELOCABLE; /* can relocate its simple result */ + } +} + + +void luaK_dischargevars (FuncState *fs, expdesc *e) { + switch (e->k) { + case VLOCAL: { + e->k = VNONRELOC; + break; + } + case VUPVAL: { + e->u.s.info = luaK_codeABC(fs, OP_GETUPVAL, 0, e->u.s.info, 0); + e->k = VRELOCABLE; + break; + } + case VGLOBAL: { + e->u.s.info = luaK_codeABx(fs, OP_GETGLOBAL, 0, e->u.s.info); + e->k = VRELOCABLE; + break; + } + case VINDEXED: { + freereg(fs, e->u.s.aux); + freereg(fs, e->u.s.info); + e->u.s.info = luaK_codeABC(fs, OP_GETTABLE, 0, e->u.s.info, e->u.s.aux); + e->k = VRELOCABLE; + break; + } + case VVARARG: + case VCALL: { + luaK_setoneret(fs, e); + break; + } + default: break; /* there is one value available (somewhere) */ + } +} + + +static int code_label (FuncState *fs, int A, int b, int jump) { + luaK_getlabel(fs); /* those instructions may be jump targets */ + return luaK_codeABC(fs, OP_LOADBOOL, A, b, jump); +} + + +static void discharge2reg (FuncState *fs, expdesc *e, int reg) { + luaK_dischargevars(fs, e); + switch (e->k) { + case VNIL: { + luaK_nil(fs, reg, 1); + break; + } + case VFALSE: case VTRUE: { + luaK_codeABC(fs, OP_LOADBOOL, reg, e->k == VTRUE, 0); + break; + } + case VK: { + luaK_codeABx(fs, OP_LOADK, reg, e->u.s.info); + break; + } + case VKNUM: { + luaK_codeABx(fs, OP_LOADK, reg, luaK_numberK(fs, e->u.nval)); + break; + } + case VRELOCABLE: { + Instruction *pc = &getcode(fs, e); + SETARG_A(*pc, reg); + break; + } + case VNONRELOC: { + if (reg != e->u.s.info) + luaK_codeABC(fs, OP_MOVE, reg, e->u.s.info, 0); + break; + } + default: { + lua_assert(e->k == VVOID || e->k == VJMP); + return; /* nothing to do... */ + } + } + e->u.s.info = reg; + e->k = VNONRELOC; +} + + +static void discharge2anyreg (FuncState *fs, expdesc *e) { + if (e->k != VNONRELOC) { + luaK_reserveregs(fs, 1); + discharge2reg(fs, e, fs->freereg-1); + } +} + + +static void exp2reg (FuncState *fs, expdesc *e, int reg) { + discharge2reg(fs, e, reg); + if (e->k == VJMP) + luaK_concat(fs, &e->t, e->u.s.info); /* put this jump in `t' list */ + if (hasjumps(e)) { + int final; /* position after whole expression */ + int p_f = NO_JUMP; /* position of an eventual LOAD false */ + int p_t = NO_JUMP; /* position of an eventual LOAD true */ + if (need_value(fs, e->t) || need_value(fs, e->f)) { + int fj = (e->k == VJMP) ? NO_JUMP : luaK_jump(fs); + p_f = code_label(fs, reg, 0, 1); + p_t = code_label(fs, reg, 1, 0); + luaK_patchtohere(fs, fj); + } + final = luaK_getlabel(fs); + patchlistaux(fs, e->f, final, reg, p_f); + patchlistaux(fs, e->t, final, reg, p_t); + } + e->f = e->t = NO_JUMP; + e->u.s.info = reg; + e->k = VNONRELOC; +} + + +void luaK_exp2nextreg (FuncState *fs, expdesc *e) { + luaK_dischargevars(fs, e); + freeexp(fs, e); + luaK_reserveregs(fs, 1); + exp2reg(fs, e, fs->freereg - 1); +} + + +int luaK_exp2anyreg (FuncState *fs, expdesc *e) { + luaK_dischargevars(fs, e); + if (e->k == VNONRELOC) { + if (!hasjumps(e)) return e->u.s.info; /* exp is already in a register */ + if (e->u.s.info >= fs->nactvar) { /* reg. is not a local? */ + exp2reg(fs, e, e->u.s.info); /* put value on it */ + return e->u.s.info; + } + } + luaK_exp2nextreg(fs, e); /* default */ + return e->u.s.info; +} + + +void luaK_exp2val (FuncState *fs, expdesc *e) { + if (hasjumps(e)) + luaK_exp2anyreg(fs, e); + else + luaK_dischargevars(fs, e); +} + + +int luaK_exp2RK (FuncState *fs, expdesc *e) { + luaK_exp2val(fs, e); + switch (e->k) { + case VKNUM: + case VTRUE: + case VFALSE: + case VNIL: { + if (fs->nk <= MAXINDEXRK) { /* constant fit in RK operand? */ + e->u.s.info = (e->k == VNIL) ? nilK(fs) : + (e->k == VKNUM) ? luaK_numberK(fs, e->u.nval) : + boolK(fs, (e->k == VTRUE)); + e->k = VK; + return RKASK(e->u.s.info); + } + else break; + } + case VK: { + if (e->u.s.info <= MAXINDEXRK) /* constant fit in argC? */ + return RKASK(e->u.s.info); + else break; + } + default: break; + } + /* not a constant in the right range: put it in a register */ + return luaK_exp2anyreg(fs, e); +} + + +void luaK_storevar (FuncState *fs, expdesc *var, expdesc *ex) { + switch (var->k) { + case VLOCAL: { + freeexp(fs, ex); + exp2reg(fs, ex, var->u.s.info); + return; + } + case VUPVAL: { + int e = luaK_exp2anyreg(fs, ex); + luaK_codeABC(fs, OP_SETUPVAL, e, var->u.s.info, 0); + break; + } + case VGLOBAL: { + int e = luaK_exp2anyreg(fs, ex); + luaK_codeABx(fs, OP_SETGLOBAL, e, var->u.s.info); + break; + } + case VINDEXED: { + int e = luaK_exp2RK(fs, ex); + luaK_codeABC(fs, OP_SETTABLE, var->u.s.info, var->u.s.aux, e); + break; + } + default: { + lua_assert(0); /* invalid var kind to store */ + break; + } + } + freeexp(fs, ex); +} + + +void luaK_self (FuncState *fs, expdesc *e, expdesc *key) { + int func; + luaK_exp2anyreg(fs, e); + freeexp(fs, e); + func = fs->freereg; + luaK_reserveregs(fs, 2); + luaK_codeABC(fs, OP_SELF, func, e->u.s.info, luaK_exp2RK(fs, key)); + freeexp(fs, key); + e->u.s.info = func; + e->k = VNONRELOC; +} + + +static void invertjump (FuncState *fs, expdesc *e) { + Instruction *pc = getjumpcontrol(fs, e->u.s.info); + lua_assert(testTMode(GET_OPCODE(*pc)) && GET_OPCODE(*pc) != OP_TESTSET && + GET_OPCODE(*pc) != OP_TEST); + SETARG_A(*pc, !(GETARG_A(*pc))); +} + + +static int jumponcond (FuncState *fs, expdesc *e, int cond) { + if (e->k == VRELOCABLE) { + Instruction ie = getcode(fs, e); + if (GET_OPCODE(ie) == OP_NOT) { + fs->pc--; /* remove previous OP_NOT */ + return condjump(fs, OP_TEST, GETARG_B(ie), 0, !cond); + } + /* else go through */ + } + discharge2anyreg(fs, e); + freeexp(fs, e); + return condjump(fs, OP_TESTSET, NO_REG, e->u.s.info, cond); +} + + +void luaK_goiftrue (FuncState *fs, expdesc *e) { + int pc; /* pc of last jump */ + luaK_dischargevars(fs, e); + switch (e->k) { + case VK: case VKNUM: case VTRUE: { + pc = NO_JUMP; /* always true; do nothing */ + break; + } + case VFALSE: { + pc = luaK_jump(fs); /* always jump */ + break; + } + case VJMP: { + invertjump(fs, e); + pc = e->u.s.info; + break; + } + default: { + pc = jumponcond(fs, e, 0); + break; + } + } + luaK_concat(fs, &e->f, pc); /* insert last jump in `f' list */ + luaK_patchtohere(fs, e->t); + e->t = NO_JUMP; +} + + +static void luaK_goiffalse (FuncState *fs, expdesc *e) { + int pc; /* pc of last jump */ + luaK_dischargevars(fs, e); + switch (e->k) { + case VNIL: case VFALSE: { + pc = NO_JUMP; /* always false; do nothing */ + break; + } + case VTRUE: { + pc = luaK_jump(fs); /* always jump */ + break; + } + case VJMP: { + pc = e->u.s.info; + break; + } + default: { + pc = jumponcond(fs, e, 1); + break; + } + } + luaK_concat(fs, &e->t, pc); /* insert last jump in `t' list */ + luaK_patchtohere(fs, e->f); + e->f = NO_JUMP; +} + + +static void codenot (FuncState *fs, expdesc *e) { + luaK_dischargevars(fs, e); + switch (e->k) { + case VNIL: case VFALSE: { + e->k = VTRUE; + break; + } + case VK: case VKNUM: case VTRUE: { + e->k = VFALSE; + break; + } + case VJMP: { + invertjump(fs, e); + break; + } + case VRELOCABLE: + case VNONRELOC: { + discharge2anyreg(fs, e); + freeexp(fs, e); + e->u.s.info = luaK_codeABC(fs, OP_NOT, 0, e->u.s.info, 0); + e->k = VRELOCABLE; + break; + } + default: { + lua_assert(0); /* cannot happen */ + break; + } + } + /* interchange true and false lists */ + { int temp = e->f; e->f = e->t; e->t = temp; } + removevalues(fs, e->f); + removevalues(fs, e->t); +} + + +void luaK_indexed (FuncState *fs, expdesc *t, expdesc *k) { + t->u.s.aux = luaK_exp2RK(fs, k); + t->k = VINDEXED; +} + + +static int constfolding (OpCode op, expdesc *e1, expdesc *e2) { + lua_Number v1, v2, r; + if (!isnumeral(e1) || !isnumeral(e2)) return 0; + v1 = e1->u.nval; + v2 = e2->u.nval; + switch (op) { + case OP_ADD: r = luai_numadd(v1, v2); break; + case OP_SUB: r = luai_numsub(v1, v2); break; + case OP_MUL: r = luai_nummul(v1, v2); break; + case OP_DIV: + if (v2 == 0) return 0; /* do not attempt to divide by 0 */ + r = luai_numdiv(v1, v2); break; + case OP_MOD: + if (v2 == 0) return 0; /* do not attempt to divide by 0 */ + r = luai_nummod(v1, v2); break; + case OP_POW: r = luai_numpow(v1, v2); break; + case OP_UNM: r = luai_numunm(v1); break; + case OP_LEN: return 0; /* no constant folding for 'len' */ + default: lua_assert(0); r = 0; break; + } + if (luai_numisnan(r)) return 0; /* do not attempt to produce NaN */ + e1->u.nval = r; + return 1; +} + + +static void codearith (FuncState *fs, OpCode op, expdesc *e1, expdesc *e2) { + if (constfolding(op, e1, e2)) + return; + else { + int o2 = (op != OP_UNM && op != OP_LEN) ? luaK_exp2RK(fs, e2) : 0; + int o1 = luaK_exp2RK(fs, e1); + if (o1 > o2) { + freeexp(fs, e1); + freeexp(fs, e2); + } + else { + freeexp(fs, e2); + freeexp(fs, e1); + } + e1->u.s.info = luaK_codeABC(fs, op, 0, o1, o2); + e1->k = VRELOCABLE; + } +} + + +static void codecomp (FuncState *fs, OpCode op, int cond, expdesc *e1, + expdesc *e2) { + int o1 = luaK_exp2RK(fs, e1); + int o2 = luaK_exp2RK(fs, e2); + freeexp(fs, e2); + freeexp(fs, e1); + if (cond == 0 && op != OP_EQ) { + int temp; /* exchange args to replace by `<' or `<=' */ + temp = o1; o1 = o2; o2 = temp; /* o1 <==> o2 */ + cond = 1; + } + e1->u.s.info = condjump(fs, op, cond, o1, o2); + e1->k = VJMP; +} + + +void luaK_prefix (FuncState *fs, UnOpr op, expdesc *e) { + expdesc e2; + e2.t = e2.f = NO_JUMP; e2.k = VKNUM; e2.u.nval = 0; + switch (op) { + case OPR_MINUS: { + if (!isnumeral(e)) + luaK_exp2anyreg(fs, e); /* cannot operate on non-numeric constants */ + codearith(fs, OP_UNM, e, &e2); + break; + } + case OPR_NOT: codenot(fs, e); break; + case OPR_LEN: { + luaK_exp2anyreg(fs, e); /* cannot operate on constants */ + codearith(fs, OP_LEN, e, &e2); + break; + } + default: lua_assert(0); + } +} + + +void luaK_infix (FuncState *fs, BinOpr op, expdesc *v) { + switch (op) { + case OPR_AND: { + luaK_goiftrue(fs, v); + break; + } + case OPR_OR: { + luaK_goiffalse(fs, v); + break; + } + case OPR_CONCAT: { + luaK_exp2nextreg(fs, v); /* operand must be on the `stack' */ + break; + } + case OPR_ADD: case OPR_SUB: case OPR_MUL: case OPR_DIV: + case OPR_MOD: case OPR_POW: { + if (!isnumeral(v)) luaK_exp2RK(fs, v); + break; + } + default: { + luaK_exp2RK(fs, v); + break; + } + } +} + + +void luaK_posfix (FuncState *fs, BinOpr op, expdesc *e1, expdesc *e2) { + switch (op) { + case OPR_AND: { + lua_assert(e1->t == NO_JUMP); /* list must be closed */ + luaK_dischargevars(fs, e2); + luaK_concat(fs, &e2->f, e1->f); + *e1 = *e2; + break; + } + case OPR_OR: { + lua_assert(e1->f == NO_JUMP); /* list must be closed */ + luaK_dischargevars(fs, e2); + luaK_concat(fs, &e2->t, e1->t); + *e1 = *e2; + break; + } + case OPR_CONCAT: { + luaK_exp2val(fs, e2); + if (e2->k == VRELOCABLE && GET_OPCODE(getcode(fs, e2)) == OP_CONCAT) { + lua_assert(e1->u.s.info == GETARG_B(getcode(fs, e2))-1); + freeexp(fs, e1); + SETARG_B(getcode(fs, e2), e1->u.s.info); + e1->k = VRELOCABLE; e1->u.s.info = e2->u.s.info; + } + else { + luaK_exp2nextreg(fs, e2); /* operand must be on the 'stack' */ + codearith(fs, OP_CONCAT, e1, e2); + } + break; + } + case OPR_ADD: codearith(fs, OP_ADD, e1, e2); break; + case OPR_SUB: codearith(fs, OP_SUB, e1, e2); break; + case OPR_MUL: codearith(fs, OP_MUL, e1, e2); break; + case OPR_DIV: codearith(fs, OP_DIV, e1, e2); break; + case OPR_MOD: codearith(fs, OP_MOD, e1, e2); break; + case OPR_POW: codearith(fs, OP_POW, e1, e2); break; + case OPR_EQ: codecomp(fs, OP_EQ, 1, e1, e2); break; + case OPR_NE: codecomp(fs, OP_EQ, 0, e1, e2); break; + case OPR_LT: codecomp(fs, OP_LT, 1, e1, e2); break; + case OPR_LE: codecomp(fs, OP_LE, 1, e1, e2); break; + case OPR_GT: codecomp(fs, OP_LT, 0, e1, e2); break; + case OPR_GE: codecomp(fs, OP_LE, 0, e1, e2); break; + default: lua_assert(0); + } +} + + +void luaK_fixline (FuncState *fs, int line) { + fs->f->lineinfo[fs->pc - 1] = line; +} + + +static int luaK_code (FuncState *fs, Instruction i, int line) { + Proto *f = fs->f; + dischargejpc(fs); /* `pc' will change */ + /* put new instruction in code array */ + luaM_growvector(fs->L, f->code, fs->pc, f->sizecode, Instruction, + MAX_INT, "code size overflow"); + f->code[fs->pc] = i; + /* save corresponding line information */ + luaM_growvector(fs->L, f->lineinfo, fs->pc, f->sizelineinfo, int, + MAX_INT, "code size overflow"); + f->lineinfo[fs->pc] = line; + return fs->pc++; +} + + +int luaK_codeABC (FuncState *fs, OpCode o, int a, int b, int c) { + lua_assert(getOpMode(o) == iABC); + lua_assert(getBMode(o) != OpArgN || b == 0); + lua_assert(getCMode(o) != OpArgN || c == 0); + return luaK_code(fs, CREATE_ABC(o, a, b, c), fs->ls->lastline); +} + + +int luaK_codeABx (FuncState *fs, OpCode o, int a, unsigned int bc) { + lua_assert(getOpMode(o) == iABx || getOpMode(o) == iAsBx); + lua_assert(getCMode(o) == OpArgN); + return luaK_code(fs, CREATE_ABx(o, a, bc), fs->ls->lastline); +} + + +void luaK_setlist (FuncState *fs, int base, int nelems, int tostore) { + int c = (nelems - 1)/LFIELDS_PER_FLUSH + 1; + int b = (tostore == LUA_MULTRET) ? 0 : tostore; + lua_assert(tostore != 0); + if (c <= MAXARG_C) + luaK_codeABC(fs, OP_SETLIST, base, b, c); + else { + luaK_codeABC(fs, OP_SETLIST, base, b, 0); + luaK_code(fs, cast(Instruction, c), fs->ls->lastline); + } + fs->freereg = base + 1; /* free registers with list values */ +} + diff --git a/mk/linux/mojosetup/lua/src/lcode.h b/mk/linux/mojosetup/lua/src/lcode.h new file mode 100644 index 00000000..b941c607 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lcode.h @@ -0,0 +1,76 @@ +/* +** $Id: lcode.h,v 1.48.1.1 2007/12/27 13:02:25 roberto Exp $ +** Code generator for Lua +** See Copyright Notice in lua.h +*/ + +#ifndef lcode_h +#define lcode_h + +#include "llex.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lparser.h" + + +/* +** Marks the end of a patch list. It is an invalid value both as an absolute +** address, and as a list link (would link an element to itself). +*/ +#define NO_JUMP (-1) + + +/* +** grep "ORDER OPR" if you change these enums +*/ +typedef enum BinOpr { + OPR_ADD, OPR_SUB, OPR_MUL, OPR_DIV, OPR_MOD, OPR_POW, + OPR_CONCAT, + OPR_NE, OPR_EQ, + OPR_LT, OPR_LE, OPR_GT, OPR_GE, + OPR_AND, OPR_OR, + OPR_NOBINOPR +} BinOpr; + + +typedef enum UnOpr { OPR_MINUS, OPR_NOT, OPR_LEN, OPR_NOUNOPR } UnOpr; + + +#define getcode(fs,e) ((fs)->f->code[(e)->u.s.info]) + +#define luaK_codeAsBx(fs,o,A,sBx) luaK_codeABx(fs,o,A,(sBx)+MAXARG_sBx) + +#define luaK_setmultret(fs,e) luaK_setreturns(fs, e, LUA_MULTRET) + +LUAI_FUNC int luaK_codeABx (FuncState *fs, OpCode o, int A, unsigned int Bx); +LUAI_FUNC int luaK_codeABC (FuncState *fs, OpCode o, int A, int B, int C); +LUAI_FUNC void luaK_fixline (FuncState *fs, int line); +LUAI_FUNC void luaK_nil (FuncState *fs, int from, int n); +LUAI_FUNC void luaK_reserveregs (FuncState *fs, int n); +LUAI_FUNC void luaK_checkstack (FuncState *fs, int n); +LUAI_FUNC int luaK_stringK (FuncState *fs, TString *s); +LUAI_FUNC int luaK_numberK (FuncState *fs, lua_Number r); +LUAI_FUNC void luaK_dischargevars (FuncState *fs, expdesc *e); +LUAI_FUNC int luaK_exp2anyreg (FuncState *fs, expdesc *e); +LUAI_FUNC void luaK_exp2nextreg (FuncState *fs, expdesc *e); +LUAI_FUNC void luaK_exp2val (FuncState *fs, expdesc *e); +LUAI_FUNC int luaK_exp2RK (FuncState *fs, expdesc *e); +LUAI_FUNC void luaK_self (FuncState *fs, expdesc *e, expdesc *key); +LUAI_FUNC void luaK_indexed (FuncState *fs, expdesc *t, expdesc *k); +LUAI_FUNC void luaK_goiftrue (FuncState *fs, expdesc *e); +LUAI_FUNC void luaK_storevar (FuncState *fs, expdesc *var, expdesc *e); +LUAI_FUNC void luaK_setreturns (FuncState *fs, expdesc *e, int nresults); +LUAI_FUNC void luaK_setoneret (FuncState *fs, expdesc *e); +LUAI_FUNC int luaK_jump (FuncState *fs); +LUAI_FUNC void luaK_ret (FuncState *fs, int first, int nret); +LUAI_FUNC void luaK_patchlist (FuncState *fs, int list, int target); +LUAI_FUNC void luaK_patchtohere (FuncState *fs, int list); +LUAI_FUNC void luaK_concat (FuncState *fs, int *l1, int l2); +LUAI_FUNC int luaK_getlabel (FuncState *fs); +LUAI_FUNC void luaK_prefix (FuncState *fs, UnOpr op, expdesc *v); +LUAI_FUNC void luaK_infix (FuncState *fs, BinOpr op, expdesc *v); +LUAI_FUNC void luaK_posfix (FuncState *fs, BinOpr op, expdesc *v1, expdesc *v2); +LUAI_FUNC void luaK_setlist (FuncState *fs, int base, int nelems, int tostore); + + +#endif diff --git a/mk/linux/mojosetup/lua/src/ldblib.c b/mk/linux/mojosetup/lua/src/ldblib.c new file mode 100644 index 00000000..67de1222 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/ldblib.c @@ -0,0 +1,397 @@ +/* +** $Id: ldblib.c,v 1.104.1.3 2008/01/21 13:11:21 roberto Exp $ +** Interface from Lua to its debug API +** See Copyright Notice in lua.h +*/ + + +#include +#include +#include + +#define ldblib_c +#define LUA_LIB + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + + +static int db_getregistry (lua_State *L) { + lua_pushvalue(L, LUA_REGISTRYINDEX); + return 1; +} + + +static int db_getmetatable (lua_State *L) { + luaL_checkany(L, 1); + if (!lua_getmetatable(L, 1)) { + lua_pushnil(L); /* no metatable */ + } + return 1; +} + + +static int db_setmetatable (lua_State *L) { + int t = lua_type(L, 2); + luaL_argcheck(L, t == LUA_TNIL || t == LUA_TTABLE, 2, + "nil or table expected"); + lua_settop(L, 2); + lua_pushboolean(L, lua_setmetatable(L, 1)); + return 1; +} + + +static int db_getfenv (lua_State *L) { + lua_getfenv(L, 1); + return 1; +} + + +static int db_setfenv (lua_State *L) { + luaL_checktype(L, 2, LUA_TTABLE); + lua_settop(L, 2); + if (lua_setfenv(L, 1) == 0) + luaL_error(L, LUA_QL("setfenv") + " cannot change environment of given object"); + return 1; +} + + +static void settabss (lua_State *L, const char *i, const char *v) { + lua_pushstring(L, v); + lua_setfield(L, -2, i); +} + + +static void settabsi (lua_State *L, const char *i, int v) { + lua_pushinteger(L, v); + lua_setfield(L, -2, i); +} + + +static lua_State *getthread (lua_State *L, int *arg) { + if (lua_isthread(L, 1)) { + *arg = 1; + return lua_tothread(L, 1); + } + else { + *arg = 0; + return L; + } +} + + +static void treatstackoption (lua_State *L, lua_State *L1, const char *fname) { + if (L == L1) { + lua_pushvalue(L, -2); + lua_remove(L, -3); + } + else + lua_xmove(L1, L, 1); + lua_setfield(L, -2, fname); +} + + +static int db_getinfo (lua_State *L) { + lua_Debug ar; + int arg; + lua_State *L1 = getthread(L, &arg); + const char *options = luaL_optstring(L, arg+2, "flnSu"); + if (lua_isnumber(L, arg+1)) { + if (!lua_getstack(L1, (int)lua_tointeger(L, arg+1), &ar)) { + lua_pushnil(L); /* level out of range */ + return 1; + } + } + else if (lua_isfunction(L, arg+1)) { + lua_pushfstring(L, ">%s", options); + options = lua_tostring(L, -1); + lua_pushvalue(L, arg+1); + lua_xmove(L, L1, 1); + } + else + return luaL_argerror(L, arg+1, "function or level expected"); + if (!lua_getinfo(L1, options, &ar)) + return luaL_argerror(L, arg+2, "invalid option"); + lua_createtable(L, 0, 2); + if (strchr(options, 'S')) { + settabss(L, "source", ar.source); + settabss(L, "short_src", ar.short_src); + settabsi(L, "linedefined", ar.linedefined); + settabsi(L, "lastlinedefined", ar.lastlinedefined); + settabss(L, "what", ar.what); + } + if (strchr(options, 'l')) + settabsi(L, "currentline", ar.currentline); + if (strchr(options, 'u')) + settabsi(L, "nups", ar.nups); + if (strchr(options, 'n')) { + settabss(L, "name", ar.name); + settabss(L, "namewhat", ar.namewhat); + } + if (strchr(options, 'L')) + treatstackoption(L, L1, "activelines"); + if (strchr(options, 'f')) + treatstackoption(L, L1, "func"); + return 1; /* return table */ +} + + +static int db_getlocal (lua_State *L) { + int arg; + lua_State *L1 = getthread(L, &arg); + lua_Debug ar; + const char *name; + if (!lua_getstack(L1, luaL_checkint(L, arg+1), &ar)) /* out of range? */ + return luaL_argerror(L, arg+1, "level out of range"); + name = lua_getlocal(L1, &ar, luaL_checkint(L, arg+2)); + if (name) { + lua_xmove(L1, L, 1); + lua_pushstring(L, name); + lua_pushvalue(L, -2); + return 2; + } + else { + lua_pushnil(L); + return 1; + } +} + + +static int db_setlocal (lua_State *L) { + int arg; + lua_State *L1 = getthread(L, &arg); + lua_Debug ar; + if (!lua_getstack(L1, luaL_checkint(L, arg+1), &ar)) /* out of range? */ + return luaL_argerror(L, arg+1, "level out of range"); + luaL_checkany(L, arg+3); + lua_settop(L, arg+3); + lua_xmove(L, L1, 1); + lua_pushstring(L, lua_setlocal(L1, &ar, luaL_checkint(L, arg+2))); + return 1; +} + + +static int auxupvalue (lua_State *L, int get) { + const char *name; + int n = luaL_checkint(L, 2); + luaL_checktype(L, 1, LUA_TFUNCTION); + if (lua_iscfunction(L, 1)) return 0; /* cannot touch C upvalues from Lua */ + name = get ? lua_getupvalue(L, 1, n) : lua_setupvalue(L, 1, n); + if (name == NULL) return 0; + lua_pushstring(L, name); + lua_insert(L, -(get+1)); + return get + 1; +} + + +static int db_getupvalue (lua_State *L) { + return auxupvalue(L, 1); +} + + +static int db_setupvalue (lua_State *L) { + luaL_checkany(L, 3); + return auxupvalue(L, 0); +} + + + +static const char KEY_HOOK = 'h'; + + +static void hookf (lua_State *L, lua_Debug *ar) { + static const char *const hooknames[] = + {"call", "return", "line", "count", "tail return"}; + lua_pushlightuserdata(L, (void *)&KEY_HOOK); + lua_rawget(L, LUA_REGISTRYINDEX); + lua_pushlightuserdata(L, L); + lua_rawget(L, -2); + if (lua_isfunction(L, -1)) { + lua_pushstring(L, hooknames[(int)ar->event]); + if (ar->currentline >= 0) + lua_pushinteger(L, ar->currentline); + else lua_pushnil(L); + lua_assert(lua_getinfo(L, "lS", ar)); + lua_call(L, 2, 0); + } +} + + +static int makemask (const char *smask, int count) { + int mask = 0; + if (strchr(smask, 'c')) mask |= LUA_MASKCALL; + if (strchr(smask, 'r')) mask |= LUA_MASKRET; + if (strchr(smask, 'l')) mask |= LUA_MASKLINE; + if (count > 0) mask |= LUA_MASKCOUNT; + return mask; +} + + +static char *unmakemask (int mask, char *smask) { + int i = 0; + if (mask & LUA_MASKCALL) smask[i++] = 'c'; + if (mask & LUA_MASKRET) smask[i++] = 'r'; + if (mask & LUA_MASKLINE) smask[i++] = 'l'; + smask[i] = '\0'; + return smask; +} + + +static void gethooktable (lua_State *L) { + lua_pushlightuserdata(L, (void *)&KEY_HOOK); + lua_rawget(L, LUA_REGISTRYINDEX); + if (!lua_istable(L, -1)) { + lua_pop(L, 1); + lua_createtable(L, 0, 1); + lua_pushlightuserdata(L, (void *)&KEY_HOOK); + lua_pushvalue(L, -2); + lua_rawset(L, LUA_REGISTRYINDEX); + } +} + + +static int db_sethook (lua_State *L) { + int arg, mask, count; + lua_Hook func; + lua_State *L1 = getthread(L, &arg); + if (lua_isnoneornil(L, arg+1)) { + lua_settop(L, arg+1); + func = NULL; mask = 0; count = 0; /* turn off hooks */ + } + else { + const char *smask = luaL_checkstring(L, arg+2); + luaL_checktype(L, arg+1, LUA_TFUNCTION); + count = luaL_optint(L, arg+3, 0); + func = hookf; mask = makemask(smask, count); + } + gethooktable(L); + lua_pushlightuserdata(L, L1); + lua_pushvalue(L, arg+1); + lua_rawset(L, -3); /* set new hook */ + lua_pop(L, 1); /* remove hook table */ + lua_sethook(L1, func, mask, count); /* set hooks */ + return 0; +} + + +static int db_gethook (lua_State *L) { + int arg; + lua_State *L1 = getthread(L, &arg); + char buff[5]; + int mask = lua_gethookmask(L1); + lua_Hook hook = lua_gethook(L1); + if (hook != NULL && hook != hookf) /* external hook? */ + lua_pushliteral(L, "external hook"); + else { + gethooktable(L); + lua_pushlightuserdata(L, L1); + lua_rawget(L, -2); /* get hook */ + lua_remove(L, -2); /* remove hook table */ + } + lua_pushstring(L, unmakemask(mask, buff)); + lua_pushinteger(L, lua_gethookcount(L1)); + return 3; +} + + +static int db_debug (lua_State *L) { + for (;;) { + char buffer[250]; + fputs("lua_debug> ", stderr); + if (fgets(buffer, sizeof(buffer), stdin) == 0 || + strcmp(buffer, "cont\n") == 0) + return 0; + if (luaL_loadbuffer(L, buffer, strlen(buffer), "=(debug command)") || + lua_pcall(L, 0, 0, 0)) { + fputs(lua_tostring(L, -1), stderr); + fputs("\n", stderr); + } + lua_settop(L, 0); /* remove eventual returns */ + } +} + + +#define LEVELS1 12 /* size of the first part of the stack */ +#define LEVELS2 10 /* size of the second part of the stack */ + +static int db_errorfb (lua_State *L) { + int level; + int firstpart = 1; /* still before eventual `...' */ + int arg; + lua_State *L1 = getthread(L, &arg); + lua_Debug ar; + if (lua_isnumber(L, arg+2)) { + level = (int)lua_tointeger(L, arg+2); + lua_pop(L, 1); + } + else + level = (L == L1) ? 1 : 0; /* level 0 may be this own function */ + if (lua_gettop(L) == arg) + lua_pushliteral(L, ""); + else if (!lua_isstring(L, arg+1)) return 1; /* message is not a string */ + else lua_pushliteral(L, "\n"); + lua_pushliteral(L, "stack traceback:"); + while (lua_getstack(L1, level++, &ar)) { + if (level > LEVELS1 && firstpart) { + /* no more than `LEVELS2' more levels? */ + if (!lua_getstack(L1, level+LEVELS2, &ar)) + level--; /* keep going */ + else { + lua_pushliteral(L, "\n\t..."); /* too many levels */ + while (lua_getstack(L1, level+LEVELS2, &ar)) /* find last levels */ + level++; + } + firstpart = 0; + continue; + } + lua_pushliteral(L, "\n\t"); + lua_getinfo(L1, "Snl", &ar); + lua_pushfstring(L, "%s:", ar.short_src); + if (ar.currentline > 0) + lua_pushfstring(L, "%d:", ar.currentline); + if (*ar.namewhat != '\0') /* is there a name? */ + lua_pushfstring(L, " in function " LUA_QS, ar.name); + else { + if (*ar.what == 'm') /* main? */ + lua_pushfstring(L, " in main chunk"); + else if (*ar.what == 'C' || *ar.what == 't') + lua_pushliteral(L, " ?"); /* C function or tail call */ + else + lua_pushfstring(L, " in function <%s:%d>", + ar.short_src, ar.linedefined); + } + lua_concat(L, lua_gettop(L) - arg); + } + lua_concat(L, lua_gettop(L) - arg); + return 1; +} + + +static const luaL_Reg dblib[] = { + {"debug", db_debug}, + {"getfenv", db_getfenv}, + {"gethook", db_gethook}, + {"getinfo", db_getinfo}, + {"getlocal", db_getlocal}, + {"getregistry", db_getregistry}, + {"getmetatable", db_getmetatable}, + {"getupvalue", db_getupvalue}, + {"setfenv", db_setfenv}, + {"sethook", db_sethook}, + {"setlocal", db_setlocal}, + {"setmetatable", db_setmetatable}, + {"setupvalue", db_setupvalue}, + {"traceback", db_errorfb}, + {NULL, NULL} +}; + + +LUALIB_API int luaopen_debug (lua_State *L) { + luaL_register(L, LUA_DBLIBNAME, dblib); + return 1; +} + diff --git a/mk/linux/mojosetup/lua/src/ldebug.c b/mk/linux/mojosetup/lua/src/ldebug.c new file mode 100644 index 00000000..50ad3d38 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/ldebug.c @@ -0,0 +1,638 @@ +/* +** $Id: ldebug.c,v 2.29.1.6 2008/05/08 16:56:26 roberto Exp $ +** Debug Interface +** See Copyright Notice in lua.h +*/ + + +#include +#include +#include + + +#define ldebug_c +#define LUA_CORE + +#include "lua.h" + +#include "lapi.h" +#include "lcode.h" +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" +#include "lvm.h" + + + +static const char *getfuncname (lua_State *L, CallInfo *ci, const char **name); + + +static int currentpc (lua_State *L, CallInfo *ci) { + if (!isLua(ci)) return -1; /* function is not a Lua function? */ + if (ci == L->ci) + ci->savedpc = L->savedpc; + return pcRel(ci->savedpc, ci_func(ci)->l.p); +} + + +static int currentline (lua_State *L, CallInfo *ci) { + int pc = currentpc(L, ci); + if (pc < 0) + return -1; /* only active lua functions have current-line information */ + else + return getline(ci_func(ci)->l.p, pc); +} + + +/* +** this function can be called asynchronous (e.g. during a signal) +*/ +LUA_API int lua_sethook (lua_State *L, lua_Hook func, int mask, int count) { + if (func == NULL || mask == 0) { /* turn off hooks? */ + mask = 0; + func = NULL; + } + L->hook = func; + L->basehookcount = count; + resethookcount(L); + L->hookmask = cast_byte(mask); + return 1; +} + + +LUA_API lua_Hook lua_gethook (lua_State *L) { + return L->hook; +} + + +LUA_API int lua_gethookmask (lua_State *L) { + return L->hookmask; +} + + +LUA_API int lua_gethookcount (lua_State *L) { + return L->basehookcount; +} + + +LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar) { + int status; + CallInfo *ci; + lua_lock(L); + for (ci = L->ci; level > 0 && ci > L->base_ci; ci--) { + level--; + if (f_isLua(ci)) /* Lua function? */ + level -= ci->tailcalls; /* skip lost tail calls */ + } + if (level == 0 && ci > L->base_ci) { /* level found? */ + status = 1; + ar->i_ci = cast_int(ci - L->base_ci); + } + else if (level < 0) { /* level is of a lost tail call? */ + status = 1; + ar->i_ci = 0; + } + else status = 0; /* no such level */ + lua_unlock(L); + return status; +} + + +static Proto *getluaproto (CallInfo *ci) { + return (isLua(ci) ? ci_func(ci)->l.p : NULL); +} + + +static const char *findlocal (lua_State *L, CallInfo *ci, int n) { + const char *name; + Proto *fp = getluaproto(ci); + if (fp && (name = luaF_getlocalname(fp, n, currentpc(L, ci))) != NULL) + return name; /* is a local variable in a Lua function */ + else { + StkId limit = (ci == L->ci) ? L->top : (ci+1)->func; + if (limit - ci->base >= n && n > 0) /* is 'n' inside 'ci' stack? */ + return "(*temporary)"; + else + return NULL; + } +} + + +LUA_API const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int n) { + CallInfo *ci = L->base_ci + ar->i_ci; + const char *name = findlocal(L, ci, n); + lua_lock(L); + if (name) + luaA_pushobject(L, ci->base + (n - 1)); + lua_unlock(L); + return name; +} + + +LUA_API const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int n) { + CallInfo *ci = L->base_ci + ar->i_ci; + const char *name = findlocal(L, ci, n); + lua_lock(L); + if (name) + setobjs2s(L, ci->base + (n - 1), L->top - 1); + L->top--; /* pop value */ + lua_unlock(L); + return name; +} + + +static void funcinfo (lua_Debug *ar, Closure *cl) { + if (cl->c.isC) { + ar->source = "=[C]"; + ar->linedefined = -1; + ar->lastlinedefined = -1; + ar->what = "C"; + } + else { + ar->source = getstr(cl->l.p->source); + ar->linedefined = cl->l.p->linedefined; + ar->lastlinedefined = cl->l.p->lastlinedefined; + ar->what = (ar->linedefined == 0) ? "main" : "Lua"; + } + luaO_chunkid(ar->short_src, ar->source, LUA_IDSIZE); +} + + +static void info_tailcall (lua_Debug *ar) { + ar->name = ar->namewhat = ""; + ar->what = "tail"; + ar->lastlinedefined = ar->linedefined = ar->currentline = -1; + ar->source = "=(tail call)"; + luaO_chunkid(ar->short_src, ar->source, LUA_IDSIZE); + ar->nups = 0; +} + + +static void collectvalidlines (lua_State *L, Closure *f) { + if (f == NULL || f->c.isC) { + setnilvalue(L->top); + } + else { + Table *t = luaH_new(L, 0, 0); + int *lineinfo = f->l.p->lineinfo; + int i; + for (i=0; il.p->sizelineinfo; i++) + setbvalue(luaH_setnum(L, t, lineinfo[i]), 1); + sethvalue(L, L->top, t); + } + incr_top(L); +} + + +static int auxgetinfo (lua_State *L, const char *what, lua_Debug *ar, + Closure *f, CallInfo *ci) { + int status = 1; + if (f == NULL) { + info_tailcall(ar); + return status; + } + for (; *what; what++) { + switch (*what) { + case 'S': { + funcinfo(ar, f); + break; + } + case 'l': { + ar->currentline = (ci) ? currentline(L, ci) : -1; + break; + } + case 'u': { + ar->nups = f->c.nupvalues; + break; + } + case 'n': { + ar->namewhat = (ci) ? getfuncname(L, ci, &ar->name) : NULL; + if (ar->namewhat == NULL) { + ar->namewhat = ""; /* not found */ + ar->name = NULL; + } + break; + } + case 'L': + case 'f': /* handled by lua_getinfo */ + break; + default: status = 0; /* invalid option */ + } + } + return status; +} + + +LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar) { + int status; + Closure *f = NULL; + CallInfo *ci = NULL; + lua_lock(L); + if (*what == '>') { + StkId func = L->top - 1; + luai_apicheck(L, ttisfunction(func)); + what++; /* skip the '>' */ + f = clvalue(func); + L->top--; /* pop function */ + } + else if (ar->i_ci != 0) { /* no tail call? */ + ci = L->base_ci + ar->i_ci; + lua_assert(ttisfunction(ci->func)); + f = clvalue(ci->func); + } + status = auxgetinfo(L, what, ar, f, ci); + if (strchr(what, 'f')) { + if (f == NULL) setnilvalue(L->top); + else setclvalue(L, L->top, f); + incr_top(L); + } + if (strchr(what, 'L')) + collectvalidlines(L, f); + lua_unlock(L); + return status; +} + + +/* +** {====================================================== +** Symbolic Execution and code checker +** ======================================================= +*/ + +#define check(x) if (!(x)) return 0; + +#define checkjump(pt,pc) check(0 <= pc && pc < pt->sizecode) + +#define checkreg(pt,reg) check((reg) < (pt)->maxstacksize) + + + +static int precheck (const Proto *pt) { + check(pt->maxstacksize <= MAXSTACK); + check(pt->numparams+(pt->is_vararg & VARARG_HASARG) <= pt->maxstacksize); + check(!(pt->is_vararg & VARARG_NEEDSARG) || + (pt->is_vararg & VARARG_HASARG)); + check(pt->sizeupvalues <= pt->nups); + check(pt->sizelineinfo == pt->sizecode || pt->sizelineinfo == 0); + check(pt->sizecode > 0 && GET_OPCODE(pt->code[pt->sizecode-1]) == OP_RETURN); + return 1; +} + + +#define checkopenop(pt,pc) luaG_checkopenop((pt)->code[(pc)+1]) + +int luaG_checkopenop (Instruction i) { + switch (GET_OPCODE(i)) { + case OP_CALL: + case OP_TAILCALL: + case OP_RETURN: + case OP_SETLIST: { + check(GETARG_B(i) == 0); + return 1; + } + default: return 0; /* invalid instruction after an open call */ + } +} + + +static int checkArgMode (const Proto *pt, int r, enum OpArgMask mode) { + switch (mode) { + case OpArgN: check(r == 0); break; + case OpArgU: break; + case OpArgR: checkreg(pt, r); break; + case OpArgK: + check(ISK(r) ? INDEXK(r) < pt->sizek : r < pt->maxstacksize); + break; + } + return 1; +} + + +static Instruction symbexec (const Proto *pt, int lastpc, int reg) { + int pc; + int last; /* stores position of last instruction that changed `reg' */ + last = pt->sizecode-1; /* points to final return (a `neutral' instruction) */ + check(precheck(pt)); + for (pc = 0; pc < lastpc; pc++) { + Instruction i = pt->code[pc]; + OpCode op = GET_OPCODE(i); + int a = GETARG_A(i); + int b = 0; + int c = 0; + check(op < NUM_OPCODES); + checkreg(pt, a); + switch (getOpMode(op)) { + case iABC: { + b = GETARG_B(i); + c = GETARG_C(i); + check(checkArgMode(pt, b, getBMode(op))); + check(checkArgMode(pt, c, getCMode(op))); + break; + } + case iABx: { + b = GETARG_Bx(i); + if (getBMode(op) == OpArgK) check(b < pt->sizek); + break; + } + case iAsBx: { + b = GETARG_sBx(i); + if (getBMode(op) == OpArgR) { + int dest = pc+1+b; + check(0 <= dest && dest < pt->sizecode); + if (dest > 0) { + int j; + /* check that it does not jump to a setlist count; this + is tricky, because the count from a previous setlist may + have the same value of an invalid setlist; so, we must + go all the way back to the first of them (if any) */ + for (j = 0; j < dest; j++) { + Instruction d = pt->code[dest-1-j]; + if (!(GET_OPCODE(d) == OP_SETLIST && GETARG_C(d) == 0)) break; + } + /* if 'j' is even, previous value is not a setlist (even if + it looks like one) */ + check((j&1) == 0); + } + } + break; + } + } + if (testAMode(op)) { + if (a == reg) last = pc; /* change register `a' */ + } + if (testTMode(op)) { + check(pc+2 < pt->sizecode); /* check skip */ + check(GET_OPCODE(pt->code[pc+1]) == OP_JMP); + } + switch (op) { + case OP_LOADBOOL: { + if (c == 1) { /* does it jump? */ + check(pc+2 < pt->sizecode); /* check its jump */ + check(GET_OPCODE(pt->code[pc+1]) != OP_SETLIST || + GETARG_C(pt->code[pc+1]) != 0); + } + break; + } + case OP_LOADNIL: { + if (a <= reg && reg <= b) + last = pc; /* set registers from `a' to `b' */ + break; + } + case OP_GETUPVAL: + case OP_SETUPVAL: { + check(b < pt->nups); + break; + } + case OP_GETGLOBAL: + case OP_SETGLOBAL: { + check(ttisstring(&pt->k[b])); + break; + } + case OP_SELF: { + checkreg(pt, a+1); + if (reg == a+1) last = pc; + break; + } + case OP_CONCAT: { + check(b < c); /* at least two operands */ + break; + } + case OP_TFORLOOP: { + check(c >= 1); /* at least one result (control variable) */ + checkreg(pt, a+2+c); /* space for results */ + if (reg >= a+2) last = pc; /* affect all regs above its base */ + break; + } + case OP_FORLOOP: + case OP_FORPREP: + checkreg(pt, a+3); + /* go through */ + case OP_JMP: { + int dest = pc+1+b; + /* not full check and jump is forward and do not skip `lastpc'? */ + if (reg != NO_REG && pc < dest && dest <= lastpc) + pc += b; /* do the jump */ + break; + } + case OP_CALL: + case OP_TAILCALL: { + if (b != 0) { + checkreg(pt, a+b-1); + } + c--; /* c = num. returns */ + if (c == LUA_MULTRET) { + check(checkopenop(pt, pc)); + } + else if (c != 0) + checkreg(pt, a+c-1); + if (reg >= a) last = pc; /* affect all registers above base */ + break; + } + case OP_RETURN: { + b--; /* b = num. returns */ + if (b > 0) checkreg(pt, a+b-1); + break; + } + case OP_SETLIST: { + if (b > 0) checkreg(pt, a + b); + if (c == 0) { + pc++; + check(pc < pt->sizecode - 1); + } + break; + } + case OP_CLOSURE: { + int nup, j; + check(b < pt->sizep); + nup = pt->p[b]->nups; + check(pc + nup < pt->sizecode); + for (j = 1; j <= nup; j++) { + OpCode op1 = GET_OPCODE(pt->code[pc + j]); + check(op1 == OP_GETUPVAL || op1 == OP_MOVE); + } + if (reg != NO_REG) /* tracing? */ + pc += nup; /* do not 'execute' these pseudo-instructions */ + break; + } + case OP_VARARG: { + check((pt->is_vararg & VARARG_ISVARARG) && + !(pt->is_vararg & VARARG_NEEDSARG)); + b--; + if (b == LUA_MULTRET) check(checkopenop(pt, pc)); + checkreg(pt, a+b-1); + break; + } + default: break; + } + } + return pt->code[last]; +} + +#undef check +#undef checkjump +#undef checkreg + +/* }====================================================== */ + + +int luaG_checkcode (const Proto *pt) { + return (symbexec(pt, pt->sizecode, NO_REG) != 0); +} + + +static const char *kname (Proto *p, int c) { + if (ISK(c) && ttisstring(&p->k[INDEXK(c)])) + return svalue(&p->k[INDEXK(c)]); + else + return "?"; +} + + +static const char *getobjname (lua_State *L, CallInfo *ci, int stackpos, + const char **name) { + if (isLua(ci)) { /* a Lua function? */ + Proto *p = ci_func(ci)->l.p; + int pc = currentpc(L, ci); + Instruction i; + *name = luaF_getlocalname(p, stackpos+1, pc); + if (*name) /* is a local? */ + return "local"; + i = symbexec(p, pc, stackpos); /* try symbolic execution */ + lua_assert(pc != -1); + switch (GET_OPCODE(i)) { + case OP_GETGLOBAL: { + int g = GETARG_Bx(i); /* global index */ + lua_assert(ttisstring(&p->k[g])); + *name = svalue(&p->k[g]); + return "global"; + } + case OP_MOVE: { + int a = GETARG_A(i); + int b = GETARG_B(i); /* move from `b' to `a' */ + if (b < a) + return getobjname(L, ci, b, name); /* get name for `b' */ + break; + } + case OP_GETTABLE: { + int k = GETARG_C(i); /* key index */ + *name = kname(p, k); + return "field"; + } + case OP_GETUPVAL: { + int u = GETARG_B(i); /* upvalue index */ + *name = p->upvalues ? getstr(p->upvalues[u]) : "?"; + return "upvalue"; + } + case OP_SELF: { + int k = GETARG_C(i); /* key index */ + *name = kname(p, k); + return "method"; + } + default: break; + } + } + return NULL; /* no useful name found */ +} + + +static const char *getfuncname (lua_State *L, CallInfo *ci, const char **name) { + Instruction i; + if ((isLua(ci) && ci->tailcalls > 0) || !isLua(ci - 1)) + return NULL; /* calling function is not Lua (or is unknown) */ + ci--; /* calling function */ + i = ci_func(ci)->l.p->code[currentpc(L, ci)]; + if (GET_OPCODE(i) == OP_CALL || GET_OPCODE(i) == OP_TAILCALL || + GET_OPCODE(i) == OP_TFORLOOP) + return getobjname(L, ci, GETARG_A(i), name); + else + return NULL; /* no useful name can be found */ +} + + +/* only ANSI way to check whether a pointer points to an array */ +static int isinstack (CallInfo *ci, const TValue *o) { + StkId p; + for (p = ci->base; p < ci->top; p++) + if (o == p) return 1; + return 0; +} + + +void luaG_typeerror (lua_State *L, const TValue *o, const char *op) { + const char *name = NULL; + const char *t = luaT_typenames[ttype(o)]; + const char *kind = (isinstack(L->ci, o)) ? + getobjname(L, L->ci, cast_int(o - L->base), &name) : + NULL; + if (kind) + luaG_runerror(L, "attempt to %s %s " LUA_QS " (a %s value)", + op, kind, name, t); + else + luaG_runerror(L, "attempt to %s a %s value", op, t); +} + + +void luaG_concaterror (lua_State *L, StkId p1, StkId p2) { + if (ttisstring(p1) || ttisnumber(p1)) p1 = p2; + lua_assert(!ttisstring(p1) && !ttisnumber(p1)); + luaG_typeerror(L, p1, "concatenate"); +} + + +void luaG_aritherror (lua_State *L, const TValue *p1, const TValue *p2) { + TValue temp; + if (luaV_tonumber(p1, &temp) == NULL) + p2 = p1; /* first operand is wrong */ + luaG_typeerror(L, p2, "perform arithmetic on"); +} + + +int luaG_ordererror (lua_State *L, const TValue *p1, const TValue *p2) { + const char *t1 = luaT_typenames[ttype(p1)]; + const char *t2 = luaT_typenames[ttype(p2)]; + if (t1[2] == t2[2]) + luaG_runerror(L, "attempt to compare two %s values", t1); + else + luaG_runerror(L, "attempt to compare %s with %s", t1, t2); + return 0; +} + + +static void addinfo (lua_State *L, const char *msg) { + CallInfo *ci = L->ci; + if (isLua(ci)) { /* is Lua code? */ + char buff[LUA_IDSIZE]; /* add file:line information */ + int line = currentline(L, ci); + luaO_chunkid(buff, getstr(getluaproto(ci)->source), LUA_IDSIZE); + luaO_pushfstring(L, "%s:%d: %s", buff, line, msg); + } +} + + +void luaG_errormsg (lua_State *L) { + if (L->errfunc != 0) { /* is there an error handling function? */ + StkId errfunc = restorestack(L, L->errfunc); + if (!ttisfunction(errfunc)) luaD_throw(L, LUA_ERRERR); + setobjs2s(L, L->top, L->top - 1); /* move argument */ + setobjs2s(L, L->top - 1, errfunc); /* push function */ + incr_top(L); + luaD_call(L, L->top - 2, 1); /* call it */ + } + luaD_throw(L, LUA_ERRRUN); +} + + +void luaG_runerror (lua_State *L, const char *fmt, ...) { + va_list argp; + va_start(argp, fmt); + addinfo(L, luaO_pushvfstring(L, fmt, argp)); + va_end(argp); + luaG_errormsg(L); +} + diff --git a/mk/linux/mojosetup/lua/src/ldebug.h b/mk/linux/mojosetup/lua/src/ldebug.h new file mode 100644 index 00000000..ba28a972 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/ldebug.h @@ -0,0 +1,33 @@ +/* +** $Id: ldebug.h,v 2.3.1.1 2007/12/27 13:02:25 roberto Exp $ +** Auxiliary functions from Debug Interface module +** See Copyright Notice in lua.h +*/ + +#ifndef ldebug_h +#define ldebug_h + + +#include "lstate.h" + + +#define pcRel(pc, p) (cast(int, (pc) - (p)->code) - 1) + +#define getline(f,pc) (((f)->lineinfo) ? (f)->lineinfo[pc] : 0) + +#define resethookcount(L) (L->hookcount = L->basehookcount) + + +LUAI_FUNC void luaG_typeerror (lua_State *L, const TValue *o, + const char *opname); +LUAI_FUNC void luaG_concaterror (lua_State *L, StkId p1, StkId p2); +LUAI_FUNC void luaG_aritherror (lua_State *L, const TValue *p1, + const TValue *p2); +LUAI_FUNC int luaG_ordererror (lua_State *L, const TValue *p1, + const TValue *p2); +LUAI_FUNC void luaG_runerror (lua_State *L, const char *fmt, ...); +LUAI_FUNC void luaG_errormsg (lua_State *L); +LUAI_FUNC int luaG_checkcode (const Proto *pt); +LUAI_FUNC int luaG_checkopenop (Instruction i); + +#endif diff --git a/mk/linux/mojosetup/lua/src/ldo.c b/mk/linux/mojosetup/lua/src/ldo.c new file mode 100644 index 00000000..8de05f72 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/ldo.c @@ -0,0 +1,518 @@ +/* +** $Id: ldo.c,v 2.38.1.3 2008/01/18 22:31:22 roberto Exp $ +** Stack and Call structure of Lua +** See Copyright Notice in lua.h +*/ + + +#include +#include +#include + +#define ldo_c +#define LUA_CORE + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lgc.h" +#include "lmem.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lparser.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" +#include "lundump.h" +#include "lvm.h" +#include "lzio.h" + + + + +/* +** {====================================================== +** Error-recovery functions +** ======================================================= +*/ + + +/* chain list of long jump buffers */ +struct lua_longjmp { + struct lua_longjmp *previous; + luai_jmpbuf b; + volatile int status; /* error code */ +}; + + +void luaD_seterrorobj (lua_State *L, int errcode, StkId oldtop) { + switch (errcode) { + case LUA_ERRMEM: { + setsvalue2s(L, oldtop, luaS_newliteral(L, MEMERRMSG)); + break; + } + case LUA_ERRERR: { + setsvalue2s(L, oldtop, luaS_newliteral(L, "error in error handling")); + break; + } + case LUA_ERRSYNTAX: + case LUA_ERRRUN: { + setobjs2s(L, oldtop, L->top - 1); /* error message on current top */ + break; + } + } + L->top = oldtop + 1; +} + + +static void restore_stack_limit (lua_State *L) { + lua_assert(L->stack_last - L->stack == L->stacksize - EXTRA_STACK - 1); + if (L->size_ci > LUAI_MAXCALLS) { /* there was an overflow? */ + int inuse = cast_int(L->ci - L->base_ci); + if (inuse + 1 < LUAI_MAXCALLS) /* can `undo' overflow? */ + luaD_reallocCI(L, LUAI_MAXCALLS); + } +} + + +static void resetstack (lua_State *L, int status) { + L->ci = L->base_ci; + L->base = L->ci->base; + luaF_close(L, L->base); /* close eventual pending closures */ + luaD_seterrorobj(L, status, L->base); + L->nCcalls = L->baseCcalls; + L->allowhook = 1; + restore_stack_limit(L); + L->errfunc = 0; + L->errorJmp = NULL; +} + + +void luaD_throw (lua_State *L, int errcode) { + if (L->errorJmp) { + L->errorJmp->status = errcode; + LUAI_THROW(L, L->errorJmp); + } + else { + L->status = cast_byte(errcode); + if (G(L)->panic) { + resetstack(L, errcode); + lua_unlock(L); + G(L)->panic(L); + } + exit(EXIT_FAILURE); + } +} + + +int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud) { + struct lua_longjmp lj; + lj.status = 0; + lj.previous = L->errorJmp; /* chain new error handler */ + L->errorJmp = &lj; + LUAI_TRY(L, &lj, + (*f)(L, ud); + ); + L->errorJmp = lj.previous; /* restore old error handler */ + return lj.status; +} + +/* }====================================================== */ + + +static void correctstack (lua_State *L, TValue *oldstack) { + CallInfo *ci; + GCObject *up; + L->top = (L->top - oldstack) + L->stack; + for (up = L->openupval; up != NULL; up = up->gch.next) + gco2uv(up)->v = (gco2uv(up)->v - oldstack) + L->stack; + for (ci = L->base_ci; ci <= L->ci; ci++) { + ci->top = (ci->top - oldstack) + L->stack; + ci->base = (ci->base - oldstack) + L->stack; + ci->func = (ci->func - oldstack) + L->stack; + } + L->base = (L->base - oldstack) + L->stack; +} + + +void luaD_reallocstack (lua_State *L, int newsize) { + TValue *oldstack = L->stack; + int realsize = newsize + 1 + EXTRA_STACK; + lua_assert(L->stack_last - L->stack == L->stacksize - EXTRA_STACK - 1); + luaM_reallocvector(L, L->stack, L->stacksize, realsize, TValue); + L->stacksize = realsize; + L->stack_last = L->stack+newsize; + correctstack(L, oldstack); +} + + +void luaD_reallocCI (lua_State *L, int newsize) { + CallInfo *oldci = L->base_ci; + luaM_reallocvector(L, L->base_ci, L->size_ci, newsize, CallInfo); + L->size_ci = newsize; + L->ci = (L->ci - oldci) + L->base_ci; + L->end_ci = L->base_ci + L->size_ci - 1; +} + + +void luaD_growstack (lua_State *L, int n) { + if (n <= L->stacksize) /* double size is enough? */ + luaD_reallocstack(L, 2*L->stacksize); + else + luaD_reallocstack(L, L->stacksize + n); +} + + +static CallInfo *growCI (lua_State *L) { + if (L->size_ci > LUAI_MAXCALLS) /* overflow while handling overflow? */ + luaD_throw(L, LUA_ERRERR); + else { + luaD_reallocCI(L, 2*L->size_ci); + if (L->size_ci > LUAI_MAXCALLS) + luaG_runerror(L, "stack overflow"); + } + return ++L->ci; +} + + +void luaD_callhook (lua_State *L, int event, int line) { + lua_Hook hook = L->hook; + if (hook && L->allowhook) { + ptrdiff_t top = savestack(L, L->top); + ptrdiff_t ci_top = savestack(L, L->ci->top); + lua_Debug ar; + ar.event = event; + ar.currentline = line; + if (event == LUA_HOOKTAILRET) + ar.i_ci = 0; /* tail call; no debug information about it */ + else + ar.i_ci = cast_int(L->ci - L->base_ci); + luaD_checkstack(L, LUA_MINSTACK); /* ensure minimum stack size */ + L->ci->top = L->top + LUA_MINSTACK; + lua_assert(L->ci->top <= L->stack_last); + L->allowhook = 0; /* cannot call hooks inside a hook */ + lua_unlock(L); + (*hook)(L, &ar); + lua_lock(L); + lua_assert(!L->allowhook); + L->allowhook = 1; + L->ci->top = restorestack(L, ci_top); + L->top = restorestack(L, top); + } +} + + +static StkId adjust_varargs (lua_State *L, Proto *p, int actual) { + int i; + int nfixargs = p->numparams; + Table *htab = NULL; + StkId base, fixed; + for (; actual < nfixargs; ++actual) + setnilvalue(L->top++); +#if defined(LUA_COMPAT_VARARG) + if (p->is_vararg & VARARG_NEEDSARG) { /* compat. with old-style vararg? */ + int nvar = actual - nfixargs; /* number of extra arguments */ + lua_assert(p->is_vararg & VARARG_HASARG); + luaC_checkGC(L); + htab = luaH_new(L, nvar, 1); /* create `arg' table */ + for (i=0; itop - nvar + i); + /* store counter in field `n' */ + setnvalue(luaH_setstr(L, htab, luaS_newliteral(L, "n")), cast_num(nvar)); + } +#endif + /* move fixed parameters to final position */ + fixed = L->top - actual; /* first fixed argument */ + base = L->top; /* final position of first argument */ + for (i=0; itop++, fixed+i); + setnilvalue(fixed+i); + } + /* add `arg' parameter */ + if (htab) { + sethvalue(L, L->top++, htab); + lua_assert(iswhite(obj2gco(htab))); + } + return base; +} + + +static StkId tryfuncTM (lua_State *L, StkId func) { + const TValue *tm = luaT_gettmbyobj(L, func, TM_CALL); + StkId p; + ptrdiff_t funcr = savestack(L, func); + if (!ttisfunction(tm)) + luaG_typeerror(L, func, "call"); + /* Open a hole inside the stack at `func' */ + for (p = L->top; p > func; p--) setobjs2s(L, p, p-1); + incr_top(L); + func = restorestack(L, funcr); /* previous call may change stack */ + setobj2s(L, func, tm); /* tag method is the new function to be called */ + return func; +} + + + +#define inc_ci(L) \ + ((L->ci == L->end_ci) ? growCI(L) : \ + (condhardstacktests(luaD_reallocCI(L, L->size_ci)), ++L->ci)) + + +int luaD_precall (lua_State *L, StkId func, int nresults) { + LClosure *cl; + ptrdiff_t funcr; + if (!ttisfunction(func)) /* `func' is not a function? */ + func = tryfuncTM(L, func); /* check the `function' tag method */ + funcr = savestack(L, func); + cl = &clvalue(func)->l; + L->ci->savedpc = L->savedpc; + if (!cl->isC) { /* Lua function? prepare its call */ + CallInfo *ci; + StkId st, base; + Proto *p = cl->p; + luaD_checkstack(L, p->maxstacksize); + func = restorestack(L, funcr); + if (!p->is_vararg) { /* no varargs? */ + base = func + 1; + if (L->top > base + p->numparams) + L->top = base + p->numparams; + } + else { /* vararg function */ + int nargs = cast_int(L->top - func) - 1; + base = adjust_varargs(L, p, nargs); + func = restorestack(L, funcr); /* previous call may change the stack */ + } + ci = inc_ci(L); /* now `enter' new function */ + ci->func = func; + L->base = ci->base = base; + ci->top = L->base + p->maxstacksize; + lua_assert(ci->top <= L->stack_last); + L->savedpc = p->code; /* starting point */ + ci->tailcalls = 0; + ci->nresults = nresults; + for (st = L->top; st < ci->top; st++) + setnilvalue(st); + L->top = ci->top; + if (L->hookmask & LUA_MASKCALL) { + L->savedpc++; /* hooks assume 'pc' is already incremented */ + luaD_callhook(L, LUA_HOOKCALL, -1); + L->savedpc--; /* correct 'pc' */ + } + return PCRLUA; + } + else { /* if is a C function, call it */ + CallInfo *ci; + int n; + luaD_checkstack(L, LUA_MINSTACK); /* ensure minimum stack size */ + ci = inc_ci(L); /* now `enter' new function */ + ci->func = restorestack(L, funcr); + L->base = ci->base = ci->func + 1; + ci->top = L->top + LUA_MINSTACK; + lua_assert(ci->top <= L->stack_last); + ci->nresults = nresults; + if (L->hookmask & LUA_MASKCALL) + luaD_callhook(L, LUA_HOOKCALL, -1); + lua_unlock(L); + n = (*curr_func(L)->c.f)(L); /* do the actual call */ + lua_lock(L); + if (n < 0) /* yielding? */ + return PCRYIELD; + else { + luaD_poscall(L, L->top - n); + return PCRC; + } + } +} + + +static StkId callrethooks (lua_State *L, StkId firstResult) { + ptrdiff_t fr = savestack(L, firstResult); /* next call may change stack */ + luaD_callhook(L, LUA_HOOKRET, -1); + if (f_isLua(L->ci)) { /* Lua function? */ + while ((L->hookmask & LUA_MASKRET) && L->ci->tailcalls--) /* tail calls */ + luaD_callhook(L, LUA_HOOKTAILRET, -1); + } + return restorestack(L, fr); +} + + +int luaD_poscall (lua_State *L, StkId firstResult) { + StkId res; + int wanted, i; + CallInfo *ci; + if (L->hookmask & LUA_MASKRET) + firstResult = callrethooks(L, firstResult); + ci = L->ci--; + res = ci->func; /* res == final position of 1st result */ + wanted = ci->nresults; + L->base = (ci - 1)->base; /* restore base */ + L->savedpc = (ci - 1)->savedpc; /* restore savedpc */ + /* move results to correct place */ + for (i = wanted; i != 0 && firstResult < L->top; i--) + setobjs2s(L, res++, firstResult++); + while (i-- > 0) + setnilvalue(res++); + L->top = res; + return (wanted - LUA_MULTRET); /* 0 iff wanted == LUA_MULTRET */ +} + + +/* +** Call a function (C or Lua). The function to be called is at *func. +** The arguments are on the stack, right after the function. +** When returns, all the results are on the stack, starting at the original +** function position. +*/ +void luaD_call (lua_State *L, StkId func, int nResults) { + if (++L->nCcalls >= LUAI_MAXCCALLS) { + if (L->nCcalls == LUAI_MAXCCALLS) + luaG_runerror(L, "C stack overflow"); + else if (L->nCcalls >= (LUAI_MAXCCALLS + (LUAI_MAXCCALLS>>3))) + luaD_throw(L, LUA_ERRERR); /* error while handing stack error */ + } + if (luaD_precall(L, func, nResults) == PCRLUA) /* is a Lua function? */ + luaV_execute(L, 1); /* call it */ + L->nCcalls--; + luaC_checkGC(L); +} + + +static void resume (lua_State *L, void *ud) { + StkId firstArg = cast(StkId, ud); + CallInfo *ci = L->ci; + if (L->status == 0) { /* start coroutine? */ + lua_assert(ci == L->base_ci && firstArg > L->base); + if (luaD_precall(L, firstArg - 1, LUA_MULTRET) != PCRLUA) + return; + } + else { /* resuming from previous yield */ + lua_assert(L->status == LUA_YIELD); + L->status = 0; + if (!f_isLua(ci)) { /* `common' yield? */ + /* finish interrupted execution of `OP_CALL' */ + lua_assert(GET_OPCODE(*((ci-1)->savedpc - 1)) == OP_CALL || + GET_OPCODE(*((ci-1)->savedpc - 1)) == OP_TAILCALL); + if (luaD_poscall(L, firstArg)) /* complete it... */ + L->top = L->ci->top; /* and correct top if not multiple results */ + } + else /* yielded inside a hook: just continue its execution */ + L->base = L->ci->base; + } + luaV_execute(L, cast_int(L->ci - L->base_ci)); +} + + +static int resume_error (lua_State *L, const char *msg) { + L->top = L->ci->base; + setsvalue2s(L, L->top, luaS_new(L, msg)); + incr_top(L); + lua_unlock(L); + return LUA_ERRRUN; +} + + +LUA_API int lua_resume (lua_State *L, int nargs) { + int status; + lua_lock(L); + if (L->status != LUA_YIELD && (L->status != 0 || L->ci != L->base_ci)) + return resume_error(L, "cannot resume non-suspended coroutine"); + if (L->nCcalls >= LUAI_MAXCCALLS) + return resume_error(L, "C stack overflow"); + luai_userstateresume(L, nargs); + lua_assert(L->errfunc == 0); + L->baseCcalls = ++L->nCcalls; + status = luaD_rawrunprotected(L, resume, L->top - nargs); + if (status != 0) { /* error? */ + L->status = cast_byte(status); /* mark thread as `dead' */ + luaD_seterrorobj(L, status, L->top); + L->ci->top = L->top; + } + else { + lua_assert(L->nCcalls == L->baseCcalls); + status = L->status; + } + --L->nCcalls; + lua_unlock(L); + return status; +} + + +LUA_API int lua_yield (lua_State *L, int nresults) { + luai_userstateyield(L, nresults); + lua_lock(L); + if (L->nCcalls > L->baseCcalls) + luaG_runerror(L, "attempt to yield across metamethod/C-call boundary"); + L->base = L->top - nresults; /* protect stack slots below */ + L->status = LUA_YIELD; + lua_unlock(L); + return -1; +} + + +int luaD_pcall (lua_State *L, Pfunc func, void *u, + ptrdiff_t old_top, ptrdiff_t ef) { + int status; + unsigned short oldnCcalls = L->nCcalls; + ptrdiff_t old_ci = saveci(L, L->ci); + lu_byte old_allowhooks = L->allowhook; + ptrdiff_t old_errfunc = L->errfunc; + L->errfunc = ef; + status = luaD_rawrunprotected(L, func, u); + if (status != 0) { /* an error occurred? */ + StkId oldtop = restorestack(L, old_top); + luaF_close(L, oldtop); /* close eventual pending closures */ + luaD_seterrorobj(L, status, oldtop); + L->nCcalls = oldnCcalls; + L->ci = restoreci(L, old_ci); + L->base = L->ci->base; + L->savedpc = L->ci->savedpc; + L->allowhook = old_allowhooks; + restore_stack_limit(L); + } + L->errfunc = old_errfunc; + return status; +} + + + +/* +** Execute a protected parser. +*/ +struct SParser { /* data to `f_parser' */ + ZIO *z; + Mbuffer buff; /* buffer to be used by the scanner */ + const char *name; +}; + +static void f_parser (lua_State *L, void *ud) { + int i; + Proto *tf; + Closure *cl; + struct SParser *p = cast(struct SParser *, ud); + int c = luaZ_lookahead(p->z); + luaC_checkGC(L); + tf = ((c == LUA_SIGNATURE[0]) ? luaU_undump : luaY_parser)(L, p->z, + &p->buff, p->name); + cl = luaF_newLclosure(L, tf->nups, hvalue(gt(L))); + cl->l.p = tf; + for (i = 0; i < tf->nups; i++) /* initialize eventual upvalues */ + cl->l.upvals[i] = luaF_newupval(L); + setclvalue(L, L->top, cl); + incr_top(L); +} + + +int luaD_protectedparser (lua_State *L, ZIO *z, const char *name) { + struct SParser p; + int status; + p.z = z; p.name = name; + luaZ_initbuffer(L, &p.buff); + status = luaD_pcall(L, f_parser, &p, savestack(L, L->top), L->errfunc); + luaZ_freebuffer(L, &p.buff); + return status; +} + + diff --git a/mk/linux/mojosetup/lua/src/ldo.h b/mk/linux/mojosetup/lua/src/ldo.h new file mode 100644 index 00000000..98fddac5 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/ldo.h @@ -0,0 +1,57 @@ +/* +** $Id: ldo.h,v 2.7.1.1 2007/12/27 13:02:25 roberto Exp $ +** Stack and Call structure of Lua +** See Copyright Notice in lua.h +*/ + +#ifndef ldo_h +#define ldo_h + + +#include "lobject.h" +#include "lstate.h" +#include "lzio.h" + + +#define luaD_checkstack(L,n) \ + if ((char *)L->stack_last - (char *)L->top <= (n)*(int)sizeof(TValue)) \ + luaD_growstack(L, n); \ + else condhardstacktests(luaD_reallocstack(L, L->stacksize - EXTRA_STACK - 1)); + + +#define incr_top(L) {luaD_checkstack(L,1); L->top++;} + +#define savestack(L,p) ((char *)(p) - (char *)L->stack) +#define restorestack(L,n) ((TValue *)((char *)L->stack + (n))) + +#define saveci(L,p) ((char *)(p) - (char *)L->base_ci) +#define restoreci(L,n) ((CallInfo *)((char *)L->base_ci + (n))) + + +/* results from luaD_precall */ +#define PCRLUA 0 /* initiated a call to a Lua function */ +#define PCRC 1 /* did a call to a C function */ +#define PCRYIELD 2 /* C funtion yielded */ + + +/* type of protected functions, to be ran by `runprotected' */ +typedef void (*Pfunc) (lua_State *L, void *ud); + +LUAI_FUNC int luaD_protectedparser (lua_State *L, ZIO *z, const char *name); +LUAI_FUNC void luaD_callhook (lua_State *L, int event, int line); +LUAI_FUNC int luaD_precall (lua_State *L, StkId func, int nresults); +LUAI_FUNC void luaD_call (lua_State *L, StkId func, int nResults); +LUAI_FUNC int luaD_pcall (lua_State *L, Pfunc func, void *u, + ptrdiff_t oldtop, ptrdiff_t ef); +LUAI_FUNC int luaD_poscall (lua_State *L, StkId firstResult); +LUAI_FUNC void luaD_reallocCI (lua_State *L, int newsize); +LUAI_FUNC void luaD_reallocstack (lua_State *L, int newsize); +LUAI_FUNC void luaD_growstack (lua_State *L, int n); + +LUAI_FUNC void luaD_throw (lua_State *L, int errcode); +LUAI_FUNC int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud); + +LUAI_FUNC void luaD_seterrorobj (lua_State *L, int errcode, StkId oldtop); + +#endif + diff --git a/mk/linux/mojosetup/lua/src/ldump.c b/mk/linux/mojosetup/lua/src/ldump.c new file mode 100644 index 00000000..c9d3d487 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/ldump.c @@ -0,0 +1,164 @@ +/* +** $Id: ldump.c,v 2.8.1.1 2007/12/27 13:02:25 roberto Exp $ +** save precompiled Lua chunks +** See Copyright Notice in lua.h +*/ + +#include + +#define ldump_c +#define LUA_CORE + +#include "lua.h" + +#include "lobject.h" +#include "lstate.h" +#include "lundump.h" + +typedef struct { + lua_State* L; + lua_Writer writer; + void* data; + int strip; + int status; +} DumpState; + +#define DumpMem(b,n,size,D) DumpBlock(b,(n)*(size),D) +#define DumpVar(x,D) DumpMem(&x,1,sizeof(x),D) + +static void DumpBlock(const void* b, size_t size, DumpState* D) +{ + if (D->status==0) + { + lua_unlock(D->L); + D->status=(*D->writer)(D->L,b,size,D->data); + lua_lock(D->L); + } +} + +static void DumpChar(int y, DumpState* D) +{ + char x=(char)y; + DumpVar(x,D); +} + +static void DumpInt(int x, DumpState* D) +{ + DumpVar(x,D); +} + +static void DumpNumber(lua_Number x, DumpState* D) +{ + DumpVar(x,D); +} + +static void DumpVector(const void* b, int n, size_t size, DumpState* D) +{ + DumpInt(n,D); + DumpMem(b,n,size,D); +} + +static void DumpString(const TString* s, DumpState* D) +{ + if (s==NULL || getstr(s)==NULL) + { + size_t size=0; + DumpVar(size,D); + } + else + { + size_t size=s->tsv.len+1; /* include trailing '\0' */ + DumpVar(size,D); + DumpBlock(getstr(s),size,D); + } +} + +#define DumpCode(f,D) DumpVector(f->code,f->sizecode,sizeof(Instruction),D) + +static void DumpFunction(const Proto* f, const TString* p, DumpState* D); + +static void DumpConstants(const Proto* f, DumpState* D) +{ + int i,n=f->sizek; + DumpInt(n,D); + for (i=0; ik[i]; + DumpChar(ttype(o),D); + switch (ttype(o)) + { + case LUA_TNIL: + break; + case LUA_TBOOLEAN: + DumpChar(bvalue(o),D); + break; + case LUA_TNUMBER: + DumpNumber(nvalue(o),D); + break; + case LUA_TSTRING: + DumpString(rawtsvalue(o),D); + break; + default: + lua_assert(0); /* cannot happen */ + break; + } + } + n=f->sizep; + DumpInt(n,D); + for (i=0; ip[i],f->source,D); +} + +static void DumpDebug(const Proto* f, DumpState* D) +{ + int i,n; + n= (D->strip) ? 0 : f->sizelineinfo; + DumpVector(f->lineinfo,n,sizeof(int),D); + n= (D->strip) ? 0 : f->sizelocvars; + DumpInt(n,D); + for (i=0; ilocvars[i].varname,D); + DumpInt(f->locvars[i].startpc,D); + DumpInt(f->locvars[i].endpc,D); + } + n= (D->strip) ? 0 : f->sizeupvalues; + DumpInt(n,D); + for (i=0; iupvalues[i],D); +} + +static void DumpFunction(const Proto* f, const TString* p, DumpState* D) +{ + DumpString((f->source==p || D->strip) ? NULL : f->source,D); + DumpInt(f->linedefined,D); + DumpInt(f->lastlinedefined,D); + DumpChar(f->nups,D); + DumpChar(f->numparams,D); + DumpChar(f->is_vararg,D); + DumpChar(f->maxstacksize,D); + DumpCode(f,D); + DumpConstants(f,D); + DumpDebug(f,D); +} + +static void DumpHeader(DumpState* D) +{ + char h[LUAC_HEADERSIZE]; + luaU_header(h); + DumpBlock(h,LUAC_HEADERSIZE,D); +} + +/* +** dump Lua function as precompiled chunk +*/ +int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip) +{ + DumpState D; + D.L=L; + D.writer=w; + D.data=data; + D.strip=strip; + D.status=0; + DumpHeader(&D); + DumpFunction(f,NULL,&D); + return D.status; +} diff --git a/mk/linux/mojosetup/lua/src/lfunc.c b/mk/linux/mojosetup/lua/src/lfunc.c new file mode 100644 index 00000000..813e88f5 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lfunc.c @@ -0,0 +1,174 @@ +/* +** $Id: lfunc.c,v 2.12.1.2 2007/12/28 14:58:43 roberto Exp $ +** Auxiliary functions to manipulate prototypes and closures +** See Copyright Notice in lua.h +*/ + + +#include + +#define lfunc_c +#define LUA_CORE + +#include "lua.h" + +#include "lfunc.h" +#include "lgc.h" +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" + + + +Closure *luaF_newCclosure (lua_State *L, int nelems, Table *e) { + Closure *c = cast(Closure *, luaM_malloc(L, sizeCclosure(nelems))); + luaC_link(L, obj2gco(c), LUA_TFUNCTION); + c->c.isC = 1; + c->c.env = e; + c->c.nupvalues = cast_byte(nelems); + return c; +} + + +Closure *luaF_newLclosure (lua_State *L, int nelems, Table *e) { + Closure *c = cast(Closure *, luaM_malloc(L, sizeLclosure(nelems))); + luaC_link(L, obj2gco(c), LUA_TFUNCTION); + c->l.isC = 0; + c->l.env = e; + c->l.nupvalues = cast_byte(nelems); + while (nelems--) c->l.upvals[nelems] = NULL; + return c; +} + + +UpVal *luaF_newupval (lua_State *L) { + UpVal *uv = luaM_new(L, UpVal); + luaC_link(L, obj2gco(uv), LUA_TUPVAL); + uv->v = &uv->u.value; + setnilvalue(uv->v); + return uv; +} + + +UpVal *luaF_findupval (lua_State *L, StkId level) { + global_State *g = G(L); + GCObject **pp = &L->openupval; + UpVal *p; + UpVal *uv; + while (*pp != NULL && (p = ngcotouv(*pp))->v >= level) { + lua_assert(p->v != &p->u.value); + if (p->v == level) { /* found a corresponding upvalue? */ + if (isdead(g, obj2gco(p))) /* is it dead? */ + changewhite(obj2gco(p)); /* ressurect it */ + return p; + } + pp = &p->next; + } + uv = luaM_new(L, UpVal); /* not found: create a new one */ + uv->tt = LUA_TUPVAL; + uv->marked = luaC_white(g); + uv->v = level; /* current value lives in the stack */ + uv->next = *pp; /* chain it in the proper position */ + *pp = obj2gco(uv); + uv->u.l.prev = &g->uvhead; /* double link it in `uvhead' list */ + uv->u.l.next = g->uvhead.u.l.next; + uv->u.l.next->u.l.prev = uv; + g->uvhead.u.l.next = uv; + lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv); + return uv; +} + + +static void unlinkupval (UpVal *uv) { + lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv); + uv->u.l.next->u.l.prev = uv->u.l.prev; /* remove from `uvhead' list */ + uv->u.l.prev->u.l.next = uv->u.l.next; +} + + +void luaF_freeupval (lua_State *L, UpVal *uv) { + if (uv->v != &uv->u.value) /* is it open? */ + unlinkupval(uv); /* remove from open list */ + luaM_free(L, uv); /* free upvalue */ +} + + +void luaF_close (lua_State *L, StkId level) { + UpVal *uv; + global_State *g = G(L); + while (L->openupval != NULL && (uv = ngcotouv(L->openupval))->v >= level) { + GCObject *o = obj2gco(uv); + lua_assert(!isblack(o) && uv->v != &uv->u.value); + L->openupval = uv->next; /* remove from `open' list */ + if (isdead(g, o)) + luaF_freeupval(L, uv); /* free upvalue */ + else { + unlinkupval(uv); + setobj(L, &uv->u.value, uv->v); + uv->v = &uv->u.value; /* now current value lives here */ + luaC_linkupval(L, uv); /* link upvalue into `gcroot' list */ + } + } +} + + +Proto *luaF_newproto (lua_State *L) { + Proto *f = luaM_new(L, Proto); + luaC_link(L, obj2gco(f), LUA_TPROTO); + f->k = NULL; + f->sizek = 0; + f->p = NULL; + f->sizep = 0; + f->code = NULL; + f->sizecode = 0; + f->sizelineinfo = 0; + f->sizeupvalues = 0; + f->nups = 0; + f->upvalues = NULL; + f->numparams = 0; + f->is_vararg = 0; + f->maxstacksize = 0; + f->lineinfo = NULL; + f->sizelocvars = 0; + f->locvars = NULL; + f->linedefined = 0; + f->lastlinedefined = 0; + f->source = NULL; + return f; +} + + +void luaF_freeproto (lua_State *L, Proto *f) { + luaM_freearray(L, f->code, f->sizecode, Instruction); + luaM_freearray(L, f->p, f->sizep, Proto *); + luaM_freearray(L, f->k, f->sizek, TValue); + luaM_freearray(L, f->lineinfo, f->sizelineinfo, int); + luaM_freearray(L, f->locvars, f->sizelocvars, struct LocVar); + luaM_freearray(L, f->upvalues, f->sizeupvalues, TString *); + luaM_free(L, f); +} + + +void luaF_freeclosure (lua_State *L, Closure *c) { + int size = (c->c.isC) ? sizeCclosure(c->c.nupvalues) : + sizeLclosure(c->l.nupvalues); + luaM_freemem(L, c, size); +} + + +/* +** Look for n-th local variable at line `line' in function `func'. +** Returns NULL if not found. +*/ +const char *luaF_getlocalname (const Proto *f, int local_number, int pc) { + int i; + for (i = 0; isizelocvars && f->locvars[i].startpc <= pc; i++) { + if (pc < f->locvars[i].endpc) { /* is variable active? */ + local_number--; + if (local_number == 0) + return getstr(f->locvars[i].varname); + } + } + return NULL; /* not found */ +} + diff --git a/mk/linux/mojosetup/lua/src/lfunc.h b/mk/linux/mojosetup/lua/src/lfunc.h new file mode 100644 index 00000000..a68cf515 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lfunc.h @@ -0,0 +1,34 @@ +/* +** $Id: lfunc.h,v 2.4.1.1 2007/12/27 13:02:25 roberto Exp $ +** Auxiliary functions to manipulate prototypes and closures +** See Copyright Notice in lua.h +*/ + +#ifndef lfunc_h +#define lfunc_h + + +#include "lobject.h" + + +#define sizeCclosure(n) (cast(int, sizeof(CClosure)) + \ + cast(int, sizeof(TValue)*((n)-1))) + +#define sizeLclosure(n) (cast(int, sizeof(LClosure)) + \ + cast(int, sizeof(TValue *)*((n)-1))) + + +LUAI_FUNC Proto *luaF_newproto (lua_State *L); +LUAI_FUNC Closure *luaF_newCclosure (lua_State *L, int nelems, Table *e); +LUAI_FUNC Closure *luaF_newLclosure (lua_State *L, int nelems, Table *e); +LUAI_FUNC UpVal *luaF_newupval (lua_State *L); +LUAI_FUNC UpVal *luaF_findupval (lua_State *L, StkId level); +LUAI_FUNC void luaF_close (lua_State *L, StkId level); +LUAI_FUNC void luaF_freeproto (lua_State *L, Proto *f); +LUAI_FUNC void luaF_freeclosure (lua_State *L, Closure *c); +LUAI_FUNC void luaF_freeupval (lua_State *L, UpVal *uv); +LUAI_FUNC const char *luaF_getlocalname (const Proto *func, int local_number, + int pc); + + +#endif diff --git a/mk/linux/mojosetup/lua/src/lgc.c b/mk/linux/mojosetup/lua/src/lgc.c new file mode 100644 index 00000000..d9e0b782 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lgc.c @@ -0,0 +1,711 @@ +/* +** $Id: lgc.c,v 2.38.1.1 2007/12/27 13:02:25 roberto Exp $ +** Garbage Collector +** See Copyright Notice in lua.h +*/ + +#include + +#define lgc_c +#define LUA_CORE + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lgc.h" +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" + + +#define GCSTEPSIZE 1024u +#define GCSWEEPMAX 40 +#define GCSWEEPCOST 10 +#define GCFINALIZECOST 100 + + +#define maskmarks cast_byte(~(bitmask(BLACKBIT)|WHITEBITS)) + +#define makewhite(g,x) \ + ((x)->gch.marked = cast_byte(((x)->gch.marked & maskmarks) | luaC_white(g))) + +#define white2gray(x) reset2bits((x)->gch.marked, WHITE0BIT, WHITE1BIT) +#define black2gray(x) resetbit((x)->gch.marked, BLACKBIT) + +#define stringmark(s) reset2bits((s)->tsv.marked, WHITE0BIT, WHITE1BIT) + + +#define isfinalized(u) testbit((u)->marked, FINALIZEDBIT) +#define markfinalized(u) l_setbit((u)->marked, FINALIZEDBIT) + + +#define KEYWEAK bitmask(KEYWEAKBIT) +#define VALUEWEAK bitmask(VALUEWEAKBIT) + + + +#define markvalue(g,o) { checkconsistency(o); \ + if (iscollectable(o) && iswhite(gcvalue(o))) reallymarkobject(g,gcvalue(o)); } + +#define markobject(g,t) { if (iswhite(obj2gco(t))) \ + reallymarkobject(g, obj2gco(t)); } + + +#define setthreshold(g) (g->GCthreshold = (g->estimate/100) * g->gcpause) + + +static void removeentry (Node *n) { + lua_assert(ttisnil(gval(n))); + if (iscollectable(gkey(n))) + setttype(gkey(n), LUA_TDEADKEY); /* dead key; remove it */ +} + + +static void reallymarkobject (global_State *g, GCObject *o) { + lua_assert(iswhite(o) && !isdead(g, o)); + white2gray(o); + switch (o->gch.tt) { + case LUA_TSTRING: { + return; + } + case LUA_TUSERDATA: { + Table *mt = gco2u(o)->metatable; + gray2black(o); /* udata are never gray */ + if (mt) markobject(g, mt); + markobject(g, gco2u(o)->env); + return; + } + case LUA_TUPVAL: { + UpVal *uv = gco2uv(o); + markvalue(g, uv->v); + if (uv->v == &uv->u.value) /* closed? */ + gray2black(o); /* open upvalues are never black */ + return; + } + case LUA_TFUNCTION: { + gco2cl(o)->c.gclist = g->gray; + g->gray = o; + break; + } + case LUA_TTABLE: { + gco2h(o)->gclist = g->gray; + g->gray = o; + break; + } + case LUA_TTHREAD: { + gco2th(o)->gclist = g->gray; + g->gray = o; + break; + } + case LUA_TPROTO: { + gco2p(o)->gclist = g->gray; + g->gray = o; + break; + } + default: lua_assert(0); + } +} + + +static void marktmu (global_State *g) { + GCObject *u = g->tmudata; + if (u) { + do { + u = u->gch.next; + makewhite(g, u); /* may be marked, if left from previous GC */ + reallymarkobject(g, u); + } while (u != g->tmudata); + } +} + + +/* move `dead' udata that need finalization to list `tmudata' */ +size_t luaC_separateudata (lua_State *L, int all) { + global_State *g = G(L); + size_t deadmem = 0; + GCObject **p = &g->mainthread->next; + GCObject *curr; + while ((curr = *p) != NULL) { + if (!(iswhite(curr) || all) || isfinalized(gco2u(curr))) + p = &curr->gch.next; /* don't bother with them */ + else if (fasttm(L, gco2u(curr)->metatable, TM_GC) == NULL) { + markfinalized(gco2u(curr)); /* don't need finalization */ + p = &curr->gch.next; + } + else { /* must call its gc method */ + deadmem += sizeudata(gco2u(curr)); + markfinalized(gco2u(curr)); + *p = curr->gch.next; + /* link `curr' at the end of `tmudata' list */ + if (g->tmudata == NULL) /* list is empty? */ + g->tmudata = curr->gch.next = curr; /* creates a circular list */ + else { + curr->gch.next = g->tmudata->gch.next; + g->tmudata->gch.next = curr; + g->tmudata = curr; + } + } + } + return deadmem; +} + + +static int traversetable (global_State *g, Table *h) { + int i; + int weakkey = 0; + int weakvalue = 0; + const TValue *mode; + if (h->metatable) + markobject(g, h->metatable); + mode = gfasttm(g, h->metatable, TM_MODE); + if (mode && ttisstring(mode)) { /* is there a weak mode? */ + weakkey = (strchr(svalue(mode), 'k') != NULL); + weakvalue = (strchr(svalue(mode), 'v') != NULL); + if (weakkey || weakvalue) { /* is really weak? */ + h->marked &= ~(KEYWEAK | VALUEWEAK); /* clear bits */ + h->marked |= cast_byte((weakkey << KEYWEAKBIT) | + (weakvalue << VALUEWEAKBIT)); + h->gclist = g->weak; /* must be cleared after GC, ... */ + g->weak = obj2gco(h); /* ... so put in the appropriate list */ + } + } + if (weakkey && weakvalue) return 1; + if (!weakvalue) { + i = h->sizearray; + while (i--) + markvalue(g, &h->array[i]); + } + i = sizenode(h); + while (i--) { + Node *n = gnode(h, i); + lua_assert(ttype(gkey(n)) != LUA_TDEADKEY || ttisnil(gval(n))); + if (ttisnil(gval(n))) + removeentry(n); /* remove empty entries */ + else { + lua_assert(!ttisnil(gkey(n))); + if (!weakkey) markvalue(g, gkey(n)); + if (!weakvalue) markvalue(g, gval(n)); + } + } + return weakkey || weakvalue; +} + + +/* +** All marks are conditional because a GC may happen while the +** prototype is still being created +*/ +static void traverseproto (global_State *g, Proto *f) { + int i; + if (f->source) stringmark(f->source); + for (i=0; isizek; i++) /* mark literals */ + markvalue(g, &f->k[i]); + for (i=0; isizeupvalues; i++) { /* mark upvalue names */ + if (f->upvalues[i]) + stringmark(f->upvalues[i]); + } + for (i=0; isizep; i++) { /* mark nested protos */ + if (f->p[i]) + markobject(g, f->p[i]); + } + for (i=0; isizelocvars; i++) { /* mark local-variable names */ + if (f->locvars[i].varname) + stringmark(f->locvars[i].varname); + } +} + + + +static void traverseclosure (global_State *g, Closure *cl) { + markobject(g, cl->c.env); + if (cl->c.isC) { + int i; + for (i=0; ic.nupvalues; i++) /* mark its upvalues */ + markvalue(g, &cl->c.upvalue[i]); + } + else { + int i; + lua_assert(cl->l.nupvalues == cl->l.p->nups); + markobject(g, cl->l.p); + for (i=0; il.nupvalues; i++) /* mark its upvalues */ + markobject(g, cl->l.upvals[i]); + } +} + + +static void checkstacksizes (lua_State *L, StkId max) { + int ci_used = cast_int(L->ci - L->base_ci); /* number of `ci' in use */ + int s_used = cast_int(max - L->stack); /* part of stack in use */ + if (L->size_ci > LUAI_MAXCALLS) /* handling overflow? */ + return; /* do not touch the stacks */ + if (4*ci_used < L->size_ci && 2*BASIC_CI_SIZE < L->size_ci) + luaD_reallocCI(L, L->size_ci/2); /* still big enough... */ + condhardstacktests(luaD_reallocCI(L, ci_used + 1)); + if (4*s_used < L->stacksize && + 2*(BASIC_STACK_SIZE+EXTRA_STACK) < L->stacksize) + luaD_reallocstack(L, L->stacksize/2); /* still big enough... */ + condhardstacktests(luaD_reallocstack(L, s_used)); +} + + +static void traversestack (global_State *g, lua_State *l) { + StkId o, lim; + CallInfo *ci; + markvalue(g, gt(l)); + lim = l->top; + for (ci = l->base_ci; ci <= l->ci; ci++) { + lua_assert(ci->top <= l->stack_last); + if (lim < ci->top) lim = ci->top; + } + for (o = l->stack; o < l->top; o++) + markvalue(g, o); + for (; o <= lim; o++) + setnilvalue(o); + checkstacksizes(l, lim); +} + + +/* +** traverse one gray object, turning it to black. +** Returns `quantity' traversed. +*/ +static l_mem propagatemark (global_State *g) { + GCObject *o = g->gray; + lua_assert(isgray(o)); + gray2black(o); + switch (o->gch.tt) { + case LUA_TTABLE: { + Table *h = gco2h(o); + g->gray = h->gclist; + if (traversetable(g, h)) /* table is weak? */ + black2gray(o); /* keep it gray */ + return sizeof(Table) + sizeof(TValue) * h->sizearray + + sizeof(Node) * sizenode(h); + } + case LUA_TFUNCTION: { + Closure *cl = gco2cl(o); + g->gray = cl->c.gclist; + traverseclosure(g, cl); + return (cl->c.isC) ? sizeCclosure(cl->c.nupvalues) : + sizeLclosure(cl->l.nupvalues); + } + case LUA_TTHREAD: { + lua_State *th = gco2th(o); + g->gray = th->gclist; + th->gclist = g->grayagain; + g->grayagain = o; + black2gray(o); + traversestack(g, th); + return sizeof(lua_State) + sizeof(TValue) * th->stacksize + + sizeof(CallInfo) * th->size_ci; + } + case LUA_TPROTO: { + Proto *p = gco2p(o); + g->gray = p->gclist; + traverseproto(g, p); + return sizeof(Proto) + sizeof(Instruction) * p->sizecode + + sizeof(Proto *) * p->sizep + + sizeof(TValue) * p->sizek + + sizeof(int) * p->sizelineinfo + + sizeof(LocVar) * p->sizelocvars + + sizeof(TString *) * p->sizeupvalues; + } + default: lua_assert(0); return 0; + } +} + + +static size_t propagateall (global_State *g) { + size_t m = 0; + while (g->gray) m += propagatemark(g); + return m; +} + + +/* +** The next function tells whether a key or value can be cleared from +** a weak table. Non-collectable objects are never removed from weak +** tables. Strings behave as `values', so are never removed too. for +** other objects: if really collected, cannot keep them; for userdata +** being finalized, keep them in keys, but not in values +*/ +static int iscleared (const TValue *o, int iskey) { + if (!iscollectable(o)) return 0; + if (ttisstring(o)) { + stringmark(rawtsvalue(o)); /* strings are `values', so are never weak */ + return 0; + } + return iswhite(gcvalue(o)) || + (ttisuserdata(o) && (!iskey && isfinalized(uvalue(o)))); +} + + +/* +** clear collected entries from weaktables +*/ +static void cleartable (GCObject *l) { + while (l) { + Table *h = gco2h(l); + int i = h->sizearray; + lua_assert(testbit(h->marked, VALUEWEAKBIT) || + testbit(h->marked, KEYWEAKBIT)); + if (testbit(h->marked, VALUEWEAKBIT)) { + while (i--) { + TValue *o = &h->array[i]; + if (iscleared(o, 0)) /* value was collected? */ + setnilvalue(o); /* remove value */ + } + } + i = sizenode(h); + while (i--) { + Node *n = gnode(h, i); + if (!ttisnil(gval(n)) && /* non-empty entry? */ + (iscleared(key2tval(n), 1) || iscleared(gval(n), 0))) { + setnilvalue(gval(n)); /* remove value ... */ + removeentry(n); /* remove entry from table */ + } + } + l = h->gclist; + } +} + + +static void freeobj (lua_State *L, GCObject *o) { + switch (o->gch.tt) { + case LUA_TPROTO: luaF_freeproto(L, gco2p(o)); break; + case LUA_TFUNCTION: luaF_freeclosure(L, gco2cl(o)); break; + case LUA_TUPVAL: luaF_freeupval(L, gco2uv(o)); break; + case LUA_TTABLE: luaH_free(L, gco2h(o)); break; + case LUA_TTHREAD: { + lua_assert(gco2th(o) != L && gco2th(o) != G(L)->mainthread); + luaE_freethread(L, gco2th(o)); + break; + } + case LUA_TSTRING: { + G(L)->strt.nuse--; + luaM_freemem(L, o, sizestring(gco2ts(o))); + break; + } + case LUA_TUSERDATA: { + luaM_freemem(L, o, sizeudata(gco2u(o))); + break; + } + default: lua_assert(0); + } +} + + + +#define sweepwholelist(L,p) sweeplist(L,p,MAX_LUMEM) + + +static GCObject **sweeplist (lua_State *L, GCObject **p, lu_mem count) { + GCObject *curr; + global_State *g = G(L); + int deadmask = otherwhite(g); + while ((curr = *p) != NULL && count-- > 0) { + if (curr->gch.tt == LUA_TTHREAD) /* sweep open upvalues of each thread */ + sweepwholelist(L, &gco2th(curr)->openupval); + if ((curr->gch.marked ^ WHITEBITS) & deadmask) { /* not dead? */ + lua_assert(!isdead(g, curr) || testbit(curr->gch.marked, FIXEDBIT)); + makewhite(g, curr); /* make it white (for next cycle) */ + p = &curr->gch.next; + } + else { /* must erase `curr' */ + lua_assert(isdead(g, curr) || deadmask == bitmask(SFIXEDBIT)); + *p = curr->gch.next; + if (curr == g->rootgc) /* is the first element of the list? */ + g->rootgc = curr->gch.next; /* adjust first */ + freeobj(L, curr); + } + } + return p; +} + + +static void checkSizes (lua_State *L) { + global_State *g = G(L); + /* check size of string hash */ + if (g->strt.nuse < cast(lu_int32, g->strt.size/4) && + g->strt.size > MINSTRTABSIZE*2) + luaS_resize(L, g->strt.size/2); /* table is too big */ + /* check size of buffer */ + if (luaZ_sizebuffer(&g->buff) > LUA_MINBUFFER*2) { /* buffer too big? */ + size_t newsize = luaZ_sizebuffer(&g->buff) / 2; + luaZ_resizebuffer(L, &g->buff, newsize); + } +} + + +static void GCTM (lua_State *L) { + global_State *g = G(L); + GCObject *o = g->tmudata->gch.next; /* get first element */ + Udata *udata = rawgco2u(o); + const TValue *tm; + /* remove udata from `tmudata' */ + if (o == g->tmudata) /* last element? */ + g->tmudata = NULL; + else + g->tmudata->gch.next = udata->uv.next; + udata->uv.next = g->mainthread->next; /* return it to `root' list */ + g->mainthread->next = o; + makewhite(g, o); + tm = fasttm(L, udata->uv.metatable, TM_GC); + if (tm != NULL) { + lu_byte oldah = L->allowhook; + lu_mem oldt = g->GCthreshold; + L->allowhook = 0; /* stop debug hooks during GC tag method */ + g->GCthreshold = 2*g->totalbytes; /* avoid GC steps */ + setobj2s(L, L->top, tm); + setuvalue(L, L->top+1, udata); + L->top += 2; + luaD_call(L, L->top - 2, 0); + L->allowhook = oldah; /* restore hooks */ + g->GCthreshold = oldt; /* restore threshold */ + } +} + + +/* +** Call all GC tag methods +*/ +void luaC_callGCTM (lua_State *L) { + while (G(L)->tmudata) + GCTM(L); +} + + +void luaC_freeall (lua_State *L) { + global_State *g = G(L); + int i; + g->currentwhite = WHITEBITS | bitmask(SFIXEDBIT); /* mask to collect all elements */ + sweepwholelist(L, &g->rootgc); + for (i = 0; i < g->strt.size; i++) /* free all string lists */ + sweepwholelist(L, &g->strt.hash[i]); +} + + +static void markmt (global_State *g) { + int i; + for (i=0; imt[i]) markobject(g, g->mt[i]); +} + + +/* mark root set */ +static void markroot (lua_State *L) { + global_State *g = G(L); + g->gray = NULL; + g->grayagain = NULL; + g->weak = NULL; + markobject(g, g->mainthread); + /* make global table be traversed before main stack */ + markvalue(g, gt(g->mainthread)); + markvalue(g, registry(L)); + markmt(g); + g->gcstate = GCSpropagate; +} + + +static void remarkupvals (global_State *g) { + UpVal *uv; + for (uv = g->uvhead.u.l.next; uv != &g->uvhead; uv = uv->u.l.next) { + lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv); + if (isgray(obj2gco(uv))) + markvalue(g, uv->v); + } +} + + +static void atomic (lua_State *L) { + global_State *g = G(L); + size_t udsize; /* total size of userdata to be finalized */ + /* remark occasional upvalues of (maybe) dead threads */ + remarkupvals(g); + /* traverse objects cautch by write barrier and by 'remarkupvals' */ + propagateall(g); + /* remark weak tables */ + g->gray = g->weak; + g->weak = NULL; + lua_assert(!iswhite(obj2gco(g->mainthread))); + markobject(g, L); /* mark running thread */ + markmt(g); /* mark basic metatables (again) */ + propagateall(g); + /* remark gray again */ + g->gray = g->grayagain; + g->grayagain = NULL; + propagateall(g); + udsize = luaC_separateudata(L, 0); /* separate userdata to be finalized */ + marktmu(g); /* mark `preserved' userdata */ + udsize += propagateall(g); /* remark, to propagate `preserveness' */ + cleartable(g->weak); /* remove collected objects from weak tables */ + /* flip current white */ + g->currentwhite = cast_byte(otherwhite(g)); + g->sweepstrgc = 0; + g->sweepgc = &g->rootgc; + g->gcstate = GCSsweepstring; + g->estimate = g->totalbytes - udsize; /* first estimate */ +} + + +static l_mem singlestep (lua_State *L) { + global_State *g = G(L); + /*lua_checkmemory(L);*/ + switch (g->gcstate) { + case GCSpause: { + markroot(L); /* start a new collection */ + return 0; + } + case GCSpropagate: { + if (g->gray) + return propagatemark(g); + else { /* no more `gray' objects */ + atomic(L); /* finish mark phase */ + return 0; + } + } + case GCSsweepstring: { + lu_mem old = g->totalbytes; + sweepwholelist(L, &g->strt.hash[g->sweepstrgc++]); + if (g->sweepstrgc >= g->strt.size) /* nothing more to sweep? */ + g->gcstate = GCSsweep; /* end sweep-string phase */ + lua_assert(old >= g->totalbytes); + g->estimate -= old - g->totalbytes; + return GCSWEEPCOST; + } + case GCSsweep: { + lu_mem old = g->totalbytes; + g->sweepgc = sweeplist(L, g->sweepgc, GCSWEEPMAX); + if (*g->sweepgc == NULL) { /* nothing more to sweep? */ + checkSizes(L); + g->gcstate = GCSfinalize; /* end sweep phase */ + } + lua_assert(old >= g->totalbytes); + g->estimate -= old - g->totalbytes; + return GCSWEEPMAX*GCSWEEPCOST; + } + case GCSfinalize: { + if (g->tmudata) { + GCTM(L); + if (g->estimate > GCFINALIZECOST) + g->estimate -= GCFINALIZECOST; + return GCFINALIZECOST; + } + else { + g->gcstate = GCSpause; /* end collection */ + g->gcdept = 0; + return 0; + } + } + default: lua_assert(0); return 0; + } +} + + +void luaC_step (lua_State *L) { + global_State *g = G(L); + l_mem lim = (GCSTEPSIZE/100) * g->gcstepmul; + if (lim == 0) + lim = (MAX_LUMEM-1)/2; /* no limit */ + g->gcdept += g->totalbytes - g->GCthreshold; + do { + lim -= singlestep(L); + if (g->gcstate == GCSpause) + break; + } while (lim > 0); + if (g->gcstate != GCSpause) { + if (g->gcdept < GCSTEPSIZE) + g->GCthreshold = g->totalbytes + GCSTEPSIZE; /* - lim/g->gcstepmul;*/ + else { + g->gcdept -= GCSTEPSIZE; + g->GCthreshold = g->totalbytes; + } + } + else { + lua_assert(g->totalbytes >= g->estimate); + setthreshold(g); + } +} + + +void luaC_fullgc (lua_State *L) { + global_State *g = G(L); + if (g->gcstate <= GCSpropagate) { + /* reset sweep marks to sweep all elements (returning them to white) */ + g->sweepstrgc = 0; + g->sweepgc = &g->rootgc; + /* reset other collector lists */ + g->gray = NULL; + g->grayagain = NULL; + g->weak = NULL; + g->gcstate = GCSsweepstring; + } + lua_assert(g->gcstate != GCSpause && g->gcstate != GCSpropagate); + /* finish any pending sweep phase */ + while (g->gcstate != GCSfinalize) { + lua_assert(g->gcstate == GCSsweepstring || g->gcstate == GCSsweep); + singlestep(L); + } + markroot(L); + while (g->gcstate != GCSpause) { + singlestep(L); + } + setthreshold(g); +} + + +void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v) { + global_State *g = G(L); + lua_assert(isblack(o) && iswhite(v) && !isdead(g, v) && !isdead(g, o)); + lua_assert(g->gcstate != GCSfinalize && g->gcstate != GCSpause); + lua_assert(ttype(&o->gch) != LUA_TTABLE); + /* must keep invariant? */ + if (g->gcstate == GCSpropagate) + reallymarkobject(g, v); /* restore invariant */ + else /* don't mind */ + makewhite(g, o); /* mark as white just to avoid other barriers */ +} + + +void luaC_barrierback (lua_State *L, Table *t) { + global_State *g = G(L); + GCObject *o = obj2gco(t); + lua_assert(isblack(o) && !isdead(g, o)); + lua_assert(g->gcstate != GCSfinalize && g->gcstate != GCSpause); + black2gray(o); /* make table gray (again) */ + t->gclist = g->grayagain; + g->grayagain = o; +} + + +void luaC_link (lua_State *L, GCObject *o, lu_byte tt) { + global_State *g = G(L); + o->gch.next = g->rootgc; + g->rootgc = o; + o->gch.marked = luaC_white(g); + o->gch.tt = tt; +} + + +void luaC_linkupval (lua_State *L, UpVal *uv) { + global_State *g = G(L); + GCObject *o = obj2gco(uv); + o->gch.next = g->rootgc; /* link upvalue into `rootgc' list */ + g->rootgc = o; + if (isgray(o)) { + if (g->gcstate == GCSpropagate) { + gray2black(o); /* closed upvalues need barrier */ + luaC_barrier(L, uv, uv->v); + } + else { /* sweep phase: sweep it (turning it into white) */ + makewhite(g, o); + lua_assert(g->gcstate != GCSfinalize && g->gcstate != GCSpause); + } + } +} + diff --git a/mk/linux/mojosetup/lua/src/lgc.h b/mk/linux/mojosetup/lua/src/lgc.h new file mode 100644 index 00000000..5a8dc605 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lgc.h @@ -0,0 +1,110 @@ +/* +** $Id: lgc.h,v 2.15.1.1 2007/12/27 13:02:25 roberto Exp $ +** Garbage Collector +** See Copyright Notice in lua.h +*/ + +#ifndef lgc_h +#define lgc_h + + +#include "lobject.h" + + +/* +** Possible states of the Garbage Collector +*/ +#define GCSpause 0 +#define GCSpropagate 1 +#define GCSsweepstring 2 +#define GCSsweep 3 +#define GCSfinalize 4 + + +/* +** some userful bit tricks +*/ +#define resetbits(x,m) ((x) &= cast(lu_byte, ~(m))) +#define setbits(x,m) ((x) |= (m)) +#define testbits(x,m) ((x) & (m)) +#define bitmask(b) (1<<(b)) +#define bit2mask(b1,b2) (bitmask(b1) | bitmask(b2)) +#define l_setbit(x,b) setbits(x, bitmask(b)) +#define resetbit(x,b) resetbits(x, bitmask(b)) +#define testbit(x,b) testbits(x, bitmask(b)) +#define set2bits(x,b1,b2) setbits(x, (bit2mask(b1, b2))) +#define reset2bits(x,b1,b2) resetbits(x, (bit2mask(b1, b2))) +#define test2bits(x,b1,b2) testbits(x, (bit2mask(b1, b2))) + + + +/* +** Layout for bit use in `marked' field: +** bit 0 - object is white (type 0) +** bit 1 - object is white (type 1) +** bit 2 - object is black +** bit 3 - for userdata: has been finalized +** bit 3 - for tables: has weak keys +** bit 4 - for tables: has weak values +** bit 5 - object is fixed (should not be collected) +** bit 6 - object is "super" fixed (only the main thread) +*/ + + +#define WHITE0BIT 0 +#define WHITE1BIT 1 +#define BLACKBIT 2 +#define FINALIZEDBIT 3 +#define KEYWEAKBIT 3 +#define VALUEWEAKBIT 4 +#define FIXEDBIT 5 +#define SFIXEDBIT 6 +#define WHITEBITS bit2mask(WHITE0BIT, WHITE1BIT) + + +#define iswhite(x) test2bits((x)->gch.marked, WHITE0BIT, WHITE1BIT) +#define isblack(x) testbit((x)->gch.marked, BLACKBIT) +#define isgray(x) (!isblack(x) && !iswhite(x)) + +#define otherwhite(g) (g->currentwhite ^ WHITEBITS) +#define isdead(g,v) ((v)->gch.marked & otherwhite(g) & WHITEBITS) + +#define changewhite(x) ((x)->gch.marked ^= WHITEBITS) +#define gray2black(x) l_setbit((x)->gch.marked, BLACKBIT) + +#define valiswhite(x) (iscollectable(x) && iswhite(gcvalue(x))) + +#define luaC_white(g) cast(lu_byte, (g)->currentwhite & WHITEBITS) + + +#define luaC_checkGC(L) { \ + condhardstacktests(luaD_reallocstack(L, L->stacksize - EXTRA_STACK - 1)); \ + if (G(L)->totalbytes >= G(L)->GCthreshold) \ + luaC_step(L); } + + +#define luaC_barrier(L,p,v) { if (valiswhite(v) && isblack(obj2gco(p))) \ + luaC_barrierf(L,obj2gco(p),gcvalue(v)); } + +#define luaC_barriert(L,t,v) { if (valiswhite(v) && isblack(obj2gco(t))) \ + luaC_barrierback(L,t); } + +#define luaC_objbarrier(L,p,o) \ + { if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) \ + luaC_barrierf(L,obj2gco(p),obj2gco(o)); } + +#define luaC_objbarriert(L,t,o) \ + { if (iswhite(obj2gco(o)) && isblack(obj2gco(t))) luaC_barrierback(L,t); } + +LUAI_FUNC size_t luaC_separateudata (lua_State *L, int all); +LUAI_FUNC void luaC_callGCTM (lua_State *L); +LUAI_FUNC void luaC_freeall (lua_State *L); +LUAI_FUNC void luaC_step (lua_State *L); +LUAI_FUNC void luaC_fullgc (lua_State *L); +LUAI_FUNC void luaC_link (lua_State *L, GCObject *o, lu_byte tt); +LUAI_FUNC void luaC_linkupval (lua_State *L, UpVal *uv); +LUAI_FUNC void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v); +LUAI_FUNC void luaC_barrierback (lua_State *L, Table *t); + + +#endif diff --git a/mk/linux/mojosetup/lua/src/linit.c b/mk/linux/mojosetup/lua/src/linit.c new file mode 100644 index 00000000..c1f90dfa --- /dev/null +++ b/mk/linux/mojosetup/lua/src/linit.c @@ -0,0 +1,38 @@ +/* +** $Id: linit.c,v 1.14.1.1 2007/12/27 13:02:25 roberto Exp $ +** Initialization of libraries for lua.c +** See Copyright Notice in lua.h +*/ + + +#define linit_c +#define LUA_LIB + +#include "lua.h" + +#include "lualib.h" +#include "lauxlib.h" + + +static const luaL_Reg lualibs[] = { + {"", luaopen_base}, + {LUA_LOADLIBNAME, luaopen_package}, + {LUA_TABLIBNAME, luaopen_table}, + {LUA_IOLIBNAME, luaopen_io}, + {LUA_OSLIBNAME, luaopen_os}, + {LUA_STRLIBNAME, luaopen_string}, + {LUA_MATHLIBNAME, luaopen_math}, + {LUA_DBLIBNAME, luaopen_debug}, + {NULL, NULL} +}; + + +LUALIB_API void luaL_openlibs (lua_State *L) { + const luaL_Reg *lib = lualibs; + for (; lib->func; lib++) { + lua_pushcfunction(L, lib->func); + lua_pushstring(L, lib->name); + lua_call(L, 1, 0); + } +} + diff --git a/mk/linux/mojosetup/lua/src/liolib.c b/mk/linux/mojosetup/lua/src/liolib.c new file mode 100644 index 00000000..e79ed1cb --- /dev/null +++ b/mk/linux/mojosetup/lua/src/liolib.c @@ -0,0 +1,553 @@ +/* +** $Id: liolib.c,v 2.73.1.3 2008/01/18 17:47:43 roberto Exp $ +** Standard I/O (and system) library +** See Copyright Notice in lua.h +*/ + + +#include +#include +#include +#include + +#define liolib_c +#define LUA_LIB + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + + +#define IO_INPUT 1 +#define IO_OUTPUT 2 + + +static const char *const fnames[] = {"input", "output"}; + + +static int pushresult (lua_State *L, int i, const char *filename) { + int en = errno; /* calls to Lua API may change this value */ + if (i) { + lua_pushboolean(L, 1); + return 1; + } + else { + lua_pushnil(L); + if (filename) + lua_pushfstring(L, "%s: %s", filename, strerror(en)); + else + lua_pushfstring(L, "%s", strerror(en)); + lua_pushinteger(L, en); + return 3; + } +} + + +static void fileerror (lua_State *L, int arg, const char *filename) { + lua_pushfstring(L, "%s: %s", filename, strerror(errno)); + luaL_argerror(L, arg, lua_tostring(L, -1)); +} + + +#define tofilep(L) ((FILE **)luaL_checkudata(L, 1, LUA_FILEHANDLE)) + + +static int io_type (lua_State *L) { + void *ud; + luaL_checkany(L, 1); + ud = lua_touserdata(L, 1); + lua_getfield(L, LUA_REGISTRYINDEX, LUA_FILEHANDLE); + if (ud == NULL || !lua_getmetatable(L, 1) || !lua_rawequal(L, -2, -1)) + lua_pushnil(L); /* not a file */ + else if (*((FILE **)ud) == NULL) + lua_pushliteral(L, "closed file"); + else + lua_pushliteral(L, "file"); + return 1; +} + + +static FILE *tofile (lua_State *L) { + FILE **f = tofilep(L); + if (*f == NULL) + luaL_error(L, "attempt to use a closed file"); + return *f; +} + + + +/* +** When creating file handles, always creates a `closed' file handle +** before opening the actual file; so, if there is a memory error, the +** file is not left opened. +*/ +static FILE **newfile (lua_State *L) { + FILE **pf = (FILE **)lua_newuserdata(L, sizeof(FILE *)); + *pf = NULL; /* file handle is currently `closed' */ + luaL_getmetatable(L, LUA_FILEHANDLE); + lua_setmetatable(L, -2); + return pf; +} + + +/* +** function to (not) close the standard files stdin, stdout, and stderr +*/ +static int io_noclose (lua_State *L) { + lua_pushnil(L); + lua_pushliteral(L, "cannot close standard file"); + return 2; +} + + +/* +** function to close 'popen' files +*/ +static int io_pclose (lua_State *L) { + FILE **p = tofilep(L); + int ok = lua_pclose(L, *p); + *p = NULL; + return pushresult(L, ok, NULL); +} + + +/* +** function to close regular files +*/ +static int io_fclose (lua_State *L) { + FILE **p = tofilep(L); + int ok = (fclose(*p) == 0); + *p = NULL; + return pushresult(L, ok, NULL); +} + + +static int aux_close (lua_State *L) { + lua_getfenv(L, 1); + lua_getfield(L, -1, "__close"); + return (lua_tocfunction(L, -1))(L); +} + + +static int io_close (lua_State *L) { + if (lua_isnone(L, 1)) + lua_rawgeti(L, LUA_ENVIRONINDEX, IO_OUTPUT); + tofile(L); /* make sure argument is a file */ + return aux_close(L); +} + + +static int io_gc (lua_State *L) { + FILE *f = *tofilep(L); + /* ignore closed files */ + if (f != NULL) + aux_close(L); + return 0; +} + + +static int io_tostring (lua_State *L) { + FILE *f = *tofilep(L); + if (f == NULL) + lua_pushliteral(L, "file (closed)"); + else + lua_pushfstring(L, "file (%p)", f); + return 1; +} + + +static int io_open (lua_State *L) { + const char *filename = luaL_checkstring(L, 1); + const char *mode = luaL_optstring(L, 2, "r"); + FILE **pf = newfile(L); + *pf = fopen(filename, mode); + return (*pf == NULL) ? pushresult(L, 0, filename) : 1; +} + + +/* +** this function has a separated environment, which defines the +** correct __close for 'popen' files +*/ +static int io_popen (lua_State *L) { + const char *filename = luaL_checkstring(L, 1); + const char *mode = luaL_optstring(L, 2, "r"); + FILE **pf = newfile(L); + *pf = lua_popen(L, filename, mode); + return (*pf == NULL) ? pushresult(L, 0, filename) : 1; +} + + +static int io_tmpfile (lua_State *L) { + FILE **pf = newfile(L); + *pf = tmpfile(); + return (*pf == NULL) ? pushresult(L, 0, NULL) : 1; +} + + +static FILE *getiofile (lua_State *L, int findex) { + FILE *f; + lua_rawgeti(L, LUA_ENVIRONINDEX, findex); + f = *(FILE **)lua_touserdata(L, -1); + if (f == NULL) + luaL_error(L, "standard %s file is closed", fnames[findex - 1]); + return f; +} + + +static int g_iofile (lua_State *L, int f, const char *mode) { + if (!lua_isnoneornil(L, 1)) { + const char *filename = lua_tostring(L, 1); + if (filename) { + FILE **pf = newfile(L); + *pf = fopen(filename, mode); + if (*pf == NULL) + fileerror(L, 1, filename); + } + else { + tofile(L); /* check that it's a valid file handle */ + lua_pushvalue(L, 1); + } + lua_rawseti(L, LUA_ENVIRONINDEX, f); + } + /* return current value */ + lua_rawgeti(L, LUA_ENVIRONINDEX, f); + return 1; +} + + +static int io_input (lua_State *L) { + return g_iofile(L, IO_INPUT, "r"); +} + + +static int io_output (lua_State *L) { + return g_iofile(L, IO_OUTPUT, "w"); +} + + +static int io_readline (lua_State *L); + + +static void aux_lines (lua_State *L, int idx, int toclose) { + lua_pushvalue(L, idx); + lua_pushboolean(L, toclose); /* close/not close file when finished */ + lua_pushcclosure(L, io_readline, 2); +} + + +static int f_lines (lua_State *L) { + tofile(L); /* check that it's a valid file handle */ + aux_lines(L, 1, 0); + return 1; +} + + +static int io_lines (lua_State *L) { + if (lua_isnoneornil(L, 1)) { /* no arguments? */ + /* will iterate over default input */ + lua_rawgeti(L, LUA_ENVIRONINDEX, IO_INPUT); + return f_lines(L); + } + else { + const char *filename = luaL_checkstring(L, 1); + FILE **pf = newfile(L); + *pf = fopen(filename, "r"); + if (*pf == NULL) + fileerror(L, 1, filename); + aux_lines(L, lua_gettop(L), 1); + return 1; + } +} + + +/* +** {====================================================== +** READ +** ======================================================= +*/ + + +static int read_number (lua_State *L, FILE *f) { + lua_Number d; + if (fscanf(f, LUA_NUMBER_SCAN, &d) == 1) { + lua_pushnumber(L, d); + return 1; + } + else return 0; /* read fails */ +} + + +static int test_eof (lua_State *L, FILE *f) { + int c = getc(f); + ungetc(c, f); + lua_pushlstring(L, NULL, 0); + return (c != EOF); +} + + +static int read_line (lua_State *L, FILE *f) { + luaL_Buffer b; + luaL_buffinit(L, &b); + for (;;) { + size_t l; + char *p = luaL_prepbuffer(&b); + if (fgets(p, LUAL_BUFFERSIZE, f) == NULL) { /* eof? */ + luaL_pushresult(&b); /* close buffer */ + return (lua_objlen(L, -1) > 0); /* check whether read something */ + } + l = strlen(p); + if (l == 0 || p[l-1] != '\n') + luaL_addsize(&b, l); + else { + luaL_addsize(&b, l - 1); /* do not include `eol' */ + luaL_pushresult(&b); /* close buffer */ + return 1; /* read at least an `eol' */ + } + } +} + + +static int read_chars (lua_State *L, FILE *f, size_t n) { + size_t rlen; /* how much to read */ + size_t nr; /* number of chars actually read */ + luaL_Buffer b; + luaL_buffinit(L, &b); + rlen = LUAL_BUFFERSIZE; /* try to read that much each time */ + do { + char *p = luaL_prepbuffer(&b); + if (rlen > n) rlen = n; /* cannot read more than asked */ + nr = fread(p, sizeof(char), rlen, f); + luaL_addsize(&b, nr); + n -= nr; /* still have to read `n' chars */ + } while (n > 0 && nr == rlen); /* until end of count or eof */ + luaL_pushresult(&b); /* close buffer */ + return (n == 0 || lua_objlen(L, -1) > 0); +} + + +static int g_read (lua_State *L, FILE *f, int first) { + int nargs = lua_gettop(L) - 1; + int success; + int n; + clearerr(f); + if (nargs == 0) { /* no arguments? */ + success = read_line(L, f); + n = first+1; /* to return 1 result */ + } + else { /* ensure stack space for all results and for auxlib's buffer */ + luaL_checkstack(L, nargs+LUA_MINSTACK, "too many arguments"); + success = 1; + for (n = first; nargs-- && success; n++) { + if (lua_type(L, n) == LUA_TNUMBER) { + size_t l = (size_t)lua_tointeger(L, n); + success = (l == 0) ? test_eof(L, f) : read_chars(L, f, l); + } + else { + const char *p = lua_tostring(L, n); + luaL_argcheck(L, p && p[0] == '*', n, "invalid option"); + switch (p[1]) { + case 'n': /* number */ + success = read_number(L, f); + break; + case 'l': /* line */ + success = read_line(L, f); + break; + case 'a': /* file */ + read_chars(L, f, ~((size_t)0)); /* read MAX_SIZE_T chars */ + success = 1; /* always success */ + break; + default: + return luaL_argerror(L, n, "invalid format"); + } + } + } + } + if (ferror(f)) + return pushresult(L, 0, NULL); + if (!success) { + lua_pop(L, 1); /* remove last result */ + lua_pushnil(L); /* push nil instead */ + } + return n - first; +} + + +static int io_read (lua_State *L) { + return g_read(L, getiofile(L, IO_INPUT), 1); +} + + +static int f_read (lua_State *L) { + return g_read(L, tofile(L), 2); +} + + +static int io_readline (lua_State *L) { + FILE *f = *(FILE **)lua_touserdata(L, lua_upvalueindex(1)); + int sucess; + if (f == NULL) /* file is already closed? */ + luaL_error(L, "file is already closed"); + sucess = read_line(L, f); + if (ferror(f)) + return luaL_error(L, "%s", strerror(errno)); + if (sucess) return 1; + else { /* EOF */ + if (lua_toboolean(L, lua_upvalueindex(2))) { /* generator created file? */ + lua_settop(L, 0); + lua_pushvalue(L, lua_upvalueindex(1)); + aux_close(L); /* close it */ + } + return 0; + } +} + +/* }====================================================== */ + + +static int g_write (lua_State *L, FILE *f, int arg) { + int nargs = lua_gettop(L) - 1; + int status = 1; + for (; nargs--; arg++) { + if (lua_type(L, arg) == LUA_TNUMBER) { + /* optimization: could be done exactly as for strings */ + status = status && + fprintf(f, LUA_NUMBER_FMT, lua_tonumber(L, arg)) > 0; + } + else { + size_t l; + const char *s = luaL_checklstring(L, arg, &l); + status = status && (fwrite(s, sizeof(char), l, f) == l); + } + } + return pushresult(L, status, NULL); +} + + +static int io_write (lua_State *L) { + return g_write(L, getiofile(L, IO_OUTPUT), 1); +} + + +static int f_write (lua_State *L) { + return g_write(L, tofile(L), 2); +} + + +static int f_seek (lua_State *L) { + static const int mode[] = {SEEK_SET, SEEK_CUR, SEEK_END}; + static const char *const modenames[] = {"set", "cur", "end", NULL}; + FILE *f = tofile(L); + int op = luaL_checkoption(L, 2, "cur", modenames); + long offset = luaL_optlong(L, 3, 0); + op = fseek(f, offset, mode[op]); + if (op) + return pushresult(L, 0, NULL); /* error */ + else { + lua_pushinteger(L, ftell(f)); + return 1; + } +} + + +static int f_setvbuf (lua_State *L) { + static const int mode[] = {_IONBF, _IOFBF, _IOLBF}; + static const char *const modenames[] = {"no", "full", "line", NULL}; + FILE *f = tofile(L); + int op = luaL_checkoption(L, 2, NULL, modenames); + lua_Integer sz = luaL_optinteger(L, 3, LUAL_BUFFERSIZE); + int res = setvbuf(f, NULL, mode[op], sz); + return pushresult(L, res == 0, NULL); +} + + + +static int io_flush (lua_State *L) { + return pushresult(L, fflush(getiofile(L, IO_OUTPUT)) == 0, NULL); +} + + +static int f_flush (lua_State *L) { + return pushresult(L, fflush(tofile(L)) == 0, NULL); +} + + +static const luaL_Reg iolib[] = { + {"close", io_close}, + {"flush", io_flush}, + {"input", io_input}, + {"lines", io_lines}, + {"open", io_open}, + {"output", io_output}, + {"popen", io_popen}, + {"read", io_read}, + {"tmpfile", io_tmpfile}, + {"type", io_type}, + {"write", io_write}, + {NULL, NULL} +}; + + +static const luaL_Reg flib[] = { + {"close", io_close}, + {"flush", f_flush}, + {"lines", f_lines}, + {"read", f_read}, + {"seek", f_seek}, + {"setvbuf", f_setvbuf}, + {"write", f_write}, + {"__gc", io_gc}, + {"__tostring", io_tostring}, + {NULL, NULL} +}; + + +static void createmeta (lua_State *L) { + luaL_newmetatable(L, LUA_FILEHANDLE); /* create metatable for file handles */ + lua_pushvalue(L, -1); /* push metatable */ + lua_setfield(L, -2, "__index"); /* metatable.__index = metatable */ + luaL_register(L, NULL, flib); /* file methods */ +} + + +static void createstdfile (lua_State *L, FILE *f, int k, const char *fname) { + *newfile(L) = f; + if (k > 0) { + lua_pushvalue(L, -1); + lua_rawseti(L, LUA_ENVIRONINDEX, k); + } + lua_pushvalue(L, -2); /* copy environment */ + lua_setfenv(L, -2); /* set it */ + lua_setfield(L, -3, fname); +} + + +static void newfenv (lua_State *L, lua_CFunction cls) { + lua_createtable(L, 0, 1); + lua_pushcfunction(L, cls); + lua_setfield(L, -2, "__close"); +} + + +LUALIB_API int luaopen_io (lua_State *L) { + createmeta(L); + /* create (private) environment (with fields IO_INPUT, IO_OUTPUT, __close) */ + newfenv(L, io_fclose); + lua_replace(L, LUA_ENVIRONINDEX); + /* open library */ + luaL_register(L, LUA_IOLIBNAME, iolib); + /* create (and set) default files */ + newfenv(L, io_noclose); /* close function for default files */ + createstdfile(L, stdin, IO_INPUT, "stdin"); + createstdfile(L, stdout, IO_OUTPUT, "stdout"); + createstdfile(L, stderr, 0, "stderr"); + lua_pop(L, 1); /* pop environment for default files */ + lua_getfield(L, -1, "popen"); + newfenv(L, io_pclose); /* create environment for 'popen' */ + lua_setfenv(L, -2); /* set fenv for 'popen' */ + lua_pop(L, 1); /* pop 'popen' */ + return 1; +} + diff --git a/mk/linux/mojosetup/lua/src/llex.c b/mk/linux/mojosetup/lua/src/llex.c new file mode 100644 index 00000000..6dc31935 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/llex.c @@ -0,0 +1,461 @@ +/* +** $Id: llex.c,v 2.20.1.1 2007/12/27 13:02:25 roberto Exp $ +** Lexical Analyzer +** See Copyright Notice in lua.h +*/ + + +#include +#include +#include + +#define llex_c +#define LUA_CORE + +#include "lua.h" + +#include "ldo.h" +#include "llex.h" +#include "lobject.h" +#include "lparser.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "lzio.h" + + + +#define next(ls) (ls->current = zgetc(ls->z)) + + + + +#define currIsNewline(ls) (ls->current == '\n' || ls->current == '\r') + + +/* ORDER RESERVED */ +const char *const luaX_tokens [] = { + "and", "break", "do", "else", "elseif", + "end", "false", "for", "function", "if", + "in", "local", "nil", "not", "or", "repeat", + "return", "then", "true", "until", "while", + "..", "...", "==", ">=", "<=", "~=", + "", "", "", "", + NULL +}; + + +#define save_and_next(ls) (save(ls, ls->current), next(ls)) + + +static void save (LexState *ls, int c) { + Mbuffer *b = ls->buff; + if (b->n + 1 > b->buffsize) { + size_t newsize; + if (b->buffsize >= MAX_SIZET/2) + luaX_lexerror(ls, "lexical element too long", 0); + newsize = b->buffsize * 2; + luaZ_resizebuffer(ls->L, b, newsize); + } + b->buffer[b->n++] = cast(char, c); +} + + +void luaX_init (lua_State *L) { + int i; + for (i=0; itsv.reserved = cast_byte(i+1); /* reserved word */ + } +} + + +#define MAXSRC 80 + + +const char *luaX_token2str (LexState *ls, int token) { + if (token < FIRST_RESERVED) { + lua_assert(token == cast(unsigned char, token)); + return (iscntrl(token)) ? luaO_pushfstring(ls->L, "char(%d)", token) : + luaO_pushfstring(ls->L, "%c", token); + } + else + return luaX_tokens[token-FIRST_RESERVED]; +} + + +static const char *txtToken (LexState *ls, int token) { + switch (token) { + case TK_NAME: + case TK_STRING: + case TK_NUMBER: + save(ls, '\0'); + return luaZ_buffer(ls->buff); + default: + return luaX_token2str(ls, token); + } +} + + +void luaX_lexerror (LexState *ls, const char *msg, int token) { + char buff[MAXSRC]; + luaO_chunkid(buff, getstr(ls->source), MAXSRC); + msg = luaO_pushfstring(ls->L, "%s:%d: %s", buff, ls->linenumber, msg); + if (token) + luaO_pushfstring(ls->L, "%s near " LUA_QS, msg, txtToken(ls, token)); + luaD_throw(ls->L, LUA_ERRSYNTAX); +} + + +void luaX_syntaxerror (LexState *ls, const char *msg) { + luaX_lexerror(ls, msg, ls->t.token); +} + + +TString *luaX_newstring (LexState *ls, const char *str, size_t l) { + lua_State *L = ls->L; + TString *ts = luaS_newlstr(L, str, l); + TValue *o = luaH_setstr(L, ls->fs->h, ts); /* entry for `str' */ + if (ttisnil(o)) + setbvalue(o, 1); /* make sure `str' will not be collected */ + return ts; +} + + +static void inclinenumber (LexState *ls) { + int old = ls->current; + lua_assert(currIsNewline(ls)); + next(ls); /* skip `\n' or `\r' */ + if (currIsNewline(ls) && ls->current != old) + next(ls); /* skip `\n\r' or `\r\n' */ + if (++ls->linenumber >= MAX_INT) + luaX_syntaxerror(ls, "chunk has too many lines"); +} + + +void luaX_setinput (lua_State *L, LexState *ls, ZIO *z, TString *source) { + ls->decpoint = '.'; + ls->L = L; + ls->lookahead.token = TK_EOS; /* no look-ahead token */ + ls->z = z; + ls->fs = NULL; + ls->linenumber = 1; + ls->lastline = 1; + ls->source = source; + luaZ_resizebuffer(ls->L, ls->buff, LUA_MINBUFFER); /* initialize buffer */ + next(ls); /* read first char */ +} + + + +/* +** ======================================================= +** LEXICAL ANALYZER +** ======================================================= +*/ + + + +static int check_next (LexState *ls, const char *set) { + if (!strchr(set, ls->current)) + return 0; + save_and_next(ls); + return 1; +} + + +static void buffreplace (LexState *ls, char from, char to) { + size_t n = luaZ_bufflen(ls->buff); + char *p = luaZ_buffer(ls->buff); + while (n--) + if (p[n] == from) p[n] = to; +} + + +static void trydecpoint (LexState *ls, SemInfo *seminfo) { + /* format error: try to update decimal point separator */ + struct lconv *cv = localeconv(); + char old = ls->decpoint; + ls->decpoint = (cv ? cv->decimal_point[0] : '.'); + buffreplace(ls, old, ls->decpoint); /* try updated decimal separator */ + if (!luaO_str2d(luaZ_buffer(ls->buff), &seminfo->r)) { + /* format error with correct decimal point: no more options */ + buffreplace(ls, ls->decpoint, '.'); /* undo change (for error message) */ + luaX_lexerror(ls, "malformed number", TK_NUMBER); + } +} + + +/* LUA_NUMBER */ +static void read_numeral (LexState *ls, SemInfo *seminfo) { + lua_assert(isdigit(ls->current)); + do { + save_and_next(ls); + } while (isdigit(ls->current) || ls->current == '.'); + if (check_next(ls, "Ee")) /* `E'? */ + check_next(ls, "+-"); /* optional exponent sign */ + while (isalnum(ls->current) || ls->current == '_') + save_and_next(ls); + save(ls, '\0'); + buffreplace(ls, '.', ls->decpoint); /* follow locale for decimal point */ + if (!luaO_str2d(luaZ_buffer(ls->buff), &seminfo->r)) /* format error? */ + trydecpoint(ls, seminfo); /* try to update decimal point separator */ +} + + +static int skip_sep (LexState *ls) { + int count = 0; + int s = ls->current; + lua_assert(s == '[' || s == ']'); + save_and_next(ls); + while (ls->current == '=') { + save_and_next(ls); + count++; + } + return (ls->current == s) ? count : (-count) - 1; +} + + +static void read_long_string (LexState *ls, SemInfo *seminfo, int sep) { + int cont = 0; + (void)(cont); /* avoid warnings when `cont' is not used */ + save_and_next(ls); /* skip 2nd `[' */ + if (currIsNewline(ls)) /* string starts with a newline? */ + inclinenumber(ls); /* skip it */ + for (;;) { + switch (ls->current) { + case EOZ: + luaX_lexerror(ls, (seminfo) ? "unfinished long string" : + "unfinished long comment", TK_EOS); + break; /* to avoid warnings */ +#if defined(LUA_COMPAT_LSTR) + case '[': { + if (skip_sep(ls) == sep) { + save_and_next(ls); /* skip 2nd `[' */ + cont++; +#if LUA_COMPAT_LSTR == 1 + if (sep == 0) + luaX_lexerror(ls, "nesting of [[...]] is deprecated", '['); +#endif + } + break; + } +#endif + case ']': { + if (skip_sep(ls) == sep) { + save_and_next(ls); /* skip 2nd `]' */ +#if defined(LUA_COMPAT_LSTR) && LUA_COMPAT_LSTR == 2 + cont--; + if (sep == 0 && cont >= 0) break; +#endif + goto endloop; + } + break; + } + case '\n': + case '\r': { + save(ls, '\n'); + inclinenumber(ls); + if (!seminfo) luaZ_resetbuffer(ls->buff); /* avoid wasting space */ + break; + } + default: { + if (seminfo) save_and_next(ls); + else next(ls); + } + } + } endloop: + if (seminfo) + seminfo->ts = luaX_newstring(ls, luaZ_buffer(ls->buff) + (2 + sep), + luaZ_bufflen(ls->buff) - 2*(2 + sep)); +} + + +static void read_string (LexState *ls, int del, SemInfo *seminfo) { + save_and_next(ls); + while (ls->current != del) { + switch (ls->current) { + case EOZ: + luaX_lexerror(ls, "unfinished string", TK_EOS); + continue; /* to avoid warnings */ + case '\n': + case '\r': + luaX_lexerror(ls, "unfinished string", TK_STRING); + continue; /* to avoid warnings */ + case '\\': { + int c; + next(ls); /* do not save the `\' */ + switch (ls->current) { + case 'a': c = '\a'; break; + case 'b': c = '\b'; break; + case 'f': c = '\f'; break; + case 'n': c = '\n'; break; + case 'r': c = '\r'; break; + case 't': c = '\t'; break; + case 'v': c = '\v'; break; + case '\n': /* go through */ + case '\r': save(ls, '\n'); inclinenumber(ls); continue; + case EOZ: continue; /* will raise an error next loop */ + default: { + if (!isdigit(ls->current)) + save_and_next(ls); /* handles \\, \", \', and \? */ + else { /* \xxx */ + int i = 0; + c = 0; + do { + c = 10*c + (ls->current-'0'); + next(ls); + } while (++i<3 && isdigit(ls->current)); + if (c > UCHAR_MAX) + luaX_lexerror(ls, "escape sequence too large", TK_STRING); + save(ls, c); + } + continue; + } + } + save(ls, c); + next(ls); + continue; + } + default: + save_and_next(ls); + } + } + save_and_next(ls); /* skip delimiter */ + seminfo->ts = luaX_newstring(ls, luaZ_buffer(ls->buff) + 1, + luaZ_bufflen(ls->buff) - 2); +} + + +static int llex (LexState *ls, SemInfo *seminfo) { + luaZ_resetbuffer(ls->buff); + for (;;) { + switch (ls->current) { + case '\n': + case '\r': { + inclinenumber(ls); + continue; + } + case '-': { + next(ls); + if (ls->current != '-') return '-'; + /* else is a comment */ + next(ls); + if (ls->current == '[') { + int sep = skip_sep(ls); + luaZ_resetbuffer(ls->buff); /* `skip_sep' may dirty the buffer */ + if (sep >= 0) { + read_long_string(ls, NULL, sep); /* long comment */ + luaZ_resetbuffer(ls->buff); + continue; + } + } + /* else short comment */ + while (!currIsNewline(ls) && ls->current != EOZ) + next(ls); + continue; + } + case '[': { + int sep = skip_sep(ls); + if (sep >= 0) { + read_long_string(ls, seminfo, sep); + return TK_STRING; + } + else if (sep == -1) return '['; + else luaX_lexerror(ls, "invalid long string delimiter", TK_STRING); + } + case '=': { + next(ls); + if (ls->current != '=') return '='; + else { next(ls); return TK_EQ; } + } + case '<': { + next(ls); + if (ls->current != '=') return '<'; + else { next(ls); return TK_LE; } + } + case '>': { + next(ls); + if (ls->current != '=') return '>'; + else { next(ls); return TK_GE; } + } + case '~': { + next(ls); + if (ls->current != '=') return '~'; + else { next(ls); return TK_NE; } + } + case '"': + case '\'': { + read_string(ls, ls->current, seminfo); + return TK_STRING; + } + case '.': { + save_and_next(ls); + if (check_next(ls, ".")) { + if (check_next(ls, ".")) + return TK_DOTS; /* ... */ + else return TK_CONCAT; /* .. */ + } + else if (!isdigit(ls->current)) return '.'; + else { + read_numeral(ls, seminfo); + return TK_NUMBER; + } + } + case EOZ: { + return TK_EOS; + } + default: { + if (isspace(ls->current)) { + lua_assert(!currIsNewline(ls)); + next(ls); + continue; + } + else if (isdigit(ls->current)) { + read_numeral(ls, seminfo); + return TK_NUMBER; + } + else if (isalpha(ls->current) || ls->current == '_') { + /* identifier or reserved word */ + TString *ts; + do { + save_and_next(ls); + } while (isalnum(ls->current) || ls->current == '_'); + ts = luaX_newstring(ls, luaZ_buffer(ls->buff), + luaZ_bufflen(ls->buff)); + if (ts->tsv.reserved > 0) /* reserved word? */ + return ts->tsv.reserved - 1 + FIRST_RESERVED; + else { + seminfo->ts = ts; + return TK_NAME; + } + } + else { + int c = ls->current; + next(ls); + return c; /* single-char tokens (+ - / ...) */ + } + } + } + } +} + + +void luaX_next (LexState *ls) { + ls->lastline = ls->linenumber; + if (ls->lookahead.token != TK_EOS) { /* is there a look-ahead token? */ + ls->t = ls->lookahead; /* use this one */ + ls->lookahead.token = TK_EOS; /* and discharge it */ + } + else + ls->t.token = llex(ls, &ls->t.seminfo); /* read next token */ +} + + +void luaX_lookahead (LexState *ls) { + lua_assert(ls->lookahead.token == TK_EOS); + ls->lookahead.token = llex(ls, &ls->lookahead.seminfo); +} + diff --git a/mk/linux/mojosetup/lua/src/llex.h b/mk/linux/mojosetup/lua/src/llex.h new file mode 100644 index 00000000..a9201cee --- /dev/null +++ b/mk/linux/mojosetup/lua/src/llex.h @@ -0,0 +1,81 @@ +/* +** $Id: llex.h,v 1.58.1.1 2007/12/27 13:02:25 roberto Exp $ +** Lexical Analyzer +** See Copyright Notice in lua.h +*/ + +#ifndef llex_h +#define llex_h + +#include "lobject.h" +#include "lzio.h" + + +#define FIRST_RESERVED 257 + +/* maximum length of a reserved word */ +#define TOKEN_LEN (sizeof("function")/sizeof(char)) + + +/* +* WARNING: if you change the order of this enumeration, +* grep "ORDER RESERVED" +*/ +enum RESERVED { + /* terminal symbols denoted by reserved words */ + TK_AND = FIRST_RESERVED, TK_BREAK, + TK_DO, TK_ELSE, TK_ELSEIF, TK_END, TK_FALSE, TK_FOR, TK_FUNCTION, + TK_IF, TK_IN, TK_LOCAL, TK_NIL, TK_NOT, TK_OR, TK_REPEAT, + TK_RETURN, TK_THEN, TK_TRUE, TK_UNTIL, TK_WHILE, + /* other terminal symbols */ + TK_CONCAT, TK_DOTS, TK_EQ, TK_GE, TK_LE, TK_NE, TK_NUMBER, + TK_NAME, TK_STRING, TK_EOS +}; + +/* number of reserved words */ +#define NUM_RESERVED (cast(int, TK_WHILE-FIRST_RESERVED+1)) + + +/* array with token `names' */ +LUAI_DATA const char *const luaX_tokens []; + + +typedef union { + lua_Number r; + TString *ts; +} SemInfo; /* semantics information */ + + +typedef struct Token { + int token; + SemInfo seminfo; +} Token; + + +typedef struct LexState { + int current; /* current character (charint) */ + int linenumber; /* input line counter */ + int lastline; /* line of last token `consumed' */ + Token t; /* current token */ + Token lookahead; /* look ahead token */ + struct FuncState *fs; /* `FuncState' is private to the parser */ + struct lua_State *L; + ZIO *z; /* input stream */ + Mbuffer *buff; /* buffer for tokens */ + TString *source; /* current source name */ + char decpoint; /* locale decimal point */ +} LexState; + + +LUAI_FUNC void luaX_init (lua_State *L); +LUAI_FUNC void luaX_setinput (lua_State *L, LexState *ls, ZIO *z, + TString *source); +LUAI_FUNC TString *luaX_newstring (LexState *ls, const char *str, size_t l); +LUAI_FUNC void luaX_next (LexState *ls); +LUAI_FUNC void luaX_lookahead (LexState *ls); +LUAI_FUNC void luaX_lexerror (LexState *ls, const char *msg, int token); +LUAI_FUNC void luaX_syntaxerror (LexState *ls, const char *s); +LUAI_FUNC const char *luaX_token2str (LexState *ls, int token); + + +#endif diff --git a/mk/linux/mojosetup/lua/src/llimits.h b/mk/linux/mojosetup/lua/src/llimits.h new file mode 100644 index 00000000..ca8dcb72 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/llimits.h @@ -0,0 +1,128 @@ +/* +** $Id: llimits.h,v 1.69.1.1 2007/12/27 13:02:25 roberto Exp $ +** Limits, basic types, and some other `installation-dependent' definitions +** See Copyright Notice in lua.h +*/ + +#ifndef llimits_h +#define llimits_h + + +#include +#include + + +#include "lua.h" + + +typedef LUAI_UINT32 lu_int32; + +typedef LUAI_UMEM lu_mem; + +typedef LUAI_MEM l_mem; + + + +/* chars used as small naturals (so that `char' is reserved for characters) */ +typedef unsigned char lu_byte; + + +#define MAX_SIZET ((size_t)(~(size_t)0)-2) + +#define MAX_LUMEM ((lu_mem)(~(lu_mem)0)-2) + + +#define MAX_INT (INT_MAX-2) /* maximum value of an int (-2 for safety) */ + +/* +** conversion of pointer to integer +** this is for hashing only; there is no problem if the integer +** cannot hold the whole pointer value +*/ +#define IntPoint(p) ((unsigned int)(lu_mem)(p)) + + + +/* type to ensure maximum alignment */ +typedef LUAI_USER_ALIGNMENT_T L_Umaxalign; + + +/* result of a `usual argument conversion' over lua_Number */ +typedef LUAI_UACNUMBER l_uacNumber; + + +/* internal assertions for in-house debugging */ +#ifdef lua_assert + +#define check_exp(c,e) (lua_assert(c), (e)) +#define api_check(l,e) lua_assert(e) + +#else + +#define lua_assert(c) ((void)0) +#define check_exp(c,e) (e) +#define api_check luai_apicheck + +#endif + + +#ifndef UNUSED +#define UNUSED(x) ((void)(x)) /* to avoid warnings */ +#endif + + +#ifndef cast +#define cast(t, exp) ((t)(exp)) +#endif + +#define cast_byte(i) cast(lu_byte, (i)) +#define cast_num(i) cast(lua_Number, (i)) +#define cast_int(i) cast(int, (i)) + + + +/* +** type for virtual-machine instructions +** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h) +*/ +typedef lu_int32 Instruction; + + + +/* maximum stack for a Lua function */ +#define MAXSTACK 250 + + + +/* minimum size for the string table (must be power of 2) */ +#ifndef MINSTRTABSIZE +#define MINSTRTABSIZE 32 +#endif + + +/* minimum size for string buffer */ +#ifndef LUA_MINBUFFER +#define LUA_MINBUFFER 32 +#endif + + +#ifndef lua_lock +#define lua_lock(L) ((void) 0) +#define lua_unlock(L) ((void) 0) +#endif + +#ifndef luai_threadyield +#define luai_threadyield(L) {lua_unlock(L); lua_lock(L);} +#endif + + +/* +** macro to control inclusion of some hard tests on stack reallocation +*/ +#ifndef HARDSTACKTESTS +#define condhardstacktests(x) ((void)0) +#else +#define condhardstacktests(x) x +#endif + +#endif diff --git a/mk/linux/mojosetup/lua/src/lmathlib.c b/mk/linux/mojosetup/lua/src/lmathlib.c new file mode 100644 index 00000000..441fbf73 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lmathlib.c @@ -0,0 +1,263 @@ +/* +** $Id: lmathlib.c,v 1.67.1.1 2007/12/27 13:02:25 roberto Exp $ +** Standard mathematical library +** See Copyright Notice in lua.h +*/ + + +#include +#include + +#define lmathlib_c +#define LUA_LIB + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +#undef PI +#define PI (3.14159265358979323846) +#define RADIANS_PER_DEGREE (PI/180.0) + + + +static int math_abs (lua_State *L) { + lua_pushnumber(L, fabs(luaL_checknumber(L, 1))); + return 1; +} + +static int math_sin (lua_State *L) { + lua_pushnumber(L, sin(luaL_checknumber(L, 1))); + return 1; +} + +static int math_sinh (lua_State *L) { + lua_pushnumber(L, sinh(luaL_checknumber(L, 1))); + return 1; +} + +static int math_cos (lua_State *L) { + lua_pushnumber(L, cos(luaL_checknumber(L, 1))); + return 1; +} + +static int math_cosh (lua_State *L) { + lua_pushnumber(L, cosh(luaL_checknumber(L, 1))); + return 1; +} + +static int math_tan (lua_State *L) { + lua_pushnumber(L, tan(luaL_checknumber(L, 1))); + return 1; +} + +static int math_tanh (lua_State *L) { + lua_pushnumber(L, tanh(luaL_checknumber(L, 1))); + return 1; +} + +static int math_asin (lua_State *L) { + lua_pushnumber(L, asin(luaL_checknumber(L, 1))); + return 1; +} + +static int math_acos (lua_State *L) { + lua_pushnumber(L, acos(luaL_checknumber(L, 1))); + return 1; +} + +static int math_atan (lua_State *L) { + lua_pushnumber(L, atan(luaL_checknumber(L, 1))); + return 1; +} + +static int math_atan2 (lua_State *L) { + lua_pushnumber(L, atan2(luaL_checknumber(L, 1), luaL_checknumber(L, 2))); + return 1; +} + +static int math_ceil (lua_State *L) { + lua_pushnumber(L, ceil(luaL_checknumber(L, 1))); + return 1; +} + +static int math_floor (lua_State *L) { + lua_pushnumber(L, floor(luaL_checknumber(L, 1))); + return 1; +} + +static int math_fmod (lua_State *L) { + lua_pushnumber(L, fmod(luaL_checknumber(L, 1), luaL_checknumber(L, 2))); + return 1; +} + +static int math_modf (lua_State *L) { + double ip; + double fp = modf(luaL_checknumber(L, 1), &ip); + lua_pushnumber(L, ip); + lua_pushnumber(L, fp); + return 2; +} + +static int math_sqrt (lua_State *L) { + lua_pushnumber(L, sqrt(luaL_checknumber(L, 1))); + return 1; +} + +static int math_pow (lua_State *L) { + lua_pushnumber(L, pow(luaL_checknumber(L, 1), luaL_checknumber(L, 2))); + return 1; +} + +static int math_log (lua_State *L) { + lua_pushnumber(L, log(luaL_checknumber(L, 1))); + return 1; +} + +static int math_log10 (lua_State *L) { + lua_pushnumber(L, log10(luaL_checknumber(L, 1))); + return 1; +} + +static int math_exp (lua_State *L) { + lua_pushnumber(L, exp(luaL_checknumber(L, 1))); + return 1; +} + +static int math_deg (lua_State *L) { + lua_pushnumber(L, luaL_checknumber(L, 1)/RADIANS_PER_DEGREE); + return 1; +} + +static int math_rad (lua_State *L) { + lua_pushnumber(L, luaL_checknumber(L, 1)*RADIANS_PER_DEGREE); + return 1; +} + +static int math_frexp (lua_State *L) { + int e; + lua_pushnumber(L, frexp(luaL_checknumber(L, 1), &e)); + lua_pushinteger(L, e); + return 2; +} + +static int math_ldexp (lua_State *L) { + lua_pushnumber(L, ldexp(luaL_checknumber(L, 1), luaL_checkint(L, 2))); + return 1; +} + + + +static int math_min (lua_State *L) { + int n = lua_gettop(L); /* number of arguments */ + lua_Number dmin = luaL_checknumber(L, 1); + int i; + for (i=2; i<=n; i++) { + lua_Number d = luaL_checknumber(L, i); + if (d < dmin) + dmin = d; + } + lua_pushnumber(L, dmin); + return 1; +} + + +static int math_max (lua_State *L) { + int n = lua_gettop(L); /* number of arguments */ + lua_Number dmax = luaL_checknumber(L, 1); + int i; + for (i=2; i<=n; i++) { + lua_Number d = luaL_checknumber(L, i); + if (d > dmax) + dmax = d; + } + lua_pushnumber(L, dmax); + return 1; +} + + +static int math_random (lua_State *L) { + /* the `%' avoids the (rare) case of r==1, and is needed also because on + some systems (SunOS!) `rand()' may return a value larger than RAND_MAX */ + lua_Number r = (lua_Number)(rand()%RAND_MAX) / (lua_Number)RAND_MAX; + switch (lua_gettop(L)) { /* check number of arguments */ + case 0: { /* no arguments */ + lua_pushnumber(L, r); /* Number between 0 and 1 */ + break; + } + case 1: { /* only upper limit */ + int u = luaL_checkint(L, 1); + luaL_argcheck(L, 1<=u, 1, "interval is empty"); + lua_pushnumber(L, floor(r*u)+1); /* int between 1 and `u' */ + break; + } + case 2: { /* lower and upper limits */ + int l = luaL_checkint(L, 1); + int u = luaL_checkint(L, 2); + luaL_argcheck(L, l<=u, 2, "interval is empty"); + lua_pushnumber(L, floor(r*(u-l+1))+l); /* int between `l' and `u' */ + break; + } + default: return luaL_error(L, "wrong number of arguments"); + } + return 1; +} + + +static int math_randomseed (lua_State *L) { + srand(luaL_checkint(L, 1)); + return 0; +} + + +static const luaL_Reg mathlib[] = { + {"abs", math_abs}, + {"acos", math_acos}, + {"asin", math_asin}, + {"atan2", math_atan2}, + {"atan", math_atan}, + {"ceil", math_ceil}, + {"cosh", math_cosh}, + {"cos", math_cos}, + {"deg", math_deg}, + {"exp", math_exp}, + {"floor", math_floor}, + {"fmod", math_fmod}, + {"frexp", math_frexp}, + {"ldexp", math_ldexp}, + {"log10", math_log10}, + {"log", math_log}, + {"max", math_max}, + {"min", math_min}, + {"modf", math_modf}, + {"pow", math_pow}, + {"rad", math_rad}, + {"random", math_random}, + {"randomseed", math_randomseed}, + {"sinh", math_sinh}, + {"sin", math_sin}, + {"sqrt", math_sqrt}, + {"tanh", math_tanh}, + {"tan", math_tan}, + {NULL, NULL} +}; + + +/* +** Open math library +*/ +LUALIB_API int luaopen_math (lua_State *L) { + luaL_register(L, LUA_MATHLIBNAME, mathlib); + lua_pushnumber(L, PI); + lua_setfield(L, -2, "pi"); + lua_pushnumber(L, HUGE_VAL); + lua_setfield(L, -2, "huge"); +#if defined(LUA_COMPAT_MOD) + lua_getfield(L, -1, "fmod"); + lua_setfield(L, -2, "mod"); +#endif + return 1; +} + diff --git a/mk/linux/mojosetup/lua/src/lmem.c b/mk/linux/mojosetup/lua/src/lmem.c new file mode 100644 index 00000000..ae7d8c96 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lmem.c @@ -0,0 +1,86 @@ +/* +** $Id: lmem.c,v 1.70.1.1 2007/12/27 13:02:25 roberto Exp $ +** Interface to Memory Manager +** See Copyright Notice in lua.h +*/ + + +#include + +#define lmem_c +#define LUA_CORE + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" + + + +/* +** About the realloc function: +** void * frealloc (void *ud, void *ptr, size_t osize, size_t nsize); +** (`osize' is the old size, `nsize' is the new size) +** +** Lua ensures that (ptr == NULL) iff (osize == 0). +** +** * frealloc(ud, NULL, 0, x) creates a new block of size `x' +** +** * frealloc(ud, p, x, 0) frees the block `p' +** (in this specific case, frealloc must return NULL). +** particularly, frealloc(ud, NULL, 0, 0) does nothing +** (which is equivalent to free(NULL) in ANSI C) +** +** frealloc returns NULL if it cannot create or reallocate the area +** (any reallocation to an equal or smaller size cannot fail!) +*/ + + + +#define MINSIZEARRAY 4 + + +void *luaM_growaux_ (lua_State *L, void *block, int *size, size_t size_elems, + int limit, const char *errormsg) { + void *newblock; + int newsize; + if (*size >= limit/2) { /* cannot double it? */ + if (*size >= limit) /* cannot grow even a little? */ + luaG_runerror(L, errormsg); + newsize = limit; /* still have at least one free place */ + } + else { + newsize = (*size)*2; + if (newsize < MINSIZEARRAY) + newsize = MINSIZEARRAY; /* minimum size */ + } + newblock = luaM_reallocv(L, block, *size, newsize, size_elems); + *size = newsize; /* update only when everything else is OK */ + return newblock; +} + + +void *luaM_toobig (lua_State *L) { + luaG_runerror(L, "memory allocation error: block too big"); + return NULL; /* to avoid warnings */ +} + + + +/* +** generic allocation routine. +*/ +void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t nsize) { + global_State *g = G(L); + lua_assert((osize == 0) == (block == NULL)); + block = (*g->frealloc)(g->ud, block, osize, nsize); + if (block == NULL && nsize > 0) + luaD_throw(L, LUA_ERRMEM); + lua_assert((nsize == 0) == (block == NULL)); + g->totalbytes = (g->totalbytes - osize) + nsize; + return block; +} + diff --git a/mk/linux/mojosetup/lua/src/lmem.h b/mk/linux/mojosetup/lua/src/lmem.h new file mode 100644 index 00000000..7c2dcb32 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lmem.h @@ -0,0 +1,49 @@ +/* +** $Id: lmem.h,v 1.31.1.1 2007/12/27 13:02:25 roberto Exp $ +** Interface to Memory Manager +** See Copyright Notice in lua.h +*/ + +#ifndef lmem_h +#define lmem_h + + +#include + +#include "llimits.h" +#include "lua.h" + +#define MEMERRMSG "not enough memory" + + +#define luaM_reallocv(L,b,on,n,e) \ + ((cast(size_t, (n)+1) <= MAX_SIZET/(e)) ? /* +1 to avoid warnings */ \ + luaM_realloc_(L, (b), (on)*(e), (n)*(e)) : \ + luaM_toobig(L)) + +#define luaM_freemem(L, b, s) luaM_realloc_(L, (b), (s), 0) +#define luaM_free(L, b) luaM_realloc_(L, (b), sizeof(*(b)), 0) +#define luaM_freearray(L, b, n, t) luaM_reallocv(L, (b), n, 0, sizeof(t)) + +#define luaM_malloc(L,t) luaM_realloc_(L, NULL, 0, (t)) +#define luaM_new(L,t) cast(t *, luaM_malloc(L, sizeof(t))) +#define luaM_newvector(L,n,t) \ + cast(t *, luaM_reallocv(L, NULL, 0, n, sizeof(t))) + +#define luaM_growvector(L,v,nelems,size,t,limit,e) \ + if ((nelems)+1 > (size)) \ + ((v)=cast(t *, luaM_growaux_(L,v,&(size),sizeof(t),limit,e))) + +#define luaM_reallocvector(L, v,oldn,n,t) \ + ((v)=cast(t *, luaM_reallocv(L, v, oldn, n, sizeof(t)))) + + +LUAI_FUNC void *luaM_realloc_ (lua_State *L, void *block, size_t oldsize, + size_t size); +LUAI_FUNC void *luaM_toobig (lua_State *L); +LUAI_FUNC void *luaM_growaux_ (lua_State *L, void *block, int *size, + size_t size_elem, int limit, + const char *errormsg); + +#endif + diff --git a/mk/linux/mojosetup/lua/src/loadlib.c b/mk/linux/mojosetup/lua/src/loadlib.c new file mode 100644 index 00000000..0d401eba --- /dev/null +++ b/mk/linux/mojosetup/lua/src/loadlib.c @@ -0,0 +1,666 @@ +/* +** $Id: loadlib.c,v 1.52.1.3 2008/08/06 13:29:28 roberto Exp $ +** Dynamic library loader for Lua +** See Copyright Notice in lua.h +** +** This module contains an implementation of loadlib for Unix systems +** that have dlfcn, an implementation for Darwin (Mac OS X), an +** implementation for Windows, and a stub for other systems. +*/ + + +#include +#include + + +#define loadlib_c +#define LUA_LIB + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +/* prefix for open functions in C libraries */ +#define LUA_POF "luaopen_" + +/* separator for open functions in C libraries */ +#define LUA_OFSEP "_" + + +#define LIBPREFIX "LOADLIB: " + +#define POF LUA_POF +#define LIB_FAIL "open" + + +/* error codes for ll_loadfunc */ +#define ERRLIB 1 +#define ERRFUNC 2 + +#define setprogdir(L) ((void)0) + + +static void ll_unloadlib (void *lib); +static void *ll_load (lua_State *L, const char *path); +static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym); + + + +#if defined(LUA_DL_DLOPEN) +/* +** {======================================================================== +** This is an implementation of loadlib based on the dlfcn interface. +** The dlfcn interface is available in Linux, SunOS, Solaris, IRIX, FreeBSD, +** NetBSD, AIX 4.2, HPUX 11, and probably most other Unix flavors, at least +** as an emulation layer on top of native functions. +** ========================================================================= +*/ + +#include + +static void ll_unloadlib (void *lib) { + dlclose(lib); +} + + +static void *ll_load (lua_State *L, const char *path) { + void *lib = dlopen(path, RTLD_NOW); + if (lib == NULL) lua_pushstring(L, dlerror()); + return lib; +} + + +static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { + lua_CFunction f = (lua_CFunction)dlsym(lib, sym); + if (f == NULL) lua_pushstring(L, dlerror()); + return f; +} + +/* }====================================================== */ + + + +#elif defined(LUA_DL_DLL) +/* +** {====================================================================== +** This is an implementation of loadlib for Windows using native functions. +** ======================================================================= +*/ + +#include + + +#undef setprogdir + +static void setprogdir (lua_State *L) { + char buff[MAX_PATH + 1]; + char *lb; + DWORD nsize = sizeof(buff)/sizeof(char); + DWORD n = GetModuleFileNameA(NULL, buff, nsize); + if (n == 0 || n == nsize || (lb = strrchr(buff, '\\')) == NULL) + luaL_error(L, "unable to get ModuleFileName"); + else { + *lb = '\0'; + luaL_gsub(L, lua_tostring(L, -1), LUA_EXECDIR, buff); + lua_remove(L, -2); /* remove original string */ + } +} + + +static void pusherror (lua_State *L) { + int error = GetLastError(); + char buffer[128]; + if (FormatMessageA(FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, error, 0, buffer, sizeof(buffer), NULL)) + lua_pushstring(L, buffer); + else + lua_pushfstring(L, "system error %d\n", error); +} + +static void ll_unloadlib (void *lib) { + FreeLibrary((HINSTANCE)lib); +} + + +static void *ll_load (lua_State *L, const char *path) { + HINSTANCE lib = LoadLibraryA(path); + if (lib == NULL) pusherror(L); + return lib; +} + + +static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { + lua_CFunction f = (lua_CFunction)GetProcAddress((HINSTANCE)lib, sym); + if (f == NULL) pusherror(L); + return f; +} + +/* }====================================================== */ + + + +#elif defined(LUA_DL_DYLD) +/* +** {====================================================================== +** Native Mac OS X / Darwin Implementation +** ======================================================================= +*/ + +#include + + +/* Mac appends a `_' before C function names */ +#undef POF +#define POF "_" LUA_POF + + +static void pusherror (lua_State *L) { + const char *err_str; + const char *err_file; + NSLinkEditErrors err; + int err_num; + NSLinkEditError(&err, &err_num, &err_file, &err_str); + lua_pushstring(L, err_str); +} + + +static const char *errorfromcode (NSObjectFileImageReturnCode ret) { + switch (ret) { + case NSObjectFileImageInappropriateFile: + return "file is not a bundle"; + case NSObjectFileImageArch: + return "library is for wrong CPU type"; + case NSObjectFileImageFormat: + return "bad format"; + case NSObjectFileImageAccess: + return "cannot access file"; + case NSObjectFileImageFailure: + default: + return "unable to load library"; + } +} + + +static void ll_unloadlib (void *lib) { + NSUnLinkModule((NSModule)lib, NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES); +} + + +static void *ll_load (lua_State *L, const char *path) { + NSObjectFileImage img; + NSObjectFileImageReturnCode ret; + /* this would be a rare case, but prevents crashing if it happens */ + if(!_dyld_present()) { + lua_pushliteral(L, "dyld not present"); + return NULL; + } + ret = NSCreateObjectFileImageFromFile(path, &img); + if (ret == NSObjectFileImageSuccess) { + NSModule mod = NSLinkModule(img, path, NSLINKMODULE_OPTION_PRIVATE | + NSLINKMODULE_OPTION_RETURN_ON_ERROR); + NSDestroyObjectFileImage(img); + if (mod == NULL) pusherror(L); + return mod; + } + lua_pushstring(L, errorfromcode(ret)); + return NULL; +} + + +static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { + NSSymbol nss = NSLookupSymbolInModule((NSModule)lib, sym); + if (nss == NULL) { + lua_pushfstring(L, "symbol " LUA_QS " not found", sym); + return NULL; + } + return (lua_CFunction)NSAddressOfSymbol(nss); +} + +/* }====================================================== */ + + + +#else +/* +** {====================================================== +** Fallback for other systems +** ======================================================= +*/ + +#undef LIB_FAIL +#define LIB_FAIL "absent" + + +#define DLMSG "dynamic libraries not enabled; check your Lua installation" + + +static void ll_unloadlib (void *lib) { + (void)lib; /* to avoid warnings */ +} + + +static void *ll_load (lua_State *L, const char *path) { + (void)path; /* to avoid warnings */ + lua_pushliteral(L, DLMSG); + return NULL; +} + + +static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { + (void)lib; (void)sym; /* to avoid warnings */ + lua_pushliteral(L, DLMSG); + return NULL; +} + +/* }====================================================== */ +#endif + + + +static void **ll_register (lua_State *L, const char *path) { + void **plib; + lua_pushfstring(L, "%s%s", LIBPREFIX, path); + lua_gettable(L, LUA_REGISTRYINDEX); /* check library in registry? */ + if (!lua_isnil(L, -1)) /* is there an entry? */ + plib = (void **)lua_touserdata(L, -1); + else { /* no entry yet; create one */ + lua_pop(L, 1); + plib = (void **)lua_newuserdata(L, sizeof(const void *)); + *plib = NULL; + luaL_getmetatable(L, "_LOADLIB"); + lua_setmetatable(L, -2); + lua_pushfstring(L, "%s%s", LIBPREFIX, path); + lua_pushvalue(L, -2); + lua_settable(L, LUA_REGISTRYINDEX); + } + return plib; +} + + +/* +** __gc tag method: calls library's `ll_unloadlib' function with the lib +** handle +*/ +static int gctm (lua_State *L) { + void **lib = (void **)luaL_checkudata(L, 1, "_LOADLIB"); + if (*lib) ll_unloadlib(*lib); + *lib = NULL; /* mark library as closed */ + return 0; +} + + +static int ll_loadfunc (lua_State *L, const char *path, const char *sym) { + void **reg = ll_register(L, path); + if (*reg == NULL) *reg = ll_load(L, path); + if (*reg == NULL) + return ERRLIB; /* unable to load library */ + else { + lua_CFunction f = ll_sym(L, *reg, sym); + if (f == NULL) + return ERRFUNC; /* unable to find function */ + lua_pushcfunction(L, f); + return 0; /* return function */ + } +} + + +static int ll_loadlib (lua_State *L) { + const char *path = luaL_checkstring(L, 1); + const char *init = luaL_checkstring(L, 2); + int stat = ll_loadfunc(L, path, init); + if (stat == 0) /* no errors? */ + return 1; /* return the loaded function */ + else { /* error; error message is on stack top */ + lua_pushnil(L); + lua_insert(L, -2); + lua_pushstring(L, (stat == ERRLIB) ? LIB_FAIL : "init"); + return 3; /* return nil, error message, and where */ + } +} + + + +/* +** {====================================================== +** 'require' function +** ======================================================= +*/ + + +static int readable (const char *filename) { + FILE *f = fopen(filename, "r"); /* try to open file */ + if (f == NULL) return 0; /* open failed */ + fclose(f); + return 1; +} + + +static const char *pushnexttemplate (lua_State *L, const char *path) { + const char *l; + while (*path == *LUA_PATHSEP) path++; /* skip separators */ + if (*path == '\0') return NULL; /* no more templates */ + l = strchr(path, *LUA_PATHSEP); /* find next separator */ + if (l == NULL) l = path + strlen(path); + lua_pushlstring(L, path, l - path); /* template */ + return l; +} + + +static const char *findfile (lua_State *L, const char *name, + const char *pname) { + const char *path; + name = luaL_gsub(L, name, ".", LUA_DIRSEP); + lua_getfield(L, LUA_ENVIRONINDEX, pname); + path = lua_tostring(L, -1); + if (path == NULL) + luaL_error(L, LUA_QL("package.%s") " must be a string", pname); + lua_pushliteral(L, ""); /* error accumulator */ + while ((path = pushnexttemplate(L, path)) != NULL) { + const char *filename; + filename = luaL_gsub(L, lua_tostring(L, -1), LUA_PATH_MARK, name); + lua_remove(L, -2); /* remove path template */ + if (readable(filename)) /* does file exist and is readable? */ + return filename; /* return that file name */ + lua_pushfstring(L, "\n\tno file " LUA_QS, filename); + lua_remove(L, -2); /* remove file name */ + lua_concat(L, 2); /* add entry to possible error message */ + } + return NULL; /* not found */ +} + + +static void loaderror (lua_State *L, const char *filename) { + luaL_error(L, "error loading module " LUA_QS " from file " LUA_QS ":\n\t%s", + lua_tostring(L, 1), filename, lua_tostring(L, -1)); +} + + +static int loader_Lua (lua_State *L) { + const char *filename; + const char *name = luaL_checkstring(L, 1); + filename = findfile(L, name, "path"); + if (filename == NULL) return 1; /* library not found in this path */ + if (luaL_loadfile(L, filename) != 0) + loaderror(L, filename); + return 1; /* library loaded successfully */ +} + + +static const char *mkfuncname (lua_State *L, const char *modname) { + const char *funcname; + const char *mark = strchr(modname, *LUA_IGMARK); + if (mark) modname = mark + 1; + funcname = luaL_gsub(L, modname, ".", LUA_OFSEP); + funcname = lua_pushfstring(L, POF"%s", funcname); + lua_remove(L, -2); /* remove 'gsub' result */ + return funcname; +} + + +static int loader_C (lua_State *L) { + const char *funcname; + const char *name = luaL_checkstring(L, 1); + const char *filename = findfile(L, name, "cpath"); + if (filename == NULL) return 1; /* library not found in this path */ + funcname = mkfuncname(L, name); + if (ll_loadfunc(L, filename, funcname) != 0) + loaderror(L, filename); + return 1; /* library loaded successfully */ +} + + +static int loader_Croot (lua_State *L) { + const char *funcname; + const char *filename; + const char *name = luaL_checkstring(L, 1); + const char *p = strchr(name, '.'); + int stat; + if (p == NULL) return 0; /* is root */ + lua_pushlstring(L, name, p - name); + filename = findfile(L, lua_tostring(L, -1), "cpath"); + if (filename == NULL) return 1; /* root not found */ + funcname = mkfuncname(L, name); + if ((stat = ll_loadfunc(L, filename, funcname)) != 0) { + if (stat != ERRFUNC) loaderror(L, filename); /* real error */ + lua_pushfstring(L, "\n\tno module " LUA_QS " in file " LUA_QS, + name, filename); + return 1; /* function not found */ + } + return 1; +} + + +static int loader_preload (lua_State *L) { + const char *name = luaL_checkstring(L, 1); + lua_getfield(L, LUA_ENVIRONINDEX, "preload"); + if (!lua_istable(L, -1)) + luaL_error(L, LUA_QL("package.preload") " must be a table"); + lua_getfield(L, -1, name); + if (lua_isnil(L, -1)) /* not found? */ + lua_pushfstring(L, "\n\tno field package.preload['%s']", name); + return 1; +} + + +static const int sentinel_ = 0; +#define sentinel ((void *)&sentinel_) + + +static int ll_require (lua_State *L) { + const char *name = luaL_checkstring(L, 1); + int i; + lua_settop(L, 1); /* _LOADED table will be at index 2 */ + lua_getfield(L, LUA_REGISTRYINDEX, "_LOADED"); + lua_getfield(L, 2, name); + if (lua_toboolean(L, -1)) { /* is it there? */ + if (lua_touserdata(L, -1) == sentinel) /* check loops */ + luaL_error(L, "loop or previous error loading module " LUA_QS, name); + return 1; /* package is already loaded */ + } + /* else must load it; iterate over available loaders */ + lua_getfield(L, LUA_ENVIRONINDEX, "loaders"); + if (!lua_istable(L, -1)) + luaL_error(L, LUA_QL("package.loaders") " must be a table"); + lua_pushliteral(L, ""); /* error message accumulator */ + for (i=1; ; i++) { + lua_rawgeti(L, -2, i); /* get a loader */ + if (lua_isnil(L, -1)) + luaL_error(L, "module " LUA_QS " not found:%s", + name, lua_tostring(L, -2)); + lua_pushstring(L, name); + lua_call(L, 1, 1); /* call it */ + if (lua_isfunction(L, -1)) /* did it find module? */ + break; /* module loaded successfully */ + else if (lua_isstring(L, -1)) /* loader returned error message? */ + lua_concat(L, 2); /* accumulate it */ + else + lua_pop(L, 1); + } + lua_pushlightuserdata(L, sentinel); + lua_setfield(L, 2, name); /* _LOADED[name] = sentinel */ + lua_pushstring(L, name); /* pass name as argument to module */ + lua_call(L, 1, 1); /* run loaded module */ + if (!lua_isnil(L, -1)) /* non-nil return? */ + lua_setfield(L, 2, name); /* _LOADED[name] = returned value */ + lua_getfield(L, 2, name); + if (lua_touserdata(L, -1) == sentinel) { /* module did not set a value? */ + lua_pushboolean(L, 1); /* use true as result */ + lua_pushvalue(L, -1); /* extra copy to be returned */ + lua_setfield(L, 2, name); /* _LOADED[name] = true */ + } + return 1; +} + +/* }====================================================== */ + + + +/* +** {====================================================== +** 'module' function +** ======================================================= +*/ + + +static void setfenv (lua_State *L) { + lua_Debug ar; + if (lua_getstack(L, 1, &ar) == 0 || + lua_getinfo(L, "f", &ar) == 0 || /* get calling function */ + lua_iscfunction(L, -1)) + luaL_error(L, LUA_QL("module") " not called from a Lua function"); + lua_pushvalue(L, -2); + lua_setfenv(L, -2); + lua_pop(L, 1); +} + + +static void dooptions (lua_State *L, int n) { + int i; + for (i = 2; i <= n; i++) { + lua_pushvalue(L, i); /* get option (a function) */ + lua_pushvalue(L, -2); /* module */ + lua_call(L, 1, 0); + } +} + + +static void modinit (lua_State *L, const char *modname) { + const char *dot; + lua_pushvalue(L, -1); + lua_setfield(L, -2, "_M"); /* module._M = module */ + lua_pushstring(L, modname); + lua_setfield(L, -2, "_NAME"); + dot = strrchr(modname, '.'); /* look for last dot in module name */ + if (dot == NULL) dot = modname; + else dot++; + /* set _PACKAGE as package name (full module name minus last part) */ + lua_pushlstring(L, modname, dot - modname); + lua_setfield(L, -2, "_PACKAGE"); +} + + +static int ll_module (lua_State *L) { + const char *modname = luaL_checkstring(L, 1); + int loaded = lua_gettop(L) + 1; /* index of _LOADED table */ + lua_getfield(L, LUA_REGISTRYINDEX, "_LOADED"); + lua_getfield(L, loaded, modname); /* get _LOADED[modname] */ + if (!lua_istable(L, -1)) { /* not found? */ + lua_pop(L, 1); /* remove previous result */ + /* try global variable (and create one if it does not exist) */ + if (luaL_findtable(L, LUA_GLOBALSINDEX, modname, 1) != NULL) + return luaL_error(L, "name conflict for module " LUA_QS, modname); + lua_pushvalue(L, -1); + lua_setfield(L, loaded, modname); /* _LOADED[modname] = new table */ + } + /* check whether table already has a _NAME field */ + lua_getfield(L, -1, "_NAME"); + if (!lua_isnil(L, -1)) /* is table an initialized module? */ + lua_pop(L, 1); + else { /* no; initialize it */ + lua_pop(L, 1); + modinit(L, modname); + } + lua_pushvalue(L, -1); + setfenv(L); + dooptions(L, loaded - 1); + return 0; +} + + +static int ll_seeall (lua_State *L) { + luaL_checktype(L, 1, LUA_TTABLE); + if (!lua_getmetatable(L, 1)) { + lua_createtable(L, 0, 1); /* create new metatable */ + lua_pushvalue(L, -1); + lua_setmetatable(L, 1); + } + lua_pushvalue(L, LUA_GLOBALSINDEX); + lua_setfield(L, -2, "__index"); /* mt.__index = _G */ + return 0; +} + + +/* }====================================================== */ + + + +/* auxiliary mark (for internal use) */ +#define AUXMARK "\1" + +static void setpath (lua_State *L, const char *fieldname, const char *envname, + const char *def) { + const char *path = getenv(envname); + if (path == NULL) /* no environment variable? */ + lua_pushstring(L, def); /* use default */ + else { + /* replace ";;" by ";AUXMARK;" and then AUXMARK by default path */ + path = luaL_gsub(L, path, LUA_PATHSEP LUA_PATHSEP, + LUA_PATHSEP AUXMARK LUA_PATHSEP); + luaL_gsub(L, path, AUXMARK, def); + lua_remove(L, -2); + } + setprogdir(L); + lua_setfield(L, -2, fieldname); +} + + +static const luaL_Reg pk_funcs[] = { + {"loadlib", ll_loadlib}, + {"seeall", ll_seeall}, + {NULL, NULL} +}; + + +static const luaL_Reg ll_funcs[] = { + {"module", ll_module}, + {"require", ll_require}, + {NULL, NULL} +}; + + +static const lua_CFunction loaders[] = + {loader_preload, loader_Lua, loader_C, loader_Croot, NULL}; + + +LUALIB_API int luaopen_package (lua_State *L) { + int i; + /* create new type _LOADLIB */ + luaL_newmetatable(L, "_LOADLIB"); + lua_pushcfunction(L, gctm); + lua_setfield(L, -2, "__gc"); + /* create `package' table */ + luaL_register(L, LUA_LOADLIBNAME, pk_funcs); +#if defined(LUA_COMPAT_LOADLIB) + lua_getfield(L, -1, "loadlib"); + lua_setfield(L, LUA_GLOBALSINDEX, "loadlib"); +#endif + lua_pushvalue(L, -1); + lua_replace(L, LUA_ENVIRONINDEX); + /* create `loaders' table */ + lua_createtable(L, 0, sizeof(loaders)/sizeof(loaders[0]) - 1); + /* fill it with pre-defined loaders */ + for (i=0; loaders[i] != NULL; i++) { + lua_pushcfunction(L, loaders[i]); + lua_rawseti(L, -2, i+1); + } + lua_setfield(L, -2, "loaders"); /* put it in field `loaders' */ + setpath(L, "path", LUA_PATH, LUA_PATH_DEFAULT); /* set field `path' */ + setpath(L, "cpath", LUA_CPATH, LUA_CPATH_DEFAULT); /* set field `cpath' */ + /* store config information */ + lua_pushliteral(L, LUA_DIRSEP "\n" LUA_PATHSEP "\n" LUA_PATH_MARK "\n" + LUA_EXECDIR "\n" LUA_IGMARK); + lua_setfield(L, -2, "config"); + /* set field `loaded' */ + luaL_findtable(L, LUA_REGISTRYINDEX, "_LOADED", 2); + lua_setfield(L, -2, "loaded"); + /* set field `preload' */ + lua_newtable(L); + lua_setfield(L, -2, "preload"); + lua_pushvalue(L, LUA_GLOBALSINDEX); + luaL_register(L, NULL, ll_funcs); /* open lib into global table */ + lua_pop(L, 1); + return 1; /* return 'package' table */ +} + diff --git a/mk/linux/mojosetup/lua/src/lobject.c b/mk/linux/mojosetup/lua/src/lobject.c new file mode 100644 index 00000000..4ff50732 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lobject.c @@ -0,0 +1,214 @@ +/* +** $Id: lobject.c,v 2.22.1.1 2007/12/27 13:02:25 roberto Exp $ +** Some generic functions over Lua objects +** See Copyright Notice in lua.h +*/ + +#include +#include +#include +#include +#include + +#define lobject_c +#define LUA_CORE + +#include "lua.h" + +#include "ldo.h" +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" +#include "lstring.h" +#include "lvm.h" + + + +const TValue luaO_nilobject_ = {{NULL}, LUA_TNIL}; + + +/* +** converts an integer to a "floating point byte", represented as +** (eeeeexxx), where the real value is (1xxx) * 2^(eeeee - 1) if +** eeeee != 0 and (xxx) otherwise. +*/ +int luaO_int2fb (unsigned int x) { + int e = 0; /* expoent */ + while (x >= 16) { + x = (x+1) >> 1; + e++; + } + if (x < 8) return x; + else return ((e+1) << 3) | (cast_int(x) - 8); +} + + +/* converts back */ +int luaO_fb2int (int x) { + int e = (x >> 3) & 31; + if (e == 0) return x; + else return ((x & 7)+8) << (e - 1); +} + + +int luaO_log2 (unsigned int x) { + static const lu_byte log_2[256] = { + 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 + }; + int l = -1; + while (x >= 256) { l += 8; x >>= 8; } + return l + log_2[x]; + +} + + +int luaO_rawequalObj (const TValue *t1, const TValue *t2) { + if (ttype(t1) != ttype(t2)) return 0; + else switch (ttype(t1)) { + case LUA_TNIL: + return 1; + case LUA_TNUMBER: + return luai_numeq(nvalue(t1), nvalue(t2)); + case LUA_TBOOLEAN: + return bvalue(t1) == bvalue(t2); /* boolean true must be 1 !! */ + case LUA_TLIGHTUSERDATA: + return pvalue(t1) == pvalue(t2); + default: + lua_assert(iscollectable(t1)); + return gcvalue(t1) == gcvalue(t2); + } +} + + +int luaO_str2d (const char *s, lua_Number *result) { + char *endptr; + *result = lua_str2number(s, &endptr); + if (endptr == s) return 0; /* conversion failed */ + if (*endptr == 'x' || *endptr == 'X') /* maybe an hexadecimal constant? */ + *result = cast_num(strtoul(s, &endptr, 16)); + if (*endptr == '\0') return 1; /* most common case */ + while (isspace(cast(unsigned char, *endptr))) endptr++; + if (*endptr != '\0') return 0; /* invalid trailing characters? */ + return 1; +} + + + +static void pushstr (lua_State *L, const char *str) { + setsvalue2s(L, L->top, luaS_new(L, str)); + incr_top(L); +} + + +/* this function handles only `%d', `%c', %f, %p, and `%s' formats */ +const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp) { + int n = 1; + pushstr(L, ""); + for (;;) { + const char *e = strchr(fmt, '%'); + if (e == NULL) break; + setsvalue2s(L, L->top, luaS_newlstr(L, fmt, e-fmt)); + incr_top(L); + switch (*(e+1)) { + case 's': { + const char *s = va_arg(argp, char *); + if (s == NULL) s = "(null)"; + pushstr(L, s); + break; + } + case 'c': { + char buff[2]; + buff[0] = cast(char, va_arg(argp, int)); + buff[1] = '\0'; + pushstr(L, buff); + break; + } + case 'd': { + setnvalue(L->top, cast_num(va_arg(argp, int))); + incr_top(L); + break; + } + case 'f': { + setnvalue(L->top, cast_num(va_arg(argp, l_uacNumber))); + incr_top(L); + break; + } + case 'p': { + char buff[4*sizeof(void *) + 8]; /* should be enough space for a `%p' */ + sprintf(buff, "%p", va_arg(argp, void *)); + pushstr(L, buff); + break; + } + case '%': { + pushstr(L, "%"); + break; + } + default: { + char buff[3]; + buff[0] = '%'; + buff[1] = *(e+1); + buff[2] = '\0'; + pushstr(L, buff); + break; + } + } + n += 2; + fmt = e+2; + } + pushstr(L, fmt); + luaV_concat(L, n+1, cast_int(L->top - L->base) - 1); + L->top -= n; + return svalue(L->top - 1); +} + + +const char *luaO_pushfstring (lua_State *L, const char *fmt, ...) { + const char *msg; + va_list argp; + va_start(argp, fmt); + msg = luaO_pushvfstring(L, fmt, argp); + va_end(argp); + return msg; +} + + +void luaO_chunkid (char *out, const char *source, size_t bufflen) { + if (*source == '=') { + strncpy(out, source+1, bufflen); /* remove first char */ + out[bufflen-1] = '\0'; /* ensures null termination */ + } + else { /* out = "source", or "...source" */ + if (*source == '@') { + size_t l; + source++; /* skip the `@' */ + bufflen -= sizeof(" '...' "); + l = strlen(source); + strcpy(out, ""); + if (l > bufflen) { + source += (l-bufflen); /* get last part of file name */ + strcat(out, "..."); + } + strcat(out, source); + } + else { /* out = [string "string"] */ + size_t len = strcspn(source, "\n\r"); /* stop at first newline */ + bufflen -= sizeof(" [string \"...\"] "); + if (len > bufflen) len = bufflen; + strcpy(out, "[string \""); + if (source[len] != '\0') { /* must truncate? */ + strncat(out, source, len); + strcat(out, "..."); + } + else + strcat(out, source); + strcat(out, "\"]"); + } + } +} diff --git a/mk/linux/mojosetup/lua/src/lobject.h b/mk/linux/mojosetup/lua/src/lobject.h new file mode 100644 index 00000000..f1e447ef --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lobject.h @@ -0,0 +1,381 @@ +/* +** $Id: lobject.h,v 2.20.1.2 2008/08/06 13:29:48 roberto Exp $ +** Type definitions for Lua objects +** See Copyright Notice in lua.h +*/ + + +#ifndef lobject_h +#define lobject_h + + +#include + + +#include "llimits.h" +#include "lua.h" + + +/* tags for values visible from Lua */ +#define LAST_TAG LUA_TTHREAD + +#define NUM_TAGS (LAST_TAG+1) + + +/* +** Extra tags for non-values +*/ +#define LUA_TPROTO (LAST_TAG+1) +#define LUA_TUPVAL (LAST_TAG+2) +#define LUA_TDEADKEY (LAST_TAG+3) + + +/* +** Union of all collectable objects +*/ +typedef union GCObject GCObject; + + +/* +** Common Header for all collectable objects (in macro form, to be +** included in other objects) +*/ +#define CommonHeader GCObject *next; lu_byte tt; lu_byte marked + + +/* +** Common header in struct form +*/ +typedef struct GCheader { + CommonHeader; +} GCheader; + + + + +/* +** Union of all Lua values +*/ +typedef union { + GCObject *gc; + void *p; + lua_Number n; + int b; +} Value; + + +/* +** Tagged Values +*/ + +#define TValuefields Value value; int tt + +typedef struct lua_TValue { + TValuefields; +} TValue; + + +/* Macros to test type */ +#define ttisnil(o) (ttype(o) == LUA_TNIL) +#define ttisnumber(o) (ttype(o) == LUA_TNUMBER) +#define ttisstring(o) (ttype(o) == LUA_TSTRING) +#define ttistable(o) (ttype(o) == LUA_TTABLE) +#define ttisfunction(o) (ttype(o) == LUA_TFUNCTION) +#define ttisboolean(o) (ttype(o) == LUA_TBOOLEAN) +#define ttisuserdata(o) (ttype(o) == LUA_TUSERDATA) +#define ttisthread(o) (ttype(o) == LUA_TTHREAD) +#define ttislightuserdata(o) (ttype(o) == LUA_TLIGHTUSERDATA) + +/* Macros to access values */ +#define ttype(o) ((o)->tt) +#define gcvalue(o) check_exp(iscollectable(o), (o)->value.gc) +#define pvalue(o) check_exp(ttislightuserdata(o), (o)->value.p) +#define nvalue(o) check_exp(ttisnumber(o), (o)->value.n) +#define rawtsvalue(o) check_exp(ttisstring(o), &(o)->value.gc->ts) +#define tsvalue(o) (&rawtsvalue(o)->tsv) +#define rawuvalue(o) check_exp(ttisuserdata(o), &(o)->value.gc->u) +#define uvalue(o) (&rawuvalue(o)->uv) +#define clvalue(o) check_exp(ttisfunction(o), &(o)->value.gc->cl) +#define hvalue(o) check_exp(ttistable(o), &(o)->value.gc->h) +#define bvalue(o) check_exp(ttisboolean(o), (o)->value.b) +#define thvalue(o) check_exp(ttisthread(o), &(o)->value.gc->th) + +#define l_isfalse(o) (ttisnil(o) || (ttisboolean(o) && bvalue(o) == 0)) + +/* +** for internal debug only +*/ +#define checkconsistency(obj) \ + lua_assert(!iscollectable(obj) || (ttype(obj) == (obj)->value.gc->gch.tt)) + +#define checkliveness(g,obj) \ + lua_assert(!iscollectable(obj) || \ + ((ttype(obj) == (obj)->value.gc->gch.tt) && !isdead(g, (obj)->value.gc))) + + +/* Macros to set values */ +#define setnilvalue(obj) ((obj)->tt=LUA_TNIL) + +#define setnvalue(obj,x) \ + { TValue *i_o=(obj); i_o->value.n=(x); i_o->tt=LUA_TNUMBER; } + +#define setpvalue(obj,x) \ + { TValue *i_o=(obj); i_o->value.p=(x); i_o->tt=LUA_TLIGHTUSERDATA; } + +#define setbvalue(obj,x) \ + { TValue *i_o=(obj); i_o->value.b=(x); i_o->tt=LUA_TBOOLEAN; } + +#define setsvalue(L,obj,x) \ + { TValue *i_o=(obj); \ + i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TSTRING; \ + checkliveness(G(L),i_o); } + +#define setuvalue(L,obj,x) \ + { TValue *i_o=(obj); \ + i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TUSERDATA; \ + checkliveness(G(L),i_o); } + +#define setthvalue(L,obj,x) \ + { TValue *i_o=(obj); \ + i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TTHREAD; \ + checkliveness(G(L),i_o); } + +#define setclvalue(L,obj,x) \ + { TValue *i_o=(obj); \ + i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TFUNCTION; \ + checkliveness(G(L),i_o); } + +#define sethvalue(L,obj,x) \ + { TValue *i_o=(obj); \ + i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TTABLE; \ + checkliveness(G(L),i_o); } + +#define setptvalue(L,obj,x) \ + { TValue *i_o=(obj); \ + i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TPROTO; \ + checkliveness(G(L),i_o); } + + + + +#define setobj(L,obj1,obj2) \ + { const TValue *o2=(obj2); TValue *o1=(obj1); \ + o1->value = o2->value; o1->tt=o2->tt; \ + checkliveness(G(L),o1); } + + +/* +** different types of sets, according to destination +*/ + +/* from stack to (same) stack */ +#define setobjs2s setobj +/* to stack (not from same stack) */ +#define setobj2s setobj +#define setsvalue2s setsvalue +#define sethvalue2s sethvalue +#define setptvalue2s setptvalue +/* from table to same table */ +#define setobjt2t setobj +/* to table */ +#define setobj2t setobj +/* to new object */ +#define setobj2n setobj +#define setsvalue2n setsvalue + +#define setttype(obj, tt) (ttype(obj) = (tt)) + + +#define iscollectable(o) (ttype(o) >= LUA_TSTRING) + + + +typedef TValue *StkId; /* index to stack elements */ + + +/* +** String headers for string table +*/ +typedef union TString { + L_Umaxalign dummy; /* ensures maximum alignment for strings */ + struct { + CommonHeader; + lu_byte reserved; + unsigned int hash; + size_t len; + } tsv; +} TString; + + +#define getstr(ts) cast(const char *, (ts) + 1) +#define svalue(o) getstr(rawtsvalue(o)) + + + +typedef union Udata { + L_Umaxalign dummy; /* ensures maximum alignment for `local' udata */ + struct { + CommonHeader; + struct Table *metatable; + struct Table *env; + size_t len; + } uv; +} Udata; + + + + +/* +** Function Prototypes +*/ +typedef struct Proto { + CommonHeader; + TValue *k; /* constants used by the function */ + Instruction *code; + struct Proto **p; /* functions defined inside the function */ + int *lineinfo; /* map from opcodes to source lines */ + struct LocVar *locvars; /* information about local variables */ + TString **upvalues; /* upvalue names */ + TString *source; + int sizeupvalues; + int sizek; /* size of `k' */ + int sizecode; + int sizelineinfo; + int sizep; /* size of `p' */ + int sizelocvars; + int linedefined; + int lastlinedefined; + GCObject *gclist; + lu_byte nups; /* number of upvalues */ + lu_byte numparams; + lu_byte is_vararg; + lu_byte maxstacksize; +} Proto; + + +/* masks for new-style vararg */ +#define VARARG_HASARG 1 +#define VARARG_ISVARARG 2 +#define VARARG_NEEDSARG 4 + + +typedef struct LocVar { + TString *varname; + int startpc; /* first point where variable is active */ + int endpc; /* first point where variable is dead */ +} LocVar; + + + +/* +** Upvalues +*/ + +typedef struct UpVal { + CommonHeader; + TValue *v; /* points to stack or to its own value */ + union { + TValue value; /* the value (when closed) */ + struct { /* double linked list (when open) */ + struct UpVal *prev; + struct UpVal *next; + } l; + } u; +} UpVal; + + +/* +** Closures +*/ + +#define ClosureHeader \ + CommonHeader; lu_byte isC; lu_byte nupvalues; GCObject *gclist; \ + struct Table *env + +typedef struct CClosure { + ClosureHeader; + lua_CFunction f; + TValue upvalue[1]; +} CClosure; + + +typedef struct LClosure { + ClosureHeader; + struct Proto *p; + UpVal *upvals[1]; +} LClosure; + + +typedef union Closure { + CClosure c; + LClosure l; +} Closure; + + +#define iscfunction(o) (ttype(o) == LUA_TFUNCTION && clvalue(o)->c.isC) +#define isLfunction(o) (ttype(o) == LUA_TFUNCTION && !clvalue(o)->c.isC) + + +/* +** Tables +*/ + +typedef union TKey { + struct { + TValuefields; + struct Node *next; /* for chaining */ + } nk; + TValue tvk; +} TKey; + + +typedef struct Node { + TValue i_val; + TKey i_key; +} Node; + + +typedef struct Table { + CommonHeader; + lu_byte flags; /* 1<

      lsizenode)) + + +#define luaO_nilobject (&luaO_nilobject_) + +LUAI_DATA const TValue luaO_nilobject_; + +#define ceillog2(x) (luaO_log2((x)-1) + 1) + +LUAI_FUNC int luaO_log2 (unsigned int x); +LUAI_FUNC int luaO_int2fb (unsigned int x); +LUAI_FUNC int luaO_fb2int (int x); +LUAI_FUNC int luaO_rawequalObj (const TValue *t1, const TValue *t2); +LUAI_FUNC int luaO_str2d (const char *s, lua_Number *result); +LUAI_FUNC const char *luaO_pushvfstring (lua_State *L, const char *fmt, + va_list argp); +LUAI_FUNC const char *luaO_pushfstring (lua_State *L, const char *fmt, ...); +LUAI_FUNC void luaO_chunkid (char *out, const char *source, size_t len); + + +#endif + diff --git a/mk/linux/mojosetup/lua/src/lopcodes.c b/mk/linux/mojosetup/lua/src/lopcodes.c new file mode 100644 index 00000000..4cc74523 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lopcodes.c @@ -0,0 +1,102 @@ +/* +** $Id: lopcodes.c,v 1.37.1.1 2007/12/27 13:02:25 roberto Exp $ +** See Copyright Notice in lua.h +*/ + + +#define lopcodes_c +#define LUA_CORE + + +#include "lopcodes.h" + + +/* ORDER OP */ + +const char *const luaP_opnames[NUM_OPCODES+1] = { + "MOVE", + "LOADK", + "LOADBOOL", + "LOADNIL", + "GETUPVAL", + "GETGLOBAL", + "GETTABLE", + "SETGLOBAL", + "SETUPVAL", + "SETTABLE", + "NEWTABLE", + "SELF", + "ADD", + "SUB", + "MUL", + "DIV", + "MOD", + "POW", + "UNM", + "NOT", + "LEN", + "CONCAT", + "JMP", + "EQ", + "LT", + "LE", + "TEST", + "TESTSET", + "CALL", + "TAILCALL", + "RETURN", + "FORLOOP", + "FORPREP", + "TFORLOOP", + "SETLIST", + "CLOSE", + "CLOSURE", + "VARARG", + NULL +}; + + +#define opmode(t,a,b,c,m) (((t)<<7) | ((a)<<6) | ((b)<<4) | ((c)<<2) | (m)) + +const lu_byte luaP_opmodes[NUM_OPCODES] = { +/* T A B C mode opcode */ + opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_MOVE */ + ,opmode(0, 1, OpArgK, OpArgN, iABx) /* OP_LOADK */ + ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_LOADBOOL */ + ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_LOADNIL */ + ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_GETUPVAL */ + ,opmode(0, 1, OpArgK, OpArgN, iABx) /* OP_GETGLOBAL */ + ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_GETTABLE */ + ,opmode(0, 0, OpArgK, OpArgN, iABx) /* OP_SETGLOBAL */ + ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_SETUPVAL */ + ,opmode(0, 0, OpArgK, OpArgK, iABC) /* OP_SETTABLE */ + ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_NEWTABLE */ + ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_SELF */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_ADD */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_SUB */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_MUL */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_DIV */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_MOD */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_POW */ + ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_UNM */ + ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_NOT */ + ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_LEN */ + ,opmode(0, 1, OpArgR, OpArgR, iABC) /* OP_CONCAT */ + ,opmode(0, 0, OpArgR, OpArgN, iAsBx) /* OP_JMP */ + ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_EQ */ + ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LT */ + ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LE */ + ,opmode(1, 1, OpArgR, OpArgU, iABC) /* OP_TEST */ + ,opmode(1, 1, OpArgR, OpArgU, iABC) /* OP_TESTSET */ + ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_CALL */ + ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_TAILCALL */ + ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_RETURN */ + ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORLOOP */ + ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORPREP */ + ,opmode(1, 0, OpArgN, OpArgU, iABC) /* OP_TFORLOOP */ + ,opmode(0, 0, OpArgU, OpArgU, iABC) /* OP_SETLIST */ + ,opmode(0, 0, OpArgN, OpArgN, iABC) /* OP_CLOSE */ + ,opmode(0, 1, OpArgU, OpArgN, iABx) /* OP_CLOSURE */ + ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_VARARG */ +}; + diff --git a/mk/linux/mojosetup/lua/src/lopcodes.h b/mk/linux/mojosetup/lua/src/lopcodes.h new file mode 100644 index 00000000..41224d6e --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lopcodes.h @@ -0,0 +1,268 @@ +/* +** $Id: lopcodes.h,v 1.125.1.1 2007/12/27 13:02:25 roberto Exp $ +** Opcodes for Lua virtual machine +** See Copyright Notice in lua.h +*/ + +#ifndef lopcodes_h +#define lopcodes_h + +#include "llimits.h" + + +/*=========================================================================== + We assume that instructions are unsigned numbers. + All instructions have an opcode in the first 6 bits. + Instructions can have the following fields: + `A' : 8 bits + `B' : 9 bits + `C' : 9 bits + `Bx' : 18 bits (`B' and `C' together) + `sBx' : signed Bx + + A signed argument is represented in excess K; that is, the number + value is the unsigned value minus K. K is exactly the maximum value + for that argument (so that -max is represented by 0, and +max is + represented by 2*max), which is half the maximum for the corresponding + unsigned argument. +===========================================================================*/ + + +enum OpMode {iABC, iABx, iAsBx}; /* basic instruction format */ + + +/* +** size and position of opcode arguments. +*/ +#define SIZE_C 9 +#define SIZE_B 9 +#define SIZE_Bx (SIZE_C + SIZE_B) +#define SIZE_A 8 + +#define SIZE_OP 6 + +#define POS_OP 0 +#define POS_A (POS_OP + SIZE_OP) +#define POS_C (POS_A + SIZE_A) +#define POS_B (POS_C + SIZE_C) +#define POS_Bx POS_C + + +/* +** limits for opcode arguments. +** we use (signed) int to manipulate most arguments, +** so they must fit in LUAI_BITSINT-1 bits (-1 for sign) +*/ +#if SIZE_Bx < LUAI_BITSINT-1 +#define MAXARG_Bx ((1<>1) /* `sBx' is signed */ +#else +#define MAXARG_Bx MAX_INT +#define MAXARG_sBx MAX_INT +#endif + + +#define MAXARG_A ((1<>POS_OP) & MASK1(SIZE_OP,0))) +#define SET_OPCODE(i,o) ((i) = (((i)&MASK0(SIZE_OP,POS_OP)) | \ + ((cast(Instruction, o)<>POS_A) & MASK1(SIZE_A,0))) +#define SETARG_A(i,u) ((i) = (((i)&MASK0(SIZE_A,POS_A)) | \ + ((cast(Instruction, u)<>POS_B) & MASK1(SIZE_B,0))) +#define SETARG_B(i,b) ((i) = (((i)&MASK0(SIZE_B,POS_B)) | \ + ((cast(Instruction, b)<>POS_C) & MASK1(SIZE_C,0))) +#define SETARG_C(i,b) ((i) = (((i)&MASK0(SIZE_C,POS_C)) | \ + ((cast(Instruction, b)<>POS_Bx) & MASK1(SIZE_Bx,0))) +#define SETARG_Bx(i,b) ((i) = (((i)&MASK0(SIZE_Bx,POS_Bx)) | \ + ((cast(Instruction, b)< C) then pc++ */ +OP_TESTSET,/* A B C if (R(B) <=> C) then R(A) := R(B) else pc++ */ + +OP_CALL,/* A B C R(A), ... ,R(A+C-2) := R(A)(R(A+1), ... ,R(A+B-1)) */ +OP_TAILCALL,/* A B C return R(A)(R(A+1), ... ,R(A+B-1)) */ +OP_RETURN,/* A B return R(A), ... ,R(A+B-2) (see note) */ + +OP_FORLOOP,/* A sBx R(A)+=R(A+2); + if R(A) =) R(A)*/ +OP_CLOSURE,/* A Bx R(A) := closure(KPROTO[Bx], R(A), ... ,R(A+n)) */ + +OP_VARARG/* A B R(A), R(A+1), ..., R(A+B-1) = vararg */ +} OpCode; + + +#define NUM_OPCODES (cast(int, OP_VARARG) + 1) + + + +/*=========================================================================== + Notes: + (*) In OP_CALL, if (B == 0) then B = top. C is the number of returns - 1, + and can be 0: OP_CALL then sets `top' to last_result+1, so + next open instruction (OP_CALL, OP_RETURN, OP_SETLIST) may use `top'. + + (*) In OP_VARARG, if (B == 0) then use actual number of varargs and + set top (like in OP_CALL with C == 0). + + (*) In OP_RETURN, if (B == 0) then return up to `top' + + (*) In OP_SETLIST, if (B == 0) then B = `top'; + if (C == 0) then next `instruction' is real C + + (*) For comparisons, A specifies what condition the test should accept + (true or false). + + (*) All `skips' (pc++) assume that next instruction is a jump +===========================================================================*/ + + +/* +** masks for instruction properties. The format is: +** bits 0-1: op mode +** bits 2-3: C arg mode +** bits 4-5: B arg mode +** bit 6: instruction set register A +** bit 7: operator is a test +*/ + +enum OpArgMask { + OpArgN, /* argument is not used */ + OpArgU, /* argument is used */ + OpArgR, /* argument is a register or a jump offset */ + OpArgK /* argument is a constant or register/constant */ +}; + +LUAI_DATA const lu_byte luaP_opmodes[NUM_OPCODES]; + +#define getOpMode(m) (cast(enum OpMode, luaP_opmodes[m] & 3)) +#define getBMode(m) (cast(enum OpArgMask, (luaP_opmodes[m] >> 4) & 3)) +#define getCMode(m) (cast(enum OpArgMask, (luaP_opmodes[m] >> 2) & 3)) +#define testAMode(m) (luaP_opmodes[m] & (1 << 6)) +#define testTMode(m) (luaP_opmodes[m] & (1 << 7)) + + +LUAI_DATA const char *const luaP_opnames[NUM_OPCODES+1]; /* opcode names */ + + +/* number of list items to accumulate before a SETLIST instruction */ +#define LFIELDS_PER_FLUSH 50 + + +#endif diff --git a/mk/linux/mojosetup/lua/src/loslib.c b/mk/linux/mojosetup/lua/src/loslib.c new file mode 100644 index 00000000..da06a572 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/loslib.c @@ -0,0 +1,243 @@ +/* +** $Id: loslib.c,v 1.19.1.3 2008/01/18 16:38:18 roberto Exp $ +** Standard Operating System library +** See Copyright Notice in lua.h +*/ + + +#include +#include +#include +#include +#include + +#define loslib_c +#define LUA_LIB + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +static int os_pushresult (lua_State *L, int i, const char *filename) { + int en = errno; /* calls to Lua API may change this value */ + if (i) { + lua_pushboolean(L, 1); + return 1; + } + else { + lua_pushnil(L); + lua_pushfstring(L, "%s: %s", filename, strerror(en)); + lua_pushinteger(L, en); + return 3; + } +} + + +static int os_execute (lua_State *L) { + lua_pushinteger(L, system(luaL_optstring(L, 1, NULL))); + return 1; +} + + +static int os_remove (lua_State *L) { + const char *filename = luaL_checkstring(L, 1); + return os_pushresult(L, remove(filename) == 0, filename); +} + + +static int os_rename (lua_State *L) { + const char *fromname = luaL_checkstring(L, 1); + const char *toname = luaL_checkstring(L, 2); + return os_pushresult(L, rename(fromname, toname) == 0, fromname); +} + + +static int os_tmpname (lua_State *L) { + char buff[LUA_TMPNAMBUFSIZE]; + int err; + lua_tmpnam(buff, err); + if (err) + return luaL_error(L, "unable to generate a unique filename"); + lua_pushstring(L, buff); + return 1; +} + + +static int os_getenv (lua_State *L) { + lua_pushstring(L, getenv(luaL_checkstring(L, 1))); /* if NULL push nil */ + return 1; +} + + +static int os_clock (lua_State *L) { + lua_pushnumber(L, ((lua_Number)clock())/(lua_Number)CLOCKS_PER_SEC); + return 1; +} + + +/* +** {====================================================== +** Time/Date operations +** { year=%Y, month=%m, day=%d, hour=%H, min=%M, sec=%S, +** wday=%w+1, yday=%j, isdst=? } +** ======================================================= +*/ + +static void setfield (lua_State *L, const char *key, int value) { + lua_pushinteger(L, value); + lua_setfield(L, -2, key); +} + +static void setboolfield (lua_State *L, const char *key, int value) { + if (value < 0) /* undefined? */ + return; /* does not set field */ + lua_pushboolean(L, value); + lua_setfield(L, -2, key); +} + +static int getboolfield (lua_State *L, const char *key) { + int res; + lua_getfield(L, -1, key); + res = lua_isnil(L, -1) ? -1 : lua_toboolean(L, -1); + lua_pop(L, 1); + return res; +} + + +static int getfield (lua_State *L, const char *key, int d) { + int res; + lua_getfield(L, -1, key); + if (lua_isnumber(L, -1)) + res = (int)lua_tointeger(L, -1); + else { + if (d < 0) + return luaL_error(L, "field " LUA_QS " missing in date table", key); + res = d; + } + lua_pop(L, 1); + return res; +} + + +static int os_date (lua_State *L) { + const char *s = luaL_optstring(L, 1, "%c"); + time_t t = luaL_opt(L, (time_t)luaL_checknumber, 2, time(NULL)); + struct tm *stm; + if (*s == '!') { /* UTC? */ + stm = gmtime(&t); + s++; /* skip `!' */ + } + else + stm = localtime(&t); + if (stm == NULL) /* invalid date? */ + lua_pushnil(L); + else if (strcmp(s, "*t") == 0) { + lua_createtable(L, 0, 9); /* 9 = number of fields */ + setfield(L, "sec", stm->tm_sec); + setfield(L, "min", stm->tm_min); + setfield(L, "hour", stm->tm_hour); + setfield(L, "day", stm->tm_mday); + setfield(L, "month", stm->tm_mon+1); + setfield(L, "year", stm->tm_year+1900); + setfield(L, "wday", stm->tm_wday+1); + setfield(L, "yday", stm->tm_yday+1); + setboolfield(L, "isdst", stm->tm_isdst); + } + else { + char cc[3]; + luaL_Buffer b; + cc[0] = '%'; cc[2] = '\0'; + luaL_buffinit(L, &b); + for (; *s; s++) { + if (*s != '%' || *(s + 1) == '\0') /* no conversion specifier? */ + luaL_addchar(&b, *s); + else { + size_t reslen; + char buff[200]; /* should be big enough for any conversion result */ + cc[1] = *(++s); + reslen = strftime(buff, sizeof(buff), cc, stm); + luaL_addlstring(&b, buff, reslen); + } + } + luaL_pushresult(&b); + } + return 1; +} + + +static int os_time (lua_State *L) { + time_t t; + if (lua_isnoneornil(L, 1)) /* called without args? */ + t = time(NULL); /* get current time */ + else { + struct tm ts; + luaL_checktype(L, 1, LUA_TTABLE); + lua_settop(L, 1); /* make sure table is at the top */ + ts.tm_sec = getfield(L, "sec", 0); + ts.tm_min = getfield(L, "min", 0); + ts.tm_hour = getfield(L, "hour", 12); + ts.tm_mday = getfield(L, "day", -1); + ts.tm_mon = getfield(L, "month", -1) - 1; + ts.tm_year = getfield(L, "year", -1) - 1900; + ts.tm_isdst = getboolfield(L, "isdst"); + t = mktime(&ts); + } + if (t == (time_t)(-1)) + lua_pushnil(L); + else + lua_pushnumber(L, (lua_Number)t); + return 1; +} + + +static int os_difftime (lua_State *L) { + lua_pushnumber(L, difftime((time_t)(luaL_checknumber(L, 1)), + (time_t)(luaL_optnumber(L, 2, 0)))); + return 1; +} + +/* }====================================================== */ + + +static int os_setlocale (lua_State *L) { + static const int cat[] = {LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, + LC_NUMERIC, LC_TIME}; + static const char *const catnames[] = {"all", "collate", "ctype", "monetary", + "numeric", "time", NULL}; + const char *l = luaL_optstring(L, 1, NULL); + int op = luaL_checkoption(L, 2, "all", catnames); + lua_pushstring(L, setlocale(cat[op], l)); + return 1; +} + + +static int os_exit (lua_State *L) { + exit(luaL_optint(L, 1, EXIT_SUCCESS)); +} + +static const luaL_Reg syslib[] = { + {"clock", os_clock}, + {"date", os_date}, + {"difftime", os_difftime}, + {"execute", os_execute}, + {"exit", os_exit}, + {"getenv", os_getenv}, + {"remove", os_remove}, + {"rename", os_rename}, + {"setlocale", os_setlocale}, + {"time", os_time}, + {"tmpname", os_tmpname}, + {NULL, NULL} +}; + +/* }====================================================== */ + + + +LUALIB_API int luaopen_os (lua_State *L) { + luaL_register(L, LUA_OSLIBNAME, syslib); + return 1; +} + diff --git a/mk/linux/mojosetup/lua/src/lparser.c b/mk/linux/mojosetup/lua/src/lparser.c new file mode 100644 index 00000000..1e2a9a88 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lparser.c @@ -0,0 +1,1339 @@ +/* +** $Id: lparser.c,v 2.42.1.3 2007/12/28 15:32:23 roberto Exp $ +** Lua Parser +** See Copyright Notice in lua.h +*/ + + +#include + +#define lparser_c +#define LUA_CORE + +#include "lua.h" + +#include "lcode.h" +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "llex.h" +#include "lmem.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lparser.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" + + + +#define hasmultret(k) ((k) == VCALL || (k) == VVARARG) + +#define getlocvar(fs, i) ((fs)->f->locvars[(fs)->actvar[i]]) + +#define luaY_checklimit(fs,v,l,m) if ((v)>(l)) errorlimit(fs,l,m) + + +/* +** nodes for block list (list of active blocks) +*/ +typedef struct BlockCnt { + struct BlockCnt *previous; /* chain */ + int breaklist; /* list of jumps out of this loop */ + lu_byte nactvar; /* # active locals outside the breakable structure */ + lu_byte upval; /* true if some variable in the block is an upvalue */ + lu_byte isbreakable; /* true if `block' is a loop */ +} BlockCnt; + + + +/* +** prototypes for recursive non-terminal functions +*/ +static void chunk (LexState *ls); +static void expr (LexState *ls, expdesc *v); + + +static void anchor_token (LexState *ls) { + if (ls->t.token == TK_NAME || ls->t.token == TK_STRING) { + TString *ts = ls->t.seminfo.ts; + luaX_newstring(ls, getstr(ts), ts->tsv.len); + } +} + + +static void error_expected (LexState *ls, int token) { + luaX_syntaxerror(ls, + luaO_pushfstring(ls->L, LUA_QS " expected", luaX_token2str(ls, token))); +} + + +static void errorlimit (FuncState *fs, int limit, const char *what) { + const char *msg = (fs->f->linedefined == 0) ? + luaO_pushfstring(fs->L, "main function has more than %d %s", limit, what) : + luaO_pushfstring(fs->L, "function at line %d has more than %d %s", + fs->f->linedefined, limit, what); + luaX_lexerror(fs->ls, msg, 0); +} + + +static int testnext (LexState *ls, int c) { + if (ls->t.token == c) { + luaX_next(ls); + return 1; + } + else return 0; +} + + +static void check (LexState *ls, int c) { + if (ls->t.token != c) + error_expected(ls, c); +} + +static void checknext (LexState *ls, int c) { + check(ls, c); + luaX_next(ls); +} + + +#define check_condition(ls,c,msg) { if (!(c)) luaX_syntaxerror(ls, msg); } + + + +static void check_match (LexState *ls, int what, int who, int where) { + if (!testnext(ls, what)) { + if (where == ls->linenumber) + error_expected(ls, what); + else { + luaX_syntaxerror(ls, luaO_pushfstring(ls->L, + LUA_QS " expected (to close " LUA_QS " at line %d)", + luaX_token2str(ls, what), luaX_token2str(ls, who), where)); + } + } +} + + +static TString *str_checkname (LexState *ls) { + TString *ts; + check(ls, TK_NAME); + ts = ls->t.seminfo.ts; + luaX_next(ls); + return ts; +} + + +static void init_exp (expdesc *e, expkind k, int i) { + e->f = e->t = NO_JUMP; + e->k = k; + e->u.s.info = i; +} + + +static void codestring (LexState *ls, expdesc *e, TString *s) { + init_exp(e, VK, luaK_stringK(ls->fs, s)); +} + + +static void checkname(LexState *ls, expdesc *e) { + codestring(ls, e, str_checkname(ls)); +} + + +static int registerlocalvar (LexState *ls, TString *varname) { + FuncState *fs = ls->fs; + Proto *f = fs->f; + int oldsize = f->sizelocvars; + luaM_growvector(ls->L, f->locvars, fs->nlocvars, f->sizelocvars, + LocVar, SHRT_MAX, "too many local variables"); + while (oldsize < f->sizelocvars) f->locvars[oldsize++].varname = NULL; + f->locvars[fs->nlocvars].varname = varname; + luaC_objbarrier(ls->L, f, varname); + return fs->nlocvars++; +} + + +#define new_localvarliteral(ls,v,n) \ + new_localvar(ls, luaX_newstring(ls, "" v, (sizeof(v)/sizeof(char))-1), n) + + +static void new_localvar (LexState *ls, TString *name, int n) { + FuncState *fs = ls->fs; + luaY_checklimit(fs, fs->nactvar+n+1, LUAI_MAXVARS, "local variables"); + fs->actvar[fs->nactvar+n] = cast(unsigned short, registerlocalvar(ls, name)); +} + + +static void adjustlocalvars (LexState *ls, int nvars) { + FuncState *fs = ls->fs; + fs->nactvar = cast_byte(fs->nactvar + nvars); + for (; nvars; nvars--) { + getlocvar(fs, fs->nactvar - nvars).startpc = fs->pc; + } +} + + +static void removevars (LexState *ls, int tolevel) { + FuncState *fs = ls->fs; + while (fs->nactvar > tolevel) + getlocvar(fs, --fs->nactvar).endpc = fs->pc; +} + + +static int indexupvalue (FuncState *fs, TString *name, expdesc *v) { + int i; + Proto *f = fs->f; + int oldsize = f->sizeupvalues; + for (i=0; inups; i++) { + if (fs->upvalues[i].k == v->k && fs->upvalues[i].info == v->u.s.info) { + lua_assert(f->upvalues[i] == name); + return i; + } + } + /* new one */ + luaY_checklimit(fs, f->nups + 1, LUAI_MAXUPVALUES, "upvalues"); + luaM_growvector(fs->L, f->upvalues, f->nups, f->sizeupvalues, + TString *, MAX_INT, ""); + while (oldsize < f->sizeupvalues) f->upvalues[oldsize++] = NULL; + f->upvalues[f->nups] = name; + luaC_objbarrier(fs->L, f, name); + lua_assert(v->k == VLOCAL || v->k == VUPVAL); + fs->upvalues[f->nups].k = cast_byte(v->k); + fs->upvalues[f->nups].info = cast_byte(v->u.s.info); + return f->nups++; +} + + +static int searchvar (FuncState *fs, TString *n) { + int i; + for (i=fs->nactvar-1; i >= 0; i--) { + if (n == getlocvar(fs, i).varname) + return i; + } + return -1; /* not found */ +} + + +static void markupval (FuncState *fs, int level) { + BlockCnt *bl = fs->bl; + while (bl && bl->nactvar > level) bl = bl->previous; + if (bl) bl->upval = 1; +} + + +static int singlevaraux (FuncState *fs, TString *n, expdesc *var, int base) { + if (fs == NULL) { /* no more levels? */ + init_exp(var, VGLOBAL, NO_REG); /* default is global variable */ + return VGLOBAL; + } + else { + int v = searchvar(fs, n); /* look up at current level */ + if (v >= 0) { + init_exp(var, VLOCAL, v); + if (!base) + markupval(fs, v); /* local will be used as an upval */ + return VLOCAL; + } + else { /* not found at current level; try upper one */ + if (singlevaraux(fs->prev, n, var, 0) == VGLOBAL) + return VGLOBAL; + var->u.s.info = indexupvalue(fs, n, var); /* else was LOCAL or UPVAL */ + var->k = VUPVAL; /* upvalue in this level */ + return VUPVAL; + } + } +} + + +static void singlevar (LexState *ls, expdesc *var) { + TString *varname = str_checkname(ls); + FuncState *fs = ls->fs; + if (singlevaraux(fs, varname, var, 1) == VGLOBAL) + var->u.s.info = luaK_stringK(fs, varname); /* info points to global name */ +} + + +static void adjust_assign (LexState *ls, int nvars, int nexps, expdesc *e) { + FuncState *fs = ls->fs; + int extra = nvars - nexps; + if (hasmultret(e->k)) { + extra++; /* includes call itself */ + if (extra < 0) extra = 0; + luaK_setreturns(fs, e, extra); /* last exp. provides the difference */ + if (extra > 1) luaK_reserveregs(fs, extra-1); + } + else { + if (e->k != VVOID) luaK_exp2nextreg(fs, e); /* close last expression */ + if (extra > 0) { + int reg = fs->freereg; + luaK_reserveregs(fs, extra); + luaK_nil(fs, reg, extra); + } + } +} + + +static void enterlevel (LexState *ls) { + if (++ls->L->nCcalls > LUAI_MAXCCALLS) + luaX_lexerror(ls, "chunk has too many syntax levels", 0); +} + + +#define leavelevel(ls) ((ls)->L->nCcalls--) + + +static void enterblock (FuncState *fs, BlockCnt *bl, lu_byte isbreakable) { + bl->breaklist = NO_JUMP; + bl->isbreakable = isbreakable; + bl->nactvar = fs->nactvar; + bl->upval = 0; + bl->previous = fs->bl; + fs->bl = bl; + lua_assert(fs->freereg == fs->nactvar); +} + + +static void leaveblock (FuncState *fs) { + BlockCnt *bl = fs->bl; + fs->bl = bl->previous; + removevars(fs->ls, bl->nactvar); + if (bl->upval) + luaK_codeABC(fs, OP_CLOSE, bl->nactvar, 0, 0); + /* a block either controls scope or breaks (never both) */ + lua_assert(!bl->isbreakable || !bl->upval); + lua_assert(bl->nactvar == fs->nactvar); + fs->freereg = fs->nactvar; /* free registers */ + luaK_patchtohere(fs, bl->breaklist); +} + + +static void pushclosure (LexState *ls, FuncState *func, expdesc *v) { + FuncState *fs = ls->fs; + Proto *f = fs->f; + int oldsize = f->sizep; + int i; + luaM_growvector(ls->L, f->p, fs->np, f->sizep, Proto *, + MAXARG_Bx, "constant table overflow"); + while (oldsize < f->sizep) f->p[oldsize++] = NULL; + f->p[fs->np++] = func->f; + luaC_objbarrier(ls->L, f, func->f); + init_exp(v, VRELOCABLE, luaK_codeABx(fs, OP_CLOSURE, 0, fs->np-1)); + for (i=0; if->nups; i++) { + OpCode o = (func->upvalues[i].k == VLOCAL) ? OP_MOVE : OP_GETUPVAL; + luaK_codeABC(fs, o, 0, func->upvalues[i].info, 0); + } +} + + +static void open_func (LexState *ls, FuncState *fs) { + lua_State *L = ls->L; + Proto *f = luaF_newproto(L); + fs->f = f; + fs->prev = ls->fs; /* linked list of funcstates */ + fs->ls = ls; + fs->L = L; + ls->fs = fs; + fs->pc = 0; + fs->lasttarget = -1; + fs->jpc = NO_JUMP; + fs->freereg = 0; + fs->nk = 0; + fs->np = 0; + fs->nlocvars = 0; + fs->nactvar = 0; + fs->bl = NULL; + f->source = ls->source; + f->maxstacksize = 2; /* registers 0/1 are always valid */ + fs->h = luaH_new(L, 0, 0); + /* anchor table of constants and prototype (to avoid being collected) */ + sethvalue2s(L, L->top, fs->h); + incr_top(L); + setptvalue2s(L, L->top, f); + incr_top(L); +} + + +static void close_func (LexState *ls) { + lua_State *L = ls->L; + FuncState *fs = ls->fs; + Proto *f = fs->f; + removevars(ls, 0); + luaK_ret(fs, 0, 0); /* final return */ + luaM_reallocvector(L, f->code, f->sizecode, fs->pc, Instruction); + f->sizecode = fs->pc; + luaM_reallocvector(L, f->lineinfo, f->sizelineinfo, fs->pc, int); + f->sizelineinfo = fs->pc; + luaM_reallocvector(L, f->k, f->sizek, fs->nk, TValue); + f->sizek = fs->nk; + luaM_reallocvector(L, f->p, f->sizep, fs->np, Proto *); + f->sizep = fs->np; + luaM_reallocvector(L, f->locvars, f->sizelocvars, fs->nlocvars, LocVar); + f->sizelocvars = fs->nlocvars; + luaM_reallocvector(L, f->upvalues, f->sizeupvalues, f->nups, TString *); + f->sizeupvalues = f->nups; + lua_assert(luaG_checkcode(f)); + lua_assert(fs->bl == NULL); + ls->fs = fs->prev; + L->top -= 2; /* remove table and prototype from the stack */ + /* last token read was anchored in defunct function; must reanchor it */ + if (fs) anchor_token(ls); +} + + +Proto *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, const char *name) { + struct LexState lexstate; + struct FuncState funcstate; + lexstate.buff = buff; + luaX_setinput(L, &lexstate, z, luaS_new(L, name)); + open_func(&lexstate, &funcstate); + funcstate.f->is_vararg = VARARG_ISVARARG; /* main func. is always vararg */ + luaX_next(&lexstate); /* read first token */ + chunk(&lexstate); + check(&lexstate, TK_EOS); + close_func(&lexstate); + lua_assert(funcstate.prev == NULL); + lua_assert(funcstate.f->nups == 0); + lua_assert(lexstate.fs == NULL); + return funcstate.f; +} + + + +/*============================================================*/ +/* GRAMMAR RULES */ +/*============================================================*/ + + +static void field (LexState *ls, expdesc *v) { + /* field -> ['.' | ':'] NAME */ + FuncState *fs = ls->fs; + expdesc key; + luaK_exp2anyreg(fs, v); + luaX_next(ls); /* skip the dot or colon */ + checkname(ls, &key); + luaK_indexed(fs, v, &key); +} + + +static void yindex (LexState *ls, expdesc *v) { + /* index -> '[' expr ']' */ + luaX_next(ls); /* skip the '[' */ + expr(ls, v); + luaK_exp2val(ls->fs, v); + checknext(ls, ']'); +} + + +/* +** {====================================================================== +** Rules for Constructors +** ======================================================================= +*/ + + +struct ConsControl { + expdesc v; /* last list item read */ + expdesc *t; /* table descriptor */ + int nh; /* total number of `record' elements */ + int na; /* total number of array elements */ + int tostore; /* number of array elements pending to be stored */ +}; + + +static void recfield (LexState *ls, struct ConsControl *cc) { + /* recfield -> (NAME | `['exp1`]') = exp1 */ + FuncState *fs = ls->fs; + int reg = ls->fs->freereg; + expdesc key, val; + int rkkey; + if (ls->t.token == TK_NAME) { + luaY_checklimit(fs, cc->nh, MAX_INT, "items in a constructor"); + checkname(ls, &key); + } + else /* ls->t.token == '[' */ + yindex(ls, &key); + cc->nh++; + checknext(ls, '='); + rkkey = luaK_exp2RK(fs, &key); + expr(ls, &val); + luaK_codeABC(fs, OP_SETTABLE, cc->t->u.s.info, rkkey, luaK_exp2RK(fs, &val)); + fs->freereg = reg; /* free registers */ +} + + +static void closelistfield (FuncState *fs, struct ConsControl *cc) { + if (cc->v.k == VVOID) return; /* there is no list item */ + luaK_exp2nextreg(fs, &cc->v); + cc->v.k = VVOID; + if (cc->tostore == LFIELDS_PER_FLUSH) { + luaK_setlist(fs, cc->t->u.s.info, cc->na, cc->tostore); /* flush */ + cc->tostore = 0; /* no more items pending */ + } +} + + +static void lastlistfield (FuncState *fs, struct ConsControl *cc) { + if (cc->tostore == 0) return; + if (hasmultret(cc->v.k)) { + luaK_setmultret(fs, &cc->v); + luaK_setlist(fs, cc->t->u.s.info, cc->na, LUA_MULTRET); + cc->na--; /* do not count last expression (unknown number of elements) */ + } + else { + if (cc->v.k != VVOID) + luaK_exp2nextreg(fs, &cc->v); + luaK_setlist(fs, cc->t->u.s.info, cc->na, cc->tostore); + } +} + + +static void listfield (LexState *ls, struct ConsControl *cc) { + expr(ls, &cc->v); + luaY_checklimit(ls->fs, cc->na, MAX_INT, "items in a constructor"); + cc->na++; + cc->tostore++; +} + + +static void constructor (LexState *ls, expdesc *t) { + /* constructor -> ?? */ + FuncState *fs = ls->fs; + int line = ls->linenumber; + int pc = luaK_codeABC(fs, OP_NEWTABLE, 0, 0, 0); + struct ConsControl cc; + cc.na = cc.nh = cc.tostore = 0; + cc.t = t; + init_exp(t, VRELOCABLE, pc); + init_exp(&cc.v, VVOID, 0); /* no value (yet) */ + luaK_exp2nextreg(ls->fs, t); /* fix it at stack top (for gc) */ + checknext(ls, '{'); + do { + lua_assert(cc.v.k == VVOID || cc.tostore > 0); + if (ls->t.token == '}') break; + closelistfield(fs, &cc); + switch(ls->t.token) { + case TK_NAME: { /* may be listfields or recfields */ + luaX_lookahead(ls); + if (ls->lookahead.token != '=') /* expression? */ + listfield(ls, &cc); + else + recfield(ls, &cc); + break; + } + case '[': { /* constructor_item -> recfield */ + recfield(ls, &cc); + break; + } + default: { /* constructor_part -> listfield */ + listfield(ls, &cc); + break; + } + } + } while (testnext(ls, ',') || testnext(ls, ';')); + check_match(ls, '}', '{', line); + lastlistfield(fs, &cc); + SETARG_B(fs->f->code[pc], luaO_int2fb(cc.na)); /* set initial array size */ + SETARG_C(fs->f->code[pc], luaO_int2fb(cc.nh)); /* set initial table size */ +} + +/* }====================================================================== */ + + + +static void parlist (LexState *ls) { + /* parlist -> [ param { `,' param } ] */ + FuncState *fs = ls->fs; + Proto *f = fs->f; + int nparams = 0; + f->is_vararg = 0; + if (ls->t.token != ')') { /* is `parlist' not empty? */ + do { + switch (ls->t.token) { + case TK_NAME: { /* param -> NAME */ + new_localvar(ls, str_checkname(ls), nparams++); + break; + } + case TK_DOTS: { /* param -> `...' */ + luaX_next(ls); +#if defined(LUA_COMPAT_VARARG) + /* use `arg' as default name */ + new_localvarliteral(ls, "arg", nparams++); + f->is_vararg = VARARG_HASARG | VARARG_NEEDSARG; +#endif + f->is_vararg |= VARARG_ISVARARG; + break; + } + default: luaX_syntaxerror(ls, " or " LUA_QL("...") " expected"); + } + } while (!f->is_vararg && testnext(ls, ',')); + } + adjustlocalvars(ls, nparams); + f->numparams = cast_byte(fs->nactvar - (f->is_vararg & VARARG_HASARG)); + luaK_reserveregs(fs, fs->nactvar); /* reserve register for parameters */ +} + + +static void body (LexState *ls, expdesc *e, int needself, int line) { + /* body -> `(' parlist `)' chunk END */ + FuncState new_fs; + open_func(ls, &new_fs); + new_fs.f->linedefined = line; + checknext(ls, '('); + if (needself) { + new_localvarliteral(ls, "self", 0); + adjustlocalvars(ls, 1); + } + parlist(ls); + checknext(ls, ')'); + chunk(ls); + new_fs.f->lastlinedefined = ls->linenumber; + check_match(ls, TK_END, TK_FUNCTION, line); + close_func(ls); + pushclosure(ls, &new_fs, e); +} + + +static int explist1 (LexState *ls, expdesc *v) { + /* explist1 -> expr { `,' expr } */ + int n = 1; /* at least one expression */ + expr(ls, v); + while (testnext(ls, ',')) { + luaK_exp2nextreg(ls->fs, v); + expr(ls, v); + n++; + } + return n; +} + + +static void funcargs (LexState *ls, expdesc *f) { + FuncState *fs = ls->fs; + expdesc args; + int base, nparams; + int line = ls->linenumber; + switch (ls->t.token) { + case '(': { /* funcargs -> `(' [ explist1 ] `)' */ + if (line != ls->lastline) + luaX_syntaxerror(ls,"ambiguous syntax (function call x new statement)"); + luaX_next(ls); + if (ls->t.token == ')') /* arg list is empty? */ + args.k = VVOID; + else { + explist1(ls, &args); + luaK_setmultret(fs, &args); + } + check_match(ls, ')', '(', line); + break; + } + case '{': { /* funcargs -> constructor */ + constructor(ls, &args); + break; + } + case TK_STRING: { /* funcargs -> STRING */ + codestring(ls, &args, ls->t.seminfo.ts); + luaX_next(ls); /* must use `seminfo' before `next' */ + break; + } + default: { + luaX_syntaxerror(ls, "function arguments expected"); + return; + } + } + lua_assert(f->k == VNONRELOC); + base = f->u.s.info; /* base register for call */ + if (hasmultret(args.k)) + nparams = LUA_MULTRET; /* open call */ + else { + if (args.k != VVOID) + luaK_exp2nextreg(fs, &args); /* close last argument */ + nparams = fs->freereg - (base+1); + } + init_exp(f, VCALL, luaK_codeABC(fs, OP_CALL, base, nparams+1, 2)); + luaK_fixline(fs, line); + fs->freereg = base+1; /* call remove function and arguments and leaves + (unless changed) one result */ +} + + + + +/* +** {====================================================================== +** Expression parsing +** ======================================================================= +*/ + + +static void prefixexp (LexState *ls, expdesc *v) { + /* prefixexp -> NAME | '(' expr ')' */ + switch (ls->t.token) { + case '(': { + int line = ls->linenumber; + luaX_next(ls); + expr(ls, v); + check_match(ls, ')', '(', line); + luaK_dischargevars(ls->fs, v); + return; + } + case TK_NAME: { + singlevar(ls, v); + return; + } + default: { + luaX_syntaxerror(ls, "unexpected symbol"); + return; + } + } +} + + +static void primaryexp (LexState *ls, expdesc *v) { + /* primaryexp -> + prefixexp { `.' NAME | `[' exp `]' | `:' NAME funcargs | funcargs } */ + FuncState *fs = ls->fs; + prefixexp(ls, v); + for (;;) { + switch (ls->t.token) { + case '.': { /* field */ + field(ls, v); + break; + } + case '[': { /* `[' exp1 `]' */ + expdesc key; + luaK_exp2anyreg(fs, v); + yindex(ls, &key); + luaK_indexed(fs, v, &key); + break; + } + case ':': { /* `:' NAME funcargs */ + expdesc key; + luaX_next(ls); + checkname(ls, &key); + luaK_self(fs, v, &key); + funcargs(ls, v); + break; + } + case '(': case TK_STRING: case '{': { /* funcargs */ + luaK_exp2nextreg(fs, v); + funcargs(ls, v); + break; + } + default: return; + } + } +} + + +static void simpleexp (LexState *ls, expdesc *v) { + /* simpleexp -> NUMBER | STRING | NIL | true | false | ... | + constructor | FUNCTION body | primaryexp */ + switch (ls->t.token) { + case TK_NUMBER: { + init_exp(v, VKNUM, 0); + v->u.nval = ls->t.seminfo.r; + break; + } + case TK_STRING: { + codestring(ls, v, ls->t.seminfo.ts); + break; + } + case TK_NIL: { + init_exp(v, VNIL, 0); + break; + } + case TK_TRUE: { + init_exp(v, VTRUE, 0); + break; + } + case TK_FALSE: { + init_exp(v, VFALSE, 0); + break; + } + case TK_DOTS: { /* vararg */ + FuncState *fs = ls->fs; + check_condition(ls, fs->f->is_vararg, + "cannot use " LUA_QL("...") " outside a vararg function"); + fs->f->is_vararg &= ~VARARG_NEEDSARG; /* don't need 'arg' */ + init_exp(v, VVARARG, luaK_codeABC(fs, OP_VARARG, 0, 1, 0)); + break; + } + case '{': { /* constructor */ + constructor(ls, v); + return; + } + case TK_FUNCTION: { + luaX_next(ls); + body(ls, v, 0, ls->linenumber); + return; + } + default: { + primaryexp(ls, v); + return; + } + } + luaX_next(ls); +} + + +static UnOpr getunopr (int op) { + switch (op) { + case TK_NOT: return OPR_NOT; + case '-': return OPR_MINUS; + case '#': return OPR_LEN; + default: return OPR_NOUNOPR; + } +} + + +static BinOpr getbinopr (int op) { + switch (op) { + case '+': return OPR_ADD; + case '-': return OPR_SUB; + case '*': return OPR_MUL; + case '/': return OPR_DIV; + case '%': return OPR_MOD; + case '^': return OPR_POW; + case TK_CONCAT: return OPR_CONCAT; + case TK_NE: return OPR_NE; + case TK_EQ: return OPR_EQ; + case '<': return OPR_LT; + case TK_LE: return OPR_LE; + case '>': return OPR_GT; + case TK_GE: return OPR_GE; + case TK_AND: return OPR_AND; + case TK_OR: return OPR_OR; + default: return OPR_NOBINOPR; + } +} + + +static const struct { + lu_byte left; /* left priority for each binary operator */ + lu_byte right; /* right priority */ +} priority[] = { /* ORDER OPR */ + {6, 6}, {6, 6}, {7, 7}, {7, 7}, {7, 7}, /* `+' `-' `/' `%' */ + {10, 9}, {5, 4}, /* power and concat (right associative) */ + {3, 3}, {3, 3}, /* equality and inequality */ + {3, 3}, {3, 3}, {3, 3}, {3, 3}, /* order */ + {2, 2}, {1, 1} /* logical (and/or) */ +}; + +#define UNARY_PRIORITY 8 /* priority for unary operators */ + + +/* +** subexpr -> (simpleexp | unop subexpr) { binop subexpr } +** where `binop' is any binary operator with a priority higher than `limit' +*/ +static BinOpr subexpr (LexState *ls, expdesc *v, unsigned int limit) { + BinOpr op; + UnOpr uop; + enterlevel(ls); + uop = getunopr(ls->t.token); + if (uop != OPR_NOUNOPR) { + luaX_next(ls); + subexpr(ls, v, UNARY_PRIORITY); + luaK_prefix(ls->fs, uop, v); + } + else simpleexp(ls, v); + /* expand while operators have priorities higher than `limit' */ + op = getbinopr(ls->t.token); + while (op != OPR_NOBINOPR && priority[op].left > limit) { + expdesc v2; + BinOpr nextop; + luaX_next(ls); + luaK_infix(ls->fs, op, v); + /* read sub-expression with higher priority */ + nextop = subexpr(ls, &v2, priority[op].right); + luaK_posfix(ls->fs, op, v, &v2); + op = nextop; + } + leavelevel(ls); + return op; /* return first untreated operator */ +} + + +static void expr (LexState *ls, expdesc *v) { + subexpr(ls, v, 0); +} + +/* }==================================================================== */ + + + +/* +** {====================================================================== +** Rules for Statements +** ======================================================================= +*/ + + +static int block_follow (int token) { + switch (token) { + case TK_ELSE: case TK_ELSEIF: case TK_END: + case TK_UNTIL: case TK_EOS: + return 1; + default: return 0; + } +} + + +static void block (LexState *ls) { + /* block -> chunk */ + FuncState *fs = ls->fs; + BlockCnt bl; + enterblock(fs, &bl, 0); + chunk(ls); + lua_assert(bl.breaklist == NO_JUMP); + leaveblock(fs); +} + + +/* +** structure to chain all variables in the left-hand side of an +** assignment +*/ +struct LHS_assign { + struct LHS_assign *prev; + expdesc v; /* variable (global, local, upvalue, or indexed) */ +}; + + +/* +** check whether, in an assignment to a local variable, the local variable +** is needed in a previous assignment (to a table). If so, save original +** local value in a safe place and use this safe copy in the previous +** assignment. +*/ +static void check_conflict (LexState *ls, struct LHS_assign *lh, expdesc *v) { + FuncState *fs = ls->fs; + int extra = fs->freereg; /* eventual position to save local variable */ + int conflict = 0; + for (; lh; lh = lh->prev) { + if (lh->v.k == VINDEXED) { + if (lh->v.u.s.info == v->u.s.info) { /* conflict? */ + conflict = 1; + lh->v.u.s.info = extra; /* previous assignment will use safe copy */ + } + if (lh->v.u.s.aux == v->u.s.info) { /* conflict? */ + conflict = 1; + lh->v.u.s.aux = extra; /* previous assignment will use safe copy */ + } + } + } + if (conflict) { + luaK_codeABC(fs, OP_MOVE, fs->freereg, v->u.s.info, 0); /* make copy */ + luaK_reserveregs(fs, 1); + } +} + + +static void assignment (LexState *ls, struct LHS_assign *lh, int nvars) { + expdesc e; + check_condition(ls, VLOCAL <= lh->v.k && lh->v.k <= VINDEXED, + "syntax error"); + if (testnext(ls, ',')) { /* assignment -> `,' primaryexp assignment */ + struct LHS_assign nv; + nv.prev = lh; + primaryexp(ls, &nv.v); + if (nv.v.k == VLOCAL) + check_conflict(ls, lh, &nv.v); + luaY_checklimit(ls->fs, nvars, LUAI_MAXCCALLS - ls->L->nCcalls, + "variables in assignment"); + assignment(ls, &nv, nvars+1); + } + else { /* assignment -> `=' explist1 */ + int nexps; + checknext(ls, '='); + nexps = explist1(ls, &e); + if (nexps != nvars) { + adjust_assign(ls, nvars, nexps, &e); + if (nexps > nvars) + ls->fs->freereg -= nexps - nvars; /* remove extra values */ + } + else { + luaK_setoneret(ls->fs, &e); /* close last expression */ + luaK_storevar(ls->fs, &lh->v, &e); + return; /* avoid default */ + } + } + init_exp(&e, VNONRELOC, ls->fs->freereg-1); /* default assignment */ + luaK_storevar(ls->fs, &lh->v, &e); +} + + +static int cond (LexState *ls) { + /* cond -> exp */ + expdesc v; + expr(ls, &v); /* read condition */ + if (v.k == VNIL) v.k = VFALSE; /* `falses' are all equal here */ + luaK_goiftrue(ls->fs, &v); + return v.f; +} + + +static void breakstat (LexState *ls) { + FuncState *fs = ls->fs; + BlockCnt *bl = fs->bl; + int upval = 0; + while (bl && !bl->isbreakable) { + upval |= bl->upval; + bl = bl->previous; + } + if (!bl) + luaX_syntaxerror(ls, "no loop to break"); + if (upval) + luaK_codeABC(fs, OP_CLOSE, bl->nactvar, 0, 0); + luaK_concat(fs, &bl->breaklist, luaK_jump(fs)); +} + + +static void whilestat (LexState *ls, int line) { + /* whilestat -> WHILE cond DO block END */ + FuncState *fs = ls->fs; + int whileinit; + int condexit; + BlockCnt bl; + luaX_next(ls); /* skip WHILE */ + whileinit = luaK_getlabel(fs); + condexit = cond(ls); + enterblock(fs, &bl, 1); + checknext(ls, TK_DO); + block(ls); + luaK_patchlist(fs, luaK_jump(fs), whileinit); + check_match(ls, TK_END, TK_WHILE, line); + leaveblock(fs); + luaK_patchtohere(fs, condexit); /* false conditions finish the loop */ +} + + +static void repeatstat (LexState *ls, int line) { + /* repeatstat -> REPEAT block UNTIL cond */ + int condexit; + FuncState *fs = ls->fs; + int repeat_init = luaK_getlabel(fs); + BlockCnt bl1, bl2; + enterblock(fs, &bl1, 1); /* loop block */ + enterblock(fs, &bl2, 0); /* scope block */ + luaX_next(ls); /* skip REPEAT */ + chunk(ls); + check_match(ls, TK_UNTIL, TK_REPEAT, line); + condexit = cond(ls); /* read condition (inside scope block) */ + if (!bl2.upval) { /* no upvalues? */ + leaveblock(fs); /* finish scope */ + luaK_patchlist(ls->fs, condexit, repeat_init); /* close the loop */ + } + else { /* complete semantics when there are upvalues */ + breakstat(ls); /* if condition then break */ + luaK_patchtohere(ls->fs, condexit); /* else... */ + leaveblock(fs); /* finish scope... */ + luaK_patchlist(ls->fs, luaK_jump(fs), repeat_init); /* and repeat */ + } + leaveblock(fs); /* finish loop */ +} + + +static int exp1 (LexState *ls) { + expdesc e; + int k; + expr(ls, &e); + k = e.k; + luaK_exp2nextreg(ls->fs, &e); + return k; +} + + +static void forbody (LexState *ls, int base, int line, int nvars, int isnum) { + /* forbody -> DO block */ + BlockCnt bl; + FuncState *fs = ls->fs; + int prep, endfor; + adjustlocalvars(ls, 3); /* control variables */ + checknext(ls, TK_DO); + prep = isnum ? luaK_codeAsBx(fs, OP_FORPREP, base, NO_JUMP) : luaK_jump(fs); + enterblock(fs, &bl, 0); /* scope for declared variables */ + adjustlocalvars(ls, nvars); + luaK_reserveregs(fs, nvars); + block(ls); + leaveblock(fs); /* end of scope for declared variables */ + luaK_patchtohere(fs, prep); + endfor = (isnum) ? luaK_codeAsBx(fs, OP_FORLOOP, base, NO_JUMP) : + luaK_codeABC(fs, OP_TFORLOOP, base, 0, nvars); + luaK_fixline(fs, line); /* pretend that `OP_FOR' starts the loop */ + luaK_patchlist(fs, (isnum ? endfor : luaK_jump(fs)), prep + 1); +} + + +static void fornum (LexState *ls, TString *varname, int line) { + /* fornum -> NAME = exp1,exp1[,exp1] forbody */ + FuncState *fs = ls->fs; + int base = fs->freereg; + new_localvarliteral(ls, "(for index)", 0); + new_localvarliteral(ls, "(for limit)", 1); + new_localvarliteral(ls, "(for step)", 2); + new_localvar(ls, varname, 3); + checknext(ls, '='); + exp1(ls); /* initial value */ + checknext(ls, ','); + exp1(ls); /* limit */ + if (testnext(ls, ',')) + exp1(ls); /* optional step */ + else { /* default step = 1 */ + luaK_codeABx(fs, OP_LOADK, fs->freereg, luaK_numberK(fs, 1)); + luaK_reserveregs(fs, 1); + } + forbody(ls, base, line, 1, 1); +} + + +static void forlist (LexState *ls, TString *indexname) { + /* forlist -> NAME {,NAME} IN explist1 forbody */ + FuncState *fs = ls->fs; + expdesc e; + int nvars = 0; + int line; + int base = fs->freereg; + /* create control variables */ + new_localvarliteral(ls, "(for generator)", nvars++); + new_localvarliteral(ls, "(for state)", nvars++); + new_localvarliteral(ls, "(for control)", nvars++); + /* create declared variables */ + new_localvar(ls, indexname, nvars++); + while (testnext(ls, ',')) + new_localvar(ls, str_checkname(ls), nvars++); + checknext(ls, TK_IN); + line = ls->linenumber; + adjust_assign(ls, 3, explist1(ls, &e), &e); + luaK_checkstack(fs, 3); /* extra space to call generator */ + forbody(ls, base, line, nvars - 3, 0); +} + + +static void forstat (LexState *ls, int line) { + /* forstat -> FOR (fornum | forlist) END */ + FuncState *fs = ls->fs; + TString *varname; + BlockCnt bl; + enterblock(fs, &bl, 1); /* scope for loop and control variables */ + luaX_next(ls); /* skip `for' */ + varname = str_checkname(ls); /* first variable name */ + switch (ls->t.token) { + case '=': fornum(ls, varname, line); break; + case ',': case TK_IN: forlist(ls, varname); break; + default: luaX_syntaxerror(ls, LUA_QL("=") " or " LUA_QL("in") " expected"); + } + check_match(ls, TK_END, TK_FOR, line); + leaveblock(fs); /* loop scope (`break' jumps to this point) */ +} + + +static int test_then_block (LexState *ls) { + /* test_then_block -> [IF | ELSEIF] cond THEN block */ + int condexit; + luaX_next(ls); /* skip IF or ELSEIF */ + condexit = cond(ls); + checknext(ls, TK_THEN); + block(ls); /* `then' part */ + return condexit; +} + + +static void ifstat (LexState *ls, int line) { + /* ifstat -> IF cond THEN block {ELSEIF cond THEN block} [ELSE block] END */ + FuncState *fs = ls->fs; + int flist; + int escapelist = NO_JUMP; + flist = test_then_block(ls); /* IF cond THEN block */ + while (ls->t.token == TK_ELSEIF) { + luaK_concat(fs, &escapelist, luaK_jump(fs)); + luaK_patchtohere(fs, flist); + flist = test_then_block(ls); /* ELSEIF cond THEN block */ + } + if (ls->t.token == TK_ELSE) { + luaK_concat(fs, &escapelist, luaK_jump(fs)); + luaK_patchtohere(fs, flist); + luaX_next(ls); /* skip ELSE (after patch, for correct line info) */ + block(ls); /* `else' part */ + } + else + luaK_concat(fs, &escapelist, flist); + luaK_patchtohere(fs, escapelist); + check_match(ls, TK_END, TK_IF, line); +} + + +static void localfunc (LexState *ls) { + expdesc v, b; + FuncState *fs = ls->fs; + new_localvar(ls, str_checkname(ls), 0); + init_exp(&v, VLOCAL, fs->freereg); + luaK_reserveregs(fs, 1); + adjustlocalvars(ls, 1); + body(ls, &b, 0, ls->linenumber); + luaK_storevar(fs, &v, &b); + /* debug information will only see the variable after this point! */ + getlocvar(fs, fs->nactvar - 1).startpc = fs->pc; +} + + +static void localstat (LexState *ls) { + /* stat -> LOCAL NAME {`,' NAME} [`=' explist1] */ + int nvars = 0; + int nexps; + expdesc e; + do { + new_localvar(ls, str_checkname(ls), nvars++); + } while (testnext(ls, ',')); + if (testnext(ls, '=')) + nexps = explist1(ls, &e); + else { + e.k = VVOID; + nexps = 0; + } + adjust_assign(ls, nvars, nexps, &e); + adjustlocalvars(ls, nvars); +} + + +static int funcname (LexState *ls, expdesc *v) { + /* funcname -> NAME {field} [`:' NAME] */ + int needself = 0; + singlevar(ls, v); + while (ls->t.token == '.') + field(ls, v); + if (ls->t.token == ':') { + needself = 1; + field(ls, v); + } + return needself; +} + + +static void funcstat (LexState *ls, int line) { + /* funcstat -> FUNCTION funcname body */ + int needself; + expdesc v, b; + luaX_next(ls); /* skip FUNCTION */ + needself = funcname(ls, &v); + body(ls, &b, needself, line); + luaK_storevar(ls->fs, &v, &b); + luaK_fixline(ls->fs, line); /* definition `happens' in the first line */ +} + + +static void exprstat (LexState *ls) { + /* stat -> func | assignment */ + FuncState *fs = ls->fs; + struct LHS_assign v; + primaryexp(ls, &v.v); + if (v.v.k == VCALL) /* stat -> func */ + SETARG_C(getcode(fs, &v.v), 1); /* call statement uses no results */ + else { /* stat -> assignment */ + v.prev = NULL; + assignment(ls, &v, 1); + } +} + + +static void retstat (LexState *ls) { + /* stat -> RETURN explist */ + FuncState *fs = ls->fs; + expdesc e; + int first, nret; /* registers with returned values */ + luaX_next(ls); /* skip RETURN */ + if (block_follow(ls->t.token) || ls->t.token == ';') + first = nret = 0; /* return no values */ + else { + nret = explist1(ls, &e); /* optional return values */ + if (hasmultret(e.k)) { + luaK_setmultret(fs, &e); + if (e.k == VCALL && nret == 1) { /* tail call? */ + SET_OPCODE(getcode(fs,&e), OP_TAILCALL); + lua_assert(GETARG_A(getcode(fs,&e)) == fs->nactvar); + } + first = fs->nactvar; + nret = LUA_MULTRET; /* return all values */ + } + else { + if (nret == 1) /* only one single value? */ + first = luaK_exp2anyreg(fs, &e); + else { + luaK_exp2nextreg(fs, &e); /* values must go to the `stack' */ + first = fs->nactvar; /* return all `active' values */ + lua_assert(nret == fs->freereg - first); + } + } + } + luaK_ret(fs, first, nret); +} + + +static int statement (LexState *ls) { + int line = ls->linenumber; /* may be needed for error messages */ + switch (ls->t.token) { + case TK_IF: { /* stat -> ifstat */ + ifstat(ls, line); + return 0; + } + case TK_WHILE: { /* stat -> whilestat */ + whilestat(ls, line); + return 0; + } + case TK_DO: { /* stat -> DO block END */ + luaX_next(ls); /* skip DO */ + block(ls); + check_match(ls, TK_END, TK_DO, line); + return 0; + } + case TK_FOR: { /* stat -> forstat */ + forstat(ls, line); + return 0; + } + case TK_REPEAT: { /* stat -> repeatstat */ + repeatstat(ls, line); + return 0; + } + case TK_FUNCTION: { + funcstat(ls, line); /* stat -> funcstat */ + return 0; + } + case TK_LOCAL: { /* stat -> localstat */ + luaX_next(ls); /* skip LOCAL */ + if (testnext(ls, TK_FUNCTION)) /* local function? */ + localfunc(ls); + else + localstat(ls); + return 0; + } + case TK_RETURN: { /* stat -> retstat */ + retstat(ls); + return 1; /* must be last statement */ + } + case TK_BREAK: { /* stat -> breakstat */ + luaX_next(ls); /* skip BREAK */ + breakstat(ls); + return 1; /* must be last statement */ + } + default: { + exprstat(ls); + return 0; /* to avoid warnings */ + } + } +} + + +static void chunk (LexState *ls) { + /* chunk -> { stat [`;'] } */ + int islast = 0; + enterlevel(ls); + while (!islast && !block_follow(ls->t.token)) { + islast = statement(ls); + testnext(ls, ';'); + lua_assert(ls->fs->f->maxstacksize >= ls->fs->freereg && + ls->fs->freereg >= ls->fs->nactvar); + ls->fs->freereg = ls->fs->nactvar; /* free registers */ + } + leavelevel(ls); +} + +/* }====================================================================== */ diff --git a/mk/linux/mojosetup/lua/src/lparser.h b/mk/linux/mojosetup/lua/src/lparser.h new file mode 100644 index 00000000..18836afd --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lparser.h @@ -0,0 +1,82 @@ +/* +** $Id: lparser.h,v 1.57.1.1 2007/12/27 13:02:25 roberto Exp $ +** Lua Parser +** See Copyright Notice in lua.h +*/ + +#ifndef lparser_h +#define lparser_h + +#include "llimits.h" +#include "lobject.h" +#include "lzio.h" + + +/* +** Expression descriptor +*/ + +typedef enum { + VVOID, /* no value */ + VNIL, + VTRUE, + VFALSE, + VK, /* info = index of constant in `k' */ + VKNUM, /* nval = numerical value */ + VLOCAL, /* info = local register */ + VUPVAL, /* info = index of upvalue in `upvalues' */ + VGLOBAL, /* info = index of table; aux = index of global name in `k' */ + VINDEXED, /* info = table register; aux = index register (or `k') */ + VJMP, /* info = instruction pc */ + VRELOCABLE, /* info = instruction pc */ + VNONRELOC, /* info = result register */ + VCALL, /* info = instruction pc */ + VVARARG /* info = instruction pc */ +} expkind; + +typedef struct expdesc { + expkind k; + union { + struct { int info, aux; } s; + lua_Number nval; + } u; + int t; /* patch list of `exit when true' */ + int f; /* patch list of `exit when false' */ +} expdesc; + + +typedef struct upvaldesc { + lu_byte k; + lu_byte info; +} upvaldesc; + + +struct BlockCnt; /* defined in lparser.c */ + + +/* state needed to generate code for a given function */ +typedef struct FuncState { + Proto *f; /* current function header */ + Table *h; /* table to find (and reuse) elements in `k' */ + struct FuncState *prev; /* enclosing function */ + struct LexState *ls; /* lexical state */ + struct lua_State *L; /* copy of the Lua state */ + struct BlockCnt *bl; /* chain of current blocks */ + int pc; /* next position to code (equivalent to `ncode') */ + int lasttarget; /* `pc' of last `jump target' */ + int jpc; /* list of pending jumps to `pc' */ + int freereg; /* first free register */ + int nk; /* number of elements in `k' */ + int np; /* number of elements in `p' */ + short nlocvars; /* number of elements in `locvars' */ + lu_byte nactvar; /* number of active local variables */ + upvaldesc upvalues[LUAI_MAXUPVALUES]; /* upvalues */ + unsigned short actvar[LUAI_MAXVARS]; /* declared-variable stack */ +} FuncState; + + +LUAI_FUNC Proto *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, + const char *name); + + +#endif diff --git a/mk/linux/mojosetup/lua/src/lstate.c b/mk/linux/mojosetup/lua/src/lstate.c new file mode 100644 index 00000000..4313b83a --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lstate.c @@ -0,0 +1,214 @@ +/* +** $Id: lstate.c,v 2.36.1.2 2008/01/03 15:20:39 roberto Exp $ +** Global State +** See Copyright Notice in lua.h +*/ + + +#include + +#define lstate_c +#define LUA_CORE + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lgc.h" +#include "llex.h" +#include "lmem.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" + + +#define state_size(x) (sizeof(x) + LUAI_EXTRASPACE) +#define fromstate(l) (cast(lu_byte *, (l)) - LUAI_EXTRASPACE) +#define tostate(l) (cast(lua_State *, cast(lu_byte *, l) + LUAI_EXTRASPACE)) + + +/* +** Main thread combines a thread state and the global state +*/ +typedef struct LG { + lua_State l; + global_State g; +} LG; + + + +static void stack_init (lua_State *L1, lua_State *L) { + /* initialize CallInfo array */ + L1->base_ci = luaM_newvector(L, BASIC_CI_SIZE, CallInfo); + L1->ci = L1->base_ci; + L1->size_ci = BASIC_CI_SIZE; + L1->end_ci = L1->base_ci + L1->size_ci - 1; + /* initialize stack array */ + L1->stack = luaM_newvector(L, BASIC_STACK_SIZE + EXTRA_STACK, TValue); + L1->stacksize = BASIC_STACK_SIZE + EXTRA_STACK; + L1->top = L1->stack; + L1->stack_last = L1->stack+(L1->stacksize - EXTRA_STACK)-1; + /* initialize first ci */ + L1->ci->func = L1->top; + setnilvalue(L1->top++); /* `function' entry for this `ci' */ + L1->base = L1->ci->base = L1->top; + L1->ci->top = L1->top + LUA_MINSTACK; +} + + +static void freestack (lua_State *L, lua_State *L1) { + luaM_freearray(L, L1->base_ci, L1->size_ci, CallInfo); + luaM_freearray(L, L1->stack, L1->stacksize, TValue); +} + + +/* +** open parts that may cause memory-allocation errors +*/ +static void f_luaopen (lua_State *L, void *ud) { + global_State *g = G(L); + UNUSED(ud); + stack_init(L, L); /* init stack */ + sethvalue(L, gt(L), luaH_new(L, 0, 2)); /* table of globals */ + sethvalue(L, registry(L), luaH_new(L, 0, 2)); /* registry */ + luaS_resize(L, MINSTRTABSIZE); /* initial size of string table */ + luaT_init(L); + luaX_init(L); + luaS_fix(luaS_newliteral(L, MEMERRMSG)); + g->GCthreshold = 4*g->totalbytes; +} + + +static void preinit_state (lua_State *L, global_State *g) { + G(L) = g; + L->stack = NULL; + L->stacksize = 0; + L->errorJmp = NULL; + L->hook = NULL; + L->hookmask = 0; + L->basehookcount = 0; + L->allowhook = 1; + resethookcount(L); + L->openupval = NULL; + L->size_ci = 0; + L->nCcalls = L->baseCcalls = 0; + L->status = 0; + L->base_ci = L->ci = NULL; + L->savedpc = NULL; + L->errfunc = 0; + setnilvalue(gt(L)); +} + + +static void close_state (lua_State *L) { + global_State *g = G(L); + luaF_close(L, L->stack); /* close all upvalues for this thread */ + luaC_freeall(L); /* collect all objects */ + lua_assert(g->rootgc == obj2gco(L)); + lua_assert(g->strt.nuse == 0); + luaM_freearray(L, G(L)->strt.hash, G(L)->strt.size, TString *); + luaZ_freebuffer(L, &g->buff); + freestack(L, L); + lua_assert(g->totalbytes == sizeof(LG)); + (*g->frealloc)(g->ud, fromstate(L), state_size(LG), 0); +} + + +lua_State *luaE_newthread (lua_State *L) { + lua_State *L1 = tostate(luaM_malloc(L, state_size(lua_State))); + luaC_link(L, obj2gco(L1), LUA_TTHREAD); + preinit_state(L1, G(L)); + stack_init(L1, L); /* init stack */ + setobj2n(L, gt(L1), gt(L)); /* share table of globals */ + L1->hookmask = L->hookmask; + L1->basehookcount = L->basehookcount; + L1->hook = L->hook; + resethookcount(L1); + lua_assert(iswhite(obj2gco(L1))); + return L1; +} + + +void luaE_freethread (lua_State *L, lua_State *L1) { + luaF_close(L1, L1->stack); /* close all upvalues for this thread */ + lua_assert(L1->openupval == NULL); + luai_userstatefree(L1); + freestack(L, L1); + luaM_freemem(L, fromstate(L1), state_size(lua_State)); +} + + +LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) { + int i; + lua_State *L; + global_State *g; + void *l = (*f)(ud, NULL, 0, state_size(LG)); + if (l == NULL) return NULL; + L = tostate(l); + g = &((LG *)L)->g; + L->next = NULL; + L->tt = LUA_TTHREAD; + g->currentwhite = bit2mask(WHITE0BIT, FIXEDBIT); + L->marked = luaC_white(g); + set2bits(L->marked, FIXEDBIT, SFIXEDBIT); + preinit_state(L, g); + g->frealloc = f; + g->ud = ud; + g->mainthread = L; + g->uvhead.u.l.prev = &g->uvhead; + g->uvhead.u.l.next = &g->uvhead; + g->GCthreshold = 0; /* mark it as unfinished state */ + g->strt.size = 0; + g->strt.nuse = 0; + g->strt.hash = NULL; + setnilvalue(registry(L)); + luaZ_initbuffer(L, &g->buff); + g->panic = NULL; + g->gcstate = GCSpause; + g->rootgc = obj2gco(L); + g->sweepstrgc = 0; + g->sweepgc = &g->rootgc; + g->gray = NULL; + g->grayagain = NULL; + g->weak = NULL; + g->tmudata = NULL; + g->totalbytes = sizeof(LG); + g->gcpause = LUAI_GCPAUSE; + g->gcstepmul = LUAI_GCMUL; + g->gcdept = 0; + for (i=0; imt[i] = NULL; + if (luaD_rawrunprotected(L, f_luaopen, NULL) != 0) { + /* memory allocation error: free partial state */ + close_state(L); + L = NULL; + } + else + luai_userstateopen(L); + return L; +} + + +static void callallgcTM (lua_State *L, void *ud) { + UNUSED(ud); + luaC_callGCTM(L); /* call GC metamethods for all udata */ +} + + +LUA_API void lua_close (lua_State *L) { + L = G(L)->mainthread; /* only the main thread can be closed */ + lua_lock(L); + luaF_close(L, L->stack); /* close all upvalues for this thread */ + luaC_separateudata(L, 1); /* separate udata that have GC metamethods */ + L->errfunc = 0; /* no error function during GC metamethods */ + do { /* repeat until no more errors */ + L->ci = L->base_ci; + L->base = L->top = L->ci->base; + L->nCcalls = L->baseCcalls = 0; + } while (luaD_rawrunprotected(L, callallgcTM, NULL) != 0); + lua_assert(G(L)->tmudata == NULL); + luai_userstateclose(L); + close_state(L); +} + diff --git a/mk/linux/mojosetup/lua/src/lstate.h b/mk/linux/mojosetup/lua/src/lstate.h new file mode 100644 index 00000000..3bc575b6 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lstate.h @@ -0,0 +1,169 @@ +/* +** $Id: lstate.h,v 2.24.1.2 2008/01/03 15:20:39 roberto Exp $ +** Global State +** See Copyright Notice in lua.h +*/ + +#ifndef lstate_h +#define lstate_h + +#include "lua.h" + +#include "lobject.h" +#include "ltm.h" +#include "lzio.h" + + + +struct lua_longjmp; /* defined in ldo.c */ + + +/* table of globals */ +#define gt(L) (&L->l_gt) + +/* registry */ +#define registry(L) (&G(L)->l_registry) + + +/* extra stack space to handle TM calls and some other extras */ +#define EXTRA_STACK 5 + + +#define BASIC_CI_SIZE 8 + +#define BASIC_STACK_SIZE (2*LUA_MINSTACK) + + + +typedef struct stringtable { + GCObject **hash; + lu_int32 nuse; /* number of elements */ + int size; +} stringtable; + + +/* +** informations about a call +*/ +typedef struct CallInfo { + StkId base; /* base for this function */ + StkId func; /* function index in the stack */ + StkId top; /* top for this function */ + const Instruction *savedpc; + int nresults; /* expected number of results from this function */ + int tailcalls; /* number of tail calls lost under this entry */ +} CallInfo; + + + +#define curr_func(L) (clvalue(L->ci->func)) +#define ci_func(ci) (clvalue((ci)->func)) +#define f_isLua(ci) (!ci_func(ci)->c.isC) +#define isLua(ci) (ttisfunction((ci)->func) && f_isLua(ci)) + + +/* +** `global state', shared by all threads of this state +*/ +typedef struct global_State { + stringtable strt; /* hash table for strings */ + lua_Alloc frealloc; /* function to reallocate memory */ + void *ud; /* auxiliary data to `frealloc' */ + lu_byte currentwhite; + lu_byte gcstate; /* state of garbage collector */ + int sweepstrgc; /* position of sweep in `strt' */ + GCObject *rootgc; /* list of all collectable objects */ + GCObject **sweepgc; /* position of sweep in `rootgc' */ + GCObject *gray; /* list of gray objects */ + GCObject *grayagain; /* list of objects to be traversed atomically */ + GCObject *weak; /* list of weak tables (to be cleared) */ + GCObject *tmudata; /* last element of list of userdata to be GC */ + Mbuffer buff; /* temporary buffer for string concatentation */ + lu_mem GCthreshold; + lu_mem totalbytes; /* number of bytes currently allocated */ + lu_mem estimate; /* an estimate of number of bytes actually in use */ + lu_mem gcdept; /* how much GC is `behind schedule' */ + int gcpause; /* size of pause between successive GCs */ + int gcstepmul; /* GC `granularity' */ + lua_CFunction panic; /* to be called in unprotected errors */ + TValue l_registry; + struct lua_State *mainthread; + UpVal uvhead; /* head of double-linked list of all open upvalues */ + struct Table *mt[NUM_TAGS]; /* metatables for basic types */ + TString *tmname[TM_N]; /* array with tag-method names */ +} global_State; + + +/* +** `per thread' state +*/ +struct lua_State { + CommonHeader; + lu_byte status; + StkId top; /* first free slot in the stack */ + StkId base; /* base of current function */ + global_State *l_G; + CallInfo *ci; /* call info for current function */ + const Instruction *savedpc; /* `savedpc' of current function */ + StkId stack_last; /* last free slot in the stack */ + StkId stack; /* stack base */ + CallInfo *end_ci; /* points after end of ci array*/ + CallInfo *base_ci; /* array of CallInfo's */ + int stacksize; + int size_ci; /* size of array `base_ci' */ + unsigned short nCcalls; /* number of nested C calls */ + unsigned short baseCcalls; /* nested C calls when resuming coroutine */ + lu_byte hookmask; + lu_byte allowhook; + int basehookcount; + int hookcount; + lua_Hook hook; + TValue l_gt; /* table of globals */ + TValue env; /* temporary place for environments */ + GCObject *openupval; /* list of open upvalues in this stack */ + GCObject *gclist; + struct lua_longjmp *errorJmp; /* current error recover point */ + ptrdiff_t errfunc; /* current error handling function (stack index) */ +}; + + +#define G(L) (L->l_G) + + +/* +** Union of all collectable objects +*/ +union GCObject { + GCheader gch; + union TString ts; + union Udata u; + union Closure cl; + struct Table h; + struct Proto p; + struct UpVal uv; + struct lua_State th; /* thread */ +}; + + +/* macros to convert a GCObject into a specific value */ +#define rawgco2ts(o) check_exp((o)->gch.tt == LUA_TSTRING, &((o)->ts)) +#define gco2ts(o) (&rawgco2ts(o)->tsv) +#define rawgco2u(o) check_exp((o)->gch.tt == LUA_TUSERDATA, &((o)->u)) +#define gco2u(o) (&rawgco2u(o)->uv) +#define gco2cl(o) check_exp((o)->gch.tt == LUA_TFUNCTION, &((o)->cl)) +#define gco2h(o) check_exp((o)->gch.tt == LUA_TTABLE, &((o)->h)) +#define gco2p(o) check_exp((o)->gch.tt == LUA_TPROTO, &((o)->p)) +#define gco2uv(o) check_exp((o)->gch.tt == LUA_TUPVAL, &((o)->uv)) +#define ngcotouv(o) \ + check_exp((o) == NULL || (o)->gch.tt == LUA_TUPVAL, &((o)->uv)) +#define gco2th(o) check_exp((o)->gch.tt == LUA_TTHREAD, &((o)->th)) + +/* macro to convert any Lua object into a GCObject */ +#define obj2gco(v) (cast(GCObject *, (v))) + + +LUAI_FUNC lua_State *luaE_newthread (lua_State *L); +LUAI_FUNC void luaE_freethread (lua_State *L, lua_State *L1); + +#endif + diff --git a/mk/linux/mojosetup/lua/src/lstring.c b/mk/linux/mojosetup/lua/src/lstring.c new file mode 100644 index 00000000..49113151 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lstring.c @@ -0,0 +1,111 @@ +/* +** $Id: lstring.c,v 2.8.1.1 2007/12/27 13:02:25 roberto Exp $ +** String table (keeps all strings handled by Lua) +** See Copyright Notice in lua.h +*/ + + +#include + +#define lstring_c +#define LUA_CORE + +#include "lua.h" + +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" +#include "lstring.h" + + + +void luaS_resize (lua_State *L, int newsize) { + GCObject **newhash; + stringtable *tb; + int i; + if (G(L)->gcstate == GCSsweepstring) + return; /* cannot resize during GC traverse */ + newhash = luaM_newvector(L, newsize, GCObject *); + tb = &G(L)->strt; + for (i=0; isize; i++) { + GCObject *p = tb->hash[i]; + while (p) { /* for each node in the list */ + GCObject *next = p->gch.next; /* save next */ + unsigned int h = gco2ts(p)->hash; + int h1 = lmod(h, newsize); /* new position */ + lua_assert(cast_int(h%newsize) == lmod(h, newsize)); + p->gch.next = newhash[h1]; /* chain it */ + newhash[h1] = p; + p = next; + } + } + luaM_freearray(L, tb->hash, tb->size, TString *); + tb->size = newsize; + tb->hash = newhash; +} + + +static TString *newlstr (lua_State *L, const char *str, size_t l, + unsigned int h) { + TString *ts; + stringtable *tb; + if (l+1 > (MAX_SIZET - sizeof(TString))/sizeof(char)) + luaM_toobig(L); + ts = cast(TString *, luaM_malloc(L, (l+1)*sizeof(char)+sizeof(TString))); + ts->tsv.len = l; + ts->tsv.hash = h; + ts->tsv.marked = luaC_white(G(L)); + ts->tsv.tt = LUA_TSTRING; + ts->tsv.reserved = 0; + memcpy(ts+1, str, l*sizeof(char)); + ((char *)(ts+1))[l] = '\0'; /* ending 0 */ + tb = &G(L)->strt; + h = lmod(h, tb->size); + ts->tsv.next = tb->hash[h]; /* chain new entry */ + tb->hash[h] = obj2gco(ts); + tb->nuse++; + if (tb->nuse > cast(lu_int32, tb->size) && tb->size <= MAX_INT/2) + luaS_resize(L, tb->size*2); /* too crowded */ + return ts; +} + + +TString *luaS_newlstr (lua_State *L, const char *str, size_t l) { + GCObject *o; + unsigned int h = cast(unsigned int, l); /* seed */ + size_t step = (l>>5)+1; /* if string is too long, don't hash all its chars */ + size_t l1; + for (l1=l; l1>=step; l1-=step) /* compute hash */ + h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1])); + for (o = G(L)->strt.hash[lmod(h, G(L)->strt.size)]; + o != NULL; + o = o->gch.next) { + TString *ts = rawgco2ts(o); + if (ts->tsv.len == l && (memcmp(str, getstr(ts), l) == 0)) { + /* string may be dead */ + if (isdead(G(L), o)) changewhite(o); + return ts; + } + } + return newlstr(L, str, l, h); /* not found */ +} + + +Udata *luaS_newudata (lua_State *L, size_t s, Table *e) { + Udata *u; + if (s > MAX_SIZET - sizeof(Udata)) + luaM_toobig(L); + u = cast(Udata *, luaM_malloc(L, s + sizeof(Udata))); + u->uv.marked = luaC_white(G(L)); /* is not finalized */ + u->uv.tt = LUA_TUSERDATA; + u->uv.len = s; + u->uv.metatable = NULL; + u->uv.env = e; + /* chain it on udata list (after main thread) */ + u->uv.next = G(L)->mainthread->next; + G(L)->mainthread->next = obj2gco(u); + return u; +} + diff --git a/mk/linux/mojosetup/lua/src/lstring.h b/mk/linux/mojosetup/lua/src/lstring.h new file mode 100644 index 00000000..73a2ff8b --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lstring.h @@ -0,0 +1,31 @@ +/* +** $Id: lstring.h,v 1.43.1.1 2007/12/27 13:02:25 roberto Exp $ +** String table (keep all strings handled by Lua) +** See Copyright Notice in lua.h +*/ + +#ifndef lstring_h +#define lstring_h + + +#include "lgc.h" +#include "lobject.h" +#include "lstate.h" + + +#define sizestring(s) (sizeof(union TString)+((s)->len+1)*sizeof(char)) + +#define sizeudata(u) (sizeof(union Udata)+(u)->len) + +#define luaS_new(L, s) (luaS_newlstr(L, s, strlen(s))) +#define luaS_newliteral(L, s) (luaS_newlstr(L, "" s, \ + (sizeof(s)/sizeof(char))-1)) + +#define luaS_fix(s) l_setbit((s)->tsv.marked, FIXEDBIT) + +LUAI_FUNC void luaS_resize (lua_State *L, int newsize); +LUAI_FUNC Udata *luaS_newudata (lua_State *L, size_t s, Table *e); +LUAI_FUNC TString *luaS_newlstr (lua_State *L, const char *str, size_t l); + + +#endif diff --git a/mk/linux/mojosetup/lua/src/lstrlib.c b/mk/linux/mojosetup/lua/src/lstrlib.c new file mode 100644 index 00000000..1b4763d4 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lstrlib.c @@ -0,0 +1,869 @@ +/* +** $Id: lstrlib.c,v 1.132.1.4 2008/07/11 17:27:21 roberto Exp $ +** Standard library for string operations and pattern-matching +** See Copyright Notice in lua.h +*/ + + +#include +#include +#include +#include +#include + +#define lstrlib_c +#define LUA_LIB + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +/* macro to `unsign' a character */ +#define uchar(c) ((unsigned char)(c)) + + + +static int str_len (lua_State *L) { + size_t l; + luaL_checklstring(L, 1, &l); + lua_pushinteger(L, l); + return 1; +} + + +static ptrdiff_t posrelat (ptrdiff_t pos, size_t len) { + /* relative string position: negative means back from end */ + if (pos < 0) pos += (ptrdiff_t)len + 1; + return (pos >= 0) ? pos : 0; +} + + +static int str_sub (lua_State *L) { + size_t l; + const char *s = luaL_checklstring(L, 1, &l); + ptrdiff_t start = posrelat(luaL_checkinteger(L, 2), l); + ptrdiff_t end = posrelat(luaL_optinteger(L, 3, -1), l); + if (start < 1) start = 1; + if (end > (ptrdiff_t)l) end = (ptrdiff_t)l; + if (start <= end) + lua_pushlstring(L, s+start-1, end-start+1); + else lua_pushliteral(L, ""); + return 1; +} + + +static int str_reverse (lua_State *L) { + size_t l; + luaL_Buffer b; + const char *s = luaL_checklstring(L, 1, &l); + luaL_buffinit(L, &b); + while (l--) luaL_addchar(&b, s[l]); + luaL_pushresult(&b); + return 1; +} + + +static int str_lower (lua_State *L) { + size_t l; + size_t i; + luaL_Buffer b; + const char *s = luaL_checklstring(L, 1, &l); + luaL_buffinit(L, &b); + for (i=0; i 0) + luaL_addlstring(&b, s, l); + luaL_pushresult(&b); + return 1; +} + + +static int str_byte (lua_State *L) { + size_t l; + const char *s = luaL_checklstring(L, 1, &l); + ptrdiff_t posi = posrelat(luaL_optinteger(L, 2, 1), l); + ptrdiff_t pose = posrelat(luaL_optinteger(L, 3, posi), l); + int n, i; + if (posi <= 0) posi = 1; + if ((size_t)pose > l) pose = l; + if (posi > pose) return 0; /* empty interval; return no values */ + n = (int)(pose - posi + 1); + if (posi + n <= pose) /* overflow? */ + luaL_error(L, "string slice too long"); + luaL_checkstack(L, n, "string slice too long"); + for (i=0; i= ms->level || ms->capture[l].len == CAP_UNFINISHED) + return luaL_error(ms->L, "invalid capture index"); + return l; +} + + +static int capture_to_close (MatchState *ms) { + int level = ms->level; + for (level--; level>=0; level--) + if (ms->capture[level].len == CAP_UNFINISHED) return level; + return luaL_error(ms->L, "invalid pattern capture"); +} + + +static const char *classend (MatchState *ms, const char *p) { + switch (*p++) { + case L_ESC: { + if (*p == '\0') + luaL_error(ms->L, "malformed pattern (ends with " LUA_QL("%%") ")"); + return p+1; + } + case '[': { + if (*p == '^') p++; + do { /* look for a `]' */ + if (*p == '\0') + luaL_error(ms->L, "malformed pattern (missing " LUA_QL("]") ")"); + if (*(p++) == L_ESC && *p != '\0') + p++; /* skip escapes (e.g. `%]') */ + } while (*p != ']'); + return p+1; + } + default: { + return p; + } + } +} + + +static int match_class (int c, int cl) { + int res; + switch (tolower(cl)) { + case 'a' : res = isalpha(c); break; + case 'c' : res = iscntrl(c); break; + case 'd' : res = isdigit(c); break; + case 'l' : res = islower(c); break; + case 'p' : res = ispunct(c); break; + case 's' : res = isspace(c); break; + case 'u' : res = isupper(c); break; + case 'w' : res = isalnum(c); break; + case 'x' : res = isxdigit(c); break; + case 'z' : res = (c == 0); break; + default: return (cl == c); + } + return (islower(cl) ? res : !res); +} + + +static int matchbracketclass (int c, const char *p, const char *ec) { + int sig = 1; + if (*(p+1) == '^') { + sig = 0; + p++; /* skip the `^' */ + } + while (++p < ec) { + if (*p == L_ESC) { + p++; + if (match_class(c, uchar(*p))) + return sig; + } + else if ((*(p+1) == '-') && (p+2 < ec)) { + p+=2; + if (uchar(*(p-2)) <= c && c <= uchar(*p)) + return sig; + } + else if (uchar(*p) == c) return sig; + } + return !sig; +} + + +static int singlematch (int c, const char *p, const char *ep) { + switch (*p) { + case '.': return 1; /* matches any char */ + case L_ESC: return match_class(c, uchar(*(p+1))); + case '[': return matchbracketclass(c, p, ep-1); + default: return (uchar(*p) == c); + } +} + + +static const char *match (MatchState *ms, const char *s, const char *p); + + +static const char *matchbalance (MatchState *ms, const char *s, + const char *p) { + if (*p == 0 || *(p+1) == 0) + luaL_error(ms->L, "unbalanced pattern"); + if (*s != *p) return NULL; + else { + int b = *p; + int e = *(p+1); + int cont = 1; + while (++s < ms->src_end) { + if (*s == e) { + if (--cont == 0) return s+1; + } + else if (*s == b) cont++; + } + } + return NULL; /* string ends out of balance */ +} + + +static const char *max_expand (MatchState *ms, const char *s, + const char *p, const char *ep) { + ptrdiff_t i = 0; /* counts maximum expand for item */ + while ((s+i)src_end && singlematch(uchar(*(s+i)), p, ep)) + i++; + /* keeps trying to match with the maximum repetitions */ + while (i>=0) { + const char *res = match(ms, (s+i), ep+1); + if (res) return res; + i--; /* else didn't match; reduce 1 repetition to try again */ + } + return NULL; +} + + +static const char *min_expand (MatchState *ms, const char *s, + const char *p, const char *ep) { + for (;;) { + const char *res = match(ms, s, ep+1); + if (res != NULL) + return res; + else if (ssrc_end && singlematch(uchar(*s), p, ep)) + s++; /* try with one more repetition */ + else return NULL; + } +} + + +static const char *start_capture (MatchState *ms, const char *s, + const char *p, int what) { + const char *res; + int level = ms->level; + if (level >= LUA_MAXCAPTURES) luaL_error(ms->L, "too many captures"); + ms->capture[level].init = s; + ms->capture[level].len = what; + ms->level = level+1; + if ((res=match(ms, s, p)) == NULL) /* match failed? */ + ms->level--; /* undo capture */ + return res; +} + + +static const char *end_capture (MatchState *ms, const char *s, + const char *p) { + int l = capture_to_close(ms); + const char *res; + ms->capture[l].len = s - ms->capture[l].init; /* close capture */ + if ((res = match(ms, s, p)) == NULL) /* match failed? */ + ms->capture[l].len = CAP_UNFINISHED; /* undo capture */ + return res; +} + + +static const char *match_capture (MatchState *ms, const char *s, int l) { + size_t len; + l = check_capture(ms, l); + len = ms->capture[l].len; + if ((size_t)(ms->src_end-s) >= len && + memcmp(ms->capture[l].init, s, len) == 0) + return s+len; + else return NULL; +} + + +static const char *match (MatchState *ms, const char *s, const char *p) { + init: /* using goto's to optimize tail recursion */ + switch (*p) { + case '(': { /* start capture */ + if (*(p+1) == ')') /* position capture? */ + return start_capture(ms, s, p+2, CAP_POSITION); + else + return start_capture(ms, s, p+1, CAP_UNFINISHED); + } + case ')': { /* end capture */ + return end_capture(ms, s, p+1); + } + case L_ESC: { + switch (*(p+1)) { + case 'b': { /* balanced string? */ + s = matchbalance(ms, s, p+2); + if (s == NULL) return NULL; + p+=4; goto init; /* else return match(ms, s, p+4); */ + } + case 'f': { /* frontier? */ + const char *ep; char previous; + p += 2; + if (*p != '[') + luaL_error(ms->L, "missing " LUA_QL("[") " after " + LUA_QL("%%f") " in pattern"); + ep = classend(ms, p); /* points to what is next */ + previous = (s == ms->src_init) ? '\0' : *(s-1); + if (matchbracketclass(uchar(previous), p, ep-1) || + !matchbracketclass(uchar(*s), p, ep-1)) return NULL; + p=ep; goto init; /* else return match(ms, s, ep); */ + } + default: { + if (isdigit(uchar(*(p+1)))) { /* capture results (%0-%9)? */ + s = match_capture(ms, s, uchar(*(p+1))); + if (s == NULL) return NULL; + p+=2; goto init; /* else return match(ms, s, p+2) */ + } + goto dflt; /* case default */ + } + } + } + case '\0': { /* end of pattern */ + return s; /* match succeeded */ + } + case '$': { + if (*(p+1) == '\0') /* is the `$' the last char in pattern? */ + return (s == ms->src_end) ? s : NULL; /* check end of string */ + else goto dflt; + } + default: dflt: { /* it is a pattern item */ + const char *ep = classend(ms, p); /* points to what is next */ + int m = ssrc_end && singlematch(uchar(*s), p, ep); + switch (*ep) { + case '?': { /* optional */ + const char *res; + if (m && ((res=match(ms, s+1, ep+1)) != NULL)) + return res; + p=ep+1; goto init; /* else return match(ms, s, ep+1); */ + } + case '*': { /* 0 or more repetitions */ + return max_expand(ms, s, p, ep); + } + case '+': { /* 1 or more repetitions */ + return (m ? max_expand(ms, s+1, p, ep) : NULL); + } + case '-': { /* 0 or more repetitions (minimum) */ + return min_expand(ms, s, p, ep); + } + default: { + if (!m) return NULL; + s++; p=ep; goto init; /* else return match(ms, s+1, ep); */ + } + } + } + } +} + + + +static const char *lmemfind (const char *s1, size_t l1, + const char *s2, size_t l2) { + if (l2 == 0) return s1; /* empty strings are everywhere */ + else if (l2 > l1) return NULL; /* avoids a negative `l1' */ + else { + const char *init; /* to search for a `*s2' inside `s1' */ + l2--; /* 1st char will be checked by `memchr' */ + l1 = l1-l2; /* `s2' cannot be found after that */ + while (l1 > 0 && (init = (const char *)memchr(s1, *s2, l1)) != NULL) { + init++; /* 1st char is already checked */ + if (memcmp(init, s2+1, l2) == 0) + return init-1; + else { /* correct `l1' and `s1' to try again */ + l1 -= init-s1; + s1 = init; + } + } + return NULL; /* not found */ + } +} + + +static void push_onecapture (MatchState *ms, int i, const char *s, + const char *e) { + if (i >= ms->level) { + if (i == 0) /* ms->level == 0, too */ + lua_pushlstring(ms->L, s, e - s); /* add whole match */ + else + luaL_error(ms->L, "invalid capture index"); + } + else { + ptrdiff_t l = ms->capture[i].len; + if (l == CAP_UNFINISHED) luaL_error(ms->L, "unfinished capture"); + if (l == CAP_POSITION) + lua_pushinteger(ms->L, ms->capture[i].init - ms->src_init + 1); + else + lua_pushlstring(ms->L, ms->capture[i].init, l); + } +} + + +static int push_captures (MatchState *ms, const char *s, const char *e) { + int i; + int nlevels = (ms->level == 0 && s) ? 1 : ms->level; + luaL_checkstack(ms->L, nlevels, "too many captures"); + for (i = 0; i < nlevels; i++) + push_onecapture(ms, i, s, e); + return nlevels; /* number of strings pushed */ +} + + +static int str_find_aux (lua_State *L, int find) { + size_t l1, l2; + const char *s = luaL_checklstring(L, 1, &l1); + const char *p = luaL_checklstring(L, 2, &l2); + ptrdiff_t init = posrelat(luaL_optinteger(L, 3, 1), l1) - 1; + if (init < 0) init = 0; + else if ((size_t)(init) > l1) init = (ptrdiff_t)l1; + if (find && (lua_toboolean(L, 4) || /* explicit request? */ + strpbrk(p, SPECIALS) == NULL)) { /* or no special characters? */ + /* do a plain search */ + const char *s2 = lmemfind(s+init, l1-init, p, l2); + if (s2) { + lua_pushinteger(L, s2-s+1); + lua_pushinteger(L, s2-s+l2); + return 2; + } + } + else { + MatchState ms; + int anchor = (*p == '^') ? (p++, 1) : 0; + const char *s1=s+init; + ms.L = L; + ms.src_init = s; + ms.src_end = s+l1; + do { + const char *res; + ms.level = 0; + if ((res=match(&ms, s1, p)) != NULL) { + if (find) { + lua_pushinteger(L, s1-s+1); /* start */ + lua_pushinteger(L, res-s); /* end */ + return push_captures(&ms, NULL, 0) + 2; + } + else + return push_captures(&ms, s1, res); + } + } while (s1++ < ms.src_end && !anchor); + } + lua_pushnil(L); /* not found */ + return 1; +} + + +static int str_find (lua_State *L) { + return str_find_aux(L, 1); +} + + +static int str_match (lua_State *L) { + return str_find_aux(L, 0); +} + + +static int gmatch_aux (lua_State *L) { + MatchState ms; + size_t ls; + const char *s = lua_tolstring(L, lua_upvalueindex(1), &ls); + const char *p = lua_tostring(L, lua_upvalueindex(2)); + const char *src; + ms.L = L; + ms.src_init = s; + ms.src_end = s+ls; + for (src = s + (size_t)lua_tointeger(L, lua_upvalueindex(3)); + src <= ms.src_end; + src++) { + const char *e; + ms.level = 0; + if ((e = match(&ms, src, p)) != NULL) { + lua_Integer newstart = e-s; + if (e == src) newstart++; /* empty match? go at least one position */ + lua_pushinteger(L, newstart); + lua_replace(L, lua_upvalueindex(3)); + return push_captures(&ms, src, e); + } + } + return 0; /* not found */ +} + + +static int gmatch (lua_State *L) { + luaL_checkstring(L, 1); + luaL_checkstring(L, 2); + lua_settop(L, 2); + lua_pushinteger(L, 0); + lua_pushcclosure(L, gmatch_aux, 3); + return 1; +} + + +static int gfind_nodef (lua_State *L) { + return luaL_error(L, LUA_QL("string.gfind") " was renamed to " + LUA_QL("string.gmatch")); +} + + +static void add_s (MatchState *ms, luaL_Buffer *b, const char *s, + const char *e) { + size_t l, i; + const char *news = lua_tolstring(ms->L, 3, &l); + for (i = 0; i < l; i++) { + if (news[i] != L_ESC) + luaL_addchar(b, news[i]); + else { + i++; /* skip ESC */ + if (!isdigit(uchar(news[i]))) + luaL_addchar(b, news[i]); + else if (news[i] == '0') + luaL_addlstring(b, s, e - s); + else { + push_onecapture(ms, news[i] - '1', s, e); + luaL_addvalue(b); /* add capture to accumulated result */ + } + } + } +} + + +static void add_value (MatchState *ms, luaL_Buffer *b, const char *s, + const char *e) { + lua_State *L = ms->L; + switch (lua_type(L, 3)) { + case LUA_TNUMBER: + case LUA_TSTRING: { + add_s(ms, b, s, e); + return; + } + case LUA_TFUNCTION: { + int n; + lua_pushvalue(L, 3); + n = push_captures(ms, s, e); + lua_call(L, n, 1); + break; + } + case LUA_TTABLE: { + push_onecapture(ms, 0, s, e); + lua_gettable(L, 3); + break; + } + } + if (!lua_toboolean(L, -1)) { /* nil or false? */ + lua_pop(L, 1); + lua_pushlstring(L, s, e - s); /* keep original text */ + } + else if (!lua_isstring(L, -1)) + luaL_error(L, "invalid replacement value (a %s)", luaL_typename(L, -1)); + luaL_addvalue(b); /* add result to accumulator */ +} + + +static int str_gsub (lua_State *L) { + size_t srcl; + const char *src = luaL_checklstring(L, 1, &srcl); + const char *p = luaL_checkstring(L, 2); + int tr = lua_type(L, 3); + int max_s = luaL_optint(L, 4, srcl+1); + int anchor = (*p == '^') ? (p++, 1) : 0; + int n = 0; + MatchState ms; + luaL_Buffer b; + luaL_argcheck(L, tr == LUA_TNUMBER || tr == LUA_TSTRING || + tr == LUA_TFUNCTION || tr == LUA_TTABLE, 3, + "string/function/table expected"); + luaL_buffinit(L, &b); + ms.L = L; + ms.src_init = src; + ms.src_end = src+srcl; + while (n < max_s) { + const char *e; + ms.level = 0; + e = match(&ms, src, p); + if (e) { + n++; + add_value(&ms, &b, src, e); + } + if (e && e>src) /* non empty match? */ + src = e; /* skip it */ + else if (src < ms.src_end) + luaL_addchar(&b, *src++); + else break; + if (anchor) break; + } + luaL_addlstring(&b, src, ms.src_end-src); + luaL_pushresult(&b); + lua_pushinteger(L, n); /* number of substitutions */ + return 2; +} + +/* }====================================================== */ + + +/* maximum size of each formatted item (> len(format('%99.99f', -1e308))) */ +#define MAX_ITEM 512 +/* valid flags in a format specification */ +#define FLAGS "-+ #0" +/* +** maximum size of each format specification (such as '%-099.99d') +** (+10 accounts for %99.99x plus margin of error) +*/ +#define MAX_FORMAT (sizeof(FLAGS) + sizeof(LUA_INTFRMLEN) + 10) + + +static void addquoted (lua_State *L, luaL_Buffer *b, int arg) { + size_t l; + const char *s = luaL_checklstring(L, arg, &l); + luaL_addchar(b, '"'); + while (l--) { + switch (*s) { + case '"': case '\\': case '\n': { + luaL_addchar(b, '\\'); + luaL_addchar(b, *s); + break; + } + case '\r': { + luaL_addlstring(b, "\\r", 2); + break; + } + case '\0': { + luaL_addlstring(b, "\\000", 4); + break; + } + default: { + luaL_addchar(b, *s); + break; + } + } + s++; + } + luaL_addchar(b, '"'); +} + +static const char *scanformat (lua_State *L, const char *strfrmt, char *form) { + const char *p = strfrmt; + while (*p != '\0' && strchr(FLAGS, *p) != NULL) p++; /* skip flags */ + if ((size_t)(p - strfrmt) >= sizeof(FLAGS)) + luaL_error(L, "invalid format (repeated flags)"); + if (isdigit(uchar(*p))) p++; /* skip width */ + if (isdigit(uchar(*p))) p++; /* (2 digits at most) */ + if (*p == '.') { + p++; + if (isdigit(uchar(*p))) p++; /* skip precision */ + if (isdigit(uchar(*p))) p++; /* (2 digits at most) */ + } + if (isdigit(uchar(*p))) + luaL_error(L, "invalid format (width or precision too long)"); + *(form++) = '%'; + strncpy(form, strfrmt, p - strfrmt + 1); + form += p - strfrmt + 1; + *form = '\0'; + return p; +} + + +static void addintlen (char *form) { + size_t l = strlen(form); + char spec = form[l - 1]; + strcpy(form + l - 1, LUA_INTFRMLEN); + form[l + sizeof(LUA_INTFRMLEN) - 2] = spec; + form[l + sizeof(LUA_INTFRMLEN) - 1] = '\0'; +} + + +static int str_format (lua_State *L) { + int arg = 1; + size_t sfl; + const char *strfrmt = luaL_checklstring(L, arg, &sfl); + const char *strfrmt_end = strfrmt+sfl; + luaL_Buffer b; + luaL_buffinit(L, &b); + while (strfrmt < strfrmt_end) { + if (*strfrmt != L_ESC) + luaL_addchar(&b, *strfrmt++); + else if (*++strfrmt == L_ESC) + luaL_addchar(&b, *strfrmt++); /* %% */ + else { /* format item */ + char form[MAX_FORMAT]; /* to store the format (`%...') */ + char buff[MAX_ITEM]; /* to store the formatted item */ + arg++; + strfrmt = scanformat(L, strfrmt, form); + switch (*strfrmt++) { + case 'c': { + sprintf(buff, form, (int)luaL_checknumber(L, arg)); + break; + } + case 'd': case 'i': { + addintlen(form); + sprintf(buff, form, (LUA_INTFRM_T)luaL_checknumber(L, arg)); + break; + } + case 'o': case 'u': case 'x': case 'X': { + addintlen(form); + sprintf(buff, form, (unsigned LUA_INTFRM_T)luaL_checknumber(L, arg)); + break; + } + case 'e': case 'E': case 'f': + case 'g': case 'G': { + sprintf(buff, form, (double)luaL_checknumber(L, arg)); + break; + } + case 'q': { + addquoted(L, &b, arg); + continue; /* skip the 'addsize' at the end */ + } + case 's': { + size_t l; + const char *s = luaL_checklstring(L, arg, &l); + if (!strchr(form, '.') && l >= 100) { + /* no precision and string is too long to be formatted; + keep original string */ + lua_pushvalue(L, arg); + luaL_addvalue(&b); + continue; /* skip the `addsize' at the end */ + } + else { + sprintf(buff, form, s); + break; + } + } + default: { /* also treat cases `pnLlh' */ + return luaL_error(L, "invalid option " LUA_QL("%%%c") " to " + LUA_QL("format"), *(strfrmt - 1)); + } + } + luaL_addlstring(&b, buff, strlen(buff)); + } + } + luaL_pushresult(&b); + return 1; +} + + +static const luaL_Reg strlib[] = { + {"byte", str_byte}, + {"char", str_char}, + {"dump", str_dump}, + {"find", str_find}, + {"format", str_format}, + {"gfind", gfind_nodef}, + {"gmatch", gmatch}, + {"gsub", str_gsub}, + {"len", str_len}, + {"lower", str_lower}, + {"match", str_match}, + {"rep", str_rep}, + {"reverse", str_reverse}, + {"sub", str_sub}, + {"upper", str_upper}, + {NULL, NULL} +}; + + +static void createmetatable (lua_State *L) { + lua_createtable(L, 0, 1); /* create metatable for strings */ + lua_pushliteral(L, ""); /* dummy string */ + lua_pushvalue(L, -2); + lua_setmetatable(L, -2); /* set string metatable */ + lua_pop(L, 1); /* pop dummy string */ + lua_pushvalue(L, -2); /* string library... */ + lua_setfield(L, -2, "__index"); /* ...is the __index metamethod */ + lua_pop(L, 1); /* pop metatable */ +} + + +/* +** Open string library +*/ +LUALIB_API int luaopen_string (lua_State *L) { + luaL_register(L, LUA_STRLIBNAME, strlib); +#if defined(LUA_COMPAT_GFIND) + lua_getfield(L, -1, "gmatch"); + lua_setfield(L, -2, "gfind"); +#endif + createmetatable(L); + return 1; +} + diff --git a/mk/linux/mojosetup/lua/src/ltable.c b/mk/linux/mojosetup/lua/src/ltable.c new file mode 100644 index 00000000..ec84f4fa --- /dev/null +++ b/mk/linux/mojosetup/lua/src/ltable.c @@ -0,0 +1,588 @@ +/* +** $Id: ltable.c,v 2.32.1.2 2007/12/28 15:32:23 roberto Exp $ +** Lua tables (hash) +** See Copyright Notice in lua.h +*/ + + +/* +** Implementation of tables (aka arrays, objects, or hash tables). +** Tables keep its elements in two parts: an array part and a hash part. +** Non-negative integer keys are all candidates to be kept in the array +** part. The actual size of the array is the largest `n' such that at +** least half the slots between 0 and n are in use. +** Hash uses a mix of chained scatter table with Brent's variation. +** A main invariant of these tables is that, if an element is not +** in its main position (i.e. the `original' position that its hash gives +** to it), then the colliding element is in its own main position. +** Hence even when the load factor reaches 100%, performance remains good. +*/ + +#include +#include + +#define ltable_c +#define LUA_CORE + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lgc.h" +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" +#include "ltable.h" + + +/* +** max size of array part is 2^MAXBITS +*/ +#if LUAI_BITSINT > 26 +#define MAXBITS 26 +#else +#define MAXBITS (LUAI_BITSINT-2) +#endif + +#define MAXASIZE (1 << MAXBITS) + + +#define hashpow2(t,n) (gnode(t, lmod((n), sizenode(t)))) + +#define hashstr(t,str) hashpow2(t, (str)->tsv.hash) +#define hashboolean(t,p) hashpow2(t, p) + + +/* +** for some types, it is better to avoid modulus by power of 2, as +** they tend to have many 2 factors. +*/ +#define hashmod(t,n) (gnode(t, ((n) % ((sizenode(t)-1)|1)))) + + +#define hashpointer(t,p) hashmod(t, IntPoint(p)) + + +/* +** number of ints inside a lua_Number +*/ +#define numints cast_int(sizeof(lua_Number)/sizeof(int)) + + + +#define dummynode (&dummynode_) + +static const Node dummynode_ = { + {{NULL}, LUA_TNIL}, /* value */ + {{{NULL}, LUA_TNIL, NULL}} /* key */ +}; + + +/* +** hash for lua_Numbers +*/ +static Node *hashnum (const Table *t, lua_Number n) { + unsigned int a[numints]; + int i; + if (luai_numeq(n, 0)) /* avoid problems with -0 */ + return gnode(t, 0); + memcpy(a, &n, sizeof(a)); + for (i = 1; i < numints; i++) a[0] += a[i]; + return hashmod(t, a[0]); +} + + + +/* +** returns the `main' position of an element in a table (that is, the index +** of its hash value) +*/ +static Node *mainposition (const Table *t, const TValue *key) { + switch (ttype(key)) { + case LUA_TNUMBER: + return hashnum(t, nvalue(key)); + case LUA_TSTRING: + return hashstr(t, rawtsvalue(key)); + case LUA_TBOOLEAN: + return hashboolean(t, bvalue(key)); + case LUA_TLIGHTUSERDATA: + return hashpointer(t, pvalue(key)); + default: + return hashpointer(t, gcvalue(key)); + } +} + + +/* +** returns the index for `key' if `key' is an appropriate key to live in +** the array part of the table, -1 otherwise. +*/ +static int arrayindex (const TValue *key) { + if (ttisnumber(key)) { + lua_Number n = nvalue(key); + int k; + lua_number2int(k, n); + if (luai_numeq(cast_num(k), n)) + return k; + } + return -1; /* `key' did not match some condition */ +} + + +/* +** returns the index of a `key' for table traversals. First goes all +** elements in the array part, then elements in the hash part. The +** beginning of a traversal is signalled by -1. +*/ +static int findindex (lua_State *L, Table *t, StkId key) { + int i; + if (ttisnil(key)) return -1; /* first iteration */ + i = arrayindex(key); + if (0 < i && i <= t->sizearray) /* is `key' inside array part? */ + return i-1; /* yes; that's the index (corrected to C) */ + else { + Node *n = mainposition(t, key); + do { /* check whether `key' is somewhere in the chain */ + /* key may be dead already, but it is ok to use it in `next' */ + if (luaO_rawequalObj(key2tval(n), key) || + (ttype(gkey(n)) == LUA_TDEADKEY && iscollectable(key) && + gcvalue(gkey(n)) == gcvalue(key))) { + i = cast_int(n - gnode(t, 0)); /* key index in hash table */ + /* hash elements are numbered after array ones */ + return i + t->sizearray; + } + else n = gnext(n); + } while (n); + luaG_runerror(L, "invalid key to " LUA_QL("next")); /* key not found */ + return 0; /* to avoid warnings */ + } +} + + +int luaH_next (lua_State *L, Table *t, StkId key) { + int i = findindex(L, t, key); /* find original element */ + for (i++; i < t->sizearray; i++) { /* try first array part */ + if (!ttisnil(&t->array[i])) { /* a non-nil value? */ + setnvalue(key, cast_num(i+1)); + setobj2s(L, key+1, &t->array[i]); + return 1; + } + } + for (i -= t->sizearray; i < sizenode(t); i++) { /* then hash part */ + if (!ttisnil(gval(gnode(t, i)))) { /* a non-nil value? */ + setobj2s(L, key, key2tval(gnode(t, i))); + setobj2s(L, key+1, gval(gnode(t, i))); + return 1; + } + } + return 0; /* no more elements */ +} + + +/* +** {============================================================= +** Rehash +** ============================================================== +*/ + + +static int computesizes (int nums[], int *narray) { + int i; + int twotoi; /* 2^i */ + int a = 0; /* number of elements smaller than 2^i */ + int na = 0; /* number of elements to go to array part */ + int n = 0; /* optimal size for array part */ + for (i = 0, twotoi = 1; twotoi/2 < *narray; i++, twotoi *= 2) { + if (nums[i] > 0) { + a += nums[i]; + if (a > twotoi/2) { /* more than half elements present? */ + n = twotoi; /* optimal size (till now) */ + na = a; /* all elements smaller than n will go to array part */ + } + } + if (a == *narray) break; /* all elements already counted */ + } + *narray = n; + lua_assert(*narray/2 <= na && na <= *narray); + return na; +} + + +static int countint (const TValue *key, int *nums) { + int k = arrayindex(key); + if (0 < k && k <= MAXASIZE) { /* is `key' an appropriate array index? */ + nums[ceillog2(k)]++; /* count as such */ + return 1; + } + else + return 0; +} + + +static int numusearray (const Table *t, int *nums) { + int lg; + int ttlg; /* 2^lg */ + int ause = 0; /* summation of `nums' */ + int i = 1; /* count to traverse all array keys */ + for (lg=0, ttlg=1; lg<=MAXBITS; lg++, ttlg*=2) { /* for each slice */ + int lc = 0; /* counter */ + int lim = ttlg; + if (lim > t->sizearray) { + lim = t->sizearray; /* adjust upper limit */ + if (i > lim) + break; /* no more elements to count */ + } + /* count elements in range (2^(lg-1), 2^lg] */ + for (; i <= lim; i++) { + if (!ttisnil(&t->array[i-1])) + lc++; + } + nums[lg] += lc; + ause += lc; + } + return ause; +} + + +static int numusehash (const Table *t, int *nums, int *pnasize) { + int totaluse = 0; /* total number of elements */ + int ause = 0; /* summation of `nums' */ + int i = sizenode(t); + while (i--) { + Node *n = &t->node[i]; + if (!ttisnil(gval(n))) { + ause += countint(key2tval(n), nums); + totaluse++; + } + } + *pnasize += ause; + return totaluse; +} + + +static void setarrayvector (lua_State *L, Table *t, int size) { + int i; + luaM_reallocvector(L, t->array, t->sizearray, size, TValue); + for (i=t->sizearray; iarray[i]); + t->sizearray = size; +} + + +static void setnodevector (lua_State *L, Table *t, int size) { + int lsize; + if (size == 0) { /* no elements to hash part? */ + t->node = cast(Node *, dummynode); /* use common `dummynode' */ + lsize = 0; + } + else { + int i; + lsize = ceillog2(size); + if (lsize > MAXBITS) + luaG_runerror(L, "table overflow"); + size = twoto(lsize); + t->node = luaM_newvector(L, size, Node); + for (i=0; ilsizenode = cast_byte(lsize); + t->lastfree = gnode(t, size); /* all positions are free */ +} + + +static void resize (lua_State *L, Table *t, int nasize, int nhsize) { + int i; + int oldasize = t->sizearray; + int oldhsize = t->lsizenode; + Node *nold = t->node; /* save old hash ... */ + if (nasize > oldasize) /* array part must grow? */ + setarrayvector(L, t, nasize); + /* create new hash part with appropriate size */ + setnodevector(L, t, nhsize); + if (nasize < oldasize) { /* array part must shrink? */ + t->sizearray = nasize; + /* re-insert elements from vanishing slice */ + for (i=nasize; iarray[i])) + setobjt2t(L, luaH_setnum(L, t, i+1), &t->array[i]); + } + /* shrink array */ + luaM_reallocvector(L, t->array, oldasize, nasize, TValue); + } + /* re-insert elements from hash part */ + for (i = twoto(oldhsize) - 1; i >= 0; i--) { + Node *old = nold+i; + if (!ttisnil(gval(old))) + setobjt2t(L, luaH_set(L, t, key2tval(old)), gval(old)); + } + if (nold != dummynode) + luaM_freearray(L, nold, twoto(oldhsize), Node); /* free old array */ +} + + +void luaH_resizearray (lua_State *L, Table *t, int nasize) { + int nsize = (t->node == dummynode) ? 0 : sizenode(t); + resize(L, t, nasize, nsize); +} + + +static void rehash (lua_State *L, Table *t, const TValue *ek) { + int nasize, na; + int nums[MAXBITS+1]; /* nums[i] = number of keys between 2^(i-1) and 2^i */ + int i; + int totaluse; + for (i=0; i<=MAXBITS; i++) nums[i] = 0; /* reset counts */ + nasize = numusearray(t, nums); /* count keys in array part */ + totaluse = nasize; /* all those keys are integer keys */ + totaluse += numusehash(t, nums, &nasize); /* count keys in hash part */ + /* count extra key */ + nasize += countint(ek, nums); + totaluse++; + /* compute new size for array part */ + na = computesizes(nums, &nasize); + /* resize the table to new computed sizes */ + resize(L, t, nasize, totaluse - na); +} + + + +/* +** }============================================================= +*/ + + +Table *luaH_new (lua_State *L, int narray, int nhash) { + Table *t = luaM_new(L, Table); + luaC_link(L, obj2gco(t), LUA_TTABLE); + t->metatable = NULL; + t->flags = cast_byte(~0); + /* temporary values (kept only if some malloc fails) */ + t->array = NULL; + t->sizearray = 0; + t->lsizenode = 0; + t->node = cast(Node *, dummynode); + setarrayvector(L, t, narray); + setnodevector(L, t, nhash); + return t; +} + + +void luaH_free (lua_State *L, Table *t) { + if (t->node != dummynode) + luaM_freearray(L, t->node, sizenode(t), Node); + luaM_freearray(L, t->array, t->sizearray, TValue); + luaM_free(L, t); +} + + +static Node *getfreepos (Table *t) { + while (t->lastfree-- > t->node) { + if (ttisnil(gkey(t->lastfree))) + return t->lastfree; + } + return NULL; /* could not find a free place */ +} + + + +/* +** inserts a new key into a hash table; first, check whether key's main +** position is free. If not, check whether colliding node is in its main +** position or not: if it is not, move colliding node to an empty place and +** put new key in its main position; otherwise (colliding node is in its main +** position), new key goes to an empty position. +*/ +static TValue *newkey (lua_State *L, Table *t, const TValue *key) { + Node *mp = mainposition(t, key); + if (!ttisnil(gval(mp)) || mp == dummynode) { + Node *othern; + Node *n = getfreepos(t); /* get a free place */ + if (n == NULL) { /* cannot find a free place? */ + rehash(L, t, key); /* grow table */ + return luaH_set(L, t, key); /* re-insert key into grown table */ + } + lua_assert(n != dummynode); + othern = mainposition(t, key2tval(mp)); + if (othern != mp) { /* is colliding node out of its main position? */ + /* yes; move colliding node into free position */ + while (gnext(othern) != mp) othern = gnext(othern); /* find previous */ + gnext(othern) = n; /* redo the chain with `n' in place of `mp' */ + *n = *mp; /* copy colliding node into free pos. (mp->next also goes) */ + gnext(mp) = NULL; /* now `mp' is free */ + setnilvalue(gval(mp)); + } + else { /* colliding node is in its own main position */ + /* new node will go into free position */ + gnext(n) = gnext(mp); /* chain new position */ + gnext(mp) = n; + mp = n; + } + } + gkey(mp)->value = key->value; gkey(mp)->tt = key->tt; + luaC_barriert(L, t, key); + lua_assert(ttisnil(gval(mp))); + return gval(mp); +} + + +/* +** search function for integers +*/ +const TValue *luaH_getnum (Table *t, int key) { + /* (1 <= key && key <= t->sizearray) */ + if (cast(unsigned int, key-1) < cast(unsigned int, t->sizearray)) + return &t->array[key-1]; + else { + lua_Number nk = cast_num(key); + Node *n = hashnum(t, nk); + do { /* check whether `key' is somewhere in the chain */ + if (ttisnumber(gkey(n)) && luai_numeq(nvalue(gkey(n)), nk)) + return gval(n); /* that's it */ + else n = gnext(n); + } while (n); + return luaO_nilobject; + } +} + + +/* +** search function for strings +*/ +const TValue *luaH_getstr (Table *t, TString *key) { + Node *n = hashstr(t, key); + do { /* check whether `key' is somewhere in the chain */ + if (ttisstring(gkey(n)) && rawtsvalue(gkey(n)) == key) + return gval(n); /* that's it */ + else n = gnext(n); + } while (n); + return luaO_nilobject; +} + + +/* +** main search function +*/ +const TValue *luaH_get (Table *t, const TValue *key) { + switch (ttype(key)) { + case LUA_TNIL: return luaO_nilobject; + case LUA_TSTRING: return luaH_getstr(t, rawtsvalue(key)); + case LUA_TNUMBER: { + int k; + lua_Number n = nvalue(key); + lua_number2int(k, n); + if (luai_numeq(cast_num(k), nvalue(key))) /* index is int? */ + return luaH_getnum(t, k); /* use specialized version */ + /* else go through */ + } + default: { + Node *n = mainposition(t, key); + do { /* check whether `key' is somewhere in the chain */ + if (luaO_rawequalObj(key2tval(n), key)) + return gval(n); /* that's it */ + else n = gnext(n); + } while (n); + return luaO_nilobject; + } + } +} + + +TValue *luaH_set (lua_State *L, Table *t, const TValue *key) { + const TValue *p = luaH_get(t, key); + t->flags = 0; + if (p != luaO_nilobject) + return cast(TValue *, p); + else { + if (ttisnil(key)) luaG_runerror(L, "table index is nil"); + else if (ttisnumber(key) && luai_numisnan(nvalue(key))) + luaG_runerror(L, "table index is NaN"); + return newkey(L, t, key); + } +} + + +TValue *luaH_setnum (lua_State *L, Table *t, int key) { + const TValue *p = luaH_getnum(t, key); + if (p != luaO_nilobject) + return cast(TValue *, p); + else { + TValue k; + setnvalue(&k, cast_num(key)); + return newkey(L, t, &k); + } +} + + +TValue *luaH_setstr (lua_State *L, Table *t, TString *key) { + const TValue *p = luaH_getstr(t, key); + if (p != luaO_nilobject) + return cast(TValue *, p); + else { + TValue k; + setsvalue(L, &k, key); + return newkey(L, t, &k); + } +} + + +static int unbound_search (Table *t, unsigned int j) { + unsigned int i = j; /* i is zero or a present index */ + j++; + /* find `i' and `j' such that i is present and j is not */ + while (!ttisnil(luaH_getnum(t, j))) { + i = j; + j *= 2; + if (j > cast(unsigned int, MAX_INT)) { /* overflow? */ + /* table was built with bad purposes: resort to linear search */ + i = 1; + while (!ttisnil(luaH_getnum(t, i))) i++; + return i - 1; + } + } + /* now do a binary search between them */ + while (j - i > 1) { + unsigned int m = (i+j)/2; + if (ttisnil(luaH_getnum(t, m))) j = m; + else i = m; + } + return i; +} + + +/* +** Try to find a boundary in table `t'. A `boundary' is an integer index +** such that t[i] is non-nil and t[i+1] is nil (and 0 if t[1] is nil). +*/ +int luaH_getn (Table *t) { + unsigned int j = t->sizearray; + if (j > 0 && ttisnil(&t->array[j - 1])) { + /* there is a boundary in the array part: (binary) search for it */ + unsigned int i = 0; + while (j - i > 1) { + unsigned int m = (i+j)/2; + if (ttisnil(&t->array[m - 1])) j = m; + else i = m; + } + return i; + } + /* else must find a boundary in hash part */ + else if (t->node == dummynode) /* hash part is empty? */ + return j; /* that is easy... */ + else return unbound_search(t, j); +} + + + +#if defined(LUA_DEBUG) + +Node *luaH_mainposition (const Table *t, const TValue *key) { + return mainposition(t, key); +} + +int luaH_isdummy (Node *n) { return n == dummynode; } + +#endif diff --git a/mk/linux/mojosetup/lua/src/ltable.h b/mk/linux/mojosetup/lua/src/ltable.h new file mode 100644 index 00000000..f5b9d5ea --- /dev/null +++ b/mk/linux/mojosetup/lua/src/ltable.h @@ -0,0 +1,40 @@ +/* +** $Id: ltable.h,v 2.10.1.1 2007/12/27 13:02:25 roberto Exp $ +** Lua tables (hash) +** See Copyright Notice in lua.h +*/ + +#ifndef ltable_h +#define ltable_h + +#include "lobject.h" + + +#define gnode(t,i) (&(t)->node[i]) +#define gkey(n) (&(n)->i_key.nk) +#define gval(n) (&(n)->i_val) +#define gnext(n) ((n)->i_key.nk.next) + +#define key2tval(n) (&(n)->i_key.tvk) + + +LUAI_FUNC const TValue *luaH_getnum (Table *t, int key); +LUAI_FUNC TValue *luaH_setnum (lua_State *L, Table *t, int key); +LUAI_FUNC const TValue *luaH_getstr (Table *t, TString *key); +LUAI_FUNC TValue *luaH_setstr (lua_State *L, Table *t, TString *key); +LUAI_FUNC const TValue *luaH_get (Table *t, const TValue *key); +LUAI_FUNC TValue *luaH_set (lua_State *L, Table *t, const TValue *key); +LUAI_FUNC Table *luaH_new (lua_State *L, int narray, int lnhash); +LUAI_FUNC void luaH_resizearray (lua_State *L, Table *t, int nasize); +LUAI_FUNC void luaH_free (lua_State *L, Table *t); +LUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key); +LUAI_FUNC int luaH_getn (Table *t); + + +#if defined(LUA_DEBUG) +LUAI_FUNC Node *luaH_mainposition (const Table *t, const TValue *key); +LUAI_FUNC int luaH_isdummy (Node *n); +#endif + + +#endif diff --git a/mk/linux/mojosetup/lua/src/ltablib.c b/mk/linux/mojosetup/lua/src/ltablib.c new file mode 100644 index 00000000..b6d9cb4a --- /dev/null +++ b/mk/linux/mojosetup/lua/src/ltablib.c @@ -0,0 +1,287 @@ +/* +** $Id: ltablib.c,v 1.38.1.3 2008/02/14 16:46:58 roberto Exp $ +** Library for Table Manipulation +** See Copyright Notice in lua.h +*/ + + +#include + +#define ltablib_c +#define LUA_LIB + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +#define aux_getn(L,n) (luaL_checktype(L, n, LUA_TTABLE), luaL_getn(L, n)) + + +static int foreachi (lua_State *L) { + int i; + int n = aux_getn(L, 1); + luaL_checktype(L, 2, LUA_TFUNCTION); + for (i=1; i <= n; i++) { + lua_pushvalue(L, 2); /* function */ + lua_pushinteger(L, i); /* 1st argument */ + lua_rawgeti(L, 1, i); /* 2nd argument */ + lua_call(L, 2, 1); + if (!lua_isnil(L, -1)) + return 1; + lua_pop(L, 1); /* remove nil result */ + } + return 0; +} + + +static int foreach (lua_State *L) { + luaL_checktype(L, 1, LUA_TTABLE); + luaL_checktype(L, 2, LUA_TFUNCTION); + lua_pushnil(L); /* first key */ + while (lua_next(L, 1)) { + lua_pushvalue(L, 2); /* function */ + lua_pushvalue(L, -3); /* key */ + lua_pushvalue(L, -3); /* value */ + lua_call(L, 2, 1); + if (!lua_isnil(L, -1)) + return 1; + lua_pop(L, 2); /* remove value and result */ + } + return 0; +} + + +static int maxn (lua_State *L) { + lua_Number max = 0; + luaL_checktype(L, 1, LUA_TTABLE); + lua_pushnil(L); /* first key */ + while (lua_next(L, 1)) { + lua_pop(L, 1); /* remove value */ + if (lua_type(L, -1) == LUA_TNUMBER) { + lua_Number v = lua_tonumber(L, -1); + if (v > max) max = v; + } + } + lua_pushnumber(L, max); + return 1; +} + + +static int getn (lua_State *L) { + lua_pushinteger(L, aux_getn(L, 1)); + return 1; +} + + +static int setn (lua_State *L) { + luaL_checktype(L, 1, LUA_TTABLE); +#ifndef luaL_setn + luaL_setn(L, 1, luaL_checkint(L, 2)); +#else + luaL_error(L, LUA_QL("setn") " is obsolete"); +#endif + lua_pushvalue(L, 1); + return 1; +} + + +static int tinsert (lua_State *L) { + int e = aux_getn(L, 1) + 1; /* first empty element */ + int pos; /* where to insert new element */ + switch (lua_gettop(L)) { + case 2: { /* called with only 2 arguments */ + pos = e; /* insert new element at the end */ + break; + } + case 3: { + int i; + pos = luaL_checkint(L, 2); /* 2nd argument is the position */ + if (pos > e) e = pos; /* `grow' array if necessary */ + for (i = e; i > pos; i--) { /* move up elements */ + lua_rawgeti(L, 1, i-1); + lua_rawseti(L, 1, i); /* t[i] = t[i-1] */ + } + break; + } + default: { + return luaL_error(L, "wrong number of arguments to " LUA_QL("insert")); + } + } + luaL_setn(L, 1, e); /* new size */ + lua_rawseti(L, 1, pos); /* t[pos] = v */ + return 0; +} + + +static int tremove (lua_State *L) { + int e = aux_getn(L, 1); + int pos = luaL_optint(L, 2, e); + if (!(1 <= pos && pos <= e)) /* position is outside bounds? */ + return 0; /* nothing to remove */ + luaL_setn(L, 1, e - 1); /* t.n = n-1 */ + lua_rawgeti(L, 1, pos); /* result = t[pos] */ + for ( ;pos= P */ + while (lua_rawgeti(L, 1, ++i), sort_comp(L, -1, -2)) { + if (i>u) luaL_error(L, "invalid order function for sorting"); + lua_pop(L, 1); /* remove a[i] */ + } + /* repeat --j until a[j] <= P */ + while (lua_rawgeti(L, 1, --j), sort_comp(L, -3, -1)) { + if (j + +#define ltm_c +#define LUA_CORE + +#include "lua.h" + +#include "lobject.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" + + + +const char *const luaT_typenames[] = { + "nil", "boolean", "userdata", "number", + "string", "table", "function", "userdata", "thread", + "proto", "upval" +}; + + +void luaT_init (lua_State *L) { + static const char *const luaT_eventname[] = { /* ORDER TM */ + "__index", "__newindex", + "__gc", "__mode", "__eq", + "__add", "__sub", "__mul", "__div", "__mod", + "__pow", "__unm", "__len", "__lt", "__le", + "__concat", "__call" + }; + int i; + for (i=0; itmname[i] = luaS_new(L, luaT_eventname[i]); + luaS_fix(G(L)->tmname[i]); /* never collect these names */ + } +} + + +/* +** function to be used with macro "fasttm": optimized for absence of +** tag methods +*/ +const TValue *luaT_gettm (Table *events, TMS event, TString *ename) { + const TValue *tm = luaH_getstr(events, ename); + lua_assert(event <= TM_EQ); + if (ttisnil(tm)) { /* no tag method? */ + events->flags |= cast_byte(1u<metatable; + break; + case LUA_TUSERDATA: + mt = uvalue(o)->metatable; + break; + default: + mt = G(L)->mt[ttype(o)]; + } + return (mt ? luaH_getstr(mt, G(L)->tmname[event]) : luaO_nilobject); +} + diff --git a/mk/linux/mojosetup/lua/src/ltm.h b/mk/linux/mojosetup/lua/src/ltm.h new file mode 100644 index 00000000..64343b78 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/ltm.h @@ -0,0 +1,54 @@ +/* +** $Id: ltm.h,v 2.6.1.1 2007/12/27 13:02:25 roberto Exp $ +** Tag methods +** See Copyright Notice in lua.h +*/ + +#ifndef ltm_h +#define ltm_h + + +#include "lobject.h" + + +/* +* WARNING: if you change the order of this enumeration, +* grep "ORDER TM" +*/ +typedef enum { + TM_INDEX, + TM_NEWINDEX, + TM_GC, + TM_MODE, + TM_EQ, /* last tag method with `fast' access */ + TM_ADD, + TM_SUB, + TM_MUL, + TM_DIV, + TM_MOD, + TM_POW, + TM_UNM, + TM_LEN, + TM_LT, + TM_LE, + TM_CONCAT, + TM_CALL, + TM_N /* number of elements in the enum */ +} TMS; + + + +#define gfasttm(g,et,e) ((et) == NULL ? NULL : \ + ((et)->flags & (1u<<(e))) ? NULL : luaT_gettm(et, e, (g)->tmname[e])) + +#define fasttm(l,et,e) gfasttm(G(l), et, e) + +LUAI_DATA const char *const luaT_typenames[]; + + +LUAI_FUNC const TValue *luaT_gettm (Table *events, TMS event, TString *ename); +LUAI_FUNC const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o, + TMS event); +LUAI_FUNC void luaT_init (lua_State *L); + +#endif diff --git a/mk/linux/mojosetup/lua/src/lua.c b/mk/linux/mojosetup/lua/src/lua.c new file mode 100644 index 00000000..3a466093 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lua.c @@ -0,0 +1,392 @@ +/* +** $Id: lua.c,v 1.160.1.2 2007/12/28 15:32:23 roberto Exp $ +** Lua stand-alone interpreter +** See Copyright Notice in lua.h +*/ + + +#include +#include +#include +#include + +#define lua_c + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + + +static lua_State *globalL = NULL; + +static const char *progname = LUA_PROGNAME; + + + +static void lstop (lua_State *L, lua_Debug *ar) { + (void)ar; /* unused arg. */ + lua_sethook(L, NULL, 0, 0); + luaL_error(L, "interrupted!"); +} + + +static void laction (int i) { + signal(i, SIG_DFL); /* if another SIGINT happens before lstop, + terminate process (default action) */ + lua_sethook(globalL, lstop, LUA_MASKCALL | LUA_MASKRET | LUA_MASKCOUNT, 1); +} + + +static void print_usage (void) { + fprintf(stderr, + "usage: %s [options] [script [args]].\n" + "Available options are:\n" + " -e stat execute string " LUA_QL("stat") "\n" + " -l name require library " LUA_QL("name") "\n" + " -i enter interactive mode after executing " LUA_QL("script") "\n" + " -v show version information\n" + " -- stop handling options\n" + " - execute stdin and stop handling options\n" + , + progname); + fflush(stderr); +} + + +static void l_message (const char *pname, const char *msg) { + if (pname) fprintf(stderr, "%s: ", pname); + fprintf(stderr, "%s\n", msg); + fflush(stderr); +} + + +static int report (lua_State *L, int status) { + if (status && !lua_isnil(L, -1)) { + const char *msg = lua_tostring(L, -1); + if (msg == NULL) msg = "(error object is not a string)"; + l_message(progname, msg); + lua_pop(L, 1); + } + return status; +} + + +static int traceback (lua_State *L) { + if (!lua_isstring(L, 1)) /* 'message' not a string? */ + return 1; /* keep it intact */ + lua_getfield(L, LUA_GLOBALSINDEX, "debug"); + if (!lua_istable(L, -1)) { + lua_pop(L, 1); + return 1; + } + lua_getfield(L, -1, "traceback"); + if (!lua_isfunction(L, -1)) { + lua_pop(L, 2); + return 1; + } + lua_pushvalue(L, 1); /* pass error message */ + lua_pushinteger(L, 2); /* skip this function and traceback */ + lua_call(L, 2, 1); /* call debug.traceback */ + return 1; +} + + +static int docall (lua_State *L, int narg, int clear) { + int status; + int base = lua_gettop(L) - narg; /* function index */ + lua_pushcfunction(L, traceback); /* push traceback function */ + lua_insert(L, base); /* put it under chunk and args */ + signal(SIGINT, laction); + status = lua_pcall(L, narg, (clear ? 0 : LUA_MULTRET), base); + signal(SIGINT, SIG_DFL); + lua_remove(L, base); /* remove traceback function */ + /* force a complete garbage collection in case of errors */ + if (status != 0) lua_gc(L, LUA_GCCOLLECT, 0); + return status; +} + + +static void print_version (void) { + l_message(NULL, LUA_RELEASE " " LUA_COPYRIGHT); +} + + +static int getargs (lua_State *L, char **argv, int n) { + int narg; + int i; + int argc = 0; + while (argv[argc]) argc++; /* count total number of arguments */ + narg = argc - (n + 1); /* number of arguments to the script */ + luaL_checkstack(L, narg + 3, "too many arguments to script"); + for (i=n+1; i < argc; i++) + lua_pushstring(L, argv[i]); + lua_createtable(L, narg, n + 1); + for (i=0; i < argc; i++) { + lua_pushstring(L, argv[i]); + lua_rawseti(L, -2, i - n); + } + return narg; +} + + +static int dofile (lua_State *L, const char *name) { + int status = luaL_loadfile(L, name) || docall(L, 0, 1); + return report(L, status); +} + + +static int dostring (lua_State *L, const char *s, const char *name) { + int status = luaL_loadbuffer(L, s, strlen(s), name) || docall(L, 0, 1); + return report(L, status); +} + + +static int dolibrary (lua_State *L, const char *name) { + lua_getglobal(L, "require"); + lua_pushstring(L, name); + return report(L, docall(L, 1, 1)); +} + + +static const char *get_prompt (lua_State *L, int firstline) { + const char *p; + lua_getfield(L, LUA_GLOBALSINDEX, firstline ? "_PROMPT" : "_PROMPT2"); + p = lua_tostring(L, -1); + if (p == NULL) p = (firstline ? LUA_PROMPT : LUA_PROMPT2); + lua_pop(L, 1); /* remove global */ + return p; +} + + +static int incomplete (lua_State *L, int status) { + if (status == LUA_ERRSYNTAX) { + size_t lmsg; + const char *msg = lua_tolstring(L, -1, &lmsg); + const char *tp = msg + lmsg - (sizeof(LUA_QL("")) - 1); + if (strstr(msg, LUA_QL("")) == tp) { + lua_pop(L, 1); + return 1; + } + } + return 0; /* else... */ +} + + +static int pushline (lua_State *L, int firstline) { + char buffer[LUA_MAXINPUT]; + char *b = buffer; + size_t l; + const char *prmt = get_prompt(L, firstline); + if (lua_readline(L, b, prmt) == 0) + return 0; /* no input */ + l = strlen(b); + if (l > 0 && b[l-1] == '\n') /* line ends with newline? */ + b[l-1] = '\0'; /* remove it */ + if (firstline && b[0] == '=') /* first line starts with `=' ? */ + lua_pushfstring(L, "return %s", b+1); /* change it to `return' */ + else + lua_pushstring(L, b); + lua_freeline(L, b); + return 1; +} + + +static int loadline (lua_State *L) { + int status; + lua_settop(L, 0); + if (!pushline(L, 1)) + return -1; /* no input */ + for (;;) { /* repeat until gets a complete line */ + status = luaL_loadbuffer(L, lua_tostring(L, 1), lua_strlen(L, 1), "=stdin"); + if (!incomplete(L, status)) break; /* cannot try to add lines? */ + if (!pushline(L, 0)) /* no more input? */ + return -1; + lua_pushliteral(L, "\n"); /* add a new line... */ + lua_insert(L, -2); /* ...between the two lines */ + lua_concat(L, 3); /* join them */ + } + lua_saveline(L, 1); + lua_remove(L, 1); /* remove line */ + return status; +} + + +static void dotty (lua_State *L) { + int status; + const char *oldprogname = progname; + progname = NULL; + while ((status = loadline(L)) != -1) { + if (status == 0) status = docall(L, 0, 0); + report(L, status); + if (status == 0 && lua_gettop(L) > 0) { /* any result to print? */ + lua_getglobal(L, "print"); + lua_insert(L, 1); + if (lua_pcall(L, lua_gettop(L)-1, 0, 0) != 0) + l_message(progname, lua_pushfstring(L, + "error calling " LUA_QL("print") " (%s)", + lua_tostring(L, -1))); + } + } + lua_settop(L, 0); /* clear stack */ + fputs("\n", stdout); + fflush(stdout); + progname = oldprogname; +} + + +static int handle_script (lua_State *L, char **argv, int n) { + int status; + const char *fname; + int narg = getargs(L, argv, n); /* collect arguments */ + lua_setglobal(L, "arg"); + fname = argv[n]; + if (strcmp(fname, "-") == 0 && strcmp(argv[n-1], "--") != 0) + fname = NULL; /* stdin */ + status = luaL_loadfile(L, fname); + lua_insert(L, -(narg+1)); + if (status == 0) + status = docall(L, narg, 0); + else + lua_pop(L, narg); + return report(L, status); +} + + +/* check that argument has no extra characters at the end */ +#define notail(x) {if ((x)[2] != '\0') return -1;} + + +static int collectargs (char **argv, int *pi, int *pv, int *pe) { + int i; + for (i = 1; argv[i] != NULL; i++) { + if (argv[i][0] != '-') /* not an option? */ + return i; + switch (argv[i][1]) { /* option */ + case '-': + notail(argv[i]); + return (argv[i+1] != NULL ? i+1 : 0); + case '\0': + return i; + case 'i': + notail(argv[i]); + *pi = 1; /* go through */ + case 'v': + notail(argv[i]); + *pv = 1; + break; + case 'e': + *pe = 1; /* go through */ + case 'l': + if (argv[i][2] == '\0') { + i++; + if (argv[i] == NULL) return -1; + } + break; + default: return -1; /* invalid option */ + } + } + return 0; +} + + +static int runargs (lua_State *L, char **argv, int n) { + int i; + for (i = 1; i < n; i++) { + if (argv[i] == NULL) continue; + lua_assert(argv[i][0] == '-'); + switch (argv[i][1]) { /* option */ + case 'e': { + const char *chunk = argv[i] + 2; + if (*chunk == '\0') chunk = argv[++i]; + lua_assert(chunk != NULL); + if (dostring(L, chunk, "=(command line)") != 0) + return 1; + break; + } + case 'l': { + const char *filename = argv[i] + 2; + if (*filename == '\0') filename = argv[++i]; + lua_assert(filename != NULL); + if (dolibrary(L, filename)) + return 1; /* stop if file fails */ + break; + } + default: break; + } + } + return 0; +} + + +static int handle_luainit (lua_State *L) { + const char *init = getenv(LUA_INIT); + if (init == NULL) return 0; /* status OK */ + else if (init[0] == '@') + return dofile(L, init+1); + else + return dostring(L, init, "=" LUA_INIT); +} + + +struct Smain { + int argc; + char **argv; + int status; +}; + + +static int pmain (lua_State *L) { + struct Smain *s = (struct Smain *)lua_touserdata(L, 1); + char **argv = s->argv; + int script; + int has_i = 0, has_v = 0, has_e = 0; + globalL = L; + if (argv[0] && argv[0][0]) progname = argv[0]; + lua_gc(L, LUA_GCSTOP, 0); /* stop collector during initialization */ + luaL_openlibs(L); /* open libraries */ + lua_gc(L, LUA_GCRESTART, 0); + s->status = handle_luainit(L); + if (s->status != 0) return 0; + script = collectargs(argv, &has_i, &has_v, &has_e); + if (script < 0) { /* invalid args? */ + print_usage(); + s->status = 1; + return 0; + } + if (has_v) print_version(); + s->status = runargs(L, argv, (script > 0) ? script : s->argc); + if (s->status != 0) return 0; + if (script) + s->status = handle_script(L, argv, script); + if (s->status != 0) return 0; + if (has_i) + dotty(L); + else if (script == 0 && !has_e && !has_v) { + if (lua_stdin_is_tty()) { + print_version(); + dotty(L); + } + else dofile(L, NULL); /* executes stdin as a file */ + } + return 0; +} + + +int main (int argc, char **argv) { + int status; + struct Smain s; + lua_State *L = lua_open(); /* create state */ + if (L == NULL) { + l_message(argv[0], "cannot create state: not enough memory"); + return EXIT_FAILURE; + } + s.argc = argc; + s.argv = argv; + status = lua_cpcall(L, &pmain, &s); + report(L, status); + lua_close(L); + return (status || s.status) ? EXIT_FAILURE : EXIT_SUCCESS; +} + diff --git a/mk/linux/mojosetup/lua/src/lua.h b/mk/linux/mojosetup/lua/src/lua.h new file mode 100644 index 00000000..e4bdfd3b --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lua.h @@ -0,0 +1,388 @@ +/* +** $Id: lua.h,v 1.218.1.5 2008/08/06 13:30:12 roberto Exp $ +** Lua - An Extensible Extension Language +** Lua.org, PUC-Rio, Brazil (http://www.lua.org) +** See Copyright Notice at the end of this file +*/ + + +#ifndef lua_h +#define lua_h + +#include +#include + + +#include "luaconf.h" + + +#define LUA_VERSION "Lua 5.1" +#define LUA_RELEASE "Lua 5.1.4" +#define LUA_VERSION_NUM 501 +#define LUA_COPYRIGHT "Copyright (C) 1994-2008 Lua.org, PUC-Rio" +#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo & W. Celes" + + +/* mark for precompiled code (`Lua') */ +#define LUA_SIGNATURE "\033Lua" + +/* option for multiple returns in `lua_pcall' and `lua_call' */ +#define LUA_MULTRET (-1) + + +/* +** pseudo-indices +*/ +#define LUA_REGISTRYINDEX (-10000) +#define LUA_ENVIRONINDEX (-10001) +#define LUA_GLOBALSINDEX (-10002) +#define lua_upvalueindex(i) (LUA_GLOBALSINDEX-(i)) + + +/* thread status; 0 is OK */ +#define LUA_YIELD 1 +#define LUA_ERRRUN 2 +#define LUA_ERRSYNTAX 3 +#define LUA_ERRMEM 4 +#define LUA_ERRERR 5 + + +typedef struct lua_State lua_State; + +typedef int (*lua_CFunction) (lua_State *L); + + +/* +** functions that read/write blocks when loading/dumping Lua chunks +*/ +typedef const char * (*lua_Reader) (lua_State *L, void *ud, size_t *sz); + +typedef int (*lua_Writer) (lua_State *L, const void* p, size_t sz, void* ud); + + +/* +** prototype for memory-allocation functions +*/ +typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize); + + +/* +** basic types +*/ +#define LUA_TNONE (-1) + +#define LUA_TNIL 0 +#define LUA_TBOOLEAN 1 +#define LUA_TLIGHTUSERDATA 2 +#define LUA_TNUMBER 3 +#define LUA_TSTRING 4 +#define LUA_TTABLE 5 +#define LUA_TFUNCTION 6 +#define LUA_TUSERDATA 7 +#define LUA_TTHREAD 8 + + + +/* minimum Lua stack available to a C function */ +#define LUA_MINSTACK 20 + + +/* +** generic extra include file +*/ +#if defined(LUA_USER_H) +#include LUA_USER_H +#endif + + +/* type of numbers in Lua */ +typedef LUA_NUMBER lua_Number; + + +/* type for integer functions */ +typedef LUA_INTEGER lua_Integer; + + + +/* +** state manipulation +*/ +LUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud); +LUA_API void (lua_close) (lua_State *L); +LUA_API lua_State *(lua_newthread) (lua_State *L); + +LUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf); + + +/* +** basic stack manipulation +*/ +LUA_API int (lua_gettop) (lua_State *L); +LUA_API void (lua_settop) (lua_State *L, int idx); +LUA_API void (lua_pushvalue) (lua_State *L, int idx); +LUA_API void (lua_remove) (lua_State *L, int idx); +LUA_API void (lua_insert) (lua_State *L, int idx); +LUA_API void (lua_replace) (lua_State *L, int idx); +LUA_API int (lua_checkstack) (lua_State *L, int sz); + +LUA_API void (lua_xmove) (lua_State *from, lua_State *to, int n); + + +/* +** access functions (stack -> C) +*/ + +LUA_API int (lua_isnumber) (lua_State *L, int idx); +LUA_API int (lua_isstring) (lua_State *L, int idx); +LUA_API int (lua_iscfunction) (lua_State *L, int idx); +LUA_API int (lua_isuserdata) (lua_State *L, int idx); +LUA_API int (lua_type) (lua_State *L, int idx); +LUA_API const char *(lua_typename) (lua_State *L, int tp); + +LUA_API int (lua_equal) (lua_State *L, int idx1, int idx2); +LUA_API int (lua_rawequal) (lua_State *L, int idx1, int idx2); +LUA_API int (lua_lessthan) (lua_State *L, int idx1, int idx2); + +LUA_API lua_Number (lua_tonumber) (lua_State *L, int idx); +LUA_API lua_Integer (lua_tointeger) (lua_State *L, int idx); +LUA_API int (lua_toboolean) (lua_State *L, int idx); +LUA_API const char *(lua_tolstring) (lua_State *L, int idx, size_t *len); +LUA_API size_t (lua_objlen) (lua_State *L, int idx); +LUA_API lua_CFunction (lua_tocfunction) (lua_State *L, int idx); +LUA_API void *(lua_touserdata) (lua_State *L, int idx); +LUA_API lua_State *(lua_tothread) (lua_State *L, int idx); +LUA_API const void *(lua_topointer) (lua_State *L, int idx); + + +/* +** push functions (C -> stack) +*/ +LUA_API void (lua_pushnil) (lua_State *L); +LUA_API void (lua_pushnumber) (lua_State *L, lua_Number n); +LUA_API void (lua_pushinteger) (lua_State *L, lua_Integer n); +LUA_API void (lua_pushlstring) (lua_State *L, const char *s, size_t l); +LUA_API void (lua_pushstring) (lua_State *L, const char *s); +LUA_API const char *(lua_pushvfstring) (lua_State *L, const char *fmt, + va_list argp); +LUA_API const char *(lua_pushfstring) (lua_State *L, const char *fmt, ...); +LUA_API void (lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n); +LUA_API void (lua_pushboolean) (lua_State *L, int b); +LUA_API void (lua_pushlightuserdata) (lua_State *L, void *p); +LUA_API int (lua_pushthread) (lua_State *L); + + +/* +** get functions (Lua -> stack) +*/ +LUA_API void (lua_gettable) (lua_State *L, int idx); +LUA_API void (lua_getfield) (lua_State *L, int idx, const char *k); +LUA_API void (lua_rawget) (lua_State *L, int idx); +LUA_API void (lua_rawgeti) (lua_State *L, int idx, int n); +LUA_API void (lua_createtable) (lua_State *L, int narr, int nrec); +LUA_API void *(lua_newuserdata) (lua_State *L, size_t sz); +LUA_API int (lua_getmetatable) (lua_State *L, int objindex); +LUA_API void (lua_getfenv) (lua_State *L, int idx); + + +/* +** set functions (stack -> Lua) +*/ +LUA_API void (lua_settable) (lua_State *L, int idx); +LUA_API void (lua_setfield) (lua_State *L, int idx, const char *k); +LUA_API void (lua_rawset) (lua_State *L, int idx); +LUA_API void (lua_rawseti) (lua_State *L, int idx, int n); +LUA_API int (lua_setmetatable) (lua_State *L, int objindex); +LUA_API int (lua_setfenv) (lua_State *L, int idx); + + +/* +** `load' and `call' functions (load and run Lua code) +*/ +LUA_API void (lua_call) (lua_State *L, int nargs, int nresults); +LUA_API int (lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc); +LUA_API int (lua_cpcall) (lua_State *L, lua_CFunction func, void *ud); +LUA_API int (lua_load) (lua_State *L, lua_Reader reader, void *dt, + const char *chunkname); + +LUA_API int (lua_dump) (lua_State *L, lua_Writer writer, void *data); + + +/* +** coroutine functions +*/ +LUA_API int (lua_yield) (lua_State *L, int nresults); +LUA_API int (lua_resume) (lua_State *L, int narg); +LUA_API int (lua_status) (lua_State *L); + +/* +** garbage-collection function and options +*/ + +#define LUA_GCSTOP 0 +#define LUA_GCRESTART 1 +#define LUA_GCCOLLECT 2 +#define LUA_GCCOUNT 3 +#define LUA_GCCOUNTB 4 +#define LUA_GCSTEP 5 +#define LUA_GCSETPAUSE 6 +#define LUA_GCSETSTEPMUL 7 + +LUA_API int (lua_gc) (lua_State *L, int what, int data); + + +/* +** miscellaneous functions +*/ + +LUA_API int (lua_error) (lua_State *L); + +LUA_API int (lua_next) (lua_State *L, int idx); + +LUA_API void (lua_concat) (lua_State *L, int n); + +LUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud); +LUA_API void lua_setallocf (lua_State *L, lua_Alloc f, void *ud); + + + +/* +** =============================================================== +** some useful macros +** =============================================================== +*/ + +#define lua_pop(L,n) lua_settop(L, -(n)-1) + +#define lua_newtable(L) lua_createtable(L, 0, 0) + +#define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n))) + +#define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0) + +#define lua_strlen(L,i) lua_objlen(L, (i)) + +#define lua_isfunction(L,n) (lua_type(L, (n)) == LUA_TFUNCTION) +#define lua_istable(L,n) (lua_type(L, (n)) == LUA_TTABLE) +#define lua_islightuserdata(L,n) (lua_type(L, (n)) == LUA_TLIGHTUSERDATA) +#define lua_isnil(L,n) (lua_type(L, (n)) == LUA_TNIL) +#define lua_isboolean(L,n) (lua_type(L, (n)) == LUA_TBOOLEAN) +#define lua_isthread(L,n) (lua_type(L, (n)) == LUA_TTHREAD) +#define lua_isnone(L,n) (lua_type(L, (n)) == LUA_TNONE) +#define lua_isnoneornil(L, n) (lua_type(L, (n)) <= 0) + +#define lua_pushliteral(L, s) \ + lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1) + +#define lua_setglobal(L,s) lua_setfield(L, LUA_GLOBALSINDEX, (s)) +#define lua_getglobal(L,s) lua_getfield(L, LUA_GLOBALSINDEX, (s)) + +#define lua_tostring(L,i) lua_tolstring(L, (i), NULL) + + + +/* +** compatibility macros and functions +*/ + +#define lua_open() luaL_newstate() + +#define lua_getregistry(L) lua_pushvalue(L, LUA_REGISTRYINDEX) + +#define lua_getgccount(L) lua_gc(L, LUA_GCCOUNT, 0) + +#define lua_Chunkreader lua_Reader +#define lua_Chunkwriter lua_Writer + + +/* hack */ +LUA_API void lua_setlevel (lua_State *from, lua_State *to); + + +/* +** {====================================================================== +** Debug API +** ======================================================================= +*/ + + +/* +** Event codes +*/ +#define LUA_HOOKCALL 0 +#define LUA_HOOKRET 1 +#define LUA_HOOKLINE 2 +#define LUA_HOOKCOUNT 3 +#define LUA_HOOKTAILRET 4 + + +/* +** Event masks +*/ +#define LUA_MASKCALL (1 << LUA_HOOKCALL) +#define LUA_MASKRET (1 << LUA_HOOKRET) +#define LUA_MASKLINE (1 << LUA_HOOKLINE) +#define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT) + +typedef struct lua_Debug lua_Debug; /* activation record */ + + +/* Functions to be called by the debuger in specific events */ +typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar); + + +LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar); +LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar); +LUA_API const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *lua_getupvalue (lua_State *L, int funcindex, int n); +LUA_API const char *lua_setupvalue (lua_State *L, int funcindex, int n); + +LUA_API int lua_sethook (lua_State *L, lua_Hook func, int mask, int count); +LUA_API lua_Hook lua_gethook (lua_State *L); +LUA_API int lua_gethookmask (lua_State *L); +LUA_API int lua_gethookcount (lua_State *L); + + +struct lua_Debug { + int event; + const char *name; /* (n) */ + const char *namewhat; /* (n) `global', `local', `field', `method' */ + const char *what; /* (S) `Lua', `C', `main', `tail' */ + const char *source; /* (S) */ + int currentline; /* (l) */ + int nups; /* (u) number of upvalues */ + int linedefined; /* (S) */ + int lastlinedefined; /* (S) */ + char short_src[LUA_IDSIZE]; /* (S) */ + /* private part */ + int i_ci; /* active function */ +}; + +/* }====================================================================== */ + + +/****************************************************************************** +* Copyright (C) 1994-2008 Lua.org, PUC-Rio. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +******************************************************************************/ + + +#endif diff --git a/mk/linux/mojosetup/lua/src/luac.c b/mk/linux/mojosetup/lua/src/luac.c new file mode 100644 index 00000000..d0701739 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/luac.c @@ -0,0 +1,200 @@ +/* +** $Id: luac.c,v 1.54 2006/06/02 17:37:11 lhf Exp $ +** Lua compiler (saves bytecodes to files; also list bytecodes) +** See Copyright Notice in lua.h +*/ + +#include +#include +#include +#include + +#define luac_c +#define LUA_CORE + +#include "lua.h" +#include "lauxlib.h" + +#include "ldo.h" +#include "lfunc.h" +#include "lmem.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lstring.h" +#include "lundump.h" + +#define PROGNAME "luac" /* default program name */ +#define OUTPUT PROGNAME ".out" /* default output file */ + +static int listing=0; /* list bytecodes? */ +static int dumping=1; /* dump bytecodes? */ +static int stripping=0; /* strip debug information? */ +static char Output[]={ OUTPUT }; /* default output file name */ +static const char* output=Output; /* actual output file name */ +static const char* progname=PROGNAME; /* actual program name */ + +static void fatal(const char* message) +{ + fprintf(stderr,"%s: %s\n",progname,message); + exit(EXIT_FAILURE); +} + +static void cannot(const char* what) +{ + fprintf(stderr,"%s: cannot %s %s: %s\n",progname,what,output,strerror(errno)); + exit(EXIT_FAILURE); +} + +static void usage(const char* message) +{ + if (*message=='-') + fprintf(stderr,"%s: unrecognized option " LUA_QS "\n",progname,message); + else + fprintf(stderr,"%s: %s\n",progname,message); + fprintf(stderr, + "usage: %s [options] [filenames].\n" + "Available options are:\n" + " - process stdin\n" + " -l list\n" + " -o name output to file " LUA_QL("name") " (default is \"%s\")\n" + " -p parse only\n" + " -s strip debug information\n" + " -v show version information\n" + " -- stop handling options\n", + progname,Output); + exit(EXIT_FAILURE); +} + +#define IS(s) (strcmp(argv[i],s)==0) + +static int doargs(int argc, char* argv[]) +{ + int i; + int version=0; + if (argv[0]!=NULL && *argv[0]!=0) progname=argv[0]; + for (i=1; itop+(i))->l.p) + +static const Proto* combine(lua_State* L, int n) +{ + if (n==1) + return toproto(L,-1); + else + { + int i,pc; + Proto* f=luaF_newproto(L); + setptvalue2s(L,L->top,f); incr_top(L); + f->source=luaS_newliteral(L,"=(" PROGNAME ")"); + f->maxstacksize=1; + pc=2*n+1; + f->code=luaM_newvector(L,pc,Instruction); + f->sizecode=pc; + f->p=luaM_newvector(L,n,Proto*); + f->sizep=n; + pc=0; + for (i=0; ip[i]=toproto(L,i-n-1); + f->code[pc++]=CREATE_ABx(OP_CLOSURE,0,i); + f->code[pc++]=CREATE_ABC(OP_CALL,0,1,1); + } + f->code[pc++]=CREATE_ABC(OP_RETURN,0,1,0); + return f; + } +} + +static int writer(lua_State* L, const void* p, size_t size, void* u) +{ + UNUSED(L); + return (fwrite(p,size,1,(FILE*)u)!=1) && (size!=0); +} + +struct Smain { + int argc; + char** argv; +}; + +static int pmain(lua_State* L) +{ + struct Smain* s = (struct Smain*)lua_touserdata(L, 1); + int argc=s->argc; + char** argv=s->argv; + const Proto* f; + int i; + if (!lua_checkstack(L,argc)) fatal("too many input files"); + for (i=0; i1); + if (dumping) + { + FILE* D= (output==NULL) ? stdout : fopen(output,"wb"); + if (D==NULL) cannot("open"); + lua_lock(L); + luaU_dump(L,f,writer,D,stripping); + lua_unlock(L); + if (ferror(D)) cannot("write"); + if (fclose(D)) cannot("close"); + } + return 0; +} + +int main(int argc, char* argv[]) +{ + lua_State* L; + struct Smain s; + int i=doargs(argc,argv); + argc-=i; argv+=i; + if (argc<=0) usage("no input files given"); + L=lua_open(); + if (L==NULL) fatal("not enough memory for state"); + s.argc=argc; + s.argv=argv; + if (lua_cpcall(L,pmain,&s)!=0) fatal(lua_tostring(L,-1)); + lua_close(L); + return EXIT_SUCCESS; +} diff --git a/mk/linux/mojosetup/lua/src/luaconf.h b/mk/linux/mojosetup/lua/src/luaconf.h new file mode 100644 index 00000000..4c1d1f32 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/luaconf.h @@ -0,0 +1,767 @@ +/* +** $Id: luaconf.h,v 1.82.1.7 2008/02/11 16:25:08 roberto Exp $ +** Configuration file for Lua +** See Copyright Notice in lua.h +*/ + + +#ifndef lconfig_h +#define lconfig_h + +#include +#include + + +/* +** ================================================================== +** Search for "@@" to find all configurable definitions. +** =================================================================== +*/ + + +/* +@@ LUA_ANSI controls the use of non-ansi features. +** CHANGE it (define it) if you want Lua to avoid the use of any +** non-ansi feature or library. +*/ +#if defined(__STRICT_ANSI__) +#define LUA_ANSI +#endif + + +#if !defined(LUA_ANSI) && defined(_WIN32) +#define LUA_WIN +#endif + +#if defined(LUA_USE_LINUX) +#define LUA_USE_POSIX +#define LUA_USE_DLOPEN /* needs an extra library: -ldl */ +#define LUA_USE_READLINE /* needs some extra libraries */ +#endif + +#if defined(LUA_USE_MACOSX) +#define LUA_USE_POSIX +#define LUA_DL_DYLD /* does not need extra library */ +#endif + + + +/* +@@ LUA_USE_POSIX includes all functionallity listed as X/Open System +@* Interfaces Extension (XSI). +** CHANGE it (define it) if your system is XSI compatible. +*/ +#if defined(LUA_USE_POSIX) +#define LUA_USE_MKSTEMP +#define LUA_USE_ISATTY +#define LUA_USE_POPEN +#define LUA_USE_ULONGJMP +#endif + + +/* +@@ LUA_PATH and LUA_CPATH are the names of the environment variables that +@* Lua check to set its paths. +@@ LUA_INIT is the name of the environment variable that Lua +@* checks for initialization code. +** CHANGE them if you want different names. +*/ +#define LUA_PATH "LUA_PATH" +#define LUA_CPATH "LUA_CPATH" +#define LUA_INIT "LUA_INIT" + + +/* +@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for +@* Lua libraries. +@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for +@* C libraries. +** CHANGE them if your machine has a non-conventional directory +** hierarchy or if you want to install your libraries in +** non-conventional directories. +*/ +#if defined(_WIN32) +/* +** In Windows, any exclamation mark ('!') in the path is replaced by the +** path of the directory of the executable file of the current process. +*/ +#define LUA_LDIR "!\\lua\\" +#define LUA_CDIR "!\\" +#define LUA_PATH_DEFAULT \ + ".\\?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua" +#define LUA_CPATH_DEFAULT \ + ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll" + +#else +#define LUA_ROOT "/usr/local/" +#define LUA_LDIR LUA_ROOT "share/lua/5.1/" +#define LUA_CDIR LUA_ROOT "lib/lua/5.1/" +#define LUA_PATH_DEFAULT \ + "./?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua" +#define LUA_CPATH_DEFAULT \ + "./?.so;" LUA_CDIR"?.so;" LUA_CDIR"loadall.so" +#endif + + +/* +@@ LUA_DIRSEP is the directory separator (for submodules). +** CHANGE it if your machine does not use "/" as the directory separator +** and is not Windows. (On Windows Lua automatically uses "\".) +*/ +#if defined(_WIN32) +#define LUA_DIRSEP "\\" +#else +#define LUA_DIRSEP "/" +#endif + + +/* +@@ LUA_PATHSEP is the character that separates templates in a path. +@@ LUA_PATH_MARK is the string that marks the substitution points in a +@* template. +@@ LUA_EXECDIR in a Windows path is replaced by the executable's +@* directory. +@@ LUA_IGMARK is a mark to ignore all before it when bulding the +@* luaopen_ function name. +** CHANGE them if for some reason your system cannot use those +** characters. (E.g., if one of those characters is a common character +** in file/directory names.) Probably you do not need to change them. +*/ +#define LUA_PATHSEP ";" +#define LUA_PATH_MARK "?" +#define LUA_EXECDIR "!" +#define LUA_IGMARK "-" + + +/* +@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger. +** CHANGE that if ptrdiff_t is not adequate on your machine. (On most +** machines, ptrdiff_t gives a good choice between int or long.) +*/ +#define LUA_INTEGER ptrdiff_t + + +/* +@@ LUA_API is a mark for all core API functions. +@@ LUALIB_API is a mark for all standard library functions. +** CHANGE them if you need to define those functions in some special way. +** For instance, if you want to create one Windows DLL with the core and +** the libraries, you may want to use the following definition (define +** LUA_BUILD_AS_DLL to get it). +*/ +#if defined(LUA_BUILD_AS_DLL) + +#if defined(LUA_CORE) || defined(LUA_LIB) +#define LUA_API __declspec(dllexport) +#else +#define LUA_API __declspec(dllimport) +#endif + +#else + +#define LUA_API extern + +#endif + +/* more often than not the libs go together with the core */ +#define LUALIB_API LUA_API + + +/* +@@ LUAI_FUNC is a mark for all extern functions that are not to be +@* exported to outside modules. +@@ LUAI_DATA is a mark for all extern (const) variables that are not to +@* be exported to outside modules. +** CHANGE them if you need to mark them in some special way. Elf/gcc +** (versions 3.2 and later) mark them as "hidden" to optimize access +** when Lua is compiled as a shared library. +*/ +#if defined(luaall_c) +#define LUAI_FUNC static +#define LUAI_DATA /* empty */ + +#elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \ + defined(__ELF__) && !defined(sun) +#define LUAI_FUNC __attribute__((visibility("hidden"))) extern +#define LUAI_DATA LUAI_FUNC + +#elif (defined SUNPRO_C) +#define LUAI_FUNC __global +#define LUAI_DATA LUAI_FUNC + +#else +#define LUAI_FUNC extern +#define LUAI_DATA extern +#endif + + + +/* +@@ LUA_QL describes how error messages quote program elements. +** CHANGE it if you want a different appearance. +*/ +#define LUA_QL(x) "'" x "'" +#define LUA_QS LUA_QL("%s") + + +/* +@@ LUA_IDSIZE gives the maximum size for the description of the source +@* of a function in debug information. +** CHANGE it if you want a different size. +*/ +#define LUA_IDSIZE 60 + + +/* +** {================================================================== +** Stand-alone configuration +** =================================================================== +*/ + +#if defined(lua_c) || defined(luaall_c) + +/* +@@ lua_stdin_is_tty detects whether the standard input is a 'tty' (that +@* is, whether we're running lua interactively). +** CHANGE it if you have a better definition for non-POSIX/non-Windows +** systems. +*/ +#if defined(LUA_USE_ISATTY) +#include +#define lua_stdin_is_tty() isatty(0) +#elif defined(LUA_WIN) +#include +#include +#define lua_stdin_is_tty() _isatty(_fileno(stdin)) +#else +#define lua_stdin_is_tty() 1 /* assume stdin is a tty */ +#endif + + +/* +@@ LUA_PROMPT is the default prompt used by stand-alone Lua. +@@ LUA_PROMPT2 is the default continuation prompt used by stand-alone Lua. +** CHANGE them if you want different prompts. (You can also change the +** prompts dynamically, assigning to globals _PROMPT/_PROMPT2.) +*/ +#define LUA_PROMPT "> " +#define LUA_PROMPT2 ">> " + + +/* +@@ LUA_PROGNAME is the default name for the stand-alone Lua program. +** CHANGE it if your stand-alone interpreter has a different name and +** your system is not able to detect that name automatically. +*/ +#define LUA_PROGNAME "lua" + + +/* +@@ LUA_MAXINPUT is the maximum length for an input line in the +@* stand-alone interpreter. +** CHANGE it if you need longer lines. +*/ +#define LUA_MAXINPUT 512 + + +/* +@@ lua_readline defines how to show a prompt and then read a line from +@* the standard input. +@@ lua_saveline defines how to "save" a read line in a "history". +@@ lua_freeline defines how to free a line read by lua_readline. +** CHANGE them if you want to improve this functionality (e.g., by using +** GNU readline and history facilities). +*/ +#if defined(LUA_USE_READLINE) +#include +#include +#include +#define lua_readline(L,b,p) ((void)L, ((b)=readline(p)) != NULL) +#define lua_saveline(L,idx) \ + if (lua_strlen(L,idx) > 0) /* non-empty line? */ \ + add_history(lua_tostring(L, idx)); /* add it to history */ +#define lua_freeline(L,b) ((void)L, free(b)) +#else +#define lua_readline(L,b,p) \ + ((void)L, fputs(p, stdout), fflush(stdout), /* show prompt */ \ + fgets(b, LUA_MAXINPUT, stdin) != NULL) /* get line */ +#define lua_saveline(L,idx) { (void)L; (void)idx; } +#define lua_freeline(L,b) { (void)L; (void)b; } +#endif + +#endif + +/* }================================================================== */ + + +/* +@@ LUAI_GCPAUSE defines the default pause between garbage-collector cycles +@* as a percentage. +** CHANGE it if you want the GC to run faster or slower (higher values +** mean larger pauses which mean slower collection.) You can also change +** this value dynamically. +*/ +#define LUAI_GCPAUSE 200 /* 200% (wait memory to double before next GC) */ + + +/* +@@ LUAI_GCMUL defines the default speed of garbage collection relative to +@* memory allocation as a percentage. +** CHANGE it if you want to change the granularity of the garbage +** collection. (Higher values mean coarser collections. 0 represents +** infinity, where each step performs a full collection.) You can also +** change this value dynamically. +*/ +#define LUAI_GCMUL 200 /* GC runs 'twice the speed' of memory allocation */ + + + +/* +@@ LUA_COMPAT_GETN controls compatibility with old getn behavior. +** CHANGE it (define it) if you want exact compatibility with the +** behavior of setn/getn in Lua 5.0. +*/ +#undef LUA_COMPAT_GETN + +/* +@@ LUA_COMPAT_LOADLIB controls compatibility about global loadlib. +** CHANGE it to undefined as soon as you do not need a global 'loadlib' +** function (the function is still available as 'package.loadlib'). +*/ +#undef LUA_COMPAT_LOADLIB + +/* +@@ LUA_COMPAT_VARARG controls compatibility with old vararg feature. +** CHANGE it to undefined as soon as your programs use only '...' to +** access vararg parameters (instead of the old 'arg' table). +*/ +#define LUA_COMPAT_VARARG + +/* +@@ LUA_COMPAT_MOD controls compatibility with old math.mod function. +** CHANGE it to undefined as soon as your programs use 'math.fmod' or +** the new '%' operator instead of 'math.mod'. +*/ +#define LUA_COMPAT_MOD + +/* +@@ LUA_COMPAT_LSTR controls compatibility with old long string nesting +@* facility. +** CHANGE it to 2 if you want the old behaviour, or undefine it to turn +** off the advisory error when nesting [[...]]. +*/ +#define LUA_COMPAT_LSTR 1 + +/* +@@ LUA_COMPAT_GFIND controls compatibility with old 'string.gfind' name. +** CHANGE it to undefined as soon as you rename 'string.gfind' to +** 'string.gmatch'. +*/ +#define LUA_COMPAT_GFIND + +/* +@@ LUA_COMPAT_OPENLIB controls compatibility with old 'luaL_openlib' +@* behavior. +** CHANGE it to undefined as soon as you replace to 'luaL_register' +** your uses of 'luaL_openlib' +*/ +#define LUA_COMPAT_OPENLIB + + + +/* +@@ luai_apicheck is the assert macro used by the Lua-C API. +** CHANGE luai_apicheck if you want Lua to perform some checks in the +** parameters it gets from API calls. This may slow down the interpreter +** a bit, but may be quite useful when debugging C code that interfaces +** with Lua. A useful redefinition is to use assert.h. +*/ +#if defined(LUA_USE_APICHECK) +#include +#define luai_apicheck(L,o) { (void)L; assert(o); } +#else +#define luai_apicheck(L,o) { (void)L; } +#endif + + +/* +@@ LUAI_BITSINT defines the number of bits in an int. +** CHANGE here if Lua cannot automatically detect the number of bits of +** your machine. Probably you do not need to change this. +*/ +/* avoid overflows in comparison */ +#if INT_MAX-20 < 32760 +#define LUAI_BITSINT 16 +#elif INT_MAX > 2147483640L +/* int has at least 32 bits */ +#define LUAI_BITSINT 32 +#else +#error "you must define LUA_BITSINT with number of bits in an integer" +#endif + + +/* +@@ LUAI_UINT32 is an unsigned integer with at least 32 bits. +@@ LUAI_INT32 is an signed integer with at least 32 bits. +@@ LUAI_UMEM is an unsigned integer big enough to count the total +@* memory used by Lua. +@@ LUAI_MEM is a signed integer big enough to count the total memory +@* used by Lua. +** CHANGE here if for some weird reason the default definitions are not +** good enough for your machine. (The definitions in the 'else' +** part always works, but may waste space on machines with 64-bit +** longs.) Probably you do not need to change this. +*/ +#if LUAI_BITSINT >= 32 +#define LUAI_UINT32 unsigned int +#define LUAI_INT32 int +#define LUAI_MAXINT32 INT_MAX +#define LUAI_UMEM size_t +#define LUAI_MEM ptrdiff_t +#else +/* 16-bit ints */ +#define LUAI_UINT32 unsigned long +#define LUAI_INT32 long +#define LUAI_MAXINT32 LONG_MAX +#define LUAI_UMEM unsigned long +#define LUAI_MEM long +#endif + + +/* +@@ LUAI_MAXCALLS limits the number of nested calls. +** CHANGE it if you need really deep recursive calls. This limit is +** arbitrary; its only purpose is to stop infinite recursion before +** exhausting memory. +*/ +#define LUAI_MAXCALLS 20000 + + +/* +@@ LUAI_MAXCSTACK limits the number of Lua stack slots that a C function +@* can use. +** CHANGE it if you need lots of (Lua) stack space for your C +** functions. This limit is arbitrary; its only purpose is to stop C +** functions to consume unlimited stack space. (must be smaller than +** -LUA_REGISTRYINDEX) +*/ +#define LUAI_MAXCSTACK 8000 + + + +/* +** {================================================================== +** CHANGE (to smaller values) the following definitions if your system +** has a small C stack. (Or you may want to change them to larger +** values if your system has a large C stack and these limits are +** too rigid for you.) Some of these constants control the size of +** stack-allocated arrays used by the compiler or the interpreter, while +** others limit the maximum number of recursive calls that the compiler +** or the interpreter can perform. Values too large may cause a C stack +** overflow for some forms of deep constructs. +** =================================================================== +*/ + + +/* +@@ LUAI_MAXCCALLS is the maximum depth for nested C calls (short) and +@* syntactical nested non-terminals in a program. +*/ +#define LUAI_MAXCCALLS 200 + + +/* +@@ LUAI_MAXVARS is the maximum number of local variables per function +@* (must be smaller than 250). +*/ +#define LUAI_MAXVARS 200 + + +/* +@@ LUAI_MAXUPVALUES is the maximum number of upvalues per function +@* (must be smaller than 250). +*/ +#define LUAI_MAXUPVALUES 60 + + +/* +@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. +*/ +#define LUAL_BUFFERSIZE BUFSIZ + +/* }================================================================== */ + + + + +/* +** {================================================================== +@@ LUA_NUMBER is the type of numbers in Lua. +** CHANGE the following definitions only if you want to build Lua +** with a number type different from double. You may also need to +** change lua_number2int & lua_number2integer. +** =================================================================== +*/ + +#define LUA_NUMBER_DOUBLE +#define LUA_NUMBER double + +/* +@@ LUAI_UACNUMBER is the result of an 'usual argument conversion' +@* over a number. +*/ +#define LUAI_UACNUMBER double + + +/* +@@ LUA_NUMBER_SCAN is the format for reading numbers. +@@ LUA_NUMBER_FMT is the format for writing numbers. +@@ lua_number2str converts a number to a string. +@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion. +@@ lua_str2number converts a string to a number. +*/ +#define LUA_NUMBER_SCAN "%lf" +#define LUA_NUMBER_FMT "%.14g" +#define lua_number2str(s,n) sprintf((s), LUA_NUMBER_FMT, (n)) +#define LUAI_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */ +#define lua_str2number(s,p) strtod((s), (p)) + + +/* +@@ The luai_num* macros define the primitive operations over numbers. +*/ +#if defined(LUA_CORE) +#include +#define luai_numadd(a,b) ((a)+(b)) +#define luai_numsub(a,b) ((a)-(b)) +#define luai_nummul(a,b) ((a)*(b)) +#define luai_numdiv(a,b) ((a)/(b)) +#define luai_nummod(a,b) ((a) - floor((a)/(b))*(b)) +#define luai_numpow(a,b) (pow(a,b)) +#define luai_numunm(a) (-(a)) +#define luai_numeq(a,b) ((a)==(b)) +#define luai_numlt(a,b) ((a)<(b)) +#define luai_numle(a,b) ((a)<=(b)) +#define luai_numisnan(a) (!luai_numeq((a), (a))) +#endif + + +/* +@@ lua_number2int is a macro to convert lua_Number to int. +@@ lua_number2integer is a macro to convert lua_Number to lua_Integer. +** CHANGE them if you know a faster way to convert a lua_Number to +** int (with any rounding method and without throwing errors) in your +** system. In Pentium machines, a naive typecast from double to int +** in C is extremely slow, so any alternative is worth trying. +*/ + +/* On a Pentium, resort to a trick */ +#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) && !defined(__SSE2__) && \ + (defined(__i386) || defined (_M_IX86) || defined(__i386__)) + +/* On a Microsoft compiler, use assembler */ +#if defined(_MSC_VER) + +#define lua_number2int(i,d) __asm fld d __asm fistp i +#define lua_number2integer(i,n) lua_number2int(i, n) + +/* the next trick should work on any Pentium, but sometimes clashes + with a DirectX idiosyncrasy */ +#else + +union luai_Cast { double l_d; long l_l; }; +#define lua_number2int(i,d) \ + { volatile union luai_Cast u; u.l_d = (d) + 6755399441055744.0; (i) = u.l_l; } +#define lua_number2integer(i,n) lua_number2int(i, n) + +#endif + + +/* this option always works, but may be slow */ +#else +#define lua_number2int(i,d) ((i)=(int)(d)) +#define lua_number2integer(i,d) ((i)=(lua_Integer)(d)) + +#endif + +/* }================================================================== */ + + +/* +@@ LUAI_USER_ALIGNMENT_T is a type that requires maximum alignment. +** CHANGE it if your system requires alignments larger than double. (For +** instance, if your system supports long doubles and they must be +** aligned in 16-byte boundaries, then you should add long double in the +** union.) Probably you do not need to change this. +*/ +#define LUAI_USER_ALIGNMENT_T union { double u; void *s; long l; } + + +/* +@@ LUAI_THROW/LUAI_TRY define how Lua does exception handling. +** CHANGE them if you prefer to use longjmp/setjmp even with C++ +** or if want/don't to use _longjmp/_setjmp instead of regular +** longjmp/setjmp. By default, Lua handles errors with exceptions when +** compiling as C++ code, with _longjmp/_setjmp when asked to use them, +** and with longjmp/setjmp otherwise. +*/ +#if defined(__cplusplus) +/* C++ exceptions */ +#define LUAI_THROW(L,c) throw(c) +#define LUAI_TRY(L,c,a) try { a } catch(...) \ + { if ((c)->status == 0) (c)->status = -1; } +#define luai_jmpbuf int /* dummy variable */ + +#elif defined(LUA_USE_ULONGJMP) +/* in Unix, try _longjmp/_setjmp (more efficient) */ +#define LUAI_THROW(L,c) _longjmp((c)->b, 1) +#define LUAI_TRY(L,c,a) if (_setjmp((c)->b) == 0) { a } +#define luai_jmpbuf jmp_buf + +#else +/* default handling with long jumps */ +#define LUAI_THROW(L,c) longjmp((c)->b, 1) +#define LUAI_TRY(L,c,a) if (setjmp((c)->b) == 0) { a } +#define luai_jmpbuf jmp_buf + +#endif + + +/* +@@ LUA_MAXCAPTURES is the maximum number of captures that a pattern +@* can do during pattern-matching. +** CHANGE it if you need more captures. This limit is arbitrary. +*/ +#define LUA_MAXCAPTURES 32 + + +/* +@@ lua_tmpnam is the function that the OS library uses to create a +@* temporary name. +@@ LUA_TMPNAMBUFSIZE is the maximum size of a name created by lua_tmpnam. +** CHANGE them if you have an alternative to tmpnam (which is considered +** insecure) or if you want the original tmpnam anyway. By default, Lua +** uses tmpnam except when POSIX is available, where it uses mkstemp. +*/ +#if defined(loslib_c) || defined(luaall_c) + +#if defined(LUA_USE_MKSTEMP) +#include +#define LUA_TMPNAMBUFSIZE 32 +#define lua_tmpnam(b,e) { \ + strcpy(b, "/tmp/lua_XXXXXX"); \ + e = mkstemp(b); \ + if (e != -1) close(e); \ + e = (e == -1); } + +#else +#define LUA_TMPNAMBUFSIZE L_tmpnam +#define lua_tmpnam(b,e) { e = (tmpnam(b) == NULL); } +#endif + +#endif + + +/* +@@ lua_popen spawns a new process connected to the current one through +@* the file streams. +** CHANGE it if you have a way to implement it in your system. +*/ +#if defined(LUA_USE_POPEN) + +#define lua_popen(L,c,m) ((void)L, fflush(NULL), popen(c,m)) +#define lua_pclose(L,file) ((void)L, (pclose(file) != -1)) + +#elif defined(LUA_WIN) + +#define lua_popen(L,c,m) ((void)L, _popen(c,m)) +#define lua_pclose(L,file) ((void)L, (_pclose(file) != -1)) + +#else + +#define lua_popen(L,c,m) ((void)((void)c, m), \ + luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0) +#define lua_pclose(L,file) ((void)((void)L, file), 0) + +#endif + +/* +@@ LUA_DL_* define which dynamic-library system Lua should use. +** CHANGE here if Lua has problems choosing the appropriate +** dynamic-library system for your platform (either Windows' DLL, Mac's +** dyld, or Unix's dlopen). If your system is some kind of Unix, there +** is a good chance that it has dlopen, so LUA_DL_DLOPEN will work for +** it. To use dlopen you also need to adapt the src/Makefile (probably +** adding -ldl to the linker options), so Lua does not select it +** automatically. (When you change the makefile to add -ldl, you must +** also add -DLUA_USE_DLOPEN.) +** If you do not want any kind of dynamic library, undefine all these +** options. +** By default, _WIN32 gets LUA_DL_DLL and MAC OS X gets LUA_DL_DYLD. +*/ +#if defined(LUA_USE_DLOPEN) +#define LUA_DL_DLOPEN +#endif + +#if defined(LUA_WIN) +#define LUA_DL_DLL +#endif + + +/* +@@ LUAI_EXTRASPACE allows you to add user-specific data in a lua_State +@* (the data goes just *before* the lua_State pointer). +** CHANGE (define) this if you really need that. This value must be +** a multiple of the maximum alignment required for your machine. +*/ +#define LUAI_EXTRASPACE 0 + + +/* +@@ luai_userstate* allow user-specific actions on threads. +** CHANGE them if you defined LUAI_EXTRASPACE and need to do something +** extra when a thread is created/deleted/resumed/yielded. +*/ +#define luai_userstateopen(L) ((void)L) +#define luai_userstateclose(L) ((void)L) +#define luai_userstatethread(L,L1) ((void)L) +#define luai_userstatefree(L) ((void)L) +#define luai_userstateresume(L,n) ((void)L) +#define luai_userstateyield(L,n) ((void)L) + + +/* +@@ LUA_INTFRMLEN is the length modifier for integer conversions +@* in 'string.format'. +@@ LUA_INTFRM_T is the integer type correspoding to the previous length +@* modifier. +** CHANGE them if your system supports long long or does not support long. +*/ + +#if defined(LUA_USELONGLONG) + +#define LUA_INTFRMLEN "ll" +#define LUA_INTFRM_T long long + +#else + +#define LUA_INTFRMLEN "l" +#define LUA_INTFRM_T long + +#endif + + + +/* =================================================================== */ + +/* +** Local configuration. You can use this space to add your redefinitions +** without modifying the main part of the file. +*/ + + + +#endif + diff --git a/mk/linux/mojosetup/lua/src/lualib.h b/mk/linux/mojosetup/lua/src/lualib.h new file mode 100644 index 00000000..469417f6 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lualib.h @@ -0,0 +1,53 @@ +/* +** $Id: lualib.h,v 1.36.1.1 2007/12/27 13:02:25 roberto Exp $ +** Lua standard libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lualib_h +#define lualib_h + +#include "lua.h" + + +/* Key to file-handle type */ +#define LUA_FILEHANDLE "FILE*" + + +#define LUA_COLIBNAME "coroutine" +LUALIB_API int (luaopen_base) (lua_State *L); + +#define LUA_TABLIBNAME "table" +LUALIB_API int (luaopen_table) (lua_State *L); + +#define LUA_IOLIBNAME "io" +LUALIB_API int (luaopen_io) (lua_State *L); + +#define LUA_OSLIBNAME "os" +LUALIB_API int (luaopen_os) (lua_State *L); + +#define LUA_STRLIBNAME "string" +LUALIB_API int (luaopen_string) (lua_State *L); + +#define LUA_MATHLIBNAME "math" +LUALIB_API int (luaopen_math) (lua_State *L); + +#define LUA_DBLIBNAME "debug" +LUALIB_API int (luaopen_debug) (lua_State *L); + +#define LUA_LOADLIBNAME "package" +LUALIB_API int (luaopen_package) (lua_State *L); + + +/* open all previous libraries */ +LUALIB_API void (luaL_openlibs) (lua_State *L); + + + +#ifndef lua_assert +#define lua_assert(x) ((void)0) +#endif + + +#endif diff --git a/mk/linux/mojosetup/lua/src/lundump.c b/mk/linux/mojosetup/lua/src/lundump.c new file mode 100644 index 00000000..8010a457 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lundump.c @@ -0,0 +1,227 @@ +/* +** $Id: lundump.c,v 2.7.1.4 2008/04/04 19:51:41 roberto Exp $ +** load precompiled Lua chunks +** See Copyright Notice in lua.h +*/ + +#include + +#define lundump_c +#define LUA_CORE + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lmem.h" +#include "lobject.h" +#include "lstring.h" +#include "lundump.h" +#include "lzio.h" + +typedef struct { + lua_State* L; + ZIO* Z; + Mbuffer* b; + const char* name; +} LoadState; + +#ifdef LUAC_TRUST_BINARIES +#define IF(c,s) +#define error(S,s) +#else +#define IF(c,s) if (c) error(S,s) + +static void error(LoadState* S, const char* why) +{ + luaO_pushfstring(S->L,"%s: %s in precompiled chunk",S->name,why); + luaD_throw(S->L,LUA_ERRSYNTAX); +} +#endif + +#define LoadMem(S,b,n,size) LoadBlock(S,b,(n)*(size)) +#define LoadByte(S) (lu_byte)LoadChar(S) +#define LoadVar(S,x) LoadMem(S,&x,1,sizeof(x)) +#define LoadVector(S,b,n,size) LoadMem(S,b,n,size) + +static void LoadBlock(LoadState* S, void* b, size_t size) +{ + size_t r=luaZ_read(S->Z,b,size); + IF (r!=0, "unexpected end"); +} + +static int LoadChar(LoadState* S) +{ + char x; + LoadVar(S,x); + return x; +} + +static int LoadInt(LoadState* S) +{ + int x; + LoadVar(S,x); + IF (x<0, "bad integer"); + return x; +} + +static lua_Number LoadNumber(LoadState* S) +{ + lua_Number x; + LoadVar(S,x); + return x; +} + +static TString* LoadString(LoadState* S) +{ + size_t size; + LoadVar(S,size); + if (size==0) + return NULL; + else + { + char* s=luaZ_openspace(S->L,S->b,size); + LoadBlock(S,s,size); + return luaS_newlstr(S->L,s,size-1); /* remove trailing '\0' */ + } +} + +static void LoadCode(LoadState* S, Proto* f) +{ + int n=LoadInt(S); + f->code=luaM_newvector(S->L,n,Instruction); + f->sizecode=n; + LoadVector(S,f->code,n,sizeof(Instruction)); +} + +static Proto* LoadFunction(LoadState* S, TString* p); + +static void LoadConstants(LoadState* S, Proto* f) +{ + int i,n; + n=LoadInt(S); + f->k=luaM_newvector(S->L,n,TValue); + f->sizek=n; + for (i=0; ik[i]); + for (i=0; ik[i]; + int t=LoadChar(S); + switch (t) + { + case LUA_TNIL: + setnilvalue(o); + break; + case LUA_TBOOLEAN: + setbvalue(o,LoadChar(S)!=0); + break; + case LUA_TNUMBER: + setnvalue(o,LoadNumber(S)); + break; + case LUA_TSTRING: + setsvalue2n(S->L,o,LoadString(S)); + break; + default: + error(S,"bad constant"); + break; + } + } + n=LoadInt(S); + f->p=luaM_newvector(S->L,n,Proto*); + f->sizep=n; + for (i=0; ip[i]=NULL; + for (i=0; ip[i]=LoadFunction(S,f->source); +} + +static void LoadDebug(LoadState* S, Proto* f) +{ + int i,n; + n=LoadInt(S); + f->lineinfo=luaM_newvector(S->L,n,int); + f->sizelineinfo=n; + LoadVector(S,f->lineinfo,n,sizeof(int)); + n=LoadInt(S); + f->locvars=luaM_newvector(S->L,n,LocVar); + f->sizelocvars=n; + for (i=0; ilocvars[i].varname=NULL; + for (i=0; ilocvars[i].varname=LoadString(S); + f->locvars[i].startpc=LoadInt(S); + f->locvars[i].endpc=LoadInt(S); + } + n=LoadInt(S); + f->upvalues=luaM_newvector(S->L,n,TString*); + f->sizeupvalues=n; + for (i=0; iupvalues[i]=NULL; + for (i=0; iupvalues[i]=LoadString(S); +} + +static Proto* LoadFunction(LoadState* S, TString* p) +{ + Proto* f; + if (++S->L->nCcalls > LUAI_MAXCCALLS) error(S,"code too deep"); + f=luaF_newproto(S->L); + setptvalue2s(S->L,S->L->top,f); incr_top(S->L); + f->source=LoadString(S); if (f->source==NULL) f->source=p; + f->linedefined=LoadInt(S); + f->lastlinedefined=LoadInt(S); + f->nups=LoadByte(S); + f->numparams=LoadByte(S); + f->is_vararg=LoadByte(S); + f->maxstacksize=LoadByte(S); + LoadCode(S,f); + LoadConstants(S,f); + LoadDebug(S,f); + IF (!luaG_checkcode(f), "bad code"); + S->L->top--; + S->L->nCcalls--; + return f; +} + +static void LoadHeader(LoadState* S) +{ + char h[LUAC_HEADERSIZE]; + char s[LUAC_HEADERSIZE]; + luaU_header(h); + LoadBlock(S,s,LUAC_HEADERSIZE); + IF (memcmp(h,s,LUAC_HEADERSIZE)!=0, "bad header"); +} + +/* +** load precompiled chunk +*/ +Proto* luaU_undump (lua_State* L, ZIO* Z, Mbuffer* buff, const char* name) +{ + LoadState S; + if (*name=='@' || *name=='=') + S.name=name+1; + else if (*name==LUA_SIGNATURE[0]) + S.name="binary string"; + else + S.name=name; + S.L=L; + S.Z=Z; + S.b=buff; + LoadHeader(&S); + return LoadFunction(&S,luaS_newliteral(L,"=?")); +} + +/* +* make header +*/ +void luaU_header (char* h) +{ + int x=1; + memcpy(h,LUA_SIGNATURE,sizeof(LUA_SIGNATURE)-1); + h+=sizeof(LUA_SIGNATURE)-1; + *h++=(char)LUAC_VERSION; + *h++=(char)LUAC_FORMAT; + *h++=(char)*(char*)&x; /* endianness */ + *h++=(char)sizeof(int); + *h++=(char)sizeof(size_t); + *h++=(char)sizeof(Instruction); + *h++=(char)sizeof(lua_Number); + *h++=(char)(((lua_Number)0.5)==0); /* is lua_Number integral? */ +} diff --git a/mk/linux/mojosetup/lua/src/lundump.h b/mk/linux/mojosetup/lua/src/lundump.h new file mode 100644 index 00000000..c80189db --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lundump.h @@ -0,0 +1,36 @@ +/* +** $Id: lundump.h,v 1.37.1.1 2007/12/27 13:02:25 roberto Exp $ +** load precompiled Lua chunks +** See Copyright Notice in lua.h +*/ + +#ifndef lundump_h +#define lundump_h + +#include "lobject.h" +#include "lzio.h" + +/* load one chunk; from lundump.c */ +LUAI_FUNC Proto* luaU_undump (lua_State* L, ZIO* Z, Mbuffer* buff, const char* name); + +/* make header; from lundump.c */ +LUAI_FUNC void luaU_header (char* h); + +/* dump one chunk; from ldump.c */ +LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip); + +#ifdef luac_c +/* print one chunk; from print.c */ +LUAI_FUNC void luaU_print (const Proto* f, int full); +#endif + +/* for header of binary files -- this is Lua 5.1 */ +#define LUAC_VERSION 0x51 + +/* for header of binary files -- this is the official format */ +#define LUAC_FORMAT 0 + +/* size of header of binary files */ +#define LUAC_HEADERSIZE 12 + +#endif diff --git a/mk/linux/mojosetup/lua/src/lvm.c b/mk/linux/mojosetup/lua/src/lvm.c new file mode 100644 index 00000000..ee3256ab --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lvm.c @@ -0,0 +1,763 @@ +/* +** $Id: lvm.c,v 2.63.1.3 2007/12/28 15:32:23 roberto Exp $ +** Lua virtual machine +** See Copyright Notice in lua.h +*/ + + +#include +#include +#include + +#define lvm_c +#define LUA_CORE + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lgc.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" +#include "lvm.h" + + + +/* limit for table tag-method chains (to avoid loops) */ +#define MAXTAGLOOP 100 + + +const TValue *luaV_tonumber (const TValue *obj, TValue *n) { + lua_Number num; + if (ttisnumber(obj)) return obj; + if (ttisstring(obj) && luaO_str2d(svalue(obj), &num)) { + setnvalue(n, num); + return n; + } + else + return NULL; +} + + +int luaV_tostring (lua_State *L, StkId obj) { + if (!ttisnumber(obj)) + return 0; + else { + char s[LUAI_MAXNUMBER2STR]; + lua_Number n = nvalue(obj); + lua_number2str(s, n); + setsvalue2s(L, obj, luaS_new(L, s)); + return 1; + } +} + + +static void traceexec (lua_State *L, const Instruction *pc) { + lu_byte mask = L->hookmask; + const Instruction *oldpc = L->savedpc; + L->savedpc = pc; + if ((mask & LUA_MASKCOUNT) && L->hookcount == 0) { + resethookcount(L); + luaD_callhook(L, LUA_HOOKCOUNT, -1); + } + if (mask & LUA_MASKLINE) { + Proto *p = ci_func(L->ci)->l.p; + int npc = pcRel(pc, p); + int newline = getline(p, npc); + /* call linehook when enter a new function, when jump back (loop), + or when enter a new line */ + if (npc == 0 || pc <= oldpc || newline != getline(p, pcRel(oldpc, p))) + luaD_callhook(L, LUA_HOOKLINE, newline); + } +} + + +static void callTMres (lua_State *L, StkId res, const TValue *f, + const TValue *p1, const TValue *p2) { + ptrdiff_t result = savestack(L, res); + setobj2s(L, L->top, f); /* push function */ + setobj2s(L, L->top+1, p1); /* 1st argument */ + setobj2s(L, L->top+2, p2); /* 2nd argument */ + luaD_checkstack(L, 3); + L->top += 3; + luaD_call(L, L->top - 3, 1); + res = restorestack(L, result); + L->top--; + setobjs2s(L, res, L->top); +} + + + +static void callTM (lua_State *L, const TValue *f, const TValue *p1, + const TValue *p2, const TValue *p3) { + setobj2s(L, L->top, f); /* push function */ + setobj2s(L, L->top+1, p1); /* 1st argument */ + setobj2s(L, L->top+2, p2); /* 2nd argument */ + setobj2s(L, L->top+3, p3); /* 3th argument */ + luaD_checkstack(L, 4); + L->top += 4; + luaD_call(L, L->top - 4, 0); +} + + +void luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId val) { + int loop; + for (loop = 0; loop < MAXTAGLOOP; loop++) { + const TValue *tm; + if (ttistable(t)) { /* `t' is a table? */ + Table *h = hvalue(t); + const TValue *res = luaH_get(h, key); /* do a primitive get */ + if (!ttisnil(res) || /* result is no nil? */ + (tm = fasttm(L, h->metatable, TM_INDEX)) == NULL) { /* or no TM? */ + setobj2s(L, val, res); + return; + } + /* else will try the tag method */ + } + else if (ttisnil(tm = luaT_gettmbyobj(L, t, TM_INDEX))) + luaG_typeerror(L, t, "index"); + if (ttisfunction(tm)) { + callTMres(L, val, tm, t, key); + return; + } + t = tm; /* else repeat with `tm' */ + } + luaG_runerror(L, "loop in gettable"); +} + + +void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) { + int loop; + for (loop = 0; loop < MAXTAGLOOP; loop++) { + const TValue *tm; + if (ttistable(t)) { /* `t' is a table? */ + Table *h = hvalue(t); + TValue *oldval = luaH_set(L, h, key); /* do a primitive set */ + if (!ttisnil(oldval) || /* result is no nil? */ + (tm = fasttm(L, h->metatable, TM_NEWINDEX)) == NULL) { /* or no TM? */ + setobj2t(L, oldval, val); + luaC_barriert(L, h, val); + return; + } + /* else will try the tag method */ + } + else if (ttisnil(tm = luaT_gettmbyobj(L, t, TM_NEWINDEX))) + luaG_typeerror(L, t, "index"); + if (ttisfunction(tm)) { + callTM(L, tm, t, key, val); + return; + } + t = tm; /* else repeat with `tm' */ + } + luaG_runerror(L, "loop in settable"); +} + + +static int call_binTM (lua_State *L, const TValue *p1, const TValue *p2, + StkId res, TMS event) { + const TValue *tm = luaT_gettmbyobj(L, p1, event); /* try first operand */ + if (ttisnil(tm)) + tm = luaT_gettmbyobj(L, p2, event); /* try second operand */ + if (ttisnil(tm)) return 0; + callTMres(L, res, tm, p1, p2); + return 1; +} + + +static const TValue *get_compTM (lua_State *L, Table *mt1, Table *mt2, + TMS event) { + const TValue *tm1 = fasttm(L, mt1, event); + const TValue *tm2; + if (tm1 == NULL) return NULL; /* no metamethod */ + if (mt1 == mt2) return tm1; /* same metatables => same metamethods */ + tm2 = fasttm(L, mt2, event); + if (tm2 == NULL) return NULL; /* no metamethod */ + if (luaO_rawequalObj(tm1, tm2)) /* same metamethods? */ + return tm1; + return NULL; +} + + +static int call_orderTM (lua_State *L, const TValue *p1, const TValue *p2, + TMS event) { + const TValue *tm1 = luaT_gettmbyobj(L, p1, event); + const TValue *tm2; + if (ttisnil(tm1)) return -1; /* no metamethod? */ + tm2 = luaT_gettmbyobj(L, p2, event); + if (!luaO_rawequalObj(tm1, tm2)) /* different metamethods? */ + return -1; + callTMres(L, L->top, tm1, p1, p2); + return !l_isfalse(L->top); +} + + +static int l_strcmp (const TString *ls, const TString *rs) { + const char *l = getstr(ls); + size_t ll = ls->tsv.len; + const char *r = getstr(rs); + size_t lr = rs->tsv.len; + for (;;) { + int temp = strcoll(l, r); + if (temp != 0) return temp; + else { /* strings are equal up to a `\0' */ + size_t len = strlen(l); /* index of first `\0' in both strings */ + if (len == lr) /* r is finished? */ + return (len == ll) ? 0 : 1; + else if (len == ll) /* l is finished? */ + return -1; /* l is smaller than r (because r is not finished) */ + /* both strings longer than `len'; go on comparing (after the `\0') */ + len++; + l += len; ll -= len; r += len; lr -= len; + } + } +} + + +int luaV_lessthan (lua_State *L, const TValue *l, const TValue *r) { + int res; + if (ttype(l) != ttype(r)) + return luaG_ordererror(L, l, r); + else if (ttisnumber(l)) + return luai_numlt(nvalue(l), nvalue(r)); + else if (ttisstring(l)) + return l_strcmp(rawtsvalue(l), rawtsvalue(r)) < 0; + else if ((res = call_orderTM(L, l, r, TM_LT)) != -1) + return res; + return luaG_ordererror(L, l, r); +} + + +static int lessequal (lua_State *L, const TValue *l, const TValue *r) { + int res; + if (ttype(l) != ttype(r)) + return luaG_ordererror(L, l, r); + else if (ttisnumber(l)) + return luai_numle(nvalue(l), nvalue(r)); + else if (ttisstring(l)) + return l_strcmp(rawtsvalue(l), rawtsvalue(r)) <= 0; + else if ((res = call_orderTM(L, l, r, TM_LE)) != -1) /* first try `le' */ + return res; + else if ((res = call_orderTM(L, r, l, TM_LT)) != -1) /* else try `lt' */ + return !res; + return luaG_ordererror(L, l, r); +} + + +int luaV_equalval (lua_State *L, const TValue *t1, const TValue *t2) { + const TValue *tm; + lua_assert(ttype(t1) == ttype(t2)); + switch (ttype(t1)) { + case LUA_TNIL: return 1; + case LUA_TNUMBER: return luai_numeq(nvalue(t1), nvalue(t2)); + case LUA_TBOOLEAN: return bvalue(t1) == bvalue(t2); /* true must be 1 !! */ + case LUA_TLIGHTUSERDATA: return pvalue(t1) == pvalue(t2); + case LUA_TUSERDATA: { + if (uvalue(t1) == uvalue(t2)) return 1; + tm = get_compTM(L, uvalue(t1)->metatable, uvalue(t2)->metatable, + TM_EQ); + break; /* will try TM */ + } + case LUA_TTABLE: { + if (hvalue(t1) == hvalue(t2)) return 1; + tm = get_compTM(L, hvalue(t1)->metatable, hvalue(t2)->metatable, TM_EQ); + break; /* will try TM */ + } + default: return gcvalue(t1) == gcvalue(t2); + } + if (tm == NULL) return 0; /* no TM? */ + callTMres(L, L->top, tm, t1, t2); /* call TM */ + return !l_isfalse(L->top); +} + + +void luaV_concat (lua_State *L, int total, int last) { + do { + StkId top = L->base + last + 1; + int n = 2; /* number of elements handled in this pass (at least 2) */ + if (!(ttisstring(top-2) || ttisnumber(top-2)) || !tostring(L, top-1)) { + if (!call_binTM(L, top-2, top-1, top-2, TM_CONCAT)) + luaG_concaterror(L, top-2, top-1); + } else if (tsvalue(top-1)->len == 0) /* second op is empty? */ + (void)tostring(L, top - 2); /* result is first op (as string) */ + else { + /* at least two string values; get as many as possible */ + size_t tl = tsvalue(top-1)->len; + char *buffer; + int i; + /* collect total length */ + for (n = 1; n < total && tostring(L, top-n-1); n++) { + size_t l = tsvalue(top-n-1)->len; + if (l >= MAX_SIZET - tl) luaG_runerror(L, "string length overflow"); + tl += l; + } + buffer = luaZ_openspace(L, &G(L)->buff, tl); + tl = 0; + for (i=n; i>0; i--) { /* concat all strings */ + size_t l = tsvalue(top-i)->len; + memcpy(buffer+tl, svalue(top-i), l); + tl += l; + } + setsvalue2s(L, top-n, luaS_newlstr(L, buffer, tl)); + } + total -= n-1; /* got `n' strings to create 1 new */ + last -= n-1; + } while (total > 1); /* repeat until only 1 result left */ +} + + +static void Arith (lua_State *L, StkId ra, const TValue *rb, + const TValue *rc, TMS op) { + TValue tempb, tempc; + const TValue *b, *c; + if ((b = luaV_tonumber(rb, &tempb)) != NULL && + (c = luaV_tonumber(rc, &tempc)) != NULL) { + lua_Number nb = nvalue(b), nc = nvalue(c); + switch (op) { + case TM_ADD: setnvalue(ra, luai_numadd(nb, nc)); break; + case TM_SUB: setnvalue(ra, luai_numsub(nb, nc)); break; + case TM_MUL: setnvalue(ra, luai_nummul(nb, nc)); break; + case TM_DIV: setnvalue(ra, luai_numdiv(nb, nc)); break; + case TM_MOD: setnvalue(ra, luai_nummod(nb, nc)); break; + case TM_POW: setnvalue(ra, luai_numpow(nb, nc)); break; + case TM_UNM: setnvalue(ra, luai_numunm(nb)); break; + default: lua_assert(0); break; + } + } + else if (!call_binTM(L, rb, rc, ra, op)) + luaG_aritherror(L, rb, rc); +} + + + +/* +** some macros for common tasks in `luaV_execute' +*/ + +#define runtime_check(L, c) { if (!(c)) break; } + +#define RA(i) (base+GETARG_A(i)) +/* to be used after possible stack reallocation */ +#define RB(i) check_exp(getBMode(GET_OPCODE(i)) == OpArgR, base+GETARG_B(i)) +#define RC(i) check_exp(getCMode(GET_OPCODE(i)) == OpArgR, base+GETARG_C(i)) +#define RKB(i) check_exp(getBMode(GET_OPCODE(i)) == OpArgK, \ + ISK(GETARG_B(i)) ? k+INDEXK(GETARG_B(i)) : base+GETARG_B(i)) +#define RKC(i) check_exp(getCMode(GET_OPCODE(i)) == OpArgK, \ + ISK(GETARG_C(i)) ? k+INDEXK(GETARG_C(i)) : base+GETARG_C(i)) +#define KBx(i) check_exp(getBMode(GET_OPCODE(i)) == OpArgK, k+GETARG_Bx(i)) + + +#define dojump(L,pc,i) {(pc) += (i); luai_threadyield(L);} + + +#define Protect(x) { L->savedpc = pc; {x;}; base = L->base; } + + +#define arith_op(op,tm) { \ + TValue *rb = RKB(i); \ + TValue *rc = RKC(i); \ + if (ttisnumber(rb) && ttisnumber(rc)) { \ + lua_Number nb = nvalue(rb), nc = nvalue(rc); \ + setnvalue(ra, op(nb, nc)); \ + } \ + else \ + Protect(Arith(L, ra, rb, rc, tm)); \ + } + + + +void luaV_execute (lua_State *L, int nexeccalls) { + LClosure *cl; + StkId base; + TValue *k; + const Instruction *pc; + reentry: /* entry point */ + lua_assert(isLua(L->ci)); + pc = L->savedpc; + cl = &clvalue(L->ci->func)->l; + base = L->base; + k = cl->p->k; + /* main loop of interpreter */ + for (;;) { + const Instruction i = *pc++; + StkId ra; + if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) && + (--L->hookcount == 0 || L->hookmask & LUA_MASKLINE)) { + traceexec(L, pc); + if (L->status == LUA_YIELD) { /* did hook yield? */ + L->savedpc = pc - 1; + return; + } + base = L->base; + } + /* warning!! several calls may realloc the stack and invalidate `ra' */ + ra = RA(i); + lua_assert(base == L->base && L->base == L->ci->base); + lua_assert(base <= L->top && L->top <= L->stack + L->stacksize); + lua_assert(L->top == L->ci->top || luaG_checkopenop(i)); + switch (GET_OPCODE(i)) { + case OP_MOVE: { + setobjs2s(L, ra, RB(i)); + continue; + } + case OP_LOADK: { + setobj2s(L, ra, KBx(i)); + continue; + } + case OP_LOADBOOL: { + setbvalue(ra, GETARG_B(i)); + if (GETARG_C(i)) pc++; /* skip next instruction (if C) */ + continue; + } + case OP_LOADNIL: { + TValue *rb = RB(i); + do { + setnilvalue(rb--); + } while (rb >= ra); + continue; + } + case OP_GETUPVAL: { + int b = GETARG_B(i); + setobj2s(L, ra, cl->upvals[b]->v); + continue; + } + case OP_GETGLOBAL: { + TValue g; + TValue *rb = KBx(i); + sethvalue(L, &g, cl->env); + lua_assert(ttisstring(rb)); + Protect(luaV_gettable(L, &g, rb, ra)); + continue; + } + case OP_GETTABLE: { + Protect(luaV_gettable(L, RB(i), RKC(i), ra)); + continue; + } + case OP_SETGLOBAL: { + TValue g; + sethvalue(L, &g, cl->env); + lua_assert(ttisstring(KBx(i))); + Protect(luaV_settable(L, &g, KBx(i), ra)); + continue; + } + case OP_SETUPVAL: { + UpVal *uv = cl->upvals[GETARG_B(i)]; + setobj(L, uv->v, ra); + luaC_barrier(L, uv, ra); + continue; + } + case OP_SETTABLE: { + Protect(luaV_settable(L, ra, RKB(i), RKC(i))); + continue; + } + case OP_NEWTABLE: { + int b = GETARG_B(i); + int c = GETARG_C(i); + sethvalue(L, ra, luaH_new(L, luaO_fb2int(b), luaO_fb2int(c))); + Protect(luaC_checkGC(L)); + continue; + } + case OP_SELF: { + StkId rb = RB(i); + setobjs2s(L, ra+1, rb); + Protect(luaV_gettable(L, rb, RKC(i), ra)); + continue; + } + case OP_ADD: { + arith_op(luai_numadd, TM_ADD); + continue; + } + case OP_SUB: { + arith_op(luai_numsub, TM_SUB); + continue; + } + case OP_MUL: { + arith_op(luai_nummul, TM_MUL); + continue; + } + case OP_DIV: { + arith_op(luai_numdiv, TM_DIV); + continue; + } + case OP_MOD: { + arith_op(luai_nummod, TM_MOD); + continue; + } + case OP_POW: { + arith_op(luai_numpow, TM_POW); + continue; + } + case OP_UNM: { + TValue *rb = RB(i); + if (ttisnumber(rb)) { + lua_Number nb = nvalue(rb); + setnvalue(ra, luai_numunm(nb)); + } + else { + Protect(Arith(L, ra, rb, rb, TM_UNM)); + } + continue; + } + case OP_NOT: { + int res = l_isfalse(RB(i)); /* next assignment may change this value */ + setbvalue(ra, res); + continue; + } + case OP_LEN: { + const TValue *rb = RB(i); + switch (ttype(rb)) { + case LUA_TTABLE: { + setnvalue(ra, cast_num(luaH_getn(hvalue(rb)))); + break; + } + case LUA_TSTRING: { + setnvalue(ra, cast_num(tsvalue(rb)->len)); + break; + } + default: { /* try metamethod */ + Protect( + if (!call_binTM(L, rb, luaO_nilobject, ra, TM_LEN)) + luaG_typeerror(L, rb, "get length of"); + ) + } + } + continue; + } + case OP_CONCAT: { + int b = GETARG_B(i); + int c = GETARG_C(i); + Protect(luaV_concat(L, c-b+1, c); luaC_checkGC(L)); + setobjs2s(L, RA(i), base+b); + continue; + } + case OP_JMP: { + dojump(L, pc, GETARG_sBx(i)); + continue; + } + case OP_EQ: { + TValue *rb = RKB(i); + TValue *rc = RKC(i); + Protect( + if (equalobj(L, rb, rc) == GETARG_A(i)) + dojump(L, pc, GETARG_sBx(*pc)); + ) + pc++; + continue; + } + case OP_LT: { + Protect( + if (luaV_lessthan(L, RKB(i), RKC(i)) == GETARG_A(i)) + dojump(L, pc, GETARG_sBx(*pc)); + ) + pc++; + continue; + } + case OP_LE: { + Protect( + if (lessequal(L, RKB(i), RKC(i)) == GETARG_A(i)) + dojump(L, pc, GETARG_sBx(*pc)); + ) + pc++; + continue; + } + case OP_TEST: { + if (l_isfalse(ra) != GETARG_C(i)) + dojump(L, pc, GETARG_sBx(*pc)); + pc++; + continue; + } + case OP_TESTSET: { + TValue *rb = RB(i); + if (l_isfalse(rb) != GETARG_C(i)) { + setobjs2s(L, ra, rb); + dojump(L, pc, GETARG_sBx(*pc)); + } + pc++; + continue; + } + case OP_CALL: { + int b = GETARG_B(i); + int nresults = GETARG_C(i) - 1; + if (b != 0) L->top = ra+b; /* else previous instruction set top */ + L->savedpc = pc; + switch (luaD_precall(L, ra, nresults)) { + case PCRLUA: { + nexeccalls++; + goto reentry; /* restart luaV_execute over new Lua function */ + } + case PCRC: { + /* it was a C function (`precall' called it); adjust results */ + if (nresults >= 0) L->top = L->ci->top; + base = L->base; + continue; + } + default: { + return; /* yield */ + } + } + } + case OP_TAILCALL: { + int b = GETARG_B(i); + if (b != 0) L->top = ra+b; /* else previous instruction set top */ + L->savedpc = pc; + lua_assert(GETARG_C(i) - 1 == LUA_MULTRET); + switch (luaD_precall(L, ra, LUA_MULTRET)) { + case PCRLUA: { + /* tail call: put new frame in place of previous one */ + CallInfo *ci = L->ci - 1; /* previous frame */ + int aux; + StkId func = ci->func; + StkId pfunc = (ci+1)->func; /* previous function index */ + if (L->openupval) luaF_close(L, ci->base); + L->base = ci->base = ci->func + ((ci+1)->base - pfunc); + for (aux = 0; pfunc+aux < L->top; aux++) /* move frame down */ + setobjs2s(L, func+aux, pfunc+aux); + ci->top = L->top = func+aux; /* correct top */ + lua_assert(L->top == L->base + clvalue(func)->l.p->maxstacksize); + ci->savedpc = L->savedpc; + ci->tailcalls++; /* one more call lost */ + L->ci--; /* remove new frame */ + goto reentry; + } + case PCRC: { /* it was a C function (`precall' called it) */ + base = L->base; + continue; + } + default: { + return; /* yield */ + } + } + } + case OP_RETURN: { + int b = GETARG_B(i); + if (b != 0) L->top = ra+b-1; + if (L->openupval) luaF_close(L, base); + L->savedpc = pc; + b = luaD_poscall(L, ra); + if (--nexeccalls == 0) /* was previous function running `here'? */ + return; /* no: return */ + else { /* yes: continue its execution */ + if (b) L->top = L->ci->top; + lua_assert(isLua(L->ci)); + lua_assert(GET_OPCODE(*((L->ci)->savedpc - 1)) == OP_CALL); + goto reentry; + } + } + case OP_FORLOOP: { + lua_Number step = nvalue(ra+2); + lua_Number idx = luai_numadd(nvalue(ra), step); /* increment index */ + lua_Number limit = nvalue(ra+1); + if (luai_numlt(0, step) ? luai_numle(idx, limit) + : luai_numle(limit, idx)) { + dojump(L, pc, GETARG_sBx(i)); /* jump back */ + setnvalue(ra, idx); /* update internal index... */ + setnvalue(ra+3, idx); /* ...and external index */ + } + continue; + } + case OP_FORPREP: { + const TValue *init = ra; + const TValue *plimit = ra+1; + const TValue *pstep = ra+2; + L->savedpc = pc; /* next steps may throw errors */ + if (!tonumber(init, ra)) + luaG_runerror(L, LUA_QL("for") " initial value must be a number"); + else if (!tonumber(plimit, ra+1)) + luaG_runerror(L, LUA_QL("for") " limit must be a number"); + else if (!tonumber(pstep, ra+2)) + luaG_runerror(L, LUA_QL("for") " step must be a number"); + setnvalue(ra, luai_numsub(nvalue(ra), nvalue(pstep))); + dojump(L, pc, GETARG_sBx(i)); + continue; + } + case OP_TFORLOOP: { + StkId cb = ra + 3; /* call base */ + setobjs2s(L, cb+2, ra+2); + setobjs2s(L, cb+1, ra+1); + setobjs2s(L, cb, ra); + L->top = cb+3; /* func. + 2 args (state and index) */ + Protect(luaD_call(L, cb, GETARG_C(i))); + L->top = L->ci->top; + cb = RA(i) + 3; /* previous call may change the stack */ + if (!ttisnil(cb)) { /* continue loop? */ + setobjs2s(L, cb-1, cb); /* save control variable */ + dojump(L, pc, GETARG_sBx(*pc)); /* jump back */ + } + pc++; + continue; + } + case OP_SETLIST: { + int n = GETARG_B(i); + int c = GETARG_C(i); + int last; + Table *h; + if (n == 0) { + n = cast_int(L->top - ra) - 1; + L->top = L->ci->top; + } + if (c == 0) c = cast_int(*pc++); + runtime_check(L, ttistable(ra)); + h = hvalue(ra); + last = ((c-1)*LFIELDS_PER_FLUSH) + n; + if (last > h->sizearray) /* needs more space? */ + luaH_resizearray(L, h, last); /* pre-alloc it at once */ + for (; n > 0; n--) { + TValue *val = ra+n; + setobj2t(L, luaH_setnum(L, h, last--), val); + luaC_barriert(L, h, val); + } + continue; + } + case OP_CLOSE: { + luaF_close(L, ra); + continue; + } + case OP_CLOSURE: { + Proto *p; + Closure *ncl; + int nup, j; + p = cl->p->p[GETARG_Bx(i)]; + nup = p->nups; + ncl = luaF_newLclosure(L, nup, cl->env); + ncl->l.p = p; + for (j=0; jl.upvals[j] = cl->upvals[GETARG_B(*pc)]; + else { + lua_assert(GET_OPCODE(*pc) == OP_MOVE); + ncl->l.upvals[j] = luaF_findupval(L, base + GETARG_B(*pc)); + } + } + setclvalue(L, ra, ncl); + Protect(luaC_checkGC(L)); + continue; + } + case OP_VARARG: { + int b = GETARG_B(i) - 1; + int j; + CallInfo *ci = L->ci; + int n = cast_int(ci->base - ci->func) - cl->p->numparams - 1; + if (b == LUA_MULTRET) { + Protect(luaD_checkstack(L, n)); + ra = RA(i); /* previous call may change the stack */ + b = n; + L->top = ra + n; + } + for (j = 0; j < b; j++) { + if (j < n) { + setobjs2s(L, ra + j, ci->base - n + j); + } + else { + setnilvalue(ra + j); + } + } + continue; + } + } + } +} + diff --git a/mk/linux/mojosetup/lua/src/lvm.h b/mk/linux/mojosetup/lua/src/lvm.h new file mode 100644 index 00000000..bfe4f567 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lvm.h @@ -0,0 +1,36 @@ +/* +** $Id: lvm.h,v 2.5.1.1 2007/12/27 13:02:25 roberto Exp $ +** Lua virtual machine +** See Copyright Notice in lua.h +*/ + +#ifndef lvm_h +#define lvm_h + + +#include "ldo.h" +#include "lobject.h" +#include "ltm.h" + + +#define tostring(L,o) ((ttype(o) == LUA_TSTRING) || (luaV_tostring(L, o))) + +#define tonumber(o,n) (ttype(o) == LUA_TNUMBER || \ + (((o) = luaV_tonumber(o,n)) != NULL)) + +#define equalobj(L,o1,o2) \ + (ttype(o1) == ttype(o2) && luaV_equalval(L, o1, o2)) + + +LUAI_FUNC int luaV_lessthan (lua_State *L, const TValue *l, const TValue *r); +LUAI_FUNC int luaV_equalval (lua_State *L, const TValue *t1, const TValue *t2); +LUAI_FUNC const TValue *luaV_tonumber (const TValue *obj, TValue *n); +LUAI_FUNC int luaV_tostring (lua_State *L, StkId obj); +LUAI_FUNC void luaV_gettable (lua_State *L, const TValue *t, TValue *key, + StkId val); +LUAI_FUNC void luaV_settable (lua_State *L, const TValue *t, TValue *key, + StkId val); +LUAI_FUNC void luaV_execute (lua_State *L, int nexeccalls); +LUAI_FUNC void luaV_concat (lua_State *L, int total, int last); + +#endif diff --git a/mk/linux/mojosetup/lua/src/lzio.c b/mk/linux/mojosetup/lua/src/lzio.c new file mode 100644 index 00000000..293edd59 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lzio.c @@ -0,0 +1,82 @@ +/* +** $Id: lzio.c,v 1.31.1.1 2007/12/27 13:02:25 roberto Exp $ +** a generic input stream interface +** See Copyright Notice in lua.h +*/ + + +#include + +#define lzio_c +#define LUA_CORE + +#include "lua.h" + +#include "llimits.h" +#include "lmem.h" +#include "lstate.h" +#include "lzio.h" + + +int luaZ_fill (ZIO *z) { + size_t size; + lua_State *L = z->L; + const char *buff; + lua_unlock(L); + buff = z->reader(L, z->data, &size); + lua_lock(L); + if (buff == NULL || size == 0) return EOZ; + z->n = size - 1; + z->p = buff; + return char2int(*(z->p++)); +} + + +int luaZ_lookahead (ZIO *z) { + if (z->n == 0) { + if (luaZ_fill(z) == EOZ) + return EOZ; + else { + z->n++; /* luaZ_fill removed first byte; put back it */ + z->p--; + } + } + return char2int(*z->p); +} + + +void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader, void *data) { + z->L = L; + z->reader = reader; + z->data = data; + z->n = 0; + z->p = NULL; +} + + +/* --------------------------------------------------------------- read --- */ +size_t luaZ_read (ZIO *z, void *b, size_t n) { + while (n) { + size_t m; + if (luaZ_lookahead(z) == EOZ) + return n; /* return number of missing bytes */ + m = (n <= z->n) ? n : z->n; /* min. between n and z->n */ + memcpy(b, z->p, m); + z->n -= m; + z->p += m; + b = (char *)b + m; + n -= m; + } + return 0; +} + +/* ------------------------------------------------------------------------ */ +char *luaZ_openspace (lua_State *L, Mbuffer *buff, size_t n) { + if (n > buff->buffsize) { + if (n < LUA_MINBUFFER) n = LUA_MINBUFFER; + luaZ_resizebuffer(L, buff, n); + } + return buff->buffer; +} + + diff --git a/mk/linux/mojosetup/lua/src/lzio.h b/mk/linux/mojosetup/lua/src/lzio.h new file mode 100644 index 00000000..51d695d8 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/lzio.h @@ -0,0 +1,67 @@ +/* +** $Id: lzio.h,v 1.21.1.1 2007/12/27 13:02:25 roberto Exp $ +** Buffered streams +** See Copyright Notice in lua.h +*/ + + +#ifndef lzio_h +#define lzio_h + +#include "lua.h" + +#include "lmem.h" + + +#define EOZ (-1) /* end of stream */ + +typedef struct Zio ZIO; + +#define char2int(c) cast(int, cast(unsigned char, (c))) + +#define zgetc(z) (((z)->n--)>0 ? char2int(*(z)->p++) : luaZ_fill(z)) + +typedef struct Mbuffer { + char *buffer; + size_t n; + size_t buffsize; +} Mbuffer; + +#define luaZ_initbuffer(L, buff) ((buff)->buffer = NULL, (buff)->buffsize = 0) + +#define luaZ_buffer(buff) ((buff)->buffer) +#define luaZ_sizebuffer(buff) ((buff)->buffsize) +#define luaZ_bufflen(buff) ((buff)->n) + +#define luaZ_resetbuffer(buff) ((buff)->n = 0) + + +#define luaZ_resizebuffer(L, buff, size) \ + (luaM_reallocvector(L, (buff)->buffer, (buff)->buffsize, size, char), \ + (buff)->buffsize = size) + +#define luaZ_freebuffer(L, buff) luaZ_resizebuffer(L, buff, 0) + + +LUAI_FUNC char *luaZ_openspace (lua_State *L, Mbuffer *buff, size_t n); +LUAI_FUNC void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader, + void *data); +LUAI_FUNC size_t luaZ_read (ZIO* z, void* b, size_t n); /* read next n bytes */ +LUAI_FUNC int luaZ_lookahead (ZIO *z); + + + +/* --------- Private Part ------------------ */ + +struct Zio { + size_t n; /* bytes still unread */ + const char *p; /* current position in buffer */ + lua_Reader reader; + void* data; /* additional data */ + lua_State *L; /* Lua state (for reader) */ +}; + + +LUAI_FUNC int luaZ_fill (ZIO *z); + +#endif diff --git a/mk/linux/mojosetup/lua/src/print.c b/mk/linux/mojosetup/lua/src/print.c new file mode 100644 index 00000000..e240cfc3 --- /dev/null +++ b/mk/linux/mojosetup/lua/src/print.c @@ -0,0 +1,227 @@ +/* +** $Id: print.c,v 1.55a 2006/05/31 13:30:05 lhf Exp $ +** print bytecodes +** See Copyright Notice in lua.h +*/ + +#include +#include + +#define luac_c +#define LUA_CORE + +#include "ldebug.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lundump.h" + +#define PrintFunction luaU_print + +#define Sizeof(x) ((int)sizeof(x)) +#define VOID(p) ((const void*)(p)) + +static void PrintString(const TString* ts) +{ + const char* s=getstr(ts); + size_t i,n=ts->tsv.len; + putchar('"'); + for (i=0; ik[i]; + switch (ttype(o)) + { + case LUA_TNIL: + printf("nil"); + break; + case LUA_TBOOLEAN: + printf(bvalue(o) ? "true" : "false"); + break; + case LUA_TNUMBER: + printf(LUA_NUMBER_FMT,nvalue(o)); + break; + case LUA_TSTRING: + PrintString(rawtsvalue(o)); + break; + default: /* cannot happen */ + printf("? type=%d",ttype(o)); + break; + } +} + +static void PrintCode(const Proto* f) +{ + const Instruction* code=f->code; + int pc,n=f->sizecode; + for (pc=0; pc0) printf("[%d]\t",line); else printf("[-]\t"); + printf("%-9s\t",luaP_opnames[o]); + switch (getOpMode(o)) + { + case iABC: + printf("%d",a); + if (getBMode(o)!=OpArgN) printf(" %d",ISK(b) ? (-1-INDEXK(b)) : b); + if (getCMode(o)!=OpArgN) printf(" %d",ISK(c) ? (-1-INDEXK(c)) : c); + break; + case iABx: + if (getBMode(o)==OpArgK) printf("%d %d",a,-1-bx); else printf("%d %d",a,bx); + break; + case iAsBx: + if (o==OP_JMP) printf("%d",sbx); else printf("%d %d",a,sbx); + break; + } + switch (o) + { + case OP_LOADK: + printf("\t; "); PrintConstant(f,bx); + break; + case OP_GETUPVAL: + case OP_SETUPVAL: + printf("\t; %s", (f->sizeupvalues>0) ? getstr(f->upvalues[b]) : "-"); + break; + case OP_GETGLOBAL: + case OP_SETGLOBAL: + printf("\t; %s",svalue(&f->k[bx])); + break; + case OP_GETTABLE: + case OP_SELF: + if (ISK(c)) { printf("\t; "); PrintConstant(f,INDEXK(c)); } + break; + case OP_SETTABLE: + case OP_ADD: + case OP_SUB: + case OP_MUL: + case OP_DIV: + case OP_POW: + case OP_EQ: + case OP_LT: + case OP_LE: + if (ISK(b) || ISK(c)) + { + printf("\t; "); + if (ISK(b)) PrintConstant(f,INDEXK(b)); else printf("-"); + printf(" "); + if (ISK(c)) PrintConstant(f,INDEXK(c)); else printf("-"); + } + break; + case OP_JMP: + case OP_FORLOOP: + case OP_FORPREP: + printf("\t; to %d",sbx+pc+2); + break; + case OP_CLOSURE: + printf("\t; %p",VOID(f->p[bx])); + break; + case OP_SETLIST: + if (c==0) printf("\t; %d",(int)code[++pc]); + else printf("\t; %d",c); + break; + default: + break; + } + printf("\n"); + } +} + +#define SS(x) (x==1)?"":"s" +#define S(x) x,SS(x) + +static void PrintHeader(const Proto* f) +{ + const char* s=getstr(f->source); + if (*s=='@' || *s=='=') + s++; + else if (*s==LUA_SIGNATURE[0]) + s="(bstring)"; + else + s="(string)"; + printf("\n%s <%s:%d,%d> (%d instruction%s, %d bytes at %p)\n", + (f->linedefined==0)?"main":"function",s, + f->linedefined,f->lastlinedefined, + S(f->sizecode),f->sizecode*Sizeof(Instruction),VOID(f)); + printf("%d%s param%s, %d slot%s, %d upvalue%s, ", + f->numparams,f->is_vararg?"+":"",SS(f->numparams), + S(f->maxstacksize),S(f->nups)); + printf("%d local%s, %d constant%s, %d function%s\n", + S(f->sizelocvars),S(f->sizek),S(f->sizep)); +} + +static void PrintConstants(const Proto* f) +{ + int i,n=f->sizek; + printf("constants (%d) for %p:\n",n,VOID(f)); + for (i=0; isizelocvars; + printf("locals (%d) for %p:\n",n,VOID(f)); + for (i=0; ilocvars[i].varname),f->locvars[i].startpc+1,f->locvars[i].endpc+1); + } +} + +static void PrintUpvalues(const Proto* f) +{ + int i,n=f->sizeupvalues; + printf("upvalues (%d) for %p:\n",n,VOID(f)); + if (f->upvalues==NULL) return; + for (i=0; iupvalues[i])); + } +} + +void PrintFunction(const Proto* f, int full) +{ + int i,n=f->sizep; + PrintHeader(f); + PrintCode(f); + if (full) + { + PrintConstants(f); + PrintLocals(f); + PrintUpvalues(f); + } + for (i=0; ip[i],full); +} diff --git a/mk/linux/mojosetup/lua/test/README b/mk/linux/mojosetup/lua/test/README new file mode 100644 index 00000000..0c7f38bc --- /dev/null +++ b/mk/linux/mojosetup/lua/test/README @@ -0,0 +1,26 @@ +These are simple tests for Lua. Some of them contain useful code. +They are meant to be run to make sure Lua is built correctly and also +to be read, to see how Lua programs look. + +Here is a one-line summary of each program: + + bisect.lua bisection method for solving non-linear equations + cf.lua temperature conversion table (celsius to farenheit) + echo.lua echo command line arguments + env.lua environment variables as automatic global variables + factorial.lua factorial without recursion + fib.lua fibonacci function with cache + fibfor.lua fibonacci numbers with coroutines and generators + globals.lua report global variable usage + hello.lua the first program in every language + life.lua Conway's Game of Life + luac.lua bare-bones luac + printf.lua an implementation of printf + readonly.lua make global variables readonly + sieve.lua the sieve of of Eratosthenes programmed with coroutines + sort.lua two implementations of a sort function + table.lua make table, grouping all data for the same item + trace-calls.lua trace calls + trace-globals.lua trace assigments to global variables + xd.lua hex dump + diff --git a/mk/linux/mojosetup/lua/test/bisect.lua b/mk/linux/mojosetup/lua/test/bisect.lua new file mode 100644 index 00000000..f91e69bf --- /dev/null +++ b/mk/linux/mojosetup/lua/test/bisect.lua @@ -0,0 +1,27 @@ +-- bisection method for solving non-linear equations + +delta=1e-6 -- tolerance + +function bisect(f,a,b,fa,fb) + local c=(a+b)/2 + io.write(n," c=",c," a=",a," b=",b,"\n") + if c==a or c==b or math.abs(a-b) posted to lua-l +-- modified to use ANSI terminal escape sequences +-- modified to use for instead of while + +local write=io.write + +ALIVE="¥" DEAD="þ" +ALIVE="O" DEAD="-" + +function delay() -- NOTE: SYSTEM-DEPENDENT, adjust as necessary + for i=1,10000 do end + -- local i=os.clock()+1 while(os.clock() 0 do + local xm1,x,xp1,xi=self.w-1,self.w,1,self.w + while xi > 0 do + local sum = self[ym1][xm1] + self[ym1][x] + self[ym1][xp1] + + self[y][xm1] + self[y][xp1] + + self[yp1][xm1] + self[yp1][x] + self[yp1][xp1] + next[y][x] = ((sum==2) and self[y][x]) or ((sum==3) and 1) or 0 + xm1,x,xp1,xi = x,xp1,xp1+1,xi-1 + end + ym1,y,yp1,yi = y,yp1,yp1+1,yi-1 + end +end + +-- output the array to screen +function _CELLS:draw() + local out="" -- accumulate to reduce flicker + for y=1,self.h do + for x=1,self.w do + out=out..(((self[y][x]>0) and ALIVE) or DEAD) + end + out=out.."\n" + end + write(out) +end + +-- constructor +function CELLS(w,h) + local c = ARRAY2D(w,h) + c.spawn = _CELLS.spawn + c.evolve = _CELLS.evolve + c.draw = _CELLS.draw + return c +end + +-- +-- shapes suitable for use with spawn() above +-- +HEART = { 1,0,1,1,0,1,1,1,1; w=3,h=3 } +GLIDER = { 0,0,1,1,0,1,0,1,1; w=3,h=3 } +EXPLODE = { 0,1,0,1,1,1,1,0,1,0,1,0; w=3,h=4 } +FISH = { 0,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,0,0,1,0; w=5,h=4 } +BUTTERFLY = { 1,0,0,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,1,0,0,0,1; w=5,h=5 } + +-- the main routine +function LIFE(w,h) + -- create two arrays + local thisgen = CELLS(w,h) + local nextgen = CELLS(w,h) + + -- create some life + -- about 1000 generations of fun, then a glider steady-state + thisgen:spawn(GLIDER,5,4) + thisgen:spawn(EXPLODE,25,10) + thisgen:spawn(FISH,4,12) + + -- run until break + local gen=1 + write("\027[2J") -- ANSI clear screen + while 1 do + thisgen:evolve(nextgen) + thisgen,nextgen = nextgen,thisgen + write("\027[H") -- ANSI home cursor + thisgen:draw() + write("Life - generation ",gen,"\n") + gen=gen+1 + if gen>2000 then break end + --delay() -- no delay + end +end + +LIFE(40,20) diff --git a/mk/linux/mojosetup/lua/test/luac.lua b/mk/linux/mojosetup/lua/test/luac.lua new file mode 100644 index 00000000..96a0a97c --- /dev/null +++ b/mk/linux/mojosetup/lua/test/luac.lua @@ -0,0 +1,7 @@ +-- bare-bones luac in Lua +-- usage: lua luac.lua file.lua + +assert(arg[1]~=nil and arg[2]==nil,"usage: lua luac.lua file.lua") +f=assert(io.open("luac.out","wb")) +assert(f:write(string.dump(assert(loadfile(arg[1]))))) +assert(f:close()) diff --git a/mk/linux/mojosetup/lua/test/printf.lua b/mk/linux/mojosetup/lua/test/printf.lua new file mode 100644 index 00000000..58c63ff5 --- /dev/null +++ b/mk/linux/mojosetup/lua/test/printf.lua @@ -0,0 +1,7 @@ +-- an implementation of printf + +function printf(...) + io.write(string.format(...)) +end + +printf("Hello %s from %s on %s\n",os.getenv"USER" or "there",_VERSION,os.date()) diff --git a/mk/linux/mojosetup/lua/test/readonly.lua b/mk/linux/mojosetup/lua/test/readonly.lua new file mode 100644 index 00000000..85c0b4e0 --- /dev/null +++ b/mk/linux/mojosetup/lua/test/readonly.lua @@ -0,0 +1,12 @@ +-- make global variables readonly + +local f=function (t,i) error("cannot redefine global variable `"..i.."'",2) end +local g={} +local G=getfenv() +setmetatable(g,{__index=G,__newindex=f}) +setfenv(1,g) + +-- an example +rawset(g,"x",3) +x=2 +y=1 -- cannot redefine `y' diff --git a/mk/linux/mojosetup/lua/test/sieve.lua b/mk/linux/mojosetup/lua/test/sieve.lua new file mode 100644 index 00000000..0871bb21 --- /dev/null +++ b/mk/linux/mojosetup/lua/test/sieve.lua @@ -0,0 +1,29 @@ +-- the sieve of of Eratosthenes programmed with coroutines +-- typical usage: lua -e N=1000 sieve.lua | column + +-- generate all the numbers from 2 to n +function gen (n) + return coroutine.wrap(function () + for i=2,n do coroutine.yield(i) end + end) +end + +-- filter the numbers generated by `g', removing multiples of `p' +function filter (p, g) + return coroutine.wrap(function () + while 1 do + local n = g() + if n == nil then return end + if math.mod(n, p) ~= 0 then coroutine.yield(n) end + end + end) +end + +N=N or 1000 -- from command line +x = gen(N) -- generate primes up to N +while 1 do + local n = x() -- pick a number until done + if n == nil then break end + print(n) -- must be a prime number + x = filter(n, x) -- now remove its multiples +end diff --git a/mk/linux/mojosetup/lua/test/sort.lua b/mk/linux/mojosetup/lua/test/sort.lua new file mode 100644 index 00000000..0bcb15f8 --- /dev/null +++ b/mk/linux/mojosetup/lua/test/sort.lua @@ -0,0 +1,66 @@ +-- two implementations of a sort function +-- this is an example only. Lua has now a built-in function "sort" + +-- extracted from Programming Pearls, page 110 +function qsort(x,l,u,f) + if ly end) + show("after reverse selection sort",x) + qsort(x,1,n,function (x,y) return x>> ",string.rep(" ",level)) + if t~=nil and t.currentline>=0 then io.write(t.short_src,":",t.currentline," ") end + t=debug.getinfo(2) + if event=="call" then + level=level+1 + else + level=level-1 if level<0 then level=0 end + end + if t.what=="main" then + if event=="call" then + io.write("begin ",t.short_src) + else + io.write("end ",t.short_src) + end + elseif t.what=="Lua" then +-- table.foreach(t,print) + io.write(event," ",t.name or "(Lua)"," <",t.linedefined,":",t.short_src,">") + else + io.write(event," ",t.name or "(C)"," [",t.what,"] ") + end + io.write("\n") +end + +debug.sethook(hook,"cr") +level=0 diff --git a/mk/linux/mojosetup/lua/test/trace-globals.lua b/mk/linux/mojosetup/lua/test/trace-globals.lua new file mode 100644 index 00000000..295e670c --- /dev/null +++ b/mk/linux/mojosetup/lua/test/trace-globals.lua @@ -0,0 +1,38 @@ +-- trace assigments to global variables + +do + -- a tostring that quotes strings. note the use of the original tostring. + local _tostring=tostring + local tostring=function(a) + if type(a)=="string" then + return string.format("%q",a) + else + return _tostring(a) + end + end + + local log=function (name,old,new) + local t=debug.getinfo(3,"Sl") + local line=t.currentline + io.write(t.short_src) + if line>=0 then io.write(":",line) end + io.write(": ",name," is now ",tostring(new)," (was ",tostring(old),")","\n") + end + + local g={} + local set=function (t,name,value) + log(name,g[name],value) + g[name]=value + end + setmetatable(getfenv(),{__index=g,__newindex=set}) +end + +-- an example + +a=1 +b=2 +a=10 +b=20 +b=nil +b=200 +print(a,b,c) diff --git a/mk/linux/mojosetup/lua/test/xd.lua b/mk/linux/mojosetup/lua/test/xd.lua new file mode 100644 index 00000000..ebc3effc --- /dev/null +++ b/mk/linux/mojosetup/lua/test/xd.lua @@ -0,0 +1,14 @@ +-- hex dump +-- usage: lua xd.lua < file + +local offset=0 +while true do + local s=io.read(16) + if s==nil then return end + io.write(string.format("%08X ",offset)) + string.gsub(s,"(.)", + function (c) io.write(string.format("%02X ",string.byte(c))) end) + io.write(string.rep(" ",3*(16-string.len(s)))) + io.write(" ",string.gsub(s,"%c","."),"\n") + offset=offset+16 +end diff --git a/mk/linux/mojosetup/lua_glue.c b/mk/linux/mojosetup/lua_glue.c new file mode 100644 index 00000000..14adb8d3 --- /dev/null +++ b/mk/linux/mojosetup/lua_glue.c @@ -0,0 +1,1926 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#include "universal.h" +#include "lua_glue.h" +#include "platform.h" +#include "fileio.h" +#include "lua.h" +#include "lauxlib.h" +#include "lualib.h" +#include "gui.h" + +#define MOJOSETUP_NAMESPACE "MojoSetup" + +static lua_State *luaState = NULL; + +// Allocator interface for internal Lua use. +static void *MojoLua_alloc(void *ud, void *ptr, size_t osize, size_t nsize) +{ + if (nsize == 0) + { + free(ptr); + return NULL; + } // if + return xrealloc(ptr, nsize); +} // MojoLua_alloc + + +// Read data from a MojoInput when loading Lua code. +static const char *MojoLua_reader(lua_State *L, void *data, size_t *size) +{ + MojoInput *in = (MojoInput *) data; + char *retval = (char *) scratchbuf_128k; + int64 br = in->read(in, scratchbuf_128k, sizeof (scratchbuf_128k)); + if (br <= 0) // eof or error? (lua doesn't care which?!) + { + br = 0; + retval = NULL; + } // if + + *size = (size_t) br; + return retval; +} // MojoLua_reader + + +// Sets t[sym]=f, where t is on the top of the Lua stack. +// !!! FIXME: why is this a different naming convention? +static inline void set_cfunc(lua_State *L, lua_CFunction f, const char *sym) +{ + lua_pushcfunction(L, f); + lua_setfield(L, -2, sym); +} // set_cfunc + + +// Sets t[sym]=f, where t is on the top of the Lua stack. +// !!! FIXME: why is this a different naming convention? +static inline void set_cptr(lua_State *L, void *ptr, const char *sym) +{ + lua_pushlightuserdata(L, ptr); + lua_setfield(L, -2, sym); +} // set_cptr + + +// Sets t[sym]=f, where t is on the top of the Lua stack. +// !!! FIXME: why is this a different naming convention? +static inline void set_string(lua_State *L, const char *str, const char *sym) +{ + if (str == NULL) + lua_pushnil(L); + else + lua_pushstring(L, str); + lua_setfield(L, -2, sym); +} // set_string + + +// Sets t[sym]=f, where t is on the top of the Lua stack. +// !!! FIXME: why is this a different naming convention? +static inline void set_number(lua_State *L, lua_Number x, const char *sym) +{ + lua_pushnumber(L, x); + lua_setfield(L, -2, sym); +} // set_number + + +// Sets t[sym]=f, where t is on the top of the Lua stack. +// !!! FIXME: why is this a different naming convention? +static inline void set_integer(lua_State *L, lua_Integer x, const char *sym) +{ + lua_pushinteger(L, x); + lua_setfield(L, -2, sym); +} // set_integer + + +// Sets t[sym]=f, where t is on the top of the Lua stack. +// !!! FIXME: why is this a different naming convention? +static inline void set_boolean(lua_State *L, boolean x, const char *sym) +{ + lua_pushboolean(L, x); + lua_setfield(L, -2, sym); +} // set_boolean + + +// !!! FIXME: why is this a different naming convention? +static inline void set_string_array(lua_State *L, int argc, const char **argv, + const char *sym) +{ + int i; + lua_newtable(L); + for (i = 0; i < argc; i++) + { + lua_pushinteger(L, i+1); // lua is option base 1! + lua_pushstring(L, argv[i]); + lua_settable(L, -3); + } // for + lua_setfield(L, -2, sym); +} // set_string_array + + +void MojoLua_setString(const char *str, const char *sym) +{ + lua_getglobal(luaState, MOJOSETUP_NAMESPACE); + set_string(luaState, str, sym); + lua_pop(luaState, 1); +} // MojoLua_setString + + +void MojoLua_setStringArray(int argc, const char **argv, const char *sym) +{ + lua_getglobal(luaState, MOJOSETUP_NAMESPACE); + set_string_array(luaState, argc, argv, sym); + lua_pop(luaState, 1); +} // MojoLua_setStringArray + + +static inline int retvalString(lua_State *L, const char *str) +{ + if (str != NULL) + lua_pushstring(L, str); + else + lua_pushnil(L); + return 1; +} // retvalString + + +static inline int retvalBoolean(lua_State *L, boolean b) +{ + lua_pushboolean(L, b); + return 1; +} // retvalBoolean + + +static inline int retvalNumber(lua_State *L, lua_Number n) +{ + lua_pushnumber(L, n); + return 1; +} // retvalNumber + + +static inline int retvalLightUserData(lua_State *L, void *data) +{ + if (data != NULL) + lua_pushlightuserdata(L, data); + else + lua_pushnil(L); + return 1; +} // retvalLightUserData + + +static int retvalChecksums(lua_State *L, const MojoChecksums *sums) +{ + lua_newtable(L); + + #if SUPPORT_CRC32 + { + char buf[64]; + snprintf(buf, sizeof (buf), "%X", (unsigned int) sums->crc32); + set_string(L, buf, "crc32"); + } + #endif + + #if SUPPORT_MD5 + { + char buf[64]; + const uint8 *dig = sums->md5; + snprintf(buf, sizeof (buf), "%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X", + (int) dig[0], (int) dig[1], (int) dig[2], (int) dig[3], + (int) dig[4], (int) dig[5], (int) dig[6], (int) dig[7], + (int) dig[8], (int) dig[9], (int) dig[10], (int) dig[11], + (int) dig[12], (int) dig[13], (int) dig[14], (int) dig[15]); + set_string(L, buf, "md5"); + } + #endif + + #if SUPPORT_SHA1 + { + char buf[64]; + const uint8 *dig = sums->sha1; + snprintf(buf, sizeof (buf), "%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X", + (int) dig[0], (int) dig[1], (int) dig[2], (int) dig[3], + (int) dig[4], (int) dig[5], (int) dig[6], (int) dig[7], + (int) dig[8], (int) dig[9], (int) dig[10], (int) dig[11], + (int) dig[12], (int) dig[13], (int) dig[14], (int) dig[15], + (int) dig[16], (int) dig[17], (int) dig[18], (int) dig[19]); + set_string(L, buf, "sha1"); + } + #endif + + return 1; +} // retvalChecksums + + +static inline int snprintfcat(char **ptr, size_t *len, const char *fmt, ...) +{ + int bw = 0; + va_list ap; + va_start(ap, fmt); + bw = vsnprintf(*ptr, *len, fmt, ap); + va_end(ap); + *ptr += bw; + *len -= bw; + return bw; +} // snprintfcat + + +static int luahook_stackwalk(lua_State *L) +{ + const char *errstr = lua_tostring(L, 1); + lua_Debug ldbg; + int i = 0; + + if (errstr != NULL) + logDebug("%0", errstr); + + logDebug("Lua stack backtrace:"); + + // start at 1 to skip this function. + for (i = 1; lua_getstack(L, i, &ldbg); i++) + { + char *ptr = (char *) scratchbuf_128k; + size_t len = sizeof (scratchbuf_128k); + int bw = snprintfcat(&ptr, &len, "#%d", i-1); + const int maxspacing = 4; + int spacing = maxspacing - bw; + while (spacing-- > 0) + snprintfcat(&ptr, &len, " "); + + if (!lua_getinfo(L, "nSl", &ldbg)) + { + snprintfcat(&ptr, &len, "???\n"); + logDebug("%0", (const char *) scratchbuf_128k); + continue; + } // if + + if (ldbg.namewhat[0]) + snprintfcat(&ptr, &len, "%s ", ldbg.namewhat); + + if ((ldbg.name) && (ldbg.name[0])) + snprintfcat(&ptr, &len, "function %s ()", ldbg.name); + else + { + if (strcmp(ldbg.what, "main") == 0) + snprintfcat(&ptr, &len, "mainline of chunk"); + else if (strcmp(ldbg.what, "tail") == 0) + snprintfcat(&ptr, &len, "tail call"); + else + snprintfcat(&ptr, &len, "unidentifiable function"); + } // if + + logDebug("%0", (const char *) scratchbuf_128k); + ptr = (char *) scratchbuf_128k; + len = sizeof (scratchbuf_128k); + + for (spacing = 0; spacing < maxspacing; spacing++) + snprintfcat(&ptr, &len, " "); + + if (strcmp(ldbg.what, "C") == 0) + snprintfcat(&ptr, &len, "in native code"); + else if (strcmp(ldbg.what, "tail") == 0) + snprintfcat(&ptr, &len, "in Lua code"); + else if ( (strcmp(ldbg.source, "=?") == 0) && (ldbg.currentline == 0) ) + snprintfcat(&ptr, &len, "in Lua code (debug info stripped)"); + else + { + snprintfcat(&ptr, &len, "in Lua code at %s", ldbg.short_src); + if (ldbg.currentline != -1) + snprintfcat(&ptr, &len, ":%d", ldbg.currentline); + } // else + logDebug("%0", (const char *) scratchbuf_128k); + } // for + + return retvalString(L, errstr ? errstr : ""); +} // luahook_stackwalk + + +// This just lets you punch in one-liners and Lua will run them as individual +// chunks, but you can completely access all Lua state, including calling C +// functions and altering tables. At this time, it's more of a "console" +// than a debugger. You can do "p MojoLua_debugger()" from gdb to launch this +// from a breakpoint in native code, or call MojoSetup.debugger() to launch +// it from Lua code (with stacktrace intact, too: type 'bt' to see it). +static int luahook_debugger(lua_State *L) +{ +#if DISABLE_LUA_PARSER + logError("Lua debugger is disabled in this build (no parser)."); +#else + int origtop; + const MojoSetupLogLevel origloglevel = MojoLog_logLevel; + + lua_pushcfunction(luaState, luahook_stackwalk); + origtop = lua_gettop(L); + + printf("Quick and dirty Lua debugger. Type 'exit' to quit.\n"); + + while (true) + { + char *buf = (char *) scratchbuf_128k; + int len = 0; + printf("> "); + fflush(stdout); + if (fgets(buf, sizeof (scratchbuf_128k), stdin) == NULL) + { + printf("\n\n fgets() on stdin failed: "); + break; + } // if + + len = (int) (strlen(buf) - 1); + while ( (len >= 0) && ((buf[len] == '\n') || (buf[len] == '\r')) ) + buf[len--] = '\0'; + + if (strcmp(buf, "q") == 0) + break; + else if (strcmp(buf, "quit") == 0) + break; + else if (strcmp(buf, "exit") == 0) + break; + else if (strcmp(buf, "bt") == 0) + { + MojoLog_logLevel = MOJOSETUP_LOG_EVERYTHING; + strcpy(buf, "MojoSetup.stackwalk()"); + } // else if + + if ( (luaL_loadstring(L, buf) != 0) || + (lua_pcall(luaState, 0, LUA_MULTRET, -2) != 0) ) + { + printf("%s\n", lua_tostring(L, -1)); + lua_pop(L, 1); + } // if + else + { + printf("Returned %d values.\n", lua_gettop(L) - origtop); + while (lua_gettop(L) != origtop) + { + // !!! FIXME: dump details of values to stdout here. + lua_pop(L, 1); + } // while + printf("\n"); + } // else + + MojoLog_logLevel = origloglevel; + } // while + + lua_pop(L, 1); + printf("exiting debugger...\n"); +#endif + + return 0; +} // luahook_debugger + + +void MojoLua_debugger(void) +{ + luahook_debugger(luaState); +} // MojoLua_debugger + + +boolean MojoLua_callProcedure(const char *funcname) +{ + boolean called = false; + lua_State *L = luaState; + int popcount = 0; + + if (L != NULL) + { + lua_getglobal(L, MOJOSETUP_NAMESPACE); popcount++; + if (lua_istable(L, -1)) // namespace is sane? + { + lua_getfield(L, -1, funcname); popcount++; + if (lua_isfunction(L, -1)) + { + lua_call(L, 0, 0); + called = true; + } // if + } // if + lua_pop(L, popcount); + } // if + + return called; +} // MojoLua_callProcedure + + +boolean MojoLua_runFileFromDir(const char *dir, const char *name) +{ + MojoArchive *ar = GBaseArchive; // in case we want to generalize later. + const MojoArchiveEntry *entinfo = NULL; + boolean retval = false; + char *clua = format("%0/%1.luac", dir, name); // compiled filename. + char *ulua = format("%0/%1.lua", dir, name); // uncompiled filename. + int rc = 0; + MojoInput *io = NULL; + + if (ar->enumerate(ar)) + { + while ((io == NULL) && ((entinfo = ar->enumNext(ar)) != NULL)) + { + boolean match = false; + + if (entinfo->type != MOJOARCHIVE_ENTRY_FILE) + continue; + + match = (strcmp(entinfo->filename, clua) == 0); + #if !DISABLE_LUA_PARSER + if (!match) + match = (strcmp(entinfo->filename, ulua) == 0); + #endif + + if (match) + io = ar->openCurrentEntry(ar); + } // while + } // if + + free(ulua); + free(clua); + + if (io != NULL) + { + char *realfname = (char *) xmalloc(strlen(entinfo->filename) + 2); + sprintf(realfname, "@%s", entinfo->filename); + lua_pushcfunction(luaState, luahook_stackwalk); + rc = lua_load(luaState, MojoLua_reader, io, realfname); + free(realfname); + io->close(io); + + if (rc != 0) + lua_error(luaState); + else + { + // Call new chunk on top of the stack (lua_pcall will pop it off). + if (lua_pcall(luaState, 0, 0, -2) != 0) // retvals are dumped. + lua_error(luaState); // error on stack has debug info. + else + retval = true; // if this didn't panic, we succeeded. + } // if + lua_pop(luaState, 1); // dump stackwalker. + } // if + + return retval; +} // MojoLua_runFileFromDir + + +boolean MojoLua_runFile(const char *name) +{ + return MojoLua_runFileFromDir("scripts", name); +} // MojoLua_runFile + + +void MojoLua_collectGarbage(void) +{ + lua_State *L = luaState; + uint32 ticks = 0; + int pre = 0; + int post = 0; + + lua_getglobal(L, MOJOSETUP_NAMESPACE); + if (lua_istable(L, -1)) // namespace is sane? + set_integer(L, 0, "garbagecounter"); + lua_pop(L, 1); + + pre = (lua_gc(L, LUA_GCCOUNT, 0) * 1024) + lua_gc(L, LUA_GCCOUNTB, 0); + logDebug("Collecting garbage (currently using %0 bytes).", numstr(pre)); + ticks = MojoPlatform_ticks(); + lua_gc (L, LUA_GCCOLLECT, 0); + profile("Garbage collection", ticks); + post = (lua_gc(L, LUA_GCCOUNT, 0) * 1024) + lua_gc(L, LUA_GCCOUNTB, 0); + logDebug("Now using %0 bytes (%1 bytes savings).", + numstr(post), numstr(pre - post)); +} // MojoLua_collectGarbage + + +// You can trigger the garbage collector with more control in the standard +// Lua runtime, but this notes profiling and statistics via logDebug(), +// and resets MojoSetup.garbagecounter to zero. +static int luahook_collectgarbage(lua_State *L) +{ + MojoLua_collectGarbage(); + return 0; +} // luahook_collectgarbage + + +// Since localization is kept in Lua tables, I stuck this in the Lua glue. +const char *translate(const char *str) +{ + const char *retval = str; + + if (luaState != NULL) // No translations before Lua is initialized. + { + if (lua_checkstack(luaState, 3)) + { + int popcount = 0; + lua_getglobal(luaState, MOJOSETUP_NAMESPACE); popcount++; + if (lua_istable(luaState, -1)) // namespace is sane? + { + lua_getfield(luaState, -1, "translations"); popcount++; + if (lua_istable(luaState, -1)) // translation table is sane? + { + const char *tr = NULL; + lua_getfield(luaState, -1, str); popcount++; + tr = lua_tostring(luaState, -1); + if (tr != NULL) // translated for this locale? + { + char *dst = (char *) scratchbuf_128k; + xstrncpy(dst, tr, sizeof(scratchbuf_128k)); + retval = dst; + } // if + } // if + } // if + lua_pop(luaState, popcount); // remove our stack salsa. + } // if + } // if + + return retval; +} // translate + + +// Lua interface to format(). +static int luahook_format(lua_State *L) +{ + const int argc = lua_gettop(L); + const char *fmt = luaL_checkstring(L, 1); + char *formatted = NULL; + char *s[10]; + int i; + + assert(argc <= 11); // fmt, plus %0 through %9. + + for (i = 0; i < STATICARRAYLEN(s); i++) + { + const char *str = NULL; + if ((i+2) <= argc) + str = lua_tostring(L, i+2); + s[i] = (str == NULL) ? NULL : xstrdup(str); + } // for + + // I think this is legal (but probably not moral) C code. + formatted = format(fmt,s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7],s[8],s[9]); + + for (i = 0; i < STATICARRAYLEN(s); i++) + free(s[i]); + + lua_pushstring(L, formatted); + free(formatted); + return 1; +} // luahook_format + + +// Use this instead of Lua's error() function if you don't have a +// programatic error, so you don't get stack callback stuff: +// MojoSetup.fatal("You need the base game to install this expansion pack.") +// This will also handle cleanup of half-written installations. +// Doesn't actually return. +static int luahook_fatal(lua_State *L) +{ + const char *errstr = lua_tostring(L, 1); + if (errstr == NULL) + return fatal(NULL); // doesn't actually return. + return fatal("%0", errstr); // doesn't actually return. +} // luahook_fatal + + +// Lua interface to MojoLua_runFile(). This is needed instead of Lua's +// require(), since it can access scripts inside an archive. +static int luahook_runfile(lua_State *L) +{ + const char *fname = luaL_checkstring(L, 1); + return retvalBoolean(L, MojoLua_runFile(fname)); +} // luahook_runfile + + +// Lua interface to MojoLua_runFileFromDir(). This is needed instead of Lua's +// require(), since it can access scripts inside an archive. +static int luahook_runfilefromdir(lua_State *L) +{ + const char *dir = luaL_checkstring(L, 1); + const char *fname = luaL_checkstring(L, 2); + return retvalBoolean(L, MojoLua_runFileFromDir(dir, fname)); +} // luahook_runfile + + +// Lua interface to translate(). +static int luahook_translate(lua_State *L) +{ + const char *str = luaL_checkstring(L, 1); + return retvalString(L, translate(str)); +} // luahook_translate + + +static int luahook_ticks(lua_State *L) +{ + return retvalNumber(L, MojoPlatform_ticks()); +} // luahook_ticks + + +static int luahook_launchbrowser(lua_State *L) +{ + const char *url = luaL_checkstring(L, 1); + return retvalBoolean(L, MojoPlatform_launchBrowser(url)); +} // luahook_launchbrowser + + +static int luahook_verifyproductkey(lua_State *L) +{ + boolean retval = false; + + // ATTENTION: you can use this function to do your CD key verification + // in C code. Just remove the #if 0, and then process the ASCII string + // in (key), setting (retval) to (true) if the key is valid, and (false) + // if it isn't. Then when filling in a Setup.ProductKey in your + // config.lua, set (verify) to "MojoSetup.verifyproductkey". + #if 0 + const char *key = luaL_checkstring(L, 1); + #endif + + return retvalBoolean(L, retval); +} // luahook_verifyproductkey + + +static int luahook_msgbox(lua_State *L) +{ + if (GGui != NULL) + { + const char *title = luaL_checkstring(L, 1); + const char *text = luaL_checkstring(L, 2); + GGui->msgbox(title, text); + } // if + return 0; +} // luahook_msgbox + + +static int luahook_promptyn(lua_State *L) +{ + boolean rc = false; + if (GGui != NULL) + { + const char *title = luaL_checkstring(L, 1); + const char *text = luaL_checkstring(L, 2); + const boolean defval = lua_toboolean(L, 3); + rc = GGui->promptyn(title, text, defval); + } // if + + return retvalBoolean(L, rc); +} // luahook_promptyn + + +static int luahook_promptynan(lua_State *L) +{ + MojoGuiYNAN rc = MOJOGUI_NO; + if (GGui != NULL) + { + const char *title = luaL_checkstring(L, 1); + const char *text = luaL_checkstring(L, 2); + const boolean defval = lua_toboolean(L, 3); + rc = GGui->promptynan(title, text, defval); + } // if + + // Never localize these strings! + switch (rc) + { + case MOJOGUI_YES: return retvalString(L, "yes"); + case MOJOGUI_NO: return retvalString(L, "no"); + case MOJOGUI_ALWAYS: return retvalString(L, "always"); + case MOJOGUI_NEVER: return retvalString(L, "never"); + } // switch + + assert(false && "BUG: unhandled case in switch statement"); + return 0; // shouldn't hit this. +} // luahook_promptynan + + +static int luahook_logwarning(lua_State *L) +{ + logWarning("%0", luaL_checkstring(L, 1)); + return 0; +} // luahook_logwarning + + +static int luahook_logerror(lua_State *L) +{ + logError("%0", luaL_checkstring(L, 1)); + return 0; +} // luahook_logerror + + +static int luahook_loginfo(lua_State *L) +{ + logInfo("%0", luaL_checkstring(L, 1)); + return 0; +} // luahook_loginfo + + +static int luahook_logdebug(lua_State *L) +{ + logDebug("%0", luaL_checkstring(L, 1)); + return 0; +} // luahook_logdebug + + +static int luahook_cmdline(lua_State *L) +{ + const char *arg = luaL_checkstring(L, 1); + return retvalBoolean(L, cmdline(arg)); +} // luahook_cmdline + + +static int luahook_cmdlinestr(lua_State *L) +{ + const int argc = lua_gettop(L); + const char *arg = luaL_checkstring(L, 1); + const char *envr = (argc < 2) ? NULL : lua_tostring(L, 2); // may be nil + const char *deflt = (argc < 3) ? NULL : lua_tostring(L, 3); // may be nil + return retvalString(L, cmdlinestr(arg, envr, deflt)); +} // luahook_cmdlinestr + + +static int luahook_truncatenum(lua_State *L) +{ + const lua_Number dbl = lua_tonumber(L, 1); + return retvalNumber(L, (lua_Number) ((int64) dbl)); +} // luahook_truncatenum + + +static int luahook_wildcardmatch(lua_State *L) +{ + const char *str = luaL_checkstring(L, 1); + const char *pattern = luaL_checkstring(L, 2); + return retvalBoolean(L, wildcardMatch(str, pattern)); +} // luahook_wildcardmatch + + +// Do a regular C strcmp(), don't let the locale get in the way like it does +// in Lua's string comparison operators (which uses strcoll()). +static int luahook_strcmp(lua_State *L) +{ + const char *a = luaL_checkstring(L, 1); + const char *b = luaL_checkstring(L, 2); + return retvalNumber(L, strcmp(a, b)); +} // luahook_strcmp + + +static int luahook_findmedia(lua_State *L) +{ + // Let user specify overrides of directories to act as drives. + // This is good if for some reason MojoSetup can't find them, or they + // want to pretend a copy on the filesystem is really a CD, etc. + // Put your anti-piracy crap in your OWN program. :) + // + // You can specify with command lines or environment variables, command + // lines taking precedence: + // MOJOSETUP_MEDIA0=/my/patch ./installer --media1=/over/there + // + // --media and MOJOSETUP_MEDIA are checked first, then --media0 and + // MOJOSETUP_MEDIA0, etc until you find the media or run out of + // overrides. + // + // After the overrides, we ask the platform layer to find the media. + + const char *unique = luaL_checkstring(L, 1); + const char *override = cmdlinestr("media", "MOJOSETUP_MEDIA", NULL); + char *physical = NULL; + char cmdbuf[64]; + char envrbuf[64]; + int i = 0; + + do + { + if ( (override) && (MojoPlatform_exists(override, unique)) ) + return retvalString(L, override); + + snprintf(cmdbuf, sizeof (cmdbuf), "media%d", i); + snprintf(envrbuf, sizeof (envrbuf), "MOJOSETUP_MEDIA%d", i); + } while ((override = cmdlinestr(cmdbuf, envrbuf, NULL)) != NULL); + + // No override. Try platform layer for real media... + physical = MojoPlatform_findMedia(unique); + retvalString(L, physical); // may push nil. + free(physical); + return 1; +} // luahook_findmedia + + +static boolean writeCallback(uint32 ticks, int64 justwrote, int64 bw, + int64 total, void *data) +{ + boolean retval = false; + lua_State *L = (lua_State *) data; + // Lua callback is on top of stack... + if (lua_isnil(L, -1)) + retval = true; + else + { + lua_pushvalue(L, -1); + lua_pushnumber(L, (lua_Number) ticks); + lua_pushnumber(L, (lua_Number) justwrote); + lua_pushnumber(L, (lua_Number) bw); + lua_pushnumber(L, (lua_Number) total); + lua_call(L, 4, 1); + retval = lua_toboolean(L, -1); + lua_pop(L, 1); + } // if + return retval; +} // writeCallback + + +// !!! FIXME: push this into Lua, make things fatal. +static int do_writefile(lua_State *L, MojoInput *in, uint16 perms) +{ + const char *path = luaL_checkstring(L, 2); + int retval = 0; + boolean rc = false; + MojoChecksums sums; + int64 maxbytes = -1; + + if (in != NULL) + { + if (!lua_isnil(L, 3)) + { + boolean valid = false; + const char *permstr = luaL_checkstring(L, 3); + perms = MojoPlatform_makePermissions(permstr, &valid); + if (!valid) + fatal(_("BUG: '%0' is not a valid permission string"), permstr); + } // if + + if (!lua_isnil(L, 4)) + maxbytes = luaL_checkinteger(L, 4); + + rc = MojoInput_toPhysicalFile(in, path, perms, &sums, maxbytes, + writeCallback, L); + } // if + + retval += retvalBoolean(L, rc); + if (rc) + retval += retvalChecksums(L, &sums); + return retval; +} // do_writefile + + +static int luahook_writefile(lua_State *L) +{ + MojoArchive *archive = (MojoArchive *) lua_touserdata(L, 1); + uint16 perms = archive->prevEnum.perms; + MojoInput *in = archive->openCurrentEntry(archive); + return do_writefile(L, in, perms); +} // luahook_writefile + + +static int luahook_download(lua_State *L) +{ + const char *src = luaL_checkstring(L, 1); + MojoInput *in = MojoInput_newFromURL(src); + return do_writefile(L, in, MojoPlatform_defaultFilePerms()); +} // luahook_download + + +static int luahook_copyfile(lua_State *L) +{ + const char *src = luaL_checkstring(L, 1); + MojoInput *in = MojoInput_newFromFile(src); + return do_writefile(L, in, MojoPlatform_defaultFilePerms()); +} // luahook_copyfile + + +static int luahook_stringtofile(lua_State *L) +{ + const char *str = luaL_checkstring(L, 1); + MojoInput *in = NULL; + size_t len = 0; + str = lua_tolstring(L, 1, &len); + in = MojoInput_newFromMemory((const uint8 *) str, (uint32) len, 1); + assert(in != NULL); // xmalloc() would fatal(), should not return NULL. + return do_writefile(L, in, MojoPlatform_defaultFilePerms()); +} // luahook_stringtofile + + +static int luahook_isvalidperms(lua_State *L) +{ + boolean valid = false; + const char *permstr = NULL; + if (!lua_isnil(L, 1)) + permstr = luaL_checkstring(L, 1); + MojoPlatform_makePermissions(permstr, &valid); + return retvalBoolean(L, valid); +} // luahook_isvalidperms + + +static int do_checksum(lua_State *L, MojoInput *in) +{ + MojoChecksumContext ctx; + MojoChecksums sums; + int64 br = 0; + + MojoChecksum_init(&ctx); + + while (1) + { + br = in->read(in, scratchbuf_128k, sizeof (scratchbuf_128k)); + if (br <= 0) + break; + MojoChecksum_append(&ctx, scratchbuf_128k, (uint32) br); + } // while + + MojoChecksum_finish(&ctx, &sums); + + in->close(in); + + return (br < 0) ? 0 : retvalChecksums(L, &sums); +} // do_checksum + + +static int luahook_checksum(lua_State *L) +{ + const char *fname = luaL_checkstring(L, 1); + MojoInput *in = MojoInput_newFromFile(fname); + return do_checksum(L, in); +} // luahook_checksum + + +static int luahook_archive_fromdir(lua_State *L) +{ + const char *path = luaL_checkstring(L, 1); + return retvalLightUserData(L, MojoArchive_newFromDirectory(path)); +} // luahook_archive_fromdir + + +static int luahook_archive_fromfile(lua_State *L) +{ + const char *path = luaL_checkstring(L, 1); + MojoInput *io = MojoInput_newFromFile(path); + MojoArchive *archive = NULL; + if (io != NULL) + archive = MojoArchive_newFromInput(io, path); + return retvalLightUserData(L, archive); +} // luahook_archive_fromfile + + +static int luahook_archive_fromentry(lua_State *L) +{ + MojoArchive *ar = (MojoArchive *) lua_touserdata(L, 1); + MojoInput *io = ar->openCurrentEntry(ar); + MojoArchive *archive = NULL; + if (io != NULL) + archive = MojoArchive_newFromInput(io, ar->prevEnum.filename); + return retvalLightUserData(L, archive); +} // luahook_archive_fromentry + + +static int luahook_archive_enumerate(lua_State *L) +{ + MojoArchive *archive = (MojoArchive *) lua_touserdata(L, 1); + return retvalBoolean(L, archive->enumerate(archive)); +} // luahook_archive_enumerate + + +static int luahook_archive_enumnext(lua_State *L) +{ + MojoArchive *archive = (MojoArchive *) lua_touserdata(L, 1); + const MojoArchiveEntry *entinfo = archive->enumNext(archive); + if (entinfo == NULL) + lua_pushnil(L); + else + { + const char *typestr = NULL; + if (entinfo->type == MOJOARCHIVE_ENTRY_FILE) + typestr = "file"; + else if (entinfo->type == MOJOARCHIVE_ENTRY_DIR) + typestr = "dir"; + else if (entinfo->type == MOJOARCHIVE_ENTRY_SYMLINK) + typestr = "symlink"; + else + typestr = "unknown"; + + lua_newtable(L); + set_string(L, entinfo->filename, "filename"); + set_string(L, entinfo->linkdest, "linkdest"); + set_number(L, (lua_Number) entinfo->filesize, "filesize"); + set_string(L, typestr, "type"); + } // else + + return 1; +} // luahook_archive_enumnext + + +static int luahook_archive_close(lua_State *L) +{ + MojoArchive *archive = (MojoArchive *) lua_touserdata(L, 1); + archive->close(archive); + return 0; +} // luahook_archive_close + + +static int luahook_archive_offsetofstart(lua_State *L) +{ + MojoArchive *archive = (MojoArchive *) lua_touserdata(L, 1); + return retvalNumber(L, (lua_Number) archive->offsetOfStart); +} // luahook_archive_offsetofstart + + +static int luahook_platform_unlink(lua_State *L) +{ + const char *path = luaL_checkstring(L, 1); + return retvalBoolean(L, MojoPlatform_unlink(path)); +} // luahook_platform_unlink + + +static int luahook_platform_exists(lua_State *L) +{ + const char *dir = luaL_checkstring(L, 1); + const char *fname = lua_tostring(L, 2); // can be nil. + return retvalBoolean(L, MojoPlatform_exists(dir, fname)); +} // luahook_platform_exists + + +static int luahook_platform_writable(lua_State *L) +{ + const char *fname = luaL_checkstring(L, 1); + return retvalBoolean(L, MojoPlatform_writable(fname)); +} // luahook_platform_writable + + +static int luahook_platform_isdir(lua_State *L) +{ + const char *dir = luaL_checkstring(L, 1); + return retvalBoolean(L, MojoPlatform_isdir(dir)); +} // luahook_platform_isdir + + +static int luahook_platform_issymlink(lua_State *L) +{ + const char *fname = luaL_checkstring(L, 1); + return retvalBoolean(L, MojoPlatform_issymlink(fname)); +} // luahook_platform_issymlink + + +static int luahook_platform_isfile(lua_State *L) +{ + const char *fname = luaL_checkstring(L, 1); + return retvalBoolean(L, MojoPlatform_isfile(fname)); +} // luahook_platform_isfile + + +static int luahook_platform_symlink(lua_State *L) +{ + const char *src = luaL_checkstring(L, 1); + const char *dst = luaL_checkstring(L, 2); + return retvalBoolean(L, MojoPlatform_symlink(src, dst)); +} // luahook_platform_symlink + + +static int luahook_platform_mkdir(lua_State *L) +{ + const int argc = lua_gettop(L); + const char *dir = luaL_checkstring(L, 1); + uint16 perms = 0; + if ( (argc < 2) || (lua_isnil(L, 2)) ) + perms = MojoPlatform_defaultDirPerms(); + else + { + boolean valid = false; + const char *permstr = luaL_checkstring(L, 2); + perms = MojoPlatform_makePermissions(permstr, &valid); + if (!valid) + fatal(_("BUG: '%0' is not a valid permission string"), permstr); + } // if + return retvalBoolean(L, MojoPlatform_mkdir(dir, perms)); +} // luahook_platform_mkdir + + +static int luahook_platform_installdesktopmenuitem(lua_State *L) +{ + const char *data = luaL_checkstring(L, 1); + return retvalBoolean(L, MojoPlatform_installDesktopMenuItem(data)); +} // luahook_platform_installdesktopmenuitem + + +static int luahook_platform_uninstalldesktopmenuitem(lua_State *L) +{ + const char *data = luaL_checkstring(L, 1); + return retvalBoolean(L, MojoPlatform_uninstallDesktopMenuItem(data)); +} // luahook_platform_uninstalldesktopmenuitem + + +static int luahook_movefile(lua_State *L) +{ + boolean retval = false; + const char *src = luaL_checkstring(L, 1); + const char *dst = luaL_checkstring(L, 2); + retval = MojoPlatform_rename(src, dst); + if (!retval) + { + MojoInput *in = MojoInput_newFromFile(src); + if (in != NULL) + { + uint16 perms = 0; + MojoPlatform_perms(src, &perms); + retval = MojoInput_toPhysicalFile(in,dst,perms,NULL,-1,NULL,NULL); + if (retval) + { + retval = MojoPlatform_unlink(src); + if (!retval) + MojoPlatform_unlink(dst); // oh well. + } // if + } // if + } // if + + return retvalBoolean(L, retval); +} // luahook_movefile + + +static void prepareSplash(MojoGuiSplash *splash, const char *fname, + const char *splashpos) +{ + MojoInput *io = NULL; + int64 len = 0; + + memset(splash, '\0', sizeof (*splash)); + + if (fname == NULL) + return; + + io = MojoInput_newFromArchivePath(GBaseArchive, fname); + if (io == NULL) + return; + + len = io->length(io); + if ((len > 0) && (len < 0xFFFFFFFF)) + { + const uint32 size = (uint32) len; + uint8 *data = (uint8 *) xmalloc(size); + if (io->read(io, data, size) == len) + { + splash->rgba = decodeImage(data, size, &splash->w, &splash->h); + if (splash->rgba != NULL) + { + const uint32 w = splash->w; + const uint32 h = splash->h; + const MojoGuiSplashPos defpos = + ((w >= h) ? MOJOGUI_SPLASH_TOP : MOJOGUI_SPLASH_LEFT); + + if (splashpos == NULL) + splash->position = defpos; + else if ((splashpos == NULL) && (splash->w < splash->h)) + splash->position = MOJOGUI_SPLASH_LEFT; + else if (strcmp(splashpos, "top") == 0) + splash->position = MOJOGUI_SPLASH_TOP; + else if (strcmp(splashpos, "left") == 0) + splash->position = MOJOGUI_SPLASH_LEFT; + else if (strcmp(splashpos, "bottom") == 0) + splash->position = MOJOGUI_SPLASH_BOTTOM; + else if (strcmp(splashpos, "right") == 0) + splash->position = MOJOGUI_SPLASH_RIGHT; + else if (strcmp(splashpos, "background") == 0) + splash->position = MOJOGUI_SPLASH_BACKGROUND; + else + splash->position = defpos; // oh well. + } // if + } // if + free(data); + } // if + + io->close(io); +} // prepareSplash + + +static int luahook_gui_start(lua_State *L) +{ + const char *title = luaL_checkstring(L, 1); + const char *splashfname = lua_tostring(L, 2); + const char *splashpos = lua_tostring(L, 3); + boolean rc = false; + MojoGuiSplash splash; + + prepareSplash(&splash, splashfname, splashpos); + rc = GGui->start(title, &splash); + if (splash.rgba != NULL) + free((void *) splash.rgba); + + return retvalBoolean(L, rc); +} // luahook_gui_start + + +static const uint8 *loadFile(const char *fname, size_t *len) +{ + uint8 *retval = NULL; + MojoInput *io = MojoInput_newFromArchivePath(GBaseArchive, fname); + if (io != NULL) + { + int64 len64 = io->length(io); + *len = (size_t) len64; + if (*len == len64) + { + retval = (uint8 *) xmalloc(*len + 1); + if (io->read(io, retval, *len) == *len) + retval[*len] = '\0'; + else + { + free(retval); + retval = NULL; + } // else + } // if + io->close(io); + } // if + + return retval; +} // loadFile + +static inline boolean canGoBack(int thisstage) +{ + return (thisstage > 1); +} // canGoBack + +static inline boolean canGoForward(int thisstage, int maxstage) +{ + return (thisstage < maxstage); +} // canGoForward + + +static int luahook_gui_readme(lua_State *L) +{ + size_t len = 0; + const char *name = luaL_checkstring(L, 1); + const char *fname = luaL_checkstring(L, 2); + const int thisstage = luaL_checkinteger(L, 3); + const int maxstage = luaL_checkinteger(L, 4); + const uint8 *data = loadFile(fname, &len); + const boolean can_go_back = canGoBack(thisstage); + const boolean can_go_fwd = canGoForward(thisstage, maxstage); + + if (data == NULL) + fatal(_("failed to load file '%0'"), fname); + + lua_pushnumber(L, GGui->readme(name, data, len, can_go_back, can_go_fwd)); + free((void *) data); + return 1; +} // luahook_gui_readme + + +static int luahook_gui_stop(lua_State *L) +{ + GGui->stop(); + return 0; +} // luahook_gui_stop + + +// !!! FIXME: would like to push all this tree walking into Lua, and just +// !!! FIXME: build the final C tree without any validating here. +typedef MojoGuiSetupOptions GuiOptions; // a little less chatty. + +// forward declare this for recursive magic... +static GuiOptions *build_gui_options(lua_State *L, GuiOptions *parent); + +// An option table (from Setup.Option{} or Setup.OptionGroup{}) must be at +// the top of the Lua stack. +static GuiOptions *build_one_gui_option(lua_State *L, GuiOptions *opts, + boolean is_option_group) +{ + GuiOptions *newopt = NULL; + boolean required = false; + boolean skipopt = false; + + lua_getfield(L, -1, "required"); + if (lua_toboolean(L, -1)) + { + lua_pushboolean(L, true); + lua_setfield(L, -3, "value"); + required = skipopt = true; // don't pass to GUI. + } // if + lua_pop(L, 1); // remove "required" from stack. + + // "disabled=true" trumps "required=true" + lua_getfield(L, -1, "disabled"); + if (lua_toboolean(L, -1)) + { + if (required) + { + lua_getfield(L, -2, "description"); + logWarning("Option '%0' is both required and disabled!", + lua_tostring(L, -1)); + lua_pop(L, 1); + } // if + lua_pushboolean(L, false); + lua_setfield(L, -3, "value"); + skipopt = true; // don't pass to GUI. + } // if + lua_pop(L, 1); // remove "disabled" from stack. + + if (skipopt) // Skip this option, but look for children in required opts. + { + if (required) + newopt = build_gui_options(L, opts); + } // if + + else // add this option. + { + newopt = (GuiOptions *) xmalloc(sizeof (GuiOptions)); + newopt->is_group_parent = is_option_group; + newopt->value = true; + + lua_getfield(L, -1, "description"); + newopt->description = xstrdup(lua_tostring(L, -1)); + lua_pop(L, 1); + + lua_getfield(L, -1, "tooltip"); + if (!lua_isnil(L, -1)) + newopt->tooltip = xstrdup(lua_tostring(L, -1)); + lua_pop(L, 1); + + if (!is_option_group) + { + lua_getfield(L, -1, "value"); + newopt->value = (lua_toboolean(L, -1) ? true : false); + lua_pop(L, 1); + lua_getfield(L, -1, "bytes"); + newopt->size = (int64) lua_tonumber(L, -1); + lua_pop(L, 1); + newopt->opaque = ((int) lua_objlen(L, 4)) + 1; + lua_pushinteger(L, newopt->opaque); + lua_pushvalue(L, -2); + lua_settable(L, 4); // position #4 is our local lookup table. + } // if + + newopt->child = build_gui_options(L, newopt); // look for children... + if ((is_option_group) && (!newopt->child)) // skip empty groups. + { + free((void *) newopt->description); + free((void *) newopt->tooltip); + free(newopt); + newopt = NULL; + } // if + } // else + + if (newopt != NULL) + { + GuiOptions *prev = NULL; // find the end of the list... + GuiOptions *i = newopt; + do + { + prev = i; + i = i->next_sibling; + } while (i != NULL); + prev->next_sibling = opts; + opts = newopt; // prepend to list (we'll reverse it later...) + } // if + + return opts; +} // build_one_gui_option + + +static inline GuiOptions *cleanup_gui_option_list(GuiOptions *opts, + GuiOptions *parent) +{ + const boolean is_group = ((parent) && (parent->is_group_parent)); + GuiOptions *seen_enabled = NULL; + GuiOptions *prev = NULL; + GuiOptions *tmp = NULL; + + while (opts != NULL) + { + // !!! FIXME: schema should check? + if ((is_group) && (opts->is_group_parent)) + { + fatal("OptionGroup '%0' inside OptionGroup '%1'.", + opts->description, parent->description); + } // if + + if ((is_group) && (opts->value)) + { + if (seen_enabled) + { + logWarning("Options '%0' and '%1' are both enabled in group '%2'.", + seen_enabled->description, opts->description, + parent->description); + seen_enabled->value = false; + } // if + seen_enabled = opts; + } // if + + // Reverse the linked list, since we added these backwards before... + tmp = opts->next_sibling; + opts->next_sibling = prev; + prev = opts; + opts = tmp; + } // while + + if ((prev) && (is_group) && (!seen_enabled)) + { + logWarning("Option group '%0' has no enabled items, choosing first ('%1').", + parent->description, prev->description); + prev->value = true; + } // if + + return prev; +} // cleanup_gui_option_list + + +// the top of the stack must be the lua table with options/optiongroups. +// We build onto (opts) "child" field. +static GuiOptions *build_gui_options(lua_State *L, GuiOptions *parent) +{ + int i = 0; + GuiOptions *opts = NULL; + const struct { const char *fieldname; boolean is_group; } opttype[] = + { + { "options", false }, + { "optiongroups", true } + }; + + for (i = 0; i < STATICARRAYLEN(opttype); i++) + { + const boolean is_group = opttype[i].is_group; + lua_getfield(L, -1, opttype[i].fieldname); + if (!lua_isnil(L, -1)) + { + lua_pushnil(L); // first key for iteration... + while (lua_next(L, -2)) // replaces key, pushes value. + { + opts = build_one_gui_option(L, opts, is_group); + lua_pop(L, 1); // remove table, keep key for next iteration. + } // while + opts = cleanup_gui_option_list(opts, parent); + } // if + lua_pop(L, 1); // pop options/optiongroups table. + } // for + + return opts; +} // build_gui_options + + +// Free the tree of C structs we generated, and update the mirrored Lua tables +// with new values... +static void done_gui_options(lua_State *L, GuiOptions *opts) +{ + if (opts != NULL) + { + done_gui_options(L, opts->next_sibling); + done_gui_options(L, opts->child); + + if (opts->opaque) + { + // Update Lua table for this option... + lua_pushinteger(L, opts->opaque); + lua_gettable(L, 4); // #4 is our local table + lua_pushboolean(L, opts->value); + lua_setfield(L, -2, "value"); + lua_pop(L, 1); + } // if + + free((void *) opts->description); + free((void *) opts->tooltip); + free(opts); + } // if +} // done_gui_options + + +static int luahook_gui_options(lua_State *L) +{ + // The options table is arg #1 (hence the assert below). + const int thisstage = luaL_checkint(L, 2); + const int maxstage = luaL_checkint(L, 3); + const boolean can_go_back = canGoBack(thisstage); + const boolean can_go_fwd = canGoForward(thisstage, maxstage); + int rc = 1; + GuiOptions *opts = NULL; + + assert(lua_gettop(L) == 3); + + lua_newtable(L); // we'll use this for updating the tree later. + + // Now we need to build a tree of C structs from the hierarchical table + // we got from Lua... + lua_pushvalue(L, 1); // get the Lua table onto the top of the stack... + opts = build_gui_options(L, NULL); + lua_pop(L, 1); // pop the Lua table off the top of the stack... + + if (opts != NULL) // if nothing to do, we'll go directly to next stage. + rc = GGui->options(opts, can_go_back, can_go_fwd); + + done_gui_options(L, opts); // free C structs, update Lua tables... + lua_pop(L, 1); // pop table we created. + + return retvalNumber(L, rc); +} // luahook_gui_options + + +static int luahook_gui_destination(lua_State *L) +{ + const int thisstage = luaL_checkinteger(L, 2); + const int maxstage = luaL_checkinteger(L, 3); + const boolean can_go_back = canGoBack(thisstage); + const boolean can_go_fwd = canGoForward(thisstage, maxstage); + char **recommend = NULL; + size_t reccount = 0; + char *rc = NULL; + int command = 0; + size_t i = 0; + + if (lua_istable(L, 1)) + { + reccount = lua_objlen(L, 1); + recommend = (char **) xmalloc(reccount * sizeof (char *)); + for (i = 0; i < reccount; i++) + { + lua_pushinteger(L, i+1); + lua_gettable(L, 1); + recommend[i] = xstrdup(lua_tostring(L, -1)); + lua_pop(L, 1); + } // for + } // if + + rc = GGui->destination((const char **) recommend, reccount, + &command, can_go_back, can_go_fwd); + + if (recommend != NULL) + { + for (i = 0; i < reccount; i++) + free(recommend[i]); + free(recommend); + } // if + + retvalNumber(L, command); + retvalString(L, rc); // may push nil. + free(rc); + return 2; +} // luahook_gui_destination + + +// make sure spaces and dashes make it into the string. +// this counts on (buf) being correctly allocated! +static void sanitize_productkey(const char *fmt, char *buf) +{ + char fmtch; + + if (fmt == NULL) + return; + + while ((fmtch = *(fmt++)) != '\0') + { + const char bufch = *buf; + if ((fmtch == ' ') || (fmtch == '-')) + { + if ((bufch != ' ') && (bufch != '-')) + memmove(buf + 1, buf, strlen(buf) + 1); + *buf = fmtch; + } // else if + + if (bufch != '\0') + buf++; + } // while +} // sanitize_productkey + + +static int luahook_gui_productkey(lua_State *L) +{ + const char *desc = luaL_checkstring(L, 1); + const char *fmt = lua_tostring(L, 2); + const char *defval = lua_tostring(L, 3); + const int thisstage = luaL_checkinteger(L, 4); + const int maxstage = luaL_checkinteger(L, 5); + const boolean can_go_back = canGoBack(thisstage); + const boolean can_go_fwd = canGoForward(thisstage, maxstage); + const int fmtlen = fmt ? ((int) strlen(fmt) + 1) : 32; + char *buf = (char *) xmalloc(fmtlen); + int cmd = 0; + + assert((defval == NULL) || (((int)strlen(defval)) < fmtlen)); + strcpy(buf, (defval == NULL) ? "" : defval); + + cmd = GGui->productkey(desc, fmt, buf, fmtlen, can_go_back, can_go_fwd); + if (cmd == 1) + sanitize_productkey(fmt, buf); + else + { + free(buf); + buf = NULL; + } // else + lua_pushinteger(L, cmd); + lua_pushstring(L, buf); // may be NULL + free(buf); + return 2; +} // luahook_gui_productkey + + +static int luahook_gui_insertmedia(lua_State *L) +{ + const char *unique = luaL_checkstring(L, 1); + return retvalBoolean(L, GGui->insertmedia(unique)); +} // luahook_gui_insertmedia + + +static int luahook_gui_progressitem(lua_State *L) +{ + GGui->progressitem(); + return 0; +} // luahook_gui_progressitem + + +static int luahook_gui_progress(lua_State *L) +{ + const char *type = luaL_checkstring(L, 1); + const char *component = luaL_checkstring(L, 2); + const int percent = luaL_checkint(L, 3); + const char *item = luaL_checkstring(L, 4); + const boolean canstop = lua_toboolean(L, 5); + const boolean rc = GGui->progress(type, component, percent, item, canstop); + return retvalBoolean(L, rc); +} // luahook_gui_progress + + +static int luahook_gui_final(lua_State *L) +{ + const char *msg = luaL_checkstring(L, 1); + GGui->final(msg); + return 0; +} // luahook_gui_final + + +static const char *logLevelString(void) +{ + switch (MojoLog_logLevel) + { + case MOJOSETUP_LOG_NOTHING: return "nothing"; + case MOJOSETUP_LOG_ERRORS: return "errors"; + case MOJOSETUP_LOG_WARNINGS: return "warnings"; + case MOJOSETUP_LOG_INFO: return "info"; + case MOJOSETUP_LOG_DEBUG: return "debug"; + case MOJOSETUP_LOG_EVERYTHING: default: return "everything"; + } // switch +} // logLevelString + + +static void registerLuaLibs(lua_State *L) +{ + // We always need the string and base libraries (although base has a + // few we could trim). The rest you can compile in if you want/need them. + int i; + static const luaL_Reg lualibs[] = { + {"", luaopen_base}, + {LUA_STRLIBNAME, luaopen_string}, + {LUA_TABLIBNAME, luaopen_table}, + #if SUPPORT_LUALIB_PACKAGE + {LUA_LOADLIBNAME, luaopen_package}, + #endif + #if SUPPORT_LUALIB_IO + {LUA_IOLIBNAME, luaopen_io}, + #endif + #if SUPPORT_LUALIB_OS + {LUA_OSLIBNAME, luaopen_os}, + #endif + #if SUPPORT_LUALIB_MATH + {LUA_MATHLIBNAME, luaopen_math}, + #endif + #if SUPPORT_LUALIB_DB + {LUA_DBLIBNAME, luaopen_debug}, + #endif + }; + + for (i = 0; i < STATICARRAYLEN(lualibs); i++) + { + lua_pushcfunction(L, lualibs[i].func); + lua_pushstring(L, lualibs[i].name); + lua_call(L, 1, 0); + } // for +} // registerLuaLibs + + +// !!! FIXME: platform layer? +static int luahook_date(lua_State *L) +{ + const char *datefmt = "%c"; // workaround stupid gcc warning. + char buf[128]; + time_t t = time(NULL); + strftime(buf, sizeof (buf), datefmt, gmtime(&t)); + return retvalString(L, buf); +} // luahook_date + + +boolean MojoLua_initLua(void) +{ + const char *envr = cmdlinestr("locale", "MOJOSETUP_LOCALE", NULL); + char *homedir = MojoPlatform_homedir(); + char *binarypath = MojoPlatform_appBinaryPath(); + char *locale = (envr != NULL) ? xstrdup(envr) : MojoPlatform_locale(); + char *ostype = MojoPlatform_osType(); + char *osversion = MojoPlatform_osVersion(); + lua_Integer uid = (lua_Integer) MojoPlatform_getuid(); + lua_Integer euid = (lua_Integer) MojoPlatform_geteuid(); + lua_Integer gid = (lua_Integer) MojoPlatform_getgid(); + + #if DISABLE_LUA_PARSER + const boolean luaparser = false; + #else + const boolean luaparser = true; + #endif + + if (locale == NULL) locale = xstrdup("???"); + if (ostype == NULL) ostype = xstrdup("???"); + if (osversion == NULL) osversion = xstrdup("???"); + + assert(luaState == NULL); + luaState = lua_newstate(MojoLua_alloc, NULL); // calls fatal() on failure. + lua_atpanic(luaState, luahook_fatal); + assert(lua_checkstack(luaState, 20)); // Just in case. + registerLuaLibs(luaState); + + // !!! FIXME: I'd like to change the function name case for the lua hooks. + + // Build MojoSetup namespace for Lua to access and fill in C bridges... + lua_newtable(luaState); + // Set up initial C functions, etc we want to expose to Lua code... + set_cfunc(luaState, luahook_runfile, "runfile"); + set_cfunc(luaState, luahook_runfilefromdir, "runfilefromdir"); + set_cfunc(luaState, luahook_translate, "translate"); + set_cfunc(luaState, luahook_ticks, "ticks"); + set_cfunc(luaState, luahook_format, "format"); + set_cfunc(luaState, luahook_fatal, "fatal"); + set_cfunc(luaState, luahook_launchbrowser, "launchbrowser"); + set_cfunc(luaState, luahook_verifyproductkey, "verifyproductkey"); + set_cfunc(luaState, luahook_msgbox, "msgbox"); + set_cfunc(luaState, luahook_promptyn, "promptyn"); + set_cfunc(luaState, luahook_promptynan, "promptynan"); + set_cfunc(luaState, luahook_stackwalk, "stackwalk"); + set_cfunc(luaState, luahook_logwarning, "logwarning"); + set_cfunc(luaState, luahook_logerror, "logerror"); + set_cfunc(luaState, luahook_loginfo, "loginfo"); + set_cfunc(luaState, luahook_logdebug, "logdebug"); + set_cfunc(luaState, luahook_cmdline, "cmdline"); + set_cfunc(luaState, luahook_cmdlinestr, "cmdlinestr"); + set_cfunc(luaState, luahook_collectgarbage, "collectgarbage"); + set_cfunc(luaState, luahook_debugger, "debugger"); + set_cfunc(luaState, luahook_findmedia, "findmedia"); + set_cfunc(luaState, luahook_writefile, "writefile"); + set_cfunc(luaState, luahook_copyfile, "copyfile"); + set_cfunc(luaState, luahook_stringtofile, "stringtofile"); + set_cfunc(luaState, luahook_download, "download"); + set_cfunc(luaState, luahook_movefile, "movefile"); + set_cfunc(luaState, luahook_wildcardmatch, "wildcardmatch"); + set_cfunc(luaState, luahook_truncatenum, "truncatenum"); + set_cfunc(luaState, luahook_date, "date"); + set_cfunc(luaState, luahook_isvalidperms, "isvalidperms"); + set_cfunc(luaState, luahook_checksum, "checksum"); + set_cfunc(luaState, luahook_strcmp, "strcmp"); + + // Set some information strings... + lua_newtable(luaState); + set_string(luaState, locale, "locale"); + set_string(luaState, PLATFORM_NAME, "platform"); + set_string(luaState, PLATFORM_ARCH, "arch"); + set_string(luaState, ostype, "ostype"); + set_string(luaState, osversion, "osversion"); + set_string(luaState, GGui->name(), "ui"); + set_string(luaState, GBuildVer, "buildver"); + set_string(luaState, GMojoSetupLicense, "license"); + set_string(luaState, GLuaLicense, "lualicense"); + set_string(luaState, logLevelString(), "loglevel"); + set_string(luaState, homedir, "homedir"); + set_string(luaState, binarypath, "binarypath"); + set_string(luaState, GBaseArchivePath, "basearchivepath"); + set_boolean(luaState, luaparser, "luaparser"); + set_integer(luaState, uid, "uid"); + set_integer(luaState, euid, "euid"); + set_integer(luaState, gid, "gid"); + set_string_array(luaState, GArgc, GArgv, "argv"); + lua_newtable(luaState); + set_string(luaState, "base", "base"); + set_string(luaState, "media", "media"); + #if SUPPORT_URL_FTP + set_string(luaState, "ftp", "ftp"); + #endif + #if SUPPORT_URL_HTTP + set_string(luaState, "http", "http"); + #endif + #if SUPPORT_URL_HTTP + set_string(luaState, "https", "https"); + #endif + lua_setfield(luaState, -2, "supportedurls"); + lua_setfield(luaState, -2, "info"); + + // Set the platform functions... + lua_newtable(luaState); + set_cfunc(luaState, luahook_platform_unlink, "unlink"); + set_cfunc(luaState, luahook_platform_exists, "exists"); + set_cfunc(luaState, luahook_platform_writable, "writable"); + set_cfunc(luaState, luahook_platform_isdir, "isdir"); + set_cfunc(luaState, luahook_platform_issymlink, "issymlink"); + set_cfunc(luaState, luahook_platform_isfile, "isfile"); + set_cfunc(luaState, luahook_platform_symlink, "symlink"); + set_cfunc(luaState, luahook_platform_mkdir, "mkdir"); + set_cfunc(luaState, luahook_platform_installdesktopmenuitem, "installdesktopmenuitem"); + set_cfunc(luaState, luahook_platform_uninstalldesktopmenuitem, "uninstalldesktopmenuitem"); + lua_setfield(luaState, -2, "platform"); + + // Set the GUI functions... + lua_newtable(luaState); + set_cfunc(luaState, luahook_gui_start, "start"); + set_cfunc(luaState, luahook_gui_readme, "readme"); + set_cfunc(luaState, luahook_gui_options, "options"); + set_cfunc(luaState, luahook_gui_destination, "destination"); + set_cfunc(luaState, luahook_gui_productkey, "productkey"); + set_cfunc(luaState, luahook_gui_insertmedia, "insertmedia"); + set_cfunc(luaState, luahook_gui_progressitem, "progressitem"); + set_cfunc(luaState, luahook_gui_progress, "progress"); + set_cfunc(luaState, luahook_gui_final, "final"); + set_cfunc(luaState, luahook_gui_stop, "stop"); + lua_setfield(luaState, -2, "gui"); + + // Set the i/o functions... + lua_newtable(luaState); + set_cfunc(luaState, luahook_archive_fromdir, "fromdir"); + set_cfunc(luaState, luahook_archive_fromfile, "fromfile"); + set_cfunc(luaState, luahook_archive_fromentry, "fromentry"); + set_cfunc(luaState, luahook_archive_enumerate, "enumerate"); + set_cfunc(luaState, luahook_archive_enumnext, "enumnext"); + set_cfunc(luaState, luahook_archive_close, "close"); + set_cfunc(luaState, luahook_archive_offsetofstart, "offsetofstart"); + set_cptr(luaState, GBaseArchive, "base"); + lua_setfield(luaState, -2, "archive"); + lua_setglobal(luaState, MOJOSETUP_NAMESPACE); + + free(osversion); + free(ostype); + free(locale); + free(binarypath); + free(homedir); + + // Transfer control to Lua to setup some APIs and state... + if (!MojoLua_runFile("mojosetup_init")) + return false; + + MojoLua_collectGarbage(); // get rid of old init crap we don't need. + + return true; +} // MojoLua_initLua + + +boolean MojoLua_initialized(void) +{ + return (luaState != NULL); +} // MojoLua_initialized + + +void MojoLua_deinitLua(void) +{ + if (luaState != NULL) + { + lua_close(luaState); + luaState = NULL; + } // if +} // MojoLua_deinitLua + + + +const char *GMojoSetupLicense = +"Copyright (c) 2007 Ryan C. Gordon and others.\n" +"\n" +"This software is provided 'as-is', without any express or implied warranty.\n" +"In no event will the authors be held liable for any damages arising from\n" +"the use of this software.\n" +"\n" +"Permission is granted to anyone to use this software for any purpose,\n" +"including commercial applications, and to alter it and redistribute it\n" +"freely, subject to the following restrictions:\n" +"\n" +"1. The origin of this software must not be misrepresented; you must not\n" +"claim that you wrote the original software. If you use this software in a\n" +"product, an acknowledgment in the product documentation would be\n" +"appreciated but is not required.\n" +"\n" +"2. Altered source versions must be plainly marked as such, and must not be\n" +"misrepresented as being the original software.\n" +"\n" +"3. This notice may not be removed or altered from any source distribution.\n" +"\n" +" Ryan C. Gordon \n" +"\n"; + + +const char *GLuaLicense = +"Lua:\n" +"\n" +"Copyright (C) 1994-2008 Lua.org, PUC-Rio.\n" +"\n" +"Permission is hereby granted, free of charge, to any person obtaining a copy\n" +"of this software and associated documentation files (the \"Software\"), to deal\n" +"in the Software without restriction, including without limitation the rights\n" +"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" +"copies of the Software, and to permit persons to whom the Software is\n" +"furnished to do so, subject to the following conditions:\n" +"\n" +"The above copyright notice and this permission notice shall be included in\n" +"all copies or substantial portions of the Software.\n" +"\n" +"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n" +"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" +"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" +"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" +"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n" +"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" +"THE SOFTWARE.\n" +"\n"; + +// !!! FIXME: need BSD and MIT licenses...put all the licenses in one string. + +// end of lua_glue.c ... + diff --git a/mk/linux/mojosetup/lua_glue.h b/mk/linux/mojosetup/lua_glue.h new file mode 100644 index 00000000..14465aba --- /dev/null +++ b/mk/linux/mojosetup/lua_glue.h @@ -0,0 +1,69 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#ifndef _INCL_LUA_GLUE_H_ +#define _INCL_LUA_GLUE_H_ + +#include "universal.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// License text for MojoSetup. +extern const char *GMojoSetupLicense; + +// License text for Lua. +extern const char *GLuaLicense; + + +boolean MojoLua_initLua(void); +void MojoLua_deinitLua(void); +boolean MojoLua_initialized(void); + +// Run the code in a given Lua file. This is JUST the base filename. +// We will look for it in GBaseArchive in the (dir) directory, both as +// fname.luac and fname.lua. This code chunk will accept no arguments, and +// return no results, but it can change the global state and alter tables, +// etc, so it can have lasting side effects. +// Will return false if the file couldn't be loaded, or true if the chunk +// successfully ran. Will not return if there's a runtime error in the +// chunk, as it will call fatal() instead. +boolean MojoLua_runFileFromDir(const char *dir, const char *name); + +// This is shorthand for MojoLua_runFileFromDir("scripts", fname); +boolean MojoLua_runFile(const char *fname); + +// Call a function in Lua. This calls MojoSetup.funcname, if it exists and +// is a function. It will not pass any parameters and it will not return +// any values. The call is made unprotected, so if Lua triggers an error, +// this C function will not return. Don't use this if you don't know what +// you're doing. +// Returns true if function was called, false otherwise. +boolean MojoLua_callProcedure(const char *funcname); + +// Set a Lua variable in the MojoSetup namespace to a string: +// MojoLua_setString("bob", "name"); +// in Lua: print(MojoSetup.name) -- outputs: bob +void MojoLua_setString(const char *str, const char *sym); + +// Same as MojoLua_setString, but it creates an ordered table (array). +void MojoLua_setStringArray(int argc, const char **argv, const char *sym); + +void MojoLua_collectGarbage(void); + +void MojoLua_debugger(void); + +#ifdef __cplusplus +} +#endif + +#endif + +// end of lua_glue.h ... + diff --git a/mk/linux/mojosetup/megaglest-installer/make.sh b/mk/linux/mojosetup/megaglest-installer/make.sh new file mode 100755 index 00000000..44bd8773 --- /dev/null +++ b/mk/linux/mojosetup/megaglest-installer/make.sh @@ -0,0 +1,323 @@ +#!/bin/bash + +# This script is not robust for all platforms or situations. Use as a rough +# example, but invest effort in what it's trying to do, and what it produces. +# (make sure you don't build in features you don't need, etc). + +# below is the branch to build and installer from +megaglest_release_folder="trunk" +#megaglest_release_folder="release-3.3.4.1" + +# below describe various folder paths relative to the installer root folder +megaglest_project_root=../../../../../ +megaglest_data_path=${megaglest_project_root}${megaglest_release_folder}/data/glest_game/ +megaglest_linux_path=${megaglest_project_root}${megaglest_release_folder}/mk/linux/ + +# Below is the name of the archive to create and tack onto the installer. +# *NOTE: The filename's extension is of critical importance as the installer +# does a patch on extension to figure out how to decompress! +# +# static const MojoArchiveType archives[] = +# { +# { "zip", MojoArchive_createZIP, true }, +# { "tar", MojoArchive_createTAR, true }, +# { "tar.gz", MojoArchive_createTAR, true }, +# { "tar.bz2", MojoArchive_createTAR, true }, +# { "tgz", MojoArchive_createTAR, true }, +# { "tbz2", MojoArchive_createTAR, true }, +# { "tb2", MojoArchive_createTAR, true }, +# { "tbz", MojoArchive_createTAR, true }, +# { "uz2", MojoArchive_createUZ2, false }, +# { "pck", MojoArchive_createPCK, true }, +# }; +# +megaglest_archiver_app="zip -9r " +megaglest_archivefilename="mgdata.zip" +#megaglest_archiver_app="tar -c --bzip2 -f " +#megaglest_archivefilename="mgdata.tar.bz2" + +# Grab the version # from autoconf +# +pushd "`pwd`/${megaglest_linux_path}" +echo "Linux project root path [`pwd`/${megaglest_linux_path}]" +VERSION=`autoconf -t AC_INIT | sed -e 's/[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\):.*/\1/g'` +echo "About to build Installer for $VERSION" +popd + +# Stop if anything produces an error. +set -e + +REPACKONLY=0 +DEBUG=0 +if [ "$1" = "--debug" ]; then + echo "debug build!" + DEBUG=1 +elif [ "$1" = "--repackonly" ]; then + echo "reacking installer only!" + REPACKONLY=1 +fi + +APPNAME="MegaGlest Installer" + +# I use a "cross compiler" to build binaries that are isolated from the +# particulars of my Linux workstation's current distribution. This both +# keeps me at a consistent ABI for generated binaries and prevent subtle +# dependencies from leaking in. +# You may not care about this at all. In which case, just use the +# CC=gcc and CXX=g++ lines instead. +CC=/usr/bin/gcc +CXX=/usr/bin/g++ +#CC=/opt/crosstool/gcc-3.3.6-glibc-2.3.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/gcc +#CXX=/opt/crosstool/gcc-3.3.6-glibc-2.3.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/g++ + +OSTYPE=`uname -s` +if [ "$OSTYPE" = "Linux" ]; then + NCPU=`cat /proc/cpuinfo |grep vendor_id |wc -l` + let NCPU=$NCPU+1 +elif [ "$OSTYPE" = "Darwin" ]; then + NCPU=`sysctl -n hw.ncpu` +elif [ "$OSTYPE" = "SunOS" ]; then + NCPU=`/usr/sbin/psrinfo |wc -l |sed -e 's/^ *//g;s/ *$//g'` +else + NCPU=1 +fi + +if [ "x$NCPU" = "x" ]; then + NCPU=1 +fi +if [ "x$NCPU" = "x0" ]; then + NCPU=1 +fi + +echo "Will use make -j$NCPU. If this is wrong, check NCPU at top of script." + +# Show everything that we do here on stdout. +set -x + +if [ "$DEBUG" = "1" ]; then + LUASTRIPOPT= + BUILDTYPE=Debug + TRUEIFDEBUG=TRUE + FALSEIFDEBUG=FALSE +else + LUASTRIPOPT=-s + BUILDTYPE=MinSizeRel + TRUEIFDEBUG=FALSE + FALSEIFDEBUG=TRUE +fi + +# Clean up previous run, build fresh dirs for Base Archive. +rm -rf image megaglest-installer ${megaglest_archivefilename} +mkdir image +mkdir image/guis +mkdir image/scripts +mkdir image/data +mkdir image/meta + +# This next section copies live data from the mega-glest folders +if [ $REPACKONLY -eq 0 ]; then + + rm -rf data + mkdir data + mkdir data/bin + + INSTALL_ROOTDIR="`pwd`/" + INSTALLDATADIR="${INSTALL_ROOTDIR}data/" + + # Now copy all glest binaries + echo Copying live Mega Glest binary files... + + pushd "`pwd`/$megaglest_linux_path" + + find glest -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find glest.bin -exec cp -p --parents "{}" ${INSTALLDATADIR}bin ';' + find glest.ini -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find glest_configurator -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find glest_editor -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find glest_g3dviewer -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find servers.ini -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find makedeps_folder.sh -exec cp -p --parents "{}" $INSTALL_ROOTDIR ';' + + popd + + # Now copy all glest data + echo Copying live Mega Glest data files... + + pushd "`pwd`/$megaglest_data_path" + + find configuration.xml -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find glest.ico -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find data/ \( -name "*.*" \) -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find docs/ \( -name "*.*" \) -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find maps/ \( -name "*.*" \) -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find scenarios/ \( -name "*.*" \) -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find screens/ \( -name "*.*" \) -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find techs/ \( -name "*.*" \) -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find tilesets/ \( -name "*.*" \) -exec cp -p --parents "{}" $INSTALLDATADIR ';' + find tutorials/ \( -name "*.*" \) -exec cp -p --parents "{}" $INSTALLDATADIR ';' + + popd + + # Now remove svn and temp files + echo removing temp and svn files... + + find data/ -name "\.svn" -type d -depth -exec rm -rf {} \; + find data/ -name "*~" -exec rm -rf {} \; + + # Copy shared lib dependencies for glest.bin + cd data + copyGlestDeptsCmd="${INSTALL_ROOTDIR}makedeps_folder.sh bin/glest.bin" + $copyGlestDeptsCmd + cd .. +fi + +if [ ! -d data/docs ]; then + echo "We don't see data/docs ..." + echo " Either you're in the wrong directory, or you didn't copy the" + echo " install data into here (it's unreasonably big to store it in" + echo " revision control for no good reason)." + exit 1 +fi + + +# Build MojoSetup binaries from scratch. +# YOU ALWAYS NEED THE LUA PARSER IF YOU WANT UNINSTALL SUPPORT! +cd ../ +rm -rf cmake-build +mkdir cmake-build +cd cmake-build +cmake \ + -DCMAKE_BUILD_TYPE=$BUILDTYPE \ + -DCMAKE_C_COMPILER=$CC \ + -DCMAKE_CXX_COMPILER=$CXX \ + -DMOJOSETUP_MULTIARCH=FALSE \ + -DMOJOSETUP_ARCHIVE_ZIP=TRUE \ + -DMOJOSETUP_ARCHIVE_TAR=TRUE \ + -DMOJOSETUP_ARCHIVE_TAR_BZ2=TRUE \ + -DMOJOSETUP_ARCHIVE_TAR_GZ=TRUE \ + -DMOJOSETUP_GUI_GTKPLUS2=TRUE \ + -DMOJOSETUP_GUI_GTKPLUS2_STATIC=TRUE \ + -DMOJOSETUP_GUI_NCURSES=TRUE \ + -DMOJOSETUP_GUI_NCURSES_STATIC=TRUE \ + -DMOJOSETUP_GUI_STDIO=TRUE \ + -DMOJOSETUP_GUI_STDIO_STATIC=TRUE \ + -DMOJOSETUP_GUI_WWW=FALSE \ + -DMOJOSETUP_GUI_WWW_STATIC=FALSE \ + -DMOJOSETUP_LUALIB_DB=FALSE \ + -DMOJOSETUP_LUALIB_IO=FALSE \ + -DMOJOSETUP_LUALIB_MATH=FALSE \ + -DMOJOSETUP_LUALIB_OS=FALSE \ + -DMOJOSETUP_LUALIB_PACKAGE=FALSE \ + -DMOJOSETUP_LUA_PARSER=TRUE \ + -DMOJOSETUP_IMAGE_BMP=TRUE \ + -DMOJOSETUP_IMAGE_JPG=FALSE \ + -DMOJOSETUP_IMAGE_PNG=FALSE \ + -DMOJOSETUP_INTERNAL_BZLIB=TRUE \ + -DMOJOSETUP_INTERNAL_ZLIB=TRUE \ + -DMOJOSETUP_URL_HTTP=FALSE \ + -DMOJOSETUP_URL_FTP=FALSE \ + .. + +# Perhaps needed to remove compiler / linker warnings considered as errors +# sed -i 's/-Werror//' Makefile + +make -j$NCPU + +# Strip the binaries and GUI plugins, put them somewhere useful. +if [ "$DEBUG" != "1" ]; then + strip ./mojosetup +fi + +mv ./mojosetup ../megaglest-installer/megaglest-installer +for feh in *.so *.dll *.dylib ; do + if [ -f $feh ]; then + if [ "$DEBUG" != "1" ]; then + strip $feh + fi + mv $feh ../megaglest-installer/image/guis + fi +done + +# Compile the Lua scripts, put them in the base archive. +for feh in ../scripts/*.lua ; do + ./mojoluac $LUASTRIPOPT -o ../megaglest-installer/image/scripts/${feh}c $feh +done + +# Don't want the example config...use our's instead. +rm -f ../megaglest-installer/image/scripts/config.luac +./mojoluac $LUASTRIPOPT -o ../megaglest-installer/image/scripts/config.luac ../megaglest-installer/scripts/config.lua + +# Don't want the example app_localization...use our's instead. +rm -f ../megaglest-installer/image/scripts/app_localization.luac +./mojoluac $LUASTRIPOPT -o ../megaglest-installer/image/scripts/app_localization.luac ../megaglest-installer/scripts/app_localization.lua + +# Fill in the rest of the Base Archive... +cd ../megaglest-installer + +cp -R data/* image/data/ + +# remove svn files +echo removing temp and svn files +find image/data/ -name "\.svn" -type d -depth -exec rm -rf {} \; +find image/data/ -name "*~" -exec rm -rf {} \; +cp meta/* image/meta/ + +# Need these scripts to do things like install menu items, etc, on Unix. +if [ "$OSTYPE" = "Linux" ]; then + USE_XDG_UTILS=1 +fi +if [ "$OSTYPE" = "SunOS" ]; then + USE_XDG_UTILS=1 +fi + +if [ "x$USE_XDG_UTILS" = "x1" ]; then + mkdir image/meta/xdg-utils + cp ../meta/xdg-utils/* image/meta/xdg-utils/ + chmod a+rx image/meta/xdg-utils/* +fi + +if [ "$OSTYPE" = "Darwin" ]; then + # Build up the application bundle for Mac OS X... + APPBUNDLE="$APPNAME.app" + rm -rf "$APPBUNDLE" + cp -Rv ../misc/MacAppBundleSkeleton "$APPBUNDLE" + perl -w -pi -e 's/YOUR_APPLICATION_NAME_HERE/'"$APPNAME"'/g;' "${APPBUNDLE}/Contents/Info.plist" + mv megaglest-installer "${APPBUNDLE}/Contents/MacOS/mojosetup" + mv image/* "${APPBUNDLE}/Contents/MacOS/" + rmdir image + ibtool --compile "${APPBUNDLE}/Contents/Resources/MojoSetup.nib" ../misc/MojoSetup.xib +else + # Make an archive of the Base Archive dirs and nuke the originals... + cd image + +# create the compressed image for the installer +# zip -9r ../${megaglest_archivefilename} * + ${megaglest_archiver_app} ../${megaglest_archivefilename} * + + cd .. + rm -rf image + # Append the archive to the mojosetup binary, so it's "self-extracting." + cat ${megaglest_archivefilename} >> ./megaglest-installer + rm -f ${megaglest_archivefilename} +fi + +# ...and that's that. +set +e +set +x +echo "Successfully built!" + +if [ "$DEBUG" = "1" ]; then + echo + echo + echo + echo 'ATTENTION: THIS IS A DEBUG BUILD!' + echo " DON'T DISTRIBUTE TO THE PUBLIC." + echo ' THIS IS PROBABLY BIGGER AND SLOWER THAN IT SHOULD BE.' + echo ' YOU HAVE BEEN WARNED!' + echo + echo + echo +fi + +exit 0 + diff --git a/mk/linux/mojosetup/megaglest-installer/makedeps_folder.sh b/mk/linux/mojosetup/megaglest-installer/makedeps_folder.sh new file mode 100755 index 00000000..04412a7f --- /dev/null +++ b/mk/linux/mojosetup/megaglest-installer/makedeps_folder.sh @@ -0,0 +1,77 @@ +#!/bin/bash +set -e +# Use this script to copy shared (libs) files to specified location +# ---------------------------------------------------------------------------- +# Written by Vivek Gite +# (c) 2006 nixCraft under GNU GPL v2.0+ +# Last updated on: Apr/06/2010 by Vivek Gite +# ---------------------------------------------------------------------------- +# + Modified for glest deployment - Softcoder +# + Added ld-linux support +# + Added error checking support +# + Added for loop so that we can process all files on cmd +# ---------------------------------------------------------------------------- +# Set libs output directory name +BASE="lib" +file="$@" + +sync_support_libs(){ + local d="$1" # folder to copy dependencies to + local pFILE="$2" # bin file to scan for dependencies from + local files="" + local _cp="/bin/cp" + local skip_deps="libm.so libpthread.so libstdc++.so libgcc_s.so libc.so libdl.so libX11.so libpulse libfusion libdirect libnvidia libXext librt libxcb libICE libSM libXtst libwrap libdbus libXau libXdmcp libnsl libFLAC libGL" + + # get rid of blanks and (0x00007fff0117f000) + files="$(ldd $pFILE | awk '{ print $3 }' | sed -e '/^$/d' -e '/(*)$/d')" + + for i in $files + do + dcc="${i%/*}" # get dirname only +# [ ! -d ${d}${dcc} ] && mkdir -p ${d}${dcc} +# ${_cp} -f $i ${d}${dcc} +# ${_cp} -f $i ${d} +# echo ${_cp} -f $i ${d} + + skipfile=0 + for j in $(echo $skip_deps) + do + if [ `awk "BEGIN {print index(\"$i\", \"$j\")}"` -ne 0 ]; then +# echo Skipping file = [$i] + skipfile=1 +break + fi + done + + if [ $skipfile -eq 0 ]; then + echo Including file = [$i] + ${_cp} -f $i ${d} + fi + done + + # Works with 32 and 64 bit ld-linux + #sldl="$(ldd $pFILE | grep 'ld-linux' | awk '{ print $1}')" + #sldlsubdir="${sldl%/*}" +# [ ! -f ${d}${sldl} ] && ${_cp} -f ${sldl} ${d}${sldlsubdir} + #if [ ! -f ${d}${sldl} ] ; then + # echo Including file = [${sldl}] + # ${_cp} -f ${sldl} ${d} + #fi +} + +usage(){ + echo "Syntax : $0 glest.bin + echo "Example: $0 glest.bin + exit 1 +} + +[ $# -eq 0 ] && usage +#[ ! -d $BASE ] && mkdir -p $BASE +[ -d $BASE ] && rm -r $BASE +mkdir -p $BASE + +# copy all files +for f in $file +do + sync_support_libs "${BASE}" "${f}" +done diff --git a/mk/linux/mojosetup/megaglest-installer/meta/glestforumsheader.bmp b/mk/linux/mojosetup/megaglest-installer/meta/glestforumsheader.bmp new file mode 100644 index 0000000000000000000000000000000000000000..71fb511c6ab879bc88288c98a8b3ce1384f784c7 GIT binary patch literal 486054 zcmeFZWt0?m*Y3T`t*hPLWxB`RU0`My90niU-GT*|Kthlp2}B7bAxc7=gb)%!+yz1) z1b0G^XurFL``qt)-gBN0XRT+Q56?NhYMP>@x@wpG_O-A5uWH^tngivLhksH0J3|3H zivJQ|#bw3*~OBDX`^Cy>rsOBa`3!plbQ!y|%ov>XYO5 ze)N;Rq1DsUmfm}UtGchrnakNdK*_wp65RZL(Wj@pYu|y~Szzh{j%u*v18GtgD|>uh zmQX#{YdS83!l{ruk-+E7Q4ns0a5pZchmg@9Vgn&{45W{RP(KLuCDX=0+GMVHuGqMo z>$R5YcOO6Ce$|l2$q_qY#4|8=KQ-qa82>B`d4wAJAUR|!HS7`1)Lk(4Y4x19v~%8- z?|4TwbFXIhKK=ZC+_c@y{Qdm0kF@vwV0h@b@v+m^9p`lqog(k~M!V{ey!l7X&QtPJ zXX%YUlWTugZ9A{uea*V>SN~gQi@yBRz3;O0+&TRtCt>b8{KB_Pv)08{JW}`ZPo9OF zT!Ze&Sg}=C+mA40fFP+kH7lDj6qd~LU}GO!O)p)j%rj+np!u=6n`@tbuk$;H%bxwX z_Sw%0w!9P=yWG-Yn7{i-cT0aZt)sehqNekDS5PcfU`Acku# z&EuI)Q=|92(cz;@#jpR+{LRIQ7n9RZCdZz=wesqfmwx?Y+<~*LpI_O0CAs1J^*%?g zu05Z8@Zyc_zutQK+TRP$|5Lm7xNF>_{>hIN-?u+w(}BDvzRP^*GyBZ#?ok`9Jr?+9 zZV#{6t)2X^ciQ9bX*(>lcbexstsA{nQ$Lz2=r1=;&~%&5Rg9ogdyzQGlakz!_}ZIZhT#K z*MdDoopBeG-c9B_$QR61=Zsh9jE1akLe+e(<{mD0y{i0Sv2HDw`2ZcBC8msla33an zh?F{tvs6MD&zf$!jB!xVm(JTjS9}IpYstt!@b^(?4bqk@0)Lq%t2>yAw26+O36i{l zlgy;b4cZ83{GfJF8VBejV9o?*KA2PRGn6R{j76NQ5?oE-Z3I^V&%&E2;0eyYXk^;Ab_lY06r8$~i+E7&mULwx9={-kD78uFe@ig}Z{g4;T}`*|oK; zQm7QNM?1Q|0G+l#q_3`Sw^aC`X8HTtRVRXLj{06dP4s%wyYiTK(+P-;Vq5Rkt$l_m z7!AG_-qD?KHPKmZggFanGZQX?U_R^415+ue{2)7VlR-{lZB3%9GpWZF)&i>qXIC)h zgT7KD(3HS~Do>NU%++~6)XtV$AD|0niLri=7{!+lmnb7sus~h?su&)wt=hs=-cJZ& z%0D8o?azYCw{os0W2gVn_P$5J_*m1ynV{V%;7uU{#hSDpe6$OAD!^9=?tI!^!gw+? z;R?}Pt?Xh?9vR4!Vl`Z-fpX!2S_+<0F1H-Jz*Z&jeohkxh6TwD zk_$u!t8oG;0V4v<0YwALf&d^z8CMqo5gfyUPh9uhn>26xTUGl6-mXO6$l#%(a+12v zWMqb1@usfxG1HX4_z|CxX>V&&Uj?zBT>GZ`iQnvleuTtmDlr6{Euhs=v>qrC1V+la zL(HGbWcSc_c?QZ}*VaEO)ZYW)uDqDVghp_op1PWCkTnS!*9wUNZ25X)-v^B|zu7tB2N}AKbUO-vXXqAi9#5hm0;H;!9d8{Lou*3*!nmSky+A_k{ zBIm7@@@IfC4jP9#*sQWvkhBI^0$2@jYLb;mMgR&UAc69_2}CC_S_Y2_8c&TFMi@-F zU`$s+$M8VQc#8$bNU7`~8aacD6j-1%pe<&Nc-p#v=t-?2O}`Grj}oi1;9m6)DMz-=%o`x=eCR`)yqYKE(L? ztAYavb&w+QtYd)`fMf}ZCP@-V3g?w|<8%~{8^Qs}D9_5C#ZR`+6C_D91dXeKTY>vs ztsMEZS|kk=epl-ZZ`ezW-J^@%qsqLStX&W3^NkZ9x0c)w<|0k7H)(Dr{mlkvJ*UY5 zDGs^_NC-C~Lm>Ll_$wqKD(fsbBzrON_!iGgUQmUB_Y1}pQgmQ=DM3qcDqvI?8H!db z@!>>_KTQBGL7&@SU$Ga}1Hq|jUItnKf>Ea1VZjfOEQSXUZ6!XO$q=fd>=l$;0;*2Dp^IcF0L~9g1OzXT z2y2Y8A-BIy^GcvFEI?y$Xo6B+*LjIB-luvpiEdP3Z=rRxw!=VhBRW+Gqvv2xIs?3Rj2*hO*iX9S4HmMJcb~JCYpA$IGnf%cpHoThs(;JPz@Y6Euv@gyB*c?_UoB2wZR6y#IbuUc`X@uRI7`)W0U;KY0AF zEbhPZXU%16RH0#D9B7{KgkVYY*L0ux$>}veUs(L%>CHd=KKHG!mcH}#sE3}9wT{Uj zG$Xg~lyK)E@vhyi!8Em~^(@)lc=Tq)fos+oFKZJcA<&2yf3+#f@;rb>TQQYw-DqrC zMwZM#bQi1UN@dfjj3E%|4*q6{^?=mDRQYVVej!&pk;xrJ7fpxaxllZtXkJeCyAK9! zqK7@CoxIDmZX$lWpu=>jbArdJO-XWygC z@4#3?f$6JkJx6D^jzK7O_n0cBwd$ts@-Ey~^Wfg<4ZF)Xz1Z~p!QO8lD&MjvYw1&k zvp4yNFLL*qR6KmPx~fGtct-TDmm-Vb71L`$9~U$0c~=4F%;z&Z>Z3JGTD>l{i7D=9 z=(n)uh3|^qJeu{w=Y5X<(eH;#!@j;W@W=D_{C4ft8~^lr;j5AtzglzV)}uF*gTKAF z?BuOwXD_chcJjr`f37%wGyd57k)^L{CT@u=+nuuNP0##YX?N`j&wEBUcy-Dhk6I?I z3k+Qe>3z785vHa)eiee&u%z-be5(G#ha(CfUny5%2SVFufSC`f-$IH|yRjOz`=db63&F1WZ zl(&iSHHj&ms8AJ`sDMB*>93XXVi>BXqGhbVNC+14zFf|qM|iTpTfnDw;Lld6hwEy6ajl2%t3|Q&0)z|4c4eC zZMn1dX?@OGG8KO}!uazcP^ih7C>P9T(r4+b?uCMhZ0bVVKZNo&OKB~9R*NdV7ba_R zN-w@@xRgFYmEIN@@Ugb+7dCS_?eC(B_5w$RkTw>)*-7$uFJR(nZ( zj5LHfOHj6jSVsooE@T5`v@-*Vnz!du)-vRF(%ZsDyGhY%U96e+^pb;J@Sr8FIb^iA z7^nt)jPlmf=2TvkfHlWI_%c743?Doyl=r6@yJ&P!1{>agk;&O`M_uV0CNWyD=PGG} z5`idXO=Ya5pw5^5J()n6!tJ&c)>8=fR9eu>A`6ZbZ?~5quNCu91VY)9f;SXoMNE+> zTbATZS60A^xkfqW9hAw8>H%YmgEkJ5gOVgLU{-?ZQlaRpq}~PV_XPy3D5pW zYFK3)@Vv2PE_jvr^ZqoQIYg-4U<@Nv^NAWVTtj#(!BM92q)FZi4R7ItZqWPjs8DAN zF!y=U)oB(uTbbx2y4yC(qHhdqKTCh~sH%E9mpOp346robV;=b^lTxQQr_-q=M5Ke1 z)*zI%GOlz+va%sW;&QdOgFZA^6Ya{mDkyV47;C`PkG8kb)&`J5VDeZRp5k4dxxy*H zDM-L4=0nB;uoThJPE27N1P5ti!>Ee8e1l&El^$>3zP7hDO{@6kr+jz(#MR9=wY}ke z>SpZxU)h(Fsb5|M$;qhG!QoYf^GJOj<@000LOU_+81pR7m&v+P@%RLrmvW_oEmO(7 z{OM#QosAZNJ5P-nld^Xd><3>axH7<+#<}vqk^p@gX)hog*`y~8Oac5Z>#QKM9+V2# zP>ruZxKzk_K&*U<%9|<#djY4VHPui!&DQxa7aswtG|t)u1dh}OD2G^_!WCdYlht7l%+jJ@g|at!b+knJ2Yzcm{&7TJe=0>> zVe8j$)(~Uzfe|-9LE6K#)(jdC9zS@^2U8kj$ze=|g1u7qbp$zA73(AwE@d;O5sqp+ zCc&76Nhr-}C`JRk4l_{XJ(`m!7U@wYI6c8*TIazT8b3f9F^i$?WwfIhFZd+KBNF2& zgY<|WBSfom(uqcbXFxD9rV7STgWOK5R1}LyEKoesJMy+kXG>8Qs}Lp)>!d>D**g1-+!zM*jz#5*h8E~YTfEZ!Cd zQpJ)y%PBvB2u*UBPgprT#ZX=VUZn{V`UG-2Z-@bhBrhRgBeyGwKSrL>a5^hUYD8jz zMbxCg+rSpxEj3I8!HjAE7wKp2zFs$Mg{oyD>*@=5PGRV12DzQ&%)nvVg%FE${XggS z_O}#nXK>*(!mi*QVBN1Y04x+G0EEgBW@=NhD4|p)pAOqsi>cn z(hDM;#EOA(j}e&7F>+i^YcSOfLY0ZK7b%xbIb9P$oy1Nkc?3c`<^&X|)MQ~NE|7*$ zj42~v+GUFHfdWNL(EISxrwin;)|k$lt@q_1w}a>fM;2h*NDF`tSOa6Q@kWdxD#HJM z{9kVWcPRe%&4hbCYwoxK!b6FYsZA^2g0$YLcWxTG=YtWuJ|46CivipAbzZltW%VvcxefM2b<2jQ`kuU5a`XuZ_C%Zdq2r| z>1^ry7b?HJW!-gJ{nRPj3uiR1A8L5`$D+HxfaeYw4jg*wms>wvN=`g-UYfHtzHo!Z zlR#}9Pdd>Q1Ao4=s9SjKU8&>mR(BdJcNst6iT#C(9x`;F=;}6U`ra=GKJymSG$=4| zhS+iNgni%le*Odf;MrNz?&Z2qaP^s^t{!O`yvROoRl}NRh=w7~wiR7=e>d*a%PmiS z5Lotb@#-fkmp$a0zrJMp?3B?97T!`^!Yv0|4fcOcWJ?uKh_+*@Z`lmKD?IP`2DE? zpZ)OY)#Uc$$tTYLcK^vscb~jA^U%4mU!PCEe|P$ZSGvD?c-TI8(`~LRp|J;A!){{`W{Y|Yx!tvSJ%vQGp|I6bF-TR^DwT9a%vQ&$A=JP`JM!jKjVptVR0`2@ zT}q8PqmvkKf@mX~)=_u#c&U6;c!jPASr9OK4$`0 znkY||A+tvAh&gXpy0DM4>k7)*PaPg)?YK=Web<_`6dVIE6JdN=fT@AeBYSgIj$%UZ z0j&!(7Q*CJm{u27_}q{$hC49+PGHOD0(BaHHE4rkq6Sh6*=PkBsRl&KNDCKh7Q&U5 zL@~0l=+A>#S6!^XppBC$A>QEya7u+EYks?4@OQHLT2gk^gF27!)fl7o;K**rwiY(l zT@G|(3}M>B({?p!j!2#$xWeGi09O<*{>b^9JqF%<&gciT9?YdsyxLs;7I;d);{b0O z?MfBg*^DI(?<0aMO4^Y8^LbZC(Nhj6l{@e>%;G{7notMUTnubfZA}4FXCi-tsd+m% znh~N{mBnby@Kuhr74`!^W^h5$8yACFj6H)jXX8-;l8-i}la?&Xnk@%PL{}DPje|9p zvP4Nyr_$R5E2_S^ge%vYU7r}g(baD?suf0=B4l^AWcCznr9j)HC>|vFjJ;4FDw6VhGU?q}R~u&-3?NDLirqRmn{gEshyTex+2gA0;_f~nTzG> zS=#BRo$LP**IiFLb~WX4ZH6C!CQyDQX`|$C-jJo50M-9Ob=Ps$d@GAb>&kU>25wJ6Z@9h>F0J z!If^Rm;}Xx&6z`hPJ~Av)Q|nh-nf~KU|kX;DN8AB-kx7t${zx4hB1<(6ljbHKOvU) ziYm8~c1eUR8kGBn9(Y$FZ|h2k&F22Q?OXqFtUT{n^@nQ1@%RJRsRk^^6an}>rCV&n ze})M^!^p2pGk%eJe;b;4!7%GP-I$-l^OA`j$>7qfO!#i5Xqc|kcvZ)3B}-3$oR9np z4!bHX2Qr3IsrQ8YY*hy{tc1@|yUE|_U8Zq?cgXAU0b9Z54)$A_GV>dz{&`!E*9@Ju zLZlB?^gv$+&c3OmpN6_+l1S7+1WkF48G|D8)gd|}cNKwRzl~4_~vuY2)>lj8-F)C5C zGqx-x=R(y;($L76B*&>tDm=|e4Gh+G5Ak8FB`fynDIvL^AWymmR622@4k8>cG{&C;Ewr!KjUZy#d4s zUi4JXRAh8DR!d9_$s@4J9M94$t6(|aA1TyhEwmxPn8K*R(wvInbU>&{(L%_WGVu88 zN|r&Yfioylu*O4R6+rFfooV0=DA^pZF@;LV%qH7_adKl{2vsnl4gd+Db1W6(q>_(dJ1kkfyy~UaVlAd12#W<`ytHV7)MQUbs)qMVMCk_rE7 z!kWv!r+>ew%-sIufAox{gn!i(Fp*Gl368@3r>rPW$~v~E96&1XQdm{Nvd(Qyp2UI= zhJ_>A>ki_>UxP^;@1xA%YXy+JR%Kjf8z ztvmPBuY0ofu{U}=^jgC`J2MAQ4z>)oWpvayOAJ+QL%%rPb~)Mo*wx6}-@}*(Aa^D> zx+)@=$_kXzVkmVC*(~;11C0xzau#1aMa&uw@m`SD9SVl)yDv5mUB?Ys3nMqexcgz! zR=DGFdGS8|%7dD_K7jdez?_$1$=l4m2Zi+?!@L93{12tYAB&4VpznASCcHpSd|sOQ zvTDIwIEi<@sav#9zxZ9v{C)Dgy)fxTX7J?5w2Xaf%FglKJ6_eriXGwH%+ zFvSgpT{ImAHa+o1%d`6+QAacm%ewP^L$_)1G4~94=^LmU-uB4bx&bqxU{HA36Rq$3 zH13Ow-S&LbWyjmitDnePxH)g^lxA@rYfdk|=ajN%4s?6-yTFQv2mNq%>h*u_y!rQxbJv%jxVr4f+4Uzb zKa)%@IeC5Fk*gEGzx?Wj-*=w5@xa*|%Z^`NaWOgi^HUSPzPRLUa@ob?(sO@JJAP%* z_m>Ku{KC6vciOtWE$^N(lr&m0D_=c)=9fQ`2hZGm<+tRH%gKALC3jr?d-t!&SAV*) z@~uz%yzoZ<=UyNF)GM8LzV!ULE6<#{`qIthLziwY|MASqAJ4Bmd|~;a3$4$++ke+P zcYb?p`7ggNJMqt`w|>f=xejtV@R=2m*%9*lFx4ZpW&KrU-ABKCaKbm|=N~%1{#0`A znPivGE;MXED0iFG`t&<@UAU#~I8I$N!r3&@Ry|Ui-``v@OkX~f%kOKbZRNtnoUfdY zchzL}Ak|^5JA;pwGr?@en=6GYIZPW7>Eq3EtWg)PGbOqTp;9W4hDfPOYZ9Z4s%Qn8 zUPKStkkUneju_78Lq$xWgbP-ib9za|1KG^3fO?v@Nb(m*-dwDSE3%JQnK*9-=T2js zafEiPJW@6+D<{xA!yApVrI3pEV>5<jD=F^(gS*qwr%F{r& zvlXL`)(L`JLJy4EPUw)^9fSc*G9DC`IcFB=Q|RGX^@h(%pBMLn!pof&NqQGqu*8EZs=98-{Rr;?61sq+a&zl1aPgdS~0 zG=WKd>RlHz=KM&y@^uz8bwn`(!d)OZvQ+ML$(O)Xh%o0;)>_$*l4b&&$o%PyuTb_^ ziMAqMpP_Meq5{)X1{};Ed%#vcfkeZS+Jbj#u$EGuvi6KJB!tuDNH#83@)W2XDAc<- zd%EB$Kp7d+6IAbUJy~C#>`I|U4X-xQ`XGTqv_3*QQ^|OhZ{VW%`1^cAmRkDWMO7>| zkJ=u8@w3E|hm9?F^YQ-ZMPYq$RI0&W!T4$*T&|8bsa>Tg@k!ARtm|PKxV+xs@g7_lhI_@2X+buDC7jshDnT9iTB$Eo{asCo1 zTr7q&8GnRzr(m8-M7yhsM=&Tao0^IjpVE%~%GlvyDqf~Y!RYz1H`tor)>S_PLIGoR zq5Xqaqs`F5V?|!jfuKf&qhz#STESij-g;2gSh_wET6xL8{Cr^juim9MEYpr9=3da& zZDu_6l&&(r+pFp0uIt8LHO{!{nRzQV?WSwo3FDMQwrM}5-gCpb_GG;6Td)j+^hw&x z`H;6vKl{i0Wj{h{6&RwbL}$X^=BU2UK6X3A>d^ZEsokJ?XL$Vu_mZ#q<~zYtuSp*S zWwSzael!k$&ocN~s%bv>TR>Cg7_v4ndmHCyBvmdYH8wbIb2}?L5kVgp{X>wR8rdSg_EKS>)+y_)S)4&>LOb(E2AfcH=K-HI$^q4222#j=uA~{O#=$2t< z8RMhiF0UtPHP0Iby@x<~AGKm0A&|rJgv#JVwnu6uC675&z&i5O!3uP~p{TA>YdA@Z zI<}}%p^}e~NuorLN;twi#c_zK0x~ChvGhQ@#H@bNg*(kt*Fd;Xj!m=_&2e{F&gD*1 z6)nKYR=ZeTG|`$r2v-z%7K}P9j#o^ z3M@B(I?GztrYRmO2fIp|3Pva*(F;cfK!s{>9;NasrXZk^Es@*NLN#oZhQAa~M%cd=R-&q9-xhSmj|ENu<%LgbAb}#ZlZFO(ujKVhyQWYNM|A zEY*PJn6}H=n~Tu8d!gY;?pA)iw!VHzzVnH#ZBZ$ z1%z>XF@eIPf)*)#NcLqJ<3-w(Je5C9azq8Khru09iHPoktj9@l0U=E*B#mqJpT+IC zX6;jZ7JvqxcE=U|075zbP<#CW-=`J+CrMt}QpJ%)D%PxaZvWROZo~Zl`21fH+Hsql zy|x=WZ8mq=2%e!r#Ue|mm9}n+<0J1K^4e!pKRz;Y|7U$)dwake`-i>#dDZ3@Gna19 zUA%G3?oTSG-seE&+*$#3L;8I3^MqfMZ5J<;9=ZgJU!$AWtFmV(o>I|k#za`iSJh9| zjNS-cmO#dMb!@CIdm2|d3kI%Hrr!7Peb<>rJfa=BjUTy9JLLsf_`Y$=Pod{82cElN z*?v_2*dh7RulcQ?*&jM?df>2i>tW|3M{Ey%FR%SbTK%48-9hu#FL0999T3+a6z=J#Br`x1auYF#%Y8&J`sHT#5050?`h4@x z7aurx{gLa*br)_vd@Z^4%&lk7CttacTygH7jlU)59zWmq&8gm>T*%&XAbs<`#I}8g zP@-Ynq%Us%x$p1f(-*Hle(JY%7ysG#Yx2pff4_L;pAY^_?z)v+e>1u9_vC%Q{<-Al z-%nor?d7xAoA31mb(O;K;cW(3-#|k&UF!j@;>(5`G_UVt4zB)hmm*niD zw?-fMarWou2E2Y`kJHNlM_Ed8E&wn-UJ(|DfMYehT z%ujxq^!YKNc7nBKmb=RwO~qJs=_qUc6hqx4b@g~teP3-xy%gzaDjDT29SWRF>q_O~ zrBXZ-H3ZIE#QAIJV1tm-C`PLEDHW2Z6WSP<)GUZ(tJ6EHqn$-GxYJ&amVA%{)-`4M|w*ISDs)=6>SOBX;Gh4CT|AsN$1?DTsyiWx8pqe zX9%Ok;On8zTW&2~1D0}2v;*faMWYBf{G`uM1!DT_Dk&Z9>xF1{VZ!x7dJBYFwAsTn z8H1(NF528ib!Zw{Fhev2xL_B$dOndlB++e;JMVr|-fT_!Xd&Fyl+lQA4u$|2LWrZF zQe3aJ-i`7X===z5f;WS(M(ruxwb7n*TBDrPM+~=+mQsJ_C`}lhFpYAgCm-&wP94n# z2ZEs%ET!lt2X(66+Z`N@f*g`fCc>ZTR!V*RQrpOCn-+~?TsTza@H))kS?1ux!?#Q zw!q)>b$in$bxuz(*#PUgS|9MZE3;TnIvSaTa2%fzoDfF^TL=UjD$lAQ)=IK*$05F= z@{BtU(E{BF3LxqHyte>s*tw9R_>H~A+NM#Mp{r|03suv-_r6||O!hkbI}|S<#X8ZN zLdG&7n1hxl-dzNqEFn;-M{%ArV!lA36$%aEjs$w8s9+9d$uQY+1y`L^u-f1KEmy;4 zK#9^-iWMSFurJG*NJI`Ko197N)S=pfahCkaa>bph>ZR7Ixt8+5pbao-QxeO*EFQ5J zOqJ%2OVyq3%bs`0JnuDKmmz@d44`+o(iIDV#)ZBh$)0+f+y5=L{~O~mA;RED;Ue0X zhngGV%)l-T!ipUbQ4BBQ`fXxIdPk(kBOJY9nCIfA@xEfllTNszlp~cz$GfM3kMzN4 zvytg(b50R`J~1>s2mX4jtt(Vx%r;a%DmT6ZVn@6OiyS2oD#5@hjE5*?P9<#BoTpfA z>uM;woAh-DdtdvV$Ia`KhH1w#H~e0-_9pm7LTEA>>W^&#q&A`Q57m`!a1VSwG3JxJ z@n3mc-;|nPg6214cU?%_|66$dAJ&2eqwqYYRd7pRf_wKemrt-bv`CsSW_g&VQM=56~ z$mngEaxeBbk%UP!hFD9GuzE>^XN^sa`LI@G2Q~eh@sU0|aurhH~mnDYX(7vQ-GQDr`b&_gbq_Y;RYgHKb(3NzqOj z9$y56TXb{_daEbffKrCJ5S=87+Dzq1p}yvVDc~Oh{^8(il@qPjoSwFvGW3)4iNU^Z zt5Np`QvxJ|sMa92qqeMYJNjNI6{E4yIuGz>h1+>_{-`NVuQmsCj!?UmNH1zltj2)p zJcC)A-YJ+oc$ll~VM0u()nSb)M45`j;x^BKS;3}Z{&*7^tYj>CSU@yncSf6{9BHC8 zSYOLkob6g{%&8Q;9kq^p0-F~ImQrbP8}TO;F<-Qh=;Xol$6Cl*OKC$`v_x=EAv`M; z2SKD2QSPWN*}c zYt=0Feekv%-dQfWiWq;TqPJsOhvxQnkGz8Yi~(1pUA@M=Z3LqiB&7<22@4QdvO$@@ zy>$XF%b3xifY7eA^C}%~$bVyKETy1d{y&G?abL8{?Cs0^w>Yn8>k`&$l((q%>2~)7 zuoT1GMt58X^js-gz0whYRR8~a%KWMct@n|NxpIwk-GpgrbBE5qzn#? zzrS_IM=O53y7buT5&I8}I`B!`o=^Mk{-pY`7dyRhplscXB{R15Ui_k_Zk%TDytWSx zPd$&fc;=^9{5;p($L-IXj>n!GK2T^Xf2!8*{fXdIR)a1)Y~e-!;(hQDXR0 z!nED0JKrQ`zXCH~WLCWAef$^i$2Xj>op3+?MfjfAJj2(jatE{K8c|b1dpm%$7TooG zq!W^inATO!>TW3Pt0|tSE1xD5j2B8L%e8aFx;e%!D?9@?(CvD=b>pX=$Bz1+z7*c| zyMNao&S!3^c3yVv{MEnX=U#{YTz(_jbK5~jpZQQdi1cRrY8w}B-@f77Lrt%|H|~qG zyRIdl{OL@=JBMeTO;#@1)M4rpPzOLAGgc24>qm&q!|na2`ub0a4xDOh=x-`$GNo3! z;+49R+CW*8v$~71q?0bA9_m~BfAe$KH$SO*=%wCIy&IdhHniYD&)oYVrK7X!#PY{q zrSf`}-23#Hqc^&JeY)oLPdaUTvwq%YGSNXQYVgh7(C3xU3&$_gcbyu3=nL(PC-fCuG#22y9Ag(55#aw?k^Lf=zFRcDz^q`k`?rlY>wE+2@tm}=T|uM!)(h94ym0-cQ@@GLAbHC$L5C*UjOU)tH18Ld~MG!mp7id^32tL z9=Z7Y!ow%GUjF0tf0EDtk=%6o_tigN*nZ*njYm#AdGy>9Kb(H-r;CrD{(aN2U*~;& zYUG!{lsvp=_P6KnJ$`BOdtXoZ_?H3io$R^)c&`ILb=-Z}IPaO_hriBV{<73{YWlRh z$M5}N)Q6`Q9J#XYd~)2kS4(#u$XL8X(`VL_A8)k2a8TWFhq2S0rsjE?n(4Z_nWm0& zj7@WGT^3p!hlz=fOsKOae~h)D4KJr!Z>o@1rAkW!X9QtG2sFr%7JXW0F;*d^6k_3( ziPSRLwb(hxM{Bhy4d{fYVrht8jJrVTJoV+FQvz+<;4C(zcgbJ%R$}U7kkgNgb`ah9 ztR+QsreZHDLJk59+Sl`NPXesvF2A*!LBMtF5^b;hffN` z)S*<)mo9{h(W!z4X{8O*UqVHzz*!;0TUDt8A=reDdh5iOean7Od>XvRT-gsgEYS9R zNlu*(&Yn{0U@%q?cC5Ohrj5iE)<*JZtx+_4c~eNTC0I*B(XRbj=<5bOb}*HpL51>H z;w=*7ENfyoA8X@09aw)CCeY86KgEuMhtPWJ$z184Hqkg$AR3jD+^R+C&-t+bh!p^HaTGY=CX3XLljaOp}D8?As zjTwaO3G*fcM@qVemELuKr9AY9rO!iPXg6tK(iF@k?HOQB$NoO_50lOWVaEbTXWo^C z5f)Jq@+CMs-n)^^9q3%uRxeOj-6NH+f?z9P$-`q)g|R^x;oPfoq^W&rf-fTaqm&C9 zhXYD)f(`p&O}KZET5+$j-ZaJ$7CjNc88di7ysTF2uNtr5%g4@5l$1G34wzCgwt!{> zl?#Lf+c>@ahrbGc{F~{p!RczVqGQS*0W^WQ)6hc#p&T(-VhR*u=Nj#cvY3(C)6wmN z34$)So^mHd6B2b6SGzJa_5kE8069RUR2VacV|fLMi_@q@t3?;-#U*+hN=G=$MzMLr zLuk~Abk&q~6T&H~rbldJ-qcmx1*ST8w+&MB!;muH)F_>9ng`@ez?^e>>;xhrDr)QBSAO+NDk(1ddwO(1n(kku=s`wJJ{MClS&t9@N{B1}PCGXgBKZ zm}VjpQ+g9v4A_wF&K)B9E3k1@UA!Tq&wfw+YNab2VNB~Kt=P&cGb)Xup9?BffKda- zi4)ZfuhMI=|C9m|jWjw*t5K^|B&}j4JK8*u39%mpUEbh8*u(L&2tTn?S@hDJcWaqgso|hb@}u1wn#E4+h#=c=VZLa;N7dbo;POb|cC}>L>TYka>{R zoAI}31D#Bv4%l}CSQtgmwk{oXD6?15{=Qsbs6IT%O}8 zFl#V*L|>Wgq0~-{OuNUPvlA}QHt&x@S0U98+1@H2N(WyW(9uDY8!ZZOp6!4squ{l(W z;ZpQ=f<&6Vt+(R^Uxkftjxy0%NVrSIaLsLQ=TO3@kk;`R)#!Lfe>)?~#%Q)Juf~*B zY)nljIW56x+gTj}Ua8K|Y7?neWOjwvF)6#PiX#)Z3*G-&+^#eu5LhYUkiu^Rykf24 zM7&c7T6Fs><%WMf@O9h<%&pq>cI0-3;~7?LuQ>c4$L$d9tEs-z)n#Mqkmtkwo^*8D z=x$!)Yg!GNGgY+<>z2Q;;;ZwkkDiDO(q>>2ge`y=;$I{SwU!KK@L(;sYE@p}1? zbtzrv*t<>1*z(qd?@vy?cB%f-)zJQP=sA~L?t;{wF6>ZNvUm@UfT0<+R<-bHe$^Yy z+PCFJAF9@TrhDSBZO`e@N0+ibx{~tz_u3V^Gy2aIvl_9*Ot~y$n+C`@zJQ6=$=C}@ z$r2?Cm_aiV&#OgQuhy9jDvix(HfZ%ay;)Exkg^8M2{dOZAkVD3Xx zp8ojD%gI@Lf9mnx4`VO<{=n(qGy6=8w#``j%@xa}d&&H+>e@j$W0w?7S{m#*5@JP6 ztT0s9!`h?OT2SrGtu^G-Lt#_wfhR^?OZI&K`|J%*we9}2YUPvs@I{Gr&!$dU1KBN| zc7H(R_wbEhKH=DJqt5=>`@KW8o1QJ6xmI1&D}TcLifwy_yn8rpzW0p8OU|UJDVg(lt)Y*|7k=@&s?7QTXN)&f2ZI7cFB$payIYk_{zs`UrBy_GkN&*wVw~4diSqC z_x@yl;sPHsPOY0J;&Hhg{b$s?DZI&pK!cV}iD zI=AG+&B5=Vx#Nqo3qL!$;G-jRK2t2~{r8_7^ufuFyMC4@ZY#X^gWNlx({!DZJ$qfh z=MT2Mbp#>*o-@foA0DrHVt-`%M$_gvtlD~50ZdPT577)$(srV(GR zHeRU9z~N=eRVk(5N+W$4R3HO(L~oq5gw>ubjjurT7BZev zCQzqJ?QYC!#uk2XV@qbSF?Wc)WRg06D4X3o{jo30pShT}>7=G?sOT)#cU%I+W6%(y zEf^banq$lv7$|MSj!yK1(~dafitz>qZ}ejKA8*M7O#+M=piMymhbkHd8GQi7Ra2T| z$Y6{)=G?Jt$s{4tnTz&>K&y~G%2GN-n>_%*UTI6TSMsT?=0s<_7uz)!hOy`tuP*)j zucBl!^wg`IF-I4xH@V9dUwWWIh3%`6-p-oU){2$jsYB5hv=&ll2a^TGN!o}A9VC%g zjZTH1(Ji1-gFYiZ?~vubWa^sBT>d05VZhT!cO~h~L{3I;iPAjlilM;4OPBfDBJKVw?}V5(2c{i|V@Cog(Q?j9QPw@38JHY}+JV5y65gR;uI* zN@lk#J7lnHO9xkddfl-1lxOOGV`Pjmge{+5MS^xG$Ve`ol7}`bqdym$@0dVTikH#e z0yL1L4@X_n7lL^T|A*_`)8EX0^cr+r4?<8%?_p1$MFh)G6~pToYtn%#3c*G?vnLL7 zM5Og0b4DVr01oY9illx`<+DllMQ`YE^rKX4m}+lb;&XP7q}~Fn0XS^g+?B6Q^RY#oGzd@ zL^&`sn4!=VUh_p%u-!G*4jU`(_|3cQx9G!3Q{QtqEQT$8pr_*s$Q}WnCdpa``Y^C+ zBbGe!hG4s8w9B(#Yo+u0WR6`A-S5JTn6@DN_hWj#65n|&vh645=;OMkEfDSp+7hg< zd3#OP6!rwLW8VZgbjaNXG3&X_!UeEDT7^OFsf|Wf{JRb!0I%#3QZRrg@z5BL1?Erv?43gIzldv4D7cTIP4-P(AI^}#iE5>OUoAQ302foguV9mRmBuR z@oc+GMCSAyhh+j>0W*#gq9)b6&TdZhlR|Ca9bqlG%UiV^Y@NVVfL-l)J;CvpRMAGd zd>|Ax0g^l^sW|Oz$IflN9Ss$-$tf9KsB+_gNNChocn{4pI6{sx$c#jYGMZ{|-4xpA z755G%6v|t8#EV88&H{T@b=5ucUiu{O+cR0uykj3U7hE-bpn*oenY{qKWf1EK#!}u| z55_i?e=6sk#9R8QG{qESQ7Q;{U{PuYjq4h$gM{(daTFa-?f}qNDD^TP+eo#zsu)a8 z#2~bfJVW5>Vc10i$IxMDHBAdhk~laIgEWaMH0sZ4P@8~7TqJOLm<=f$iy=k#i>Su) zRPoy&x?=-^+KK%Ln7`oGp*Km1$!&GLU2I2gM~43w_Op_}aoA?iPTdHuh^+1Q4;31C zJgg>#Fc#t{AC~$to~99a-YM=Kk!x=z#i4+3S0Y7YX@J7K=(bO$U17!-L@X|Ayv3BI z2=#XCPSwOapic&safRDS0-JUvom*5H+XWXvd|usxU2DF$_RO!z6<-{l^Zv)fo_lA?+ut-jzSlGR!Ibfvouy-=i4!$+gHm`qNa!EVvo%vy)d z=y4f+9(^=mNsa2FK}|F$hWv!vK?l5CIHU=N4dEDPb`u8^?4AE`n&ySkv! zTGB}yE460SX;5qrmxV^$TfAj&;{La4w|(Tk^Ra>#KALnjIqBzXYi=gz{&4EeE6M%W zlUpzU+4j}3iN~*PJCl6!(k+DceSaihJAd=lQ&;y~_-*gi-(Nd_b@KO@9=QDHx)W#T zpSd{p)Qw?>eh;jCK7Q8=k^A4vc=Y|*`%k=l^wybQlb0|4e)zBCzH3*Xxt4tK!kGmzU#?dm(e8i$3sU>uQ_&h<)M>Lox1Vx(QDH`J-YDc-?m;!w!M3D-Zz&Q ze{o{zmuDAzb))NZ-}ZXt@aT_DS8n?}XXT#e4Ic)FtY+#4*RI(%cHg0~2hR@?FFMSUg(Y~>Kh#<4-LMbVtrk9T+CJ&4EETxKW1-%*`C#@A(ySTGVhPsMPm zI#EhQI%v|deIN}2sZ=DLj%EmnJT!hF2tl-;R5BJvlEi^G(bkUblPq$(N9p531VS*w z8Y^=9zkM=-GoZLE^Z{GyR3UGZn75jAmmtLAzN78gsEP=V0+p`>O#;||$_AS)IW0^O z-7;7mD3;@W_>^Hn)+mVgB^pL?9ouXhenxkM92&u57l}&8CYm77T^XRs)8H>1D0qv| zr7Yn}+M`&lrf?ucBnNc(Sj%`%6MBrbiN2*X_XJxvvDrOnTY+rJrLFm5)(9vZE2Q=} z6iyH_$3S!lpD~n2$FDORv~EB!$m(v6){@SEN-4`4tB#+mOD5~CC!u-B|3lt;M@L!i zYs2^S-h1yYGm}Xsy?4?G1VTazkdQ!Vp@!ajm0p!5NJl{hEGUXtHrB0T!7d;m9Yqlp zneV#8K6{<_yl1~_owd#%-&rT?Suw<9GV@Hke%J3RglT8mGZbE=HRiK|Wr}c5;;7<; zC*+TO!&SYOIFKy~y|j&G^6?Qxs0#`l8BEA6EH1F$G;K_ss&Cnsvn%G>6wBN2fRWn7 z&}DKQ`6OJ%^8p4YBGQCsPiEi*0&Z!LTS)D|q zfhi>Nq%d4bEKgKmO;%z4;w$)`kThH<_7!x^ASr^(RuY2j*}_R|iQ9T9>)jY*{PS3g z^IXlk`01Qr4|cSO0y?KnbQ5OeJvsf(EA{sCs0-P}3-`{J+x4(AZMgZ|%t}dkQQPltM=crzHgF zjyV($X~2eu2Oi-7^9*}{X~7p65RY-7srIEoX2y5JGg2ZHg^4gnSba=0^t`#@?~?4P z%EWr2Fbl+hWO7Jl1Sum#)^Z+K&Js}4jBkV(Y_ug~n>jQVVsA>xil~83(&Ip|BNiEY z!#m}Ya#hT`{wKoKaRAi0CWx%S`7>l5JPx^hpUGD)MsTaSFG-l~ANx&Q=N-lD>%L95 z_|c7kTUuDQ)8-;YQ<%0mp>>13bqJH^m5TFuJy(*F1K|PhsnX%KmvSP>Da)Vn%zI20 ztY9;ugpm(qNKAQ}xFIHKHW6fUGa4MV?aEL#lVe15lECO9cAH4!1>epxI$3H9_;!lh zMP}f3W6CJDu9(OYu-zm2Tyc1YB54?XsGBRyS+gba{fNZSsf)!@Ai)p960tj5lH3A6EKjI}9git7A>~PuP|x?46R8(e z0PNLVb2<;fO=1m}8kE|F_C_EEIZUy!Km}b&7w^r-H@O1PUkaYgP9V0CDyVf4^sm_` zk4_dP&f-NDxvO`DYPa#jLzsB!0ACGN4@(8vVOJO+;4!?AV9t@Lg8UYG0Hfj$iIqAW zG-8p*hRqhFG|aP50YM2*Q7czKIZ{5A+~XacCs89vnQB+Kat6yGm%=2=gXTdv&B3#K3S%7pYnayOdSz>|AEW+vp zlLD*RQh~vO?fH6(3A~J~iyD}{)U}ga-1F_?SW`6#6;dYSd z2-?AQgLnvn_J{g;sXC)>u)r2%D-3kILH{rZ4{5rldH4a8-sMY$B>}j-3%dXB(#hx} zxrXFAFl^@PwZY+sY;C*L^^ZE+_gnjIakcES)Nd1)EH&4znefbayMBo6xOi{WyFbkN z_{P$2{|K!-7+mm#u4;@fr$tjZsBYoDrmZK-cAo5g^5bD&UmE`X^_Fvg6rTBA^wxRJ z`_~+&Zv>8hXIuOdqjC;O8Ky0pF0m9UY}qP%g30Z7xSe{nN`qtpq-hC-9EC!lRdZBW zrOMeF1xt-}D(D%dK&g@HOiGhYX>`Cktv0*#Hb3yW+~X5kT{w6~htT5I1roHr1diLG z4hIbJUVFsnPmXuQhb)1xH#H}{c6?;Sl9W;N*B^S}gKIzU{ONwj$5d|Z+;>tldrQKk zO_gg8E;)a@{e?HW?|#v{|HKm?onL?be%iAqW%V7(l7@`=>r9nHT%{xRt@8~dmRdWP zYucvj>W2H8I*jFgH6^{YfmD7`mA14mCsY`mzPi^-ALl*&PR2Xm7aV*!Vc`}_!=xS? zj@G_+KIPcymbboGdn*<{X&K4yv-Hw$v(DX#PFt;Mo|Lj`ciPg&3$`Bet~}tKxSEhCY6$U>Y8^LR7J+=MkS*LEzd+b%`@HOJbndQen z8Fuadm}|e!`{CweKiq!y=f7UP6FdCV{Y^jJUw7f|;!mzU^7V!NH-CHO=LaV)|8nx; zos-vpfBwe3eV1;}y&2nh{r<*_*EakSn{X>u^xWt6nfnXZo(xPsZ0&s9z4$iP-0 zPdxMWt+y`!@lGsu{I}Sf_hNhQ#+F?FW%rHWU%DH6;^)6sU%I{JhnpKO-CFq7#U9y~jac6#0)z9;kjx*#9FqjP^8bF;vbH#g$8)$s(*`G0eu7aXi@^ZwAMo$`7QA!#P5KmdKyO zjBC_nwo8IN#O{2CAq=1n$OpOgLsSC<2sW5+iw7Wt27{q<39L5!6Rsb7;uuxI3KBn@ z=snz3A`yRC*5q~aBiREt77R=_Pja3DE0^5*C zKg-Z(U5&eip+=$J%Jx=p6I<0;Ly0k$0&%7%|NK|p@3F=kf61dzt)vUX1=6Hau_upsir9fl8h0O8moW6OyXk4- z9Z3wu2mpaJov7mw;V6!8=U75E0QP0fVj*SmoTYpQMdx2!YCsIvZ#cXGu zETISiD0UK?#r8yHTrTwO0INvdkvKx)k|{{| z$1K1SN)Qkyv4d<6(m6;Sl=-7fCn6IOG!#X+9J^a{%EegHm00fan4owr43A1{9L2i! zL|_JnBOY1zYRo<&9mss1Cs*n#MLG>f=jSFh3sUO|--Ua@w)0xj*D=qt7ilbyxfyZ& zVmv}*JSLodYK6kzLy$E=l08n7FpQX*Y-OwU1xxikmMU{b5o4JQ3phdN%9rH^K( z&SV9PCC)eqeuy=Kl?`o+Fr~0fi2_?9L+kmcp#7f`_lLezM1A7_c1gSvn5GD>KXm>g zEA?vtv;(L=B;N5ENFFM8w$sNj1sTRmk1NBA7>X1C5DEr>SnSoRp_g>c zF?aiA{rGE+r7`QMV}PxQq2ox5OdaIhHaM?kmSmAVkLB$}9F4?3Q9I-_`}DsO7RO}s ze~RC9gD84)d1fJ|Nb_K2=|++~#?Y`z)ptH&D0Qw8in=Y_^4-xTSM1{t(JXE@TNs}& zUbHuE-y7*qe`#NQ#5MCEvw4H0bDwqAtCgGI5!H@m_>#b^;_)C-J9vm`(p&gSXeLdN zx&gOCXU>zt18$ebWodK9%j5eqK<~R#nUSH!>_g_@p$#kngd92~Aqxct5nhPEKSPwlk<+<= zN2NFq(K}Bp<4d5)hpU=JqxhLTwot(ns9?5*_5s5J5G)Qb^8oYE&#=T=dOjh#<~ju; z4IeT*;t{!;xq+cXT*TCO$A**yD~PX3lRjKmG}BPCPL(rXtZLObtC@;IBFbQkLVTW% z$EH^XVi@33nvMe1kPfmIK6H|%6zn*Pv710X42B(Sf2hO-XMlojiI|6odjaL@X)FxF zafBEv2$xy_@O`d?f_xYP_}CrbM!}@nC3m3+{NHdpMD_G{MLM=j2jU%}_f#YUFbOq# zS290tFYb$fC}bWgX8_LGJX}6z2WWMW^a4HU3&zsK0Z0C-)K6pNDQz@fRD$R(>2;)i0H!SI0G1SFiJ4#d83Bn|7Co;J(M7} zXMj~8oj z;mxt%-|f8cTg|>#qSM!E#lwRHBp03}U&7 zFEwD<#}XS@S_^%TRvNfEJ74SMC@frsO{Vv94VbKbaA1jyagge%ED>8E%jm$qGEwPH zQMlp-P^&uqqDY!7t4vo`pSE^a_P*l-4!!#E?LXi7GuHOmMbo-{s{RvPO*7dk1HDZP zWesCJ!$xsTj^yfr^UmE{cJA`AJF&zObC~MHK*a#82J9VkqYHLaKKXvd)9+j6Zg$OB zuc;qt@7-=LtrsO1g$k-gMLpEP0;wb0GGiTg=DJ=-KN)*1mbd?S=Bhn;6V_F)Ivl_6 zm6EeRdN%Hx@a}hGPMzVD_gnJKEg)NFRv(gIU-9(oooB8NcShQpb(klkfbt{cdc-z1Zwu|5$P3?xt&Zwp_kF=d^O2ujOIx;^Q!-@M*+0q;e88)mY)bEM$ZA$(4KP-87^_Cf z^IMg91MyE@;hMA&FQ}?Ek;E~wq7g(95V%SMO&c90Bl(dgZFYw$Iz((oNO%LfiZsPj z-AU7kcet!_k)qoaWw2K3=_ZRSA-+6Opt~?oAqaG%bfPa8(q9maNbiv+G#S#HLCr~g zc@W7!4};to`ngNrPE$}EiDFk&;!FhPj#Lw#&4N%kyb`J$O^SkPxOa%wpbsVycOg<- zq@hxVEkPI;ktQUF!>ItJs6LZmI3MsKM^J(jq6 z0r0IhZ74sfU6R&HAZ|Ay;s&9+M$pk*OA=c}U%)}9^Q^^0S1Aj0@N8qX2}`-geWK7o zSN(qffX%W@n(!u%pPFYK5?Brm68cWzk+@J2O|Zwp^#CaaG$h(^5fc7UJ%dn0YhrF_)L|KHcLF2c z*+pud#upX1qfm)6A#c_NwPqg-vkX@PPh}&vV%^G*yx+$hd#;8??1lM-k1%uO=Nsa6 zrZl!AL25};n~*ZChYkn+2%)ExXUULTJlyztZFVzP9xuz7YTtL;^<^yh#xo*0ENh0;Q=$)5s@%C4Ey2J)l(hrB{}Z?WGY68XbwGFzi5CvE53uzv ziJiJlak>E4=@!XAVLa3__*xQ*a2*jO<=9)XcbF^pma| z*TnoQZt@M?!BEQWUW>JY8);XSOyQy9&t9rjTgByz1of+VS#yn3-{MU=0)GdOp=R*Z zBF8Z2mg9MsV$M%)_%7Y@d~rA9Ml9}1%<|69tds`ot~Dx&N{*BvIvi=N5~OG}$d@IoHRi1Y&vDG+A*Q;_T!CE2;bW_In zWg^s3?1ul5i=rHT249`ZQ6#A>d3tBDP@Rgo8x34+W2+@P!yJKuB}`TE8Y@TcmFwW* z)T0nhoG^gctB5*YZTCu0a3F9KIW@B&hz9z0D(B!+aWcj2=r$7T#n?1~+(yzk2S^)X zj%sRQmYTE*6?j#MF<_RL=WHW^rLwF|;tSY{wK^BDS1nEvngEDRldkUPfRJWbLf3F@X=XfW@nJB-LFfxGXs4QGW zaX5ljFdHKLge3`L5Q9`3y=jyvV9JmK94eh63AQpc@py(}9OfxZ^n?IWi&YTqOZft7 zLWi12fUq4AgGs?Q;fPp7jbs>x2nJG6+!7u^6ns}sK1T=~PIWSPz)BQUO$X2p+$hy? z6$Wtrfa26XfQ1NzF=7Q~b{u~W|CVIm9`ANGLFI2;%`&4D+ur| z34NEe2G<3yP-u1j`*1te`w)JYvj77O#qDBcK|^y=eFyc)@>FhA^Q5K*!`Y%)b2F*-)Zc#-B`ENH1Lq5X|Jqd zhrR}W$xef;R>;p5%fn)sRc;Jf3x^tq?^P}Q$T{(VZtUL3($^dl4+(oOCRrn$t;^!a zZIqYxlSV7lN!^u&eY9156sgHvt;pa~I!8?%_SUDK@r#Js4G$gB$s{hTTxS$0^ir)w zjCg06mb%U*YQ9_tf}KYL|BWJ@1vDc~meZJoMmut)tnMKGDRsy3O)l_V8hgCXmj!VDoQP*|)9zQzc!mT0KE@rKuFXv->|vg`uKKfI z>dxICaq+Kpf5q0{`eW61KR$Wy!OlB(x844A!?!=~xp?QuwY#TpJ$UX;Y}>Uz58jL| z`~Gg@8($6o+xJT^-I;Om=bmqz>Hq1EgU;M2eDd9b{qIG$yk;EpSmco-;n{l<$8V1B z+-#Y!%{cvla@2Nl?>UCX+4??X^?f_NBUg0a^m6Nyr{|si`tj?ro!4W{f4?yBozFM? zaBbDOAD3PDWyHHzCZ4-H@$BvCXKpU}J~ra5YYoS~t=#r*>B?6V#P00{dVXLHDr@Ge;cf-@#ZhN%dwy_<^%5aGbH}VT+N-H*a+uukVd)7Vqb5XA+ z8Tp%Rbd7(_r0kz~sob#`G>X#Z`JGCLg$WqEBQw>eY$k1rc<+ z1b}&nyBOi^Y+o61=EE4PNa_VwEDnJ$1m>I*?$3xevO{@jva@H6(iLqmIEEm+0(7^^ z(;|&4tu$rL)uzm6#?4h_EmXxfO3}z8 zl@XnZX!UBmfHS0_{m&=GU`oB4+JWxKa<->VoYcY#)}YOb=Pi+D)yZ?3g$a$~#5PUA zOik%ZZt`MN`euuNBjJQZ{t=$`Gt8W|EVS)#)t+7ltRwFSw%u{8jKy#IOWLqn7_R3) zRFKfB@D(8yoLIZ-2klYzSVdz=^hI)I1Hlu-gq)dlB>6z3M3=k@7Z$-Xk<~f(>CCe+ z-y1Pfu}K~nNSr0YjCwJiGIBfHmCXuu7eIgnbEw{h`v{Fr*i{jA0QZz9B}-*B(Yi07FT`PKy379ch0QcMN8rZ|jmusI;C2IMx;ML51x z)($y9^jQdC(UvV$1!_nz5h18Fy9UN*b1L;;m=hrg#NQQSwA6W-Y7c03cqb8hi6$(z zfz}NGddrryfZc<~(?ROs^KL5l+eDb_|{;4z$H4i(zsIeM6{6EI*heAv_!$rDR> z?hHjBPZw;&gPbUnd=*PGT6drc4n8|B3MH9x2+@&mf-))UZZ;00B)Jyko}Xi^5<@B@ zkntherA%8$oWIL9`=)R4UGLmG<{8&q%VN55pAue%0`Jer?SRxlf=5LG3mm(#l;bQH zT85H}$E*v^M;HHLA9>EY^sZq;%rWvs$|~a>&Dh=2Yq@^d3P#?@1mq$3AdSmSY}`+( zwx~utBQ1VZ)qMvM1Ox`X++9UXE#|&kEPX$Kj7lgKC~|lEPWds zQ0+=bGqn>Z3VB3Qod;2?OoNFl;5pUcv5h3D7r1?K{aRAFIB)4EQruboq5i51{K^j% zjuL6c(&+HFi4$f|k<^r^4mZn_#u0D1BHADejNmB-i^O#tLnA?alQDxMoj^(th+nuK z|HB`tyWT=>3?Q*yL(9U%SmH=v_sCX;d!vv7IX?`Y6RAyHxs$I%{-=Q!Fe!925MC^x z@sB(y-bRr&iO_N`q}o7?Y!OEVuxb+sOe!Eoj#NScfRI>g^!aO<0XWl_`g=Y~tmT-v z74}l10p3H;x>J+V8xKp78bK(~%!oiv1Ex~k%ch7O9!833k&%eF6?~t|qYh1>1mAzC z^rjgsTncxoriCxYRif|jGI%+~h`PjBq~)s_9ILTorDpU2;+SM8eG=U+qUN>k;oE)v z*I2tvHD?av+A0Yvq&1oO(jXUlB)*g_0%46=Ktq=TJQJiu@KYcF6X*_}bVKeq;vOqd z_+d2#{f=yT4tfpnTMC(o-Y)zKoT2pkg8-)j7>pG-X_OMD1I|NP3&1vRRM!EfosA!+ z(~3w*t-jb1;6N^oNJG!CND99FA70&myO6FEB7tCrf_8k93TCKjmm?GiXaN!oqdLfY zL|~DrB8B>i=?{YHhMXpvXB;%qoKZ-29Z2?aDZQs>O!eOsEuc6 z(updEWlAKvM2RO$gUXC9jLYRK84{aB4qs}QL>#lKD+?i4M2LDRHfVe-BM{caMGcbz zPFP$dW#J#v+W&>mxGp%l$Z+~+A0GJUKfnGzzd*GuW|XeK#6olp{Iz%-792ifb-M8Q zp=aiwmj)>j{`oI>b=(4|X=vg*J!k|CK6Q0V(V6D|{s8>{zrXoE={v4Ooh$70M|jY( z61z0M%~rpGRWx5-x5YE)kgeYybJK47-~+mv^_=*TL{dpaa7j1_aS>4*@t2F+SDF{U zBAj-dGj1Olu#WU!OZqG{4c$<-_Qf%$&JB6xY}xR+k+!Lkp)=h*2L&pd?8WevDDXsM zgfj~kuFspd!Cq1$b-0O2%G0Q=TDweV1xg2W2Y?qU4LCsK$n`d^QvVRQi;Z>)-St+9 z#ij8Caj4@GIFwWm0J>|vQHd*F9EeJNL5@GDPe`Rb+C*VYD9;+PC}a8lmoCSO=Iw}E zv1jB*7gqjoCp2l1tg@}gx@U_YKTuN#*zaFVufySH^zVAwQw^XP=CR&(u$ zgc+O0z4yZ#cVpu|{~~M6Q_&^63N{}d`qno+pME2G(}A|PznXXbk5SiR2`hF>+NNn* zrphV?S;j0Jf9;R9vzJ4|mZ^FUu9~wcG;g1``4Slzq0ZC)n(t_nf2xG!#}*d@cf^>o;VdZeYO%OP)mJ@K;}y$-(44fPQAo0k37 zg}~Sywu*Vq-j8`3wmTcPI2$)x>efO$VD7odP%&3lFKzE>E4ht!Kq7>+FroebpA zd}op}l%ojca~+U#z#U0(I}%#V>62Aywd}YElJt~m4YK4qW6l6Ya;+r3rxfqM&V073 zP?=C54fj#xbc*xFa^ou~!i;NRCCy>ED?yG)qeJzfse(wewRVjreFdlI6k+--e#KVM zuuNAk9z2ZRRAD5E5k@P06ovJCZ>_{Tk!YrgU8|IVjRMDNqVC|7ZMO}5UEgrbTz7)$ z>L7t?bH{6<@~zyoIr8MGvefzPlx6zzwTk3spf$J%5h=-)8nLsQAhXyqi z-;*SO(8U~uRhAP-V%Y;yEKopdX)|QilZv1F*)#3{+tV8e5LyMXHwsM-COEj2@nFDR z5A+VX6wBa-NtsqnLG7T8DDzu6F7#ZK1=pU+x)w|QDkjO^r1DkMo1;S&iZ{HfukZJgrFsvmVg)f&S|hEB%8i25DQZUm<_IQC z$EFl)K(wI}l|Kh~8+q(pgCDrPtHdf^jG_U^_34=m^H7?Jm8Hc64IV9~(I#S?;Xqkx z0IsHKNcaM{9S6P!j29vq5)3?K@DOIewCkij>1eHD8grSZ93szPx$4o^L-R(2N-B_G z(=$ogU7_8aI@p-iK~!OuRLL`@h;>mK3XS(-4l2SroV9-sEV%EP`IEWxvTDjz(WD3I z8z0zuZ-Tg;>Q@CafF&$dv0T8P;99d;)@nn}e&_U`!;61PSoT0L<|dhPBXw(xmpzL@ zP=(Q!*Wf@A!sO?qbiRg_3Yc52#Lm$d$r49uqLZ*p zVY?bRx;nX`UgDlA4Q*A}HYy{tO+%mW{?T96pI*sYw2PW*`M`>5)XTEzUr!KuD)^r6 zLT?#*-(a8N$U((h#X1l4FpyXPQqtfQ0o9xXDB?2?z-AsGbQf;qt3)VtCJZ&&QmIW9 z0V6yG9lk~Vwh~)&s57f(%hh*WQL^p!3iiq{em=;;8II2NHS|e>YqbQvwM{z|^_~4-P1x>l3 z^!R@`C}5`Oo#J+i@B!%sNXUo322u8~W*C6m!Q^93q2l?689V=m+q-`89~by=7N8V8 z4_YQM#qC%$iA+L;QOXBu7eKc~FCV8-q|%0S?By-8vR1JxNJk9V1~3y*MGdHSXkF0B zB;a98fHE9+pu~v%0)&wabD7+q3ppQzc}fRtgKX+)Mb@aoC6J;c0GONsDqH43Wi}Rq zkh^0>;302E=*+~nm#arjfUpbMQZ34V>7coe0N6PGJ%In$xE)$1ireYNfacxsaQp54 zh7;fGOlJCbam^lH4$k?*#K?bv+o6G{xE;R&+>Q%^{+*_6{>zX5>A0Qka!Z2=*7RaU zQa)ipU8Xi6VFUR~i5`7~I?q82nTD!~sVhz-A3hg&_JV)s zXV%59s3$*520g|cvd*#a$@*8m8uQ_gg&Pi&ygFAwznYbMiX^jAw*$R{Z^sub8RZZJ8k5L?xK}&K zcA3qi^@bF_u+WX544Wc8N$ieO_(Ix9k}4rtWOPy68q(fe33#WLCjdz{Gt&Eap8m1> z^Jj7%f4SEaFNn67Ck!x)bc8<{Ud5iP))n~TghoqOxS=P&#gd*j+K z@qJ6=;j$P-rGJ?oYU7(HOSpIDcCmA*JF^rx-HN)F*I~$ z{E}^hzrFeV{n+pi&SY(TI<$C4-(&B!zV>O;%OB?NdT#V57l!`*+s>b2S$ke$44;+u z*rCj&J91X-X*l|}WBgK9xHl`QQdivUp0Zs#ZY#%ENlWE?3G(<1l#{Xo1>A5EH=NB( zC@|EI&slsZQrpSYB$&g6%#`xX$Dix?IX3y12O~cDeCF3z_Wk_erE9-^^vi=&7jM0B z_3q!Gjrrl1Prti;=JLIxx9`vS>e8&wFE%{&>Y8uvocb9y)!2^je_43;>ZDJvFS;J< z{OVrDp0|>BzEQgKZ-pzLOPckBe(YNB{JoZ`JJPnE_V0MNc*`5!$(#M1YvU(xaSmUH zT53T?ttzDiU=OnG$*+I3`NlnXR5zW!x#-K=<39Kalz!#*m-scEispH7vv>7A@NwG0 zXQGq$TIv@>#&0g!@OKQrKzFXMOdReZ36@DB z{f%Xd^*xr0Gn%>H99~>4BWV^RWjL^+F?*ac*hzdnRXrZjC9W5hE#?(GChl{bq&=$3 zST3^-;+T<%f&82_X|#pJ=cAZdm$p`j%Hd4^RO`rBf^*Mm2fyqbd|I6~ zn;oeGZf9n%Ct=tg=Nn5lXuCfF2|X9FGhDS=Wf4d%NU_kV^oUzvBvgtTW+-}2Anv~W zP;XOOgA|?Pt`b$a1QKq3QXgr~G->WoY5o9qTC*r;67dfv?h1O9)P5v;Fms2B64H6$ zDr?J&;gvDnieJ@ZE{6`s?9<+37>mIb^E2x>!AhYso$D?4j(n7zy@a2*LXdNBxs2LL8OK-jB-%eL%nlbJd^?nRpA47@;a$H!yVaOEPvRYuJmP3{+*wP}YJcMjbgF9dI}JmhC*Hv!Z%`b}$7zH&fon+v zoJKDgAU8wp0B)y;F(|Snh#W}}y>p?cF((Mr5x(A!)>Lc+MCL>x0!dUfF%k#zbAU@} z^(W#YyS~8h%I%5x4rDX*q(Kf1S`QKq9GW;yuvX@-XIV<91wiIv0ZGD^$Q8=fU>BJT zMJm(KjjC}F>BzD`f6EtJ(forhNP)S~mhpvqP)s=CM@Ppc(U5P|Gh)6~vEblW=xhbr zOaclNc_u_{i4!9w-dw;oL?m$&EPbvShsJb+E(qH%aHib%JQ@p*Kh1;~o2L>;Z0bNi zMPfTUtCjeM5=FZ%YZ^OP@0xm?^w^a&^$ijjF73HikvUM}NrY5h7wsd@8742-Eedr5 znABHq_np3(cJ+7L=rzv=H4?}?*mh#9GA7L<`bydttV!b; zaygzc%Jid#&>kT`6NT&m)JNPQ#4g$B7`EJYzEN_oUGrUWIeEVe|;)aH?- zS?D(>2@_03%ZPQ5ws1pY|7S#rL*VyhXp+s*CXOu3=b6}SEtjiB!Vi=lwC9LRM+0i* z1_p*VlZ$Ih!F-o@l~1jpm?HqxaX{HF*CAt&a@xoq6siPDGYz5_BGv{$H1NGzEF{nup)dmeOB!HE56H8{YPj3H2p}Sk-ul$RG}Q-?4e^*FJ+ckKw=;xz?&ztL zf=C6@h&DKk>zhGD5hfyV#bJ&niqZ|L>W54P={*8DmCbM^pvrMPyoUG;MLG_=4&X72 zVFVcdA#SIIN)K^6FnL$HCU83tI|E@dB3iu)nGk*k$3L+Bf5O;P08b-msQR5pqtx-p zhOkGd=OXfjLSA@cu>vqdpsvnr)TB2M5yC}rb0|xX`xIE6{uFX=Fb;DisBrCyI_D#d zl%tMk8uIv_-r7hJ(O@m;=Np4m&5ps0E5m9M@_Q!gMS>NokXfp%ODy+zowaJc^f@c%^b|0m7<@91|fh;hi|u(+W+Hx4V_VBmq!iNL2qmGBbG;Au^;>)@a%2V zqhCmuyw02VV#bn_>Xy~|mc_xzo1%*!uiW)w#nvPGwi$ww{>dX3#*JKP95I_+)y7Wm znLTzv{kFsLJ!%~N2J?!03j^u4P_jA@WUI^~wgE%|fI8qhaQj2(j@2Gz55!8Q6jd?? zknR7(?I7DB#YD0kbTXP?qSWbQ>J0jD1Z#b~4rm<_v>^3ew$WMKBuVKVY@SC{x$L}- zo<}}Sd+fPMU*0aA_ozF&PtS#$E9O7u^yewuc8dq_jsx7-e`Sro+ zdk=2^aChVD9~wtZ4UArtwBsdR)kJr3Uu3qsTE+**FD20`Q;(q)3%A6#Obk^Hveb`o zj+*Uh9POF0qR+?QJbLAimUli)S#z*p`*SU?o*DAimt}j8*S~Oj@s;1kojKQQ^#NAN z0Nnbp4@|n!(efJN}ls?R`mntwI+MB`U}l_isM<^y=^L-TLe3uMgJV_+`%bR~wJKHvi)bTfVxr zij8>h`}X%Qjrr=g@@LNkRv%3r^H}Dby~(q8aeIu(TKR0*b7ym(|JJnfh188Ng%|Bl zTk>Se-2Dj?cgGEU#E@0*&nolB;pKwgYtzn+*YEDSes|vI7Y3dDqVeQ~g7Kl?dk8F+x-2Xbw|&ZJ^#6D z-~xTY(9&Zc==LvRvJql8t178YMuMqTHlXT>M`jMD-@g*LVlat>oJ@i-VGj~FVeo{^TK#??B zUG%7Z$!&Ano1(l0B(>Aj;}LWI7;#*wJh9SR&>>41fd(9F&$X(;*~HNYs8t*&MyD!X z7-a}KaboEcreWX~6fK1i`VG)dv=q;)LkL=_WV=gYtE6qM&>L$a@{}fSTs0@qlkM-$ zkLw`_^}rAC5wiyLp3-Wr-eB#!N0>2M6s{1&H}cY!sO$E!!uh~^YVTkIX-#TBO~z{N z$k!8}xayhkiKFpvw(94Iv4iNk6H^AV1ljif0L-k!MwWkuIIxptTW`#KR2n~rSlW&4 zha3}LV^(cZ^f+ipo6L5WNP9l+seewLyV{huT$Qs*R6rz`kloFEtkT6~&i9HqQ&S zs79@yQN-8ttG8CY8H?NftG@k3 ze)4b<*Haj(Hbu(NY_1OEab3tf$(H$1jT+(Gvsun^i6;obFhotL8REOr#Yv4B<6lmg z{hc_ehH0{?bb1cdxkw#!ln`T3?uZANPvxtBXdZU4yDP@ zbA|{iO5t&ErbAB8Fe3;(6U%5|c(x7D9kG@XbeOUfZeFO&lsgQ#UDAI`^u+z77w&V@ zmlACe5#m&P;7nwyRfH|i9r%c@`!Z$gqrr)XSn-pr#aj$bM@hw_=DyoW&MFdycc3qc z=BZ~tm-*;74iZ63OfC$MVBMkEfvk)63m_#1CBpV(7$kWr zz;%znYG<3BaOsLH$#BkMafvunYzpwh4-bTkK0G9ru*e!lwIU_$aRY(dRiM`4|8;15 z{WR`2R5B5Z8-g5#J}8o_lrp-_M~f)cqCkKRJEKr+6vQckDEf)wv?<4ZO)*v7 zPud|L+J{|Gj`-6x|88i|3Cvu;s}eO>Py}L|*s!;%d}2#6ksu~0%T(~ZqAn(^zN%=x zDQmssp7y(A%&WxP$kAs=^>FjaoO$DjxraD^SX}=nbV+LzS&K~+$>tERlyh`OJlw3+xb zL9QaZn7~J=PLqV%XuBEiCZJX%Oj`3;IkR}Fvo-M`%G`t)(3Xkbd#OMVtqxnD7Xg}L zn;>+n!?i?LLTuGgm*JH}>Pg|7{1k)HK2R|Nd|>89e-jLq2pf6G00WExLIYh>wG2{U zBsR9h0lO$)%q2VkBn>yAfBLw0vmW_eJz$$KeiSA|S>|d^(i|f1hJGj%%d!kPXi4KD zYh9oM#SN|=;qw6PAfJKTap4rVa}lDBsi7-r}LN_z_0|8v~lH3w0x3s*w(c~EF8*3z~qu7skZ@Q z#}t5B0P_xwkp#*GY{gZDZC2(4XWj)Sq2;!)ECsyOejpnKzG6s}s3INk8}nuYTtL&)-*=obt33QGApUDAc#Fc6Mw*J|5kI$pTDulH6XRj_bqn_aW9wB)lo& zn>0iADLap_$2}{X_L6bNYx42O6!T8$wtOb(JBODwC{i{il-&YDgr#9(`-!u|KD<`+ z=wZj88D)<=QM&!DRd*Us$s1mBQ930>n(o0_ioQ@|W)P zj9S`r3s~Pn(u&s6PoCWN_4&uXJ{P+e`{>34h}#88)xKFan+63j2p3;H)B)2yF2=$E8U>(KK+G#{+95;PfDKqG17Ym zVH)Aa#rr0*A1%4{h<_A#QjKZdb(u}b24SbQ+8bv^W;|B7|Luy?SDU~7bHTOPf%~z! zKmES^{MAF>T{(U6=3D2koxXneJ5 z`Sz#tzPmo};;(&Ao{8>wzWCYqs-FEgxa3Js_sJx=Nn1aS6t;zDKVEtK%ZfLz__n=i zU+|=R?jF~q&APVbj=}4URg-z1e3L&_Z`KLTuI9tX=U)1G^|iYr&wStZ_sb3M-5CAK zcOahVeo#dFhNyytrAck9Ya_L-jt4&F<8IhOXt{k-e3 zxaYnR$4`|k>n;zYLG_i*dCMvmLZizl-Z)_zFOD&Fo~bQ3-ypE4^roEmbV^YrWVOE zYpvc^r9K5EM8?Y1g&)N-zr4rpvDjX^#ntZ_X6j^E)nuVcxiv*%D;79=81p&>NwcL< zL{*=V_+RCRcNn76ZS7CHJ5MQ_p3?Ms#+E*lXX&Oa+paF$D~MmLN?EMRTB|ABrR}y( z=emWklrE7>jV-2IDzn6UA!f|^Pn(Vs|?RGRNqqfkI4soZ=Up9(uP=c=u5;^Mf|ze zq6TwjjVQ4viL0`AM?u?oVxM44dQp-#mutx5YPvyb53(1OFBIk+N0c4R#OO+74nj1N z?i9D{fpAh-~#6hF@MW#Hi5BGj1lKK!3#6kGK#fxc*U18UKSPx@0C5>G zMCb0i-1E6VEtPAyuATspG~|${;aY6)LgKI6+D`eWo|aZFC%hhV-vpAoJh1R1QOiE% zh-1!PD~Qm^9^4syq0Gh^xmp68mKe47ahpMQU_jUfbhq63R(qH1|c-RlETD{*y+0y8!O zh%F7u-TfuDcCHhAJ8imG>Vt>`L~#(^;X)pxO^4Qk4Hyp$$G1_G0{)PgS(;I%;$P$g zeiJpEkB+(*5O!bgp75Eg^F2e4 z?IgIwk~*8ENtQ;+d1*t0SyMzMyOf1d2e#< zZN{{2$P`6il1Qoo2gP*4BhZWQO_M@yr}lEBdUm)-R6Uth)Pd<0aaBx#MWRObJIG-L zf#6f5Ltzj_=CXi35n)qxEPp>@@6AT@f;Ek8OJ-`IZ>OX&+@OeO;UJ-1AOLg+jHK*0 zP&A||5-q%$G$&tRBn*v+DOQVtthnfRD_?a+ly#8T>lx#qJ;YEWvJR0&rV&RC5xJ;( zMB#(}igqfo5JAXi@*&XRQpHP`SRI(WOK>6qAfyKZ4=JmRAbK(W7iHe~3ffGH8v<*j zNQ3LZN4}6qk4HPy-E5u=S4@g)g<2~d*kW`A>`*=&f0|wnZn%U>a-hJ+b*2J)e8xF}H&%~(9Jn2BWdWKROt}oaq{rnVn-`3|+*g2I02~d7_(1e1 zP9_?=x&mSNGD}3}OyjBD)T)g6O9CHLg!*~m!UodD*`w(FzlPf>R{!@0s2*I@{|mQc zhQN40aXXx_#F0GggKxZbqp0Ymi#LCW+y5Qx|5toF3zGs?KQtk;tA&bQEVZxx=Rf~H z9k+``VYSsCpBz!zz0#helDB{CTJVy%ZlSnwfvs(gw(n9>IGNk9$~W&h-|S~qLpGA$ zYe@BKx=JfuKpNHwse)Hl6w=@3F&)%O9Wh z$q(CZ{ITrEp9Z}DY5JCZQ(pgc{qMieymH$HT#9W6r%T~R=1SQ+w87t zFB&u%uk(UnR`!s|jvj5mPORF=uGx>SyzuLe>-XCqeF{r+B5+9UX`b34gPwRHG;gbV z)bjFUpLidCA$9g+Z(ocRFWu-E(DBr{o9|tZt=@YQY#}?TCOBrbxqghQdU(O=1K!T% zhO$B4%E3sQ4!g z`@W6qHG}Z2XpI3p03J{!^i+gk)=NNDiaK{7_~+oHeaXv?^nUS+Nk7HfFU9(w{iEmc zPnTW&W8j%D#=Y~=p06&xdg0oMb5~xz`qQCv*Pc3e1MR4(z>9 zJ}Q0wtK5?p9diy_CvKMym?x~BY-?Grs~j%~b<>5i^mdy(m@@zTtw~pZAMwfgwoiU& z{^-a0_pc8*@;ReqcxZgi_ck<#Vp_wV#`f{(Q-m2L1;*>K#O!@n{ zH5cy9diPwfXFp3@`=Ia|*IvXB|Yun&zS>qVE+SY$Lx>F53 zXL=eI+nVQ+ZkybrP9`ll;~n#XEV%>xgR9|rZ{Ao|`iO)Vuliq)h4%j*x9+m{nY*bk z{1W~CZr-1<>~lXW^46+CKfJ%o68niGeMP}Ol5icvTgcDq$17f}seYdLCZq6079C(Ke%#V= zj1{g{zj=p*D~PTa$(lk?B^)RQZjs3>Vuw@aE7E2S@$_At z&~)0Hf7O!sgDLG@Z`p2PF z`Y8~STNo;<*p&p_t}5vyo`I-4L653bra~4q5@vXTDuzE-om{F7mI^)jTz|eWgnXMU zu{%>0UnqxR*-rDN`M!LT6?Ky`O&my+EP-%xduLdbM;JY+Y5Q83`CEqaNEoJxJrhZTHCO>C; z{C&&Jr%v@Tq|foHSPU)1?I&Kwr426phAdZfqTr3QK!{P4pAh5{T+ zvlC@Q5X|#*ex?cqPbum^G1>=+Hi_%%Ckl*_Lc(hs|TwrR(Gwuu}BxW#6meV z07T-WvKeKDI{$Tf`8`w3k13OG2B*c`{cjmPvj|(y31t#%CaUTQUq{02ByJS9Y%<=$ zwAGvCMQa`H$4KKr@5H}jn?~gMC>GRrn?Rgdva}(N`W+8BwNb*GdxuStWlyZ#8EBD z7(l#b+z>2Ce)<1L-CIXTdG1~R*SNd8Mn;lMGMTu$hX_ds1PCs{-QAs19Ez19#c3&8 zD5X>=g_cr^yGxNmsm;6Za894I&hPa3z0ZH|lXb7GB!tO5_e?VT`d)i~wzY#XcDu;g z7gQwz7YDqi5)VTkO90t6WTA=+@`)=7h1*J(-5;P=PK#A^OAel;EUAZ2B?U07mN4Z` zC^Xm!2p7}xC{0XTgwd4oeTcJ8m)eV3`C5>|4yOj!6z)$7a5_f%5Rep>uvxKF78#j%jNJL=R3ObkbrXf8 zDq@P62!lWlLykeWi;z125e272g-n~r=~AkD2nLupq8;LvBc`0LQn1q@+7XQe>rx4Y zOcUu4gv2=zE`qdrF;BqeQTbW1#)f7q_-Zh{2NW8!ee}8lAjtxx1wRYw8tty4a1!We z=(a^wJsXx10S8G=*jIR5_`F5X@C+hX&}0z&&CefdOs%G7cN_y8Xgsx7Zi+^x7!=B8 zsywVF*fNmgnsC&ikkHtVfFA zONR#r=M4Om2mu^CWVmIC5o-swI)ZwFQL}5TfN<&lhq|2_(X;tj1IF&`AFic<MG?qkU z8%sKA>xOiG=KwLqvb|}>iq`Sn`f{C73RgfGsF6qHhgUZikC{<6XQg-O^zaUY=6v@3 z$;YqX|1CK1)U~!Boi2LsNcy^cP>%<0zph)dmG}#im#p9SEcpG)pt-!WGQB=?`Htx6 z@7f2?kDT!?De4So0{X#8c$}|O&+NK^adXy2kDjM2Z`X3~!FBhZmw$LHV#=!CUta2V z8%N;^f=}%rQxbblR!xx`Fd~x9By^rob-g@)F`_~_xdid&#SHW+d z{r>e&zwZC}w?n@MKYsbgrWd~~y8U$Y*XPHby*>Qm%A3O+oQwf-pDV-pwb%3JbL z^1>a3dr$Sg^=FI2mlNOrI%enh(K9}Y9KFTWccHWM3`gTMNnS6^gk>>VJe5unlR5gz z^R{On_Py{^m$P?U9lO-`^6xpbcF}TrCXZYjGh%h#s-qEec7#mc5HoXI?7W@j8;`f# za;$3O!Aa-u;{;~keA)HTx2dZSc?K;~JIbAX7nFVRK;L1$ta_HHYL2mfp|jIUYsaOI z?kg=_7fGtdD_f3tcYQ0+^cK5px}yDJeYb74&Yzjn2CxnBAvNzyQaaF5I;DL6#Q#Gu z{$Ma|`ycQpWNp76efml4)n_r^{AOymQxiQYq+%W?tGjR2nb>nd#mN06qNh5xfgfmZ zY_m3ez!%CcyKEf~5dTnO&gZx?(9ncX9^aH8F(pB?QzLh)k4;&oy%@P;-p+NzGs6=Y z<{~)2VS9$HT^&)yb7G?;2ZM1~&|zigdF$9=)vT~ec6b#B?_I^h6woZEdpds0_Cp&d zGeQegiL)$ib`n`O!`(<+n6P;n>O@soZ`;CM1*cx9`Y&NME_d|ZrVG?bV~Pk>H*6vb zJp=4S)TG+Vh<5=ab2 zGj!Y^()R>OodukWAtYWVbFp*<()gb6Fq?aJ&3<$t5DZ2?eih&L{bt>67g*9b#$=i; zjD%;Zvgb+&(NUaMb8} za7ip4z8>01i}Ff=Jq8u(%*a-e#`4&fbZW&1=B-3WbHe`L+a#@B3Is5blMx*Vr@vP*+dZn(asG^L5C@LGAu(Z_%Oh; z(^YnKfi)iTArKpqBokY;h< z19(CxTZq*Gv?fy@0+uG`?Ew2IBl3v}42let?J}bWN)yL(Jq?Hz3s7;z!2W4iy-E(+qQx{j@nzH!5vf+uh_k-}-AHYk5dVy&JDM0k{(2yMz zqSOOTlse$)sQyG6U+x~QF1X9ixNR#vYiM^{-EdKuzDwvD$ifoITP%)i4pVc5rh?u_A{UT5RUle{ATqj}_CF(8Kv@14u*}ac8KqCm71Nn2T2Oa;95a zOywJMiLJ&n^Jetw-=uZ#(gkq>879C|n#>G$5OF2|2}`q~-7HcJGcd^N$by!(mgRTj zMR!ru&X;G;V@21P(rZ+na<;=uj0UWph-o?rok-->M3sfyF5A~np-jS40(^MB(21cm4d5597U5-yw-vF~ile)u z(o~n!Q#6eI1GDvGF(gd#WH+>b+*r3$DS z0?;VUyX43PAYlr9$Pr<#3q6m)J0GvzXix>=2iz6-Nr+gFNU2aCiXbP(>}&;c5LPrP zprC~bSS3e^=aozmB9ee9szoCemv3id7arzz08dz`c~T2yZlN-UlRC`S|3g*nOl-%< zcytg^kX#l+E#uCx#X=LxgYdYp!~!-&K}0Dk^d}Y(*a%=NKsm<&Bo4K@;Ze?f0OV;> z2M4QZshKNQz)A8(uD=AO9##-Fv8M%>3+^~mfW@)^n-S6|Y>kNkG`8icqN~7w!o9|96BiuXo>J_T zZihcdg@m<8=V{)f;bMq^UJSlA3Lyd{j!_^>g^~ZKx*cA9tSlJt$-poJj{O^W4tCl8 z#wP>A4yE&{sw=wGn78_HheH>fsilAEb}Yqky!jO2)BjGlGq4BLtlO#84Zf2)^}qXm z==T5B(w!gS!?Q@{3?rc~1gVS}-B^_~NW)rj<2HKkTxZ4Gir6NiN~!BR@$|*3KRra+bQ!gof>(l?|KO3}zRzwHlq;VhxXa1Cs$m z1_!3@aLZrMj0J2WaYSW+A(=%6i*w{3msht3VRMu8!>0&wP#PBy_$FC`|+QD z|L%j}^fM0&*6ytMJfodydXSJrfp0uQ-sq;q%00 zdu8=QRsI%%qW0-cLo_AjhUijD|0!wX7DtSkG3eogGmro5wCcm?E>jx!oy=Rgt?T}; z$9!{j{nKFa+;>QN>Duc*9eN&|bn#)`&ZC3Bzt{QP!%-JsMm5bgH;&h|9%}D7E-+|u z{IYLN;}6qZt%%AaNJx<+wvZ*%iDT+y(bWQf3v;^>fhGH8v-f%4`8;j!cXdBrANu0= zA$ML(dlH=Ub8yPjUlu%iwfNHQ53b((;_lNUcOLG&_hkQ*m-`;QI{WO8&wdYn_A0ph z?vw4o;O;+z$AZCiPo8eR{`B2Tk3p50aP~p%!S7msajn&n%N5&C=k5B&zwNl?o!vcd zyc+p3Sa9-o*{R2gTTX=y-(%{&)ZA{ev2G;dioEQuwu)YwtSU&X;%=j++zs})_S?9- z!G_N+4Eo{8unVu{t;ewn`b6}8+tGVL?wX^eyU&#DIGwQQqqLO=+I)DX-L4a@Hys>z z`ugCnE{whOu;mBGq8Dy+_n4+J7wUV@OWE_IvSx<8_eNW{4Ti>brq1uGJFGDET4(LE zO4NFqq<*ra=i4cL<`}!qQumlhtDK>%+kv$ts8-yBv6x@c!pqVRUX8-`_lLiP?|5nZ zOc=}OGySbNnKQG7KC%?9AH@>58!d>IYv)Tcl zdZ%4ZT=0YxFCifn#>jN06a&Nd=@Y-u*Ni146_vpk5r4d{ejfBxy-T^!L(mMH%r+#k z!z20emG;VYj*KD&bv}uj9j+;bPOGHT%B6}Q?OW}P+oK!aY27pR&SEnMV8P`7}uKNX=BdnFO4r11@etK?TIS`l8@yr5#{t#m5$`b z*P``CWDQZ;9O$W}W5_Hwsbh*5VdW$gEB*H~rr%emj=Xcl^7(agngClXNKBT~6xd7|)YWMGLU zis&40un6J0aixn4(X`N5;`9pCPLnMb+XpB&L=Km#y9KtLEdw5$O7beA!jl{05UbPz z0NW5JXCsxO;;*HmuRGd zR%e@I;DpDgq7XzU!id>{nLJC2!XVhFBCriXl+m`Nq003B?37WWl=+PCCSvq+j83GY zqWf=**&Ad{{03eoCx-|m0EwFz$Pr^>pM)q}>v>6MNy2Z=4)@U@K_&&lXvq|AFz_YH)I|cRQ^Oy-66?b65eqGao3B}`-GKD zB(7@Y{`iTbbVgzYfZ)bwXL>FiiXNU8$zp=3uD@l@C?)!eNtj+#DT$QHgb^URB7?64 zc1>7@s6rpEo?0Ei(2l_xUZyE;xr%C!#ZVoZ76(^?$s2S##a-bmDSr-MEit;aA%4od z!O?&>&Q*p|>oS^z4&M%2kCtSfIE;S2LM#bL6>?>~S;)Bq^uR zzv=eo2|4ANq0WTCrZy2kTx6)FQ8kVXu%`Xms77f<50cwOQrFv3-pEjg;2vRJ1%3>* z=EZtJ2pbRXr~vd%@a3V^VGdyn_>@3}J6~m&;_;P$J?o})yCqu@U5yYo%9TV4GhwTE zGBf-nLLRGG1EYTm=357>kd#E1nt1wHn24xEJe>Aa?iI=6|LMFPI|$%^@)%(6G#~#^ z?|-A)xh(tx#hXON0%O&j9jEKJo(2T$FWrt0-spCGfWiCU>2T^{r5K*r0l|G~*6q|K z{+r=EjrK;j|C@CGUo>wgDwoyuDJHFS+cS=z=t{{zx#nYQyfUc(|%G>%g^oEq6_ zQaz1hhktT@`judt1zWVynI>O4oS#G!sSlK!fy;BZE||DgUpq#T-xNJyZp`>46D~dO z{ll$^r)~^5d@6VTvaVZqzI*lhk%vz{xp?EVAFfs$__XrGx2?aukiTvhzg1Jj=(hr+ z7qF9SXk8{(&fbje8^mxl4wRuw@yo6hTR0L4N2f>NlxMQ5%wf&sC>29zAx@X3uB#%u z9Y+!G&S}zipP9X6i#RpYTijljSi*|V(&yILGOMNGNosGJBe7VKP;F@#6xuYwS>MlG z-P6@?g17g$q5;#7J`2t~aE6=Sw&#wMD;@@$4xMW8{;`4QejUF5Q+|2J>{%OU-Th~1@yUr#{#bec_xjz(YCk?TT=?L()<=HG{_wPa z^B3tKo~=9asP^-_)kiKhes#U;5BDbi8XWyJSbyMr;;bF9lebGcPeU1#qw92TK|fLP z0Bczpbk}W@4t4A5?#)kA>;2O2M!=Y>K_Fv9l z{b|cBr>j3aS-bV~)*Ftt+y2$~E5CF(aih~0S6b~knKf&-tMw$}t1dls&N*>ST*Gun z)f7X|Rn9(ZH7(zkmc8xlwL{x+nYehAx@25b&-K3E3;aV@h4)>|%I&R7o#9NLLTt&> z#7dPZiInyV9Q!%`NHAeb(6;ii|47ht;CaUFSBYo;h~E@c*L|!=9<0h5q3C?bz9v}k zL(nn#Q$gZbQ$kNga-F=azkkr@p&hTe+MeL0%vWX)A@(GoMU+vAK&*2ODMD8QIN?O+ zheMc>LzYw$mLrIUkD>)XyjB{L$u+y6z}b51_jGNTkH)^Y)?-}Cht_(?HhGmlMO1?2!Up`yc?x3ROZbtTEZe(vpY85km zA{lU2zv!W7(gCbc=tQ7uu}U@NWb~xdgb|`h?yQLKrL+VXfhtwOY)kS`N!emkuTAp$ zrK*$}O7xjp@<6jB_7YynC=%0|gf+%@dM|0<0pbPpHCbZI04xQjf{^9coZEjS{m0cl zdYpKTD(OvyK;*LSgY0wQpY&Ur!uOy z*-Ot6WurD>qd9#DLR~!A zR6R?QHv_NgTvv)9sfI)si{tZXX0$Q7IHqu7bTi;skQ(Jtv1UAQ&Q{8)$3s7O9>3rO z5m=~UAcn(gD>Kj_^_Q|^Ye4OgM3xF7a?uaVi%4g?Q&{0xQl-IAO`IsLOJ=&W1hBsN zO9j3nt|yo8NoNDd?FwNlJfKA<+G;Fd-q{zRpFPm9@K#m=brGL}FXe z^ZN_Z8^COosM4q(om4^dH=<~az#T2qNG&mZeJI-+N=#TjL<3%A3bay$X0lZwbfpR} z@g%jAZ~N=eX+P?d8t76rJu+99f_srjtdW4;!yQER4#2qXD3V9P{1Zb_E}K)X2pTX| zZXCLTwd$OCjJPqxGg9em66*X!63I#&>0I%L_pM(A$~c0NsZfT$>U_4FA%)Bm@tysY zp5un($L9PafRRF^L0htHIUMx)K(Vu=B3P8sQ^}LbRSL*p0n5l>sN~*mT;Hd{^c#Yl zW6qj0%CfV{m~r;fna*w>5N{JhQQ(Zl*f}04JCZn%o-vkRwv69p8)>mr(*GoWqlLW> zxaRL7o(8^srlZZrjEFjsBTrPh$k^wita3TAr8SpSh7x@O&s%CM>c|6+PHLdZ4I-5a zyF%dV0Pc!KkO+oMQwA-pfv}Q<@oiyNB;mEjqUrjEH6(MLvS>9DRggRim71xxF`QO@ z;tXZc3Ul>l5;>j|)?eZ6gq0d`#7PX<%9vsLglSB69HChxUAM@$2VJLwAvOEZH7o?W zM;stD7ql5JnotYxC=d+}p`%LR>O?H{@~CbMU27t0#R?2D7fmN&9Y|;^><mKqcrv0*ad>KH<+-eRYw=qwdVox}>I5Yif^XqE($ zm`hEqIZ%VD*lhU!Asxk<7#ceSgFcSdLv?QDR6h~m03@|);I-DLH>L)$l*(+e0P zn;?e37Vrc@J}xqY0SpvuYADR2noJr05V_RMoSI`pJhO1}lm-1isCo?B1r*+gBL^{_ zx?DJOARb}7dE=S+$A9_fB%Drz%L(~&JWjTe%Nn+v&0D#Z$fbX)&#^rDj|Vh5va5K2 z-Vlwb2c8n=)H(mh1Csu)lgBqu3ZJ@n|7M=~>r?6k|DSr}>18I6hmBCkgofn0z3c9i zgUw;!x%KcIfYM?*gSdf}yO+wVQtd-KlGE4R-*c)s$+ zqxWt;TXF62sMD9aoH#fB!7sIYzmWGHBOke-X6cTQ^cFOslBQDAOeTyhD8H^s$J3jb zIwYob_?y620KA~K=a%aXq2}6N5o1<{b)MkuIxcnEDqUFzr9KRRIBvLK;ZHLp<~ULd zwJ~YOiRPXV&#sTWw`gW5RZMheW9P(Duh($?5W{m&( zLdAvy3G=rv`SJ{LBncC0qx#R7ckk8A8?Q_~=J|*0tUG!oe9or8vYkbnj)eD}N{_E} z_n6=uKG)UIE3895Q*lG-vd!;2_+#tUmm|NuS$E`{euuxCd-2J^=fQTXcXP68s@8un z<>G^3Ki-~n?Qx$|m;3*4d(_1z^Y8pI?CU!zOLnEKJ&-kJjU%r;5RrvXg9!`vur#qW zl(|IbK?-7ot4t}UAeNa8>K?O{Bi1BsITyS2+sF-{Reo`0{PW;~KZ6Ti2WLL`dG5nk zi*7zzbMN`qd(RI(dVTE4@1NX%dF1iy<39(#dh+`C(?1S9{cYDzzixW+dg;xd7F>C> z`1bSnAN{=fWf1qY+gDfGetxCq$i+6tuD1L1QuVQ`?N8k7a{BgwTQ5hw3ii7BYr)p9 zNKUu#j`MW&a@DsFI-Gtw^zv_2-`uG_dLwzk zVPE64K<~FB2QKkX+R*Q-NA-Ko`KG@gKX+&8w&Sg~e_6ZkWot7#a^#M%L7S|N@49<_7&-E2$e`_}j*A7w<1L+6 zJG-q28L(Q}c`?ZvqRN=2i5*SMY23Inyflb9&CEU>bZ!6DzW9M@`JK=Yp2Z&fCFA=) z;t#z5VaC(x2*=l8E$JsLoo5(!EU@visN=i5q_L8y_JXKr3W2v?9Z?FY!;LBihJ_W< zLZr6~LQ47JtwbrctoYVA#Hp=h5gj#A4UEt_e&P^m#&A{JxxP_9iUQsFiZGTvQ(r%T zYw}Ys$NCmZ5Go8+5y<*wRN1R$m}guIS#mpM^bSm%gj}Vna=B#Uas8})7-z|%Dw!xD zl7#ZI>QrUpkQvmJ_9aneiprtp{_90UcB^N95xMQIbn&;Q_6N9m^NGJFF%%L(Ea4#F zrsf&+3_-Xhb#U6-KO`;xjHFh`YrB!$&a9Anb!vCw%~YBaU>IOIN<`j(vT&+0ceTD~ zlLV`Sv{vl&mYn>)d@wx}DSWPx##7U@10@Nknf`<5!_wvqV}#}ML!;#xeTh934WX() zdnj#MekV~`FAeg88GY!!cDy#LOl7-?vRvSwNka3jxn0ej4;X9TChkHK;upkZqTfdX zcTjYlAR>qBDne2~65q%Qv=U}@R+kQ!=8eLz4mKEdMo)fxM-g_S)fBy4WR3=^Q3Ts3 z%(RYhi8_iE-PN=Ddi-a>m>Hjgz{VDt1<2efEf|MN!!v+?5r!9WLb4e4WQH?=;f%+@ z3Qgj z8tJA4wYLj9yhI+?pKdC|7C({5d1@t9DaFtV(QDr@sQTEejH3@6b5G`MI2N(~RMy?s z?r-i2TTP*bjo~LQ5ETp~)|}85GXRa$*nLb<3^OEAnpLOG>toLB4nGWCW8tVg5=#^h zxEr8xF>Ln~C?m=R);PMt3VOLayO*o$7WeeC^x`R$wBv|)_8eA3IwvBX=}Kj}Gq5C) zB~)`F%NX8LzB?5SzZ?LRtT94+tQ?*k6ksX5hN7{q)>~l(p+$}nINQ*4@eq*q?xz*A z9#}>_CY*4#R0`^*P-bOv9MtGj>NonPn&J*9{M#AsK|}#Kk6VfCwx>N+42l6e7qUx8 z#K>csS(s{q`LC3-_}GT%Ly!N^-uXT||65Vvk0fdm&C!Y**;ZS%n7DcoCQd1fKq{MD z@dG{}A)T2KJ=;t<7he0NdEjmH^j(bloy1v93`L-$hYk8f8c{8XYAG48-_-jDRrO-P zZSeX+i8pZhF#8o77%~kt_{E-`QjLB<>{bx9hhg$y(*e;@QG6%VmPNK10X`~;sL~cs zu(aJODBB#~?YJasD$yq4rsy&yzS)>Kk%SB)uJKIoOl{oT+L*~aPcLGxBi3wY#z;xY zY@&`ON@M8g_mGFRetXN>`2ewY5=S&)Rl*A&MKiV`JQ!5MWNK7`Y6v=KO?fP5M}5K+ zb?gKNS{N*K&fJM%MYENe)3sT%xc1(JSIx0@V<=imw2k1jqkxQKOkkPNAP@sjh$^)e zab`e-1H=fIh_-G$GismQ@tG##1Fml?J7$a2yTKGOPZ8Eg*eKs@va4cSv-Ki_TY~ zex0YZv(P7tx>YzXpa7fMFK-6#`1H*I8UGJtI;Qvt#A5Ic0=!5A{tUh!8Wk6$`I=zy zf-WOU!~e&ldGOA{9b({ikQU(RMXmz;!YWI9+1rjld!sldA1iKZj11#GJUPv}9X=T- zc1pD4vQw)AEKDfVI~Ebhx8lkpIPgZd^X(Z@cL5Q5#jYHMH;>w6!G#r4r2}}l@xPEx z<@5OhER7K(1uGtN3gkFhXs`mE2lHqYIsv&)J&1q3{X^*fQ@8(@?)^&u;{(c!B)~$6 zfouhqZ-^38CrP!M{%74zwXYIAA_-zs%EAv?Zu!kS=`QLn6W679YM- zvinNKo;&_`&(O#3j2pX-n@~@LUWGNo99xSf3u4MNrM9={HK_;9Dc^Ha)}qPKFu22~ zXJf`KK<-=Bb=ah{x0c;~I{eVl;k!QA`s2mVZ#_J6_VUiVPj+0nzxLX_A>W-Fap}f8 zPkxkHl02{ z{?_wZ4}Y)y=tStkO{HI5DqgnRT+%83qZ1X+gYFTl@K;XkN|nWxu%oj$(K$SS9^GFE z-R>UqPQ>CvnftD{zxZp<+reJ9ewp@raMFuE2Vc59`s)3$SMJTYc4xu$d#i3d+DQJT=3xMHIIH?`{MWc_kS6C z<;m1LzfQmXdj8#C$9{XG)9E{-ZvQs!{vVTG2m3t=cDVSW-4}OB-6%``2tfaICB2M= zy`42@znkP*Me!&_Lz(NMs%F4Zavb{Z*H59 zzAxSUxo`I7__wwfz5i*=mgBkew+#9G#;~(bD)*c!-*qB)&4IwUcX_UAP2+^LU8ndh zN3hd+N!!eF_J2>=VUePGv8~fKb@wf%fm>XIHu5T_=)0}u)h<=`S+4H28PvhZ#&?wQ zLogQO$K?w`s%@j*_aA;8`u+>YlDqEBFXD~`qYgaref-+@?)}g{U-4tdG2D6b)Dm@m zA4ByFQ}=Zwd$O`%y1>_l?@ANLl@o7QZrNr@&Q5Ofa(C;Eu9kC6dA$^YN}4sE=S*Zd zVi}Gku`5j;p2QDHXZuV#Qd7UcIMIBd9)sMyv&}2`bWef=Ix`S@b=5Q=*d$DTj3SnhC-~5&8K~q`zt%x#4 z!1hb@aWZFxt?8rC5l8J^R>K$!N`^?Q2=`oGPoP^3icl;_pT3Q>7u4o|E? z*No7eO*HA6R!hBWes)a0NJ0n63qMJ0`cj`UoMA{5s$4vtPAW6VRXSKq0VN>5)&hSy znpvoQE}=utM7LBDVCFJQ3fo%_{lIgkS*n(Xx8AEMSS(E(s!ZvkE$j~ZG&`;y3QfRv zFeH9~XO6Av8ZYgAx~~U2ss$rFiyo55i)%x-*=cHpE>J5-?MYHw+S&{bZ8?KDD~0hr z#0?AeC9_dAD@dA1{CT>f!N%J4&YHQ>MDQ)C2SuOT1x?42n0mISR2bPx71vds*qIxs zVZ~Rm6YE)lb{wTq;7HeJ4UnY`p_ujxzsMSpT73+MkB4n>fdW1Ow#2Q-8t&ix$g}U4 z$Z01D+szePFn59h9so}n@}wb&Tw5kw%}6L9jR*h;H#8BJ7^yc$?xo7kl)eIKRDm!u z50iGbCzl%m0iVS7pdzh+VTlLjgRQYrkbh4aC$cr)Uj*Pb;tzC(h38B+`};yV$`Xh3 zT=if$6ONn?TQ5BDY$H>F>s$oWHOZTRf-PdsQ1)G$eCw6(=1=m1w-p|2ZZ0*~y~R-G zItvyO-%yp=D>GpmG(aMqT6v0SMra1^3t;9rVA{8&*2$xac%hjDK^}8}X`^g5@W9Kl(~8A~ z4)a*QD02ew&X@ZqD1az*v@oK zO%F(9AvV-79@pgzQWeic7Z`zITLrwNNmsLwq)*`GPq3A*4QcZ|ufzB9o-0Fof5}xA zY4f`%M{cHP43;|cl|{o;15TLxoO5^G4115nU{Gjv6s{aBVx1mZ4xPM+*`hIo;yM~5 zpxbFiH!<4r;7U_^auT{&%6b!9DtIhWomQyIHu4Ks+j^chb^Sq+I}Z$e0^5(=uJLx4 zL=TZ?EKuicRHdv}1eR#h7cpYT^Aq}$yxG!*^|C-K_@=}qgW`|;9P#4=+lUW|XDB~% zCNE*NIB$==be}w8BH`vDoeJ*|O%_gMeqLk;S;{1H(OPBNI}|=ql%S64B}|!aDccm4 zyIG_gLpO|Kng(dXClO{i5xQi~LJ81D3Kw5yHD$NvN9PlP3>FDs27QB0$nww79fx&s zhs~Ks#BsZ2aa;9)ITA}5TpYN+JX<->m?=<4!~6`ThmkYf}^A0g3QsuK8K3l{G-yR%1PTxrp zTlN+1+>hla6C+qOD@hPklt88bCEEWQxxe`e%=x$rm{fBV&GU97LxH|;X0}6$zftda z4^4=>MvdRO0;=k$S+`TNpDRVimeTY12AE{H0&13yDSGqBol>p;@qqmsWmQQ0Qjtv9 z@{#a0qHoTe-`-x_D2oH^l$x|dSVG%VgI=tLnkV^h)&=-M)Xn0H3@&~gn2pqx#}@?} zHlU`eC=s$Y;dw+5D)i)tBl7Tvi>OdjI5_2nz{5y%S>iI{}j%Qvm=_0z4|7x$~5KI--S)vzlM+ig8UGhhSG0}P8P zx!RCY1G+UbGD1VL$C_uU>)-0@%Z(3SmGAx1S=dqN&W&BL4%6mE_g^o#c7O53Yb$^F zar=eKhc4ede&hb`vllntyglN(@0w1WSaIY2uJd{bakP0*=w%))p z8JHj*$kk#5%Fw22wmG~}VbKYw4o~Yf9=%Sc=xoQprBN$S>bp-=#wIe5`d1kZcE3I? z$DLj3O3V{GV&FJclr^Z^^-7q$(A{o;vsEvBej8<=(4JoHEou@`_ao8_g^fy|FUM!k@jDF+i%w~Nt-4Tmsh)b z%a@P;{QS@0t_yc|-G936#*-!29t^*Dv-{c0z0cpSKlWYnrhSF`PjoqS*4cJo%dak1 zJ_=g8%oOP2ObI3Om_kl$p)jsckx<5qF5;!Ojv2n(F@B?D#JU!z?hJk&>~-hWxL3gu z4_|iw?(+D%Kaaifbp5M8*FJu^`u3A|F5TUD>*?0Vua{ka_}1k+i+{Yn^vd0L?mu7h z@Wq0M&p~m2`^n39UI&-l`w6;z(SujBZ#-M}Q*h-^zioW==UbO*1!3V`C<-s@QtGbjz`d9bZ&#`@HF!TOId*=O4SQ{f-kO ze|%oG=ewdUU-)Kh@(f6;t7w*2Lt6X4NzO-4(6g z7i4Up2Nq&ttjU=rPwo#4J0m286B^)zCxDwRb)|w3&T?ef%7!a4dSar*^R?l5+sb2F z6H78Dv7<0+j5xYMWUvuqfESq~@ijuoF})4KsIL6z3gRpv);!|tpvxVvFCJlTF&&&e zIbbQ_4H@6v;8k=?{q$VO)t}>TJa_CrLn|N7Q>7DrjHczXkiPp&UAN)o7ki+(7Ry5B zo)6h}ghGv(;!G_kOB?}pQV}<<4m3jIts{;SUQ8uX#i}Z1I(mPqZ~LCLYzQY|Br~iE zFmvD;h*At%HDcg;_)*pP)JZe}V7=i5rHjQFjL;;ZI<%7MZSdLZTZ|DUPlMA#RlU;L z{jjlgk|e$f)_r|mPi;{*W@Ir<77%kVlC99Bt&VK`MvyU$=C6fuMG%7}zfYOk349XF zS1oZhqNL8!g3h6JgXvV?P&;SgTguwy!nmFydoM-STO?2gFecFYj`E4RwD!cFE{?CW zmk+`kf#a#*`>W*%9RSu)r*)I2w5E1gqRQyr3XwrYH+og+-C=E##C0HgKYDif))00` zEFb&tcyTmXgz8vR+02v=evLj744?fY38_X-53lK1=E$MR-6{Al5V|~jiZCoi>V;fS z1t~}vnkEU)f`=TqMf3~;y~qwpV})k0UD=TCG-ot21sJ?j>ov8FXRxy^F2IGj5v@f2 zVzIXn*$0}#&T(YwqWZF26_Uh}`qVyr6ufdZG$efdC46uc)sbPTL&QmM(+Xyw`vzWL zdBK>pZ=S?I3R*jVB2SoWs$8b6o=&W7&7D3%UVyFfDnih5l|aJN=^hGHLX+7sVMCEC zSM5jF0NWlRa3{(lvvI;i6Uxw;8G#=9R=f1A->1QfZ%F4E(U2aYwtMB#m11u>H?&X? zR)k5QDNrSGro(?roH?AxA|d?4wm7yK!PNw!NhG>7B!-A5Uz;$-?(ffX=91{~o>4*N z*q7dwK}*|@Kt!kJ?P8!*%-H=QJcm%+QtDYNN!`GWt`xXp712FJ5rdhw0;222v6e`{ zR+U;=3g99&F!Lb5B$7tKuz?m)MbQ>c$q{G6FXrkWVuo$zcsy7liL6ne-Z|^%g|!^r zOgMxITut+LOI>zTKJhEd#BWL0kGXxmk>@T`wpgR98e$$iic!>-&_WoNENQDn;az`J z_P7|?XCE=dv*b#lOo@mkvQ&J7maFz6Xh73Np_d96RE8stAZ%`lfEUh|)1*!tW-6R0 zNa)0mZ{R2P5~YpTmAua{c~?|_L{|5uu5b~6Jd`0B-VaZstazrZZiBkbK5^j|R@{92 zEB2L4@e^>Zcx5XLi9NVn6oEM;bOwoC5n6jNtY{U>*&V9@ zi7wh^E@vt-#c3T#T5oCo8b#tkN`5oMT2F;2V+=24rZF%>Y3s{#bmzE0Qk_Ob&}@+s zXAuzn(Cu8QiD`<4=ZB!{2IF2~L~Nh4qO9+T{Uc4{=jP;NZ0~kn;x=LQB)&QW6K|rl za`dS@U7SQ8$(Lx+@(GMQI&f)hCZ%uTz7Sa`G7Oy>Amc00?XXygQJn+LhLo`>Qeuw+ zk(C4{gG0hhBW(*!|q)Nj6+5fE~Grr-z;#62#X5m z{+nEX^C<}J7?{JFPVsHTSSnK8Nw^Dt*<;@5_BS#fqLeZ$H8(3^9YG<=q4}|sC^q8z zsRc{(y#4=5x5KCpg%7pOX7a)IgogxEca{XTk91VCF=1t)GMF&Zpl_CP??a;hQ@a0` zXs5o&gXJDB59og?oywJ?Jq>&_%-c~f03()V8voDXz6H2*(zI~@Rj zJja-Sr`suQ4T(;8g>%;hW^V_9&{5XVthfJX^LA_sQ0GQPQzcZU1CIqhrEdKHTDLdL zc!6;qZq=r3gIHRA-k?P&jw&%*U7eeRte9WFSAx z%jY7K?!oRYc3Rokg)t?AnV^crEHM>JIetQmp5I<;d*L2GudULNQ!#r({dYG8p1d;d z$2+qw-g@ue<4xCY?zwsA;I%skFWtCy@z#zXE-blz_3aB6HeS7T@aZo*fBL2G?)_M3 z0|KTtxJ7aUPoZb4v~0PWDNz8p%2C-gE)@2KQie2<+1W6_GxV+0G4n$vzMsA7G$*b? zp;GBoQi;`}j7>Kdv~*@w8U2OYlxlWfJ8hq7-Z`6-SMGE8ivUN(3_+4w7TyZexdM4) zdRS&fbo<`a=5mMOoR(!PuN;= z`PcUQPn9m-=^grZ@wU%%cOED87!?*Lbsd=0XS!#=jH(a6?DxaHzGrUFdLArz|4_T* z=eln`#4Bsp@#8NKybA7m`Ws@Qd+$6xaQDfl_g?LO@_O!#2mQXiIOf`;k(VB{KKxCq zqi4E*cFEawWS7fNt8WH5IZcG^kVWUHVvAYP1;XfjO`uF4Xra$&8{0I;KYnBKqQi-M zPc~kA(eLr^gC4yec=vg)^LL@KC*1pe!}H(QJ^W?$ofpflK3Q_-1qSIuFWl>M;ZC0~ z&I~$z5sgcuF5jJS{o(w_uNOXfz3iu77hS)<_NUj2Z~ip*@`H8H|J?NRAG`htu6^`q z>GMC9zYNZN_3#N5-DlU8#e=2!UDP!Lqed=*o4s)3k^J{Q?sD{EmrpMA|NdUP zJ>P^4oRczhp)1znXi(mM;w%@w2-fzYA zTN}}RowEG`MaP-C_Tx>BlimH7hcvzK8NE)^xSAvb7LhCWc7 zHQ;Q3_eer=75RhMX=AWWkLfEbBt`1a7keAn;WZq08?mpaFi=CB#jJ=H$o9&Un^Y+s z(3`-NgwQ1cVXOIZPhJy$vEuDrwmZSh2f^5fLI07L#k+inI? zc|!*rh}!a7$dnySu7cu(SB)eJJ7ux9S2KLYywdTa+9|HVi^P?EuqqK}&7q|YCfVhx zLfC$+gwLddu&vQS;R7D1&^fgV6-OBsP3>x_A+n$ZV+S-7u4=x zciUiVH5dJ)ByDKs)u8oJ&@tgEBVmaqb3F0XaH|)_FS;SFpUzfADLk!+wV2^8fuTE&uJdvbm)68Xx3jEnktAG;fJzQ1)mV3xKZ=X-$c+|SGDf6?&1!p}s zvISuK9A7PQSHRiM^%gOm$+*|VRg7Fbm^qlYQ=0-hxH}SwtwiLGCi-x+O6gD`YH25L z{k?sB&^_;&Z~mX`Ku=WmP*85f@#Jo%!p~KDg@#s|?2nACPa?_zgOe^{f+%(Z2`}eb zdWxJis*n@``eNiB{GAtSKo<$)i(DL4Hxf0QWG|yoH5^~ta`?aoxn>Rpzb`Bl;jhMQb5#nM-i`f zt+D9_zw31*yNR<9c66vjG}O@LW^DBmkw+BK0^=!UtC5Dl+MHUaJN;AuK@z7*9%RfP zOWZ9(D~G7E205!2dRrefcQ__*IKqsZ#)h{`l>aTBcBE4V%opQf_?vy~Z3OobaT zuSUz2T$)5UaU{@{hE}{XlzHXdD=}M2G(yUe$3&SGLA?<&BMWFm;J477f_~m3S22r zQAT~99G?Og^OtU?tQXCO8N8>|AT?3P(cB7(`8FGEvj&)d{-N8M9EfU+#BsJbsL9EH z9JW)-8797y0#1TE&SKzz(S@SWFtKYuT{oly(B=w(jDuRU;9~x#12^(Uw?qF^d03VN zkrT}Aft-ay23xE8loGll20I#DOF(EzQew$TM-CU(CaPqL%5u`dg=At40{M+Ma2L^? z3TF{hpr;&JkoW(k@G%>w9N?6I{pXndFVPP1->m;Zk`clo1D_10?kI|)@(zFRlfjf9 z)_TO`3s-)WwBSSdV}bIf7GeLxdHX+fJJlLMK~Skj3TH^&&i{{Y$N5v=iEsN~rQ12^ zFXM@Mp>Cozahx7|LXOdwDT>b2ghz8EMh;)c08bdsD3*?BBJ9z{&YVWPTq4Lu3#k%& z>M-L<8L~2d@|M8H-BpK9R4&{?WHEY2LDkI7X)E@C5Ypwdvwgq#VbYmP>ux_-cj5B3 zi&yquxe27q50`F!dimzw%hx}?ac}3n$EzPd9dqLBK*1v*STv_zy9MI>Qppe^qaKWbUQn*F9hE8Tq-u|ngd3Yo)c2h`n>QK(37p-Cu_ zMC4hj`{?@3@vr$LXZN|}RmWYi1=L>*drX^mHe^hlE66C)rWJ*j)Y)p<%lt(ow!G<+ zvuR^y6Itkhh1)Y$@At3!=*ZAnARw^voo-rD7ZQ;{onIVLQPpSLml{g1mHJ3sp3lhk4J%GU2$_j|C< z=?jOS2De>*_|=nFAKZVm_wjG5u0ELh?d2)oUS0F>&l%?*wchu2uM3a*oVcNC)3@@= zOBtWtWF|DyWRbGOVoPQn487Qn*G3l`W6H$7GDcz>aoY(Q?|hbj{9;dl;_tuie)CzE z^AGYq{Ib)jyX`-}HTJvfbFMyF`S6dW5C5Ee{paqdZd4pUU-8Yg#;>n*IC-V#4|h9# zbE(JatCMa%pK|r_gmZT`|NPswUxM%4dAjiO{f$rmc<;&UP0wC0yLD&fgU6d*2bVqz z=5G7Uy6l6JW4E%mp7PJwmAvFr-@IMAzB6Q1eWiunt>wMN;fYL!uyE0PLw*Y8?mge_ zi${GBP;#EyuFoJ=l2gZ1=ir|0q4UFr zEa-gXa@M=Y{0mSS@UE<+i!{8Xc<&F|fh%mS=R__);hlMe-F=z5%M4??xz-LVti9LT z`z<$jnBwX>E3D^2N5>Um{Z^aWts;SL#F-3-gU}KNMz?3=@#qbY!gsz%+4Gxgz;gdOhE;~e3Qf@4`M2t%#Uh`DLu>AT^ipB zQc7PjT2wfL8P!1?5-ad#$RjGb*sijcv%^{`k{UJ1{doQcd7!JLpeqS0VggaFPvL3Y zyg+@s>%oW@zmvF9<=m}_4}x)rFL}Ryo^~S0$(<=mXr*Xe9{<+Ws1<*}K7@Icwtkss z$u)LjKbFuyA_}-EJ&4qzu*8Q)bu$+?sghf3;%fP(EFw$S7f&;H+^8#_WR0#Pfh=Wm zHr0tBHYxex433+alNoVEJQx*JK9M3pz=L&7q&Aq10-b~fJ>zF~7?!#HT#Ijm!ZvG( z(ql^LBX)OTc+z;01&YMhy7Ugve#D%^wYSiEJF;T?i(>mzn0gQzD+h=R#|iumK)VQH z+H$mhCfAB=FH8=KwC=d_y2Ku)yiu02nUaDl*tk+;T+@p$^^a|*xivMRwUOd65FWaJIkyt>>6v6yXeyUNTTY98gNdO z$zne2l_?zzxe^9%!jDvx%(Ja}AYF6Qw=ozp;6tJTXTyoKsnB02OR5(~r;9xq*qGym zC2+&y*v64~5bE9zEb zx$c(m!^&>gdXqO+BCD8d8!Z4<%&e(Q~wBvj3 z{KY(3hO}ya(#6+-7eU3S?}Zub#8JITRApe|LC3%?BrIDfcY%P+4(meg@ z7)$4&)*Xff$|s|<0Kkq4RBBbp-Ml;enqv)3AFQWUh`0;JD>FxNg4Cp|VSWzYiW2VH14uUkXE{fV(=kui*o6G}) z+(DNkW<7`;a~FnchQuRKxM>O{wwVYwlqE0|Z6+`4U2VrpBy~Ra3*=G5INrX*S+4WI z=U>A!=Wq-;L|I7mX*78lY9A$`okGg?iz_~5<{i{!99H-T5tz7$0Gf0f>C2HPz%VSf)cHDWCGHw++a+OR9)$HfN>6BQ$?e7q)NEX%$3-W$c3-h1!8cM?jd0YVIf0HGv= zUIK&`N(vANHS|DefwU8SYnzfPQEUT8gcVOLpptuwdAE~!VjFD*Ey|D^7G%9q)Z{!Hav50j&~?G zcUn+X6A^fW%#Bf#zBMj>7~bhPiCtl+I2h7!MwGdO*q6}Vn=EbbOCp*;*92CPZpap= ztu(j#LRYYgaN@+6iNa*1En@j51XrvLE}6S3}FnRDoxSo1kwmx z8I-x5a=9~kKvPne3umgdLD|9;4cP{}mr$ss#=l~j+>>TXD3OPHF^*G5=8Hlr3Cl@% z!H5j-&1evgp&Rmbv3(daD<<;{p&mgPNJ^XwOJWX^U_@^RtB`u@he*ccRupW?>=)I( zSy42M&|oU#(X_yl2Qe{Qjc~h~_c%B0u?-#v+X*NwFqaGYQa*l&T*@Sa<1h7&58m8D zJxKUlI8wS$jRU2t_+L2Kp~K(I*x%@OoEi>%3=0REeZX3QNN$nw64WJQQvi3SmZelC z_dn%Q|5mr-Zjj3G(%^t%hpQZ#`Hj~dych-x9a2z~04w2ktcL!rXvd9|ZfCQBb!@Ss zz_!E#%~BqoDYE1re6PZ}T5RuvfGXvHdFo03<0ci3de0#83@C3p~ z)Z@UFqjME>xRuz(H#C0g$BnbYaK1&iQ_}rE>-IOI9rk!E1n>l)9F_3<;pG6jJqSji zzs;rM>*0qL+hrVv?dhwJ)a^I{`v;(w|9^BlRyeS=|5?|IN87T*_&eSHMy3CiuKj;a zx8rvZq;&j(D?HJJC5Xu?OKsar;7W~*FSkYI>dmQ2%p2os>Ha!NVml&DB+4jz?GSD8 zP)SlRU+tvO(xKLVi;~|v(f{Ggst@)82u3%hr;mR(dCcmp@y&4yceOomw%6xhk3V;L z)y=ybuHF3T+RZH&ukN^dbL;IppIp6h@yV-wSMMD9>GwG&E{MHpAUsQrZs4l;!Oz@X?e0F}}ji+5cI-sl_FzUkn z(qk7I51yWPsi0Y`rZ*iLMOQ+8>LPt=tQB6*jtSEeP{*}p3AN1Yni?wYwy*ZqgR`5{8anpz4qTe zX}b8>vT$pwqj!rxzS8mBwaJhFnDZ@!l^B_FSkwezj=t zx$=D%`dxfD>dKP|*PgBY>D9^~p18+8Spg*LxZuC3m(zssc`^A6q^ap85JllQ95 z-_F@|)X{xz`P#$I$!pWz-P`w@XN`xiwc2yBcJt}BThG?-{UU$$$I)Y!gb!a-`_Z}l zji){HcBC%aFHEi1_#5)~UeR<}7|~;Or9dShAi=o)51H&xMSdR%8wQX54=863;Hg2A$)>9AXi zlJRC;!?qW)%t;tIG7MfeYEvRpf$8RlMhipZh$=&zH94eezBH~qH*FMhrb1tPVocrU6=aXh+`_`@x}72u0b*V*->p7nlO0L5p3kkEh1Yo zUS}+ogNP}EX3H1EbuhLb&x37SpTQ3s&5j>pfTPCIMwmaF72Ay$o)2g(E+afAY;PVf zHkaql;yMe2t{TjZ@mtLEmkRxLLSGZgRf*IoiKzja5A$%EJ_fzv6q?fHlB+Bbdo;aX zVJV0oxF=~(z_j(bcg^pPK6`}vI8=UPvj9ePVyomwWJsd3`B5ooQ({NNQGYv6^kZ>J!NpAdm2g7cw6sH!MV$5`U;Xh*8BNA-51Yz zgHFrR7IEVT^V^K|^qxzDHAP?qaE}`?T$?;gk>v!>?)w-Q(1skyq?7S8rtcN6Edj zmB}-N+0(hPJ(${LT5vfYhNk;&Z{2Es>idSC-v^I)Y;5{g>^eX*A5xV*wj@mi#&xoSZDDPWA{v9o1F1up79U(%$hk>tV>r|JVLWq6jFc%AjRb5 zKq|vYg19Kyl9XuVpcDx;vI@Ic8vzXu<_qTSaJjH?H(1}XsS%MtH+f-p0`i4#PEmVW zF?1oynCL)D#(p39_gQ?pO)8ljCIl-a=_vcGBu+2jV|6MK>@|zlu zb0wG%;-KI#Y#wfe4u5k%tG_vLF)48l9z351-QF@w7vQS1#9=I11a+xlJ87A>|0kae zWo7v{2Qs#AoHn?I_>R=6K{`UMGIVuH195|U z3Qb~bD&Lq(BpxiTl~FNN5f#25knJXLLOYMkw-*wm?Bh_X;X3{iyLThsp7aST~d)CwkV{&zrAs^Jh6$T&4%bTWVX`R z43if24=EWSO>eUGnN`2*o49tvh$upk*FIv!Hs@PgBYVFc(c`V`xA%28{>{kCcV~Wk zd*!v;(CyoA+}`xfm5*=SS@GSqV-KGmxOD5xtH8{?$Cy?xd~`ZT64f6aogt3RV>^;C z&!J(nj3LKwu^H$#p@!$r3aRZH)p3NWw1=%`a9Hh-)Q>Mm4P2tMrwYV!X=pIfg&{;E zw>g<17LCiNPs%lR?3cFn;J_CFBuPaLV>N}ftS~R`qs%N}dlKYf9;ZJ$G@~#$zbLs? z&ybwlSYqrvWcI7T#z(*Gc<^e$?T2rly`-$D3-3Oy_nA9` z9{;29tLw9_-2deH?^_=}U48%2id)Z?JpO&m-50qZ9caDp?9AK0^*nI7?EQnC_k3yZ zGhyiCK;5~gx}1JuYX&{BK$Fu7tw!qPT3viqkTs2;*|u=){*Kpv&AjlW_Uk7#U;j{l z@rTAsPr6+F$+>)Qo8yn$pL$t*{`!EYfgayI_pjM4AHK*qX9hI_A9TzT~A^B=cA zf3@uHtGUkt9WTBr|Lk7Y`=@1{W*e#}D=SCD^q3yidIT@F)?V40Wp?XLp*>Dr?)KFW zSqHE8-2eU1^FP*K|Is{orEkQlrhQjq7H+rC-IV*$netsDnW8?;r1c;!4^2 zed)8C)8=lf+jhQk$2TEk-;bHOLz+@!%IJ`_>!P~NY+Ls=@^?-chkoc;`?YV?RdMf+ z{c~@4=iiX``G`?An_n`=(tV4w|A(PnKT)>cLQ)3t5_&<%fnpI`J`rz!mKA}B4+9~K zt~pm6*Z)c+(g&&1JBt!Z zX`WnJZch@|M^`)ry+UyLiX+h484U@9I&wi+3g4YU3-wBEv0PIO2`(|$uh5jt0*u{Q zwH+wqqC5BHh^zorCUOF9l$RIcy?n5cPRL(_yK^lrI9T&)Z5~F`wJCS6x1u z&tYgI%h*ZXxymSkQ6aSFXhJ$FQ|m}n3L#KgJfx9`MlI?)(R26}XW|iY!6XTKHY5Am ztH;V?%Bkvedvf%Y&B@zdSU(6vZVM3KL|xBg!jer%V^5mr9Taw7D$5%Oihgj-di%z! zqHQ+~7hk1*e8W37Hk|i zYJ%InFV7hcpB^{Fql!*bClxV0XXDmZeJM6Z zSJTY3I(I3?*GyEPhR31-lj}<6My7)aDU2!%iYsC#mhuzJ_`V{xGm90LiUqa6k`5T7 zIJ#8sujg4ZA(l95I~|Lr;CM84vFu4$PX4Le6$#wX9>CqR!%@!!yoQto%ZI{9X9cW_0wiv-f~QB#D5fq_O(apq(4@RD1qx&%*eQcNWA1A^T_Tn~ zLQ?`rt~ywwA}xA;)W8R^!!HnFrZH!%wK?GV{EvivFGSUI(KpH!;j6)_ z%_C^>usDg*foP#bA?C)UljL%kJo#CrA)^5CP6<-Kl0^0*0w)HcL|!k-IIb_dNZ2_Nm|B@)Rqb%kluIOI7d!W0=)lj3yB@Q2 zJl{;-UJ_lTQ0EhAbJ*Bt5jj|xkV`pW{t>vZ?aTj6lRB#fh=hCAb?^7!Ax-oCh%N{Os;$dn`C*gk2uDyyqo7qFAKro=wh%z_x zMSPVB-f5Ot{&yTm7LSUNQYI^yZ*j1wrYhX{mu`n3hnA+~bPE=ea9B(sX7v=~u|>*C z8R9UeG@P2f!*jyG?R=bgi>jxPGXGYz<3@;dNOwxELu#UBm6~R^Bu`+y;r2$iQ$86i0jNEQzxB7nx*zGw$#{E5+~n=0d# z)Ybt0P^+PTd;B}yPRaPc`SZU^wBymxc`%}YkqcUj#^I(wWL&8;JwL9tow}e*RamZ! z%hsnZtbOu!)7eGCLTV?+bXuTon(TY~gWBegtyP_fz-=ramOA;P*x7q) zwtg2seRFjGxs3}p^xXgD_^ywKmGKlZLm1s`!$z>uY!^tB#2zEaX|zpUpLqF2*7=7iGv3ox_t3QJ zrAsW~>TUc;x4`Gs_+lgSiiOGP>csrGj)RhhOgDBJ(XjDA%8V7AHtk24)cfwnL!lV8-UktkUyzP#&>GPV` zKK!})(eq6YpKrVKQ(pHeypZfpXKu~A@p{GG-zVOB-sb4J3FohEzxR6gotN|O-(PX_ zZu9-8^KL$vbL+|5H=fVF`J(67chNbU`re`3)8Ch#xUFwJ0%-zya*Zyh6-i0d`O4tm?ue7x-J55-r1syKYRVBfW>^G|9ny{NzTD*N;6(C}?8K5BFE*`RxYoF%)o z!YPl+8TkDlolgA_xp05__G{g~2@Lz@S82Bij!BD4-rnh*{9fS)$Ln@| zmA-UWn{DSBcYRZ|`6Mj;$@4bkEZA1O`CRVqD+#MV^H1L7>h-ov>t*+x=v{ou(0VkZ zW}0o)sl>&1Z9R8~<@do9T^={on72_{yGlEFimA_3cZY4tacg3y9TZl~LJ7DqqC#d# z(yH=w?LXB_zoA%mC#?CU=iQg)<<~0i2kO85S>1IdU7sV2ZfDL~t;?QI+({f?jLe@d zi!IPb)v{a_tjug)n;C3`4lmn;g%X~FiA~5zM~B3 zMXJ`^R4lS}lf$H)*T8dR(L7z))+T#=gDIj|7c)|lH;a|hL*;JIbvBXk46dsiGpbLJ zuY)9cBtLE_Gp0ju$|OnAC`Lq~I4oI$9$r;k>g(Sk0>9-2o^!MN%Wbn+{l9e{38bw5 zijmr$9#yXDIo~^fuV>bAW4~kUwucn`kI{365rdB#l|y8h*7ggX_+{jVU+nAdM$Xw! zLh!VymrpzpG4`yk{d)xM#&M;5Y-3^Qp$*nqVu>L&q4`SMSAmeNKYI@UVL9^)J++rU zZ&KpSv&pvt%9{c6{(ySwP1V$+!j6l>M(;})e>SSqPGg^K!3#gP&DzI|@5hO0)cAW# zy;Z0!CjQ>+^r6h8YOXs^;;WSStJ&TXwyzAKQI5Ajol*n;tvJ4&GO3X`;@Hk4Wn>$! zxkeaSCHJ-Fg%&HyXN47wm8y%G)_(eig)mXbZQV&?Z*|t1AZ4k<8bv}=n7%@>D}@={ zTHsCPyVF2}6nRR-(PcQK{&GcPrPLgaI%vMuP1ES0W8o7}xU(hE7(9k^F>!*4T^B~I zenECu->7Y=bIvjy-6Zh?c&@8SfRAHp-$h@7&iYq z?}dPF`z1r?wXSwE4e@nUUx3D{QAeYtj%gnkp4DuMAJejx6Gk_Lpzs3YP=?9MG+3Cr zP?jc)r3q*0qwz@Cq1i!}R?OnHk{*Xq(F-EIz~*P7K}_yq*vqg25~6-IG6&lYTt^Dh zZFGAY+ma=+R&fkD*bgFLt*8?iAq7lpzC74WECVH#_e{M55#xVy&U#{<{HvnxFLY@Y zF=aBqR-(JOfF6K45@ZyGWr;&`7-ly=XPsceO?umpi6l`Zagm57QNp_kPs^3Br1chpTQL)HW;b_7y}?;x@m%9|Y$0mLN{+8I)e>fOL*Ao^D9y+T5s`mAgym zQioJ-ge)ZNU|Bkhf0KzM6_I3Su#G5!IgXs5kR)!nAC`VubfL;iF{6T<*+KRc5}Z!p zohzSf8+A_C`-He?Hk!6LO6*=~`IcNxSQ`SLk}@j3=N{*h0BQVERrjePdXO@05;tZL zE2~E0N=I@~EbF>Txa`-k!QY1uI;Wd*jktI7?6+mQL6lDB@&pkhL-P)C z!@7V#E~L_>Y(uN1*6yDZ?F7)*-4kC>zkNJJVpBpI7J;KnP_v~>LT?mDt3>$`=G274 z;fYxseJ6qSONIU$Me2d1H8+HSVTKJ?dAngoE#zaYitZvcdV47|3_}8}r2u_WG93%s z-@0(5z&KJ=Bk7<3(TmEZ5g}mQG!W)vW$ak$F=;&nD6RB%gy~e_D_}y73k%bQP|MK9 z6IC`*7lDgQLbG_mNFxgA@U#fL0OP=I8zgj6rh0)3dpbmFBv98323jB}pba48JS|NY zZ04I_ox$be4jU1%dynpu-62tK^zc#|7=#vZ(Pc&o?I_SNM6j>RL6F7)2s{p?7lEL8 zgZJTsWOx6}#oV6FMHcL|1bmJnYS0A2>B@$k~X z4F8`GjMM+^K`HjXj{h`}hm40)<(~)aD-e^g!Bd!YxMAxvB)3XLen+y((yeh5p03kB#s4a0UwaT@+ZtP^hp z)MTDPt($=H5m~WrLPDGl=RZ~!__zPi_J2ut%-CDD18@fh7dc;Q2?O>1CJulfL<>}t ziq_(}1f)L|F2?!-2fh&waoLo0<`M5_e|V{W{}pe~5paM|=R)l`{Ev>m(dU2nMewcv zX_a}i(?LBLT!J@`>R+Y)n_K>u33uw5jOVjZDK=Qtb{A6u%wHz&s(YiE8OGOL0MH}zj@#f7DZ0lmcH_Y zZonc_&nazI@2uEzxZD17GrqpF_WS3{FW+AD_2u;s9&UT})1eo?tT^>eLi>RPDA%x@ zh_b=flA(B|rMmer6JUkX!}3zbtgC$YsG;p}V)iQ-dTnBfx6?49iShTHZtXlq*J?oG z>@`tauNr&I1cyN-)kzE{meqk5Sb1=`$r~s0rs>)a>U!#a=WkvmZ8*yBHkMb^6g6;$ zGPMRVe|CgV=1(@qrW-veLRX5rqP@3ifV0OKL!WU)Yd-G0=gd3zeqR3lPwv?p>n=TO zbMII0jAin;0#R~FNaK*!Gq-&6{Q1GxzixQ&vV8XHs8RFV9XPw>_rRnlKh1v}==Ryg zncx42MCaDWuRAZ^0H=q!Zph^CUr)RF)3B3Q-@f~L-h-Em?>%q6_UPn;pLag^amVdP zyB__t_V$yx-`<~k`Qean?zTF0rD)}DDC&lbPxC*&F3IhRigxG_uD^)5z1SKSY2!rs zJ;Uek@NYbmz3;oqi!UnoT~FQgMb+`Ubr+s=y8cV&>#y5<`5uRS-9T%jGZB6{he=s7zh`YuAXtF`Z2hN@v`8e)aV z>0(mAuh9648!p^wJaaF5+gAyjzwUJIm%hh;khdS>nfQ)p;M=@b!?V{M$lq|ZXx))P zC+~v>S@Y@Fb-TYvnblmq>Ol2Q^gUh7{picWWrxDrPY1$IJ#49S&TeDnWO3v4+)sWi z`rxsu!$zW3;7vhouCOL_6US8(cNQZeQ|T(z=Cw2D4iKgF zo_f~)>RR@|y8fo|;Jx%4Acq_#ifXnk2TmA$-rL5Kx%~8MO;$C8AC!hPqFCU_gY5xw zMHyeLjVojY$7tb*$Qr^)?@z+(V5EuawAfTNnK-Jr_CgZs;|HfoG2Ra@BEi-C>|xTH zaR~H@D`rV@CvsiYoG`e)#|LH149XZJ@pPu_@vZ{7f3VCyN|8NCmp@IEI3g&fog#TE zS`rwpD!C({E=40}e)7}bk^+I;KYr%sjW+t1Tc2ssW3eq94-@?3}>`pS_CQ{-tix2FK__>6?DhZMa8^jw3P$y|8cYl^^r|5lBH< z)tJk{y|*g5G;_-q0`mgM9;tkn^xdHu{;42!9Q^9i=ni~WnHZtb!fB%X;q2rJOxpSG z5}~i08(jhii@;yP_2z3*DnJVd2S$<5j@Xi!;Ym7Q8@|0f$d)aMX-&ei_|?VY9VxIHMZ;i^nD zm5CD?4(>W-@sdUa4_y^Ialc{kQdXB`q|I>Ox_h24UZtG-nWT*s#&r={^60ii5*jH% zLAg>vLV9XEGZgN=82B?R5kwclGK7LNLpRu<+gbWB4(y|bC`{zU_8e(ssV-xfq5DDG zr0?VvOW2X=QfCs)6iHLKW&TFcDVerBsk>0=D*;W8;Yg>5i}oyPwv4R-!%LS4Lrld)Nl`yn%XxuAT7vegEXwt&%UH!E)zoL7iR z0+NHRD0nFmxE2_~1g7vHm7NB#Ih;jE!%# z$iir7jYOxXKobPVh$Ng~$$(ZYtxp`D7bLZy>7FK#;2fQG<06~p2t6I7w&E6wrkN9w zNH-@6?P)~o7rBav38uKH;EZ@pP9i$%M}5!iej}v*6P2$gC%P{y3c=(irmZ>%x*g9_XjGP1z);%9Z8NM3D2LuM zjrh_s|E{#+jNWruY3aaKpln6S5AP?5nN8&J)Z`P~#r%%^PR+zWiZD|YF~hheOR?)m zWjsxV&Zc)%1>Kb~xkMHRmp(%YB)*2ieZbo;;&V;I1?F$L`eV%8?dqvV5(e$%#?RuW z4}>BWa~VN=4k|bWAz6GBhe7JI&?}1GSSeOLX!1g5E?bBJxSb$c&XSASY@lc95}UwO z!eC*4oUnt`io~|)yhbV?{wUB>)iEGhd2scF;gu3+N4dAZB(^s?YE_YaVDu8}LWR0? zrZ$tUN#Lt|9K8qXouP^Xi-`b(&qP=ga2SYcEmb{$9#z2Pkyi61hpu05-?uMh?qbT) z4^0T^NaG?MiHID9sTAw69RcZ%8Y5=Q!9oK&A5ix{bvr)z^JvlSQ130xo5CPI)z(Cr z;s0{Wuv&C`%Z=2W9P|>n$NBO%a{Y~Ze_VUBG65rASR+QKZW< z#0pUZr?xXg5-~lCNUO#+9M&&19&k4-$Yw5eSF|Ts1)#Ztw%wxJsl5q|+9@m|HF&3V zJ4+IT#gWK@d!NboJ zir^_~`4mb9Q!aWe0r0&LmWQp{HE(y(CpYVMe`Bucj0G3`M*l<6-XgjGRc!yq$A2gO zsdWcsjKLBKcm7MR|MkINU*UhHZpShi&poVjG3UW+pvW99Fo%o6oGc;_B2ttoM3*;2 zH+I+7bdH*~B5(i2{Qc*9Jovfv%H87A7mb~VQa~qWsITJ~SC{FUy3vYuQzFK!kDd34 zZs?NW;q&Xa9I4%Qr2C-@-9I@#;M3!C&Rto3<30kaYwp}{JMA43k%8I;eo{MaUO!oC zS7ll!eO4ElyEHVubyRL2L-8m^)f91`RiVSz@vBE@)X1xbhWDEkx8b0!&Dh}N_O$pa z$FS)!?_Ub*Ix9%-(5MU|gPs;*rWtI8@Pv@8TzhIsc%SjWfP+1fxA^1i_x1=&J36|J zV|xmKhG1jJhA1m~bEFoDH8HMLA6L_$i2jo!ro7`{x@pLz`>S3D7T*1-)5)8m@2t;X zu@2p=REC9$@ft{Y!I@uvKKJ<9i639qz4cDqu<^}5yn6Sie@wb{zvt)QwLf$o+?eK< z{}{jLxG=LexbrC6$b|*l4tD(J_K;gomOTH*n6Ix-`TjxkkFSp0eR1OP>w`bO{`mgO zZTDWT{r<)9FRme%I_R7GDRVZoJ#%~HkAb2K_vtS5uxCnOt4J*4MJ6!#7M3azaLBZe zzDeJCHEr9)>a)*sHl6V-+gq^fQo)|f?JhhX_bf2_Q6TrD(~?mueIK65-S=JG+j|_t zRvU-DoA%zR((T{IuR0dLaIa(3yU~-^Tc^Jdgqr#8;-U8J{{gZ}P6Hwulvh0{+>bBtGd8S_T3%33k z{niO>uZ_Zj8e%SGTiSx5N1`ets%8kHJJZ5|-SZPgD$7yCH% zFOdtLJDVRz!`E>q5V7*2v}h4Gyr(R&j(GElr<=5BtSrB)GNmiSQOm-cY-ourvlp_E zoXB#uza})RE!fU3~mimGx77o_p1dRf^>RrMs|@2bolg8ELbvDoPChj}|ORjNyt z=1w}N${67sbmXH+l{fva^~f z6N#U7CMBZ8qpLJOyEEP*dS$#N3MWEaZ z-6djQxiGd=6kjHaD-lHJ7?R5*6=ik_s+_K?okWyb z((MzKTEX$mu2M{yt-3cb|qm05FT;SHd0U^x>6B7I~& z69!sUgd(*Dl0+d6 zUq~$+d?maDe5p*j!GnTG7VO^|_*MKIOL7n>%3Ac`7>P236_!aXwFo(a6V8Kf*O+1Z zXPcwwsxY)vpwgW!>9*=Vmu!r`?GAVMdmyzP#+pap~8bT z#8}HQbmxV&7JITd;a;#hi8hR>^FaB4q0QFY*jfuq>p-S}Yfjh75cyYdQ)HBU2T|4K3wZ@;L4;_O{E_dELQR3F2x1#$-4vh&Yzz z8Ev2NQ^fSUBHv)7Dma!--1zCTq8-G$Rh_kiBupo{lS2FLqs6SS<}D4J6ROA+1 z6q?k?k{Q73hU*(rhZCBPYGAr9F-Ye}%MwSS074%CPqw!KMXs9U0U^;10Mh z8*$M*^M4yo+?{fU33B#kaHj0u*f&9ah zDrmv^^31^?Yr%~MUkVYJ*(w=Igt4*C7NK5KEwrzYTkmsS`-S}uGA4W)*LgcDe;K>W z0%&_K6bo2|V!gnSptiR7cxz`g`eLEoxKIMBkGjap#@V(NDbQPbct|Y4Pe^(a=k<4*%MTrA%ICzkP~EJ z1&H>0KrTgF5M5~HYMc-xOobZKk-^|mixD(oN%WMFhC&+3th45Ze6qv6XD{)jw}^HQ zMRz2ytVq$*1P2kQ=5P^E2S-Zd$x%Xq1B*DS&xGYZp72qBsN4>l=d&KBiPF6^;G(^Y%Bl|HsH3 zv-dxz?$m(&U+3-ry>4eRgn;H#R2HlvbP>V6Lb)Xl=PR}P%`w@*?qq8151|edJDtws zz?YAEvT5=Np*fN2CZI7}2JMt?$ANoMRv9b-7}!TZE*mB#0}8XKbSj4GEyDec+@)5F ze;zFSTqv7;%jvfmb>JfsQ{_jLUj@E>oEo1eM4}nq6)I{AoeXyq7^0ZKhgbD*Pgs+_ z>6?U{rI!qdp>Vk@j+te zK|E&?_*yh`wmhYqzF;`!jXZxluB%*|P|Hqg5GJ-U7Y{YnPvfHCz*6m7MzkBfY zr*ohFG40ml)z1P0_nrhwj)s>Zfl?ZsTry>$d&#R7eR-|(`K#l;yF2a5?U`3@ zt-JeV@5ASx{`hMAiE~rWUE1{`05kdM^SAqdes#{Jr!iBOcl_qz%%205SD%QZ%89!O zSyVx4r6H~eEO!_QT+_G4?zrOn@M7f3W8O{Y5;mTUdGE8L1J}}bUdY{Zsr{GF`d zyR(loKfI9n@#Wl4uX!;`pYoAy+BWN)PvTdfwk+P8^Zse?xOE|2XQ{i*jGnpKzi_W@ z!Uy5wH@K&4j-0xw`r!4_6W@6@?&@*+n>EjV9dr4{fN$^BpZG3k=a+3hyXTm&E^^>P zO-Y}Snjz|jQJjbh;RkI=+6uyW565|GDe8clzD@spjb@t)_>J-=iJ8K6&xUoSn~N7F>y$be2}RNZ#e6wAuGmZFg9@Zi*eh zO;tRT*xO01HQcZ~N*T(1j#+0SmOfz)`V1V%th<4{&wt@&&tgRk(Ui}0)Qo4Qbs+xk zimI`)f_}2ZJ}h^WI%|xu!}^#xUs}f;Vx!E(-bIl)j6l+NnHE&GL|wZyyww7xzY}rQ z(Neqcvirn#Ure)R5lxOVx+~A#M7Iy-ro9(G@EfLo3dvvUnRs4Yzks;f=!)iQI_+0? z_z3Mw(9*=;PMbDW8Z$+ZG+drFQ=T~vt*o|+8N}THi-o|JO>`-lw_axa7RU|+5;g>g zcB;^~GQ9V0QD#43Sh6l5pP5{QF|W*7ghV7Oxr)S83Z1P~;T;s--m0OWTE=`Ttev4N z8tp8fq$` z2ROPHDhHfz(KM3uzUEOYzvU)x} zxx2_!hgc{pra_xAOPBLD@ij30+49&b_(tHJMqX8#SRsxpgsRjh7QkfAaAjcW!LgTe z?CCI#6PuTqJ?yADY4#9Pr;Whf6MY>scQMJC!O0!P&z{T8c#D-c-`4KEps0GHH_Mz! zm~Z2^Oy(*_N>u316?wD8{v266_NR&!2~{d5+8DJk2?#x{tp!6V#7%Gl(Zq=?ZoJTe zA{eC5VBOfW(+;_p#!x?05I~cDaCZd^dF>fKGm^nFP6Bo!R@5MhGEw6Ect9*9n)BZ6fNI{j-+s+4yEgmP_v-(0xJTR z8uUv$OYebCn`_OImCkTXz7etDM^(dnuzZLjQ-Unf=*tuMn_v)PMiet_+3fIKVRV@y zv6VQs4lMxu#7q)qW5~iKN=&vfvJ*nnDl<+hYkpNU1#CTEg*9vCtcwj_vSW%I;hg&g@-fi6m@bD-CQDrSF%%Z2*2{x#*Jm-+04KVs%?>TT ztOTiNg8Z_fK$6f;Zm)y)h8=8G`!WUAG*D2OmIMai{Mdkyp@S)d;~mI|nac1?=f_ND zCof``e2_5lYhme3VyhP<^%bX%B%!r5O*}^cCxcL1yj)p$SmYjyylRlGQ0ecaj_EG2 zR0gTNP=FYVQZ#aw%QEeRb=pf_=WEKLw-5xsgb+6xKv( zOry8QiP!^=HH~{n$Y3notT7{lQ|8c}t>t=$%2mnrwj**o5$o`diP<$@2ZxM=NHlyo z7s~{pbDP}qqd4T^T%qFCEIT2I%pR-N!*>!_J=<7k$Xh}* ztqC(p>ggJiJeq0k!-^V;9wmi$ERj25#bKg3R~Ao`#jq7Vn%YC>8Ynut8v7$sFu(yj zX9-oJVDvYsIWXP?DFAm$-n}Pm@1BSSizy!tYE^|2w3p%vLY9jWg%;v`6$I&27zubX zYBt^yL8bnNZiglZHW2!pufQ$TU>Oc@EFaKF1$rcI2g?p;+A`jRbcZsBK&3=GJ`vgp z;$NcqFS`BBeJI@yXUl)9+y9+<{}I!``^vmS+Lqee^OeT%{4`-BQw~jrGQYU z@$tZ@%@NG5gXr+mgZarup(rFO;RGq1T%#W@cYIolRHsBQ?D610{;AvP$m(K;0*qW- zJur6Aqx5HHvqi2`)OXwhPdla9v5tePhb+hUg5ZbCh>9(@aEE}Jq+`-9WWkez4^V%M zX*w+X6gh`l2INd$89sYU(V<8AJHD&lc$nev;{4%o`oE*w|09?BMzmAcvBkaf*Z=-? z3-xgSH~qny2tfdaful6CR7SeWgsr_`U$VRgFgib=Smdw^!px}@Q&74Aa1OwZJ7mC@0#Y8afU zdRMF>DO(ViZ)`g_d*eaXz!@QBJvp{4oyCQrmdfVUhsTOSoYE+tJ}t*uSQ=c{uVmha z*4s~&etZUq@}A#5L~qes&wt;2@y?RHr~57ZAhf=J@~DM7F2DHrb)ezdBm3Yf+djK; z`o{CE51!9F@6OxBx0AOWZFl(Gif8|rcJqhsr>+zn z{5ti>wJtaQaEx6gFX+aLER<(-#P)~0s82{nYdv1-l}3g>V(Q@wgYQ2ddgDpAukNO8 zKUsU^ddSdsqDQZe7`EKfG^yg9J%dmG(6Hl6{9Uv0WWoDK6W`qzKXI*X@S=oC8-3$8 zmT$jYdGxMt{x&QJh}M(8=BT=Jv%CEwe#I>OxXlB$BrH5;+xReX+ppZ(DYa zJLm*y^%1jvt*plIGpFxQ-utZRGb|!b@;qad zsiWyd<29L6RV6cI6>|)2rwg-tDzgS~Q#weqM@ic44xMn-wd85koICRNJM4XS2|BK} z%sHa#cT&^1Evj*SSjjYLdN1O`>?j+poyOFO#Fop7F4jg5*Tiiko{g%qy(DIdy13ar z`dmoYjrn!$9=6hxY!77u#&`>l@lv0o3B*X)?PSm;R z&V2v9m+3$Kk@xa-^!RJ+n0dh^OXX#wVPA)IF{We+@(MtDG(_a-RY=Hs7;!~{f}X5` zaq3PRR5MQTJFn#A_C;-LE3{;uZo&!cdpCt`7V4{~%3Hl9NS}&5da61{ z*p9T{pji6E(B&Lo-PasZ1HL6Qyo7`o2H8qYQLW`hWXAo()`eKdvD2pT^AB3u9p+@s z)K|}!W{p*)3=$@Fk`#AR#I_M6S98;QhgLKjO5O?bw}Jy)o=_)=trG$25?>>VD+gRr z=*lo8OiK#<)ySlf@I(|OX>&#xYTngmOyEcM)YWg|lq?cwk5(1G zV{U(dTf8h~_!&*!WMXjZJ!NulXLd@h!dC~R35@h?H&rN%lqgs_qSzX_%Zc#exf&&>_FcH^)%DNU%(( zL&dH#gS!%ZQ9)E^fBiO89mTi%Fyi7rY{!2yjX1=!w-TDtm~c8_<_zGu#vrsNiGnK` z#sY>TQR2(yMkElm70gLEg^;1<8p2VZ3THAR|7>#t96S8-xvqIn%rhUV>fc8fD&HPY z2O>b@0TmxSeAxK8&U{`(p2S-&k8j1rBcXc4a$%C;$iu}*+A`n+_gdW(LyMogItTPM zSJ}SFM4t|X2$le{$Yfqr9?yo9_gu%+YqaFvu-fv(nD_EYM5QRCHPh0-%luT+@gf?L z09ImaThVm6bXR*#=47F5h%|9Jzh;HHVmTodpcbItM*j|W@6Gz1$Nl-$B75>-%& z2&OTCuSn!+6KNV34g0DZ*sx`ysBCR|S7YbZSo1PN^Wfs3$SSr>*lC2gs?j^w-@*{OI-PLbI$Ng5+fChizr6GNblYsA?@L^5;gSkTeoKOpyCOmDEX9hIlHV|v zi+yZeELWog@DQsxwu}d28{4{xZ@kOT+!MF^k$%%lZrp!gk_)$cXBaUceO&Kb%_Yk^~+3%@Nn8miF5xzzqOf8_83LhE= zKpCY52QYi`X{zT zivxpt=uc>Ja1NcB(fDQXB+m6}88K z&w^s4!)Vm94#NKiNeQr!5-go~)OVpCAw%i(WX##@Ty~)B)XU6G=S!DvC7RGTL;3#; zx}CamZ3IwT`0?L#iE68eS;_q`Lvl z&I}dk&Y zLv2KF;D$KNo^)-vM;MnX_hpCG_NYH`Svh2erLddATZR_AAd{8nf=R~535!-`6q;)r z%$3y8m7lj|4tUh$H?eR;4zP-2bRp7&0ceb9qwD0=sN!NbQ-G62LS5KR- zKVARx>*1e$yY|?PQ@4KJ^ZkqMKm6A7!vo3V7N?JThk$0Ok2KrTv@u1r+*ZngQ&Q(Q zTN+2I`c5ofvU$}HfsyBK%s6xP$b;XGJp5(--KTqgc(w7~v-h9W>cQZU3zO z`P=#1KhIdYe#GOSCp-&SR&J(;q)Gjin%Ht-S`|0882AEP`)Nt+7f3yRv*g^PPPYPihi}Df{vzkl?bz*KyJl@wcbRSI{g!R!N6r<8f+v08nzAKn z{vOASO{TsJXz3j^75z=^#sv46;hXTjrSC#Z#Sls90QaPg1v@Txz4k}@ub*^0b#>;$ zU*cb(Dn;TKgOo=#cvNylB6{8QJ*&)wphxiMi% zvvd5q+{OE%hp)|Eb*${*P2cP-BsdqmxPU1l7-*3e;n@Sshag@^U? zzAQQxsJb4gdl-n?@<==Sl)U=~q-3?c)6tZf_roebldDjBr2k)dD z{Uu@fbK+Sbj~bybnoO^rElr*+&sicVSR$_&OPu8_e=AN}Bm5q8&rA}(P}Xiw$j+_pOJ(fd|!K2K@Z|9M7B<0@}v8PpHfYdD`BNJ zIEz%_*^<~YRz^2=o24-;e~cJ=BC7X?hLYjoZAZ%M`jE7?%G_c0jEREkHLmyW=!d?q zY#3tgIW44ooFJ{gq2qLMpZ(=~5tlm_)#V>T=Xx}u7@euM;6g0T(5l9FSBdRe;3Cq! zlStSKm3KAqtg&=EA!=AlOYBd#*C=Bfx&GF$pi6zVB)X8K4GC%ek*@MBMtmDiToub( zCX8*ziLMv;8#ulSPIMtyh=>f(DPwtz%u|I0H8H_akk9uN@?y)4xdTN>T}XIObM`29 zc%!mzrDxzaW!3+*%a19Cp@j~{i>rha zQ;m!OFSd=u?ZTjdA6`kb7Z7U^C$fzpy$j!)j@2b6*hLlA!xj?iWjHfn0%1fHi_FCm zXSo<6L>5hyvBtb!ikyLp^ua7|YwQWilDop?&T-dpqAOs7VR~}d?n<7g3fy?g9po$) zxQY;nU_~U$yfu6;_8m$&?i_BYA5xiZ3Yjk4~MrTBC zWgDD~kTj0b%QU$pp%rMQ|Np3a3+Oh_eB1l6#mvlPTef9pW@d^RVmo%gi5&)qnYm%6 z1{!8&#x@NUlD28mK$|vgr#LhI_Up{_bncyV?>gVQ>-)~_dY7xnk}S!xw4eX8_iqz> z4D9{#z%=wL(d15s&V_zVp3w)o9rJcKmD5ch=w^ywx+}DlCjk{65*bmd+@)%PL=U4i#Tbzo zRX#B^H7ct>O3_d|EK(V9)rn(!lYly1=iSQP&xlZnATSmzL~MqHV`B**(Xf;rkfQ=y zyg(Vw*M`y6z}g#G1|;&dcs8`L&7sq;sY+%cuZ^7oU^DetUKt{Y-IpKP58VyW?W%-& zd16muM8qJ|R=rG@xR4P(otL}TKIp2j_Ly_n9p}LFBypC!&u*Wlt!O@Cs>6wWII)bB z2h=fCA+Q$`bqolNVD1rtj7~i{Qa56dW*;^Uejt&Y7e6HReLA0(6kjXoe|Tb3!Tohwh>bnkr&B=r#Pw>5N8Zc6~%Dmff0m_37Ra9 zp^L-pnuBfvtq)y}6q}Z1S;94b>>hN`ckN^I{s+G8$CRxHeNVq+q%|{@*_dGPG^pIl zCGrTSA(o{Mg4-GCRJK^f6e{2qCj_BX528tcDG`uxDgw#!XB+G2l2n|gnd-P9OE`i_ zD(gyO8ex`MY&Dn<&IGyd80Uwl58%G2|z)-;A?xqQ4 zBOglHHqgz=K^qVorVD6Dc-^u3b4Q78TO)d$_D~BIVhcU=w)|47_dxT7#na- z)IZ@nP^!RYVx<784CR-BxW~2l=uf03=di3p?|1*#EolF#+bQjh12>Kf<8F7`+67v^ z0%Ukhda>OgVTlbm7(yKjF9%#7|_5jtwEA39|sdU;G-MWV9BQg3@@-|A=I7heC& zWBOK7FbHl9VNjMTB$jTr0J>}OkJblA3w%S3iTS=g2PMo~$E)tJ)eY<3@{VF=7HJy> zh!T6KlB-<3Mw#o{JStm4=WnYydN+3U(X_1>Qr`f-z@v$rK5fT27tuu5*q#WUJ01^ z1&n_udGk^4aZ9~>PcGVV0qmXDo1ZtG{jm3eOS`}8>cnzp@9~3QetYuuZ=1jTcEY_c zn$Er7ar?>S=YP%Eb1`An=4n56P5!-0F=-Jo$H`pT(%@WXcrFS)gh2(?vQg0sjyk99 z3mU(}G;pc^%Hz5BU;FI2;=ki^@#U|=wq6a|c)9Y{k3rjR3X6uRN=Ml`-hqSNbM|g= z-ITZ~I|HZfHn+`@77dnX_pw)xFw~FIH;*^;oXF1TYsqg>l@HF}ajop~*A1Wiz5Ii3 z%Wr(q>;6}5cc098)iw4>SMIsb;pNgM0@riJ7u3c;uSAwdZ1%9rc^JBWvX;*N9btV>iHK zpD<^i|Li>}E6%w(Rs##4w*Q{*n03SeuZUmV+}-My<(lg0@;*!D&8yX=Ya9a(87A(t z%(@VN{HM74f6xE9EALsCY3{YaF?TH!-j`ILv@~2&1TA-WjOB*(#x8cy@vo{s>+(JK zt>wTg&Dcw*+hYcdat|G)%vlJSo;ZHFG;OV=dNv6v<3v@m;~G>cYdkWS>C#tNsxWE4 zq91S}X!Zkn`yO-WA^*cKVs^ZCjlL}_-XhIgB+VVmM6ZD}OPI1uj9c)`qZ|8(!}f9` zuc;ER$g@sxLgu^G?68kH2__+kXPWAL>Y9`AvD<3T$_nO46IW{U_Hy%A>ngWP;)Wra z=w@@O?7k3qpsErLiop7jRk&MsUDm^T&SM-pGbN_wD<}oV<~4O9A7Bc;>2|1;mlX2rT1yB@GbrhKoVZYL{X0L!aXlQ~F`K0%Z`&y?OoVyZdCi!FVQD|*b3r1dps4U(tS%j4R( z;f=zWW`0yP=qpHTD#Nqg^Z~>grA9r3BNVg^MAZa-Rovi8#4X*zsuWq%1@I4qx019O ztla75%1P$djm$xN_$AAcO%SJ#ba$q5gMpndPz0AL(yDn;rILg?VRXGXwpEeX4w$wm zwoM)wPq=o8t3d2u2G|SJI}dYmpd;xDFQ(QPY;yuQp~jDHLw!;L(MGd$QEtXarY(X< zooJR+B-XQIngntEfEH0C_E9GGlf}01!>TwzMOb}6x4Zk6v4d)mR|Tuz-7A~!o#76R z?GXX049%HC$JU`M-CY~tF7v>++uiIVFa}c5NR11t27%e1$OFWF%?#%dX-FN-7y%y( zk(t@1NU<}MlJ{~GGbD%D6T#v}irJJokJx*%W9IsQ`J4SpmvjF6TvIBj8Vsw4$R3QC z030b;iSVsOe9sDEON94E>YDHY71jo`~e|U$5x1fv(b^t^^6fXL8MO<`egCEv-u&lV()T>B9b8o9NtDaE{?6Y zG-#$gcn%Rn5pAZSH*KTu!D~(9@!X{nh8v#+hqF&3 zF{TpF3EIfJf}lwZ8?xJFEJGT@lmhrCakPm__jwNj2z{uVDwxPLkZNuM5m#k$16&=4 zK*<)vv!Q~@!Xydz2XRH1P~f0&6U)%$L1f`fbDkh(VEUFHSb5_pa|K+@pkj&*Oqq@) zQ8R=prp)55@ODEpl+enMIglwJN{h@l4ABMx7HDuSsb8+FUaCq!11bIh1CY-p<|vwX zB;UV*$l@q=eMl(_K1NFp@oSW3&E!N)5vR}N=dH92ydrG8WFGvHtMk6JW;<=r1w-3; zckgDpsoapUNs&I+oK&y#EM!^}h47i^BdKYy4CS7XG%7kT$yoV`W56qM#rxKpJEp;3 zD8_shI`K8X@Fc`3pUdGw&C1P0?_`<-kmVuHfwb^aLBL=l%3~{|h#5T;%`D(_Jp4HN zM0aa8s%)_z&CzAC%vrEYv6W8L6VUZmzFLo5s>J!w-Fi$v^s3K^j~x>(k>vUI?f1oH zW859RF;Wm~YKUJ?m;i}7o`4Q2@uEvC(5uj~cmf$}7ZaX3b&NEjNER5za1$_@-U6Q{ zfhrd?8B5$mWyA)lcCplJ6ETlc%g2ap?Y6iv*drr`e40nIIJi?3HjW=T8t;>WfFi0l z*_cF=0b|(Bij)O1F-Zn>5Y<8qL|)lkN<%{OVf+i7DNrWldd^!BxMU+MJd-l+f=C1S zISv}fjmCp+$1ofg0wM%b267#3ad1GXv0B0TR4^I3U8KT6U5q+loznl~fNmFK1QZ)Tofa8=yu>@FgJfYen)PZE2ADPEd!IN8LY72$&tS3CT_i0apGa^=?6JmPiAg9++*Lx z%0t(i&OS`8AA;c$00q8rH40}A&61)?Zk46>*4B=<)=%Qb^;9Oe>aqtgV(ay_<0B?) z4xPBuIb@T%ex9ykf^Xe8RbnkMCDHvWHNBTcZoVF~_N=~jvNo+zz_8U%TOR%0^8pXv zSVt`LZk|NK)6W63~IvcTgXWWY26$dX2yz_D6#~9cR=KYcU);fs0qzFGe1PhnHm)SNgs@7J#WFMc3(9mE`K2rN)Um4G&ki1@!d(nh{HK@4SdTb~k$Wjk0r3d>0+E&E8vd;)#0dE=gRIzF>&o*tPLn zFGnssKmsf64b!>3rbmugD$Q&)6}FkmJLKg93@u|dRl{XD{iJDSg0em-+b_l(x}X34 z4-HSc8lU_Uef(O{rF$(GJ_($@C1S;~keS<=aaGFHDoJh)DmV?T(*&i1q%p-3dmzGJ z1*0Y{c=KE7nU}3MejNNs*Q6i2LY5yQi9Hpi!~NUeq1-a#H-x@(D16a@*g1P3;{!&n z4j#WLc+ytynY*GFpY-m(B5UPEpCv~aWy64*GbI!Rj@hK>J=@l@(mrXux&I!Y=J)Kq zj<|;I_nUh_G5?6~nO}oH`91H4*TGw^(i3+HD|h(xzTww?j{?g1&oJhVQN~up9{Mo; z@@vh;PpzvyRd?>KIsLtC@L_h`!q|v~+_;gF#AULSwYs9o#IMMlKfqc#&YFIN8$DT3 zu*L#_WYHdB%6jL(i;CGdL*DO-e)yf|)(6tTrxi`d)D3$qty>)R^W8&gMFopIha4sT z9qQ1L+RVMe==YW3HzestIEl+SLr%nP{@m3tmS{pHC0mV6X9WrM+T!E-iWQQSwW^|n z%)+(m@*T3cVL*8h4;T0t#Nsc}B?~;7(kr*iSAWVJ7k$%<|ztPQ-!|?LuIYJel1$+YvWwPCU zGZjAJ#O&1fm}{y&%JQGe@fk)!rh4>vPvIJZzE>nrw2cRR%5Ipln%xqc_?7F#_3x3C zzMO;>Oa53zc9TA{Q=HJQNE;|kYyrSW7+NR~L+mlY-5M_s$|YuyPrSIcQjt#!Kd2{h zlz~5K>am*U-Kx)@%C6kPDOqZ(U%)6?60q~Wu{XFG14UUK-0&QJLJxXWxo2E0KdG1% zU8Kn9je0C&?l@37r3pjjDZ|ylc}Q1@yi>)VrD$$t`Xq8flR!!r>4F8iAh9))YmTJr zLOG^r0h+KtN72HhBc9ToG3*i7w)XW=Q?3M8Q>x_@45JGL|s{L>KgCGHfu?`?D=@&U?@d zHm(^C7EiWMG12y5I!oP6QA|CMcbNA^ssf65wrF>?O|A6hYl0==mBho}fLKKAMBo-Z z&)!iV{$4cnfY6u(b%9V1Ox>J7bbIBvoBa6H)7U^PSZBrXtT8;Dmr&t>S^)r9ct#f} zI&_r>=qPMkINv8h(`$RslD~-te=N;hO%x$YdlWhy-&AxFwDg)M+wnq!}reeXeLo}ZDT%H^ghdo zM%Fu+CbP5UN?0UB*otCV3D?_Apg}BBAkwmhI#mClM}{Sb5VgW|4X6l>%Rs@9(vat0 zGLKfXkw}u@;$S18ECqxCvw0Xa@%;s^a_gLv zUIX`vBL)!>V!vJ-|7fhsxIx)$Ll)nsUg%rJwWZ2}DwJtcz&;UdGt{>@ zGIyzlIwV@^5bJRu`#=*L-DP?r?pFJlt0URUl0fIPBs#?CC^d@%Ye1ozB{R^aM#520 z`BpCM?jjl=6;5KDrlkA-PPhLX>Hc5U?J%r&Psn*#hOo4lw=*E&X#{HhpCMDU$%26c z%nsG23abnlk34fULl@2lLkW(ow@eiXdjw-KjHh%v)vJX6gOiB_E_6F)@;H+TAPl8! zF>mkI?e5)+0ydwC=bQyfCze!j%ka1g8xATm%+v6ccD~9XPKDHDCEWW5*T0C5J=T9&0@J!Jrdon6W_VI=S{tLsTzGXfrFIL7qIoQqpNI z8SdFKC3N5dTXm--tB7 zXXn;}4}bQ!_$dD1bwO~ULhM5KL}W*2$9ec zV_&>F{p!d4kDs6V=9hP$y$+i&4ZTreQN(V* z(qotU-TY|q?T?4u{&>QJFK2!J>hkL!&b|2+-kVvso-Kdc)p`BtsKSY zx>_DTC0UhR-xPCbAsTI9{znLo?Mf5`Ci4T5knaOkj}=kwtQjA5?P=19Pos}L3fz4^ zX5Gz_<6pVfoOkOvO;RSHula6^>H%7#dJCK%xjDJdc_8Up7Abq2coL0nfW?AN?@;n=Y@R3+37EhSD*< z9m{;?9n9K(Cu07=@*TIcSDu2WJ!H}b|M6=hChqYb^={CNed@Nwe#2LK)Q#~d><0)Q zt8TOvy;}8iH1*4@eYcp}-_s1*X`g(;YwTg&!0jF*_j}AZlXADqb+1de_zDSZm*gyv z*6uOa-D35+s~UGD_3>YsL)Qk5yqdiK`;Zk6O~Vh!dv0`g95J;XmDL|-RUH$S&mqAB zC7JUC>3t<3agN++ippb*{JAV|4~kD1+$xN(Q`o~9ynvudI{{{$~xwjbJ|V) z;N9i{>*aMb5e-%iUTp5YIAqj*=b-JXrUmAfg{tDI{J4R}{2}730#uhWJZs=^kVfS) z1A)s(XBu<3E+^4PaXfOFUJ+=p3M`#(%|A#&w~I}+8cPc|ZYhb~X==ReH~0{V7%3Zc zDWZCoGi(S?pwnSX!fcw9z;|jbafzI6Dsu1b+=~_Ln6bP$acbpl<$s?B>2_+VuXGn zL~jsl;gA9C5QBFM?7>_t5Y!>=)?8NmhKNO<`wx9!$lFMu`miuGqhZz$jkGMUBmyhG zJpxTt@N(1aaWL?^d1uL-s1x!gvKaizSf+3$T78XnF<_h6A6E())Q3N6*Zqkh4`>}X zN0qbfp6`$sn&=LkEm8}q$R`kkhBUVSB&KJ%z}d?lx0~naOO(Ax*l=R+qYv_*zK z7XwGWHW%*Wgb(BR)uRoR2yAXr1w$!=Qi4y6Beuh*L9y&0SA;?8usUQXnIN$suE>oh z>Nt)^5i@JH-{hz4%++q86%2Te1U@BQ zL^0P9g*|;Yv&EKJM55}6XTG~65K3N|+)P61L z?~#g_kqkwGE^ZUM?Xal-enbCte#5qtz!Ll5E2jJ{_N2wUfc{8k5e{|-kpA{o$kl{l zBV54erF4*F0Fq(pLq~l>M!XD+KjFwfYMu3^x$_CH=SQ~TPf6M;5Do?4ZNNMXK(`Iu z5OXY97u?b=s4_n%v1ds94paUCeZp#D=>=gXfKlI)!qEhXxH6tBkZ41Bx_H19v5`bG zJKQz?ST+*9uOeuwCio$Vxh)xX+GFBNN%dyasmH?c@AHy|IGV;0pCnW2DyD0RJar)z z)V2HaaI+A`N)M5{7ng4*fHdNF@0sCS&>vv|KHI{S2VxdZ=)MN?ESk@JZq5N-N+;g^ z2!4sOL}}V6Yx8<~^cb#xUtvJAGZBOfM{@Z^WiDQPU%>n%PIHB9|w}EZ?Q8NP2K0wD-mDq z_QvBh^)1RMPQyc{bGp}Ym~u0y1Sq8~DNhWQb?v@!5a2=AfeNNj@NiEtxZt#drjF3) zf7s*y7~Q`;!NJ0r!DM(R(4DD7;z6YVV2_8~hLonUuvI}hUfx^oLXRB# zj%CQ2%)`%%ul^qM-h;x8=kzHBXtTl{q~1XOYbKfhNw@!@!~cid>Bi>ZwL|>~>Zec- z=N~JVw^#Yk^gng4{u}*=#UpHfM54xvmLt+~r6wZLbA3WYIt#+xg+nH%bk5~Q7xFAo zdhb}JE5>j5^8DS`6A$0azy4YCr{A@G^j-gZ-?ZKTcEYz^Rp;*)9llz5=JwG0Pph^Z zK`Az&n?wPHfFUzOYQ(ASrpl?leHH|@FLE?b@@<>t*MD~Ou*Epy$1D#RG7kou{B=i5 z4qhxfbz{JTXY;=6n)B@E`QLSo`Khbu@$;(pzYo9odHe@2(so})=Ng;q?2BKkZapJO6(lTY#Gxx-vt%w=1>2__<%YIELr$fuZ7d_XN{=^|fFyN6qp9y` zSKo;qy~YCe5=!@b}C?cB>> zPThZU{LaH;AAWN4)puteJ$e6&*Vn&#bNurcC%*jV*y9)HUj2Of=dPKz?pZ5(sj{m9 zoWw13JpWtKwMPYK?g0Nd?2}jZ7w-1E`Dn=9Cj+j3+;R26=ntQa`QVFVZ+_YE=y}72 z1NqDLOndm_+$VpVaPQmrMcW2_|9i)Gzjk~DGj@tHFx!$^LvzGprj05YSwtS3tN5x( zD8o7Y$PzcXEIe!&yET02`P6mSJv%p=hp#f#!M)Hb$RFsKuuk4GRg%ktGy-+nA`08ywIuU*b2N5x&(CyGt3l zQ=PfSZ}mqWV!!K3__eF-_pTnVyL@XV;)98;50wW1KbXOEC3mCw%A~;*1`vRB zzN>`q-@=Zb#OkqIGW?-!^oRCwcLHX8sO-B{&||iudYZOnj&a~(bL&#iws(y!>(o6L zSX$mOR?b667W)O<^g?b#CCjr~=wHnaNG8r8VL*o5RY3(FWfAJ&I;Lk7F}Y+BeRSCy zNZe-P(U;|mL=>GP^DlRgZIVR~ z5J&ZvB=llOm7^n-9h#+1Dy2JPIp!#ogW%(y$X)0RWkuH$QxV(VKtc!GbFqn*OkCB( zn5QY(AgkJ7D_bM2-(u@H%*$D#Nu4DMtz(2Hsxsj=FA|5>N+avU;Wfgr3SoFTKeSXD zQvuzsiY!FyBGVoVk3D`IT7>vMIYbVRH-el27?vV@3a>lLwP6v*yBvPkNcb{!;V5Pj z>&;TL9rCVA@;6dd1i4O>9Dm!{=gf9 zoGFac2(F@-l6d6} z)?!?YUoJlTFt(zL(dJ`t6Klj8PrfeN9n?pj2&Q@_0kj0}W{Cto7A26F4e(|gf`&3o z;e7Z{TxG;sEsY*Y0{ZAmj#$5E?Y4W3CWCC;_dm_w}m3zoiLStdPmP5Z!HvxRt$WSNI@4ZVOyCrQ2O zreI3%i5%{RAhtG;YPpqqiq#IWDgdS_L@L}3^@^awj-C&)-h1rRzMj*2s_)%ryn&a^ zgLm34KeV1YYaF^)6Tiw3IEJMH1l|EUG*e(CVqdK$m5YRe9*vxVBL60N(FCNwY04PF zj}XfhZtg~+>Z{0n&zx|E<=csFSq@KTZy4gyf2pu?G4XBHh7R`%m}n21uZ&ql{3>a9 zg{Y#rMzkW9v#cfVD8f*oT8j#$Qe1R87n5WL3!)vm6q;B{wNoiPi3;_pAsjZiVLDJJ zA$M6kez$&z`TyifYN2pu_*5hEUh)vjVfme!}lY?UqqdStS|M1DYb<0rMRp@qx zOatleCIE9r2tzw%ActuL$x5Ld*Me>bDG?||jNH-XN;zjRnMYWaI*_7;&mYuiN{9as z2a>Hg{zbP#&v%>QaVB&!Wm$nI1+}d_z8f|fFb!rhDBX?|n2keP3j z09tnIcAWW#xa}6bxF!@kMV0wOx6`DUu_OOZ6-F3Qh-RkPp>BLUVEha=Fq7SOc!Ut+ zCa!jj-%)h_hmvc5joS8M-s)q*K(y#mq{wbX{a=;t|2l8~L$~8E>aBGDv*^Y-Z*}`W zr91V4`ClJ@zWRTI)Bl*aV<9QhAfC^Ynem6r^9{w$Bb{#mTP&$_TGWWC!pJOLK&mYy z-BLNVa@Vb1pMKr%&0l&yd6Bp8th#lwxz|jOEeA)w_+iDjKW=&XP3@AkXrmykK%-YJ z@yU^=x2k%K3>mXNZth;c(W_lU-*NPv?&_Em)w#^xJYL;nP}ZzX_LgzV+M!5p)@|F@ z|H#=9mjN5OH~IN@V_y9*^pm^p8lM1{+_b9jj%kLI_58Y_5Hv@XOzhW%E)v_L7lCeWZY4otH=qW4x zI%aTln#0E}(xp}CBD0bvuZ)_vF?P%0vP<`S-}-#&XFpDP_&r*Ce&`0?`he?R+cSL?g`+zP9G zrYxTD=*`q;zcpO`xX-<>IzD=yy!Jr$=41Wv&x;THod2-*xx2&ed@=gLSIeG#JLT@@ z1?%@`uRBt?{|2@j($*eHUwydqhpwSNc2!;Z80HGkz*<)48M zP)G%&-q4o93ryx@^x-#*CrPb}ib;Xf_vl*Y(_@-F+7>u_&s3)Mfpc3>GK8Ps&X25> zXSH!_Iu+?vUOoC*^O{liCyXpnrZ$L^>WxM1mXv;sw0?=(ujbwUCiT)&{|)D(HePAF z{nPkwy9R#oQ_S`Y;ae`amL3gVcHBO0L(YZ^c^6-X%-?OU7$EmUo=BHIYUaW>T}_XE z^q#sueB;&H556Dx;4iwy@z(MY9*vXLjT1ArU+TE^b=Jmn9wS%zjNK4EW4CLa)|U z^Q5HpUCW3gK{IdK$6X3t@Ts)VHbtM^`u5}Cv7<#-o6xSxU#*VltqM#sh2}A>!Qzl8 znmvSQQz93iPkiuO`d@yJT7O5f{C$rDzxa*18ajNFvu>>*wvCfKm<3aAaGX59rzo!- z)l0-@G%<9ro3}Yj-*wZYSR`NSU1F$QY3RAaBc#ySawK}nC$#uwVZ*M+^*!!YyM`Oq zj}g{O5Ks;5q;b^Yq!(RbU0r@Z{WZ6%tMqSwPZ+ucpFS*WxGJ)Y?w5^uJI@#LtPnLr z{GcqFGo9mGqKIghrOYw5p4NAMI{uE PL;-Q2wCx|%uW=GiDRaP(bkYu#dK zT%&22Z)#lNY+7k6pD#-8;HFpUvpe*$13Z!kD5LXuZxPhbW1NK?k&ybw?nx2~@r`#gGeQ;N?%oGJR zxg`!a6wH;RjpfAmC&A_JVI=@c8`5f|Avtcyy!hvWfTwoEa~%nSs5)ihK&ek}nE$$32{hgrGPxG}@I&D)~qJPaIkUYI(^EuzLfItA8NMR+rkp`5@HZcr&d zv<&lh;zOlVW%1SWh%CZU(=9QG#9~*1`5c#IhwC68b4; zKQK@GSX941aWjl(*UQKe>OrkFnB(F-1KcM zRU?2u*aaX07_0mtW8A#}{46J`Ag;=jCb79060{j(BpH)Q{21a}#Yh_=s6U|Ud6Hn- zPbkhdb~M~1sDLywB_@{C%#fO?1|ON3u8|f_dtObGpR$LORY!`|lzdoA?8d zN(Wr@tXj{gzY;d}3s&5C^oY6hJkYT0E)S%Nkl0iu5LOUSUrH%vkvwzSQf|>bR?`{h z|P=ka^N4?fiIxXer(OWb1&;uy6(hNt!BV^k~f66sF#?l-=;3Sp1wy#ZZH%ay#=d7wY44hvm#dqm3HjbaM{nZUOzbVhGDzb$ zg2>W=bN4P;p(&Z7iR&b~C?W}AY4Q+t;dx|ptVx7rc4w*~_<0--9yz5FQSQSQ^OdQ@ zH&NR-OjkQo=;{gg72!dwQciDlKXr#O-Ec{$8pM#H*b(laM7sp?23uN26y}1tN)>N) zi}ttkc6`M@sS-L0G$e;;hjj0@U7_iT67AFhk|C5lbs1{pj+YPyo)lZMoBiGmnSscM zXa}aRd&R*Pyd}Eh>s!VC58d9a)uFd3?Ts;ecQGseNo^=ls+)xqEI#^MF+!&x@PFub zYV-}!4wJt-3)g}j2s3kRM!YS1>K>H?3;8eM)<0`_HWr33%;-WvrDG|40H1+^1=0~$ zp{@mG{`SD>?w|XXLjT8^l*Ff$_dn;`{~T8TF|u}N=>;k$Pv?Wd2<0^biw2=$cQ#f8 zlzSfA1-JulZvGX$!pE!$T5+-B`rivL{SvY9X3jf%F`~x}ck6a69R82$_J53ms>FKfo>P^9Rgb@QCQ#&%No>~(B3JF%h!cv z`(_W66?X)!e6RkC7fqi&3!Jw`RN59hcwz31>$6^bJ?+q`fW$mPlx$0~C3O%lq%S|R zDxlX?uL1Ldr))}Gejs7d?wIKtHMJuQE#p&XZ%UiBQCEvUy&?Vsr$>!mkT7wnI@V#S%1Y}QjtKM-K%?@?`nl37g^_taLuMNq#-vW$ z;6G>z05xilAXm+h!bMw)cbzUjb+gBjE6pcv#x2@x8Zvdrz6+x+-s^Yr)|hj5J2xMB z|HZHOUi@_a@rxT@y}tA2=WAd81ylEjuYSUr*IxZ}_1CUr&wmOZH7#fHhBLo)9saRv z)@R>$-2N2hTR@Uph+na`WSFI9ls>(c<;s^N^;D*}09htZZX_8^;-oTN zRvl8VL>B@ypE#oc*kEDH9>nHE2y7q0`&2LrJ zAo#U;v`mSZxuszD<$hPb2%7P(ta+Mqri>rM4?CwEa?L*zy!e9ul*6W>@A|E}<~s2# z@^M%4U%EUetstK9{yQ&GrKqc4SsS*K=-$3yrSx}}bVFO8+C+)co0X)Jpf*$rL)Xj@ROKE`x=<$>Wz1O7Nn5jAR5F>DJK9vS$iI1=t!frKvsDz| z8%bE6BUc!lN%xE9xl-i51+X-`8PXKN)ii4)!x2DpCVG`GaP~YT3tptl+AK*}3EPjh zVUIX#fwF3yy>2I|-J@+k9@=>d+EopBU{J9oXR@Q$Zdda`TlE%0kEQCuX^PBY#Jd=< z4mpsFwoHC-G1C&G^iC#*D0WP}p>Ui!X1Gu9-NNvpM4e`>TV<|Yt|(kWB0Ahc29knx z9<2u*wOhGq(>NJ}DQdk}q9Lk96;rE-MjcX(Dxm>kQbA-nKdM5L-izlCxSSTO71&zP z{RCmauqV6OgJ`;7P*Zr;2u#0)_5gv+kLL(vSpvawXDLCcO+hyk(MG^|!b%?OLO6yPzCFrK=ZW4Tu{H<+H-=URHONs#6Gc2X zpkA9f-rcKJ?$==%e%Uzao==~PbX%p&62U~bCdb4Sm?eRw0{;${IY;QIQTmP~=3@7h z?T&FDtFtc&9FyJSr-v+ls;fWb7Ccs-zgnNW&ziT7X_zlH%vLzZ5kouC5AjN!L3loz z+#!l&Y|L4?VujS?@8+!37QQ3RoJD*G35=Qgq-J5ke7|8=q%F$`TTf&%tas4c&Jvk1 zF?Q!@-PlmAMi{mw8YzVwp~J&t5?YdQSK0U{3;1hTm%R{PW-Ikvt=U~D7b*Sq{;==` zv+c!_#EJU!dGh!PK%ru(PK)eM&)OtSeUBup;IaiH;l78Jt_!u0m6ys54KmYH|dIN-Tt3|evb>vQ%xS`H9- z0`iqKu8sp$Nyn$QFR+<(^JHnl32DJye&v4Bu-)U`CxJU&65okRD;iIxNSh8A8~1Vp zbGsot7PM#)v@7aR6X1=$V9GRQun>ci#@8~5Cn4}Nz{CuI2xh$g-fd?^Q?3P^ydQt{ zM##xKzKiw{E8r4RcNT!&B6vk03>YG_-KUIgh}B0_(!ER2zDEnqCTxS!5>MPTM4hc{ zJfdzrLra;XpSwT!!27!LafA`1_i8ss&lCi;3xaxy13CmzqtOJ-PoJzwo`WeO!hh8G6pj&0$YJ~z>#(G#*&RPs{;;$rx)Bp zz7!*O_+(H`g}oR!WU#!V_K5@{yap&14OivP(=bJPY}{Zy$U??hpakh1ElzKp?QiGp z@Q44;x}9>K{Ht!q5`#i(vf*{<*6rOM6|_g;x^LYzlx}}JLjOazGq^B~vw(kuX$osg zmW0U`gNzR4iva4Mwfdh=b12=;#uF%Zr0_Jp6xEY*#n7lpI}|(Rguzgqs#2ns50LIy zR>1mBscGt4f9Ugn4Br1^to;wS35{pv%YC>?F9iM2as^KeuEwKw3b642&%?BC2{%+ zqC)qdUKd+hFm+|#%J(V{T`b#ky5_)z(%q-R7H^Cmx3FT**~TlMWNbO6s~^1P#^W2` zcP%-2>DpJXZ-4jG$G>!a^!nFNo__!6>tF7E_dA^Gr(bssc=u5BfU$c&eSPY;uG!Cj zPJ8dT-_#Xx3$|D8ywq^uX6Bj${m*~Y_w2p8!`GWnzMuBqX_$+O4_xYd^-<4LciXQ& z&DnA`Va36eJKuY+zcBFgu8Qqfi3@#*ktjH`g=ES@vPA(|!r**}cHjp!QRoZ>z1dFl zO7cqY<*Fa&*=M>mXMnh10CJ}A1#zN#NYG~GOh+#aCfM4zYKU{s-V-cEtq7L7`@#{C zpiZdJCRYoiiVWF}>g++**4g~#si~VUn})6Q9J)qOJvn09p72%sBx4qNE!!Wu?Ftg0 z13vAtOy41FU%+de$_g%0EBxq4u}3A0dHiC)v%iLJzZo{~qHE!~#@j#D9)HZr?k~^l zh?%%Cd(*kBEvFk#J@6j4THiL$XT)l+VQYOyz8f%pC&I1jxCWtjCh<-cL=;;iE8O&n ziKAAB3^}5#TCQteqw2F-)VPG-xWX~|i1+w2enSp;jX!CfbJ>5zhat1CYMVBKf9Uhh zZLfL9z~~?}ZP>VtUYj2C8#j}{Hfh=rbHzsQ-urxpolzUGq#%9}D#E!wbzXys{n&D?81CEiz$;6|QD3jrD$48jOx0Ri?DB{R3g$Q|e0 z&s{Sg>HDAd9(c-7yWX>9bwK|mKD}pa>XtiN-ZeF>l=qk|+?#$pP8#abgzG!Y6t5+O2Kf zPok!1Yu59J-gJzAUsJw77*Zzp&ER|H=nH3r55E#R_`Fxk9!K+LzrGusb#vVPtF*Db zmBDq4h;m7C13xgAZjK|GNM2UEC~q7;Zn$5cb9~oOVl2^BY+X zkbQ#*AJv~?kqvtU;@sJeKHrA4eXq@2AyJwnlutf{m=c(_44N?+qYRcIftdX{9w98N zFMRB1dXjp_$ox?Sl_qw^f{%?gi@+;cU=4RiBuy6vyr->hg|T3UBDya+nBcvadISp1 zfh?In#~ufTk6bF<8qD>IrLgW_{mdPegjR842t9v-00b`K6mL!LX#4ci6+y4AA&?G%pScFLXJa_*=C>P*Hwpr>H%X_RhWUkWo+!ea~LG0v*e$7WoNUl&6>fLgJS-&NC z-Yst8BqFVFlV;Op!8*Gi%N)g5gOB&N;*&;H70SX-boD<->+di#FG`B8n-{(Eop+mv zG6>x%6Itn0eJ4_xG=auJBnd>_Pn~nf)$)iPwt^`8X_mb2xcCdd$2uY$KrEAq&s<`k zNf=JzCdUGS>#POLAJx6k#smu}7-sZFca4I>BGX!e|Pbtw5hS800C3LeYG|!q26T4Zd#Xdp= zzigg;*ads>aYpzOl0DD5aHnA4NWu)HJ94Bk9g^4?Zb6+SVvt+RcxK!x5?V)oJNt3H8W{RKnzcdcD#mLS^|h2c8fC9CI1;n1`6I29_Ihr(px?M#zk8c=Ju1WE z;p}3wwH&59hec&AF_Fen2ud61bvAtLA{}zabU=83Isv5+dK(2~O50nX48#wlJ9Im~ z;xsj-=Tp)hQ+LeUalF;-U=XV+^z-2{Uo^O-dVnrHnY6U^*cKW~Q_HI55rQ7K&>H<{Y z6q260*jwFBJ-u&*@gMs3pM!VkcDBSp6*e&d>V#ltvuQ{p;1Mx}@cck56S~Y57d~a3 z_mn+_H@k8#{t~zUY1GQ|Nn;jarNeWlRtS`1|NoS3|MTsDa!G>`2i~54-v9rQ_y4Sa z{o@h+4=4T`X!Sqe1!Q%g+udYTE(336A{gFeMuvw!L*kM-V*K-JWWjMj@=7I^#Hzl& z?W6rl>LsN;^A2C>^VRQd&wd;E`FEXnKXMEiOc7SmVId0QhBS(E$FehrB8n)Esj?#S zme%4waCXtUgP~KGx<<|}TC%pykCpE@nZIst?T!;s6BedTS?bp~EP2ROzp8e7 zkG}dIeG@0G@ERf*{kI~p*tdldnqDAsd3t1E4Nf!|F{RTCsR{>TUtz?WjJ^hq zJX$D=;`ru~&=QF?ld!y@I#%8Oa?kf&31j9E&q$=wf=YV_)(^F`j5Sw}WTrJ?9bxM^ zltgA~(`ps@&B5aq;$HPVdSlGBNBJ8Lgv?pvGkj*kirs@h`C-W8pQ9GNSGW1-x!<|~ zZ@l~c&v)MZ^y#l%pS}6*qc6Vw^c6LG-+ce^%Fn*p@#goqvD3`8t;5dW==}U;)wKt) zJB}A`Jymz$TIu#vNlSM$9lbu}%EuG#J)i#QbT|qm}l9Jx=6Dm}pbaMp59<2z;l?Uf2LUUAM*>r0t%@jZ! z(fZJQSyBxrqe&QBZ7LtAsv0PWEoJ#-af9;Mu1uyiLEuP6r=&5r)vwP4Lw++#VOW6~ z;;=kZa+NS7haH%qOz7d&I5Ty|9(Ch%cx>3|ZSuT<%CZrj?elEoS4XZsnX>PL@NL(U z_kY;?#oOJfJ?K~UyyyN%At8%w+bnpZ)#pS2#ph6^LdDht*-`d?CvyDlDZmR+%%WUXWsF2+=^ zwsCgYh-IeM4MBajA$KG#AFHmOWb3^oxX*e?d8f7iMtkLKczT?`6uvthEuWl_G@&Dv z>&;?#Qt;?fhULjT@uJXVVN@UDp2hG?*M`ky`X&-7N{FVp#$JO~v5z~fo_sfL-IucL z5xnqBZDg@JvPNG1f`9ON_u$>C`o+?!89{yK+ncA8uySo$t17mh7Lg}OtCGa@z-%T= zc+4_Ldd_7fk5yM3=h%mkpz6$NcTA0kbrstqMxQq|zGSaEWlnyZG#6kLq2VOi6Fi+S`sop3>QiUR+OcGg$ zUk8}g;uxs(7Fl#7&r`~B@~yIBaSo-=xKs7h)Mv)EI;){5yHTh zTq+hqHM*kv6^o7xjwy#52$`D63JMd3#L^J00sBrF#I!{Sy{SNMvMu4*S;KY%*ODYQ zM_`Q*pbZ6{ooLc9zd%z)qd!q>ixb;pK$vIBLwL4CmL-~I3I+U->xkmoqwyhCycHBB z@bwpX`Vze8tMq6Wg@K7CAeP?1F`H>-3kgJfDU%}wR?Z@Dj}nakz}#_;NK0sn46Z3t z=*lPZP`1`jf^vkeTDmS3W5_IRHnHW%%Wj)HKCupepO&+eUVqj(;yzQ}he->iY2(=X zauVDJ@EN8xjo}%{N!zWeIIYMS59%E{1qhg>icq$iGXIG>UY8Gu6>{+&bhMDP4+Ziafrzt@^OOVij?=7z&q?h(<&8dc%PImfXdx z>S>1Q4@@;XsW1$aD@Ld(w2s9051(_M#Ez!fTY1KOs@zi~0a9M94+PU5It`9DFJcil z_pYqRC%X1`c}a)#BW|SK{-)T+2de^;9cy0QSohs*XiE|m@Iv5;1wpTQ9lZeg-FkJ5gqnzcFzQ4rr4)38?6b3btv6M>g_N74NN(U+5;{(MgZ!F?#w5gvw2Gnme1 zUcscSwU<-2oU^St>e#V6^vXfwjy23)W3r}hqqZ>M98(c#Cer3oolS1A1DA(>DCl!M zxwsk&6Y&_K4wgGcR`HmjqUrVz>VH=3zv}kxxl}6XLS@wd(Cvt_ zck68yz6_!rE;?pH0_dXOb27g>;qd37+xZ}(L+WyrJb;qWZ3>Gp2R{WmxMH|+Vpr@^}gFs17G2By#y zz)@oZM<>Rn)vN^%5HS!T=+5m;72LzUy0~90iHZK zl~^HANuEFJ?LS|pbp3xi{!M28F3A7%z0XBEu=XgT!a4}Y9}AG*ZvVgkT)&@|x>f&0 zZ^*Y(bEz^dbUR;akZK*&V3Z?NqKRTiTpEA6Bd;gYnAH9hT^?Lm+jG?Hkfx!&$qVLu z`aRk|eSJq!fib!aSt)gJt|GD*H*t`ltdmzVPLkO#vU-%SeUZCkZr+kT#TySLE!j}I zg%awetM=t@I#hG$Lhn;o%C{YL4V_#(Z>_CoKO)1Zj*c4?p~~tJGi_1!rh`?x&P29M zhL=tRHkKhujlH&zzy0an_kaEP z`+t1!Es*?#VJ{l1r8xc%X-pSxz=`LurD#k6Jn%`^9VR=gB* z?)}OS|JMGuu9}D6@hb1ZS`!AvVZs!$kL%C;x-Ft(kq#lw(ixmb?5!F_Ij{K zHv6ErW3jbix~umrRmms>tH7_|hoqqSg{a)bomq4GPRqkz0utN7?dO+HGq$e}9Jtdy z?4YsVc5U-U_oSEH)6P4Wyus`|9lrV@-51qdpt|uiM;cD!Z%$B4}Wp4KN~jvWYDr}p$~otn{XAQaF*e(6x`}6 zeEU5_9Z1ZOs5AE@VdY^nH)uAl$4gbx{?add?t}6iEXL;kTiJvpomC=Q`nwt zMrbOrM#63t*!&!qPZ8hB_0Qw_#}QpSFKB=ws96#=&OiD___Q0&;aep`E{D&&DM{)j zh>16*R+v*;;T=^i|#1%4?4{*SV?^2jO~Y%ZP&ETd!^CCkV#}Zz={}84W0$i?cB&p^x?8XvjvekqOdHX zH&Y&7Adc$?c)K91isJ@yCmXw3+QbG`LW3lwQj=DNkO_s();K|HryIQif&Kuk7pO_- zcA_)W^SsJ8JxW-UqXo)q81XVGt1x%e49g!G}<@tI7 zzAZ6_VF^zHQ-~%$Kot#c9x&io0&vW+lHd%Yi2$rd6q<)v9kIkp!m==)k3})j#$e4 zv``W=l}K$gwU&YTP{3pWgp{Lr)J)V+&R~oPlmff}oA|}6G&8;l>U)$(()sE%hAva& zF2xN)>nky*%iNVLb0*Q|5=8_tB`Wjp1Xe#Vw%_AbomEZvz&z*{VH7K+kqk>J+u96B zKF1qHj7~{B=vBuRbsI=XDqAAQtR>H$q6{zN+A|5-JUL1}rhy8l$O`APo#mp~I$A^< zvGhQ?Nh0wf@g)jxA}A--7jmrCd|N%y^&skUVyrbxJr^|YqzLgsc@RohF(^$lrW>+n z(^BUti?;>@789=6lF-YVzgdyJTV1tR>@7u;FRx%BBWV@}Qi!)noi&e#T7jB%f~K8e zTkptf4-=*bsdXd;ObVSeG@sbZvnQT5_gu`jl(M<*01hxRRx0$uGf;gr0Su<4L6~up zo&A=q_<^|ka!~zi(dW7%!C`=aWGVC!WyD*?Lp~UhWFFLwf+opw6s|Xv9N>hnP&>8- zXeKzu9!hxdqwmTSVjrPUEtUnJ(K==!%fUktl{LlB1E337kUJ-M;U!W2BForK%%=GuvGB{M3ul~^Zod_O;Uk=c#ez8GGk8u~P#H6M zRLJ}z?8p*faJ)ILh!71cr8;@-d0p>~iiRV~rptm}`$*z6XmvtUqcMtzQz=ai916|A z3#ro;bUK>WNOBg-5;uj^&9v8SqxLt|USZ56e#9V&t%uM%f;a~glr$mxDoc#eo6>5ymti z`e0Nn7MEi5yjt{B0`*YSJozm^V zFtWJ{Y;e%%QZQR6DGqsw#Sul+;ZR|Cz69Jqik+x;>OvBz@?XMbaJVc?0{kz!orU|K za?bf2sR_7LN+shOAZy^LKR=Lcr?Y=u9pFED-loJx$OXSO1mJ%Ku>6a@{aqyE0xD>^ za#TM-SfZ~MwlLN*RIm!a^Z*dy*+gYdo3`FKZb#mwpYvb&XZqP6;`TmFUw6?|+=MT{ z=E47ex}9p3>h{|q-Tx5nzbo_SKgI7K{@aEBBF#?S6!2u=x6>3`L2Nq(rV4Z9kg0czyPZ z8**P*B1tQQN2j;AOp$TwluTZ1swg6jC_!hn@^z8Oa0Ub=AT1E!%A^M-L%J*7#T*-0 zXSt@33c#*aiH+DIXR4zWK^feze382fZamL{7X=SqN_uYIzu?=yW*>W5TF_fj)B>1H z%Ah&0+`UT=R9<;p`1gxKcsA zRu%V_X4GnPdYSWk3*na&Ddr}7Tm8~jmM z_Nn&*T3#^rTbMoPM8Wpk5nFEzxcaqa%tm$VT>tRZ+VZhr%j*hY1Q<=YnUx6use=cJZa0 z!;b}33oZRNNe6Fr4&NcoTg|K87diEuZP6)3(=zp-{fa(2v<(~84O_e;FZn0DDQ`QW zA9m5+c|B?ENA7tiN$yPbpv!efzNe?OOS3mJ^3TgEcG#gxA@(S9=aF?#L zr%a9A`-oJnR(2fFS1z}wzmPEDf_}(;Zt_rxzX$l?_;$U~PWh-t&|1=nD#-vH5*k5} z%GP8DNE0M@3V72=P>s-6qVX0|K>O^8Byu1lwy!j~zdCJ{G?pq@;V1P)Vnm%dg6kO~ zNm`&T-ENxpcH)w!;p6XE+t0_na8uH{p5HXfG-RQreS@v z7HcG|&X_X-Mae*F!}#KEL3EV2d&ya`C`hZ2PCZz&z&ss#E8T4IPNUOS5(Qhy6iSlQUgD^QByR?l+=hJ zN^@c@21t3KaIGV0f!P?kWcy2jmm$E!1!icn7RU;YN_$-6mA)#=8c6hU+@MIl6~;9h zlyXJ!?UKZy5^7+!S(4CG5LGCTEtE#)g0h1BJ5g+3et09-SHblZaf7qD?p$PkSRuLW z*lcN1K5Dyh1gNcopl}3Bur)>jSag1_#Y?n-G#z~P9FT~JIhY8jzlb7?I8+&~!5&Ea52B69t9ytkFy)SR5G`b*EXq zG=qU36o=TDz!A-}M?ktG`48QWqTT>|UPRp)d&y=Zwh@JjVX+gP388CLvQoJtS1Hqw zFJT+hh~x5{#z|LYQ=jQ;HVSl^N&~n$X>@Fl3c>dP3q4I1T*9_w(aa?RV+_NdqRF|Z z$+{(~IVWv9>)G(NY1{?E2$Px6W($$uAc<%Tu!3Y5>B!q)ti7nHUyRU^QDO@8Cm}}x zgbu@50!BSYF2&{xD{UAF85xo~j!K|~4v46l&x|S~Y!5emoFsk;%l!h&^@1$)MX7f& z%RWyWy3&$$(0R2h;^;q3z2b|{oKhZ_-(kr#;gW3ME zjNDyJb0H>7)jhXI3_ohEUg&Gyrp%sBVqSF4y2j{xDs1CF1T~A{8Y+OJfzSfu1Qn$W zArT@xfHqIH5u|%?HjFB@R7L`j1V-Z$Ke%L_u=s|wZ7UE8*fd)>}Ub>(+DmLy3Ql zST~3v6Y$kiVsI&vrV*WztJF%RK}f?Aoe}pTM;0PMEQGRQW$KtQ()1A|Z-_g0z9755 zqiqGkInu1Dp=)o+m!3&GaD_^kzzO9ExoptmbBz=lkbP;lmJQ(nE+mLiCcWV+m1wNWk#qFPqLpJyU%qQT|?hi)P)D^XVy zKKgnj@aNfqm2!E4!rICWUnq;3#I@Cnoh^Y`^PM9OyLO&apFI?IV2gO)LeudLzTL;n ztuv_y6&H$8#bWbWT*Ruu9aK`Bd8*!>gR&$9T_D{FGA%rq=PD}bj(n^r5W4;O@n_>5 z8vZ#15}OfxwUMVX;M*yE4pt0UhLF3|1vwk^ND2Z^>2{dy6i)`ip4knP!3G9j1iu~f z`**qidte5sbu1+y)Nwr5?ax2_RkuUBck6Z*N5?Qv{PapHvlJi{{H!eKZ|x;j};9IKbnLqQe#2{yAsr}08b8&8^%8Vb6sLy z^t27W`Dcr7b!ETwbMi~y#q54RZS^@(d;#?kq&5R^ek?}*m$}scXtv`@{MUaze!o@E z&x2Fr?fKU zPEB}v=E%{)j7(ZkxIh)jV2b(bAk=mcJl8m0O>l)KvISKs{M>QovZ?m6ah8ga>e}H6 z3$|peJ&15f`KJA)Yj!p5IM(mrh4L+j)0b|`TeZ7p%dvzxD=OCQ$)C60-ETrr+nBg% z%P|M)nz4%GEn$ZgG95Y8XgOYSlwrcaM2RI4lrxl}vu!97iO0McIyKO_EHlT59nn(E zW(KATy*&jja}8s+)02kk^QQ?jrqkVREN6w(U&08ChouugX6^WgT?x}SdPctJ8N0+h zY_5CC@~rho`n~dA+WI50LthN(Kf7S*;pW3P9HW*niUuT3SQ9g3k)m;2_@H@dV^+k? z+LE^aa^6cfGu9oSa_a7lZ@NDEq3gq^-+%V?Pxrt2_T6uOxb@_#cb|T9>B%=2KL7so zlkZ>p<{#VcK53Y{E}?Z?-Q*R$&b>0~_WQ%G+?n|L`x7qQ+Vkm8+wOh3_KkOUzw>0@ z(T66pKkv2uWKKCx%B?y#UDSN|K78{=ie^Bc&Eq1Zv4# zyg1TBQt4soy5c%+O0_7Z#+=uzN~n}Y7b_FXh4Cet{6=-%EOF6LK}NH!VWPR=1x49J z%(_Za8l^o(MXxyJS$@XWxhHDIURV7TX+#+;eOX#PayTR;hn3z`b@=AU&$|-NKFxal z@AWso9Qp2##{P4qm1BZOt%#nxCwbYiy!B@rcHXcLUcxFGWUT9yXO2RRrXZ$Tl3Zf2 z2UEilx&5+^ej2&w9@kV{u2aC40En2+jrZ0Z}Bv3ceU>~4mfBSb=)%d zykqUFj%BZSXJ1w|ZFCOZW$M4$(XmCf_221pwj?FUS}V= z-PwMSUcEke!>y>}k93PJ2M)e0$XgY*_@-ysRejQ!kko0y9;;MCUbYN4rR{aiJMu5) z;a|GueUf(k`=Zyo6wBW=x2}@ZZE*BE5qRh$+v(Sl8dde2%t@Q!>AOLo%jZ}3%Q*WI z@ngN2j+Ci5e;;qu%f9~GBvHK;VU2Wijj3q~z2`7tWQHX(#~PZ1DiF3Oop|H;A$i91 zdQM6sNh*Ly76m6^6~^==pmbj4i4`GO?yQyP)e=(s zMSed=+h$FVHG##`IX%{C%U2LXF(Oz@M>NW4FgGCxvGY7}Qg@=vo51%Z&`n5Xgma?m zlsz^mqh3OBxiD!cGrl9h+h6YKU}<{D+%3X{-O9w7vbZL&TsSd3c(GN;4_Nwah^QMR zNuQ)DUZZJP9@1+k-(RkX%n_uw5k2}VlSDxlb4Iq-QO?z78v1M(HXY~Gt_d(D$>L_p zYPLv+Y*r7sYOFXxl2!#~Zr6CG2gHt#fA#CQtDk|^uHs{>!o{+BIi5sw?pS%&*r4X= z#>#o>@(xYTc!c6WWD=&dXbMLtkro54&=_t?>EJ{p5=S=87%K>LN;7KcwX4;2J8khJ zNK9Wr`e;T(IqY$Os@T!}F=0w_N9hs@l&NJ5xbCqP64VwuvRLjMMsOuBw6{34T9Z)1 zj!7V4$;`M$VN5H?x5SevPpBaJa86(pk_nKM0J#vQgNFo**$ZekK{Q>J!L!wJ?YTmy zSFTIos6!|gw8|ker@-uGX;FS*6c~G=W14S|CTQK#jDY?ikNus_Pg7DwJl&_R)GA(kMd*|B2+JUibU$~OcHO>Uks1k#0O zPGT7&&<4e`M&g8$@KSy-@)$ufdn6DX*u`M^djw$6BP5dN^wT}*n4)F(Iwh}M#OLtz zG8DwiXhQ7lGlfbAiEftlzN+tenWz)x0xpq6DrZ0Nue?XRLlo#y3Liu=ril_J6K)|d zyo0#MuylDyn{d5l60A(MHJToGP1zr7+wN$WerezGcUJxpB5J20LZgb}>dIBwOBtpL z==PBDubQ_#;q}@B3B##r`-WyIe2QG2b)eE}=OA0h@&7>2xn z+!M0cDYmL}6mO?+lHAZ_ELun+#;T@#5IlIjg0CULdCI!$s@C@fqYsjhURvEqeeWH% zS?_6Uj|)PkqJoBr`+<*xM*x-&FcT&O8?gdy!)Fo&5-*qm)ry7P1(J%$lwr3>{w;3h z19!y@GUwf(*M9L2J4NKtL}=Iehe=~wv71b1K-vi9Y#{^}$Cn*hwUN#mq)<&@g)R1_ zy-J+3-FLo-ee%6z{RxscoKrkU8H&{(AgexNin50H1Q(HMR$)UyDl`We@R_$z|fylbEOR?xAVT!|bKkAecRF|tvwYTfQS zdY6Q`Dc!`h%10~Riqr%=71Z^(|AxKS$p3NRHb6+T*s#HI-~yeESq6RpLq>V&Y%zRnY8I73 zzKf|kS2}VpY|tzbjDaW2;zQfx-iH2{AVq>HR4ShhzZeUp0GtqkcF1s{HoQ>j%Oy-O zOL~A2@7PCWSAI&r z^m)?B@4Opd&tH2?>Wg6q0BuQiyyD%zi12@t(EstnZZ+Pm%%2N*3TyfML9I&gv*R0o ze}ia$J~BYv^53>6s59gK#1Ghg;rB1bmH%yT9LaOtj`xu6V9P+mi?kN70u({fsJEbL zgCiPyhc&n2gPZ?zkm;qZaP8j9i#BV{_KbtvxrLi5>A`Xy54xvo?pV zJ(P0nYWA*kNi#Pc{pjoW|JwEGcmMeOhrd7k`nwxXzI@~H7k8e1d++hrZ+`sj!Y5yy z`tqmUU;Hrp=7X}eyUhc}4w<@i()vRqcb{$Bcdlad;SEoJeEDx(N1uNG>UUim?|;#L z=+eluw>EtA!}gEATl3(_f_FdI{`o&=-1;PX>5ka_7ivEIsrSeKR7~C^>$|Yv#t-59 zZiH+;pML6=efmmTOd(z8#}=fLW9Ca;%7|=9RGvICR}!8lPpzaSmRMs7<=!mh{1I^{ zV0Kwk`KCCdD?>oBwR=e8%CVCUuM!9mrZ3Zw*Jx^-Y3d2_)7#o}gui`}vw4mpuRn!| zZ+)TY;9F>7^~~JQt{6`YsfO5|qNoC8QZ0U2RE4W62fW9UeQ#A?c+&rNSLL~fmhtOI zYAe`-nafUQt~(dMYJx4>PDHWMqz@FXDc`1w*wTvBO!VC%G5*e7oC6B z>%Cw4zWPiwaZkdmD-q|q{M(+e8#ajY=b0;(n;SMLnl{VZ_XJP57_sK9=v{An*SzkT zaY5C%K6vo%kP%z0!**!uZK7CGwlsCqw-F;R$@6BBTeIb?dnHI#ibMQikdhnt9$fPUZ}G%~C~5 zf2JvwShESZ>y3NGRqIUs_omEx&o}OE+l1HHMYBVj790A`_l`agF>ISCwUL|L%TT)- zO;y^wvBm+job?Mu?p9M=Bhu^u9@?`(-m4_GNP#OA31^6T?0GQ^;f&ByO^;RLvdyyG z>DC@&xp56Nce%{pix``UWwI=DKRbLp&0E2b?N<|P3Oco=^Wz5WBfcu+ z>kM&yFaRs?_o1Z?SH_hAM<3v;0n7)wT@h9&i^>BWk{bn%eYG^Ih!>qi!ZVSkmc;ep z`AeCRCHl+;Vv0c~1kSm@f_!)s>ZPc{BRv|Ikiu@d95Ry-3)gCz?RM zK9+CG6q^$$-i0Qg3c%=)s|lq!@|B70JZ~lR8%Q`zTO2XuMl~FC54Nn_&;Tm{l{0tsjt0hQ51(T3487y)5Z`GjR1c;-XD~%brATc*@X}L!lFS z1Yx-WGYM`x;pllzWbRE(iOMh!2$MY??~$YsK(7$3rQ@`7^p_;-gl+u2^qXDDhu$|O zj9|g1imDNYPhcSuFEGQ;WQ)a=uu<9NIRl6&hge#e(IZI6ICbbAj(?-&;GNi?zYBf% zQTDO>#v%K`H6_AiOffJ*60u>2svU;GfDAvnwVYv z)(P`HtG8#Jyp*wSr#Lo;3Vv`Q#bK&D1S%J0eWT2i&+FzW!ULDnMFQ%;5(x^K65bH` z3Z_Vp!W!g=P$t{WoH618MosBZ@_ac{MrCH8+X0PaD(xsigFlb)XQbTmz0_AqjTASM z%FO&B)M;G7??(WK&qQS^lZ%7SLTM@Q`2~2_gpP(XDd3HN=yr~T((SnA0TlQV!5BQV zAn9pX!hrF^lpyYoE-8q190Am9~m#*h5+yp|4W5A^Fk_G~NZdiKaplMmd z=Q?uxU_6R00<0jD=gbxc=V1RA`ka9PsuEqsE{si~bOr_7Y;X&$2`qgyT@xX+Cdq-< za22BEgk3h?vg+lE_kVG0x)iD4tA08n_Y7Jbx_-DN^S3we{@ptQqWY zpPWBubN2k5;ZxTpFFN3yxF)=Fy=&qM_pD7t2d?xy`IhU2^_qb*8I?n9Bj(F1hG@zM z7p**8e&UT@w?6HC?E}mBB?I;xKl9}K`(OXl#$(QeZ^x3V) zUtazEn*)!YZhic0$B+M5{Mpy-7q3^(U6a^%Tzu`&o&#rA44N@w+NPyV+3@n4s{@!`gMPYyi$dGmv38}5HG^;JM4pSE28sPe)+-KZs{>&_1P zw9CEWV$kLbJ)iti`%PExCx5BG_nC9|QBigcl~yGhwKPPmffpCYiA)O!OM>n~dY0oz zQTYnRwoI8bhZmU4wKK&BbEVO&aU?J*FuPt;K1y5A&hY2Z!;4HkMj$Pt z%5GMr^;Ff54O_U^-nm^rWI3yBv@X9RIIWiu$dQO13V(^(olm_K+S3Gu{mp%6+xjmg z6=T>{6D<7}WWRVK^o3oHY1`6Py&TcG(@`^5S2b2%-UmgKq99BY=g|zA_VVEwdmq%C zcwBPp`>Lx?vrazXH7p{%S9wPq4c_xr*wVX(UR&ikv(*)gLq;94jXnx~J9K;a$~Qb4 zuG?R{;GBF$RLrfL3eFHbp6Nj+l3P|CQABTB>Y`)g z`@8|`h_28o2qsJ|2~M-LE(=`po@f0RBz3AdwZq+cIJ|MG$W}}YIj+g8llOcO_3}Rz zhr2>MKTeqQQS{>b_EooN<93pQF`T5q>ck=X9vhV~--nds1oZMHXUv(&7%m5=ufUn));KvfuaiVicl5f*OPDN5=&i_XQf4(kyDHQB z8Y*YAbJ~OY?u?soK~X>}kxv)dLUXnV9QD$;ftu77WmaEN(hybz*qeE1L6t-%W13r$ zJDuTeL|%pKOGFidBB7r?WuPRgOq|@{EEzzvQ7av`AxvP4MFl4UNOEU5+ZI6r0rUvr z24*NC`Y58YMoXY;vQXwIH97c!W|k&OWKR(qBLS~Kr76#n#?yL)W-oeF!H{Qr8)!Dv zVC5qB0#Bl zNOv^D0$C68Io}*5FnE{-5A>2Mx(DBx0!_$r#^Aq0Gc_~3n&T_fM`cTW83C^1s3q@* zcfN_?K?Gqa&;-hi1ZY61NwQY*bHX4W( ztjN?jNfbI&V?*X$wcYAUeyfX>TT3`RfZS!U>w|j|XPwNENA&&xXJ6tj;TQL1+Xf4x zCp-EbFt=S~hqqygA&YBM)gqif2nDai9Lb0uW$k-HQa+7t@6EPVQSDdW7+!1!!=EMy zw8BtjdV7cT-6hRm7J&X)jg2YIF%8}uI_(%qpQNAuPV%CU1o0ynQFR)Bhc;sYXVp#j z^}ia%J(QQNG*zszjX&y|{6WON`)T_g5Ni{W)QL*Y@KaB+j8hG%3zV7TxWVN>_fwmU z0bEpV;y0x&+a2ELA@Qtrulv@w;|hr`V-t%&7tJhPV6HnPQl=8Qh6th7AlrFtM@>ZO zY9h%}k6xxbc-1lNY)Hu^x@R}3UE_T8F!28S`R{gx&b$J*S*7p8FxLy>vIU@rNw9MC zQl(=K3!Hq0Bv!5jt6a@=O$%$fP8?;#o&<<4FJT~3uf&V zI+&Pz8Pp@3_5ePginzcq=OX1I4d6rMQ$>?}1=XDjoI4Iot+FLX)al|25UN3;DpO&^ z054r`ra&|TEmx-M#_6bN5(9KQm5t{~DH9%2{P{seo_;&nRKY7%_S(%t|NR1bNMVxG znc{BfI(kv@^=NCt7%ae&8bYJ$P!Wuwq&vlLM`w{3x*f(lhcAJcrve@nDUrkEtGZRR znBu^Hb+Fl+!IYt`K%LUmQZQ(IP);wkFPZO2rH2;s zV;hXQ!|74INNi)uynWI0j)x3e9Y1yE{+pDS(b5*0} zXYM}V_U5C)W7hzmY=7;;F?XJgx%IiG4R!VnjXN(6di~>pcfJ_(_UE=~t8$ia*#7V- zIFR=~{p$9kr?;Lwd;Rg3fV!W1{P@!6U!MQss}rAnaq`RW;Hd9=^wp6sej0n@e(sVj zq5UR?)ed!J)mxKG0xUjsMiWPbx9{+l-6vN*`hNejt}S;y-}>%nyFd7H5?=i<=ib+CUw3tU-_`J}YxK8WgYG_! zp0Y1bK|1YEu2nA9!|u;op2^z!yJdZa(Lkf5XslDrn4keczSVF_#VPhxN_d1N&?< z4%i+t@tAY;;rPyTp3YZ1FJ85+xa?Z;s(o88b=(> z-TWwUx81i+S?53YUdf%V!rNV}X}d}45Yl_K zVcMMw7;!wz=0*S3WfN-p&l`%k>O0q|SgJWvZVpQ6>_8xPR5@ydS%g?mn|L z&fxlLi4SIYEr}nYZ(OKvIppoP(U9Lx%!&NCc7NMWSHp5+{$R8kDe|WhV-B&V!VH(i z4FRi7fMO$G5u95R7>)iNi8D!Hb`yXsENHi^!KfhJS3`V#PsZ=FH!;c{;9sa4WB)@P~Ts_H9xrF1V@QDaM@lc%FzL}VkiLF9j zy}s(ud!p9GIHw|M5Iv$LYU4fM`M=qh-PHG3Z7l@prBRu`BzVqCjQVjX2||cYq%CqL z&5axUX7Z%lhN`3TqV0l=rTmNzS!%N~r9k4(kot3Ynh;b*B62TsXQN1qAC=2=7ZFD? z2s02%?7$3F&5YDjUGDWi3VZBV#LcEh&rp|5qtHE3y_HErIe|q%iTxC50}Z8PZ9Qg7 z5_=20X|OLah9HT}$Irs>xADCN0#6FkeX8gIrj&uO-&NWDygf%Di%xVtG@o)TQ7lUW z%a$S!j^fzkdCo*CzOITUhEfvJMl^+lmqCOL?6AJU(oqGWnD^=d!x;2;VbO=q|>zEZ>vJw8p4HOJtr> ziMLST%Oa*YbTc8xj#^l1C{JUDZf9vhgNzafMTtyq`0zYOvOKJi??}LeDW&{v(YVt< zE&{1u;7k;R3ZIr)yG*E&LA6%ry=(BxjFB~EIKV7YoI@`s~Zi(#vgn4);P7+LPZ zhz-AlEc>PC#UEG^bBJT0s(O{I=PFslW?t(aBJ~1df!+{nOb;T8BGA}*M~tO=S=JU! z-AP5Co5VX$<(#E=EeLhMEW#W>uUP^t5FyKZXGz2h^11bk2Jx=RV7Uy zX9%m}nxoY*W9iYoG0-84S>>x-t;!w7ju{Y?(S+Sw|Dfx#@+F+mmH@4qXpGE^PVI#2 z>VazjEpenw<_1^b?;bC%LJ-pkmKqV8>HfN+i6;aZ^N6z;;*iOYC+VXFHFKoNvl#jF z&Ewy)OgX2no=(Jh;2FBc9m*Jg&62hnB?W{R6Wl(_b-0UcdldJeOSkBheBfzu+-{a* z1;;*^DM6!X6iJ%os(VRgspKfrh$LCy8)pyOVNHLH6rOiXc}UVrk%xg%E0+5OC3|dx zZxXJL2$^cNS`R6~)``n^IeT6s#*Tv&gd(jgM@?+fYtQHgUxeaXeQWP1Uj(1G)NGr6Go(iz>L79kEiKyvdX~i0zEz7PJat z`+^k^;4a1ZFwvEIR=lk_bT{bcy8%iS$bK@4Z%|Cjn-;S7K6B_a+!|y%2rCGM6pCJ# zEEN~kZP!TaCI9+2Rq?5m=+>E7epuobS5~dU8H&e^w0w|h>qYzeSDkAv>zAJnUw+Ct zd7YqqFu@2LHJiwhvbbUf0c@NPCJ9EI@nD0zVqzo~2O2{00agkSx&|UJ5(ch>5@rL- zLyhcGZA3IQj$yBws*@c0SlL6vz=)IZ`fcv4JTyLV=@hlB$k{8b_Bd zr8$*wztNvd>2?KmJxZDojQ`bd=VN4*^4pP(NAw+6{-N9dRlP%#QzMy74i$Yt{U{n# z+1)~&E_33WWOUKtJ_&}5hOemYc_5>yfsQVN95m=AV`1tjSxElAc`I^xivQK^%_u5~3 zp8k8->0eR~JPKd&a`^CBxbc{|#-9Xg2LWIGtNg}_;9rmbL*4$XXs43(&(DLCcfa8g z(w$kN?iqaQxo*d0Y7NpIt^ZxR|N0I8UH_mm;D73NXn0zni);2nCo8StSf46={)*Al zqnbtrWfrN^ikUG5^zd?X;Ydr*srr`r`J1mLti9-;zB6*%%9x4E@>cBhzpyl8<<7px zUR`+M_Lx&w%Qo)ovGqvfu2VTLZfSk#`iS?Rrq7rkKYD7)kSQ!cxA+cSbfw5sLPTH! zN20eHUOGb;!7)YveazB%fShH>g4v1?rotJ3YGb7v2A8F9pek#CtzeAW*CfpvZkc<~ zy6m`P#@5=)_xn8iXZ07~m*4!f$9e{gEnl&-Zs(bt zbw_fyohv>1R?BOjPWkA^(eHgVb|I5Mex(1(kt?9tU${i;or!5X2G1=SFKW)&k8QTxdJoU^e_-qVq%U+Z<^m8SD=RUUh#V&8>~&6mQK z9<6`-+myGS=Dhn&$>m4Yr|!@AxU2f^*S((pqveOLtgG+XW-TS~^n`(8u0a*(vicKs z;mPvwG){0V-wod{R2CeDS8$0d5iiGVTO1|eLxI{(Q~C?!DUGW5ax|^b9r56(BchC+ zR%vvm(3Wg39S~SDR9P}SWbA5$h#0XYoTM^FN-t!Xh2DJRqJg7fMi;_mRi@Sj^`03$ zbfvj*x_87X^N1Dn+6nfd%X|ZuX!1s*ab6ykF13a-Ren)wYvzHQS@-{%b@Ge8uYDH1 zX1AbdT{hpJbPV33ZQrVcIG=POc*$$N%{QaA z-U*xcnyK#|N%d04uq{FD+pv*s8F@fAXs4>r7VFT1`e8>y7v5BN9OhIkv`;u1zWpQf zrn{nPht#8XdS_e;-}YAUoY!dCt9Z#T>at%jCATYMDwxSV94Wm?M(^bF4@#eQ<-gsP zc;L&R1y|D#eiDA@n&YMW30J?5Jn=OA<*(9@KZ`u{m0{2sRndBR_Ht6c-n{&#ecZ|D zc~?UYej4>&m+$i*6TkRN@;6=feV>Vn_bO61@FGW=;cIam%$T;Qb=O0-J@OxZ5V`lm ztXF4UCvA9e+OYA%&{?Nh2*!w`0dor;_L6SsA<}-( zwf+M^_7GY~qc&!cDr+bsq6gsy6Mt#?qo1?7x-3^dQB=%{Zd?#PWWA;5GD-DH=a@a# z0WYgdrUbYE4~)ieL1^Q0OKB%RwuSVZo-yrQV#_9Fd_B{j!Vb>@n}r8LR9Xw)(}P&z z*scVrBSGmveWx4qr{cDW+#VxI+Biwo4rj+DWzhy&)DltZL0SOTkkCldz{FTNOalOK`%tCz2vB0 z6QIpd#td`~+(7cD>#`Q;-9rLQb=tTQ`i>K_jKLgVJTExh7~I2Gv{GKOOIwT`mTiLE zwcudL@)mG1o5h(m^2}mYN-=P$z13!5n}>Oah#xJ zz8P4>M4GSFRE}JBg=CleOGY zbV{4HLlHa>0TN-%bWPG8UGYgn-8LF30KCBaRHNkqE+}f4n5g(f_QUK)9}`ySc-C`G zUM`$=tplbjHJYal1E!Lzr7pw32b@RlNoDEmqR@0&P&6|n6G#?ucn?Nk96+7QjIjaz zFQ7k{%6O<$C@aT|ElugC8hk)IM;8xQPuO}1PAg5}7jBAK@dKmBRb$gTByKmqdupt9U6R zaX8Vn5`PE7H=aLzY1*Z$meJb+YL0kMKX&}RE3)f}W7cIs?3v)oTSVR_(A3ggqe$3X zm8P62$z$ki2(zA87twoP4_oscD}Dz2RT%yRuy(dnpYxKw;|9gg6r#F@p@MEVCaT(R z(PCdw`nNb*&+>=e;8xxiRlKICzvV5zY#exV@!jAC7@8)`^veOF#JP90q zt|TZEW7jlugw5d>sUhIgL}klK&_J3r&k@~Qs5BS~MstE|^(CWuF09JY7Ex?l^sZ>f z_28R#i9`8 z2B4Rpf~iB9G_#n1M@kIV!L!pY+_lfzDr+9kC~GAliQoiMtxt$?(>O9Z^@CDICnhv8 z;3?#R-GWIL{TS^+|*al8lC?2t=7Im2&5+8A2VL_U8v(riZ-mW0`ihIPF7Vim)VE{K zgvAJ;NRm+de+tR`ztZhED@gbV|HyCvi4Pf1Ee)V`yG1)?w&M{%=YfjJS2{2Y%v9oU zi<7Pj!d;5{kiyGAx6?3Ol58HkMm_yt$+e%dFMgMQ=$qJ=x)OHXi(UDWt9c|AenJ+V zIvJ&`e_I#)n`nP7u>Z4k|1FgM>$m)xllfJ*|8c_K$6fJQWBqn#cI)=;d+ZO7{l7ac z^KZJHdPobEQ1V2qQ+g7StHh`>SE(mFVO)Km)Pd82d-pNrmFr`2WnuZM+&&>gmRU!v z=he?OPTCySxjk&;Vtd=fsB!Z%7j9_X`|_C6*T-LctKWs|0AH~&&qxBp8-N@>og`98nJ-?F3Ffi+Y z`=`ig4y>Ib-Ra>6>{OS7E-us;U?QzE)=Zt$U<3BReG=wCCWWMvA&u{J% z&e>vY*_nLocHX@=6;D3(eDQAJop;G?M^u%~mZ8hk8N+~%7~XHRb;MMcL1WEBr}|7; z=-sr^Ywr5oLpS9w?N4u3-+Hdu>0TvF2#Py5mVF z9|j+}D{tMypR*(A)%7Ih*6Z@S?;MBDK&Ei0ct$W*j}zIkoG1dl zKxtBFjaq|AXz=4313AWEvObV%3*-IuiLMQ$kWmapgE`8qLxJG6VLOSV?lZN1rjWgg%=5QO2V2rs4_G z+RlE!hQU=8=Je+^$FYn9mqgS5g_nO4c7|)NM;@$RI zIpl0`^F33|4!8cNoNG^lS`!wp0Y*S91$n zeJ1a9s#@z%yHQ-b)==B4)dJrivbnqEx(lOJ-bAsBJiC_>Neak`l#2!>zuKtG;=R2awdY=C<&;Pg_c8k5Cm40 z4b8rP*@C~@9JfAZr7w0bS!}LpbF5sW8??=FNQa?jpCEo94j>`MNNIRKO?-_gyg$`% zpk2{qO6pjWPYF&RhSLW?nGxHVEHo$a1A9sR3mGm^WM@B$%7g0!jX6Pq{TCIT{%#zz ziIP0sP`1z1`v@{OAh&96MLWfBHgc>4uO8GjRP=HJ(l~ywM_=o^@wIX0ZDMjGKC;9i zbu!gGjpLuk&uOIUGL>Z=I2S*AkplyRtN2he#{%FH@!TbmBbhM+kfoIBQIEog5eBbt zpK_3!4aJlep+OHTPro+2DW-*H3SxTl0&Jy z@0^T6``H02#yQE(y*J6fOb}7a@J*t+`f$v_WcLUW82gdK>|HZ4ETmfq-Z6=3?#Fb4 zY!ckJKANOjI~_FR80^(LLDCONt@hSIE`3j!DzEk!_mJxW zJPo}an=1$%uZS9rd|K+5UJ(8>tiq%Sxijh}<$&}XE##|b%h zTqew~xt3}2mrz|ZM1BLMu^Y+eMeM3|&YQoR57=0>7m%)*rCX@*Y-Olx5Wx=#f-us% zONMINHSN-uzOT55MuxS4={-nn9l-G#%=4~?!3V_kQ2(j%E|YIa}Rhe*k@XGRzKmY z&%uYdVN(&u+0uJ|&}EzHyUoY;+3&$O{@}~3g4-zT0^PEO%AIQGH;K)(K>FPdfkRa& zn{h!0yK=L3;WeRjnhfy((Fvl=EU2+xxyO^Bl)@6UlkM)Othg-i8P|#7K~YY_@YBi@c(Uu$vIlIJrexIh3DW zF32AQpAOJ1Ld)-m41QqD0(b<59>G+n;O!{@7`Fo)3dmZ32SU%O${x1+5s!kGfUAs% zAmbsm&IF{3Jv0S@45lmWI0h_N!+>Ch2r<}@weCij*aOam#1jxX0vcaT=VJL2&^B;@ zwt?U}9B`juy9d(jAk={jNmChNGZ7*&V5CFh9WpbJYzL1=391-kpcj&5xa@}7ecV?dU7vtNL?{zJNB>YYpj`yB>UF~c0}aXd6% z$#4wK-+p_yZU^c9w{8bj54xSiga%cRnpiL!3j)#T0u^BMAu5mOXn<@3nv(!Q6POak zckA|UxeiyxuK$m8|Ci|f$7%m@=HL45kY9%zgnLM4{Y$q~Fi=0Hu)(EHOC{2;FB3?6@4V zV6Om>3-BDlEy1kw@a+y{uLt> z*`=1;KEdfF8s8X_N2IxWdT7gDcE9=FZAVf!bfqrZojAKAx@lQn$M)hiyVB>bEZej{ zZ`YCNt(_TL4up@HV`qu=7%(nj(FT}-f@md46#(2|m`eg#4wN(Spy+Z>n#_V#kcf<+ z*kOnpz-Sb?vz^G3r4PXX!U_w?GeMqPZy21GuUzJisYX@R6PI7by9o6)>Abv zzfXGpZNmFsbJrg*_Mc>^X-rzU)3dHgo(8Fa;l9J0Tx%w2t48@vTu{FIT={{^)#n~m zocyWk=+&G}hliZKJLuF;+3OD^wr$H;w?DCcXG!Pz%EQ+pS~o__S)Djj0o;P>hUvcgE zs#~uY-+n#s{QWieJ}rCjX~4mYN$WZ*PhKzC+ZDE9Z^DXQ#hXr7?7!tXYcqAgEdI=` zzGq(byKB?WKf)NkB4^J-lr^g0@Z+Ko!(G^tB48$}dJMbCg5Tk`Y zcLp|c=m+@+oIVJGxMW=z8~AlDJvi>ry$=3rAk8OLkx(U$%tsn`xg`=3p%8U;Os*F8 z8i^tbkuC@@8tml0WZw+FUpjDU_>l$1(vdD@6ZoYnCSu zgc^FhE>h#0Mvz#bHCtXe%f0n@^1>JP~Jtu;^B7*m2k6((9yWw#WnTg~PXt(^trI zAj5N9oZZaI7|l!>Lv=2taXLT|x#2@Ji9^{s=+zC5J9F31 zW=neWJH77~N&XI1!9sQK*@B8?+@g7=!E+6Dn_vu_WeH?kl7R^i2@0;Yr#P-rJ75(s zs9|;+*5iDSEUvi>ylB2VRzk{iOM{37#b9MR`Y;?Iw5Fzo3_w}+q|8~0^mVG#t+b%2 z$hC?Y(x}Ng!StC)GYydh)^kD!u_F5L!wNWorNW3Y!3S+_3tn(?<~tS)cgt&pjwEqJ z4li#ENfNB8TEmLSLy7>NZ?)Kv4!yB<>5Wvet0HBJzIu|wz**vfo5QYt4}5FWO*_Fd z_eQQsL`QEj)X?bjNPcw?*Ae7Z@>52M;%2jB1`EPRlLC9f`jH>imljmajVgzj3g6Wq z5RNRL5}J1r!@mIZGs(LU@7t4P$Rfk+ZD6%(%YE^>x4gmE4cTib`D?}1%NUjnoIaP8 zH;11zhU8Yt4XUR27g7BS$=;z1cTc)0l;oZ&3?Iu6uAsOjG2DYlWy+6=nU>XR>lQ0qs@3%0Q3QbQqkq!&Di=Du42U`q= zQmHZnT>_JL8YqT9at}OK)vAUoVC9kmJ;^B)On4CR1dl99=4^aW9fTz)N;MK%p(&N8 zassoRqJlJ|BTJ#R7fbPCt-S+Th8Pf z$s85rtn7n_AbBLywUQIuigT)0RULNO^vUy-&2z!;)PT)+V++fB9>sAIO_e1{s1wE1 z+lN;KwSSI0Y@=r_fO%dZOv1WVQMS$0e+SJe4)zXoFkcxm-l6{@acHwRYl)!th;ha* zyo5=ZBp~6bg{uN4okjW_SbeySJY>3W<8;1c_TEA^r6XCaBCt{tR)>taOy^*{+*h19 zN0z&cMnbm89b=V_W_7a?D62~Qm;plJg>`ky_5IuWP z^@(`j!I~kry@uRH6i2XiF<^*PD;l|t*T0<^GlS|`B=PQz`2LPL9g*AKTeqF#1Mi(m zBN1eX<4;K#j4zvvh)_=Lg!8H}lpKLfJG&U=B&c;5$K3hDM=~z=DQ23R`H;gPK$!W<>%; z9Ewfp!tPAFn8=e6h0vWUg>K>>AsM_-1E43+?PRGFP+}k|18H{niy({C;HZPm4!;pV zCqbJMjs^p*f9rNo_*k5V!iEdGo0xcjsrl!?K#LSEi6sQ@y*r~03oZ!5UJQ4CRaQvN<`Jvk}z9JKJJEk^4ND~CL2Uo6w|{)gzx?+9S-1avO<3I!uoX?WT>pD}0t>ohw*!w3 zdw_r6V7Ju&KS{L1eF5G6L#{(M=EoU0Wr)@Ak^pB$>=lK0Dyl?I7D)(NS5t0Zad@sI zEZsY&B%!RI+CLU@5x&#c^}6)Qvf->>`{Cf0O$D0{XK(B*-FrNF`9_zz@%7L*wDV}( z`km#6&gU=M$cgP4FmZn9%B_5dXn`S)rjNq5l2txP0kbrdIyCY6 z^XjA5`t7?g@$%EMt;a*AFO8VFB7fb1qHV`ZHXh4cdoXZjd-S|@DXp7xm+eYfyv@IH zMODYnNm~zJdh_e8Prsji@%}XAWS)KKy8G(No39sNeeHVrZQtXMd*1#r@9yi~`_B%% zbU*Lt)yPGgn=igNaQ~N^FaCP_&Gz8^_j@0|zI*@6p<9n(j8ZFu%u#g3B+%ePk^x;*mSgSgc@xJ5Ovf`CVwwena>>!Hlmm$Ew_ zc`k!i*;C@m#q!F9_C05$A9<5@;al8=&ylZe&L`hlkG?9s`CD-Fc1Bbo7;)I9Hk5mE z)JS5$8~jPGkp$;3swqlnNnv?rORQ;heES&T@q$<3?J-z`{_2_>D#gD8J{%7PW%OCGwfzHi=q-_UVW+jur?!5vlIR!-Go>Chee zx-HhBTOE40ib@wq`gQ>S&~MZ!(e$(Yfh#n9TFk@OYR9kVPU%Rz@j2v{P1Af@-g_%2 zW4%+!Hd*`>`(J7gJk8S0$)vybt1Jk%_`WEr-d)vJYGvcR=w9W$p%9ls9p`2oki`|tfK z$=qzt+pj3xEJ>clHT9)hn|#JUF^qnJV(0Jz#xvdf0brRmV23oPT^ce|=r>guG+h)t zRTecvnchO4d?jr5N2H3O#jY_moYEGx^Lw;Hy_D2*D&J=u3a;nHju06$ktVF*?O&n4 z+HxNL%uQM%&p)6pYBN+d;|d$qmGj&Nj^!24QfKt0yZaJ=VQ!4HQyC!`V=3KgEL|@2 zo#5y_N@*#9LL!z=0mZ#1G}J(m5JMLWsBo&YFZk_DEkGBI?5Lsk346)$TQnudJw{v? z6s$s)L3HaReaddW_Z+GBL~X=GUg&UIa5*z5m+aM(6*@|@>b0rm1utj5vDXN%f<}Tq zgd375DrrDc4^bZYu@$1^NyuZo+PhZlJ%ATI3dxPgr$0bcs3cd0x-#~}8_Qc8f7C%o z&xL%iG00LZj;NwblDN7eQQRnI&J8=Wg^~C z;WOb3FMTd2c&sXRI4h(WAdnOve}=^!wy0peAdQ{J^UY(xh_{zN)iaRh-AfuWp6A;S z?;IkG8LCfj0315fc;K}bm`LTgr`l-}VYHL&-G{Ev#mfSqGD%U;<~!*-J^v*+<`9x) zF-!#_XMcyD$B7~Hw54Z|I**}-?hJ1LfXEVSwfP&VA-ie5dmLhq%L?uq2j3?KEmdS3 z@M-=nV8QRqxLw?+LyFvuFfd5)&PEzf2*MG>o-pMqb&H2pIS$%RL75A%a64#q;K@L~ z9jZd<3L{Mn&P) z#BwpYiSa1tfYp{Kzy;C#0had z?PMBmNQS+&2xuo1eFffgBFUwk9l4e~d>?zsUB87kVcao0OAF3t7Rhx1OIbj)0!yc# zy;F)jf4g*87xEm2)CPtundUQ4THYzjZ-?g-YWu_?)4177>~dE*Wo*$G%@^0S>nA@# zk`ywXM5NIGH(pKIgX30#Pv6C|=KT?WFtMMA7GIeq$iq&L4W-F#IkhaXJ!PSq{*o=56opNewDPA*slF zm~;Otit4AV@O6+I$MKL?PJHh5ht}IR#rntWqU|U!Um4h!z>lK3590$DD73^5;4n-k zi6CYwBanMGvv@3``?w@FxeYig%sx!-v4dN%-?{fGLd04`r^1#E%decA*-Z1V#%44` zMx5A#9h87f9(EoUrKdYhBgZ>I3L1K2Az=khxDwPdSl>{MM1b5lph!p@qHBe!q*Yzl zfs3f(>Y_MQFy8GD3ldg#;I4zwZ%;QfM1BaT!XrKp&&Aj#Sm1#KiXHJ}ARRH`4c(>? zeZeR(B5;8J(d~8|5lD1QezQQ~Ln=uQk!&m~LxQqY3HEvxX(3Sq+)Eq-D^UU-d-u#K z#-f4m!oCsAPadDt|8Pz!~OMKwUT6M0mQ zBTeXn&86BwB!~!+7dWsN07hTz_S*?`EU$uv-r;*;ZNg-V9Y~npj8c+LAx*dQvAdlgP{IK{zy3;|o zLztNckAe#wweY+_xE-Ez0hGPMf?4eupdLBjecF+b6JKM_y^OAy5pv{dkItVx=N}1Z z+yFWRZVS`xu^A{$i6u7@cuqKm2`_QOC}a`? zrrUXD=((ntlI?s#*`^S_+@I!}f{I5QH=JSgnWhaNh@y*FwUc@rK0ox)+mTlvto-y> z(~GZ3yN<;z-`s!i*~;|?z{DQhdDeUARKJ=D*51RN3kUU>wX)aNqh-ghCT!Xt)xN#& zfeZPoJAFpXHrGtCHq5e)niD*+)zZ-9KcOYEsV$^wxut%#U&Fkh3Cl7&4yG;N@}!h%(P7xe){RF?cCFk7oPuo=Gn*NFFtL&c5lnW=Ns=l-u3Xs$+w@be*Wd^$FEo3 zd;r?avY#Goyz}Jx=fCcMw_W@2>-}GB4}Sjb&a)4v-v7Dy#I>beKdrs}a`oL;o1T2! z{Pfe-=bxt@yfUZj;o>_V#&_L=jf28HXR>ylPS|`Tetl=i`rWSc+oRjImL0gzW8>i- z8xBps`>FQY&l#I8MYkP`+IT7az@wm3Z_@AEqR)MC?|jJGb2IbSuYr>{O7g~<(ng6w z21>`SG2{(EYy)CC!dn^QaF9&Jkh`fhF~~KP?hyl^7_v(w1=x3y`H)hUMfBnZXM*vr z?osZNKSZ8bA&RY_1{LD1Ijo>eWDEyXHP1HJ-18DHoMB`=uqD^(9*+B};W9 zPr1&1L@jM&Ce9J2wrPfLbQ^nyoxO)u(5dKuMOE?$dVgr{{aA`rTE;p_qvzTbMs^5ycPdG7VARRiWJE9QU%JvNl=Y zqw>5_ocN(EXkF1H0P2w8oyr4K(U>C&%)#r!u%1MnAHx(39hw9=eCEb!XZ{X)0BIYf zrg4U#1=5%m%!K9k5%ZC@j_Ed7u0E~Qdt{fcW|y>RrY32KW8oB* zZw|C0$s)(uYkRnqO@vM&C{Uvnw(v4r*a@>VX=7-HOqhu#8)K*fZ=6qGkHgO`_r40I z->0Q-#rsWD#5X!-&xC}$(2{CMt_NAdFK&~h&Jc!-Vuv=Nu*ICxosLy)uySXB+!DmhOnyWMd9Hp-x#!O4v_ITnR8h z#1G^IEmow@!upj$M-U_D;NXn2RjdmqTSDwY1`5KOlpcwYEdg>SRKzkYLmWfq8KcKR zRS*!x+1B3b_&U5H5y^ZZT2J>XL(Y{#_h7v52)e^cA*CmQ8!f2Xx=$e@X^B!EaqR43!2Circ6&(VO5?1FeM z1eqC$bx5JJ2cn=3B1yFwji9(QHu(iD8ZA_fVH}Q+cdqlJJw$o z=PnVbqwSCY9=>|rchQWC?3ghGW~iNCN$}avF8jWEPPrv@N~KHPnbrzfpUs@um0U$G zkKDm7TEBDE-PSaK*j)jWMB&S-JaX;I6b|H^Sb6~zmWZgf^H-u5uZ+wa0NvFUWgt@au`mEUrtoROaVv05E1YUElzU^r1G zbFAqfv${=s{w+Im5kpyrEF+L*6N9hFUgCa%7Q%!5$buz(xSRj(eKTaFsX?AHz5A(?PWFzU26b_A6jL<0!tit{Ki z1LG(HKptnHQI&W_lpy)AWAtfB;$Bg&1N5FJQOprl;bp(7J+P!jI3Z#w5eEXde6apt zbV3l2kF;?lCmqk|0)0lHHc4~=s7(+>_ACky$FgTLaT+DUv8jj+@E3TzyvQo$mXpTT zBigc6bl>TMpqZ-hNp{>Q3fUdOGK0W{qIPIe=lbM9fDptX7sw?rwh1OGfou=JMi$JL z3dkI+)f8gw5Oe|O96~P;k|7F|SO$hChsjgOV8faJdo?*Wnu1(-7s4u?Gj z3WY_bFvtwZ&k#v;8W~oypxdEh31&IDPIwq`1=R`-M{o)h8azgofe;I(*t@HmuxAX* z!&Bj(L^=mc;1IBhS2(ax%|GrjhJyUN`4n#C$AJ|p{Y$R@ty=#j@Bed7=AY}p87v>( zZCS%lfs_uwd9VctOr~HNl5RB%?lk-$5ZnYVY_v**jKbQXxXa3#o z{O`UT+eKnPeTEPgp-?mc-N!$qJ6R$}d@0Z%rCyQno@~#6C9oQ#wb(mC;uC3zPW3J5 z9Z){drLYR;pAg*8q?@(cIA^WXl%<-{EhY$rw5;#7{z%WY`^z@$&0n`Wq_sU{>1vqe z)RorI-9sU9%?lYI3+V%GAOJrh@g49S6r&V5FE z^q&|sd}i3l=D=Z1LBnQ<)BD7XYl)e=I&AXN_{LR9b2rD&-|97{#ZoiTqqNR3Hmzyv zzDpl}Kl<>^{@c&az5aUY#m{G6eL3>%-JvIM;Plj+Pv<{;J@?`B={FxvynMUy(aQr* z-`)OVyZ8C8Ywy0_`TED5kH6f0_4B@$-`3uEy7l4v&X?czy!zhx`j<_QKdid_qV3Vg zrH?+s!>K!VwRh*~UVG0(v~Tm6yCQ1gy21nJN{(GF+I2dA>#?x5?MWLBO?~*K=IWCP zH{Z5B`D5;#Zv{IqSyvs7JbEYM)C22^J5Wp(viJ;g&g2A_a{TiN5yklrKE~X6W8HnO z@c8Y5O?$QFm3AJ08ZaQFfww81R4Z4RwH^^duNc5z3;Z+Kt_jFD!ag{O5}6@R?#+)c zWrg*k_~t-g2GKj!-W<>O&*AxH3j^~60l6Z-Y~b(lj0H^BT)a7n=AX>4MiMkGP&v&9 zPfzLZSidNC&y&clPg#T4D65t^6t;# zj`%iS)eSzStUEzSo{zGd15bR5KWhV&fpyu1#Laj7_dhTmyz8{$wEx1>5%aq&gLldX zZ#9nGrya6gH}x3IvAR~ScAR!dHU5D2yvzLB9lH86ZbQ3hIm^Ab-4FY03%zMmkJwA^ zwZwDgQNLl^9DA+SPrTs2;)(CMkD0G*375Wd>f7b@t9(~q4DNj34@l(x?aDE`!aCo@ zU$FUgesNjxL_6n(%c4il3oa>#ZP!+Dg5Hf`kREHd;y9X{$;W&R!H(@OOotn#Ulq;GQ_c$ktnUy$7)Olub; zE_X`X;gWJxntg(oxEukEFtw2!G)A1(fRAp}k2_B*-^$Khs*IbV2po>o$$5uvmDy~; zwy(OuYjH^vMLk>D>2rj+EzZ?zEu%IIOJ@rT=Qw50=6Y2U4Dm#dNV0#9zI>&s?+J0* zcu0n;do+cJ`ibAk<1F9QI1amQ>Va8l;Y7=toL3b~tM^r(knymstQBTKJm%Z-&5_HmL z8g`Kx)x-~PP^FKvcTeSc#LFVeQOFQN;!IxLL_yFnyw4~Uz0i3?m$`a1H3(x~;hf`u zqb?4J;+x%|sy%Selm6cxsJ|w`CA&0<7YIK`$o0Yyt6~5ak__!temALmcm(sU#_b$WG zXQmy$Xczv;uXw=rn9OjmptzRMJWDCAMe@*UZ6vTL1CZ9t(S`zR1@1h_!Npz$RoUs#ir z!WEnLl{vw!*(tR+sTwC!LBS1Gld2tXz<=oqAA@a z90+l{$sB<%vg6|YqEmK%R18}$jvG#pCZWIq))O}VlF!`YOGq69Gp+V+Whj20s%R(6 zr5EDR3F>eZI)#!kN9L7@v(9~&p`Ni*x&3gNzdBcg|9hW6DkD`K|veE~N6%QR2 zJ#kt2D=BRaQYR^V(;@#4QEmYBpwK!yPBcj|kQOlutY$=36JY!h<}vA53nvxIk02}o z0S0Kg$KyFMX_kuNy#AAT<5wfM8C1bQMAXZjD%pjPq8GekB@aU)Kf2PJ<>rOgdm%vp zF?ESozsnwduNfvj^xF3>`s#h{rWxwwm~l1kQ%}l^W+JwaD0_i>$1UU> ziA9ZwWE_D{CdljriL|f{oVY#0_9$){=`8KEJJF9 zm!CSULKI!g0)!e^%8=H^^RU@u919ayn9^oL$r0AY0JEr=ZWGc1da7#|Ikj$6P1-2# zy9Nc%AcW3@_GEF%9Cpb>vDg@mz^$RQ)j64Hu7BJ)?Cqu(-6ErFey%H(l%wxJ8 zdnUV&|CPG^$8Q80qv$Z<3%@UH3jm}tIMv-M7CQsF9nYcj9BCL-QxC&*L>8vosjw;m zl#kq`9oD3uus(F>Z>EcX4H-J1SHoDh<9`Njf8#uFx7YXL1_HE!+Rk)$KpxF%-TWL_6%3 zQY31S?hp(kiD52A0x*1CXb+h=7&bxdm`cQuL60im=%ePDUNRlCpeD z?DEYCZCiS8JC?ofaM;{+1sjePZ8}l7;aKl&XDnmpXRPSVTe2f$^n9PXY4V%_+JahX zYB@bDE52b);=Hx7Ggih;ZwJ`B-^9fZeMbilnVL9s3QXKg+^}=s<2QRAyxe%{_K^p# zkKTU;#`~$qZ_hk^569W(?=HUi`Ra#nSKfZU@bbgaS3h^X`F8u`AGhEC3e@-eU;q3G zbo;xn^Skb>xc+S0lh3=Kd^z;ykAts&-*W%M%FB;eJ^$44>|?``uCZsX&%X1b>F%qM z7w-%@ae3USTjQ=g8PauU=!qM3XYSFkP%n2Q%Lsq_Dq5p}Gw=H--}y3T*Gm*tFR5Io8gvL4?39>+!jfk5loPDMhrAZO_G~zb z5~i89JrB47irN;s>7{GyxsXFIjk_MG=AG6~j(uV!| z*{6bzzVtuvR5fcKN*QMvzbk3&UFWF>IenM&^I9Cnc7`7Q8gkXZcr5RBtp4-0WJrQ`vWm%h*%K(WeacCv_wCNz+%rC$G8TgtT&xGHazcx)CNQktqRr z_m;&k(&g>pWUM4d&t?0~6PO$2u^S_5@2Ijm_2mcECHv^{o4AR)kk2w^&=z*YGFJK+ zP0>2!Ie{EG3pz%VU!ds005+8R4M35@dfa>$@$GZKFW-a-qxgyA9SRpJdM;7- z?l2A7EGt=rj~@+6-fh5oZg>MhpGGhP6C+cUGtZ&8(^xSZc~>HjflU88QDn6!q68|F z7+x6!CtrK557iJrHwMvkz-@K~mzC_`%8c4*Y<|z5dSB7+m}BY&g8y`0OrulmWS-kV zwrd>{_e8n^hP6Os&4BJvM%EDXrgtH`f02&aNeLgWhLU=78Zo3$R?v*h`OsB_RKCco zKwZ3)7CBZ{Jl{?e2{{u}#X_cUe}Hn^8MFOX-G=QC%T=3x=vhYOWOm3PReA%#D~0G3 z$n(#GIbTY`41V+&N!Soh*jQ=N#;E28o`cu3!b|C)l_2kt!jI<$jbkRfV+_~7ifc-s zTdRy2t^Al-$hW^{@N#udGr@1PY0N=dN*g(OY|yOZZt?wKtb>#_lHm=QSslSL&>>|B z*C&G{x6;&sT%S;J!XS=M1r#Jftcd27DUKe8~i@sMupi|8C-%ph~0 zH3HWjz~N{5^(JeRDVkEQ+i-hxle+wt?|hrn$UF8yOWe{giv6!D1D^7|TR^)ag#&E* zAf^j!7ZOzN`0%Mbk1Ay7AsV>flmUQBIj>*=J#Cr1$3jur2HM~Q#L`k@rBwvbPQkZTfzn;12=nfT_O2P|iwv$`TmaMk)!#DZ^{fW|Ue_ zF@)f>@&3c_xDWlvuh>GiW+8Qs78p(8MJ%^KnjuLPTt@Tk$@iV$bjqf@Y9mzahjL`D zIYy)k#Q1)OMDoaw_PxB6A5wx``q~b!9c+jh6AFP5Y`V^u$g5+sI3QwG>H@E7vLuD7Q;52W{Sxw76 z5!6P(N}z@~x7mw@9lx5XZ#B;~-a#$tpW%p3^9C(mqz) zVQSJTe*Sq?-fo7u0@*1rGZs%05$%}}&?bY(r&39PIsy8(BXpf}ApeHvfT>RCMh_u- zF@-87L988UFeC|`2^kdx!F5JJPepCJVERt(qV>$F9jfu$`F%R%RU6r*ZQ6<3_02mC zRUP8AMq*$+@^5hIztyL@9ce-kVnVhA)9pm4*wFXodIL83FUunnkR;Lku>9un`+zRFPGcm_LxYqxF(cn$z$ zx;ZmABF2gY8E+42yn9R)nvdW-1{Q)5UYOs+bo&p{{=Y@HW8%Eq%?7oMhrU-Br0uSP zf(7G$(e3aWWC9GIA#t)}fpj;JSxP!^V!KK8j*;0eqnElgpYuCy3psIbc8XWR%njyK zzXh$kXKvZ;Qav6+;(&Q?54$Yb?+B>HfoJ@2)`oTg?9te*53|vs=BxLI(CA zupNs3H@Y1p{r@c8|Bd|r|13WPuVfNeN)swUw^Kzbs#F8g9nY816>57CM4;u40r7^w zBv99oJ%f=(=;VU>FyMv>ojp{(;ns{2_l$CLMwS1pmd0mqmi}g&{POLjcOQm7dtPzt z)`0u>dmcJdu=DVceP?r~wlZDApe2x{_5_e8V(Q_Y0S{3qu-So@z%vl!fIjnQtK39x z5p2&S=!F3$A>9k=Q^RNmE5R{}9#P`b(3-fpD`4aC!fP+W7H;wxI3aTFp&^ey*FE`A zbLDQ&)!WP3HaDKQvGCUG>8Ecrow&B_`txb$?q_V+8@s+UcHQ2PrJJHRo#?UUbkW|c zS*wqR&Rmzb_IUKd9XXrN^xAYRtZ}7f)ND=p2wk5BX?9;-ufhH`lS0NX^cz0Mqk4u< zeM{)H6)rUs+)D;~WtFE78?)u+gGDFKZMyYf=iR5Lo_~O3`-O*ZPCR%HK*+Ague%<- zz4i9{qtAccdH2h;rys$PzxwXi>um7HVuYLHg?dH?A+s~KWc((QVZ!LG;PQLPZ-n|cV zo__6r-5`C2JSyG@6O8!m!63Fk7mY~Xrue^ zL(2&MWx|U2=FPWLZ~mHa{^yvZ&nsX4+56SI0pGsV{`Obt%Wom~e&@Fxa$UM#H+C^4 zqYAl2zdDlM0sF3)E6R`Fk}v62SH#a zRqE+2HMw%dT112(mLn8`Qz{$7J0E8JWb-@zMmcRS;9soMPPE z`ZMmtH+3Qvdra*iKkuHe~`7laF}%q zmA9Ez-wZwbHT>Wg{pgdFs8+WTn{-q6dCxxSG2<9-#CC1p^^Q49!&~oY=AJapII0}9 zm0P;nv9?pucZ;FvOv1T8)6Uo^8EuNvwJ^tu1C?0V>b2>qbpA2p>Z`)p2Y3w|StYFz zbI<$FJ#mI_lznz@$Rr}<|xgVIP|aYU^Ll%+BZfh=PP z9B>ByN!5Gn0~_6%t~sxKB`DmaiD+Sk0Mum=FJv%9Qz>$vL~@;_$=s}tn=J9^Nw${i zhi|u>_%raBO+5YpJ$$r2w;88PWP}!JN?ILqCL?VM-6al%^wkwDXGf2hmd;}vqG?gX zRmF=r5fk~Ad}z#Mm#uU;@=kR2gF|f>BVw8`v`(8bhV9>zqzU19=RyJ*+M}33H83H_ z3>hlQZF3&9kDfRV#z@(quEWZZQxsDl2JslOCPEiGi0{=C>QjZO&r?KC zbdGP8^xDQN--^7dNj;ls`e&i#Lju} zz69JwmTxb9SUI?0we4iSY=OCQ#aJusZ z4v^bEa z2s;iIByxo%In^PUst$zuX=tG$KqadfdJ2GSp3QW(feXJ7@uflaoGbTlOtYAE5e0}++7)G4NUKkH`OP|9I; z-}9DbuN=Vdt>{Fav+-evSUE54-CGgPh+x1uWPp9xKnxKE*b|o=gHLTR^d+Rv<4J&yf(|@=)coMu%IwTE)v@jvK);RYC!+$#B z4@E9R5mf;`MlPy9aZc4{a*OTa>f{nTj!L49*T zv}Pg#V8)>XhzhfEWQLGU=7Exi;5DLxloG&yL0kk!711Ovh@t|^9daXx!X!d~9~;Ca z3lmG-C+!f7-|f8Wigo`Xj~1Z%Ohn$L@X6(|@R(EcPTuIHhCzEAYxauD;IDNY3Z1CW znt^y0*iwOf#Xq_o5A+*`fW*d9)<9XuIFQ}Z0hwI=V2tA2l-BaG`cbP)?T_6r+sfJ(%@3A`bzF2g@rUp7 zbC#Cv4w;qM<^r}jfMh@Ehi-=&*?+P zR!R%hP0;PI_W3to|Bc`N{|ns?FCKUqgWnF}c1*f=>vqVu)0HYb=ysM!WcD+Lr7#>k z0PI5+IshmYC`sK^B3PSCyEj`^_6}C0i-;PxxNPm=>irjHKm9!Q>AU)SPv-ve$Gj&W zt2XZUCu5fz@Az${ZtnaD4i=@rci&gI2b zSjr}1^(Y(%zTQg_-N!hj8I?46?dYm{^;gKoL&!f_?wdj^9s=0LUPsQyEL}5b@9|mZ zZp}PMsM?bl;ZUQb!GCv45`gzd*ucASjadokn4O(;dp+i^a)d1K7t zT?rir%~MxE0LE+dJlCPqW2P-jnc3cR!G^G5jmBPs*-3p|`iu=6HZN?#lGxd+-K)n1 zl-CuFn6m8Psk3js%-??;)cb+QuTMUE4-m-n4_;q>^7{JAk09NTJ$`fQ{r8h!{@C&2 zQ^)P6XI}h#?c?v)-v07K%-{X=EBNqW$WK0Tz2(Z|j)x!HZoJs`{QLH2-*-Iy*7@Ss z10R3e_x_jl_g^0SYTNVr+xiD@cfI}&5t?0Z|6F|kW8?Mbvu?Z?dHy~$SmhkKIP%`R zu_vyqy#M~tXB*tq$m3VQpI`p!x6L1HVY8NGZtC=#JfE3b4pE=VE!TY}ZUM`}a{h(a zsTYpx&K2MJJmtHs@ymDEF^OBbBk9dA@{RjpF9V94YF^ojuDxRon&mZht-f$LEhrZ` zhQLQZ*AQmMaIzyPSS*-L&=Dva5#KCUdgBBD8-aZjE%t6KbcCi|sA^>e^}Fl=lUrRJ*K`86?bZSZgv`R)_KN#Rnz^5EnoO!cKL1lDgT8n^O4QedPY#Z zn3X?MFl?RY%;P}|E*e|T`Aj@6%35febBQ(Mpy&Jx?qd!~25bmzz2Q3bByaeRkX`RB z%bqZ@Rv8EHck0&xWZFAd1H1M z=A80gaz!`ou%v#gdgKn(kWJG59qMs=Jm#H?+wv-M-7_df@?3Jyb=f2Kl(U+#yF_&d z9U2Z$3KmLgk5Ox(fn}8-a-M5S3%J=l{}gdl5%6}z8EvA-<4o&*ZrnP^5-7{N^kXk* zCSN4?T=uqbOwpHFB6ZuThXNf@#hGKak`ZkIX$p z9!0$PI>*dL&z>txX)O%jz6`%YST%!<%yIE&n*1qFKG5SsbPS>zq9}$Kyfz%^@=#?f z8omK}4wm~gIA=7|V3<_j3yF&5o>K)uD_tut3Zek>n9TIA3~RY-KJwjp+ehxm-JH-- zUU_q+Zkh6kQdZPhapDN*MP-;`QDBv>XB#Vg3?*e8Y}1ot#`3b7wRtNAp@Sf*O^R&{ zKl)vL?YpAid2--XmiItOWF6hJ7eOA*H07`(>K!tgXx_cKK84b_24(&dMagPha4n?S zY0(2HfxTgyiLQ@B(qJU8DuRmfZbeLEUt;tmL62r}$OKu&6jnl=EM=Ts#3;d_oleF3 zyc@5v{Zi=0C}Y3nLQ4fBpoTy3g5#L0?Bwb2E&PNj6iY9Kb)?WS2V6d;M=smDm|+E2 zO%>O7xGZ8M&XNTq*c{(Nea2{I{GjgQsxY!k9>r40^eANpm5R&*L=Yv?^;D0z>bt=v ztbUjl0ey#6od-UBL%bZ;Ll z=$v!TxuFxGo1Alwl0*=R76D-vw{)hm;>gVbIw`8oW~qT9cRXw{{IT*&Yl0> zy?b}R{l2r?=RI}0+wSVBYJ}%~-X|0+P<7pfcx^+h3m7GPe7Aqot^eJ3lQV4oJ6X~w z7eN5k?$7c`*=jsj_oA94EjHHO8DWQWkm7q$61QmoEjhG6t zf#oE>UN}{hE7udJ2}9iC7}hMjBA#IIa+N{oeG(=p-z$3|q6%@98ez4CpfG_*2CZ-s zy18<7B$2y|z=H{ErmkFR&++D!@3j-Y5faWQ20Rn5df_(1Qi-S3GYH-+{0k#DHG1?1`WpbFucIS<)9Bl-%a7=Bum zOdrU)DdzNE0997dG3USRnY8wfTc17F$k9kjvt{6B#HZNRD~05q$S@`242ck@&&%Ir zntfH(dpl8|1$hfJWuQQ#f$x#%qIPds>v!Gh`^c%@v>%ZuLEysWTX|huvEeP;m_dlG zn&@ANcz2UUHv@IfjUDK@;Db1QD=+o{Ep-h-Q9`x}0*o$}2t+%M%77?NX#aE})6n}w z3YSJExUdnPOBk z^S=+^*io9DCHf1uqc|Trm^!jz0Jj4^N0AR`4?yJ(69FpoFWioyu;B{eArle+IgtnU zOczMA#L&Tv04XLXDkgzx9J&GIOaKQiG|vLA!_yTcnh;%LfQh6rz;|ei+qhlk{a^jgIVV=9Hb$F6 zc0Dj3bb2j3;+VNv=%3u7jDihdZg5`T2Rju`q$LZr5Z*=Oslk7Q5STD6bz!Lxx)M55IL7W+ltGGszrxU^f^}q( z!txPQ6r@@q3=InBv_4|LM3HASo@XR;3T1jN#}J}85y`y7s8~#kZ1UH@!#A7`^M_j%UA*IdE-y`8r!$tZ9D! z^X!+u4Y}~B+m=(@5kF|B?vyod?y~pZ$fv(He*C?p{aMb%Cyg(i(z;oLuD`B*^*!v^ z<@|SFp~0&7(=WwuoIQU0HTL8kzYRxAEJ6?b6Wx}y zxo>>xnBT4i_50AxAg%XVeM`}N+Pw6B?0zS%aHCuOSqsF%hmS;}#=B3u$m}s+HtRgR zz+=`$c4ez!)>-4yYpTY5;=*~No^zBvTcml@>8a!BdDGQHHd!Yeu}nHD8?{3)W{-C6 zCHv}!P%r4e{E6jJ}2;G}_UW}j}*CC}zt0R9Ozdl~h|!nS?zZfe)~*HeU1tn|e`i+&PR zZ)fN3h+OiUWA8Ub-$@v{n$HWxc$5)}X3z@eN|F`|yQ~sqE_N$jWhkCUi>t*&4B};g z25gqLv_;)(mO6g|KdhMQ5y$aM0s|@A80F%dtw^agrcY2OjKX{767A_E?=*~CBHbMn zGJ!a~5A+Zb-Q&pS9IB}&w6C(NmnL2P?$&zCC2_POs-73sKme_>u9|Egq6ivIw~yoJ zY{P^#AetzKf1&@l6Sl*jz4m@F&OFZy9|mSOzA;u4UCfRg4ImcpoyTyC#rpR%_1>V& zZjp7LMRALQ z9$Ptm*5kv6v3B?>!gQ9* zjj76$q|e2tE~iAyWLheOezm%8yVzYX3wxfnHr-0P>9nkR=hO6%4P_Q88&Ma9nBr-n z#Z>4MXQ2rX8g#0x9)6{nS%GA3e_fjEs1$q)d+lCDw<1Z?7@W><*n z6&PLl4lewX$8)r`Gi>|5swaMs7v9lSzmskKY`yFZ+VDY;xl7$`zcQxYg(yWKoc~a_ z`o}KbJt*P;&wyDx>nucBK@oIEGy@R*cxLt~$C+3s;zT?{CcguZpOxWPEDet2UH z-aQE7i)nHdP5|^ZkjWOL?~=fCpE3F{AVvYE$X!?r&&h~eHP_J_?^}Ymmf`i4imr1Z zBNVF*7u24m#I93!yX7|UJVt1R{%bG}L)R!ep#2k+5-5L51>FJ^X95@|5-4~OhYP(Z z;k_VujblzhlZeED2r~t*?T&aPA(mt)dy-`D5!PPR4}9S>@tI5D7=bB8rf@?Ozgc`S z*nVX}5O9hZQ|anJ3b;y{CX#Rm{G^fTZD9-t{%S;(`_{9auI@%Blm)gLCC}R=`&JXJcQG~o*Fw0@gE{en_?>q(1?Vk z0B*+tCPg(o5Cy}4q<2*AjweHYBgC+SP6k%Ap}eLuBm_-y2ha`%RYC@t5J>TfY(`uUQ{6JpW!J42ojF_E7ADCm@{|0I{%G6jw9Px{ zH)9>t^q{aG%>e?K+=<)qs0#pmxE-8%=N0Hg@=(|Ne}UUkn2m+}esqq5UIDl`|K|1| z@$%nsJM8t}?B+k?|Nrn#)(}~83P(u<3pR~U<^n%&fF(%KLJKsRB7GOGCY`NKrYfSb;t;GX6cGhd1U4+! zMA7(zL>4N)K@S6YP+XZOOJQQGZ7jWmsP@KdeFeS=eBT7fOk>66n0pL%>pm1%M18M1 z9mJmKyk(AXQn$)3s}B^cJrOavwab=s{qB6sKGxoK+o_T*rvt{%_i3Cl;o98^=dRc7 zKEC4Ko0a$8&Aaz>LHpyDEB6{tw^bgwnzV9H+z;DRe%KX0c7bWor10jI=_~fc&fO5* zyvkZWPLW&b=+j`#A8aeGHFdA?>pNPR(MOe8rpfB3?>f}lv)vGm4|?=L@jeeT(tG;fpah z?~lCk;PAVzr@sDi`ls(#KK*v%_17zpUtf9g;litr>mPocdgj)mr=P~PKW%#Sb`jWA zU;VP>&G)TuzO8!v4k}X@++kH-dg6N|x?A`m=M*vtJr7JQ#A~M)8&-^2%oah93qWyxw&C)$(`Wmws{9 zwLeK(vDK@7qsN$CAjy_g0@hvZ*RmUWOLNbD3g7Y6W5KELRp;}L-W&A%bL00v#(aD~ z=l8E&pM5KQ`8~1ytzpN-)ce15dE(4?yPzzXk1l>b3Nmde)iDW8X5){~CPz zxA1*G+sB<^7tX*X^i#%`+xjjO58f&(TcPRIDlgx`3UA^?PSTdI@EWltq~)@q=`yeS zq{qA`?lW(yrk)Bv{w3y~Gid)?$$-_0DMu9xFZup(LqBG(uIad9@H$GttaNbZo_6Y{ zUKaJ;z#6>Hd;6WRQxL&%Pde|KZt8Vb?>)xG%i`XvB#BcAY4gLDz4EHwEonR<8op0f zvyIVzMcB4yzPq34n)fSu%{KR(4n>Wk{3+soKj_Bn){H->t>0&BIBcD8NImJ0wE2V{ z4sX)wkcIbxmOW8UzZN-ZKdbvx_i4u+n_oFLJ<*Rj?9+IfSH7AYKhK!EL=e&sQAQx< z?%dQCb%!|_03+%N0lYfY5ne~#45zORKs?wGE zirt3co0z%N*qP%v>9vSgI?)nKcaLD&Vh~#ps@qXULTU%b5=HY%q&kvtrbH;~fvj?p zC6wl!$V9_oD#iX2Xzq>VvTcD&UlL1KBcA27*ak}C6n5NVs&yVWah5!AD9K#T&1>c5 z|3LH3X4-Q#J(hYN{Stc48MyfgHLeC?BFMS`aYVi#c?#Jh4P);DL=(ZYl;3qZKXn!% zawG`v8IhAPk^K#&YZXQ7xbYJ()*+tb&PH5uhRl8q6{SR5HrY29nwub!nqx~rESVI0 zKA1pR_H3G?j1<(M$X&!uu9c+q6312nBEp$7IKh403T6;J)A6=ATGn*3C>`O(1H-Q_ z+{H~=#O>OIWHhkz7O{KpP&J&FHeE&H$`G0XBTJ;%`d-4Lx z2^K&vKomzIv{ZJ&Ch_1e++h!N1D_dZIoTN#p;Hi=l2l2P$$p~{NfOuS@2ZYb#@B;# zgO;?2=r@UCsaIvLllDKu?6QNBy;n5p8n6FaTIeuDALy#o5gc8Ruo1$XN%-JCh#_4P zH^?n#94EGdnNTjvfOhF3vMnBR@0so?40A5YRK&2CvplPKQKNY&jhv_|k|xfDVRnHO z6s<2J4Rz7kcqR{#)(<52{EQlY{E8cAARh-@hmMg8>Kg8HV+?={m1bw zkqE<$6WoO#mV=ku>3To1XDFxZS|p$V!TYMSXQ-+m7X1fN)ch|!L5_d}STBtT^> z1C(--B{7J+yQa$&BG-fAf+K>T6q;qbZcwDJ;M;QK$$hx~V@T!(RlntAMG`_#BS|f! z&>wVp=L9+Hzz8gI3qv>#1auTo7{o*^lK?dVNdmPC!7Qi%!$km&F!{hWl+-#%&t{1I z$b2iDDOr4d(yAk>FmU2uFT!^I0k@;joeK1L$AE+xngB}&&nXKnRHAdSOg=QOb`H1?rc{9LumzOf$+vgn zcEH5C3dBpIeN2Dhc97YiU&r5YJ4fNkFa#qs2+4s|c@l+01Qd+spF;>g0i@ih zULAa_L?+tM3Y0sB>xSSMa8z`W3XQS{n**8&iRw}y<{fbRpP(IJIgG#Ib~M2T70LXM z;C8^~C>{n<{V%~xCvFFfjYd^MK`VfEfS-Wip}7^7DinB%m;$mQ(DO?Trt*pE`gPt1 zUg$46M@*SLFNim=qSScejdjyE^Ynv$(^g?AaD7}rNQKTiT?sI;K}mIxro)mAI<@&* zgeIN_QvXiq{tscyKlyfm)_)!+EH}V_nE)tn{>|D!+lzWnLQ%g^_pf4ueV{lzD*FMs&D z=iZZJ?>}7l_S>0{Uk^WjfAq!Y!%sgSdHm(v8|RTP-w%EHzW4P{C*OVn+}`%$LuEslL!Y_{!Z$_g~F>_-^sNw>zJHIr!eW_uU_xU;MJ>>E~sSKaV?i zx9R$`%Cpyd9J|o}LfhO|Ul+gqeaNMIRj1k(J^Ok3%U_!Ay={HxoObQ;sEfBI-+ngd z-t+Y@J_E@A;lbNoADpcZ-*12CT>Scv+?^LxBj>7X)+z>V)eSjhsM@9Ix!7y)deEgv z`mOa^bU9(;eOARn{p2l0*WUHG`(fAzXZ_pXhJADv-+tf!$@kQgKSu3&XkB(CVAEqw z%X#a<%f2laq%|AdnvOem{1|%f*T94CO-rwL+4mxR?G5FWoxy8wMs9kbpL)_`##P3|(`_GI|HOpgHC0uO9oI#^yHPNf$+9cZHmJmHo!)w*7%&-6Kx-b?TD6 zw$YcQrE4rbRwL<)O!J=kj5)8UJK{0^EHtwS%2!A2es0;?u9~vdqjHg|*JMrAJmaLT z5&NEHTz5KJ@9XOJ1`j_H)^s|0<(+`l_uOWj6IX4uk2&cz@jShH7dv${!Vgx~to1wm zYsir|NL0OB&kgM1>v5^8IWep8=KikMWW*zvmORF5@L6TnBW>~nL&0T1-fm6V$VinPv2CNq=Af4iu zEC?&2d*?C1xTgxHcqB1Aa`385qArYR3`KPQF7DxwyGSqt<=evbSj>&w#0*{`j9R42 zUnc6YNH$=*x$i}?$9lwTGEv=&q$}0*+GDOd#PBJm>brno#<=gT{lxDco9+_RhH8sO zLLC64jJk%75;!2-FN`Ylm4pr!^;{2mKIHI`nv5#1!gazfLnZkO7+I~X_-2B~FlPP| z{mPfRG3N;p)kMz($SETGK`gniz!3*A+IVvc!7YaGn=6eRB8+R+7cAo^4`s$?E8+*? zyo(`79C6Rpmo7q62W`=;o{QZI$MAi6kOOL&X&Yr}8{vaQqjx%1ymcRX6{%d{wfV>J zmJ^7=6D#nNrjGWQ+D=LwiO3-bFH#ZRLQk8H^)8e7j$v8j$>vCsKAB_5m-u(%`DWow z>70O4l!MioB*DpKdpb9?2!dsx%9g52rMu-rxhmEXiczJ}>?18zk6e1cAP>6{H0`r( znG>Hf0%36xxrrVz1o5mw)TuCIB0IWiVj4j?gCy=_Wu13RJt2zSibO7>NB%&x?~;|b z`3zi5R>hLEek%WH#3NZ(e$>DIFeRY|5r*-@t89fcnDI4?j7n*C89$*bV)jQw21M?F zpLIxo>22!?= zh`EIL7J}9vG36kZe)PCWoXo8V0bHLElF9?RE^AqVOAtpLcs4P7e}oZD#BoV@9+Aig zJ10npU1-n>#7DRal2oAz7^)w8!MpV<6j4#ADmue~fJu!3U0RU;??Dp9Ny3{f4L>41 zPN@f72p*=~Vb!9*cN{|2VtFoYMxu}4C-B$TA0Tq`ir|B?gQiQBOqagH5| z7cNZYpoR%R``-tuJcmI+#pj)Z8366T#-p+75GDitO*Ae%(~;Z`&!Ega;C2iwFi=rd zJONTAfslvBC6KQZ`2vlDVTnOCFlY=9kwGOwGZGvmh5*8E2#vvGhy(!SXucwd>KVYg zD?#B8s{mjtL{r((*cNb}qR<^uW#H6M6;KCw?qt8whb|~JjfT>6=-wf_26c9#s+Ip9 zz8$bM09Qb*DA09*LZW{#`GB%r;pp)M5Vt_b5zy}N63B9dmL-}5PZg0sDFl59HviD^ zD^=sRSx&zf9{X)>d5`8G<)FGM$*GU-t?vxu_xny+=7Mn1t|$VWIqV$8?O0eQ=mhPs z;s66pu6-t*?Hxyg2HJEE`20UXd&hyIR{+KB|8>3{J>8Dm|37g%%s^q12unf) zkrD#IC=xZ?2P6;6TOgPLS2dI%kfd6XPpCRRo#Y!r)BCV=J|IdbvD6UP$x~W6T2H#x z14=qbVhdDzVAT%1!i^|VLqssbg$`mBWQ#!(JD#T_@b%y-!h+6Fs0D>20zas78_y@f znp({842SG}rbnP8C{+@gE{^CTj?N_qB>DCo898)HKviSGrX$1lUqReL8A(NC+N@`Ty`irtk z4E^hM#ntMZUXqla;`9oBTD7fYT%Sd|7vH>h<-;$pKK}aStM~Ul{dDoo+Y66=eEj^w z?nigeeRy~D(c^0$KDT}T<=W?;x8J>U_Uo5(Uz|HZ`ts!U`p0k2zWjFQjq~b@UylK* zfAf38u5dVh+uRj}c^J(+5&r=`1AKUihq&u$wkPkoIUUlHY*h>$p z&bF5wxm0DN8(I5RJPid=CyYUatb`B$SC-BOG_${w=AYf+nG#<_@5kF+zM zrXO@hHykD1s9B3;!}eO{U1OK6miJgf zEnV!jxJ@%`pJBin@0xw4%7fgrg~9XN+_ycIOg$6b^1wdxs&&D&g?IR>{B9h#wOj@joTNpa+NVkhWVQN7B zdRH>xBs-}^95)j56%6-o0{>o+uR@4!DU7vA7 z8hxCmog~&5*#ZW+s`?9y*4P(5kuSXvx$L8$*EUSrs_=ua6P?bW@82_iae8dKZ|Jej zRCQF4w}zZF-!SZmvTCoY?{@2$a~=!ND+?yN7taxn*vG6~2l00bW4tn;kRO%=Y%Mjo zA1$~y#vDzug|q##@s_SwYc$>%N-zdu)u9YcjKJzcu?G`^%Gt3?X(eZ66JOZpKUUTs z6%IM69d-;8HJlYV0Uy%jKJcWnWWT1MRTw*pi+Ag3H5@A!TP)wX8I~j)^bYpbamg&j4tz8Ax(_bg{uFu87W0ZzSptFqTorM^R+;e6j=5$w!560aer%xtodoYc?IOc4wR~Fx1 z3@t*4G@5SC0umn820$4xBxid167&YT&Q5g$tZQX^O?ThsWUl_%FzA?}&tv}B@5bO6 zBy|+x?g8bPD(@nSDMBxj#Ea;a!?Q+k^x-bjR5Iv%hy=iXE-VLk#%bR- zPVWm&BxF7sr7jRa9;Ps2DwvdUe!0*DP1l8Dg&^h+qL^bSx=5~fAKm0N(R)84=F$B0 zrTU@;h^tN8e@ztp4%zk^1V|!74kcnRD|&#UbcUv^h9EGIlwmB7Vy2~(s7_~?piV2@ z)fz)HM1$v-stSVoZ>q#W6nIj_K6D6IWZHnxW<#B;Ig}~&qo|?~fggk}3e-i2V*oRB zupy{I5MBrCR;tXYBukb^9HyUijxp;nK5nQ`7>D3JS(ZU6V;;z>QMgDJ6IpZ;7i7{h z0Lcsv9a0(T-SLJ*FH6JVc%Uu-o|PLu*HZD8Q~iS3|AwsSg0B1> z$uxk*5p!i?ga{nInG@KL6FElaU4U?uBr%I3kRU`IO%caO>w0x8zJNf2KT&rAwvcurP4wfj_xj^ zEQFeikrX2yB?v4yhSebcBk0gLjO7qS>8w>0>rh0R#`g%Pa~VK6162$1W|%v;(%EQbDp2SU8bj+)uu#~* zmczmUs!@TmBq*h2gEf^4xE)2DJ z=$sM!wI#z&(99ZF$VP{fRP-$!ni$vu*$(_T&IJ$cP+$fox)5Ov01g;d5D+E{n0Hq! zUsy8KP_rmx^=--}XYT5)Tkhj0@mG>Pv03btO4}@kY5k;4U~0vb%Ci3 zC|&+}zL0?llLZuqgO&!18U#9sbkwZcA=-g?1Bkca6)@n_Vf;DE0OSp81OVQ_kO59_ zP|%=Q940g%(}KN$o`&e^0#i@eDSR)m1*0#hfd1tMyMy@%@b~bhjxB6pwgP)YUkwjj z(V0f)LzqXw6br7^zwG6|`3aaCqSH@0AIq0P7cJm+6sxnvM6s$f5EAMMTzN9G&L$0y zm&PQ6)?MNeDm4Z2RW<sjSdRHe=6rAjRH$m-{v*;f^o!?DF`vj;K4a|xjtth5qEaXmAw3b7=)+7iTh zQwnAsnRVpHUAI5q{N%j%)p_OR`-{(CpMCz}JTUM-Iom$|-uC%-!1gzO{o}$bAk;m`fgKN-{hZtTq$Q(k-- zd-u(_dv9y6JQ{T7R^7!1kp0+j`BCGwr6GVa0Kk!{cVp1YO3 z^JMqEmu9|nHr@HS?D@A{pZ{3WcEA4g?TOc)PH1~N{_gAE$8IL9K51;+${4Ur+-)j4 zdd##mZue+8?Y-c#ZSqO`n4^ltSA$yb(u<*>XRiPFo!Yu}!a*y!1C~g7G|T$U=l5G= z7`9nkzRG{}u7HXA!ENf^u+A{7m0P}&F?@%5&IRj&OOczO`fq-un!1bCXFj|8T*Z)W zfOP|B-|(4vSv~G>x8MjXd-`=E(E#V=oeK{9*y8>Vk{vS;yp4_pvALlrA`(u=kyO$Yycn zmcWtM+`I22Bu~Va&Y{-s4PO3+*KZ3{5{R>>sJkuV1`Z^8b$5-f<8@m=3K@a~50K}z z5E5%$b8Bd&GqBlH8F4c$@rM}s=PBWfv8L_=Nb9GW1%(t=eXq zaF`uAkSLF!nG+!th~`tk46cBRLp)S&S%avaiJ;l0dBt(P<9I$XWcOH(TQbiUNcD*n zri_t|zNBh?Bc1p_RI!a-IFH(OAv1O?MjA&A9f6A&2TZ%B&u(G*LZVLv)hC}5l{l+1tw(eTY)3rZuP4`0 z%rfM&+zP1fd9L~tP_PR?9b|II9LbPg>k13yx?rLSalaV_Tl3H0oIkL1$PG~P~SQ$5I1V5sI zmsWum*a^Jp8YNZb!%uIb^;$-cZFDh})2(G3-x81#K?J%aun?nkgNR7F&OufAf(nIV z&J+draM1+1KyHjWnr7?DG3OE_Ay~1Qs4@{$Ho)y9kseDYs-mj{<~k|$Z@Im1>nmSV z>L5M!vwG-b#BUDMYYt7RqmLyZO{32>mj2L!*xKPC?`CR8d`*C-Jr;u ztO}=_3rL1SyfTHNkArmt7fA9khf&;u$XYu=Zo!D%F%lbI6$EA9s?%jsR zBnlfKOQ^v)y3;+zuoFf@X$325t}<;dM7T(TiZ$Mah`dPD^EeVZ4KbFwvO*DMIKqp^ zkRd9WiNkX_G$D%#;%6YIIUFFzuq?LNPn0=ZGwOW6gq=_yfKWk?YIWsF5e%OR*{2cB zlHL!b<rWUfTyY2YHHZ~#3@iJm=mDO1R%VuYkbh(a8Pjpg$YhKXh9 z!S^mjIB1YBj-_!C#R?K<@DssZhqe@tTy;E=n5?%f(?B5VVfqIEW&U z7CeBcE8Rope3=utVhz z^gGN2;64oC;SoG|goSvP0wM4LZ(~s04zOIx5d~4Cu?Ve0{elNg3;~bEq@baWBn*)O zs(z{fPm|(ka#xB7M-yYoJiypcZGeYNY#^Wk2Lm_+lP?jBnfT7}f57bkq5|%|7#mI=PPyZT9yT2JUt74-p{hZ*uqzbmcMRAi zw5I-5nF?=*(Fxb#4zXjOWVD*LV`u;TV00(2tA9C=|K=w!AVVUc(MGOZlyV2Gjv7<} zx_8`%KuCg6_KVnR>Ip<`CKgm67Sf$XsS% z63;J!WAkBJg5)7tf`Al}U$WdkMdp(r_es!)X3B$-2}VDfXCOZ?UL2k#j>u9*=ka`F z`Hm=8If(ImZCSkosvAsI^`=1$e%0f&sl7ygsnYEJ{*80}nwLZ`T;FxswtkzBR2;a_ zW#gWK>-Ub{e{OO6bI``jIoIBD{?_u_&zH788*}W&(7orEJpMfWc&zb&+w7&MZcFq)Cy=oq(j^vSlPZ+?05{6pFdar+g0 z78?5hpsiZUDxJeBohvH)A)scfeaLo2@71!RmEyD(RptUtauYPvyOqq76fI^A*r}O% z+cNc*Y~U_)<7uzuk3x4nf?OAN*-~XK2u;uXjy=XHT!=uW4kR~jedV|9t)YC2scLJ` z=I5%VSM9UTm?oT%^=|cS9xX(IvuV2G%!-TzoCw>aQ;xznl1BqM0?YALl@h$C;ePBt`PuLl_@2PpoEpCr_ zf}(}W@>XojaCPH4`^l&JB^Pz04#{h_3P$d-w?5SVa8CtkZQAi`*DMYu>JZlJma}`h)Ibi zSkizfW?4e0mLNm{YJ@nv#tX#HqO_^*TfS(QepJ<8=H<-gXHSurw1ApgtOx^e4lPLh zf<@wP%Z2H4n87uo&@x$gcWP)J)~^&o1;v>^*h*WOF~iBBeMzBxTrDZk<3^F%7y$!x z)jR23nvC7%iu0EUGUxe?I_g=zRo-{K+mQXdg0;c{2RJ>pD|)Ub`jl|I(?FC$up~o~ zE89DU?h{Y<3?zGofuoie+Q1GP&G0LO3`U5T1d|=xo(stsB$Yo!=ZRIh6ZC)U(QBCWBC%Y$>7I%V<8uGJ_h7fB&T9E&j~K*cbk z?}>C-WZe8p)%ud3zC&SK!tSy`-gwp}?;zr}!Dsr9l=w=iF^ZZyQNHr4qG3Ctj|SNc z+doU1UL#8%rpO%4?lO@TTSG`JWZAP^x!wex1Sbo$)E-jLZWlwHz1LWZwTk7_m+a`n z4j3f#D?^!Wr4>q=h$;sn_2oLUg+X00Aas|RFuGutC5fd^!i)U@w-c1^IE4jpJCg!V zJt`@6taY-JUHw`<_=&RigK+$B+L~vsam&HTjBtGEl0c$7h2|JR2$};`v&t?LLAvZ& zwckAQt+2-dM%sQ$+FgDAd{i9n$^dBxBFVsOitrkArGo*JAZrYS%@Q?!2-_(3O~MPz zc)1rSD)Av~!lrK;tOgaxS!gf&RSIMINK2$KW9E=&_&Nc$hM zq%|Rkk)1pMdf2C2Fr|W8iAa-@X;NUn zacnPT*kVEUU6-6InEX?!zW2=oZj+LipxP~gov5%eWNrj?lr(OFIIJF_dIJ=~5TWRk zgOC6_NvPUVp4UKxrAG)xNGk%;AbijPT1X8zNNIF3Xdzt5q|Who^bTP%Bszr5vp|O< zjvgv6on{+3lbP5Zk%rMDceDK$vfKva#pwt?0wa&aE5gCljL_v|vJ|EvF5pBU^HF)f zECnK)sETQ>j_Hh;F*rpmK^Te%Vi0}^mt|mCBe}{594|@`UV{&-gtA(QsdND;_`l$G zlx(N+0HSwBL3X0|P6{2K0npwF<577$fXxov4y~X7J|W-{)%=iXD0@$VJoe6qfcypE zX@xDwY(Odu1MZ+v@X(-&=fSyS88krJV5en?e5s0VIAJszum*Ax0s&O+0KWn5f-nTC zvp^vOSRKUeIHsJ)Rbp5&5R1E##I9fg0KObpY{28LsNu8|v;#>DC>qFcz?7g_fdPQm zg@lHm19C(GD&Xc0d=0Ne2MQqJvp~rLC0L+ofhhxuOThrziGG1}N9_r)6!3q>x1(4c zKrTwxLp05wxV`iEQ6E7k;044Ed%$(D-{_Qqf=+@kPV%t6rIDO0OS?Hsi0?$E-}DSLFW{z&Vf!{ zG8OPSoDeMZxS~uyIuU_X8+72oTY;`DbO>8emHS_mdxr(O<1%!Bf4ENYLBNWm7Y6nK z1M7-`&nEz4?|29=`^OEP4ZvAK#wQWkJ7} z|KS@R%ECa21Trn26fabuj?@mr3q(Pp!7>6lUFAlBtX-iRmUlG~i4xxsu}`oiHpLhg z!#8_Ly?phdk!}$&!oW~|WC}Yfo8T8m1W4}_qK(N8=srvxSEPu{hoW$aBUu@k#x#X- zJfnQF%Y1tDRVL(!qB4nI(E#05(OJ^K1oya1hHt#NYd^p02J^s?mWolH{YPoC%H**H z@`};jR_wG_kM|kbRJiLz_XB79>^eT-O#7I#*Bg#s0_eW#-kZ6X?k~Ola^3Tv=iPn@ zvF(eW{#<{oJ!H^iO=2%odYQd+XxPYUvW!wvP#QO)i$`w1xUxEHQg?-4lF~m}ZVVF} zL#3XvJZQL(gAL!4?j3JP>PZXfFG(A&?=^|tWe78KkT7?MFlB(Pa74tEHT`#-oAKcN z6;?m<$kA5mWbFce}_MRth6&$=; zdi2J?V>f0!{51Cbz2p_!hh2I$=*&yMse6Ux%hbcSi>f#38x9y7ws?+3V_pn(+YMv) z`^-G6s#-@)pCm0`!!2l$cAIJJyGYT0k)YoK#eik*m1{LaH@h_+){Q-8Z9J{3*dgt) zij}`e*ss;U=R9WmZ1IQ-aa)~!Q||N97peMhHqUE|Klw>8W}A895l8a{L+x(JOk<}t z1Adk-Kb`#0nRdacDBlu2^_u(4tJ3CE#z}`|Q;*6kw)if2063o>J1TJ6(SW75%}v*& zU1p00uT_mZ;4|`|xp<+rXc9Crc~89L)pC&6Z?U9dpZ}3B!N)&&O*`UIwSm)hzM*k1 zzj}!vr$x|Z3a9H#WA_!RgbDJ*CdhsfSFMo^Tm^+4mJz!{cfJif`CUHilCoyMuHvNE zgzKF0rOd*qaAiXFe{$Q_X06|47_`CBxR;b%E2>`*booc~x~sP4v(oBy^vZQUs~-k$ zd*{FYnQhq(=v_^|@k>OTGvMO4;M4Dot1l{+oO0XL7PS4b7GiD6H}Qw;;rD9A`PcCZ z7y9jZ@4omhDRl;2uLq|aHDekprcoF_8WUFK>R(834>2T9BiJh`kk;6x37{|1Wg&c) za@9@Kly_1f?Jd3aA+?Io(ZZ<71aC+_FK34~6Rq|7p=Zs<-UlALA0?Z4dk|iF~&$&08=Jh|yfL&$HhqU>KmOJ92g|0r`ai$)k@CJTx z1H;~jVT<880ts&Zh(3y84Q81F2}WN;9mck06Lhe+@1y9_V%h&Id)jr$fW6|RSy16B z8~6h!V<=4>;a=J-$ZF(eHBl2Lv0}&3f+|E|y%iC~rkr|y>|lD#2=~&Z_R3ay?i3v4 ze%O1vxW#Zi0-=!^ijct0K*^q^%%8{1S&Dd7nEJO`DmKyb7PyZ%qN+LUKH<82_*n=P zLVQYaZm|r{RI)V*rw?G+!wDXtQ0I!bhT}c5H~~W`_G*fwh+s=%dZjV_vKU@n5Fv)o2mG{k~FL{kQ$RKzYlDvxu_G}2%gn1Aal6gSRVeVllx}~4=nKk$syZnf3qcd{%dyv*3 zpakZL$&PUxk1`iqIzt=9;dqk5Mqm<_vb%3oPrIS5zeNdL#|hk`wrxY~%UJ^sS`UA~ z4_!(P9Og0ku4I*yT{IbIj??)kqTb%5L8^ku@`7eu>O@{rH8wt16xy942}3iMCBeRP z?l?|6_4VyY#B8EhHOsGrVDHWi8!QQeY9|NacIeoG!~l#YKopqC^G(4Ud?C!AqP4RO zVGLzBUg*F{EFg&laXYZeY#JZ$k!)$a!mN2Nt$FJ^>37ZOZ`{V;eI|ZFLMFP{a-l$$ z?v_Qg*6Qy=kfhBNeVw#k&R{tqeL17T0#QjiGjh0z@&GidXJrF z8$MmAau2Gi_HJ0`G53HdGC>@ZL(lAq@Zk&6QMFP6_`GzXB)1F@5dqoG0pXTs9K$;i zR$D++Ly-HSA{<#D%cFo5Sc7;C1yTqR8eP<0IH<1$m@1D))ENxl{y0Y-E4bE>vWV(E zLC|Zjbp20`Q?F=6JzaE>A@eV3Mr`K<_eO|j?}77#>5Ygu8evjN6bi!g7xdf$9%@7y z4g@t>B;m+tpwn<=c_9=%j?AI4*dQ1pVL5oWW`4vuMp8Su>p9MVC-Q+`1u3l{Np+E^ zTxDopgut324H^IwPlOwSV0ai3kw`|pmM95|=W(@}T(@i}GQipU;*4FT;iG&(U8c-L zr~)R7=7OPNC}dX(5lbPW=#dBmsAiCegD?hiybTCWjW9eAjtMaaBeFzS&GLb zgqwgcz%y$`Xzpmc2U!Xzm%`E#iJ-Kn0V+nFyuui%e;wU(CdO}~BD;z0*ORD?#jD{8 z*ihk(NCz?`7p_0n)|C`B7}8%^x;R%?_TO>43xfxv6So83{&(CC#5)Xl2DX6PfmBER zr2hcz#Ev#4Q~(2~L!tprefTTwVchJG$L1YJxEW(o51O}*U z03kzMr;a2qqp7;07Xbh*Fymw*FzVpu1W6G>?qHP(G&Cxc4S6y`h}}j(ASCvnxE-)M zOrGF9pmOg3;T=%CQ^C>++EILn3O!KB4ww?KCk5g-0e=F6j`H;=EldQ+jowhaiy~cs z^%#^x2P6#dM6=L=|A)Q&@3(=sS5>5fOvg4XSiJG=-dx%VE}WE|0huYbAJHZI~n*tF*#hS4i!x2LntzU?+LxK z9gpF~9U%X2$MQdQ7sc%$m7((iv;)TusjB~rwzm#zD{b3;7fFD)hbVF4orJd*9@3;5y{rTirpsul z3D+Tc0by#;?N~2wid@IgSfGmmenm5M4v~Kt$LcQ+i!~*uv8{eotr2v)PiQ2~=IdAC zvV~)v@fb@GCp>n_{i$uPthf956v!(Lzfp2^>5nyK|po@D!hle#4JmX}|xv z;n;`kb53S`S~&T(W7xxjPk|2Yebw3v!zMYexH) z4bYc2hYX)!%Wn`x=ZK=SwP_Wqv~o97Fk%SA2PfcD%4pfOvWDT%x*I%WMcnc&G0V3& zW-PZZ-4Va_M7J%!8OAM?wv5+}nr@%5G=0~RmfKHOzDM_dM28*xRoqmEEzU|^GJnnA z5AVHw_Y_6{`0)DNtH)DBvlPhVYn_U6jV4;P-lgAnV5=O0e} z_44v7bmv!e*!gRYUPDXgcaFdJrq_+9{jNN&K6$h3=+)}u*Q<|S%inb>XZ!K8edj9= zUdrEoGGpW6_*HvK_FwFM>2F|K)||atd*MOg!mh}UeRUTelpelXxc6+su^X*tA4IpW zOqC*N&X?3| z(9V1qya82!8$5oJq++pPcU!1uonDwh% z7^UDUP1Pc1U>)CCD(g1TJE<=qDP)29I7^&oXdWY?PLTv{BQ2)6XH@(C3|oUrYYtKZ z`-{T|ll}WK;zq;vv3Jl!PvKZn%qmX#VI+7UB99_~ozlxr3F{Lv=@z5B6S7^5#Br3| zX_Dsk!amzHGp=-7_bRayRgd_CS=3=1e#AQafpo}mM#dDEH6?W}Eqo$yU2v)pmc#T;m#VgGa$ii8w z^g|C3b7qP1=Zku5p(IbRG;Xx?-{Y1%UD|uMa`n)kJTC+}Z0@epDeIB|OMWWYvnReiqGo^zrcKaO-e}bAjZ_yLxYKEQ{jJl|( zm@Em-F@|QqZh}|tcv0~TS>+;CpRJPa1Mn%O(&T0@eJ)jCKv)iS`#Hs_FX3BJYUvtE zSYKX58QwpW7FtQMX2C!kd@=xgB5KPq5M)N0GLRq&!E*g@A`1?5 zyFi8EgO7qlun!8Ig>uI}CG@=PUHeen@>DhJi?;bF;^^&ZEua{)iF(+on8(RHWN3NH zZGA|J7>=0IwAot_%@TQ!BeGtnDcM^@W1mpdh9Z2PFeQZ;lm=b2R9!L@?-CrT9EWQ& z6m|g+rkr68cby~v5d6C#YF~nHz9?fMKV<>}?do1^(Cx%QJDh)`oIRg-HQOobB$ow( zrK9>+(ah-{rX;F0$wTA|x}9W?_3%w3`=yYz(JrH=HI@b2G13q>{~`qFD0Vx2@OoY6 zA6WlnL>lU5Nh0x7Sdky%Ee5E9r!2r-lj!b~;3*GbXhYcMD5^0Q+)y}aDAbVvxe+jo zEJvA7+7wauIiU6thJvmMCIep)dX9vk?YkRehZ?GPLF)lYl1f#T3mVr1@BS;}*c)O) z2ZqU@+7fYUpbz;YB7-2hk*O~t^5dYGh)RY5ql}O+joWhzVoi5*)vRz30UN^+(7bd6 znw&rfl!r^R;K^q9pgXLHbKV)})qP(`d*8zbPlD1?f>`1vRO3ZzoWM>t7BKBq2*Uze zj7T8?dmP~E?o_w}Z9Yt%*h=QvfExq{Luo499!vDZ z5TNA~?@Dyiy%Dw&0Ikr33qVVTcNo}v@JyY%R|MD4lC4z_qtioW} zj-v?OX;K{Mc7zDNafB{KSRr1{7E;0(gd9t-*O<#DApq@R>j->5q9g`do598dKXHgM z4ins<$eZnDD}#!_|IzJkU_Sq$+kYY)e+u>g`3Q>rr;G;!%)e%sAG+Ox!0;q8;Q%B% zq)p*~D?rHqdARbYki&&_4F!OZY?ncu2;Q3?BX&4r<@tx)u`5dH<;E?h zD@t)*VPIH-pAlH*z`Pnx62zcO>w)gX5=jgZG#0sh=~xOv#Cxz5OsSs>bmNW?-N9W0 zOn&gp{E+TH=85rAB@Xl%@Vdh^+9gxTIE3Jah`F8?En?PqLjyaAUXI54_c!{xY~%*^=t+?M1rYB z3^Zi@a^FsfYSyC55aZ(zY6@P zza9RC>oo)3sf&IIt07oHfY%5-Qs4@L1OfUKA_5ULYMJ_gY3z;DO#6l`;Vz!~lnn`+I-gLFSmu9gOdD}o|;z5&9h zROk{ll=l&LFJ#B05<}8hNj2gg{rJTV#=6$v{$q`meb`C)ti&8qb~&Q45*-n|xGcZw z0ZBuq3X}8k{?YpUaz$ltd*cvkMg@$-4aH5NgQwVsPKlnkCZTPqdwO}!nw`u4`Q)e{ zBFU(X8aK1;-qQhRFBfdwQM>nW!|tQwFWv96?_BlPBh_1vCXbuX&TAlaue0@@7TPq$ zC#@$dE|VD3O&OMDQv_flrOY(#nx*5xy3p%5gZ;xHJBYne>%3rT% z?>cXty@`?C)4QOLEUkg#pU$wvaY9nX**zQsCfRy*SZfz)3&udzH8CPv+M`)JYz(tc zOG8`x-dnfspx^)a{{Ald?d;03_4uQ^zDhg^%c@%@@7>AHpG`;_E9tpRH)M-2e~x0nA;W@K)@5&0 z{dQ>zX881&>pg4}BtW$j4wxn$Rg5|y?%!n|yoXi2IBM;+Ilo4hL* z`7XO*@3^DxGe=cB56t$u+2>75u1N=O^&hjJQv(8EvtsaWzwzgz7vFYle=b^j$Gx$` zKJ;*S$8F`blL2$D`j0uOAN`yE`hTLfJdxC|GmJZ;sO=KeZGv-__FnEBd(^Syrq`S! z!hRb$)ho=yeqm)yFizb9oEFFK+kvaDcn#j{Jz;m==}&R{ zUWM#=+U@xJfDL~bm!C^K_yT}7xR{Zcpc-CcBQ>lCE^1iL?oSc>-dNV%319n<#F6L` zJH#?*kEbaMA?X?6eKa|35T6t!4kAbNk)_X8C(qWUPM}5(4V-yHzWly^@=adu28Mr& zAb0>`tH(zVCtAh}Et7d+Yx(Khd8u0|hMpoxkXaw<1?eqW3^sj~VdQ>U{T8>RF@nJ> zZ8Hy9Ctl|C`$IhRWb78yKI1P9#9 zAjVisayEGQHtbQYc>%4$^h`rw5L$* zsbJoqnnUS+@g4vMF~!4RmgQedu~pKX`2=e>k|muTltwbAFsxai00BYoCUbcDgfeu= zh$9Wr2at4njv)x~DI_MWkQa3#bclu4n)g0-K1RdNzQq{w*oJD4zzVD`8>@CAk`Q)q zGb?7gx_ZB;V4GLmEKhwi-dG~a+obAqS6j6cBXW2WuoRZq%`3_i47Xw#B9c?p30{Wo zWVID`Eh#)dV9xV=hhrS$Oru~T{gBaeFXRNO8@V4*_`x*Wldq)kCF;^ul)w^1pvNej z6yR4&YgADur~&)s3;zi^{}ofZ7BMWiF+Oty;+l-4VhI!fH^!x8A=dGyYWNdQ+KHj$CqI_ zQgEtk^A7WBU)dIXm5urv$vNlU|7OVSzlgRTh&&TIXQ}EErlB{^*!AJwS40Z@C2ZG3!T<`AlM5%2ETTbLcw}_ZfH9PV=%Ab7)A3Y5NwXj4o@MM^N z)etMjS>T$c5td_7dugC@f3n-$ASoKSfvBpM6S55Sc|Zf7-a-6vR;@t z1jjKWOcPz3fEBq2$)QamVl z0GL3F5*|juSTCkNiC472-M2p?Ee1#_B8mh%4TyZeIsO<^Q*i_$+!jipTwrsq9uYgC zo{wZt#XE~cp?xsSa9C*I$r?I41mSgutSeLM1V#0uc*`zT;M0K-0?d80HI&J<$M4yD=8rZ5BR$wFewJ@S+iXs^gFP6PZl(|3>))&?h z{~z5B*i5jXyApi=Nu>U~@^k#|8oB?_?J#Kv@F29f!r_|80$&|eB19lTG{VQ9S3o?2 zfP_3L`1XH#+TE#e9XOn>mL(Dew6~`xs8E+OcPA5E&jtv4auivTP82|WtrDD9I12s8 ze47C3m(LM;0Com}{3z2CO9Oui1ZZ7Clq_PxuUP#YYYde*91W*Drg2{MhT;_tIBy5ZJ8w zsg2!Wc;Q`60i6esWrbVfU@Y)2b?3)j!JWWK!&C1{jQn3NaGRgUk8rW; zsrY%g78@Y{5gcT*f6U&0d{ftK|G#^Ix17uU^@Aq^x*a%>kW2kpL*QaU@+IyPmAg!X z>C zY#8ESKiJxHkiB_C_To*kb5{EdnG`i)e&gO#6EEHm=sOyLeq>z`Keu|sl{@nuJZ-=A zuy}pf*b9I5+H;baURk)L%h`Xbrzx5ep06q&uCExY&Fp8(XaLkCB38j~SMcjH{bJRb zWjW(!q_mDT6;yLV5~QJNs?cn)Dan%won?M*A{gToBJvzhO_ry+5U(mBD2v?qDTpWq zYpz6`Q0*}dagK9sj+^U{h!*c&OQZujkn|A<&mU)up0nrp&9CV7_aAP(`S{0^_rKqN zck$`Rvwyul_vHP7ryn~0dcOYg>%%X=KA?v_eP4X}hA27L(Q`=8UoOUN zKa;ZgSi#EMbcz~QtNLy-4c=*L?Gn{4v5n~R z8nRB-x<%Q%*)ignuz4H1ajkx2mv!VO(6N@`dsTHSB~|kcts6y6D|t0bBsI(BC3E>>XR_x0Ou#V@)M+VMDK z{X=QZTye={X2C2?%OUlsUAjK|231DHrvF5ki7F`*fOHl{DsFvI^&A3MEv5`LXpmg;e z{ettbJPDe0#n7@*+;@#^%mMGl_14yH@)5heM*T*w?@;yM6FTWUKYO-f*v2#f*PMD4 zy#AJT&MCp|ACP8dY*K8+AD zKoQ->unvMYMu3WkEPLcL_XZL*90?eP(UyV(nVB(B(YQg7vQZJW;t#pvT=CX6^Pax-eBkWA zL-(QTwNDK*?@Fg$GR*qZF#43DYA&LWaM##~T1eOdlRTbmO~KmYJ)L<>-%_GafQL^o z-O}5z`LForsQKgvYL6`pzv1uz-PK{9!azioOfWzcw36yu?~^-CS=1on7({z6WVO_bEd;-+7j z*=w0O9g;qKHFcYXjT_wkTM&67MGg8YiRzn%QwBi{kZOwYR3||Nk_+K(FQZsXm_Y>; z-!vEuch9(!tnDY_V!ZZ{=+sRPAQ9S96n`I@jXk4;Vc5ks=KqRGDX zq5TmWaSJ5{Rp~MK7j29H2Ff>C=?RF3U;ck{1Y1Rg)xYd;I z24WuKDRg1(+~W}MPz2Nz)dqF*2u*`{87NXSQK%#YH&UDv=_xCyJ+4T{{^7q3_1pId z;l&|D6~jA##P=nz^t9MH7+aycJqhOa2!Vz;8<<%qY0)PM!_LP1gNB@WCK@_}2K0o9%fLp{3B1u{R=o=?>zV}t4wW?$AeZB~}8;N>q<1Xtpsa@@mu z@*`S!<^+-^#XS2A#5Na2XMl-7(@gtSrz|W_0I^0dtLz%=V_|?gfveeXr|AJ>gDxu9CiPVrK9>%Fi>VEGbCn#wb$*G5A#T#Aj z5x+#Le}TJyEs!&Xj%asVF5QwrFvbui4gi<2E%6wxlLI%iqyi!v&^^NVc46W;ge}7h z#Rx@1k7zJW*bLq={L$}0Xe9|bY zc%E-}mfqOV-@Y2CH28JS{ zx6Z@ci1mgzfC3{@kQ7>~kI_x2b;)B{7}1nYmjvMW{!Hi^kc7I+L#XOFhA|rvr6L?F zt#Yz?{9a@E0#?{qP5o|3?zsqP^|dBs~OA;SpzYEi^M zj4T{%)gG=Jc!N}S^PsuoDINrh%R0{XLA?DjK5PFVNQ6w%;b8ROkk~ zB%m8%+XA6N2NOINkbs~S!3yINiT_KqgV_8rX#Ocx-4UxbwsTGKpVu3nJnjGD-6#~T z|AO{L(Tdk-=^M1_Gn)SnO?iq&|AqSB{6yvpfldSO9M`1XHDiWwD)^mTeN{h4?%>1u zSGWI=!XT1eX9e=y_0bKXg1r6Dq5&KuaGgYPt#Mq+7|iXiXsXM4PGHGu-nu-dje!d8w?+PQp>kF@=Yrg>W`2SMx|GDm3BmBH8*i>?@ z4j^_7-C80i~L)L^Ye-= zX_bm@C6w4KU9X|BvzBM9-X1n>Nyf@;jc0F^b?gE-B*hZlcjb=mQx}nv^BdRio^|== z$fIXRpZa~}lTUMRzsQ=o);qfwA`ajhV_ClGafHg?$Ns)TsRqkXv>|m0ETbLz_`2BW>TYjN6@AGUqMi_n$8F-j7 z{-R>_JNCl29`kOI$D9%kJi>1N1!>w%m~e$N{h@pR3;dW?gcYt!Y5e^a`pZ7+e z9)G^}*T-8g(QE&FJp1TF=iO)HE?ysh_0E2Xng4X0AUY?K4l=cMFWrMLj$CJ(df4EO89qZW-LE z@86-AxKle~Ct!+0C!Ey}Kf-QWFBz~72y(_5XO%;C2&)%MYZfc|c92VFiW*m$25j}I zUF%h~QaR|C;OSR^1TLxD#%tUx9dXb$@4bBdYiNzp&U#BKT`4V`W^G!b=(kDIbA_#S zC+KI<&^`QNdxDl;70x_rI{YN)kC(uEvClo~JNbxl$exhNr)=$Kl?yJ?=N$}~aNKwP zZP4xB746c3@q)Zrk{(^mvX$EU^{Red%+gh=UhBOlcR9A*q1A5Zbswm2Sx77x&&;14 zJpMeb-wxB_OR@=F(!rgCra7#F>C)mUhIt2Ku6&iRJxb}nl)Lz*V%a_4g%8<%_62mk zw;lgZAGJeSIK!*&T4C8j?ci|g=QyW-@_wMddyxy`56;>Ulr>vLszX?-cM4xDxf7N@|TUy_f^mOo+=dms6NMJce z?dt*dPNuJSQLA;viSUm1)B(GE<{S*1e3+9lf|WZFu(y6I?$XLnA3e8WOI&J$s*sg_Y+>B@lQS{-Tf5!+iPmS{i@2dv4h^*=6sV+xg!~IPEdbT zG4@*g8PvSzwQTNv;^Z^p*|%X`V;Zy`vBu%lfGdoq=yJfM&G65~*i+n{1)$qG=5VGl z5+^CKO+K1*3k|&XRWaf)-O`K|I!P9Xht5H>r?D(qLT5GIQOipl&C8tT89qds-7YO` z=VT6&mbZ#ZhEh{UdL_59f?H{ZDnZgfL>7SM`+7KgK~z@RcReL}n7nQ+q)-`|Yi;9h z1rGjQSg@I0zLA~Mj!hm<_G@Ms(ge0xrX!i|mr2k^F^n;Qm!X@pskZJ=bwo7g!oq?HU7(>mcCCnm?; zJV?-SJ^D2o`4@^r_CS2=y=$ftbp;e4@IEphZE>2c6ch;NJvk_IM6cYjG*kW zcG)ez%P6^iBAI1kaKokK05Z@gyaK%=S1M9QQc~)e`V5Lz8@T;<#mv{ds6)KEgK%Qz z4=;n?e^u>#AQ%s$Y1l=2?=$@rKXoXtqQk54lD=szC$QQ>nF5`#33G373YQ487kFhZ zFh^FAQwouQa&BBJ-!}vC3UjYssyX`1auVf^*iQ;=B52~s<^+Ctsk<@&VBlCUC)=fy z(=h5NjMUCHhA=e|cu5#W8B8%`kaYzZSvM$D#mi0ZJRw4+3xfJk3;)!QMY-9>IAs^0 zZpqql4Iw9zsd%XH5Ck`#33Yy<(1*gRf*hunXYd*E)GZJo}z zQ<8Dc+H_F}q(Q%Y7ZfN7noldeoiVV793~iji&V^%mlQ! z2qDX0S057Ae)G=~e^(fJ}O zo9{v9dNLG1pTG!A6q%jIW|8n%S1Qwk1u-`Q69%vx$auPjh@LdAUmsq^W^S(&UL{*d z0Rx%V8lcd)mPI@+mBmJAI>Zf7-?* zgQ62ZejWDspOPJ0bLY1EWOobdmISUOcxSpaFidhG`sh;EFfsli-G6${{}0{nftW3Q z-aH44So+6LrQgu_=U*bz^=%50a{ z19(_#&7AJnzn?QYQf4v`81$dI9lR~B?5%71?|PjGt{N~b>&LPJ@uH7M-!DhME&BRy z;p?YUZd`5JvMFiwC~aOoH84mblQG$Bmn9x9KWsBU?J-~mql$zSh0KtWpwG()AK08V zyRB~PnuRZ(<;|SD+vD2k$s@TVaE2T-b zK#U;>6gZ9;&zD1U1k8)50u^1XBYA7!H#XN9DUZ(-C1i4Ay3;LwBBP(s7AWnO<*aN5 zh72J%ThMoMLPLKQ``m&H&E8>@Jie1uKx$ji>sZbu5i1=7jMot}i_>6VjttXz$iEm7m4*Hx$y_(oBoxr3;u5DbWi z9>LoXS}4MZL1^(9W{R7r8V?iB$Z^>64#uQ2f;Eri`%%qtRDbTP>HKHQr8mA0-<$q< z8TRUR*7Fy=-hN1U{VDpzhtOvq0w28(di2?L>vib;uK_pT364GH{Q3$v?_&Jw8z-Nk z_g{WL`Rvu!cOQY%zU%4Nbx%G`zxihk@9u5+RDx*W4NCT~5FbMW`H zJ!jH)pU&8QI&tmE&{^9P*BnjgI+wWqOu(4!oSLP|_S5l;A26%e&`KA1*RPWFTIn43 zi*D#v?>=i4!w&klUz85{#f4iOdjN)ShEaQc8rPV|-7rtPt{M1?u4sWgcP67@ja%<6 z%E=d0lNXB`=1ZG)YNuY)j6dmU-X@5is>)q2sraZL@yUPr3-0*Mw0@H{t@EYTvp6~J z{L*$_%_7anz0{to&7%(mPdh1WSsSq6gnil#*UxO*Me~p&-ZdM56$6uMpJ98H<4+hS z9FLlPDXRSxqj)x>s9jRGgi}7lD=JrC(k83f${l#dXVF8=;)|APyM$E}lsz{1)GQH{ zj3spMZEjhvX<6^vcEV@We&yhG#vxt6lkpv~Uf;ODGN?<`bB%b^PM@>SL$9C_hhN9u z{t)!=TjtSk`ttS6?CIJ8>s8}+TUPw;{Pl&`kd5Y1+Y+bjHI3cqn0V0Cf4eMyi79s; zJ7q-4m2V-xf7h(NK4;7-(k z6)LIi5~t52b#LZX&mu>by8D&ON_UBx&P!)piP`jCS#kz3H|`W?T@GCGAa4Cbc8>*uzU!6qu4u-c$N7(O zhwh%n>yqjnnABCw#!KF9cO}#QVDp@%YMBn;qIr3aP{i3<`tbWi1 z-S9gBv;NUezReo=hjqy(%et42?Qew(9vCM5W19R#I`X=7$RWg8O_qf)46q{*MGPqM z3a=1^7gH>WKtW_UxtPAp# zI{|-3w-wO>8Vv<=eTpWtOI9$e)^aN+F$!DoIYXhVQ4m=#&m52FePM5%XzOOGTCA(x zPs^L9>$!)THVw&G#BAQ_7<-VGyU@FGuXomRFJ}!Kx@iJRsgczLN0nD#xtqr7Y4gQ_ zE!mn#vm{dN8MJ_6n8k7YD@8#yUY24?XtI~HCl1O?{o;vcCrjaAN~58{hh~bRm_iVJ zD0pLZqb`$sT~&;E!b@1M(vPRjKJEVoO}dIAA+3ank^HPpZi-yb=oZevQ=EvQJ}HOQ zRj-ido4o7?`jGjo>{Gl!|1c(8z&32qjJmCw{+D$6IaWg#(tWjG?hd!;WkADVXzNJP zm0t0K@ye0j#oJ&*fib2FKk%Gt&|^o_38DsO_}O^a!sFT4(qN`6l4wsrECt+TkgPRG zXkhrsx0M9;*=mj^il>O;$f6Lfnx;u43lf11i1(Jrly;nl z5}}&-3CHM_H&{&%*>!hmqyC9LgEGn{l7R}s(b5Grj@sYd$A&P&=n;#Q1K!~>Z}F|W z5xPk`b31jwIg)u7OST&uwuIh($#MV(Z<)iV*)ax+#fl4k5#2 z5=_xjGu;GCMU@EJZ*{>$Z79W7Oz`c;vQ*$1K4L=@&DjHQF2q`)XDZv>oX@bQ0fxm* zY2^mzLcf^1qdPMw6X9xzDkrS(5FmU8qXJWYx2rWh!40_PRe5Qt$(5h4#7nsRpC zL`<22g1H!3HjA%BG`<*_5-X9C!~slxqL(<9;o%DgeOCU8J_Ayyuga(>nZj$j_+XTHG{kWMQQg6Z&g)ydg?Q9x_rOM2epGn zQe*1rP`@P!CQJ2VYcdx=`a~Wc8du2#wt(Y?VzOA+H)YEPyHAc08!jU^COaQ zWU?o4UW%ug z8DWc;#VuaID993KCMml`Ap%gsu-L&9D6r~rDK-q;IrM&l1;w3;r^-kKHIZa=r|4i+ z1=DFy7~xBjgk!o=FZ|PlqN87bAB}#S_x=5(@95xv(pz~>5|*e5r`P}IKbi+$H?`L-vR6{y=Blrj~i z&iP_r{Xw(xwXpM@bI+TQ`zR?q#S3uju9-M2R6xwSh%_$KI}FcZ;ti&F0zv~N4I^i^ zfF0J2(b5>Sc17;Riv_ptRX=&t`VAe6qGLXzv(eAf&~M|uqocl|BR_l{@aN5fZL5N( z3{Zxd5sMEJoTKcqRK4nV#@Tlf%XiGl3Z6TD!nm4<#u%P)^%>Qc_u~17Q>LDjhD0E4 z46qD=b)Mq^uN7aORb?ACB6#1L%-=88KY29rJ3KS!h;QFUeMenaP;>(Nbv*iI!uKyz zQFIoHE<(}8-_gaN(DpAMCp>*zyKisekl|u$fNRwQkHH;7at+Mk(c*tBe-I|t6RIox zKD`e{zw~ zR`RjEHMcJfeema$*Ka4I==kqwJBrRkzm{M9YMZ_aVF~e&o&D*Kfnod4EB{sLPGov8 z_)vughIUwk0|ydBJ51f(m_ktLAl*T?V^|`P?r?=9f-k8U3KRTlLclX4QsedhywF6S zlss)_ktQXJX$^Guu>>>>ik!GW*?U4<+d8k}YDIC4xv(b;x7pz-VZB--8(TH$C6cfh zYi4n9MYFxQL7QD^FKv{k=Bv{3gGaRIE!$eX^H}k=Lv@EQ^f`VNuJ_t^CUN2{U3G6^ zb`>kHno?4my*9df2IZEr+fJ4s1gpG$*!F4Ivn%gRIeb2o*%04ntSK z|2vQ&f~s)@N~qz7J!TNSVvhH)?EvD|%)jE@evaREnz-hg=)hB-Gw%)8zS?hpci#CD z^9W6R;#$3yeMCzhz3cr2t^15tzWp@d6FT_imysVo4g2t6*vHSUZ$6HA|849CbmDt- z)RT_`zoQwCP~)*T`jw~0oxK0Yd-TqSPsblU?Y#YT!`#8; zqxW7Od-?9j%MXX&e%<=+`?N=IDi5AA_8#LXYN_hnA3cAwYQieTS}= zN9q{m_|3ay8hubwvsyFp zifze#0G|64FHn>$(2O~xY`+|^o%Xh4qW)c)A$u(&_RIQr8prRI4g1x$^1f!y z?}i}HxJnJ|8ER>AM2Ds+@@}3LWMN=6?Q<#O5MU^u+F-3};G5q3{#&MUE zc6?H{9pu!_lJ}S*ECb)pWMSoKdf`B2uUUec*|xDR+C0B;fqht)Y`{88>vB=)Bw_gi zue`a|iThGtp~<&D#~uAU=Pxw;2I{x;4mEBeId!FZ&N1VPi>3`XeGk7DkJ|%gA;Z89 zpD~?&?T5Afx3bgQd2ypDNdvo|e(e1HjdjPp$g{8gcU+1%{8!8sG_>m@(vbXDD>D?l%p( zY#*?nozRNty8{EcOI$gAKGD|0Q9G(U0gx2#(zV7(m+Ux+7M(hRxpp1F$MYqen7 zZsGJp;$go!XW!wDxd2c~$(U>WNq_QYKk(au#vVqy9Y(#UoZ;8)GqpWXwA~Z69ueeC zq8L)ZS3nC%^#~~Q@GAu(3ej3jv6kUsxuMGNG!-Cui<5r)5P$q5zHqUJxzSS<#|=mz z8Dj{L4^;#)b)h7wFN_~a>R3b)140_-AB|6FQq?T7^k~I<2+3W9$I!`_I|&>dCv+ zZNHOaM~E{oNGsp4COu{r-XS@b(c%|{to~--f(iy+mlmI7l<#!zdKi8GoAW5DZ93%< zywO9mf)TcooU;t8Z;_}+OY+wNOvZcBam)HIg2rp4kU30KEw^B(FnbhYjC2z?VBU^{ zuwg)7S>`%o&;-OMIdtYl`{>qy-V=X#V?w$Lqj zwC}7NmLnhKb03NlhwH;rNg;KRH{lnyiMx%Il?`)`>LH9Q_wq|&1Qaqu`w{|ckccM5 zu(P3iKI`V*p_Qz5*0173H1Q&v$@+96*Gd%x!ywvSu6Ji}@LWEgD}efJgeO3#N~T!D z6kFWbW~>O>u4%AesqQveKk%`#?;~lyN9-XF%&XoDn>z{C0)(yy)e3L}L?Cwc-K!FL zkyEAJcT1wSv$U%bW_-|!Ye^SSr2A|n62dPJ(jKA#2hpUXUqlsS+>Hq|OB&U;z$3Uw z5>v$h%DO3(Yz}slTS2$e41u8ADT*+RDwJVP^a`%01rMWvgVEC)f~6E^r7*gVpU}XJ zY2Ziql0}svYz6R1-fvKdxY+iUF=yn&;-I)mlc%ol7hJPm6kwUO0GMuS2OEd-E z8%&8OSK+2h3z-V@_Gqv4;aF)5!&`#Lz{mc>o6Wa-a3iUbSODyheFAWzK-g&oT036s zB*NQXodL9bir7x~fy8tPjOcNKXh6;2WeIMQNW3|fX=(OQWD^BWgeOAu`Qn^T4^1U7 zg&6hoSfwN2XHb+r1Cf9rhplQC3f@(8%Z>px1vNVacA%_BC$--xBxxRy-tpWlnjs0H z$y`K1k{od}0J0v-gKcgYzsoTUnI}g>;21qQ1_IaU$YD(ymcC5FObb6d0|837?K&*%BfPK6M#^FjxlG6P!Rq zHxd~K+;u9`KUz^gQo3Nf;`CkX>-VwfyG-<19*XAtI1174W$3qR^h*``t^$2E8vQr~ zeKQLEG7&`we0($N)8~=TU-!CtJM(l`^wI@}>fTtD9bwV2T#&>txOd~YQQh32ITWG< zCU=IB%z&B$hz#K9u_dBWUAm>0^+#Ss9{U=7>vPea#}zNof#}D9pWjUSAyB8IC|qwv zzgE0{RQAW8MZe#uzxQ{|t$X>WFXo-PP;mNO{;9LI2lf{4-Cu%!3;Bv_kE4W+&$4ar za*uxOefjpFOSk5|ygBj0Z}yIx{GF(M=hLXCpWXD4V7qs1EMVdJ^?W#&sJbZeA-yKeT@OJ`nw0kG?HKVWj`60)1cd?tR&d&!rE(mOTDk^!k12 z$JY(tUX4UQ!rsA3IPLczM_s=fIBq^OccygP2l2VDd3^>QuMC_%cKn#4z?O8AcI`#| zo^L*jk13m0A}TfbV7O8xrM%LN*juk- zet#Zy{)zvQX8>&rIrcQ@@Waq!_oGh#m2&+>(c^Ee-(I(U{(GKZUgdqTO`_CCWh<1?f@F_*Cb{DFs zN;64m!iY3(-Wn`me$@_&F;EnnAup)Z-S1v<-VxHXKw`jYLdg;G8k%)dR(a z8Ja5ZUS==r?UPo{)m!v2$w_qsG6qhvm-P`O7YkEM)5p#(J8(K{`=ON1J*5ZFG@iWL zbN`w8JtymS92ynb)V&ZCnayk79=)2yqHTK3r3GMkHPmo1>gPN9g8yMA!c%r*H(Ze*PMyXgA+ ziW{FMy?j09>GO%N-oTq=-sf+NKYgF~?9E14FF*Q_arH&enV0O@yQAlA+kW@?{jcb? zXU~^izrXg*qy2Bc?0x#S>)xXiZ$6)R`SHZ7_eWp6-TmmrPH?>6dbH&EhecE0jod0kw&L{_%UI`zDH?p;&cE!l)!rm1Ir zMqZE)J|8*h7Cmk*5;BF_a}T}m1Ix^}x{2q(-VeqVW$jd;^{V?WR}EUH8@1g&?KhxD z%KL8z>$s%XIzUa@+K-29`^&uQ59jpLKK;7%Q%(y;|Ee5%Kr!wtGHnuG5;<;8WTICtnXe z{@Quug{kX7*s0ITi3faIH;L*ONXBmw581@4Urp#f4I9+rp3*P+_@5CEza;$rHtx~~ z{noSoNA4%zL<81b$A&dPAH6bjJUJAS4&{iY#3Onllz!4fOXUf<>f{=!Zvl|8jUx_e zmpt`u{~J`6ap@CM?Pg}lb_fU%VtUC^26Oxe8*9^L=%tsZvQ9l*f-sQ zzx98;bDVm~&e_N*+~yp8Mm6n>ar(ueL8oLzJB0Q1o}R#GyS#{Tv^^Cjxo z^1y4@Sz6m~^z2^|;~2NZ@z%Ee?7r)?V~&Nb{6{+X599O;ni&tYE8qGbLBmd<0h_-- z;VGqVsiI-KW$JC;Wv^vJjv4A#kON9+whXpCogCG~h#km|9qAP_fgUn~Nmj=+^WOWc(9}b9hL>@@C=*YpD^oTyn z?qeu^4T6+OjF@qvgt6R`4q5tWL>?@O?A6l^x|cn;tFPqo`n?&#~>nten~nHXA) zZobLA{7sU)$Wv2_=t{U_I^s^f(YNeD9DP`E=foNJ9rK^5d)y~S9bpu0idc(k+fZKa zO@7P{ZpDt6)2Q9t}N$3I|@} z#4ePF4R(+3rKp-s3N1mrBXII0L430~d%Az!UZ3pcG)0pr{}?g)lr8a|G4T;4<{~xu zJU98CzAY zx_e3@Ygzv3q<~x)tqbEDDbaQ8%vr*I>$#1asfA1YTf303-k8wd?2uZLcQCYVl1;HV zkqyCkAzU4J(TPIvg4z(O6TIRGUx3hcU~+Jm&;agjO6t_k`^G3bW109qcn?bGxdh>a zF(onX_AItkij#=&ViB0AbOG>M?XWQ`;UYidYgV76>q#v zsJ!Yo=Wk+6Z$Ji#Lkk!oK;o^GT64+9IOy#Kd=N%qN4!l`T@d6nu`tM0#Bm*Y@UCD) zjt7(wEGxLyNN#+iS6C@KwvriJD^BREOR7htc4#Hw23C1RWV0fRW$~bpjaadb9hgf2 z(|cexD>&Vy+bzj#|7=(YxJ!LuJwg(zD5_jm>JWI0IR9*fZ=r|UvqNjP{nzWZJ`@85vmp}>v)dYlM{wzg&;&&cX+{ei3eYU<7nL3CQptP z$24J?1~-NV!xUqv0)VB1ZU@Y}Yt{|;6d=Q3m}CYUa*FO=60)tHoVdojWHTnP&coIl ztF3U8cXty6BMgljUFy#82LA*Q3xObw<#S!26-hYRQR5!g#3>j>&T2)7Y8-f75Do<* znI0N$_B6x~j%E*I9v~bk6bS*!o3LQBA%c+^(x8wDh2|!A65ZvvfJRXm!a_@tDU)UH z#nClVWaVT<576y2YY&cPkS1#}tc;kJ5(?n)nQBCrrwtp+WCt_c-H2EsaB18~BJdJm z$Yf|Ef*vKXVS|;$1LH=*VqsZA#xO~SaC*f6^@>aO<1c-oKKl(C`WcP?{ypmJ=itxp zg07;W*IWl|vj$%J9C+b<@THHTzkhaKME@V&{xhhl_x<99w{((_LK2dYgfvp=z4wkF z2#R#1TCgFA1w;`ADI(Il^bUf8f}$u`K(Y7UK|}$5E1!WOUpIe&$Hr{Ty&c*nxOegEK1^YGy%IOiXHcw%zLn>Ri!ZK{rLK(w#u zV@WhXvP)ulC=hBU@IV_Z2)EMxwu`c^vg$`AuEGj!F#0SkTe|=?!4BtP>)wCX!?4-& zzm8+eu9LIj@V`y)pKUO_dHHV?41=?IX?E+sU)$kXaJIs5Bn$`r`L||v&h87W)br2z z;)~MqU7zM!e!zoYCUR=4LsYWQBG1EWou7<9&ER}v0rUsV)xlXI&wv8e6&4EEuTVg$ z8nt_``ojmdFzf)sYnT4{|68zm2OB z|7bP+GVYpjz76}nh7T=(QT&4Uor|QTT3SD>ck#^*U#Gg{wI`0J9kdg~1~>`Ne^&0E zC8o3}?ynJKWQba`13x|o_MS~J?7y_M{?9_d_>$$rY3`M;th4WxYTq(Xe`b{aAQ#M_ z^M1?b{l%94#ud+F3xDBDW{A}b$jZ4@6;rF~=2q2>)4P7y->1E#x&wjAz z9kaPU?J&Hs`q4kk1uxAyI5yK1*D z1Ar+|YF0FZ)sjj~IW-*+2o?B6;?{(q*GA|cJhh?noPYm)uihb#u7U8IPr~~j26W#F z?jCd~ZLw|a1_1MIJ;QNBuR#6K!6#oz#{L$*opLQWBe!-l#L$;z87Om&X=D`{z@d^? z6q7(hblp|H@x0E**0ZqA_rID?rk!5Fn$PA;-Y=QF{j2$KLhJ5#-MilmhDQwVe6{I* zZrU^m=G&x*L|MB4q?QwgXA0g0z^jTJMv+PsKoV3)$60tN$E~eD`oY(&pJ&3}PJk2n zeroT?e89j{Dz3NM7?KJ5GzQIYRfW0LE;M)FJHy=Yj5`g%>Dp z%A*ElN=DQHqKk9=dv?M()#I1!YG1i_jM_B3S3S|En$`zQ7p%SK1o4;IdwR5w3^BHK z@!LMQy@lNd|FZYA(!*;7DZ{*zFG*21@JVe(^{=T%2Na_&8SEbf-RqEZzH-hRqZZhp zVv-))!`O0KcTbf{WG*Qv1simnwx@xc*r{^74itb<@YE~}0#VNa^ zduoue`;6$s9bwjeos9c>`7c;I>NvhB8lmZApTk)1!}4Bn%7KZB9(#!H2_(-ZhcU>AQAcr29r?vO2Rob9#d@sengcnkdcTQ3W&rsc2LD^cskIJL?CozKa zu~vt0u8FkmO$6^0q-z2rx>G*-9ORxNx$cB@%@6DMu+jYm<(j7!y_1w(z{ODtx~LQr z+jI*aY9tSGc68(2vlTZNxWAZnn}=;4PB~niHa`E({MJvi+snEQ@5#YANXy+4W-)3$ zCsn*o(%kn;f~c~VFBni0EIhFKUW%e1gm#GL@#~rmu+-sq{KiSwM=}zG+TGYJGO0Vs}8t2H_<|*ahwtxOxtL(8{M7wdvH-6AkoJ2O*PozoC}M7?psp?Cc;@idry}$=qBMdbH4liUFRpA(U>gy6MmV8`yqY8E zECUpJq^7NmrVZA>6_in;0lq_X4M}K>RQHlL-pBMUl`!9rcTK?9Z^zh%(|u~`D{(>< zq|PR8a6K-pl)LL9xMoDB^wGEWaMx5*T(Y4J#hjF<kuQYw?S4F zj5jspHEaN~L{(h`+feg9c$-+(uARf}zX@?8A&+K3-?&x(BF?E0Fza}s)jE$BoZtK< zTco1353^R^quJb2jT&UGxr1?iNJ;v@ESR7lnN;8UhG=#i&^~cTZ}Gu9-Jdyw`@e{* z3-R2eDzPt60XL;oj&a?N(%eofY$(wze?hAsA!odlb1zY}K8Us72^k&~)7T8UW>&1} zI_n^=(@Hc|(@)&>m|nqGM8Hi*w_V=u4#sMTs6S-rI%&|qsM_;O_543l)}W;7R&HRc zQQI`9XHK<#6yXrfwOofX@m1a3pt-Gq=CF@w9RTX0$fnzn`WtZ8{y3{}g2hG|T~8T} zP)OZ_yS0QIT7vXVSBkEX@;WAMu^9(Sd8nFL6MuO#5K}4>?CFFUpuM!1{XrHo*hLu?m>vNldl7X#vlQasLv z9ME3Mi@C}ud;l7_(0WO-J1*P)gqmfaYpNr zre5NPK4{}mu$KXE5LjIgf>9*Fe7&5JH`&4uShIj0#vA#_n+5^hjy7D4&~Zj;ttA=- z5Og=laLiU}L#aHH$Q@E$3x>&{XaHvK1sr7RQ0cc|~!`3W5^CsYsJ_#qpYwcujGf z+6rPFP|9U+Krn-b)BkikK%huML}^*Ximsz;;;oJ=uIuCnHbNp#X$^pBijd)gz^oQX zO^RXY65unV0Yn;naz#i%9$+)2x$E#|hXE!_J|souV7=(TDXf_@hy$+VUZu!XoF0(} z;-wp;*{0%n1}G|BX)Hnz06+$}66up$!MVty!BiXoZGd@yWj2lmfkBX>1-KgnNKy}y z2VS^9umzA&4wKLT-xphTw?vlNen`O-5(X+eq)5|^upm7NrpX8SD6RO8CD;*AB(C$JuHXWgA)-S|bnvPAEKne8yH9mcf5 zsAd?^`2QSa6ATW%7FKA4@eMG(=^wFmQSsaYv-^+Q0KDrZ9P;%~@SoY8OVcM{xCBh& z$LBp>eK1c3Hb@$fa+0f1a&naa(Idh59nA{atDJF(cy1E;5O!&M6VpGkxqqC~_#Qev zFJAK(S+|I-`>W9ShtM!fYFnV3Thj0SrF(J8=<2-j^##2fb4J5|%^$&LPhibkGwM(N z=v$p?UvXpVS&Y5H7>cX{Du}dYy%P zjwU9>=~E-OMhGrXlAAxv?Jd=By&DZS8VhhZxJH;mqZTeX^SEPo6O^ykt>3h^hKP?3lr| zjN_}{>UE5UKl`1u0CplXDZj>Ix-URDg_X4F|Dvl{mb%l-Z|ezIyX7ah=9^{FmG$XO z>N&Ttg&*)OlZq9y#L8LZ>1pw@pHSHZIIGHkN|aA3Reh5zoq#gFNtXRosU0;eeMGBz zL@#-&c(he`s9T+x?z)1i}3Nem8QrS>~t;2TpXFB@I2rLwwLapf7GGWAG(t2o3GN71?}QCv=aTu^m#+ z3a4p7VC%}EIa0DdGRc*!aBTpBX1@KrVc&%HR0IWg+LKKe9LXs6p3Ln^0&{!Nx#R_q0i@cytTbVHUq3sXc z^>?{re5&pBdr-#o3_xc7{JZmep>KM+e`M|m>_}U#l?RVTehi%T?aOfN|uf5{Zdf&0?4q!8~q8c;~cH5qOVp93Z zxN%f1<(5hMpnm#*@X$HYo<_aekNUN5t;&o8iCyKvL+R@GGcy0Rzb{<}2>_1D5Y*9`g)++eKKX~7$^?}W$_w@8G^`uL} zoo6LIixuMfT(85cFT)1K?-)DVfHQ{|3T8y7lp_ncQ6-?=NiF57FsYY)uv2iPhqJeX z2)ORS6|8+VTJ;a~JKyT%-KK1<=N#@+J#pVC^9eJ4fDl+nS`)`upFs3Fq7;6L>VJge zw~xI3Ai?c0pxJQ43YY<@O5R5_g7cJCgEy4p3hPfYBI znzi38Yu=leJr!jPLmpYU;PYySZfWnmrxx3(wQG1&Vsv)Wos!wn7c{G96>>%? zwco7n!ipe3p&!n2N@ID}5v|Mgd|H(pvXn#XmE$gpuP@cQFu@sykvU&QRo?|q7Oa25 zIwxN!tnZ+vJr=e8pk_W)OM0#nGJv(I#%}DAw5ws+3$-estD#UR@&+}}>vQcsPlr){fO-q}e6-J^av?6@|=>^r(Ahd~;b zdEgpkl%Th<2x+|&VY>$~UNFw_B+pcw>v59jNwP<>qWgZj+jdCZmZ)YYE-;5!8cKR* zWRVt03v|$!0?Hyn1whda#8hm>HP<5agCL%loLUG$V-tbzDxta&c(-VK`nU(W#T|Fy z93n8*AymsWW#^+1Q(HzejP9H(?Qop4xm&omNB7bUZA-V^u4|BGyi(~S;OnM@l_G`K zB#%N-*crjbN;&fg;B7|n^~m~8AY_UMut&|c1U-Mc)lPB2MrqMjn&~lR%Ml zAgKzZJ5}Es%@C0J#&VhO^PwH)pyo>XKj(L8_z5(uivTz-OVS(0g zM*{%9k|R#&0EsI@jP-(;TT-jf8XW(u-w!JWotH2yMT8Amyo14@fS52NyZNp4?kP;* zcasx8h)#R4=I$6(k6ne4&t$97!6OfiaP}0Fceiep1ma92qDk`-&UGoFjjk$ zq<*}D^+AZNBdubBv<{}(1u8fO$yx*=^@Bmg6^Lz&t{1^%C((Spl=fPXo(9HyDTWTg zz#D5E00PcHw_^<4(cteG22xCd@S1KAMp=rX0dzRn7D+2Gz(8A3&0Aj01mrFOo*mF* za4M!~k@YINg&f}vFLDQ>5yLgW3Unn|mf{R6K-xjjK}Jl6Yvu<)MzREyES3cpQfT7> zv~>ljxRT=qLUb=Y-E|ei7@}Gu%?=SQfmdpixJxoUpbT2G9lWAKEa2GDSy@_fOhF$p z(YYC-S;(Nckfx*gJ6NG*3~dmP!rO|OdlA$YC>U^nZWogQ#&0xImbQ}NL!nXnepIhoLD*%b z)tM00R!TL5VjPJD&p*hbB55FMy5g7<5)<| z)ug_8^VrC`;$pI{?ux4%$&!|2ORN~Er6eUl{15?wP^1h}Tn=~`z{P?r_&)$r`v1%= z|FfJUr4cwThF}HB7(y6Raq?<8o(Dv?g|IFFC4o0xtz^GfR&xhr;0KxS1TAk6NGJfo zvHv-{6;sdtYN;d^`H_d-|7enV&wSzkeO|YBc20$cFn9HaBK@ zT{Cjce8ejb@*o*14H$Qp~ zehs`o89xdicn=3%{$`kUMdfgVQ^S3YlIsAcpkDP{>1d~6TBCbTRrTj@EhFPiuRh$H zS$s76_vs(_;SzjjVe!uReD8qC}!RQW@eC# zQ`~t$>+q0X%NN78PX?_Y1m*Xc1%tx67xc16nw{U*T$~b|9AqB6Xn1_cD(xP1b1Qw% zC30LJ|H220=dj(KMc&aq-hp0f(oGTIhab45U;jv>>J}xjMl0zo=u~AV-?V5S^XQu~ zJN=%y_X2WVHZ7=7Yj>m0-WJv9THyMYk7!d*ydj9|p+q+UmZN6+6{V;K`sNCJP!=cW zih9E{-Q3%HN3Lq7+~Or(=kMti#1ATMsmFU9BX}MI6iS`A4lpfO^xB4B6GvWmoE==k z49sQtrVv)|BfBIjI2~7s0Q2@!08dR0ucmCSq;4uz*ZGymNZa|ItiD9d&%jUy#{?B0g-ZqtlOKhJ~R$#fo zp-Wl?!|dd%;5lUM>=#D%;zMhU`o=&+6x1r|pSWw+@)=wWaZbL`C>+(U{HoPFq0#=w z>Bbzt;=96;$FlxsA;)5@?^WgPgY>`#Fzr`bT}9k-NwfVc7?`M>Su*H?35PF|H`H@| zS`0(ZtP%x73|pk<5#_zZr0t_hF<155CN(=@cIuR7-n8(-Pm6o7DD@>L^paZbs9O7& zb^DZg={H7Tw}NvGDxi(#(M~ctMlmnOdEZt~9aq~kptPY*7}Z0Hy-SYmhg`E!CdZgg zg;f7~<$XOsqBA$u(L-{0A%y~;YWmtT(XLwCq9Oj_%edW5kXI3;mk4(8YW_t?yIB01 zLl}nytm7eq>tTd-6xLyfEJz5dSV1dQWd`yhO$9vwQMUn2^)g&_fL)c=ahBFHm*Lq+ zid0&xxj*_n-*x(7QRQz&3e1n_2ddk#b$ksBTRxhD z^b#n6ZLFx<^u(9s$eYSZ-}NuR>iz%pFV87u-G|m?;~nG7H|9&4$1#&HnS6vb!0_th zq9s`NeVr%QJvF@o%V&LpwDu!(Q*f&b)VoLZKfsLqyQ`d!k_@*}-1o?vY?I)+0JtL4 z$P>s#DXIub)RALyAOaSQG!;Xmbi4aBI-fFT3{{OV2>o#fMB{y&M6P_u2k;&;qnr;K0kpua)V^oFK$x^ znWPcSYUrwQ6t07WFkqE&tA5TmP{kz?SqP!5a2lJ%47bybHz}yPiSr^9M4pf|ALDpf z|M)1RTaRCRNon5$n$Ju2hG(4c5pwc7($3eA%M(iCJC)FTm;-<$*(;^xfi!U-yM-y( zMj*@rWYlbsnxH*1f~FrP&NhJ*HLxN#3A&lAik1Z5LqT&LRy{yUCzj@z1S*pxg(g`0 zaA1I;IEE>#-bS|BK`{frVg`6)UxLMMvZW77Zv{OBkyX)L6QZFnM&BQ)<%ZQ?gEjC( zX|Dssc%bt^?=2*+hUA)wD;q!@6EGjfsH|h?g`@QyF)FU0WeKqB<%FxHlszHhY6+en zQ71&4W)Bff!~rXw<|(1PUW&#?Qiw>Z3h9ue0{U8Nq3Q{5&f z@WV6QBzdlova_7&W_hbUNZm+`(?Q1iG%3qamgfmEjYP#RGR80DVuPiOAJH+AW9*42Ly;D362+0$A1;g08-!r+`R-*gajrZ zik1Y11IV0UHV)LXm@Gc=n<*88PAYUmrAA$}l4u#y(| zkoAH=BpFmKKnO)hjtBrm6J@~IjT3c861!(^;;Hq&e?nrk6VQpP&C zhkp97V{SZg^wXM_vtj~c(7nC_T3NxQ0K*0tJ|k8h0?Hy7Re~BEgxm`GTo#lT0bwsL zAuGU>T*Og!Qg{bRtdlg}MhtHbVO$|uWl$}FHrfU{=FpxIIG;GssS4_MS3JxzSR_M> z00xPm%xI-72%uf$KqP?_x<`1TiG27B_V@s`<0oebR_=!t24UR5U)tsGj#pkEzj5pG z-R6)8E7o9LOU-D-*=4=Z@qk=D03GhAk z*HSWu)NjCgLleQCrnPa#Gw&+knaeP+nfyBmFXsH6&G|W%|7GU%i|NWozp86K-mUs@ zukg*CoHxU%ukIXrI&|pe@ZP7l4?TRg|Kqd0pP%J@d3k;O;lqD-Kfo8^CwprSh38bX zMeXu0^wr*ds)2LMvnh?-OVh9=8fuWPlS}9=|5Us^p?d$7@#oN0sj1#HLxX z{3%NLAL}!t@pm6whM&#A=O+HPj8E1t%yh!=9T?iZzW-t z^|>zM(Gjbm?W$EV+gE3vG_M3wQK zlkuxx^noAf@(GEO5pLBFiDF>3b`4BnowAIW!{s0;mmB@upB1kX2oY7RLb>7rUOAX^HPliQW{oWujW zCg6pNufXDgdjJ2xCj)dl;K_iI`wGGxwDl>_0sawKWx#YD*xLWI$ADow(Cy%l;sm-3 zSs4N1sES-kG8aH=5sa0QJ3(lO0Eh;jo)V}sQC64LG~#=QsBYYjuw1*g|IxP3ze3)Q zZhQANeSEt3+ho<)MD5tmykCpQK2N!IT+_&_U)^~t^6?k@Grgv@?QWd|k+)y%yz$(x z>9SdBsbg+^SjY9%#jPF}ZtfX=lXCZ+Z+;ywc$cJ+9k@V1urwt>>oi{vuWtkLuwWkt zGWEd211TtpOL8D7U?c-=23SZ=0j9K3vb2gGPQ#d}VgQ`*6s881p+#5L-?D>+{z~qK2lS+wQ5W^FAMU0CsTJ*eixIJfc?yW|AzD{^l{ipFuv&&uM zzpl?MUmBabJ-c{+{@;V&@X*-&g^v>*Uw&TuwRH2x!ob*E!^qF#ncqhrzj4VdLfCuh z#GbOqI&V~XU66N4yJ=9hqE9owM=835zq1^OE_O__X7->ce^{&jwxH^^a{UWN)oY#V zudMx7MF*}~7QE7|e96ff)USW3e)=J|@HVI9KEL*j&9z1Aj!9PfZ9(dgar!;IL)Qo) zHME1hYGp6=`o5b#h8=D%0X(B=_7mmIdukQnB+Zh&3kHg;+|UK0DEgYXZJPWVCToQ>K(pfmU7?h*bPvPO7Yu4@;I#M zok{j9#CW7DZb(&dPo%EPVEB{>!m>G`#pHle_Rdy7s$@phu(#KuJTjGHYk6C1)nZyz zc9s%DPw8Y0GNR6Eq+J6Y@fy)L^$$H(NxDt&D3r1}CMp_oc>Txq!J6K&U z7qzOdr1-0}ZLI*923Z_1N*OjO`N_-}=j?qzi@RfRWW-|MjB3KTQsxuYf>(mXH{7sJ z#l)+aluP`~TeK}_DL$=O=TaH#OsaD^LMxuPwgKyXUL*aD&ar1QF12{SM&kC1!sB

      2 zx^aELy@R&ig|XWqWf((sNx)cy%IdF{(FSFy8sc0%oVGpLKwq3|3Mrb10Y?E*8{&IF zn%vO6g4 zQ7&r~2MHV`1=g~Lf&AToEP97~@*X?!wn@VeXa$L>nW8r} z(YD;gx}T9Y+mF^;FAIWxLT5Q6cR=2TSPn?rILqVrjMLs?H(r1o%2cAR3nR|6ycEWRp0E#0M`L;=&b6gMx+y#4{zhA7xccYUM65vL}?9rg@Fu%r3wh`9D;5JP|k* zK?)8kQLT>sBkV(0AoF;%`zd-rhahWA=kPPF;xU8v1!3!iR_aq`NFyMlvZ8Jp9k?%U znnK@DMH`;wy!xyAX4d^5Z1?;P=47SCGvIh%f>>bsx=+mLh~~hU;W(^X{}FP_r`jBq zwcjmgdO%Ju93tzZ_<&EVBB97cD*!LI2<+KcGNBj+2#1u=cL7TiMeu75t{JbwN;^yG zTvKU{AoTY0x_t}$E3i@R1b#yXReuNC$d?vcD%kZ@u%#7Y6i#&6uMyb_>`6q+^*Dp| zpiD~EW)t2b4DXsrSW`^*sN(rnN;{rlM)oKLw-X#rK=NAJzPYP(j$!>9Z12vlU4VUI zm~-o`jBT5G^b?)SoFE}s$Ji)ng))qGO7P49@SmdPC(E{#5{W>y7FBnRf|i%K#x|;B zqBz?MV(a7WH-V4K1B<&|B++^Y%{p96XhF6PlDFK6(|1RM8M~GTXx>C|j8-f$8tXwX zu-uAtUkBQI#Z+8?dIwFr5JnxN;*2v41O6@u&j8FuFz|=8%w+hESe^yM2j#6XiWa$$ z@CYQ@i!+NysPB+qY=Jo82;Dq}ZIKMqT$ap2v#ceUHV~lDpi$CFYao`76gOrSHwxkg zqJ+@^gO8xuN%H+sB2QTpH#ze_vcV35#V(XFs15-Q1))+b8=TNYnr8=n3*G=PfB0oOMOqRJpKvIsOFV6S9CS9Cje6$ZJ&DpxQ9SI{zH=Kuj1Vy&eL z10|K$O0XQosYYS|QHUZ#2>BH@3lbxNX3EMlq=07z$06_?kvt!iMikoU2m~sY0AfXk z2;##KpxWx1MSuCQX=x$hFMRO(w{;CQ__b>xGG|4)1AZb(1`rolt`~rMUtzGIfPqI0 zfMr0rJyDM)2$UteqexCt2nz{m9Vv{i1lkso;ERK0gkCJg?yx9)56Lx5g0~hzGgovw z010AffVlWSuA>A*<3bvyO50K?Te69!T6w=6k&j3Qsqjzxesx+mCPGy_uUE{k!yTarr*H+z&5y z!ShYt`E&CCuaf_H@#G9#3QyF38A=`O+I_7sxT8EZ zsW|^YT5$CymHh{gsGf%vI{#`tn-;yF6bF5*K(r(9O5QtI84a|YtKx+ZRnGn+SO29{ z&bVJ5s~&m&aj|b^q4n2P)7PgJ{b!C=pNMHK%(`>=%A>pYFJA4dJ$I(FrS(kfxwGf5 z4cvM0>FdP8uL*ek<aBJADqjs0JI9KiqPTu8`w!y3;Kcl)Rd!LtmqK%?PWjCwm zFDL6dHl{}B-GcJfB~1An=iZ@Inwa`AI``w-@1NgizK?)2KQ%r#{R3Vc{V@IW-G}dk&xb0aJhs{Ct5;lLHvJ|X zZ6ifz5CwW5jIoksSaF!GShfDIZy=HS|I+PpbY&1t{cq9^95Uble>;%w;2sR#QDkKd zT_{HfoEg3hRUkuGUBOss{;#D`RTt7W#B1nFEAb@s%rv9p8Gf5A%G!6n81cUQ%!d8bO!lO^Jbvwc@utux68KvnB%P*jYZSI!bz=n0eG_M6jBsE3`!w!-|qp^nTi8R+$1XtG+17>v(Sw+2D-Y*@PfWu!- zZGN}7=`FnB_MAr9!!_rpHF6#UR+xTxx<}O|t*Ty)*82|KFI4uXT5Q{S{>SfuKk(V{ z+18QC`Zptkzv27y@cmy)*FI03`|`7UWEzlXF2DWO{B^tY#kWe(^!eKzZw238GFKctrVKtJWS@{V>~aD^aq z$l=PI#lSC<;lHL=W>nK}o8>-J&b+Hu`ihwVobZngv)}6`_9=#xThx8EybWtLy;hDc zmG{We+IfcJm(Snbq@Q|~5!K9(Y*7iRSKW1Ab>~gimJZ=TfN*aCNl$)qhti%(wr>eN zpjb&ze2iK3C_KkyB)N?cAK8KZIpUjA-I{kw}HRCQ6;KH5LwEI zsx+;54gA}#=O;nFM!n#JPRTdj+AoxlItlw+fVFY{0{gv&m9ws{a!a$we!z`v13)}g z0LDE1grD0)iLX-FRj(0u9ut;paqF||_kYfVUsNiu>$cxhIMQOCa>w@2J<{eD#iW~B z)lwoEk{_ysKU3K|puDMMaK2h91$UF6fwEv7~bG}kQF*&djyD^Wrsa!swQgiP`c4Qf6cahGncBE4^W&5yJ z`U~Wm6iFR_oCUz^#i)3tDq06YTpc-e13Vx-@~u#8dpRvFNXY`D9p-bmRp^^x5OtQ~ zkt(j|DeF|GvhSWz$&9G{w`Lox-VE!vEJ{ZA(Y*U9?#(367R7*zKt%)pjG}*rb^QL#P8 zcQl85h^V@Xtu3izhf_61GqpfRjBEBoe!*{*xG7HV9KCf8WUMqYW}vV<0Ki1kEFq>) zO3fFsHkYD%67O`FV7v>jejGf*v^5pj%?SK%p9ngk$vi~KLSB1)s z%Z4XjlQZtv+=WdCCXry?3$Yoy&f(VH(_Ot^7Whm|4qCojQu(x`*Z55?_?*1WDTL!m z#+oKI-*QN}!XW{uE=Y+8CL|Ef1YBs~6@_>TPlAkx#K~X@;`Dggc??#5HxF5R^Rz73 zb_WgHmQ8!+NlmlZ_+Dw(ctxXaXw!8VzYNBX`+5nzifd!huKPjGQOYWsWa-7Q36?V3 z3c|27&wae@EoiqQQBVWLAw|q&zl?jn+U`s8E+-(8zIIpz$);S)@T5}SO}()>)v3Sg zvoOu(l!W?e^6J}^HRmBhh>YrPjpRP-7cl1RKaAlPNt{q+bC%`dcT}(I0HKLhGZE_V zAnE`=6%IImP^Jm2Q=bK0u<+O;dGl(7Sqatj8qW9`S^Jf4^0dOUQT(|XcK0Y`9}GC; zICULymZ=imNuFaSrl|$-jiuP$iaL=XPXQ@vu?)k3EnGs#2c=*{H7h_Ig;>5M>o@>x z5d*k*=WR@@%_Q3hq-hvv+r%6BLqZFRLlD+-D`-k3ng>yg{Z^6HaRPIIzC`Kx$f&r0 zYG8RoZ>+%v8ErRk|3BTXP15qBS*Kw&BOwAqO3els;30iOfKI}4Z6UQ_C6@}DU7tB# zwsX}IG0K`~c@t;QJxVtXMXQDaT#q=_i7K=Z!-A1G zKt2M$HxU3^Ks-|#jRX-?X_Ooikjasl|3|mWU{+>aAR8(tkL9lyMc-Hz(aDOcfTXoa zY=1GP6NCcJcA=z#a1}7d0CM9Bb_R^fF;W=H{}|~wF(P}#W6xYG#@&Q5-j3CF2YwY< zc{MPTUvasEE+S2BgI8}t;l(I;G3M`V((i@sS8j;BeZ+}?qrT#uS((GH5ENw~NqH2O zjRu+@$&_WfLO64Ac_SHw4hkibQxHj_b;%$)O}3I&O^^}9fz}34{0a(4$u#VWZeP(( zAc+Vvp%UUa65HKR6nh*Om?6r&t=12d9>VyCu>SS8+biqyj>OGp7>wpQKCao+-gtAyiiYxXaGEO1+o~%5J7s0nWkuz6C1q7vCmRd0no6@;YI4ep zQ#zW8eogkn@L6~%1)e!F{3`pv)pM&azXnct`SyRvGhcKbPHy@I1BBp_U;n}$z9(!v z#V)u<9E5dy-{m=}R<6NatUb0gHBww&n0+$6rJ|y%y5?GQ`|X~~5Bdjh^%pXh$CIZk?8CUp9F%w|WYOByqq8#athxx<416P{S;LLcRuz)xzdIZ*!lveVi^@ z_?dP4LQLVYkQ4Dc^D^@aGEe27NGr)mJ)MzSlyodFF0m-#cuM-A?5yOX%;civ#KM%L zm4$h2XIjtq^}hWwvH0^HJbL@zjqI1DzWKX6in8;{3o;LRm?b(X^4o7Kp83U1xl97c z+783BkKfJKcHiyDEvv{(%00R-BVl*uq1cm$_hu#TD@#Ax zQj}d)n9|i$+Ekg-P?2-(Qu~z)Z8gO?WjPt?hYlV+7T?j+wlwzxp7?SjKk<;4@JIxg ze`_2|I~{~T{~tkc9F&5B2SIVcr<>&vsZU@m4a8~*b@KnHW2Z|l|WL6rN6qvF^2ACKC7s`M0b|BgT z781c!#c%?A%TgK*A~koc_iN`hwKLL zu3^rpMvKeO{6E8X4}Ss{pU?1wcJ6uf#w5{^inV>ugFnxPjsI~Pe(BP12^_7oa?65d z@3wxUj7nMGovd9+Mk(c}wcs_%9HH+(bMz4e#i;E{RR~Sst&d~)9-s#9X9gt-H=U$- z#)4XQwz398LyxMWr6|%=Qr88KX{y>}fjU81gl6%u908J{j0TT+sxoXLMyRQ%Z>A_T z0s{>hZFA5D#c}qg15%~uMyi=Be;p{Dags%AV5oMqm?mgbnQmgw_CYxC*^kvPCL-Sa z+4}T%$iqJlSAV$O{Ow%$7!->b^S(8d-{S-&LwPYUFOi6fq8g%;m@r< ze>#6Hw2v)3Ux43_FW(>gJ2>)tVCrAZx4B(+o@^R=oc?vHb_O2)_9tt8@$lzy-r5MV zUyRMIcfzhmI#st-bB4i>J@d#}(!mDGu``NEoobmk^)l};V!BP+J}b98GwT`i?fOLu zt;O$Z&})8bbN{E}xksGdk1lr>Eb{LuZY)vS)2a*bM};>vi-y(G`t43Xr5tGCp1Ngx zc9vf|qtZPNI2HDfVU5~n;Ohk}M6<%Dl++u_N1t0YOe-9}MLu~~Q1OYC``qsQEHD2y zdus-FYaT5iml0IKifCr+Xf?|n7Nqp39J(buaLz2FPj!E{!j@JZ=wOXMONltmkGsq{ z(94YLW=6LYHkJ^>t5j02Ym`0brac9I8}{}RMnsBy&;fi%l43}J{@RM4E#;yrC#Bjyt3gN4AT9!ufLm?KGey%K-^ZS9(zSEepoT;jKbav zTG?aTT?+>HU_tjc$R`u)T_{R^PTliL;Qds(;FiI2So0~Y*)?rdFb-@j^!4?+2d}Y{ zZ|U5G&91_bUI5#5pX#9}#BIGKmta}@%_fCCYaYxQ4*ljek1=yTb5DF1WX;fm>s6W_ zTEF?j&c2CUeGKmyt+XKx?~qH-&!syy5*-_{PBr8W4az%u^|HQ-Z66f4HPZrmxJhr= z$xm>bo3#%1>80FPOMRt!0xU9$$g7i-e9~|p3G9GO-K~}CVU-5^8>v>2THa-lPdA}t zRFpFeaeQcMff(J*WE}@tfeHl3d+N3rJqHP$HIRNd#ixT7JtUvJz!s;M|zzD5vt6=LTrR^jic+#@+ zBmH2Hyvr`K4nR7)N~^empczZU1x#h}2L>4VA>z{c-id8 zG|?d*0;_Yd5Y%yJ@a^yz9jt#jvEVzm{4+EDzHQ+@Qrkbpdf4vF542+-gd<{j>JUjC zl&C^l>mXx)hVfB(br%`YdU@kGq(uzQArn+GiFwBpd`~jNYiOI>DgNiwwqDga{z(4# z1CB!pq!^~1_m#7$X~mX+!2@+cvX7vfhvO{MAd@I|@@3Cqn34R38&ySgJ&Lpq6t~&0 z6LMZcYlp0MlqAbpmPcBpD8f+9R?*DG7`iB$5W)x{bzj~7kES5c^#PWOD3LLVmK6G+ zEn^Ha@0s<$xcV=`9j9eiCt!gq$!x12D4P{`o*CaE+L6QA+brc4Cv6!dW8g}+51`s_ zTBRMr^f|?jJdN>7=SQALdF3N~GEn}By8F)})*J-99nq!^r1Md{`caZcl}_7&;dfZ> z#vd`BGbHQIwy(i$ya%~;vkIR%4=nPs7S;T&V%QFlz=*c5QF+$@+PRbA(T-xRL+c&J zf|6MrQ$ijKVQ>&xgt7}aOKzcG_(sim1FfqNH*6k@?1BykM@ zmrR0hB}KK8V_He_%`t*?vRY=cx^@!ETH;(MqDG_?Nd%g+h}u5#JU1M79mMdE)7k*y zv>3hx%Oq6Fz)srG5n=2?b_h_g^_SK2kkwm<&;#6iV(*Eh(Xmj69g$+hLuX!0!lJH4d!njkWTK&>k2f4Nrz3rS!Bi#8C((ntkq1X>bQ)uT{S3PedV1H!QYNnTFb z7Nr&rAx**cIGUv|fd@1pESRDLJ3T-!HpQ$eEtSLWVU4H&_O?ypM zLu+|;b8dB2=9%h(bCngRPv$okG<0{IfBN+G)b!%g($A&EE6bzDm+nTMzf@}7^AdUH zH?DaJeSUfE+u1yLE^_9N#Nk4E<}jxVR=f(kH4aCIZ9eLv@xF04Jo>Vvv*L7CN_)=9 zqO6QlsYlXJCY{bnY0f=bn3qyelvG}Pq`W-4xGc9QC$lQExVpHYs<5ykudpJ!up+CV zCcCJipt!lXthp$=Ft@n*+}ZoNUeTdOq=xs>mtf1AOFG~Gaq^oX``u!$G1#aw(%J7y zozuj2xbRBx=Q}6=^~XMK-<_Qt6Tjs^@u8D7Cr>nIAFn9ROFMBYGc7AWHNE;|T7OIB z?Vgq^mDxulJiGD_)*auT6BqjSZtu6xuim_USyA3}`dHqD_O6kyA3x6gxby5ucS-r7 zqj85_NIL`Um770e&ccGY24ZHF?kAYjw&M<%@ee&n& z)^qKrvWpUS_4Rg7P5$}w^~sH`I%gaqy_5BFH9raYk939>*2Az1Jgqkmi@w65#t($r zx2j1w8!foIxby?Y`b%Hym!@7co++;?%Id2wZLiAeYR&Jc%fYdUi_M zwsK&+z|upTd8mZO>h4Py>`byeS;LFZrNm|#mGoHDT<52^3KQyhQHAutV_Lflbq-g` zh8?0O7DYY(x%TQa^};j4%o_imdpoYb@Nc-H7IU2Fy`8u*7TnX194F7-`VDu4lOzoMAcSd0+Q= z9mi8yuY5^X06nvH^}=nx!xueI-3&hUP<>Ayt#Hb^xU2i+(yY3Kq z4bh%i^*x78>Mz&~-Zt+2N2BqQe!~re%IkU+H;qP~GDmJ39e(Y6;2n3*am(SS{`X_5MFD^e#**`C8x??)Fq&M)LIsRP# z)RNPs--c~B2%B5b44ZjuiJR~*WVD&ua4m@|f2s@lx5^kyG$J8>{ z*D}^Mvm$%Q8@se~j%w!3qqiOah&c_=jY%D)BpuKxIH9>`2G}rpiHB&(Q`oJ8?92(y zwh?;LkY@2YQPmBN@<)`UDSTKJdt)(mLq2X@2@N!G0y_ZW8`N~UJ8lY!ZUevzA+QeT zmjy83yvSB^NF#T{ux9#cUde4y&r9`^bHb=DQPxG%_U9{n%e|A_eIt5>Gm8HE@QGd4 z|NhiC{n6tt9B_VFVau>d%O|I?A7BlE7+SY-mWgT-?dV5ERx>k3EE;d{_n$N`o@3?B z@GFj6cif~EA91<69P|x#y8E7+JWJiuDdm-?641%sI?LOCm{M|t-*8uZ=(Wuy*y_S3 z^SS$h5B^$T{GoUBr+DU<)zx3RC%>DXfI;I09XZB`7-g&8AG|7HgL9bR$yAWqz22!GF!vk8)eKqH96~6=Y)NADJ=Oov(k^v5V`y6)D zB(HKx!EJ}E9_WRpbN!2PZabBo(y{Kl1nb)nMj2R}W_r>!`90@^4L4-$lJGh%pgDlk zvjso>6|~ndo%W&iQt&p#>YGmL8;R%?z>kyEK;_MO>z{pfD zK`o+-(pq$4|78U%02;U7OrZ&LCJVM=ntrwZ*QO+n}-8#q;} zX}Lliv8sDC-Y*B^U8S*gLcud1V2*^FM_8eg^1hA8$OE)(mucy9GTP~oPQ1~`cUtTS zB#D*6vy?=h^7iYbxFJ}(Qph%zl-yy{|C5<^n-p3iX|jRrlBj0418=emqWL0pwt;0& zB$toonkx~tK=BWyVJtjR5$el1Rp7^7v)uic1#0cbFRl0(E64$+rkQ|L%8fhd1Z4# z`v5ly<-JeNb*p*u2!2(T6v>pcu1moqTUBd2BuWNav{m0>>;u^0(FezeOCi_5=kua? z78Wl2(CB!L*>aO)S*^?u2igKw!3}K6VMIi)R>G7##ZTHe4rR7hhACE}(&Pbq903G9 zptiwK)pFL)AGW^u#IXOBn)|HC>mM1{n}GJFzNr90>#Oo@7fv%!Nk0Uy z=Lhi(B?XQWbZt4IyBseFFj5pm&eA+rFnA~G1|zhBLD2>HuNByOYC2vLJW~ZtTQJ9# z71}C_T`-2eG^=p3*;<0tMitAoXv@{0y8lK8kv)5qkcRp&!9K0_6~j zwaWx%a7YjY+TDP03cBtnn;npKvAkJ2-edzn+yn5YQQj-%H5X)DCU|ML==uL@=08xg ztD~FGA_J}}YUGeK1LS=wW!zdMXbw1WoHUXr+;|-_?Wg$PV%y|FoOrNTj^1=ICDl3t!s!FN8(Pm%lJ6qNbX1_3DDn-JG>uU@mNG(PX=OH`aZ-Zk zF#b&>i(H~v7SeD(BB+bI@jUoag%nUq^dLF1CB(6YC_o8hhUBkSq63aP4qB<-BIOj& zfZYP-+mZ;tHb+QFt0~GLS0;qA%F+ZKy!LiwquqGF2DJ@c^1UGbTN3nbWRS87D4;izRa616cSuDILJq+`a@u;}4X(UpIaOs< zbybW73hyY3HUU@((7jith?Vh1fHMgxav=p4q{Na&@d3DA7LX+*B><9!BrhSaWr+>k ziVfQ;l|9Kn4eQ>A#TS2iGz{+aF{`x4R;K%wlxOE>r1mw{4D__Ow>9;*H_Y@jPj=MK zbk-egukUDS9_sDt?`Z97Z5rz8YOQZ5FDa|3Z5*AP813$E-nVzUr}glW@yhm^`p)Lg zu8x6y``W7WO3E{8s`Ezs2JhW^u)MtZXZg~DTa};sgS-37#KRwC+hECln0D!V_Mb0i z7hc$$du?<5kKp(+YU-Wl)z52s1`>4yM{4t02CIh}N=K_pyIMdjuWoFr?5!=Ut!l2X zZ|!bv=&ddR;kmUkudOz}zq!7yIuAU}wFPYr#a+!M-OWWEjr-f`a~tc+i;Bye>szkp zhSjguaBVmS4KAsl{_X(7cE)8XLS^7_c`(t?rp^5KSx%pE&+yAfg|yf}j|REK|a(%P{lT?S8K z?%Xfs(Vt)mw9rDWwRBHsRb5NP{=T}3=Bk3$qP>GHO$&#Qet-22{`C6gOyl*Uwa<(F z=5~a3$9nGaHVHLi`e@?3S+Yq+=t3vP^@=U#yr0zjTsi-|&As=|@E^VJFlgy$G~Pf}Eu#Bgu*c2_`cK=3CHK0ke}8h}^5xly zzP1Y^y(cHy7N*;dk9J%g`gJHWofev^w5~@TgHL^UO0eCWC(k??_ zfJcGC0SpowhAEaUvfcB4LM{MIqr0~NMnSciGA4?8QM68O&1*RwkClKOyljHX&hwb1e7wd0M z0kkd<*IBy89DP$TZwGN5%-cbR2QLuCD-VLfSLKQEnub^{LyDmV)!0_b#9GV655+TJ zx&;`=rwjeptNTSzeb<4%Dmi2igtr0+f^|3FrYx@@o-#gvS$pM&=dGU`?k`8(`WANO zqu=E(q1S#B*VRbS0<_Df9i}fuUcB$Oa3$va6Wf|;)G+55DYS_g)ek5ZtStxd@q_GrbCiPPg4X-`!yip1ewa`H;?I4w zy#{+<{G*va51i?uq!ISM1?}NQQTroy=L2T%T~6OUo3npxuE4s-Kk+9YQrDLQw+l6_ zlDV!yoG{4P+{@fDBHDR`mNhRbII5X{n7E~vk~l2Nnx-YRJ(I{Iq$)U4G#ejoK$_F~f?UdF=3V?xtEoXbml_pBXw%2`Xc!4(qpmW_G_e8G1pA zY*TSfr1mT+jvT6-yM3+aoOlj)aHKm zt#h`AE~>8DMt9#&^{vrd+X^`0YW@X^mPu01>5zV!nsbj!pI$LKXDb^SR zdl{~|tY{6&s=_k*GSjY=?%c!*7(;keQUaT?o@MgpX%GwC^}7M!Hd508!S+B2{N%yD z9xD)-I+a{XIdQY19an_uR~S(T84+Xjq{9~J6B0BxrI0Z1+?NeO6my>o*u>D_ZU=P|nPSq>| z0!mh=RDx9u#CF!Iey%+V8@Df$^WRe%Ug!*ewgoDmk-v%?t{Z1Rkx&m(qKVXmhAJF; zU|xn4w6xPs@w;Jm!!oD(6BKhAz3+x`&3(u;9-^9(H7!UyT{(*GO4zfF#TsvCT4W+L z)=HbYG1lzGtg40#wxaEeajr!~&rVuEJ2R{c7d6iel zGd8zi;fbHr#4{>hU2>vrfWm6i`~YabuyMy^g8RvvMj(PWL~#Ktz_NH?YvQcTg#bO6 z!jeL(VN`+Ik^)u~aY4y?z4tUP!qRmg(8X6Ez8!=!Mr!!Vi@h*yzGypucHb=LxS8RWi1&)dxaLA+ zk(~Y}CEZMnx~DYRfb6!b9<%B^#V}otl|iuSmD1cLZRi6w zM^L6N03c6u+d}uq)bPobVf#v{v2ezovRYospu;1umRC2HQ8z(q*h&jDAz+~;nTxjE zV#Umoob%9zg-S*Ra_c79o6kydjKRE}qO%dfag|`($goyHRA(99>J_>>*$~KQ0Q3)x z$CZ)t03i-3tq4*PN+=bD6JN`mB6Aq6y~%8LFtQInDa9^du<`#Jaz9Q5l?$R9WgUU@)_-}~!#z_A6g zwLe1F5n^bs{2g#)5JgZp5gBKI05)52jU|VJkTggIoCGP5EM8Uy3rVQSNI|OBj--%i zl;3u2)hYHr-;fUh1@YFJjT>65>HPu1x?StKyBfv@hX#9lYI~a|`??M^)`MKu(Oom# zT{qU=0#bT^ThYu&TW?ccM`ig`Ykm8ktvO+4`4PI;dlD!22WNPRN+Vqc_QV&*ht%vz zI6Pe2cW|bmys9lfdl+z4IUPB^WpMZ*y(g`#Qg&%%I-#^oHu9+M<$% z;==mcqT0s&l@+@{XwS{xGk$VmarxEP#S^!y;%h@KW0HgSwAaLR_1kpKY4lwcx1ZPF z*JK?L;p}9R<)iy>yaHZ&ad7U){_OO&n)J@Ws{D-X-Ol(8aqHP5Z&iCfQIneRRYSVZ zVb1Kb+Q?7)yp|$I(r{Ppk)Hmkri#AG!n)f0xkJtWzPtDN!(*^;Idb=wEIzn>cf7f*ViCaJ4 zem!5Flw~e3+SP>ZdBtz|$MD~;7BH;2^jr7L3r6Q_O6xmh|8ofJ3e_CUJ?aEvOX|6uF*#w;#RgNKelv(-;Y<&g3F~re9S^!>C zAj>X*VC)H0>0H+hdLi2YN*C|6jo`i=10)~@8)$|b0CgE4ooU;f%qpkIafLFTF-Wf{ zv^(%_`0`e7W`rh!hY}P=4UPvd@FKSJ*6qM}Mq&NpRYT*ko3}By?4`uy;?`{=y82>x zTu_PmFSmoZ4j!hC(SOYuz^nt0B9)`U5u?HC6JLjFXw9*5VVXICdv+B!Z|iNl!Nq}; z3X|y;C>tCuj@XR^tNLoDEQiRX=Wy~@IPdl6=$lU+CZ5=z{}g)j+a{3PZ+r^A{w3-j z3~1phhH+ZOlkB{<%?sE4Ph1I_zq+dJsIYjHl0RWxKU;L=ISA)7pFU45E%m)v9Dn`c z;_FZMKmC08;m4JCOVh7DjDG$;vb0=r>wfC3d*fez9eDAv^V^?wlgH$RPWo%J{4On8 zG+$vC&eF?{a;i>~b7l;xuNYKarR=WXWv${=pO-DW(9r&p?{oV2um{0z)zxWrN z2&h|n3{pneF+JLqm$@AeT<89nOn=rMdu=fK+U3Mwv-xitV=q`O*En%4)b+K@jrFXJ z&Bi-s#7PIp8+tigr#Lx>^~z3(_Do|pw{W)h>1K@cV_LzSoU?9Bls-q>b5K~jV9<0% zzv{GM)eXk(Q`+qhF-ZgR-Z|`bW&9{mz^(^#Y5s;o=;%WJ-lGm@|FVz&0RwGbRx8#i z1@97v^QdJn_}2r z^!5Yll^4PNf{afo8Q4c!Oa z8^f^&w8oR(H+}^^fHg<12=`4`G#ysoJ1ojPX;yq6;Lw4<)Ts3}z5Ok}{YCJ3*yf+V zmd{}0(n&}+R5*Uw1iYiFZc`)12)?bXs6mxY9hB55?S1DAa<5V|uV~~vkaDlqEjXcG z{*<%zG|4InG7JVOPEp4Luj$MJJrFQ76F5-=(=_(XDsSp%7CbcQg{_+38)q+Q?mI-S zKdrUvfQ$H7s=DG(ZOZc!+-S;eHC8%C4K=54*jN-z17LR0nr^KXk0a23q^)Go~kd$ z^3|()MXG>FnXl+o?{yEu_J_WaS9gI~D8vlF2%J`OJBcczt|P5ygSOcUi35=a=`^41 zg0Oae=n1t|`%y-Fks)KuxP#>2eo|1s%H{!T@fE$67m#1ARLCBUp>z0}Yq-rLXr~ya z{YGu?U66GUq>;+@>6W*OgpAigW_uN^nv^YK5LW9E4uwpgQdyz1tfm`bbq6hI1Y?%~ zv0On@LYA$gh+|Q7)?xzNn58#NI<85$#3}8NRx0-N8y=mX8V*< zeD+g3QUHYy9g=U*@kiHrG^)28EMnZ+9Y`O)~+kiIPsHz?Ukt`MbqYQfQdcJ|p9zK?^u!E!p`1Bs; zzRMVsVmbY-s&?^;!TYhPGsMluX+cNn>rV-iE+bd96Lhx9lbu27T7|-qCD5e^3`sm) zp3H!#WEC_|4#GifWBTARvn5#b@FFX=8Y1Y*b6t^IYm`L(L>*5Rjunt)Q|s!+gOrDhn4G7Z66ctIE%UdxVbu?}GnsA}S+WE_k%43{tq!&_`pvJOF5 zW&nf>$v&MCcoGYGBSay`ZL6BiUbJxr$t(_{xj@0g`fVRDdmge2mT<-IG!OsP?El0} zy+hje5u%4Ec=*`gU-?D~G5o1CYcR=!yjn6XRIEv0Ghcuil>vy$gHD)ZdHyAD#s zff_kdSqYK@^E!mIk~~Top#s2<(#qgNjCL%PVHD#GYUN$)=+QHH`)(D32BK{ikSjq5 zvNR4@7xlpr1_A(i6}ps?nu3zDq%2B84g<-c!A*)XSrbV&ks}&P;SD9w+K?(=8bwz? zlN8Z71dasAZ(vF<10+9Sp%t7IR;ulBbHAAOS$Q(;+#ul#HsJEa2_QgK57MI0Q(eq?8CN9#T0JxKls? zd4YetLQpoV-zJMQ zGZOi;f8+*#iH<#A`vdlY|9Zf`Lq5U08?fw&pX&3!*XrO#Dz{&n>g=s4Zmz9ptgLLW zs_Cn)+rKNND#CUke$~;uZLj;we_kKE_vqxQ2bU+0o)|rNq;GhrtG%hcwyd=@zoRIx zvtVCc$-V4Dyf|5&))K50l@@3*G!Oc03jf2} zV}@X47p&a#mwXt;&%!d}pFA^n##!h*sK~m%_)qu2-iFeYmj2SJ?U}pnae>>nGseH7 z0gxe~hSWTz{Ssy$USbaXFx=OeY==5|XzBx8Z$=gGv6A`*;VHS1` z4cLQEl}3MJTfeLHzCrYSlx_Va*Zy6(^EayNJ9+R2srLh8;&s4|y3ID+-feF0Km7ar z<&C?;HC?SO@6H_k4u8Ct8NODN!fHOPRQOo4|B?Q;zvA~l9AOwh145Qzm#c43Lm$Z9 z4|N=jXG+rGrDxYq9(*uA@$cya56_J~KY#e+?Q13ZFXsWhf$$+d)hqA1RGaX5((sXP?Z6R9nDq;B^i+0!9RkjJ6S`Ysb`Afh}HO7Sdk%0s1I^G*}#Tl zXd?)XpoDM4*}Fp!62L8W!(s_*B01h+YR-`eh8;mS*!{pGi{U$(ncYfZ6-Hf`SKt1# z3E&^Ed^rxkx%kcEOuO08cjD1=<`0i`p zrynIBzKN6fLPAHAZB^z&H+2TCYYg4y)tzT#&$zYUb7;9s*?maRc+Yy~t?$L3!kTkX zXq{YGi>UAfw|owSbFJcw+~U*Bf}{A11C(6{4I1z1H2!N^{?MrW7AI%HVc@Mv?|Xjd zqF~~Klk5 z$u)9p3njXR8PmpyY%|ZE)7f^25Z+CR9A>AFXz!U*PoKa?fJomcj%s7AsbYjw2xAY6 z0UxpofN{K2xB?4mMyixC6t)82d#?y$RDUXvM9A=&ho6b=47A*U2>QtT)?Y_iGK1NDxqop?+ z6wVor|1|D?FDkx`bk@+*jWqK&3A08 z&T1B%F{*lOP;ix$ILz33$~g5t(xODgJVIXAk7g4=GYh5}hobburHo>YQpYuG&XBhs zx9fmSn|`trk5j$s!1AD4R2#4FhQsBbj#qy1o30X*CfE@Nn7*S7pK-L$1lw&=LA_kk zvc{t4rR}jFdYw;&yDvy?=|_gN>g8Xwng6Ce@sv}0RUzzvy7w_c>`5>*W_fng!sms% zPszAtfn_&HD?rjDRl&7N7`MO;?*@WGh--?qbW*dhMyq?E#H-}Ru1ZFp@&>NTMy}Fg zD`~zNQriM&vRc(N3hPn=Hgipj7P+~PaJz4*h0JOspHSa2irw1E*sxEU?;_aNt2wc3 zI zkgkdDjex#FHeD?V$R1X^)J#3(+0MqpkD2FS)BcCX$^F#m5sQm|^zOo}(RUiHAE|M} z5D}~g(p9uf70HH*3OXvDCFJ5)l)UeZov-*kpWW}m?6h8-Ne;m(p9+9`+M&P|1qR&; z>Y9*-8QwSy()1wOrlTDr5$^jnb^wvtK^doNeE0-m{Rlm6K~Volz4u?!-X~^tcad>j zyuvBVBe%iD4L+oo5W0`xxt+cWfJYpao%XW*2dS=^V5tG&n1gnzAh~T51QjsX_OksO zf$j}qunJHj)i)jB`|TlEZiZYcFwXg8lV}xjprS*jVn~aGeWnD@S>AOMq#Gco<)ftU zA#d!fU=k&-9fLPbl(dLZ@!rmh+#_WhAQ!$@f8?F{*l+cnXF&87h7{nP(@;*Ss?O<3 z4(Xf~vQR0?D<8EwmlHNj3TfeNYE|^yj`u001{46SF5fAQ;g%t1=%cLRD@V|UAUfJ& zk6!J2^yX?A30b@}0@8|xM7bQD9g>D?AuTt^r4VwTMET6gJGCkMw9vv2YHqx(z4^4f zZVHg~C^CR(TOE+clqq^@BqIbD6lTZ}%Y|Mw?(`YMl(+K#&=a5@kZY@xcT=(%b53{pHA)C@Be`OyfiXp}(+2-qu4 zY>un6wkO6q42;%QOhbTV3OvBCq^KW&He8FbTt~3-1D|p@O?!gzIyvnC@IJ=?_M={? zw0i zPP8J&0N7gbmcihHKwisJ+Av(kEE?yU1PNT_X+~804blc7;6tpU?W&;X2$nlgMgc1r zOa-FArCgZxSa$7q*&gyK|!MoX92Wm zMUXT@N|mNa1pH?+C8mWWL1$%nt_WDlpdpWvP{2tl0wf(*jc%aEG?T$;Ln;CY!mRMz zR_snHGAb$nyetXE^1vUessHG4j!{24#>$Lgu z*Y4%A!{Z;$OYo|1aQIJn>kk;X=8G2JS{LL%I!p+xOQ>N$WgqyAfB;kuLP$ue0zSH; zi<7Kt0%~vhq`;D6Y1MB(y(R!_kc9nZJ<+U|!9zSP2xhOigOql(RoBxA3 z1*1=X6`p$LF*+BxHD#@h#q?^MKUc@!efwwdU|&PY{?V#}o|=Nrw#J&$jKZAM_V(VV z-N8TSyt58++1H;+O|LEL|?<(rKO*@j?PCp?Dnx<-E)w&@LPWP zm(1udO5HEPD9oAv&bjzm^Wh)%rLUL+Z*U`@@h6wf_f#iXYX37<1OHl_Y^a>-s;%4> zm19G2*;_^#|4C@NqZU_A>pCW0gqhP{sQt^@`x>^{tGzgT_{QMSKv(&{_s+my9{*by zTNUoUDs=}3EUHhy66HS_&2L%b_X(5txtHEE?tNsv{3dwwQ}pPY_`+Mx^aH5r3v=SP zRpY>FbJoDls6Ss{ygEN~<6zgJv62_pul)J_WHi*+)-wRz_exlJn||(@)(hC`+b^qU z_dVdBZtxGau~($Nmlm!*Jt=G9AI}%>URu03zj*cV``hzhZk_t^_)cM(UxB5_E~P?g z=shueKs~!g=jd~dGfP&NUfJ}|W1IpY86{AY0XrfqK%@Wr#Z(a5|BLR@D55+TU>@lJ z1-X*m3C#b7?I7Z+us|u43qrf%|N8A9x2p;C<>{J0=%B#X0VNqwl~ER$$b)dsHB{mn zC~$ODMJ70Hb5$W|p*V6ZJy9B#asp#%k*U1CgN(7Wq=~bd^Cn7QDkow$XH5p%H<{;` zLi0?JG7Tab`VtIR<4ycE{S#>J8?a7mL6x209Vy(HMh=W61|(2}QV}kjl$|%yf)k0W zqXdD;fD+G*${?*t#s(ylgSG-Dq@1#f3Z463F$M&9P>%tj9W-ZfJTZzTqG%W@Qn|_u z5yt0XmUef{SV-DMG59v*wy4s?ZgZ(ZFYpiR!P3 zlSh?8+T9M_4PS&~Ucg~jmx9iJ@j3M&aN&)DU9zlAlug;Ngqb%aH1#=o+5Y%7;oeS8 zaud5^R;&0RGqxga;_C5bc>KlN+1Kw+zWY4>MG zb3gvhzWqA;{de!@ul>K_l)F!a+Y7Kl7wVo)^U0fF_G@|grF!v#dG$rWfmF+x)NX%l z*nQ7^{E11~X~DKBLGqMN))C!()4UzW49l;ZG~cuv0ioiyM*Stt+MBqY^E##faQ2=> zBu?24f70oCq2Bx4=)`x|hp_wPdrICME^ET1`I<-HLtf?-J#7-OWt>JoXb-< zd!sq9XgK%7>k^DgKZ=QOq9yl|W4mzcS^$|ukZ^#yaex^+20AAI^CI3c$J#Q$+|2?*;3G?@(GA>~ zZjH@Dl&wH4HLTzCl?jY*r(v-7N_I(O`4ypqx@nsZvo@U&Z8&X`cEh6jk@escqn>ND zwYA)Jjo`3=k89K1K4OqH$xrRU_~i-r&1+W9;gj3IESefLz)6}it~jN=cbc3sD#)19 z&YV(D=qGJx7Veq`=N;|(D_RX#&D;OcX}!d1J&P?nzU!7w&3QrHd0zc2D!rGJ zep-;UK#Hsflz3b~F|T03ZSaL`TsLR<38&`{!Xz07h<~dxHTK;gZ0goX=+unsp+ydo z6AlaaT@da&p_n=-C_HUma@S*3MiI#Ep}-j?vdt zC<^@yb4T=MKRFNm267(=Cz3X@QHri6Y^X$=ui^UV8fINKP9CLL$79Skt8Q#k+J6?c zV}TynL3iJzXto~jQ3!;avRa{hD?fssAKq>^ur|nuLi8q|@fToXSh19X7?N|KMHe&H z=E~copk4OLsr#boBD5w4X{;m7;InL##1;3+`7cNrkI;Lb868<>mrX)wdkL+B;I-%4p^Y}mi372#>n#UBY3hr?=o8g|8Wp!Di?VB0Q!kkn z*YNQ@xR6}Ut^K;CC)JB5utAM#9!&_(Y+OLTns)(0+eg(apRlTp;<}yd4G8(Wl^yai zuIXg&Vv=72#;y|Lfh6gNGEG-8Pmp3bKsZyi&_jBe55Oq~w0F?%yHs2Xz#&E8woTP{ zE3jnB2|Td|K7d=OWDqT@vqeciQQ0L16S#vBz7sN7ExmT1sPlH4w*!;ohgYVS(k+tfrl* zB#H$UcWI^}LS(P*zKyghk-mBx&NUwE8iR3(mNQ=?Z4wNASJ7LCv5q3ztbuTRysih? zGFr(XLd`4$XB0>_3{fx+q#K9htO6-EnF>T9R(B)Hw*ulgLPR5$Qx4K%pQ3s=gwa!C z81m~ssn>kMmCU2Zo;;fS7u7N1-YAgZLG>U8+1@0774A&@`N6TBq5Rbez7r8)EIIy7%H8b07q71ttlm?ih`g(2iDzkf53ZWT^nOt}3HKlu==T+^&e% zkjIH7(L4ylgGd%CA{RyAb3rpCP*e#d1yTmfwhZ8VQc%H3Nh!#xpdmR>*8vtw8C6MH zBA~2;^iCub(lgxeJp{%CT^PoF{YgCjlX~W>*1exri+{Yoz?)z=0sff?f5`j#!>*-M z!o~sOi9jU)l0-p}8Wyhw1#Ut3C-T}~sa%6`7vF8ntFE>cG^GTk6y$=z^+bJrTWxVq zN9}k^V_RuOTSv!8OL<#mc~O30cYn*RGriA8_ukB1bA0Qn?rrINiyOU1uM$uEfEHlT zqd?5TK#fW~2vd&10KkGh4J#}xBTj#3-GK?`-uWeMj|3W()mbu7-7-{DHeOdX)>c2zRohmT(_Ogp(c7(;th_+kQ zqcFbvJT1Ff=h;(mPQ(m?{R=v1bl$11x?Vu?0e?D*juO|b%OMoW> z`t5++{$Fkf^L9{-0r?ie5P-N2LOb}Wt-uh-(}Wva(jDaNp#{o_<5E{}fy$R;46try6W*!(*cdVI*lCg(^t~0pgh1jN$ z&>DPGlGb*X6WXJVobZ+&N`_8s@AZO^1XfTy*)Im;6-i$cM*=INehKuzZP-=u7>`)y zniOhK0yA(M(kF_Ykj;zF#evn-;1q`HFEV5r*@Dnc(YFRpI;6QB1Z=R7G7w8C8e7x-LRVP05^4~QkF;35a_h&kUA6FL z!!vmEi4WH8w?i*K4Su$~=FYExGhf{2-kA>Gv+2GLTrgPs4HkLLjF1>e)52|f!R^E? z?-fC2y*DIW(#&rslCmhPI+f`fwyP2HCgRJC9OnetNe_FTctWN!T!W_HO* z)9FuogU>i!|L|v?o6LUZ?msImJ*-={Ku;MXZ0Z-M&e5aBKuLy|I?c858Y4$1OW=HulW-+)tyXi@5ks^&OK2d8b%;NBCgHW7h~Zu8|Pe zz)tFAZs_0!wI~HvqgPdsW6sh0KI zx*MwDHRQm2y-kfk6f4>@rJmBQk>1Bn?VyM3rzH*0cXcq*TG8IMw17cI!nkPfVIYuF zi5b_(KBbd!h#k|04X>mpcQbOPwdyX}bw1R~U!Z4==?(rvshra+I0EQ2s`Bp-%X-W~5y1n-t?!ewRU>WaRK%W2=ZdUBD=C(=drZ&LR z0p}^sw!_+cFB7&LK~`KgZ+bvqKd2ttN7$IF7LZL2@8+Z(C2XjbwNF+wUWc}bfb>Ek zryacP<937JwEM5gtsm9fa!EU47#C2f3f2t6r^QLn0SUce{LvCg77GAiEBG)p&e3uHxx%iHFlH}x+#c#VbQ64h5B4Lu=)aLn3n-kzt_+z*1HFB%2UxS8j8nb!rG$N4Fv%w0no z3FT-lA9hTGxc9wD+k1`7a}d=Ut7p$k9U!Mo%Q+|DToV;Sd$<7=B!hKCw-j#Cg0Sx$ zX~#+W>K2|)9@a6H;9scVz8}&GqZ@guid|(4H_Nacm96$_PJa{j{FKm$03>H5)=8RS zOs4xts=BT~`4BodJX1+PhctN*K;7CTvszwpil6E>f7F|USI>PX2knxltd`eym$Xcz zMUN8#YbE$D(nL+Hj+c}uOwrH}D73(WDntxHJG6*fJ}?h_vpDsYGk71jf0(kRpSY=C zEuoRPy_>W9fI;m9*1r|ypGODIBiAORbp~~Hsd7+_s;)m+499ynVcnut?1ELia+IB_ z0YF~fC0Es_h~_^6X$Eo~HgkZf7OXaaIx$iJVOC3fR!D-?kH|Knf1a|@W|n6*7~O-h zzmisfGS3yI?WCydhP95tS|nmk!MgE!%IclsHAPao8?m7c`VG&B+mA>%rV(6|ajxmg z4jF2mMcjyX^@vugPXW?8Mb0Keb=4kLP(L}KiMO!@sEUc6rGR)TLt{t-kq{`TYgxqgwH(6x>AneqeM4`i0VMk2eH92lrD<88nVfRvTj@4hMi_#C_Cg(Y|>@blOSps zq>~_TkcihyRu;$0nWTWL1iW@I_zY2CddjeDAR?V+w2fp@1gWpWxO7O{v?0vPF-BR+ z+Oa5uAO(RD=(iB9B4kb0vHW*XyiyQ0ktl~Kg8LTYsst7Ljez%svE52?h=hpR1bu(9 zb)us2W;LsISc@Q{RhXP*5XmA8>l8wD%L2n3(7lncjD!d}Dim|NMXH=Z0>pEM@@1o|P`jtOKTc7aO-c)m|rbkbZs~>rufe8WW5Z-}n+X)$mOS6rQ z$6%egKPsUI5v(9-@ft|rL1l@+JqXD@K}B~B$|Oq7W*f>eo#~q)3y@7nHpMMQ&3PNj zJVDJMT;6E4g#IdJvj7=gCrP3JYn-Q>_m-CORCR5eqJKMf>kKDx9?}VwWqL>;=s*Gs zKKe)oz`yVzIUY(F3id}JtO-Q7M)AFsslZ!AQjk%SLnuSwQ9wz81g=bkh!#pZi3mYOb&pR6d0hQvogI`WdjDdq#6zEx=N~`z{F4LzgUiB zf@=lPgqJ08srE4(rzlyD#Y*!W1=dkXfD8koHBugpPyt>Q1z;psR>8>10bi=z|I$0) zQ_5ncKYm~wLb4&d4tXj4C_7nNjm)jb?7T*<|q5?U#r((Mh%Dkh9iH$+kj8! z=Th*@G(L1AIA8+V7UUeu?7h#px+J*yDb?7?`nx~9yYb;_Z(o9Y>Kc#r#RZ6kpQzI?c$AOAinA~nu(NK! zq6aX0=?i=LJMa5Xv!AftYuM-p%sK}{lkZgi`R-HM9j>P}y+3XFKsStT`v<=Lst1vxifynJ>4)aej}Q%(b}^9|}SZ1Z;6VZN(_m*; zZANgR14E~73OV$LQg%W6IaPSCkQExO74lWHtUoveQEyd6o3LXA%;FV;<5bM8~*Ej z_mAQLjPH0Zvd}(QwRQR1+cy`lJ-T@A_mkOAw@xkn{MZ!Z;csm!9DX2KcHg-5IS%xV z(*}5tmvlbD5X6%a4a{yv-lCc{`Y)#R!#~M1IxQ28MYpl=;{1MK^7yO$P zk%N+*Gs4~tGO@*buOa(KlKi5GesL&|jcEUkc>iduXDr?$9_38VL; z!&3R%OEfZSw0E}{?ry|7`b*;}V7e|cvk{xyat+MD19Cek$$;O9LOm=`3sR$^xZ0rY z12DO=G@%?*3u9=G6B=MOjcKml@_ObBV|zAmL8=>Zo&8Z@ID-`89Kr)1{BXJdG3Nf; z%}h{!ieICHtx8b_W(6CSSRaJ(M+yB3lGQS~jsmhkc6cO`H1x9!I-mTBGu$ z*4PfiTgUoW3~ z^Yy^{kCU(89sBsT{llmF@5{Y^V2`c?vTRFXQi$z z1GJZ|;QYkEVEy^b%5OO7k9spKRLg6OUk)lb|qtiAg%H*J&ywpO#|*b&`K zuX@gwR?VPZPV9uB>!aDsH&IeM+G;y`%|5k|E@s+-cJ*Uw`2%|IJH5ldyeB>jBRcTm z8M<**%!E!s_5vqnK$zN3O|3=y#cPER3S*n}le!qI8ud0DVkZrgGrK^BM90rtS3K0q zoW+M%qSq9$(|bh4M@_o#YUVD0q>b26?RDav>F_OH#wa(wpP4qrOdjB8^@D|0dd#fl z{@W%6hw#z+nQ=ALb)}5-0k=!A?Oj--_leg2qu|Pb6<0?KuVTgY5TXZULTX4`x`i22 zT3MGgGVgL{9x`)=nBnz|_$E|R0l1OjhmC1&JcEfkfZx=M^3G$rWFj>pRBd+}SN}ia z&NHgXuKn^i9a2c|Js}|pBoKPOUA5Cx&P7 z-m#&g_guWsn*W*)^L6HR9kaltB;3JdpX==X+qZai&!J{ZZ~S)ol1qZ*oyJp(*h>dZ z^PbohzL%%m)MVe|FFdZuI^&RYMZM%4cgayz`3=jmhdLA5 zyZrb)FobAU4hZKq`rQ5!^6<0w?tg@h*Lc$pKshGaWrcxhkUSuU3llksh3|8B<#>s-j=OCB2Mq2FX%FxSw)ma62h0Ocia(gziwIoM9(o^;t*|}G00y0 zkA7eQ&u_U-Xr*f67GQTEJ}Im7JK=rW0FW`-7UrjQ9z7-O{%=N%*PT}On8aabj7Vl#D0lQ=Aor3gVFB`0vCu)M&1q-^~{ z%eka%|7d;^rNotEOrx>Z^I`aj4=ys#z7EnIF%Lx;VuGc&vFi*>$S&plhnln&ymB_n zyUe=cnWz-%nZ8&*`s(`%oT86S4?VNGjoQKy#+mziaaqQ8oA@F5il|y<_;$MEQj_39 zdU6}hWjZaYf)N9hn#>Hq|k) zVPScQU7)7@AK&h`{MbS*g%`~;UK{Z2HqqeRBb$X_E!+Wk$OxEiY#*;L55}lsw3P{_ zetBZIweq+Qi#2z|Y5lU8jiQN52!Uz1kY&Wkwam$dz{A1&%%%A!!Ks#fVGCPi?Y7Jf~56CraJ;QMvg$IqERQF^2(7rVi-@ zml}em0BCFYsEhX5Z@KF(Sf4;yxmS&S!60;BlzWetxLe0;3PTkR5n4UI6`bA@SzH|1 zT`MSyR&dAb;5)+H62zlWzVxDX?r*ahdsvfeA(BjUT+8vT6;ACV`s5p%#2bpkIabs4 zq2iWGVp%L!1nktYh#>{m=?Cnfj@w3e&CyZD8(IcnR2oE}V0gvpSjMvb(}2>$4oKyP zEMx`DWB4V(qPV7Wg0dh1im+{HRuic%X3|P);?OtEtKfD3=x^? z+b1x_uLZ*ii)lp?dm~~u9hD=((pXO3tZMj9Pk+iveJR=aUb5*mA^rl!rC-}@2ck?7 zx>pL93}Isq19aWMVW$3sHlodR9kHjN@wNQO56t*O7~V9h>wE*ND2d1x#5Ub$o{=UN zXOoC?TtswV&JSLW$e__c4#&{U@EnHsQnp(PFmMptP#v34tfxOTy(0JscIr)0`di}! zD4rW)WF6;CYe!UJ0{cWgqKTHNFT#t^rm+oKGH}000*XoY*$8JGA{u8Po{SZQ>Iu~Z zeIpD3j~J5>V-9$tbQvblw1v<@wRzcyUjyP2vRP~7QHls=GOXeuYcpnmF#xR& zlRX)hs~G#@B)%?{qD`WXH6H3i8Pk8fPehJBSBz0dQf(p-vSbX#jwKipzzk0@FoZxV z6G1TgSSox9o$wHn1+&eV-v(^K1~76T^BCyE7++fl8V}qzuJu4)2cV;C~H4T zY(zQjD7$r3{m(bs$3NVLe*~dFrlF%*;8pHFk2p>g<@azd{N>(5Cv4bQA8mQFHT&_4 z^V_RinyacB%Zppe*YB=azoT@^_VT)>+Vc9UWt*1f>^*uIdXBywX>OeEJv(it@8RpX zizx2gH|p8nw80<3qa${=QIGei!?zLJ-=CDDsKxic9)CvNMuxr7Q9syLy!~zU><_XJ zC0|5+nhu7kgfChOM!vnsT~}~$O?l;(E$!7C>k4zbs%i_DuPQ08{_*zZo3^qwA?&~% zH?ONS5S4Kf96j@a(J?4Mn1xL=6tX=HfT?*mu^^@63H)h&$dHR=iR*Z1Jq~KydsjBucrtJ@>@R0uOJaNxelQ(}92fpB1 zf4HqID+uMj`h4%t%g48yidIeVPS2gHwf8H3`vcR;A?co*lGby=xoer`_J&4!fHOs) zN>>XZ>FDCM|5J5DqeuhCx&A=Ce~w`HzGJq1bO;UTobQi*fBXIY8}#~J^vQYj(J2)D zG<>)%-p16TqRX)Uvn>CJc0sqa^ssUS6@UE7?s$gT{lGmaq-RMy`s2~hAJ4zPy8d_g z2Kwa&`t9N9$H#edf|dnXxNbj)RJ@~P9W%-(MdV(P5*b64f=nN?wf|?z4%K1cnE8Lt zfkf~W=qAvovUMmdSOyH90b2k|kHN?COpHZxFt_7G3S+SfmXSb-`_HYhi3P#b8Y5PN zPX?qr-qhAeVS`cHW6c~$mhM!mu?}&4i38cf$5`V_wD!YUc*8-bzQUE~5e`k$~mt0E@nQT7~kxA2*bFRmpId=YIzomQY%?}4h(3<=Ai=Ka5dFr3G z2d^#f2dxOO~>IsaX_@fdx@G5cjV%vPL(Dpgs ztI0dUN!=_N#OZJ(k>=sO^Wz9ZM3hfZ39}hf*TDQHxk1yo}Z(&ZTR!r}f zXP&U#{M4-QF?r1u@vfI%=SN)!Uh(G^&}VKT%-^goIA>LH#A?H7;o>^2kQIzMZL*95 z_?YcRp*7OE`>mEAqRlSiWEKL`a?=)Mphe*%cqAG(t>iC{^^G1KHzOY6fvUdEr@xl zvCtjPtuVGwpb$b;dK;K&h-y#ZMUdqFRDe!fd9qytX-@tIVn0?)mwNLLn{rf^_l})? zSD1d@G_lI2=%ILimr3$&%H$?-d?k2k*rAIpvkp7gf3)g-ZS0jMNZ2gj^OBlVUU8Z`r!}fGXPqGq%%BFXVMH~H#&1IuPWp0NBg@&mh$hao4vSf5dGV)dk=xl& zPwAPWseH@J1%diB_|z{=T&{uHB=hDWx2J#Q9k;l_l^m~Bf#+h_eCc`2GYl>yhU{hs z_LzjWkjHN^pS}dUR!$q{HvW_~J*SRar7Ml%`Zx1~ z4`DnO1H%&^w?~*ZWH7tY`|M}SrsuS<1Lgr|$w5Pc#2Y{;LTppynoMoC3~ldZV9x8> zETa2YsTT}#BG%zd6R7@GvaAQPxkJ(wXIZ&JwDCQZklnh$`_0mR3Fn+LwzS0CSF$IT zA}SwUHVuhA%?v*c(E!erOUTke!-yV^M?XL00DD}aQ0PzRX%N3K17##HCWR8dgcUNE zx;JXnlW)4%`&<1BbH)hEi;+n-u={9%P`)-sub_e>>%Z-?z{WDy2uPZUKYO*0wn z_YjHYh0VY@`XM5JAq08gK*Tv2=bK{aHceLp8RV%Ln+PMBr!n6fYIEre&oP2~rP)`> z`6p@a>*$Wtn9gAcSqhs?ia-R+d4%JqxAdaf%nNj?moC{tm*GMdSRgW2J*yCHLo)=& z(W2<<;xRf@HC5pQJQ;-Vi3pO^D^F5F>PS{wbzLhlHaQGlBu(PMvW^{_*aLSFFEJv^ za11j8nz-ArTQAbT(0R$$Wi^NY9v~hi4;(5Fn*Obabo*$%vu_)E5JaE{fmDoHM$5Mu?UkqOA{qj=&%4=xZ5b4J_0)TQ|r2`U;%| zs-M3cKcm9azwoVJbbu(>i88xj%RFj*W7Oj#>T>BLV{Hrh;0X318nm@)o15@ZZv3G` zhZ@RT%1aBHx2)b-TwhXNx}$O>Oxm~9<~NkD+q5d@KLccHA^KTXe~){juzd!MPbt=QS=M&4n@p_3>+!O%KKcD6Q2nHqlXa0L3p21Uoc z9;WUa1sFSXQ%kOy8hwAGqi0Xmy0wt>tSnl$y?k?1)t36Q&0F$Uw>Q*M-(wl4x|q z{XL35^i6-ySFgCJ-Dx2|e*Cz5@ksmBfJG7Zoa(Eb?h#f&m(lD}$$`hx$G^k}z7v{I zn+svqH4gDUziJ~9Sq4xEm zrZ&s-NY$hGEkn%I&BB!p@^^pLum9>bd>}W!_73yjyL8g8pKrha9{%?I#_v&p#y>+x zzkdJtpgq+uE7Y1@d6!uChLPLEN#BB(oB!vb!1w=O_@zal=}}n!qucfAToCObS`Ao2 z(Cs*Z49k~+PX^rJunhSMknR|v8BwMI-EJgOK`s?1v%#2HLE4LI<4Ljh0NqZu^n~|x zg1INn%Fo!!hw2bWu@As&ys;LZ0`Kt*=MeZ5Ya0x59ke>leFEG{!)AeoH_-S)h@RyY zi*=47j*H`tPZms=D~XvWn>Y`c?WPlxctLUOaT5vl0s1Nzj2epblweaFTYv=y1{4I_ z2^r11R}&E%qlinFgcm%Gu_BoW$d4l@Z?Y0>(N(nG?8@q%q8oCwTeZ*?lpyh@RyUrW-^=JL}J+y1R z3L|%AL3c#mp~e^AcD;OG_jNSq+&?wf?w|ei^TOw!S4Pl*&m*00KcD>ad*7FzJ6?XQ zzw@H@?(3X8uVN0KO&YuiPyz*>psavkwxWrs+Fu zHXKl|>$ND{Z(V)da@$qQO=rz>4%ikR4;}bu-StFRaKdKIaYf!0xB7QZ^}`mWuV@)3 zM2iNk*B(}9@6l{L&Rf(e0<8MVgC=QR(uIA(1>Ky~Zqwx*AnB#+&Z$bSdbZp$&);t} zqtbl!DOJu@>Du#xf|J6M^Y*)*i#HB2mmaXlKW*J`-E8YEC`ObnKWw@6f~xASyy&Vt z`>5&qvpyYfB`x>NPkeDbGAvrQPr9gIvlY_5U65}Dhq*AR#VBkGX+kw+LW3f?&$je6 zc}j;v{uNdIZS4h3toU--lnU3PI*p` z-PZH+HHYC8Kv{W$TXfc{^Pb({6UReOO$(24XE$3c?G`NFp;*z)pHoYV+X{4g^X*rI zPK{WU4_U7n;IBU-DLM{x6pQxTA!ktlQR+=xZ=O`FTHYv~Uuin0Zfwvxvs=9Es7c8g zhkf^5&;0y~X?_#hM6Wo&|vD-bme>wDjw7&7(=`nQj z{?PR)P?g*d=>4EcC^hg{Y*~NZWe5%IN9|hP*tNW{Yj~h2x!}C>5x?XNlHRNpQ;CeP zpw4NPX7-vdK4=_X$BAkePuxS>a3kR0FR=Z<0RcUwQq_Ii@BS#fAk+QxWple3NqdR0 z&61dMnO~-k$j!ja6|tQynA?MR<>|@8A!)9sbkjBuFjfX&tX*IOZmjgjnvTON#$hc& z2#)ba)>C!OA|xrt7}?L1n?}@yADEe!m1$?iQ3cfbeWb}{u&Ja?t~Z@ljj@ZR24@P> zdQFz!u-W;N?zMz7VUuR>S8?G3lcfD{zC(@L%w65DC_EvIuOuW^I9>Z=e*?uY?NP?o zabxS4k(C_RY>W&*dH#sR8KIc-g0=;9eX~4-3Tod=SKK5=?-pgB3A~QF_Wj^5Iw$rW zV8*vG!^^RzKo^jK1Ll9Bry=Ab|A)Hm}rG9PDT z>V=hikDWM3JaAUwI_AM*JAVVP`uj{m9L8hKLJ6XAh9Yl$RS3gxvpTAP;xNu8+odXpJfWHa9xhMo}RT(_%wO-wkY?{QRU zeZqbFuuZ{$Hqi-i^hiWz#J&-;xovuZ6}sMal<_+_5qZWo^Qp0W__?o0(@v4*pJlAP z=2-ulp3p-LIqI7A1Mgd+V-?C=dKN5O7?mH3FHkMJYdzyCGo*%_cGI%viz@v#-@nJ$ zy97v6Jc$Q^W~Jjho$N4O9JhitVL3l4LmZsO56&X{rx`iJb|#%asoXRu&5&hHf?iS2 zX@E)~Xc7Rk!wH&A_nc03%Ak2J;)TsZxE4kDVmOm(QU3W>OquX$pT};K1JpY$Kp7jjUsI?8g(_C+dKGl2)>9B1KV6HB7(^CbKIUZnE2e&zhYJG+SL{<@FHNuO=k1H0hAF|E6 z!4GdmtTzy?7b7?*Jd$Ch0Xj_kvF0yeuwyv7BoPpY5UdEkf)<`K27!c;JD#O&%+@Dx z@pOp++t!dQ!5UNa3~@R*=yn87BSFW|2$1i3hGU{#*ANf-{9ow~=xaTFjP{sr*Vod+ z=wSiyXpHDU=#^ju<(^a_5)`56XbbuI1?JoKpHaJ4sL9Z%wDmWx86|h4yglD!1HUXl zvYz}xx`TRb@1GtOxWH3dlrz7vv9W4XQDaeFSIO4;+Ku&P8=<18tawvf`NoY)79Ko# z^2^B62gPXx$rG$w_Oph5N{@X|9{fOV{9tzIlkrLP~~dAoZ>YLq{{=DJSTFPj%XWhY+}yZ-7Q8kspQILlAbT)pLBThsog zt>D9lLePC3^?SB0>ssLCR=AUV05vE%NoqM2_WaZA-)P7m)b$tYhN9xnsPr#tK8%W< zqnKAHZty*I&q&C;loQihIQmi!u+(&!K%u2^Ddt`3e=R-2X>r3 zy7%VsR=B;e|KQtuchFxCTW1ACr6y_i-ZJSO#gyGL-FZ8t_d0caGJ=351fCczc&0$D zf|=VGE(MI+K~d||1aH1MJ_oAICxfo9o|D5HXL}ES`TXeGv6fi3%n9z?x?9YSZ?yGo zhO}W?;)jdM(Yubu>M#@G5vFyL7+y5Q58_+n~WG2kp z|JCgv-F4|az;@}g#<12{tV z-LXnXoYI+W=}oor1>FvE9V$`&)#{+(LASHr!ollKbsGx);g_y`NM~ zPt1yk6eU-zc0HE$yilI};yC!pyy(1W#h|2MNVEE!N#+6E9dCM-JfqfRdA%fij~%=s_5QGJerzC%4i@R%=cRW07_u(H==eiJi& zr)k+4^M-5MDGj_OopwDhT=qQHGz=-XoeAuDr`dcC30_5wUO||gCr+wTE!b^7zfZOJ zBsr;vwqn0^%MIvbveGowzP)+t%kqgb)eW#e&+>|UzJB9=N@TM?iizD#}WgX`5% z_p5(=20ofMUe*s>>stRzS$LBWxP_G7ERFN>rR1Ux83!`tmJ}2{)zCK8@9!# z6jkS(TQ1X=_2TF4vfO&utM&?gRu4I@M<=|3y7G!k`v=jAF5&d8f;rXX>^-zi{YII! z2BL|gnY(CN7x77l_+eXVX0cG(0^vUS%sQWn$C70ybX?Pn%tL{9&GeaPU=@d`y$v;i zhGxEoGH*k95Y{Sz=(^0vX$_)?GFg0qyz(i3^$X?d2ZWjZ!q{%AV;VE9W6aP#x7K84 zlX7~6o>eq8VySrPL1z3R%gxtVjv2Jz4fgx~npb=iq+WDeeuFr*fxr2*Wz7}E!Zv(T zt;b!|{UK^rcZ(Xj0rAbl1(k||iinySuwT$ObtcJNgcFaLR=yGKeCOEm(|qlFY}BAM z@0Qzh)aw)Kdf=N=!b4h2uTf~Zq1Xe*pG1(Si#HtcgbLmLzhs5?coAF4F4-9O&6vPq z=!Zo#Q=u=C5xiDc6$)iZSoJKt#}YV(V0f+}`fcQ{Kj(7+_1Qg&nYcS-=bsp0F9$9m z+Qg6;KJ=tA%X?4)_?2348Sj#=?>3DVy-b?YX}$KQaLHjzOeJRA7Conhf>=m{W)ZyC znWXlTBi0x>EHau>M2KiLnYjn_v%c+8lhl*!$Oa=zIJ`Tjdj7-Z6KYm?(AYlHFuVwH zoJBNqXW2PJz#qtg2C5JvWdu$c1&9>`vjA|>@EyGk)UJ>iLKH3(D^G^n4f4WRlVB~| zEXlZ)OuN}Qhk3-H73`RGxZqr3)HY?p7K90KY%xjXOR$PZEJJCYF*J)1vPcP#6Jtw% zti&F;J#KlgXqj*1rGLeBUo<<;vtsA#iropGslo}nm@avUSR-FF;4tTw*z=B&&3Ve) z%c0j$QNt4?q)V{ys=ECtV&RTp4aZcXz@4*Tr)BnK@!IRg@%!L;6h^E-Y-iHakE$9` z$?8Ys^kmk>cBE4f8h^@(XaM@uw8horX5d8U~2gcWc=p8iB# z_>~=hTGx8BmQxxnY&yf#UY~472+D>t5yi|>Mtrtt{0f18DhnJkKIz78b8zmnS(6KS zzS9w^6k{KwG~x`098IFT$T zlI>^UoMsTbr?G<)CBgH=-V1o{GY~}pMm>Q&xl(UJH-GMsaK#xUV!akGN?#gGg5C#~ z7{-s<`dEY=Y?5$Hob{R?SZtun(<6uwh6KT~5xN`DoPdy~%Y!FHs*9Bwi+o55KZN4K z(yU<3-On$%tK51Y6HtM(%b{zMfFp#EmHb9O&-aSQ6uzP{GGTcUq{4}d7*Pt@)XN*_Q8 zdr`ygQECrL@BF1Zgz`^6oi#o((~>Y}R%qdt(#EPP2zc%-+0;_9xwdXaYgs{KMQe3_ zapRix0|yVH-=W%Y;f85boIC$PhEUoORB_-nuI(mtB$*XAB3@At@&*4rglUxQylst~?xH8A}&v(gBlyc$+{T6DIowLT<1buy>ucM}|rnqZ+ zS;zKmt+gdx%{5IG#r36y7f%eJuTE?lZ>L^WXVCEjnwZQ^eI@TjNypKdQ~g&2nC)&V zKe>1Jsm{8AT}}NRO{Wg-9@>%Dnq;S0-%LG>ig(@Rl?{;R=o;u~1NjgO8eSW$D_V#lUv%xG^2(@g`xj_a@|+abnlf(W*Vp$?PPb3BTbK~S zYJ9+G`%KMk0^Kedcp-W6N3{PN(t)Zr=9T!eU+>TVv~y{1qWOZj@tme7M!P=K)*ts? z--;jvDxyU-0zV4qb^w6FYZaRj>`k7Zq};J1;L%IJZzz;W*nHlYK zVpZJtcXx(=eEakL>2LHI`up`y^vkaYhkE9FPs++7HN9bOyGoe3hB&{N|LnW!-I#8t zG`;c+a67naDg;{pprh#DXDIpv9sPi!KfZl_cxX**?nD>IUhBGdfH7=IsHBl6v z$PA2!KoH3~g6=S$?f}U+AA-t_Y2!|{a5Myt4V_Ko^08C~z+f?CGM-GKvROnL70aSf z_#C=OK;`qve6b-AEZJh1q7x-@zQ&GkWlxrw5rID@R~d_B2!%;CwE#j6>_mjNt{f{T zuinzt z2cPG^`L^&Kntbn9?9kUq*U<2xZ;mBLVTv+t_bK=Gqy8&P1G^5{uPIR_4Yq&SGr<*{Qk=w4;~#y(VgG_WL&rzP}jEUpNFS^peLVyIyn5} z(%bI`zW!xJ{Z}6A(ak9EKEw|*gm$-{N*olqggj&JU3+9_2GS^&@ z7GAU6bj38ii#@dr7qym_QD>6Vp;@S@%R!b5&Y3JT2_!CUQoA6b z*P`vM$=cI`)Gl^%i!!}Kow%JExrv$Fph>@IwdRI6|AM0Sx=F`9lfjpE$3Fqm58)*~s*%{@mIaR!=HL~Oi?z}wKk}ZnD({@!qPSU|uJLWZi3T*pys$?t1FI?*)Hp7a^`*zT&9a%7f+$n-$3oR!cg#b7}}l zb;_a>vaP3)#7f!5qaNpeI`lkLmmgDYIAm9N-f`nOR$`@m-ZoZZ8O-N7GaAA9@05R& zlX-}hbr7(e)~7yLH(aq;bwHEd&rfgXrnXqD-esVHe_8%1GQ#nbAc~I%>V`K6g>OFrnBgeV2LOasJvt!O||FN2YvU zk7?dR*8D-N<3b~0DAhR?=AzmTOT`(7RE4+kQ|h#AQe>gIW^u)aq>Jetn3BcpSmPae9MAr7&>hNDh z$xYhCJfn~zVq}GQVi_bEjnxsr{Ue%2j&10@S9CQj*G=C8^y%aaRFkknaKe^YyXAL%@P~@AXW1oOH zC$U0v$S$+lPIKuF^NgGmbUdcxoF>sV69{2zB^8gsB%>Ez;#qS>wSE_3Hvt^QB3TGA zVvY3>Dr)+|&An#qGMC^z2j=RW={qEur+Mjz$Z=KF@Qp-=IavR7)UZOb=SqHDB{i;r zKA}cDr-qf%Z<2aY8dHYx&l9e?CR%Wwov_!r8D)R_>GlfcC$59Ifhc*kO#=qRi{q1#cKLpP1)-v@ZTem^_Hs z=HdJ@1(Om<3R@kT6Yyq99vQ+Z+wc<>(E=8;JW_a}bA+KQ*?uXMz$E^(O>Cc7m_b2s z$-ra0v4aoUF~QJk3U6Ej)oC)tex9*ovc5f-EiC~`Nj0BJhgLzl(#XV7k4Z!LZuFUF z1S`LjGu|*3JT#np!EF6S(AatuvJqdPEp|k>)fg{L%9k!)T z>~^h~UTsAN!)d9J^>mEPN0)1*Zxd{!4g|hB!#fOH1#XG@w&V5frg9=nk$^_Y%G(|l_Yli?gyyC#@PVg(jE<-e<7%Es z;1=ne=k$1}EeJEv#lz4WVQ>+KnISs>Ckxf#I~vLYj5tnOICxvP(-YbtdP=tCN=Eh& zujnpue!q^>T9)H7j7cP7EE^*>7@J^)wgi!t9$lhE;OG+BdL#~lr6IZk9gGA+k`fs* zJWV`idDbUu6S**-NAM;)Cu4${<(N`rEwVZL2Fi+S?8@?ZXS)V=|W+cYnwCkC+_%itRxu$Ixk0yjO>)_qEqvIofyi;I30W z?Wgv)-#B~V-QMzsIJHetkHG*c>U?0e^B-NGxUuOsjJs}A~#poR4UPL z>K9*;CREmpx@C-2z&vDwiAK8T>Rj+iH?loIc4^3gvIDk;eM$Vo} z=+>#LwYzdI3jH(=edqS)Lm-MezaKHV@|?Q!J5uY82YE*ywM^gPW-vGB`d5Iv@ zf1`i@jJ`zC=jiXxDEjl)_ost-3E2~!soQShs$P(mR+DC~G2n^+KlGx)W&OYY`qwA( zuWr|+vJIJhBQ9WM#Q*Ac@X0`o$XN0plML5Xhh+j*8M53ObUT>aLAL`>hGgbQQ8`m= zTxoXhG+Pg{l{-Q0N>q=z+(EY!?Z?qwgUOEma7%LVV|j$pT!P>OfXR@Y!kOMN9RE0` z-xN{QY?}WRdO#e@A%d*&r)$Q+q=+oF0@DkY5C4T}7z&)e35iAuI0X&t;#` zMbFTAk4IA9e#>}|PP_U!`uN+R6Cb<=Un>ZGe^a*oqbVP9-f~{EWze?ePp#O=lmJL_wNe#SNO+YfYt+)eH zU)B7`qV@)mRS1(d=m%zUr{&4kcB?k*2SB39qTRfdX2^%i7WGkP@8nOZrlq&~4t@$b zHR4cl)os&x>-^)A4TGBMGtPC_xtaUTa)-Q|-&3?dmS` zHyv`^_rbpRgR=4>l&HG2KLSf|)ak$DTAx|0KW>uI4G#&K+~81p$9n5^VeT=rEtdh4 z&dWb$-*hMBD5@;D1o#xmoNo2pKIxQZD5j((G&p9R)2zBATrnivcw653(fK0kH}qGz z^@PdPGM5$oX4$)B%MJoC-!yZ-)v_)|beSTnmJpLKo>pVGY?mNo6KPQyh(LQ7@wJaA zO0Of4>nO9!$Luc2?ds)&@TgQv_L}DGQ)KtRT#GxU5mL9pj1H5eN{iGT;^cba!WP-8 zy-@aQUw#2xG+_rmxE~*87VMSecEHS>m(m8C9m&F0ixoQ+OLjr@rE;EnCvb%xK{R<|3}?2GfdMF8uO1_LsBqI@H37 z6StFR*Rg|Fv1im_{A!Gy%c9SsL9fv03*T(_JX3GKZCiKGq2;-C=UcaduhN<;y!-+D zl0L{3+Z11PSbu|=uva^vLXvcdKKX!PO1~iEkT|QuI&+6+{toH#e)jT1a9(3Jzs-E{ zaq~rIDB&fDY7*6DmNKE1o3Iy*&4^RBc-blWnk%@-ZA70{?5G0mp!Ia$T!Pa)yj2WA z9YWMZk{oBye3o${H{%`B6br8^i#}nJ2Qdk|2-9|olW)(>a@{;mfGe1;PnX zM&Ku$ywaukl0`}fXI2TtJem}|R8)OOQTa){=AO;6i&pDzGFKjOsW>H^T7-D5l$PI! zx`-+_oux;w5XDx*-VFzIalb5q>r{kijkk+)Df_M5hMKSaN?dSFc;K(ou~CQ&$d??p zz5dPe)(^_cqoPgys^y1uO(yZ?cLPZ*yloU41V>AkW&L2ULd6qzvYk_~LGvu5){=Y@ z_1$K})uwxZjIbPEtw@C2M z64t!3DtTv{evIZcm296x^jJ35P&~UAKe3Y#T*i-DE04~H`W~zK{g}W4#4d}Iu!lKo zk4;JsGNlqfuah=q6Jno8U42?n^g>zq*s>qB{f3&i4q>dL^>|Uz1w;7c1BlZkLze)I zWhBWV8mI9C^C87LkgN$OSWL#5#dD+~z}N(O3^*$gGcPTxV9Jy{vx3vg%o%XFIzaT5c_PLhh91TI zy!W~*pEz}(ilPC;WV}8rm}ozrFrh*eUrTjb0DK#EC@@aHh3b zzzfvw0*Z)SrCdw4M1!!U!munw#xY*oJ90{oUg#F!YSQ3nKr&8Ie9LPuYFq!tBLAJ; z`5*FQKgjuC#WSxnLd%1PK6;_3p!^@iB$6FeVWeYY6uBMAeQwf>+H|3!^|wjM#|UAK zw9s{;$qV33M;itj(~22BD}-@1_=#EMahX)tWI@3 zobjGB@e-md#^WJCXN)l9MDtLhFiejdfC%gWDTx(1jR79%GA%v~56N8XG)?^nX2x;E ztJqMrm}Z`gh(a*tfjEXWplJ-a8j$V=9F-PTf)IIHcm}}e5JQZGB3>c6x zFqzh+iT~B@S_b5?$vJ#3D%$vli;Hbc~fuqN$E9S)0rv`TB~k9EnCpCk%g9bzd^+c?W}TcIVAy?$Q}< z;{4pX9gS7pB}FY2g;iA>+O`!n)vxc{TG3Qqy0vgw_x1|()6*9NHARU|!X1O$%U?{7 z|D|lbh7|NtH`F3**j7KcenoNShiDq6sms`O(%V_wT$vbol;>u73vlt{&g};?}932g>Uv zTUl>Aj2uMu8!sx_Z{fm{;o6dQw19w#*8|^b}pzt)Oq?bN%p{@}V2Nwh^4vzw7h~rH*I+hE_s{e#3$~fzwEA0l$sarb;lD| zR7fh0BMpz3{l7UK-*FXRP0Fro&EBSyo@bc8&~itW+drqm-@Oa@i^5Th@6W%!zeXM3 zewSQ&Pwsf5z3CN_{Z1$2p4rZetFKglxwHIZOWOIa_U{nKMZf++zrI7?pua%3kKR4o zx?_q}#Oy@E?$_Ls%h)L^Na-c~mm|^_zrf#4sCwk<<8&+^P@|yR(Z8c_Q22+VUr_Y- z$d9Lo@)A}|aH5po{8zUVXRJ2livGL09p>$Zbgmwa111?GmH>1+EQr#;GUSMHFzXh| z!6&1`fcgd@_}fXQRQKMY_UZ|u9(Oc(fD!_ONJXWy7PgcC2$B9I=b?#9oQ-> zzS;)h?IaTgRwQFv+XK8EOfpda3f~u1q2X#ALASFk9qba5zzAeuNGFLc03{8SA?T1I z=y8oKLYN*i^o^vJ=>^l@|H&Fgldpb_Ir%u{#c<|3blT-l6HdMlKKXgv;kWWt9Yl`> zkxc`trJE71tw(c*dD z--pY7qVvw)W5}JwYqndqy;i69i8dc#q}H;Ns?GBToSW||HlL#{+ppesQ@rjdzu>sp zj$4rz|C*JZWzF9Kl|$iO?|eG$n^d2Ja#h>5d$QHNg5+(|`6cE{E5P4ww)PNZRxM>l ztthqCbnzbc+?|}X-JAuz&U;?_feoPjzI@$ji~0M>QRUJ_on9>$ZMK|druV4xE;-je zk(6I{J~C`M_?}UDU)Jy(05Ya)x`nx2HjQ^(cE50}yDVSRr>?pvEg#Zs8M4Sd0<%_0 z%1+*-QpS`*&y7cH^9~Dh4p?n}Ag+C2*7e2V1nN?GSDtf%JAbbLCbu*8@Z;OLlXoyC z)C=QlP3CngSDu3dciy%q@~%&IyPvt1os}k5tJAtzsTG1ny{79s#S8k(GrJklwRX!| z*prJDbDGT3cCgcG1nc&xYF^7KQO|x9gfwGrm050wYTbUA>dP~GneZ(q)_{#fHmgQH zwZURRzb5w-G)c)aYt80v7cXd5tl6hpKcHFNZw}!1bpx?yMtypo(v~z?uj_GK+b>G% zGGBe%YQs^Bb$bL08%0aHWNT0GR-X{$LHpGio3a~_-sM%DhZ0+`FiBPnn1IMnX%(il z@G{%@@y*29yQBwR2E9SuE~92kPK#&nGfnFzMsAfv6bO>HbHXc3Jj+yN*DVje;AQQQ z@4lp}JHyTCW3L}j?tbWb{-<5%ZJVlNs_N(REmvsi`!L}h^oTxH%7DY-Gwca_mE-qd zC)E<>R+=xWx6W)e$vQ|`)bF7;Fj(smJ>@2Z5C2u z8ccI0J&hI5v1#wq^FdxSar z8FSmY3%b>*2Uz2lvSw76CT?O+T+NAx`mGI!sXN(s7CbdT(PU0v19HO1ZvkobG4ZB{ zviw_$xqGC^o%kv1NzqA&iHnYP951ELx%7nbq*Va)vz}7P4q1XYM!@ERVLcuS+^OLO zCb^Hr8-Fkty=1O?zR;I;_sG*4fhU}!c0YYDzPZzCQQRrqtq z=gEq%YwBOgXVz2rfgF#?JcneiZ#vy^vX=cU^P&gTS^Fq<^BMM&75>?#QCq;ZB}p3; z&psoZ&?X38OAarRN96geJS$mr0v}e-nbabg*J+-3OjdNtWa|}9N`2v{-yXw)hxWT%c2l=r*6=JQLi`MB6Z$GgJjl(y~Z0bj}g` z=Mrq^66|Li+D=8B6XlDVovNNX9m|<_Pmqd ze9KL3L{xJrp>24gD|Oa>PW4ZV_P>hKr>4~p9h<+{uf4^cuuUA3#rKHO7I}@u2kg_i zFI;B^2LOO7L9a%&jb+1iXng-Dj4z^LVD$c$RyrvF&tled{WN zxt>|Vu+>=47)0)b6?h@iP=x7-mwOW=HVDpK$EHX$>oYCx1u_1H_aJJvy4z3?Oq2#8 za%UZ(0?wwjMV1CKXM}5y0B(`xtiyArntAFl6#8-x>C6skY?qcK-oQ2<4ng#xABtvz^V|9_9`SuFN!=A9Wt=6deux;~dR{G-d}&p2sW@lMBUAq>MYd^-qWEF-)R}4~_ zAaY6uP!hD{@oNyJI*(8;eYOYGRguYaDiV;+%s^i(J1Y>Qg zp&p4pX-ZcGwW|%19^RN#q2o-Kucl3y^vO)>c05RQJ&gAM>67_Sw1Zq%(bQ7YhNU-o zC;%`?T^WM2QsV>ws2{IfO0rvmwa-Kh!V!)qmg_;Wc1*(CYjlfu;^(ACwnCjH)y)8P=4we!8o1=OnX_GUZ7eTA7GX54==ReJAd@&`}@BSq!nc*;hTSJ9UJ2}|0bUR-98>4VY4mH_VJC5A5U+7zjx|g z=Y{tVFZF-!LND*COLaEfdJg9KT8&-&wl~z2JgB>!d@_jIB*jEcS63Aa?jn#(<}dHV zVT9%LL1Fz@+M&Ok+6VGIFKI{nXbo=*!VHVU?OxvK7$5mD_Vdl?x2NM@yU?B&qrZQm zBX9pc*t&9xp{Qsd@f1odc}B^uCDk7{+`d;oELPv&k3Ks^usTn%p+tXb8j_VNDP7}m z>4eASOHNlWhJAe<_VK6jAj&*3q<>(PxbLq=p!?O;)5j-W>$gv)8HZ=h(>m}IU;Bl+ zq*8x&weVUm{S8=~e(P3$#Weh4)pa9nC{pu_vhBHkF`W2xX_dCp_8eC}dLDzK{?JQ> zqOQZJ@h?g+ z&f5n@K=P0Gpm2rJL72Dq_q{p0F)2UBiMZpb?#|D++$!AkRhmrR|DsO@{Ousxb?Mwm zk_?Rlx_uHRL+60u1eP9GGTE0ZG6s_jNOujE^uJIl@MJ)=!^j;Hslbz=D4ZxZP6TrY zV77x>26)a|QY#&qEi8hAFWo(a=;+7v3?n)Dlbr*ou0b@nV6MkhhFb*IHUR4oqz}K8 z!jh@M(*S#J=oP5S5U5kQ6rLf5#+z(|qVot6BP>ILp$j$095o^f~`EV-*q2KR0FGzuDiY1xzsmuy>IAx_rQxG z^zOjug`T1FJ!41y49_}!Eu#H=@#k(3@J9yGy20_%-`$L<35dkauI!4%raP9^or;1E z^0W#@c9Y-HZ+?fr@e9wh3NFYBFUo2j$=g49p8hFV)nQn8T3*`ecIcbizFV@LS8Pvw z^*PfEW^DevdPTt@aY4QL`cBTmc1-*(epah!UMnx_AaKi>^BX0FckRv%+CD+aH4pK# zj>^-HD;JyrE4X>ZIr_2|Zowt1ns>^&Hzo&O2i`+%&-dCL8uU0cC@;FipIfO|*}`7h z&R=;(vG#=Vh7Qv`ccG2cxbUKF(KXmaNEbElOotYoH40*Krg;-So_4a z?VDxg6Ohx=ZJl;IpO|lXASk$Ex*EiJGb64VKYf>S#Y5tm;j=abikLy*G1m&zUxTVrN#d*0)&I+ytw=RJWk5);JFo%qs|ztc`saY*>vS8;9d$LWa_?v7QYkx#+>-g?6lnmGq&s7 z1T)-|4O42E8I>lBtGN!zwD2OstuN$TzZ!4&$27H`A5}pMS%4UtYp`St^9VJI6iwF* zMC5_Ud?@mndKMvwtsUMr3~TI*n1#7)e#OatY2ARbYq~9t40s-T551oV%|(^vh1jiT z?7Z)LA0?IS0jwoLHGzb(DEG3u)l9@7*=)%jR>3o^>6K9M#Fj_s*?M4Y!|{$WSliij zj{=fswkot|8bA|}CrR$5#kM5`&vQKe&h0g7d*LtO*~JD47^`5m*K%!TIt)%3!AlI6 z-PTNPL3mz>2wq^8zIUE3q=RRjH_Cm&jXkQSSdO^n$TCV<)9VdaU5Dae-QWsJ%y#OO z=8(p3HVr?e3-@W7hw*0bM3NdsUt8EyEeUb6L}hDS>M+HW`4}0^U2; zr-10boZyhd@Lj9!vIaA?PQ2tMcVQdWEk{Qf3`i4d;&#cpYm}UJ#CsKlwe>wS$&S;6 zp-Uu*8@1dQvLeg5ac#`RJ^0jS;kHK(_lEs`pw74cK%)W1qXB{5Qh6-JY#t)cf$6J3 z!)K3+sBO+IUAIF1)LKQxUc_}3HLytV{NDO5$gO6RV=+h6wk-m=P_+kF+6vi*ILsxy^?if`m3G- zi3pmE#A`mArk)nMm6JVcWQF(Wn@*8D7E%Ig1#wq|HVN|0pDow_R>4U@(ae@p?jA zf=fDLIhEm(K(xsMr^+O>kZhuF98I=Q)wA_dmlU=w2uQGE z{*W5j22)Y($&@F9Vw$aHGM^^*BN``Q#qkK$1&}h6uot2P-s=%99mp~eQV(fZ714bv z3ASr7lG!+~Le0>vBqGvs8zz?L3=~IR1HJX zV;Iv6T~z>uL=fVLG;KYc3YcfW39p9H(AE1tbvp?4|CzUI=)$latBz%=-~caa38Eci zJRK`f$63xrgi$!l>1^j&2pwu?t+e^hDoj(RI$ISX>q_jk9Hy(RIj#O0^}Td=i?8Fx z6#x42O_y3*E;sINYOH`3q4vF1E&I2h-Cx~Wx4W)p=dD}khJQV%&YTjNoWZ>EOQ#i; zUVygxVXr|nY;YoV5RH8LBH;8f>%t8PSNv}fRRf+R2z5jq&^I{15NfKcBP!~MmL7m{ zu#m}x5xlmxUcfB&)DrC87uq*b|I+$pF2efa1znxDKixg|?$)VSH&49nJoD<-=~uVT zzPo$z!~M%>&$~zUDXZtCQV#u9Khnpje@{C$u6t%MI!L)I#pTnJtD~Qv48FSB{p?Q9 z+k1c_{Bxk~M*jkNvoHCdJ5aevVq>Uu?~L(xPpk+j-XqsBb5A zJEQU=q2>#x`YmqPL*C|d!mVf3j@;or{Ng%-dJdtMy{OY4RC2qU(EbtZ@jBbPkiw5h z!3V9pm-IFFT=!gFdgaK;k9F^ctG=Q&=-3Gqef|}O>@aE{2kHHx8y!N&$A?f*;KMLB zKUQnAyZFO>^=7|^f4lYs^P zcHlt%H*cRDM{^AH1STNbfd)A_Y!@jYmkQFIXkriibCMObfxAIERo~P>U+xHC8JM>N z@EKG(=ysOZ6udpKAH69qfuP|$M2EL5|@GlIBF_|yL(7D<)CXO#6OJz8bm~3E(H!`BjO*u+)eZBz0g&hYA41RDC zW8XlwmEGjL-Nc+KHUhJa23LqMxm<-Uj&BGb87444A;SXcF0yr{%FJ{Ol%kL*+xQuP zrU#dfB6_AUIn!}&F*Ps~(c;Tjm-&9{j`{d2b;~&3X{o8x3ci>V_-?N{6k9$WR^^D&BJ$n4l$hH@sc6{$I zA4Ctm|GDo6da{4?C_0$=;1OQzWaN-cE`MNJeAi)Zr^)=|%5|Ng9fK})AG!G#3^(1i z+j>v7|E1{IdxzGyk`?V>N;jx{Agp|#+;GTn`vtRuZ#_>8o0mS(imPTXZep)FEX=)V zzV*elO z?0#W;`fK7< z7ich_pH**~P-PIeNtC)pv}gxz;TCz*4cE)xi8(F2sWse${fvZzlKjJ>6&JL!wi~Uw zXjycc6jRL)DkXZa6DQRX;_A5B*DR{KP4)~(_YJU@b@CUs8RzY%FR5a$J}Am>16My# zG&$SOIF_7o$ZI8~!ns}(cku~;Kr&X7K8b6w>ze~(%^V;{p zvHG>3@P=Ydr*uY(S!SDK;T8GDYplwD%x?9|e~!}kUp8-e1)Bm+>t$YSqruEJ^2)=A zWh_>l%v*TguC?23<7u19>%6U3;VxGDf3b2dVq^9&Ga8w>t+bX8;{Dz3t*GgSF7mWS zdUP`(VmB?RlJ8$f&1`aNc@Wxi+bFl*sPMe$md6&GpZT6}AbY`;wNXO7Mx>2RF^fInbBFAkSCwQ%Ha;YMJ zKf@-S8M)1Icei}Q7wWvToPdqoxZRA%C0bTaVrPFGaMxw=%qgp&_)^=z3&)uPB@sHV zN}QFC3eO&DL+vYi%<{UmRz3z_wCkM_X3RE*EXl|<6$S-Hz9mRhC4b>fRo7G;)<}!N zq{VMG@onH_S7WAEF*BPCv(9L`?bGon(Y8+{DFbzE{7B9*1e^Ix&mu<9G8M~6Rf!MI z$OW;m!^%CWSsN_AjoFT)t}p%~ezPgc={la_I-WTkzZE#|B&>U;&(^QvZ7+?&1fu_@jDuJJdaAxbC@1NNdpwFM>U+;qvQ}8FhI7t$GnPm<3lv zX|*a8TasrEGyAlA?RzAm1Q>~Id+;_#AvO`J-Z3nfG^)vTvhOrzRtq!vfFQb&oY?(a0ftm!pX$`O)z(p-Xl;DSt;`*;JN!`tf-3l=f za&)~#bTc<%KXcJFVOt;n`IvV<>U?leM|qxT6oDv`$ObuPZZ*msuS_~VAyK7*ghP_0 zSM-A_nBI#p4vY2uTQNaf5r=qb_94rC&tL$~&;6u~eM+*vBy@X8biN~8_+EITk9VzG zvizL7Pr2;qUyE<3<6D%yyqGIW)_0f-033uU$A)Z>to|+Af^v8L6z=$BUyZ6IH)|^b za6ErRHVYqEM2Id#ECQ(0+6ZoY0Ar#Z+eEP|Rh5Ks!^_1@{i4P}VbLS4pmloQGw81I zIu(cFjU86X;IUw2Wp^ z4Zs=BP$luTm`(^ADvEdrlZ+v9XvRE*We0DCh(5vzFRIc14WlYZxxlk%wtI20?Eu z4Q%s#1vjuj?6*wcGzM!CMe|O>yCo596N#o%5t>p>2uO!yoYOQ7yHGu+Fq};U$udsc zGLUKF2m3EQn+4ias*u<+1Zzs7GF8}0b-I#B5o-bMglJ7qKd(09p~1?J>?wy4ZGfwT z<6U6rQh^8-=!k7Kd0}*eMOxyi;E>TF@-zvMz%@X$0YO7!ChkX!m$RqtC;C?)*ceh! z8BhzT;cX_K=?KGFL*TD22vXzuk_-biY32w;(tDw|1*~g>K$^aaNqxQyBf(zlkG~BPh;3GAX;U!%&ywP)!u$k<%O5FJ|ewOpzV`g0!PZ%K)LN2khmBUHytL z{dQxMY!)bc@I|fnZs7?;J|DAAyd{@&`fg=W}d8KRk zC*p!v;%@d}um4HPUz6lXE6R^YKfnL|^xE$y*MB{}2K}2oukQYScI)q}`@^4~p>JUiY@iupaNfAEuF`zt~5 zRouScx))HJ+{&F12Jg-v01^9b;tx9U6&?N3js8H<9|P#0?i;1YQ=R?tw^8bUVH-b* z&OK%R=(qj;NAcsYvTw|62$lbxQ2ZXZ_&p|l`@{BSuh+9d`rRJt*}sC5Ur8sQ@(w=0 z?|!OY_eQhkr&{S#XHUELyYnZ#D&Oy3pJU~@U@6krtyle)w6GMLu@iJV`3*`t{0Ccp zm$>ULbLSa+AiFAW}|_0Qx4X0{9p>$Dzwr^cS08v}P;_i) zc-LArxthc!8JXA7XW2%@R~8fHW~Y+%TU zw4ro~CjsTG zw((@U1adq=7|wwt`$?la$1|Mf5z6(S%JGlpha@okW4U2T^nf_3e;hkB34wBCET76( za!qXEK_R!xG_zuxSpggdvZe6ENFqa;OimUXfglHH3=}FsDJuA3C=%oUb|3I9mAVE3 zq#Z2od~*wiff37S^6RlYF!D(x?tY5EaE6s5#N<^tV!2-^4Ec3T&GAld27wVch7rKq z5veUHdL}z_Io5kR$1YBtDzMtxG<{%j&Z~*EkH50s|C;sXNB$qw``o+O3qR(6M$_M+ zn1Ec#>?*^U`M8J_+q(VCDQUsy9>$(}V7jH+A}WQURG1pesZ5E!XPnWxW{_L{haMa6 zI?Y&pz^UeZ$;Xl1pL$OA4!3{(aiw?gTF>x}p5gPq`p)$XH-G+ltY_p{|3vGbAy{7L z9xQ+OecyL<#fzWiC>q^%1`%7DO-VMazV5cT%YOMM!ukg;jj!$VPI+v)?y>Kd^R`a= zhR61&zw&o>iPqk?D12mH^boum^unVi8!tOmz41LbV6y%xCT6dE5zrCa1xvb2YkGt$ zyG&Ny6Kr{GTKY(lcgb?cQ?peM^=CC(?CSD9`2&iRgxhZ0)xTgBwi~axKwooO(fr1w z`4xTVZSOAB_F|8;_ObENQKz~efc_RI>{Kp2#>;7?&uVa5b;WesDYLc5-0Hfl4!kg~ zdB88fDJ{EhysBN0(_m82EMHlRO)JY7R#452~v02=eB#SJZC(= z8IA^+^Xp`J=lQAojZ*8)mLK;x_>Q;j2653LD4YW4HdM8mt~$q^dq}qExG<~5Zrw$l zsm0io3PI8y#9|K7saYD`BbYhhunrY0y&{7NaB>A}QL|vhDSlo%Z&|Z&b)(^y!=^bM z!ptV|{6jKe53V{15dgvRL%gLek|jq0stK`N`n(2{wPz&x$KgA`Tigz;bz#~;tA$5d zGipRD+ZcH*?1lAKc}HzFU!bf%VOW0CqTsZ0!*%;}Bk}{^`EyTmc0IIe{w}Y24KV~+ z(OIw$LE97~vsIpPUA(N*W$$Op;v2?GkD5S#Q|S$x_Md>z)C%2hyzGo#bcKF;oxI|< z>BdWj#TR6o?>MynaO&t|7hKkl+`*5l#Kmr9t~@Nuzrf8sQ-jt3E9jpa_m*i{iu6JuHtBXJGJE|KCsmz2~hOFhO}-iftZ zNlB5;!lz zdIlllaE!#u4*niD{~+Z56MhZFO{>9LLZi?^#50ZSlMVNZ zL`%6$Uj0T<{D2%(NVA%Ux69QF$tT3*68#cMu4zy#rEX!v@Y&3tvR2DDL`CkY?O32I zSwWoIz^#8^`MEm?syfOpY1uC@uu5Y2%+RojWcV&ej2CD)ET7Ra=yP(2bl@M1!(2$I z%ly{pMAcIkJ`txsP!Fs$n7UERBbOe#2e3$pxd$tLzIo+C+e?Fl##5xCYofI$cuTgD zyyA@;ZyPSY$V+Y^`mdoV{Qwxq_RSS|=13ef1op}5meGiF3g4%i8oE&wl`jn|q(s+g z#~u}Bo;I4-Y_O!d$b7S*4fh+N0n|ZSvgfki`wlO*^Pj1jgj8_`XA%N-@ zuWPp*5yYw)6d>#jg4KMUZGo!DACX$Ba)S_@ErA20cp*3KjBNfd;>=FYuJ3jk2M}ol zViZnx%jO2H!a5|V$?U-1sm2M%$|5yo(HO;CNpPJw@dhHEucD3tPq>~z1R_kJSS11& z8Eff*HxD5h28q(Dco8eK%tG~)Aq@8vvI`s;OxK%qs`CjJ0c7`7J*POF6NJQp?GubO zorbZCKpYb_En={4>j+t0!UZScc7$%LhPMW243TXL8A(0I0#?i?R$`|pqf>R+3*fH9 zP*?-QQnxHtHA=+L%+*EqVwN{J*b(DYNQA*OOb_&)K1EC9pl0m~;76h;PUt!dp@yl5 zii~FegI#h>Kea>0xrk|+hGV*Fv%NI9p;~Nr4Y1kh8>mwZ5HPyq$p}m!DN=ozA3}CR zOzdd(5gd7(kwdngECnI?YEwK&SZg)BR1;#S+C)IO!zf-;M_)?^o*fpvJqXz2iN@-9 zR~12qs(XdHOEp1Wj0l$^MoS67n`sGaD6yFY?{JD$Ae_-4T3AG4t`Razu=FAFbV7dN z{?;JJjY*z>PrP;NXy@r;SB|yZ=s47Q@<`{2wp+&!Up#T>=IO?Fk6!%!{PM&)`|)4f ze-GW=*8jlu^e0F*sMEj*xT$?6P`B?r5#RfqFLokx z7O98~;ov|M(bm-j$2UlLO?c)^?;was2*9D;*>8I4b$V!YO^ogH8+F5ff1>Xn4}E+% z{_8RN^%45%8T#$jq_KSHWADpL=VuC{7Nk*IhOlitI(3iPhsX3zqYJ#m`xhsV4SeVy z{)`U4?;m+HHUYYNsPD$^ElF0G@=pEZqx!oa(hq$Ff}ffO2zL#zwNE;fRJ37lrj4ae zmRlj(%7#XhtrcXaaLndg$ez#a`hNZ6s4{K#-WiVLgKv8#h9*W~D%}qfcLE(4LwhFB zKV4fEr8!#2H?HYHu|EQn7|2ekmnWXXtV_&E4$seL8sN@Z*cj>$K?)S*@uSni^WYss^#y2)Kow;W_ zPQ0rB&|BR%uy0_nWoY#5==i;H^!?aG&*=CB$m}2J&^QXheH0xZM92CkP|)r0pJPK~ zaP#=kL~sAcdu_8LA``;72k#=~J$efc>&z{r>};Wopu7iv=~cr>$@2(L+Z)xn=tMv0 z|FN;ZD17I~heqH!{U82W6Ppq5kF9*Ex#Jl*YrAgTDm5A%&Rt*+_rLPz|5LZa$Q`6R zP~5@a4ptdGfehG*SfLRH0;&=PXmwZwBTK5nj$~pDw}5m9-A=J^26H>r+JkKEL9+B9 zTDTJ|-AOiXR6B3b?QHj8x>Eqr&gVbf4uEu~cR0&8N)VdJ2~HG6%@9PSg3Fx~mW;FX z)nuE}BsSLG;Z9RxjXizY<~AVOC%coB)&PpZazsR-0jPICvJ(U{5ahsk6kFPZbjR@| zu=~(u@?lH|x*hH%u(0GSlu|2OkoQEfF-9r}fDD48A|xiu%2DR#i#JljuPnNaD@Ez3 zZ|N$HodLhDZQ|z{L}mz+v*oEPc=qv7)9h4rbb9}A+@0>oM{no8``+;4f)dqu@-$L((&w>_2@U*WE5he}Y$lL}UM+LynP&O2c|=dkg- zL)2wAm52L{cfPWyeqqq~)~5BdyrffF{lshKee9G9{lrSsb?1f4pj4<1G^BCPG2ZMJ z%c@7-XZw`LYI%?ef!Mg2-=_%B5&nIe9JvFABx8NXuWd}3+kZ3`htmKsA_RHpF zHw|{&0j~&i!+Eo+dx{kulI)}6#e2mIYv@U3ytFEDdXrJs3CV&cZuS9-)hF;##d`jQ zw5TnNX;pAF#fFQ3muF1h%}v>>o47-N$q_}vYhn2V6LI2Azgi1xa=5b-hN@; zL4yrPKz>6kSGM$sXz3BzsuQL~7i9Uzq1lR*wj0`A9XH>AhcGQTV_9^?dD{cYl2d~8 zW>#FaWO|J>v%$EqL$>aeQNamr`d))o$M87^c`Hvq;+2<)tWdYi&a zuqCl6zw5g11tE4jEoM7!R+Dx82m2$v^vt8gkV@;q>xOGDi&maMU^BAfB+NNUi3g-< z9sH;klKU>0%}NswYlZJr073M^cg4ZS#w9nI`PY>7J))hD-S>WFrydcf9W+|p!pc3M z+$ytRDqlOSUQzOakkCl9S%$bSWJT|_S$u~Q*MSK=ijQjJCv|}Q z!}C&gf^)nM^sv@n#-wbd_(5yuIu+LikQWflsNlt|m(4C`PFqW`og?%sBBj?tV8L?h zYqRib@$?2|*)MTcCwI|#(|PALrj^Oo-!s|z$)Mz^#om9!+b^*foX~TxN34o5fwhFh zV@~PEX+d)^F8PRJs$Tk0^K+vHM}7gT2l$Fi*Hsu-0CyL2{8!@xwlD+A#QqzxvJk9+ zH6pU(gl}iZ-%w9FAz%C2zW5*Ah+@P&Pup*^K{9L&60{YOdS=d8rx2`HF~)0yuGI`3 z`wT6w-Bh$<{X^%a}epN5xz zGXp9}E-R#A8#tM*$}L~))_&0o+(Y--C=4$ZOxw+fSVM4#Cb=hT#%>U8yXbJZ)4cKt zfT7IS9FavWm(*RQ%{s`ReOxlLmFh8z;4)VnzMk&0LQOdnkUrdmO7ATX*}=71-Yd1O zk}#&JGowiG=MHY2h?RS6lxQ+5l9+Bc3 z9G4x}@m`?gl!Wz42O|?FZoigqB|V^2RqR0EgA(Il@g^D+bEx$c6xL4Z_-tMFT7Tg^ zMouTMp@(;DkbK~y)wN-H*%d@I1uF=pfL+pWIyU)C4oK*Chweqpz;0WY& z5WXwqAF*bZSepo%<6MekG|_yCp3{0g`?&}~!ST+-SSP7Uyzy3H8b&iztTMFB({#;~ zwH?!dny4ZRqxxjQR}uqP!k!V_O2jFP_;CfSfE7>*0RL(@(`sps(FCzSD`2Av{M}i4 z6P==!vkpg=KQ~))4?k-!1ZMRtw`dqn1;8oRC=;rI^;iOuL7aHb3!OzT_$#~Ea~@!w zm#bT)U~H2#%#tv6b5s;z2;W>!sMHgM>C3{@4Wg+|%fu1Q;*6K<*kjs&lp#x@g9$N= zfTAUBrH{5%DA6H~ZWBd~EW&$cs>_4$))5591Tethtm8Ee1151d3V)n^lD6G6l1Cgc zDj{Y?ahfaeT@F8x+Ga`Az)Du`W5hR4U8ZC@_#;f)NjcZVV8{HB>({=@~kwpWnh?xqb^d)O78Yg z$m0>a+C!UtZEEt9?pgc+B{K?f*kFT73dhPVvJLld#z4h+z*Uqi$ zi=0?>=?B#KdULScLdxXGrvZ%Wy&W$=w^Qbo{r^X|!=(Cu=I#IKb};b#>yt6i7aQTkCg5`a zZ{7}Lc37a>DW(wp$p=I`&pia@?M#;- zilaZ>C7A0KL4{lVqIiL^qAAmPq0@ztX`tH$ku%sKDJ-vOhNUmh!qdios(Vb5ML-zO z%ARhbcixlW_7Do~Mvo*h)M-T)lk77LKCSCGH3B1RQ%a_2OsW(~sRdo~3kk zJM2E5e)-|H55JrH##(+49PJso3O}R65d+_QodSP&^wR_}X?`X@P zk#pnd_OE>#dM7G=j?z40IUbRm1v}uh+Tp}^!{*nbRhO;uZZYyNah9D0VvNg$Zlk96 zrn}!+RlG9VcvVq)UR-ohy6PM?w}V-9)wJv%gC%E77oOnFXk-?5T3;De9{cQe?uWyJ zk$^7LV&6+v?K9hLPi5<_^VgiQsqO+rN1NGdoOMc;a)_O9z@+%D>#<+TJ&)ZR-`Y03 z6;wTSKa1L4My(Hgk*zon0$aZJyjkf@Ucnjs+(z!^lP){&ns2`aRZW0%mv6i4xa)}m z@`;%TgtM9<9!p8wz>KNmPj8iGHZzkCa&nId7qvh{RFqnQ3oB%%?J~$eMbGW<+Hqey zp-d%qn{wkd<;G6u>Q^RP?(^2)G+uRIl{CY`#8{~Y= zHeM1gIYLR>OHZp4%x#t~Y_nK-UcB&#LCy*O+{tPx@q%{g?1RGT)ts2^mbtBFE88tL zUIcAVp0gD9(L(;c`n*=sc+WTUF{QZ=uYqO60g=yFctPIlOK zPVRAK`E$k6Yli73EY>{~7T%KNU4}w|)Q70inoFuaTY$tUiaH{VJ;w;^5XT1!mkHB1*$B7m!tFZRhY^jkm(S*)K}#F|lzgqNxWm0_Z*z{g_W@tT!&7@yK6$-SZF zS4j3>uWh?n$7>Z5w9a+sYnQTbffd76OK(yVcVMk&l9d^pv?lzb%V3G&`filWJ7toX zO^aMc_fFR|3!+9;k;8UEdn_S!uR(UbAhSjnx_EM~;$jbg1;Qw9zr)Pi>^V)e#b-#1 z|FOC_0X`OoU#Q)Ue!ACe;3l~q=@wN!*Nv~!@Gd3CRWaj=sG-@k&|Jf54eY5cTJF1b z9X29NYplqCz%!?Ft;k$66$%rf5D|$nX=$15qe<_p>BVmVo;3-tu}L{dw9m%aBSup z2CYR%_Ij3aQ1Yd3>`zfd=-I?W$t=!34R4u@cgrF=&PF)F7`rs0>pbR^)dtbUT);oZ zuI9$9rT8r4L~p@GY$8RJYD2@XEI=BwL&sw#)h-BU6ONciL7d0@;7`jZzlat0F`;c3 zn{*vnDA_R=kvnMdBoyOJ_JWs!re5=kyByal#2j`;%RpBn!XUiUEQ0fNHK{!WzVJqq zOioq9NL`zG+D@BwBCpBjKY%I(b)Fm9K0(_$Qq$aDRS}AJpT`PWOmKKo;jZrg;#8}6uz&nmUhhPfT;j?j$>H2oDdKQ7Y$}m7gay@eSUbCSZl^Ibj$-Rjv z!omEhB2+>}8k|i-^AUn0Fl_Si0Z+6-&J$v;K<3D5Rw)9Ibe1CkCsl>1T3k;u%*jcn zh{#XJwM^f3rv?e&?ZybpNuTRZ0MiQ$arN{uk`S`R41{iv5Ip!^yGe6zO0qj~LE8|z zFVwJNIe{uS6^BF%s8g(@iJYbL$c3LcNFv&b+IVC7r^I z$mm|=l3gxO8x)!vl;yAi=1(xfDRix>-$3caneem@lN5LiDcdNc6$re}j5Oh0c z*L~3KT2jTolV0^n?mdKm;iD#2U6-J)sSmncTSXJ*@0uD6*@-{6)8owMKEkPSH$T7j z+;DJ`z&v{LIRG?e0zQL3qoZHD?$ylues<1q-=+^g^SeK1_kEiA>08p5Cpn)VFZ%Q} z=j)3lKijR}vDH23mVR`{z{H-Rv4dmiF%&(6qBl|WDT;nU$KHSd z{tild;?1e$)}FJARCj*X-SJ2VcrvSM&2ly)Br^o3)LdLbncqxae@(C9iF)~0y;VK# z)lb%5-~VZ3?ca&YvB|!g`zQd|L6%R9Ou)1KZ=W$aO8@sIjE|3vjg5{0EoN+VeEjF= z_+NNk@S284(UHN)RO~qVdf?~JW2F}(_%SKrjH)hd zQ~pc4^pUT#^j6K1|8zTwg1`Ou|LFFvHL){ed~_?Gt5-fF%`elASpoBQ;0XP%4BO#B z|7YF~y8S=t4iHF~w8KXXPmJZu@FF9eWHOpM>2l{vL8Zg69cJv{lL5I7pM!=60Z+DY zoLpAUG#huCy(it?2c$d6+JoyJC;&IRceubOoa+(BbPHj*hkM~KQN_NohTf4fmjJQ7m&m~l7EI15hNg65Gtli+sR_eS0p1v%+=6ak z3Nju(%50qe)9paTfkicQH}q&0yN& zLFw+B4z>UIo%$JZxtA5O&UWcR??bmd&)$hDKOlCR%7~n8y?u|4m7~3_EzjA-*3F9{ zw`Hd-ac;iree89_`FFvWUbvoomhkY8YwHc`>O*@55IIhHj3b=Ld#Q{vA9&hSv3?8@tCB-h0cMo=rD*<;+-~_I%jwe!oZO zC=g4e*%vtL?-Q4tv#5XPbmouY!FP5?{=#gQUC<#fJ7rw?h`;fwxV+P-5onOlr0cF& z6kg}fJFeLC%IP+$IP$^n)EDdf!~R{UUE?RCrthMb_cj;%t>J)%Rdg9`?@~7Xas$zR1gaz-@RlAoUVc)T-6~jiOjLNrxa69& zy3@Myj_uAzv{mOsg;y-g{xL1OLYrDaoLbFFFJVqEp+sz9Czcw`K4g-4j+R_SnRnD^ z`Nb*tv$nBaDb893}Ifg;)}w?t&ABp!da8jUB2|B*^;xksk>Myjl7vH zAk3thZN>|lq_b)naa-hB`#5PkC0UK;d8cVfb*#mQ#ThMDS*L}wPMYT3RxZ7Qk0_JO zJs_QTfIWSWEWL#tzl)Zzm7cbZlw4-8_^ADs$Bg_lfSNHaz6i(~i}L%%CHIJP+bJ=d zNdX0fkTtB(^%(bjUg|DELM11qhCQ{631=&d&zj_Sn&jQJTldT)|DH7O4!!K2;jX7@ z8I4HDRzc=TlLc3WGtMLS6)H}ph!G{B2mrUD6@m$9U-6Tw319lW?XsL4T zU9)XZ9NYSMzD1gjOWbRI31?q4-|~!=dD@}rk@2RR5+JA)-VwIEw*Q3&j-lM6FU)6M z;YYO-r{CiEpVX4gWmuHrOp^>#nk?E!C!L%#+W8*as7^&h=X{()4#8(R#x-5vc>&jZ zB}N{LGx9>%_IQig6ql{i;PuSlQu^#e&>ri52{qZ!g^#E(NGj7eoknwx6-5*?r_~6< z8>#l`n#NfUOCLI|_={NN0}2~sFqP^slN^viiOdH1P4Zd92+gH><*~ijYdJ2`nz}Xk z3L5YkHCc8WZ(l?UEn`MBP^MoY&$_MeRW3}gA-b)QWHbs=cLEK@I5@{3ej_t_9d~NJ zY<34N<^VRTite80a^kyq$z?+3IfIRl%vav#MC^i#)1$X4cia=#yw%IPPMda%lXJmj z?M42SB4~PrQx)!>kDP*Q)PT*5*xgL;L`>jvQFxxd^%TjRCgYq_kX4~AK8}swq!YH1 zlYPW_?{|ysPYKEOlH{u zu#!4;12%lKGGUuEY1`zcAf%WQR6`4B=LWPOMj==Qh(I$$s?akug^7v|U4RJ8m9-t7 zKT+kWcNniFIDQP-B7^9*h#p#`>y@WrI!D_jmTVY;P@*;CFIcZfk@POp!>D@$Dvzx| zH~~b10EW^B5hxI;4aF&nY86bd@dG5gN!TVeexQaTLdPmX&&ZEq9#8X}Mh(osJ0wHr zDc(5~KspH1kK~fBW1WnFtZ~?C#*{TM)22-+)c44t2Cfn&SMp%LW8pVa@vAyaH!HehjN5D6;O=FZS_ zStg5Iqh}t2a6K9BvpC)}F>*K1?OGyloLQKLGD^)PMolqC&9hdq;G&A5H`XXc$1FkH zGEB|X4>3-p1#Ra=Z9^1c>bCJ($_R`ijO~^}^++XoqzMA%Qtjf@=oVC~cxY~-IL^Wt z`y&Jqf@LENL!xD%sZSUQipYIdXnU_k@W%Qyffn6Dm1lt9Df$c;rWZMFq4Pl$GJZ4aR_ws$u=^JDtWCg;tz%uO-A`wr( zVnB~zC|Ju_eTyuF9Ewo9G<^3dv+ql197ALY2+@T=bJwL?AzTQhglc`a4Z1eVRHVt8;z;-bAd1~|S!QY^ zF=S6PbPe^n9vD%$wsDH4c@`o|)t1jjMDx|{7OMv@HeFLG%wEEt8l%FNBC3$3mE*G3 z>Mh!b+(J3Gzbp!monyjm-dj5I=ULyku0J2|c7MFv^XXpC$Gg3s?hSqa=l7q_;OTyO zY;|&oJL}{y@)%_udZjEmwa(pmjgR8&&ea10uLnRMPTWAzgD6^fX5hg3$EO2My{8N!>U&i1v2>i!?#UM+e4-y3zgt^!xLQ=*4rA#Z4cOlPG@M6-Mnt&C{sXp@EqW z>@%D5&~Y%afcpG*5{{0+^tk(G!-i?LxavpR$HqXngHJ|PVDzs|<6qql$ysQd)zk$5 zzM2LWsPnM-nnbE=lLc3M$X8HGYcF!V*UHuT$bxWm^miYKThP6*ANcPh)(~I^GK`#|L@(()naH9X-_`to1!Tab)7drL`op^$dz$_Z}6d-PUfwkBV zM+>k|f!7Odqr>QDAi0d9U^xFciDP+xW2u#M&NfoZh{~2bIz@HlC0h{<4lvoN)jJhgzh` z9S6JyxDg(se{5iM>|b*X%-Ye3|788x0DM7T@8hP$w=zwOQ==i(tGeqmdHX%};#SF~ zeNZh5&A*bK5!}aNOl=>W1^B!1J9jVrf9dxBd@{Z7{#hG0Bi0vmyGGS>(Cz9|^AHME z{r^w89U`1CX$L1c)RN+ahM?QAB17=Wz;^zBbUPShv<3gSXND}dVOs&Y-GOT534d&Up%bdLp-Fyt4+`+8QGPQsOq8*Ge0;P@M|FN}$ZkJj+!UE3>h<0FF z5>0FkTzpsxOSY*3{Ow%%qz#^FV!@P}v1Ce)iIu?I0fmi!c*_I@Dp_NUOhKjQE9m^9q=Zh8}R zwma(TAU&jjo3P&Ja3_6bDcdj6JYqI!+5)ewdl}}Arf$v#KK^zd{xrEACnL|H`HtJ+ zry<9mhn|1rar&9}>F4oxzS=jOOYeLKuJu(^=9N_IopKbNq{V*-6uN zH?11J8k9ZrJkjfT@~8B`EBjOZE*-xmr57A)FPZOoW4Gs}^}eU(&Cl%)y_K#xE6P4D zUvbT9*K3a(sMX=G_HExBu8;ZsU&OsUjPadu&hOW;wuZo7Nmh2;^O?`QuXz-8 zZGU9e_Ly0J48Y)Up2VA||G}T^%F_mgqul8yNyQ_U8()Q=M!^;)7VqG#IB&J%vvkWl z^QLp+>LZf!5!{1wr%Q-+JjEb1>>t~kR@?`CJL z5@xmua%;p>YXm7B!pv^*v`%tLD+Ovs%b+H{&9I=ApWDKovd*X!PJ5m)XA6GLHpk6R zSaU}Z_Zqz4YRJ+^bH+P29pB$^321qAr89IxbYrCbk+D?UpY-BVT$_R6fdGuus3BN3dYfxOAIz zMvpLW4KugLZ2qwAqT}400bb^SAbS8%F!JJ^;%S?>d28wEP5kT@O7wDiVk1ZjJKj>v-$i%SR+_Y+hv&6#ZFwwO|8X;Rq#{WnZ*N~g?o&a zk6Nxg%WUMLmRoa!!05a4-3(9rEHmva%B< z)mIc%H%#W7v6_8GyZD%}{+{*5SFp(P9(?QAeuqD62%E5ukvk-qHX^S&ZPjwcqUN~G z%>9bIos6_C_|yuUdHvxl&#+Tl5x-fqoH{{T12?!<*LxPrXBy8vUEd~F)gc$khI}^u zU@m(m2x^747f5mQ16N=i=3|^zvZJ>{_bbh(mL5}PJAEH3p^*_+$p~9+Jb5`iZayWZ zLXz0U4XR_uFBeW;t!uIX(DIl|%ipKrQ%tlC*X4Ub8xB3JkQOn^ zFt(N*QArM+Lk(C&b}t7gy11}6Z1{`$f#cxfy3a+o|V)^F!2R_j_D&mq9=+08*&&&BEAa z+NME}`(n=@W*6+DRg4Iyu0c#=jEZ`pq!_ljgN}S*m{oVOgO)~N4APnrmp8=X5cPK$grAe9AYHI z$XtL+fHj89qzhu0h(tBUJw}}#|Ik+i>l%2_?Pe0=Iw083jcnAk%hxtbAbNx#0xwvn z7?%HMzUV7;*<+8xsHk{^<~D<5I)g0F#3|f#EFH9gyJ8onCRFGcx#`*z%7UvYidbNL zVeF%{OalOrPIgTscmWSHLEk*tz$F)JnS?N07~a{4JVM7lgA-T9PFY0=uO@{rrGx^0 zXF55w0?0+$3MZV@hZ0na7{}mr)>Y&B^J!f;eG3e=DXsf!#nd2)p51eaaUE=JqP zlVlRAX+DJ?v6yCQ%Wzl%kseKXsEVPVmZA{0y~J^A5m6}4AqJdw1M^7~hh(x>Ceb^K zR6|Kf~Cs?Hr9H-EoawsOg%7!C=mQV~pzylZ=Q6=knPD5l72=oq;xj3o}*lVh~ zB$mLQWFXWvoJODehEw~*vgNrTyBlHJVT8eWj|>>~#mXJkneK>|5TO`(6|TkFE!B{( zBs$iq3EaW8QzaT9I9-fB8xPDwbuD#)GuLrG&%Q)c;*QXAsBVpH;OCoWBY1mVT}y2P zGsFPux)@5Qoy^xIDm`!n!`0?HA_yJP4ds~6=h)Ox-P&&O3h1X!i$X%Y|8cDVLinmd2%c3h$lzJf_T z;6K7#stUl{LAPrvbvqdED(V28*8$ZI+a?H+$~^yB_adshZyY)J-Nes(a9RX(34Mi= zD^HA0fbxYKa0{O6AM_RY`=GYr9_5|z&pT)!g5$>@col$XfwcPnI+StpAMo#kc>brK z!3S3c=9NPFr}8I%|4oU1R-XUu=qxvvX)AQw{v)^F##i+iOkWPq49l_9pF9hY5%`9i zNdI@ihWjl$TfaP-j-uUQu*1p%E}`RiPMP*^oP<*S013-|4Da< z&A>N*p&!5h_%g06JcW1t@x=!l%Z_H7woQ+)tlNvMc?V=#M*S$#eh{0OtFEdF4V%Va z|7hL+rrq&bui-+lJNsPsd}Y2}xh{ameFswj-{EzBdU&}iAt%9Kr{#`X>n(iYYPIP3 zpxghJP{CFHANciu`0eoF{ioaEcPvkg<4fVt6G*{q2kHJV-wp{G@Yum@hu?Lyd zllzBZgJThGhMG1TXYIw#pJ_IGA?(U&>2fH3nY!S&>(bmi4+K7W2f97(!8hN7cl}O0 z&${(1^z5hPV_%)OJn-51oaj3Tu})Zc_?}%&8$vU(tZnh#btH2AE(>EvQ%^66m%oLh z7hYn?%`dava@x87a`5&m;X@Z(1}=E*zLtFMZSek^PHRWXAB;~wd3*lFyDcw1YVXZP`VRB;}#W%jPtib zQ7NrpgH^{x=fkheJAhhw$z}5s^VJuGOOH8r-V_$~Q)84itT4M$me;^eTf$0S4P%U~ z{6=2>KKbk+W=^~D%=OHiW@=`Kbk;DmaI&YYmscGN+xLUH=tk}390L;vkqFc-<7SpBwv1#HEXN!f2`GX)P`APLg z1#3Wo%VrL6Qo9+k4eZ#Z+{9`nza_R#H+dCjX0O%qA@j=J#!L2_G+Y*!p2UW2fVBWI zqFPYWE1B6t%cuvsCNq8sZ}KXB{0f7#Cd%Y>?A$G8HRnVP*ST{K+N2L~iq0vPKXBXf zUeb0|)_s|~Y?w87AfoqywCa*{(J9-Oo065MMGJ>5=IsaDADhrYp50=;XcH@DDZ+_H z3==3}i$(D(Spf?Xz*(5Z5iOEvFbo)3448ev+!LgQ&t-W>0ThGCb1`OlI;K+?zIDuq zURu&tN_aEkF$Fq6fk*?;bwYGIIPJus1^B=v)WB8DunKlYH7&6jQRG8l#$?rXi|&t- ztzY#+mof6&{YQSVN`@58=k04RICk96IQVp8={=e~=sO~CVsgL)%HNTo2OiV|GIkE+M}&!vYgRi>DH=CG4iOBU|OF5Duh zxI>R#LkXNk4l1D~v``ZIu-?t&Nu89a5`1#6;rx?Yp(Vn!rOfnx{mHwm8xERO-l8RK z&w)zgaq|Ue|RhZ`KaU z!lSgXVm+^AI^Mau9%%*vB~;&5wr{VNRjP`at-f)Hf!s}pryzlTp0t5nddp`NRiEB~ z=*qN>eKn2!NOsY9`)F0Bvkuo2v5I6_S|dUio0gl@vd8>oFRk~yrIoCMNQSz7o^kMc zxj1-gtv}mI;2s( zvh^$`ArxyM0_oYuL;a{>R=s@oR!VdeA!IoxZW#!Bn69OSmuZ<<=^A;kBAZm53RsTu zOqUe4akLKInU}EE@%Fg=Clt8os-hHxDq%S+)e=W*Iaaf>AJbBgtGgHDy$a2unqWaH zkEx;BCxJd!H}b}qglJ1#5QYe0Il`AZ&|}Ltr@(#z(Hh}`y`%ffILu|&@dtY;e0Ek)ll3OaD9Zh*llVEYwvoZ>X8#s~($ z>@?8K8U$;E?yoFCU;@#Fq)FrIGFbXVmO74$XS-`^8>)+@;if)>n4)RzLD(t4TITY7 z)?jR7;XLXlPHH@FL{m>&5pR{*g9x)#ZRTrwtwOkAN+5%-5MeRZhyqnD9-_$tCJa;^ zF)d>Vu4xF?8PShW;baiZQni^bnpjhHoE*VIqMiX18bphrs!2dp399-~o)Q5U0pZ0E zY^LL^=Nh=L!27o11J-K0wQAX~CONI3I;|jEF4i+F))VFH2vQM7C_Fl1n5Jh_g7;a5 z4_`$JsG?dHVui2-i=_B;!kxOlGbNd&ShqZ5Os={eFieEMX%+K${o~h&5lYN z;hI^=zkh&)`}FI_>)+r8|Nel2;SC4efCD7+_3rioqw&LucDHwSy>i)n#J!2&VHkegsAOKczd8E^nv6F+_^H8UvdpA+AH{e++XE0f_=Ag$r6&q`ta_e9DcLcibLGt11bs0Oq7 zGqUPDrnC!JSdZwNild5ePZO7HKyXwb@xv~m=+hs~o8!o;H-y%!k#5Y3J!Q%T2#mKX^X+dz zw}a0Qy8U8h+~mXnOzT}0s9wsiQ;k`mLZSYviTxi??a&FPPx;4_0l5p~obWruV}RKL z2T1pSx*g_H!EA@QRLGM+P6lRCL9YLcxc^JJb8Ov-7Iq{n2cWovZl^kWDx)%v-qgPb z(Lj_EbwH+5vjnFfqXmJFBWt=45g9-(^)Zj{GPtfvdnCWM&@L5J6LPznOadC+_cS{wMm9DGk4|lOwGdk zheEp_jc39SF97Bh{8bj(e=hvxc;Xc_^3Kk^;y;P4^97#H{E@;`^}FdU(sV~8@lP!pH08e70<^PJ^Hxl&F{kJU&Akdj%@8yHFg5GQ(iG*({ReJ^^CCQsMFx9 zppg$Yn{F6yxM8*TgU_)E&;EO^%?GVoFG84vUC_gvy3TaoPV;H~vfRzm!X4(FSM3jt zTW^1B+I8Rg;7`}h51cB1cijyQM2w6MgS=jP#XkA^tKsL-fa9p`;JDXi)N|+)d-@(? z#9Cp|0h7k-;@XoIRR@hq`^8mznUzEA*}F-J?Ya^5nwhQA&T|fjUr1Yy8aJM_+i=IE z0Y+0#xeq*nu~0^I4GacyQx@^l788T2m~pL=X+5;GHu2=0j^)RwX>Gt)q)&#V?s|Ui zfN=6&dQzuD^*KTLX}x*J%r?EX+x^~n<8@i@1sF;N{0j_?if8SFvR8mQg5}Q1>!C+> z8O<1#)f^!eZ3Z}@Th&f(_9|N5GE&S&LGD)l*cH;;CPiK=FRg_>ZP2voo<-j?Zrv$i z)u?Fhpl!uodd6y8TqQNDPFT8yGpnCfxRsr|ot3?fm%EieWg{V>9;W>8QT4QpHbzD> zC$%2BS)JO>ir1VFFT2Xj-ObC|#>(GH&fmbwT>~}i+|1<~2}>b(Lx^r)ID`7Px1I&x8uL(e0ZrYEe}9h}TAZNEjj(KS{@>#g%!Nm26!>6O$e zOX*P+jO->*`x?PwP_v*MLw=F5(7W)D#24$^1!@}{>_;wvfPOCfe*oV^3;CMBt>5zFa_c#;aV zI(ld6`!5tn^>Q;08?Ail(f3?dN)!djBoXpkK%tpj|n$eVAw{7p7TRt1D`-BasW=~&hvH1}h z{sWud1NB&}^bYBa0omOBwCt^v*@rCm|1dfA$Lb0i{_=PHPt@ncckitqpyHgo;kl|T zi0@x2DZfphd7RyH+v+mvei;?load(RwJ11^bx2UR&DC}*C;CCZaGsjj30mRsW)8Xv zE1Wn`({GM+_?q`8)MndV#G#z*Uk8((7~2`pj>JyuA-LxucqbOhI-b@LqhDuY*(f6{pN36NS zvZ-D8oF-_DwaRM7OKVA~WOk68kdfsI24i%0kP{)BkscD&_E{sLQ(GV=b zirsa@HaLz9kxg=Fd5xX^z+@BZwf7Y(v_#D~1{b=-KL3bOY`eB?B&5)BieQ{gB-y#Z zGJPM=+7Uqnbb|2QqcmjxDiT-7itCw1s3^iTWPv2h2m;7;3kY>s=~+e^fDdnVUH=8VA}=f`&$1TADaCgM!P^=uNvCJ~z46i)MAzn7?S z%|(RfLlb+`YzkBigGA|@nHi^aJQw3b(scrpF?KOJZgZI4b1}wHU}UW$^Pt+t=oxz= zEHOr4ry+Ji1P(CiX~2LvO-CK&7Jv}vQHe;B^`$|YY)f@npdRRd`)puQ!U!1GVUmGK z1lc}?>^B+WLjVFITgU2~`jg#L)g4oTX2}U%Ky{s_XE7NO03pGLWm{r9`>0RtaSe$p z6uBZCcZ4WFbjXMfU&lCBjo?Ujs3Al)iPPj_E>e(}fxq^L1Rx4O2QG&J1Oz+a&@J{dQAMc8`1&*}c>#F{W?FrD_ zf4~(6?WG*L1PS=pFh*b8>&`Ar^kp0!M+UxATSxRC-l3qV-Zh}O{6aRPS_e_t&H6sl(mWOIW10t0O8;l(vV(+` zr+}cMGyF?q%cnGF{H?)eP_6%TJMaj>bO#mu^l1zK16 zEa4J;K)-#Nc=+(vq32i5-amZc>9MVM_jldcx&FnD`bXPp?`*2N(Nl4G-NJJn^Nuym zI9OkJswR1CY080`^pVxmk8P^CcC7F9!?WK%JsAJ<;`hYoufNB~|F({Ts7F8EI56yUnx}G>M|9M#~dVlwKxMF|B|5vcoK|KFk zQz$k3H$dNfof!Y~3#J2LtoGlVqWrezX7!~QXZqDm70T7t|KD#% zzdSx$9+jOKpwo5_X}pG+vO*p5?M$ZX|6ESy|E1d@;tskUax!pWc!oM0L$KVjFr5k` zsB#;S>mcC&9iZVMCxbV$0_m>Q?GA3B+re_DJNdv+D#OJOL_5blgy|j(eml=MitiT# z97xdZa2Q6W0Z&E{nL+)Ff)qsOP=YdOQMuHZTz+hhEG(Jl-~$nNm)I0j4_~m{d6srm zW3zt{NRaEse`iray8nyK2rTU2PEhqQV2eMqwrX6||{}J^Y z{pfM(S=`kxF}J>D-J9?@_Bj2_c=(|Y(MLX-Wv;X=u1DC4puPc<<`#l;h~?(pR#{~v zGf%#EAkW5KBD2AZEX^0J_8+<(w*O(u{yT}o7eaSj4%>A->B!6I;m4WBUYb;G@NDW| za`oBV$M2WD{8n-CVc(0d!ykVQz5g*X{%hxlFS|aWd511o)pblebg5??UG(}#(BX># z!)N59k8{u6vX9K*nk2bZ9k=VgDq08>!Q<|GU&o*N;naV_eA6x4q0e52Cmhyaw^%Z0 zxAC^cilfH!cS45QxMa{cZxcJCOE_z%u>H8~;A_jhZvikO9eBd1+G$eKYEsc=JfqJH zfGQVNSPi1*KY%}(7)3+N|ol-14;xv1kymGsA^+9RJ zMMcXMlLaG!=>zPFy>3U}1za09ZXYvUb4sx4IIrd)&>%hby%JXsaif|YXxVKB8EYid2Q5kt2+{|oMZ1B@V!Y@Acj-oI8&hEm8s%nNzpWCT|u^-$l>vVdSo3=dCp>IwD_q)_(Ij_M$zM> znB6GN8n!7p!b)jTEH`S{Qx>+B`sv{Iv~trpWdO{cAw)gJH}`y}eQ zfG=p1=XC%toe;W`8B@zkSZuAZX?6f{&avyQ>HtpoKi1Q+Dc!xB(!zj2`99+$gSw;%2qI%X*LU&LL?lIQC zXD@z;ozy^dP1QFIhh2VMhiOLfqs+*)h~s3_nFswgzqRarDXD*DS9il8svVf>im5%a zq|Ka^^-TDf*d*vjv|4U>V_Wvrtn~vUtX?vE183CA!lX@M2wkXCkh2hDRn!g9k(ovG#?nh>nDNpSDGV*dtp{SFrW34PCU zlh93U|EYSmv*_{7qRG1v>m;xZ&8r7JuAq#OaYfU8me+D!K|I&53?E#p6S0_-JWCMS z%!ywCqo(BGYHs8rLBtY9_zEhB!}49c+3f_I2*5V7Casi4bQwgq5rUTzp~XIOIW4Qt zY1Sw$w1qwMuzdX|%U!7Fxd~!+FV=n`L6&2F>_3ZvN3!ZemYMCe+3l948>mqgq_j1Z zvLjx5eqnR_6h+%SyB?Zsf6K2tuJ2q9xFpWj+v2T{>{efo8+c7mTq>=9LrojdkcMHh zS_Cy`a%q55-lx&gA_L`>Sl!SAdB+NS~pLt3rx}O-Zp6;}Y7P>|C53qrQV$a4(5>uFZ74WU5z zPLk;5(1mJXw_GdfFfOee;Th{N+&La=bsTH8tV$4$6+#eb>S^h59Vj`c5!0F2xElBV z%epD6@eXY!!GkoXe0_C_K8CDAf<96zLZWG7^_4Mcbv49@N3#pnH;Pg-^hH<@hPTpT zIFcyJ*-~{9Uzb4B#^|a;<&!!I3RP9PUKkxCJ)8o;Sm60#IO9|eaVo+~BU{Xb32Us= zLYh}SR6CJ;J2br;bt2jorDK2;mMl9$tvEnicEDir3IuD0sEeh6`83yFZMzy(*Ah}B z%$gNwi2W!$51g(H{>s&uwF$d*f^_zaUr}|j8~M_yevn%r-G0KP;@@#gaE6t#7aZkZ zzrKy%9?i4z$c$G%j3PTw`l2yp-+kk8RD%8zkAG*~8AtYgLbgxf$57M0E0T;kWls3j zNe*ZFSO0wf2+|r5{7}kCNUy*jFa?P|`i>s|i5^40ok4#=2>jdIiLYOOeT7H+3I;!9 zu$8Lw6Z-3KF6KK5sgIZFEA;l-*YkW=rg}$hS&tn0jch@gOE2jy>W74ePWMZVk)Qf~ zU(;Ol9_(EM(h-CxyqJF`Gb}tFD|Ne_{@O<>0~3FB`)h>E&`?E`C`cg6YeH1!ujQ`P z?I79#Pzg~P6+HrxKX``q0>vDfK=z^1SrwJO{LgQ0DRsM2^MZ*De}Jd|^()xor#BRM zQRf9I7AH8C#fnOz#hHP&$)VP9K^8FqifDhcm>~1$Kt;HpNwAlZtBb zJ2I()-*N%zKm%6w%?pw5Dh_`8_6~&Rzx;rCQg~Ld0D`Lrk(Fj4{lh8Z-0Zd|A(~R)TtlV zXdS~gpG92L^r1rd?+AcKT#CWl-=xdGF^%I$&8bv3_Kht|ln%ywWc>hlZ< zLSucx=U zU3}r-c?WYm1L5HLh6(&5xW18a@cpCMzLSKZiM*gV7)=Gsof(t}NEtZ9!Kw0uX}s7x zZhV0tZZgF=5X^k%fC%gGSgW82V`nd}nGHhxf*o1Fo3kEyrc7Q;FEC-kjL}(!5 z4jTtr`gDkX8JRS6asGR>=rvk!bt395>alv0+&R{I*?_$J zrhUf^`QSCTvF8zIzc_Dw#9wvBZs5hFQ@@-xU1rT&XWOvTcHIe+<)ebBgBEiSaZ`J! zNv+Z)!`ADcd5-*a*!PKAHR4cr%y?F>prnVkV7+|K4#VPpQE|U;<^XTTHqYiuhO@To z#jZA8JOuu;VBu~_&4{FSRJ!7zVa4S{6f)i#$@Y#*PE#4 zsgH#E!&Y0KNSdy)Dvx;&JoDfAn74d4ZOT&K%ysk`t!gpzXbG!0DNXF$Rw&#wEE%MQ z)suW{i7_40k|D^J(~Ek!%Z7|sonS9LXuRe;bH#rClC3sCfSEobopnWCa@e-?h)H3e z-Ry0qMVmAtS3qurS8)!Mvvb99&-$~hMLVfw+l&|P63yIZv}9CNazr$BkNNby06c*Z z4t>E+-r7sf=YQFE-h~Pz&h&nIX1geN9WSku6w@Tk=_5|*gXMrAce8$M3%j6SSiDO# zWssAw0V*TSYA?{H?-yk50AK~Nrq}hsN9n#hf~tGWX``HiwZO)qP1!=r*e@;ENDD3_ zPiYYpHd&Oev#1#`Z#s%ESf>-V$SA&A6kE#(t7OHlz(rJnO1G&Ql`Ywi%kQRV){&By z;-V`>xoZrkba7K!Ve6j})6B?U&n?&luzJ_FyLMgo4S>v9v_+WR#VYDz=e1H(ONr6t z_^<|MaXYngy>R6X+r^JWsYAHTK1s)Ux4~z!jwcqq|A|U>8_hXH%NUTP_ld%mXq$%V z+JvhpLba@846WDmeH;0)9pa=;YUmPrP@|elo1*L@yWlc=*%Nlz37vp)HJdboMJCy) z9Og;+ep7WEb0t%{L2SFWJ#}b$0_agz(Xc4B9floXFq1!N4K=4z&1(ufa;328icQ%I zt3?mMe^!rLWd=x}^mbarYWk#Bqv@TB;vSes<}KRixcil$;S?#k#W}T$I{he)?;{`> zVoZ}gcfR*N^BD=4q8Tv9V+19yd&?Lc7ma>)xb&OfcazvOtlzzdk=UVPKF2s|BP(Zv zPDClfbEYcXwB;6hltg4|FX{Fd!*6Kde<*iqGr|d#My|pK)iHt^#0i@Wa}ViG8c>Pb zXf^!8@-wQqJ?_2dhrVkG!8n5CRSIr7A$9>Vekm3L>T&HH-#V`MYQ9$k(`5xYqFt1> z1)O9`WHZYWKqVn?DKKeUc#DT6l_%7E=j$i0R`r-|>QYQgEEi?0gwLkzJnA#@O|j=8 zz>yGskSM#?jrq#-UHcwS^YeZ5V%0O;M%e(ju(5;n@GnsNfL6qFl{twm5$SBf6gKvzY8K zT~*`$N?bdtjqyhWzAI7kZ=RrIOHQ zY~dEh$n(HEUnp6-@M$~op-T}1FRXct&~-9JnyXIrpz>01mbD0dlF8y@^w=6iQN#p< zrapmeH&-iklplXWgXWCWBLa1V9=X6Y{+yOYx4uU|H}!~q(h%a&WfZ+nVAqXc6~K7G z(pYNxG*v7gs!Y^$NC*ZCA`t%fDzNZ0ka{8dmI&Tbi|3{SjZ_9QEwV(DB7m+&@Br1Z z6kS~=R+poSCn(#d^kfLhUQ-loV3kF)okcY-W!kkF*sh~_t*3f6liWIRers_4^`ek& zibt2G=YDR|31M)F8X1SE=%_KnNe;`&j@>#Y^}2TDoTM@>zf6Q5h8Kk5ND}qATag8O z)c1VUgMQMK#GV-LhyNac!uo&ydVi!lhANubf*kp#-}hRr<0P%3N1m0garB7n$4~xm zls%3Tul~~A^F?nvs<{IdZ9Xl_o;k@R3A9>ztJy$<07BYPai*>{IP4^Xu4T`ioeCCF=P~_!+`VJ zt16Z2FYz;sC8Us zg5OSJfv5hD0|`A=uxL^Ns*Dokt_cSj0`8Cl!RYE2&9MD}s$BnwY=1>ByIf$e|MK)0 z=-;=nnE3T+0>bx@<3``XYxwkd@AOb>O5Itc>nYNITd(bpdMAo(danxn#_l)xE#D!2 zk8F6Qz2!Zw_dm71uR2@D^}F9fC-?NxmF&S>0stbkr>CZwO$S_gGtr5 zzkgkFD9iX0^wnAP+Q75zi_SEs50!>>6nWImjGt06 zN3pa=z2S^j=PTWYr%2;%@~Wr0D|cyEZxOFOWFWFf5CW9Ss;a5LrUb($hBS_n&yFLj zU#TrSnCL9Jwy|Cr=T{1MxGwPY;Tilvzdt@(5gHd4r`~#3qv4!p_6j67QSYd^ewkbF`O%RP$X5)Om0WbYVWL?#6oUvf7b*TU`e3!e+Wy+$7g9(@!w z_Br?VMEsf0c3W2EaxHxL_N0SPJqK<@4L?ube?NNjSl0HF-Cxm; zm*cB$KI^Z-txcrA?nf(?|rXjoi}U-UIdMObJ%p5Fk=m`v|F@dFNC+* znY~tX4zd%vfrV~acfz*s2{71wPyG=!pLSe*N;I{Hk=MyvuuWXH$E0#tQ9UYOIwV@M z%eU{kMZ>7Dyx*d3%xLMTqVbeN_htLFmrNVR#7p;Etv+TlXIMOcgfnkQTsrK$>Y{Av zF^kO)ZH|61-|>Libkc6?Q>%6NEjw>ow_lO3K1P_k!Mt*_b?u0G-9Bb<8vy7a-wr8m zY003dq=%o@tna&+m%Z6+$w~H{At*T#&fCi=8I&$R0i(6z$|3sHcG0vRpt}IwkzYJy zIDHpBVkK$PGJ4`_y|`vU*)e+ANnkdbEIQ=2=9>BPqn!EM6?J1aO=si~gDE}8o3Y!f zbQESPjppyS>%J}D^4RLg52p?Hox5*(v|n*vd0aZZpPAlGh;4&3JM_}p*PgejILt5V zrxo?FXYQuw^z$*(neB0?sUr^qb>yq+oFz_pYc+cc+MrJ=b zZL?uck1%m5B@JjWt0aZZhI2MLwq3NUKPAdvCrhqlrLE>72SM{OG}ajVXA>Mq!=Ic=S@*)XXI zf;!^lCUxs1Ei(_C!j}VselCkNt*Uihmr+CO4E*Zp5zQ)|i$$3u+$lHdbMA?&?!Xu? zBYZJ%Jk%|7bRug(dw`5rzGd<4l*xnig8kBY$0=Fcv|Sd^=MORG?=qf$RJQ62DXm(O zzsX_eN8W;)E)6dot1oGX)zMR1Va35qX=BGW@p4wnrgcNqL{z@tweP8@W=uP(ffccu zklf2~C`2%Fgy$h#v@86;H&Wp`S#bw+7Qy={gS->$g{5ons_R7S!0wYLP zF`jG?y&CUdgE7oz+7@8kaxIg4?bbdrxsSSkMI(;ALhQ1L?ge_l*z~Gqgs$KQEtO^T zz*>)4ecbKpAIq1h;=f;>Cw?QgIWSj94XCEYw(yhd@B!80ytR4})mZ!4yrAV2&noaR zq5aBy_OL_!9fJ1^x@m~IYk^JEP3*Kj-@zvq%dQ!ORw`DX;FR?7%yU&d^NEvJ+3tE_ zKZb_gMtv`Rby+cn(A~HZb>UA?$)RtIMF&JBTin*%wx~I6IIT}_QXO^1e!-eMVK-3U zJE-S{al6jTn4r~KvFj~%yp?Q!W7_@3^1vs2c8k;CGjZ8Leq=2)sgVl@;1kL%JM7x> zm>yZ;y8DBD?~Abgzl6&!s?Y7=7q3${N?^E8WtMF=+VRA8-7`k=7SqYQFph!X%+SNv zlZ!^liT$u-cIf_KcjO~Cx=THHnPyNG-f0fjIveX2uW9L~C$u0lj1Y>QL1wdL(QZ=w zA_I>!yex#k2_Q`Gb9;kIUZ8e^pG28Q#WODG#SLm2F4Z(FBSrNwmfj$iozwDcBseYs zT)Z%`RmW$to>M;0V*yT@tSJo8HH*}@&(?RC$*{@S4Ol^NpNVyw3{&bjd8npD!IAr8 z4T0$BX(02|mO5%%c&nMg%z_gTUDPFxh`>%&;iqODuH%}F_sn4iOaq3Gf%O!T?_>>Q zJ4EWt^qWETo(BwetW6MD@pR{40|!rp?}yN*7`Qa5OQW^KhN?g~q#DbU7LX##45F)G z_sYP#P~SF*?3_w>&DFJtMI;`GJdo=(o9(iI={!frJVDDO2Bs!4q6lI_vuOK&0b{Qb znKdGYd}%Zh_6sDCcsJEH4L9(Zs%{*lEii%AB_*T{Fqn$_7=U zYnGl}4#7O1>b{6JbBD?CAI^U!9FDzYr5{8*H_*dc@xm!s%VI?2uT67CC=rNFt)?^y zF!j2&*_uwp5cOBnSJ3>{>Zjaf$DKi_&ISak7KU295fJZG-FidqE4$;SgovVf?Yf(iwo~a*Ss+)~icZQL0Y2RvO6KJRMn%o^!3H{Tf}{CYpD(VbXkEk0gZS zk7avkVCXta_N!GM(%wI=eFXK4j$9wfdh_z$Uz_y*uH3&p9BL1z8&_>pJAsl0KWT2d zjKt1E^mGtiiqX=g{A(9!-^cM2DE2+7b{R$Xd_cCNs{8+tdT$v|uX9w`<(aTsW6h7& zCw@G;1APyH83@dO`3{;LlsVYI-_ftXA$qMev6Z8f$^*tE-`)H24861SW$(0;^WB#w zxp>T}X6$~0K#qMAih%Lkbl9eDn`qStrtvDJ_Y<;pLbK=TG)wyZKJCxUaGGr)v8p2ISiThoamI(E!LNi1zON z_kB}a|B=}G8nfXGvhh76)v-PAH8#9PHoQc(enEQP!42&_uXP7*Ywh^Yc*h%N`_Vur zhs!N9fd}*L&yT0=(Q!Fh>aBP1tT`#6YtO6ozSLfFqBhp{!QLu#0w#hd zAkIDkYWer)FA!Xx_-DB*uO?hfCE4cl82b3k`zyQdjjX)TI_1dxNgIkH=gvrrFP(0; zY`b{XD68YS?&^U#l-al;|M1-n$BP``@twc#A&(6Gy4r#~+?94~~zI2i>l=>WpSqE$DXL z|54qpNn$|0UGHzQ{hw}!e7lkW`M28$bUSp6g7gLKIf!1WoJZ}hiO|ea zX5%8TwS#$BX-F!>U@}fT$v^%qZ|q6(`Dcm4*HVu>OgQ>HZ0JeUq32=y?gVT*?Xz)o z`lW}fUw*H@{|@??D(^loK7Fx+CHPxFFh*0{WkyZhvX|SgU22_ zoqiP6y-!!*HRrJxfu}#Z?Rg#oMqX~O;j}^9nv-^|H?8W=o3A)- z)o{wN?x6FQYu4*dI`^Ix)E+XdKW5r?-ge`4yN%Z+D-O~ZY&BVaz_fPEe$8ce`97et z3QBg%s>f`5pEwME@g9C>wdtPg_UDe9?%S=q$y+jP*>u`$)iJZG-PWs4nKc|{%?Fot zlQ5^9nZAONxkg+BoWn|5#1f;zKFgNtqBVE8Wn&i8MvO}K+jl*5?tLLD*~Q82Fj=(A zaQ;44##Ym17uiKS)Pt&_q=}o>PR?8}t{7uhp2eqku@(-?R-Ts3-N!B-Fsy?y8+%JY?Q*+@aw#Eq^03uO9;KvXY~AozI=t z+;v!W9=PtT^4&mX;muB?Yf?GHDjwu84VT-w#y287%>28 zSpncjR!EH`zXNbLl(< zvn+3m_0V_4=8tY&FFmU+>iI5*0Rfop73Ow9ov40P6?aM}A+w#Bvq3!X0H<&VHlb5A zZ3mR(nrHT@nWi9?LAa#FqIqM4)XnUSW&Ft%h+CfH{#WdM&m_HfgAV)x)(|$U0pW;^ zLKb2@TQK3>%!p-JK^#j_MRXq`ChQSaT=9f@^hckJ^H=Ja#*>2PnWk$ z`9N8R-6-Ll-JB_1INK1sz*je}&3xk%B){2X@Tqj+SwU2-^R8#2*0UseHYKeVlJjueoKt@`CYXWbl-wcfw*FnwdjD&z=eROGbEdQvO~UpVVmvlXEycch4EeRX6ZTwX)q0W zQT@W|8@8*SK(@-d@sVlAIio4NPs=_dr@Y{;RP+zvd&UBP2zeKfN8J7vxfu=&87%vG)H0)tm~DDaf;P)$%T(FAPO~2Y#5?Q zywrnZ9%NwXj!+a@juD*bLOr`EJ!t?U^T9brb3^lRZi!H6i?NS|Sp$MY0u=S~{8KO{ z4w^D|id!Dmp+MUv1@9P1vPmO3hGXq~wH(rE!A(Z-eQHK=Fyf>M*%G1|C!iQ$n9{UX zQG7kkZ?=wQD)8rNju|+s7{tUIk@@O7=3{NALrE(hRJ3uawo@r3c%8WQo$C$Mx%nJ| zC93me+MEz=qXdL&g>YT*P$H1LUe7ofAzJ9W<~h&UZc#KW1(?#50j%e21o)QDNo4yR zUf^O@z+$pv5y@jVch)Y~6R7^<#~yD{UeSoEO@n3b2-mrtXjzBQV>P+{h*=>sZ8y~- zSw%2OOB6_So{AMas<4w85eIQeclCVsB6w>&j;L;cNBCB(!u5)(gQgXS@ev((n^o%U zWkj=0Bslq`$|)jmB}c2-XII#~SKbqBuer+=BIPK-}6$L7fz@QUh3g*@gj= z8ArFmV9D6}dfStp$OXn`XZm?fQD>z=zjoUw^vv{`H0LZ?2+`&ZCbGqnAgdE3f2ums?OoJ zoe|XSM*=70RlsSwuh#Sere*cFJf3dD7#kh@@46jq=YMs3>zr6yT-_b@uAfSE7s$KD z5tXOV?aJ!PYFcWVy0G8@e5uIEz*5)LP$*M`#8N7TQ9fYAUGH^wVqQUkr7>>UpI4xd zzbK6BZ*WHN1*EBBfADO5xQSo>O4R;Cqv@skiLd0tZ>al!pu@k=QB3;?MmmD&AH#G` zV5%oE++~b-8B@Q38QjCjBN#gO6J7m+J8%niK->rhY~PxD1s+{BQE?uD{duu9E;B1Z zt>TJS)wtH;4&4s=WtJ@Roxi_{| zDB?qkabTcazWwtJz>~kRk9SWk3QR~!QmehIvVK@CYmIX9QeD1Saia0Rbo+nkc983U zkx`Ij*g`lLgOH3a8@?0+eFbzcL}fs?|MlBJx8ua7x7H+yydo>GthG!tj z)}8MjByJ+WW?B?_>M@x4ch%NWJwZ=F$(({o^h@ zV}W~L`EI+5!WOu0JS43>;9I*lZ08x-?u#K8UpOr&HL`HBu=bRDdC48USRRo!%W5Yc zdoW}8#pL6UVuv3j4_-|_{vh?_vy|aCDQDjW58U?XI^*AW&b?!Q@zZY=&%W2c#g^TE zvF_RX9bd7|Hz3-7G`;^`^XA)z@o%eN{+#pR{ftMSrri4we&KQ8NJ`;87Q|Or=rgfJsOGZ3v?(k>r zldm`-Yq)OHcP;3`XP0BI^-G{2vJVP__>+5WmyE!m7JuFm@w`Kh8!k&>^0fY%wBob{ zB- z>~+ViTW@&wJa*~0OiLUQbTZ@BCvH?jqv++^SW(!KW^tDr}1!b-x7W^wrmhxO-7H(lo~8f50Sn@;Nz zPu^xc@1TA4E$PM^gu)Isbe@);7R(*s&eWU;xCFIEgRKf@;7DSY>(<&ev!%b^q zCpQ~JRq98tqa>|1%q*o%DyJo{;w2Q*BbM+pH(AW=7Nl?v$Zzk<&JElgk+C_0oC$f_Vp6dEJ7Eos#TMYE}#MQd!R*vR`n@G`ra-ZVupd zP<)F@Y>U3%JfH=V9kac5-7`P_hPUph?!+xdb2?!r4#`cd3Mv`-yR;^@!QeB}_2v7v z@@Kr~&w8Lg<+QwM)S|XS*)o*noCyt^qUbh$%oa*$nPftlrf3qfoiA>@B^~`LyY?ya z6K1pZChSf09b;g?R?~lzFtLFb-YiI1tL--zelM`!4dcp`y%!4>4ft<)q!X0Ov=7jh z#&Ao|nD;+LMNP)_w~bexf*h1-=N-f95lzb}j+;-$-@!bFfAg1~4nFdYS9u5@wI1(~ z#>{94xc$fVGGH1{SG_$7CGel9(pC)I861MubWzKTytJtcapGpoA#tevR|h9v{ub&t<;5G z!Cg4|!mNg$QTnlC>~a4FT4%;1J>GMckjcVYu0bPdThRofz# z={AXCovbSjHM9kmQH%;dfGsmsu?bc(@2s;;p7YPDax>T-7*P$t;%@ zx>6XsR0|N1HokPf=@zN0944-#`%Qs%B+&UJyF{Etw3cfm%{NL#Xr*rCN^;1AZGw(N z28@DI?6Pz$!c?sSsG&3Mr}tS*+@Wfmq{6k)v+zf3XS#O**?YEeN(DQ7xnaO;HOpj@ zO{9TMlAc{W-X#*}8b|Ri(y%R1vYJG4DEp%wT#uQuaoKLY(V%LwPx#u?%@G<4)PjO6^r6nXBvD>dO4| zJm;}Ja`i11h++;il7mnUJ4Z7Gs>a8aaS78OKQXQ2^*2+X< zC4vayI7pX0&^kl@}7lP}+1L4xIfx_y0jzb?v**KiT-{;AdWR`bLw?ck{})QJFgu7RL; zlmz*3LmFY}V%dvF66}xuuXo~~82836$`K4kK{fVcn)@-d{e$VIc3%Dhz-9QDT4o!I z7TfaIcnLO!i0iYhS|-}HZtiL_Oj`jY=Y0!%Q5*9(Q!=HaEIFLtL=f~OV z*4zNyj%v@7c0NZmBZY2M(fB`fJG7?$)$JNuki7=!j`Rrpr?)k}V)&!K(blh$6>UW_ z%Db!G@J0b51~Mlfp}Gj9sp5KHTc!sl`39kuH>hHadhILY**7%$5`X8L=pn|r|4aSh zPyFp4!mB@|4={A^J>k(8%G1y6XJ2I>G1wZQ&)>EGV3s#9t?i%CmWS3setYKxg6{qD z1ADoD_O$ds!iG`Rnz!l;yR=px(C>MRZ+MEfybUiX>YwPOIJ|(-00o)`{`d}ar(b^n z4IX>-@y(sX^%quz4CQ%jEXat-o-UogmAB!9R>MQo_yN^?R9XK_tNfl$<#mmk+xm?c zP~|AC`g~e*ch~i!H@^*FA6Bl*4MU5Lqna0*Yx_v+4{Df%s4G73|J3bF6VgYFH2e{A zGODYGK)2u7Sp~^?#r^>tevt0p;W_=lKHfgMz%MB!MYZmp(z;U`nQK&%mgsPV|3A^~ z5DN#z3*>gi`j^=PAsNu^5HA6znj|q-MBHWOAl+esZijUgnY!IG?qX<+DxJp#MHe0I0G=f?XZ3E(MH4xm@B&ZYet+}ulf&-c^!W3clN!@;FweQW5?!OP8H|9*PX_N zE-}lk<*n%mXc=&5+-uc;KJUp_yV(oq#wNCIo?;IVvAqY$F2M4is+{4cMQ6q#Clhn} ze#YthStCy}Mqi|kjHjM`6}%U;rhHp(hb92T0@!IjvyFUHd z2??2xe|#Iado_1$_=J^yz?QxKv+%{wjQg+C9(?w1IizJ1%!!|xbn3bL!KV`rjeDGY z6?Nge&%qaFoj3i?eha(wJLvcuyRGMghQCML!%TNRkXD|z+j8Hi^t5TsWrx8Jj(xY> zhsNv=JayVV=HL0ubm?)UY5Oe}oibf}mY%#p~{XSS_ZcqRKFDkEGs=-F|@Z~GmK$`SE~Q*oy-_nvWn`8i(cF?Q);+qPR! zRuy*WowWRfQ^O_EvIB+-`Yda2^UF@)Ak{o`w_C{(tHrxm`CCDe8YPt&2G5sFX>jj- z=yo2n0|aG64JoNfvf&Dx^^=kt4dT`^7j?+1PP$fKv~GFm+Var1?xw~30rk*z&;tv) zoxJFXVEsvWwjTBOY^tv7&DsrYdB5JL4!a+iR3DdBoe^vtwc0jryX&*O^_9)8&$iuP zoVQ+s$`anH{iYSC==1l;mK-Nd>@}RUk6(VzYV&;;@QoWUu*;6P?t0E!evUJ9*nR#P zL2NxhMR2|gi5aW8%?Ftqk7|2W8-i7yQ43?IKnN6NZxUrR&{In28Ktu5Hg;GgKe3vW zP-C(5r1P4~{OopSY?&CaIg!Pj#0}h}a!%4lKKS!-Wvrx4@Y~r*)#9u+dG0P@W;-di zoRqklnz@!-SVc-L;b*KCrmvMvZ34C=d`9flZP3|jGIyt}0Gemlizimda~lO24N&)E zxMD!KZq#tWpku>*+p35B{6hq%r3mkgEaLc~%WS6hm@Pf29bQ4Ooo}Am>9P5l$>an0 zNj)|-FFnf7BbhUzTTlX4sYY#Mrnjs5R;p(W;^$n~PZ(k*_CeH&XkTRLH%Z?s&nl;m zpH$CGYT;-1$Y%~RChanetTS(W&9A!SxPIKPW=z|CCM9a4?K#Zl@O$0KTlE6V*x}Wt zGx}u<_8MkY^HVnnp~`B}QM2Mv(To8}<__~o+iB_bP=EzFC{96-WlpPf!V05lZH&r` z(zWMA;T1&J0Zo+J3v6s`bW0dNj z(tmE~&m6|*wWx;_AyE{R+Ou4z@}epPLG_f-I(@%tx?>I1qm@2q#OCA=+dJPw54`}` zxQ=l=%`VC)Wiu-%#sO6aU%b>C=QrPY z&tvmF*YGp@#I;XN*Bs#_tTt{uD{sAq4=INK&;l=h1xuf^@KERw24mW~f$O#Hb4ZEJ zCI_Axb$@2TIZ;|GeflBu(u*eZ`bcRT!uE^>pa1G~{+ZwTm*MxmT5r3+o3%Tt?}Ps} z%;O#waP?2X$q!nAv#hsXpv`D!m}jX5%=0+%KKRBjuNyzCny%48b17>ED4UPl4nB6- ze%GL|LT}1mLDCN6sRvA2p3t}4<@|HpY}#RNR==Kmnl{f47udlpe{A0PTDI{beR4lz zQZ*c(NeTyvftx5HD{-!~M4_7){%f?nXIUNm6g7r9)SlIp$3RMuH#M0hoUsCwMq3h3w9l2!II3p6M8j(_(Ql2CEM49EA7)+`GpmyVQ!qAD zkZHJ*YXl=?HZ)IxPp)Pftz#a8w~Qe>CK);<5&fc=0kNtAdv$@Qfn%0|cL6)3NY5>W zY?nc>jnT4?B>Ly^lGYJ?7O0xW(;Z`}&f#h%z7&rPZTobJ|8$~fKG`>4(>}?-dIHWQ zT*D-Y;1WjmNfw09*K?bxVLw?-SS856BF??Zi0z^0A7G~SY06R&(FU2tBl%2P&XC>a zhbBcGNSvT-l0x;JPI8+8SRNz@LVmfFq(TD%8IGSo~~YDe^|+HNxN>yX#H4{85IbSc)tamh?O1eSP6xt>qC zws11trGgh$&#<45XPT0zOl>+1v5XlcwuTM`Y8MgLN+)TyWofT-=@4>TL~v}@F{?o2 z6hyKDYh8mN(!fjA@fu0yhBg_R`Zi20i@BN9+yhR?F3R$aya9Wx=ikP^Ps**N5 z2StNePLcZUOQdgab$|cB{lZl5{Zc=Rp~D#3jlnP}+K%aL`$}$kLfvqRwy>RDSi#FH z7B6Zup4-k@f0SRy{T9FVJSy0z1jtY& zxU2>-ZXSNiJ&2U6AHWPYjLfp<{(5u;vKjyCc7?bG?-z9YyW?B`NwU}6bosAtCw4wp z<(MEPC1n*26;(|&b!}MiKxzz6hD5Y z9K&ut9j@5qMbw(R6IG2Xuj$uVx?4YVx~d}B4jZG^KF4RKd3>pP z{(7!^q>;p1v|-S^>Y8)&)sUg*enTH!2cLNCdm1(H!Ke0yU{Z(q#8$fJ0wtqFC}a`G z7m{Q0JnH%qItQKea)tKBTq_yJ!9if_%Jon1Z`fUU{X^l%_~g@16GxvU9KW49{2=4( zlelB|;*UKF+jrBh=}7F*qp(9a%qzPR_nfmUZ=ZYf#p3&~+J0l(zhGP5{jPcWm5?)w zJbPKm+h4`+{>-@Z8pc1SJbjt{_*=s8W5d`yEi2!&{!5-mo`oEK?SJxZ#Fs=4+dY_mzUNNn^=yUpqZOb*Mt_Kdg$9x9g zM<4zkw(F(cx^v?BgC-k~7%%AoLYJhdojkq8q~^4J>lK%lD@N64Ja&)Scip$zanomD z+p*nStpxq0=dP4jh^T~Ey0ZrSa4KwkyZ ztVgUXPf03=Jv(1nHe7*zQhs5dd=}(hy15Gvax*G8@ugtyG1Au?Zya*&dmt_z)D0+R z#?>0l+RvHR%Z#gF$E+ZvtRPOVku2D2(seQ(C#x%6Zw1()JvOtBNM;QZqU&hk&Agn$2Jbq80ahp8ns4(Z0{gR6~w;7D64K8PXTUL#*3$_VTT6jrYxRZ8pr$TV6 z)hMl+oY+8}*e;lLfSupNO54g!YlgX0lV$sj=D{fOF8RbJiu($K-1fjLm_zRqN_aIT zY75>IxccYG1w-~z4)H=8DIx3Gesh@NlMMY!abC^%fMR51tRZ08&#R|z8i$M%ZsuOu zwB5YW4SGJS1>q&?=8^c&X`H}1{on>d@HVLEvQE1yn|jTo`%CauOgMWFGF!}d$OX_V zHLBboeLFs;TtBkPFrWsuBsiDF054^yRI=hLX_+mgxOyGyKqX0(P5o*A7r*UWPqL;C z+HC)6Rd$pZGLyM*n{m|{t;iCW(RUDIGv9XAe8Y&-q2KbVQAm#?QG#JyqwU@?N!KUl z>dS_?J2~@C2o@dV7PcGaR0Z}vjJW>G<;shYOP``2{WfVIF${cewP{Y4od8(>`5l=Ad;g_mYJ8U4*R&iT5 zrj=QE(Ec!Hb^?=C-PX(Kvt08~5WYZ_>nh4WBW!-<-0_Yyqf0xwMK)`Ptn4H=zf0Sv zlo?Y+4k%;#Zx$!*wf^U_?c0yGPu>v=*WpCrWUCmQ%>;(k1eRq4-aFCIs>slOHJn!X zJpUst?LvkVL^HbtGxutGuViI6Iai&bB$ea57cw&H^s*at0g&R9$DS~q5}chK^>==0;g#_pCT>q ze86vNIK*n%M5r3WeCq^#$4EoZczx$coM)JxqkBFh+MTll*fdL9!A&MA0ve{FfNwpoy_oxi%3 zzrJIZw#7s(%S@BxJpt?P8BaP#k7~pPt%kt15;w$v7lO<(k?}%m?rD>%C;aR>MDx^< z$B4rI0W!ZRaxt=vV#Q9DXU@R8MZ^ArVV4HSIymceyxmL#-}wyxDTeOJc#nMTsCAYj zAH=u6364IeAGi^6?-SH;Xv`dyZ2!uweyQ=nM^_0ae$41{zyU4-q*U4q>W}kvidJoP>T&n>C2%qsEeI zQ!LeqmdZpv0!^+H^Li@ks^r#3>NWS#p5JH)a}1lXC)Wm0 zixBzvpKc$vmwKLzHE>V_Ay5M#Tk9h2MUW(D_o+$QlwKijYyrx`#Rd?VAd*C-}!8A)pJzaz+I%dLA!jsF_b_Nkl=d4H7 zkI~x0DhvAzi>g&MVKW006pD8S@vIELVR|PZTJuVN6>mnQ@Hb`b444BlVA{clbN9)oBH%Uw?>hn&oR z<=g-I?fS-6Bol?x{&zvX9g^)J+F{WhJlQV3Y&U;cf5Yvd+yDCQ5N`h)k}-}&LKAejW(*@+7N~SHSC*xRfvF=&4!x@` zOfy#lksV%W3!~uIlw_>JRBTHlhFc>SrIee8OtRzBGTp=3jrZZ0ysldoSlbe!uAHr&X_i z&3X1B{m#3bS6EQZcDkjv*UCoUlP@AK`~sC8H}WO)&~w+_cf&4x4IKRxJ@VP9?UFfE zART@ceEw(br9X~)9y+yOhb*^y-&2RG8+HwM96O%_^2N3LY24ATwl$-0ENii4)N=hH zh+YV0wi>PL_c-v-b^l$L?yKf?=X`pf+I8HrY`f~Y@0my6Biptswp%Yl6RUacd8_(M z;)e6~2VS@jjtff%ESK!ItUGJday@Y9i*@HSleT-zb;npG`<=IpI_|jZvg4U~?FF;a zBZ4V=pxDT0sIU8x|t69_Pte5xEQmWXAH6W0Ta<+0OHgHqcSmv*n z6>Q*6Z89%8DcyXPQF6k#;t~u45+?7mTzdf))PtI@yI@sz!Ls6#V9g0p`Dv^A%Rnz@ z79W-@IL@34mitrlZQsnhKAW^Y;;cR*FB>vlG$dOHiJILe#fNFrb^;0p7p;KFOE=vT zm5h=KcQF_2v#Pz}xaG0=y6e26BmC4o?AR^%=t^1X;fT9`qA<+!^tfn3EiG}KplAzo zRwFI1Rs`_&g!SyqjohLp{)9SyTov#eA)HUk21sB9DP##Pc(ydN3M_XBcoV`_;KGYJ z6YFT{Rn+tvUeZR$!&9Rn_fiWzR)DWJOl_1+@0Bd*6y-N_63QXO&d+Hz%xa{h)=2Z( zz`6us&q`}#q?OBNR*Ldk=}9dHnQL@&wwYDkk(HdcSa+GX_LgkHRhoaTEMcR5^h!qh zCeGvz)A@%@<{UJgcaWaD4@K_9PugcOWr*NV0C+v*QY4zbQ#^H-K|qr@aSJ)Nft0w- zV(}gRqQ|PShlx>;?cWaiN6kDPT9z2uJJ>T0v*!(4l-)L3I!aG#0r_XN{2VjusCnsi zYJ4dh&i&hOz;1<|w3(OL3KV@t_I6?3E}I$qOeSrkMU)uEuNM_;m(Ja1G5N_cncIw@Dl4*{KX)MfGUjk-oV)Uf_qI3u71u3mUz27XX65x#;@TKl9d7H6 z@Td1^hg1V}g%`b?YV4_|!`5}p&|7i9^}u7wtX^S81Jiejc*4fe<@=SrC#g@EW0cX! zh;EWkJ|LTV)@JS#X5uh2`#5LLX%t(l;#n>ZnyYH=XP92Em)#AaBSF?SqvS4eZZ|b_ zwU+-pO7s#@LJ5o;2;w&2rHQKUvjQJ~3;gkulUu`z>ymC6mn|P+O_)iaRwG@tU)gW2 z>&5r(=U>9`xJk(&dEYa6-3fV48a-DzI zqsVKR!yh6aVkRADAwC_{cGqt29j8+-JqKPTU;3`;HQ8_Ym21}xx-5(cVs zCZi7N*;p4p_CJj=7b>Q(c{%&|v%0yfjuDbJ!sp9LZK6ikX?d@qW^~KSp4z_o<#OUa za?DichDm&;>$~K@)TfS37T$j@Ltdy%o2r|%jk}~>S!%C@_+rahlEC%0({?#EU$SaC zOO7kyMwLir?lhRzp<|bX%%btWvpJD9c<1#xmP?Q@0cx9&`*iuLQCjqB9oJlgj8?kW z8fyGTTI>#!ydiecprH6DF|88GlMG}DRI3a%%M_SS!ns6K-Q&rQF%0)4l4FdnLzIeT z2;DEq&^bYk8*Jz>nH4w_=P{8Tl23C>HgHbGTgMP=B6Y07h%Rv|mZ5m3BxP9$1a%-? zqiK~u@W_KpGlOR9JLLe(Q^(wwXcY{Y2-E?h9te#U2C!h#PLzPWJS-#l@PKgSn zs#!EVB^Z^(IcDqo7LdI%gx=}=kOJMn>53nxmwxhYV7&Lg!=FE5wvlnewac%~|esi=C_BO#)` z63m=x8R)7RAm2Hr3s3ShcLH8soA0Vdu|qf*I|ZV<05UM@dNiCKMH{D&RB_;tQ-r|b zcTyvXkQPx{Q$tBh6R8sw{yEMZZyk)YNY^r3sA;`H!*P?YXAL!^$tb2%n%u7gv#7E> zji5p#3qpv32oxkVCy1ihR@u5NZ!L;BBD?9>{6qAEQn|G<|4c=y2Pf4Nq-k?A5CiI; z$m%-UI@PxcTgFk}FVO8yv2i=I%)fqp2@dW5bo>7D>e>V|$%f;o=Zkj#Z{kx7%`DeY zRwb$FXhY0hSre(~z$@bN9SMdGi0+IC0t1qmPULAyOwr_Q{JCTLzdq<;7!LbJ!hY+2 z{h{~lo8cqO;3}qm^gBB6RS^O|foblq5`56dT#U4cQa{ee}JK!MC zb*@ZzQe8iy(e)j4J8|bL9hn1!Wd1`&!}kQa{&&G+C1vPOMaqgC5U5iP*qCi^*TOL3 zoj0iIoAUN?SO2i~DFNSKKmK>}^($NrE(8IUA76g%UX&K@WrHt2r`s^DdG?C{!vteb zP)f3b1qxRKDm>_RE!c7VTNVnB71T-ChX~-zNRnBHa+*=aQ>6}!pS`dq#qQJBd$29| z{%~+;nz3k63#xmAUonWv2DI;Es?87JOP8qNeFeda%#Pxd`vk!q#dt65Abx)u>)ueE zXyu+iQMLIps(Yuj`Z9M_pEjHYG+tKfe4qqf&k1W_A{*iPOnW!9WlX2x0&0G4P;oNV z$K+{u8Pp|V&&LmD$~-bNG&WsE>rQJg+K*q+shG1ystU;spMa4a^)sdqe*4-d3f*qU zdDvG6y8Zjl&p-b>$3VLOfQqT_zdu|*_^;oNs%|N*IiZ`i7KP4G!jTl`HUCRDU^o5c zK>n9*2hk35sejckgk&J%u5V~3J7iS2 z9)TS90FHMsEYR%$lYs@g9n5xFM9ROqJVo3e&nOez9)A3-un!{j{|pW$78$Aw_NLP zF=uoO=XHf_x#YC;sNL)y*G2oF#>hCnTq)~`tmhB5_QBiPmmidUz-HVXU-s(zwChhwUjD55gJs?SnDrUUIedX*;-=ve<8a_M z{4YM@)TgAgU;Xz!u-$Pf;^NnkbD!hReGA_GIAq&BY2!JE-aEbrpBk*{v8_JoT{jxJ z_qlh?W8>8qUAK?>?Ee&a_*2>?%%wm0 zK^sURt1M=>38yz}OeiLV7t1rtc@cBClWNFG>)07pFonv^tQBO{u~I6H^V{G@A}n5d zH7{+mc~P%nQX?*+nx5K$izx*ko*G!fkF7PC+{v2+!I)Z6>L%%w4x`B}f~*coa+z?( z265qbcE(Qq>{80Kz24hD+Lv6hS$0ON;2?MQWy`|jw2TH?XfZ!;19R$TK#P+ywu+Z@ zOXlon#2nL0>(TI?gQQWSpk+Su5133lPD|cPj;}TJuGS5$M{esSd8e#4eiklyA}czt zo8BY#Ei!PMPK~LM&Od5icF&~zp?&=;_RJ8%+B@3wJ%|&pBW)VWEy=Jl8!>*MB;tutq-A*|kLYL75&lbZijRqss0pnP&z zk&b;P&vHIg`UYT_>&G`*4s+#kyV&)&tV+&v19CZql{V!=_@ITMcYX%l`)1dFi&9W; z-F?%ncEI|dZWKPrcjqnt3(p0WXY5xWwOo5ZTr%X=cvUo~gPvRK-#Hcv;iAzmAtOJd zA7aMaNBvu_1+-rGI`kyq>__L$hhAIHGs9>4UHfc5^b}{7K#Z85br*BoHtg2$*kRR8 zWErboJ`naE^L>P|Hr}+Yyk*xk?7a4{S;a7;_nyZi%(3T@!K}SDt*3?f&+iH~6Nc4p>g5kPM?KW8<+VQ2SIy^F~{b0O@l z>o-Rya5>wjR41~6A5*QJy3?%>`;v@(@xw7m(!4CkfibY@<>g2u$FzSfm@oPODfSk3Qkdp)=4lpVBnRj=MX`2NY)X> zGhJs;{EF0_lWG20`qmS4>|!)bL#a;jERT4OUjoiPgy}yK25%Xb8G05Oc)J`){AzB* zN~_e3WQVCRudQj~r6u>*H4D%-b3t5dyd<0`N+8J+)H!5f<_c=dX=&FuG?5vK5@@y= zNGbO}%w%0^m>u@dm5IyfGoJAO9 zaiR4U8dPzP(G2@Ys&gDN4M1{tm!(JeM}9huzO$ON8X+dqGuCs-MiwzzTtkV8GcpTS z6QvN1#M+`TgK4KJQ}3G2yJZ+vre~X>!Zky>9Ay$yn`)#EwMsZHR3_=@Gw3u(gz6z( z0xLR3yrkb}>upkYEt03Gvx2mk9tzwI#}JVvh$4b~sfL!Grn;`Wx-L@IQidqImH??! zm9(_LIabnCLYjJD(NjbaRr*KEW4(b_BgLaZ$F3AutSUAObzMu5&r0OE!fI7_RR0J+ zc_Bg)qP`=}ItQ`hak8lh=dYvZh;*GP4ol@ZoxCYk3aej}0Kj>c=`@*p#wo@ zbyZb85Wr9~O6Mckg$dmV;vhOBM3e2QsAmO~y|M~UpNx#8%DzEp#}3BRCrpTQV?WUE zp9sUWeqsh+G4@*wJ^iUxI;vDXNZN(5%SUSib(#}+?6UimT_4bq5A3Iy&eAFfv}-D< zDzq*rUJY&drC+!awLC%%kM#$>)0TG4a}ohM@xSYKpwTO0BNum-W;&~tol)rax=VUp zukpq%NEND4;T!$u`m5gm)$O{J7-$FHma=Ic~7KLBc;iw%m?FoxV-I?hD#<#o)#l$gbmmer5IS5KM^BU@#GhtgTCd zbdkD_t`d!EkP)j|S&VyhpZpBdsk@_>Ri|A42sMsdq%R!J4Z(gr0H`AN;r69Da>0yB z$gAj=96@FKbO9;f@dVYq^vKMtih_(2{8NC9`2aXdg>L@^)3QIWE}68{%gp4TCe-*` zZRttFq9&BNk`tPXXvRo`psA`t)PQY?64EBIBhyf14QqBcYWkwN;^<^gDK^sb9^(6- zKb@HE84&47Za9xBFX=8EK*e3U3^t4aD0DmQZ^RA;AO4U|y;mw51Kplz!+OwHt$0Je zefa)s48z9%e1`(9Z@=DO8=UVOpPGU;-TV*T9yASU5&jo-J8&TX_NC&Pd;&`V#=9QG z#o0mvS3u+m0hve=$w?v;1F@-|*aR$hFxvqpLp8G@|GNwY;r zY=?1FhLbPLJ&@xW%!GTd5S~vM8%Q$V3JxScAXXHTC<#x3(Nsx9s%hLrS#*{#EX61s zH2frCT#g`ik|b%0G_}wup+J-}%`|(iMb1L9vk%k3U1;abv9vKXvmndOsX}8GM+TX8 zu-p|RwEu!)fE5Ed8CW`GvYNHCS^69`eM^qeK~p5xm78)!CK^!2ZQ(`r3KvEs^TU$Z zfr;FpG=5M<$iil~qB>#LT8nvYw##;N@>}_N?UJcob~RT;Q_D1iGGZ@%GTL=B@Y36u zGcSThza@|TO1t+nc+YdYS%>Y*FWWR+q(qlXiZ7TfKPXtx#h-JCJO41FaJMwO0dMYN zVQ=N)<4xvD`C;Y`;ckRxbQ0Z+>7wzcVQ(T zd7N_iQQpNj$>*Ni_nq=QFgo}ChuZhpicf#mz53qr5mN5hKabxpc>eL9XYaQB#>#&G zUNH7P=jnHk!&ik_3rPmH&UvL_4?eqI{}OQKrT@M=ap&KL48Kgi{xkH{Tkpd!;(8u? zHC;^J|0=xWo_J1=UCFVKuIEAh@2y)dI_|s?c;tEfm2Z*fKBQdzWz%t4R&xqcG@`n5 zvZ@j5+VfrqUiw_ZTnEPk+ip4^d^X|iH^|RRHxCC6y^0w58Zi7x)Ok(TFzU7cx!;ku z&ikLr+b%ipzGuJV8e>hr-OdO6x>0fKHLt@T{EvPK82n({a@(c#uJyWeR;8!K^ZJ>E z+o=U@4mIZlYX)%(I*n$u+b`H*kz31+UdM{65@)oN!&fmP7PI3jjHh++=&D$@WJ4BeV52U_e=@FgS7ItQ@ zAirC*YygH*33GQD*I#w%dG6Ww%Dr>UWaA}X)Jg;Y*)SX`D{Azr8@8=dWT)|&&HVh$ zP=RWgxQ3ZlW-+ssky6IZsg})XmBg%|#TH9ucNj13gQgos)GD*Ia@(v5z1$5T&lm|+ zMu}U53C;Qu6{O5+`phko{5oFIW)xl|%vo)P zoHo&{t@N}yc2bLQN;_*(m3T^}>GVcpsB@auE|}ItnY2betu12rxK;Zj{l!pCct-Hg z2z?q1Jk~R_R_aGp5@Krfa@TR^ZxPHKq)h6iO>5N8>#(l4>#%l=5x=N1#2{VDUlY=}@OK-Ku)baOG+GtbXB?9Y)zLvguvG?Uc>j5Bm{j#$uGY zg4KRa((yvN?1JsQ6OzS)`YZYk3#*NjOC*K0{MCo7R}4G;Gip&fDp@f|Olx#G^wqfb z7HRrEe!*VJfk9pHC-oZb15I_H4?v zFqS*}5*Yrh$@@8pyUY@|FkJH3j>(4hiJYLxME`hXRVW^QXoX?^r!Zu-Mv%WfeE$>n zioI&y|A_N@+3_9BfHl6C-X}fzW!-j8G=IPC(HBvB9vY@?LO%Hl`snVLl8OuR+N11c zEq0ary?5T=Y&fhNyv(_JIQ9Fw;IVXjRz&A!fj z+9)Hgi#UCsVe3t&o+pCr0j>0%qGjjIW*nn?mr>pRp$FCI2kxSTAK)&$V!!>XOU)QN zwp7!?9f_TAVgFcKO+~Kh>?M8Xi$?Tf>hKdAOQPLH1VT$=%H8R=oQvf=Lq2 zJ_zTWh_{W$n?{gK!znhQG>-&z>liT1@m2wN*Kj0r(*rj?avI(zAIex&EYgWK6AT=p z!EYx!#Zz5VV1fJ1^vTwAh}5vpCIu~}#+T?tFSjUYql7Nj_DN+!6{#dt#lk_=)f-BP z_$HC+f+Qq#LAfnnLzw-FE1JHw+?fN&GS|>J8d{d1sTNty)ef&06m`=BA!W3MR?w+S z^CLN>aQr3{?GyD~QXoZ7bWK(^57V-X(GE_5s$U(`c)Ulhwr?hk)AB=d5YH2-2@oq> z7GF>Hn2nT~NQVG^H9_J`6x*r7XeZxBQPnE+)nNH*azi;T1*D*ZdR_zk=pLfST*UK6 z6oAF?iDVfva77F&L}TIkEG-?9D)bx)GkH^n=o>H4^Xrh2ACBpQ;{_s;GcvSQ!Sglr zO?3^K26|#hW)N@?Em0KvAY}?7%hj2tss;=MA{1O$eLhK=N3y8Zwp&8+U$5u4ju=>u z^C?%gT}AV0&@fpI!>Ulm!Pz@vb^4n9mYqn0r@=|b1uRrGpF)yk>*)9)WQiQoOlt;M z6E~9iX(~F9^I)lRleNtjtI7+N=)OpqOjN@u&)P#9evNivpxdd7YL+|Gu?H8w{rK@8 z@shu0_3u9r4*v#KKH&L&`n7L5by-n`r4=ycqKE?CrnNBMc2cR+zkyEP;fKk}_Odp{ffS zbbwOQ@KI?WCY({R+8Z41_n$%Q{%f{_fQRS)8~gt0=FsXCOGecmC4ka2+(LcN)jYG* zR5f+M?AFlLR>P~o2cUriauFcS;2<_K_GRc%b<7m>cB4J-6zPdqt>79 zg{x*-(q0_e3DW)hS5V8)4u!q>0M{BHSr-#!$!D(GhpN7#s!O_~-zZ-&0}Nwh-`Q_o z>D|0fxcX3Q@HFnssNVfsq|a|ie=yzGn9><&l6r^M|3Woi-PR6dy2y9scw(QQLVo_& zn@{JLdU+OR=~vxCs~#)Q*{1pZi}Imodh36S=Pg}iWrKZv1Zo-Tu@rj;AkaW+=R5X# z>#~XjC-artQRP#$Ch*eo)b+$}{Yp%())Mg0P z=|*sps3EZ*D3%`TMu;^=VgRXo^d;BHg{twWl zlEp`Tc0Ld4xowfT!MLc?Y<{RrUFp(54@fx}w zG59EE@JaCDhvEI#Gls`AMqb4oeHd}*ZsPFMgpslEWA{L}2lZVG?7p0K>UqxXFQI21 zc@11lJ#}yH<(ISWz0Em&W7C^IH6O6@kH1UaeD&G3$G>CGvN!KHeZ`i3#Db3B5a%t$ zk<4|Z-a-At-nV~80=u&NTJZ7b5!b&5pLz)|B=Gnvho(_5(u4Otg-JKyhkLZ#4CsI9 z*8ehaaD2k4_c0g0#$Ed!e(rtRZOnD|J+m$6gATrN__toub^EQrQy;z0e(^dq9@Kl^ zZE!63^n1?(PfVN7hM#oKI!~Dtf|{@*^O>ZHym1SGE0Vd^Lvcv zcN*nZ^D?WMnOk^yJ6Mw%rBgNwQ);-GP10GrxrJMqxmE1E8b-lZ)8aGIWoP(R=cHS& zTDIJA=pDBmcx_s94U!(_Y_;u{?dA&rBwFHz$1Ue|3-X)5^u|Z7kW6Xh<<#mWtOF{$ zUTlSY?rzJ{lf+3)8sTf$36=B-r9|KPtW-e9R4Sq)fQ3nJp@W#rs4<#U4ODis#k(0f zn`AkgEM~RSrf=m<-Oim*$;c{|Oy43c+DXlB1k%2A<~C8@cJnFyMpL&L6*K{Sl9Rcf zGqIKr`_RHhPT?la^Pj73NJbC0oR98z#B7aoJ`Jqw8I3H7Xkjb=->Tg*Ge z&e~3$xSqdgzf04&!=~4aiT&i5S_mP_r}whr+Vuigk-QcX-Ir41wi&N_$Y1l&q?X;|I=4;Qo4}E}imaO&!GrE?M+G!Y7 zi+3!f+GP1({Q=Me*2)uv)V=)JUhA|bdguZm;j>cPs1s@oLg6T3v5F{yU)<%;`F}C@ zo?%UHZ@2G5uOXCFLLh|zp(OO)d+)vXt|$U3%CdJXDE5YeVgtnnHWU;TQ7KYXiYOwW zfOL@Jv+pd=dG~+sv(NeZ9-tL?1c;e>Yr5n+Jo~Ep{JX*79s#2Q z^=*$sKca>eJpyJM>4`U$qATb=C%rzP{-2iU2cHAq-t5_T-|`;VUWt3<=PquEdChqb`cyhKJO=7 zt4B%hyItz1JUV9OUDNTY+jVPu%`UXK){L2*Xh8H+m>aGc^`Tnt7QtDe7*#^t`jou? zh2!I2b`M4@s(ys^pnlz`Y3(;D!_^2eP$TP>SjaKa^vlMF-*QSnYMf})*xM$jznAWL ziM!#ge8dgC;~xxaX8@}O-3P#xvb{G*i9QM3LVm+2jL%MuvdTDagLvz0tjIg8 zv<{7oA99HmDu@JjuUE!TT6&pyX_W z#7rWDxq%o?fV@#4u!cxL^fe8aw#fiz3*J7IpKT>$>L=}ECALxgzlCrYnx8+&Z0-{AO-$Ii`cpmYO6%4aeX>Gm8LOSwzJ`(RZ_K@->~JF>Zb%V!jd~n#(EK$+0}e7@lB3 z$I59V5-Oq;hJXl@4=Q~`vC!xPw^9rryh%3MaE+{5I7nPXl!S=k#WY+LoYrA2wkvoZ z!#Wnox}GF?oRzaZ!f-hut-n=@XbwRz_Ty%y#unL?Yxog41%elNt7J`g5R_LTh>Z{} zSU>ZW&id1cqN5PSO_r_>HBXYNNhITKSWX%r(F{Sb5>PPYmMioYx`cQ>8N%sj=>}?( zHP<1|IlH*D2r*6&y&!#I@$4UeW|tQxCYB%O+MBLOL`r8Q?kx+>qLh&#gb1ToJ}EI# zUcgY6ir4WXYlaAtoFE)6trI1!8iZpxl2!G1nB2N(LdTBmUXq!Tb3yO$bz?_M3O!U1?HT5aXK?BXkp$JvV{*f)cvt5lLC_m|*!t zg!qJc(^_FUB5|#kn4(}Hj z9zJ|v%`GF%6A0kSug@BXuPm`5qir{VcsR++r}Csb1NL?3t6kJIr^u2if{j{P4H*lV_Ss5^A@& zK09?_>gNnVCa2Kpjw9jTalY8X56IpDWbIYVk4fQ=)5yM`n8If(v^9U;*}DLb4yCQU zKGbR0Z7o42^u_+IVI1O?6Ug2kZ&+SS~v77Oo%UlzYmL6nK+qTT29Y4k9}rB0Fx#Ms5Iq5@2`W12J?0 z-HtpP;y*BiY`C||QoZ*nkaotG=lhqZ`<7>V7iN3Wg|Fy9^Mh4hzd*Lo^i&Ty)m|Rh9}PcN|9_mMm8vM(&{733}j@ zG5@c5yS%9b+1wGNyS$|{6dQqVS90*-Nq6wKI|njdgMlQY>=~-!9l;KWRr8Bw`9`w? z5_KY0s)ePoBUY$Ku2c<6XN9F}#$wziV2&z$O21X1MGpd$8ouv&z z9Tw-GREab#u4^QgWdv3|K1rOIEI}Mk z7Qs^ljgVAYDsNlOrLVp3QMNog5r92rBGgp)avn)BUW-RBDqT?^5l$HKl& z#(kae{yYs6D%C?x7B_mytDw@w618 z_G!Q75x4q2k4NpEHyYM-D&A+i%xbKO@?Id%gT=aJALAywm<+KSWlYDhHe& z4LLp=GpPFJT{juhx)9X1;N3Fm{&p;;7j=9(2$p{MW12^vDeb&tcDLKPankbXciTr_ z?H}}+RrNYN`)*V9S?^klZ^L+4#}eoh%Vz_oS36CvcAA!bvVZtZr?f@mY`tO0JB!OL zhPS)i>wX#E`oxO~RP;JN9M-+kseZAUnN_N{t;+UrgZ8#Z^!4`~FMkF1I0pKawmhQe z-T>UUR^AQvKlc^ZR8Uu6mrp$p2N|@)i>%BFsBi`0%35`f=Z;u&PkqBv+Ws1)V=tAD zzB9Nz!hJjnZBquD-*L}=R^9MeG5Rz%_Nc~%M(d{|N}H=xldjNrwrd>k)i}~&SUhTR z9mT{}Yh=Bkth>j`y=Hv2P5y8_qo_gUSPkqcG%_nVnWdU1UdrcHsO8=Tp8zfNG{Gxh zGqp%Rr&M-D6>DR?>c(36j60;Xo6_MWq~OcSVK;Pgt2DDKpmdd-a7rnyh>~~?&T(M8 zj9XjdTsCQ6@?9|Oq@c$hM$B1K;9;<@Gko??d=E0>F9BDd9Ct|};uPd22#&dg_zLL0 zVI&n%{PzJ6QX%~+6Fm08r>Kc1G_!B2WZaR7I4=`11o+2b1BPJhETv_b%_?OM22?nHb_cR(G>d@cS2$ioO?}4|bl6+M?r--|;SZn2V zTEuBa++OJwm)Hd#)DI6Rt!tp9lw*Sn>ERcc?x!W~c1xOXl(F1}cPYh1z96QzN`yD6 zr~OoPyGyoAB|5FfM_&UI5%=_0ms_ayv9FZSLPAm%JH19})g4GNE3P>y;l57g+$Z*l zZjFMEW+(cUH@{Wh-mI~+#r|NINp_7++xE<0D5vB-&<31e{WiG!6Lwe{tL{168uo8TeR@&I7fX8_*V@)j z%X+2|dlqM(W!5^a^$j(;FpZ77&Im7IgwM0L+} z%VkxIhhJ0Q*RF7^mAkJ^t)N+u9RqKQ)<5rMk{(c3T~W(zRL-boC0!JENRY7blQRv) z8Apn8JQca?)Hjz4q@JdFU&h;==A3Qv`GK0h98>h&qMCh8Ip-Ec5`4cb2lxL`Kl@63 z-9v}^QID%147WUx3Ej+Ge^cjN8)M5e?PE1iaKPKYTG{#nd^Bg8#iTBfWzChS4C ze^|D^(IvmG%>3q;pf)t9b>63Q#a1VXv0A?N-Df7Fg&K z_Hj~?yEL*Z)pI%^g^G>XiVZrV6kDwn{a7ctLdE|8>F_Hg?V!q*yUaBYHL`AFJ@Wf5eJ$y`U&&>iym1mxYveN?C~WD3eHrj$siCJB2_=jb*9EzmtSyiA+fa|& zC@uLGCg7+-bTK)k2;;O{Tqlz38OM!2K(<>YZ4`+&3Bnq9;LL-8Vk%{xCZ*#mZSK#< zG$UJvQi8IDEF2v^^&wq=Z2k9b3KM=#hKllwd+MqOTI`(UItH>*{VANoETwU zFN}_zFe_Ne<1{_~kpwqS(W5}zeZLedNLtH`>Y1Y!xJlX~4sV^r6Y3^Wc#|lcVW^Z% zELJZDdSfvTIkMh4M8`xh{P0s<@GLK3l`sVFD`}KWGYdd4WKoK`jGC>eqKz2C7NcP= z$}$BI5Fpku3=6EP9ikmVbvl66-h|g#N72cIZY&V1Ftd^*Q}84jj-ZC%b%ZPuxd-cL zr@Ez&^}?AZg7*+3+cUsp&kdH=2ofgPNB~wH#}S}vh>(qC={5)-MUZK)>Y2r`%SSjl zLYzFT_GWp#^^y!o_7RDQ$wtm>`Dx#5r5#&3Egi7BeEY3v0R~GTP9PMbPy}q-}+iVo17Kvg{B6 zye7gYE+i<7&`bq-QMvomFx(ce8nn_htKF9l$`i~Mycsoo{MGHeTb_sqTuFCPdWfeU zQZ^-U73KSmg5MkQum|AzzitOUewHq{VX?|V2;N;-KMv03U^juG+sgu82F(0|3Vf2V zgHRWgRTCm8@yUXc2a^U2wK3v+5+DL$H$ezoFTbjU@5Y>9*}PZEs+wJaEp-$~Qbo&yz zusGOpCEkj@>$6?Rt2>5KZ`u+K0E&#JS$5> zoi{fG?zO>d=2Wrvw~8JAhUE7lyFVi*heR$9Ay>X24+anj+g|KPj`kxvJ|P=gMYnY+ z77Sgydwlq5F8b-f#Lrj#voJh|J=8d8@_{>h(gMve`OQedFtWBxvf-=vZxlJ)Epudq z6X<^@ko)J)IMmB7PmfQa6LX783otC7>DuP2uI3huJNJ`6f1Gq(l}Q(gboh%qD#}i=H`Z9Uq9!k#7*9U6nsZ^ z)d_F9h08h&ZydaNybohn%p}V96sYgt_;PQrv|2?^l|EF#T=?;CP;BWuSlL6f> z_wNER{C|(!{}DDrbVC zqAZmnr64b+K<1a1hb1IW5g?L8$nw%uB^;GTQesFb;-&DSP!}8WV9>Q5jp#);kIb$4 zIlgLm(&yWB#f7VZ< zUR8CjdHdDOJ%s68(*sqZO|vG?zC&wjSmTWUyGfs>3BNZZmUliG-FRm)2o~b*!D}DO}ClrZfWg#;dFIa2dMJNZg zpMFeZ<5lI2x1pklvA&X=UZR>-q`IaY>X1mu#hmqJI_s}0q+C!~c@t_wjV?6X-XGu= zedLx6$=~{{e{aNaewC^3pFZs=d0VjcKkSv2B!ZOQc9 ztZYh+d10T@-j`4x!#&vnU@q|ITbA{h9eQW5{-Ih*5h?dRYvVm?;wflOWJev4a>`W* zKL!R5z4N11*QTwmPZ|{U+g|%=arU#?KQE-Cu0T9fbo32%0)7m-m`8RZK~sD*HRP8ASnqj7FzrzM$C0q&K}aJ zO961^DdAh8MM&pZmqF2l@##_R{P*IK=Vd($$>#ZB?UwT@kaj+bal9(+TdTG4r&R1m zLeiMLMF~zjO2$5ivF)w;#eVjwZk_#o^0Bw@9@|w`KQ+#6gtyP?@epqHVIlWSt0&VY zMZH=Fo6Ju2vG=wqZhxzoTLaNlvd0mv^m?5goe(m`B$tt+i!?K?kXD`7D}HO3->M#V z62|pbce~X0KULmc?bf(x*D&GwX2QF5nR9PYG4+N<`YodypY7^L?Rpke(l3hG?smC4 zL)-p_wYd^8jMJ^}H5fsy@69WuKhR0L1M^{O$|*tHfAGGAl!Qxo=MxHvSM(a@ow`x2 zli#r(rNpe~0rwZQFAs9Iy{B%ir1+9WdN^u7~KhOAmnP(Th zWUeVUe)3iKWIZ$Qu3%6eW8-bV+G&Fm9gx{Hzu2$7^QGB^Zu?u`@t!*YALQ9SgSnfNF8ei_yc{pia z*eq?4ON}|Ea=ttQIL3T=dUu$Yzp7(k;k4!K0D3|ZKrgdVfF z`BV47oZj6j;@M7>(mwl}Bcj&3g#Avi3);wuH))&e&1+F^$)LvVKD%y|alI9>T??8Y zZ@Yq*+DN)X*wR7GDkFsMl8rj2cWlzE1U25*A#AY(3qwMA=!VPBSv}h`8Dj%sNVSz zQev67e<1`Yh{0!ol`3tKBJC2Z9C#RSpDSmbuHclc;1~zDIO`M%!z8R>xU6}I2*ZMD z8>14pO~gJPYXsgH4;ZR& zM%q3_H|{8XZ42IdJw_Ao@&R~J<4gERm!VEybI-5RH*nAitEM-7La&29Y?s z^=gr)IXO4fv(C|iHp*M4${ECoaKhkC6gJ(-iM(u=bXI`ofDphQV~Nl_py^di#X*8) zA){(SP&JjJ8_Fu1A#76&CtQpkCdG=tsl{T{eMH#S2p}Bk`k+E3FkF5qLxkx=$+>EF zxu3T0ofJ1qj2>IXUs2ww16@PzySlPG}O9y)nfDDi-y4ge9GFWAwbb z!vo8JQ3aiuKz}d7ow*-Bu4UaxQQg1RFL2)pCEx(>9Y%Ieh;RFW-SCNj+b3lGXJqwv zft+vjeXZeT_pY}W4Ne|IXO5w>PZs9C|BaXO@}@wXT!Ml7qkJEA{FX<^@ey#O2oyDn z!oKOwfb^CHd|}xJ6I$!FUEg5b&vV%?OrmoW&{m304xP-ZzM4@TmzwP6%ZU^ZO=5|>BrQ5;Z&Xeveby&P% zJA;j3vY{_khRp?wJ6L7@KXf|@EbjlSZU?Ij4BL6q-N_GhJB-{JUZFIPV9@QV{xK?k zF$}K=rcbPTaEfYhqDE9YELEOcW~Fv~HngU~;9VmzhwU3f)H1;-Yk*Zo&BBUhY@w*G z4O$&Km_WDVfG6{Bk1B|E-jM;7BBIPzaS6h4Eag-L@4F^W7tg(@Jg0B49o1hNQ$j3HCO&L@T^BQ%1DyaYm440|!^+<-=Yp5HS) zmpA!q+w@%6*nI3ql(^!m+4fr`13Ma(EKiqbDXUNv@v?ZT03H$?%1oP3wu7UwqrJMh z1(C^Bipes)`aJFBkHp%6kXK)$Uww{v@j2vKS73El#H(*HZ%0C34hGbI1&Qwb>{~$H zaA3`MpPGM#apP#vtKsB#6Cw9{%`exbc8?yIM^De92ft3_v<dvySis=WzT5# zBAPRcI-R6dZzXD!Qn3s2iH2n^5Uk-Rb>(e^r`+hp8eI6t|SY`^!5S~m!yJ@VsX@cS9-M?D@7`t5IbJ5_#(Ze0v{J!yXZz0HkQ z^WxVAH{J)l{H1^CtwmX<%cF0=sC0ZW3L#&I<2BS(XKCw7>6`9y0E>72Gy71xN`4z_ z<5Q)T(EW7MaPuww9o3qfYYcZcC});wth=g_S4qpM0zjYMKlgPvl(BQl;Xa?=Uen9X zF3(2wE`5ReNR8){7B#cbTqB=XX?(m%Z*Q$e-d)9vE6lYO%uNrq3f^#v#}x9~bPtZ0 zUYOT9+#`~F&FR)JqpL%NRTcEzEmGSXwXY92mJe&>K9})517;XvO0jO_H9Gq~sim6T)5n1jku`zZlC zp}~n(os)f}j4Skn!_-=v7g;Gc zz&(qLKFUfu&RKIwam8gy##LGt1RD#9ZoAaCKh(L_WnA%9|3W*oVlk6TO%kusH{7Og zxDUOt>>c;%>r1ICFDN7&S57~smU%;Kccbp{?-oVVrssd)z%4l|XQjkzYAIz9qws2< z^Z1EsWfmjmx!fHuCBx6sS6u)%i~h3~!>L8N-F1ljemLfk4BkyjIwk9KloonP*rNdF zdrrNe)@%wjXhQY(4>7%-Nkl%-+*Z%MGD**EmD^ZPw%n?gcw2Q{mvZhW#Z{HWxO@2E zQoQFriswqKd5|bKP+T_-Z?j7CVvEv^x4K2mRIiJai0f7jqaFjxwl}*3SfLV0$BZtu zLy?wC(}Zs~s$Kelm3`l+e!%c*o7%xw0+Bn&*;o8(CpC|^s9ksqhcduX(K*v$S@BIi zBwsuKo@d*nbJvVLSlpq=^-42!Te)A;TyQrE8*1O)Wsf%l%&0vf-OIjxzlpACiffKo zH_bqHUghpjo5B`3mz`!iAG$s0_imZDul^2ZIoo%rL*sDZhXLp3JrXOf>aKmMmQ*1h ze@4tAO-eNi@4C&tdRn(~T>bJ_{PtQf7ZGwE6Fp8Tt$sk*+5iAa#hmBHm8i<`LFGrI zZm`FH^&8S3(zY9Emf4ix6FR5I7^Occ>z-&Pmn$SyC>{N#dk3{G=@YX_l@8r2>6s>% ze8{wB#uEM(&3}#!DYe|x%qVTb#mn z%H}%xfV1pF4N!??aA|^>`A9C}EH0=J&Oz8IMHusB0Vpld%ViHb^+$mt6DyHK>G<62iE~(=oV-x@jpe`h4!<^ zhQP3$Zkt~g7*H&_O*Kl@JNP6W++pkaw+NGEHLOuQoDeSUbz#)2AzNAHl zl-W8?$VEkuEeL!;MO#57Q!%;`Uc;WC=73SOA{x63DmV%&IEd5iuxj3tnqI=1UUJ5n za=8^4k8M)SKsg0xMBY)@G=&|1M%Z$bkV={)J5fR<7-2dHa9qR<{RG&4e2PAT1Oq-f zT|`7poZ?8)3qmMd07W870U}HepMp9tJrJCsC@UDJlSMMzCZ(B&sKrTJY*utRL32GT zteGpQ5`)$Bp%}VJ8GFGO6y?MNR9^_8YaK7wZ0_->?bHZ8pu4G3I<*+F%s`av1QqlV z1p{GCS4G#&2qRWdF)Tacos@XNn0!bF;txTco!@s z^9$1pi!iSJ59z*y&H*`P;`@mJMT@L0NEs?vIgOx8O7qivI69`{ z9-HGY9T$YD`=xJTNh`K^(^^h%pIn^(0dje6ewJqrpGV=MeXX4=-Z+@&JhI2F{e0Y| z(!AW#WAP=I{H{GrdUStR^RIcpH4tm61wrOeM0Ee4`k;HWXpZw*$LUNf28)#BImy-C8w9Ts!qPR2oK1ErvLdhhyI#^ zBBrIGC;L+_yQt?TM5yPVqwc;dy8X4p_BO#h*fn$@|1@Ft)fyH(O?%$b(sdpkyMdye zldwhOMM?*L{Q870{Tv@@dXnvyTUOZl{MGFcO_fq&fNuXcl&S&#c98CW=k0%W`~Ta#on&kYxzxY9oi}W^aDrhw z_+r+~}3+k!f1dt2nWl?1+`npsF07qZgBj z(=Zh!(!eUiwRcoAvjn+LWU@&h+Ci%;D&y&@au71$PC*o>D2bDklEX>k@G>}(B#@@0@WQerM4HGC zfFpiEgg|q7)~8cH=GHa1WpZr$!pyO`nS_~zjV8w*9ECsq8LdTMFm+BQ%t$*)JEAc$Ju6J6I8+we8~d3SJ4H%#55 zUk?XA|K|7fOJMCcmlxka8^<(^1l08V)(`qN3y*@-r&vbDMKQMN^;ckA;T6u+?c1|_*0t|#z*F84c^@_Xkp4N^#iW}~z?rH#F z2s`%*ty4HTTtR7T9_tEJ7ltnYDdwUSF28M@U+LU%HA9zmNS_RQp zt$!Zr6}-{A(4~3qr`pyoxy&Y=l4y_pVIjG1lsf+UrVHQjcq1Ww5jC*)&KFxHkRuBl|M zenN=6L5;gA7gj)yKO`StNJ}lkt++-@E7n}e3#F>Ay{)n18EZp@bYwmu;2?mH6gJ<& zCLMzwA8J|=E#nF;xdbjIDZ5N*(>?l@O65)W)i>YQ*lW69=8_EDT zNjl-XP}MgNX0wP^xQNF#uaY*G3DkTV4IV+f_`C$f7{Bf%!{P?*qmN^I(BMzYel1f$eW=5e zPpt4=QSg~Bi%j24&Oc|JTjmUpx3EgO%y!jE`0X((X?A=zlBZx)&6vBor8J^m#1T*9{&*Z6C~|6>y}J-d_k=*4pBqOAlYqv zea!OFyk35_kUsR-1}QnkDFtm-Kh?x)oHp)6>HFUbxfLkHmoPG}2zzW2waXF-*rs!- z&8+UX(v1PQdRBc)s>kZB%ZG$klv6!VPyp|L;e*bFQA% zb}-3+RYuw<2uALZQ-FCp*36k;9*H%Ifm&EG!!S9sRZ@nj3T|nThJbGsQ6mpgb324# zCd`P`&l|w3tP{&Bm5V;l&UwVzT!#rhCTx+)r(z4{5X3xFaeXynvrlJFC41L(X{&66 z?t#^H#M&gNhyEjD87FQOf-wk&IW|D!W%L7O;|n#`-j<>sf?T6zJqDP@hSfP?@o&*P88o=8v_?4XzimM*ON107TJ8Lem4wb(B%}rx-`bXoMnIZA4Pf^nNexWjlWLR&dS> zaeWcZ5QOH2XW3#{Cj81~@+P5J;{-8{L`9R06uk^FMSEd_Dk35U6-kJQs6fO{;VBe( zJ&oL2#NYa5&(W?tn7|7*0=RE^4k|DIox1b%`|>&Z zUW_4))0j^Sd?TnZ#8d}R$}lR`iXz1ykkT>ntNmeiMoky^E-NW35}g!u8i^(=7UX zV)n1xMxpI=inr_eK0W$){QZHsx4G!YJoM`}bYML?bLcl(HjdW*LO;x*qY$2j>pTti zc%D&dei5A+0U*o2ejflT&d*KNtkkiLUL|tu3*W(JWbG}{#*dUgP$S!h92!JU4|=%x zUkl(a)ZBpA3on0cY4+C)JO_9;zoYN3x9*6%ndQ`wZdH}e0aF!*`D}qPU;ZwM-Fu(8=i{fl_O3e z!0ZSAzhG>(_yj8aUn%u9Y*fj@vA|%YeZ#e#jIu~Z!lZ2Nx{HD2uD@o8gT3!=!V8T=#2sc6g%94T>pDV zf(WB>MF}zylB$v_x)_d;w5AqAN1v%{t7POw)%B2KnuscJuykE%rmi$Y56du;q8Z6^ ztQ5JnRIa0nsh_-oH&)Mw;+z8YAENqk@OPa-bVhpL@2GER&iL%v*{O5Cm#@xFCCpC8 z52NM}e}F(mludX)BLoI?%wZ^GISNBUK?%VzG#q2NZh=fgJEoxtS=|WW>ORc_vF}DB zp7#a4>`7_t0djlX>;9NmJhx1E{Xp>Z0l(^guZN$l9=1g{k0m$#3VGJ&`@BE2X)K~~ zH1fq@T*qQyO}|Ednfvv+&HZz`$IyZ)^u!#RJN$d|&)=JVEv^2s9NjfzbpA0hCXei! zq-z8K2Ys9Kx8uH{pt>WPXQJBYy*egcZ+(N-B%i8b?`LE1FSyU!nUHrgj<-HWzL||~ zT?lEK3~ZSQ>zECE^ULGupkK|;(06mzFGrm}ECzm9j(9zu-Hm2^K&`I6bGZ2-ux`|& zcG$UQDER&FkmfnJCj-V;TO989+TQJUc=$Q&{ai%*JdEW-8b-Yy^|+OFS(mn{9IkPz z{^?RX=3F;v`rx~D&6wfoSD5S)qvH2^#hvUE%^JsB^p1CGA8v&KH6{6i#_CdllPhOd za(6Uxb^w_1mh$e~Ffvlke`|TJkGAF(F8-v}=1M}w74?%(Bfp_Gug5h@K6A@|n!R2I z)Fd~z8tC*!MJ>!DFBSLI5dW#<9D1X&w@!I~y~dI6T3g8Y2&=uV2e zz}@^rcTX)dr%XNbibC)K`Q+m&85eZdT%$&wmW#Yd-S9&3P!Hq6xbd}dTxteUW>pv; zX*N9Yf}C_rDeSmh%rR2xN$#492CFVm6OPIxoP@Zp(yB6i+6DR5S1Fmd6yU63O&Pd| zfvHYPJ1?7hjk)oS`j(H}0|V?Med>FgnXB)rcpr!AC4ggaa$ZnL=X zP(faE)#>sF+w0xji*1loh6W;|>T$0(sC8){byb;m-Xo(U?<^`uxz!W)mBWmrlcbd= z3`<+#umEDSeyylu%cN8NfP3d3^`lLUw0o@d`>^%%>qpIBeHL)tLy0&?OS;BQD`TWz z#v5gFPrfpPZ{4ELGO4AMX9y+!mmW%6I76e&TA2ue+YY@hW$ic z7f^G6$&8><8RfbM--HjNfnBrov|>?}DEXbY{95N_z1Q16=?v;$uz1yPR{Sb<2sJ5g zl}WxL<(^CO++ln08EfN1y=z@6J6{M+U{KQ8!w{LMZ6 z#HzSHzGvB^Y1H%eNWiBh+b2Dol;ep*XwbkP^{@>l`>(ow{0$vp)-{v%2VauY&s#tE z0+V*1_GO2cleTA@O>0Konr8xge%rqpQn}XT@NANLxCu-_KqcZ=2o~qYIk!xJaozpn zpMcsK)sycq&WB`mH)yQ8udwHd+RCf+)#X~(zJ)ZSp6!c})`!P(YnX&MGtDVW#O@!B z6JL!7W1^3)5y5!)F!7ag9_!A!W}4=gy^&LDcE_hy=iG z(r!ryo)PjtPTK#%X%MygiaNGWN4L#bcT8JUeDZv=L^<4`5?+iCxoB~1OuuAY1Bm@G z7v=pA%6aXe2JaEl4ucq}$<`iP$`gFVHA>VqM&vbuS0T}Br?|~Ztp5fn`vf5+J2BNj z2w4+jPeCXZukR*f=nMY#|I+Os-DONcG=>ljjVt8z)6sl$yQO#ScG6e<~k!%@(3a!tYD?R;yhxWftapFI4gv;GBKKKamL$)_3{v{ zH3%zNPCEt1b|GmR!Kpf;pocYx!f?V6q9;POmS%+uD_A2~8LWb?6rLl5w-P7mi{Kc- z0E)yJBLo)_Mkq!-LRcdOtDQmAU(KfwfRNlI*#QvQ7T5KXqz5P(c!{&Dc!pBEp>k3Q z5|oMvNb*qQLPR05xty9ahOQ@0(~w{piYnV8EE^#ef2#Qgib*b(9W0?_%qNcH;noEO z`Q7Qfb(Wv1EpxpaDN@#-!g zv(O;E;z{JjBB5p)shAQh8bHqX3hbE&Z-&6ZVdUT}-=1O7({q&5U*q&Gx+?Pj&$@jP z?JHjG>ZL2N?;~<%L8NR5X+d$L%a}QyQ6Kw#5YaUk<&%=5sUgC^mcdF20^${ zEUcoAkg7hodO)HGiUIo)fqE?YuU|yaCArz(NYz*5pdOrII6rZ+BQ2j z2>S*Am-Fm8OS}sRy`elo&bykh5n5P+6Ah?0h2L0OM!{7BpNHRt3lG06FVD~MJo^7K z*}izBd);B5jHzl;w)T533lHl9M?99`%*^=Ing656qd4$q(?%TvE6 zehtj`zn$r7`qkHq{&^9B-`19e;A9+Jx1 zB|44@-v$3qpL9l1mIwVuYyHBHo_9}gc0Ie@SAYNQ)3VNn%HCJ^A(zV2?T6ZUx;=6$ z&)+UC`QPYo7sko|A9XuOVqP@$U!Tn1TqAm-*Tz{B4v2~cA}95$;cXX zJLFRT@?-!4`M>FQ5bertAxxj}|J3bF-)NPfB<+~h+R^FSu`9Kr(l}8obQ9O;CS>a* zWE-VzP+hszHhYhTy}tyJ3B9PQ=9WZF4rpUg>7dyEE*Q3hfQQe((zZ0$vvDG7n@VXL zN~*C{bPYLXZmQOy%68%MranYdPqLK{-olGu;YYO&RkDc^w@k;{Wy(0N2LrG?w9m&B z>m6vZyZi$Rz7-O7?0)wC*gRS=fnNQM)=kepnMR*1%*M}7dVKqB*^P$&Kuz)rab~U< zwha*PWoRU6yqvI%7$So+c8{E`x^MNYi0A-_}5>c zcPY7PDC*_6u)1&IFNXu44LINV==Sn+#GCI)jYILT2YIIVx`Dvw{jv2!uJuD<^+P5{ z?qgGS>z};6bqw7#y0Gi>=+1%p!&B&iSv2+2So+7`Tl-O?ou#bAtp=`6cturlORu1= zNzWgsPs3NgaP;+UKJ?=MuV? z!kQ-iYJUXQj`+OzW!*Y!+BWCfFdp%IbX5nM+%#)&^a(UV`ab*N^?by+X4v=5wEycV z_v%5%yS?_H+bg>ro_q;yn-6K5g@Jrv!w;_~pM&oX*p{@hkJkCVnsa+O=l*)Z?7^^Y z^%&>WYtETBJ}+juC7rC3?^F)IQ9smZe)^Nq(Pq-h64lIWq=XWc4bRO__3IZlYvn&t zEqKT{@Pb{~X@0(6ZS!MV=2hL@)s*aV<6G~;f1*0o{j7`KdN+UBy+vW5XSlvv?P!hF z^)8P`zYMQ^k;{LfcBY+q;Fa}-E{%Ny+^uif=bNqCmJILyP%LQUUjC`HvylXCOg^=e}S$hqRDmZIyE2f@jWR$9`zQ}{2; z_sHuiIXmC0uWy5c35~*jt;3zrRLhOK1Wh-Rt1jywY}3ts36oN-J4MdnF0d{$QZJhvX$Wse?b?4kR1e{!^Ce^Rt#0;cZmXfM zs|tsbg3kHCreDq-C}Z1m&boSoyw`e1Tikk3oqKPwX1nQOrMT2v?Cmf0OZq6Dg&JF) zllQ%5X1~^Ta9wpdKb(*Kzq%1ev9(<>}y-qIulJ&t_ z*wIh}&QMZ|397;3mTM$KOBrixnCq@kPky#7nM7>&VeB>;ti7SSuZ~#$#c%?RKv6q% ziPJI2pK{UWQg_rS8qz%n-MCE4-5ST516omG%WUwgz{cO^?WBF#$FxBdxUA6N#`M`D zp&73bu$!82$@|HKIqU?FH9|PWqicbhebT?GE4CL6X{O$RETK#CH>y38_J&U$A zeGX6hTpGvBpY$q59tiA3eZT)viO%EfEq435?Dk;Ts~TzYF+)GS0SZ9qneNUq|G8#MHx`KK?RpA2#oriTaG1zL;VL z9EXIUOvC}1JQz5i!6zQ!lz;SjyBzd-#-Vw_qaSsA{)?P&l;E5r=&+S@@UzjvoO%1S zV&N<6dqXx)7xXTTgq08QS^6sJBuaR$5D(tTa4%r{?R2?cn}oN>x%f zR@8MAA<_(~cF5bPo)%>qS@d^N(>Fjrm__sGWuol#qTQ_gog z#U)e8Eeq?iMj`sCO5#I>pfl{)^O6qR!~nSycuLCbAB=vcoK7lPH=d8-C1jXrkaNd4 z?~Rb#Wnte_w2+%nREkKM$uX^=+yp}d3Jq3Jk_m%%)18&N+uumKUBcL$C-`2M4KJtq zoKW^SjA2604vSAv3@Czv6b;D9N*Jd}8|EPD0aTM5oJKI8ydol?D1~JsOfQ6Dis03; zO6FK4PXy;Fq~Ix`>@KCVT9g$l!3afg_OiSgdlc3nSkxd$N-JJk-58N0Apqkb>X8YN zh$Iuph(Je_0NfkLg{bQ;qOLEastJKm0VN|bH6s{fE`GlB8$D+m}yF`~GLw3vV( z7OIQhbs%#~j3+QRUL=%ug=@*&K79n88{kd*qBwH_ysHq^ zN5%xIwe*FxjVRXk0*Y#g7y*$2z>bKxxgU~r9@+9vn3J_PWY--#fT~PVnaK z|L!&5E5MoupUE=%^YKn^2PK*8=gKFR!BURwXhY7`2^6*>O>;1N$DO+l-B<)AEnwnd z394d1hy>~mjz(u$h)5_SGAg3-8X|%?DF9IlK*uT{LZM3bzT-oe6z5T-aSXHX8*+RK zxiDb4K7W%9^@N*j!|9FFKgMSPX#-E@U#Y&l1kZ-|%$Alwl>eDW;g{clH(%!I^`+TA zf5v#vc?MiP@cb9SEVB%spM%aQ-o;-=yUzry^f4FN^9DKc5!wA%AmbA9^@r#jDm1?! zbp92xsTX^+-+1Ge16HJ`DSBUC*Urz3@?xz^5S9J*XRdo;etZ@-0q6v8d$6#uJPThR zog1G)e~h4CzRdi1Gu{7gy02?_1f+f!IyEpiGKMbyfNz1u+lR{nl&Gp%~ksZ~1QQHK)v;LcTGB|l*f&vs3Nh&a4!Ou1DSYT2Ow>(ITGL$Z<%c^Mb zmYS9voAa074jf28xc|L{$R{)+@j94vjEQ=t(3%P(cks6pO?iuI?V)Jn3G45?9sKRk zm&$MrWVnYYdxj}{N3eV%S-w&1z&MStByLn16^c`%(ztP}^kP?mbk~Sp!A{E5Sg}qe zVGB2Hi%whyf+I84G`Q^l!P;9#MY*?a{}(-Uch^uucXxNUq=49BA!4Ekf(U|2E24s+ zh=i1MNSAbXDM*8L{m$9`-uvC_S?hWKx@TRE;@(SUhCz?-aUSRAkYZtGr|00|V&>vz z=jDM%%fd-Y&rC?q1ZtT^P*_UaMBl*^?pefSnMGxQgu^T@$0e)EEu+aPtH~~}%P6Bw zC#%b*Va29pgOSmvP&FpPsdH;tajIA{D%r4_1q%koupNuzJN1a(HOw^T^~3J@?AfjK zsnw^`tC{QjksEtA);2E8t=!)Eb9)0FQQ4{OcAwd93p;#UFW2_ zlfSBkzKE;}*3il=x74qHA*gTFvt`P^cQLSe)UkBby?)NKb=kFL&Zz~TY`3YNHTf_G zaeDWr)gx^yzCEix-7D@bi_Ue6PBqI0)n7HA_j2DXR7q)6xnF2o(sgR>@Z|hA*m4c{ zvK}&bXw^8tot9_SK5gGL#~AiZ*zu&OiZvl4R^dwIl^xV^Xx*x1DRAVsP1%4}Znu8v zoKE>1ICVz`cAab2Bx4(lYd77#{BrHz^z7X_I)s{6EtxmYTX!z_wSV^=*mG)M^=|*_ z-TuvI@V7_z55ee4t+W=4_oL&7K_49jEd&X^S++dZ~3kFan-&L>I4E?&qnQ_>@a(k_Aj zR6nV00_z)mq_* zHi?G=9MK(;xeF?lI}%W3b?O;kP=Z&SCDP~RlSetuy@TV4^!-|p>%v#+Rqqa{z52#`zlrSJONEp!;d}M4HcJO6 z$cN=(r%SNMa->6YxI$8Kk1N&R4w9dJB?2aVa;MaT29;YCG{)EIjBh}vs_>l(XfFb0 zDSO}>zB2`E7Yo@UswI*~a1RDKPF9K^j}{Eh<-5=z5!EMpz1#H3Pt}+uo?D-wvI>Uo%$~Gd78ue3P$HF=ytK_DzQ6dwtcA0AnMt_XVJ8ejUNCIsOZCXhNtzQ zZ`B?*5$j$TJN;53tJUn&q;B0jiCYXdzFj1BR4AfZJZhTQ@fod{v#jk^j^IL4+jNLS z(-_>q2Bov=g|H|eRXm%?<@H$hawSt(t!7j&Z%8pVypqr{8Jc7TPFI613^NgG=TK&o zASyXKVYln9ALg|`Zei{=J9MB&M^L`&@43w$F`GWLYTtC8K|QK>V4^{P^qSrHp=Hl6 zGSdjn=5H<&kUHBl`Z(*lf*Ka~i<~H7)4R@=9@aB0hjxxG90U#j!a^ZJ)@Q4xuX;6W>J`%-qg!SrV}jvnN9VUstfL%0kpdT= z*$(a-H_gCNT{5nQ+xNM8Tr03!T~<&q-VHN)0cL9h-`BnSUVZx#S@lOoP_ei+4xd8d zOV1EGQMu3*wSix-2J1AuX9{hq4eN}$54b&EiJmS8E1Np-9e>gnnGfHzKJ6HO*$$dO zefxfCv@8p`Mz9-Pz$k>sohw)Uj7q-V=DOD{U%6}3bfBKv>R2^LE9-^R@}tr@#T=AL z?VrxDsgI+O_Q7F>YFR>D#j# z{3%(xEL*;!U9`-5vYgHQHiKa}oyl1yNuwAZNLKpkVPK-+@tACT!=?V_Z zM|?Jb6Tb?Zzba>Q5MF0a<4C1DUxe>YGI)RDu*zpPK1%}`c%wV4x_8MnPq3SZa+}{F zS3Sw1=|`t=l-(*+;7E+H-y>SnD~tx`Sq;xqs<;tJJ3uHMI512)M~P%?31ux^?md%_ z?$Ci!PW@ZNei1xJBH4J331jU@*|iX}V-gpyGg*2N^4XHG+A-j4Xk>H<1(g}4>{+BN zI5Zp(5ltE;6Al$qVg(oOlW!QTABi2yg*l_>nM~0W0AC6vP&>)*5F;AV%XMuK@hlb$ zEM_r|r_qXGwR*zol*nUs4^h2LVB$w0sX(t8BH{IkSSLl`cnz)DTT$mC8u>d^O#J)` z>J;qE7&b*_Y6*l#n*CC~O!fl9^-dPu91h%brobMKo3&V*D?}I(3?VfGF~Wl{#>5~z zlH{^h+-hEQYW|2|AR_fZ!Z8csQ3S`5iVQ=_#7N8{LMvcQ#brjvWkkoVk1)Z~t0|3? zE|rWExl{lm=uC<=rIR+G#u?JcJ3;{#M$8PM5<)N>45Df<0w82l$Ma+;X^1%mu_i9; zM(#v%CWxRanXnSAkUSf&9J{C~lc)~~_fdq!jgr%h28?|`u@Dne0Nv0`o95>q1o9q* z%SiEolGBrCdQ9_^z5h7B%aD_X$OY&}^bbDX4zhg}evH1kX~`pWJDoHOB})H=Z2w?H ze~`sR5i;-)VmJ{Qbwom*6X+|@;!4HHz%5Kh%|=Se!N?;=!XiV&u1KR~jc_QE3u!aU znBhZ5l-wlboMaG6(R8QtOv0~Emi(Z7RCZ589Q|6o{^QTm*vBjCB9sZA>C+C8+AZoY zC`sltQ6`E+?_7^LkA4sNiKg$bXF$^9=WfhwX;^V?{?8rAmcwI*U=Iun;Bmtf_@|0# zWpp^+b}-%eL)lH6%zV1!AtduF`Rzfjyk%q_WnA5+U}0fn;3g2(q*7ENqohM9*=hL{ zNti?c0!c*0Ld5~w0a!vpXjUa4AcEyyVuX=HH2s+n`hyVtBiO%>yahPS0+N0xnmDWP z9pft}8zoAW=x5sV>Jhp)hVJeD-rD^IY8lk~5Bxa-e0RK{2YTbL74&fO=T`5|TJ!Sy zr@gU)<wJKxb?yXfBP&(#@peSUwe2VETA z9PeD~ssGv4fVNbx_Z5Hdf4#p{wmn&P(Di(^HoPXuru4k-{QeHQ*Ia*1-osm&^-&4( zU>-SBN_93K;Spg)i0Q6AK-N(5qHk39#;F4zp0~t)8*N`1X{~yjURV68y6{Eq`xlMx zUw)}BdKYHnax8%0-Z-~X=xXo&yO?d0sd|3kNfbO*BHzjZqtfkC(bCnp1<{jY9kmsRGJ z2hgG_h;}vwb!bgxRnlfv)?-oC|Et^oO85Vv+xg911TEcQFZHi(7j^U%cMFj8JjUxD zDC}_zLNXAQk?}b#<#$FRFht_`Me(E8Wl!8t3cP@@aIp$t#U-Sv;ml6U0P_Nbk{;hU zz`zPy)wJSLSbbv-Wp!p@99Bh}TUv=tT$WE>4T@F;Rkg7idVKOaJPJBkO$#|ocV(xe zs_w_-oPq>R-NAV0(zchi2^2Q)hL0rLMnvb(h z-hVRuP%D}ETIy-8%(Hx>vL=HMZM2~o@=rSTvu3m(bm}~8*G}xPcrh+}yMo=}s*<&r zmbRvdf(DJ0x<*`vMNPk3({w=Z*Py}ml+`G4Ist3sDW$HDa0*!DRR_$W{?lmi)Gt_rHTyVWTD1ZOrhWG& zSnJ@lD?aHot>1>Yi*xUWN6+Swt^?DG1&59e$Nn|9hE?CeL+7q_&$d;!&#M5F^c+B? zQ`_~kI;~5lTv|4)8dj}8Z z%T@A4C)Bn&bnH2H?wi(sg|h=p?Twl@J%>=ks&AsHUD!vhlF8lJxX)r)U6S#i#V=Ni zovanU&?Xf^@1a9Q+Gr|Rn&<+2UQyjji6G1YuX^(+Y{4)MheY31$8#E-EB z7gE?f77fkEM%Ll?OmA0H9C;vdJWN1p(UT{yZ<_w9sYMz=^r9sl_n(Wp*P>3Lt zlqPuMmB7`H+~MVH$8*F_zL7bdCmUL$c&8b66$*U{c+b|WW$p?*UKM+`A(T3;o4d++ z;k|5BjdV-{_suF?OrJ`^lw|4z%biaG@ik^e^D>EDz?R27Y*9+<;0?&-49sE-NM<{q zDgLlRDYKpC(i_vaOA4aNa0k6rzSAKYTBq@3R3fgM>F9k{xBKFOFWFDL$3=IDpDGZ!ly3wC z^8O$Ag!7#i+sYrH+i{s~nt5XYBnMEZW!0+m{VIX;@01eyRdQ!F8kZebeyet_3Asel znq4(4o|TNLmbzaBsTt<%YyhXw(_nev3Zps|R7f?D7gS=Y>| zm5p+pd8YY#T>i~0HnN@lY6pE_F14&Pug)n}-*+r7uNV!^F&p2OIGIJH9!#nhBpCdd z>&PRldj_LxCWApXxy1{es4;HO5)8<^6Q7mhrnrv1W3fEXV|E&L{aCFoC`Nz8##E68 zB*KO@p-BXydVx;z8olXLi+)t{^M*|JghX63`-xlbi>U1vl+q?jzhldJ@{h}xJ^PmL zuB)hV=^$@VKAZ6!UajN2Rx!-y-l)GFSB+_uO{_H@`tCS+z!{S2{At;K7Im1|_n-aY z-M!BnQ3&hauD!c31v777_Z;7}ubvmZ_1tsvTkzT+$&gf)=nCgi)TCj-Y~VZWvq**% zXgzFGdN=I4h-#HjX{2^IPyetQ+IQ?baBg20OsTMJ{>E~-n8&-2D=-ORkkY;T+Hf3& zHCW5u4bbhTZTnQ3kun!5RiZituT)7r9WZSDqtz~#WOLU99&`zRSkNh7g*cpD%>t|DNk&y?*iIEX_Zl|D6(c^e`lquVf6I2M zmi2aSEyv=5Lj#ATyUdNF{R)xjzi9qNO+l4mHOKr-xhH<_nEc%gvXQ4F;VGm4TFgQiP zYsIJ&O6HWzbhe5&xRgOZmeJq@qv2^TlSodZD5z(mH$2H{9!8}RKrL@iuIR>X7cSzP zDCC_8x}8S*IHOJgm(ej|DF8*fP%C*-D|=8VIw68u7$qyF)A<%PtKhU_A6Ljl7So%= zBO=xaqY|C@IVuB3L`a@q#D-JMlNo10i_;|+(xQ^IA{0@_$Q#foTY{3Ol+|P~4N|;T zL1Y{)bSwupR+v3w`TXN4OfFOFT>wa|e9WN2<5h+ejco33$kijMG-Daep3s}e3RyoT zGfpB_380p?2^-It7O^2?rN~2oN!vC`1;E#ZHkO zZ>0$8U@$Ia(tam;eM~m81c5j=LJe6OJn|o$+%<%^gUt5L8IbMA!9=$W`N;QrorM! z1=L7IonSi^;q)Nlwjg4_k|FN)B! zkzlw93F&BPIH-UXLjcuA&`ZTnOe;>oEKfrrMMNWou*;EP)iC_%{L5%tNE^n21gf7UON`?~}JI#6&Ko5rS4P-oOm~M&4{9soUJ?^LDzpu2ehN zpu|(tf4~orreG&SbtyjFzPI%oA4LHy%Re9D1u}kKu>NPI?bmR^pQ)>Zjp6riokHT4 zkhn2q3?*Cnj_B%B6EM@u=}|~Y5d+?mgqD;E3&rsuCrPPUD4_S2f}esMzOtYm35fA| z8B&CT83{hky)qA#OiWuSMb$QvFoz^AQ)kUmKdm8)NVZdzwwLAil4J?f;z{>bskrOe z{Ni%UyNL0Uq?PLQjoOrj_jiUW%rtWGaKz}2uLKXT<{fPvP;ZMUKuULnCgmRD2RVp@>fEu>f9Q(k<6D68Ywb;Dzj zRg|P~jUsY{J}~}*rQo;W*7@H0qU^--{EUxp(#mtwt8&u2%HCFmS$q2XAh!pJZZv}5 zj+g}^ltlOq0%9Tp78oAUAs8kE!vOua2q_c(qNXLFV??MZ5qes{mO@7vRBn;uHxB+g zH$azz-wwK+l9T`6e*3?5JN-YFJAQN}DoH1bm+pU~GN9Z4n(bT)YMhE1c+sw)&Z?lv zqNv59r2GHS?Skgcd}hvIx&PJe5OD|HF6Md^EO#OIAgp^3pdclWoB-Ed=IA-8pz{*P z&P(`Rl{<0W=t?A!h%`dUKn%kvIz|#cAxa?0D`{|P8JGm0@wyoam;Hq>R#j~_QE5II zWe%J?T)c8%vnz8-DYD??m_+3%`GIDsB&215Gj+ilII^jk(aPx4N*QyjJBaFg(#e`r zC^=$}MoL|OsrI-={Y<>5*EJsZ3(QB(b6<>BdtGJNG^)`&eynfXp>D#e`pe15t#dQ` zRwV=GZ~C;KG;3YR5e-PB_P8T>JxBa*A+yIdArluxEnNXQEoxa^)67Db?gg9bahJw9 zr^adjrWwDMm7vaV!F?M+{p;Rc;JPosQmQ>LWEz$nnid_K7oA$??VD$;Yp1Phra^l+ z)vT%&j~{8=2>XH>74~yq1GYo-iT+vV!HttE=!NCq5$ov1$=#z}D_)&zR`oL+m$I>b zm(*=+=>>(T4P5;@HrxgeyhpcOn`bSmrcEjrjcQh4`P6Uphj-V3R@N{yNjdjGB7OVl z$Pc%+9h35T_ud`bjzztK0k^(g*DpJsT^nxgU!hIaec(4h+I3%cTb4qkXUDjF27EtQ zVl}9ob?(^KdOxLAIBr%oA2|B+=*WRn%kq(q?=H=&pr8!PXJuda*tc#ubnZHJ?*kuR z=1rej+qPBvzE$h4PU(VH!HmkQQN_#wh15R&lxApXRgLbHzt*M{HKdifqLMi;5Z%sp zCLba+T5lJmvW6sM8exl*Kj5YKt!lR7cAgJ|*t`kd$_@RZ8P@A>_`~0eUaJsE9aR0e zsq%ge7?0{j>nhE^H9qZWJRZblj2f2hO23$w&05gO`Nnanisy6@|B3hF(Y2t!dGCH= zyPi*T@&VV$2dr+9bSAgi1B;~M$AnTBmEZp`db=lgvysO$nb$Rz$309iFaa>>OebFf z3>os+g6C_P+>1o7w+ez~+8 zzvcALl06S4Q`LgU3fSCoh%KKBoNL!k{w9+=E1ol_RI;U&zbtgKT=2>ViP#3d`=139 z2IZfx$fS&L+^d3Yl5gK{xwJl^`)#t1zsNl4GJV`FAKSort4Q)u1H_6{lA2j=6c|>n zD!%Mt3QQIEdoC96N!%i(Oa#eciMO^e&W2;sE{?!nbyh$UyjH=u~WrjAtge0Y82nj=v41GbfX|68O`r< znWiX)4GNuTlf2voj7Rm?GnBTGJV%}?hLy4y(HB=N3M68+4UZ)bF6^N6N%t= zh*c8dxp#Ku-@oZePp8jDs@!f9{wW(U;zVX4T zd@^tvbsRYGnEdHAwP{;3ClizFKfiZs9aRp?QNLGf*Mr)8-ZC5AR?qI14lPoPsuy}( z<2d<8qhdnqb-&g4uF02e+x`Qmwr>i#pJ6m6aJ@?JW-o(7B*LI<_Mp&e8nqnVHSJn8 z8%Aw9e;_i~Btk01Bbs35qE)d8`otin7ZA(q;_;t3 zQ+wb$RQv6WQrnJp&8p(_cGJo^Ql$V!6*~sqKu+gaZl5%jo0alcE5y!z#GbBEPnnnW zEn>6GfE^RP9#sCripaA*-Hv^O_I;zip9Z~q#(mp*!~636+jcXkLFF>N-D4Jm5MHaB zytbzqbi8P_+%O7;yp}0Kca}J>^-10v(TW%%Q@czoZ%?c3$E0(e(jNFIt^Do^AoT~Nv8(b8BZD&Pi9?jG6icyTnE7g@+VZtAp-~9J zWx}WhWn`w*I7MMKYfc#pN~}7qga(bM4xxkrBCZAft>j`lRO0FgpDgrX;tLuAUTNHG zp!Z0ma*X8hNdVp~wdPrRwX<9yMVe`ALe~aaJ@QG_BI)&$SS&N3ae&V>LBRScrMM>{ zuLZ9&)Cw#y9P5>dT#_pKDw8u#<@^G%e@Mg&`=OE;eoJ1ze1+;|zUWyRmui`iX)@gp zG!~^&m)j6=OMJs7Y<-e2fw%k*Gc%A_!i7%zI7TiIwo?(AGfc{{?6RQ6@BV5kgQ|WPoJB zA7QAt$wbr;76}3h31V6aNEtCOVL3Rk_$66laspvtRvmrBGnViq6{PA1y`uEvGbXg;W{2ALv!wG$y3ITalV4I2Uj1wt}nsA{61AR&i60dg9U?(pnX z)G%K@G48KY0cU0vMXC>w%ta(|8hJ8L`Fx2yu9f0^IX4i7F#xk?Wg@G4ONbsK2PhGI_BSI)ToV$pMixKM99hM2?3##? zp(d8chLhe0%k8DW9-_=~PmQI}SNY=wgZJ0W@*`~C-F3Wi?VA7H$I5rIL}M!`B72e8 zMX<6^gE)emslB_9Ky>NbeQVL>3TR+9Gt!NW>##10^n6BfUG!dLl90 zMtE(oWumR}O-k(Bti*R&kKboKF3e2)T$ERT&DJ~67r6&HnFhoUbh|&iY(!)XG!K&5 z>uWhGiaCqkk(C#-l$MEnD4{9)Kv!CT6c>=SH}O`LvA7?BWEy_|5q}o`@7(@}ZvQLY zLA3vGx*d2j|JLo0migR5K^g?f>!Hv36d7f`pt5 z=ytH&|B80-+i~6}C4Eoh{LV=IBi(UF&dUUa>R!B!VC4`BCUyxqco#`n*;-$`=6d6v z(eV(Y;B)3DE+{*Aa;fSeYyxzABGlYM6de4(b%BeFgC8zpRvrvDl%jGYEd12MvP@DM z3^)yHaa9UYRbpWkHYH@T;PD^+qub|~(SR>stqZ$Vzu5psqH@CK(}Z{Je#vr`EZx^uYi0ptzK|%TK9*Nqo!4rq*7-8>jBWFI=dIR^y}#OmRVt& zadx%h;}4wovP~POtxG4w@1!sqTk=cFQ*lWeL}rC7qmH8ha$Iq2Sp#dxwr$I$f7|2B zmPhBV;kz00#_z8E`#vLk$0t#T#&wgA3rD~$Z=O|s-RnMZ2-yRlFT3vD-(3a|pkK+f zYRS56%B^Y5ukXO9Yy!A3u!!o|w&6eW2U0O6Ws8>8i$Nnlj*lIBwlDeitOMv0M7ve} znojWq=ysQ`eHQ>w)UV3q_F8oA*!3KmHm&P?oHzWqXk5Icmp`MHH6-(DKq;+P_HLut zm1>#TKJ^##O3x>ylKaIkS1QN%>V8<$c)z3^*Dm1uLL#(MJAc)5;g|I!s#CpgRJP>V z@?9|v05b2n0h98mTfZ4qtK5;!98-R~EK#~HQ@ARf0NlAAy^1}h_h02+&MGF4u$?Xd zD4#@Fg-Fsz!MhdQXDTHwxA2@OVE2E@bMR`44(8=Tx$0loR_U!pdM%RWPI&5R2^AuMm@Lt@y8M2~&JA&B}Fay3MG4<1d-m zCaF80#A919S4t&bF3A_{%Ek9EUw!M+@(of7axaHD?zf4jj>2KY;yGY>x)k!p4U3j| zFTPWatrK}zrCBpC_qdk8A(G2CLpHny(&Nf${bIL@apzwMU&v?hPL+vh(n_0@OBxZn zT2E*Dm|g!K@6}wxmt&9{=LxNX--JMme9n|)*&O%nLE+GL*^qjnphAY@IiStVx_(;@ zqe^)_?5>Zb{fkAT4Emu5ZS~yPQ5RE-m%;}S@^LASLNxecr zzu3)OhFhb=aJ$jFa z6uwVMk7tPkx}+MWNPQ&wXH|pKgwCWOdY@c}&(Yw#?m8jdbVLiTYJGccPCdZXS zz0z*curh3LCW5o3bB)!^9nmkJZxfQgC3S7?eYF)RRJ9MAl@f$~V@+L*1 zs~l?=jxVAflfS%XfBP@&=obx1-G6g*@h}*+JkG!5KlNJa{k&7lq51e0tk28et}uAg z4z;uH)4x?8((47W8QowrjU?CgXEgO?Ht?p?uw+s;1i(A5%{2kHBvGFX zA=mr#+VF;P09%+;$`+cE7*xF=^Nc?WC_|%@Ju~(QVs(i%qyo{oiBY*Le58)ns1|xTBXE+5mCOX3u1UE@z^W#lq#hz+&tiXHsYQ0G2QyYAKlNKJB&>k<2chMoiIypc@N>&5jpxurQ)a9@Pcq`7p3|mahp;W zi;sNAyE&~g5CnQQDTo9`sl+u|)!f+}uCZH3P{^HRw!A0o7Q^lkMy+=qVLd{|?m)y0 z9Vj>oPAgW;B1z|ZL7Ufz$Pt7|o`heOO2UFv+=WESolNxKfncZ8nxpA!MX zDXB#-3ue?GCwXh-2fW{MWWu@2q41qJlg-gsxJ`nr-r5C@FeKmYjsJ2qDBY z6fnXkp&}(A{|6UOPDH^-NyAN!;i4twq@ds;#&8f*a#1s4F+4IP@`e}-FIt@dByJcf zLAkSwpV~-$yy}6M;y(`In9yDnbxM(s?a4TjwnZ^;fHb4XvjyUuO=A;_rt7AEhF)wp zXRqa7=}h#_KVz2_q?PC)A7P2TVJdV^g*ix+{E7nW9d+JFSDBKt7E2kI4?FT!W=8R~ zM2q8b-jb51Vi}*!Ax}q0=1`{9p9q}*9!^LAAtv|p z{Ey%MZ_E8ZIhlX^?SDo4-;m7T`@fbu>)&v@q6UYu4xk|a^4tIF_P^2{ax#2Sy7Yf^ zJA~VXtvw*$E@JPE54XGEMLS$#Zb5&Yc1XyGLAc%fq_qE8C|yztx}tghw%XYnRLVwJ zeOu3vYo-Cmh0H9(P3`z~Oeut=5o%V15;AFU&q~cH0xWubpA;Z2Irzvpc;OIA#VbU` zCk$oHWZZ&eTtXNgF$w`GDnU7F5k-1&HADzUfs>=b$x>k@86{Q4j2waW#HHuPXB)_G z6ToX7DC~Y-EbxxRrBvOt2Cv$$0Yh777txdRzuo)R6tb%2;y*}Vdnpx?!R&T{)yj`v z*%TwD$!Fq^^}I}D;lb?ep<(YU=W$v)rNE(W3Dz@Bi-zq!O?p*Lcz<5-XqfbB7!PWj z4ena>X1x!J%dO|6ZS$96m3B>+ajO;n?!kqGtYB+jsxkImNiQwkc)j zzoDUfsNcl4>gzgw7zu?W$fTEhj%_FIqwei9Y!{-%EWNN|%8ZJ7{&j;MQ>f4IrbF8| zoziL0?ViI25NLPr*$1(0*S>pX@X&X7*MI210)$if5~SSi+gG6B#kKFybL6LM$2Z%i zMXQc=r@=#*?^{;Qy0vb&eqJ{!8MAL%)hZlx>D+?By-m%gdF9Gq-F|Fj-=TiezHZ98 za@3?^&bf8Vu6e_~`@pT|(7hM9ky{!i6At}{z_jriMx8qLz#Y{sn6fBY7Jg8tU9t#% zJDw|kyIL{1U*+YP*pqgtGqeA*xyMbfI#1nb3(;MyK0swoyD5kGK+MM00k<3l7yweo8#(qd$@^ z8k8k*{5hXXn6OWrSWq_qv0SlB<)RlW*?mfc16p~{h2HV*;d{-*O?ly@;RPkKO6$*PTbU7c|tQ79I zs;5m#KKjCbu7u7uN$qHkQhJv`!K`W))KpaohSo^jZ^2~^DpY@^#35XtixfW)HyWL+WfPPj~}oXp=yAmq_fCM$RFxe=eK%GayW=*R8p)pt6Y- z{1-EvhY!K9H7;Al#da7LuBjJKn|zwLs9LnF`f6DHU9oV~p?lk|eH&;h2DRT|6Vq|= zms!=On12==F%;5zc>~iWZoPAWg!cHh*#av4x>xvmnQT&rZq>44!I1vT0r4~WR@sYe zfv=>}dW_$V>DA8BoOs9|ZUU>0kAVGsQRi3+ z-SddXNm{Q5oVN;eYS(PXP?sWrrLPNIsi0K}m#|NT{w!L*SSY4vl67LxKTF{hkG<0_ ze7A@GSOKYh0@QudYXq{&dNV78LO-m|z`p4YYSgpC8JflvaM@$=x82|$?1|@que6># zbQnEw0zS;bj$T=>V0an#iA+S@9UJ!6xO`a~5Run9wUb9|zx)bbMR_khbNB@L_JgBK z2S)~>@^w%(tqbZNg64jEPW^To-VIv*0URf(*mu5jd!XBuujFwa%@lst=h^x5$Qo); zI;s}mU=GBd%*LP%9;U>B94c?siJW_3}lxGF>iLjP3!rjoS?BGKE@9{ATrx zu_~MKSwvkHQG;rjuZ{W-A6hS?I`vSa+-udj!{Qo^D44UKh*8Sw6-{cDiLMjB@=+qH z9hbgn6hDFJ+^6--lE@l08$cxhq*J+UIfOclqQ*V@_CvqmZyqDqaEB@06v}wv1*P&u zCfxu+c^^g%J0=}xBE{3>>Zc`-zT%77q`la$oG?W1at#qTVpVoygQU8lH@ndZY85X; z)`S1}bAelpbQdb*qFMxk(rLAQpiqh5K91Y=5vgtvvqd1Iwg;n@HM@oxy{a9()-gJR zP=4nJV(wA28lH4&wy?O0U`^kz*|mKss6wpO{=;VzknQ z9X>;}o=n`A*DssG001wpu)s*D;zR_576l(70aHR{b8+WHDeFWc9vxC~6CS%HcKeq+ zPET0iZ$@|mIDqp{ZG4$hC5+BCmD}Zp)R|bR6A4hU z1goa>LaHR(^0eT<^FE95=>{=s22!Z_AXq&}o`5ui ziclJe3^4H%G4Ugef>dH!loBQgk0FVOBeAeE2CGbo)1in)Fiklvr~z*nuTsM@SeTqCkbyW>8ThVxS?DHy}LNBL9hE8oncmzX;#1Sy)?U z7%-#X`ykd1!X5S)e*q5#%yx9^2MU#(U|Ij1Dvir>kjCE47J0IQByLc2ZD9|VNzpyl ztzCK>D3)adN<1M21<(Q^4bI5Q1>k5r1BaCbVd6sQ_z-D5X8I4VhFk;#1PFUV|yj+{NqO#Z9DUkv4mY1fn}JlSuqDN$Ltw>I%u@1+queaF5&@M{Z9bp%X+mR*-A0 z6xZuXBWjSa0wneWLt#7Vt1d|0AW`$ktq#J__sE58%=LWQBT@M8TuM#~gpmrtV8R}f zFQLf$CFFJw_wk1h?6G4FAG^!nK99fi;>rE&)Cbuq51%DQHx%c6jC6JgJc2+#_ii<< z*Hv;uKY9`pYJ{07Wt6yJfv{kLF!u{mFhrC$N}E546im^)@8>9)WqjCxI9#LFumjN! zlAW3arW^mA+h5&|0dOKG|G%R$|Jz>b--Ha(+`L5)R0l}%omRYn2dDkY&z0EG*TBBY9D zycRy(CY}uH4vf0q95x}sele0~pUFHcb?uz@8r(3f8svG9FA?=t?plsY=t~Z(69Sgr z5EJ53HO5-`uo`-jsajH~8SyIW3R-z-KF)J!op)Kvk;Pjs0{Qj+0@S4HNZ7z(=ch@y6FFT757`}t5zV9)9_)gW{4`JnIbqNfc zLj&gzU3xba^S(g1#cO2W?aP*X-=SsQcbnEt&%r(Kp-u1JO^b2}?Q8`Mqb}VW`ftab zI(ETw_vl=Q(2I4)8lLgqv}#d1=h3wVj7P}8cy(@?RZRy@prHJ18@9}=S70U%{=Cn? zj>V@*%gQP9@(KNt3757lKurP=-lcN~`kvqcXqAjxv~SvW?f8!WquXEinSWd~{V)eH z52Nz0@@d^N4;n=7Rfs&Q2P6w`!Y9z=@(I1n7vIBTtmNZ*!Eo@3lc1&$kaSSzBp6@E z5m_Pqtlg$@!Lj43WBZO`?xf<)Dvft@lJ942YIkKHcWQiCR4QH3DP2{4y(E!4r(C_I zTef1HH6VHEEiaU@-YQplU5AY-VG4XH6qLv3mc(j%i`(rk?sOXV^>^I+J;jedlwYp^ zgOSNAUHtqzzB8{GEW%mrV%c0X*t}nfUMv$0t>Oy)2nvTT=rRAr9Ndj!*?YA@5f!3O zT5P+1U<(FR@+OV*X5lGFXN@TrE^$RyGoODYeDl3t<`A6^5HG7`qWU?n*YL*HnYZs4 zkNnnZ*bq-^XSwQ_6;pdm z3Kr$FC&V&GC6WikZq({UG|4_6@aX&H{P_pt`7+_qI`P}Jv{#Dca#j?d?aC*t=sa4+ zg?Fhxolwu2mdhIwd(+GFq+9l8wMb}@QqF`<;i}QQ4UW5AN-s8rFPCzjd@UQ_Y~Fk5 zFpuKmKk{CA?mCOwPW{pOFe7xgUO9VQvveBfHO6Jr2F0^#Z>Lp@#+*m?JtqF>RWBLT ztbr%&I`_lm!?IXFHW2vbo^}fOrHEb2cbP{Wr+=DE{!)28fW1~B`?TA-Z4VZofk-a~ zLz&b;{?HP|mm@0AxY&r#iRz^XB~UuW`cy&+Q6!71U$&m+k0xr={QW4?ojb<;zEmNJkII-0ctwtL6)@=Q&rcaJk+3%Pvsm z?Z*zBr%-N>2bNXyZi}epe`C2fmTc>?XxnjnoW!<8CPp*Gk6~OiIU}jNx+c++v zwj(HGL@Ag4O>WE6>}FRu44kP{tr*RKJNksqIz}{ck@d=;$d%8ChClqf$*<=}r{v0J zew10`7`2KYiPmwM@KW)6y(B?ps__#Nmp@^&JjwL~MZBJg`Q>4Z&a+sZrBwEymN#co zwWd+DC6citl=EORJS%8>g-X>OXpM}ju85EkwX7qnx)-yW2ehnGD_T)1n6WE5P^fx| z`IfOb7m;Y>(aD!#6z@XWnZVi4^foz6CW)llR}rO4l=_K$7Re-HM=7;jSX3`l37-Ve zBDsdY>790Nmv@N#H7d6xj-VIN{>bC->X*u3aG62x9FbN4ons2KTOpH0I+4O< zQuQlLruU%eic9-A4OR`|P@{9tl#O5Djhdkf?-WVwlZhJ^ajN0AFQhd{?~sdS89FPIMS^|Izv>TaCY;k=HC9G*Fd zf;)@L1(}c(3Z)Q)Rv({Z=aWM?^bjT=g!d$c;x$V7lT3;ptn#*aybQZ0Lal(%$RSj) zLkc+)0(w|tB_*JvrzK~{5;6-Bb4jr(S}`d(P)OL(%X$EllN_f+fz!Z<>(VP)Qb`$s zXvbh>$%MtJ*rjQCR4BRC=!JooE{0I?f`?23jxi*MiRs|i7)~JD&>)x2A%C{$_CbUF zCe7WYdeN<7pps`PfUZseN&Fwb{a_owDEO544xVZF3ykp9gNzF$r^NN5(m9@>$epi9 z$qeQIX@tDO@jiF>ek? z)3@j!edP#i684LdH8Imum2gp)yl$XQaW|VVew-|SlV%0w?(7HWoSuvtbUXgU@qctX z1%`}>j0(fZ&q>8WO+bwhVc@?4OOuYAhJpl?KFD}F23j^Q5(>N{%*24Wxsboe5$c~n zwo&qZlzs=LUqb1JeloQFr2F)Xw)i()_5n%i2J&Q?Fl~kC*($;F73BFMlC^-mN0H}n zDj7q*q70zDYxXdAhmn*;D|6#FzHUox8LylqMZ=yWky}J}n`rMBll$LC2)JO6f&?Bg z5qxeUL|7QP6GAyO%k&4Ohy2pQF6-n0NzXQ6-XwQ?9}?MxM0DV7Oo}icqc0x^gnf3Y4GalS}mUu5C={{UfeBgQY z;LEz_uc@91S2=q_^LRMFh7Ad$Fha#l$&ZDH4G$Gxkjf*3Vc`M-B+ww~xdoZ{gy?t$ z7@;~!K$uMo$0IFAF9d7v!ho9Lkdo(-Q|6FVV3Uw%7Lj8TmSYoBV#cb%{Eiu?&M2)$ zDXB)QWXNmg#cu3{Nb2#Lda!HZgN_VpPV8pE{O;F<17hjJ9yzy6o>@X&d)K8hYjCjz z*o&#+ClmQiPq3=mkO@iB;^et?tQb|Ss3djiAh^iLgOS!UNPFwlHsjs0Iv9U^=_IBYMwaNI(e#nHlS_Rt!2)kdHzV}l1JOJYa>*qEa)hPJTuJb2pSA5@bsXA((pAG(Ef=PLhI~g;Q1sR=z9~s5 z`?G0M9!60I;S=+G^5WRapMV)u_v5r<$F|Sdq1(VF#A8hBHek2($S~;k@9rI6ZL5~O z+J5`?{{fu4efg?K=YikwZ>U=e9NYtK55s+@rZt1ADcERpZdvo|+J;993H+dO)Z@#( zL;Hb6(>LR4e9Y$WUaCdalI^Fj>iJ*no4$dE57HfUJ8ZC;*RKGA#vB@^`r(iLZCF0n@Faka?vCZXhN?fgEi4=W%wg(D03@8k$Yr8SJ~{k;AGo2-{Bo(ll~VRI9|SHpGM~-D zUMp6*-yj=N#~W5E^R&}v2({?g7fx@tEM0*Q)!+p2aT%yM5XDz`T&r8SD3v*^kU0(s z7R}d#8XqSl3r7@67tGqXY-+w?Z+(QScafX*swv~bciUhbFMYFL@kU^zR7pJTQIVl=5h(k?Nae44Lm7r@=-N1F?Fitt1d&RZpl}%v;oyOa}p0~ zIWFd^WpruQtvJr0+AlhlpH>5$5OllR+fi&(gI3;*ZQG7{-MnSZJZwX&z8W=e{OUM< zU_G#{Q9fl*wRmLYx7);l#`6KeqtD=A1wkWRz;m&%Jm)zS+KVg)e<`Q+NZhDae>LUM z^^5IJ8KFm-LhO**+bQXUX8p<)I0>rPFB`o5;xM=aN>y+45CV`q7n<Aykj$oTJ`~ z_C$_m`;O7zp;6bCb@%_r+FM6Oxwmcq7dbF6ba!_*Lw9#~r-0ok2DYH0f`OodfrJPM zBHbXMbeDjFbT?eTbM*b)>silQ?|T2aXMNXfwv02#9=6AMUdQn{c0iHJzN^!GF>L-} zj3VrgWBIB>8!GgyN#?}_M5nEXQO6-v{91v1$rQ9mM2>9hmyDa_kDGn$H!toC`@IWg zsSr&Koj_p-lDPB9eRMT^9<_Y%MebsTY*usB_^$sr)T{N&J*m;p?9%((6*-GKb!oj22wwawcB@hN@;B+|R+Gj*b|b)(T=yMA1>NIpipQPCb}ag)th!fVL+;zN zZ8Ng(*f3}Gq1~oyL*mj07QDYm;3KuW^$elu;zu%=9Pe-izZASs#vPgk!|Q~ zUzw~TsLT!v`ld^Vf5lo|=LO`W{&6}bSIDK}lj2gxCQl*H{1zv~8{D+(9E%Mk+Kd@N8 zL0_B*p-G$Lz5FXKcj;>v1pmdfgq#HqKC(_wRb&mQoCBOn!6phAZ-8J!=) zyOiDj8nymWcy$)r1bVBtINkfy8fREcqj~LPIm}M-;E#}iQ&-dW_{*FV&G2 zrKcluXPY@qo^z_7AQKE{@OmH-+Yb0CxNynpo+M z<}qfCL%gPknZXDo=RmF&%;0dF(KdkwA4X?=irY7d#VC=O%b$b=BCbGFQ6gcKL)ZzN zMgTvuD<5K%1X{Zm9AZ{ON-jMjaI+v-dU8qz3L1o%9--u+V1wYN06D)3ld=tstSyzK z4FgmR3tG|2=>UR;LPUpF(u{;hot#IBN*FfnVmM9(T0Ri%+H|5?2rWN7zciGykYI5L z6*UDVBSOxL<5Z;)S0tz5PK8%#?(;Cvw8I$(sf=03{2k8%Pd zeHX>79Z>J17-$OuJAL&IY32rL;xt%CC_nE@z3p;3c|O`p^No{sTGE4Qu;ma^rf}N= z1mav{?pXsq@$)Ijt9iOF^Hguqyc%lDLl~t|O0UNRob$CN5E?Y+>GP zBk$Ic%ylGd1<71MvKNsz>&TOJ?2Bzupw5D%e~n@v|DwJ56(9DP<8}p6(g=A%FLBQn z>G&GLsRV-(K_UXbciQHStt_yi2qfhP-7SJwhcK}jKs9j#C)+k z_aO8}ti#P~KF4m*TzZdO&O^=>ATBqk?1K>!5(;oG5zI^fo!kFSw}WAZ0E83}{ioZR z#H5)dWI?z8$0q}d9S)e=A(YCktihwE!}a%Ys_Aj!4S?VNciH~Gbvr;H|LxmBw}Vec z;4caia;Xw7f&cvNa-iEi!k{cw%s)yZ_?Ud?N!YY&g`ZIgKPq?Vr0TIN>cQu+0%}+m zF-{?Qu)zRiUQ|tknwt;9#tE_EQAW6$B$si!ZDXGTFrNP3l#VKpbq-aViZ;Ul?Q#^5B?$kpj4Lg2g zcP3Q}HZ40*hj1RJBi!B>L=Qg@xc=I&Wg4t9zI}jk>&3q)^;0rsQa*9oU`uxiiww#>q(>?`}+KvaL53I4un|82p(`uE|s zHH*?Ag{bSQNjV|2sQvJk;=4wCYK2qHVCdw=>Dk{Gr`FEGMf2hz+p3@P$8O-n6a>{& zOq)mDdpER;MnSiOPkGE%3*ZN9VG8`!aZIZJXzz$jPsLJ+gPtp==ytae;lipxa&AcI=v0fdd&Zi2C*( z00+__ZxT3=3Te&O6#$|{LAnD>5)!QLKQ>_H?m4jU(!CV~ruwEO)pzZ#b<1|e(-H|) z;ET|CKWOx!S0TAh;e9jI$QqUmI#f*<)~>0ix9L2qkh!0umRxL*-l&<@CZ7CV=|+X* zjcURBjp~KtK)|zvGMd^oz4URVQ<*Gb$-?KdRBn}uKd3Zm-!*R85WMqMJgHZ!a$BZk zn)O~W?}=A@{tuNd6{tOJR?ZmHE!~p+Faw>Za>ufjBi}Rlz7~z^fqEv5(sjA?L7GEp zTw$+4xAR~4B9`=n&gLnXM;2ee7qJtSayRM(FBQQqoj;~Z@@A#v)e7Ysjcj3A81I*$ zbKL3=>>74uGJ8$(C-k$&@P)s{vio(4eu_LOQh!yiQaGhnwIZD}D)O)bauB}bU=`>E zDd^a~d3Xr*Dw+qNrEqk)LCOU4p-%vc2eO1h@{nw1m&5RmX5FlI`J!3nrd9cdWyhXs z!I*L3q(%0y^_yOk)bGY`+Kn>170SV5JR}mGr*N~>y?(>F169r%7JX1}S+r!CH)WDN z0yr0)!YRWq^GZ*90l=vHb-|^7526R+_j+Nq4g?kc<8aNrQ}p3a)+?P#$&14Aqtc0E zqW6E;rQG@Qbf3)zQFqF&E=f;93qrAZ)`h=(exl*s z8!DeVp*O)er_=PykHd4Q#kVD^ZyWIAV^O-G_^`xha_jI4>iN3C^hud^dH2z&ox{_+ zmgPfo$#o`$BbL>p!M}Fw+x|ezJaBBwcW5V|e=neG4gdLvb^D6J=NX!SZ1L;O9PY1N zzRlXt@4*kI+COVOK^>Tmm{pVw)QAdI+E&D_Wa2bKHBMxzUM%A~k}Y`rz2c=$ zz?Mf+~f+zO^dY9NwJVX@S#11{txKqjEm&)$= zj8h|;RLzsl>;g{3lG)f(=|m@!^JhlSXChZR5ywa5o=;Sdf95hc$D!@Xq~i$90vs|f zG*UK*m?^Ptl;nvoyy2DN$6C1pN<{oGVJ(hf%^xs3XCgY6cwO&{+T7yM3ZqhRrB`!h z(RSg2eZH~1&RZ%?OYfmJZXnT4=9x47M&vj=>_>ZbCTeGv2gBzUNT(W4k={S;C6h0Z2cC4FucTSmhx9AU2! zr*Jy&tDJ86Fw5`+zNB}3A{v>??EX|ZC{@rmfk-oqQQec*A(7Me0}vqTv`#S@9jDbh zM5f?ECFp{1Nbm&R7Ja3L#A@5j{!)eI^NOatMP zMdIXj+NZOWmsPTMpQNJ8VQYVm4^GNwRX~{NHyoS_lAm8_p-UDRh0GT+z%z_Htq+3Ff z)@kzU6{62e$jebA@fY3GedO7$09di5ga4oF{Cu47+O*iGQb;B0&fNu z^JFB1lrD=1BCJ6qXH15-#_BsD=AIN*-ekJA(CP?jL4=W$h>C$=;U>i}VlZH!N2qzY z9wv~X3&_?U$(?58;i6{rsW?;7G z;KwJU1pm&>i`cm>vZ@s%@+)aXF~@@+yh+W9k8<>%m1{k&!JW@Uu74zN`As&r216Et z?l2#qRGTOTic%e*BpWEr`ab+M3JcWyWeq~Ew$_~K#O{hO(e?>u{S>-nQQkK?aZeEInCikGvmFXloE@#zBO z(lgeHH8FGv;Qw5|cBrqE;Vza5AB{~uVltOw`@76}J{E5u5HAt)k>czp#QZF~eJG%N z*uf|U5YGS7jf9>R*3=kgxPHQi1FH->FD$OXUIPAb(CuJxXA~4?5|v^WlV*{Sg~KQg z>Rq1gFTWl3?aV-Nms4StR|SMSsCQm<9X?G1UQGjTEdy>%BTh{tb}bX=UE(ve<}$G4 zHnbA3a1^m|g(GU?K{$3^A`af7PQGGp0b(9O;-0~>UZL{-5lTUaNBq&0|E5Ifx2W78R!jfbHqBK0htm1M2hs5!TQSyi|h|4octKvlDpjnkxLX8V= z0UL5e%7jGIgWWqu{`?DW`(Pa2hF!-+*g8bO{kUL2G=udah0yCl@o#kUzkyBEws+N_ zq+jQ035Vlpexop9YcEC>LrPf_KAV$(3!|2UK|r5Y(STY^SKQ;+&F;k`%`^TrzdXuD zZHou2%16NRZB^W7Uq0;FI0dwJ;LJExjlsQt{diF0WKh#DpSp4P+6k8ig5%x1dd#$P z!n9_}qJ9QKpaD&*zO@TZHS-Rw>yqiUJlg)&r|+LxLCyRA;EOv<%6qTc3w&mZo=hw9j`*Uw#%d{>zG|afxPX~2wM)ae>9lNFl!|-uf z-xiqvZQ9pd+g6?Gr@{tyU@kC#C~oDn&F3+btWM{O-~R2J{=Iu3>7h*(cKG%Ub3vVp z{zE%(wH<6B28GimIaBrpYbwdZ^65PqStI79vp}b@ZCdgfMFE8YNjhkcl}l|9xL0kI zKd<$1R;OrICZ|`vun+%vRWNl_Jmn|vjTX5F?b>e#%^T+RJLi?}RB)Zm6~9&~bm6N; zYQJv}YEUpLdgG%~R*%#74daq=sgxSIq;i1^ADDukK(D1lUW@A#>M(@z-)>SlQ!f?# zMdWOQ^s8y>sspjyN!+ap>GPEe5#`JQxx5$4r0$d{`ldsIjMMMF%*l7Uuf|j#jS8Kv z6MZ-!f4NlTZW-I{V*YCtBFDb61$;CwTG#xsZ&9~uRQg9Q?K>z^F!{SRZivMeD_trP zD*B_9^V{f2o5Y0z)wf;t-TSJA!|u(iFc}5)?pjw)Yi9MzCpEAheW!J+RxmhCG^S4N zSq}gM?V7jsDp!^ArlG{j`rC?r>w?CY5smy|`K&&@FTb?X+m)Zz=;d^omrV;itdn}x zrByj=(zD^vccArVjQ>c5P3xk5*-z!19<7ffP{(7LH?R1pll}A;;QV+EpxU2*>*Y@y zWX~|1Dq=qIRpBJ*yr6pvmxF7gKP)Q!$EvKf`^$ zRljr2W#~Yse$AwMPwLJ$n}X>O;I}tVNu}1pbt|o$eyCt@XkIs}ov|O-be`PzEg1uz z4CGQn=1`3X6;LAV*t8KkfO`MjQ~TU5`KsKhal-S*Oz7yA_t2W>*rwmee9*{p*u=Kq z@UCK3mvhCI`1xvTs}!x5m5fo(p{LAt5H;;z^qATT9YwjqUa3Ftm3-0$&BAi;Mhrjw zfgdH+m;FHCS9;RtJ&J1eF8PgaF-JW#%ISr14=7bG!|Rs)bB=?{5Qi~%KPq$YhvnBb z-oxn_VO_=849`!0w9Z$F1-z#_U%;C=CVQ`)COF%-6SW`RF&|uV>{@pEwhWsD%l1{k z+W5AtBXWKSrz^97S? z*^6Gq6}}jph&P?8u`oEP0`Ae7#WTpHlSxO>Dc@%Iz0RN-Am@?7dh8=j&>I%jXjVB_ zMA8&C%xp?th_D5&fYSfzu^{MD;3G{*svK16rjhGDUw%4pBtFkjCq!%9YS%RpZ%wQe@Ah&l^_Wh2yc5@ z$q-ucle7|-s70K>?v98WBBIvB0xpz1_Ecknp)YPltC5*Dj7XDhE)t%ogqedk@0Qh%?4;%rndt!4t8%fc-y|d+F6@lJwT_o z!8QX*dh=ipIOzvJ0WY(&i%ylJZP#0?&c+r!S9sNg+#JWA9V9(9KzeSJ_~ImT?l*FF zhUDxLa%`6K*b@1v1?18!k}xik+Ti~*@ky-5=c97(Lo{li9{bb#b$|EIUuMk#3<|)B z0S5aDfGFVw>oWXwI9Xy}BhMCS-;PrKoI`SYk;jd637upa>)6C*rU%(b@O{Qh`4lJL zBT*?xXd-en8F%>u-L))+8(B!(5a!Q1_4+;rI!3oq(nS>MUO}2>_}|Y_zM4jEb<@Xo zlf<`@4(`N@!A!%-&&Df8O2q^m zOHwR7Jrf%RH6g@G(D?w;AtECqMqouu*bB*t)o!%JM27`PjL8i=Hk-&ekDm?JP|rnDRa(vk!URjT{~zIoYY;8hFi4e6TKg zXuRTMsDWQ#81dCo(zB&R_Qz=*f)P?`!XJ)6@A>cC{^@p*?*C8S4z_U6?I7BLrpPL- z_%DCCgHTbAP_({b>r^Eu!35T4M2#>}`U8GmiCt?+3 z6;)&tS6~oR;*iEuaf&kXiqmlm)ANYn_=F*UN-qHQzWl5r;>^O5EaEae@@m2wdT@b2 zSXCQzI}T_wd}25O35dPWODNHZ%CjnJv#S{L=-9AnIZ&xN;0y!!e6OfNLL}${v#CFq zae$QTX#ux0!XdGIewT#(W2K%IxHkVjv4}df&dNS3k%&nZ@VY>+>BX#La>W#p+G zc$?q$6t%J?o2Dg~u^X$d3%}RN!?h#cl_Tz@Bd%YEY`*lHf9bI+8v^MLx*fE-Tiv8% zv`^ED-?vp~V5c`O zK|7LIWIU6Gi_P<#$TiewX5YPeG=2&7otVEivzoSp-dRAM>Lz64a`{}3it1SrOQ;w; z%JA;pbnihUhQYzUVf%d)tD#*Rk$ndy`9ti|f!>^Oh-&Wxd ztC99y99@%ivO}IUb?{jZcy?@qgY50 zUuYq4Y~+rA5cPUW<8hb8?;cNR3Lq0XPt>u7eC3X5mcLrdf8{IFgGq zd{gdWyU2|O?dmCbq(%LTP2Gl5^^U^RUfxU9P&=iZHKUoisPJS$DtiOE{rXFM9%zp_2D1R8yKkxBGOXhIvD9K)0LKZh)0VDy>Z) zTvc@o_T}>+P32y+E9Q*Br!4C>99y?7YZqX;@#@$naEfXdM2@FhmH%<++!G3ZDs{8S zxE~GdMddSwUBiMA^^7ifN2%xhv~Acjsa-N@UV`z^ zu^N?q)&+S1&cK&^-sxPSxdtB>Wxp)Rr*z0ZZ|A+=s8h16T)Lq9ZOgcE)vM<~_GO}{BF5LaPZWsVXyrNAjPc1A2`*QBF(dnYT=>>E`tx77!rpV)CL(5cSnUfbj9z1G zU+X0P7P-;O8`CUw`ZMTucDuW3Rf`fCJ@nzp-b1Ky-yYNnnRabibuTKvYXLaF)}8Ov ze(#{ES?9x)N#TO+;GR=2s#XS5)h7StGWFy($L}k^cT#%S;@+~Z|LLbr-Xx4RW{ryu z{hJQMYpw;u^6?)7CbmLmP_2YY$(VeoFb?S53YOL`SE8@)OfeYzHdN4KG*$zyme z@aKl#$g20yx^vgEL|U_X!5@+6a=wsH2JgRfoO%OfC!0YOB((RRJs7SjT@o~3^m5&* z!hf13kU4YzKuSX7cCGZ2c6hgV45P*)8xb?8(8X6!|KvKj2di@X-c_^iIj8<*sF%`7 z8<4p3&9Y)eEINxt+e0m>TQMZ*^D7Cq=?99b<3{Yw=hRWiap%zU zV^DJjI}M|%2cw1yE#8Vs(wRy@mrn5*jm2py!z(z6L}IZ}e!~>*kR(dg5K+%m#*0O` zqnXUw7kJdXNYx$LHJycxBN^~sTxLsxzc$?gRAsvHy8{um;=6xM)yIMT;NQBuzos^QVOp}HrS#Nhc}#F>2#t_ zSY=-twGcV?TdW2VL~^#A=HYCHk&K#=WV)ez_IJ6>u9L~TlgU|dYWuP%x+4sDGCC{Ad*e5CIiLT!%*40;gaKwo*zF4GMl`DnV5&uM$p7iMjapi* z?6Z1_#CrJ`4fuBr>hCJdKNf}NXC@UURTp0RS$KT47yVyE+wxM z)HfTE6Rk+-Hzc$H3Hf`1>X5)%IK;vAq@j&SSQQdli3FD;0i|$A0?Nn($}xczNMH#P zP>e*DkRPi+PPSt%4r+wF@Kw@?4))D@n(*PtgI5o3Kfix7{doec+{=q|3vP!vc}2-W zUgr29a;g_ORgVM|BCZ8=ZlAfla@^j1dHLmL#!=I!=gy}-d;ZqjIKV#;x%`FrTq)vo zlFlg%A*TLoZYO-B{wuft=yq7P|Id9pEUy2dApf&(|EJskiFVNK%zvdj=yo;*H4Y^_ z9Bx%DUJd=fy4@IbJGZt8x0WdfSlo5Y2rG9JTLCkBJ~MkkODBSExAG9R_9UcJ|8gKj zT>?big2VtR;~FOAen`?YLexE6)Z>t(|55qS(-23M4!Ix^c0nxojP}V`Ha%N}NdU(u z%`J-;(6Rs+J1MIWi;x^Mza-!vvD^X#bPNX{tFWYms*aSVfsl%pq?VzAk)@=zk(|C6 zgi@(_MQH>j=|vS7rBoPY)aWHuang831wCeEQ&vrT4kKSKo5Ny3H}L0PFb7@X^teE) z7sO+8QpEqd^y%la7hcJpd#U`c&gc8Wu~CpcO{_;B3Lm*I9vaJN9t0PXXjRRawO!OB z6BI+^SPVT`44vqWJ%qfD3q)P>D(`cw7<4Kf2I=nnb;zoy2NXLTkn7IXKjFX!|9-`x zY8YymU;__s8MycTd%PQ`!azJXFIm=3nO9B#{m&QToFLD>{&WVHY}Kf+<8dxEXS2`s zM^NYQ7re#o-1RzY?mP^-;N7ou`+I_zL_Gz7R|1o3N03A{@ws`|KMFVzaqrv@z z2ROGc!}0812e*7+*Ou+K1%tY2s}{IYKcbxS%`AW1sczMvc;5KyqFMQ}N){m5|Jbze z0aijET*rBn+L;sTuf{cA{Q(PybV844e2eCr5wkD9&5CAKQwKC2_dxB7=KXKdk87d1 zRVTHZ^V(OT`}HDm^^#A%gF8hncfd54P}_vh8TRQyo$8mRpVZ3Ts{$`N&@E&V>*PNS z>NoA;zpQAynN)c;pq@F!{i>Jm_BSY?ku9BvI=nSz?|W6e+)<&-oq&z;ZMO! zzz|+U>6s^Tv_UGijWr^d@4{EHYo+2R@_0R7F?pouejL?mUvvg_-MFHX)oony+qHYw zy%S*g{W3}4^ji0{a>q3jTQrlt>3kdjJ*JvJsGBzcBt4+_Xnh{l&ie_vS~|W_nzD0I02X*e)RnO~W4ywK%(Em8D^sr9w@<-(tjc|!X zJ)_g3Wz%;Mbs63E9^TVV?~}P$XVo}o-88S2KLm2c^z*d!mj&rZt@4lC48F~PAsI#( z+opB5mILRSZLRk|h2t7oE>%b;^-4b;P)Q+hEcNrItZL>UMxp&~Kp?JCGjrJR%am>H zs%!I>#Ir{Gszvj!(~8d;)Lym1?iw8a7R3`_*l_RMactPO{4%YW{zJFow{hK^S@ERi zn;zc#)xgHFZ{7prmU}0x+*e_sfHZ{L_f@-wCC(!$Koj-oMWxQXS9nln+_~k~eV~v% zDtEC`JF&;2Y1_4agE=tG_}x$Iwq3(d!-}ul;Cn9pvctH1&ZcDxh@;k>>!uJ=NEwod zDdP@!%i;4zOK8wXY8-Hg=^T{9T z@Iqq8$J9=@1pJ?9wQeXDjdGq!^BqPl`*#QhpuJmOgZrBAJNVCjRJm5mb)vvDYYK2N z`k6x}joVfY`^tp`-3~=yN=Z#NwSRO9I#u5NaR0VtkUy>caoV{2k?1q!Gn-eSq~c7^6Xvq=wI;~*zo9IcOBSt z=~7iu}Use0!coyqh(0R&ld79ZEiCX_Dg8>vSWC|TFp>=#gq;rkR|0T)QFZ{P^#g2cXc74bY zk!GATVb-(<<}?QLJJ9dRq~lJeW=f%DPo&~Us(VG`NV(|wR$k*+QYlX+EpG;OC-BVB zt2!}g*#m!oPQ#WCZ;X?P#OOrPTf|UFUq^VoM9toboy@1wKQD1CPv}h#>-{PQ!;4(1 zZnT;%a2U1xF^aZyx}LnYm*_07K!q{Z;RU-#24`?OM^J{;iBgG(YgM=7X8DE1FCx zoY~+kP9=uHGLtc~S>%2%M2CbQH__o!sl^lck9@?Z_OM3P3WXKp^dsr;A=D}XvToP8 z&5n`CJFpstvFbDP$WutI`}8_B@whcpllA%^}qKJ zf(4iRR&&{NJ889}=a7Uw+W2AC{Y@5hgX3*J?3W2~P}pRH_9bXmBG{87B*aAIWMtGJ zxe0xo7M>K{+$CA>4w9nm(QPA>?a5#pn?0>bB4d%JS=gcoij^IzZxc5h%I^ zzc`MGgqoR<+ofP2#c^O5d2t*Pl;C)Qp#Yu|(y8!T1mO;^3lbWb~9o@Ir*Ig#zjW zNC>DK@aPcNHzMGE$>>F{baQ!~J)=Q8H?{G(v}j`f$IzSGv1Td}zRrh_9<#c5$^7gi z%kzoW7oON%d}<5#(MkV~)#Z3NHkabkxg%Df-Ug%U1%TF9k(k3_W+& zGv!q5*arUzE>HGK- zw~dZnaJzUV?C!nm&u(OuJ#Sr3Us`|GpLXSWOyZL#Px8(hg#>sLUCtvqUxv6vQ#(f? z#59DY@ZT}$zopwLS-D}~4x*hvU-|2k0h7%C)a{HSlHij8-A*`v_wC@5fqgspWWXdt zShg!`0Kc7ERhtK|$E#`d&mqI52{0LgXb0&ID|Zm>LKcpo+yAZHg)QAdy8lnzF5((U zknT?5;;xZ!gk25^yGDq6ACn9?B^`7|HuQpQ_(jm|_>%D-|;@n~;o%s;<1DrGk+a$aP5#ePLxyQM|s8st%`|8jF-F zo4f|Qk~XuvCS+0BG)w{2OC_sEuWG|@5i0C@R>1QTyX!^%t8a`Re--h+E9QS!^KypL zjcl>YZzW?h_#YRT6m*5PE@?h0<~?*zEb1rTws7|0mjAYR3Pq+~FPsymiGWVY^;4 z;aoonWlVmJ(?>d2PjqjbY+VUzUa+Z|w5T3;X@WicvVH9zL$Ir9(Y? zu8phORdb#li($RnK|j`ZfcgMt!^2 z+nJ^LN2B zh2n|dF;|OOQ#!;mMnoPqi(fBSjIYClr@-I!l21GFC38X#o4L+cO5X2gKU2gV{+h)r zQQ+iz>8r)E*BZnwx6}9)ik+(AJp76OY_Zgha&YMYlaR~h1yAS)^P(AZ@M(0R-d+0u z(gAmhS;LG)!=l!gNhlsNXk3FiLj8HO?&~&<%pTL~8Q@)8R8E03b^EccTl`BArir{M znS@rs^Cdiyxtgy=jXo}@XD=w`EQ!9K(yCaqZr`?p^g-vYL-~wyaw|w^>*6_`=ijAo zeKE@J^XgdE&hGSU+wkezavxgt8QM~O+9Z6c7=|Xeh+|YTXh&GmFEbn$i(&V!_+rTX>xN4s>fE?#S2O3@IH#39td!Da zQ9N&5y$lWw&$exi>~7zVO@PuE@W}%U9iC9N z;HS*BI^9=4q5H|~<0MC9rfu{@+a2R?~P#&7lK zgZxqXbWYDHonFYqw`qNv<4x&Sd)y&#y-F){%DM?vD4f-6+%Rfhg^Z-!i$R(6ZpF8w zEU~pxN$ov)VoN=k4&WaA{i5%K2gS^|vpyT;J|P`%@|R7 z+6Mh%1}THwF(u-+Ywg>&%tu!v{_M-$&M?mFav9li?OC+>vE|Ue>)F2r*Ohc$cNu*c z@$5$huccApgQ4+Ot8hU8o}_5pv2Pzpu)G&P>b)Hf8$n?|Z{4@((6J_%3>}is@n*@2ei| zvL%zEIsE%^gUmVplVvz%R~Ai2c5O>WZ3k+jW6VD9_|9~2oEa3heTYbSK}{+Y-_t4q zf54tz$CezgN271XYG}i*ahlQW44>O|dgb#7mn*-)EB?bJM7kHmE|=qf>?)T3fx;dqKSE5E$M`Z> z*2yHDC}e{ft)2>=Y{0aT-Ga zHjqZck6ACAQqh-1=Lnl~G`npagHb%a*==t31gX$;cIQL}yE_1lq2kn`;nbt%FsJ76 zz;GWT=D9#2a*tg4JR%*5C`VwmFH>v8(QDjfHabkDZvmlH8VNHx1sf_!Z5CxmMx_V} zad#3y6<|Ja=y|bdKn7XiQPdX32XYQYP7_x$O*;}MR)m+GX=@h1+JEWXI}8aZCJCi})TnVd z=!zCgO`zsnTh0bL58H7-q=nmM?p{8kP4-7Ta>*&NPI=Z|!xV}5I zw?BcRQxI?6-(TL?-3A@L0sD0L-Ei9__}O8Fzeu3ffOv;rg=qjJ{06$SO!#7`ZiP!&CbH%ppmgaYh;8&hGj>{nTaS^A#aO-vj`3y zxW6$3VGp)*Qdn>UpdIjztaMmraxPKO@Yo~K{GZCWf6miypyadL2rmy|-AzP6=v~6F zU>W(z>3LzLkK>faFbRRJ2#EC5w2b6%BS9z#x|^We$*CE!bgYEwfB>8!Cn3iY7V_jw zq%6|ptWsn&oP&SeQEyGBU8;P(WP{ zLsug?dVu`cK+X*yj|cp{9X$PQXyd*km+O((FWeVjBDCD_6o17!{8qxo9YX-jBgn10 zBq&N#J570`pXo|gkQ8_4VA;o&{j>v zX7!BD_CIwytf}dtbctIK?&2`>wf^Pqhzx`h>6-+Y!_U-J7cy?t?E>%5l zyurU*D!V2D1<9pr{vX{gZ0Q7|{ol%6$iiLN(gWP!B6hx_j{c&~fg&zJaD*K}w?~P& z9Ts+p6mp9a_B<-)b3(-Dglxz;*|2Eo(DRCiW7LmbW;b?3X!#^{?2aX8;C&+yZb>pu zQEDzRI$kl5?hFFr47}1<4pCMKRS_LCaRYNvO+!INJgb0&h=zfJiH)S5C7-$hzosz{ z-iSd?0}hCGtc*4ytWK$5CSV_>aOjRy#62$m8=|BDb@J zZ)FKTD>C@_-72R|?N*M$*%bc3YZ%i&KL7I~J{Oscy(l%ECBx!`f^Sh;21uW{seCI< z;M6^xv{JkJpGIYa)@8#!RTEz2qh1xm|8zTub}-4f*Z+d^Pq#bO{ehw-(C2nQaj&2B zsGB^}v2?a;^#YjBTNlBg0w_rDmId#oS!hi|r&~|wDa%A7y(V?x#zE#le5q(Q1#+_P~8;Fdl;8<2@}>|BB4 zHL&f}u?$f}qw;C>qA{()5rdC?hS@!a`Tc5nJ%BgS&i}2G_e&%KI{M!ylDV?TG zP;QbbP3jrFAWAh}bt^wTYLrXuRV$v+elwz& zF|1uYEBmHLGWEOGSAuQ_BZ_v`m_fmB@Qui(x5LKUvS>yz>AS+c7P0FMj2FJDe;Bta zTNVLt{K@zFkDC;)f0aK}#1mVg{P~ww?gY=3YMuA97CCb=F<)fPm1@N|8gPE)-L$^RNrt>AKmo z`k%LyJ}xWd&D*r2c5NFl5QUGTP^~K#Uk*7_yRvzM*PZH5YTc@5eR|h)K6XNc0R}7I zvGw4|eUOXFx4v07&KXrqm{$CDYFdHKDlDkAGe=;=uQoY#0iVp+B3-iEq<-vSeUV8;gj<)C@~oK4xXQ`445`!1mrpkmUyZOyv} z1*vKBc@%i;;CyhYnR9QL4;(^0>elQECyYM!*)=a(*3W=D%OI=Ir0ADL!xG?S99uWR zybSC45D#Pu%eE@nw5Z$GD4dp$ zZ{>@vReCdl|GX%ZGhx)QVbuov-d*K~T{4NovS}l{cdMC?e3rS^sF6CV_HN0xXvwJ? zg@#|g_;TYP`+%L7xLzfn+%F&1LZX{UXa5T4p22yti8s30AbC_GI-ff*QMqMVyJ24D z_GizY9e_Z3|5$STvFP82>SlBcUMWz1*r=V}Z(TH_@UTwdPB}hvK|5K2T0y3IdNJ63MsGba^4j9b)f0`SKJE?Nz5>ZSK+zo_#c+Y5tqMtZwUY@YAv zf%ngK|DJ8l+)lNecF1^ob*({~-n(-J1iVkzu2b)h{ot-``-<}GMzeR_JQqIdzaQ58 zI4*j>#Grh@cLoJvA2x<+q>c%Pe3pOGWK*@IQSeLk!?4Qp4wd`Onn_&%CRKab2C-uM zU)zz>drEO1^|F6BkL*H%-mMFTT&n$#1-P!H|GwWadj#eSxkuU5vVOLOQ!w#Kz3w(@ zS@G=Mv?v^6iF)DLybVAqm+pCjF}{1N2pa+%RD@vFo*rDyH{v zMdq>xb&LA{z#6}lyiy6@eBJszrV}6N)x)Ta9}9Wj!D*c2G*1?AOQg~ZBvo~#w>re+ ze2dLIhTr%SyZvq6yA`TU+os=8zlt4;3RI`|04g4!R*WaPlO^H1(DfFa>sv(5kxWcq zMBA2I(@DTHPCsE(;^q|lxp8riG(;v4qvS-RWXYgn4T6(N&zT%=LaeUKsB6useTvoe z46kDho$_%+(2G;&p+d}ea}HWPI&S2^gf~A4 zNEx=!RQ?kcl838FoF5|YkGYP2l8z}9I$6whrdjmyFsFGuoylEF)4P;97diA!is=Va z3o9dRT#Ra`1Wpeyhm24J*6<~d%bcmF;`c{@W2t|4g-@df9e zE15jNeWenk_l#32lTtJtYxkb({8#q#CHz*=tcHg<&5y7eM{t-PWzvfzlLHL$dH&FN zUauF3^jUJFTP!Y**j%4-x}{=FZenHa$VJS^_>4%o%*nW25UwB+@yjfFuLW#gGMU6t z>Bhi4o8bdCgX?s9A%qMgoe-;<8-5-lgE@*v%gi@RjJ=%h>9W^_7)%wv zLia$lgQ4ZGSq79h{2L)q`fp=?@K=5R{S<)>15$i_16|oAd=_Z%e>drW9|Cb#*r)?t za$^_Zj|b@X0qolW9S@cc_{<_aoUqwH7=WhMouRxCT~B)@1eoOKdXf5dWN(9QeI5~1 zz#v#q<3vOlfVyBX1XLpt2^BddKriVis2GW|sYwhG2;> z3m7KEM;yfl2_(UKPC2nP=_BOf)37!`vE9fuS-voH}O4;8y4T=D=P4%lX} zG>ov=hZ_~}W5}q%HUk!SIK<@OZwC`QHE4T6xRsKfid%__OP&bJ3fdkahD!k8gr_8- zrXy515!U16#N;5hLH!d^W3iMlRS+QzV10)TGq`0ytXi2rT_cGqY2HfHy>hBnsw_qRsT^^v{h?v1U1&7GO$#l_t8ls8WwzJ2xx4se0qJb#q( zDDG=+#_B3M^XJ#r(kQwzj4n>1Q@^(s=cX5DR_6y+28QzAWF*|a`u^FY*KglFNVs)B z!1P9_9qq-pq|s%F?`_2KIH3=V2;A+2o%?^~_D{EibpN++|6jVDK|qX2NCI>_L{kY! z88K-FF&QQaIoP-VgUS5U?XYrZ1>LTs{jYS1P0fH%mI`rEO*7E#|9mq1rgpGzhg>R1 zceocccOyvm|6jL@I0Xnh2f`6?3Kw&alJGnt=5bgAj`vYvpJPJaN9BXh$%jQtg`N=) zKdW}?x|nAK!Xqc8=bYI1|FQO#VO6&6x9?4Nr*wCBcXxM(D2RfM-HMG$cY}Zkf{2uK zcXx?^bhr09r|$KB*lYdwu|K@eaXs^x!USfa<2tV~exuLlZ9JKTDniFe$ON8teo7WT z3Kkyd1|{c`mNaovaPSs1uw;}{w&)-?-8mD6VRbC&f#;Uj*n3+Gzq zZ}jb+>)vo}Uvh0*_Gw@BYFMMI&1X)-B2x2|d5pC^~c&J%YwdK;M!?{1(D(t|#(!uN)`juC^P_tp_1)UmwF<|em|nkf z$*gh1x^v%W;1I|&c4edRhjcF7Qs}jlV)%?D!`DKmwS)2IN4uOXaP_6{ncDdMLk<<}|Z;P^d zqq153Iu(oRC38xdBbuLQK!;d0ZtGPpxb~g^e1_+Bt#o9!a7a1tl_K4^eupo=#9owh z-2JQrQ|OdFjTilr=@V?}-D;mF>8}>D+^#ZAo#hYA2H1$qqgvoPilvUIX3Q}^s)Zz@ zN=&_GQa69-7xA!C*j9+XY?X{0(kPsVT384aIQ8vomQO%1!D|3a{wKEG2g;R;U?%{& z4z%ZhjYOkh*rs9CrRNB`u{=7#rm|sPzbchI04h;EbBy^pMcF}3GCeWIB+ z1`olk;kR+^yk5mm_z{{#lUl`7GMRmt%wzYKk1fYfDQ!UP@V6yK<0O>+5)ye zd1=vkZ1`h^`+hCY%XYbsi*kjl z3Prym+3L`9Xx*{NdFAV=o6Rcu3jpU7yjrGszZyD^cw@%($`+g^P~FdCjJH2Zmd>h_ zFLS-9lg|Dra-o&jIEmRUkH#aP=Uy+%-A>83{cIthIeelO+qMB>uM}Pb&x2Xtu3Og* zR3U(ONIb4dIILPDdkoT`>N(Rw&uW!lHfw*{uq;0?XxfJ)f^J@q%!hKT?{o4IjbP?c z${5ou{;gND3ALm^N^~FGIY0FWc3}Y6bQuLu%pZ${HoluVP9rC_qg(#NsM_a#jBX#t zU|Kx}_uPB7yn5j!+q3T5u^c(H>R6YJtO8yr%k?~?qTj~Vo3cp_rgalObErk_x<>W_ zC)jU# z4emMubZctgpm*D#dk@}$V91AqA*-G>^MOs3)?Zo!t2Q%7(gnRFx6?UZ_KH3m2PCP= zr)~B(tqO$;LNRs1fzQ<*%?Nqq0S<-Q_zsU-G}IXrX~W|sFL;@3e~#2JmV>HG$X96N~4 zRH+rNFgZuzGF#JFUf?wdV-WMeXH&u!GZpcOlW;HNu`Val{z&t_jy>ipk--B7-dIMX za<$AU`SfP0v)Q2Ap)843=M24`KZ$}5fs`+vxDTDiC9Z%-R`(=Ys{~e$L^_8z%+9e4 zHc=d|iQKj!2%jOsqJhg{h|6w?u)7h6-ylb8mrBN#NZ1pL%L0c>5^85DWF3elENEn{s3Z(=Ipy#7_H=*qcx`oW zc6)v3WU=eySKIz_*Vg6$x;M5uKY`AT{yCUhJzND_&P?C8LNgxWGY<$qOe4<+sD2*; zmV|9;9>Si)*rcFVF{w;ae1r&spZM66M)}AVv!M9I8}7qC+|rp9m_ONHBwXxD)u4(9?t&yc08$ambRhiNkHcJo6X)4)A;u zh>-rR0mZ{1B*7&j#pre{Yzka_gaH1>A_IaAm|Y;LiU*ZLI1Hh0f%JmEwuk=`(CaM{ zx8qrFC*wbAMedf6hUVjF+5IKSU``XT|3X*5ZbJ;@e?Ae?)mb<}fG@#%Jt(biAMdKO zy|)ngD*ENUm*Fo%Q$M^&&&^JZ$xcj5ft8e=nhaM`l3?f!D=9fKDJ3;AIR&o8B_zhi zC;VG*JuWsaHaa>bE+ zFevJQ^Mpy&2z2|uTq=Z8!72mhc33cS=Q42OF>>KGb?3A6;TlHW?)txr^yr3TPVhYng}|+K3q0 zLiH-Ux(S<_F`a@QtEMHeR+vn@dA#qkoDF3Res7Z3={&H>^(Mz8x5cw&LN>9)sb%Ww zufy|$%a7O4y9*~G?{oQ|Wot%P@?VS=IQ^Q><+0?&XfBr!His*MLGJ{vMR8twsh?J6 zSw3zM``xQy*0g#``}@d0-F~L&7Z78>5(AnX7&4&Sog06F%KgWau`B=OP_twNWW|=> zw(U!HjWcJumjgR~pKbr`+40-CZ5|x&=h|0;+SYtpm)$zopkoN~o=$D+kONhCkU(!1 zApIiSVPyZ}^5(UrGK4?v5hlR zCqaF?XC@Ck2DbDn#=ZLX&kP)17(EFbJ@D#X_3qs8AKVKV+J_YCrD-%^807kTAc*#! z?ZBZE*XB*pmQ{SIuLU%nH6th%Ge zLDa72$gp`67U(D_)-kDFhq@etnst>={ZPh z1uVQl{ibfimTA>0$Gd9v{Bh&&3ledyvdP^_DTC0Vsa3G3mb<|JribA|8QZy1(Yp;` zV-`pmP>2~(Em|_^I037PTK))B>gau66p!nIk-JU(IuKnzl)ChvfF*+>hEoCQ zvKievEt}xR7l`juD_KxY?T~-p#Pz69IkQWzd`YkRz@inkYS{;$HdwnsYw1)^nb*zw z4;==KqM*-V4h*DgVC?9WPw9ReHz=KUY2N|m12bv}3xmqCZ2~r66Fh;wZ6{K18t4Pl zWukfv3fEvhtW&;j*MICXvggvb;nlkZkwCYWWr^5ovs#eNzqN9D6q0InONSgs4^)eX zJ-QEo_2DqQ3CIp`#TaER!g-BJ-2%+pp$SVde@MAtL?WY8K5x*j3uC3Q15bGUvQg!{ z-uGF9@;R`?*f(rj)~x|Y)S>qPIDw!%U55_gm_{PH&AMt$x9BHe^8wo9(RTtj*7`CE z_sz9)A2_0R-Fx=kJML|m_5r)rb?dq{gThh$q7loc1!v%kR?MkJ*I5-#!IOizWf$g0 z!`XyPMyFTLiCx2nYumPB;V|G+;Iq0VlN!1G_6@7r<+GAWO+v34)iUOFvwrcO%jLQ7 z#j<)wt9cQ4l8_qE{xZQEQwo|1a zN+r$67j7z+Y-*QpTh;G@GsmL-xA@aq{`c(~rAspL9pv_5{QjA0$)gJ2cPx7L941i1 zPyI|+6V+=LHR?Aw-?a$m&hejbCNNE6_WsQ1|4r!GD9?)#$>=fRHw_Slkb}2+*NIwq zBlz}V)C@Ibkm>LoLAgIv!Mo9{3W|*Xh{OzV-29>Zq|3Bq+oK(I7(tz zX^tBOZ1<~l@)sPs{@4y4JB%G-{ARuDLE|Udp9d7;D?F!n&;CTM5;}N8@|;Fd+tGvb z00qkHmCNb!9tV-X?>Tq~>2lA`4alv49=4u1uzNA0R{i{4ecNz}3Z*r;>~PHn^&CQa->m=0d;s|1bvBn&BF*cJ2L6~yyR;3Zgd@3}2bqc&*f!`jpySDdOz{kr;w3D0 z4?+>d@WUbirf|v|15UTiaJBADUXEJ#u z5Sqmb-L7W1kPp)U0)v|fJ~fnX(5m_nsRc8tc@oRI0QH3y+%N2Axa`IVrxvlM3)lGx z9-k5ZTR$b^e?xyXj#41GYA}=OV`}XS6yhe(Pl~7JAam(6jb0k1dKRN?3E|xmh%-P2 zpV}sq;(D{h$0^x}4%SOmjCxmaWnC$?eSnG&xJw4@>nsL$I87fweK3b>@+q4*X6JAm z{i}3#uXwyt$c$eIxZFoLv=L@CDjq{>E)zml3qoEmES}TkI`>$#QfNg|ahR?mR0`O9 z60C9#1k`pE(#EWY=W(R00IEqOVoEIHg~w-2$SXsw=s_msKq_esWlSW3I#_JdL_7+h z+woXQ*tB{cBeEh6ENH0@R@N3+{W?0 zM6Yj8$*f3AtALPGQv#cipOIvJ9&FO2px)Fjv?6Pvs8Sy9DET_3iL(D|S5^tjm!wcx2iK2XO zGcm@HaFS<3NO&LhI*NlHQayQy4HOrcU&EZ8keCpchyag-oP?H`h=!DejuM}qf`oyX zloksESp@eB85S`uF6k-o)*w{$2=yrq=vDn zgb^YpOw$k%1L$xpQYLV@V+QZIpx&9WD7nGY4)bDK_lp$usrRKpQfS*MP zpdLJoyM_?#Jh*r;4F?MiIV_B-$0foeA_wV?8Li_H62V9C2{8s6_#A8j2nfK1Lkn`8 zn1p+z3ywcXx|fiU3gmvZ@Vi>%S~>FYJM!owoyS#3ZerXzf0Zr9&=2+;gbEH3h^os# z@FQu%$iqPq-$%ENMK{*Q(^8U?LthlfzRHcc9Tygy8ha=4-SedPFJM8QH0f<<@|$NV zZ$nct*B`-340{YK;oXzO_fMfvDKR4SefXQ0h}%ig_u?bpMnt@gi+hxs_#`RjO=85m zq{#Of@zL1{F&VLu9}{A-;-WHQA~K?1q(r`ni+cYq;_aL0S79+v;$rWo$K8*QdIKK# z^o+Q~^rZBtq>`jhc}XeH?p;drP-VaPj`YTNtg}&w?Ja6$ONF!tbf4AOj(EEk%^elOX*Wy!R0@>FP&Sy8KB z*PM0zz}2P0kfr@+8|d@(<7gBO7+TdY=#mU8ruTi#<^Dp#>#h8)G#-yT4Aw!sfp4@w z6q~14c-4&oeZ@4s+^25Fq+(pZa>BH96gZF`HB%mS7>vw6-TsdQ`A@xjwl8~BEn%{v zm9qdyx9wbkmen)8tASn1Alf~9R$Mz4p}Z-$b>&L?#@W^tz`5HrgKcKrzh%>RcwZ{J zM*i{#*>jPCg~Mmpwyv(CFo-)nzIlE2ci8I2n|<`m8frI+O1#N-2#uDI(WB#4ajEHd zo;$iVvgi2M(_&US8ZdC=(zOMK7XOj`3%%=}om=O}{($w}yL&5O$#3d7lZ?s(Vi^e^ff9M>~H~EWX{m ze%reJ$h7UiuxUr5;$2(hb&=>!xGtAGp_nqQo;H^qCeRWziP|Lk|AhwX|H z{d^Iv;$huj19loiA=(MSOem9bXg(5)YFGO-3|tOxsKsnu1HZAyFse~J16fYfZd9vi zk^6Bmb8sT_rDT!U<(iqJLSaoZ7k}_Qs}qcFRE(^bf8A(MxFL`<#`V5c<$W)-VM^z8 zn2sGQf1BewLnf@J^k*ehPS^W5Ywi6Y5 zUO^X-EF0D1RE^4~Pg}PhoSuc<(C^cuyHJefHNFQsIJMjko3=HGFl&A4Qp~JZE9o}v z*^TF4S+icOAL*py1n4E17T}Jb*}}ZQmBOY678DIK0m2>zw-MQSH)MaMXD8{?RF( zl1y&1?K^VoIl{Po+P8p+;@Pq739cI`+iKl5E}7E(G6=sH@aX&+R+QgWn&%F?3?9K# z1er}oknSy8obSs$yN{tt0N!All|OYFmLRcc)4FN$ZQ8SaSO3SnR6-+Ubu}{P!5PKs zmcrtlX;ZUnH+JaL48HL}t-^7x@b8KR{Sb1r?l`n;KhdaLgao3XTPC|(mN%%rjxCek zEoc-Kem5wSz99Q$OQQ<%+NeY0fp71L&esv+tSQ&QBd=LhEo%bNy(E0$qiH^%-BD9$ zJ009}DVvdcns426pji1^IJw`j3l+W5jcC0SyqagXc3%PS+^V+*B_mF-pqZc*(QF?weiHK3-%P-&NKVg zmBVTYHP*#*te5k2(&t^9P*D4(-7tlQ`h!iMf$d8Zs7~>KbXB{J7O(fX#i)S|%Z zRLy9#{4o;z6Ft|CvR2Tv{|W$0m+B0;3%`1 zLeEX1TH!THDcv?BsCDCT5U&`!zZG*QoW0R(meUXd@D;JyqD`n6ph(UI>QJy#{@q2cg%(%97fk@ zb)e$bh}is^WbugpHmW&-3P%kHUaREsisH-~5d8d0G^|JbO~25c29A(&_S`vm6yQ+h zundv&i=+-nV~?8>DL&*#n#a<7hR6ia>H5(s+R{ndP)WE#T@i~>2!sAjcD;)*J*Lw- z&!PK}gzqe*M~PHDd3~}dbwX(Tl372^NEPohn#EEHm=Q>-Av{_n5-zynPKcC;kVi6~ zcP6#%2Nu^Xu*X1go7mM_GSy&&p5_!k3lpajHJ1e$w=6;{NGo9`rgMgfSqGa%2Vqu~ z2zpI%VNTe-%_JS5<+FIYH$i@rSw3Oac}HUqNG@T9P)h**UGRK8v1$Q{S|P1n72WMz z_2LQj;vxReExdITOz*2sozJDaT}h{XkyzQ2SQTo%T`AQ9LA29r-k{gIMr-i1Dx}A($kA=^GfmI8iLK&aln2^l@5%Hx|yK_qQHmRr+ zLdAp7Gc$-P63|OPd<^{jIMSFHFRqXgnYb^JfGq)!G=r)iwVWHRg3Bo-XF@(rghiT! zPYHB8%;Ko!jZfKMLCmj`xjbgHxsI@@kbx6M!c5BOG!>6J!lFi^8ce|Him)5;2izgM zdWlHNnu10fpG^vjiWoD##;2koUR63^v!sNTiL{qbC@6HP+U*bGWWfu zNF8cS*ARC5XmMgO%Gt-siRQ@wa(j-VcmzQ=NYOP!fFCo##=^(OBf|)CEK)o|dTauE zu)Bk;1tFnA$jA{2GRz_+hw(TbJ|#T`H8w3BF&PMZY6y@bgp_0uL?tAL$vJ{eM$IHi zLN9|&B}vAnfJMWDP0LP1&5lEQ3TTjY+_DsGk_ZVGU_5CAv>}lSR++zw9h~+sY^T5? zXCt5vy}u%U|y{PwT~!h+-|F#$Fq5dnyH%$>v`f%!iU5g=tSoOf&@QZUaD;emz+ zD?Sk`F8Sa2JjU3KIYdxZMYfLV;U&l!Aivm!+%6>rfBSCD|+N0*;{JfO#xbXK;Z$8F+_#PhlFe*AJ5^OEu zX;BfF6&aoy@gXBJJTodHCoURRHt6v9=&bnY^th?0GS+@otlu97z@(*X=X4@6bmDUK67qDC3iMKn zj55m1V3LtmWs+5AQ`82FI~Zo*l0zMnNd3oeXVyNCj(v-h6 z+cwXr=G5z#^=VWNST>J6nBK_TL6g?@i}ntqS9h;2?%Q?&+@pxwGmP62{x(Z9j{hNX z{sWuoB{tW)mS0)}e{MbBMMHYV#M>s+iRJK4Dfd2W&>0x*6;0 zNvj{2sXMsbVUX_KzU<%lE1(@}QWs#f?$*8R-nHb@xdd3q!0uJQ_TO#|v!L+ZI+mR} zRxFx+nbyym)X&+qESc5J*|)C;PNUjsKUm#vm|hA4Yx=nj)Ouq6>gv|><=u0wlYxV~ zXUEX1Yx{m}b1IQvWiC7*XJO{h)3`RdY&DA74WUqA3K`PN!)VYTYG1Q@df+f%Y|n4> z5Sm%e4DR{$ZJ+Mj1t5%5*Op`VHk{78_3s$g%z#fDGa&6fvh3Q^u3d(~I}m1U8<%XG zmw^BeK4-9A=#&7FeoHQ~$+UC^04bmWfLI8<=W4YJhBeE8_%mx**RNXCESUz6w_*9b zdf_>1OOCe`L zq3{=&*m<9P(+TfUd)6g+t5rIo#i#EN7^>CF##O$JfJX&0#ZBupsh9{DJ2^eL4>HCZ z5SIf-x)syvrQ>!JQ15;MvJgrtB_EY2hW-$~^Hn#lPwHvC*o#_`548d@wKCaV+Fz%I zqgs`chrqZllG9@_whb&D*q$gCO@JPgc-uhfAFWqBZ_t4X7c9a2*0Jdj`h%>1Zx4CB z&OO8OX}juQ7Y2{d_8d4=FM|moc=G7#ECy9=P&}=cH|p5B4Wm(blA%t^6-Xex8|pbN zSEf+E_7kD|RWf($ESeYfzmF)tVF-Gs?J7_o$&rF(U)x_9q_>H{m0MdPYt_l|Yb3T#Q>`7x`RRfz2r zNNlsOT2;@RX7NbnxmoH_vFbi?0!0HBRr6X|Lt<|m3=4ia_n?{$OC}S?nn}NCZ4(9E z^7*d+ueg(B+hEou7XsC5>nf)W3$$M-I`T6j{xkC&p4_R(*fn4 z9QVHfzr~^ZK(BoZM)#_vGwdI#?HhJ&>vkb7VN$-%8k9w#_+H+#LF#%N-_>SDk4nXe zIlNaTh-$F)w>hUtl&`2493Y;(`|h0wVE#93+2BrXQ~CPSq;3;XJlql0+Qs9(gU2o% zd+-Ydm!3e3DO;4fUuaP{W12r{)w>PTY>16}4IkLIE<5*ZI`pjj&7vk*ql)p3@Ov6K zfvQC}a9l|8ZQnE-+qwqrRC&EhiS-vpQ2!xlM}>orE!%-Tr=e}9@eTWF$gb{-zO0nF z@s;;_KAe(xPog^Mt=6TpHj{_eqg(Q!-H2kiVoJx^Q524fG-~FRYJQmy9>GS~wqpmj zoDO|Jl{|DBJMf)65sxcZ&uaD`J#y^d@*4RAucLYM3Y@K&x2#%2x7yGN_sujqc^j>g zKAybxGjpgtw82(wlKI6u44!z89>8)R-hDu3gOF1y7jAk&wudwq=}~YLbL?Y2*y@CE#{NVYnRJr zl}N64jalgew)s`w!baJ}9i=r?u^oK%2Skp!;DeGVT!C{ImPd^o&syb6w~#yv-EPrLRQUZA0lyWYYzVXc3rd3kI@RkqQbA<8S5Fx~C9r%- zXLRM1%40<447Gj;jl@|hB?}^5FEW)70_EFyDo=S_vs5k?P->mS7FEOI7bIp^C+D+) zV{}?28D4i33$#Dh@Infdd(;rK_wPIsdXAr z_C$pB$eH-CICZH!i?~1hWIFvrH)WpF>kcApMCe{jq+23q6eX_p3gHq)B+Pl;tEgR5 z(>S?j9hX6!gkL9tS0<6X2bH7?hgKlB;{zxKW-z|T zVE&xkDV)Y3nZ+PhL_c28E{WVb7XM;0^_6T2w|H*<2!zj+j7yb)U!I0f8X@6BnDh`4 zFGTJhr_MtL89!nbe?-a_;gG>QB}~AkfG=Q8qv!~{H9`>!5`I@&0Z%e+fLO{CD`->5 zTQJFcGe|f=Un(h|93F=l5vMdZue5-HJBhe8zN{y+{bMXuKPDq^$Y>FZdlIRiN1#NN zo|jU@oQPK&Pgs@9`#G*w5U!Lb0gnY4hc*taAVN%!kW%81kgy@N2&*7RQw=e?i=ao? zM<~N8id2u&znR2&K7qXZjl^vtQL|((8tAXY)4AR>*4NTklr|LMwdZ5=&k|kfVqj-dy?CWy|cdoev+zWPl@yzOF82RgJvNv^<5nU89!-Nszc#*SMQH#ij z1+o{51n(A**hM7z7h%`{uYZ_>j$*PY>-S*xCNn0dkgLdtKIG{PdDA-PIAC`Vp#bYR zE(J(mh^N8`9coM&xDhHg0t$M3aynd68XOX8aLd3YT*o7$MJO0?X;=toSaB#BvB~JL z$!T#Y=l~-Fp9QxKHLC(8n-)Hu3J#SlF@q!ps{{@mAJonw zH>ihVR*aJe?j8|2Hhc;qs~9~GKu8<}A2O==*sntIj<+!L^JiZ$5Xf7#$gQuqA-SXv z5^-2XS>Q2)LkAt4N^7EMoV&{)~GkJ0h(-iL;# zCTGXTMn-)|O$bj<2v3U(2Y*XuY-Dy!WKK+EZVYJk@a%+$oTRAS)R?@qSh)O{8k3z8 zU6_{se_dZQGD|YE{?ApMoBIE(oV3D^sreZx*-3G*3&==Lh)asi&Pe_oA5)&5`YAOr zCo8SA=*#0XvZkIc$dyv^tEGfCcL*JB!;S~D7yB>$_dn@&Dh`Zv|2J<3-TrUU@QG0g zNMO2(gr#Z4pma%&Rze=*YzOPOv?^F-K)16hXn|sf#iFdk4k*aKx*aoe*R|x(v-+po zL11$l*m0XU^INzJSbFeUc*5ed^bxf2lXeM^aX&BVdLB@a|8zT_XRy%es}kPVqyz4V zK;RT$UK#rrb$KD=6nMqXzuP6x{vTXQIBGRv!RY8VO`J4x7{Rq+n7dhmhM`mFew2bvF( zMM9!gBa4mln=C8(!Njhc+o)UAp;6J}Gqm_-X+M7t&EGxDSXoawL?3RWmMuT|pM4Sy zh!*qvAbm4cBc@dRQUtwmkjRDCr<*4){n~lBeBkk|K_jo(<;S>h-JDb9lv&l3LFKf; zcc@;P!ie_TX%Ov}RpT&t2ipupP=WUd?sqV>dw2YHXpPVUsX>d>|70O_svb(@AI&_aHrf6Tu0LNg<;A8txnBoEl(zk2Fw+p1yu50HO2rvv98h8|~t5Dtw{s)`R9jlIAlcseCz=m}0 zId^WtJ_3}Lea8-9(oL#Y-I_KO(%Q`{f4Ow*!Uy5@;BSYvN096P7Tip&Xae*wETz05 zFk{&KExs`Nke!R!nJq9|sv`)vzX&-eq4u4+;k!0x;x(C-2&S z0B|1D`bC@Z6PNKnpi;~~j|tq%XAVy1xmBnX0jK9J3eml?3EiRz&2qT|y5HvD=gK4v zsDBtTYFM+KLv6Yaq>_7KmjTXaq1W~55lzP5mJI+-QnaRBvTk3q1NBwlPO-t5w-3Ph z?b^I_c@l-w4eOfUy2X=VJqn)qfiD1*;L7FIydsi ztZZH8fa;i{4Soig<4sy=LZfvx;NowAf(|n0*8`r@vwX679>DLKa|P7uXHJ% z2IZ{#ZP;({$bIn0vj0%CVOgPQ%(LgjbM(Nbb;+)28MLv+=Mk0s5vYYy`})(O20pkB z!Dq->z~0cPe%_{i8!X?Rod@3SyXFtqC7>ix zhu%G<&%N+gcN;!{I|j^8o0b)Ls+~Kw0QC>cqPX9yea*OX7Fednb<1EH(JvhGgAQM~ zeeWS;LVddr;f*Kp<})1PfXamf5r^)5FwZ!2Z98>t!@KJY;76L5CBquz()x^x<`fco zCGJ*&t;M(X2rL#Zef#iMbZ_1_%%9aSnuq+RLFbOi_=!=;3Zq{Jn@b8*TzT|wI!-KG z^z6tKZwsUz$Q5ka_WW@lJHou5fgazu1(9LU*s#HL9!2%i2Z30^{`9L+?;-5GjM_H9 z0;K+JiYuzdwrK~zMEVu0Hm%3vp+6{$69t^UGkX@%dlypM<*UD+WDl<+F?pyO(+cbq z#cE7;zy&rhEt_DNvFSgSfTDr2dC=|pWxqudTZ}8_AfXBFedsIzuN2t(?MmlF?-w{# zuX;A^fGOR+cgGc~iih?c+gBlK3c4LU?N$Y|npvH&%MO}FtqR6P?tBUW{QfYc$Wgt5 zUfADV97oR$9Ref@UJKabLD`w}@P^Ikn!~`BYFxYWqaTW4jm{88=-iWyD2IYwtMNVe zc~mE29MO%_`8;xV9EHLKv$j|m?=GfKc@P7Wv>n`rZzz>mrIFndIPu2? z0PLOH@E(8@7U-K${Whl8wB$2z#D6!7L(@w=uT!pk!h7P6*9@GA^mEdxc#Io1J!_D&wjbMr_BYu2LBIjLb{wyMKsA7U^B)GM`$D%8;XKi0`h@dZvVQxH zL`}VMYYvqeIgqLPZCJ8J z?3GRKoh+3Hgvl|1*PW)NupL818~06{4r$!qBdj{&!6~d)iiO{GaXlU2j@{vX+Dj>D zO)h_x%J>$pq7$9k68XH!nY621u5dQ!7cYLnZnV&;te?!3OW#Fv}d&NPU;=%+Wjj!^3o zYGu=zwoqwB(TUna%_yDP1yQdSBJUFAoGEBYWApD|3uqO3*UK7JM{%o&$RdZ&v0D5> z1(w|-gj*e9Ri;yP<+iv*u6habq&SjysEwkjOdc^?zGXE3z~+`f=N&~K5G!!EfFUqd z;9@S5(H%xvCo+C@AU7gZq6C8W1ZvmlJ=1wCpED^1(CGw`s(In_svxvNc%144{1%LA zE=)Skgkl!N{7%$DZbV!IYBH~KGrbZ!RO~Px4$E8YZ5X@>B0^mww5qok06AFHH zgq{nbWFVko#Af3KFEislGnr-@!q5{1p;#r?vx zmuAi(vBSu_PU5gmy0CV-&^ogF-w1Dg!FyUx_Ns>RO#^L2H*NGdarhiw6lSYZNCU9cMa9&T)hfT9TZ)CZX;ce^qUWYs1 zNXYrd8{}~t5qE+rEd zIsHG~js>-+L=*@fjO!_AxKxPQG!ZI!ghB$JMwF0-pY#+zIApM>IC1Iu3E3p*#I$H7 z^$MiqQYDU59gA8M39x5Ee>fG7lT9rH(s(Bct;XopMC z?LdGBRSzB;@Yuupk8X#r#mwG8^CLJo6p(Tyrg;wzaQKkqW#A)l1?R?u!QARk-xzep!cm=vzNP z<5#vk_*8Z=G0*2+s>kc3tLfh_WEZ$qqp>uYWUB;;c&ez9baVEJAdcb$%6&-?BcQe-Yum626_%E@OThF4A~!5Zm_n`)kRUcte$=#KRmWd>2pX5BY>aD0Tr%H{cVcliIX1 zhLmFaq0CYF)3Dz#3Ij}&${CX%v$id35Ws{wQKzQgzC#B9x3TD02bpKqwx;rR#HMW> z9KXixORxj-?bwlxsNs3=S@dNE*W(hlyOr|sLl6lBFOB+_8I3P<8lUGRlZNz?rlFij zzh?_V=agRm%XlR(RVW649nmuqgd$!LVe*z5c+X6Kvb-r$6Ex>5EuGu#&DyBE8r8mHy5nw^U&kq2< zQ~!Z&@2+aqPjIuJ?m6}wK^%U%P7B zqJ7H+hOQlZ?j5_P6_|~{Kiv*ieB<09p!7Sp9O{;AsTM6mJQ*M-I^PBjONK$-1F;|E zrCr+^40|Drd3xvsbhy#CF~1=c2L6y}1{0KZ{cpRfsetZPkD+6Sjy*V)fcxeHCaVwM zyt=kwCkW0NSU^3sZe4Q&8Q*^hdolBxd4=#c<=8IMuk*Zji*-{*4AVy8dzy7`f z1z=-hR$!fESCaDVMvw{5{27{8su$d$!mJ;3`!1Z(cn$u6N(F(3pS`<}U&{+(oAo++&t&A@F*~9ZYs8Qk^j%loE`OIn9zfYb(dIARQ zfNzDtxNHBGCtMEi*$wSj_iy@497975%-he6pMda&11vb%0a}rM`7~^?t@`$$yjA2; z9;c?SRP+xxWq|u1FpF|N`2x9A@0lYA#lvzL*oFn)6C>UGH=T!f?MC;&(*?UZyACK( z1$5OG?BKxjqmk1tpVQ(rhw6^(&|HjBZ`~A&?^L{B!FaVm`a_4+r!}3}IriXhpw$_D zayidbv3k_<-Rsw`K$V*gl$*9RYu0RQ_Jv-xvR}>T3vXw@L{7s3?M2u$^dJohaLEuJA;O3- zhRvVI-XQ|9#~rY~qevf$U2}qbUPIz1kT=skEI!w|3U-NbXI!*$5b{M&Xbcd2AVmelQYDO5eW1QzC4D_Pf#Qb^)gAzh7 zgGVQVN5P3rK#8%$5K=?Rm4tztkyo0ATLQy}0h>Bt8!?(02bYW!p_Ig?Rm7r{gg?T} z93#|Wa{kxB4pJPW#z9&`G!+M2G;oCoW3Yi+;t;^F9dtVk+rftqUxm^9;F-rKpoEPG zfA1$`pCR)%}K47rz$Z*>*}u>sH}A;#km`vMY7&=rAG5}eUr zIFl$*Xbb-17H3Dfhr0aH4}w#k^e`ZCM#^n(wP0Z?EY5@wu`f zH815udd$o0(5o3wE+yOxj0`#b_KN4rVAtmtoS$8AzI$5lj;}7PTi)6?y|h9+G_Jd= zUvpEt>8KoHuXxQ?{<4+KB}-{oa0OPNrDA}&yuY!`Ib-=7_SzBWU5a1bY)=WRNqExt zIbq;yPDSCzHwh81Qle{rlvO0eKl0RnXe7*iH5|EHi|z3makzmitb{pD_%HqU|DoF{ zIJhae_<@B^%_B_BEAn@V!o2;TZpVoBzq>>%B(Jb3K=1e^ne9R0*x14LW{A)PAX5hUahEZ`B0 z(d~XWB+lHFI(Jvx|F%@n1IY{bMf`3AdB?5$)l+!Y2_?r^Vkgj4m5ZRI3<*0yE_xRI7MGtOxxVJDv)F>>VOIP+q!AZyb9PdtL8tJ0H_H6u342&OT8}Oceu`d z=`FZ)kI0zCj(pa^x!2%0}M(Hf*cJsz1Rbp+)*f= z(fT}MSHA+F7~kPT+m2QB?_-+fGk{?PiwI^mUOEnH90V0iN@3e*Q84b*vTfgZWLUAU zTeStGZXa+sR1O<`>GK~w#%RSpQ0&_nmrmCXz+`NiS0U%plkIZ3())`^2+-Pc5zy_B&3UyVf1+(C&mW$^6yr7+DCe@|<3k=x&YhcHNvw zM*n1+AM1AC7W5idq4Wp5TSm1@umv!!T`{a)GVj{68b)<`b`)NJgB&sK^?Yzvdo7@* zbw_gf+kBswc#{_}cBa-XAgubd@49sym^N?fwywZrTf6p`{Sazjy2u-p=2*QB+;}k9 zyLInEkFEKS1*P16*h^Y>9b18ws~4rYSWWHwox!t|$}UgPzlzVJRN~wZX4f26!%#x2 z=K#!c89ae~6J&nj`~q^RFo9Poo6#&^FbBX+^Nx1;Pk4-8BPVWsdltRhE`tZ4QB6uG zflcH!jJot6|MSU!ZUPD z9|h7K^FqL;yLa1Xa39`RXM2yq81Ff?<2tqjq#A19IOUXHW9Uum-x7XWDE^_$W@7uy zI;t5pO5zyj+Pw}h=;?_g@8Mmqp&g%*J@@`ir=B&Bp&i)xfNqC*``KAkr=VLotsZLE zz~$l!kFjr8uX0+yY{DF(I)F~<-4lJ3OD*Lr`0NY3zHtA~jvO(BqR zfgdUERk7zx$&c=V)#%nd|bb5n^fZ#vCdseg+NBd zV3EsBY_3&wrXR?-co1G8Hjjt;iNAPW4pRhuCo;)q(fCSX+`ws4dP*}{_I{sK){bb} zjQGVw23{?CwGi3hTn4*$B${`KHSe&TiDx+z2X-J5>zhn2ujuXGGI}O5oX=zlO5^p5 zWYD|F64*rTkV|9nfydzq!li{!$uOGTX1$cp{IZhP@ezrXBaNIFjf^usvpnu8SsHm) zdU*#%ReN%IGa_+I5>W?oVS8*2WeO=3a;3A>DxNe7HjJ_sWIQ^=oSN923M67Gz_ce* z3u4pRGE-o1mTrLi0DAFQjjx{QZs-91D}Esa+`>f)u{)O5*-uFD+kE$J!Ebl zng4_T6D1l!@q3Ptx^<*v0V!C(F8Ga|vxub3BC&Hw{2UTJjwDPV2_u-A`@~@+aR5ny zj||}?^php^P((LUg?%S|nui;bKzgHwmN=k78eTohrwcUA~85VWhcl-b78M;HdI|Zeb?(XhJN)*K|?AFWnGA_Ft z!6XEc?rv#8It6F1pFGd~zhCV8#eW~q-X7<{F~H0)%#6Cu@441z3508jY?78w(Ujh3 zD8AoDd5g`;b^cC&Upn#i(~AQqGBO;MWn$8aZC^Oo{X+n|Wa>p$YyA)X`A@o?O+uRE zk8bCdQ|9@j+qo6gxa8Eh6*ZUr?aMwH%-dm=fpizpF@j=;ZWsKc+a*kFCI9Gl_+*xs zn7Q-6bi0h5kA$O-q^rM-doY%?M~I9^n4E8vVn8fVkV=7Z5berAiRxkN)xtL@hox#n zZ`O+60iO&|kQkw_Ox(R{eTLS$oi_U~9Dkn|apJ<3n@_?IU$EP_Fa1IGwpU*^zbx4L z^wZ(o>V$jmoetj&y!hPp$PKGqXA*C{)^PSS_6gIrcIKB;mC`X#wQ`iTa5jldwK;Rc z{KO5@6L(hc|Hts)J?oRt47Ohp@Y=}en53F|R(8t;-K(#5_D^4*Sa>!y`)q3b;@HfI z;rW!7F_>EnkG;`acTs!e74H|7enst?XYQsJHQ$(^?X2(HQvV|=uf_b@d$Y_so0m17 znT@Dh^8D21@v${Dw|jljkS}Ua|17T@Fd@63)c^s6M-v8TgPS|kf6$WpXtr-!)Hj|}^Nmw9v*G6xFg*SMfSM4Lo0rW8 z)zLyq=VEFXVw)DC8YknLr;%dY&^VXcFbnd`y4vZOYDmy2kHR0GUxz^{gb2rc7&0C+ zUX1-Aj4>R8pBd3wBnM5hx}CpH!s%+3-R6`B)BX&u54<6GfPRJe)y5#s5qre)Et-Hm z-oI!9vtLLrQ24@Xegzc#w0zv)oi~iDxqcfDs+#b_B)^hmcU!#e#5CSNe>ATAms?gZ z@{iz+SmX_?ebo$?xasru)lXVc+=F>Ly!!5+Iz4i~LpeiqLAQga5mq;YZW`!zx5hcs zyk4BH-$fxsyNU4(6j$@4~~bGa+8mzz9lh9p-l}tdH@LBZ7G5$DR5FT4U{uXC z$o$?Veeqq$qRs)RV)?EOx_v{(Z#2^S7Z0Fv3*rY!RY)Dzis{h0MYs1ocA2f%2f0>{ z`nI6yasnzHX-cci25d$E|ABuADrj9h4Vx5z)6HHrAQK%>_QUN<$J*Crj`>YEM#0oQ zp&W4jxhMo+^ZQMoHTZo5M06HUctiz2{WOQH9`COcc=gRb_5mORLpvE`Yyeqh#;st$ zCcDewV;`uM$gA3Aw*>+MQ$G`d=<%n1`$r8(8fsjv)V|$jlGz{J^eeVw&ZnTuJ*y?H z<@dUp8SM3N5`=j>D5IgxzmZLFMI&kz%`txpx*g6XhYxKD&FJJE3n-cQDw;%^H5RFa z$^|4S6@bGG`CuNK(@@ZqDfN9Ee2%;TTB&&Pbr@$4+i~!ihdyAeT8CvT)=c6r~7f2SKmo^5#C+(^KKOr9!Sep z&X|Ad!xN5E8<(O9tIz#D)ib1zrJfvOV=x}t@(ZUMs%NuMIOS3?;fB9@^>fR*9nDQB zHHOwDOHuDsVW=L~IUmzcbAJ0>B=Kg%m$9IZrSQ(BHE&@jYl=nZSM>z$HnM3huy!II zx*dhZEt5dVh7?Y+M_x90(CF4l3uzjc-SJrd&{MazpMD)Qox>%fNq3WaY2hu?p-q#a z4ddZWlhJLn_!v|_7S>GGsNt`SPty!^yX~90Ro8Ry)+Oidb#tB-3of1db1Ib1d)LadPBdKNsFk z^RAuou0!r%#JhgdqjuD%ZXCNF_~)H!rw|a<-1Eq?XiV-*o_PE%_2X}_S+Fgc)w$jV z87%3xP0D3Izx5@}H$U8}Xr}K5q|WCcF^x!q?VBHFPx?(CG;1Hq;rBYDd!Y&~$tqd> ztGUiMPe`hx z3sp7!f%%;R^a8N?ePp(I#iDmZ+4H@4N{Ps&9^vyJW^w z;@x9T zAT$Eef-0gPC9LhipD$}*f@!%9Lw zL&@wOMJJ6}4}*G7HW_0MaaoGE4!=>r3a`DgQ71SpBM31q^f$3etX?5+M&VMTaL91* z%W{h;QF+BsTEtGz$HLAE<~RZFjFJ{hK#bt&J1ep(g^Iot`MpHhIAh%sa}AABPNS62 zsD(7<92)U_fp|7Y+#h4QKg@EYgW+T`^N}2;ec5vBPVsrAGa304QpN;TmY@^Bow5@Y zW3Lgip*i13psD-im<2(k?^PZMk$q@1r|JTOSVtDnfIWAuy2As{%rAwhJ2S5srtXY9BBZ69g^O8A zn@!!GUcr)4(vXo)fu1V-N3O$g4s#30jTq@eZ=>dvl^&)SC~p`!m^j%*^#}nyPAL$4*`!qxC zu&{BrS2O%xV(FWv-}077dQ5D8NliROu!!=|QJB%2id-raJ1U`2uAu!5gz#$~$PSwMmMJ@(B~U zOEIpwU!K-{zWX9vQ{Uf%NO>rjdXMnWARJP0+VDU1=RfIoc1f9k*Xqv5@W>h;|{2+zrezX%|~#EwaW6@b+aC zL*+fgm3*R5gev6~t`HEb7_bhyT`eLNx?MFaRV#Wk#_Zbbc4|d!F-X|GI$^hd>VCZq z`;}t1?s%P>{@`uewI?C_&N?RVh&pyT>df_+EB7+qeDar_j9Z=F1eq+ z6Mz4mj(4<%gTJ<=o6;(CZBsiPTMu=YK%bq*Jg+>^-F*fnL< zJ5hvcy6+#A%@yf9Q1k(B+fc=l5mM=j#u6jN#3;&uVu2{M|FJ55-Kr zUq`&Y3}LM5nmcIwwa+QH$2Gg#o*v^elzfcG{V6x{S{2|umKN7o_ z4$RVGM&=KU{n|b-A2PTY*1M>?>k_@X=?YUTQAI^U)ynF^yMUS{+mc1Ea$0aHJnf4x z!-Uk2MK(>r#eu+MTI*s;!(2ig>2-%}hCaviJD_sfr+Cz-G+uyo9)V9@=`FsAe&m2;7GOVM>p!QdZ$n+Pw5 zXorp(kEve-Hqh=>EBGovf&<$a1Ik3*Gz`*E>1$uKnmlWE&lw7Vq|fe#mb3phW?%Rd z@)BTe(BnieM)uDM-)r6c6N=5rs!GcYD7zQNSaxnj&HyVc@j7hLYZ ztzgr!`f-)c-3p_}4QiK*wf?R|50T!3M#D#KD(6cTP8O-2D>1m+2;V4`# zHaSBEZ+@(K-W^#w4zA8xpmOfjhgK|M`mJ}X%q6QM4Ltm&Unw25sOq`+=HEW0KfKC@ zVmcNfqVN(sz3WVBm`iP6im4k7F6;OG_C2c+M%k)Eic zF~6@s-;7}1?(yk+Xz5RcVWXRu^lui+?RlznEK~jL7yUa;$RJ0y{K8QJOkZAayEe7b zpxfcP$DSpyd;&9SWQ2`hH?Dm>VEYL#1PPYG6NsX*SQL6zPq=;_AwfC~3(-}x;V5;= z?!`^;Bw&P#7Yp8O_^&W&2c!|lG{A4_UvIR#*`~Jd!`ib2Dcv+s@y!Yckmw}6H>FdE zA-k20!cXp0^3$h&3DrwH8=k3c$&!t^FB<#A`0SwSv7hqSCs({2(SF?HQ%SzzQECPw zkZ;Kh(y6X3GZE!uc)Efbf2$pPM{(O1ob%JKb|LiJ81_wAc+Ugb3KS2#?yhyeq#jht z?9M~qlg`xw&4ZaM_rH{HMb}XoQCcNWU zMEe4^oS48b>voLXkxO;RYSjJv6MQn5mScYndlmMi9)u#C;T1vZyv{10{(Uk+acXC!^eX09t&@NY%}q%foJuUOBLw^!@M2# zHuvHw;6}ab<^Ur#*zwrCeAeJjo$j7@N{62~0M^t^lRcA1u}oLC-_C2cnLpr)PEo&g z^*HQa8aE3K9@RR28Zms>0m7&5!xq_%PdH8Y%4Fnde;QwvGm1kKq-G?2_X}I>1xhq( z02Zl1UiUN5_Tok-l!9(hU5?1c-sH8~%xfGi?Q~qx?-8HlX&F!x&7xQhJS77D=5;yA zqHD*aY0Ieorw`$ajktxD;y)Q;4%I{r(jyP$qQrgcH)&T<>td z+9MwRlGE!6;c`oG-&fhgpNN&AoSK20>W+k(o3!Tv4%40VM!PkV-Vg@6xGj$=``r`@ zyCuH+6K~opiTKA#5jQyfMv zs(bMnMDQ5|;#*Wv9Ud(gc2!3ZW7xFZDQceV+Cf4_5p?nvY+9CtQlPL|x|l)2ij`ih z@+%2R6=oH41-p$@lVC#CgVSU^o6QauhusokC#Y*9#LUB)b=-K=<3$Y4FzRh%Ht+*H zpO7(Rm5_vP7qo~H@IR`Ud`;486Ctw-{Y{)ors9|$(@8ROkPSqPoRTa;is))2gyaFb zA-MQq?Vzx5ll~c!W5P~wi4pu7RBb0wmqa0-EfmjmP(wLm&aO!Nhc9RsH@;%Kj?E;3 zMcs)I&?H!;2nIodi3j`^63GH0A`=rGg^7`k5jt0rAoy4q7%6{XB1{5=g*)}xQ-+y- z1Y?Og8c{h#-0q{_UqRjSp4jt|ZsSLWOGWg9G$c29j-7zOCG8~wA_U8yu;+hI+W&pt zPRA=r5tc{AB&0hNpCr8QOgyCBoe@<^ESz)#iX19d6a@=r@zo4GvLrW>!cQ=wFNv3) zf>u^ODw_Z!GbgC;^vpcV+M9t@gk5|!A)w7EsY~{>!g0<>Wq=5WVV)6=7gEEMi;bVe zxl?#hu}b9<#Mj9!0K@;6OI`NKU{=5Elfj6dixoQsWKD6841~NI-}Fy{wj}VnlSsTt z#9tTOahs4@%}Ki3>De*Z$98~`1Vb_~2++SS;OwK(A1@`gd^XG6@N z>&13Iq}%a@aZ?p_S2=Z8CF|}g%AP95omIs4aw5Hy*j&uE?=$P(Pt3bNK$Fw$$R^jW zcUZ*6H^ip5^y%3QTi!8leUF6;_>|c2dih%fE@N%Z!qtehO!_@p#I8(Y+e>20D`M+w zVp}G$6`KDw^Y&+y-S6o$3V_Gq+Iia`IVH|dx8jt?Lgvx3bnC!%-rQ+d`ORk-LQp{O!o4!rzW1@9d-C=C9-)tn3k@;2xsr5vuGRq2?DO=^Y^- z7^fJV2zWbmJ48Dy?&=X6(Uhtdy=7(e*41%4jFa~n{?YAn(dmvSZtVM5x#Rx(wDWgE zw;u7`xXUedo6q))fJ0})Pha2h>dVRE_Jl_{`ddzf-O5aSmK$*5AFGso0b37y#BVWh z3o`JFHjdlun(>#(?vsXl|MGtDS>y0+<%72!?tL*i|3YQQCEJq^SEij24%?-B>dA)2 z@$|;gl-j=7#-1}%i>Ie(3AH~k!BAL#Q9kgX&h~3Stf$ovg?=nO)jxi7Z2nUB*s1pE zH5am7UN_sluJ_7p4tUe(pWW=6)8_uM(dR>5d_kx0hYs&|ZEkOy9p5%Nylt|3*JAgf z&EZpr)93FlpTE0*?DqQH<6ki3Q7~wm^Bw=)xaIbuAl3DAugj+%&wL28A>cARa(~!Y zkeGL`kKF*jqn^g@%aCj7PgtEXw^!bHW$nJF(WRsA<->mEgPVtG(fuS`GM}g2%GmGK2bIyR{$AOTFrI4y= zh#Z(VphaPsz^oD_@tZEo=N*RE%E1yrDAnXaHKZ~$ zusb$5d0k-d;Aj9_9_V(`yiq*~Rpwtk4ag6iJQ(BqejNo?Mg4jaDp}2*cPd{fQ9f6K zJ{t3^ESi6QCQx(iUP{7qTuY!Q`(dXy&l%Kz+vZpX5BvlWQkZY!?_GT7l3Q+v z{IMrUaUz4c>~D7}7(g+cXVIWf`A^K-;cvIQRqF7jHmYkrvYWQ@Vgc3jnELKl8@g!; z-89c{eZFNwQO&bZ+K}A-ZF632vyqVQ?I?tuax0xPz160Z@hKLmfzjUyeN&qI-fEtD z?LRQN`u%sMeL0ZX(Y;gHV8TL!akp>Vyg%*)R+*;RnATs*J{jnC_}kq-cVONQo(x_o za#L9}fWsPWg{(h!xRj4n{Umfdd@`Yb zEbfr~!Oe3BrDA_U_7`CH3KCJxY(Uc@401uWzwl3ieJMDWWONrCSCxdTDA+Z+*Pyv8 zQ|o9JvJB3hG?lAgc2xuE@^!Ki!+r!D9m(7scy|ESUV%cR+hUX3eN4&^lM zogd_#&#D|PR>~eRD_96=q}jgc7IR5nVZ0eQCZx!X&sRx!ouN7(l(V}g<^71_a#k$t zE|2vteyc?F@SAJ4lrcM=6thSXG4Q4u+N;Ms<90qrXqYo=x-zYbCA1SnL;f*7+N^u@ zyY_)@we)J)kQXdQheUktSe|GVUH6zU+^LoPjnn@zN9f<2Ug!A3??`QZCx4&-Bp=;P z-xRmy8+;tr>YR1yT2kNej8A(nyWc;nUQel>?-ULDAQ|*tY3qBjwF%VVQyOQx#G^9_ z{d8{qR6^C0(AJ|@SSzk<#4o1IA*M-4N)nsz8yG(u|^E&2N1Oz)5UyxK*tQ5fx^+)fmeQn?wniM+%uG$UE;B zb~;A2JG{dGFG43;&@i4ucO9#20Pm^{ios!!>IH36=``IK5k3`G=dp_C2skCV?z*_g zCT0Z#HhDd&q9KozAsz5C0`e@9sth7>ETRfb!t(5r8cG7I1USGpmn68w2!Ry@2OH9> zJUnbn$Y(Bt`6yX)-)L+eVKa*{Gl7mKLr7bYEj}WK{I9(!@ z`i^ehOX6{p_zaDHew0{cNcJKza-msinbSg|TK=f_a=s_=i= z-Km`H_%1!S47coB7BPKB0Zn>NDP}G)#uaJ+`%p#I=(wdwmOGR=12-KLHyxWeJwA|c?R+eyz1>39b>o)e3N z$w1pv*|C@??2PDOVt@??%~EW5TCfuU9iG^{g-V+i9HkLgbBTy^+&gYjECc@#S5Om6 zZaOe_hsvb~+~%LxJbg6A)0ISOmf)UyCVQ?)?taO!=NOEA=J3_-hM$#`zAt;_~T>7Ki;cr(&Ml}ow_jHBO4XfgItcu!dw&9>rN`_X_ zZmrY|v8Zj^-c@Y9_hHxH&*OKU@QzRONlx?Lu-ScEhU1oui1T-k6*leoP^p@{*X+QB zpnqPtp1y0m@nH0sTOoT-t@MtxOxfX(advh3LAlTr>!a7=K2$s0&s%jl)9g;J+w)@k zJ2@7|?+E&)0Ssk(D=)1DB=gb8nn9@+I<~@F$S&}hmYN0bhzaVK)QS7 zk06d}kk{x@G620D^tm5R=;+V^yU#xVyKDY{&8Gx*8ikMgNjr5-R;Z^MZeAJ3aW&#g7Jly>sl8R8>e=*PVQ(M+14}R*8&>bRB+uW z+%hn_$JS0lm!h`SscgosXcS-#)TzJ^g9CkJ5B;h}BT8o@%V$BHgOA$3_$RWB5Im7J zv}hQ%|IFAS=}Fy={+GHrXy%C8#lVtD{5k=}6LEFFK@kc0HW3EVTQ(L`F%ee_$HFA$ z`Jm+>lL(7Ta^=vbrulVs3qd8*z|J`24grt?Rw2lZ!L>`a1>?4#MgqP}gZ^Q8w_f*3 zk@e&Hs7exFiQSF;mu}au{eDG1QQqoT{3ED*6dg3Njf>bySY)+9x5GUW@MRRUdYjCi z;IbvxPZP4I3dIlQuDR2xakp6IYJtwBV&iL=DHWOAsxf(7t^cUhscJB$b>8#a*veNu z?nM*nt@9Dp!=^>UAj8Atk3xCp+*ZGDow1FhaV-;(jpIH=lb91iuwi=zKu2WFdASx9L6?O#U5 zld)nN=c7Q^ubEk2Hy6|VGpwpVs-k~e$FKCZB{-VaKC8s83NDnOuYE~%GYP=-RZln< z597=twqnMs5%o#1JMN#d zCb{-kV%fCnk(VoPw)hn<#^a>mJIyAi88AlMFC&I;`fc8H;2b2f_cwX40+C-fi@~yg z>tt{XnN7r1r*QOz3;)H z4+g@xA)e}p1{&|)=PNe7&`rI}q#3*_{^QDhXknn)=FORY?zMbB98gP6kFik63QY*& zy?yNuubMHBj^DOzG>OZ3Vmlv`+tm&lsy|V51?CA%{@7N4c}P~lw$e18H>^tU&^p_o zaj{%^XP*4lPir4_SU(vS56@R#_fjGgdy?E8dwUH5I83hAMFH;`RdIDo@D*}brTS+_&wx;?1! z`Oq5o{a5?|&Eigtc;w#-Y4>;Z(GokBe2WJH%ZI}orl8w{NxI{-OB)RKKVo`+gK3H0 zRnhJ5Rkmj)*3AWvOeYUcuRi+O;PR)4i3Ppvu9YW?W09=s8INgMgjLC_Y1X4{!L@l7 zk!0^Gocqk+NBgzR0V#vQzF%RV{>?lbhnaq8#@iBUi`WiYTa9WXkjxcp! zS3VSkGS=E*iM@B+UVX=Y3U>=M7Uu2PgJ9mi{3^gCgLykxNs*Nkh;n;XOoGLPQs&^Q z-$7-+ENT|5@rFb|yJ}WB@hbXob#7J&#oYk4)vJ_dgSM$x&1%v2l-!<3?=D{3Nz=`l zw#c6|de*b*L95;8vA`Od!Q*zdOQkBW2V_&8$yl9`*_W^JdDf>?8EzR05yLduDQZ+z<jJszpY7i;bw6y4GzwYx`tONmI}6=G#Hy~`o>9o2lX&k37t zt1?QE8(npzL_G04#rllg-Y+s2YQ+we$tLGY#AfnlWUsCn*Zn>sboeEMVho$zF4OW^ z%}b3Eb~jYwa*6oYObWp(d@gAp7}VU-AQ}Hm!hS!$X|k}a6z>Xis-!uKiY~8;F{gy8 zu)HiuDdCgkjo!7kd|W$kKyugLRDEaum9~N=UR+vkY;w+wYGJE)Ak2G*+4+d`v z=Y_-0N^ZKQc>JN}`Ap?Q&$%Q2;tD;kv+n_q`+5G*e|V!V5&GU-(rQwO!AhGDJ{inw z_j9O53TOti=!Ouw?u4isyOQl^nz^Lp6h+^Q=jy zSF+|-HK7;Q=2v$TGYKW+%=lJ?Nt&igTW0WE9Otw>D;02yPJ4rh@irmD3~t2`F_Xi* zW>>|mkE(~A=eOO&g6X=P(F*r%{885g!Y>1xPcNm-t+I*`SL0HE_d|*h5am_Xq)5wB zBxE6R+4!Xic}aQ&1&Wv=8?QVErxG)(0>P?4$E8YzZ-j}8CL=l?VbVj+Crd{WB?tiy z;18)(_&})qVpKs1Iu0HtZcZvU8^Oaz@CvX9iBkl`!CI$d7GS0dv#^LTP^hfjTmVth zvtgFZ%g8Fg#*U#YJ3-~(lv8Fo@)ukC90LaLv?WT%6!BB}>&o03xw31*~ zCapUZVS08!f=iJ>N>5zRL0H3-vO*R23<4w_nwU7{m^dWpC_)T8a$K^;EFxN{UP9j~ zv^paT7ZZj1zi91DC{!gsMe7r}k)cCgl_bfN2MzRiT0p_UaRWO!Y^QKAv2rl8ak8*- zGPANVuycVR$@0er&q(DZbvs3nx37tjMw4uvCQ|+;5>9jYB;&!rQ4egIpWA?avlCecPNMcU=Gv4 zJmy3BltcOS$G$S2_{Ma)l;vzW7Q>lR;zSW~tdRBeSLWmSbca3>8SjX_S;W3lYG-3yGu1CR8$9Z(+UH$9-#r@y$=h#s#i{MdD5_k$Rgw_8Dc} zNA~p>a5_LFKB8aunla@e5qXU8-pgrW`ah%Ev7O-+W)>8q2uolA-p(l@hs7=?!!4zN zg;}RtA5vk_CPT3zO znOFtCIMON;nk*ZTAn6|u6r^I$J}q^6 z_BFL-Y+cp&txbc8y+5`M%*5ok%B?%j?UcslvB~`Eo7DEPedRres(UW>PG20FxiUjr zd;6VbX02&fi`~mI*X&xq-1fly?|w*|zHfKSY;}IsWb?Mg_7!ID-9evvu>3ytIAygt zf9l4-)AMr|bh!WLUMyHF&?)JWH$cV=3x`~Cdm-JOb9&)vM;_2UA6Zmj`i9-Vjk(~c z{e7=@?uc*hh!dzFSp#s0`9*6SSmm znoU-x=JjF@+Y}iMeF1%qwEAW^Q86EmZy!zW9*?UXORAgR&@jIqcK70`pwA<|pMD19 zO}c%7t$h|IilCY?O!F}K4FC+hXf~o~G`egmylgVOYBr#3!ZUvmG(yBGVTW)f3nC|- zD`s5ErvdJOn?0;}I%CgQ3m-781%-*-ggEaYo+&17K7 z59D)knfyxgJZ!oc^x2gU;eU2e&3#|ic^CW$teEnuoY05w=-UAN5*}ZA0qwER?(+Nk z15C@Lh6&%oPWVqC{4n7Ru3L<1TEsnLC>>eyBdqvG2;Ad&{npvFYhKp^O=)vY7g4g{s~>l3n)Ga%LLo1tX-e~aaP7EhZYvDxNzEXr zi~}naRx*@;2i7>fzF{i8XVIsy)35voTnFCOByAg5yvXj~J6e8kYg$aJo!;8Ah-+?W znTxBRNNAakt{RE18I7nKiKrc2*FFy)veM1>-W7w}>VE})>V^tR1@p6f6vquIElV4k z7B_d#CN$z#n86mt^ku!n`;M5pS^KvQ<{z7an~*Oa#lqASn=)v7gbneG`4tVI?A7LT zn{U}L3^|(T-|C*v!Y&3otgyN%Jk;ba+Lk^V-n|Bwa`9rp$l*~1?)oT3{o67A{q)`N zVR=mT2p%3F@TgM7+tnw#-#)Vwm8@Y!gB$8*w=^uI)y!Zz3S z@y+$K@wJmlZA<3QYYlIeA|VTMrsRnau(FWPY9}a>Lz`QE8{|wGzv)Bv8CDa|x-nFM zAz~mFcTXqfE!FlSVRBM(!|RCB$*9f+hsyCaUnX!I6W6|k#~)ZVhN-)E^_Uyp*llD3 z6rABW3y?nXg+1yT3TN@f_^P?s7ElnUfMoP(p7v><2yB~+YNqL2Z4vz|$L8~h>$e4T z{;J%lMYDj)=?cb}JK}rZtL-R~-t+<62e;NypUxTF#I0^5x?v))Y1*!C!n$?Aq-NZv zVmPkrcYMR2)OP(;XxCzVAIcGy~=pmZ# zi#F?5HGVz6(}!u!H*1B>cj)hXk=#Rr7Ykuh9NA!Z84cZDKM8VsQ2TsJ<1~&fd|PRL zH8l35OzFLO0KE8i&!-Mfm_2INxlEMYGeg!=>srv0}`(+tYFR_}fc93qM* z;-_hmUxrnVeQ+q7bFQDmJIxKzhK?nq67Wx%fAv^!;}~{oxVdxXPdMAr@a2beY6JOl zAeN4lL_p=JW93ix>S=TeEAM`ZUMGc91sa=P>TUUeq>NJ=_M0@}h?i1{->g2W-`9x+8+Q+(0lTs3czH)>z>TW)XuidDYs zrctaq5%QM%sQTO4b+@ysY)}oqBjkLG$0I}7^D@us%>u>_Y<7pm!W$V^@0MF-M#va2 z>BcLCU1zXPq&jX83%DpAc3VE+g1FC79nuUW>2N&jYh<-W#TXM*=(2FbVvWrq)5OqJ_!S6UJagY z4`nV6vIpjBhZO60ZzZ$?6;f^}ZhRshn<*AsBopyj!s9BdmL7wQ5tp(Xw~C8^mLp*@ z2ClH3bLx3X7>Ce_nh-*IY$|3PaAU3x=GL-dR`6lc^yJmH7lzeD-JRn7O4MW*y|Nd* zsu_olDWk%g6>CDoEaJHhBSlw+aqA>;>TeTuJi=kOpUduupy4KNAzL1mKtjfs!*H{> z#~Jy+ONu^6VaTDEHm8%a5%t-lvGw)}zg^(lGb*oP*RZA&TgxX07NQiBkP@4eCbOst zMM8y1T$yf#9Gj>jKBW^-U=fz43J5XriGXIwAZI1SC_pfZ5S$8BJ$G~sF!Cz1vI_IC zaU=Cf$0bUzi_;6K@hBK^N@+9jhy%b#wPYW*$yD zE>41jo8abS;1{Cf;U=go6ep+1wcjt4t`P|gYhDW=2Lc{+SzzzDV*~3tgy%MvkD8c3JNoF;9Eij zvmn7C#muM7z^%Z*DT8@C!6wSYBG0C@hRxE6*~~)7*pwv65ImghGCUyMLm@Nqam#7K z4o$G}L4h+umeX_4F>{d)_CG!u(!Rn%&ga2n#|Rw`cFf+{c~+43!zMzouV7|iXJX`F zVB#R>^APhez_W6bd>iO_W)4PHE^K+od@HOnj8ODkQj0Uh!jkx#MogsXLw4f<6ZB-@ zfM670XJ?1Yh#)xW@0W1E-+r!)*m8&1^pZ$>PHcKcYuny-kbYa!AXVS7_(6FFaH^)bO%D2{oP0ff$$BcKSIlH3%!PftgOtu0+iogtytwl4J^QDHJ~=f3xiuSWd(JM>4)xF4o_o&i zkSgG?Q7`RcVqPl@@F&{FPPC3(8~uH%cPjB)v;NiB4sYw7NjOZC$A<9EgiL^{tCF;%2fKX*gY`+ofH_O8qRZ5t--a6!W- z;|_oOmm!E@m}D@@hU*(RMC;Fej`>4Q(Cr`l!Cmn$829}A!};ByYZ^}OU)V52i|<%Oz)<5xf$yaP@wILo(lRzX_wOI0p%o>e zZ8o9lCnR)yCY7B4dX2O~mTv0#TIGff*3(9JXsGbA75t@8W zb_?vUkeZNNz|Ke4{es~f*MU%U&uIoj0|QczvT@k*VFJOH0pn$0^Mi^8VaRdG?X$~i zHv7ydE4M;K#w{0XQdV4uR%uoQI#mG5ueR|GWRUK^&bRB&heG2v090Iug)$RMBlqZpA||cmRV5 z+kblZd{WaCx^bb~O{ZwYusn>)UO9c(df@f)FB^az2x!X4q8~Q*DqUT`#L@a`Bo;$kmQdQ8T04{8 z@&|B)LGhawn4m0QwU|C?(7#ia*h}+mo$_oXJ@B!$O9t=90JMbBD6C-$F77C}xQiAf zk{+$zo=0zgN@3I6n1Y3*HX4l6PE|8&zKr2_0p}1K1c*lbIHV)7ZA50%y?HjOZ2@mB z!wcoAY0nZG7JWJwu!V_fCUec;y#%z*`n69$2}8H9ywNUxHV=tcy+^GoSF7~?X;wX5 z%D?`(#{RF$$G@)3s8HIGAB}^Uo>~9z^Dv48b_WW{qSZ)5i+^1(A zk#mQ;HQZ)fj8A0YFF1Kl0asQ1Bt&~`+X6IySnFJ5*HS_QVgj=P2r_rjq%(?i&sQh( z&;omZtsfY-eAcr1VO>-o&Gc2f+NnasLn20SwOPMuFs&~=qZHv-@7g4Q?f#2t0LW2=KtaTB=7IY#w_RyfWMZ-@(lHsp;crVTVZk@{E z_d#uFa9;GO{^`@c0JFMd!KlZ#32YJrYS1h^36QL71%e6WU15s^Kn;o3N1<5d6yA^? z^|Rjf^ML2*X_$>R&qhWP4t->LzoMHRoX{(|s z^MY~9+@GHL(*{>7#Wz1uIb5R@|3Yd{_NtsA$BJ3goH55z+UiS9VrGdv-g~&b59zFb zBp3A$zvTh8l^X@U&hQxRrn;u_d+ZWi9m~EdOguhEBBn;s<&?0#1EFC@F-wyVzf7$0 zW;FF?HH{;eV3MaPE>F;0?T1C&LDYN~h%CTlv&wph7 zE)qt;)PVhlXA7j)KW25i$!7ON(E2W?=1xLdiK1@Creen~XUeZ^!mDP z%bMa@)w@N^CLx5FEt7@|p>Dyh=f$BGL9ZTcwB@Gi)+=mb`{g&^6^r{vDChsAIV|RuAz%_o@ToHk>4>cKU173;b4?JBagd-< zkhoDWA!bB~t>)9Q6I$gUpywyJ%7azWk*elINUkAdokiRah(*2S*H2mvj4rwf_0|@a|6xr2W%4SR=`rOjG(CwHo^T@Aam)2sH)}l(QL%Oqy ztFTJx(21zRZGr+yRuLIC1tTUEM}kqD5Y(X8b5RQ0Cg&PU2&&Mr3ULdHW5!O}$OYxu zWppvJ=8;kumC|nYZtU`bAk8tdW zFw3muuyo+Dca*krfYOFJpUNT6$S6if5o6?+=aScE6pA8Ec^r=u8z$DF9S0!lU=KS7L51H7yj)dJ-!PcJ$@H_ z5fA47@51Bz??vJ|*$7@4%C-B9bH6zUmxz?hO!3!H*`Cu?*G#55bappe-4xh}jzg<|z0P}X}cJSMm zb^D4nHl%bnv=KJ46<%vEV&)|FN4G23da2m^K(v!1ch?|L+@+iXKyjCK3n!(!UyOQK zl6q(gbh|=O0(84ieKpX5apwuTk7#}#xt{gWrV{+!Xa+qOqvipL$-J@#;Y!_Uxf ztH}sz!TG&|HW_019@wH6% zw+*h@&1g#U{?y|7w!tl{(c>L1G&;X-aCy^c{ie<#vjNO%4B>q~b$EPebINK0_z}25 zkYxOFd%WLw!L<&PF!F<-Tf<9(uqyI^K6wLJUY`fNa|Xd$u`d|3$%8Rw$mz=udtlE$ z_BnkVuz&mA?oE%)>&~$JAFDDRP@Ix%uV(HTSPE$wN$I5}_x|=O?S^jOK1JI!LW}R5 z7dUcn?SVIjn=eRfnu#fDdOgle{7HkX#UMBQ+ZcK<{qu){3P*y!jUpwAS$ag}jO!;- zs0Vx-!I(O@co-4dzyeazdlwI)5X!3pg*88&O9$->dmw~JdEzu^Qlb>kZ|a1MWa&?oYG~J zfOxxNlvgUalfz9(K)7K5Ack3-4HCsJv zH-Fk@_^=VZO9oF`J&R`H{UG-Xm{Aw><1xS_4CXn`^s%`Ba1R0xdfPs?i;Qpr`BI1B z_AK@en14caoLT04njh4AVzlD$dtRb~=fXTocK!ZVD$4?+RZ zuDFMkmRV#B@w*^ykk-7gpWVOp3c)t2vj$2ko5^|KaQz0&Ec*hT7H|oYFYcB&hlZq;_;8*?O-nx&@$oOGUHJ_@BC%f@a>Rq zMUwoOSN~EC~eIPty&D~Tl8+53}~7TgkPm$)URO- zF9#&CXW58H*^lTB*t}u({!I?FJLiD?G`w8I6Li}1c~flPZ^v)FUX{ZrYsMK0*e~&2 z3rW4dQ-^34cT3G)mIe*~T0cSy`7$KpbI{>#Nir^X{(^K5Z=Qu{k8fST8xI>97-o`M z$-Ql0#{x2~YNspK{?oXwd(o$Dbkp#h%llrlH|-JMX^3@8W@N!d=Gi(I^&L=`afG-5 zv4q11j|#fov+gIDv3O2m>c@~&HG5LOBKbQ0alo$zpNxCOPi#7%+g(BjC>G!;g=XI}F^9Gy~ioFRFnrGLd-u)WYEjiZbzZ*a7k$+O9 zmDy=sK4)9;%b^^WxnC~tMx=MVcCJw-;i=ZSQp2wkwk0#>UnXr!Y32|5rJW85 zCEwxO{aWqJR}ggwog@yUG?Ab)g8C8kR-ybZ;T)PCnlZ2SPtQxo=dAWS2}?PHVT`B` zYWQvwnpRA@=6nV|oU1%I4BRNjc2q-4K7B_Xqfl}@r-e-t2n9FwkmGB2KVN&~ z{p!nwrkPE;_rDsS`Jl7o1*69S!XQe-Ac)IouejS^!VZV2+F=B@4v(Cb`06N-?Rkx2 zdG*7&w0t`L!36Zsgv@IcJMiF1hqomKPvX&~cicMUDU=w2$R_2z|W0BCHNNTc5 zYg44PnZ-2N6^$7sR^hf(5qYYZGF8EhqUlYDn^H`ISA?dkC1(iP1rU5P1g|)!v=W!7 zJXJ`RkzWoc3*0g*Vg6y{m0;i!Vc`~sAcu6vM@B9oCT?Nqc2poSQAHW3VoV%z?1CCx zBH9#gMNm`dn1mTQA#_1XXXWAHfzgB%t3bzyNf91lY;Uru3-f$58q4e=0;+PuKM0DX zI5Q{7NJp6|gfRyXSoD}?^KuB%3rP}!N-W|A0vfggI%b5p93cqf`U)~0%SgeToRv$M z44=Zd!py?N@@J30E5^CjT*%RdPapGk+>a>1Dnn4@sDfHtGOO8TR}x%s@_@leSvCtX zQ#mMXTwpx@X+A|$DhimG8DSy<>y{OjYtz7Bgm*7B$1WjZv& zk_#7>F9U)3uP-it>)$`(yIB8zljR%Y9@z;x2|QhbvWkO)yu%X=d#*{vo)O=?mpeR( z-r9puU5#%M?7{>NDF_xuKz06m#{RDh{|5v2|1@uhZYM|XvP$S(f@tT%r2UU>=lWBb zy4;rv6y!2b238r7m4;{_UDoZwknRSS5bfkLvK2A56ESfBPe$Cz4fA$cJ1;qVZy85l zNO$;TP{1VN;J2*XrCmY+a>u+Kx*a|lxqx{1WT4v>!&8@ayJC3Szw364+!d1#s-+xM zkKY-5_THthjXUnWPCfU}hVwUqH*T@;2{iW%h}f{z)<4YD!+))JptiGzk#EeJz;%WJ z>ui#CIBhwSa{JA?dvAR%-gCI{(CXq7hliis-j?}&tdGs>w7-zW?Y3Dy=)kJ9E1bSt zE&tBi+rJe0wb}kf&ieY^t5dXH-@XetrEpm!s3rbof8|5yr@EMuw*8%>o2ohwbdLLH zenY9W`-_sm56xbgjsB>K|JVlI?w*a2dmGp?E}0FU?^~^3R@uC&c7506^|{?QugfpL z+cT#F%jQi3=J2q}xV&w3%Wil3&~5v+4c-{wWqkAcy>ogofyeUt)bEosh>uQRVcQ;X zEF5w!7`FS=iy|1y%nswH4Gvl0N%lj}z(}vT>56jrp789ljZ-uXe(^teK=nXE&usF* zTE5@MbVdMsO66iuuP!g*qQT!B9J_-hS zSou_B1yZGp-W9VXGvwRr4eTD{$Km?MfgDA z<;L|f5=`x)Mb%9@ylaNXBdC1Ft6&T|!LfJ*ky|u6d1Ve*->P+b)o%E>%Ia~G-Sal^ zx3L>CdDi6hbqp>7r~F}rUP&N%#kkwoA&B;*`d_#!Sbvcfg$~C^76nPRAKKvA2DTm6 zloZI|`Y8-Q*LN&!ZCl#jvX}(jUet$>BgTv{X^@toijmmHnV7oq*!qdcx-pEblRIf) zRY(NSf#q7Ra3L1w#gpDgpgQdN;L&=9klt z9#TY!T|akV9u8~^JO;QeG(1cW@r@Hu+F*c0qb27PuS zRH^sZ0f1{ztBU8xsb~NTLwk?nA#h+2rUnPeJG%oOu$Zc`)DGNgc5@eP6CmUtd$xAb zl3NyH>!)x(82*z+8nk@Y&uoBhZ<$@!x@7yR$>LT?eBo$H{d{u!Z)kgXrO21*&x?ph z3t5Q7B8Z*1ZA8^5o;@TYG4fsevSsc42Kz_70_hJU$|k_r0o5?{J8f<5gvRq>)6Bup z2D0K4Ivl>2YLkPl_IP9^tELzrZA zquumMOZqS)sduUnk?CE?)n7nPCZK*)?^NPD%)*Q6Ket;w`)pG_p?_!4=*C;bl|VYK zQ2fa1K!d@tH`>K7)i#ueyqZoKXG9D@YC>kGV`#z%fUNSs?nT7KAT}rG?Mi;nd`$03 zXxDUL-%J8%@Uo9;1%HN@^hR}0xW9gf6wvs-h3K~N;JV?^y7y^4(>o>^7Qa{7-gzDQ zaW?Ja3OW~LGfw#5?@Sm*`R@W=*BWle3kD+^^S@~cYnw$K)7f>RM*d^~eWH8P{tQFdc4T5=`e`4b@W^f35 za^5qXuC}WbUX6V@mG+i_pdlD@XKC#>f$ zsO!(K>&|bnj?2he(9BcPvyji{kWBbxe(NKmp%l`}smn@wo5dGEY?rJ8E;VQX%dq0jmsYlXzhbYz_GE+9wg#aU4m<9q;$7D;tn0 z_>Cv<0L5!NlWDY!Ng&OBw{qlp&6qPnmMH``GAAvC4I|mL;{}b=g-sF#bc5OD?FdnQ zFyX?6o;+HvG#yVic`soDJGzn`i*Bk=^kwzb=UkQiNr9##7YY zMXUlvoOkg%?veD`C*+zh6u6Z;=%8lm6`i2t+(y1!W?|g+X&g2gOh!@cnqG7zE4qZ1 zl!Pfo(t=sZg-6XrK*dZz%Zx|El2yWpOI8o!78VgT@Z@X~T7c^`1tVTnOJ*s3E_DYM zSqm0PU8p0aEFJ?azUaC8^1Wh7|~(MN|UDYD+9FCMGd$_^eOzR>~vX9FysP) z%-p;r7zVQCqOtPxQs`V9fVFH?4sJ0H{|MsNEi}49_b#&ZmGgNWpfVIDyj=XO(8==v zxATKehnJQ^LV*y{V3o2FGzyY;ixzY65wrDTQ#PZBNE38nMAox#iL=o}SvdF*`9dOb zHW+WY`7NyEy!_Zy^$8Y1nwSpM?AXEKk};>s8e^y-_#{C@LuAf|F@c$xjlx0UfVu-A zhU`o@4K^$`W@a*=64;(BOF|A06DN%>%Fd3nLgqY`nG;%f4g|sgngS}5xiBP>{*V6v zmDyOZ;Q;+S9cWlUkd-k{oo5im=XkUOVQuDPCU_Bg1DH!HN|*>qH9}k)03UiA1ji#% z5^$TDoB=S&FkuuSn^o7Q13ZT5fDJPO-bpqBIq;y;$!Ph1TVyu;>d3H4`IF~`KQWVQ z?f!r3mcoR+5E_L3OmGm}*a>XiO&Gcm!ukZCFu{qp1OudW1@^3kGgi^o<7J4%{x~6@mQrfB1H#$SlR^Z1C-B@$132t0fevCvJdF28bP$ zJ8l)zc53JDS4r7|ilvGS^SxfWi5{)rjE$ysjUaqFVu{ZcX= zLKBTV!cF~RJkvM(Y}kLIw)gj;`GTi!?2lXwx=|ilTJL(h%Kfj`L4Vad9KJ0Yx=lCz zm~!$VzNl@{C5@Xp#={@KG5PsQN`3dWg_<&?YU-lw$$mb7g_B?yZS#D zwG3|U8TYta?sDl_@ZILH`)v^qy8zKidCbEuEJ$U5-u+9v(4Y#q4)>o=SvSbu@R!38 zuRerT4*HdKyFBP5`S!};0I=)e+n)`?i0W1bU_S!f4s9^}s(z2&1w9=BX!k80bT5BT z#^^zXQUS7k2ucGq)Vr1r0>C5l9O`c5@A?1nN;as-aOclyL(|B42(BH?8d}aAMw0eO z*2v73c}BsPuR(t{YVLoax%C2U2*RQYHbsXwj53f9lUTP9Q#*&Kz`(jm-`8J&PJ^pI z#lD%0t{#uCp8@?IUpq^#>dEB#*~GdjG`&LR0elX8727zD*Om5W9C8j4aX|ynI)gw$ zEc_89v*+V(&(f}tmmkm&6o~Y;S0AG4zQopkK}0<0R_H(qfK(f&^O|R&dCmm;+A<3; z452s##&EC(L&*AK-0i_IVzEhnyLAq9GzI}M#sG@IvY;@h#4xa~uc7OM{TD}WyL}P$bIy+jU}cSKT#RU3aIg9Zsz0p-_!*fn^T;Gg?^po%j7JT9EqY-4 zVjB>gK3~wi0uT%G8DI(Oi_GptuTJh zw+LgeDNxT$k)Th}ahH1Ng1meBbW^ejSAlif835C}aI#w+{V?LLnOGuyuAb}-;L zNUNR6Y?_LBF@(4q;C$%AaS5QV$3%dbAaX|NSR`rHO6=6MXS7cjbkCt_3)=g%);Y+N zpzuM701|8vkAuD&s2BWe#$fp*n_i#1gTfsDtVcY48~Ct0;ms##byC_V0p0Op|3UgixS)SHMDI7)vl;pvOm+Sw683$j}g~79yhQU)W$FX61(uhcZM}@`3_RM}p)+dI=;{oH6QPYwM%d*e5FNWiL=Aw`u(>IR@^w|D| zZgLb#?3qm&U5RM?ER=sie&=7v`N5$^g?&7K3)p!LSTI zAG#^HI{}6n1->03nf|%3x3lr@8PU%^E96`Vz26<(KLu?}+ThphVMa>dd|3UE zUqxq3{c!QfH>=CF?hhN|My3*nrog}}Y&suY`95x#B<&%LA;*xOC48uG3Gng5Rze!u zlY1BA-_J*PPaB@C4=fuk82*|vIG@@xK~Cieq-t4G`?=oiLM?Kr{5zLnLU(@g3E7o+ z^JDtR7#W;=OgDz;CG1;a-zOV!F~=)p($70wY`{)aaxcRNt+kM%wXYzr-m`rfza_*x zw#tTX&^=mebE#iq{ojd=3=r}NUq#`pP3es71MEzVp)~;CLIxbQEF(V(yJKq_E$opY z2MNk{NZhfXg&#nlrg_9~!YQM>?|vX8>o4b2^Dk@dErCDX@x^C>ZMVEG4!HcFY9Z4cJ+(Uy@PKzeL9J<21&<* z{PCAmFAiAVosdkr#H5)n?fxBv89WZ&qB_Z%P`u-{$dXL5M1h?g3>t9z?i_56S zu~t7<+ckf6Z=Q9(|G~H7i^t$M=Z-mppI#`&9ThZ9;xQ^zO?oC8`iRx;q)h5<0lyQv z1^1+bk8=g@5{}%e7<5V~@QiTGpL)gR;_>$d5-W|q@7CK_u5W;7#$%O`!%T3hCBYc5}Ws^>G+9mO*J5tu|5(+#h?Z2DHD43wjA-qN0DpD^2Fx<$^}z4LdC0e~iPVkXzfAN!6QfktXG} zoo1HGEborIaUm%~Az4E$W58502&Q-WWCBBdjsWSVi1!@_7N#J%YE(r}06;r6|Sw%FN_?1}r z<#8yqnnJ%#g7+TxP%$seGQ z2ZxTp8WN832$B>ozZ{hxVtWNkhRMZG%3`l zLWj>qqZ2G_R8&X1+rhU3x5Jbw zY~~mh05A#Lj^Yws=RNajFFxCMy12ge)xLt z-SQtxDv#WK0>O-ZWU^C4LPU0vPkfqtY;tf;LE(WD0cnL6{?T?(nU;wKMYo4_4=?uWZ-sXNtG zEd|vrUH>S{`LNm+R7+;LK$nipK%eR{w4Ea8Bc^c*VIxu1)6q4vu$LkPhE$A@!GI)W zg@gk#l?CYCYJAH;X+HHPoGd*2rcex#EYGj`HzxaZ22`YVbdZO$VwXm3LkbVOhc@`#% z4)Qb*?Fg)nXCZlhyr{N?!nOsNd~pe&xQ1Fdx@8h*7P1*+xkE#q(!BzN8T9f)^qVh* zgAB+>pp!vuE?_fUu9&}o+jBb>&}_T8XH`SeHU~Kk;5SUfS&*jmEEe|6M^t~t76Zzd zp!~`0`G$pXNJNDcBPOVRd}HTQF+@krGXU`En4vo70op;r104ak<2?+1F<98QxM^S! zPF@IdaPqh!P{JeR6RoL`E(A18L9u``9k>_})QKD<=LbE|&-mXbKjBd|9{@X(y2!*! zC|*LI52bX@dbDr9bs#y}fLtKF%Bimd3PM3S-Hk4ZZ-jd$`E$Q77W(tdv5tBPJ ziocWA=}1g=kVdypU=WC@nxtp_X>zK|zw$FuiM;FPOiDi+Kb*2Go5cN~<|(k;pwJ__ zronQPG;-fUTK61=4s3bE4=<+nEnA$dLbq4JC?jWJF1~FtwucN*Lf9#;W_;HK?4J&$ zA5>3w1Pm}dI=-4zjDp>Dcsg!ysZ-}fo$j$Z^W!ZVc@@gJkM+;gB#$sKAYiith&uA! zT+G0HO5Za1^U_W3g(bgTjD0%?N<8`Pe9R!Z1rS;ONeYoEPv0he{+2zsk}`{j5o~!ts5Ie|#NdYGh&UDr!Y0tpKGa%T}&r2%V(5DQ^S;Gu=smLE~ ztd{wR)!r^t&4O}=`4kR!ueurh1^{k%FaH!%x2TeT(eS`y-^X99?+!`sDz!Sj#VSNmQvS z2K*o#aY}gG6X`uQg!vv8?IQiuOG;4)cyysFW-A5Wu=|@Kdt!*t50)^pquD01YKO8J z#_-t`Q}p9mw9G^;?IGu;>j&_w1@mb73Y$hqIOOwq92QG|Y_)$_!vBtl)sI%^r;soy z=#Z`ZeVOR(_hRRpSUmPiuD{{=o}pJeOhg^#v0E=-n!xF>T_CeYB>Yc`&0&eOhx}oe zWs|Q7`u<1{J0=x=5>>oBQ8(DaFAK(B7m2#5kn&W>{})0#k`?r+kcOoH2Kl55Tz=<7 z{eR=P-XdU|k4 zUD-`g*H2X6hgrgiRnib5a~>^cPBnWDEjK1bXF}PT*M757`cu)wGP?Cns*DA%sx`Nk zCA*plG9melBP6WS={jM2#vwGDOit^K!j9i5`W@tQ+aVfzRxIiyp&QAg;!a38^O~k; zgd7mE&L$)rS%r-#Jj%#91WG3qpcpY_lG3K=SWxsG2uWkeV+cMubf=1F+Hosc(B#ay zm2CJ`9U=Hf!a0+SIlG)ORay(06JC8E&7fU!jv0LB;e?tkA+7;YIv>9*pP)RakOGUK z91|au>XI}ODXNeJ?yw5VG7HE;zRtocO#*v9skI6uWQInE zPh+F-v9R(pA$bN#m~0@}naDd3htP%SvPv{*1%i!6;pFF{@)I~dCl?c)hn0@Z8N_B{ zLjhk8cnj*D0+BqdtgB4<8oLd=%nH2_FgowkGWO}OEQQA?OyZ>E1w#S8m&S!#Dmw>G z1t6P*|70c&qA5u@yh>o>u3i@@dP&uZFJBLRSjedE^|KR{H^< zTO2C`)4pMxK`LZEFKnD)YE$4r?l8Dpga6phO{N9H2O8*v1(I++q706d5wx z2D_SL^xnT?MK(=LuhmgsG1F^m@SxxEUa#xz zE}K7_-O4^#Js$D9J?eO=$L;1jhpXK%|HAX@@dUUX8x4rfnR9*l1%ZCBc4AWi&>Dy| zw`m%VQPAUgkn7Zs6|~O-GjD30-_SGzauN|Aq*V|}?42a#9#KnXu)~)M$XAk^#vp?)SdFOx&;oUw*fWRe37`nddEj;!Y_UHA@L$wBvnFoA z_mVidi%daBN{>VNAkxv%>IFp&HeASfoJRww1B0X=mo=t(6d^XreKX1Zv#8VrF%HC) z1ccd#`2_~#FF=og?%BP|xvlfr9T=KsAlHGkDZl3{s(3ScrsKNDG4=No*bg!P&`D4KJ=A7ZRrR3L( zNcBM`Ohoq#Yz{tu^+{|l@hw4i{TGO+jc-qC-$j*X7B&hVy#k9_toT|nr1m;aRYOxssr3(0VNVBl7grBdZo<-nxlk201 ze?f7Q*vV4qpP!oCXxBSitGNG>(NEQyyIv@!KT^+oru5?zq+B9L9R}glw~WC4Nu;tw zcTC|W(SEn_8!<>jYF8AHn^qzTW?A{?;Uzao9wUl$0F9U3x?}Olbh2}s(-TG^cwyje$7BR;SX})CHu&%n z#Us$kfNzJ&J+gk$zj*~kS}2LO`l-^VY9hIXA)9ele^-gk@1445+O&VHce>CcvF)Db z50zFY>#cA0U@-S9pY*AiwE6p;L+Pi$Muyd+PfpbnGMle>-h1!(avFLS^S_7Os+TRV z^vJ}0Z?gW1-o971r-lSQ{t)s!r?>f;VAu&J#RyTCQ!2YhHLqhhdP68!z{v$?C86xW zV;Lvov5i$Th^l8SXkyN9;K^+gB4rcFkEBGCFsex=;dn?Wx6<yYorlmp;LS+x%KvO}AG$H%^(p99G?2BIdQ1;*_qi>9)$L1?9MlP9|95K$#04G9TncHbZ6 zGjGd<9tSFxc1{%!J)jVGT-0YTg5`DB-)1q27qiGk7QL89ft1e%LDx(U(+F;}Fj4CW zJ~T!drKoJaqI9T?Kk2e)%uVUc5{QwYT@j2r&b4m4h(n$z!XAa>=!%*=I`*8pUOaks ze0q+2nsz8K;!>~@H}K@wb7fbyBI`tzt@&*8g`=)ZX4Z>`-C@%V5sb&riB5M(0>7ptC z>LAQ%!r~kPBDljLstB7ZE1wJ-zbv3T-e%Ldl5=bY}$^JRz4!Sj)(>lGjtQya)1Vg znHO__I8rDH8V`+=n~b9Y>ZXaYaZ3_RT&pZF3&Dl7Nu)S(fG&oY7AcOH5lHr$!iLC7 zR;nl)hZH+invE09O2mpZ0%7PsMBuHYh0qn2Q=@=ZqsAGay znUhF_lZ;sj8jKb zYG6EYJMv`I!&AYxt3_n2`BG&=Qsp8tz_*hjkjWb%ZU=PN&)g2gj%8f1M?2?`Zov`F zf`f8t+YO5L?|a_-ed(+GUvKPw@akM$-*?waJu)|Yr5F3>6bBb<@l4BgO-e63a>_Y2 zUE4i0Y}e6*bGHJ{-`W3eD*8#i`_;$pH!Iw4zjVG)<$Al;tE5?e?`7$tpEY)0^!csa zbn9tQ(Eg{cpZvUXbb;Y{y^1%WNF#8kdc=P5)Wa(KE@o78TpU^cX=vid_cKnvJ@mX) zx29lszg_QnyUzJqBN@{Epc@ZD>y8L_-_lmklE%Qh1Hq-k?sp+*CzsouUjLGJzJK*V zo(;Y|^u-7CE(JU#Idh0)d|rG+Rs$-T{3=Hf0=cg2Et-Q61&N5Zhzc?;GPde7nmWTP zKf%WuT>cS$Rj2wfmrjEo3bS*^ntbNZHmFwrpXS~rINMEBQ7%$o_TnuB(o zS{9)v zNrD!=Wgg`1nx2HzMF0z}dM&}3gOf+33@B^p+pz%AA$kYGgw!^^YdpPUtf*@aV3_2G z-%L9`K+@wRsy2b!@s$Owp!Z313XT`JJ-uxbX33~};G$(Tegd}xLgzJ)gZ&1`2O30P zv>)7d^>eNd(OWtZ_UMEAy*^T#^q_Cuy>8dLeS!50>l&8A9!x_@?S5+*Mo8@M!~E;{ zbOg9P>D64+nw6Z9+vc|*7o~Fv`6pR#CIH%ZbbsC1xxBYy zc}E|k2y}Yi3P|rwUCTiD5#?_|lB4q!TLZ8s2bT{N^?idWIK2^8-yw7xLDCQU6u25B zaCRTUA?NmYeBIi%1XF5k^JG#t`ARqREf?b@H;toiAgyT}k`*XDGLTQ$F&&QuGWpF% z(lpvJ12~#B_zj8+s5Jl=;h6=Qi3tlrqo9hnm_%osl6*08*xpu8>Yx_>|RQ4 zCh=`_=U3+^BSvSNERQ#6eOD3nYCiVuH}CcttFlq!tD}Y&C#-KVGHbs^H7s~HjzRa5 z+xN}k!W;GdRf%)J`oyKQg+MKO1J6efI8QsDc7P}fXk5#6AU_dAZ`3DZ3GPD>sun^fdAKW>I71cWz z-#eS~b{4`X5c^5*$ix_U1Pl&7zpC|fY#1otl{^nOJtRoaIYm#3{- zC#$mCQMtPS9a>iZ61oFmjI}Ktk=R$207YE;N89IPzRwpzYap{>;AapYLd-arH?fry z)3FlOgAd6F5;ajHE17ZH?|yGe??QCfH}{4q&uY{VFv6Obz>RC{yJr}7SgGK&?b#N= z!uz3BiwR%IvBmkxXZ7E|82tIkr)m+Ow3zmZ=$3ILAi?kg+8=FV(KV#`9jU7Ll!Ac= zXvYeAITe7!`8Tip`3ZznRYy8-2aHNZH*dq~n%I3+e&G+SU)B#Zq}&j2-z;Puz$)h@AnzcqWD8-r#qL{*TW@d$ zY^It9(_PZo0(MJ99#`}{C?9cIrr-{t8!PR+L(FB1u>A&c=gk}jNnEDM%6^;pZR0@X zirA!TY`!3ajLNu+0?~Km@?R+BKah|7NiyL)yUk{*P9ndm2Sr#-RKrw2%ZXLdg+oh^ zrfEb~GA3w>?2@Je8ZO9zWL7X?Q*q+dv(-<$D3JP`Iig%D=sJ+Cpo}@MvOSlk4U>i` z-O`WEFpSGEh1WQPq8TM*Q7GxWS0m&nQICxx;d@wpzn6|aBk8tNSlI*=J&&P}utNfe zi9exe!X~f5A}UUi(PNdfq{=(;h*@xp>I$jbh-kagL@c%2}ZW zi4YQH6~jTqk+M#ps!2eA-~+CvvoZ^>s^3KkVPS3#ssJy_nN|_Wrm{eRar0^@7l8KH?ysToX+|t@i+|p!7BO6+wz(Z4@ zZwFUThOTf*aL~k=n7K#{%*w({=cMxUFhLT-L8Wo?Q)s+o_9J94fV31kLMAC(N}N2Z zR6co_Z3zlH zeJtEzXIiD|SMQMD{hzJXr&^sI$mhf&5jitS(-TPP#Hry9C-gQ<(B-ck_+S6Ss{>V! z+tm{QX8(7rj{ErUzs0n#eKAEqjQkLa$BOqW%GhZ<8A zx1u_ak_IYM*Yevzx&PCb3d$X78DV`ZQA2o7Yy|bK1PrW2OzhWmG9qTAH5Gh2^zG2e zz?X{lB`i5Fcu~Vu{i4+aVzmO|^#T(Of>Vt`(^bRCMVeB>(qT$fip)U*B(SFg8AB(Nxm^#Gd(l4Kg1y@Ldz5o_YHrvspS9if=*1tJhqqR=?yaof_vH0Y<@Nin zmU^XaGV+aEms0GWu{o%CSK8q-i9eq4-FYHU#o0RKGNNGUMGH^Qr@BDibjvq7yW+vHT6OHkCR{bPJFZ4ep$$Gt76DraraG% zQTvRx{u*|_cJuqmP0f?uS6{gQSswAI)$d-T&z%;(yFHGVn}h%EK@dd1-(4XO`(s~> zAW{a3ch}oZuJ_v^Wp{qqg~V*{$8Y^h-v-?q2>!b-;^|O0;@r#L;SoRNKvs}JF_2-P zcOE@5hX&C^5+;k7QgMCT~2>D=~?q0&dS{P48Vzu2?oU83VEj`9Fk=9tYy>` zB3|~ud6(MG2r2)J`X1;{KqGs;`GP!lxH54YS~nN)Y7*V_SYV!gYsX+8Bl~V@Cm^K& zSDg4}Cj9vb!XyzM4)zT4Z}7%QR>42|up&Z2gP3ko4};ad0CE-Lc0{=2N!LPGiaHkI z!~}wkZy8JIp2_W8No|}-1dxMSwR0IsDM6LPP?CVF2keh;od(*3HU59!+?bj@e)Cj(iF62E+9kBuOI}E};6rK!FgLsD?2-HS{5%k;#O^?nNjQ zAUOc81AYeB%YpQwV=8`dDSKcU=d-1QWZ*aVGjiWdMcnQ1eK8W(2K@uW>0yt3NhcYv z2Tx@q(#TPfGapg@0nXO#NJs2jDrg-?2uxo8Y+>&VG&AelCpUJ?Zt7Vm0$JJ$0)M6u zaes|p5}U`7q~2i0DDUV+hJv>n9@`koE(i z%UAHph&qIp2Ihi-7SeBv5-3;&kt9iGT0%L~Fdka{5&mMpLKtjuA&~Ky(l8B~Ixsvm zHhB5Cg6q5HAc@(~zqB4wkd7H#0^mdJfZ&q(wodyZB@+0&Z4Mqu=!LenlZH?LLQG!R zWPw|mtU7In>YHqv!d?cfvWUU-X`OSao>V(iZ*scHxUkCg$7b(~@2r3SVDS5_&L4Az z*WsC+f?3kGd&afpQ{*6Ntu;GYA^uBsbPL1l*@{c)JVeU|H%A=Hk%!MfDQ9HQBtm;q zd!YRW3q29jO*%${J0=4=Cjq2W2EIalB)R9>y1SkE!wgX69!($f29|I^aiQ_Si)~+u z>R54yo%8i%0stwn6J0gDet?m+Dv9xU(t}n7Wb6QAlhXa(xr9D4n<&3`Hmh$I8zSkw%jj-^ zVZr83J8aj8UCO`?SJzV1yV2x#bIHwLEzkByZK`zmx8q9|7nfx&j<`H}k1nm4mao_)38|insGp8*M6og%>6y^57zz7% z4XJ5|mjoZeu*QX$*E3j{PN27@kh7&AEXn1mCU%X?raN^YV^)ETi+cq z_^r$IScBn?XWAE<170p7b_OCDpVzbAwF`F7$K2}|(d8t!^_pA7N7tGu_u6Uamt&5N zb8go=WTG~zZ@DVwyHC*WDk^>yB6i6pUDxn`NZ;5dcyLJd&Nt0twRE)*aZO)B!-r-R z$L(`PF27RDiV(KnAr*2{v#?k3z-Pk?<3foS^}~Ph zzS^j<_ab4NCa;z-DO6Aru7 z4|i}!{LXE&h2Oc5-?Na#(_hegvvT0iG>;R)IrlX;TqksW6nyd|9d>Y7trzs$Nwtm^ zG53!;wRMJ5(Z%ig|5U2|XlWzg@s_pRmUP4v!+v;9NnC zNO9u~9{n`BQ6iJNJ2WBOlBWEE#ypamEJDguv@FT!5mI{mhVJ}YE*Kp6p(!lDkM*n zRALj7;FKV{jZjO@kh8p6i6 zuVvcc4j#clu>PG^U;8o~^`G^>fT#a=ean9rw<82{P2&DP<90D4TM;8$Ap>hc!~fft zirqsAt98(~uiETxQ6_jJyJfWA<`eOy)rF5=r(P?GyYu+a#J8NTPa=U^ zv{H|0#vL)tIPI|Oy5+%Zd5uHa9m7F)-ndfd(;D5jRK~14|))S7yR&T*u%HTY{!Br6`?T!PlwP= z=~M9$K{38B#=M@5`ad0okON6FAum3mMb!V*m-zZ=$c*tXCY*y|h&@M#ofssABnEY-9u^0hOi>Db0)B(5W75WZA&slXHJ`*H$$)UbNwuFr(k&H}dw zRE?9F4{xS|YsRoOKq_o&C!wYQbO%IVt3CvEM#Aitxi#F522T*GsST6JkV$Erf)0Fb zktu~ZpO$IR<0K;OoCEop*gb=TWVFnuwIXqG7T`aob_}>3V4HNXw#v zZcsFY!ulFmGwV??>s>bCc55KEW+|#^+2K(?!d37R;OK;JH0I4XL=FJMKuxe@VgV}x zC$9$DOyPNfSCN>V(mWR4HUZSSzIAQ`Bt7km1-;+0TNmOghRKr9_Jy?GZ!iwKKI(z} z7V;$D$|2{6ePrlm?F2Rm0IR^{XLd~I_RgmELr1ZI;74pLU@(Ca8@dHhvRO@IK*)G- zby)aHlH2VIg{z91O~~izB0)PQFVY^1Lm^YKeVG(#H?8X1TNZFX4oN%UHoK9#4wb@e zcJpjj(=7HW(61WRMh;wfw~^Qby$X;vU?gC6X6w|yaC;*LhoyYL&Q;u=2y(c4evKl= zGyxGl-Upl~1VSMB13Kn{y5~tHOegHXbI{dnf`T1-_|@S8w}A8{sD{A4ll0zZx6gpL z2X2q-WBAn0Y94=Wcd}U{lo2B*gCZY^8g{tOvROeX`5V~=-B5kqi*E`(K% zYVChyes{#`)+f{7MlG+6TipC){or#z6Pb=4(DW(3mz=iJdKZ!b-Mb;-hN^rnd{yh7 zJg@|`4BW2qQ>n-O9>|#xqKLmr?;;JPXkS8pDcXo23vqun=GQonB=!J|6|YA1Znr3( zf2DP<-sD`1$uBJ``(G(0H4QTkEwY9&>b=x(y&uI127Li3+}8f)ba+@&qcQ~{7O*L+T`%? zv+?OB>BwKy*57jcxl!-fYwMfuoF9!T9<9>+zFe{3md2@?pcnH9ZgqP6$-8>ar*6^x z)r>z*@8zUa(Iv>^J*uY>MCnxi(V>3U<#H>^vQ>AN@#AcZU-4OO6f+GaOb;ofzg0WQ zF#DCE^nE*K1PPNEnoc0qra;=^5U<~Pne`<+ZX2PNQBJxn7yPTdTOo%-fq+pwT|bFt zw^KCqrfOb?_|`t%Gou=tN~J^3X&-+fQhb5aZ)e!ODc8pg)a(j{{vsXyyTPep?frw& z0b96DBZWe4$?xnD$*dD~JSB2>Km0-qoa<@lZaiMEA#5 znXNB*qyLmkzN)+B9+O6pSoi_W^KTrgrudUi2sz}*tSgjq%cHsl2)J(4jsBhDag;mh zhUt#K>DE!))^Re9`-EJ+mkmG0X^||9h!TrPL5mb&kA3Pzb@I7)WwI~HrTr-y`MW~K zU&{G+)QTVQ1RhaLyd~v+fLG0(;MaiLl+f~~nY*&;hqEg?5CVGqx}h3=8wh0^4lQp< z`wd2!PbCuW@+6c>q&$%eJH@Q-!Xm4~r)EXS7_+O`A+}w?DTl5XOErk&vPz}frE%I8 z5eA9;u0?ESS)5jzWJ6ENC;TK9zn9%SUd&~^h)s@wQ4Aps^|%J=ljyQK%)%-x;_7r2 z6QqniINk|&u?d)Q*RB;99VYq}*#OZYhT&$09tHvpXkbWP3MU!i4z#?6+c`uDc3Bj7aq=qwsIyUklgT1fk_l&~ zA;*#~F3%w zMi*q~65!wz#A2dA?#|D|FM%(E!iOTS3@Vt4b}E_}2cDgokBLo$6ohkg0BS>DLY}j( ziQ1z_OpcT$-tco+-{z?+cbZVe%^N)IXm=$+jDkn=I_-lK4i4@ zDDGHpJHGyY?ZMW;ef8bnziRvQ?ZnM@Q^hw*V~$@aym~+W*Bd?u&$#UUIqlZ-!l&&S zkJ@}MK2t0@As@R%BDhd9>3fB!-HOqBr2LBHymHXm#_kXw|5tUw-4~g+p9KB%d&Je! zeIHkxu2m>S>=p7ZR!cf+zU{L4z8ju@Jm1ngliv8={Fes~mn!^9-uT^baQUmo^L`t! z_qxA({MK5Q?zDQ`ZTEWE?R=-j{ULyQ7aXSU4|`E_gM~YOWpBZ>$2=RsowcZTknIr3 z1XX&p%@Estr*OL*SvLU~+A%sH)p@+0~5(H^N%~aIuF;uB~RgHRAe?;yvGQg2u z5(fQ4`$Ba6SYpE@7*UX`Kt2F?rpHQk_gvNe;aW)DyTs9@l##DMDdzVYwJz6~T&=OV zQe$$d-u(AB8rv_agy!%m=_0_^<@jY}M+7!4Bs8rcIoZ2m64@r9Zx#ZoVe%r$cAOi! zQ$wn!p_W1549HtZDIkoAuA3yq?e)`u?%9CEEpt(|V`PjZVrrUaVPXaD1pnuE#Mg1#Kcfbz_Hl9qIftIEPID8fzLns)6EF8@~ur4Ai z12iw0VbVEQ*gm_Vb2ej@>0RU7Ve+@@`tU8#qVz#QF%O+a(%a>Bq zI;SxEkjCVXF?C=Grqng)4h0C< zY)D7)`Wf)~B9aJiHTgAAzqgG8`a&LqP|B#zMTC%hV8f#8YcL`!d%xMg{H%Si+pg+! zXcr^88_)91>+!hf-J#GYpWp;RHhUPF5qjs5B$NN1f#X241cpBhLGf)9IP<*T#oT^0 z+b(5eF6+hS$eibsPVDAn^{qfJgyDJ>v15|O*ogY7nVh%y*bGKDeZkT2wqtWArv4*@ zNia1)wT=_Ub0HW9!g%b|K#!ErHxtu24OeVf>#V`e2CI7=X?+aL3)sy`7?{d@{|#+c zlHWbl{;4+LDX4GQX34(=ZpW~O3NWOblD}Kp=Fp#uYZTZ#fxcjr1xMCSDIO|`t(yb< zCbehPNQGSruV0206s-rgr(Pq<;sow7#`d;f>1>2$`L3wEJsBaZ9Ok=sAUq zs|I_XBahv;az423o5snPR%hyT_B=57xjN?cQdsS>8_X%MXWd^;U>^5>jX_{pvFMuj zlQF;Q1+S_ZuS%prE?S+c(aioq<3yM0k!q`>m4t|?fUqUi`KH*`Z#u`96>{sjoPXdl ziW9L6;dDxri#@I4aY4}il2lR&VHm@1lB!qmR4M+dl*jkXo&^-+d=9J4gxewR@Y`}} zwNe|JP0zeH-uYPE_k={zb+({g6q9tlqB~~4_Q3%w*1c9kdalwQsmA>TqmFI6G_w(6F0v5+eg;eQ#Q>{kA*iFM;e ziOnUtyXx8PwyFO3%&cYB{PlZ*m>qKNISTGsB4&}oE|HvO*(%|`3WWWtu<^0^w%dF* zu~4>4+U^l{IV2f)j7c{^#4uLTBArt=hu7`6RCXC};w^!+>*9Ggg_EzUPPiI_49~CQQnPgseHC;lXR0z-Jzd)OSL~mu3+y9lV~`J6(9)9#+dtrKsH! z{+nrb>xH}y$iV#Z*zTgmzRG zF%2ZEFv;iwWWsUDOln=!m?aH?+o^H}tV%WzoFhzzuH#8nwWG=FaY?CjE11y~9YKZ@ ze2Q#B%H$GML}d~wfDx3ZNXXKpl|ZC(iK$Q!J|m8R8hcK8^EE*`a63i=z;*l)d^@|4 zG>fvij7<@MR03CLq!$UXBJX~hK7xUP6}7Rd$aRX z#gtJg#VM&pp;9SaJnVE~7A`TW08;2xpo(YbmS7W7!nlFfCnki+lUSD((i+q=0k^Yq z@`1M}L*p?fu=CcF={kUrScI$1&i(hvg>iT$~ zZTMK%$c3S)6YWEr9#zHtb|d2Ay@DqVX%A}??$_m34dlKY^1W20y78<+(0U24EK&Ci zxqw3Dfb|Mq*@`YHyqaEyJI)+>w-9;biNlT~7DapWpEYl5n^4$rO5As|RQPvl*(VKm zUv)lTkx@5V+&gFY$79QLPu*_S29~w^m9@CssdKzp=K_d+w;KdI5WCY~O{hcleAMf7 zuhaf+hsBLXuls!-_j`fL)|K`_Cj&J*Wa=nR^?KOn^W+`rLVZFm^eaIXxYl{0j#8M@2m%1*BBC^&P`1 zI(>SUQHg?o!~<39hIYV0K*7iA*+S(5;|t0 z8$N-J2bhPD1}G6P4KX!j#3B;ES0BgA1X3mQRl4T^Lh{}&Lt_BIya5^V9pvMv1OliA z-wt#a(=-7eK}_}dh5^RLK?dxuNv)sa>*la24+s%hH;?^v{5$SdF&S3#6{2XX>pk{Y zJK@9ido}6wWC(LpT+LK$-8fc!{RGYmdk48~a|peJWF3D5zD1-Ah9)c+R3SSDTTW)M zx6Bu}FXy+d;4KP(DYAAl;x#VTB5bWtm_zRb4=;c^Zats$Bll+eTLzRTkjI0UF791I zmIzo@z(u5*Ludgonboy|Tae^XxgcLLw|yoJ41eb=xLF`%)EME-L52(_8q5@^c>>J~ zK#skM$Yxv)cnrz68Ves7$bN7K4+6KNeh70AK0>gyf@p;pI|@{AE7Ukp9h3SW5<-Lc z?Ir;vt_9{4@`>;iNPUEm9`?rWIk;SNJEq}6g`gc51rU@pNVd-cv137Wf$0g1J6#jflHUGAD+!e)$V$qb}RgaFY zd&)>|`+#S&M%3W9nD@(=H4?hM=6_&hzegSF za#-6~>fmDfI}$46-2=&wVF3&87~Tr<1Kc?S&`u)l9x{I@R~)-E3JWd`o+?J(n~(07IK)-NSBDc z=yYY&{pDB3m*YNlp8@qj0$}G3WIJ$sza*FVr_#m;Mi<(HY7z0eqJHeD&G}l*10^~?Jd1oj z6Z{glQ*@EJ|lya=-V{t9-`&$)xwwX{Q%+dV8K|U1BkhI76>OQciK(C}~+F7k`Y$Hj7KbgIzmX zBJn3~&+Sz0BmiJew`?Z6coF+Tqtp_O{ck0Yb!h(FNH@vjbv(l3c|juVq|=Ub3X%DQ zexgp{Yk|x^*@OS&3%;kn_l;e}pu&@8h4ak{8Lw1|%Pnq=XgwVj-gleXB$eAVnaego z*g9Msag=U*)RV7qMVwXI@>nV11flAQ@D^FOz2cq+q=Swy>m^8Aq$t|taT;xqiny+@ z^||!Mm%P~zB(^=2$p2d-=b=)}DZ;>=SeGN6^;|jnCYOdSo0NgD)d3OD^9~!&iDci? z3_eU1&|u*~M4vbz8cehNjqYE`>2+TwzDy$cET#rR)rpYNU{ST?)eRR9-=~@UlcdLH z7Oe+Ea<(S>YgRx`vYN;Bpq6;7`=_(a}$s2Zn2Qp z-JyGL+if={C`xyCiHS%z%DL_tpWpMm&pFRo>%4!w>-=2znl%i=%zVEy$o0AID}?0? zAbMe!F#??~u*{vRV2Z#-79^<17_uoW2T9JWYRa$c2$eg#q8-|x*pw`ZHbz!UKxGA0 z)lN{(lwCvl=Oxq*(I4L>E07Fs?nec*Ozt%+0y8IK%7?A)R(2$Er?AXNv@ z8p0SFrzi!{np~o+W~=^FV*a0qohdA5$jSk*nP~h!gytaIxdlZ?sVgd#5GKPQ+exYn zQ&+>hKLfXuTY%pGh1+q3`Q0Cn`EQBac^T0C|3%*pz8w{CT@qm z9U+jAxHHA=(8(ae9SiMCOx&*M6{74N2GFkJ7X{F+6cDQ#lmNJnG)PEgw8K*LqO$a2 z)@ny(t4C(3hG(d)&Or#ILDFWXzTGrqhaoiWSxAH2ZIXS^DCdw?#vbDhM=iIVGFyLS zS@yvdd;i#2-u36m(xHye8_Swc4}3lMd2&NxIS_c-%f`f)%|5qE0`Av%{!?yt^p556 zhc+9}C`aT=`>i!vvs2YSQ-z+&Zyu=No|sqv>G;>Bn7c1MkDOU^@zHPZzlB{a753RE z;=9Qx_fNZ@A30wr1{BQi|7LgbrQP{LyQ>vm51IoDJAz)e!+Gj>yUPB0wfnsm&&O@< z4_lq?H9{EUTZF{&es~`3?zj6q>ZcdUhx$zr9sa>fP42X{elQ_6n*+v41@lKm>j}m zQg*}8S3`;b*#>g?P(Ot0?q^@CW&Q4Oy&fcCMCa_L>802~C`M3o-(vot6%Mk%DyUm) zm+!c$6unv3)|D!(teLdMziZN~Y9zJcTM*PEFo;!80<>fE+V$yMyL+9UFWw_zFA!GQ zvM(4qyq@*>y?hr^I)wDXxLUx-c_3T7FgQs;@Dh%(J;1j9ZK|~}l zInrYqCZL2TXb{nk0KfoOO=#OhM*0L09j+5bw__HbQ;0)wn923y(AzM-3o!;DA|g}3 zSjIGsq&AJMZ$TRTf8zFy2pH^|i))yx!sdU~qLEs@tc%p`dPDh_9W+=tQ;^YDVL0#_$@DeuLo3tU7Eo zj6i{ptpPxHOd?EsAf5$V34p#E+ZK@+3HiET%_zJ8Ao-!R0auKLEfU~lykDrG3Mu=T z+cBTlx0Htj`;PfsOeK(rw~Pb3#@3Etcp=u^`l+>z@CeMNHOwYJkJLC4Tk{6YrKDihx+P+0dWiYVz`iT zOSWu+n#au^G@;luwhO{_j02UOiy`O1*0F|;WmHa5ED6Esoy%wV!36I|mY z>;u5<#D7ut8CrLe>R&er8rM?n}%n~Xy(xq z6uVE_JzIdjM`^=T?NgOX`BjQZmAYH2onF3M(eO^|Qkz_IiCFGSos-RK$10SQZfLsx zD(!NV!*xB)FHO>HHFD9F({Iz(-7-AzM!+SHRm)q>cej%FPEn7oqV#-XO)F|gYQjNbM?X!!bze;}nZ$e3rdE9=cNa?c47|3~?;rF;C z9k5d-?E!7s1}cX%1R4}>IWf(X;+91+F)tL?+?4P>$gUs3uk9nKV^2}kR>FnZ~T#}jq#QMB!yp(i)PJAv!qC`;Gps_ATC&LKJfpTR`BvDtda~&4kq@{%2NZ^{A@a zobsv^A-GLpLKWnIXrG0Ln`Fu`6zo(15~0He!kmkhgfx;UMZ&HVf*neBz-fjX6d^50 zmH)4x9icIZeiRfzt_(?xVdWs8og}xgqtx|(#O?nRbpQ9^+u@1+7vIjr?Xaf)Prg)U zU+VuIw~HEBi0GS(7_MaEc1UH!R}gC|^zD$!z?X^?cLLr2gKtN8J8~eAC!^{Uslwpf zl>^qO1jZu@QY$D?HzG|pGE*liQ!^q>Y#TvQT;*~2>XCPIsjr)T z|GK^IQOUVa-wt-oC?_2ibIes)`z!r?sl};>aNBL{pSQd8%K1{M@6CF9`!ms>h-$Q?Qyr;?S3~xAd#x) z_wsFU@gS;~LZ0*m6_QAH_ZM#w|LFGgE%^43=N}+zN6aH=_TY*UsA3RB9$NAd`PcyV z0L=8)Lym=SoeSU6U%m?~86xD5z=(8{A-Yp-cwmNv)nRK5$QE$3MZv zpP-R|lH9Lt!r|F_?NiT9|9ok3z0s}yn`OaAsr279!?$bFBNWulDKuT<6PMElmXhjb zV(O;d>&EamJ+S;MS_}P4hA>}vJ{!R900Jr@Xh*7{g13?7Q%NmLsAzP1{UxY; zJp9clOr6NXM9w6R4%-JXfo3&KX4g;R#V0f(e{U9>2q2_2dQKcK0H&lp?+oxSi-dh#!Fo+HnWw4hWHUfJ^UQz_XLusg5~-WIR4-Z46oQeSn={ z=BGFI%&!L@-nW49io8fDrtn-{(_o=VBo4^o%1QP7ThcMV>1}$rx@;m3!UdMqfn5cW|olP2UsRzhhttZvKqQAcu z0%8YlCuBZj2LY@#OkYnoOY&q2O=UQvE%8`WrlX$kcxLO(h^O6=M?4$+FlNqv63ZwxoBF z5Y!FmibV>2_bj$)a0_%YiCyG1ASFJoch0xwi`kue5av+n1M@>vkKe(NiXnROd#~b; z*dR#gLYDpr0&}pvf@zDS51~U1tpp4`6|u2A@AWSmLhdW7-yi|9zTDta@Ydt?S0pTX zy&Cc?7<9S+*5pF1!Cz&8FWw5K9FY$@Obb44aiBE()r^1rjC0LrdexAB$yXqDEbMb( z90qg;Xb0K8x_LgNc?Jt<@L`CB#HvSf`xvs1V(Mo7!M%4ZdEf1`{JX~O`DgQ!Wg@OS z)Yts2lz-Q&4BjkRs!`E^34JCJlF5_Cq` z<)C5K1woe#cI{~1;A66@&*?<|p`Cw6c-JHTlpD%nwBYUu3^I*Bcrib#eH#B^2Nz<=lTWZ;k^9J-?Fs`cadSi69!Qxa6#VDFvJ3uY? zn3C@{DgW)t(fh?+l4NYc`OSj3-8Sm)E0){yMr`9#gJX3TC+ZZFuS*4-;74mQ7MqRNsY9(+0R5i%r>_M`;z0rmLW7Ad9jkr@SE)CgM5> zb@vvKv*MRG=b({9cib+fZBNtlq{`VNNs>iEjaya&nr&R+l85BRks@skhz{t^6v=>c z#}zDs+XdB?&FHKO7Se99@}ZeZA*rk?W^5vA7zDt#1GlpYDWb3mSu4Qp(8+*x2WZD7 zusVV3j4Q;Z3Qf3x6cyQ$vN|*iA6eTlZgA<`B0NIiz~%Ynt$9?O*)^SLR)G>L0u2=$a}<7a}v}IBP^K~ zn1~&h7#Rp|XQZ?c{Lc2j;C8rfd3e|b1aKbET18B$>_0>@(8+*r{~vWSI9TTTZ^Zk* z6>dj~0CX}~{~NenM1L9h_J84aSW^kv&cN+N;%?y#${p5JfObe_;7e6;4S-HY(>++z zD->u@!zWVBI||TU#Xk;G8QtI{-Ov>M@HFkvRQ2Fwwcu1hciosACf|-c8H0q4#z61s z+kxA)(zhBU@6t@%u9LP$ckKbKjJ?{ayLD4{o22hsmiLQ#+P;;0&u(vgcWrU$?C|Vw z179wFo;W|cw6A+OtMP4EX}eERi|eCW$Xav`-7wmFM?e1pY?zAvYvojW_IH`>5>P#FE>kVyfR(-OyuZC!Ym8YWFE*$i2SK+<$kT* z>0dsItVI-Mg6>Ab%$hoq#<|L=+idqRP@o}N`?Kc8uR-tu8rU9UydoRzaZ|Mr5KQ` z>=usy_k>KG6JE51HBUr$ehWnK2oQVe7u1nMhKf;wnJOPr_B9sjk*YDsV-g!@L9+v~ z$JU_{2>~w~@GNX0QmyPEy=wa1@YLLkZ7>?f~;( zt>JBi`WG^3;K2AMaNVCkzyf6N zQzrv}3N{iDI;DI#4#)xi(-OS$5fI&&ET9!fD=1h*D1ySOr|e&Tc6c-pQw7HLn|tvv zr0;>{laZwps9Qo_Jp==Q?wCzd8>WzrgM^&8miahn*P8*%=9p3wpmA&vZ0MdwS|iZ) zy6#zku~_h>&662b!zh`>4g%mkBFce^nU|oNliNlCjI)}@kbbkRa~=j;l0wt{9SrvR z?pXxUV+PsWKD!0q>R3S7_|Cy4>@37qe~PaE5?cGkw{(zn(U!cAsU1e|61FE0&j{%e za66(1!LB0|1#k`;Ap+{q)Cp|NSj^-f3{!+)qq`lzPl{|YFJqr-zBN(BNB=r`8Xk4ASdLg$9sCV(8%Ap6gXDgwmMqd?9 zWAfXX%unAUn!Z8{9oLOI(FM$;A)QM;k3L9mx#{$JcungP!U;1_Mby6(0~LD91Wd2k zR)8HFvk4Qi<4B=DAtMQ6#KTY%-w$v&ftO8GK#=r9bJ9H((KCjOO8BPnN+1@(OaTWj zh7>G_;gfr2k_Tp!2hpH30|X8xAMblc$4Fw|MBKaC__qwhX(v%?MS!bn zcMTsH;#uw{E@r&H;M-BIg#4Uj^4dt6y>&rb>f0qUouQ1W8K1*(I8e|73xj!d+X8-D z;cvx&jA;uJ9kM0Vgmlnp;C7(*pz>kFfub`P@k-9m-uk}y=yJOg5vgv)!)|YeJc>RA z7LP>M%&ofDweof|6oV3($JNr#sBXIF^>iY%W68gL%BSuVw(b01&Mk9#bbWu zv(UGj9C;~``isrJI*M{AW%*j@z=Q70s^nL2t_n9!`_1lRuV~hD9@n#we{1?3Qgd3z zVG=Iq{F@B@7cuYK@-YQcQ9rB2pI1wGNb|oT>~~#hPo?6GKD(#GGLdJ5o%XB7|IK2* zj$c1YEbdpGZ7)P4&Mbo(=W?gu#@8Z#4=A3$>4rTNU6~^ve8TW>o7(Y@dYj%0I~)cb zEns&P9iwU?zw?=g%KN9RIPgSfPbFV7XX&828ZNjR)i@Z8L`Y>krlF13K8avley{SL5OW$-!YhO2s|Ml z_N!9-DO&si7TYY@&~1EnG1AV7N)DMq#)G!IVeAj!)A`#Lyk$e2SO_ ztAT}}jf-kPgrv1Qg;RoEL`y>1io&hNEoMfQ)MMe7Lb9a@%|KXcIiIu{MOfoUusM)9 z77CI$sGK|kY{+kC=jPu^!Jg&fhDlCqEB@&H}BphyJ$VgK7 z1W4%;RS-W8+zv2L;^Hv~NT~w1GnOt@QH?`Pk}4Dlj1dE~IP1#O)Bt0J@7BSxPOpgDI7%laaD?`WJ48 zxE(o=Owg|G5v=DKsz(pk_leT+jYgOZdY3c;;z@pcU;=QvVPuA0M21F43UIr6SO(NG z(6>V;17E5x^4pX1ktYM4jC#suqtrbH8T$;f4yY#Y&`8^Dxb~oa`rZ}UhxJnquGn}= zDP_0u_Fr;K+b)cJyFT&l=GgqX;e}tnENtl=PV4#-S^v)KMKg2}5ygF$KNsudU$)FY zzdUZYh^a4^p?Bn;FMO|*EYI5Oaqv%*?A-}BUhE&3mfdznBH?HIb=U2#*Td=Q{;=Na zN}485q|_hr9tQIBt7XL8|(sAq5Kk9!=S^t!xyPcIp! z7kzYl*o$3e|L229XbC9)g3Q2xk`IyPL+FurD*OPT5>PsV#K@?c$%u+k2vow#hu1Za zr8SMjGzq+0do=RJGRRhkf|&Qa6nL&FIEizmg%)V)1R?kPry< zPFTh0ng%3?&%lKW=pIov4B|bs>S5FniBWLnT%4_6}zgoKzRsd|J2bVEr3 z=nh_*!McO=OKUduT21KSXI(mS8fg!Gk>EuD)=CBw+lce*=(G|1I; zu+4q}j6p1qPsL|UD51!)teHU1yUVk8(KWMCNNayH;)@`iYJ|~Ed6f^NbsbD#6oYan zAvsMmsEdkhm;x1#gdZgEz{-cLNB|zl4Aymwt#2F6Ly%(^vMVQmrm%67Q$2*;1Sq|M zOPQb@Ut&)I3^q^}MBQ;sL%X3)Z=2fDJeA!vh4QA9&M|Py>w2cwcTVQCO~Q_f@dV9E zo7$&0qR}35lxDKk;$893DUaG$)MnfUIBh`z}+UE@R# z&!E1E>br~BW6=eG8ZT@^;G6&|uYAy``16B=ruobb;tHk#|}Sj3miDF6=$Z52*3 zehctP!*|z$;qRG@?3qYL8f5phU-^5hdktCdmY5S9K28X1M<*JLs0efote-%_62@&9 zs0nCCQ$RB@k~57M!0qs!=XNdm6@PGj`Of9}phv*~QW=5U5$O|9Gv)ni$hUAPplm|# za;?d=TBloes$2fj+Hh6prxNFiMaQOj@3zsXcKqkC5K;my`ZRPh(5^sw2mdMlW5FU8 zk{06H2&@`Gh80?w;EYBDP+-GkOvN-(Tk&5Xy`b0qMXz_m2vXmrlMc{A_L!Z16)~{n z-Y^?dKB>IrR?x$b0mTze&))l2Oa@iY_*J60Y2Leb+Nom1w{_9^*(a@ScY`ZuA%t^& z_0^|h+P(3c?b%x4l;3m{9w|BP(mPV(UAJU&zEx@SOAhb#oRNE%-{>pQzW$|4E@EIC9`1=u-G8JY_quiP7a4HJifbV;rlt3 z$514!B$ZqRbzHgSjQLfTajRQ%Dyj8g5cXbU_V!=+!wTY$>XSLe|bA z4sKjV7+7SfQn~`ND|loqgq56Fg*1>k4v(s^xF#Ey3Jb3ag;yS6o56VVuyOOSad5J; zv-7ZXz}QJ)p|Zg=%F0IN;pG<)LAoO=A8KJ$*?7cYR^<|rAXZt>+8hF`JTzp&qbwEB z9g&Q{{K$j>bSI(fP_XmUI26>`6x7+3)LEruDD2pVVPu-a3CjjG3snFCGH|Feh;|~J z`GKpMxE=ZGj0Ln#^y^5GVX)U)T#^t-q_~HtVF9s2B%>9XtreZ4 z9SYXRM{LZ5cWzUYrE=(H$k1|If(+U5DM z)%jtI$J0*V#~s0Un^)a!wJGQVPi6P0%N@}DVRz`0fv^WX0k3-^U-bq)>4HQ&sB|c< zd?dVh(5b$%|ixzpuT_z6N#{hXT;zMFNUb7f6!P#YI`<#E)zrO4VPC=CEmqszzLYoqw9MwU&gV7H=F~$-gJQ%{Fz3Yi$jAf76?_?1 z{}oUWSQnf;D0d_c#9L9czEbwL1n6jFnXlGNL%}5ZS&ZsuIX)kvpf1` zurN*JG>mO-B*xO{mXYw5FDdO~8(YVaqlgrGs7=6HBba49;$oU7wl<6b!$a_c69@qV zEWLyXtr-E>29N`}O{}0DAVnby8HY)BXY*`A>q0^^A~ffaPD27}8fJ)VxN!z}9t<`t zt02;I(G}G?2klKNri|{XaO8h>j74-$0^ni$W>4G9$&Q8Xy(oB^OzRns>mG~l9z!xo zDqj4+8~`fV^7sz4nvNr;GP@VP;A!ylI0|Spa=NC#$z#O843dV`jkch%jK0yVt}zTU z7&-v>0Ue>%fcBfgZ%-k#5XXY+cqKryDed2Iyy;Ct0KG9?-;E!2Yuv0^^|}M0BEj{u z*cS0F`Q%kR5K!?UqIMV!Q!!N^5;_;%%15=XG$Rx!y7hZl*OW)wCpbWn;uwK|Q1I$4 z;~=5|fFU}9x|_L>@dDZ$;5Mmm8l*IOMIo~%O8YhlZzc#Y4LfiL*&WD1|55+qx`9R5 zLV=12_U@fc=$XJu?487CBc%^f6P%!FjBV=JD*FdC>cy z^uhDvUEA3A4f1{*dm2MCg9;=J4&d#<$)lDusbM(iRd;ONXINZQ1{P4R8rD4--iHpR zS){T9kO%ip;Y(;>fa+mQjqDtSDkd85PXBa#9|7%2o#SK^r+qe~_Z!AKdez71{>8xd z$>4SpN9kFK=HChIh+!&$TneKZ3YQZ*#$q~1mn%}-vCEKvx2b&womt_nGeIpwUJaiy z?At%@x4zM8ceBl-__J%}SImsA&wKDI<8-A*Bk#$weO0T@4ygXzqPwfk_)w|W&6a@T zek6Q4mVWVV!2CFmUlx%3_)Upm$Y6lgLzfyd1`w>z%#K@pI z&J#05{j6vGv_~Bj^-L zhsx0XiM~Zn7xEZx1$}O1hHvLPsj{XD9-aTnxbsusV^o^NC`y0WAxNa0p7^Ix0#j zV6cT~FqZPsl+o+NBdJ9}3XPx$&DciOJ`V2!;x~EJP1z7uv(l5((ND-fgvZH_qNUBP zZ^Nrk=M_;xD-$P|j0kO+kfH;bO)xu9`H9E`N)^JKLlVQy&ch913?wU5Q2HdIK;c4bssx1Y=w@OjE&|&lMuv?lin)Uw3LjkO72)I)2Jucb=LDj2;uaB_ z9ONUPzg#@4MwC)s!DLGYDl_jSSCQbYDBhH)Oww$^@g!|%aXPk zrEJ$q%vVdy*Gbr_m9SMKVXJ1!4(;^akho)MX6-e}+7I2kZsuP3#BEXuTg2kGYUH0Z zIe6aZPMOc0^5A<75auao{w@}@OT=>{jlNOEb1ls>nnl%#%fweFaYw?vlDx{U-13f1 zW%Xyi%pL!@=zXn3Zu1%IKZ^q&b=qGjv%6kwb+KsWpU>?6Dt5nG<#Pu>y~g`)h2On; zp9c+YcWWJP*Sg$q1WNb3-|TU_!QyV6+oRTi$DKX}?H-TY=`VUfyoWw)ce>wZf3MZ4 zpv(S2J0QB(!_LsB{b5h~L&^qX%icx2e2Y{W|Kd;4Z-&C(y!R`67xrqvzpx)kGDw4T zc|!hF`4oQy)8+l_eZVUaO78&Lk%$;j{K50_Ti7QV1pa_;ArZjSpQ1JOE4XX;9KrB= zy#DCjFbXO);#!@gU%t|snd*tK%nrgXyL@%yl{Nibma$_clUuk?yhbQ*>? z%_2My{x!gW#Og^1X23#|GN#(`%(_WS66(g_ zQ3bTdoe?sF1;!Y95}*zyJ55CIkdDJXNu=8IIbDm;ioiHY(0ls~6zp5N=D@nc?Fjmm z;1F=yb)&cga61TpY#iXh<14cAksi;3e+RWsL5}g-qSv}5e$FNRAx7c0mohd z855vyN3sew1v-dL5@!!*8!8v@_V^aKUoiQYI{6!PpJ}!iU9xVLeXh znZZIz40GW=c&S)Kkk+;6Q}WKQdT4d;xA3-U(wKno`35MLP+>+Q`f);#LWzL_lBd<} z#H5Vyb}a0dg*Q$>yAswi3t>`V0~F(5eM`U69}l?S@AfEqYxlB`UfAvatUI`P#P)2n zV&<*o2dmBh>@)f2quJp)!vjTLH=5iZw)&TUb$#{49WBr0*w`8;aWN3a)FQNM0s=hz z2jY)umrM}j=%)al2M))k9>jRTr6aKr$<)rRZvGBdKd@vpxn(J(X+e4K4avOoNwvh; zir6c#@e2FyAR#KKVHUHSXUVu%=>(EwfZj3Cc~(vM)Xlg(>(ltDi1<>=7W|qP==InT zT+;vPjoI<1&IL0H>s~lse;Zh{DYqMw&(Bz9f0&Yz|1@jDU<7`%|R6(0e z#g!2P`aV>T?Yetk3&%Z?N_u6yvq>@azL?)BX|JE;{eDqOye60PKs*1b+Rhj9yYF(S z`>`kn$>l#*Nc~48_yE{x3ahr1`8uu8(=vfuD2Cw*UV8-G^97fu@+dh{O}DEjKGIGu zU^Vd*_u4@VI83wMAmhG?V(2dsxf$|%<&0nWf_4jr?AOS?ptAFC?K9WqkDL=r{aGON zpm6LygF_c(f)XfdW^8K4qI&Mi)*D2$qj@yxES5=B=WKq9a1mq~6*h52CT`~vC83c7 zx62rF$eOXK+i3V@YKP>=Iz&)tMo>u^b^bHKzZCPQ#L@?=O<3lX>fSOVf~ z{9;VpPOe~qgy$1u25;m$J2?$Sbf)s#B=y90D}>gi(0JD`o%CT)Ccz;h#saa>|AgC#zXHBmD1Uf}e&#;_JmUb#)BxO$1qPphcF5=d%fJ5}JpF&_ zXV`=#nYbNHJD@u^O`ca?g-2G2A4x}YKUz~!nJTDEDpRq3@a>w0XkQZ1S;hqIBDyQY zj4VVA&Bcw0FBPC&e3_l(at3al8D$?b$v$M1b%1DQGWHo}?$^%Psh+Y`D|456#%|r*!zvkjv~rJ_Y(FiR zenKPnFa7*0%IRmdGybyKa?>RBS6TW-ndKpvMyVEoNT&(8@-*`HOW!|lZFpX@uXW(^ z>{4!Zzv014I{PlWUMY9FSYmtjx#K@Y_E(E+FTRAc)$v-H`~6yvht)3k%3N>Pxj$&K zy;HmLdX?4PdaGM?7MIE_E|%KdsD?WgLid1&Bv{7nal6-}Hs5>A-uK$wZZ*3<=y1K? z?pe_7e5=XlVOQ9*0iRc0QLhI>i{2t163H_Nfe$Wv>tFscr1&Fhn0yL9p?%5i#Ru== zk0DjV;Wb~-KN9l#b5QX+tgzBgu$uZk`{4WZ10qBMUk&=b7(@^aBHts*zM>fiK1YW%?m%+-yM+JS0J4D zvwl>boc?kVMRk)6d;Q-n1k}!iRZfSL&$yOMSQUP8d-VmK<`$(N{i_kVJQY|y8CExi z{0De8@j9Vlh^w9stC}RYqbRCsBEE7gx)Mz*h&_jneH?-r_%UN@z9KOuu3;3An`8+h zyRv?i=ti2xVaJ326u^lHWVdjJRzq=(0|6_JMZ!!NY3%@|AbxQ>47qp; zEaYM04q$zOY4N52h{9-$I2u$MAwwScnFxeB5!gjQSeVhzg=4|U0E!#(7$ijDRIly(j`=0D?7jc%0sK;A^)F@ieTQQdFAPHgemtTR zWmQwiR>kQe<`IU`nD~xiQUKfEF$J`b1&cbeMgf>nkc9Rn6yP$YYY>V<*1ozG&J-xA zNQ4ePrO-;@t-*bO*qOUX!PTgB8w+KOr5LH;uOWMX4|?f$+vv}_Y@f9`-v=`93@aL5 zcJz&W`Zc&3%`Ws=y_&T-QK`G@uH&ULt4rlj)Pz+phE+}>9ySOStM!O~oWcJR2x*6- z1Tm7>NrAo{&q%atbr@de;mtv(DncV;Yw-KK7}xwQkdZ)}*f^Koyr_5dk>)Q&u?>rU z)l=Th3xN&u();eB56-i0#nhnDplQ8B)F%=SPsbd4mXhBsx&K_Fy6J^r^qEyxKdJxKq`bM@ z>O?2SC|^GGFOh%?>RCmyaTnO_GKHNI#GK*;>?3s?12tAgQWU&dT{o%yQEXNB)vRdH z>cIf|IGnGxTAXjf&J?|Vg#MsSF7Jx|PnEWJI_-a|l27>E=;#ysU#lhQ+XRe5Woj%pxp3^;6Ny~aAm0G5p`;y|lpVM)>u+=_(^Fy@IE41|6nrY7z zkJQPXEap-7-3^`8tJIaNS&f3Ee6~?m#fzG*;Z?Td zwb-ST{#Y;hKBtif&25XQ*B(iSBqh(CY$iDzPI(f^yDWeIhd*T>#Vudcf4|b|Jz~jQ zcmgw}z1Ax`XNy~g%XmdnxPBCO1-V2I>)D8u>GmSIsd1e8trludz4scIH{S`K`gZd|Ia z5(f6Hisss5hlhg^|(1O=4RFU~5H#60a}~x$OYMxRqdd zswkxR!0nK}gIxz`r*QJ((V$(yBjY+2&^s_Th;hi~aXS;VlP3cA4xo<3VBiVZMgThy zJ4u+~MPei?CmLNPI2mj?zKe(D6%pqXr-5>(pf8ny+kbHEEEoYW4)Ebi0{eeF6r;ik zFBNe&WES}0OJz#s8G$v#{`y~FJ0^(#|Ni^0d^>RazxZ~NP|C#ZiWvAcCC^Yb-)PY6h>=nAi$e&cQb0Vq36z6UK(_w??O|(y*fnBuHDhws!?U%c zb4^lr7^m-2PuilAxLGZEw|2$>x$1cCrOU8-3+r#qZso^}9anho(K`_50xJFVMpv zV9oW(JC~>L9i9$&ym}W{`7yZaU3lp*0%Q;fi3QLeQ1l*=@4+v>;4eFnd_d7VkYFAU zd;JRsBP$>^9}1|MM)(Zus{o1sNFerAHvjGYS2>c_!dubdI3L@)1O$#hd}wvFzSm`W zw_p9YTCJT=w2}@9F1J@x)8Ura_Ip}|l5y9UkWWu}z8npFjikpV{3&;>8b$yM5)}Q) zVB7pkoMlLdL%ezYM06FzwBue#S*)H!0cdpjXlVHeA?;fTpaNpYOhLlfYlo3}0vw3k zl8lD&v<9GJQo#e;CU6S?JWx7`muUodJswv}LSTU8fw+in1gUqZB5fhIQ&=?-_6Tt= za3-`FxFo^`sIQwR@|q^LAXTzs7O)4}7$EkciPhUpKT* zZ0wxc*fW#SH0)FW8^XuL)^CZ;3y50>D~O{*BVOgAZH&lgY zw@hzpncCHg1DVKgo7mPmjpK^=AYP_%I;|1d4_?<9D3LJ8;BJ7C;BpCyYZ(WHjw0Ipo_X;3cpOmrxW27t0hB&$ zv(V3wrdp&>b}a&~1H(fSzXmyn9g{GPZtR%d+A+7SeE}3b295M~GK0Wsidx1vvI&q?Z7%I!nV&^PSbgjEk=;SI$-A%;g`C;|)-{k`Jp zfGb*k%O+ClAq~QY3lef>f)V4>LW*wTj7F47OxtW)J48e?SQx38=|)IyLE;cnVo(8q zPX#s(p!tXXANvTHHSjVL2WAoE2rUh0b7)l7_7UkgK4wgO4w@RE9kD-HB;~RjW7;Gr zagg)4b4D*w5T*B^M`<#&XL|L(0uVdGbHJ_>svn__5EQ{Kjdv51Me|f-?FiCA@j1th z5bD4k0I7M07@JfDNNWbAX5p% zKa8?1s6>#&jY(^8)4AHc=%)<|k1@sP23M66pMaG~Civh4Y_R+!`XV6Us zARSRMg1~klaQFLt9@kntt~K~P?Qkt>2S)+i?smJ==un~2u4mR~TUOlcx3B$fvirW_ z{+ph+>&(xWt+>#Ls$zsP;g>oPVs*qnl3>+oAo;NBY0@g&Fpo$Xkns3ji$FVS9e!sQ zu%hecBgzq)O6q-sA$_mF{~oAXTQWNS!t#3Sn&zdznps~2!q+dz?YZm!dc+N6Ld6`Q zyKm_v7V3|KYi2`g=fY~{ybC_8_@iNU$&&vogu0LV)J#T}FDh<)B9VL5_|}Bd;byZ( zA6J%5xV%}i`KMROF^$taPRwt&aOf|>!GEYlU6yeBNzD5=pWkr>-_u-fM|p$JYaJQX z_;p4jy;jufsLqBv-gn1WTp85=tJ(BQt2BLwT>dqkgGKt;cNGFJ>uxDDI8~*Pbk!*O zj@-726_wv)e}5_JmL=|gL@eT0dclzHxkjb@3bRcW?D{!W*TXy>=hd@Hl{2nzxMT?0 zCCj^KNx3H|SVgJ3=Tep>@g@Fh_v)Q(%_rkKb=EgqTrO1GpRN#(KCQmhgwBq|E4(RBK}d)ai^r^9trwyGD)|ULjIB5SE_!gmLg`!DrPT|e_LbI177t= z7PT;=J@-YjZwPrFrYN~{Ef10K$YC=Jk}``G(sbarKcJCbpd4|LqG~1XkSpZ0Lv%$l zw?VwHb)Ja(4vI~xM&2I=`!B0(KP%vn&F;635}L&xzRn=&kXiUvep5G!mI0@N302Wt zM9CC^Fw%Cp?E0%ICc!G3{xsNjQJlV(N8M3O*_u~&xd3puzB|9M7kX5I+xZlYgfvKa zJHI-pbyF@yLqT~XJ{f&ZDSZxEV{VmIyjo7&T5har<S294c1q8ZJ^6{;D=UBD$6= z%4S@8?z|e-?6QVj(i;4-YEZBviJe2*5YU}Z)q+RfgcE*MF-0sYO_iIb#wLpF6jiYL zf_heby4DmqLyDL>RZLA^Y zL@GntNEx^tw=;1&$a%2t;&S@jr0`UVQ_@IG+X-RvA{urSK4o5Hv#<+N_~f}n6cMfn zSvU`;AP+Z-B&!gj2P=XT^2dH(Z+|h`{ zC&=GjQilA{)L|jTxTG5AbAcRDkmrDOJ#y~M9Q<11K|rz}QLf6)L*zOb7Ff9e<8g&tXY%uG|Ix(6&P{ah4BQTeAM*my>M(eI zfcAecoeWdo{@-*md~)gtDdkhp;8)b-S4N4L4!^1{7BjzHNXvwY+l6(OV-e_XxRSYq zjjTjXY$TRBNGx}fT;VKZ=`LmADh1Zvnl5AKL$mdkwDXg42#|3JlyeJK^bAv?N2~b6 zD*3Ed_Km|*3`hda4%`mVt{jrC6q*Tz49IrX=nY!2n>3^IbXIRRO5UlTx=THIyIKmo zsECm{q?dKXDEpZ4+GB>9M-0*q>Zcx1OxvcyVA}O_51VcIMLTn!PUgYo8&8_=IJbQJ zd5gVQR_?p%_|r|#Q+Mq4pRw3_EWDsRskmul-N2UWKL2y~ur^e8pBh=psqA+;`%r)X zg=NR@toq}*!{0^ptEIlzN><;ljJQz|c&(CtwbJ8S6$I@e59`7U>iust&~Mb!Z#Q|~ zYw@_#3Ob#BtJV2Z4RAaCMjdc_XhEmXlTPT{{R{hIU%y}Tv^VZWe=MN&v+lscKJTYp zK}G$L(6~Hr!D1ChC|EkaH@jK_+?OylV z0a-!nq6x_Izdoh$cz*ll{Ybj8^+_v>w9*?+pd7Jqzr;fkUHvYq_B|$oY=G*f>2)o$%$iZaPKf!#Dn|h7fD)m^ z2rB!C9R%11uyGHGICSGA7zcuRh<4zFWu&j{?wH@+2HZXg)p|z#NP5#4IBm#U5CRD# zj|GK4*mbD)N#1+I~AS?R!@H z_q0}&aLuJP&*RJd4usDTV<{$-?AFnoj*0w%h0Xo*>pLcZ+t)MlD)YO(0YU?}1Mi`! zhm1Cz({R7y=*R(LVnPrQ$}}0c9pDgO0!-p|Y?3J{av zt&Bsa5bViFT<@B}rVQ?bPEyy3A zK1f!;duMfh%jsD{_I^q~I$Hr>M`B^YMhsEoL~hq2><@Tr@Vtn81h&UQCl}gXarSUZ zF-&df{?%S&!|FzmmWgZ}JU+$*=&X>mLoy*d5tu&<#vW$|X9?II z^EE=2fZKx`(YY{nHcb`%Y-EEu$^ol;o)=du$I{ffFA9<^ECXmhzg7*RTkqi`!9fmHzr8^MOI8|?716PF%{ah=vz5Ol4Qy!{K_Zr9~8-ouYn+E+VkNDi?dBJCExr@ro3v# z;8u>T{I0a=ncR+t=67e5x0MIJ8i&Kh$0o!*UBT_Lyqs9)Uhn>*zXGP$>-OtxI=64QroKs|ELU^8g6Q4V;76Uf~dX>)QBI zW^VA4G4Tk)n+7m=cMj6E4={EdkDg6kD}O!PP^RlNmgh`8&)Hh;GY#A$+5QQ-K1uAr zRJ%zjroNM58fhGyWD%4A4;eih4`|CFQvs>2Z|9E{grQp$+hr209rY~S^(|eHri#c> zgo;9)q7S2ZugPQJw`1&1F&*?wT#PI{^f&QbaMieO^F{pSHK>jGsXPRM|;7Kvvw5@}I*hzS+Q#hsP$Y2`~cyH{eZQ=m87POiY zSZjdRQA1Go+NKCgbr@sptZ(WL(9SS)1IbT1UST+?Z>;fGHz24R=KDGZEE{iai*b~m zH3bnoQ{Tjt5c1&L4a^;k%xwwZuBA81w-emXFu^35rq=o zgj&~S{Tr(jX$_VV1h=C{^?&Qz!Q^W|J7N2wpNCXN<2CvJ3%7sNxBn;K&a!tO#q9=8 zUTkM?V!x?@?ndr@MxKGAxZT)0#Kb4m#5Wve3jcOM_kc)~@sVREOtT1$0dBVloe9Kl zJt@{YGM+Oni4&ay&`xlB%skHQEW5Y`4hcC9a~C-#<~b$hJEaskrxrV=mB4b)DT9#h zj+q+Vo(+Xez00B%UW=Q23YvTuukzP;wtJSXg$Bl>a=TmkR+rMvC~SCF?eJN;6J=Yn z)}wk`=$d^K*BqF%;o$g&&w`uwhOhZLc+I|$jR%7^emkyZ|Fkbo6kmMQaQ9Wq1r1N7UC>ryu+?`S|VBpKoP- zcP;bi?ZhK@W_){n*7vty0=e+)^ZYYUQja}MJn{g#&7_kr5`KQ3a;h!$JpT8#bcA4D7cRc^F8AWw?91(m=U!%B; z;`!H*|JVhO$JEP0q%zI^qXPsxbiA>DcF+1l6n%jgdx@KRT>wY8lp9^p2_#<=CH~PJ z^V_?qUs`9N(e-j??4{PEYh)kr_K10kz3>KK#$9fUJK6^8c<6I7uk)bLfWhFhyJE|d zZ61Z6IF)>Azie;h{%c-4&V=p1o_$Fe^vMNyqap5a>UU3lx19^va>_S*t$R=+avXf> zzkvJ|`Q|X6thh6@@S?EzZhzjbo;lZhV2lj&^W^JdQ0@Td(8<8=0}wamwiI1&NE(7* zweS&o-`;1ymhfpm+)j}03RyCA+L#gw!Vk#2tDf|gKa?(g+(+tR&nSk68UbD&=sRHTc z+{dNnmpqbGzkFZ$5@tBU-1|JFSwV{qZOPK-av&LkZCVFYUVMQ19X5tgeJpq^$-FPd zoEP4a79t(ynJWKgDi?XG67525KJ#u`{;X8R97Ae^O4H^^VxZNv6>VkKJ zGwz7zKnP9Dc8IGXnqgr?Q{Jg8=cFO;_=UbeK++JrWeA{!eGP;z8Z%6MBVl}WWuhQf$B7W&{gzZYS60>u z2biJqj-iUq;i}Hz$`1VRAdo!zL(%?8IzZvmu93UrB4Dbp4;uXvEvu*{?H@|t^+URY zyd?NKF1p_hQ&SYyeO2$25Kzs#(V2Nqi11eE-hsyPCcXm~w)SGlP|j0;>c?flf&xvZ zxNB9fKUBXRAR?%CVlM*~J^EyEL2!AojhjNOHPN_%049xZJdOgJpwZM66S zj;42&n9pdmMgw?!0~nwCa)?+PAq(uqVCKug3@m(}4#3zd{(L*Md?~m3kaUoAMV#^* zFY)x7*mG~DoNt|S;t5*s1AcfIb@Fx6?;_CPQ5U%pw?yVk_J#lRTI$`dv}b+L!&6mXz*?p4~Z;a^t8KSv(s2YmH>Z0cUeIr}Dk{wn<;J>w+L zG`0v%jNr-Bj<$MkxDmXs)w|#Xd-@vtydPc4&p4ExvdjC%cHSnNlm_#}CjHsXoGA^4 ziCaCl{5AJN9~6>PzrQo{)GMFw9#1>|VBF42mIVjHcil-lFPX6NN0aEr$US!x&hjVL z|HhnHZIQIrCF^sO&~o#M`7C6QMl3a%Rb)0f&vbl_@yspG>t49*e(c(G&LnFaXThho ziR&m7uySAcc~_;yQo9UFgSwxWF%uJQ~ROPcvnX5N&(17+k% z8M#u%h=SsPZ`VUBE89wsWig7|0opa-{J;BBnP9Nluqgk#_fwDfMv~}KiebSd$x7q3 zY{H4y-Zccue6~vzD0)iYoH7DFw}Fy`fz(=9se_r7))M1+7aA-S)LksNX!RNz;Uq{c##0cp~XfR-kD_-7U`WTSMp5%`z8yP%v!Y^cWA^4$zJ= z@}6ky69(Llj%*-ylWlXrDOCEO>_Hq*#maSj)%+$YVgWTSuo^N6+KLWLnS6 zu#KH>myiqG?vS+DF}V<+-6gH`BWQQcS_-n=bwMpayXT??x5cZxi&}gNn|+H~##d~D zrroP@qi6LN=Ovp^jwKuImu$2z+iYL4)uDQaQ_U`qsvW-dd%`z-8`Sd6gyye(SMCd1 zduYO%Z-Y0Zz6;rL%y07%&-I5wKK&{8Uk^X;rT6yH>)Lu69`N_~(g)wu^$!GL2hZB? zIU4firGP!>gZEww-G4pm(Cx^7{)v30IY+O@eRqA zAu*Q)@J7yn5all7W8TlXDMW76oO6wb zFXOMh%{;@;yoNzUiT6Z#FZv+Q-Xf(_e}CpYe-pS4+hu#Be|i%1!@ZbGd?3=fe@XmL zx5wY>i@zz=Rtq^UGir!_L>k)sd(I+ z1eAWaFAbrtj|ZVl0AGh^?zztgV44j;1!^6F3dn|$Q?nRBjV}kG;011n#RtU05FsFi z2g(6p38j|Ljx4gL-e)dLl;KcKKNx?R@R2XKPENB~H56r%YKkQLA!;Cbo0 zp_)ztbU`Bn2cl~d?jJDpKno#oV@2zGXuMZ;$^l20wIjmjJ@`y$Ex-wb!3G${_>154 z<#qHE+mrTT7=|G75*QCU3W!@^jFSaJd#Ep-ejweTZ)8B5O0k zXCZFE>n5RU9aquZDQo5`n|bP$9jbXhN*a5#rq;*w4RWtZ|5RXjNWZE@$&V%~5; zm%N@oys}HyD3GI8bjfN2vPz+>RD{0EA;`QTH7Vi_7xHDLU9w6Xu}e|Qm)G)SbzE5k zPu?U@HHg%;0ww+ns+E$C!HRC#{EqjrFZ$9zIJe7SYg56Ol_MgJF9(_}>>xt%g>U3} z?aIP;s`OX=XC{0Q@9|tJS9fMDx-w2Sj?573h~|YcA$(uSjHWy=E?A_NR~^mk>{!*-GM*| zOAnY*=5)w&kcZVtQl${`oAIbO=aoA7i7e^nhx9)Y!z7x0xogtJcT<0Di#XRFc9}ov zQWvO(m*L(yqv<)RZeV_7jDD$-<>y<3)#Q=V7=DZxhH&xt4;l%Hs<=j)E z~6Pap$;w z?IGWb9haZ?Xt@z~O6L0okCT5QY}dV6w+3cB9K=Hb=cc1xOZOUA{2aRNfpO8bknaWd z*~iT@zqhD3G;YnE@$2pft~(vL@*9uRubnE6S=Sx2T5`y`>g1Gfc%k3C3HtW=qU zpX-h~(>wb*ciQpSZfmZD9ekH?Wq88&t7Zk?_~NcR$xoEi0xBTaFtVQIwb0Bz zN82Y)e_E~flx%irmPz13LN=0vX$Uo#=_?2BkotA%w`@(;?HvYzH zxNKE<*sl6$=ns#~ig(!;?(^UJ2>$S#`V+oK9=b07PIp|jo_i_fouus@ZxOPH6_CvK zOwb)STRZg| zN$GC)ul{u0_B%Uu13R>k88nabjMVcA(Q}&yMLOjk&I&8GjHqJ;<}%_dnPpq-3wIcX zmzelvF^IT5%D{Iz+jF{!YZztXjvOUJmx%^WAq>YLJ%Oy_VT*JuOh z7+u>b@N8tcMr+$np&Sqkm1!JWI(9-9WeV6o-q1Uq;S*2UhmEoEW7&E!ZQPkQ-ukxV zbvQxVHj~*-Q&_ek$W+on1gfR0j)jYsh1(dbAT6s_%AyRg}Y7FZG3vu#5tZ8Lo{Hv^6za682UHxBzp zLy7@WJyM^njjWtaY+PaR2&Fm`@lO!6!`20AmN90~#M+e+C=%^N{A5UB15PrdO{uVX z0Zp#?iV)%8#-Z2&GKYwrw76<0_rF0qa62G3v@VzimH;di@spv*lr-BKY)_=}8h!i6 z4IBC?0p#5)&`+orU|GVmT%*@DK&zu7{NFa7JrRrMP0<`PdI50Ra$n({+b!FJO zF*MMf;q0aF;>~jP18z6+3MQc4E7;I0bQHQ9`b8KAO#X=5t-@vlx0?n`k5SIAI_qnhyFGPHKKKAg9!YBN~*6#c^ zY1ZwxXgHm9_{#J{7iax^BkJ&@Nr&#o{M&OG{H-fyibC+on4{j~l7r7;WbRmBPQgZ}`CS2wvUlpfZ6(?R4B%bHT-y${_@I`@oIqzX#<_$sq zt?v3q1F&d=Y64&57r1cU=O2x_t5{s5fYp*hL9JAi0!L?gi|0&p?AO_c%P z<6HfZXhOzW*+!$UZSH+BbmQrd6lo8X8BdhCujzc)N{i^+SHl^PKal6zPmsn={^X^@ z|KtkMpHICnjc@$`6S);any`pnbk-MFEb_Jme|A3m>2U0${)9K`(3@huqM$T3x_3_U-;pm?6Mw!q~hdmjH>!7n=(OEC)>{c3T zc|1(dYgLtW(1ov6kTI9O16isnYM0k^sG9_Ioq&e(cK#bV{!$|g5?0tXJi4AoFMkJ( z_i!d(F`p~X?UWaCm6%?=kY3S6!*;J8$V904&sy27Y80!NN$7GRT`U+uE#a#xJC%(* zdZUO2L%Ui^uNKnlCG;u*4Xjuxq|3YMDz2)wOWi0SZvwbthbGZTL-z=vPF3g7nr`)0 z$;ftzYJ*gfqJo!F6g4GMf7?xy$SdVP*XIroG)K59@!?Lw~17{ zdPcSgWz|A;O*dU9rk4xV^#XO1m?ni!Nz^Uf%2gsI4!1&}27Fq^RpU~8A)t5m(v8v) zoElbApGYyjqCq0B2PW^Pmv_?`5JRo%rZQ5d02tS%O-3M8sE-LiEO#fBc$I*cY&)JWx(J@WEC#VQHiAfcdO_z52o?E4#WK-IWiMSK9s$f= zCZ$V1&_z9TMfb>3fqL|o)#BVWXHhFvqi|l!d+7Q;x>icAPhAh)(2KLCam~pMmC*GP z8aKMCdjxY>iqq*)mG`PEdPr4is#2<2DplcL)L^#QN31EyNR?P!AySr$=@JQ@%~NG| z$^jbTshEoe1#hHAJW?i*S4u`I`{*TN)v`XiahM#vx(A~vt0W3kg;Y`1t6JKpMy>5t zuj?CG+e5cV)cA?0>sI2*ER~GpN>#-@BbfYZ{Fjt&l+d_M<=v`g%m-IMJW_?LAyF4e z)p#uwksDMiR*)MZR*^+YH<|Vl0o^2|mkY=_7K`ac0(FUiCX0*K!L(;RneEENXTwSN zhqE83vhR{$qsXgbc)-To?u~Dw!>@~{{{_Q*c>x-Vc_Y*R*}m{8ozp|7NaUHKk-RRt zh(EGKsLt+EFXU^6#Sw8myXZa2XoHulVfX?Ys zEfgt>r1T;f&fgfCb+#v0Lg$I-{BCkd(dHTW^?9r{GDLJHS3MsFwgNg|NaK5n{G#Bi z@rxq!{&39Mj^bBz9+ytx_NVjYC7txl6T+AmgGOK8WhCtkDEn&0&P!o?UO9i&VO9B) zRoa)@(>F5bd~Q*2c5LZwuPxo2rl%A3boy_&$_`)4i2lr~`L#`p)UBo0djrq1@a))x zbIz;o<~^koAFGX0KAU!YaLSJZek-rKth;BqzuV`_KF8|IaaRXI+xjNl=f^%9@I3ft z^1i#)o1c2LJfr5_^gkkH&pl#YaG6>0gXhk_JhuK}Q+14$wS7$1TB}tjefM@weE5Dg z`~hyO9QIrs_uJ#>r_!ja{FH0`F*mtzC$L*}Vd4+n34f}6ppDsfC;ar_wDa$$Y`s4= zw#8&l11D*NMMR~;l%y4ZBc6NjQ44mO*Pdk+U!r0U8E&}Ya^k7$%EQLtP5Kj- zo5xgWxy`1W=1?IS43}9(Vd<7-=dD-WWyF6@IYzn9*{K(`iwY{znYPX{|7W9$(>hDO z3Ep|lIQ>h;q@9*itMt>?S+|^UZ2nbeYSS3UOe6m+?eWP5zF{nn87#NSlv5BjJ{Pzh z_U|UCwOZw$>1J-zo4mp>w1RS-i`*#ogf#ZJBy-QnNIM#1?#*@%{fOHQTqllk9yi7* zK;Ic0bqv#PIyE+Ij76A%V-(97E-@K;{v|e3>n%g_bseS}xDnt@xzD2P!pGPIz)uFq zT-(A!8=0zB0hC2J(;6FV%)8KT< zV+LnJoU!L5ZEH^oCM~dtK`*ENSRFm!UQFMCzZ!vFvP literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/megaglest-installer/meta/glestforumsheader.jpg b/mk/linux/mojosetup/megaglest-installer/meta/glestforumsheader.jpg new file mode 100755 index 0000000000000000000000000000000000000000..a22f9ff3e94da36764187bd6fc5ce06e35387537 GIT binary patch literal 100889 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

      Y5yb1eQBF~DGYh2k0zmJurJ|fk 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 #*JlYCJ$ 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%0DT+x@Kci)klzJ$b*tia*Lcn~q|3u#~Zk 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/megaglest-installer/scripts/app_localization.lua b/mk/linux/mojosetup/megaglest-installer/scripts/app_localization.lua new file mode 100644 index 00000000..55ff0b6c --- /dev/null +++ b/mk/linux/mojosetup/megaglest-installer/scripts/app_localization.lua @@ -0,0 +1,39 @@ +-- Lines starting with "--" are comments in this file. +-- You should add your installer's strings here, instead of localization.lua, +-- but localization.lua has instructions on how this file is formatted. + +MojoSetup.applocalization = { + ["Uninstall complete"] = { + en = "Uninstall complete.", + de = "Deinstallation komplett.", + es = "Desinstalación completa.", + pl = "Usuwanie zakończone.", + it = "Disinstallazione completata.", + }; + + ["Megaglest README"] = { + de = "Megaglest-README", + es = "LEEME", + pl = "Megaglest README", + it = "Informazioni su Megaglest", + }; + + ["docs/readme.txt"] = { + }; + + ["Megaglest License"] = { + en_GB = "Megaglest Licence", + en_CA = "Megaglest Licence", + de = "Megaglest-Lizenz", + es = "Licencia de uso de Megaglest", + pl = "Licencja Megaglest", + it = "Licenza di Megaglest", + }; + + ["docs/code_license.txt"] = { + }; + +}; + +-- end of app_localization.lua ... + diff --git a/mk/linux/mojosetup/megaglest-installer/scripts/config.lua b/mk/linux/mojosetup/megaglest-installer/scripts/config.lua new file mode 100644 index 00000000..a726bacd --- /dev/null +++ b/mk/linux/mojosetup/megaglest-installer/scripts/config.lua @@ -0,0 +1,66 @@ +local GAME_INSTALL_SIZE = 510000000; + +local _ = MojoSetup.translate + +Setup.Package +{ + vendor = "glest.org", + id = "megaglest", + description = _("Mega Glest"), + version = "3.3.4", + splash = "glestforumsheader.bmp", + superuser = false, + write_manifest = true, + support_uninstall = true, + recommended_destinations = + { + MojoSetup.info.homedir, + "/opt/games", + "/usr/local/games" + }, + + postinstall = function(package) + MojoSetup.launchbrowser(MojoSetup.destination .. "http://glest.org/glest_board/index.php?topic=4930.0") + end, + + Setup.Eula + { + description = _("Megaglest License"), + source = _("docs/license.txt") + }, + + Setup.Readme + { + description = _("Megaglest README"), + source = _("docs/readme.txt") + }, + + Setup.Option + { + value = true, + required = true, + disabled = false, + bytes = GAME_INSTALL_SIZE, + description = _("Mega Glest"), + + Setup.File + { + -- Just install everything we see... + }, + + Setup.DesktopMenuItem + { + disabled = false, + name = _("MegaGlest"), + genericname = _("MegaGlest"), + tooltip = _("A real time strategy game."), + builtin_icon = false, + icon = "glest.ico", + commandline = "%0/glest", + category = "Game" + } + } +} + +-- end of config.lua ... + diff --git a/mk/linux/mojosetup/meta/xdg-utils/xdg-desktop-menu b/mk/linux/mojosetup/meta/xdg-utils/xdg-desktop-menu new file mode 100755 index 00000000..e77d3824 --- /dev/null +++ b/mk/linux/mojosetup/meta/xdg-utils/xdg-desktop-menu @@ -0,0 +1,1264 @@ +#!/bin/sh +#--------------------------------------------- +# xdg-desktop-menu +# +# Utility script to install menu items on a Linux desktop. +# Refer to the usage() function below for usage. +# +# Copyright 2006, Kevin Krammer +# Copyright 2006, Jeremy White +# +# LICENSE: +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. +# +#--------------------------------------------- + +manualpage() +{ +cat << _MANUALPAGE +Name + +xdg-desktop-menu - command line tool for (un)installing desktop menu items + +Synopsis + +xdg-desktop-menu install [--noupdate] [--novendor] [--mode mode] directory-file +(s) desktop-file(s) + +xdg-desktop-menu uninstall [--noupdate] [--mode mode] directory-file(s) +desktop-file(s) + +xdg-desktop-menu forceupdate [--mode mode] + +xdg-desktop-menu { --help | --manual | --version } + +Description + +The xdg-desktop-menu program can be used to install new menu entries to the +desktop's application menu. + +The application menu works according to the XDG Desktop Menu Specification at +http://www.freedesktop.org/Standards/menu-spec + +Commands + +install + + Install one or more applications in a submenu of the desktop menu system. + + desktop-file: A desktop file represents a single menu entry in the menu. + Desktop files are defined by the freedesktop.org Desktop Entry + Specification. The most important aspects of *.desktop files are summarized + below. + + Menu entries can be added to the menu system in two different ways. They + can either be added to a predefined submenu in the menu system based on one + or more category keywords, or they can be added to a new submenu. + + To add a menu entry to a predefined submenu the desktop file that + represents the menu entry must have a Categories= entry that lists one or + more keywords. The menu item will be included in an appropriate submenu + based on the included keywords. + + To add menu items to a new submenu the desktop-files must be preceded by a + directory-file that describes the submenu. If multiple desktop-files are + specified, all entries will be added to the same menu. If entries are + installed to a menu that has been created with a previous call to + xdg-desktop-menu the entries will be installed in addition to any already + existing entries. + + directory-file: The *.directory file indicated by directory-file represents + a submenu. The directory file provides the name and icon for a submenu. The + name of the directory file is used to identify the submenu. + + If multiple directory files are provided each file will represent a submenu + within the menu that preceeds it, creating a nested menu hierarchy + (sub-sub-menus). The menu entries themselves will be added to the last + submenu. + + Directory files follow the syntax defined by the freedesktop.org Desktop + Entry Specification. + +uninstall + + Remove applications or submenus from the desktop menu system previously + installed with xdg-desktop-menu install. + + A submenu and the associated directory file is only removed when the + submenu no longer contains any menu entries. + +forceupdate + + Force an update of the menu system. + + This command is only useful if the last call to xdg-desktop-menu included + the --noupdate option. + +Options + +--noupdate + Postpone updating the menu system. If multiple updates to the menu system + are made in sequence this flag can be used to indicate that additional + changes will follow and that it is not necassery to update the menu system + right away. +--novendor + + Normally, xdg-desktop-menu checks to ensure that any *.directory and + *.desktop files to be installed has a vendor prefix. This option can be + used to disable that check. + + A vendor prefix consists of alpha characters ([a-zA-Z]) and is terminated + with a dash ("-"). Companies and organizations are encouraged to use a word + or phrase, preferably the organizations name, for which they hold a + trademark as their vendor prefix. The purpose of the vendor prefix is to + prevent name conflicts. + +--mode mode + + mode can be user or system. In user mode the file is (un)installed for the + current user only. In system mode the file is (un)installed for all users + on the system. Usually only root is allowed to install in system mode. + + The default is to use system mode when called by root and to use user mode + when called by a non-root user. + +--help + Show command synopsis. +--manual + Show this manualpage. +--version + Show the xdg-utils version information. + +Desktop Files + +An application item in the application menu is represented by a *.desktop file. +A *.desktop file consists of a [Desktop Entry] header followed by several Key= +Value lines. + +A *.desktop file can provide a name and description for an application in +several different languages. This is done by adding a language code as used by +LC_MESSAGES in square brackets behind the Key. This way one can specify +different values for the same Key depending on the currently selected language. + +The following keys are often used: + +Value=1.0 + This is a mandatory field to indicate that the *.desktop file follows the + 1.0 version of the specification. +Type=Application + This is a mandatory field that indicates that the *.desktop file describes + an application launcher. +Name=Application Name + The name of the application. For example Mozilla +GenericName=Generic Name + A generic description of the application. For example Web Browser +Comment=Comment + Optional field to specify a tooltip for the application. For example Visit + websites on the Internet +Icon=Icon File + The icon to use for the application. This can either be an absolute path to + an image file or an icon-name. If an icon-name is provided an image lookup + by name is done in the user's current icon theme. The xdg-icon-resource + command can be used to install image files into icon themes. The advantage + of using an icon-name instead of an absolute path is that with an icon-name + the application icon can be provided in several different sizes as well as + in several differently themed styles. +Exec=Command Line + The command line to start the application. If the application can open + files the %f placeholder should be specified. When a file is dropped on the + application launcher the %f is replaced with the file path of the dropped + file. If multiple files can be specified on the command line the %F + placeholder should be used instead of %f. If the application is able to + open URLs in addition to local files then %u or %U can be used instead of + %f or %F. +Categories=Categories + + A list of categories separated by semi-colons. A category is a keyword that + describes and classifies the application. By default applications are + organized in the application menu based on category. When menu entries are + explicitly assigned to a new submenu it is not necassery to list any + categories. + + When using categories it is recommended to include one of the following + categories: AudioVideo, Development, Education, Game, Graphics, Network, + Office, Settings, System, Utility. + + See Appendix A of the XDG Desktop Menu Specification for information about + additional categories. http://standards.freedesktop.org/menu-spec/ + menu-spec-1.0.html + +MimeType=Mimetypes + A list of mimetypes separated by semi-colons. This field is used to + indicate which file types the application is able to open. + +For a complete oveview of the *.desktop file format please visit http:// +www.freedesktop.org/wiki/Standards/desktop-entry-spec + +Directory Files + +The appearance of submenu in the application menu is provided by a *.directory +file. In particular it provides the title of the submenu and a possible icon. A +*.directory file consists of a [Desktop Entry] header followed by several Key= +Value lines. + +A *.directory file can provide a title (name) for the submenu in several +different languages. This is done by adding a language code as used by +LC_MESSAGES in square brackets behind the Key. This way one can specify +different values for the same Key depending on the currently selected language. + +The following keys are relevqnt for submenus: + +Value=1.0 + This is a mandatory field to indicate that the *.directory file follows the + 1.0 version of the Desktop Entry specification. +Type=Directory + This is a mandatory field that indicates that the *.directory file + describes a submenu. +Name=Menu Name + The title of submenu. For example Mozilla +Comment=Comment + Optional field to specify a tooltip for the submenu. +Icon=Icon File + The icon to use for the submenu. This can either be an absolute path to an + image file or an icon-name. If an icon-name is provided an image lookup by + name is done in the user's current icon theme. The xdg-icon-resource + command can be used to install image files into icon themes. The advantage + of using an icon-name instead of an absolute path is that with an icon-name + the submenu icon can be provided in several different sizes as well as in + several differently themed styles. + +Environment Variables + +xdg-desktop-menu honours the following environment variables: + +XDG_UTILS_DEBUG_LEVEL + Setting this environment variable to a non-zero numerical value makes + xdg-desktop-menu do more verbose reporting on stderr. Setting a higher + value increases the verbosity. +XDG_UTILS_INSTALL_MODE + This environment variable can be used by the user or administrator to + override the installation mode. Valid values are user and system. + +Exit Codes + +An exit code of 0 indicates success while a non-zero exit code indicates +failure. The following failure codes can be returned: + +1 + Error in command line syntax. +2 + One of the files passed on the command line did not exist. +3 + A required tool could not be found. +4 + The action failed. +5 + No permission to read one of the files passed on the command line. + +See Also + +xdg-desktop-icon(1), xdg-icon-resource(1), xdg-mime(1) + +Examples + +The company ShinyThings Inc. has developed an application named "WebMirror" and +would like to add it to the application menu. The company will use +"shinythings" as its vendor id. In order to add the application to the menu +there needs to be a .desktop file with a suitable Categories entry: + +shinythings-webmirror.desktop: + + [Desktop Entry] + Encoding=UTF-8 + Type=Application + + Exec=webmirror + Icon=webmirror + + Name=WebMirror + Name[nl]=WebSpiegel + + Categories=Network;WebDevelopment; + +Now the xdg-desktop-menu tool can be used to add the +shinythings-webmirror.desktop file to the desktop application menu: + +xdg-desktop-menu install ./shinythings-webmirror.desktop + +Note that for the purpose of this example the menu items are available in two +languages, English and Dutch. The language code for Dutch is nl. + +In the next example the company ShinyThings Inc. will add its own submenu to +the desktop application menu consisting of a "WebMirror" menu item and a +"WebMirror Admin Tool" menu item. + +First the company needs to create two .desktop files that describe the two menu +items. Since the items are to be added to a new submenu it is not necassery to +include a Categories= line: + +shinythings-webmirror.desktop: + + [Desktop Entry] + Encoding=UTF-8 + Type=Application + + Exec=webmirror + Icon=shinythings-webmirror + + Name=WebMirror + Name[nl]=WebSpiegel + + +shinythings-webmirror-admin.desktop: + + [Desktop Entry] + Encoding=UTF-8 + Type=Application + + Exec=webmirror-admintool + Icon=shinythings-webmirror-admintool + + Name=WebMirror Admin Tool + Name[nl]=WebSpiegel Administratie Tool + +In addition a .directory file needs to be created to provide a title and icon +for the sub-menu itself: + +shinythings-webmirror.directory: + + [Desktop Entry] + Encoding=UTF-8 + + Icon=shinythings-webmirror-menu + + Name=WebMirror + Name[nl]=WebSpiegel + +These file can now be installed with: + +xdg-desktop-menu install ./shinythings-webmirror.directory \ + ./shinythings-webmirror.desktop ./shinythings-webmirror-admin.desktop + +The menu entries could also be installed one by one: + +xdg-desktop-menu install --noupdate ./shinythings-webmirror.directory \ + ./shinythings-webmirror.desktop +xdg-desktop-menu install --noupdate ./shinythings-webmirror.directory \ + ./shinythings-webmirror-admin.desktop +xdg-desktop-menu forceupdate + +Although the result is the same it is slightly more efficient to install all +files at the same time. + +The *.desktop and *.directory files reference icons with the names webmirror, +webmirror-admin and webmirror-menu which should also be installed. In this +example the icons are installed in two different sizes, once with a size of +22x22 pixels and once with a size of 64x64 pixels: + +xdg-icon-resource install --size 22 ./wmicon-22.png shinythings-webmirror +xdg-icon-resource install --size 22 ./wmicon-menu-22.png shinythings-webmirror-menu +xdg-icon-resource install --size 22 ./wmicon-admin-22.png shinythings-webmirror-admin +xdg-icon-resource install --size 64 ./wmicon-64.png shinythings-webmirror +xdg-icon-resource install --size 64 ./wmicon-menu-64.png shinythings-webmirror-menu +xdg-icon-resource install --size 64 ./wmicon-admin-64.png shinythings-webmirror-admin + +_MANUALPAGE +} + +usage() +{ +cat << _USAGE +xdg-desktop-menu - command line tool for (un)installing desktop menu items + +Synopsis + +xdg-desktop-menu install [--noupdate] [--novendor] [--mode mode] directory-file +(s) desktop-file(s) + +xdg-desktop-menu uninstall [--noupdate] [--mode mode] directory-file(s) +desktop-file(s) + +xdg-desktop-menu forceupdate [--mode mode] + +xdg-desktop-menu { --help | --manual | --version } + +_USAGE +} + +#@xdg-utils-common@ + +#---------------------------------------------------------------------------- +# Common utility functions included in all XDG wrapper scripts +#---------------------------------------------------------------------------- + +DEBUG() +{ + [ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && return 0; + [ ${XDG_UTILS_DEBUG_LEVEL} -lt $1 ] && return 0; + shift + echo "$@" >&2 +} + +#------------------------------------------------------------- +# Exit script on successfully completing the desired operation + +exit_success() +{ + if [ $# -gt 0 ]; then + echo "$@" + echo + fi + + exit 0 +} + + +#----------------------------------------- +# Exit script on malformed arguments, not enough arguments +# or missing required option. +# prints usage information + +exit_failure_syntax() +{ + if [ $# -gt 0 ]; then + echo "xdg-desktop-menu: $@" >&2 + echo "Try 'xdg-desktop-menu --help' for more information." >&2 + else + usage + echo "Use 'man xdg-desktop-menu' or 'xdg-desktop-menu --manual' for additional info." + fi + + exit 1 +} + +#------------------------------------------------------------- +# Exit script on missing file specified on command line + +exit_failure_file_missing() +{ + if [ $# -gt 0 ]; then + echo "xdg-desktop-menu: $@" >&2 + fi + + exit 2 +} + +#------------------------------------------------------------- +# Exit script on failure to locate necessary tool applications + +exit_failure_operation_impossible() +{ + if [ $# -gt 0 ]; then + echo "xdg-desktop-menu: $@" >&2 + fi + + exit 3 +} + +#------------------------------------------------------------- +# Exit script on failure returned by a tool application + +exit_failure_operation_failed() +{ + if [ $# -gt 0 ]; then + echo "xdg-desktop-menu: $@" >&2 + fi + + exit 4 +} + +#------------------------------------------------------------ +# Exit script on insufficient permission to read a specified file + +exit_failure_file_permission_read() +{ + if [ $# -gt 0 ]; then + echo "xdg-desktop-menu: $@" >&2 + fi + + exit 5 +} + +#------------------------------------------------------------ +# Exit script on insufficient permission to read a specified file + +exit_failure_file_permission_write() +{ + if [ $# -gt 0 ]; then + echo "xdg-desktop-menu: $@" >&2 + fi + + exit 6 +} + +check_input_file() +{ + if [ ! -e "$1" ]; then + exit_failure_file_missing "file '$1' does not exist" + fi + if [ ! -r "$1" ]; then + exit_failure_file_permission_read "no permission to read file '$1'" + fi +} + +check_vendor_prefix() +{ + file_label="$2" + [ -n "$file_label" ] || file_label="filename" + file=`basename "$1"` + case "$file" in + [a-zA-Z]*-*) + return + ;; + esac + + echo "xdg-desktop-menu: $file_label '$file' does not have a proper vendor prefix" >&2 + echo 'A vendor prefix consists of alpha characters ([a-zA-Z]) and is terminated' >&2 + echo 'with a dash ("-"). An example '"$file_label"' is '"'example-$file'" >&2 + echo "Use --novendor to override or 'xdg-desktop-menu --manual' for additional info." >&2 + exit 1 +} + +check_output_file() +{ + # if the file exists, check if it is writeable + # if it does not exists, check if we are allowed to write on the directory + if [ -e "$1" ]; then + if [ ! -w "$1" ]; then + exit_failure_file_permission_write "no permission to write to file '$1'" + fi + else + DIR=`dirname "$1"` + if [ ! -w "$DIR" -o ! -x "$DIR" ]; then + exit_failure_file_permission_write "no permission to create file '$1'" + fi + fi +} + +#---------------------------------------- +# Checks for shared commands, e.g. --help + +check_common_commands() +{ + while [ $# -gt 0 ] ; do + parm="$1" + shift + + case "$parm" in + --help) + usage + echo "Use 'man xdg-desktop-menu' or 'xdg-desktop-menu --manual' for additional info." + exit_success + ;; + + --manual) + manualpage + exit_success + ;; + + --version) + echo "xdg-desktop-menu 1.0.1" + exit_success + ;; + esac + done +} + +check_common_commands "$@" + +[ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && unset XDG_UTILS_DEBUG_LEVEL; +if [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt 1 ]; then + # Be silent + xdg_redirect_output=" > /dev/null 2> /dev/null" +else + # All output to stderr + xdg_redirect_output=" >&2" +fi + +#-------------------------------------- +# Checks for known desktop environments +# set variable DE to the desktop environments name, lowercase + +detectDE() +{ + if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; + elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; + elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce; + fi +} + +#---------------------------------------------------------------------------- +# kfmclient exec/openURL can give bogus exit value in KDE <= 3.5.4 +# It also always returns 1 in KDE 3.4 and earlier +# Simply return 0 in such case + +kfmclient_fix_exit_code() +{ + version=`kde-config --version 2>/dev/null | grep KDE` + major=`echo $version | sed 's/KDE: \([0-9]\).*/\1/'` + minor=`echo $version | sed 's/KDE: [0-9]*\.\([0-9]\).*/\1/'` + release=`echo $version | sed 's/KDE: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'` + test "$major" -gt 3 && return $1 + test "$minor" -gt 5 && return $1 + test "$release" -gt 4 && return $1 + return 0 +} + +update_desktop_database() +{ +# echo Update desktop database: $mode + if [ "$mode" = "system" ] ; then + for x in `echo $PATH | sed 's/:/ /g'` /opt/gnome/bin; do + if [ -x $x/update-desktop-database ] ; then + DEBUG 1 "Running $x/update-desktop-database" + eval '$x/update-desktop-database'$xdg_redirect_output + return + fi + done + fi +} + +fixup_mandriva_categories() +{ + DEBUG 1 "fixup_mandriva_categories $1" + awk ' +BEGIN { + xlat["AudioVideo"]="X-Mandrakelinux-Multimedia;X-MandrivaLinux-Multimedia" + xlat["Development"]="X-Mandrakelinux-MoreApplications-Development;X-MandrivaLinux-MoreApplications-Development" + xlat["Education"]="X-Mandrakelinux-MoreApplications;X-MandrivaLinux-MoreApplications-Education" + xlat["Game"]="X-Mandrakelinux-MoreApplications;X-MandrivaLinux-MoreApplications-Games" + xlat["Graphics"]="X-Mandrakelinux-Multimedia-Graphics" + xlat["Network"]="X-Mandrakelinux-Internet;X-MandrivaLinux-Internet" + xlat["Office"]="X-Mandrakelinux-Office;X-MandrivaLinux-Office" + xlat["System"]="X-Mandrakelinux-System;X-MandrivaLinux-System" + xlat["Utility"]="X-Mandrakelinux-Office-Accessories;X-MandrivaLinux-Office-Accessories" +} +{ + if (match($0,/Categories=/)) { + split(substr($0,RSTART+11),categories,";") + result="" + for (n in categories) + { + if (categories[n] in xlat) + categories[n]=categories[n] ";" xlat[categories[n]] + if (categories[n]) + result=result categories[n] ";" + } + print "Categories=" result + } + else + { + print $0 + } +}' $1 > $1.new + mv $1.new $1 +} + +# Make application $1/$2 the default for all the mimetypes it support, +# iff such mimetype didn't had a default application already. +# $1 Install dir for desktop file +# $2 base name of desktop file +make_lazy_default() +{ + local mimetypes + local xdg_user_dir + local xdg_default_dirs + + DEBUG 1 "make_lazy_default $1/$2" + mimetypes=`awk ' +{ + if (match($0,/MimeType=/)) { + split(substr($0,RSTART+9),mimetypes,";") + for (n in mimetypes) + { + if (mimetypes[n]) + print mimetypes[n] + } + } +}' "$1/$2" 2> /dev/null` + + for MIME in $mimetypes ; do + xdg_default_dirs="$XDG_DATA_DIRS" + [ -n "$xdg_default_dirs" ] || xdg_default_dirs=/usr/local/share/:/usr/share/ + if [ x"$mode" = x"user" ] ; then + xdg_user_dir="$XDG_DATA_HOME" + [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share" + xdg_default_dirs="$xdg_user_dir:$xdg_default_dirs" + fi + local default_app + for x in `echo "$xdg_default_dirs" | sed 's/:/ /g'`; do + DEBUG 2 "Checking $x/applications/defaults.list" + default_app=`grep "$MIME=" $x/applications/defaults.list 2> /dev/null | cut -d '=' -f 2` + if [ -n "$default_app" ] ; then + DEBUG 2 "Found default apps for $MIME: $default_app" + default_app="$default_app;" + break; + fi + done + DEBUG 2 "Current default apps for $MIME: $default_app" + if echo "$default_app" | grep "$2" > /dev/null 2> /dev/null; then + # App already listed as default + continue; + fi + default_file="$1/defaults.list" + DEBUG 1 "Updating $default_file" + grep -v "$MIME=" $default_file > ${default_file}.new 2> /dev/null + if ! grep "[Default Applications]" ${default_file}.new > /dev/null; then + echo "[Default Applications]" >> ${default_file}.new + fi + echo $MIME="$default_app$2" >> ${default_file}.new + mv ${default_file}.new $default_file + done +} + +update_submenu() +{ + DEBUG 1 "update_submenu $1" + menu_file="$1" + + xdg_dir_name=menus + xdg_user_dir="$XDG_CONFIG_HOME" + [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.config" + xdg_user_dir="$xdg_user_dir/$xdg_dir_name" + + xdg_system_dirs="$XDG_CONFIG_DIRS" + [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/etc/xdg + xdg_global_dir= + for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do + if [ -w $x/$xdg_dir_name ] ; then + xdg_global_dir="$x/$xdg_dir_name" + break + fi + done + xdg_user_dir="$xdg_user_dir/applications-merged" + xdg_global_dir="$xdg_global_dir/applications-merged" + + DEBUG 3 "Install locations for *.menu file:" + DEBUG 3 "xdg_user_dir: $xdg_user_dir" + DEBUG 3 "xdg_global_dir: $xdg_global_dir" + DEBUG 3 "kde_user_dir: $kde_user_dir" + DEBUG 3 "kde_global_dir: $kde_global_dir" + DEBUG 3 "gnome_user_dir: $gnome_user_dir" + DEBUG 3 "gnome_global_dir: $gnome_global_dir" + + if [ x"$mode" = x"user" ] ; then + xdg_dir="$xdg_user_dir" + kde_dir="$kde_user_dir" + gnome_dir="$gnome_user_dir" + my_umask=077 + my_chmod=0600 + else + xdg_dir="$xdg_global_dir" + kde_dir="$kde_global_dir" + gnome_dir="$gnome_global_dir" + my_umask=022 + my_chmod=0644 + if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then + exit_failure_operation_impossible "No writable system menu directory found." + fi + fi + + if [ -z "$menu_file" ] ; then + # Work around for SUSE/gnome 2.12 to pick up new ~/.local/share/applications + save_umask=`umask` + umask $my_umask + + mkdir -p $xdg_dir + touch $xdg_dir/xdg-desktop-menu-dummy.menu + + umask $save_umask + return + fi + + if [ $action = "install" -a -f "/etc/xdg/menus/gnome-applications.menu" ] ; then + # Work around for Debian Gnome + gnome_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/gnome-applications-merged^'` + if [ ! -e "$gnome_xdg_dir" ] ; then + DEBUG 1 "Debian Workaround: Link '$xdg_dir' to '$gnome_xdg_dir'" + mkdir -p `dirname "$gnome_xdg_dir"` + eval 'ln -s "applications-merged" "$gnome_xdg_dir"'$xdg_redirect_output + fi + fi + if [ $action = "install" -a -f "/etc/mandrake-release" ] ; then + # Work around for Mandriva 2006 + mandrake_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/applications-mdk-merged^'` + if [ ! -e "$mandrake_xdg_dir" ] ; then + DEBUG 1 "Mandriva Workaround: Link '$xdg_dir' to '$mandrake_xdg_dir'" + mkdir -p `dirname "$mandrake_xdg_dir"` + eval 'ln -s "applications-merged" "$mandrake_xdg_dir"'$xdg_redirect_output + fi + fi + if [ $action = "install" -a x"$mode" = x"user" -a -d "/etc/xdg/menus/kde-applications-merged" ] ; then + # Work around for Fedora Core 5 + patched KDE + kde_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/kde-applications-merged^'` + if [ ! -e "$kde_xdg_dir" ] ; then + DEBUG 1 "Fedora Workaround: Link '$xdg_dir' to '$kde_xdg_dir'" + mkdir -p `dirname "$kde_xdg_dir"` + eval 'ln -s "applications-merged" "$kde_xdg_dir"'$xdg_redirect_output + fi + fi + if [ $action = "install" -a x"$mode" = x"system" -a -d "/etc/xdg/menus/kde-applications-merged" -a ! -d "/etc/xdg/menus/applications-merged" ] ; then + # Work around for Kubuntu 6.06 + kde_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/kde-applications-merged^'` + DEBUG 1 "Kubuntu Workaround: Link '$xdg_dir' to 'kde-applications-merged'" + eval 'ln -s "kde-applications-merged" "$xdg_dir"'$xdg_redirect_output + fi + + orig_menu_file=$xdg_dir/$menu_file + + DEBUG 1 "Updating $orig_menu_file ($action)" + + test "${TMPDIR+set}" = set || TMPDIR=/tmp + tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` + orig_desktop_files= + if [ -r "$orig_menu_file" ] ; then + awk ' +# List all files within tags +BEGIN { + RS="<" +} +/^Filename/ { + if (match($0,/>/)) { + print substr($0,RSTART+1) + } +}' $orig_menu_file > $tmpfile + fi + + orig_desktop_files=`cat $tmpfile` + new_desktop_files= + if [ $action = "install" ] ; then + for desktop_file in $desktop_files; do + basefile=`basename $desktop_file` + if ! grep '^'$basefile'$' $tmpfile > /dev/null 2> /dev/null ; then + # Append + echo "$basefile" >> $tmpfile + fi + done + new_desktop_files=`cat $tmpfile` + fi + if [ $action = "uninstall" ] ; then + echo > $tmpfile + for desktop_file in $desktop_files; do + echo "$desktop_file" >> $tmpfile + done + # Files to uninstall are listed in $tmpfile + # Existing files are in $orig_desktop_files + for desktop_file in $orig_desktop_files; do + if ! grep '^'$desktop_file'$' $tmpfile > /dev/null 2> /dev/null; then + # Keep this file, it's not in the uninstall list + new_desktop_files="$new_desktop_files $desktop_file" + fi + done + fi + rm -f "$tmpfile" + + DEBUG 3 "Files to list in $menu_file: $new_desktop_files" + + if [ -n "$new_desktop_files" ] ; then + # Install/update + test "${TMPDIR+set}" = set || TMPDIR=/tmp + tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` + ( + echo '' + echo '' + echo '

      ' + echo ' Applications' + + for desktop_file in $directory_files; do + basefile=`basename $desktop_file` + basefilename=`echo "$basefile"|cut -d '.' -f 1` + echo "" + echo " $basefilename" + echo " $basefile" + done + + echo " " + for desktop_file in $new_desktop_files; do + echo " $desktop_file" + done + echo " " + + for desktop_file in $directory_files; do + echo "" + done + + echo '' + ) > $tmpfile + chmod $my_chmod $tmpfile + + save_umask=`umask` + umask $my_umask + + mkdir -p $xdg_dir + eval 'cp $tmpfile $xdg_dir/$menu_file'$xdg_redirect_output + + umask $save_umask + rm -f "$tmpfile" + else + # Uninstall + rm -f $xdg_dir/$menu_file + fi + + # Uninstall .directory files only if no longer referenced + if [ $action = "uninstall" ] ; then + test "${TMPDIR+set}" = set || TMPDIR=/tmp + tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` + for menu_file in $xdg_dir/*; do + if grep 'generated and managed by xdg-desktop-menu' $menu_file > /dev/null 2> /dev/null; then + awk ' +# List all files within tags +BEGIN { + RS="<" +} +/^Directory/ { + if (match($0,/>/)) { + print substr($0,RSTART+1) + } +}' $menu_file >> $tmpfile + fi + done + orig_directory_files="$directory_files" + directory_files= + for desktop_file in $orig_directory_files; do + if ! grep '^'$desktop_file'$' $tmpfile > /dev/null 2> /dev/null; then + # No longer in use, safe to delete + directory_files="$directory_files $desktop_file" + fi + done + rm -f "$tmpfile" + fi +} + + +[ x"$1" != x"" ] || exit_failure_syntax + +mode= +action= +update=yes +desktop_files= +directory_files= + +case $1 in + install) + action=install + ;; + + uninstall) + action=uninstall + ;; + + forceupdate) + action=forceupdate + ;; + + *) + exit_failure_syntax "unknown command '$1'" + ;; +esac + +shift + +vendor=true +while [ $# -gt 0 ] ; do + parm="$1" + shift + + case "$parm" in + --noupdate) + update=no + ;; + + --mode) + if [ -z "$1" ] ; then + exit_failure_syntax "mode argument missing for --mode" + fi + case "$1" in + user) + mode="user" + ;; + + system) + mode="system" + ;; + + *) + exit_failure_syntax "unknown mode '$1'" + ;; + esac + shift + ;; + + --novendor) + vendor=false + ;; + + -*) + exit_failure_syntax "unexpected option '$parm'" + ;; + + *) + if [ "$action" = "install" ] ; then + check_input_file "$parm" + fi + case "$parm" in + *.directory) + if [ -n "$desktop_files" ] ; then + exit_failure_syntax "'$parm' must preceed any *.desktop file" + fi + directory_files="$directory_files $parm" + ;; + *.desktop) + desktop_files="$desktop_files $parm" + ;; + *) + exit_failure_syntax "file to $action must be a *.directory or *.desktop file" + ;; + esac + ;; + esac +done + +# Shouldn't happen +if [ -z "$action" ] ; then + exit_failure_syntax "command argument missing" +fi + +if [ -n "$XDG_UTILS_INSTALL_MODE" ] ; then + if [ "$XDG_UTILS_INSTALL_MODE" = "system" ] ; then + mode="system" + elif [ "$XDG_UTILS_INSTALL_MODE" = "user" ] ; then + mode="user" + fi +fi + +if [ -z "$mode" ] ; then + if [ `whoami` = "root" ] ; then + mode="system" + else + mode="user" + fi +fi + +if [ x"$action" = x"forceupdate" ] ; then + update_desktop_database + exit_success +fi + +if [ -z "$desktop_files" ] ; then + exit_failure_syntax "desktop-file argument missing" +fi + +menu_name= +for desktop_file in $directory_files; do + if [ "$vendor" = "true" -a "$action" = "install" ] ; then + check_vendor_prefix "$desktop_file" + fi + + basefilename=`basename "$desktop_file"|cut -d '.' -f 1` + if [ -z "$menu_name" ] ; then + menu_name="$basefilename" + else + menu_name="$menu_name-$basefilename" + fi +done + +if [ -n "$menu_name" ] ; then + if [ x"$mode" = x"user" ] ; then + update_submenu "user-$menu_name.menu" + else + update_submenu "$menu_name.menu" + fi +else + # Work around for SUSE/gnome 2.12 to pick up new ~/.local/share/applications + if [ x"$mode" = x"user" ] ; then + update_submenu + fi +fi + +# Install *.directory files + +xdg_dir_name=desktop-directories + +xdg_user_dir="$XDG_DATA_HOME" +[ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share" +xdg_user_dir="$xdg_user_dir/$xdg_dir_name" + +xdg_system_dirs="$XDG_DATA_DIRS" +[ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ +xdg_global_dir= +for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do + if [ -w $x/$xdg_dir_name ] ; then + xdg_global_dir="$x/$xdg_dir_name" + break + fi +done + +DEBUG 3 "Install locations for *.directory files:" +DEBUG 3 "xdg_user_dir: $xdg_user_dir" +DEBUG 3 "xdg_global_dir: $xdg_global_dir" +DEBUG 3 "kde_user_dir: $kde_user_dir" +DEBUG 3 "kde_global_dir: $kde_global_dir" +DEBUG 3 "gnome_user_dir: $gnome_user_dir" +DEBUG 3 "gnome_global_dir: $gnome_global_dir" + +if [ x"$mode" = x"user" ] ; then + xdg_dir="$xdg_user_dir" + kde_dir="$kde_user_dir" + gnome_dir="$gnome_user_dir" + my_umask=077 +else + xdg_dir="$xdg_global_dir" + kde_dir="$kde_global_dir" + gnome_dir="$gnome_global_dir" + my_umask=022 + if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then + exit_failure_operation_impossible "No writable system menu directory found." + fi +fi + +for desktop_file in $directory_files; do + basefile=`basename $desktop_file` + + DEBUG 1 "$action $desktop_file in $xdg_dir $kde_dir $gnome_dir" + + case $action in + install) + save_umask=`umask` + umask $my_umask + + for x in $xdg_dir $kde_dir $gnome_dir ; do + mkdir -p $x + eval 'cp $desktop_file $x/$basefile'$xdg_redirect_output + done + + umask $save_umask + ;; + + uninstall) + for x in $xdg_dir $kde_dir $gnome_dir ; do + rm -f $x/$basefile + done + + ;; + esac +done + +# Install *.desktop files +xdg_dir_name=applications + +xdg_user_dir="$XDG_DATA_HOME" +[ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share" +xdg_user_dir="$xdg_user_dir/$xdg_dir_name" + +xdg_system_dirs="$XDG_DATA_DIRS" +[ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ +xdg_global_dir= +for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do + if [ -w $x/$xdg_dir_name ] ; then + xdg_global_dir="$x/$xdg_dir_name" + break + fi +done + +kde_user_dir="$HOME/.kde/share/applnk" +kde_global_dir="/usr/share/applnk" +[ -w $kde_global_dir ] || kde_global_dir= + +gnome_user_dir="$HOME/.gnome/apps" +gnome_global_dir="/usr/share/gnome/apps" +[ -w $gnome_global_dir ] || gnome_global_dir= + +[ -f /etc/mandriva-release ] && need_mandriva_fix=true +[ -n "$need_mandriva_fix" ] && DEBUG 1 "Fixing up .desktop categories (Mandriva work around)" + +DEBUG 3 "Install locations for *.desktop files:" +DEBUG 3 "xdg_user_dir: $xdg_user_dir" +DEBUG 3 "xdg_global_dir: $xdg_global_dir" +DEBUG 3 "kde_user_dir: $kde_user_dir" +DEBUG 3 "kde_global_dir: $kde_global_dir" +DEBUG 3 "gnome_user_dir: $gnome_user_dir" +DEBUG 3 "gnome_global_dir: $gnome_global_dir" + +if [ x"$mode" = x"user" ] ; then + xdg_dir="$xdg_user_dir" + kde_dir="$kde_user_dir" + gnome_dir="$gnome_user_dir" + my_umask=077 +else + xdg_dir="$xdg_global_dir" + kde_dir="$kde_global_dir" + gnome_dir="$gnome_global_dir" + my_umask=022 + if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then + exit_failure_operation_impossible "No writable system menu directory found." + fi +fi + +for desktop_file in $desktop_files; do + if [ "$vendor" = "true" -a "$action" = "install" ] ; then + check_vendor_prefix "$desktop_file" + fi + + basefile=`basename $desktop_file` + + DEBUG 1 "$action $desktop_file in $xdg_dir $kde_dir $gnome_dir" + + case $action in + install) + save_umask=`umask` + umask $my_umask + + for x in $xdg_dir $kde_dir $gnome_dir ; do + mkdir -p $x + eval 'cp $desktop_file $x/$basefile'$xdg_redirect_output + done + + if [ -n "$need_mandriva_fix" ] ; then + fixup_mandriva_categories $xdg_dir/$basefile + fi + + if [ -f $kde_dir/$basefile ] ; then + echo "OnlyShowIn=Old;" >> $kde_dir/$basefile + fi + + if [ -f $gnome_dir/$basefile ] ; then + echo "OnlyShowIn=Old;" >> $gnome_dir/$basefile + fi + + make_lazy_default "$xdg_dir" "$basefile" + + umask $save_umask + ;; + + uninstall) + for x in $xdg_dir $kde_dir $gnome_dir ; do + rm -f $x/$basefile + done + + ;; + esac +done + +if [ x"$update" = x"yes" ] ; then + update_desktop_database +fi + +exit_success diff --git a/mk/linux/mojosetup/meta/xdg-utils/xdg-open b/mk/linux/mojosetup/meta/xdg-utils/xdg-open new file mode 100755 index 00000000..6797948f --- /dev/null +++ b/mk/linux/mojosetup/meta/xdg-utils/xdg-open @@ -0,0 +1,145 @@ +#!/bin/sh +#(obfuscated for size by shrinksh.sh) +#Copyright 2006, Kevin Krammer +#Copyright 2006, Jeremy White +#LICENSE: +#Permission is hereby granted, free of charge, to any person obtaining a +#copy of this software and associated documentation files (the "Software"), +#to deal in the Software without restriction, including without limitation +#the rights to use, copy, modify, merge, publish, distribute, sublicense, +#and/or sell copies of the Software, and to permit persons to whom the +#Software is furnished to do so, subject to the following conditions: +#The above copyright notice and this permission notice shall be included +#in all copies or substantial portions of the Software. +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +#OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +#THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +#OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +#ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +#OTHER DEALINGS IN THE SOFTWARE. +f1() +{ +if [ $# -gt 0 ]; then +echo "$@" +echo +fi +exit 0 +} +f2() +{ +exit 1 +} +f3() +{ +exit 3 +} +f4() +{ +exit 4 +} +f5() +{ +if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; +elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; +elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce; +fi +} +f6() +{ +version=`kde-config --version 2>/dev/null | grep KDE` +major=`echo $version | sed 's/KDE: \([0-9]\).*/\1/'` +minor=`echo $version | sed 's/KDE: [0-9]*\.\([0-9]\).*/\1/'` +release=`echo $version | sed 's/KDE: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'` +test "$major" -gt 3 && return $1 +test "$minor" -gt 5 && return $1 +test "$release" -gt 4 && return $1 +return 0 +} +f7() +{ +kfmclient exec "$1" +f6 $? +if [ $? -eq 0 ]; then +f1 +else +f4 +fi +} +f8() +{ +gnome-open "$1" +if [ $? -eq 0 ]; then +f1 +else +f4 +fi +} +f9() +{ +exo-open "$1" +if [ $? -eq 0 ]; then +f1 +else +f4 +fi +} +f10() +{ +IFS=":" +for browser in $BROWSER; do +if [ x"$browser" != x"" ]; then +browser_with_arg=`echo "$browser" | sed s#%s#"$1"#` +if [ x"$browser_with_arg" = x"$browser" ]; then "$browser" "$1"; +else $browser_with_arg; +fi +if [ $? -eq 0 ]; then f1; +fi +fi +done +f3 +} +[ x"$1" != x"" ] || f2 +url= +while [ $# -gt 0 ] ; do +parm="$1" +shift +case "$parm" in +-*) +f2 +;; +*) +if [ -n "$url" ] ; then +f2 +fi +url="$parm" +;; +esac +done +if [ -z "${url}" ] ; then +f2 +fi +f5 +if [ x"$DE" = x"" ]; then +if [ x"$BROWSER" = x"" ]; then +BROWSER=firefox:mozilla:netscape +fi +DE=generic +fi +case "$DE" in +kde) +f7 "$url" +;; +gnome) +f8 "$url" +;; +xfce) +f9 "$url" +;; +generic) +f10 "$url" +;; +*) +f3 +;; +esac diff --git a/mk/linux/mojosetup/misc/FindCurses.cmake b/mk/linux/mojosetup/misc/FindCurses.cmake new file mode 100644 index 00000000..3107d758 --- /dev/null +++ b/mk/linux/mojosetup/misc/FindCurses.cmake @@ -0,0 +1,179 @@ +# - Find the curses include file and library +# +# CURSES_FOUND - system has Curses +# CURSES_INCLUDE_DIR - the Curses include directory +# CURSES_LIBRARIES - The libraries needed to use Curses +# CURSES_HAVE_CURSES_H - true if curses.h is available +# CURSES_HAVE_NCURSES_H - true if ncurses.h is available +# CURSES_HAVE_NCURSES_NCURSES_H - true if ncurses/ncurses.h is available +# CURSES_HAVE_NCURSES_CURSES_H - true if ncurses/curses.h is available +# CURSES_LIBRARY - set for backwards compatibility with 2.4 CMake +# +# Set CURSES_NEED_NCURSES to TRUE before the FIND_PACKAGE() command if NCurses +# functionality is required. + +# Set CURSES_NEED_WIDE to TRUE before the FIND_PACKAGE() command if unicode +# functionality is required + +SET(CURSES_LIBRARY_NAME "curses") +SET(NCURSES_LIBRARY_NAME "ncurses") +IF(CURSES_NEED_WIDE) + SET(CURSES_LIBRARY_NAME "cursesw") + SET(NCURSES_LIBRARY_NAME "ncursesw") +ENDIF(CURSES_NEED_WIDE) + +FIND_LIBRARY(CURSES_CURSES_LIBRARY "${CURSES_LIBRARY_NAME}") +# MESSAGE(STATUS "CURSES! " ${CURSES_CURSES_LIBRARY}) + +FIND_LIBRARY(CURSES_NCURSES_LIBRARY "${NCURSES_LIBRARY_NAME}") +# MESSAGE(STATUS "NCURSES! " ${CURSES_NCURSES_LIBRARY}) + +SET(CURSES_USE_NCURSES FALSE) + +IF(CURSES_NCURSES_LIBRARY AND NOT CURSES_CURSES_LIBRARY) + SET(CURSES_USE_NCURSES TRUE) +ENDIF(CURSES_NCURSES_LIBRARY AND NOT CURSES_CURSES_LIBRARY) + + +# Not sure the logic is correct here. +# If NCurses is required, use the function wsyncup() to check if the library +# has NCurses functionality (at least this is where it breaks on NetBSD). +# If wsyncup is in curses, use this one. +# If not, try to find ncurses and check if this has the symbol. +# Once the ncurses library is found, search the ncurses.h header first, but +# some web pages also say that even with ncurses there is not always a ncurses.h: +# http://osdir.com/ml/gnome.apps.mc.devel/2002-06/msg00029.html +# So at first try ncurses.h, if not found, try to find curses.h under the same +# prefix as the library was found, if still not found, try curses.h with the +# default search paths. +IF(CURSES_CURSES_LIBRARY AND CURSES_NEED_NCURSES) + INCLUDE(CheckLibraryExists) + CHECK_LIBRARY_EXISTS("${CURSES_CURSES_LIBRARY}" + wsyncup "" CURSES_CURSES_HAS_WSYNCUP) + + IF(CURSES_NCURSES_LIBRARY AND NOT CURSES_CURSES_HAS_WSYNCUP) + CHECK_LIBRARY_EXISTS("${CURSES_NCURSES_LIBRARY}" + wsyncup "" CURSES_NCURSES_HAS_WSYNCUP) + IF( CURSES_NCURSES_HAS_WSYNCUP) + SET(CURSES_USE_NCURSES TRUE) + ENDIF( CURSES_NCURSES_HAS_WSYNCUP) + ENDIF(CURSES_NCURSES_LIBRARY AND NOT CURSES_CURSES_HAS_WSYNCUP) + +ENDIF(CURSES_CURSES_LIBRARY AND CURSES_NEED_NCURSES) + + +IF(NOT CURSES_USE_NCURSES) + FIND_FILE(CURSES_HAVE_CURSES_H curses.h ) + FIND_FILE(CURSES_HAVE_CURSESW_H cursesw.h ) + FIND_PATH(CURSES_CURSES_H_PATH curses.h ) + FIND_PATH(CURSES_CURSESW_H_PATH cursesw.h ) + GET_FILENAME_COMPONENT(_cursesLibDir "${CURSES_CURSES_LIBRARY}" PATH) + GET_FILENAME_COMPONENT(_cursesParentDir "${_cursesLibDir}" PATH) + + # for compatibility with older FindCurses.cmake this has to be in the cache + # FORCE must not be used since this would break builds which preload a cache wqith these variables set + SET(CURSES_INCLUDE_PATH "${CURSES_CURSES_H_PATH} ${CURSES_CURSESW_H_PATH}" + CACHE FILEPATH "The curses include path") + SET(CURSES_LIBRARY "${CURSES_CURSES_LIBRARY}" + CACHE FILEPATH "The curses library") +ELSE(NOT CURSES_USE_NCURSES) +# we need to find ncurses + GET_FILENAME_COMPONENT(_cursesLibDir "${CURSES_NCURSES_LIBRARY}" PATH) + GET_FILENAME_COMPONENT(_cursesParentDir "${_cursesLibDir}" PATH) + + FIND_FILE(CURSES_HAVE_NCURSES_H ncurses.h) + FIND_FILE(CURSES_HAVE_NCURSES_NCURSES_H ncurses/ncurses.h) + FIND_FILE(CURSES_HAVE_NCURSES_CURSES_H ncurses/curses.h) + FIND_FILE(CURSES_HAVE_CURSES_H curses.h + HINTS "${_cursesParentDir}/include") + + FIND_FILE(CURSES_HAVE_NCURSESW_H ncursesw.h) + FIND_FILE(CURSES_HAVE_NCURSESW_NCURSES_H ncursesw/ncurses.h) + FIND_FILE(CURSES_HAVE_NCURSESW_CURSES_H ncursesw/curses.h) + FIND_FILE(CURSES_HAVE_CURSESW_H cursesw.h + HINTS "${_cursesParentDir}/include") + + FIND_PATH(CURSES_NCURSES_INCLUDE_PATH ncurses.h ncurses/ncurses.h + ncurses/curses.h ncursesw.h ncursesw/ncurses.h ncursesw/curses.h cursesw.h) + FIND_PATH(CURSES_NCURSES_INCLUDE_PATH curses.h + HINTS "${_cursesParentDir}/include") + + # for compatibility with older FindCurses.cmake this has to be in the cache + # FORCE must not be used since this would break builds which preload + # a cache wqith these variables set + # only put ncurses include and library into + # variables if they are found + IF(CURSES_NCURSES_INCLUDE_PATH AND CURSES_NCURSES_LIBRARY) + + SET(CURSES_INCLUDE_PATH "${CURSES_NCURSES_INCLUDE_PATH} ${CURSES_NCURSESW_INCLUDE_PATH}" + CACHE FILEPATH "The curses include path") + SET(CURSES_LIBRARY "${CURSES_NCURSES_LIBRARY}" + CACHE FILEPATH "The curses library") + ENDIF(CURSES_NCURSES_INCLUDE_PATH AND CURSES_NCURSES_LIBRARY) + +ENDIF(NOT CURSES_USE_NCURSES) + + + +FIND_LIBRARY(CURSES_EXTRA_LIBRARY cur_colr HINTS "${_cursesLibDir}") +FIND_LIBRARY(CURSES_EXTRA_LIBRARY cur_colr ) + +SET(CURSES_FORM_LIBRARY_NAME "form") +IF(CURSES_NEED_WIDE) + SET(CURSES_FORM_LIBRARY_NAME "formw") +ENDIF(CURSES_NEED_WIDE) + +FIND_LIBRARY(CURSES_CURSES_LIBRARY "${CURSES_LIBRARY_NAME}") +FIND_LIBRARY(CURSES_FORM_LIBRARY "${CURSES_FORM_LIBRARY_NAME}" HINTS "${_cursesLibDir}") +FIND_LIBRARY(CURSES_FORM_LIBRARY "${CURSES_FORM_LIBRARY_NAME}" ) + +# for compatibility with older FindCurses.cmake this has to be in the cache +# FORCE must not be used since this would break builds which preload a cache +# qith these variables set +SET(FORM_LIBRARY "${CURSES_FORM_LIBRARY}" + CACHE FILEPATH "The curses form library") + +# Need to provide the *_LIBRARIES +SET(CURSES_LIBRARIES ${CURSES_LIBRARY}) + +IF(CURSES_EXTRA_LIBRARY) + SET(CURSES_LIBRARIES ${CURSES_LIBRARIES} ${CURSES_EXTRA_LIBRARY}) +ENDIF(CURSES_EXTRA_LIBRARY) + +IF(CURSES_FORM_LIBRARY) + SET(CURSES_LIBRARIES ${CURSES_LIBRARIES} ${CURSES_FORM_LIBRARY}) +ENDIF(CURSES_FORM_LIBRARY) + +# Proper name is *_INCLUDE_DIR +SET(CURSES_INCLUDE_DIR ${CURSES_INCLUDE_PATH}) + +# handle the QUIETLY and REQUIRED arguments and set CURSES_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Curses DEFAULT_MSG + CURSES_LIBRARY CURSES_INCLUDE_PATH) + +MARK_AS_ADVANCED( + CURSES_INCLUDE_PATH + CURSES_LIBRARY + CURSES_CURSES_INCLUDE_PATH + CURSES_CURSES_LIBRARY + CURSES_NCURSES_INCLUDE_PATH + CURSES_NCURSES_LIBRARY + CURSES_EXTRA_LIBRARY + FORM_LIBRARY + CURSES_FORM_LIBRARY + CURSES_LIBRARIES + CURSES_INCLUDE_DIR + CURSES_CURSES_HAS_WSYNCUP + CURSES_NCURSES_HAS_WSYNCUP + CURSES_HAVE_CURSESW_H + CURSES_HAVE_CURSES_H + CURSES_HAVE_NCURSESW_CURSES_H + CURSES_HAVE_NCURSESW_H + CURSES_HAVE_NCURSESW_NCURSES_H + CURSES_HAVE_NCURSES_CURSES_H + CURSES_HAVE_NCURSES_H + CURSES_HAVE_NCURSES_NCURSES_H + ) + diff --git a/mk/linux/mojosetup/misc/MacAppBundleSkeleton/Contents/Info.plist b/mk/linux/mojosetup/misc/MacAppBundleSkeleton/Contents/Info.plist new file mode 100644 index 00000000..8de91ae2 --- /dev/null +++ b/mk/linux/mojosetup/misc/MacAppBundleSkeleton/Contents/Info.plist @@ -0,0 +1,27 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + mojosetup + CFBundleIdentifier + org.icculus.mojosetup + CFBundleIconFile + mojosetup.icns + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + MjSt + CFBundleShortVersionString + 1.0 + CSResourcesFileMapped + + CFBundleName + YOUR_APPLICATION_NAME_HERE + + + \ No newline at end of file diff --git a/mk/linux/mojosetup/misc/MacAppBundleSkeleton/Contents/PkgInfo b/mk/linux/mojosetup/misc/MacAppBundleSkeleton/Contents/PkgInfo new file mode 100644 index 00000000..d9bd9a94 --- /dev/null +++ b/mk/linux/mojosetup/misc/MacAppBundleSkeleton/Contents/PkgInfo @@ -0,0 +1 @@ +APPLMjSt \ No newline at end of file diff --git a/mk/linux/mojosetup/misc/MacAppBundleSkeleton/Contents/Resources/mojosetup.icns b/mk/linux/mojosetup/misc/MacAppBundleSkeleton/Contents/Resources/mojosetup.icns new file mode 100644 index 0000000000000000000000000000000000000000..4b1e5a231dd9ba813041bd0540f1ca6eb55c60d0 GIT binary patch literal 286311 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≈h4t#oHoO8$sUwZ5s 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

      aCoYBJqB8 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/misc/MojoSetup.xib b/mk/linux/mojosetup/misc/MojoSetup.xib new file mode 100644 index 00000000..0d3e2e6c --- /dev/null +++ b/mk/linux/mojosetup/misc/MojoSetup.xib @@ -0,0 +1,1918 @@ + + + + 1050 + 9G55 + 677 + 949.43 + 353.00 + + YES + + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + NSFontManager + + + AMainMenu + + YES + + + MojoSetup + + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + MojoSetup + + YES + + + About MojoSetup + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Services + + 2147483647 + + + submenuAction: + + Services + + YES + + _NSServicesMenu + + + + + YES + YES + + + 2147483647 + + + + + + Hide MojoSetup + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Quit MojoSetup + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + Window + + 2147483647 + + + submenuAction: + + Window + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Bring All to Front + + 2147483647 + + + + + _NSWindowsMenu + + + + _NSMainMenu + + + 15 + 2 + {{510, 200}, {508, 450}} + 603979776 + MojoSetup + NSWindow + + {3.40282e+38, 3.40282e+38} + + + 256 + + YES + + + 289 + {{374, 19}, {120, 32}} + + YES + + 67239424 + 134217728 + Next + + LucidaGrande + 1.300000e+01 + 1044 + + + -2038284033 + 129 + + + 200 + 25 + + + + + 274 + {{19, 67}, {469, 363}} + + + YES + + Empty + + + 274 + {469, 363} + + Empty + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + + + Readme + + + 274 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 2322 + {452, 12} + + + + + + + + + + + YES + + + 6 + + + + 4.520000e+02 + 1 + + + 2305 + + 3 + MQA + + + 3 + MAA + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + 6 + System + selectedTextBackgroundColor + + + + 6 + System + selectedTextColor + + + + + + + YES + + YES + NSColor + NSUnderline + + + YES + + 1 + MCAwIDEAA + + + + + + + 6 + {767, 1e+07} + {223, 0} + + + + {{1, 1}, {452, 361}} + + + + + {4, -5} + 1 + + 4 + + + + 256 + {{453, 1}, {15, 361}} + + + _doScroller: + 9.679145e-01 + + + + 256 + {{-100, -100}, {87, 18}} + + 1 + + _doScroller: + 1.000000e+00 + 9.456522e-01 + + + {469, 363} + + 18 + + + + + + {469, 363} + + Readme + + + + + Options + + + 274 + {469, 363} + + Options + + + + + Destination + + + 274 + + YES + + + 270 + {{0, 319}, {354, 26}} + + YES + + 343014976 + 272630784 + + + + YES + + 6 + System + textBackgroundColor + + + + 6 + System + controlTextColor + + + 5 + YES + + + + 274 + {15, 0} + + + YES + + YES + + + 1.200000e+01 + 1.000000e+01 + 1.000000e+03 + + 75628032 + 0 + + + LucidaGrande + 1.200000e+01 + 16 + + + 3 + MC4zMzMzMzI5OQA + + + + + 338820672 + 1024 + + + YES + + 6 + System + controlBackgroundColor + + + + + 3 + YES + + + + 3.000000e+00 + 2.000000e+00 + + + 6 + System + gridColor + + 3 + MC41AA + + + 1.900000e+01 + tableViewAction: + -767524864 + + + + 1 + 15 + 0 + YES + + + + + + 265 + {{353, 315}, {122, 32}} + + YES + + -2080244224 + 134217728 + Browse + + + -2038284033 + 129 + + + 200 + 25 + + + + {469, 363} + + Destination + + + + + ProductKey + + + 274 + + YES + + + 274 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {469, 363} + + YES + + 130560 + 33554432 + + NSImage + NSStopProgressFreestandingTemplate + + 0 + 0 + 0 + YES + + YES + + + {469, 363} + + ProductKey + + + + + Progress + + + 274 + + YES + + + 1322 + + {{35, 166}, {398, 20}} + + 16394 + 1.000000e+02 + + + + 298 + {{34, 194}, {400, 17}} + + YES + + 68288064 + 272630784 + + + Component + + + + + + + + 298 + {{34, 151}, {400, 11}} + + YES + + 68288064 + 272892928 + + + LucidaGrande + 9.000000e+00 + 3614 + + Item + + + + + + + {469, 363} + + Progress + + + + + Final + + + 274 + + YES + + + 274 + {{34, 79}, {401, 205}} + + YES + + 67239424 + 138412032 + + + LucidaGrande + 1.300000e+01 + 16 + + Final Text + + YES + + + + + + {469, 363} + + + Final + + + + + + + 6 + YES + YES + + YES + + + + + + 289 + {{254, 19}, {120, 32}} + + YES + + -1543373312 + 134217728 + Back + + + -2038284033 + 129 + + + 200 + 25 + + + + + 298 + {{17, 433}, {474, 17}} + + YES + + 67239488 + 138414080 + + + Title + + + + + + + + 289 + {{134, 19}, {120, 32}} + + YES + + 67239424 + 134217728 + Cancel + + + -2038284033 + 129 + + + 200 + 25 + + + + {508, 450} + + + {{0, 0}, {1440, 878}} + {3.40282e+38, 3.40282e+38} + + + MojoSetupController + + + + + YES + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + performZoom: + + + + 240 + + + + hide: + + + + 369 + + + + hideOtherApplications: + + + + 370 + + + + unhideAllApplications: + + + + 372 + + + + nextClicked: + + + + 502 + + + + backClicked: + + + + 503 + + + + cancelClicked: + + + + 512 + + + + BackButton + + + + 513 + + + + NextButton + + + + 514 + + + + CancelButton + + + + 515 + + + + delegate + + + + 517 + + + + MainWindow + + + + 519 + + + + TabView + + + + 520 + + + + ReadmeText + + + + 523 + + + + TitleLabel + + + + 528 + + + + DestinationCombo + + + + 542 + + + + browseClicked: + + + + 543 + + + + FinalText + + + + 546 + + + + ProgressBar + + + + 552 + + + + ProgressComponentLabel + + + + 553 + + + + ProgressItemLabel + + + + 554 + + + + menuQuit: + + + + 555 + + + + QuitMenuItem + + + + 556 + + + + AboutMenuItem + + + + 557 + + + + HideMenuItem + + + + 560 + + + + WindowMenuItem + + + + 561 + + + + HideOthersMenuItem + + + + 562 + + + + ShowAllMenuItem + + + + 563 + + + + ServicesMenuItem + + + + 564 + + + + MinimizeMenuItem + + + + 565 + + + + ZoomMenuItem + + + + 566 + + + + BringAllToFrontMenuItem + + + + 567 + + + + OptionsView + + + + 568 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + + Main Menu + + + 19 + + + YES + + + + + + 56 + + + YES + + + + + + 57 + + + YES + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + + + 144 + + + + + 236 + + + + + 131 + + + YES + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 24 + + + YES + + + + + + + + + 92 + + + + + 5 + + + + + 239 + + + + + 23 + + + + + 367 + + + YES + + + + MainWindow + + + 368 + + + YES + + + + + + + + + + 373 + + + + + 449 + + + YES + + + + NextButton + + + 450 + + + + + 457 + + + YES + + + + + + + + + + + + 458 + + + YES + + + + + + 459 + + + YES + + + + + + 460 + + + YES + + + + + 461 + + + YES + + + + + + 463 + + + YES + + + + + + 464 + + + YES + + + + + + + 465 + + + YES + + + + + + 466 + + + YES + + + + + + 467 + + + YES + + + + + + 468 + + + YES + + + + + + + + 483 + + + YES + + + + + + 484 + + + YES + + + + + + 489 + + + YES + + + + + + 490 + + + + + 496 + + + YES + + + + BackButton + + + 497 + + + + + 495 + + + MojoSetupController + + + 524 + + + YES + + + + + + 525 + + + + + 526 + + + YES + + + + + + 527 + + + + + 507 + + + YES + + + + + + + + 510 + + + + + 509 + + + + + 508 + + + + + 537 + + + YES + + + + DestinationCombo + + + 538 + + + + + 539 + + + YES + + + + DestinationBrowseButton + + + 540 + + + + + 544 + + + YES + + + + + + 545 + + + + + 547 + + + ProgressBar + + + 548 + + + YES + + + + ProgressComponentLabel + + + 549 + + + + + 550 + + + YES + + + + ProgressItemLabel + + + 551 + + + + + 504 + + + YES + + + + CancelButton + + + 505 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 130.IBEditorWindowLastContentRect + 130.IBPluginDependency + 130.ImportedFromIB2 + 130.editorWindowContentRectSynchronizationRect + 131.IBPluginDependency + 131.ImportedFromIB2 + 134.IBPluginDependency + 134.ImportedFromIB2 + 136.IBPluginDependency + 136.ImportedFromIB2 + 144.IBPluginDependency + 144.ImportedFromIB2 + 145.IBPluginDependency + 145.ImportedFromIB2 + 149.IBPluginDependency + 149.ImportedFromIB2 + 150.IBPluginDependency + 150.ImportedFromIB2 + 19.IBPluginDependency + 19.ImportedFromIB2 + 23.IBPluginDependency + 23.ImportedFromIB2 + 236.IBPluginDependency + 236.ImportedFromIB2 + 239.IBPluginDependency + 239.ImportedFromIB2 + 24.IBEditorWindowLastContentRect + 24.IBPluginDependency + 24.ImportedFromIB2 + 24.editorWindowContentRectSynchronizationRect + 29.IBEditorWindowLastContentRect + 29.IBPluginDependency + 29.ImportedFromIB2 + 29.WindowOrigin + 29.editorWindowContentRectSynchronizationRect + 367.IBEditorWindowLastContentRect + 367.IBWindowTemplateEditedContentRect + 367.NSWindowTemplate.visibleAtLaunch + 367.editorWindowContentRectSynchronizationRect + 368.CustomClassName + 368.IBPluginDependency + 373.IBPluginDependency + 449.IBPluginDependency + 450.IBPluginDependency + 457.IBAttributePlaceholdersKey + 457.IBPluginDependency + 458.IBPluginDependency + 459.IBPluginDependency + 460.IBPluginDependency + 461.IBPluginDependency + 463.IBPluginDependency + 464.IBPluginDependency + 465.IBPluginDependency + 466.IBPluginDependency + 467.IBPluginDependency + 468.IBPluginDependency + 483.IBPluginDependency + 484.IBPluginDependency + 489.IBPluginDependency + 490.IBPluginDependency + 495.IBPluginDependency + 496.IBPluginDependency + 497.IBPluginDependency + 5.IBPluginDependency + 5.ImportedFromIB2 + 504.IBPluginDependency + 505.IBPluginDependency + 507.IBPluginDependency + 508.IBPluginDependency + 509.IBPluginDependency + 510.IBPluginDependency + 526.IBPluginDependency + 527.IBPluginDependency + 537.IBPluginDependency + 538.IBPluginDependency + 539.IBPluginDependency + 540.IBPluginDependency + 544.IBPluginDependency + 545.IBPluginDependency + 547.IBPluginDependency + 548.IBPluginDependency + 549.IBPluginDependency + 550.IBPluginDependency + 551.IBPluginDependency + 56.IBPluginDependency + 56.ImportedFromIB2 + 57.IBEditorWindowLastContentRect + 57.IBPluginDependency + 57.ImportedFromIB2 + 57.editorWindowContentRectSynchronizationRect + 58.IBPluginDependency + 58.ImportedFromIB2 + 92.IBPluginDependency + 92.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{643, 753}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{436, 809}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{527, 716}, {197, 73}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{525, 802}, {197, 73}} + {{421, 789}, {189, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + + {74, 862} + {{11, 977}, {478, 20}} + {{334, 294}, {508, 450}} + {{334, 294}, {508, 450}} + + {{11, 666}, {480, 270}} + MojoSetupController + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + YES + + + YES + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {{433, 636}, {210, 153}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{23, 794}, {245, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 580 + + + + YES + + MojoSetupController + NSObject + + YES + + YES + backClicked: + browseClicked: + cancelClicked: + menuQuit: + nextClicked: + + + YES + NSButton + NSButton + NSButton + NSMenuItem + NSButton + + + + YES + + YES + AboutMenuItem + BackButton + BringAllToFrontMenuItem + CancelButton + DestinationCombo + FinalText + HideMenuItem + HideOthersMenuItem + MainWindow + MinimizeMenuItem + NextButton + OptionsView + ProgressBar + ProgressComponentLabel + ProgressItemLabel + QuitMenuItem + ReadmeText + ServicesMenuItem + ShowAllMenuItem + TabView + TitleLabel + WindowMenuItem + ZoomMenuItem + + + YES + NSMenuItem + NSButton + NSMenuItem + NSButton + NSComboBox + NSTextField + NSMenuItem + NSMenuItem + NSWindow + NSMenuItem + NSButton + NSView + NSProgressIndicator + NSTextField + NSTextField + NSMenuItem + NSTextView + NSMenuItem + NSMenuItem + NSTabView + NSTextField + NSMenuItem + NSMenuItem + + + + IBUserSource + + + + + + 0 + + 3 + + diff --git a/mk/linux/mojosetup/misc/cp.cmake b/mk/linux/mojosetup/misc/cp.cmake new file mode 100644 index 00000000..a2d5858d --- /dev/null +++ b/mk/linux/mojosetup/misc/cp.cmake @@ -0,0 +1,29 @@ +# CMake 2.4.3 lacks a "CMake -E copy" command that handles wildcards. +# +# INPUT: +# +# FROM - absolute pathname with wildcards to copy +# TO - absolute pathname of directory to copy to +# +# TYPICAL USAGE, from inside a custom target or rule: +# +# COMMAND ${CMAKE_COMMAND} +# -D FROM=${mydirectory}/*.dll +# -D TO=${yourdirectory} +# -P ${CMAKE_HOME_DIRECTORY}/cp.cmake + +FILE(GLOB FILELIST "${FROM}") + +FOREACH(LOOPER ${FILELIST}) + MESSAGE(STATUS "Copying ${LOOPER} to ${TO}") + EXEC_PROGRAM("${CMAKE_COMMAND}" ARGS "-E copy '${LOOPER}' '${TO}'" + OUTPUT_VARIABLE EXECOUT + RETURN_VALUE RC + ) + # !!! FIXME: how do you do NOT EQUALS? + IF(NOT RC EQUAL 0) + MESSAGE(STATUS "${EXECOUT}") + MESSAGE(FATAL_ERROR "Copy of '${LOOPER}' failed!") + ENDIF(NOT RC EQUAL 0) +ENDFOREACH(LOOPER) + diff --git a/mk/linux/mojosetup/misc/find_localizable_strings.sh b/mk/linux/mojosetup/misc/find_localizable_strings.sh new file mode 100755 index 00000000..d07c07e1 --- /dev/null +++ b/mk/linux/mojosetup/misc/find_localizable_strings.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +grep -n '_("' *.[chm] scripts/*.lua |perl -w -p -e 's/\A.*?_\((".*?")\).*?\Z/$1/;' |sort |uniq |perl -w -p -e 'chomp; $_ = " [$_] = {\n };\n\n";' + diff --git a/mk/linux/mojosetup/misc/launchpad-import.sh b/mk/linux/mojosetup/misc/launchpad-import.sh new file mode 100755 index 00000000..00300d7a --- /dev/null +++ b/mk/linux/mojosetup/misc/launchpad-import.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +set -e +set -x + +cd `hg root` +hg fetch # will only work on a unmodified working directory. +rm -rf launchpad +mkdir $_ +cd $_ +tar -xzf ~/launchpad-export.tar.gz +../misc/po2localization.pl *.po mojosetup/mojosetup.pot >../scripts/localization.lua +hg diff ../scripts/localization.lua |less +set +x +echo "enter to commit, ctrl-c to abort." +read +set -x +hg commit -m "Latest translations from launchpad.net ..." ../scripts/localization.lua +cd .. +rm -rf launchpad ~/launchpad-export.tar.gz +exit 0 diff --git a/mk/linux/mojosetup/misc/localization2pot.pl b/mk/linux/mojosetup/misc/localization2pot.pl new file mode 100755 index 00000000..ec33a9dc --- /dev/null +++ b/mk/linux/mojosetup/misc/localization2pot.pl @@ -0,0 +1,110 @@ +#!/usr/bin/perl -w + +use warnings; +use strict; +use Encode qw( decode_utf8 ); + +# Fixes unicode dumping to stdio...hopefully you have a utf-8 terminal by now. +binmode(STDIN, ":utf8"); +binmode(STDOUT, ":utf8"); +binmode(STDERR, ":utf8"); + +my $now = `date '+%Y-%m-%d %H:%M:%S%z'`; +chomp($now); + +my $hgver = `hg tip --template 'hg-{rev}:{node|short}' 2>/dev/null`; +$hgver = '???' if ($hgver eq ''); + +my $exportdate = ''; +my $generator = ''; +while () { + chomp; + if (s/\A\-\-\s*(X-Launchpad-Export-Date: .*?)\Z/"$1\\n"/) { + $exportdate = $_; + next; + } + if (s/\A\-\-\s*(X-Generator: .*?)\Z/"$1\\n"/) { + $generator = $_; + next; + } + last if (/MojoSetup.localization = {/); +} + + +print <<__EOF__; +# MojoSetup; a portable, flexible installation application. +# http://icculus.org/mojosetup/ +# +# Please see the file LICENSE.txt in the source's root directory. +# +# This file generated by localization2pot.pl, version $hgver ... +# +# +# NOTE: If you care about Unicode or ASCII chars above 127, this file _MUST_ +# be UTF-8 encoded! If you think you're using a certain high-ascii codepage, +# you're wrong! +# +# Whenever you see a %x sequence, that is replaced with a string at runtime. +# So if you see, "Hello, %0, my name is %1.", then this might become +# "Hello, Alice, my name is Bob." at runtime. If your culture would find +# introducing yourself second to be rude, you might translate this to: +# "My name is %1, hello %0." If you need a literal '%' char, write "%%": +# "Operation is %0%% complete" might give "Operation is 3% complete." +# All strings, from your locale or otherwise, are checked for formatter +# correctness at startup. This is to prevent the installer working fine +# in all reasonable tests, then finding out that one guy in Ghana has a +# crashing installer because his localization forgot to add a %1 somewhere. +# +# Occasionally you might see a "\\n" ... that's a newline character. "\\t" is +# a tab character, and "\\\\" turns into a single "\\" character. +# +# Questions about the intent of a specific string can go to Ryan C. Gordon +# (icculus\@icculus.org). + +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: mojosetup $hgver\\n" +"Report-Msgid-Bugs-To: icculus\@icculus.org\\n" +"POT-Creation-Date: $now\\n" +"PO-Revision-Date: $now\\n" +"Last-Translator: Ryan C. Gordon \\n" +"Language-Team: Ryan C. Gordon \\n" +"MIME-Version: 1.0\\n" +"Content-Type: text/plain; charset=UTF-8\\n" +"Content-Transfer-Encoding: 8bit\\n" +$exportdate +$generator + +__EOF__ + + +my $looking_for_end = 0; + +while () { + chomp; + s/\A\s+//; + s/\s+\Z//; + next if ($_ eq ''); + if (/\A};\Z/) { + last if (not $looking_for_end); + $looking_for_end = 0; + next; + } else { + next if $looking_for_end; + } + + if (s/\A\[(\".*?\")\] = {\Z/msgid $1\nmsgstr ""\n/) { + print("$_\n"); + $looking_for_end = 1; + } elsif (s/\A--\s+(.*?)\Z/#. $1/) { + print("$_\n"); + } else { + die("unhandled string: '$_'\n"); + } +} + +print "# end of localization.pot ...\n\n"; + +# end of localization2pot.pl ... + diff --git a/mk/linux/mojosetup/misc/mkdir.cmake b/mk/linux/mojosetup/misc/mkdir.cmake new file mode 100644 index 00000000..3461d042 --- /dev/null +++ b/mk/linux/mojosetup/misc/mkdir.cmake @@ -0,0 +1,18 @@ +# CMake 2.4.3 lacks a "CMake -E mkdir" command. +# It does have a MAKE_DIRECTORY command, but we cannot run it from inside +# a custom rule or target. So, we wrap it in a script, which we can then +# call from a custom command or target. +# +# INPUT: +# +# DIR - absolute pathname of directory to be created +# +# TYPICAL USAGE, from inside a custom target or rule: +# +# COMMAND ${CMAKE_COMMAND} +# -D DIR=${mydirectory} +# -P ${CMAKE_HOME_DIRECTORY}/mkdir.cmake + +MESSAGE(STATUS "Creating directory ${DIR}") +FILE(MAKE_DIRECTORY "${DIR}") + diff --git a/mk/linux/mojosetup/misc/po2localization.pl b/mk/linux/mojosetup/misc/po2localization.pl new file mode 100755 index 00000000..7a0bbf47 --- /dev/null +++ b/mk/linux/mojosetup/misc/po2localization.pl @@ -0,0 +1,182 @@ +#!/usr/bin/perl -w + +use warnings; +use strict; +use Encode qw( decode_utf8 ); + +# Fixes unicode dumping to stdio...hopefully you have a utf-8 terminal by now. +binmode(STDIN, ":utf8"); +binmode(STDOUT, ":utf8"); +binmode(STDERR, ":utf8"); + +my $now = `date '+%Y-%m-%d %H:%M:%S%z'`; +chomp($now); + +my $hgver = `hg tip --template 'hg-{rev}:{node|short}' 2>/dev/null`; +$hgver = '???' if ($hgver eq ''); + +my %languages; +my %comments; +my %msgstrs; +my @strings; +my $saw_template = 0; +my $exportdate = ''; +my $generator = ''; + +foreach (@ARGV) { + my $fname = $_; + my $template = /\.pot\Z/; + + open(POIO, '<', $fname) or die("Failed to open $_: $!\n"); + binmode(POIO, ":utf8"); + + if ($template) { + die("multiple .pot files specified\n") if ($saw_template); + $saw_template = 1; + } + + my $comment = ''; + my $currentlang = ''; + + while () { + chomp; + s/\A\s+//; + s/\s+\Z//; + next if ($_ eq ''); + + if (s/\A\#\.\s*(.*)\Z/$1/) { + if ($template) { + my $txt = $_; + $txt = " $txt" if ($comment ne ''); + $comment .= " -- $txt\n"; + } + next; + } + + next if /\A\#/; + + if (s/msgid\s*\"(.*?)\"\Z/$1/) { + if (($_ eq '') and ($currentlang eq '')) { # initial string. + while () { # Skip most of the metadata. + chomp; + s/\A\s+//; + s/\s+\Z//; + last if ($_ eq ''); + if (/\A\"Language-Team: (.*?) \<(.*?)\@.*?\>\\n"\Z/) { + $currentlang = $2; + if (defined $languages{$currentlang}) { + die("Same language twice: $currentlang\n"); + } elsif ($currentlang eq 'en') { + die("Found an 'en' translation.\n"); + } elsif ($currentlang eq 'en_US') { + die("Found an 'en_US' translation.\n"); + } + $languages{$currentlang} = $1 if (not $template); + } elsif (s/\A\"(X-Launchpad-Export-Date: .*?)\\n\"/$1/) { + $exportdate = $_ if ($template); + } elsif (s/\A"(X-Generator: .*?)\\n\"\Z/$1/) { + $generator = $_ if ($template); + } + } + } elsif ($currentlang eq '') { + die("No current language!\n"); + } else { # new string + my $msgstr = ''; + my $msgid = $_; + while () { # check for multiline msgid strings. + chomp; + s/\A\s+//; + s/\s+\Z//; + if (s/\Amsgstr \"(.*?)\"\Z/$1/) { + $msgstr = $_; + last; + } + if (s/\A\"(.*?)\"\Z/$1/) { + $msgid .= $_; + } else { + die("unexpected line: $_\n"); + } + } + while () { # check for multiline msgstr strings. + chomp; + s/\A\s+//; + s/\s+\Z//; + last if ($_ eq ''); + if (s/\A\"(.*?)\"\Z/$1/) { + $msgstr .= $_; + } else { + die("unexpected line: $_\n"); + } + } + + if ($template) { + push @strings, $msgid; # This is a list, to keep original order. + $comments{$msgid} = $comment; + $comment = ''; + } elsif ($msgstr ne '') { + $msgstrs{$currentlang}{$msgid} = $msgstr; + } + } + } + } + + close(POIO); +} + +die("no template seen\n") if (not $saw_template); + + +print <<__EOF__; +-- MojoSetup; a portable, flexible installation application. +-- +-- Please see the file LICENSE.txt in the source's root directory. +-- +-- DO NOT EDIT BY HAND. +-- This file was generated with po2localization.pl, version $hgver ... +-- on $now +-- +-- Your own installer's localizations go into app_localization.lua instead. +-- If you want to add strings to be translated to this file, contact Ryan +-- (icculus\@icculus.org). If you want to add or change a translation for +-- existing strings, please use our nice web interface here for your work: +-- +-- https://translations.launchpad.net/mojosetup/ +-- +-- ...and that work eventually ends up in this file. +-- +-- $exportdate +-- $generator + +MojoSetup.languages = { +__EOF__ + +print " en_US = \"English (United States)\""; + +foreach (sort keys %languages) { + my $k = $_; + my $v = $languages{$k}; + print ",\n $k = \"$v\"" +} +print "\n};\n\nMojoSetup.localization = {"; + +foreach (@strings) { + my $msgid = $_; + print "\n"; + print $comments{$msgid}; + print " [\"$msgid\"] = {\n"; + my $first = 1; + foreach (sort keys %languages) { + my $k = $_; + my $str = $msgstrs{$k}{$msgid}; + next if ((not defined $str) or ($str eq '')); + print ",\n" if (not $first); + print " $k = \"$str\""; + $first = 0; + } + print "\n };\n"; +} + +print "};\n\n-- end of localization.lua ...\n\n"; + +# end of po2localization.pl ... + diff --git a/mk/linux/mojosetup/misc/rm_recurse.cmake b/mk/linux/mojosetup/misc/rm_recurse.cmake new file mode 100644 index 00000000..910c38b0 --- /dev/null +++ b/mk/linux/mojosetup/misc/rm_recurse.cmake @@ -0,0 +1,18 @@ +# CMake 2.4.5 lacks a "CMake -E 'rm -rf'" command. +# It does have a MAKE_DIRECTORY command, but we cannot run it from inside +# a custom rule or target. So, we wrap it in a script, which we can then +# call from a custom command or target. +# +# INPUT: +# +# DIR - absolute pathname of directory to be created +# +# TYPICAL USAGE, from inside a custom target or rule: +# +# COMMAND ${CMAKE_COMMAND} +# -D DIR=${mydirectory} +# -P ${CMAKE_HOME_DIRECTORY}/rm_recurse.cmake + +MESSAGE(STATUS "Removing directory ${DIR}") +FILE(REMOVE_RECURSE "${DIR}") + diff --git a/mk/linux/mojosetup/misc/shrinksh.pl b/mk/linux/mojosetup/misc/shrinksh.pl new file mode 100755 index 00000000..1f31b7ac --- /dev/null +++ b/mk/linux/mojosetup/misc/shrinksh.pl @@ -0,0 +1,98 @@ +#!/usr/bin/perl + +use strict; +use Shell::Parser; + +my $sawnewline = 1; +my $sawwhitespace = 1; +my $funccount = 0; +my $braces = 0; +my $currentfn = undef; +my %funcmap; +my %funcstart; +my %funcend; +my %funcused; +my @output; + +my $parser = new Shell::Parser handlers => { default => \&dumpnode }; +$parser->parse(join '', <>); + +sub dumpnode { + my $self = shift; + my %args = @_; + + my $token = $args{token}; + my $type = $args{type}; + + if (($type eq 'comment') or ($token eq '')) { + return; + } elsif ($token eq "\n") { + return if ($sawnewline); + $sawnewline = 1; + $sawwhitespace = 1; + push @output, "\n"; + return; + } elsif ($token =~ /\A\s+\Z/) { + return if ($sawwhitespace); + $sawwhitespace = 1; + push @output, ' '; + return; + } else { + $sawnewline = 0; + $sawwhitespace = 0; + + # shrink function names down to "fX" + if ($token eq ')') { + my $prev1 = pop @output; + if ((not defined $prev1) or ($prev1 ne '(')) { + push @output, $prev1; + } else { + my $prev2 = pop @output; + if (defined $prev2) { + $funccount = $funccount + 1; + my $mappedfn = "f${funccount}"; + $currentfn = $prev2; + $funcmap{$currentfn} = $mappedfn; + $funcused{$currentfn} = 0; + $funcstart{$currentfn} = scalar(@output); + $prev2 = $mappedfn; + } + push @output, $prev2; + push @output, $prev1; + } + } elsif ($token eq '{') { + $braces++; + } elsif ($token eq '}') { + $braces--; + if (($braces == 0) and (defined $currentfn)) { + $funcend{$currentfn} = scalar(@output) + 1; + $currentfn = undef; + } + } elsif (defined $funcmap{$token}) { + $funcused{$token} = 1; + $token = $funcmap{$token}; + } + + push @output, $token; + } +} + +foreach my $fn (keys(%funcused)) { + #print STDERR "funcused{'" . $fn . "'} == '" . $funcused{$fn} . "';\n"; + #print STDERR "funcstart{'" . $fn . "'} == '" . $funcstart{$fn} . "';\n"; + #print STDERR "funcend{'" . $fn . "'} == '" . $funcend{$fn} . "';\n"; + #print STDERR "\n"; + next if $funcused{$fn}; + my $fnstart = $funcstart{$fn}; + my $fnend = $funcend{$fn}; + my $len = $fnend - $fnstart; + for (my $i = $fnstart; $i <= $fnend; $i++) { + $output[$i] = undef; + } + #print STDERR "Removed unused function $fn ($len tokens)\n"; +} + +foreach (@output) { + print($_) if defined $_; +} + diff --git a/mk/linux/mojosetup/mojosetup.c b/mk/linux/mojosetup/mojosetup.c new file mode 100644 index 00000000..6aec12b8 --- /dev/null +++ b/mk/linux/mojosetup/mojosetup.c @@ -0,0 +1,1260 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#include + +#include "universal.h" +#include "platform.h" +#include "gui.h" +#include "lua_glue.h" +#include "fileio.h" + +#define TEST_LAUNCH_BROWSER_CODE 0 +int MojoSetup_testLaunchBrowserCode(int argc, char **argv); + +#define TEST_ARCHIVE_CODE 0 +int MojoSetup_testArchiveCode(int argc, char **argv); + +#define TEST_NETWORK_CODE 0 +int MojoSetup_testNetworkCode(int argc, char **argv); + + +uint8 scratchbuf_128k[128 * 1024]; +MojoSetupEntryPoints GEntryPoints = +{ + xmalloc, + xrealloc, + xstrdup, + xstrncpy, + translate, + logWarning, + logError, + logInfo, + logDebug, + format, + numstr, + MojoPlatform_ticks, + utf8codepoint, + utf8len, + splitText, + isValidProductKey, +}; + +int GArgc = 0; +const char **GArgv = NULL; + +static char *crashedmsg = NULL; +static char *termedmsg = NULL; + +void MojoSetup_crashed(void) +{ + if (crashedmsg == NULL) + panic("BUG: crash at startup"); + else + fatal(crashedmsg); +} // MojoSetup_crash + + +void MojoSetup_terminated(void) +{ + if (termedmsg == NULL) // no translation yet. + panic("The installer has been stopped by the system."); + else + fatal(termedmsg); +} // MojoSetup_crash + + +#if !SUPPORT_MULTIARCH +#define trySwitchBinaries() +#else +static void trySwitchBinary(MojoArchive *ar) +{ + MojoInput *io = ar->openCurrentEntry(ar); + if (io != NULL) + { + const uint32 imglen = (uint32) io->length(io); + uint8 *img = (uint8 *) xmalloc(imglen); + const uint32 br = io->read(io, img, imglen); + io->close(io); + if (br == imglen) + { + logInfo("Switching binary with '%0'...", ar->prevEnum.filename); + MojoPlatform_switchBin(img, imglen); // no return on success. + logError("...Switch binary failed."); + } // if + free(img); + } // if +} // trySwitchBinary + + +static void trySwitchBinaries(void) +{ + if (cmdlinestr("nobinswitch", "MOJOSETUP_NOBINSWITCH", NULL) != NULL) + return; // we are already switched or the user is preventing it. + + setenv("MOJOSETUP_NOBINSWITCH", "1", 1); + setenv("MOJOSETUP_BASE", GBaseArchivePath, 1); + + if (GBaseArchive->enumerate(GBaseArchive)) + { + const MojoArchiveEntry *entinfo; + while ((entinfo = GBaseArchive->enumNext(GBaseArchive)) != NULL) + { + if (entinfo->type != MOJOARCHIVE_ENTRY_FILE) + continue; + + if (strncmp(entinfo->filename, "arch/", 5) != 0) + continue; + + trySwitchBinary(GBaseArchive); + } // while + } // if + +} // trySwitchBinaries +#endif + + +static boolean trySpawnTerminalGui(void) +{ + if (cmdlinestr("notermspawn", "MOJOSETUP_NOTERMSPAWN", NULL) != NULL) + return false; // we already spawned or the user is preventing it. + + if (MojoPlatform_istty()) // maybe we can spawn a terminal for stdio? + return false; // We're a terminal already, no need to spawn one. + + logInfo("No usable GUI found. Trying to spawn a terminal..."); + if (!MojoPlatform_spawnTerminal()) + { + logError("...Terminal spawning failed."); + return false; + } // if + + assert(MojoPlatform_istty()); + return (MojoGui_initGuiPlugin() != NULL); +} // trySpawnTerminalGui + + +static boolean initEverything(void) +{ + MojoLog_initLogging(); + + logInfo("MojoSetup starting up..."); + + // We have to panic on errors until the GUI is ready. Try to make things + // "succeed" unless they are catastrophic, and report problems later. + + // Start with the base archive work, since it might have GUI plugins. + // None of these panic() calls are localized, since localization isn't + // functional until MojoLua_initLua() succeeds. + if (!MojoArchive_initBaseArchive()) + panic("Initial setup failed. Cannot continue."); + + trySwitchBinaries(); // may not return. + + if (!MojoGui_initGuiPlugin()) + { + // This could terminate the process (and relaunch). + if (!trySpawnTerminalGui()) + panic("Initial GUI setup failed. Cannot continue."); + } // if + + else if (!MojoLua_initLua()) + { + panic("Initial Lua setup failed. Cannot continue."); + } // else if + + crashedmsg = xstrdup(_("The installer has crashed due to a bug.")); + termedmsg = xstrdup(_("The installer has been stopped by the system.")); + + return true; +} // initEverything + + +static void deinitEverything(void) +{ + char *tmp = NULL; + + logInfo("MojoSetup shutting down..."); + MojoLua_deinitLua(); + MojoGui_deinitGuiPlugin(); + MojoArchive_deinitBaseArchive(); + MojoLog_deinitLogging(); + + tmp = crashedmsg; + crashedmsg = NULL; + free(tmp); + tmp = termedmsg; + termedmsg = NULL; + free(tmp); +} // deinitEverything + + +void MojoChecksum_init(MojoChecksumContext *ctx) +{ + memset(ctx, '\0', sizeof (MojoChecksumContext)); + #if SUPPORT_CRC32 + MojoCrc32_init(&ctx->crc32); + #endif + #if SUPPORT_MD5 + MojoMd5_init(&ctx->md5); + #endif + #if SUPPORT_SHA1 + MojoSha1_init(&ctx->sha1); + #endif +} // MojoChecksum_init + + +void MojoChecksum_append(MojoChecksumContext *ctx, const uint8 *d, uint32 len) +{ + #if SUPPORT_CRC32 + MojoCrc32_append(&ctx->crc32, d, len); + #endif + #if SUPPORT_MD5 + MojoMd5_append(&ctx->md5, d, len); + #endif + #if SUPPORT_SHA1 + MojoSha1_append(&ctx->sha1, d, len); + #endif +} // MojoChecksum_append + + +void MojoChecksum_finish(MojoChecksumContext *ctx, MojoChecksums *sums) +{ + memset(sums, '\0', sizeof (MojoChecksums)); + #if SUPPORT_CRC32 + MojoCrc32_finish(&ctx->crc32, &sums->crc32); + #endif + #if SUPPORT_MD5 + MojoMd5_finish(&ctx->md5, sums->md5); + #endif + #if SUPPORT_SHA1 + MojoSha1_finish(&ctx->sha1, sums->sha1); + #endif +} // MojoChecksum_finish + + +boolean cmdline(const char *arg) +{ + int argc = GArgc; + const char **argv = GArgv; + int i; + + if ((arg == NULL) || (argv == NULL)) + return false; + + while (*arg == '-') // Skip all '-' chars, so "--nosound" == "-nosound" + arg++; + + for (i = 1; i < argc; i++) + { + const char *thisarg = argv[i]; + if (*thisarg != '-') + continue; // no dash in the string, skip it. + while (*(++thisarg) == '-') { /* keep looping. */ } + if (strcmp(arg, thisarg) == 0) + return true; + } // for + + return false; +} // cmdline + + +const char *cmdlinestr(const char *arg, const char *envr, const char *deflt) +{ + uint32 len = 0; + int argc = GArgc; + const char **argv = GArgv; + int i; + + if (envr != NULL) + { + const char *val = getenv(envr); + if (val != NULL) + return val; + } // if + + if (arg == NULL) + return deflt; + + while (*arg == '-') // Skip all '-' chars, so "--nosound" == "-nosound" + arg++; + + len = strlen(arg); + + for (i = 1; i < argc; i++) + { + const char *thisarg = argv[i]; + if (*thisarg != '-') + continue; // no dash in the string, skip it. + + while (*(++thisarg) == '-') { /* keep looping. */ } + if (strncmp(arg, thisarg, len) != 0) + continue; // not us. + + thisarg += len; // skip ahead in string to end of match. + + if (*thisarg == '=') // --a=b format. + return (thisarg + 1); + else if (*thisarg == '\0') // --a b format. + return ((argv[i+1] == NULL) ? deflt : argv[i+1]); + } // for + + return deflt; +} // cmdlinestr + + +boolean wildcardMatch(const char *str, const char *pattern) +{ + char sch = *(str++); + while (true) + { + const char pch = *(pattern++); + if (pch == '?') + { + if ((sch == '\0') || (sch == '/')) + return false; + sch = *(str++); + } // else if + + else if (pch == '*') + { + char nextpch = *pattern; + if ((nextpch != '?') && (nextpch != '*')) + { + while ((sch != '\0') && (sch != nextpch)) + sch = *(str++); + } // if + } // else if + + else + { + if (pch != sch) + return false; + else if (pch == '\0') + break; + sch = *(str++); + } // else + } // while + + return true; +} // wildcardMatch + + +const char *numstr(int val) +{ + static int pos = 0; + char *ptr = ((char *) scratchbuf_128k) + (pos * 128); + snprintf(ptr, 128, "%d", val); + pos = (pos + 1) % 1000; + return ptr; +} // numstr + + +static char *format_internal(const char *fmt, va_list ap) +{ + // This is kinda nasty. String manipulation in C always is. + char *retval = NULL; + const char *strs[10]; // 0 through 9. + const char *ptr = NULL; + char *wptr = NULL; + size_t len = 0; + int maxfmtid = -2; + int i; + + // figure out what this format string contains... + for (ptr = fmt; *ptr; ptr++) + { + if (*ptr == '%') + { + const char ch = *(++ptr); + if (ch == '%') // a literal '%' + maxfmtid = (maxfmtid == -2) ? -1 : maxfmtid; + else if ((ch >= '0') && (ch <= '9')) + maxfmtid = ((maxfmtid > (ch - '0')) ? maxfmtid : (ch - '0')); + else + fatal(_("BUG: Invalid format() string")); + } // if + } // while + + if (maxfmtid == -2) // no formatters present at all. + return xstrdup(fmt); // just copy it, we're done. + + for (i = 0; i <= maxfmtid; i++) // referenced varargs --> linear array. + { + strs[i] = va_arg(ap, const char *); + if (strs[i] == NULL) + strs[i] = "(null)"; // just to match sprintf() behaviour... + } // for + + // allocate the string we'll need in one shot, so we don't have to resize. + for (ptr = fmt; *ptr; ptr++) + { + if (*ptr != '%') + len++; + else + { + const char ch = *(++ptr); + if (ch == '%') // a literal '%' + len++; // just want '%' char. + else //if ((ch >= '0') && (ch <= '9')) + len += strlen(strs[ch - '0']); + } // else + } // while + + // Now write the formatted string... + wptr = retval = (char *) xmalloc(len+1); + for (ptr = fmt; *ptr; ptr++) + { + const char strch = *ptr; + if (strch != '%') + *(wptr++) = strch; + else + { + const char ch = *(++ptr); + if (ch == '%') // a literal '%' + *(wptr++) = '%'; + else //if ((ch >= '0') && (ch <= '9')) + { + const char *str = strs[ch - '0']; + strcpy(wptr, str); + wptr += strlen(str); + } // else + } // else + } // while + *wptr = '\0'; + + return retval; +} // format_internal + + +char *format(const char *fmt, ...) +{ + char *retval = NULL; + va_list ap; + va_start(ap, fmt); + retval = format_internal(fmt, ap); + va_end(ap); + return retval; +} // format + + +#if ((defined _NDEBUG) || (defined NDEBUG)) +#define DEFLOGLEV "info" +#else +#define DEFLOGLEV "everything" +#endif +MojoSetupLogLevel MojoLog_logLevel = MOJOSETUP_LOG_EVERYTHING; +static void *logFile = NULL; + +void MojoLog_initLogging(void) +{ + const char *level = cmdlinestr("loglevel","MOJOSETUP_LOGLEVEL", DEFLOGLEV); + const char *fname = cmdlinestr("log", "MOJOSETUP_LOG", NULL); + + if (strcmp(level, "nothing") == 0) + MojoLog_logLevel = MOJOSETUP_LOG_NOTHING; + else if (strcmp(level, "errors") == 0) + MojoLog_logLevel = MOJOSETUP_LOG_ERRORS; + else if (strcmp(level, "warnings") == 0) + MojoLog_logLevel = MOJOSETUP_LOG_WARNINGS; + else if (strcmp(level, "info") == 0) + MojoLog_logLevel = MOJOSETUP_LOG_INFO; + else if (strcmp(level, "debug") == 0) + MojoLog_logLevel = MOJOSETUP_LOG_DEBUG; + else // Unknown string gets everything...that'll teach you. + MojoLog_logLevel = MOJOSETUP_LOG_EVERYTHING; + + if ((fname != NULL) && (strcmp(fname, "-") == 0)) + logFile = MojoPlatform_stdout(); + else if (fname != NULL) + { + const uint32 flags = MOJOFILE_WRITE|MOJOFILE_CREATE|MOJOFILE_TRUNCATE; + const uint16 mode = MojoPlatform_defaultFilePerms(); + logFile = MojoPlatform_open(fname, flags, mode); + } // if +} // MojoLog_initLogging + + +void MojoLog_deinitLogging(void) +{ + if (logFile != NULL) + { + MojoPlatform_close(logFile); + logFile = NULL; + } // if +} // MojoLog_deinitLogging + + +static inline void addLog(MojoSetupLogLevel level, char levelchar, + const char *fmt, va_list ap) +{ + if (level <= MojoLog_logLevel) + { + char *str = format_internal(fmt, ap); + //int len = vsnprintf(buf + 2, sizeof (buf) - 2, fmt, ap) + 2; + //buf[0] = levelchar; + //buf[1] = ' '; + int len = strlen(str); + while ( (--len >= 0) && ((str[len] == '\n') || (str[len] == '\r')) ) {} + str[len+1] = '\0'; // delete trailing newline crap. + MojoPlatform_log(str); + if (logFile != NULL) + { + const char *endl = MOJOPLATFORM_ENDLINE; + MojoPlatform_write(logFile, str, strlen(str)); + MojoPlatform_write(logFile, endl, strlen(endl)); + MojoPlatform_flush(logFile); + } // if + free(str); + } // if +} // addLog + + +void logWarning(const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + addLog(MOJOSETUP_LOG_WARNINGS, '-', fmt, ap); + va_end(ap); +} // logWarning + + +void logError(const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + addLog(MOJOSETUP_LOG_ERRORS, '!', fmt, ap); + va_end(ap); +} // logError + + +void logInfo(const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + addLog(MOJOSETUP_LOG_INFO, '*', fmt, ap); + va_end(ap); +} // logInfo + + +void logDebug(const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + addLog(MOJOSETUP_LOG_DEBUG, '#', fmt, ap); + va_end(ap); +} // logDebug + + +uint32 profile(const char *what, uint32 start_time) +{ + uint32 retval = MojoPlatform_ticks() - start_time; + if (what != NULL) + logDebug("%0 took %1 ms.", what, numstr((int) retval)); + return retval; +} // profile_start + + +int fatal(const char *fmt, ...) +{ + static boolean in_fatal = false; + + if (in_fatal) + return panic("BUG: fatal() called more than once!"); + + in_fatal = true; + + // may not want to show a message, since we displayed one elsewhere, etc. + if (fmt != NULL) + { + char *buf = NULL; + va_list ap; + va_start(ap, fmt); + buf = format_internal(fmt, ap); + va_end(ap); + + logError("FATAL: %0", buf); + + if (GGui != NULL) + GGui->msgbox(_("Fatal error"), buf); + + free(buf); + } // if + + // Shouldn't call fatal() before app is initialized! + if ( (GGui == NULL) || (!MojoLua_initialized()) ) + panic("fatal() called before app is initialized! Panicking..."); + + MojoLua_callProcedure("revertinstall"); + + deinitEverything(); + exit(23); + return 0; +} // fatal + + +int panic(const char *err) +{ + static int panic_runs = 0; + + panic_runs++; + if (panic_runs == 1) + { + logError("PANIC: %0", err); + panic(err); + } // if + + else if (panic_runs == 2) + { + boolean domsgbox = ((GGui != NULL) && (GGui->msgbox != NULL)); + if (domsgbox) + GGui->msgbox(_("PANIC"), err); + + if ((GGui != NULL) && (GGui->deinit != NULL)) + GGui->deinit(); + + if (!domsgbox) + panic(err); /* no GUI plugin...double-panic. */ + } // if + + else if (panic_runs == 3) // no GUI or panic panicked...write to stderr... + fprintf(stderr, "\n\n\n%s\n %s\n\n\n", _("PANIC"), err); + + else // panic is panicking in a loop, terminate without any cleanup... + MojoPlatform_die(); + + exit(22); + return 0; // shouldn't hit this. +} // panic + + +char *xstrncpy(char *dst, const char *src, size_t len) +{ + snprintf(dst, len, "%s", src); + return dst; +} // xstrncpy + + +uint32 utf8codepoint(const char **_str) +{ + const char *str = *_str; + uint32 retval = 0; + uint32 octet = (uint32) ((uint8) *str); + uint32 octet2, octet3, octet4; + + if (octet == 0) // null terminator, end of string. + return 0; + + else if (octet < 128) // one octet char: 0 to 127 + { + (*_str)++; // skip to next possible start of codepoint. + return octet; + } // else if + + else if ((octet > 127) && (octet < 192)) // bad (starts with 10xxxxxx). + { + // Apparently each of these is supposed to be flagged as a bogus + // char, instead of just resyncing to the next valid codepoint. + (*_str)++; // skip to next possible start of codepoint. + return UNICODE_BOGUS_CHAR_VALUE; + } // else if + + else if (octet < 224) // two octets + { + octet -= (128+64); + octet2 = (uint32) ((uint8) *(++str)); + if ((octet2 & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + *_str += 2; // skip to next possible start of codepoint. + retval = ((octet << 6) | (octet2 - 128)); + if ((retval >= 0x80) && (retval <= 0x7FF)) + return retval; + } // else if + + else if (octet < 240) // three octets + { + octet -= (128+64+32); + octet2 = (uint32) ((uint8) *(++str)); + if ((octet2 & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + octet3 = (uint32) ((uint8) *(++str)); + if ((octet3 & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + *_str += 3; // skip to next possible start of codepoint. + retval = ( ((octet << 12)) | ((octet2-128) << 6) | ((octet3-128)) ); + + // There are seven "UTF-16 surrogates" that are illegal in UTF-8. + switch (retval) + { + case 0xD800: + case 0xDB7F: + case 0xDB80: + case 0xDBFF: + case 0xDC00: + case 0xDF80: + case 0xDFFF: + return UNICODE_BOGUS_CHAR_VALUE; + } // switch + + // 0xFFFE and 0xFFFF are illegal, too, so we check them at the edge. + if ((retval >= 0x800) && (retval <= 0xFFFD)) + return retval; + } // else if + + else if (octet < 248) // four octets + { + octet -= (128+64+32+16); + octet2 = (uint32) ((uint8) *(++str)); + if ((octet2 & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + octet3 = (uint32) ((uint8) *(++str)); + if ((octet3 & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + octet4 = (uint32) ((uint8) *(++str)); + if ((octet4 & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + *_str += 4; // skip to next possible start of codepoint. + retval = ( ((octet << 18)) | ((octet2 - 128) << 12) | + ((octet3 - 128) << 6) | ((octet4 - 128)) ); + if ((retval >= 0x10000) && (retval <= 0x10FFFF)) + return retval; + } // else if + + // Five and six octet sequences became illegal in rfc3629. + // We throw the codepoint away, but parse them to make sure we move + // ahead the right number of bytes and don't overflow the buffer. + + else if (octet < 252) // five octets + { + octet = (uint32) ((uint8) *(++str)); + if ((octet & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + octet = (uint32) ((uint8) *(++str)); + if ((octet & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + octet = (uint32) ((uint8) *(++str)); + if ((octet & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + octet = (uint32) ((uint8) *(++str)); + if ((octet & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + *_str += 5; // skip to next possible start of codepoint. + return UNICODE_BOGUS_CHAR_VALUE; + } // else if + + else // six octets + { + octet = (uint32) ((uint8) *(++str)); + if ((octet & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + octet = (uint32) ((uint8) *(++str)); + if ((octet & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + octet = (uint32) ((uint8) *(++str)); + if ((octet & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + octet = (uint32) ((uint8) *(++str)); + if ((octet & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + octet = (uint32) ((uint8) *(++str)); + if ((octet & (128+64)) != 128) // Format isn't 10xxxxxx? + return UNICODE_BOGUS_CHAR_VALUE; + + *_str += 6; // skip to next possible start of codepoint. + return UNICODE_BOGUS_CHAR_VALUE; + } // else if + + return UNICODE_BOGUS_CHAR_VALUE; +} // utf8codepoint + + +int utf8len(const char *str) +{ + int retval = 0; + while (utf8codepoint(&str)) + retval++; + return retval; +} // utf8len + + +static char *strfrombuf(const char *text, int len) +{ + char *retval = xmalloc(len + 1); + memcpy(retval, text, len); + retval[len] = '\0'; + return retval; +} // strfrombuf + + +char **splitText(const char *text, int scrw, int *_count, int *_w) +{ + int i = 0; + int j = 0; + char **retval = NULL; + int count = 0; + int w = 0; + + *_count = *_w = 0; + while (*text) + { + const char *utf8text = text; + uint32 ch = 0; + int pos = 0; + int furthest = 0; + + for (i = 0; ((ch = utf8codepoint(&utf8text))) && (i < scrw); i++) + { + if ((ch == '\r') || (ch == '\n')) + { + const char nextbyte = *utf8text; + count++; + retval = (char **) xrealloc(retval, count * sizeof (char *)); + retval[count-1] = strfrombuf(text, utf8text - text); + if ((ch == '\r') && (nextbyte == '\n')) // DOS endlines! + utf8text++; // skip it. + text = (char *) utf8text; // update to start of new line. + + if (i > w) + w = i; + i = -1; // will be zero on next iteration... + } // if + else if ((ch == ' ') || (ch == '\t')) + { + if (i != 0) // trim spaces from start of line... + furthest = i; + else + { + text++; + i = -1; // it'll be zero on next iteration. + } // else + } // else if + } // for + + // line overflow or end of stream... + pos = (ch) ? furthest : i; + if ((ch) && (furthest == 0)) // uhoh, no split at all...hack it. + { + pos = utf8len(text); + if (pos > scrw) // too big, have to chop a string in the middle. + pos = scrw; + } // if + + if (pos > 0) + { + utf8text = text; // adjust pointer by redecoding from start... + for (j = 0; j < pos; j++) + utf8codepoint(&utf8text); + + count++; + retval = (char **) xrealloc(retval, count * sizeof (char*)); + retval[count-1] = strfrombuf(text, utf8text - text); + text = (char *) utf8text; + if (pos > w) + w = pos; + } // if + } // while + + *_count = count; + *_w = w; + return retval; +} // splitText + + +static void outOfMemory(void) +{ + // Try to translate "out of memory", but not if it causes recursion. + static boolean already_panicked = false; + const char *errstr = "out of memory"; + if (!already_panicked) + { + already_panicked = true; + errstr = translate(errstr); + } // if + panic(errstr); +} // outOfMemory + + +#undef calloc +void *xmalloc(size_t bytes) +{ + void *retval = calloc(1, bytes); + if (retval == NULL) + outOfMemory(); + return retval; +} // xmalloc +#define calloc(x,y) DO_NOT_CALL_CALLOC__USE_XMALLOC_INSTEAD + +#undef realloc +void *xrealloc(void *ptr, size_t bytes) +{ + void *retval = realloc(ptr, bytes); + if (retval == NULL) + outOfMemory(); + return retval; +} // xrealloc +#define realloc(x,y) DO_NOT_CALL_REALLOC__USE_XREALLOC_INSTEAD + +char *xstrdup(const char *str) +{ + char *retval = (char *) xmalloc(strlen(str) + 1); + strcpy(retval, str); + return retval; +} // xstrdup + + +// We have to supply this function under certain build types. +#if MOJOSETUP_INTERNAL_BZLIB && BZ_NO_STDIO +void bz_internal_error(int errcode) +{ + fatal(_("bzlib triggered an internal error: %0"), numstr(errcode)); +} // bz_internal_error +#endif + + +#if SUPPORT_STBIMAGE +unsigned char *stbi_load_from_memory(unsigned char *buffer, int len, int *x, + int *y, int *comp, int req_comp); +#endif + +uint8 *decodeImage(const uint8 *data, uint32 size, uint32 *w, uint32 *h) +{ + uint8 *retval = MojoPlatform_decodeImage(data, size, w, h); + + #if SUPPORT_STBIMAGE + if (retval == NULL) // try our built-in routines. + { + const int siz = (int) size; + unsigned char *buf = (unsigned char *) data; + int x = 0, y = 0, comp = 0; + retval = (uint8 *) stbi_load_from_memory(buf, siz, &x, &y, &comp, 4); + *w = (uint32) x; + *h = (uint32) y; + } // if + #endif + + if (retval == NULL) + *w = *h = 0; + + return retval; +} // decodeImage + + +boolean isValidProductKey(const char *fmt, const char *key) +{ + if (fmt == NULL) + return true; + else if (key == NULL) + return false; + + while (*fmt) + { + const char fmtch = *(fmt++); + const char keych = *(key++); + switch (fmtch) + { + case '-': + case ' ': + if ((keych == ' ') || (keych == '-')) + break; + key--; // user didn't type this, roll back. + break; + + case '#': + if ((keych >= '0') && (keych <= '9')) + break; + return false; + + case 'X': + if ( ((keych >= 'A') && (keych <= 'Z')) || + ((keych >= 'a') && (keych <= 'z')) ) + break; + return false; + + case '?': + if ( ((keych >= 'A') && (keych <= 'Z')) || + ((keych >= 'a') && (keych <= 'z')) || + ((keych >= '0') && (keych <= '9')) ) + break; + return false; + + case '*': + break; + + default: + // this should have been caught by schema sanitize. + assert(false && "Invalid product key format."); + return false; + } // switch + } // while + + return (*key == '\0'); +} // isValidProductKey + + +// This is called from main()/WinMain()/whatever. +int MojoSetup_main(int argc, char **argv) +{ + GArgc = argc; + GArgv = (const char **) argv; + + if (cmdline("buildver")) + { + printf("%s\n", GBuildVer); + return 0; + } // if + + #if TEST_LAUNCH_BROWSER_CODE + return MojoSetup_testLaunchBrowserCode(argc, argv); + #endif + + #if TEST_ARCHIVE_CODE + return MojoSetup_testArchiveCode(argc, argv); + #endif + + #if TEST_NETWORK_CODE + return MojoSetup_testNetworkCode(argc, argv); + #endif + + if (!initEverything()) + return 1; + + // Jump into Lua for the heavy lifting. + MojoLua_runFile("mojosetup_mainline"); + deinitEverything(); + + return 0; +} // MojoSetup_main + + + +#if TEST_LAUNCH_BROWSER_CODE +int MojoSetup_testLaunchBrowserCode(int argc, char **argv) +{ + int i; + + if (!MojoArchive_initBaseArchive()) // Maybe need for xdg-open script. + panic("Initial setup failed. Cannot continue."); + + printf("Testing browser launching code...\n\n"); + for (i = 1; i < argc; i++) + { + const boolean rc = MojoPlatform_launchBrowser(argv[i]); + printf("Launch '%s': %s\n", argv[i], rc ? "success" : "failure"); + } // for + + MojoArchive_deinitBaseArchive(); + return 0; +} // MojoSetup_testLaunchBrowserCode +#endif + + +#if TEST_ARCHIVE_CODE +int MojoSetup_testArchiveCode(int argc, char **argv) +{ + int i; + printf("Testing archiver code...\n\n"); + for (i = 1; i < argc; i++) + { + MojoArchive *archive = MojoArchive_newFromDirectory(argv[i]); + if (archive != NULL) + printf("directory '%s'...\n", argv[i]); + else + { + MojoInput *io = MojoInput_newFromFile(argv[i]); + if (io != NULL) + { + archive = MojoArchive_newFromInput(io, argv[i]); + if (archive != NULL) + printf("archive '%s'...\n", argv[i]); + } // if + } // else + + if (archive == NULL) + fprintf(stderr, "Couldn't handle '%s'\n", argv[i]); + else + { + if (!archive->enumerate(archive)) + fprintf(stderr, "enumerate() failed.\n"); + else + { + const MojoArchiveEntry *ent; + while ((ent = archive->enumNext(archive)) != NULL) + { + printf("%s ", ent->filename); + if (ent->type == MOJOARCHIVE_ENTRY_FILE) + { + printf("(file, %d bytes, %o)\n", + (int) ent->filesize, ent->perms); + + MojoInput *input = archive->openCurrentEntry(archive); + + if(&archive->prevEnum != ent) + { + fprintf(stderr, "Address of MojoArchiveEntry pointer differs\n"); + exit(EXIT_FAILURE); + } // if + + if(!input) + { + fprintf(stderr, "Could not open current entry\n"); + exit(EXIT_FAILURE); + } // if + + if(!input->ready(input)) + { + input->close(input); + continue; + } // if + + uint64 pos = input->tell(input); + if(0 != pos) + { + fprintf(stderr, "position has to be 0 on start, is: %d\n", (int) pos); + exit(EXIT_FAILURE); + } // if + + int64 filesize = input->length(input); + if(filesize != ent->filesize) + { + fprintf(stderr, "file size mismatch %d != %d\n", + (int) filesize, (int) ent->filesize); + exit(EXIT_FAILURE); + } // if + + boolean ret = input->seek(input, filesize - 1); + if(!ret) + { + fprintf(stderr, "seek() has to return 'true'.\n"); + exit(EXIT_FAILURE); + } // if + + ret = input->seek(input, filesize); + if(ret) + { + fprintf(stderr, "seek() has to return 'false'.\n"); + exit(EXIT_FAILURE); + } // if + + pos = input->tell(input); + if(filesize -1 != pos) + { + fprintf(stderr, "position should be %d after seek(), is: %d\n", + (int) filesize - 1, (int) pos); + exit(EXIT_FAILURE); + } // if + + input->close(input); + } // if + else if (ent->type == MOJOARCHIVE_ENTRY_DIR) + printf("(dir, %o)\n", ent->perms); + else if (ent->type == MOJOARCHIVE_ENTRY_SYMLINK) + printf("(symlink -> '%s')\n", ent->linkdest); + else + { + printf("(UNKNOWN?!, %d bytes, -> '%s', %o)\n", + (int) ent->filesize, ent->linkdest, + ent->perms); + } // else + } // while + } // else + archive->close(archive); + printf("\n\n"); + } // else + } // for + + return 0; +} // MojoSetup_testArchiveCode +#endif + + +#if TEST_NETWORK_CODE +int MojoSetup_testNetworkCode(int argc, char **argv) +{ + int i; + fprintf(stderr, "Testing networking code...\n\n"); + for (i = 1; i < argc; i++) + { + static char buf[64 * 1024]; + uint32 start = 0; + const char *url = argv[i]; + int64 length = -1; + int64 total_br = 0; + int64 br = 0; + printf("\n\nFetching '%s' ...\n", url); + MojoInput *io = MojoInput_newFromURL(url); + if (io == NULL) + { + fprintf(stderr, "failed!\n"); + continue; + } // if + + start = MojoPlatform_ticks(); + while (!io->ready(io)) + MojoPlatform_sleep(10); + fprintf(stderr, "took about %d ticks to get started\n", + (int) (MojoPlatform_ticks() - start)); + + length = io->length(io); + fprintf(stderr, "Ready to read (%lld) bytes.\n", + (long long) length); + + do + { + start = MojoPlatform_ticks(); + if (!io->ready(io)) + { + fprintf(stderr, "Not ready!\n"); + while (!io->ready(io)) + MojoPlatform_sleep(10); + fprintf(stderr, "took about %d ticks to get ready\n", + (int) (MojoPlatform_ticks() - start)); + } // if + + start = MojoPlatform_ticks(); + br = io->read(io, buf, sizeof (buf)); + fprintf(stderr, "read blocked for about %d ticks\n", + (int) (MojoPlatform_ticks() - start)); + if (br > 0) + { + total_br += br; + fprintf(stderr, "read %lld bytes\n", (long long) br); + fwrite(buf, br, 1, stdout); + } // if + } while (br > 0); + + if (br < 0) + fprintf(stderr, "ERROR IN TRANSMISSION.\n\n"); + else + { + fprintf(stderr, "TRANSMISSION COMPLETE!\n\n"); + fprintf(stderr, "(Read %lld bytes, expected %lld.)\n", + (long long) total_br, length); + } // else + io->close(io); + } // for + + return 0; +} // MojoSetup_testNetworkCode +#endif + +// end of mojosetup.c ... + diff --git a/mk/linux/mojosetup/platform.h b/mk/linux/mojosetup/platform.h new file mode 100644 index 00000000..1262147b --- /dev/null +++ b/mk/linux/mojosetup/platform.h @@ -0,0 +1,350 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#ifndef _INCL_PLATFORM_H_ +#define _INCL_PLATFORM_H_ + +#include "universal.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// this is called by your mainline. +int MojoSetup_main(int argc, char **argv); + +// Caller must free returned string! +char *MojoPlatform_appBinaryPath(void); + +// Caller must free returned string! +char *MojoPlatform_currentWorkingDir(void); + +// Caller must free returned string! +char *MojoPlatform_homedir(void); + +uint32 MojoPlatform_ticks(void); + +// Make current process kill itself immediately, without any sort of internal +// cleanup, like atexit() handlers or static destructors...the OS will have +// to sort out the freeing of any resources, and no more code in this +// process than necessary should run. This function does not return. Try to +// avoid calling this. +void MojoPlatform_die(void); + +// Delete a file from the physical filesystem. This should remove empty +// directories as well as files. Returns true on success, false on failure. +boolean MojoPlatform_unlink(const char *fname); + +// Resolve symlinks, relative paths, etc. Caller free()'s buffer. Returns +// NULL if path couldn't be resolved. +char *MojoPlatform_realpath(const char *path); + +// Create a symlink in the physical filesystem. (src) is the NAME OF THE LINK +// and (dst) is WHAT IT POINTS TO. This is backwards from the unix symlink() +// syscall! Returns true if link was created, false otherwise. +boolean MojoPlatform_symlink(const char *src, const char *dst); + +// Read the destination from symlink (linkname). Returns a pointer +// allocated with xmalloc() containing the linkdest on success, and NULL +// on failure. The caller is responsible for freeing the returned pointer! +char *MojoPlatform_readlink(const char *linkname); + +// !!! FIXME: we really can't do this in a 16-bit value...non-Unix platforms +// !!! FIXME: and Extended Attributes need more. +// Create a directory in the physical filesystem, with (perms) permissions. +// returns true if directory is created, false otherwise. +boolean MojoPlatform_mkdir(const char *path, uint16 perms); + +// Move a file to a new name. This has to be a fast (if not atomic) operation, +// so if it would require a legitimate copy to another filesystem or device, +// this should fail, as the standard Unix rename() function does. +// Returns true on successful rename, false otherwise. +boolean MojoPlatform_rename(const char *src, const char *dst); + +// Determine if dir/fname exists in the native filesystem. It doesn't matter +// if it's a directory, file, symlink, etc, we're just looking for the +// existance of the entry itself. (fname) may be NULL, in which case, +// (dir) contains the whole path, otherwise, the platform layer needs to +// build the path: (on Unix: dir/path, on Windows: dir\\path, etc). +// This is a convenience thing for the caller. +// Returns true if path in question exists, false otherwise. +boolean MojoPlatform_exists(const char *dir, const char *fname); + +// Returns true if (fname) in the native filesystem is writable. If (fname) +// is a directory, this means that the contents of the directory can be +// added to (create files, delete files, etc). If (fname) is a file, this +// means that this process has write access to the file. +// Returns false if (fname) isn't writable. +boolean MojoPlatform_writable(const char *fname); + +// Returns true if (dir) is a directory in the physical filesystem, false +// otherwise (including if (dir) doesn't exist). Don't follow symlinks. +boolean MojoPlatform_isdir(const char *dir); + +// Returns true if (fname) is a symlink in the physical filesystem, false +// otherwise (including if (fname) doesn't exist). Don't follow symlinks. +boolean MojoPlatform_issymlink(const char *fname); + +// Returns true if stdin and stdout are connected to a tty. +boolean MojoPlatform_istty(void); + +// Returns true if (fname) is a regular file in the physical filesystem, false +// otherwise (including if (fname) doesn't exist). Don't follow symlinks. +boolean MojoPlatform_isfile(const char *fname); + +// Returns size, in bytes, of the file (fname) in the physical filesystem. +// Return -1 if file is missing or not a file. Don't follow symlinks. +int64 MojoPlatform_filesize(const char *fname); + +// !!! FIXME: we really can't do this in a 16-bit value...non-Unix platforms +// !!! FIXME: and Extended Attributes need more. +// !!! FIXME: comment me. +boolean MojoPlatform_perms(const char *fname, uint16 *p); + +// !!! FIXME: we really can't do this in a 16-bit value...non-Unix platforms +// !!! FIXME: and Extended Attributes need more. +// !!! FIXME: comment me. +boolean MojoPlatform_chmod(const char *fname, uint16 p); + +// Try to locate a specific piece of media (usually an inserted CD or DVD). +// (uniquefile) is a path that should exist on the media; its presence +// should uniquely identify the media. +// Returns the path of the media's mount point in the physical filesystem +// (something like "E:\\" on Windows or "/mnt/cdrom" on Unix), or NULL if +// the media isn't found (needed disc isn't inserted, etc). +// Caller must free return value! +char *MojoPlatform_findMedia(const char *uniquefile); + +// Flag values for MojoPlatform_fopen(). +typedef enum +{ + MOJOFILE_READ=(1<<0), + MOJOFILE_WRITE=(1<<1), + MOJOFILE_CREATE=(1<<2), + MOJOFILE_EXCLUSIVE=(1<<3), + MOJOFILE_TRUNCATE=(1<<4), + MOJOFILE_APPEND=(1<<5), +} MojoFileFlags; + +typedef enum +{ + MOJOSEEK_SET, + MOJOSEEK_CURRENT, + MOJOSEEK_END +} MojoFileSeek; + +// !!! FIXME: we really can't do this in a 16-bit value...non-Unix platforms +// !!! FIXME: and Extended Attributes need more. +// Open file (fname). This wraps a subset of the Unix open() syscall. Use +// MojoFileFlags for (flags). If creating a file, use (mode) for the new +// file's permissions. +// Returns an opaque handle on success, NULL on error. Caller must free +// handle with MojoPlatform_close() when done with it. +void *MojoPlatform_open(const char *fname, uint32 flags, uint16 mode); + +// Return a handle that's compatible with MojoPlatform_open()'s return values +// that represents stdout. May return NULL for platforms that don't support +// this concept. You need to make sure that stdout itself doesn't really +// close in MojoPlatform_close(), at least for now. +void *MojoPlatform_stdout(void); + +// Read (bytes) bytes from (fd) into (buf). This wraps the Unix read() syscall. +// Returns number of bytes read, -1 on error. +int64 MojoPlatform_read(void *fd, void *buf, uint32 bytes); + +// Write (bytes) bytes from (buf) into (fd). This wraps the Unix write() +// syscall. Returns number of bytes read, -1 on error. +int64 MojoPlatform_write(void *fd, const void *buf, uint32 bytes); + +// Reports byte offset of file pointer in (fd), or -1 on error. +int64 MojoPlatform_tell(void *fd); + +// Seek to (offset) byte offset of file pointer in (fd), relative to (whence). +// This wraps the Unix lseek() syscall. Returns byte offset from the start +// of the file, -1 on error. +int64 MojoPlatform_seek(void *fd, int64 offset, MojoFileSeek whence); + +// Get the size, in bytes, of a file, referenced by its opaque handle. +// (This pulls the data through an fstat() on Unix.) Retuns -1 on error. +int64 MojoPlatform_flen(void *fd); + +// Force any pending data to disk, returns true on success, false if there +// was an i/o error. +boolean MojoPlatform_flush(void *fd); + +// Free any resources associated with (fd), flushing any pending data to disk, +// and closing the file. (fd) becomes invalid after this call returns +// successfully. This wraps the Unix close() syscall. Returns true on +// success, false on i/o error. +boolean MojoPlatform_close(void *fd); + +// Enumerate a directory. Returns an opaque pointer that can be used with +// repeated calls to MojoPlatform_readdir() to enumerate the names of +// directory entries. Returns NULL on error. Non-NULL values should be passed +// to MojoPlatform_closedir() for cleanup when you are done with them. +void *MojoPlatform_opendir(const char *dirname); + +// Get the next entry in the directory. (dirhandle) is an opaque pointer +// returned by MojoPlatform_opendir(). Returns NULL if we're at the end of +// the directory, or a null-terminated UTF-8 string otherwise. The order of +// results are not guaranteed, and may change between two iterations. +// Caller must free returned string! +char *MojoPlatform_readdir(void *dirhandle); + +// Clean up resources used by a directory enumeration. (dirhandle) is an +// opaque pointer returned by MojoPlatform_opendir(), and becomes invalid +// after this call. +void MojoPlatform_closedir(void *dirhandle); + +// Convert a string into a permissions bitmask. On Unix, this is currently +// expected to be an octal string like "0755", but may expect other forms +// in the future, and other platforms may need to interpret permissions +// differently. (str) may be NULL for defaults, and is considered valid. +// If (str) is not valid, return a reasonable default and set (*valid) to +// false. Otherwise, set (*valid) to true and return the converted value. +uint16 MojoPlatform_makePermissions(const char *str, boolean *valid); + +// Return a default, sane set of permissions for a newly-created file. +uint16 MojoPlatform_defaultFilePerms(void); + +// Return a default, sane set of permissions for a newly-created directory. +uint16 MojoPlatform_defaultDirPerms(void); + +// Wrappers for Unix dlopen/dlsym/dlclose, sort of. Instead of a filename, +// these take a memory buffer for the library. If you can't load this +// directly in RAM, the platform should write it to a temporary file first, +// and deal with cleanup in MojoPlatform_dlclose(). The memory buffer must be +// dereferenced in MojoPlatform_dlopen(), as the caller may free() it upon +// return. Everything else works like the usual Unix calls. +void *MojoPlatform_dlopen(const uint8 *img, size_t len); +void *MojoPlatform_dlsym(void *lib, const char *sym); +void MojoPlatform_dlclose(void *lib); + +// Launch the user's preferred browser to view the URL (url). +// Returns true if the browser launched, false otherwise. We can't know +// if the URL actually loaded, just if the browser launched. The hope is that +// the browser will inform the user if there's a problem loading the URL. +boolean MojoPlatform_launchBrowser(const char *url); + +// Add a menu item to the Application menu or Start bar or whatever. +// (data) is 100% platform dependent right now, and this interface will +// likely change as we come to understand various systems' needs better. +// On Unix, it expects this to be a path to a FreeDesktop .desktop file. +// Returns (true) on success and (false) on failure. +boolean MojoPlatform_installDesktopMenuItem(const char *data); + +// Remove a menu item from the Application menu or Start bar or whatever. +// (data) is 100% platform dependent right now, and this interface will +// likely change as we come to understand various systems' needs better. +// On Unix, it expects this to be a path to a FreeDesktop .desktop file. +// Returns (true) on success and (false) on failure. +boolean MojoPlatform_uninstallDesktopMenuItem(const char *data); + +#if !SUPPORT_MULTIARCH +#define MojoPlatform_switchBin(img, len) +#else +void MojoPlatform_switchBin(const uint8 *img, size_t len); +#endif + +// Try to spawn a terminal, and possibly relaunch MojoSetup within it. +// If we can attach to a terminal without relaunching, do so and +// return true. false for failure to attach/spawn. +// May not return on success (process replaces itself). +boolean MojoPlatform_spawnTerminal(void); + +// Put the calling process to sleep for at least (ticks) milliseconds. +// This is meant to yield the CPU while spinning in a loop that is polling +// for input, etc. Pumping the GUI event queue happens elsewhere, not here. +void MojoPlatform_sleep(uint32 ticks); + +// Put a line of text to the the system log, whatever that might be on a +// given platform. (str) is a complete line, but won't end with any newline +// characters. You should supply if needed. +void MojoPlatform_log(const char *str); + +// This tries to decode a graphic file in memory into an RGBA framebuffer. +// Most platforms return NULL here. No one should call this; use decodeImage() +// instead, which will try included platform-independent code if this fails. +// This function is just here to allow a platform with the appropriate +// functionality to work without compiling in stb_image.c, or supply more +// formats over the built-in code. +// (data) points to the compressed data, (size) is the number of bytes +// of compressed data. (*w) and (*h) will contain the images dimensions on +// return. +// Returns NULL on failure (unsupported, etc) and a pointer to the +// uncompressed data on success. Caller must free() the returned pointer! +uint8 *MojoPlatform_decodeImage(const uint8 *data, uint32 size, + uint32 *w, uint32 *h); + +// Get the current locale, in the format "xx_YY" where "xx" is the language +// (en, fr, de...) and "_YY" is the country. (_US, _CA, etc). The country +// can be omitted. Don't include encoding, it's always UTF-8 at this time. +// Returns locale string, or NULL if it couldn't be determined. +// Caller must free() the returned pointer! +char *MojoPlatform_locale(void); + +// !!! FIXME: document me. +// Caller must free() the returned pointer! +char *MojoPlatform_osType(void); + +// !!! FIXME: document me. +// Caller must free() the returned pointer! +char *MojoPlatform_osVersion(void); + +// !!! FIXME: document me. +uint64 MojoPlatform_getuid(void); + +// !!! FIXME: document me. +uint64 MojoPlatform_geteuid(void); + +// !!! FIXME: document me. +uint64 MojoPlatform_getgid(void); + + +// Basic platform detection. +#if PLATFORM_WINDOWS +#define PLATFORM_NAME "windows" +#elif PLATFORM_MACOSX +#define PLATFORM_NAME "macosx" +#elif PLATFORM_UNIX +#define PLATFORM_NAME "unix" +#elif PLATFORM_BEOS +#define PLATFORM_NAME "beos" +#else +#error Unknown platform. +#endif + +// Basic architecture detection. + +#if defined(__powerpc64__) +#define PLATFORM_ARCH "powerpc64" +#elif defined(__ppc__) || defined(__powerpc__) || defined(__POWERPC__) +#define PLATFORM_ARCH "powerpc" +#elif defined(__x86_64__) || defined(_M_X64) +#define PLATFORM_ARCH "x86-64" +#elif defined(__X86__) || defined(__i386__) || defined(i386) || defined (_M_IX86) || defined(__386__) +#define PLATFORM_ARCH "x86" +#else +#error Unknown processor architecture. +#endif + +// Other basic truths... +#if PLATFORM_WINDOWS +#define MOJOPLATFORM_ENDLINE "\r\n" +#else +#define MOJOPLATFORM_ENDLINE "\n" +#endif + +#ifdef __cplusplus +} +#endif + +#endif + +// end of platform.h ... + diff --git a/mk/linux/mojosetup/platform_beos.cpp b/mk/linux/mojosetup/platform_beos.cpp new file mode 100644 index 00000000..793cf6d5 --- /dev/null +++ b/mk/linux/mojosetup/platform_beos.cpp @@ -0,0 +1,92 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +// You also need to compile unix.c, but this lets us add some things that +// cause conflicts between the Be headers and MojoSetup, and use C++. These +// are largely POSIX things that are missing from BeOS 5...keeping them here +// even on Zeta lets us be binary compatible across everything, I think. + +#if PLATFORM_BEOS + +#include +#include +#include +#include +#include + +extern "C" { int beos_launchBrowser(const char *url); } +int beos_launchBrowser(const char *url) +{ + static struct { const char *prot, const char *mime } protmimemap[] = + { + { "http://", "text/html" }, + { "https://", "text/html" }, + { "file://", "text/html" }, // let the web browser handle this. + { "ftp://", "application/x-vnd.Be.URL.ftp" }, + { "mailto:", "text/x-email" }, + { NULL, NULL } + }; + + const char *mime = NULL; + + for (int i = 0; protmimemap[i].prot != NULL; i++) + { + const char *prot = protmimemap[i].prot; + if (strncmp(url, prot, strlen(prot)) == 0) + { + mime = protmimemap[i].mime; + break; + } // if + } // for + + if (mime == NULL) + return false; // no handler for this protocol. + + // be_roster is a global object supplied by the system runtime. + return (be_roster->Launch(mime, 1, &url) == B_OK); +} // beos_launchBrowser + + +extern "C" { void *beos_dlopen(const char *fname, int unused); } +void *beos_dlopen(const char *fname, int unused) +{ + const image_id lib = load_add_on(fname); + (void) unused; + if (lib < 0) + return NULL; + return (void *) lib; +} // beos_dlopen + + +extern "C" { void *beos_dlsym(void *lib, const char *sym); } +void *beos_dlsym(void *lib, const char *sym) +{ + void *addr = NULL; + if (get_image_symbol((image_id) lib, sym, B_SYMBOL_TYPE_TEXT, &addr)) + return NULL; + return addr; +} // beos_dlsym + + +extern "C" { void beos_dlclose(void *lib); } +void beos_dlclose(void *lib) +{ + unload_add_on((image_id) lib); +} // beos_dlclose + + +extern "C" { void beos_usleep(unsigned long microseconds); } +void beos_usleep(unsigned long microseconds) +{ + snooze(microseconds); +} // beos_usleep + +#endif // PLATFORM_BEOS + +// end of beos.c ... + diff --git a/mk/linux/mojosetup/platform_unix.c b/mk/linux/mojosetup/platform_unix.c new file mode 100644 index 00000000..5d6fe999 --- /dev/null +++ b/mk/linux/mojosetup/platform_unix.c @@ -0,0 +1,1515 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#if PLATFORM_UNIX + +#if PLATFORM_MACOSX +#include +#undef true +#undef false +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if MOJOSETUP_HAVE_SYS_UCRED_H +# ifdef MOJOSETUP_HAVE_MNTENT_H +# undef MOJOSETUP_HAVE_MNTENT_H /* don't do both... */ +# endif +# include +#endif + +#if MOJOSETUP_HAVE_MNTENT_H +# include +#endif + +#if MOJOSETUP_HAVE_SYS_MNTTAB_H +# include +#endif + +#if PLATFORM_BEOS +#define DLOPEN_ARGS 0 +void *beos_dlopen(const char *fname, int unused); +void *beos_dlsym(void *lib, const char *sym); +void beos_dlclose(void *lib); +void beos_usleep(unsigned long ticks); +#define dlopen beos_dlopen +#define dlsym beos_dlsym +#define dlclose beos_dlclose +#define usleep beos_usleep +#else +#include +#define DLOPEN_ARGS (RTLD_NOW | RTLD_GLOBAL) +#endif + +#include "platform.h" +#include "gui.h" +#include "fileio.h" + +static struct timeval startup_time; + +boolean MojoPlatform_istty(void) +{ + static boolean already_checked = false; // this never changes in a run. + static boolean retval = false; + if (!already_checked) + { + retval = isatty(0) && isatty(1) ? true : false; + already_checked = true; + } // if + + return retval; +} // MojoPlatform_istty + + +char *MojoPlatform_currentWorkingDir(void) +{ + char *retval = NULL; + size_t len; + + // loop a few times in case we don't have a large enough buffer. + for (len = 128; len <= (16*1024); len *= 2) + { + retval = (char *) xrealloc(retval, len); + if (getcwd(retval, len-1) != NULL) + { + size_t slen = strlen(retval); + if (retval[slen-1] != '/') // make sure this ends with '/' ... + { + retval[slen] = '/'; + retval[slen+1] = '\0'; + } // if + return retval; + } // if + } // for + + free(retval); + return NULL; +} // MojoPlatform_currentWorkingDir + + +char *MojoPlatform_readlink(const char *linkname) +{ + size_t alloclen = 16; + char *retval = NULL; + char *buf = NULL; + ssize_t len = -1; + + do + { + alloclen *= 2; + buf = xrealloc(buf, alloclen); + len = readlink(linkname, buf, alloclen-1); + if ( (len != -1) && (len < (alloclen-1)) ) // !error && !overflow + { + buf[len] = '\0'; // readlink() doesn't null-terminate! + retval = xrealloc(buf, (size_t) (len+1)); // shrink it down. + } // if + } while (len >= (alloclen-1)); // loop if we need a bigger buffer. + + return retval; // caller must free() this. +} // MojoPlatform_readlink + + +static void *guaranteeAllocation(void *ptr, size_t len, size_t *_alloclen) +{ + void *retval = NULL; + size_t alloclen = *_alloclen; + if (alloclen > len) + return ptr; + + if (!alloclen) + alloclen = 1; + + while (alloclen <= len) + alloclen *= 2; + + retval = xrealloc(ptr, alloclen); + if (retval != NULL) + *_alloclen = alloclen; + + return retval; +} // guaranteeAllocation + + +// This is a mess, but I'm not sure it can be done more cleanly. +static char *realpathInternal(char *path, const char *cwd, int linkloop) +{ + char *linkname = NULL; + char *retval = NULL; + size_t len = 0; + size_t alloclen = 0; + + if (*path == '/') // absolute path. + { + retval = xstrdup("/"); + path++; + len = 1; + } // if + else // relative path. + { + if (cwd != NULL) + retval = xstrdup(cwd); + else + { + if ((retval = MojoPlatform_currentWorkingDir()) == NULL) + return NULL; + } // else + len = strlen(retval); + } // else + + while (true) + { + struct stat statbuf; + size_t newlen; + + char *nextpath = strchr(path, '/'); + if (nextpath != NULL) + *nextpath = '\0'; + + newlen = strlen(path); + retval = guaranteeAllocation(retval, len + newlen + 2, &alloclen); + strcpy(retval + len, path); + + if (*path == '\0') + retval[--len] = '\0'; // chop ending "/" bit, it gets readded later. + + else if (strcmp(path, ".") == 0) + { + retval[--len] = '\0'; // chop ending "/." bit + newlen = 0; + } // else if + + else if (strcmp(path, "..") == 0) + { + char *ptr; + retval[--len] = '\0'; // chop ending "/.." bit + ptr = strrchr(retval, '/'); + if ((ptr == NULL) || (ptr == retval)) + { + strcpy(retval, "/"); + len = 0; + } // if + else + { + *ptr = '\0'; + len -= (size_t) ((retval+len)-ptr); + } // else + newlen = 0; + } // else if + + // it may be a symlink...check it. + else if (lstat(retval, &statbuf) == -1) + goto realpathInternal_failed; + + else if (S_ISLNK(statbuf.st_mode)) + { + char *newresolve = NULL; + if (linkloop > 255) + goto realpathInternal_failed; + + linkname = MojoPlatform_readlink(retval); + if (linkname == NULL) + goto realpathInternal_failed; + + // chop off symlink name for its cwd. + retval[len] = '\0'; + + // resolve the link... + newresolve = realpathInternal(linkname, retval, linkloop + 1); + if (newresolve == NULL) + goto realpathInternal_failed; + + len = strlen(newresolve); + retval = guaranteeAllocation(retval, len + 2, &alloclen); + strcpy(retval, newresolve); + free(newresolve); + free(linkname); + linkname = NULL; + } // else if + + else + { + len += newlen; + } // else + + if (nextpath == NULL) + break; // holy crap we're done! + else // append a '/' before the next path element. + { + path = nextpath + 1; + retval[len++] = '/'; + retval[len] = '\0'; + } // else + } // while + + // Shrink string if we're using more memory than necessary... + if (alloclen > len+1) + retval = (char *) xrealloc(retval, len+1); + + return retval; + +realpathInternal_failed: + free(linkname); + free(retval); + return NULL; +} // realpathInternal + + +// Rolling my own realpath, even if the runtime has one, since apparently +// the spec is a little flakey, and it can overflow PATH_MAX. On BeOS <= 5, +// we'd have to resort to BPath to do this, too, and I'd rather avoid the C++ +// dependencies and headers. +char *MojoPlatform_realpath(const char *_path) +{ + char *path = xstrdup(_path); + char *retval = realpathInternal(path, NULL, 0); + free(path); + return retval; +} // MojoPlatform_realpath + + +// (Stolen from physicsfs: http://icculus.org/physfs/ ...) +/* + * See where program (bin) resides in the $PATH. Returns a copy of the first + * element in $PATH that contains it, or NULL if it doesn't exist or there + * were other problems. + * + * You are expected to free() the return value when you're done with it. + */ +static char *findBinaryInPath(const char *bin) +{ + const char *_envr = getenv("PATH"); + size_t alloc_size = 0; + char *envr = NULL; + char *exe = NULL; + char *start = NULL; + char *ptr = NULL; + + if ((_envr == NULL) || (bin == NULL)) + return NULL; + + envr = xstrdup(_envr); + start = envr; + + do + { + size_t size; + ptr = strchr(start, ':'); // find next $PATH separator. + if (ptr) + *ptr = '\0'; + + size = strlen(start) + strlen(bin) + 2; + if (size > alloc_size) + { + char *x = (char *) xrealloc(exe, size); + alloc_size = size; + exe = x; + } // if + + // build full binary path... + strcpy(exe, start); + if ((exe[0] == '\0') || (exe[strlen(exe) - 1] != '/')) + strcat(exe, "/"); + strcat(exe, bin); + + if (access(exe, X_OK) == 0) // Exists as executable? We're done. + { + strcpy(exe, start); // i'm lazy. piss off. + free(envr); + return(exe); + } // if + + start = ptr + 1; // start points to beginning of next element. + } while (ptr != NULL); + + if (exe != NULL) + free(exe); + + free(envr); + + return(NULL); // doesn't exist in path. +} // findBinaryInPath + + +char *MojoPlatform_appBinaryPath(void) +{ + const char *argv0 = GArgv[0]; + char *retval = NULL; + + if (strchr(argv0, '/') != NULL) + retval = MojoPlatform_realpath(argv0); // argv[0] contains a path? + else // slow path...have to search the whole $PATH for this one... + { + char *found = findBinaryInPath(argv0); + if (found) + retval = MojoPlatform_realpath(found); + free(found); + } // else + + return retval; +} // MojoPlatform_appBinaryPath + + +char *MojoPlatform_homedir(void) +{ + const char *envr = getenv("HOME"); + return xstrdup(envr ? envr : "/"); +} // MojoPlatform_homedir + + +// This implementation is a bit naive. +char *MojoPlatform_locale(void) +{ + char *retval = NULL; + char *ptr = NULL; + const char *envr = getenv("LANG"); + if (envr != NULL) + { + retval = xstrdup(envr); + ptr = strchr(retval, '.'); // chop off encoding if explicitly listed. + if (ptr != NULL) + *ptr = '\0'; + ptr = strchr(retval, '@'); // chop off extra bits if explicitly listed. + if (ptr != NULL) + *ptr = '\0'; + } // if + + #if PLATFORM_MACOSX + else if (CFLocaleCreateCanonicalLocaleIdentifierFromString == NULL) + retval = NULL; // !!! FIXME: 10.2 compatibility? + + else if (CFLocaleCreateCanonicalLocaleIdentifierFromString != NULL) + { + CFPropertyListRef languages = CFPreferencesCopyAppValue( + CFSTR("AppleLanguages"), + kCFPreferencesCurrentApplication); + if (languages != NULL) + { + CFStringRef primary = CFArrayGetValueAtIndex(languages, 0); + if (primary != NULL) + { + CFStringRef locale = + CFLocaleCreateCanonicalLocaleIdentifierFromString( + kCFAllocatorDefault, primary); + if (locale != NULL) + { + const CFIndex len = (CFStringGetLength(locale) + 1) * 6; + ptr = (char*) xmalloc(len); + CFStringGetCString(locale, ptr, len, kCFStringEncodingUTF8); + CFRelease(locale); + retval = xrealloc(ptr, strlen(ptr) + 1); + // !!! FIXME: this may not be 100% right, but change + // !!! FIXME: xx-YY to xx_YY (lang_country). + if (retval[2] == '-') + retval[2] = '_'; + if (retval[3] == '-') + retval[3] = '_'; + } // if + } // if + CFRelease(languages); + } // if + } // else if + #endif + + return retval; +} // MojoPlatform_locale + + +char *MojoPlatform_osType(void) +{ +#if PLATFORM_MACOSX + return xstrdup("macosx"); +#elif PLATFORM_BEOS + return xstrdup("beos"); // !!! FIXME: zeta? haiku? +#elif defined(linux) || defined(__linux) || defined(__linux__) + return xstrdup("linux"); +#elif defined(__FreeBSD__) || defined(__DragonFly__) + return xstrdup("freebsd"); +#elif defined(__NetBSD__) + return xstrdup("netbsd"); +#elif defined(__OpenBSD__) + return xstrdup("openbsd"); +#elif defined(bsdi) || defined(__bsdi) || defined(__bsdi__) + return xstrdup("bsdi"); +#elif defined(_AIX) + return xstrdup("aix"); +#elif defined(hpux) || defined(__hpux) || defined(__hpux__) + return xstrdup("hpux"); +#elif defined(sgi) || defined(__sgi) || defined(__sgi__) || defined(_SGI_SOURCE) + return xstrdup("irix"); +#elif defined(sun) + return xstrdup("solaris"); +#else +# error Please define your platform. + return NULL; +#endif +} // MojoPlatform_ostype + + +char *MojoPlatform_osVersion() +{ +#if PLATFORM_MACOSX + SInt32 ver, major, minor, patch; + boolean convert = false; + char *buf = NULL; + char dummy = 0; + int len = 0; + + if (Gestalt(gestaltSystemVersion, &ver) != noErr) + return NULL; + + if (ver < 0x1030) + convert = true; // split (ver) into (major),(minor),(patch). + else + { + // presumably this won't fail. But if it does, we'll just use the + // original version value. This might cut the value--10.12.11 will + // come out to 10.9.9, for example--but it's better than nothing. + if (Gestalt(gestaltSystemVersionMajor, &major) != noErr) + convert = true; + if (Gestalt(gestaltSystemVersionMinor, &minor) != noErr) + convert = true; + if (Gestalt(gestaltSystemVersionBugFix, &patch) != noErr) + convert = true; + } /* else */ + + if (convert) + { + major = ((ver & 0xFF00) >> 8); + major = (((major / 16) * 10) + (major % 16)); + minor = ((ver & 0xF0) >> 4); + patch = (ver & 0xF); + } /* if */ + + len = snprintf(&dummy, sizeof (dummy), "%d.%d.%d", + (int) major, (int) minor, (int) patch); + buf = (char *) xmalloc(len+1); + snprintf(buf, len+1, "%d.%d.%d", (int) major, (int) minor, (int) patch); + return buf; + +#else + // This information may or may not actually MEAN anything. On BeOS, it's + // useful, but on other things, like Linux, it'll give you the kernel + // version, which doesn't necessarily help. + struct utsname un; + if (uname(&un) == 0) + return xstrdup(un.release); +#endif + + return NULL; +} // MojoPlatform_osversion + + +void MojoPlatform_sleep(uint32 ticks) +{ + usleep(ticks * 1000); +} // MojoPlatform_sleep + + +uint32 MojoPlatform_ticks(void) +{ + uint64 then_ms, now_ms; + struct timeval now; + gettimeofday(&now, NULL); + then_ms = (((uint64) startup_time.tv_sec) * 1000) + + (((uint64) startup_time.tv_usec) / 1000); + now_ms = (((uint64) now.tv_sec) * 1000) + (((uint64) now.tv_usec) / 1000); + return ((uint32) (now_ms - then_ms)); +} // MojoPlatform_ticks + + +void MojoPlatform_die(void) +{ + _exit(86); +} // MojoPlatform_die + + +boolean MojoPlatform_unlink(const char *fname) +{ + boolean retval = false; + struct stat statbuf; + if (lstat(fname, &statbuf) != -1) + { + if (S_ISDIR(statbuf.st_mode)) + retval = (rmdir(fname) == 0); + else + retval = (unlink(fname) == 0); + } // if + return retval; +} // MojoPlatform_unlink + + +boolean MojoPlatform_symlink(const char *src, const char *dst) +{ + return (symlink(dst, src) == 0); +} // MojoPlatform_symlink + + +boolean MojoPlatform_mkdir(const char *path, uint16 perms) +{ + // !!! FIXME: error if already exists? + return (mkdir(path, perms) == 0); +} // MojoPlatform_mkdir + + +boolean MojoPlatform_rename(const char *src, const char *dst) +{ + return (rename(src, dst) == 0); +} // MojoPlatform_rename + + +boolean MojoPlatform_exists(const char *dir, const char *fname) +{ + boolean retval = false; + if (fname == NULL) + retval = (access(dir, F_OK) != -1); + else + { + const size_t len = strlen(dir) + strlen(fname) + 2; + char *buf = (char *) xmalloc(len); + snprintf(buf, len, "%s/%s", dir, fname); + retval = (access(buf, F_OK) != -1); + free(buf); + } // else + return retval; +} // MojoPlatform_exists + + +boolean MojoPlatform_writable(const char *fname) +{ + return (access(fname, W_OK) == 0); +} // MojoPlatform_writable + + +boolean MojoPlatform_isdir(const char *dir) +{ + boolean retval = false; + struct stat statbuf; + if (lstat(dir, &statbuf) != -1) + { + if (S_ISDIR(statbuf.st_mode)) + retval = true; + } // if + return retval; +} // MojoPlatform_isdir + + +boolean MojoPlatform_issymlink(const char *dir) +{ + boolean retval = false; + struct stat statbuf; + if (lstat(dir, &statbuf) != -1) + { + if (S_ISLNK(statbuf.st_mode)) + retval = true; + } // if + return retval; +} // MojoPlatform_issymlink + + +boolean MojoPlatform_isfile(const char *dir) +{ + boolean retval = false; + struct stat statbuf; + if (lstat(dir, &statbuf) != -1) + { + if (S_ISREG(statbuf.st_mode)) + retval = true; + } // if + return retval; +} // MojoPlatform_isfile + + +void *MojoPlatform_stdout(void) +{ + int *retval = (int *) xmalloc(sizeof (int)); + *retval = 1; // stdout. + return retval; +} // MojoPlatform_stdout + + +void *MojoPlatform_open(const char *fname, uint32 flags, uint16 mode) +{ + void *retval = NULL; + int fd = -1; + int unixflags = 0; + + if ((flags & MOJOFILE_READ) && (flags & MOJOFILE_WRITE)) + unixflags |= O_RDWR; + else if (flags & MOJOFILE_READ) + unixflags |= O_RDONLY; + else if (flags & MOJOFILE_WRITE) + unixflags |= O_WRONLY; + else + return NULL; // have to specify SOMETHING. + + if (flags & MOJOFILE_APPEND) + unixflags |= O_APPEND; + if (flags & MOJOFILE_TRUNCATE) + unixflags |= O_TRUNC; + if (flags & MOJOFILE_CREATE) + unixflags |= O_CREAT; + if (flags & MOJOFILE_EXCLUSIVE) + unixflags |= O_EXCL; + + fd = open(fname, unixflags, (mode_t) mode); + if (fd != -1) + { + int *intptr = (int *) xmalloc(sizeof (int)); + *intptr = fd; + retval = intptr; + } // if + + return retval; +} // MojoPlatform_open + + +int64 MojoPlatform_read(void *fd, void *buf, uint32 bytes) +{ + return (int64) read(*((int *) fd), buf, bytes); +} // MojoPlatform_read + + +int64 MojoPlatform_write(void *fd, const void *buf, uint32 bytes) +{ + return (int64) write(*((int *) fd), buf, bytes); +} // MojoPlatform_write + + +int64 MojoPlatform_tell(void *fd) +{ + return (int64) lseek(*((int *) fd), 0, SEEK_CUR); +} // MojoPlatform_tell + + +int64 MojoPlatform_seek(void *fd, int64 offset, MojoFileSeek whence) +{ + int unixwhence; + switch (whence) + { + case MOJOSEEK_SET: unixwhence = SEEK_SET; break; + case MOJOSEEK_CURRENT: unixwhence = SEEK_CUR; break; + case MOJOSEEK_END: unixwhence = SEEK_END; break; + default: return -1; // !!! FIXME: maybe just abort? + } // switch + + return (int64) lseek(*((int *) fd), offset, unixwhence); +} // MojoPlatform_seek + + +int64 MojoPlatform_flen(void *fd) +{ + struct stat statbuf; + if (fstat(*((int *) fd), &statbuf) == -1) + return -1; + return((int64) statbuf.st_size); +} // MojoPlatform_flen + + +boolean MojoPlatform_flush(void *fd) +{ + return (fsync(*((int *) fd)) == 0); +} // MojoPlatform_flush + + +boolean MojoPlatform_close(void *fd) +{ + boolean retval = false; + int handle = *((int *) fd); + + // don't close stdin, stdout, or stderr. + if ((handle == 0) || (handle == 1) || (handle == 2)) + { + free(fd); + return true; + } // if + + if (close(handle) == 0) + free(fd); + return retval; +} // MojoPlatform_close + + +void *MojoPlatform_opendir(const char *dirname) +{ + return opendir(dirname); +} // MojoPlatform_opendir + + +char *MojoPlatform_readdir(void *_dirhandle) +{ + DIR *dirhandle = (DIR *) _dirhandle; + struct dirent *dent = NULL; + + while ((dent = readdir(dirhandle)) != NULL) + { + if (strcmp(dent->d_name, ".") == 0) + continue; // skip these. + + else if (strcmp(dent->d_name, "..") == 0) + continue; // skip these, too. + + else + break; // found a valid entry, go on. + } // while + + return ((dent) ? xstrdup(dent->d_name) : NULL); +} // MojoPlatform_readdir + + +void MojoPlatform_closedir(void *dirhandle) +{ + closedir((DIR *) dirhandle); +} // MojoPlatform_closedir + + +int64 MojoPlatform_filesize(const char *fname) +{ + int retval = -1; + struct stat statbuf; + if ( (lstat(fname, &statbuf) != -1) && (S_ISREG(statbuf.st_mode)) ) + retval = (int64) statbuf.st_size; + return retval; +} // MojoPlatform_filesize + + +boolean MojoPlatform_perms(const char *fname, uint16 *p) +{ + boolean retval = false; + struct stat statbuf; + if (stat(fname, &statbuf) != -1) + { + *p = statbuf.st_mode; + retval = true; + } // if + return retval; +} // MojoPlatform_perms + + +uint16 MojoPlatform_defaultFilePerms(void) +{ + return 0644; +} // MojoPlatform_defaultFilePerms + + +uint16 MojoPlatform_defaultDirPerms(void) +{ + return 0755; +} // MojoPlatform_defaultDirPerms + + +uint16 MojoPlatform_makePermissions(const char *str, boolean *_valid) +{ + uint16 retval = 0644; + boolean valid = true; + if (str != NULL) + { + char *endptr = NULL; + long strval = strtol(str, &endptr, 8); + // complete string was a valid number? + valid = ((*endptr == '\0') && (strval >= 0) && (strval <= 0xFFFF)); + if (valid) + retval = (uint16) strval; + } // if + + *_valid = valid; + return retval; +} // MojoPlatform_makePermissions + + +boolean MojoPlatform_chmod(const char *fname, uint16 p) +{ + return (chmod(fname, p) != -1); +} // MojoPlatform_chmod + + +char *MojoPlatform_findMedia(const char *uniquefile) +{ +#if MOJOSETUP_HAVE_SYS_UCRED_H + int i = 0; + struct statfs *mntbufp = NULL; + int mounts = getmntinfo(&mntbufp, MNT_WAIT); + for (i = 0; i < mounts; i++) + { + const char *mnt = mntbufp[i].f_mntonname; + if (MojoPlatform_exists(mnt, uniquefile)) + return xstrdup(mnt); + } // for + +#elif MOJOSETUP_HAVE_MNTENT_H + FILE *mounts = setmntent("/etc/mtab", "r"); + if (mounts != NULL) + { + struct mntent *ent = NULL; + while ((ent = getmntent(mounts)) != NULL) + { + const char *mnt = ent->mnt_dir; + if (MojoPlatform_exists(mnt, uniquefile)) + { + endmntent(mounts); + return xstrdup(mnt); + } // if + } // while + endmntent(mounts); + } // if + +#elif MOJOSETUP_HAVE_SYS_MNTTAB_H + FILE *mounts = fopen(MNTTAB, "r"); + if (mounts != NULL) + { + struct mnttab ent; + while (getmntent(mounts, &ent) == 0) + { + const char *mnt = ent.mnt_mountp; + if (MojoPlatform_exists(mnt, uniquefile)) + { + fclose(mounts); + return xstrdup(mnt); + } // if + } // while + fclose(mounts); + } // if + +#else +# warning No mountpoint detection on this platform... +#endif + + return NULL; +} // MojoPlatform_findMedia + + +void MojoPlatform_log(const char *str) +{ + syslog(LOG_USER | LOG_INFO, "%s", str); + +#if PLATFORM_MACOSX + // put to stdout too, if this isn't the stdio UI. + // This will let the info show up in /Applications/Utilities/Console.app + if ((GGui != NULL) && (strcmp(GGui->name(), "stdio") != 0)) + printf("%s\n", str); +#endif +} // MojoPlatform_log + + +static boolean testTmpDir(const char *dname, char *buf, + size_t len, const char *tmpl) +{ + boolean retval = false; + if ( (dname != NULL) && (access(dname, R_OK | W_OK | X_OK) == 0) ) + { + struct stat statbuf; + if ( (stat(dname, &statbuf) == 0) && (S_ISDIR(statbuf.st_mode)) ) + { + const size_t rc = snprintf(buf, len, "%s/%s", dname, tmpl); + if (rc < len) + retval = true; + } // if + } // if + + return retval; +} // testTmpDir + + +void *MojoPlatform_dlopen(const uint8 *img, size_t len) +{ + // Write the image to a temporary file, dlopen() it, and delete it + // immediately. The inode will be kept around by the Unix kernel until + // we either dlclose() it or the process terminates, but we don't have + // to worry about polluting the /tmp directory or cleaning this up later. + // We'll try every reasonable temp directory location until we find one + // that works, in case (say) one lets us write a file, but there + // isn't enough space for the data. + + // /dev/shm may be able to avoid writing to physical media...try it first. + const char *dirs[] = { "/dev/shm", getenv("TMPDIR"), P_tmpdir, "/tmp" }; + const char *tmpl = "mojosetup-plugin-XXXXXX"; + char fname[PATH_MAX]; + void *retval = NULL; + int i = 0; + + if (dlopen == NULL) // weak symbol on older Mac OS X + return NULL; + + #ifndef P_tmpdir // glibc defines this, maybe others. + #define P_tmpdir NULL + #endif + + for (i = 0; (i < STATICARRAYLEN(dirs)) && (retval == NULL); i++) + { + if (testTmpDir(dirs[i], fname, sizeof (fname), tmpl)) + { + const int fd = mkstemp(fname); + if (fd != -1) + { + const size_t bw = write(fd, img, len); + const int rc = close(fd); + if ((bw == len) && (rc != -1)) + retval = dlopen(fname, DLOPEN_ARGS); + unlink(fname); + } // if + } // if + } // for + + return retval; +} // MojoPlatform_dlopen + + +void *MojoPlatform_dlsym(void *lib, const char *sym) +{ + #if PLATFORM_MACOSX + if (dlsym == NULL) return NULL; // weak symbol on older Mac OS X + #endif + + return dlsym(lib, sym); +} // MojoPlatform_dlsym + + +void MojoPlatform_dlclose(void *lib) +{ + #if PLATFORM_MACOSX + if (dlclose == NULL) return; // weak symbol on older Mac OS X + #endif + + dlclose(lib); +} // MojoPlatform_dlclose + + +#if !PLATFORM_MACOSX && !PLATFORM_BEOS +static int runScriptString(const char *str, boolean devnull, const char **_argv) +{ + int retval = 127; + pid_t pid = 0; + int pipes[2]; + + if (pipe(pipes) == -1) + return retval; + + pid = fork(); + if (pid == -1) // -1 == fork() failed. + { + close(pipes[0]); + close(pipes[1]); + return retval; + } // if + + else if (pid == 0) // we're the child process. + { + int argc = 0; + const char **argv = NULL; + + close(pipes[1]); // close the writing end. + dup2(pipes[0], 0); // replace stdin. + if (devnull) + { + dup2(open("/dev/null", O_WRONLY), 1); // replace stdout + dup2(open("/dev/null", O_WRONLY), 2); // replace stderr + } // if + + while (_argv[argc++] != NULL) { /* no-op */ } + argv = (const char **) xmalloc(sizeof (char *) * argc+3); + argv[0] = "/bin/sh"; + argv[1] = "-s"; + for (argc = 0; _argv[argc] != NULL; argc++) + argv[argc+2] = _argv[argc]; + argv[argc+2] = NULL; + + execv(argv[0], (char **) argv); + _exit(retval); // uhoh, failed. + } // else if + + else // we're the parent (pid == child process id). + { + int status = 0; + size_t len = strlen(str); + boolean failed = false; + close(pipes[0]); // close the reading end. + failed |= (write(pipes[1], str, len) != len); + failed |= (close(pipes[1]) == -1); + + // !!! FIXME: we need a GGui->pump() or something here if we'll block. + if (waitpid(pid, &status, 0) != -1) + { + if (WIFEXITED(status)) + retval = WEXITSTATUS(status); + } // if + } // else + + return retval; +} // runScriptString + + +static int runScript(const char *script, boolean devnull, const char **argv) +{ + int retval = 127; + char *str = NULL; + MojoInput *in = MojoInput_newFromArchivePath(GBaseArchive, script); + if (in != NULL) + { + int64 len = in->length(in); + if (len > 0) + { + str = (char *) xmalloc(len + 1); + if (in->read(in, str, len) == len) + str[len] = '\0'; + else + { + free(str); + str = NULL; + } // else + } // if + + in->close(in); + } // if + + if (str != NULL) + retval = runScriptString(str, devnull, argv); + + free(str); + return retval; +} // runScript + + +static char *shellEscape(const char *str) +{ + size_t len = 0; + char *retval = NULL; + const char *ptr = NULL; + char *dst = NULL; + + for (ptr = str; *ptr; ptr++) + len += (*ptr == '\'') ? 4 : 1; + + retval = (char *) xmalloc(len + 3); // +2 single quotes and a null char. + dst = retval; + *(dst++) = '\''; + + for (ptr = str; *ptr; ptr++) + { + const char ch = *ptr; + if (ch != '\'') + *(dst++) = ch; + else + { + *(dst++) = '\''; + *(dst++) = '\\'; + *(dst++) = '\''; + *(dst++) = '\''; + } // else + } // for + + *(dst++) = '\''; + *(dst++) = '\0'; + return retval; +} // shellEscape + + +static boolean unix_launchXdgUtil(const char *util, const char **argv) +{ + char *path = findBinaryInPath(util); + int rc = 0; + + // !!! FIXME: do I really need to be using system() and + // !!! FIXME: suffering with shell escaping? + + if (path != NULL) // it's installed on the system; use that. + { + char *cmd = shellEscape(util); + char *tmp = NULL; + int i; + + // just in case there's a space in the $PATH entry... + tmp = shellEscape(path); + free(path); + path = tmp; + + for (i = 0; argv[i]; i++) + { + char *escaped = shellEscape(argv[i]); + tmp = format("%0 %1", cmd, escaped); + free(escaped); + free(cmd); + cmd = tmp; + } // for + + tmp = format("%0/%1 >/dev/null 2>&1", path, cmd); + free(cmd); + cmd = tmp; + rc = system(cmd); + logDebug("system( %0 ) returned %1", cmd, numstr(rc)); + free(cmd); + free(path); + } // if + + else // try our fallback copy of xdg-utils in GBaseArchive? + { + char *script = format("meta/xdg-utils/%0", util); + rc = runScript(script, true, argv); + logDebug("internal script '%0' returned %1", script, numstr(rc)); + free(script); + } // if + + return (rc == 0); +} // unix_launchXdgUtil + + +static boolean unix_launchBrowser(const char *url) +{ + const char *argv[] = { url, NULL }; + return unix_launchXdgUtil("xdg-open", argv); +} // unix_launchBrowser + + +boolean xdgDesktopMenuItem(const char *action, const char *data) +{ + // xdg-utils, being shell scripts, don't do well with paths containing + // spaces. We attempt to mitigate this by chdir()'ing to the directory + // with the file to install. + const char *ptr = strrchr(data, '/'); + boolean retval = false; + if (ptr == NULL) + { + const char *argv[] = { action, data, NULL }; + retval = unix_launchXdgUtil("xdg-desktop-menu", argv); + } + else + { + char *working_dir = MojoPlatform_currentWorkingDir(); + if (working_dir != NULL) + { + char *cpy = xstrdup(data); + char *fname = cpy + ((size_t)(ptr-data)); + const char *argv[] = { action, fname+1, NULL }; + *(fname++) = '\0'; + if (chdir(cpy) == 0) + { + retval = unix_launchXdgUtil("xdg-desktop-menu", argv); + if (chdir(working_dir) == -1) // deep trouble! + fatal("Failed to chdir to '%0'", working_dir); + } // if + free(cpy); + free(working_dir); + } // if + } // else + return retval; +} // xdgDesktopMenuItem +#endif + + +boolean MojoPlatform_launchBrowser(const char *url) +{ +#if PLATFORM_MACOSX + CFURLRef cfurl = CFURLCreateWithBytes(NULL, (const UInt8 *) url, + strlen(url), kCFStringEncodingUTF8, NULL); + const OSStatus err = LSOpenCFURLRef(cfurl, NULL); + CFRelease(cfurl); + return (err == noErr); +#elif PLATFORM_BEOS + extern int beos_launchBrowser(const char *url); + return beos_launchBrowser(url) ? true : false; +#else + return unix_launchBrowser(url); +#endif +} // MojoPlatform_launchBrowser + + +boolean MojoPlatform_installDesktopMenuItem(const char *data) +{ +#if PLATFORM_MACOSX || PLATFORM_BEOS + // !!! FIXME: write me. + STUBBED("desktop menu support"); + return false; +#else + return xdgDesktopMenuItem("install", data); +#endif +} // MojoPlatform_installDesktopMenuItem + + +boolean MojoPlatform_uninstallDesktopMenuItem(const char *data) +{ +#if PLATFORM_MACOSX || PLATFORM_BEOS + // !!! FIXME: write me. + STUBBED("desktop menu support"); + return false; +#else + return xdgDesktopMenuItem("uninstall", data); +#endif +} // MojoPlatform_uninstallDesktopMenuItem + + +#if SUPPORT_MULTIARCH +void MojoPlatform_switchBin(const uint8 *img, size_t len) +{ + const char *dirs[] = { "/dev/shm", getenv("TMPDIR"), P_tmpdir, "/tmp" }; + const char *tmpl = "mojosetup-switch-bin-XXXXXX"; + char fname[PATH_MAX]; + int i = 0; + + for (i = 0; i < STATICARRAYLEN(dirs); i++) + { + if (testTmpDir(dirs[i], fname, len, tmpl)) + { + const int fd = mkstemp(fname); + if (fd != -1) + { + const size_t bw = write(fd, img, len); + const int rc = close(fd); + if ((bw == len) && (rc != -1)) + { + const char *tmpstr = GArgv[0]; + chmod(fname, 0700); + GArgv[0] = fname; + execv(fname, (char * const *) GArgv); + // only hits this line if process wasn't replaced. + GArgv[0] = tmpstr; + } // if + unlink(fname); + } // if + } // if + } // for + + // couldn't replace current process. +} // MojoPlatform_switchBin +#endif + + +boolean MojoPlatform_spawnTerminal(void) +{ +#if PLATFORM_BEOS + #error write me. + // "/boot/apps/Terminal" + +#elif PLATFORM_MACOSX + // this is nasty...it'd be nice if Terminal.app just took command lines. + boolean failed = false; + FILE *io = NULL; + char *cmd = NULL; + char *ptr = NULL; + char *binpath = MojoPlatform_appBinaryPath(); + size_t len = (strlen(binpath) * 5) + 3; + int i = 0; + for (i = 1; i < GArgc; i++) + len += (strlen(GArgv[i]) * 5) + 3; + + ptr = cmd = (char *) xmalloc(len+1); + for (i = 0; i < GArgc; i++) + { + const char *str = (i == 0) ? binpath : GArgv[i]; + if (i != 0) + *(ptr++) = ' '; + *(ptr++) = '\''; + while (*str) + { + const char ch = *(str++); + if (ch == '\'') + { + // have to escape for both AppleScript and /bin/sh. :/ + *(ptr++) = '\''; + *(ptr++) = '\\'; + *(ptr++) = '\\'; + *(ptr++) = '\''; + *(ptr++) = '\''; + } // if + else + { + *(ptr++) = ch; + } // else + } // while + *(ptr++) = '\''; + } // for + + free(binpath); + + *ptr = '\0'; + ptr = format( + "ignoring application responses\n" + "tell application \"Terminal\" to do script \"clear ; echo %0 -notermspawn=1 ; exit\"\n" + "tell application \"Terminal\" to tell its front window to set its custom title to \"MojoSetup\"\n" + "tell application \"Terminal\" to tell its front window to set its title displays device name to false\n" + "tell application \"Terminal\" to tell its front window to set its title displays shell path to false\n" + "tell application \"Terminal\" to tell its front window to set its title displays window size to false\n" + "tell application \"Terminal\" to tell its front window to set its title displays file name to false\n" + "tell application \"Terminal\" to tell its front window to set its title displays custom title to true\n" + "tell application \"Terminal\" to activate\n" + "end ignoring\n", cmd); + + free(cmd); + + io = popen("osascript -", "w"); + if (io == NULL) + failed = true; + else + { + failed |= (fwrite(ptr, strlen(ptr), 1, io) != 1); + failed |= (pclose(io) != 0); + } // else + + free(ptr); + + if (!failed) + exit(0); + + // we'll return false at the end to note we failed. + +#else + + // urgh + static const char *terms[] = { + "gnome-terminal", "konsole", "kvt", "xterm", "rxvt", + "dtterm", "eterm", "Eterm", "aterm" + }; + + char *binpath = MojoPlatform_appBinaryPath(); + const char *tryfirst = NULL; + const int max_added_args = 5; + const unsigned int argc = GArgc + max_added_args; + const char **argv = NULL; + int i = 0; + int startarg = 0; + + if (getenv("DISPLAY") == NULL) + return false; // don't bother if we don't have X. + + else if (getenv("GNOME_DESKTOP_SESSION_ID") != NULL) // this is gnome? + tryfirst = "gnome-terminal"; + + else if (getenv("KDE_FULL_SESSION") != NULL) // this KDE >= 3.2? + tryfirst = "konsole"; + + argv = xmalloc((argc + 1) * sizeof(char *)); + + for (i = -1; i < ((int) STATICARRAYLEN(terms)); i++) + { + int is_gnome_term = false; + int argi = 0; + const char *trythis = (i == -1) ? tryfirst : terms[i]; + if (trythis == NULL) + continue; + + // !!! FIXME: hack. I'm sure other terminal emulators have needs, too. + is_gnome_term = (strcmp(trythis, "gnome-terminal") == 0); + + argv[argi++] = trythis; + argv[argi++] = is_gnome_term ? "--title" : "-title"; + argv[argi++] = "MojoSetup"; + argv[argi++] = is_gnome_term ? "-x" : "-e"; + argv[argi++] = binpath; + argv[argi++] = "-notermspawn=1"; + assert(argi-1 <= max_added_args); + + for (startarg = argi-1; argi <= argc; argi++) // include ending NULL. + { + argv[argi] = GArgv[argi - startarg]; + if (argv[argi] == NULL) + break; + } // for + + execvp(trythis, (char * const *) argv); + } // for + + // Still here? We failed. Mankind is wiped out in the Robot Wars. + + free(argv); + free(binpath); +#endif + + return false; +} // MojoPlatform_spawnTerminal + + +uint8 *MojoPlatform_decodeImage(const uint8 *data, uint32 size, + uint32 *w, uint32 *h) +{ + // !!! FIXME: try Quartz APIs on Mac OS X? + return NULL; // no platform-specific APIs. Just use the built-in ones. +} // MojoPlatform_decodeImage + + +uint64 MojoPlatform_getuid(void) +{ + return (uint64) getuid(); +} // MojoPlatform_getuid + + +uint64 MojoPlatform_geteuid(void) +{ + return (uint64) geteuid(); +} // MojoPlatform_geteuid + + +uint64 MojoPlatform_getgid(void) +{ + return (uint64) getgid(); +} // MojoPlatform_getgid + + +static void signal_catcher(int sig) +{ + static boolean first_shot = true; + if (first_shot) + { + first_shot = false; + logError("Caught signal #%0", numstr(sig)); + } // if +} // signal_catcher + +static void crash_catcher(int sig) +{ + signal_catcher(sig); + MojoSetup_crashed(); +} // crash_catcher + +static void termination_catcher(int sig) +{ + signal_catcher(sig); + MojoSetup_terminated(); +} // termination_catcher + + +static void install_signals(void) +{ + static int crash_sigs[] = { SIGSEGV,SIGILL,SIGBUS,SIGFPE,SIGTRAP,SIGABRT }; + static int term_sigs[] = { SIGQUIT, SIGINT, SIGTERM, SIGHUP }; + static int ignore_sigs[] = { SIGPIPE }; + int i; + + for (i = 0; i < STATICARRAYLEN(crash_sigs); i++) + signal(crash_sigs[i], crash_catcher); + for (i = 0; i < STATICARRAYLEN(term_sigs); i++) + signal(term_sigs[i], termination_catcher); + for (i = 0; i < STATICARRAYLEN(ignore_sigs); i++) + signal(ignore_sigs[i], SIG_IGN); +} // install_signals + + +int main(int argc, char **argv) +{ + gettimeofday(&startup_time, NULL); + openlog("mojosetup", LOG_PID, LOG_USER); + atexit(closelog); + install_signals(); + return MojoSetup_main(argc, argv); +} // main + +#endif // PLATFORM_UNIX + +// end of unix.c ... + diff --git a/mk/linux/mojosetup/platform_windows.c b/mk/linux/mojosetup/platform_windows.c new file mode 100644 index 00000000..142838a4 --- /dev/null +++ b/mk/linux/mojosetup/platform_windows.c @@ -0,0 +1,1610 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#if PLATFORM_WINDOWS + +#include "platform.h" +#include "gui.h" + +// Much of this file was lifted from PhysicsFS, http://icculus.org/physfs/ ... +// I wrote all this code under the same open source license, and own the +// copyright on it anyhow, so transferring it here is "safe". + +// Forcibly disable UNICODE, since we manage this ourselves. +#ifdef UNICODE +#undef UNICODE +#endif + +#define WIN32_LEAN_AND_MEAN 1 +#include +#include + +// !!! FIXME: this is for stdio redirection crap. +#include +#include + +// is Win95/Win98/WinME? (no Unicode, etc) +static boolean osIsWin9x = false; +static uint32 osMajorVer = 0; +static uint32 osMinorVer = 0; +static uint32 osBuildVer = 0; + +static uint32 startupTime = 0; + +// These allocation macros are much more complicated in PhysicsFS. +#define smallAlloc(x) xmalloc(x) +#define smallFree(x) free(x) + +// ...so is this. +#define BAIL_IF_MACRO(cond, err, ret) if (cond) return ret; +#define BAIL_MACRO(err, ret) return ret; + +#define LOWORDER_UINT64(pos) ((uint32) (pos & 0xFFFFFFFF)) +#define HIGHORDER_UINT64(pos) ((uint32) ((pos >> 32) & 0xFFFFFFFF)) + +// Users without the platform SDK don't have this defined. The original docs +// for SetFilePointer() just said to compare with 0xFFFFFFFF, so this should +// work as desired. +#ifndef INVALID_SET_FILE_POINTER +#define INVALID_SET_FILE_POINTER 0xFFFFFFFF +#endif + +// just in case... +#ifndef INVALID_FILE_ATTRIBUTES +#define INVALID_FILE_ATTRIBUTES 0xFFFFFFFF +#endif + +// Not defined before the Vista SDK. +#ifndef IO_REPARSE_TAG_SYMLINK +#define IO_REPARSE_TAG_SYMLINK 0xA000000C +#endif + +// This is in shlobj.h, but we can't include it due to universal.h conflicts. +#ifndef CSIDL_PERSONAL +#define CSIDL_PERSONAL 0x0005 +#endif + +// This is in shlobj.h, but we can't include it due to universal.h conflicts. +#ifndef SHGFP_TYPE_CURRENT +#define SHGFP_TYPE_CURRENT 0x0000 +#endif + + +// these utf-8 functions may move to mojosetup.c some day... + +void utf8ToUcs2(const char *src, uint16 *dst, uint64 len) +{ + len -= sizeof (uint16); // save room for null char. + while (len >= sizeof (uint16)) + { + uint32 cp = utf8codepoint(&src); + if (cp == 0) + break; + else if (cp == UNICODE_BOGUS_CHAR_VALUE) + cp = UNICODE_BOGUS_CHAR_CODEPOINT; + + // !!! FIXME: UTF-16 surrogates? + if (cp > 0xFFFF) + cp = UNICODE_BOGUS_CHAR_CODEPOINT; + + *(dst++) = cp; + len -= sizeof (uint16); + } // while + + *dst = 0; +} // utf8ToUcs2 + +static void utf8fromcodepoint(uint32 cp, char **_dst, uint64 *_len) +{ + char *dst = *_dst; + uint64 len = *_len; + + if (len == 0) + return; + + if (cp > 0x10FFFF) + cp = UNICODE_BOGUS_CHAR_CODEPOINT; + else if ((cp == 0xFFFE) || (cp == 0xFFFF)) // illegal values. + cp = UNICODE_BOGUS_CHAR_CODEPOINT; + else + { + // There are seven "UTF-16 surrogates" that are illegal in UTF-8. + switch (cp) + { + case 0xD800: + case 0xDB7F: + case 0xDB80: + case 0xDBFF: + case 0xDC00: + case 0xDF80: + case 0xDFFF: + cp = UNICODE_BOGUS_CHAR_CODEPOINT; + } // switch + } // else + + // Do the encoding... + if (cp < 0x80) + { + *(dst++) = (char) cp; + len--; + } // if + + else if (cp < 0x800) + { + if (len < 2) + len = 0; + else + { + *(dst++) = (char) ((cp >> 6) | 128 | 64); + *(dst++) = (char) (cp & 0x3F) | 128; + len -= 2; + } // else + } // else if + + else if (cp < 0x10000) + { + if (len < 3) + len = 0; + else + { + *(dst++) = (char) ((cp >> 12) | 128 | 64 | 32); + *(dst++) = (char) ((cp >> 6) & 0x3F) | 128; + *(dst++) = (char) (cp & 0x3F) | 128; + len -= 3; + } // else + } // else if + + else + { + if (len < 4) + len = 0; + else + { + *(dst++) = (char) ((cp >> 18) | 128 | 64 | 32 | 16); + *(dst++) = (char) ((cp >> 12) & 0x3F) | 128; + *(dst++) = (char) ((cp >> 6) & 0x3F) | 128; + *(dst++) = (char) (cp & 0x3F) | 128; + len -= 4; + } // else if + } // else + + *_dst = dst; + *_len = len; +} // utf8fromcodepoint + +#define UTF8FROMTYPE(typ, src, dst, len) \ + len--; \ + while (len) \ + { \ + const uint32 cp = (uint32) *(src++); \ + if (cp == 0) break; \ + utf8fromcodepoint(cp, &dst, &len); \ + } \ + *dst = '\0'; \ + +void utf8FromUcs2(const uint16 *src, char *dst, uint64 len) +{ + UTF8FROMTYPE(uint64, src, dst, len); +} // utf8FromUcs4 + +#define UTF8_TO_UNICODE_STACK_MACRO(w_assignto, str) { \ + if (str == NULL) \ + w_assignto = NULL; \ + else { \ + const uint32 len = (uint32) ((strlen(str) * 4) + 1); \ + w_assignto = (WCHAR *) smallAlloc(len); \ + if (w_assignto != NULL) \ + utf8ToUcs2(str, (uint16 *) w_assignto, len); \ + } \ +} \ + +static uint32 wStrLen(const WCHAR *wstr) +{ + uint32 len = 0; + while (*(wstr++)) + len++; + return len; +} // wStrLen + + +static char *unicodeToUtf8Heap(const WCHAR *w_str) +{ + char *retval = NULL; + if (w_str != NULL) + { + void *ptr = NULL; + const uint32 len = (wStrLen(w_str) * 4) + 1; + retval = (char *) xmalloc(len); + utf8FromUcs2((const uint16 *) w_str, retval, len); + retval = xrealloc(retval, strlen(retval) + 1); // shrink. + } // if + return retval; +} // unicodeToUtf8Heap + + +static char *codepageToUtf8Heap(const char *cpstr) +{ + char *retval = NULL; + if (cpstr != NULL) + { + const int len = (int) (strlen(cpstr) + 1); + WCHAR *wbuf = (WCHAR *) smallAlloc(len * sizeof (WCHAR)); + BAIL_IF_MACRO(wbuf == NULL, ERR_OUT_OF_MEMORY, NULL); + MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, cpstr, len, wbuf, len); + retval = (char *) xmalloc(len * 4); + utf8FromUcs2(wbuf, retval, len * 4); + smallFree(wbuf); + } // if + return retval; +} // codepageToUtf8Heap + + +// pointers for APIs that may not exist on some Windows versions... +static HANDLE libKernel32 = NULL; +static HANDLE libUserEnv = NULL; +static HANDLE libAdvApi32 = NULL; +static HANDLE libShell32 = NULL; +static DWORD (WINAPI *pGetModuleFileNameW)(HMODULE, LPWCH, DWORD); +static BOOL (WINAPI *pGetUserProfileDirectoryW)(HANDLE, LPWSTR, LPDWORD); +static BOOL (WINAPI *pGetUserNameW)(LPWSTR, LPDWORD); +static DWORD (WINAPI *pGetFileAttributesW)(LPCWSTR); +static HANDLE (WINAPI *pFindFirstFileW)(LPCWSTR, LPWIN32_FIND_DATAW); +static BOOL (WINAPI *pFindNextFileW)(HANDLE, LPWIN32_FIND_DATAW); +static DWORD (WINAPI *pGetCurrentDirectoryW)(DWORD, LPWSTR); +static BOOL (WINAPI *pDeleteFileW)(LPCWSTR); +static BOOL (WINAPI *pRemoveDirectoryW)(LPCWSTR); +static BOOL (WINAPI *pCreateDirectoryW)(LPCWSTR, LPSECURITY_ATTRIBUTES); +static BOOL (WINAPI *pGetFileAttributesExA) + (LPCSTR, GET_FILEEX_INFO_LEVELS, LPVOID); +static BOOL (WINAPI *pGetFileAttributesExW) + (LPCWSTR, GET_FILEEX_INFO_LEVELS, LPVOID); +static DWORD (WINAPI *pFormatMessageW) + (DWORD, LPCVOID, DWORD, DWORD, LPWSTR, DWORD, va_list *); +static HANDLE (WINAPI *pCreateFileW) + (LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE); +static HRESULT (WINAPI *pSHGetFolderPathA)(HWND, int, HANDLE, DWORD, LPTSTR); +static BOOL (WINAPI *pMoveFileW)(LPCWSTR, LPCWSTR); +static void (WINAPI *pOutputDebugStringW)(LPCWSTR); + + +// Fallbacks for missing Unicode functions on Win95/98/ME. These are filled +// into the function pointers if looking up the real Unicode entry points +// in the system DLLs fails, so they're never used on WinNT/XP/Vista/etc. +// They make an earnest effort to convert to/from UTF-8 and UCS-2 to +// the user's current codepage. + +static BOOL WINAPI fallbackGetUserNameW(LPWSTR buf, LPDWORD len) +{ + const DWORD cplen = *len; + char *cpstr = smallAlloc(cplen); + BOOL retval = GetUserNameA(cpstr, len); + if (buf != NULL) + MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, cpstr, cplen, buf, *len); + smallFree(cpstr); + return retval; +} // fallbackGetUserNameW + +static DWORD WINAPI fallbackFormatMessageW(DWORD dwFlags, LPCVOID lpSource, + DWORD dwMessageId, DWORD dwLangId, + LPWSTR lpBuf, DWORD nSize, + va_list *Arguments) +{ + char *cpbuf = (char *) smallAlloc(nSize); + DWORD retval = FormatMessageA(dwFlags, lpSource, dwMessageId, dwLangId, + cpbuf, nSize, Arguments); + if (retval > 0) + MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,cpbuf,retval,lpBuf,nSize); + smallFree(cpbuf); + return retval; +} // fallbackFormatMessageW + +static DWORD WINAPI fallbackGetModuleFileNameW(HMODULE hMod, LPWCH lpBuf, + DWORD nSize) +{ + char *cpbuf = (char *) smallAlloc(nSize); + DWORD retval = GetModuleFileNameA(hMod, cpbuf, nSize); + if (retval > 0) + MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,cpbuf,retval,lpBuf,nSize); + smallFree(cpbuf); + return retval; +} // fallbackGetModuleFileNameW + +static DWORD WINAPI fallbackGetFileAttributesW(LPCWSTR fname) +{ + DWORD retval = 0; + const int buflen = (int) (wStrLen(fname) + 1); + char *cpstr = (char *) smallAlloc(buflen); + WideCharToMultiByte(CP_ACP, 0, fname, buflen, cpstr, buflen, NULL, NULL); + retval = GetFileAttributesA(cpstr); + smallFree(cpstr); + return retval; +} // fallbackGetFileAttributesW + +static DWORD WINAPI fallbackGetCurrentDirectoryW(DWORD buflen, LPWSTR buf) +{ + DWORD retval = 0; + char *cpbuf = NULL; + if (buf != NULL) + cpbuf = (char *) smallAlloc(buflen); + retval = GetCurrentDirectoryA(buflen, cpbuf); + if (cpbuf != NULL) + { + MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,cpbuf,retval,buf,buflen); + smallFree(cpbuf); + } // if + return retval; +} // fallbackGetCurrentDirectoryW + +static BOOL WINAPI fallbackRemoveDirectoryW(LPCWSTR dname) +{ + BOOL retval = 0; + const int buflen = (int) (wStrLen(dname) + 1); + char *cpstr = (char *) smallAlloc(buflen); + WideCharToMultiByte(CP_ACP, 0, dname, buflen, cpstr, buflen, NULL, NULL); + retval = RemoveDirectoryA(cpstr); + smallFree(cpstr); + return retval; +} // fallbackRemoveDirectoryW + +static BOOL WINAPI fallbackCreateDirectoryW(LPCWSTR dname, + LPSECURITY_ATTRIBUTES attr) +{ + BOOL retval = 0; + const int buflen = (int) (wStrLen(dname) + 1); + char *cpstr = (char *) smallAlloc(buflen); + WideCharToMultiByte(CP_ACP, 0, dname, buflen, cpstr, buflen, NULL, NULL); + retval = CreateDirectoryA(cpstr, attr); + smallFree(cpstr); + return retval; +} // fallbackCreateDirectoryW + +static BOOL WINAPI fallbackDeleteFileW(LPCWSTR fname) +{ + BOOL retval = 0; + const int buflen = (int) (wStrLen(fname) + 1); + char *cpstr = (char *) smallAlloc(buflen); + WideCharToMultiByte(CP_ACP, 0, fname, buflen, cpstr, buflen, NULL, NULL); + retval = DeleteFileA(cpstr); + smallFree(cpstr); + return retval; +} // fallbackDeleteFileW + +static HANDLE WINAPI fallbackCreateFileW(LPCWSTR fname, + DWORD dwDesiredAccess, DWORD dwShareMode, + LPSECURITY_ATTRIBUTES lpSecurityAttrs, + DWORD dwCreationDisposition, + DWORD dwFlagsAndAttrs, HANDLE hTemplFile) +{ + HANDLE retval; + const int buflen = (int) (wStrLen(fname) + 1); + char *cpstr = (char *) smallAlloc(buflen); + WideCharToMultiByte(CP_ACP, 0, fname, buflen, cpstr, buflen, NULL, NULL); + retval = CreateFileA(cpstr, dwDesiredAccess, dwShareMode, lpSecurityAttrs, + dwCreationDisposition, dwFlagsAndAttrs, hTemplFile); + smallFree(cpstr); + return retval; +} // fallbackCreateFileW + +static BOOL WINAPI fallbackMoveFileW(LPCWSTR src, LPCWSTR dst) +{ + BOOL retval; + const int srcbuflen = (int) (wStrLen(src) + 1); + char *srccpstr = (char *) smallAlloc(srcbuflen); + const int dstbuflen = (int) (wStrLen(dst) + 1); + char *dstcpstr = (char *) smallAlloc(dstbuflen); + WideCharToMultiByte(CP_ACP,0,src,srcbuflen,srccpstr,srcbuflen,NULL,NULL); + WideCharToMultiByte(CP_ACP,0,dst,dstbuflen,dstcpstr,dstbuflen,NULL,NULL); + retval = MoveFileA(srccpstr, dstcpstr); + smallFree(srccpstr); + smallFree(dstcpstr); + return retval; +} // fallbackMoveFileW + +static void WINAPI fallbackOutputDebugStringW(LPCWSTR str) +{ + const int buflen = (int) (wStrLen(str) + 1); + char *cpstr = (char *) smallAlloc(buflen); + WideCharToMultiByte(CP_ACP, 0, str, buflen, cpstr, buflen, NULL, NULL); + OutputDebugStringA(cpstr); + smallFree(cpstr); +} // fallbackOutputDebugStringW + + +// A blatant abuse of pointer casting... +static int symLookup(HMODULE dll, void **addr, const char *sym) +{ + return ((*addr = GetProcAddress(dll, sym)) != NULL); +} // symLookup + + +static boolean findApiSymbols(void) +{ + const boolean osHasUnicode = !osIsWin9x; + HMODULE dll = NULL; + + #define LOOKUP_NOFALLBACK(x, reallyLook) { \ + if (reallyLook) \ + symLookup(dll, (void **) &p##x, #x); \ + else \ + p##x = NULL; \ + } + + #define LOOKUP(x, reallyLook) { \ + if ((!reallyLook) || (!symLookup(dll, (void **) &p##x, #x))) \ + p##x = fallback##x; \ + } + + // Apparently Win9x HAS the Unicode entry points, they just don't WORK. + // ...so don't look them up unless we're on NT+. (see osHasUnicode.) + + dll = libUserEnv = LoadLibraryA("userenv.dll"); + if (dll != NULL) + LOOKUP_NOFALLBACK(GetUserProfileDirectoryW, osHasUnicode); + + // !!! FIXME: what do they call advapi32.dll on Win64? + dll = libAdvApi32 = LoadLibraryA("advapi32.dll"); + if (dll != NULL) + LOOKUP(GetUserNameW, osHasUnicode); + + // !!! FIXME: what do they call kernel32.dll on Win64? + dll = libKernel32 = LoadLibraryA("kernel32.dll"); + if (dll != NULL) + { + LOOKUP_NOFALLBACK(GetFileAttributesExA, 1); + LOOKUP_NOFALLBACK(GetFileAttributesExW, osHasUnicode); + LOOKUP_NOFALLBACK(FindFirstFileW, osHasUnicode); + LOOKUP_NOFALLBACK(FindNextFileW, osHasUnicode); + LOOKUP(GetModuleFileNameW, osHasUnicode); + LOOKUP(FormatMessageW, osHasUnicode); + LOOKUP(GetFileAttributesW, osHasUnicode); + LOOKUP(GetCurrentDirectoryW, osHasUnicode); + LOOKUP(CreateDirectoryW, osHasUnicode); + LOOKUP(RemoveDirectoryW, osHasUnicode); + LOOKUP(CreateFileW, osHasUnicode); + LOOKUP(DeleteFileW, osHasUnicode); + LOOKUP(MoveFileW, osHasUnicode); + LOOKUP(OutputDebugStringW, osHasUnicode); + } // if + + // !!! FIXME: what do they call shell32.dll on Win64? + dll = libShell32 = LoadLibraryA("shell32.dll"); + if (dll != NULL) + LOOKUP_NOFALLBACK(SHGetFolderPathA, 1); + + #undef LOOKUP_NOFALLBACK + #undef LOOKUP + + return true; +} // findApiSymbols + + + +// ok, now the actual platform layer implementation... + +boolean MojoPlatform_istty(void) +{ + return (GetConsoleWindow() != 0); +} // MojoPlatform_istty + + +boolean MojoPlatform_launchBrowser(const char *url) +{ + // msdn says: + // "Returns a value greater than 32 if successful, or an error value that + // is less than or equal to 32 otherwise." + return (((int) ShellExecuteA(NULL, "open", url, NULL, NULL, SW_SHOWNORMAL)) > 32); +} // MojoPlatform_launchBrowser + + +boolean MojoPlatform_installDesktopMenuItem(const char *data) +{ + // !!! FIXME: write me. + STUBBED("desktop menu support"); + return false; +} // MojoPlatform_installDesktopMenuItem + + +boolean MojoPlatform_uninstallDesktopMenuItem(const char *data) +{ + // !!! FIXME: write me. + STUBBED("desktop menu support"); + return false; +} // MojoPlatform_uninstallDesktopMenuItem + + +boolean MojoPlatform_spawnTerminal(void) +{ + assert(!MojoPlatform_istty()); + + if (AllocConsole()) + { + int hCrt; + FILE *hf; + hCrt = _open_osfhandle((long) GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT); + hf = _fdopen( hCrt, "w" ); + *stdout = *hf; + setvbuf( stdout, NULL, _IONBF, 0 ); + + hCrt = _open_osfhandle((long) GetStdHandle(STD_ERROR_HANDLE), _O_TEXT); + hf = _fdopen( hCrt, "w" ); + *stderr = *hf; + setvbuf( stderr, NULL, _IONBF, 0 ); + + hCrt = _open_osfhandle((long) GetStdHandle(STD_INPUT_HANDLE), _O_TEXT); + hf = _fdopen( hCrt, "r" ); + *stdin = *hf; + setvbuf( stdin, NULL, _IONBF, 0 ); + + return true; + } // if + + return false; +} // MojoPlatform_spawnTerminal + + +uint8 *MojoPlatform_decodeImage(const uint8 *data, uint32 size, + uint32 *w, uint32 *h) +{ + return NULL; // !!! FIXME: try IPicture? +} // MojoPlatform_decodeImage + + +char *MojoPlatform_currentWorkingDir(void) +{ + char *retval = NULL; + WCHAR *wbuf = NULL; + DWORD buflen = 0; + + buflen = pGetCurrentDirectoryW(buflen, NULL); + wbuf = (WCHAR *) smallAlloc((buflen + 2) * sizeof (WCHAR)); + BAIL_IF_MACRO(wbuf == NULL, ERR_OUT_OF_MEMORY, NULL); + pGetCurrentDirectoryW(buflen, wbuf); + + if (wbuf[buflen - 2] == '\\') + wbuf[buflen - 1] = '\0'; // just in case... + else + { + wbuf[buflen - 1] = '\\'; + wbuf[buflen] = '\0'; + } // else + + retval = unicodeToUtf8Heap(wbuf); + smallFree(wbuf); + return retval; +} // MojoPlatform_currentWorkingDir + + +char *MojoPlatform_readlink(const char *linkname) +{ + STUBBED("should use symlinks (reparse points) on Vista"); + return NULL; +} // MojoPlatform_readlink + + +// !!! FIXME: this code sort of sucks. +char *MojoPlatform_realpath(const char *path) +{ + // !!! FIXME: this should return NULL if (path) doesn't exist? + // !!! FIXME: Need to handle symlinks in Vista... + // !!! FIXME: try GetFullPathName() instead? + + // this function should be UTF-8 clean. + char *retval = NULL; + char *p = NULL; + + if ((path == NULL) || (*path == '\0')) + return NULL; + + retval = (char *) xmalloc(MAX_PATH); + + // If in \\server\path format, it's already an absolute path. + // We'll need to check for "." and ".." dirs, though, just in case. + if ((path[0] == '\\') && (path[1] == '\\')) + strcpy(retval, path); + + else + { + char *currentDir = MojoPlatform_currentWorkingDir(); + if (currentDir == NULL) + { + free(retval); + return NULL; + } // if + + if (path[1] == ':') // drive letter specified? + { + // Apparently, "D:mypath" is the same as "D:\\mypath" if + // D: is not the current drive. However, if D: is the + // current drive, then "D:mypath" is a relative path. Ugh. + + if (path[2] == '\\') // maybe an absolute path? + strcpy(retval, path); + else // definitely an absolute path. + { + if (path[0] == currentDir[0]) // current drive; relative. + { + strcpy(retval, currentDir); + strcat(retval, path + 2); + } // if + + else // not current drive; absolute. + { + retval[0] = path[0]; + retval[1] = ':'; + retval[2] = '\\'; + strcpy(retval + 3, path + 2); + } // else + } // else + } // if + + else // no drive letter specified. + { + if (path[0] == '\\') // absolute path. + { + retval[0] = currentDir[0]; + retval[1] = ':'; + strcpy(retval + 2, path); + } // if + else + { + strcpy(retval, currentDir); + strcat(retval, path); + } // else + } // else + + free(currentDir); + } // else + + // (whew.) Ok, now take out "." and ".." path entries... + + p = retval; + while ( (p = strstr(p, "\\.")) != NULL) + { + // it's a "." entry that doesn't end the string. + if (p[2] == '\\') + memmove(p + 1, p + 3, strlen(p + 3) + 1); + + // it's a "." entry that ends the string. + else if (p[2] == '\0') + p[0] = '\0'; + + // it's a ".." entry. + else if (p[2] == '.') + { + char *prevEntry = p - 1; + while ((prevEntry != retval) && (*prevEntry != '\\')) + prevEntry--; + + if (prevEntry == retval) // make it look like a "." entry. + memmove(p + 1, p + 2, strlen(p + 2) + 1); + else + { + if (p[3] != '\0') // doesn't end string. + *prevEntry = '\0'; + else // ends string. + memmove(prevEntry + 1, p + 4, strlen(p + 4) + 1); + + p = prevEntry; + } // else + } // else if + + else + { + p++; // look past current char. + } // else + } // while + + // shrink the retval's memory block if possible... + return (char *) xrealloc(retval, strlen(retval) + 1); +} // MojoPlatform_realpath + + +char *MojoPlatform_appBinaryPath(void) +{ + DWORD buflen = 64; + LPWSTR modpath = NULL; + char *retval = NULL; + DWORD rc = 0; + + while (true) + { + void *ptr = xrealloc(modpath, buflen * sizeof(WCHAR)); + + modpath = (LPWSTR) ptr; + + rc = pGetModuleFileNameW(NULL, modpath, buflen); + if (rc == 0) + { + free(modpath); + return NULL; + } // if + + if (rc < buflen) + { + buflen = rc; + break; + } // if + + buflen *= 2; + } // while + + if (buflen > 0) // just in case... + { + WCHAR *ptr = (modpath + buflen) - 1; + while (ptr != modpath) + { + if (*ptr == '\\') + break; + ptr--; + } // while + + if ((ptr != modpath) || (*ptr == '\\')) // should always be true... + { + *(ptr + 1) = '\0'; // chop off filename. + retval = unicodeToUtf8Heap(modpath); + } // else + } // else + + free(modpath); + return retval; +} // MojoPlatform_appBinaryPath + + +// Try to make use of GetUserProfileDirectoryW(), which isn't available on +// some common variants of Win32. If we can't use this, we just punt and +// use the binary path for the user dir, too. +// +// On success, module-scope variable (userDir) will have a pointer to +// a malloc()'d string of the user's profile dir, and a non-zero value is +// returned. If we can't determine the profile dir, (userDir) will +// be NULL, and zero is returned. + +char *MojoPlatform_homedir(void) +{ + char *userDir = NULL; + + // GetUserProfileDirectoryW() is only available on NT 4.0 and later. + // This means Win95/98/ME (and CE?) users have to do without, so for + // them, we'll default to the base directory when we can't get the + // function pointer. Since this is originally an NT API, we don't + // offer a non-Unicode fallback. + + if (pGetUserProfileDirectoryW != NULL) + { + HANDLE accessToken = NULL; // Security handle to process + HANDLE processHandle = GetCurrentProcess(); + if (OpenProcessToken(processHandle, TOKEN_QUERY, &accessToken)) + { + DWORD psize = 0; + WCHAR dummy = 0; + LPWSTR wstr = NULL; + BOOL rc = 0; + + // Should fail. Will write the size of the profile path in + // psize. Also note that the second parameter can't be + // NULL or the function fails. + rc = pGetUserProfileDirectoryW(accessToken, &dummy, &psize); + if (rc == 0) // this should always be true! + { + // Allocate memory for the profile directory + wstr = (LPWSTR) smallAlloc(psize * sizeof (WCHAR)); + if (wstr != NULL) + { + if (pGetUserProfileDirectoryW(accessToken, wstr, &psize)) + userDir = unicodeToUtf8Heap(wstr); + smallFree(wstr); + } // else + } // if + + CloseHandle(accessToken); + } // if + } // if + + if (userDir == NULL) // couldn't get profile for some reason. + { + // Might just be a non-NT system; try SHGetFolderPathA()... + if (pSHGetFolderPathA != NULL) // can be NULL if IE5+ isn't installed! + { + char shellPath[MAX_PATH]; + HRESULT status = pSHGetFolderPathA(NULL, CSIDL_PERSONAL, NULL, + SHGFP_TYPE_CURRENT, shellPath); + if (SUCCEEDED(status)) + userDir = codepageToUtf8Heap(shellPath); + } // if + } // if + + if (userDir == NULL) // Still nothing?! + { + // this either means we had a catastrophic failure, or we're on a + // Win95 system without at least Internet Explorer 5.0. Bleh! + userDir = xstrdup("C:\\My Documents"); // good luck with that. + } // if + + return userDir; +} // MojoPlatform_homedir + + +// This implementation is a bit naive. +char *MojoPlatform_locale(void) +{ + char lang[16]; + char country[16]; + + const int langrc = GetLocaleInfoA(LOCALE_USER_DEFAULT, + LOCALE_SISO639LANGNAME, + lang, sizeof (lang)); + + const int ctryrc = GetLocaleInfoA(LOCALE_USER_DEFAULT, + LOCALE_SISO3166CTRYNAME, + country, sizeof (country)); + + // Win95 systems will fail, because they don't have LOCALE_SISO*NAME ... + if ((langrc != 0) && (ctryrc != 0)) + return format("%0_%1", lang, country); + + return NULL; +} // MojoPlatform_locale + + +char *MojoPlatform_osType(void) +{ + if (osIsWin9x) + return xstrdup("win9x"); + else + return xstrdup("winnt"); + + return NULL; +} // MojoPlatform_ostype + + +char *MojoPlatform_osVersion(void) +{ + return format("%0.%1.%2", + numstr(osMajorVer), + numstr(osMinorVer), + numstr(osBuildVer)); +} // MojoPlatform_osversion + + +void MojoPlatform_sleep(uint32 ticks) +{ + Sleep(ticks); +} // MojoPlatform_sleep + + +uint32 MojoPlatform_ticks(void) +{ + return GetTickCount() - startupTime; +} // MojoPlatform_ticks + + +void MojoPlatform_die(void) +{ + STUBBED("Win32 equivalent of _exit()?"); + _exit(86); +} // MojoPlatform_die + + +boolean MojoPlatform_unlink(const char *fname) +{ + int retval = 0; + LPWSTR wpath; + UTF8_TO_UNICODE_STACK_MACRO(wpath, fname); + if (pGetFileAttributesW(wpath) == FILE_ATTRIBUTE_DIRECTORY) + retval = (pRemoveDirectoryW(wpath) != 0); + else + retval = (pDeleteFileW(wpath) != 0); + smallFree(wpath); + return retval; +} // MojoPlatform_unlink + + +boolean MojoPlatform_symlink(const char *src, const char *dst) +{ + STUBBED("Vista has symlink support"); + return false; +} // MojoPlatform_symlink + + +boolean MojoPlatform_mkdir(const char *path, uint16 perms) +{ + // !!! FIXME: error if already exists? + // !!! FIXME: perms? + WCHAR *wpath; + DWORD rc; + UTF8_TO_UNICODE_STACK_MACRO(wpath, path); + rc = pCreateDirectoryW(wpath, NULL); + smallFree(wpath); + return (rc != 0); +} // MojoPlatform_mkdir + + +boolean MojoPlatform_rename(const char *src, const char *dst) +{ + WCHAR *srcwpath; + WCHAR *dstwpath; + BOOL rc; + MojoPlatform_unlink(dst); // to match Unix rename()... + UTF8_TO_UNICODE_STACK_MACRO(srcwpath, src); + UTF8_TO_UNICODE_STACK_MACRO(dstwpath, dst); + rc = pMoveFileW(srcwpath, dstwpath); + smallFree(srcwpath); + smallFree(dstwpath); + return (rc != 0); +} // MojoPlatform_rename + + +boolean MojoPlatform_exists(const char *dir, const char *fname) +{ + WCHAR *wpath; + char *fullpath = NULL; + boolean retval = false; + + if (fname == NULL) + fullpath = xstrdup(dir); + else + { + const size_t len = strlen(dir) + strlen(fname) + 1; + fullpath = (char *) xmalloc(len); + snprintf(fullpath, len, "%s\\%s", dir, fname); + } // else + + UTF8_TO_UNICODE_STACK_MACRO(wpath, fullpath); + retval = (pGetFileAttributesW(wpath) != INVALID_FILE_ATTRIBUTES); + smallFree(wpath); + free(fullpath); + + return retval; +} // MojoPlatform_exists + + +boolean MojoPlatform_writable(const char *fname) +{ + boolean retval = false; + DWORD attr = 0; + WCHAR *wpath; + UTF8_TO_UNICODE_STACK_MACRO(wpath, fname); + attr = pGetFileAttributesW(wpath); + smallFree(wpath); + if (attr != INVALID_FILE_ATTRIBUTES) + retval = ((attr & FILE_ATTRIBUTE_READONLY) == 0); + return retval; +} // MojoPlatform_writable + + +boolean MojoPlatform_isdir(const char *dir) +{ + boolean retval = false; + LPWSTR wpath; + UTF8_TO_UNICODE_STACK_MACRO(wpath, dir); + retval = ((pGetFileAttributesW(wpath) & FILE_ATTRIBUTE_DIRECTORY) != 0); + smallFree(wpath); + return retval; +} // MojoPlatform_isdir + + +static boolean isSymlinkAttrs(const DWORD attr, const DWORD tag) +{ + return ( (attr & FILE_ATTRIBUTE_REPARSE_POINT) && + (tag == IO_REPARSE_TAG_SYMLINK) ); +} // isSymlinkAttrs + + +boolean MojoPlatform_issymlink(const char *fname) +{ + // !!! FIXME: + // Windows Vista can have NTFS symlinks. Can older Windows releases have + // them when talking to a network file server? What happens when you + // mount a NTFS partition on XP that was plugged into a Vista install + // that made a symlink? + + boolean retval = false; + LPWSTR wpath; + HANDLE dir; + WIN32_FIND_DATAW entw; + + // no unicode entry points? Probably no symlinks. + if (pFindFirstFileW == NULL) + return false; + + // !!! FIXME: filter wildcard chars? + UTF8_TO_UNICODE_STACK_MACRO(wpath, fname); + dir = pFindFirstFileW(wpath, &entw); + smallFree(wpath); + + if (dir != INVALID_HANDLE_VALUE) + { + retval = isSymlinkAttrs(entw.dwFileAttributes, entw.dwReserved0); + FindClose(dir); + } // if + + return retval; +} // MojoPlatform_issymlink + + +boolean MojoPlatform_isfile(const char *dir) +{ + return ((!MojoPlatform_isdir(dir)) && (!MojoPlatform_issymlink(dir))); +} // MojoPlatform_isfile + + +void *MojoPlatform_stdout(void) +{ + return NULL; // unsupported on Windows. +} // MojoPlatform_stdout + + +void *MojoPlatform_open(const char *fname, uint32 flags, uint16 mode) +{ + HANDLE *retval = NULL; + DWORD accessMode = 0; + DWORD createMode = 0; + DWORD shareMode = FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE; + WCHAR *wpath = NULL; + HANDLE fd = 0; + + if (flags & MOJOFILE_READ) + accessMode |= GENERIC_READ; + if (flags & MOJOFILE_WRITE) + accessMode |= GENERIC_WRITE; + if (accessMode == 0) + return NULL; // have to specify SOMETHING. + +// if (flags & MOJOFILE_APPEND) +// unixflags |= O_APPEND; + + if ((flags & MOJOFILE_CREATE) && (flags & MOJOFILE_EXCLUSIVE)) + createMode = CREATE_NEW; + else if ((flags & MOJOFILE_CREATE) && (flags & MOJOFILE_TRUNCATE)) + createMode = CREATE_ALWAYS; + else if (flags & MOJOFILE_CREATE) + createMode = OPEN_ALWAYS; + else if (flags & MOJOFILE_TRUNCATE) + createMode = TRUNCATE_EXISTING; + else + createMode = OPEN_EXISTING; + + // !!! FIXME + STUBBED("file permissions"); + + UTF8_TO_UNICODE_STACK_MACRO(wpath, fname); + fd = pCreateFileW(wpath, accessMode, shareMode, NULL, createMode, + FILE_ATTRIBUTE_NORMAL, NULL); + smallFree(wpath); + + if (fd != INVALID_HANDLE_VALUE) + { + retval = (HANDLE *) xmalloc(sizeof (HANDLE)); + *retval = fd; + } // if + + return retval; +} // MojoPlatform_open + + +int64 MojoPlatform_read(void *fd, void *buf, uint32 bytes) +{ + HANDLE handle = *((HANDLE *) fd); + DWORD br = 0; + + // Read data from the file + // !!! FIXME: uint32 might be a greater # than DWORD + if(!ReadFile(handle, buf, bytes, &br, NULL)) + return -1; + + return (int64) br; +} // MojoPlatform_read + + +int64 MojoPlatform_write(void *fd, const void *buf, uint32 bytes) +{ + HANDLE handle = *((HANDLE *) fd); + DWORD bw = 0; + + // Read data from the file + // !!! FIXME: uint32 might be a greater # than DWORD + if(!WriteFile(handle, buf, bytes, &bw, NULL)) + return -1; + + return (int64) bw; +} // MojoPlatform_write + + +int64 MojoPlatform_tell(void *fd) +{ + return MojoPlatform_seek(fd, 0, MOJOSEEK_CURRENT); +} // MojoPlatform_tell + + +int64 MojoPlatform_seek(void *fd, int64 pos, MojoFileSeek whence) +{ + HANDLE handle = *((HANDLE *) fd); + DWORD highpos = HIGHORDER_UINT64(pos); + const DWORD lowpos = LOWORDER_UINT64(pos); + DWORD winwhence = 0; + DWORD rc = 0; + + switch (whence) + { + case MOJOSEEK_SET: winwhence = FILE_BEGIN; break; + case MOJOSEEK_CURRENT: winwhence = FILE_CURRENT; break; + case MOJOSEEK_END: winwhence = FILE_END; break; + default: return -1; // !!! FIXME: maybe just abort? + } // switch + + rc = SetFilePointer(handle, lowpos, &highpos, winwhence); + if ( (rc == INVALID_SET_FILE_POINTER) && (GetLastError() != NO_ERROR) ) + return -1; + + return (int64) ((((uint64) highpos) << 32) | ((uint64) rc)); +} // MojoPlatform_seek + + +int64 MojoPlatform_flen(void *fd) +{ + HANDLE handle = *((HANDLE *) fd); + int64 retval = 0; + DWORD SizeHigh = 0; + DWORD SizeLow = GetFileSize(handle, &SizeHigh); + + if ((SizeLow == INVALID_SET_FILE_POINTER) && (GetLastError() != NO_ERROR)) + return -1; + else + { + // Combine the high/low order to create the 64-bit position value + retval = (int64) ((((uint64) SizeHigh) << 32) | ((uint64) SizeLow)); + assert(retval >= 0); + } // else + + return retval; +} // MojoPlatform_flen + + +boolean MojoPlatform_flush(void *fd) +{ + HANDLE handle = *((HANDLE *) fd); + return (FlushFileBuffers(handle) != 0); +} // MojoPlatform_flush + + +boolean MojoPlatform_close(void *fd) +{ + HANDLE handle = *((HANDLE *) fd); + boolean retval = (CloseHandle(handle) != 0); + if (retval) + free(fd); + return retval; +} // MojoPlatform_close + + +typedef struct +{ + HANDLE dir; + boolean done; + WIN32_FIND_DATA ent; + WIN32_FIND_DATAW entw; +} WinApiDir; + +void *MojoPlatform_opendir(const char *dirname) +{ + const int unicode = (pFindFirstFileW != NULL) && (pFindNextFileW != NULL); + size_t len = strlen(dirname); + char *searchPath = NULL; + WCHAR *wSearchPath = NULL; + WinApiDir *retval = (WinApiDir *) xmalloc(sizeof (WinApiDir)); + + retval->dir = INVALID_HANDLE_VALUE; + retval->done = false; + + // Allocate a new string for path, maybe '\\', "*", and NULL terminator + searchPath = (char *) smallAlloc(len + 3); + + // Copy current dirname + strcpy(searchPath, dirname); + + // if there's no '\\' at the end of the path, stick one in there. + if (searchPath[len - 1] != '\\') + { + searchPath[len++] = '\\'; + searchPath[len] = '\0'; + } // if + + // Append the "*" to the end of the string + strcat(searchPath, "*"); + + UTF8_TO_UNICODE_STACK_MACRO(wSearchPath, searchPath); + + if (unicode) + retval->dir = pFindFirstFileW(wSearchPath, &retval->entw); + else + { + const int len = (int) (wStrLen(wSearchPath) + 1); + char *cp = (char *) smallAlloc(len); + WideCharToMultiByte(CP_ACP, 0, wSearchPath, len, cp, len, 0, 0); + retval->dir = FindFirstFileA(cp, &retval->ent); + smallFree(cp); + } // else + + smallFree(wSearchPath); + smallFree(searchPath); + if (retval->dir == INVALID_HANDLE_VALUE) + { + free(retval); + return NULL; + } // if + + return retval; +} // MojoPlatform_opendir + + +char *MojoPlatform_readdir(void *_dirhandle) +{ + const int unicode = (pFindFirstFileW != NULL) && (pFindNextFileW != NULL); + WinApiDir *dir = (WinApiDir *) _dirhandle; + char *utf8 = NULL; + + if (dir->done) + return NULL; + + if (unicode) + { + do + { + const DWORD attr = dir->entw.dwFileAttributes; + const DWORD tag = dir->entw.dwReserved0; + const WCHAR *fn = dir->entw.cFileName; + if ((fn[0] == '.') && (fn[1] == '\0')) + continue; + if ((fn[0] == '.') && (fn[1] == '.') && (fn[2] == '\0')) + continue; + + utf8 = unicodeToUtf8Heap(fn); + dir->done = (pFindNextFileW(dir->dir, &dir->entw) == 0); + return utf8; + } while (pFindNextFileW(dir->dir, &dir->entw) != 0); + } // if + + else // ANSI fallback. + { + do + { + const DWORD attr = dir->ent.dwFileAttributes; + const DWORD tag = dir->ent.dwReserved0; + const char *fn = dir->ent.cFileName; + if ((fn[0] == '.') && (fn[1] == '\0')) + continue; + if ((fn[0] == '.') && (fn[1] == '.') && (fn[2] == '\0')) + continue; + + utf8 = codepageToUtf8Heap(fn); + dir->done = (FindNextFileA(dir->dir, &dir->ent) == 0); + return utf8; + } while (FindNextFileA(dir->dir, &dir->ent) != 0); + } // else + + dir->done = true; + return NULL; +} // MojoPlatform_readdir + + +void MojoPlatform_closedir(void *dirhandle) +{ + WinApiDir *dir = (WinApiDir *) dirhandle; + if (dir) + { + FindClose(dir->dir); + free(dir); + } // if +} // MojoPlatform_closedir + + +int64 MojoPlatform_filesize(const char *fname) +{ + // !!! FIXME: this is lame. + int64 retval = -1; + void *fd = MojoPlatform_open(fname, MOJOFILE_READ, 0); + STUBBED("use a stat()-like thing instead"); + if (fd != NULL) + { + retval = MojoPlatform_seek(fd, 0, MOJOSEEK_END); + MojoPlatform_close(fd); + } // if + + return retval; +} // MojoPlatform_filesize + + +boolean MojoPlatform_perms(const char *fname, uint16 *p) +{ + STUBBED("Windows permissions"); + *p = 0; + return true; +} // MojoPlatform_perms + + +uint16 MojoPlatform_defaultFilePerms(void) +{ + STUBBED("Windows permissions"); + return 0644; +} // MojoPlatform_defaultFilePerms + + +uint16 MojoPlatform_defaultDirPerms(void) +{ + STUBBED("Windows permissions"); + return 0755; +} // MojoPlatform_defaultDirPerms + + +uint16 MojoPlatform_makePermissions(const char *str, boolean *_valid) +{ + STUBBED("Windows permissions"); + *_valid = true; + return 0; +} // MojoPlatform_makePermissions + + +boolean MojoPlatform_chmod(const char *fname, uint16 p) +{ + STUBBED("Windows permissions"); + return true; + //return (chmod(fname, p) != -1); +} // MojoPlatform_chmod + + +static BOOL mediaInDrive(const char *drive) +{ + // Prevent windows warning message appearing when checking media size + UINT oldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); + DWORD tmp = 0; + // If the function succeeds, there's media in the drive + BOOL retval = GetVolumeInformationA(drive,NULL,0,NULL,NULL,&tmp,NULL,0); + + // Revert back to old windows error handler + SetErrorMode(oldErrorMode); + return retval; +} // mediaInDrive + + +char *MojoPlatform_findMedia(const char *uniquefile) +{ + // !!! FIXME: Probably shouldn't just check drive letters... + + char drive_str[4] = { 'x', ':', '\\', '\0' }; + char ch; + UINT rc; + boolean found = false; + + for (ch = 'A'; ch <= 'Z'; ch++) + { + drive_str[0] = ch; + rc = GetDriveTypeA(drive_str); + if ((rc != DRIVE_UNKNOWN) && (rc != DRIVE_NO_ROOT_DIR)) + { + if (mediaInDrive(drive_str)) + { + drive_str[2] = '\0'; + found = (MojoPlatform_exists(drive_str, uniquefile)); + drive_str[2] = '\\'; + if (found) + return xstrdup(drive_str); + } // if + } // if + } // for + + return NULL; +} // MojoPlatform_findMedia + + +void MojoPlatform_log(const char *str) +{ + if (pOutputDebugStringW != NULL) // in case this gets called before init... + { + static const WCHAR endl[3] = { '\r', '\n', '\0' }; + WCHAR *wstr; + UTF8_TO_UNICODE_STACK_MACRO(wstr, str); + STUBBED("OutputDebugString() is probably not best here"); + pOutputDebugStringW(wstr); + pOutputDebugStringW(endl); + smallFree(wstr); + } // if +} // MojoPlatform_log + + +typedef struct +{ + HINSTANCE dll; + HANDLE file; +} WinApiDll; + +void *MojoPlatform_dlopen(const uint8 *img, size_t len) +{ + WinApiDll *retval = NULL; + char path[MAX_PATH]; + char fname[MAX_PATH]; + DWORD bw = 0; + HANDLE handle; + HINSTANCE dll; + + GetTempPath(sizeof (path), path); + GetTempFileName(path, "mojosetup-plugin-", 0, fname); + + handle = CreateFileA(fname, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); + if (handle == INVALID_HANDLE_VALUE) + return NULL; + + WriteFile(handle, img, len, &bw, NULL); // dump it to the temp file. + + CloseHandle(handle); + if (bw != len) + { + DeleteFile(fname); + return NULL; + } // if + + // The DELETE_ON_CLOSE will cause the kernel to remove the file when + // we're done with it, including manually closing or the process + // terminating (including crashing). We hold this handle until we close + // the library. + handle = CreateFileA(fname, GENERIC_READ, FILE_SHARE_READ, NULL, + OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE, NULL); + if (handle == INVALID_HANDLE_VALUE) + { + DeleteFile(fname); + return NULL; + } // if + + dll = LoadLibraryA(fname); + if (dll == NULL) + { + CloseHandle(handle); // (also deletes temp file.) + return NULL; + } // if + + retval = (WinApiDll *) xmalloc(sizeof (WinApiDll)); + retval->dll = dll; + retval->file = handle; + return retval; +} // MojoPlatform_dlopen + + +void *MojoPlatform_dlsym(void *_lib, const char *sym) +{ + const WinApiDll *lib = (const WinApiDll *) _lib; + return ((lib) ? GetProcAddress(lib->dll, sym) : NULL); +} // MojoPlatform_dlsym + + +void MojoPlatform_dlclose(void *_lib) +{ + WinApiDll *lib = (WinApiDll *) _lib; + if (lib) + { + FreeLibrary(lib->dll); + CloseHandle(lib->file); // this also deletes the temp file. + free(lib); + } // if +} // MojoPlatform_dlclose + + +uint64 MojoPlatform_getuid(void) +{ + return 0; // !!! FIXME +} // MojoPlatform_getuid + + +uint64 MojoPlatform_geteuid(void) +{ + return 0; // !!! FIXME +} // MojoPlatform_geteuid + + +uint64 MojoPlatform_getgid(void) +{ + return 0; // !!! FIXME +} // MojoPlatform_getgid + + + +// Get OS info and save the important parts. +// Returns non-zero if successful, otherwise it returns zero on failure. +static boolean getOSInfo(void) +{ + OSVERSIONINFO osVerInfo; + osVerInfo.dwOSVersionInfoSize = sizeof(osVerInfo); + if (!GetVersionEx(&osVerInfo)) + return false; + + osIsWin9x = (osVerInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS); + osMajorVer = (uint32) osVerInfo.dwMajorVersion; + osMinorVer = (uint32) osVerInfo.dwMinorVersion; + osBuildVer = (uint32) osVerInfo.dwBuildNumber; + + return true; +} // getOSInfo + + +static boolean platformInit(void) +{ + startupTime = GetTickCount(); + + if (!getOSInfo()) + return false; + + if (!findApiSymbols()) + return false; + + return true; +} // platformInit + + +static void platformDeinit(void) +{ + HANDLE *libs[] = { &libKernel32, &libUserEnv, &libAdvApi32, &libShell32 }; + int i; + + for (i = 0; i < (sizeof (libs) / sizeof (libs[0])); i++) + { + const HANDLE lib = *(libs[i]); + if (lib) + { + FreeLibrary(lib); + *(libs[i]) = NULL; + } // if + } // for +} // platformDeinit + + +static void buildCommandlineArray(LPSTR szCmd, int *_argc, char ***_argv) +{ + int argc = 0; + char **argv = NULL; + + // !!! FIXME: STUBBED("parse command line string into array"); + + *_argc = argc; + *_argv = argv; +} // buildCommandlineArray + + +static void freeCommandlineArray(int argc, char **argv) +{ + while (argc--) + free(argv[argc]); + free(argv); +} // freeCommandlineArray + + +int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmd, int nCmdShow) +{ + int retval = 0; + int argc = 0; + char **argv = NULL; + + if (!platformInit()) + retval = 1; + else + { + buildCommandlineArray(szCmd, &argc, &argv); + //openlog("mojosetup", LOG_PID, LOG_USER); + //atexit(closelog); + STUBBED("signal handlers"); + //install_signals(); + retval = MojoSetup_main(argc, argv); + freeCommandlineArray(argc, argv); + + platformDeinit(); + } // else + + return retval; +} // main + +#endif // PLATFORM_WINDOWS + +// end of windows.c ... + diff --git a/mk/linux/mojosetup/scripts/app_localization.lua b/mk/linux/mojosetup/scripts/app_localization.lua new file mode 100644 index 00000000..812c80cb --- /dev/null +++ b/mk/linux/mojosetup/scripts/app_localization.lua @@ -0,0 +1,67 @@ +-- MojoSetup; a portable, flexible installation application. +-- +-- Please see the file LICENSE.txt in the source's root directory. +-- +-- This file written by Ryan C. Gordon. +-- +-- Lines starting with "--" are comments in this file. +-- +-- You should add your installer's strings to this file; localization.lua is +-- for strings used internally by MojoSetup itself. Your app can override any +-- individual string in that file, though. +-- +-- NOTE: If you care about Unicode or ASCII chars above 127, this file _MUST_ +-- be UTF-8 encoded! If you think you're using a certain high-ASCII codepage, +-- you're wrong! +-- +-- Most of the MojoSetup table isn't set up when this code is run, so you +-- shouldn't rely on any of it. For most purposes, you should treat this +-- file more like a data description language and less like a turing-complete +-- scripting language. +-- +-- The format of an entry looks like this: +-- +-- ["Hello"] = { +-- es = "Hola", +-- de = "Hallo", +-- fr = "Bonjour", +-- }; +-- +-- So you just fill in the translation of the English for your language code. +-- Note that locales work, too: +-- +-- ["Color"] = { +-- en_GB = "Colour", +-- }; +-- +-- Specific locales are favored, falling back to specific languages, eventually +-- ending up on the untranslated version (which is technically en_US). +-- +-- Whenever you see a %x sequence, that is replaced with a string at runtime. +-- So if you see, ["Hello, %0, my name is %1."], then this might become +-- "Hello, Alice, my name is Bob." at runtime. If your culture would find +-- introducing yourself second to be rude, you might translate this to: +-- "My name is %1, hello %0." If you need a literal '%' char, write "%%": +-- "Operation is %0%% complete" might give "Operation is 3% complete." +-- All strings, from your locale or otherwise, are checked for formatter +-- correctness at startup. This is to prevent the installer working fine +-- in all reasonable tests, then finding out that one guy in Ghana has a +-- crashing installer because his localization forgot to add a %1 somewhere. +-- +-- Occasionally you might see a "\n" ... that's a newline character. "\t" is +-- a tab character, and "\\" turns into a single "\" character. +-- +-- The table you create here goes away shortly after creation, as the relevant +-- parts of it get moved somewhere else. You should call MojoSetup.translate() +-- to get the proper translation for a given string. +-- +-- Questions about the intent of a specific string can go to Ryan C. Gordon +-- (icculus@icculus.org). + +MojoSetup.applocalization = { +}; + +-- end of app_localization.lua ... + + + diff --git a/mk/linux/mojosetup/scripts/config.lua b/mk/linux/mojosetup/scripts/config.lua new file mode 100644 index 00000000..9d200669 --- /dev/null +++ b/mk/linux/mojosetup/scripts/config.lua @@ -0,0 +1,235 @@ +-- MojoSetup; a portable, flexible installation application. +-- +-- Please see the file LICENSE.txt in the source's root directory. +-- +-- This file written by Ryan C. Gordon. + + +-- This is a setup file. Lines that start with "--" are comments. +-- This config file is actually just Lua code. Even though you'll only +-- need a small subset of the language, there's a lot of flexibility +-- available to you if you need it. http://www.lua.org/ +-- +-- All functionality supplied by the installer is encapsulated in either the +-- "Setup" or "MojoSetup" table, so you can use any other symbol name without +-- namespace clashes, assuming it's not a Lua keyword or a symbol supplied +-- by the standard lua libraries. +-- +-- So here's the actual configuration...we used loki_setup's xml schema +-- as a rough guideline. + +-- You can define functions like in any other Lua script. For example, here's +-- a function that figures out how many bytes are in a megabyte, so you don't +-- have to list exact values in Setup.Option's "bytes" attribute. +local function megabytes(num) + return num * 1024 * 1024 +end + +-- And naturally, functions can build on others. It's a programming language, +-- after all! But if you don't want to screw with programming, you can treat +-- this strictly as a config file. This just gives you flexibility if you +-- need it. +local function gigabytes(num) + return megabytes(num) * 1024 +end + +Setup.Package +{ + vendor = "com.mycompany", + id = "mygame", + description = "My Game", + version = "1.0", + splash = "splash.jpg", + superuser = false, + destination = "/usr/local/bin", + recommended_destinations = { "/opt/games", "/usr/local/games" }, + updateurl = "http://localhost/updates/", + write_manifest = true, + support_uninstall = true, + + -- Things named Setup.Something are internal functions we supply. + -- Generally these return the table you pass to them, but they + -- may sanitize the values, add defaults, and verify the data. + + -- End User License Agreement(s). You can specify multiple + -- Setup.Eula sections here. + -- Also, Note the "translate" call. + -- This shows up as the first thing the user sees, and must + -- agree to before anything goes forward. You could put this + -- in the base Setup.Option and they won't be shown it until + -- installation is about to start, if you would rather + -- defer this until necessary and/or show the README first. + Setup.Eula + { + description = "My Game License", + source = MojoSetup.translate("MyGame_EULA.html") + }, + + -- README file(s) to show and install. + Setup.Readme + { + description = "My Game README", + source = MojoSetup.translate("README.html"), + }, + + -- Specify media (discs) we may need for this install and how to find them. + Setup.Media + { + id = "cd1", + description = "MyGame CD 1", + uniquefile = "Sound/blip.wav" + }, + + Setup.Media + { + id = "cd2", + description = "MyGame CD 2", + uniquefile = "Maps/town.map" + }, + + -- Specify chunks to install...optional or otherwise. + Setup.Option + { + value = true, + required = true, + disabled = false, + bytes = megabytes(600), + description = "Base Install", + + -- Install a desktop menu item with the base install. + Setup.DesktopMenuItem + { + disabled = false, + name = "My Game", + genericname = "Shoot-em up", + tooltip = "A game of alien hunting.", + builtin_icon = false, + icon = "icon.png", -- relative to the dest; you must install it! + commandline = "command-line", + category = "Game", + mimetype = { 'application/x-mygame-map', 'application/x-mygame-url' }, + }, + + -- File(s) to install with this option. + Setup.File + { + -- source can be a directory, an archive, or a supported URL. + -- You can use "media://" to get data from a disc that the user + -- will be prompted to insert. Everything in the source will + -- be installed, but the "wildcards" and "filter" attributes + -- can be used to cull the archive's contents. + source = "media://cd1/Maps/m.zip", + + -- This is a directory where files will be installed from this + -- source. If this isn't specified, the directory tree structure + -- in the source will be recreated for the installation. + -- You can change the destination on a per-file basis using + -- the filter attribute instead. It overrides this attribute, + -- but the parameter passed to the filter will use this value + -- if it exists. + destination = "MyGame/MyGame.app", + + -- Files in here need to match at least one wildcard to be + -- installed. If they pass here, they go to the filter function. + -- This can be a single string or a table of strings. + wildcards = { "Single/*/*.map", "Multi/*/*.map" }, + + -- You can optionally assign a lua function...we'll call this for + -- each file to see if we should avoid installing it. It returns + -- nil to drop the file from the install list, or a string of + -- the new install destination...you can return the original + -- string to just pass it through for installation, or + -- use this opportunity to rename a file on the fly. + filter = function(fn) + if fn == "Single/x/dontinstall.map" then return nil end + return fn + end + }, + + -- Here's a suboption that has it's own EULA. + Setup.Option + { + value = true, + required = false, + disabled = false, + bytes = megabytes(1), + description = "PunkBuster support", + + Setup.Eula + { + description = "Punkbuster License", + source = MojoSetup.translate("PunkBuster_EULA.html"), + }, + + Setup.File + { + source = "media://cd1/pb.zip", + }, + }, + + -- Radio buttons. + Setup.OptionGroup + { + disabled = false, + description = "Language", + Setup.Option + { + value = string.match(MojoSetup.info.locale, "^en_") ~= nil, + bytes = megabytes(10), + description = "English", + Setup.File { source = "base:///Lang/English.zip" }, + }, + Setup.Option + { + value = string.match(MojoSetup.info.locale, "^fr_") ~= nil, + bytes = 0, + description = "French", + Setup.OptionGroup + { + disabled = false, + description = "French locale", + Setup.Option + { + value = (MojoSetup.info.locale == fr_CA), + bytes = megabytes(10), + description = "French Canadian", + Setup.File { source = "base:///Lang/FrenchCA.zip" }, + }, + Setup.Option + { + value = (MojoSetup.info.locale ~= fr_CA), + bytes = megabytes(10), + description = "Generic French", + Setup.File { source = "base:///Lang/French.zip" }, + }, + }, + }, + Setup.Option + { + value = string.match(MojoSetup.info.locale, "^de_") ~= nil, + bytes = megabytes(10), + description = "German", + Setup.File { source = "base:///Lang/German.zip" }, + }, + }, + }, + + Setup.Option + { + value = true, + required = false, + disabled = false, + bytes = 19384292, + description = "Downloadable extras", + + -- File(s) to install. + Setup.File + { + destination = "MyGame/MyGame.app", + source = "http://hostname.dom/extras/extras.zip", + }, + }, +} + +-- end of config.lua ... + diff --git a/mk/linux/mojosetup/scripts/localization.lua b/mk/linux/mojosetup/scripts/localization.lua new file mode 100644 index 00000000..c53f2745 --- /dev/null +++ b/mk/linux/mojosetup/scripts/localization.lua @@ -0,0 +1,4661 @@ +-- MojoSetup; a portable, flexible installation application. +-- +-- Please see the file LICENSE.txt in the source's root directory. +-- +-- DO NOT EDIT BY HAND. +-- This file was generated with po2localization.pl, version hg-731:d431888dc3f3 ... +-- on 2009-12-14 03:16:00-0500 +-- +-- Your own installer's localizations go into app_localization.lua instead. +-- If you want to add strings to be translated to this file, contact Ryan +-- (icculus@icculus.org). If you want to add or change a translation for +-- existing strings, please use our nice web interface here for your work: +-- +-- https://translations.launchpad.net/mojosetup/ +-- +-- ...and that work eventually ends up in this file. +-- +-- X-Launchpad-Export-Date: 2009-12-14 08:00+0000 +-- X-Generator: Launchpad (build Unknown) + +MojoSetup.languages = { + en_US = "English (United States)", + af = "Afrikaans", + ar = "Arabic", + cs = "Czech", + da = "Danish", + de = "German", + el = "Greek", + en_AU = "English (Australia)", + en_CA = "English (Canada)", + en_GB = "English (United Kingdom)", + es = "Spanish", + et = "Estonian", + fa = "Persian", + fi = "Finnish", + fr = "French", + he = "Hebrew", + hu = "Hungarian", + id = "Indonesian", + it = "Italian", + ja = "Japanese", + lb = "Luxembourgish", + nb = "Norwegian Bokmal", + nds = "German, Low", + nl = "Dutch", + nn = "Norwegian Nynorsk", + pl = "Polish", + pt = "Portuguese", + pt_BR = "Brazilian Portuguese", + ro = "Romanian", + ru = "Russian", + sk = "Slovak", + sl = "Slovenian", + sv = "Swedish", + te = "Telugu", + tr = "Turkish", + uk = "Ukrainian", + zh_TW = "Traditional Chinese" +}; + +MojoSetup.localization = { + -- This may be shown to the end-user if the application gets extremely + -- confused. It may be shown in desperate sitations when we know + -- something has gone wrong, but not what exactly. + ["unknown error"] = { + af = "onbekende fout", + ar = "خطأ مجهول", + cs = "neznámá chyba", + da = "ukendt fejl", + de = "Unbekannter Fehler", + el = "άγνωστο σφάλμα", + en_AU = "unknown error", + en_CA = "unknown error", + en_GB = "unknown error", + es = "error desconocido", + et = "tundmatu viga", + fa = "خطای نامعلوم", + fi = "Tuntematon virhe", + fr = "Erreur inconnue", + he = "שגי××” ×œ× ×™×“×•×¢×”", + hu = "ismeretlen hiba", + id = "galat tidak dikenal", + it = "errore sconosciuto", + ja = "ä¸æ˜Žãªã‚¨ãƒ©ãƒ¼", + lb = "Onbekannten Fehler", + nb = "ukjent feil", + nds = "unbekannter Fehler", + nl = "onbekende fout", + nn = "ukjent feil", + pl = "nieznany bÅ‚Ä…d", + pt = "erro desconhecido", + pt_BR = "erro desconhecido", + ro = "eroare necunoscută", + ru = "неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°", + sk = "neznáma chyba", + sl = "neznana napaka", + sv = "okänt fel", + tr = "bilinmeyen hata", + uk = "невідома помилка", + zh_TW = "未知的錯誤" + }; + + -- stdio UI plugin says this for "OK"-only msgboxes. "%0" is the message + -- box's text content. "[hit enter]" should be translated, too! It's + -- trying to tell the application's user that they should press the + -- key that is normally used to complete a line of text at a terminal's + -- prompt. + ["NOTICE: %0\n[hit enter]"] = { + af = "KENNIS: %0", + ar = "ملحوظة:%0\n[اضغط enter]", + cs = "UPOZORNÄšNÃ: %0\n[stisknÄ›te enter]", + da = "NB: %0\n[tryk enter]", + de = "HINWEIS: %0\n[Drücken Sie Enter]", + el = "ΠΡΟΣΟΧΗ: %0\n[πατήστε ENTER]", + en_AU = "NOTICE: %0\n[hit enter]", + en_CA = "NOTICE: %0\n[hit enter]", + en_GB = "NOTICE: %0\n[hit enter]", + es = "AVISO: %0\n[presiona Intro]", + fi = "HUOMAUTUS: %0\n[paina enter]", + fr = "INFORMATION : %0\n[pressez entrée]", + he = "התר××”: %0\n[לחץ enter]", + hu = "FIGYELEM: %0\n[üss entert]", + id = "CATATAN: %0\n[tekan enter]", + it = "ATTENZIONE: %0", + nb = "Notis: %0\n[trykk enter]", + nds = "HINWEIS: %0", + nl = "OPMERKING: %0\n[Toets enter]", + nn = "Notis: %0\n[trykk enter]", + pt = "AVISO: %0\n[pressione enter]", + pt_BR = "AVISO: %0", + ro = "ATENÅ¢IE: %0\n[apasă enter]", + ru = "Ð’ÐИМÐÐИЕ: %0\n[нажмите enter]", + sk = "Správa: %0", + sl = "OPOZORILO: %0\n[pritisnite enter]", + sv = "NOTERA: %0\n[tryck enter]", + tr = "UYARI: %0\n[giriÅŸ tuÅŸuna basınız]", + uk = "ДО УВÐГИ: %0", + zh_TW = "æ醒:%0" + }; + + -- stdio UI plugin says this for yes/no prompts that default to yes. + -- "%0" is the question the user is being asked to respond to. + -- "[Y/n]" are two options that the user will have to type in response. + -- Please pick reasonable abbreviations for YES and NO that can be + -- typed easily by the user. Case of the "Y" and "n" are not important, + -- although we are using the capital letter to show the default option + -- if the user just presses enter. Be sure to translate the strings "Y" + -- and "N", elsewhere, to match what you enter here! At runtime, the + -- user's response is compared to those strings without case sensitivity. + ["%0 [Y/n]: "] = { + af = "%0 [Y/n]: ", + ar = "%0 [نعم/لا]: ", + cs = "%0 [A/n]: ", + da = "%0 [J/n]: ", + de = "%0 [J/n]: ", + el = "%0 [Î/ο]: ", + en_AU = "%0 [Y/n]: ", + en_CA = "%0 [Y/n]: ", + en_GB = "%0 [Y/n] ", + es = "%0 [S/n]: ", + fi = "%0 [K/e]: ", + fr = "%0 [O/n]: ", + he = "%0 [\"×›\"/ל]: ", + hu = "%0 [I/n]: ", + id = "%0 [Y/t]: ", + it = "%0 [S/n]: ", + ja = "%0 [Y/n]: ", + lb = "%0 [J/n] ", + nb = "%0 [J/n]: ", + nds = "%0 [J/n] ", + nl = "%0 [J/n]: ", + nn = "%0 [J/n]: ", + pt = "%0 [S/n] ", + pt_BR = "%0 [S/n]: ", + ro = "%0 [D/n]: ", + ru = "%0 [Y/n]: ", + sk = "%0 [A/n]: ", + sl = "%0 [D/n]: ", + sv = "%0 [J/n]: ", + tr = "%0 [E/h]]: ", + uk = "%0 [ТÐК/ні] ", + zh_TW = "%0 [Y/n]: " + }; + + -- stdio UI plugin says this for yes/no prompts that default to no. + -- "%0" is the question the user is being asked to respond to. + -- "[y/N]" are two options that the user will have to type in response. + -- Please pick reasonable abbreviations for YES and NO that can be + -- typed easily by the user. Case of the "Y" and "n" are not important, + -- although we are using the capital letter to show the default option + -- if the user just presses enter. Be sure to translate the strings "Y" + -- and "N", elsewhere, to match what you enter here! At runtime, the + -- user's response is compared to those strings without case sensitivity. + ["%0 [y/N]: "] = { + af = "%0 [y/N]: ", + ar = "%0 [نعم/لا]: ", + cs = "%0 [a/N] ", + da = "%0 [j/N]: ", + de = "%0 [j/N]: ", + el = "%0 [ν/Ο]: ", + en_AU = "%0 [y/N]: ", + en_CA = "%0 [y/N]: ", + en_GB = "%0 [y/N]: ", + es = "%0 [s/N]: ", + fi = "%0 [k/E]: ", + fr = "%0 [o/N]: ", + he = "%0 [×›/\"ל\"]: ", + hu = "%0 [i/N]: ", + id = "%0 [y/T]: ", + it = "%0 [s/N]: ", + ja = "%0 [y/N]: ", + lb = "%0 [j/N] ", + nb = "%0 [j/N]: ", + nds = "%0 [j/N] ", + nl = "%0 [j/N]: ", + nn = "%0 [j/N]: ", + pl = "%0 [t/N]: ", + pt = "%0 [s/N] ", + pt_BR = "%0 [s/N]: ", + ro = "%0 [d/N]: ", + ru = "%0 [y/N]: ", + sk = "%0 [a/N]: ", + sl = "%0 [d/N]: ", + sv = "%0 [j/N]: ", + tr = "%0 [e/H]: ", + uk = "%0 [так/ÐІ] ", + zh_TW = "%0 [y/N]: " + }; + + -- stdio UI plugin says this for yes/no/always/never prompts. + -- "%0" is the question the user is being asked to respond to. + -- "[Y/n/Always/Never]" are options that the user will have to type in + -- response. Please pick reasonable abbreviations for YES and NO (and + -- full words for ALWAYS and NEVER) that can be typed easily by the user. + -- Case of the "Y" and "n" are not important; there is no default option + -- chosen here, so the user will have to fully type out one of these four + -- options in response. Be sure to translate the strings "Y", "N", + -- "Always", and "Never", elsewhere, to match what you enter here! At + -- runtime, the user's response is compared to those strings without + -- case sensitivity. + ["%0 [y/n/Always/Never]: "] = { + af = "%0 [y / n / Altyd / Nooit]: ", + ar = "%0 [نعم/لا/دائماً/ابداً]: ", + cs = "%0 [a/n/Vždy/niKdy] ", + da = "%0 [j/n/Alltid/Aldrig]: ", + de = "%0 [j/n/Immer/Niemals]: ", + el = "%0 [ν/ο/Πάντα/Ποτέ]: ", + en_AU = "%0 [y/n/Always/Never]: ", + en_CA = "%0 [y/n/Always/Never]: ", + en_GB = "%0 [y/n/Always/Never]: ", + es = "%0 [s/n/Siempre/Nunca]: ", + fi = "%0 [k/e/Aina/ei Koskaan]: ", + fr = "%0 [o/n/Toujours/Jamais]: ", + he = "%0 [×›/ל/תמיד/××£ פע×]: ", + hu = "%0 [i/n/Mindig/Soha]: ", + id = "%0 [y/t/Selalu/Tidak Pernah]: ", + it = "%0 [s/n/Sempre/Mai]: ", + lb = "%0 [j/n/Emmer/Nie] ", + nb = "%0 [j/n/Alltid/Aldri]: ", + nds = "%0 [j/n/Immer/Niemals] ", + nl = "%0 [j/n/Altijd/Nooit]: ", + nn = "%0 [j/n/Alltid/Aldri]: ", + pl = "%0 [t/n/Zawsze/Nigdy]: ", + pt = "%0 [s/n/Sempre/Nunca] ", + pt_BR = "%0 [s/n/Sempre/Nunca]: ", + ro = "%0 [d/n/Mereu/Niciodată]: ", + ru = "%0 [y/n/Ð’Ñегда(A)/Ðикогда(N)]: ", + sk = "%0 [a/n/Vzdy/Nikdy]: ", + sl = "%0 [d/n/Vedno/Nikoli]: ", + sv = "%0 [j/n/Alltid/Aldrig]: ", + tr = "%0 [e/h/Daima/Asla]: ", + uk = "%0 [так/ні/Завжди/Ðіколи]: ", + zh_TW = "%0[y/n/æ°¸é (A)/æ°¸ä¸(N)]: " + }; + + -- This is used for "yes" in stdio UI's yes/no prompts (case insensitive). + -- Make sure this matches the string you chose for the "[y/n]" and + -- the "y/n/always/never" prompt, above! This should be reasonable for + -- the end user to enter at a terminal prompt. + ["Y"] = { + af = "Y", + ar = "Ù†", + cs = "A", + da = "J", + de = "J", + el = "Î", + en_AU = "Y", + en_CA = "Y", + en_GB = "Y", + es = "S", + fa = "Y", + fi = "K", + fr = "O", + he = "×›", + hu = "I", + id = "Y", + it = "S", + ja = "Y", + lb = "J", + nb = "J", + nds = "J", + nl = "J", + nn = "J", + pl = "T", + pt = "S", + pt_BR = "S", + ro = "D", + ru = "Y", + sk = "A", + sl = "D", + sv = "J", + tr = "E", + uk = "Т", + zh_TW = "是" + }; + + -- This is used for "no" in stdio UI's yes/no prompts (case insensitive). + -- Make sure this matches the string you chose for the "[y/n]" and + -- the "y/n/always/never" prompt, above! This should be reasonable for + -- the end user to enter at a terminal prompt. + ["N"] = { + af = "N", + ar = "Ù„", + cs = "N", + da = "N", + de = "N", + el = "Ο", + en_AU = "N", + en_CA = "N", + en_GB = "N", + es = "N", + fa = "N", + fi = "E", + fr = "N", + he = "ל", + hu = "N", + id = "T", + it = "N", + ja = "N", + lb = "N", + nb = "N", + nds = "N", + nl = "N", + nn = "N", + pl = "N", + pt = "N", + pt_BR = "N", + ro = "N", + ru = "N", + sk = "N", + sl = "N", + sv = "N", + tr = "H", + uk = "Ð", + zh_TW = "å¦" + }; + + -- This is used for "always" in stdio UI's yes/no/always/never prompts + -- (case insensitive). Make sure this matches the string you chose for + -- the "y/n/always/never" prompt, above! This should be reasonable for + -- the end user to enter at a terminal prompt. + ["Always"] = { + af = "Altyd", + ar = "دائماً", + cs = "Vždy", + da = "Altid", + de = "Immer", + el = "Πάντα", + en_AU = "Always", + en_CA = "Always", + en_GB = "Always", + es = "Siempre", + et = "Alati", + fa = "Always", + fi = "Aina", + fr = "Toujours", + he = "תמיד", + hu = "Mindig", + id = "Selalu", + it = "Sempre", + lb = "Emmer", + nb = "Alltid", + nds = "Immer", + nl = "Altijd", + nn = "Alltid", + pl = "Zawsze", + pt = "Sempre", + pt_BR = "Sempre", + ro = "Mereu", + ru = "Ð’Ñегда", + sk = "Vždy", + sl = "Vedno", + sv = "Alltid", + te = "à°Žà°²à±à°²à°ªà±à°ªà±à°¡à±‚", + tr = "Daima", + uk = "Завжди", + zh_TW = "總是" + }; + + -- This is used for "never" in stdio UI's yes/no/always/never prompts + -- (case insensitive). Make sure this matches the string you chose for + -- the "y/n/always/never" prompt, above! This should be reasonable for + -- the end user to enter at a terminal prompt. + ["Never"] = { + af = "Nooit", + ar = "أبداً", + cs = "niKdy", + da = "Aldrig", + de = "Niemals", + el = "Ποτέ", + en_AU = "Never", + en_CA = "Never", + en_GB = "Never", + es = "Nunca", + et = "Mitte kunagi", + fa = "Never", + fi = "Ei koskaan", + fr = "Jamais", + he = "××£ פע×", + hu = "Soha", + id = "Tidak Pernah", + it = "Mai", + lb = "Nie", + nb = "Aldri", + nds = "Niemals", + nl = "Nooit", + nn = "Aldri", + pl = "Nigdy", + pt = "Nunca", + pt_BR = "Nunca", + ro = "Niciodată", + ru = "Ðикогда", + sk = "Nikdy", + sl = "Nikoli", + sv = "Aldrig", + tr = "Asla", + uk = "Ðіколи", + zh_TW = "æ°¸ä¸" + }; + + -- This is shown when using stdio UI's built-in README pager, to + -- show what range of lines of text are being displayed (%0 is first + -- line, %1 is last line, %2 is the total number of lines of text). + ["(%0-%1 of %2 lines, see more?)"] = { + af = "(%0-%1 van %2 lyne, sien meer?)", + ar = "(%0-%1 من %2 سطور، المزيد؟)", + cs = "(%0-%1 z %2 řádků, zobrazit více?)", + da = "(%0-%1 af %2 linie, vis flere?)", + de = "(%0-%1 von %2 Zeilen, weitere betrachten?)", + el = "(%0-%1 από %2 γÏαμμές, θέλετε να δείτε πεÏισσότεÏες?)", + en_AU = "(%0-%1 of %2 lines, see more?)", + en_CA = "(%0-%1 of %2 lines, see more?)", + en_GB = "(%0-%1 of %2 lines, see more?)", + es = "(%0-%1 de %2 líneas, ¿ver más?)", + fi = "(%0-%1 %2:sta rivistä, lue lisää?)", + fr = "(lignes %0 à %1 sur %2, en voir plus ?)", + he = "(%0-%1 מתוך %2 שורות, להציג עוד?)", + hu = "%0-%1 a %2 sorból, tovább?", + id = "(%0-%1 dari %2 baris, lihat lagi?)", + it = "%0-%1 di %2 linee, desideri visualizzare le successive?", + nb = "(%0-%1 av %2 linjer, se mer?)", + nds = "%0-%1 von %2 Zeilen, mehr sehen?", + nl = "(%0-%1 van %2 regels, meer zien?)", + nn = "(%0-%1 av %2 linjer, sjÃ¥ meir?)", + pl = "(%0-%1 z %2 linii, pokazać wiÄ™cej?", + pt = "(%0-%1 de %2 linhas, ver mais?)", + pt_BR = "(%0-%1 de %2 linhas, ver mais?)", + ro = "(%0-%1 din %2 linii, vizualizează mai mult?)", + ru = "(%0-%1 из %2 Ñтрок, дальше?)", + sk = "(%0-%1 of %2 riadkov, zobraziÅ¥ ÄalÅ¡ie?)", + sl = "(%0-%1 od %2 vrstic, pokaži veÄ?)", + sv = "(%0-%1 av %2 rader, visa fler?)", + tr = "(%2 satırın %0-%1 aralığı, daha fazlası gösterilsin mi?)", + uk = "(%0-%1 з %2 Ñ€Ñдків, показати більше?)", + zh_TW = "(%2 總行數中的第 %0-%1 行,ç€è¦½æ›´å¤šï¼Ÿï¼‰" + }; + + -- The stdio UI uses this sentence in the prompt if the user is able + -- to return to a previous stage of installation (from the options + -- section to the "choose installation destination" section, etc). + ["Type '%0' to go back."] = { + af = "Tik '%0' om terug to gaan.", + ar = "اكتب '%0' للرجوع خطوة", + cs = "NapiÅ¡te '%0' pro návrat zpÄ›t.", + da = "Skriv '%0' for at gÃ¥ tillbage.", + de = "Drücken Sie '%0' um zurückzugehen.", + el = "Πατήστε '%0' για να πάτε πίσω.", + en_AU = "Type '%0' to go back.", + en_CA = "Type '%0' to go back.", + en_GB = "Type '%0' to go back.", + es = "Presiona %0 para volver.", + fi = "Kirjoita '%0' palataksesi edelliseen osioon.", + fr = "Tapez '%0' pour revenir en arrière.", + he = "הקלד '%0' כדי לחזור חזרה.", + hu = "Ãœss '%0'-t a visszalépéshez", + id = "Ketik '%0' untuk kembali.", + it = "Digita %0 per tornare indietro.", + lb = "Tippt '%0' an fir zereck", + nb = "Skriv '%0' for Ã¥ gÃ¥ tilbake.", + nds = "Drücken Sie '%0' um zurückzukehren", + nl = "Typ '%0' om terug te gaan.", + nn = "Skriv '%0' for Ã¥ gÃ¥ tilbake.", + pl = "Wpisz '%0' aby powrócić.", + pt = "Tecle '%0' para voltar.", + pt_BR = "Digite '%0' para voltar.", + ro = "Tastează '%0' pentru a revenii.", + ru = "Ðажмите '%0' чтобы вернутьÑÑ.", + sk = "Zadajte '%0' pre návrat späť.", + sl = "Pritisnite '%0' za korak nazaj.", + sv = "Skriv '%0' för att gÃ¥ tillbaka.", + tr = "Geri dönmek için '%0' yazın.", + uk = "Ðаберіть '%0' Ð´Ð»Ñ Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ", + zh_TW = "輸入 '%0' 以返回" + }; + + -- This is the string used for the '%0' in the above string. + -- This is only for the stdio UI, so choose something easy and + -- reasonable for the user to manually type. The graphical UIs use a + -- different string for their button ("Back" vs "back" specifically). + ["back"] = { + af = "terug", + ar = "رجوع", + cs = "zpÄ›t", + da = "tilbage", + de = "zurück", + el = "πίσω", + en_AU = "back", + en_CA = "back", + en_GB = "back", + es = "Atrás", + et = "tagasi", + fi = "takaisin", + fr = "retour", + he = "חזרה", + hu = "vissza", + id = "kembali", + it = "indietro", + ja = "戻る", + nb = "tilbake", + nds = "Zurück", + nl = "terug", + nn = "tilbake", + pl = "tyÅ‚", + pt = "voltar", + pt_BR = "voltar", + ro = "înapoi", + ru = "назад", + sk = "späť", + sl = "nazaj", + sv = "tillbaka", + te = "వెనకà±à°•à°¿", + tr = "geri", + uk = "назад", + zh_TW = "返回" + }; + + -- This is the prompt in the stdio driver when user input is expected. + ["> "] = { + af = "> ", + ar = "> ", + cs = "> ", + da = "> ", + de = "> ", + el = "> ", + en_AU = "> ", + en_CA = "> ", + en_GB = "> ", + es = "> ", + fi = "> ", + fr = "> ", + he = "> ", + hu = "> ", + id = "> ", + it = "> ", + ja = "> ", + nb = "> ", + nds = "> ", + nl = "> ", + nn = "> ", + pl = "> ", + pt = "> ", + pt_BR = "> ", + ro = "> ", + ru = "> ", + sk = "> ", + sl = "> ", + sv = "> ", + te = "> ", + tr = "> ", + uk = "> ", + zh_TW = "> " + }; + + -- That's meant to be the name of an item (%0) and the percent done (%1). + ["%0: %1%%"] = { + af = "%0: %1%%", + ar = "â€%0: %1%%", + cs = "%0: %1%%", + da = "%0: %1%%", + de = "%0: %1%%", + el = "%0: %1%%", + en_AU = "%0: %1%%", + en_CA = "%0: %1%%", + en_GB = "%0: %1%%", + es = "%0: %1%%", + fi = "%0: %1%%", + fr = "%0 : %1%%", + he = "%0: %1%%", + hu = "%0: %1%%", + id = "%0: %1%%", + it = "%0: %1%%", + ja = "%0: %1%%", + nb = "%0: %1%%", + nds = "%0: %1%%", + nl = "%0: %1%%", + nn = "%0: %1%%", + pl = "%0: %1%%", + pt = "%0: %1%%", + pt_BR = "%0: %1%%", + ro = "%0: %1%%", + ru = "%0: %1%%", + sk = "%0: %1%%", + sl = "%0: %1%%", + sv = "%0: %1%%", + tr = "%0: %%%1", + uk = "%0: %1%%", + zh_TW = "%0: %1%%" + }; + + -- The stdio UI uses this to show current status (%0), + -- and overall progress as percentage of work complete (%1). + ["%0 (total progress: %1%%)"] = { + af = "%0 (totale bevordering: %1%%)", + ar = "â€%0 (باقي للانتهاء: %1%%)", + cs = "%0 (celkový průbÄ›h: %1%%)", + da = "%0 (totalt: %1%%)", + de = "%0 (Gesamtfortschritt: %1%%)", + el = "%0 (συνολική Ï€Ïόοδος: %1%%)", + en_AU = "%0 (total progress: %1%%)", + en_CA = "%0 (total progress: %1%%)", + en_GB = "%0 (total progress: %1%%)", + es = "%0 (Progreso total: %1%%)", + fi = "%0 (kokonaisedistyminen: %1%%)", + fr = "%0 (progression totale : %1%%)", + he = "%0 (תהליך כללי: %1%%)", + hu = "%0 (%1%% kész)", + id = "%0 (jumlah kemajuan: %1%%)", + it = "%0 (progresso: %1%%))", + ja = "%0 (全体ã®é€²æ—: %1%%)", + nb = "%0 (total fremgang: %1%%)", + nds = "%0 (Fortschritt insgesamt: %1%%)", + nl = "%0 (totale voortgang: %1%%)", + nn = "%0 (total framgang: %1%%)", + pl = "%0 (caÅ‚kowity postÄ™p: %1%%)", + pt = "%0 (progresso total: %1%%)", + pt_BR = "%0 (progresso total: %1%%)", + ro = "%0 (total completat: %1%%)", + ru = "%0 (вÑего: %1%%)", + sk = "%0 (celkovo priebeh: %1%%)", + sl = "%0 (celoten napredek: %1%%)", + sv = "%0 (totalt: %1%%)", + tr = "%0 (toplam ilerleme: %%%1)", + uk = "%0 (загальний прогреÑ: %1%%)", + zh_TW = "%0(所有進度:%1%%)" + }; + + -- This prompt is shown to the end-user after an End User License Agreement + -- has been displayed, asking them if the license text is acceptable to + -- them. It's a yes/no question. + ["Accept this license?"] = { + af = "Anvaar die lisensie?", + ar = "هل تقبل بتلك الرخصة؟", + cs = "PÅ™ijímáte podmínky licence?", + da = "Accepter denne licens?", + de = "Lizenz akzeptieren?", + el = "Δέχεστε αυτή την άδεια χÏήσης?", + en_AU = "Accept this license?", + en_CA = "Accept this licence?", + en_GB = "Accept this licence?", + es = "¿Acepta esta licencia?", + fi = "Hyväksy lisenssi?", + fr = "Accepter cette licence ?", + he = "לקבל רשיון ×–×”?", + hu = "Elfogadja a liszenszt?", + id = "Terima lisensi ini?", + it = "Accetti questa licenza?", + ja = "ライセンスã«åŒæ„ã—ã¾ã™ã‹ï¼Ÿ", + nb = "Aksepterer du denne lisensen?", + nds = "Diese Lizenz akzeptieren?", + nl = "Accepteert u deze licentie?", + nn = "Aksepterar du denne lisensen?", + pl = "Akceptujesz licencjÄ™?", + pt = "Aceita esta licença?", + pt_BR = "Aceitar esta licença?", + ro = "AcceptaÅ£i această licenţă?", + ru = "Ð’Ñ‹ ÑоглашаетеÑÑŒ?", + sk = "Súhlasíte s licenciou?", + sl = "Sprejmete to licenco?", + sv = "Godkänn licensavtalet?", + tr = "Bu lisansı kabul et?", + uk = "ПогодитиÑÑ Ð· цими умовами?", + zh_TW = "åŒæ„此許å¯è­‰ï¼Ÿ" + }; + + -- This is a GTK+ button label for yes/no/always/never questions. + -- The '_' comes before the hotkey character. + ["_Always"] = { + af = "_Altyd", + ar = "دا_ئمًا", + cs = "_Vždy", + da = "_Altid", + de = "_Immer", + el = "_Πάντα", + en_AU = "_Always", + en_CA = "_Always", + en_GB = "_Always", + es = "_Siempre", + fi = "_Aina", + fr = "_Toujours", + he = "_תמיד", + hu = "_Mindig", + id = "Sel_alu", + it = "_Sempre", + nb = "_Alltid", + nds = "_Immer", + nl = "_Altijd", + nn = "_Alltid", + pl = "_Zawsze", + pt = "_Sempre", + pt_BR = "_Sempre", + ro = "_Mereu", + ru = "_Ð’Ñегда", + sk = "_Vždy", + sl = "_Vedno", + sv = "_Alltid", + tr = "_Daima", + uk = "Зав_жди", + zh_TW = "總是(_A)" + }; + + -- This is an error message reported when a .zip file (or whatever) that + -- we need can't be located. + ["Archive not found"] = { + af = "Argief nie gevind", + ar = "الأرشي٠غير موجود", + cs = "Archiv nenalezen", + da = "Arkiv ikke fundet", + de = "Archiv nicht gefunden", + el = "Το αÏχείο δεν βÏέθηκε.", + en_AU = "Archive not found", + en_CA = "Archive not found", + en_GB = "Archive not found", + es = "Archivo no encontrado", + fi = "Pakettia ei löydy", + fr = "Archive introuvable", + he = "×”×רכיון ×œ× × ×ž×¦×", + hu = "Arhív nem található", + id = "Arsip tidak ditemukan", + it = "Archivio non presente", + ja = "アーカイブãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“", + nb = "Fant ikke arkiv", + nds = "Archiv nicht gefunden", + nl = "Archief niet gevonden", + nn = "Fant ikkje arkiv", + pl = "Archiwum nie znalezione", + pt = "Arquivo não encontrado", + pt_BR = "Arquivo não encontrado", + ro = "Arhiva nu a fost găsită", + ru = "Ðрхив не найден", + sk = "Archív nenájdený", + sl = "Arhiva ni možno najti", + sv = "Hittade inte arkivet", + tr = "ArÅŸiv bulunamadı", + uk = "Ðрхів не знайдено", + zh_TW = "找ä¸åˆ°æª”案包" + }; + + -- This prompt is shown to the user when they click the "Cancel" button, + -- to confirm they really want to stop. It's a yes/no question. + ["Are you sure you want to cancel installation?"] = { + af = "Is jy seker jy will die installasie kanseleer?", + ar = "أألغي التنثبيت؟", + cs = "Opravdu chcete zruÅ¡it instalaci?", + da = "Vil du afbryde installationen?", + de = "Sind Sie sicher, dass Sie die Installation abbrechen wollen?", + el = "Είστε σίγουÏοι ότι θέλετε να ακυÏώσετε την εγκατάσταση?", + en_AU = "Are you sure you want to cancel installation?", + en_CA = "Are you sure you want to cancel installation?", + en_GB = "Are you sure you want to cancel installation?", + es = "¿Está seguro de que quiere cancelar la instalación?", + fi = "Haluatko varmasti keskeyttää asennuksen?", + fr = "Êtes-vous sûr de vouloir annuler l'installation ?", + he = "×”×× ×תה בטוח שברצונך לבטל ×ת ההתקנה?", + hu = "Tényleg megszakítja a telepítést?", + id = "Apakah Anda yakin ingin membatalkan isntalasii?", + it = "Sei sicuro di voler annullare l'installazione?", + ja = "本当ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’中止ã—ã¾ã™ã‹ï¼Ÿ", + nb = "Er du sikker pÃ¥ at du vil avbryte installasjonen?", + nds = "Sind Sie sicher, dass Sie die Installation abbrechen wollen?", + nl = "Weet u zeker dat u de installatie wilt afbreken?", + nn = "Er du sikker pÃ¥ at du vil avbryta installasjonen?", + pl = "Czy na pewno chcesz anulować instalacjÄ™?", + pt = "Tem a certeza que quer cancelar a instalação?", + pt_BR = "Você tem certeza que deseja cancelar a instalação?", + ro = "SunteÅ£i sigur că doriÅ£i anularea instalării?", + ru = "Ð’Ñ‹ дейÑтвительно хотите отменить уÑтановку?", + sk = "Ste si istí, že chcete preruÅ¡iÅ¥ inÅ¡taláciu?", + sl = "Ste prepriÄani da želite prekiniti namestitev?", + sv = "Är du säker pÃ¥ att du vill avbryta installationen?", + tr = "Kurulumu iptal etmek istediÄŸinizden emin misiniz?", + uk = "Ви впевнені що хочете відмінити вÑтановленнÑ?", + zh_TW = "確定å–消安è£ç¨‹åºï¼Ÿ" + }; + + -- The opposite of "next", used as a UI button label. + ["Back"] = { + af = "Terug", + ar = "ارجع", + cs = "ZpÄ›t", + da = "Tilbage", + de = "Zurück", + el = "ΠÏοηγοÏμενο", + en_AU = "Back", + en_CA = "Back", + en_GB = "Back", + es = "Atrás", + fi = "Takaisin", + fr = "Retour", + he = "הקוד×", + hu = "Vissza", + id = "Kembali", + it = "Indietro", + ja = "戻る", + nb = "Tilbake", + nds = "Zurück", + nl = "Vorige", + nn = "Tilbake", + pl = "Wstecz", + pt = "Anterior", + pt_BR = "Voltar", + ro = "Precedentul", + ru = "Ðазад", + sk = "Späť", + sl = "Nazaj", + sv = "Tillbaka", + tr = "Geri", + uk = "Ðазад", + zh_TW = "返回" + }; + + -- This is a GTK+ button label. The '_' comes before the hotkey character. + -- "Back" might be using 'B' in English. This button brings up a file + -- dialog where the end-user can navigate to and select files. + ["B_rowse..."] = { + af = "T_erug", + ar = "ت_صÙØ­", + cs = "_Procházet...", + da = "_Gennemse...", + de = "Du_rchsuchen", + el = "_Αναζήτηση...", + en_AU = "B_rowse...", + en_CA = "B_rowse...", + en_GB = "B_rowse...", + es = "_Navegar...", + fi = "_Selaa", + fr = "_Choisir...", + he = "_עיון...", + hu = "_Tallózás...", + it = "_Sfoglia...", + nb = "_Bla gjennom…", + nds = "Du_rchsuchen", + nl = "Bl_aderen...", + nn = "_Bla gjennom…", + pl = "P_rzeglÄ…daj...", + pt = "_Procurar...", + pt_BR = "_Procurar...", + ro = "Na_vigare...", + ru = "Открыть...", + sk = "P_rehliadaÅ¥...", + sl = "B_rskaj ...", + sv = "B_läddra", + tr = "G_özat...", + uk = "_ОглÑд...", + zh_TW = "ç€è¦½(_B)" + }; + + -- All the "BUG:" strings are generally meant to be seen by developers, + -- not end users. They represent programming errors and configuration + -- file problems. + -- This is shown if the configuration file has specified two cd-roms (or + -- whatever) with the same media id, which is a bug the developer must + -- fix before shipping her installer. + -- "media id" refers to Setup.Media.id in the config file. It's not meant + -- to be a proper name, in this case. + ["BUG: duplicate media id"] = { + af = "Kewer: gedupliseerde media id", + ar = "بقة: media id مكرر", + cs = "CHYBA: duplicitní id média", + da = "FEJL: dobbelt forekomst af 'media id'", + de = "FEHLER: Doppelte Medien-ID", + el = "ΣΦΑΛΜΑ: διπλή αναφοÏά στο ίδιο media id", + en_AU = "BUG: duplicate media id", + en_CA = "BUG: duplicate media id", + en_GB = "BUG: duplicate media id", + es = "FALLO: id de medio duplicada", + fi = "BUGI: kaksi identtistä media id:tä", + fr = "BUG: Identifiant du media déjà utilisé", + he = "ב××’: מזהה מדיה כפול", + hu = "BUG: duplikált média azonosító (media id)", + id = "KUTU: id media salinan", + it = "BUG: media id duplicato", + nb = "Programfeil: duplisert media-id", + nds = "FEHLER: Doppelte Medien-ID", + nl = "BUG: dubbele media id", + nn = "Programfeil: duplisert media-id", + pl = "BÅÄ„D: zduplikowany identyfikator media", + pt = "BUG: id de mídia duplicado", + pt_BR = "BUG: ID da mídia duplicado", + ro = "EROARE: media id duplicat", + ru = "Ошибка: дублирование media_id", + sk = "CHYBA: duplicitné médiá id", + sl = "NAPAKA: podvojen media id", + sv = "FEL: dubblett av media id", + tr = "HATA: tekrarlanan ortam kimliÄŸi", + zh_TW = "臭蟲:é‡è¤‡çš„媒體åºè™Ÿ" + }; + + -- This is shown if the configuration file has no installable options, + -- either because none are listed or they've all become disabled, which + -- is a bug the developer must fix before shipping her installer. + ["BUG: no options"] = { + af = "Kewer: geen opsies", + ar = "بقة: لا يوجد options", + cs = "CHYBA: nejsou dostupné žádné volby", + da = "FEJL: ingen muligheder", + de = "FEHLER: Keine Optionen", + el = "ΣΦΑΛΜΑ: δεν υπάÏχουν Ïυθμίσεις εγκατάστασης", + en_AU = "BUG: no options", + en_CA = "BUG: no options", + en_GB = "BUG: no options", + es = "FALLO: sin opciones", + fi = "OHJELMOINTIVIRHE: Ei valittavia kohtia saatavilla", + fr = "BUG: Pas d'options", + he = "ב××’: ×ין ×פשרויות", + hu = "BUG: nincsenek opciók", + id = "KUTU: tidak ada pilihan", + it = "BUG: nessuna opzione disponibile", + lb = "FEHLER : Keng Optiounen", + nb = "Programfeil: ingen valg", + nds = "FEHLER: keine Option", + nl = "BUG: geen opties", + nn = "Programfeil: ingen val", + pl = "BÅÄ„D: brak opcji", + pt = "BUG: sem opções", + pt_BR = "BUG: Sem opções", + ro = "EROARE: nici o opÅ£iune", + ru = "Ошибка: отÑутÑтвуют опции", + sk = "CHYBA: žiadne inÅ¡talaÄné možnosti", + sl = "NAPAKA: ni izbir", + sv = "FEL: inget alternativ", + tr = "HATA: seçenek yok", + zh_TW = "臭蟲:沒有é¸é …" + }; + + -- This is shown if the config file wants us to include the uninstaller + -- program with the rest of the files we write to disk, but didn't enable + -- the manifest support the installer needs. This is a bug the developer + -- must fix before shipping her installer. + ["BUG: support_uninstall requires write_manifest"] = { + af = "Kewer: support_uninstall vereis write_manifest", + ar = "بقة: support_uninstall يحتاج write_manifest", + cs = "CHYBA: support_uninstall vyžaduje write_manifest", + de = "FEHLER: support_uninstall benötigt write_manifest", + el = "ΣΦΑΛΜΑ: το \"support_uninstall\" απαιτεί το \"write_manifest\"", + en_AU = "BUG: support_uninstall requires write_manifest", + en_CA = "BUG: support_uninstall requires write_manifest", + en_GB = "BUG: support_uninstall requires write_manifest", + es = "ERROR: La desintalacion requiere write_manifest", + fi = "BUGI: support_uninstall vaatii write_manifest:n", + fr = "BOGUE: 'support_uninstall' exige 'write_manifest'", + he = "ב××’: support_uninstall דורש ×ת write_manifest", + hu = "BUG: support_uninstall igényli a write_manifest -et", + it = "BUG: support_uninstall richiede write_manifest", + nb = "Programfeil: support_uninstall krever write_manifest", + nds = "FEHLER: support_uninstall benötigt write_manifest", + nl = "BUG: support_uninstall heeft write_manifest nodig", + nn = "Programfeil: support_uninstall krevar write_manifest", + pl = "BÅÄ„D: support_uninstall wymaga write_manifest", + pt = "BUG: support_uninstall requer write_manifest", + pt_BR = "BUG: support_uninstall necessita de write_manifest", + ro = "EROARE: support_uninstall necesită write_manifest", + ru = "Ошибка: support_uninstall нуждаетÑÑ Ð² write_manifest", + sk = "CHYBA: support_uninstall potrebuje write_manifest", + sl = "NAPAKA: support_uninstall potrebuje write_manifest", + sv = "FEL: support_uninstall kräver write_manifest", + tr = "HATA: support_uninstall write_manifest gerektirir", + zh_TW = "臭蟲:support_uninstall éœ€è¦ write_manifest" + }; + + -- This is shown if the config file wants us to install a manifest (a list + -- of everything we wrote to disk) but didn't enable Lua parser support + -- in the binary, which they need to handle Lua source code without + -- compiling it first (as it needs to be "parsed")...the manifest is + -- ultimately just an uncompiled Lua program that the installer generates. + -- This is a bug the developer must fix before shipping her installer. + ["BUG: write_manifest requires Lua parser support"] = { + af = "Kewer: write_manifest vereis Lua omskakelaar ondersteuning", + ar = "بقة: write_manifest يحتاج دعم معالج Lua", + cs = "CHYBA: write_manifest vyžaduje podporu Lua parseru", + de = "FEHLER: write_manifest benötigt Lua Parser Unterstützung", + el = "ΣΦΑΛΜΑ: το \"write_manifest\" απαιτεί να υπάÏχει υποστήÏιξη από \"Lua parser\"", + en_AU = "BUG: write_manifest requires Lua parser support", + en_CA = "BUG: write_manifest requires Lua parser support", + en_GB = "BUG: write_manifest requires Lua parser support", + es = "ERROR: write_manifest requiere un intérprete Lua", + fr = "BOGUE: 'write_manifest' exige le support du parser Lua", + he = "ב××’: write_manifest דורש ×ת התמיכה במפענח Lua", + hu = "BUG: write_manifest igényli a Lua értelmezÅ‘ támogatást", + it = "BUG: write_manifest richiede Lua parser support", + nb = "Programfeil: write_manifest krever støtte for Lua-parser", + nds = "FEHLER: write_manifest benötigt Lua Parser Unterstützung", + nl = "BUG: write_manifest heeft Lua parser ondersteuning nodig", + nn = "Programfeil: write_manifest krevar støtte for Lua-parser", + pl = "BÅÄ„D: write_manifest wymaga obsÅ‚ugi parsera Lua", + pt = "BUG: write_manifest requer suporte do analisador da linguagem Lua", + pt_BR = "BUG: write_manifest necessita do suporte ao parser de Lua", + ro = "EROARE: write_manifest necesită suport Lua", + ru = "Ошибка: write_manifest требует поддержки Lua parser", + sk = "CHYBA: write_manifest potrebuje zapnutú podporu Lua parsera (Lua parser support)", + sl = "NAPAKA: write_manifest potrebuje podporo Lua parserja", + sv = "FEL: write_manifest kräver Lua parser stöd", + tr = "HATA: write_manifest Lua derleyicisi desteÄŸi gerektirir", + zh_TW = "臭蟲:write_manifest éœ€è¦ Lua 語法分æžæ”¯æ´" + }; + + -- This is shown if the config file wants us to add desktop menu items + -- but uninstaller support isn't enabled. It is considered bad taste + -- to add system menu items without a way to remove them. This is + -- a bug the developer must fix before shipping her installer. + ["BUG: Setup.DesktopMenuItem requires support_uninstall"] = { + af = "Kewer: Setup.DesktopMenuItem vereis support_uninstall", + ar = "بقة: Setup.DesktopMenuItem يحتاج support_uninstall", + cs = "CHYBA: Setup.DesktopMenuItem vyžaduje support_uninstall", + de = "FEHLER: Setup.DesktopMenuItem benötigt support_uninstall", + el = "ΣΦΑΛΜΑ: το Setup.DesktopMenuItem απαιτεί το \"support_uninstall\"", + en_AU = "BUG: Setup.DesktopMenuItem requires support_uninstall", + en_CA = "BUG: Setup.DesktopMenuItem requires support_uninstall", + en_GB = "BUG: Setup.DesktopMenuItem requires support_uninstall", + es = "FALLO: Setup.DesktopMenuItem requiere support_uninstall", + fi = "BUGI: Setup.DesktopMenuItem vaatii support_uninstall:n", + fr = "BOGUE: 'Setup.DesktopMenuItem' exige 'support_uninstall'", + he = "ב××’: Setup.DesktopMenuItem דורש ×ת support_uninstall", + hu = "BUG: Setup.DesktopMenuItem igényli a support_uninstall-t", + it = "BUG: Setup.DesktopMenuItem richiede support_uninstall", + nb = "Programfeil: Setup.DesktopMenuItem krever support_uninstall", + nds = "FEHLER: Setup.DesktopMenuItem benötigt support_uninstall", + nl = "BUG: Setup.DesktopMenuItem heeft support_uninstall nodig", + nn = "Programfeil: Setup.DesktopMenuItem krevar support_uninstall", + pl = "BÅÄ„D: Setup.DesktopMenuItem wymaga support_uninstall", + pt = "BUG: Setup.DesktopMenuItem requer support_uninstall", + pt_BR = "BUG: Setup.DesktopMenuItem necessita do support_uninstall", + ro = "EROARE: Setup.DesktopMenuItem necesită support_uninstall", + ru = "Ошибка: Setup.DesktopMenuItem нуждаетÑÑ Ð² support_uninstall", + sk = "CHYBA: Setup.DesktopMenuItem potrebuje support_uninstall", + sl = "NAPAKA: Setup.DesktopMenuItem potrebuje support_uninstall", + sv = "FEL: Setup.DesktopMenuItem kräver support_uninstall", + tr = "HATA: Setup.DesktopMenuItem support_uninstall gerektirir", + zh_TW = "臭蟲:Setup.DesktopMenuItem éœ€è¦ support_uninstall" + }; + + -- This is a file's permissions. Programmers give these as strings, and + -- if one isn't valid, the program will report this. So, on Unix, they + -- might specify "0600" as a valid string, but "sdfksjdfk" wouldn't be + -- valid and would cause this error. + ["BUG: '%0' is not a valid permission string"] = { + af = "Kewer: '%0' is nie 'n geldige toestemming string nie", + ar = "بقة: '%0' تعري٠إذن غير صحيح", + cs = "CHYBA: '%0' není platným Å™etÄ›zcem vyjadÅ™ujícím oprávnÄ›ní", + da = "FEJL: '%0' er ikke en korrekt rettigheds syntaks", + de = "FEHLER: '%0' ist keine zulässige Berechtigungszeichenkette", + el = "ΣΦΑΛΜΑ: '%0' δεν είναι έγγυÏο αλφαÏιθμητικό πεÏιγÏαφής δικαιωμάτων", + en_AU = "BUG: '%0' is not a valid permission string", + en_CA = "BUG: '%0' is not a valid permission string", + en_GB = "BUG: '%0' is not a valid permission string", + es = "FALLO: '%0' no es una cadena de permisos válida", + fi = "OHJELMOINTIVIRHE: \"%0\" ei ole kelvollinen oikeuksia määrittävä merkkijono", + fr = "BUG \"%0\" n'est pas une chaîne de permission valide", + he = "ב××’: '%0' ×ינו מחרוזת הרש××” תקנית", + hu = "BUG: '%0' nem érvényes jogosultság sztring", + it = "BUG: '%0' non è una stringa valida di permessi", + nb = "Programfeil: '%0' er ikke en gyldig rettighetsstreng", + nds = "FEHLER: '%0' ist kein gültiger Zugriffsberechtigungs String", + nl = "BUG: '%0' is geen geldige permissie string", + nn = "Programfeil: '%0' er ikkje ein gyldig rettighetsstreng", + pl = "BÅÄ„D: '%0' nie jest poprawnÄ… wartoÅ›ciÄ… dostÄ™pu", + pt = "BUG: '%0' não é uma expressão de permissões válida", + pt_BR = "BUG: '%0' não é um texto de permissão válido", + ro = "EROARE: '%0' nu este un ÅŸir de caractere ce desemnează permisiuni valide", + ru = "Ошибка: '%0' неправильное значение Ð´Ð»Ñ Ð¿Ñ€Ð°Ð².", + sk = "CHYBA: '%0' nie je správny spôsob zápisu práv", + sl = "NAPAKA: '%0' ni velaven niz za dovoljenja", + sv = "FEL: '%0' är inte en giltig rättighetssträng", + tr = "HATA: '%0' geçerli bir izin dizgisi deÄŸil", + zh_TW = "臭蟲:'%0' 並ä¸æ˜¯æœ‰æ•ˆçš„檔案權é™è¨­å®š" + }; + + -- If there's a string in the program that needs be formatted with + -- %0, %1, etc, and it specifies an invalid sequence like "%z", this + -- error pops up to inform the programmer/translator. + -- "format()" is a proper name in this case (program function name) + ["BUG: Invalid format() string"] = { + af = "Kewer: Ongeldige format() string", + ar = "بقة: format() غير صحيحة", + cs = "CHYBA: Neplatný Å™etÄ›zec pro format()", + de = "FEHLER: Unzulässige format() Zeichenkette", + el = "ΣΦΑΛΜΑ: Λάθος format() αλφαÏιθμητικό", + en_AU = "BUG: Invalid format() string", + en_CA = "BUG: Invalid format() string", + en_GB = "BUG: Invalid format() string", + es = "FALLO: Cadena format() no válida", + fi = "BUGI: Epäkelpo format()-merkkijono", + fr = "BUG: Chaîne format() invalide", + he = "ב××’: מחרוזת format() שגויה", + hu = "BUG: Helytelen format() sztring", + id = "KUTU: Format() strik tidak cocok", + it = "BUG: stringa format() non valida", + nb = "Programfeil: Ugyldig format()-streng", + nds = "FEHLER: Ungültiger format() string", + nl = "BUG: Ongeldige format() string", + nn = "Programfeil: Ugyldig format()-streng", + pl = "BÅÄ„D: NieprawidÅ‚owy ciÄ…g format()", + pt = "BUG: Expressão format() inválida", + pt_BR = "BUG: Texto format() inválido", + ro = "EROARE: Åžir de caractere format() invalid", + ru = "Ошибка: ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ñтрока format()", + sk = "CHYBA: nesprávny format() reÅ¥azec", + sl = "NAPAKA: Neveljaven niz format()", + sv = "FEL: Ogiltig format() sträng", + tr = "HATA: Geçersiz format() dizgisi", + zh_TW = "臭蟲:無效的 format() 字串" + }; + + -- The program runs in "stages" and as it transitions from one stage to + -- another, it has to report some data about what happened during the + -- stage. A programming bug may cause unexpected type of data to be + -- reported, causing this error to pop up. + ["BUG: stage returned wrong type"] = { + af = "Kewer: stage het 'n verkeerde tipe terug gevoer", + ar = "بقة: المرحلة انهت بنوع خاطئ", + cs = "CHYBA: instalaÄní krok vrátil chybný datový typ", + de = "FEHLER: Abschnitt gab falschen Typ zurück", + el = "ΣΦΑΛΜΑ: η φάση εγκατάστασης επέστÏεψε λάθος Ï„Ïπο δεδομένων", + en_AU = "BUG: stage returned wrong type", + en_CA = "BUG: stage returned wrong type", + en_GB = "BUG: stage returned wrong type", + es = "FALLO: la etapa ha devuelto tipo erróneo", + fr = "BUG: L'étape renvoie un mauvais type de données", + he = "ב××’: השלב החזיר סוג שגוי", + hu = "BUG: az állomás rossz típussal tért vissza", + it = "BUG: la fase attuale (stage) ha restituito un tipo non valido", + nb = "Programfeil: nivÃ¥ returnerte feil type", + nds = "FEHLER: Arbeitsabschnitts Rückgabewert ist vom falschen Typ", + nl = "BUG: programma-fase leverde een verkeerd datatype", + nn = "Programfeil: nivÃ¥ returnerte feil type", + pl = "BÅÄ„D: kolejna faza zwróciÅ‚a zÅ‚y typ", + pt = "BUG: A etapa retornou um tipo errado", + pt_BR = "BUG: a etapa retornou o tipo errado", + ro = "EROARE: stadiul a returnat un tip de date eronat", + ru = "Ошибка: Ñтап выдал неожиданный тип", + sk = "CHYBA: fáza vrátila nesprávny typ", + sl = "NAPAKA: faza vraÄa napaÄen tip", + sv = "FEL: nivÃ¥ returnerade fel typ", + tr = "HATA: aÅŸama yanlış tip döndürdü", + zh_TW = "臭蟲:此階段傳回錯誤類別" + }; + + -- The program runs in "stages" and as it transitions from one stage to + -- another, it has to report some data about what happened during the + -- stage. A programming bug may cause unexpected information to be + -- reported, causing this error to pop up. + ["BUG: stage returned wrong value"] = { + af = "Kewer: Fase het 'n verkeerde waarde terug gevoer", + ar = "بقة: المرحلة انهت بقيمة خاطئة", + cs = "CHYBA: instalaÄní krok vrátil chybnou hodnotu", + de = "FEHLER: Abschnitt gab falschen Wert zurück", + el = "ΣΦΑΛΜΑ: η φάση εγκατάστασης επέστÏεψε λάθος τιμή", + en_AU = "BUG: stage returned wrong value", + en_CA = "BUG: stage returned wrong value", + en_GB = "BUG: stage returned wrong value", + es = "FALLO: la etapa ha devuelto valor erróneo", + fr = "BUG: L'étape renvoie une mauvaise valeur", + he = "ב××’: השלב החזיר ערך שגוי", + hu = "BUG: az állomás rossz értékkel tért vissza", + it = "BUG: la fase attuale (stage) ha restituito un valore non valido", + nb = "Programfeil: nivÃ¥ returnerte feil verdi", + nds = "FEHLER: Arbeitsabschnitt gab falschen Wert zurück", + nl = "BUG: programma-fase leverde een verkeerde waarde", + nn = "Programfeil: nivÃ¥ returnerte feil verdi", + pl = "BÅÄ„D: kolejna faza zwróciÅ‚a zÅ‚Ä… wartość", + pt = "BUG: A etapa retornou um valor errado", + pt_BR = "BUG: a etapa retornou o valor errado", + ro = "EROARE: stadiul a returnat o valoare invalidă", + ru = "Ошибка: Ñтап выдал неожиданный результат", + sk = "CHYBA: fáza vrátila nesprávnu hodnotu", + sl = "NAPAKA: faza vraÄa napÄno vrednost", + sv = "FEL: nivÃ¥ returnerade fel värde", + tr = "HATA: aÅŸama yanlış deÄŸer döndürdü", + zh_TW = "臭蟲:此階段傳回錯誤值" + }; + + -- The program runs in "stages", which can in many cases be revisited + -- by the user clicking the "Back" button. If the program has a bug + -- that allows the user to click "Back" on the initial stage, this + -- error pops up. + ["BUG: stepped back over start of stages"] = { + af = "Kewer: terug gestap verby die begin van die fases", + ar = "بقة: عودة للوراء ÙÙŠ اول خطوة", + cs = "CHYBA: pokus o krok zpÄ›t pÅ™ed zaÄátek instalace", + de = "FEHLER: Ãœber den Startabschnitt hinaus zurückgegangen", + el = "ΣΦΑΛΜΑ: ζητήθηκε η επιστÏοφή σε Ï€ÏοηγοÏμενη φάση που δεν υπάÏχει", + en_AU = "BUG: stepped back over start of stages", + en_CA = "BUG: stepped back over start of stages", + en_GB = "BUG: stepped back over start of stages", + es = "FALLO: retroceso más atrás del inicio de las etapas", + fr = "BUG: Revenu au début des étapes", + he = "ב××’: צעד ×חורה ×ל מעבר לשלבי ההתחלה", + hu = "BUG: visszalépés a kezdÅ‘ állomás után", + it = "BUG: ritornato all'inizio della fase (stage)", + nb = "Programfeil: Gikk tilbake forbi startnivÃ¥", + nds = "FEHLER: Vor den ersten Arbeitsabschnitt zurückgegangen", + nl = "BUG: teruggegaan naar voor eerste stadium.", + nn = "Programfeil: Gjekk tilbake forbi startnivÃ¥", + pl = "BÅÄ„D: Krok wstecz podczas poczÄ…tkowej fazy", + pt = "BUG: Retrocedeu na primeira etapa", + pt_BR = "BUG: voltar na primeira etapa", + ro = "EROARE: s-a făcut întoarcere înainte de începerea stadiilor", + ru = "БÐГ: переход назад Ñ Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñтапа", + sk = "CHYBA: vrátili ste sa pred zaÄiatok poÄiatoÄnej fázy", + sl = "NAPAKA: prestop nazaj preko zaÄetka faz", + sv = "FEL: Gick tillbaka förbi startnivÃ¥", + tr = "HATA: baÅŸlangıç aÅŸamasından geri dönüldü", + zh_TW = "臭蟲:在起始階段進行返回" + }; + + -- This happens if there's an unusual case when writing out Lua scripts + -- to disk. This should never be seen by an end-user. + ["BUG: Unhandled data type"] = { + af = "BUG: Ongehanteerde data tipe", + ar = "بقة: نوع بيانات لا يمكن التعامل معه", + cs = "CHYBA: Datový typ není obsluhován", + de = "FEHLER: Unbehandelter Datentyp", + el = "ΣΦΑΛΜΑ: Άγνωστος Ï„Ïπος δεδομένων", + en_AU = "BUG: Unhandled data type", + en_CA = "BUG: Unhandled data type", + en_GB = "BUG: Unhandled data type", + es = "FALLO: Tipo de datos sin manipular", + fr = "BUG: Type de fichier inconnu", + he = "ב××’: סוג ×”× ×ª×•× ×™× ×‘×œ×ª×™ מטופל", + hu = "BUG: Lekezeletlen adattípus", + id = "KUTU: Jenis data yang tidak ditangani", + it = "BUG: tipo di dato non gestito", + nb = "Programfeil: UhÃ¥ndtert datatype", + nds = "FEHLER: Unbehandelter Datentyp", + nl = "BUG: onbekend data type", + nn = "Programfeil: UhÃ¥ndtert datatype", + pl = "BÅÄ„D: NieobsÅ‚ugiwany typ danych", + pt = "BUG: Tipo sem tratamento", + pt_BR = "BUG: tipo de dado não suportado", + ro = "EROARE: Tip de date invalid", + ru = "Ошибка: неподдерживаемый тип данных", + sk = "CHYBA: Nespracovateľný typ dát", + sl = "NAPAKA: Neuporaben tip podatkov", + sv = "FEL: Ohanterad datatyp", + tr = "HATA: Tanıtılmamış veri tipi", + zh_TW = "臭蟲:未處ç†çš„資料類別" + }; + + -- This is triggered by a logic bug in the i/o subsystem. + -- This should never be seen by an end-user. + -- "tar" is a proper name in this case (it's a file format). + ["BUG: Can't duplicate tar inputs"] = { + af = "Kewer: Kan nie tar toevoere dupliseer nie", + ar = "بقة: لا يمكن تكرار مدخلات tar", + cs = "CHYBA: Nemohu zduplikovat vstupy z taru", + de = "FEHLER: Tar-Eingaben können nicht dupliziert werden", + el = "ΣΦΑΛΜΑ: Δεν είναι δυναταή αντιγÏαφή των δεδομένων εισόδου του \"tar\"", + en_AU = "BUG: Can't duplicate tar inputs", + en_CA = "BUG: Can't duplicate tar inputs", + en_GB = "BUG: Can't duplicate tar inputs", + es = "FALLO: No se pueden duplicar las entradas tar", + fr = "BUG: Impossible de dupliquer les entrées tar", + he = "ב××’: ×œ× × ×™×ª×Ÿ לשכפל פלט מסוג tar", + hu = "BUG: tar bemenet nem duplikálható", + id = "KUTU: Tidak dapat menyalin masukan tar", + it = "BUG: impossibile duplicare il .tar di input", + nb = "Programfeil: Kan ikke duplisere innfiler for tar", + nds = "FEHLER: Kann tar-Eingaben nicht duplizieren", + nl = "BUG: kan tar input kan niet gedupliceerd woorden.", + nn = "Programfeil: Kan ikke duplisere innfiler for tar", + pl = "BÅÄ„D: Nie można zduplikować wejść tar", + pt = "BUG: Impossível duplicar as entradas do tar", + pt_BR = "BUG: Não é possível duplicar as entradas do tar", + ro = "EROARE: Nu se pot dubla datele de intrare tar", + ru = "Ошибка: Ð½ÐµÐ»ÑŒÐ·Ñ Ð´ÑƒÐ±Ð»Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ иÑходные данные Ð´Ð»Ñ tar", + sk = "CHYBA: Nemôžete duplikovaÅ¥ tar vstupy", + sl = "NAPAKA: Podvajanje vnosov v tar ni možno", + sv = "FEL: Kan inte duplicera infiler för tar", + tr = "HATA: Tar giriÅŸleri çoklanamıyor", + zh_TW = "臭蟲:無法é‡è¤‡ tar 的輸入" + }; + + -- This is a generic error message when a programming bug produced a + -- result we weren't expecting (a negative number when we expected + -- positive, etc...) + ["BUG: Unexpected value"] = { + af = "Kewer: Onverwagte waarde", + ar = "بقة: قيمة غير متوقعة", + cs = "CHYBA: NeoÄekávaná hodnota", + de = "FEHLER: Unerwarteter Wert", + el = "ΣΦΑΛΜΑ: Μη αναμενόμενη τιμή", + en_AU = "BUG: Unexpected value", + en_CA = "BUG: Unexpected value", + en_GB = "BUG: Unexpected value", + es = "FALLO: Valor inesperado", + fi = "BUGI: Odottamaton arvo", + fr = "BUG: Valeur inattendue", + he = "ב××’: ערך בלתי צפוי", + hu = "BUG: váratlan érték", + id = "KUTU: Nilai yang tidak diharapkan", + it = "BUG: Valore inatteso", + lb = "FEHLER : Onerwaart Werter", + nb = "Programfeil: Uventet verdi", + nds = "FEHLER: Unerwarteter Wert", + nl = "BUG: Onverwachte waarde", + nn = "Programfeil: Uventa verdi", + pl = "BÅÄ„D: Niespodziewana wartość", + pt = "BUG: Valor inexperado", + pt_BR = "BUG: valor inesperado", + ro = "EROARE: Valoare neaÅŸteptată", + ru = "Ошибка: Ðеожиданное значение", + sk = "CHYBA: NeoÄakávaná hodnota", + sl = "NAPAKA: NepriÄakovana vrednost", + sv = "FEL: Oväntat värde", + tr = "HATA: Beklenmeyen deÄŸer", + zh_TW = "臭蟲:æ„外的值" + }; + + -- Buggy config elements: + -- This is supposed to be a config element (%0) and something that's wrong + -- with it (%1), such as "BUG: Config Package::description not a string" + -- The grammar can be imperfect here; this is a developer error, not an + -- end-user error, so we haven't made this very flexible. + ["BUG: Config %0 %1"] = { + af = "Kewer: Konfigurasie %0 %1", + ar = "بقة: الإعداد %0 %1", + cs = "CHYBA: KonfiguraÄní hodnota %0 %1", + da = "FEJL: Konfiguration %0 %1", + de = "FEHLER: Konfiguration %0 %1", + el = "ΣΦΑΛΜΑ: ΠαÏάμετÏος %0 %1", + en_AU = "BUG: Config %0 %1", + en_CA = "BUG: Config %0 %1", + en_GB = "BUG: Config %0 %1", + es = "FALLO: Configuración %0 %1", + fi = "OHJELMOINTIVIRHE: Asetus %0 %1", + fr = "BUG: Config %0 %1", + he = "ב××’: תצורה %0 %1", + hu = "BUG: Beállítás %0 %1", + id = "KUTU: Atur %0 %1", + it = "BUG: Config %0 %1", + nb = "Programfeil: Konfigurasjon %0 %1", + nds = "FEHLER: Konfiguration %0 %1", + nl = "BUG: configuratie %0 %1", + nn = "Programfeil: Konfigurasjon %0 %1", + pl = "BÅÄ„D: Konfiguracja %0 $1", + pt = "BUG: Configuração %0 %1", + pt_BR = "BUG: Configuração %0 %1", + ro = "EROARE: ConfiguraÅ£ie %0 %1", + ru = "Ошибка: ÐžÐ¿Ñ†Ð¸Ñ %0 %1", + sk = "CHYBA: Config %0 %1", + sl = "NAPAKA: Nastavitev %0 %1", + sv = "FEL: Konfiguration %0 %1", + tr = "HATA: Yapılandırma %0 için sorun %1", + zh_TW = "臭蟲:設定 %0 %1" + }; + + -- This is an error string for a buggy config element. See notes above. + ["invalid string"] = { + cs = "není platným Å™etÄ›zcem", + de = "ungültige Zeichenkette", + en_AU = "invalid string", + en_GB = "invalid string", + es = "cadena de texto inválida", + fr = "chaîne invalide", + he = "מחרוזת ×œ× ×ª×§×™× ×”", + it = "Stringa non valida", + nds = "ungültige Zeichenkette", + nl = "foute string", + pt = "expressão inválida", + ro = "ÅŸir de caractere invalid", + sk = "neplatný reÅ¥azec", + sv = "Felaktig sträng", + tr = "geçersiz dizgi", + zh_TW = "無效的字串" + }; + + -- This is an error string for a buggy config element. See notes above. + ["must be explicitly specified"] = { + af = "moet uitdruklik gespesifiseer word", + ar = "يجب تحديده", + cs = "musí být explicitnÄ› urÄena", + de = "muss explizit angegeben werden", + el = "Ï€Ïέπει να οÏιστεί Ïητά", + en_AU = "must be explicitly specified", + en_CA = "must be explicitly specified", + en_GB = "must be explicitly specified", + es = "debe ser especificado explícitamente", + fi = "pitää tarkkaan määritellä", + fr = "doit être spécifié explicitement", + he = "עליו להיות מצויין במפורש", + hu = "ezt explicit módon kell meghatározni", + id = "harus ditetapkan secara ekplisit", + it = "deve essere esplicitato", + nb = "mÃ¥ spesifiseres eksplisitt", + nds = "muss ausdrücklich spezifiziert werden", + nl = "moet expliciet gespecifieerd worden", + nn = "mÃ¥ spesifiserast eksplisitt", + pl = "musi być jasno podany", + pt = "deve ser especificado explicitamente", + pt_BR = "precisa ser especificado explicitamente", + ro = "trebuie specific explicit", + ru = "должна быть указана Ñвно", + sk = "musí byÅ¥ explicitne Å¡pecifikovaný", + sl = "mora biti explicitno doloÄena", + sv = "mÃ¥ste vara ett specificerat uttryck", + tr = "açıkça belirtilmeli", + uk = "повинно бути чітко вказано", + zh_TW = "必須明確指定" + }; + + -- This is an error string for a buggy config element. See notes above. + ["must be string or table of strings"] = { + af = "moet 'n string of tabel van stringe wees", + ar = "يجب ان يكون سلسلة حرÙية او جدول من السلاسل الحرÙية", + cs = "musí být Å™etÄ›zcem nebo tabulkou Å™etÄ›zců", + de = "muss eine Zeichenkette oder eine Tabelle mit Zeichenketten sein", + el = "Ï€Ïέπει να είναι ένα αλφαÏιθμητικό ή πίνακας απο αλφαÏιθμητικά", + en_AU = "must be string or table of strings", + en_CA = "must be string or table of strings", + en_GB = "must be string or table of strings", + es = "debe ser una cadena o tabla de cadenas", + fi = "täytyy olla merkkijono tai merkkijonotaulukko", + fr = "doit être une chaîne de caractères ou un tableau de chaînes de caractères", + he = "עליו להיות מחרוזת ×ו טבלת מחרוזות", + hu = "sztring vagy sztringtáblának kell lennie", + id = "harus string atau daftar string", + it = "deve essere una stringa o una tabella di stringhe", + nb = "mÃ¥ være streng eller tabell av strenger", + nds = "muss String oder Tabelle von Strings sein", + nl = "moet een string of een tabel met strings zijn", + nn = "mÃ¥ væra streng eller tabell av strengar", + pl = "musi być ciÄ…giem lub tabelÄ… ciÄ…gów", + pt = "deve ser uma expressão ou uma tabela de expressões", + pt_BR = "precisa ser um texto ou uma tabela de textos", + ro = "trebuie să fie un ÅŸir de caractere sau un tabel de ÅŸiruri de caractere", + ru = "должна быть Ñтрокой или таблицей Ñтрок", + sk = "musí byÅ¥ reÅ¥azec alebo tabuľka reÅ¥azcov", + sl = "mora biti niz ali tabela nizov", + sv = "mÃ¥ste vara en sträng eller en tabell av strängar", + tr = "bir dizgi ya da dizgi tablosu olmalı", + uk = "повинно бути Ñ€Ñдком або таблицею Ñ€Ñдків", + zh_TW = "必須是字串或字串表格" + }; + + -- This is an error string for a buggy config element. See notes above. + ["must be a string or number"] = { + af = "moet 'n string of 'n nommer wees", + ar = "يجب ان يكون سلسلة حرÙية او رقم", + cs = "musí být Å™etÄ›zcem nebo Äíslem", + de = "muss eine Zeichenkette oder Zahl sein", + el = "Ï€Ïέπει να είναι αλφαÏιθμητικό ή αÏιθμός", + en_AU = "must be a string or number", + en_CA = "must be a string or number", + en_GB = "must be a string or number", + es = "debe ser una cadena o un número", + fi = "täytyy olla merkkijono tai luku", + fr = "doit être une chaîne de caractères ou un nombre", + he = "עליו להיות מחרוזת ×ו מספר", + hu = "sztringnek vagy számnak kell lennie", + id = "harus string atau angka", + it = "deve essere una stringa oppure un numero", + nb = "mÃ¥ være en streng eller et nummer", + nds = "muss String oder Nummer sein", + nl = "moet een string of een nummer zijn", + nn = "mÃ¥ væra ein streng eller eit nummer", + pl = "musi być ciÄ…giem lub liczbÄ…", + pt = "deve ser uma expressão ou número", + pt_BR = "precisa ser um texto ou um número", + ro = "trebuie să fie un ÅŸir de caractere sau un număr", + ru = "должна быть Ñтрокой или чиÑлом", + sk = "musí byÅ¥ reÅ¥azec alebo Äíslo", + sl = "mora biti niz ali Å¡tevilo", + sv = "mÃ¥ste vara en sträng eller ett nummer", + tr = "bir dizgi ya da sayı olmalı", + uk = "повинно бути Ñ€Ñдком або чиÑлом", + zh_TW = "必須是字串或數字" + }; + + -- This is an error string for a buggy config element. See notes above. + ["can't be empty string"] = { + af = "kan nie 'n lee string wees nie", + ar = "لا يمكن ان يكون سلسلة حرÙية خالية", + cs = "nemůže být prázdným Å™etÄ›zcem", + de = "darf keine leere Zeichenkette sein", + el = "δεν μποÏεί να είναι άδειο αλφαÏιθμητικό", + en_AU = "can't be empty string", + en_CA = "can't be empty string", + en_GB = "can't be empty string", + es = "no puede ser una cadena vacía", + fi = "ei saa olla tyhjä merkkijono", + fr = "ne peut être une chaîne de caractères vide", + he = "×œ× × ×™×ª×Ÿ להותיר מחרוזת ריקה", + hu = "nem lehet üres sztring", + id = "tidak boleh string kosong", + it = "non può essere una stringa vuota", + nb = "kan ikke være en tom streng", + nds = "kann String nicht leeren", + nl = "kan geen lege string zijn", + nn = "kan ikkje væra ein tom streng", + pl = "nie może być pustym ciÄ…giem", + pt = "não pode ser uma expressão vazia", + pt_BR = "não pode ser uma string vazia", + ro = "nu poate fi un ÅŸir de caractere gol", + ru = "не может быть пуÑтой Ñтрокой", + sk = "nemôže byÅ¥ reÅ¥azec", + sl = "ne mora biti prazen niz", + sv = "kan inte vara en tom sträng", + tr = "boÅŸ bir dizgi olamaz", + uk = "не може бути порожнім Ñ€Ñдком", + zh_TW = "ä¸èƒ½æ˜¯ç©ºå­—串" + }; + + -- This is an error string for a buggy config element. See notes above. + ["URL doesn't have protocol"] = { + af = "URL het nie 'n protokol gespesifiseer nie", + ar = "العنوان لم يحدد البروتوكول", + cs = "URL nemá urÄený protokol", + da = "URL har ikke en protekol", + de = "URL hat kein Protokoll", + el = "το URL δεν πεÏιέχει πεÏιγÏαφή Ï€Ïοτοκόλου", + en_AU = "URL doesn't have protocol", + en_CA = "URL doesn't have protocol", + en_GB = "URL doesn't have protocol", + es = "URL sin protocolo", + fr = "L'URL manque un protocole", + he = "לכתובת ×ין פרוטוקול", + hu = "URL-nek nincs protokollja", + id = "URL tidak memiliki protokol", + it = "URL malformato (senza protocollo)", + nb = "URL har ikke protokoll", + nds = "URL hat kein Protokoll", + nl = "URL heeft geen protocol", + nn = "URL har ikkje protokoll", + pl = "URL nie ma protokoÅ‚u", + pt = "O URL não contém o protocolo", + pt_BR = "Não existe protocolo na URL", + ro = "calea URL nu are protocol", + ru = "URL не Ñодержит протокол", + sk = "URL neurÄuje protokol", + sl = "URL nima protokola", + sv = "URL saknar protokoll", + tr = "URL'nin protokolü yok", + uk = "Ð’ URL не вказано протокол", + zh_TW = "URL 沒有通訊å”定" + }; + + -- This is an error string for a buggy config element. See notes above. + ["URL doesn't have host"] = { + af = "URL het nie 'n masjien naam gespesifiseer nie", + ar = "العنوان لم يحدد الخادم", + cs = "URL neobsahuje hostitele", + da = "URL mangler vært", + de = "URL hat keinen Host", + el = "το URL δεν πεÏιέχει πεÏιγÏαφή διακομιστή", + en_AU = "URL doesn't have host", + en_CA = "URL doesn't have host", + en_GB = "URL doesn't have host", + es = "No se encuentra el servidor", + fr = "L'URL manque un nom d'hôte", + he = "לכתובת ×ין מ×רח", + hu = "URL-nek nincs hosztja", + id = "URL tidak memiliki host", + it = "URL malformato (senza host)", + nb = "URL har ikke vert", + nds = "URL hat keinen Host", + nl = "URL heeft geen host", + nn = "URL har ikke vert", + pl = "URL nie ma hosta", + pt = "O URL não contém o servidor", + pt_BR = "Não existe host na URL", + ro = "calea URL nu are gazdă", + ru = "URL не Ñодержит хоÑÑ‚", + sk = "URL neobsahuje hostiteľa", + sl = "URL nima gostitelja", + sv = "URL saknar värd", + tr = "URL'de makine adı yok", + uk = "Ð’ URL не вказано хоÑÑ‚", + zh_TW = "URL 沒有主機" + }; + + -- This is an error string for a buggy config element. See notes above. + ["URL doesn't have path"] = { + af = "URL het nie 'n destinasie nie", + ar = "العنوان لا يحدد المسار", + cs = "URL neobsahuje cestu", + da = "URL mangler sti", + de = "URL hat keinen Pfad", + el = "το URL δεν πεÏιέχει το μονοπάτι", + en_AU = "URL doesn't have path", + en_CA = "URL doesn't have path", + en_GB = "URL doesn't have path", + es = "URL sin ruta de acceso", + fr = "L'URL manque un chemin", + he = "לכתובת ×ין נתיב", + hu = "URL-nek nincs útvonala", + id = "URL tidak memiliki path", + it = "URL malformato (senza percorso)", + nb = "URL har ikke sti", + nds = "URL hat keinen Pfad", + nl = "URL heeft geen pad", + nn = "URL har ikkje sti", + pl = "URL nie ma Å›cieżki", + pt = "O URL não contém o caminho", + pt_BR = "Não existe caminho na URL", + ro = "URL nu are cale", + ru = "URL не Ñодержит путь", + sk = "URL neobsahuje cestu", + sl = "URL nima poti", + sv = "URL saknar sökväg", + tr = "URL'nin yolu yok", + uk = "Ð’ URL не вказано шлÑÑ…", + zh_TW = "URL 沒有路徑" + }; + + -- This is an error string for a buggy config element. See notes above. + ["URL protocol is unsupported"] = { + af = "URL se protokol is nie ondersteun nie", + ar = "بروتوكول العنوان غير مدعوم", + cs = "Protokol v URL není podporován", + de = "URL Protokoll wird nicht unterstützt", + el = "το Ï€Ïοτόκολο που πεÏιέχει το URL δεν υποστηÏίζεται", + en_AU = "URL protocol is unsupported", + en_CA = "URL protocol is unsupported", + en_GB = "URL protocol is unsupported", + es = "Protocolo de URL no soportado", + fr = "Le protocole de l'URL n'est pas supporté", + he = "פרוטוקול הכתובת ×ינו נתמך", + hu = "URL protokoll nem támogatott", + id = "Protokol URL tidak didukung", + it = "URL malformato (protocollo non supportato)", + nb = "URL-protokollen er ikke støttet", + nds = "URL Protokoll wird nicht unterstützt", + nl = "protocol van URL wordt niet ondersteund", + nn = "URL-protokollen er ikkje støtta", + pl = "protokół URL nie obsÅ‚ugiwany", + pt = "O protocolo do URL não é suportado", + pt_BR = "O protocolo da URL não é suportado", + ro = "protocolul URL nu este suportat", + ru = "Протокол URL не поддерживаетÑÑ", + sk = "URL protokol nie je podporovaný", + sl = "URL protokol ni podprt", + sv = "URL-protokollet har inget stöd", + tr = "URL protokolü desteklenmiyor", + uk = "Протокол, вказаний в URL , не підтримуєтьÑÑ", + zh_TW = "URL 通訊å”定ä¸æ”¯æ´" + }; + + -- This is an error string for a buggy config element. See notes above. + -- "Permission string" is text representing a file's permissions, + -- such as "0644" on Unix. + ["Permission string is invalid"] = { + af = "Toestemming string is ongeldig", + ar = "تعري٠إذن غير صحيح", + cs = "ŘetÄ›zec s oprávnÄ›ními je neplatný", + da = "Rettigheds syntaks er ikke korrekt", + de = "Berechtigungszeichenkette ist ungültig", + el = "Το αλφαÏιθμητικό που πεÏιγÏάφει τα δικαιώματα είναι λάθος.", + en_AU = "Permission string is invalid", + en_CA = "Permission string is invalid", + en_GB = "Permission string is invalid", + es = "Cadena de permisos no válida", + fr = "Chaine de permissions invalide", + he = "מחרוזת ההרש××” ×”×™× ×” שגויה", + hu = "Helytelen engedélysztring", + id = "String perizinan tidak cocok", + it = "Stringa dei permessi non valida", + nb = "Rettighetsstrengen er ugyldig", + nds = "Zugriffsberechtigungs String ist ungültig", + nl = "Permissie string is niet geldig", + nn = "Rettighetsstrengen er ugyldig", + pl = "CiÄ…g uprawnieÅ„ jest niepoprawny", + pt = "A expressão de permissão não é válida", + pt_BR = "A string de permissão é inválida", + ro = "Åžirul de caractere nu desemnează permisiuni valide", + ru = "Строка прав доÑтупа некорректна", + sk = "ReÅ¥azec práv je neplatný", + sl = "Dovoljenje ni veljavne oblike", + sv = "Rättighetssträngen är ogiltig", + tr = "Ä°zin dizgisi geçersiz", + uk = "РÑдок із правами не Ñ” коректним", + zh_TW = "無效的檔案權é™è¨­å®š" + }; + + -- This is an error string for a buggy config element. See notes above. + -- "property" means attribute, not something owned, in this case. + ["is not a valid property"] = { + af = "is nie 'n geldige waarde", + ar = "خاصية غير صحيحة", + cs = "není platnou vlastností", + de = "ist keine gültige Eigenschaft", + el = "δεν είναι έγγυÏη ιδιότητα", + en_AU = "is not a valid property", + en_CA = "is not a valid property", + en_GB = "is not a valid property", + es = "no es un atributo válido", + fr = "n'est pas une propriété valide", + he = "××™× ×” בעלת ערך תקני", + hu = "érvénytelen tulajdonság", + id = "bukan properti yang cocok", + it = "non è una proprietà valida", + nb = "er ikke en gyldig egenskap", + nds = "ist keine gültige Eigenschaft", + nl = "is geen geldige eigenschap", + nn = "er ikkje ein gyldig egenskap", + pl = "nie jest poprawym atrybutem", + pt = "não é uma propriedade válida", + pt_BR = "não é uma propriedade válida", + ro = "nu este un atribut valid", + ru = "недопуÑтимое значение", + sk = "nie je správnym atribútom", + sl = "ni veljavna nastavitev", + sv = "är inte ett giltigt attribut", + tr = "geçerli bir özellik deÄŸil", + uk = "не Ñ” коректним атрибутом", + zh_TW = "並ä¸æ˜¯æœ‰æ•ˆè¨­å®š" + }; + + -- This is an error string for a buggy config element. See notes above. + -- %0 is a data type name (string, number, table, etc). + ["must be %0"] = { + af = "moet %0 wees", + ar = "يجب أن يكون %0", + cs = "musí být %0", + da = "skal være %0", + de = "muss vom Typ %0 sein", + el = "Ï€Ïέπει να είναι %0", + en_AU = "must be %0", + en_CA = "must be %0", + en_GB = "must be %0", + es = "debe ser %0", + fi = "täytyy olla %0", + fr = "doit être de type %0", + he = "עליה להיות %0", + hu = "%0 -nak kell lennie", + id = "harus %0", + it = "deve essere %0", + nb = "mÃ¥ være %0", + nds = "muss %0 sein", + nl = "moet %0 zijn", + nn = "mÃ¥ væra %0", + pl = "musi być %0", + pt = "tem que ser %0", + pt_BR = "precisa ser %0", + ro = "trebuie să fie %0", + ru = "должна быть %0", + sk = "musí byÅ¥ %0", + sl = "mora biti %0", + sv = "mÃ¥ste vara %0", + tr = "%0 tipinde olmalı", + uk = "повинно бути %0", + zh_TW = "必須是 %0" + }; + + -- Data type for "must be %0" above... + ["string"] = { + af = "string", + ar = "سلسلة حرÙية", + cs = "Å™etÄ›zec", + da = "streng", + de = "Zeichenkette", + el = "αλφαÏιθμητικό", + en_AU = "string", + en_CA = "string", + en_GB = "string", + es = "cadena", + fi = "merkkijono", + fr = "chaîne de caractères", + he = "מחרוזת", + hu = "szöveg", + id = "string", + it = "stringa", + nb = "streng", + nds = "String", + nl = "string", + nn = "streng", + pl = "ciÄ…giem", + pt = "expressão", + pt_BR = "string", + ro = "ÅŸir de caractere", + ru = "Ñтрокой", + sk = "reÅ¥azec", + sl = "niz", + sv = "sträng", + tr = "dizgi", + uk = "Ñ€Ñдок", + zh_TW = "字串" + }; + + -- Data type for "must be %0" above... + ["boolean"] = { + af = "bool", + ar = "منطقي", + cs = "booleovská hodnota", + da = "boolsk", + de = "Bool", + el = "boolean", + en_AU = "boolean", + en_CA = "boolean", + en_GB = "boolean", + es = "booleano", + fi = "totuusarvo", + fr = "booléen", + he = "בולי×× ×™", + hu = "logikai", + id = "boolean", + it = "booleano", + nb = "boolsk verdi", + nds = "Boolean", + nl = "boolean", + nn = "boolsk verdi", + pl = "wartoÅ›ciÄ… logicznÄ…", + pt = "boleano", + pt_BR = "booleano", + ro = "tip logic", + ru = "булевым", + sk = "booleovská hodnota", + sl = "boolova vrednost", + sv = "boolskt värde", + tr = "mantıksal deÄŸer", + uk = "булеве", + zh_TW = "布林值" + }; + + -- Data type for "must be %0" above... + ["number"] = { + af = "numeries", + ar = "عدد", + cs = "Äíslo", + da = "nummer", + de = "Zahl", + el = "αÏιθμός", + en_AU = "number", + en_CA = "number", + en_GB = "number", + es = "número", + fi = "luku", + fr = "nombre", + he = "מספר", + hu = "szám", + id = "angka", + it = "numero", + nb = "tall", + nds = "Nummer", + nl = "nummer", + nn = "tal", + pl = "liczbÄ…", + pt = "número", + pt_BR = "número", + ro = "număr", + ru = "чиÑлом", + sk = "Äíslo", + sl = "Å¡tevilo", + sv = "nummer", + tr = "sayı", + uk = "чиÑло", + zh_TW = "數字" + }; + + -- Data type for "must be %0" above... + ["function"] = { + af = "funksie", + ar = "دالة", + cs = "funkce", + da = "funktion", + de = "Funktion", + el = "function", + en_AU = "function", + en_CA = "function", + en_GB = "function", + es = "función", + fi = "funktio", + fr = "fonction", + he = "פונקציה", + hu = "függvény", + id = "fungsi", + it = "funzione", + nb = "funksjon", + nds = "Funktion", + nl = "functie", + nn = "funksjon", + pl = "funkcjÄ…", + pt = "função", + pt_BR = "função", + ro = "funcÅ£ie", + ru = "функцией", + sk = "funkcia", + sl = "funkcija", + sv = "funktion", + tr = "fonksiyon", + uk = "функціÑ", + zh_TW = "函å¼" + }; + + -- Data type for "must be %0" above... + ["table"] = { + af = "tabel", + ar = "جدول", + cs = "tabulka", + da = "tabel", + de = "Tabelle", + el = "πίνακας", + en_AU = "table", + en_CA = "table", + en_GB = "table", + es = "tabla", + fi = "taulukko", + fr = "tableau", + he = "טבלה", + hu = "táblázat", + id = "tabel", + it = "tabella", + nb = "tabell", + nds = "Tabelle", + nl = "tabel", + nn = "tabell", + pl = "tabelÄ…", + pt = "tabela", + pt_BR = "tabela", + ro = "tabelă", + ru = "таблицей", + sk = "tabuľka", + sl = "tabela", + sv = "tabell", + tr = "tablo", + uk = "таблицÑ", + zh_TW = "表格" + }; + + -- bzlib is a proper name. The error message (%0) may not be localized, + -- it's meant to be a developer error and not an end-user message. + ["bzlib triggered an internal error: %0"] = { + af = "bzlib het 'n interne fout ge-initieer", + ar = "bzlib تسبب ÙÙŠ خطأ: %0", + cs = "bzlib vyvolala vnitÅ™ní chybu: %0", + da = "bzlib forÃ¥rsagede en intern fejl:", + de = "bzlib hat einen internen Fehler ausgelöst: %0", + el = "το bzlib παÏουσίασε εσωτεÏικό σφάλμα: %0", + en_AU = "bzlib triggered an internal error: %0", + en_CA = "bzlib triggered an internal error: %0", + en_GB = "bzlib triggered an internal error: %0", + es = "bzlib ha provocado un error interno: %0", + fr = "bzlib a causé une erreur interne: %0", + he = "bzlib העלה שגי××” פנימית: %0", + hu = "bzlib belsÅ‘ hibát észlelt: %0", + id = "bzlib memicu galat di bagian dalam", + it = "bzlib ha causato un errore interno: %0", + nb = "bzlib forÃ¥rsaket en intern feil: %0", + nds = "bzlib löste eine internen Fehler aus: %0", + nl = "bzlib heeft een interne fout veroorzaakt: %0", + nn = "bzlib forÃ¥rsaka ein intern feil: %0", + pl = "bzlib wywoÅ‚aÅ‚ bÅ‚Ä…d wewnÄ™trzny: %0", + pt = "A bzlib despoletou um erro interno: %0", + pt_BR = "bzlib disparou um erro interno: %0", + ro = "bzlib a raportat o eroare internă: %0", + ru = "произошла ошибка в bzlib: %0", + sk = "bzlib spôsobilo vnútornú chybu: %0", + sl = "bzlib je sprožil napako: %0", + sv = "bzlib orsakade ett internt fel: %0", + tr = "bzlib içsel bir hata tetikledi: %0", + zh_TW = "bzlib é­é‡ä¸€å€‹å…§éƒ¨éŒ¯èª¤ï¼š %0" + }; + + -- This is a UI button label, usually paired with "OK", but also usually + -- present as a generic "stop the program" button. + ["Cancel"] = { + af = "Staak", + ar = "ألغÙ", + cs = "ZruÅ¡it", + da = "Annuller", + de = "Abbrechen", + el = "ΆκυÏο", + en_AU = "Cancel", + en_CA = "Cancel", + en_GB = "Cancel", + es = "Cancelar", + fi = "Peru", + fr = "Annuler", + he = "ביטול", + hu = "Mégsem", + id = "Batal", + it = "Annulla", + nb = "Avbryt", + nds = "Abbrechen", + nl = "Annuleren", + nn = "Avbryt", + pl = "Anuluj", + pt = "Cancelar", + pt_BR = "Cancelar", + ro = "Renunță", + ru = "Отмена", + sk = "ZruÅ¡iÅ¥", + sl = "PrekliÄi", + sv = "Avbryt", + tr = "Ä°ptal", + uk = "СкаÑувати", + zh_TW = "å–消" + }; + + -- This is a message box title when prompting for confirmation when the + -- the user clicks the Cancel button. + ["Cancel installation"] = { + af = "Staak die installasie", + ar = "ألغ التثبيت", + cs = "ZruÅ¡it instalaci", + da = "Afbryd installation", + de = "Installation abbrechen", + el = "ΑκÏÏωση εγκατάστασης", + en_AU = "Cancel Installation", + en_CA = "Cancel installation", + en_GB = "Cancel installation", + es = "Cancelar instalación", + fi = "Peru asennus", + fr = "Annuler l'installation", + he = "בטל התקנה", + hu = "Telepítés megszakítása", + id = "Batal instalasi", + it = "Annulla l'installazione", + nb = "Avbryt installasjonen", + nds = "Installation abbrechen", + nl = "Installatie afbreken?", + nn = "Avbryt installasjonen", + pl = "Anuluj InstalacjÄ™", + pt = "Cancelar instalação", + pt_BR = "Cancelar instalação", + ro = "Anulează instalarea", + ru = "Отменить уÑтановку", + sk = "ZruÅ¡iÅ¥ inÅ¡taláciu", + sl = "PrekliÄi namestitev", + sv = "Avbryt installationen", + tr = "Kurulumu iptal et", + uk = "СкаÑувати вÑтановленнÑ", + zh_TW = "å–消安è£" + }; + + -- This error is reported for i/o failures while listing files contained + -- in a .zip (or whatever) file. + ["Couldn't enumerate archive"] = { + af = "Kon nie die argief se inhoud lys nie", + ar = "لا يمكن ترقيم ملÙات الأرشيÙ", + cs = "Nemohu projít archiv", + de = "Archiv kann nicht aufgelistet werden", + el = "Δεν είναι δυνατή η απαÏίθμηση του πακέτου αÏχείων", + en_AU = "Couldn't enumerate archive", + en_CA = "Couldn't enumerate archive", + en_GB = "Couldn't enumerate archive", + es = "No se puede enumerar el archivo", + fi = "Paketin tiedostojen listaus epäonnistui", + fr = "Ne peux pas énumérer les fichiers de l'archive", + he = "×œ× × ×™×ª×Ÿ למנות ×רכיון", + hu = "Az archívum nem csomagolható ki", + id = "Tidak dapat menghitung arsip", + it = "Impossibile enumerare l'archivio", + nb = "Kunne ikke liste filer i arkivet", + nds = "Konnte Archiv nicht enumerieren", + nl = "Kan het archief niet weergeven", + nn = "Kunne ikkje lista filer i arkivet", + pl = "nie można przetworzyć archiwum", + pt = "Foi impossível enumerar o arquivo", + pt_BR = "Não é possível enumerar o arquivo", + ro = "Nu se poate citi arhiva", + ru = "Ðе могу прочитать архив", + sk = "Nemôžem prelistovaÅ¥ archív", + sl = "Branje arhiva ni uspelo", + sv = "Kunde inte lista filen", + tr = "ArÅŸiv numaralandırılamadı", + uk = "Ðеможливо отримати ÑпиÑок файлів з архіву", + zh_TW = "無法列出檔案包的內容" + }; + + -- This error is reported for i/o failures while opening a .zip + -- (or whatever) file. + ["Couldn't open archive"] = { + af = "Kon nie argief oopmaak nie", + ar = "لا يمكن Ùتح الأرشيÙ", + cs = "Nemohu otevřít archiv", + da = "Kunne ikke Ã¥bne arkiv", + de = "Archiv kann nicht geöffnet werden", + el = "Δεν μπόÏεσε να ανοίξει το αÏχείο", + en_AU = "Couldn't open archive", + en_CA = "Couldn't open archive", + en_GB = "Couldn't open archive", + es = "No se puede abrir el archivo", + fr = "Impossible d'ouvrir l'archive.", + he = "×œ× × ×™×ª×Ÿ לפתוח ×רכיון", + hu = "Archív megnyitása sikertelen", + id = "Tidak dapat membuka arsip", + it = "Impossibile aprire l'archivio", + nb = "Kunne ikke Ã¥pne arkivet", + nds = "Kann Archiv nicht öffnen", + nl = "Kon archief niet openen", + nn = "Kunne ikkje opna arkivet", + pl = "Nie można otworzyć archiwum", + pt = "Foi impossível abrir o arquivo", + pt_BR = "Não é possível abrir o arquivo", + ro = "Nu s-a putut deschide arhiva", + ru = "Ðе могу открыть архив", + sk = "Nemôžem otvoriÅ¥ archív", + sl = "Arhiva ni bilo možno odpreti", + sv = "Kunde inte öppna filen", + tr = "ArÅŸiv açılamadı", + uk = "Ðеможливо відкрити архів", + zh_TW = "無法開啟檔案包" + }; + + -- This is used by the stdio UI to choose a location to write files. + -- A numbered list of options is printed, and the user may choose one by + -- its number (default is number one), or enter their own text instead of + -- choosing a default. This string is the instructions printed for the + -- user before the prompt. + ["Choose install destination by number (hit enter for #1), or enter your own."] = { + af = "Kies installasie destinasie by nommer (druk enter vir #1), of kies U eie.", + ar = "اختر رقم مكان التثبيت (اضغط Enter لأختيار #1) او أدخل المكان اللذي تريده.", + cs = "Zvolte cíl instalace Äíslem (stisknÄ›te enter pro #1) nebo zadejte vlastní cíl.", + de = "Wählen Sie eine Nummer für das Installationsziel (drücken Sie Enter für #1), oder geben Sie ein eigenes an.", + el = "Διαλέξτε Ï€ÏοοÏισμό εγκατάστασης βάση αÏÎ¹Î¸Î¼Î¿Ï (πατήστε ENTER για #1), ή γÏαψτε τον δικό σας.", + en_AU = "Choose install destination by number (hit enter for #1), or enter your own.", + en_CA = "Choose install destination by number (hit enter for #1), or enter your own.", + en_GB = "Choose install destination by number (hit enter for #1), or enter your own.", + es = "Elige el lugar de instalación con números (pulsa Intro para #1), o especifícalo", + fr = "Choisissez la destination d'installation par un nombre (Appuyez sur Entrée pour le n°1), ou entrez votre propre choix.", + he = "בחר ×ת יעד ההתקנה על ידי מספר (לחיצה על enter עבור מס' 1), ×ו הזן בעצמך.", + hu = "Válassz telepítési célt szám szerint (üss entert az elsÅ‘höz), vagy adj meg egyet.", + id = "Pilih tujuan instal dengan nomor (tekan enter untuk #1), atau masukkan angka.", + it = "Seleziona la destinazione dell'installazione tramite il numero corrispondente (invio per la #1), oppure digita il percorso desiderato.", + nb = "Velg installasjonssti etter nummer (trykk enter for #1), eller skriv inn din egen.", + nds = "Wählen Sie das Installationsverzeichnis durch Drücken einer Nummer (enter für #1), oder geben Sie selber einen ein.", + nl = "Kies installatiemap met het bijbehorende nummer, of voer u eigen keuze in.", + nn = "Vel installasjonssti etter tal (trykk enter for #1), eller skriv inn din eigen.", + pl = "Wybierz miejsce instalacji wybierajÄ…c numer (naciÅ›nij enter dla #1), lub wpisz wÅ‚asnÄ….", + pt = "Escolha o destino da instalação pelo seu número (pressione enter para o primeiro destino), ou introduza um outro destino.", + pt_BR = "Escolha um destino de instalação pelo número (pressione enter para 1), ou informe o seu própio.", + ro = "Alege destinaÅ£ia de instalare printr-un număr (apasă enter pentru 1), sau introdu-o pe cea dorită.", + ru = "Выберите путь уÑтановки (нажмите Enter Ð´Ð»Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° 1), или введите Ñвой.", + sk = "Vyberte cieľ inÅ¡talácie pomocou Äísla zo zoznamu (stlaÄte enter pre prvú možnosÅ¥), alebo zadajte svoju vlastnú možnosÅ¥.", + sl = "Izberite mapo namestitve s Å¡tevilko (pritisnite enter za #1), ali vnesite lasten izbor.", + sv = "Välj sökväg för installationen efter nummer (tryck enter för #1), eller skriv in din egen.", + tr = "Kurulum yerini sayı yardımıyla seçiniz (#1 için giriÅŸe basınız), ya da kendiniz belirtiniz", + uk = "Оберіть Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð° номером (натиÑніть enter Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ â„–1), або введіть влаÑне.", + zh_TW = "è«‹ä¾æ•¸å­—é¸æ“‡æ¬²å®‰è£çš„目標ä½ç½®ï¼ˆæŒ‰ [Enter] éµå¯ç›´æŽ¥é¸å–é è¨­é¸é …),或者自行輸入ä½ç½®ã€‚" + }; + + -- This is used by the stdio UI to toggle options. A numbered list is + -- printed, and the user can enter one of those numbers to toggle that + -- option on or off. This string is the instructions printed for the + -- user before the prompt. + ["Choose number to change."] = { + af = "Kies nommer om te verander", + ar = "اختر الرقم للتغيير", + cs = "Zadejte Äíslo pro zmÄ›nu.", + da = "Vælg nummer som skal ændres.", + de = "Wählen Sie eine Nummer zum Ändern.", + el = "Διάλεξτε τον αÏιθμό που θέλετε να αλλάξετε.", + en_AU = "Choose number to change.", + en_CA = "Choose number to change.", + en_GB = "Choose number to change.", + es = "Elegir número para cambiar", + fr = "Entrez le numéro de l'option à modifier.", + he = "בחר מספר לשינוי.", + hu = "Adj meg egy számot a változtatáshoz.", + id = "Pilih angka untuk mengubah.", + it = "Seleziona il numero corrispondente per cambiare.", + nb = "Velg tall som skal endres.", + nds = "Wähle eine Nummer zum ändern", + nl = "Kies een nummer om te veranderen", + nn = "Velg tal som skal endrast.", + pl = "Wybierz numer, aby zmienić.", + pt = "Escolha um número para alterar", + pt_BR = "Escolha o número para alterar", + ro = "Alege numărul ce se va schimba.", + ru = "Выберите чиÑло Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ", + sk = "Vyberte pomocou Äísla, ak chcete zmeniÅ¥ nastavenie", + sl = "Izberite Å¡tevilko za spremembo.", + sv = "Välj nummer som skall ändras.", + tr = "DeÄŸiÅŸtirmek için bir sayı seçiniz", + uk = "Оберіть номер Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸", + zh_TW = "é¸æ“‡æ•¸å­—以更改" + }; + + -- As in "two different files want to use the same name." This is a title + -- on a message box. + ["Conflict!"] = { + af = "Konflik!", + ar = "تعارض!", + cs = "Konflikt!", + da = "Konflikt!", + de = "Konflikt!", + el = "Διένεξη!", + en_AU = "Conflict!", + en_CA = "Conflict!", + en_GB = "Conflict!", + es = "¡Conflicto!", + fi = "Ristiriita!", + fr = "Conflit !", + he = "התנגשות!", + hu = "Ãœtközés!", + id = "Bertentangan!", + it = "Conflitto!", + nb = "Konflikt!", + nds = "Konflikt!", + nl = "Conflict!", + nn = "Konflikt!", + pl = "Konflikt!", + pt = "Conflito!", + pt_BR = "Conflito!", + ro = "Conflict!", + ru = "Конфликт!", + sk = "Konflikt!", + sl = "Spor!", + sv = "Konflikt!", + tr = "Çakışma!", + uk = "Конфлікт!", + zh_TW = "è¡çªï¼" + }; + + -- This is an error message shown to the user. When a file is to be + -- overwritten, we move it out of the way instead, so we can restore it + -- ("roll the file back") in case of problems, with the goal of having + -- an installation that fails halfway through reverse any changes it made. + -- This error is shown if we can't move a file out of the way. + ["Couldn't backup file for rollback"] = { + af = "Konnie leer rugsteen vir terugrol nie", + ar = "لم نستطع Ø­Ùظ نسخة احتياطية", + cs = "Nemohu zazálohovat soubor pro obnovu", + de = "Konnte Datei nicht zur Wiederherstellung sichern", + el = "Δεν είναι δυνατή η αντιγÏαφή ασφαλείας για χÏήση σε πεÏίπτωση επαναφοÏάς", + en_AU = "Couldn't backup file for rollback", + en_CA = "Couldn't backup file for rollback", + en_GB = "Couldn't backup file for rollback", + es = "No se puede guardar el archivo para revertir", + fr = "Impossible de faire une copie de secours du fichier", + he = "×œ× × ×™×ª×Ÿ לגבות ×ת הקובץ למטרות שיחזור", + hu = "Fájllista biztonsági mentése nem lehetséges", + it = "Impossibile eseguire il backup del file per un successivo ripristino", + nb = "Kunne ikke sikkerhetskopiere fil for tilbakerulling", + nds = "Datei konnte für die Wiederherstellung nicht gesichert werden", + nl = "Kon bestand niet backupen om de installatie terug te kunnen draaien", + nn = "Kunne ikkje sikkerhetskopiera fil for tilbakerulling", + pl = "Nie można zaarchiwizować pliku do odtworzenia", + pt = "Foi impossível salvaguardar o ficheiro para refazer as acções", + pt_BR = "Não foi possível criar um backup ou restaurar o arquivo", + ro = "Nu s-a putut salva fiÅŸierul pentru opÅ£iunea de revenire", + ru = "Ðе могу Ñохранить копию файла Ð´Ð»Ñ Ð²Ð¾ÑÑтановлениÑ", + sk = "Nemôžem zálohovaÅ¥ súbor pre obnovu", + sl = "Varnostna kopija za razveljavitev ni uspela", + sv = "Kunde inte säkerhetskopiera filen för Ã¥terställning", + tr = "Dosya geri yükleme için yedeklenemedi", + uk = "Ðеможливо зарезервувати файл Ð´Ð»Ñ Ð²Ñ–Ð´ÐºÐ°Ñ‚Ñƒ", + zh_TW = "無法備份檔案以復原" + }; + + -- This error is shown if we aren't able to write the list of files + -- that were installed (the "manifest") to disk. Apparently some languages + -- don't have a convenient translation of "manifest" ... it is not + -- important that this word maps directly for end-users, as long as the + -- general concept is explained. + ["Couldn't create manifest"] = { + af = "Kon nie manifesto skep nie", + ar = "لم يمكن كتابة قائمة ملÙات التثبيت", + cs = "Nemohu vytvoÅ™it manifest", + de = "Konnte Manifest nicht erstellen", + el = "Δεν μπόÏεσε να δημιουÏγήσει το \"manifest\"", + en_AU = "Couldn't create manifest", + en_CA = "Couldn't create manifest", + en_GB = "Couldn't create manifest", + es = "No se puede crear manifiesto", + fr = "Echec de création du fichier manifest", + he = "×œ× × ×™×ª×Ÿ ליצור מניפסט", + hu = "TelepítendÅ‘ fájlok listájának létrehozása sikertelen", + id = "Tidak dapat membuat manifesto", + it = "Impossibile creare la lista dei file installati su disco.", + nb = "Kunne ikke lage manifest", + nds = "Erstellen des Manifests schlug fehl.", + nl = "Kon het installatiemanifest niet maken", + nn = "Kunne ikkje laga manifest", + pl = "Nie można utworzyć manifestu", + pt = "Foi impossível criar o manifesto", + pt_BR = "Não é possível criar o manifest", + ro = "Nu s-a putut creea lista de fiÅŸiere instalate", + ru = "Ðевозможно Ñоздать ÑпиÑок уÑтановленных файлов", + sk = "Nemôžem vytvoriÅ¥ manifest", + sl = "Ustvarjanje manifesta ni uspelo", + sv = "Kunde inte skapa en fillista", + tr = "Kurulum kaydı oluÅŸturulamadı", + uk = "Ðеможливо Ñтворити файл manifest", + zh_TW = "無法建立檔案清單" + }; + + -- This is an error message. It speaks for itself. :) + ["Couldn't restore some files. Your existing installation is likely damaged."] = { + af = "Kon nie alle lêers herstel nie. Jou huidege installasie is waarskynlik beskadig.", + ar = "لم بمكن استرجاع بعض الملÙات، التثبيت السابق يحتوي على أخطاء", + cs = "NepodaÅ™ilo se obnovit nÄ›které soubory. VaÅ¡e existující instalace je pravdÄ›podobnÄ› poÅ¡kozená.", + de = "Konnte einige Dateien nicht wiederherstellen. Ihre Installation ist wahrscheinlich beschädigt.", + el = "Δεν μπόÏεσε να ανακτήση κάποια αÏχεία. Είναι πιθανόν η εγκατάσταση να είναι κατεστÏαμένη.", + en_AU = "Couldn't restore some files. Your existing installation is likely damaged.", + en_CA = "Couldn't restore some files. Your existing installation is likely damaged.", + en_GB = "Couldn't restore some files. Your existing installation is likely to be damaged.", + es = "No se pudieron restaurar algunos archivos. Tu instalación posiblemente esté dañada", + fr = "Impossible de restaurer certains fichiers. Votre installation existante est certainement endommagée.", + he = "×œ× × ×™×ª×Ÿ לשחזר כמה מהקבצי×. ייתכן וההתקנה הנוכחית שלך פגומה.", + hu = "Néhány fájlt nem lehet visszaállítani. A meglévÅ‘ telepítés valószínűleg megsérült.", + id = "Tidak dapat mengembalikan beberapa berkas. Instalasi yang ada sepertinya rusak.", + it = "Non è stato possibile ripristinare alcuni files. L'installazione corrente probabilmente è danneggiata.", + nb = "Noen filer kunne ikke tilbakestilles. Den eksisterende installasjonen er sannsynligvis skadet.", + nds = "Konnte einige Dateien nicht wiederherstellen. Ihre bestehende Installation ist möglicherweise beschädigt.", + nl = "Kon sommige bestanden niet terugzetten. Uw bestaande installatie is waarschijnlijk beschadigd.", + nn = "Nokon av filene kunne ikkje tilbakestillast. Den eksisterande installasjonen er sannsynlegvis skada.", + pl = "Nie można odtworzyć niektórych plików. Twoja aktualna instalacja jest prawdopodobnie uszkodzona.", + pt = "Foi impossível recuperar alguns ficheiros. Provavelmente, a sua instalação está danificada.", + pt_BR = "Não foi possível restaurar alguns arquivos. Sua instalação provavelmente está danificada.", + ro = "Nu s-au putut restaura anumite fiÅŸiere. Cel mai probabil instalarea actuală este stricată.", + ru = "Ðе могу воÑÑтановить некоторые файлы. Ваша уÑтановка наверно повреждена.", + sk = "Nemôžem obnoviÅ¥ niektoré súbory. VaÅ¡a aktuálna inÅ¡talácia je zrejme poÅ¡kodená.", + sl = "Obnovitev nekaterih datotek ni uspela. ObstojeÄa namestitev je verjetno poÅ¡kodovana.", + sv = "NÃ¥gra filer kunde inte Ã¥terskapas. Den existerande installationen är troligtvis skadad.", + tr = "Bazı dosyalar onarılamadı. Varolan kurulumunuz büyük olasılıkla zarar görmüş", + uk = "Ðеможливо відновити деÑкі файли. Вашу Ñ–Ñнуючу копію Ñкоріш за вÑе пошкоджено.", + zh_TW = "一些檔案無法復原,ç¾æœ‰çš„安è£å…§å®¹ä¼¼ä¹Žå·²æ毀。" + }; + + -- Error message when deleting a file fails. + ["Deletion failed!"] = { + af = "Uitvee het misluk!", + ar = "المسح Ùشل!", + cs = "OdstranÄ›ní selhalo!", + da = "Kunne ikke slette!", + de = "Löschen fehlgeschlagen!", + el = "Απέτυχε η διαγÏαφή!", + en_AU = "Deletion failed!", + en_CA = "Deletion failed!", + en_GB = "Deletion failed!", + es = "¡Borrado fallido!", + fr = "Suppression de fichier échouée!", + he = "המחיקה נכשלה!", + hu = "Törlés sikertelen!", + id = "Penghapusan gagal!", + it = "Eliminazione del file fallita!", + nb = "Kunne ikke slette!", + nds = "Löschen fehlgeschlagen!", + nl = "Verwijderen mislukt!", + nn = "Klarte ikkje Ã¥ sletta!", + pl = "Kasowanie nieudane!", + pt = "A remoção falhou!", + pt_BR = "Falha ao apagar o arquivo!", + ro = "Nu s-a putut ÅŸterge!", + ru = "Ðе могу удалить!", + sk = "Odstraňovanie súboru zlyhalo!", + sl = "Brisanje ni uspelo!", + sv = "Radering misslyckades!", + tr = "Silme iÅŸlemi baÅŸarılamadı!", + uk = "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾!", + zh_TW = "刪除失敗" + }; + + -- This is a label displayed next to the text entry in the GTK+ UI where + -- the user specifies the installation destination (folder/directory) in + -- the filesystem. + ["Folder:"] = { + af = "Lêer", + ar = "مجلد:", + cs = "Složka:", + da = "Mappe:", + de = "Verzeichnis:", + el = "Φάκελος:", + en_AU = "Folder:", + en_CA = "Folder:", + en_GB = "Folder:", + es = "Carpeta:", + fi = "Kansio:", + fr = "Dossier :", + he = "תיקיה:", + hu = "Mappa:", + id = "Folder:", + it = "Cartella:", + nb = "Katalog:", + nds = "Ordner:", + nl = "Map:", + nn = "Mappe:", + pl = "Folder:", + pt = "Directorio", + pt_BR = "Diretório:", + ro = "Dosar:", + ru = "Папка:", + sk = "Adresár:", + sl = "Mapa:", + sv = "Katalog:", + tr = "Klasör:", + uk = "Тека:", + zh_TW = "資料夾:" + }; + + -- This is a window title when user is selecting a path to install files. + ["Destination"] = { + af = "Bestemming", + ar = "الوÙجهة", + cs = "Cíl", + da = "Destination", + de = "Ziel", + el = "ΠÏοοÏισμός", + en_AU = "Destination", + en_CA = "Destination", + en_GB = "Destination", + es = "Destino", + fi = "Kohde", + fr = "Destination", + he = "יעד", + hu = "Cél", + id = "Tujuan", + it = "Destinazione", + nb = "MÃ¥l", + nds = "Ziel", + nl = "Bestemming", + nn = "MÃ¥l", + pl = "Miejsce docelowe", + pt = "Destino", + pt_BR = "Destino", + ro = "DestinaÅ£ie", + ru = "Ðазначение", + sk = "Cieľ", + sl = "Cilj", + sv = "MÃ¥l", + tr = "Hedef", + uk = "ПризначеннÑ", + zh_TW = "目的地" + }; + + -- This is a window title while the program is downloading external files + -- it needs from the network. + ["Downloading"] = { + af = "Besig om af te laai", + ar = "يجري التنزيل", + cs = "Stahuji", + da = "Henter", + de = "Lade herunter", + el = "Γίνεται λήψη", + en_AU = "Downloading", + en_CA = "Downloading", + en_GB = "Downloading", + es = "Descargando", + fi = "Noudetaan", + fr = "Téléchargement en cours", + he = "מוריד", + hu = "Letöltés", + id = "Mengunduh", + it = "Download in corso", + nb = "Laster ned", + nds = "Lade herunter", + nl = "Bezig met downloaden", + nn = "Lastar ned", + pl = "Pobieranie", + pt = "A descarregar", + pt_BR = "Baixando", + ro = "Descărcare", + ru = "Скачиваем", + sk = "SÅ¥ahujem", + sl = "PrenaÅ¡anje", + sv = "Laddar ned", + tr = "Ä°ndiriliyor", + uk = "ЗавантаженнÑ", + zh_TW = "下載中" + }; + + -- Several UIs use this string as a prompt to the end-user when selecting + -- a destination for newly-installed files. + ["Enter path where files will be installed."] = { + af = "Verskaf die pad waar die lêers na toe sal geinstaleer word", + ar = "أدخل مكان تثبيت البرنامج", + cs = "Zadejte cestu, kam mají být soubory nainstalovány.", + de = "Geben Sie den Pfad an, wohin die Dateien installiert werden sollen.", + el = "Δώστε το μονοπάτι που θα εγκατασταθοÏν τα αÏχεία.", + en_AU = "Enter path where files will be installed.", + en_CA = "Enter path where files will be installed.", + en_GB = "Enter path where files will be installed.", + es = "Introduce una ruta de instalacion.", + fi = "Syötä polku, johon tiedostot asennetaan.", + fr = "Entrez le chemin d'installation souhaité pour vos fichiers.", + he = "הזן ×ת הנתיב ×ליו ×”×§×‘×¦×™× ×™×•×ª×§× ×•.", + hu = "Add meg az útvonalat, ahova a fájlokat telepíthetem.", + id = "Masukkan path ke mana berkas akan diinstal.", + it = "Inserisci il percorso di installazione.", + nb = "Skriv inn mÃ¥lsti for installasjonen.", + nds = "Pfad eingeben, in den installiert werden soll.", + nl = "Geef de map op waar de bestanden geinstalleerd zullen worden", + nn = "Skriv inn sti for installasjonen.", + pl = "Podaj Å›cieżkÄ™ gdzie pliki bÄ™dÄ… zainstalowane.", + pt = "Introduza o caminho para os ficheiros que serão instalados.", + pt_BR = "Entre o caminho onde os arquivos serão instalados.", + ro = "Introdu calea unde vor fi instalate fiÅŸierele.", + ru = "Введите путь куда будет произведена уÑтановка.", + sk = "Zadajte cestu, kam chcete súbory inÅ¡talovaÅ¥.", + sl = "Vnesite pot kamor bodo datoteke nameÅ¡Äene.", + sv = "Välj sökväg för installationen", + tr = "Dosyaların kurulacağı yolu giriniz.", + uk = "Введіть шлÑÑ… Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð².", + zh_TW = "輸入欲安è£æª”案的路徑" + }; + + -- Error message when a file we expect to load can't be read from disk. + ["failed to load file '%0'"] = { + af = "misluk om lêer '%0' te laai", + ar = "Ùشل ÙÙŠ تحميل المل٠'%0'", + cs = "nepodaÅ™ilo se naÄíst soubor '%0'", + da = "Kunne ikke indlæse fil '%0'", + de = "Laden von Datei '%0' fehlgeschlagen", + el = "απέτυχε το φόÏτωμα του αÏχείου '%0'", + en_AU = "failed to load file '%0'", + en_CA = "failed to load file '%0'", + en_GB = "failed to load file '%0'", + es = "no se pudo leer el archivo '%0'", + fi = "tiedoston \"%0\" lukeminen epäonnistui", + fr = "Echec du chargement du fichier '%0'", + he = "שגי××” בטעינת הקובץ '%0'", + hu = "fájl betöltése sikertelen '%0'", + id = "gagal memuat berkas '%0'", + it = "Caricamento del file '%0' fallito", + nb = "kunne ikke laste filen '%0'", + nds = "Fehler beim Laden von '%0'", + nl = "laden van bestand \"%0\" mislukt", + nn = "kunne ikkje lasta fila '%0'", + pl = "Nie można zaÅ‚adować pliku '%0'", + pt = "falhou a carregar o ficheiro '%0'", + pt_BR = "falha ao carregar o arquivo '%0'", + ro = "nu s-a putut citi fiÅŸierul '%0'", + ru = "не могу загрузить файл '%0'", + sk = "nemôžem nahraÅ¥ súbor '%0'", + sl = "neuspeÅ¡no nalaganje datoteke '%0'", + sv = "Misslyckades med att läsa filen '%0'", + tr = "'%0' dosyası yüklenemedi", + uk = "неможливо відкрити файл '%0'", + zh_TW = "無法讀å–檔案 '%0'" + }; + + -- This is a window title when something goes very wrong. + ["Fatal error"] = { + af = "Noodlottige fout", + ar = "خطأ Ùادح", + cs = "Kritická chyba", + da = "Alvorlig fejl", + de = "Schwerer Fehler", + el = "ΜοιÏαίο σφάλμα", + en_AU = "Fatal error", + en_CA = "Fatal error", + en_GB = "Fatal error", + es = "Error grave", + fr = "Erreur fatale", + he = "תקלה משמעותית", + hu = "Végzetes hiba", + id = "Galat yang mematikan", + it = "Errore critico", + nb = "Kritisk feil", + nds = "Fataler Fehler", + nl = "Fatale fout", + nn = "Kritisk feil", + pl = "Poważny bÅ‚Ä…d", + pt = "Erro fatal", + pt_BR = "Erro fatal", + ro = "Eroare terminală", + ru = "Ð¤Ð°Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°", + sk = "ZÃVAŽNà CHYBA", + sl = "Neodpravljiva napaka", + sv = "Allvarligt fel", + tr = "Önemli hata", + uk = "Фатальна помилка", + zh_TW = "åš´é‡éŒ¯èª¤" + }; + + -- This is an error message when failing to write a file to disk. + ["File creation failed!"] = { + af = "Lêer skepping het misluk!", + ar = "كتابة المل٠Ùشلت!", + cs = "NepodaÅ™ilo se vytvoÅ™it soubor!", + de = "Dateierstellung fehlgeschlagen!", + el = "Η δημιουÏγεία αÏχείου απέτυχε!", + en_AU = "File creation failed!", + en_CA = "File creation failed!", + en_GB = "File creation failed!", + es = "¡Escritura de archivo ha fallado!", + fi = "Tiedoston luominen epäonnistui!", + fr = "Création de fichier échouée!", + he = "יצירת הקובץ נכשלה!", + hu = "Fájl létrehozása sikertelen!", + id = "Pembuatan berkas gagal!", + it = "Creazione del file fallita!", + nb = "Kunne ikke opprette fil!", + nds = "Datei Erstellung ist fehlgeschlagen!", + nl = "aanmaken bestand mislukt!", + nn = "Kunne ikkje oppretta fil!", + pl = "Nie można utworzyć pliku!", + pt = "Falhou a criação do ficheiro!", + pt_BR = "Erro na criação do arquivo!", + ro = "Nu s-a putut creea fiÅŸierul!", + ru = "Ðе могу Ñоздать файл!", + sk = "Nemôžem vytvoriÅ¥ súbor!", + sl = "Ustvarjanje datoteke ni uspelo!", + sv = "Misslyckades med att skapa fil!", + tr = "Dosya oluÅŸturulamadı!", + uk = "Ðеможливо Ñтворити файл!", + zh_TW = "無法建立檔案ï¼" + }; + + -- This is an error message when failing to get a file from the network. + ["File download failed!"] = { + af = "Aflaai van die lêer het misluk", + ar = "تنزيل المل٠Ùشل!", + cs = "NepodaÅ™ilo se stáhnout soubor!", + da = "Download af fil mislykkedes!", + de = "Dateidownload fehlgeschlagen!", + el = "Η λήψη αÏχείου απέτυχε!", + en_AU = "File download failed!", + en_CA = "File download failed!", + en_GB = "File download failed!", + es = "¡Descarga de archivo ha fallado!", + fi = "Tiedoston noutaminen epäonnistui!", + fr = "Téléchargement échoué!", + he = "הורדת הקובץ נכשלה!", + hu = "Fájl letöltése sikertelen!", + id = "Gagal mengunduh berkas!", + it = "Download del file fallito!", + nb = "Kunne ikke laste ned fil!", + nds = "Dateidownload fehlgeschlagen!", + nl = "downloaden van bestand mislukt!", + nn = "Kunne ikkje lasta ned fil!", + pl = "Nie można pobrać pliku!", + pt = "Falhou a descarregar!", + pt_BR = "Erro ao baixar o arquivo!", + ro = "Nu s-a putut descărca fiÅŸierul!", + ru = "Ошибка ÑÐºÐ°Ñ‡Ð¸Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°!", + sk = "SÅ¥ahovanie zlyhalo!", + sl = "Prenos datoteke ni uspel!", + sv = "Nedladdning av fil misslyckades!", + tr = "Dosya indirilemedi!", + uk = "Ðеможливо завантажити файл!", + zh_TW = "檔案下載失敗" + }; + + -- This prompt is shown to users when we may overwrite an existing file. + -- "%0" is the filename. + ["File '%0' already exists! Replace?"] = { + af = "Lêer '%0' bestaan al! Vervang?", + ar = "المل٠'%0' موجود من قبل! أأستبدل؟", + cs = "Soubor '%0' již existuje! PÅ™epsat?", + de = "Datei '%0' existiert bereits! Ersetzen?", + el = "Το αÏχείο '%0' υπάÏχει ήδη! Αντικατάσταση?", + en_AU = "File '%0' already exists! Replace?", + en_CA = "File '%0' already exists! Replace?", + en_GB = "File '%0' already exists! Replace?", + es = "¡El archivo '%0' ya existe! ¿Sustituirlo?", + fi = "Tiedosto \"%0\" on jo olemassa! Korvaa?", + fr = "Le fichier '%0' existe déjà! Le remplacer?", + he = "הקובץ '%0' כבר קיי×! להחליפו?", + hu = "'%0' már létezik! Felülírjam?", + id = "Berkas '%0' sudah ada! Ganti?", + it = "Il file %0 esiste già! Sostituire?", + nb = "Filen '%0' eksisterer allerede! Skrive over?", + nds = "Datei '%0' existiert bereits! Ãœberschreiben?", + nl = "Bestand \"%0\" bestaat al! Vervangen?", + nn = "Fila '%0' eksisterar! Vil du skriva over ho?", + pl = "Plik '%0' już istnieje! Nadpisać?", + pt = "O ficheiro '%0' já existe! Substituir?", + pt_BR = "Arquivo '%0' já existe! Substituir?", + ro = "FiÅŸierul '%0' exista! V-a fi înlocuit?", + ru = "Файл '%0' уже ÑущеÑтвует! Заменить?", + sk = "Súbor '%0' už existuje! PrepísaÅ¥?", + sl = "Datoteka '%0' že obstaja! Zamenjam?", + sv = "Filen '%0' existerar redan! Vill du ersätta den?", + tr = "'%0' dosyası zaten var! DeÄŸiÅŸtirilsin mi?", + uk = "Файл '%0' вже Ñ–Ñнує! Замінити?", + zh_TW = "檔案 '%0' 已經存在,是å¦å–代?" + }; + + -- This is a button in the UI. It replaces "Next" when there are no more + -- stages to move forward to. + ["Finish"] = { + af = "Voltooi", + ar = "أنهÙ", + cs = "DokonÄit", + da = "Udfør", + de = "Fertig stellen", + el = "Τέλος", + en_AU = "Finish", + en_CA = "Finish", + en_GB = "Finish", + es = "Terminar", + fi = "Valmis", + fr = "Terminer", + he = "סיו×", + hu = "Kész", + id = "Selesai", + it = "Fine", + nb = "Ferdig", + nds = "Fertig", + nl = "Voltooien", + nn = "Fullfør", + pl = "ZakoÅ„cz", + pt = "Finalizar", + pt_BR = "Concluir", + ro = "Finalizează", + ru = "Завершение", + sk = "DokonÄiÅ¥", + sl = "KonÄaj", + sv = "Slutför", + tr = "Bitir", + uk = "Завершити", + zh_TW = "完æˆ" + }; + + -- This error message is (hopefully) shown to the user if the UI + -- subsystem can't create the main application window. + ["GUI failed to start"] = { + af = "GUI het misluk om te laai", + ar = "الواجهة الرسومية Ùشلت ÙÙŠ البدء", + cs = "NepodaÅ™ilo se spustit GUI", + da = "Grafisk brugerflade kunne ikke startes", + de = "GUI konnte nicht gestartet werden", + el = "Το γÏαφικό πεÏιβάλλον απέτυχε να ξεκινήσει", + en_AU = "GUI failed to start", + en_CA = "GUI failed to start", + en_GB = "GUI failed to start", + es = "El interfaz gráfico de usuario ha fallado al arrancar", + fr = "Echec du démarrage de l'interface", + he = "שגי××” בהפעלת ממשק המשתמש", + hu = "Grafikus felület indítása sikertelen", + id = "Gagal memulai GUI!", + it = "Inizializzazione della GUI fallita", + nb = "Kunne ikke starte grafisk grensesnitt", + nds = "Fehler beim starten der GUI", + nl = "Opstarten GUI mislukt", + nn = "Kunne ikkje starta det grafiske grensesnittet", + pl = "GUI nie mógÅ‚ siÄ™ uruchomić", + pt = "O GUI falhou a iniciar", + pt_BR = "Falha ao iniciar a GUI", + ro = "InterfaÅ£a grafică nu a putut porni", + ru = "Ошибка запуÑка графичеÑкого интерфейÑа", + sk = "Nie je možné spustiÅ¥ GUI", + sl = "GUI se ni uspel zagnati", + sv = "Kunde inte starta grafisk gränssnitt", + tr = "Grafik arabirimi baÅŸlatılamadı", + uk = "Ðеможливо запуÑтити графічний інтерфейÑ", + zh_TW = "無法啟動圖形使用者介é¢" + }; + + -- This message is shown to the user if an installation encounters a fatal + -- problem (or the user clicked "cancel"), telling them that we'll try + -- to put everything back how it was before we started. + ["Incomplete installation. We will revert any changes we made."] = { + af = "Onvoltooide installasie. Ons sal enige veranderinge terugrol.", + ar = "لم يكتمل التثبيت. سيتم إزالة اي تغييرات.", + cs = "Instalace nebyla dokonÄena. VÅ¡e bude uvedeno do původního stavu.", + da = "Installation kunne ikke fuldendes. Ændringer tilbageføres.", + de = "Unvollständige Installation. Änderungen werden rückgängig gemacht.", + el = "Μισοτελειωμένη εγκατάσταση. Θα διαγÏάψουμε όσες αλλαγές κάναμε.", + en_AU = "Incomplete installation. We will revert any changes we made.", + en_CA = "Incomplete installation. We will revert any changes we made.", + en_GB = "Incomplete installation. We will revert any changes we made.", + es = "Instalación incompleta. Desharemos cualquier cambio que hayamos hecho.", + fr = "Installation incomplète. Tous les changements effectués seront annulés.", + he = "ההתקנה ×œ× ×”×•×©×œ×ž×”. ×נו נשיב ×ת ×”×©×™× ×•×™×™× ×©×‘×™×¦×¢× ×•.", + hu = "Telepítés befejezetlen. Eredeti helyzet visszaállítása.", + id = "Instalasi yang tidak lengkap. Kami akan mengembalikan perubahab yang dibuat.", + it = "Installazione incompleta. Ripristino delle modifiche effettuate in corso.", + nb = "Installasjonen ble ikke ferdig. Vi vil tilbakestille alle endringer som ble gjort.", + nds = "Unvollständige Installation. Alle Veränderungen werden rückgängig gemacht.", + nl = "Incomplete installatie. De veranderingen zullen ongedaan gemaakt worden.", + nn = "Installasjonen vart ikkje ferdig. Alle endringar vert tilbakestillt.", + pl = "Niekompletna instalacja. Cofniemy dokonane zmiany.", + pt = "Instalação incompleta. Todas as alterações serão desfeitas.", + pt_BR = "Instalação incompleta. As alterações feitas serão revertidas.", + ro = "Proces de instalare incomplet. Se vor restaura toate modificările făcute.", + ru = "Ошибка уÑтановки. Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ отменены.", + sk = "Neúplná inÅ¡talácia. Vraciam späť vykonané zmeny.", + sl = "Namestitev ni uspela. Vse spremembe bodo razveljavljene.", + sv = "Ofullständig installation. Ã…terställning av alla gjorda ändringar utförs.", + tr = "Eksik kurulum. Yaptığımız tüm deÄŸiÅŸiklikleri geri alacağız.", + uk = "Ðезавершене вÑтановленнÑ. УÑÑ– зміни буде відкачено.", + zh_TW = "安è£ç¨‹åºæœªå®Œæˆï¼Œä»»ä½•æ›´å‹•å°‡æœƒè¢«å¾©åŽŸ" + }; + + -- Reported to the user if everything worked out. + ["Installation was successful."] = { + af = "Installasie was suksesvol.", + ar = "نجح التثبيت", + cs = "Instalace byla úspěšná.", + da = "Installationen var succesfuld.", + de = "Installation war erfolgreich.", + el = "Η εγκατάσταση πέτυχε.", + en_AU = "Installation was successful.", + en_CA = "Installation was successful.", + en_GB = "Installation was successful.", + es = "La instalación fue un éxito.", + fi = "Asentaminen onnistui.", + fr = "Installation réussie.", + he = "ההתקנה הושלמה.", + hu = "Sikeres telepítés.", + id = "Instalasi berhasil.", + it = "Installazione riuscita.", + nb = "Installasjonen var en suksess.", + nds = "Die Installation war erfolgreich", + nl = "De installatie is succesvol verlopen.", + nn = "Installasjonen er ferdig.", + pl = "Instalacja zakoÅ„czona poprawnie.", + pt = "A instalação foi bem sucedida.", + pt_BR = "Instalação concluída com sucesso.", + ro = "Instalarea s-a terminat cu succes.", + ru = "УÑтановка была уÑпешна.", + sk = "InÅ¡talácia je hotová.", + sl = "Namestitev je uspela.", + sv = "Installationen lyckades.", + tr = "Kurulum baÅŸarılı oldu.", + uk = "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑƒÑпішне.", + zh_TW = "安è£ç¨‹åºå®Œæˆã€‚" + }; + + -- This is a window title, shown while the actual installation to disk + -- is in process and a progress meter is being shown. + ["Installing"] = { + af = "Besig om te installeer", + ar = "عملية التثبيت", + cs = "Instaluji", + da = "Installerer", + de = "Installiere", + el = "Γίνεται εγκατάσταση", + en_AU = "Installing", + en_CA = "Installing", + en_GB = "Installing", + es = "Instalando", + fi = "Asennetaan", + fr = "Installation en cours", + he = "מתקין", + hu = "Telepítés", + id = "Menginstal", + it = "Installazione in corso", + nb = "Installerer", + nds = "Installiere ...", + nl = "Installeren", + nn = "Installerar", + pl = "Instalacja", + pt = "A instalar", + pt_BR = "Instalando", + ro = "Instalare", + ru = "УÑтановка", + sk = "InÅ¡talujem", + sl = "nameÅ¡Äanje", + sv = "Installerar", + tr = "Kuruluyor", + uk = "Ð’ÑтановленнÑ", + zh_TW = "正在安è£" + }; + + -- This is a window title, shown while the user is choosing + -- installation-specific options. + ["Options"] = { + af = "Opsies", + ar = "الخيارات", + cs = "Volby", + da = "Indstillinger", + de = "Optionen", + el = "Επιλογές", + en_AU = "Options", + en_CA = "Options", + en_GB = "Options", + es = "Opciones", + fi = "Valinnat", + fr = "Options", + he = "×פשרויות", + hu = "Beállítások", + id = "Pilihan", + it = "Opzioni", + nb = "Valg", + nds = "Optionen", + nl = "Opties", + nn = "Val", + pl = "Opcje", + pt = "Opções", + pt_BR = "Opções", + ro = "OpÈ›iuni", + ru = "ÐаÑтройки", + sk = "Možnosti", + sl = "Možnosti", + sv = "Alternativ", + tr = "Seçenekler", + uk = "Параметри", + zh_TW = "é¸é …" + }; + + -- Shown as an option in the ncurses UI as the final element in a list of + -- default filesystem paths where a user may install files. They can + -- choose this to enter a filesystem path manually. + ["(I want to specify a path.)"] = { + af = "(Ek wil 'n pad aanwys)", + ar = "(أنا أريد اختيار المسار)", + cs = "(Chci urÄit cestu.)", + de = "(Ich möchte einen Pfad angeben.)", + el = "(Θέλω να οÏίσω μονοπάτι.)", + en_AU = "(I want to specify a path.)", + en_CA = "(I want to specify a path.)", + en_GB = "(I want to specify a path.)", + es = "(Quiero especificar una ruta.)", + fi = "(Haluan syöttää polun.)", + fr = "(Je veux spécifier une destination.)", + he = "(×× ×™ מעוניין לציין נתיב.)", + hu = "(egy útvonalat szeretnék)", + id = "(Saya akan menentukan path.)", + it = "(Voglio specificare un percorso)", + nb = "(Jeg vil skrive inn min egen sti.)", + nds = "(Ich möchte einen Pfad angeben.)", + nl = "(Ik wil een pad specificeren.)", + nn = "(Eg vil skriva inn min eigen sti.)", + pl = "(ChcÄ™ podać Å›cieżkÄ™.)", + pt = "(Eu quero especificar o caminho.)", + pt_BR = "(Eu quero especificar um caminho.)", + ro = "(Doresc să specific o cale.)", + ru = "(указать путь.)", + sk = "(Chcem zadaÅ¥ cestu ruÄne.)", + sl = "(Želim doloÄiti pot)", + sv = "(Jag vill skriva in en egen sökväg.)", + tr = "(Bir yol belirtmek istiyorum.)", + uk = "(Я хочу вказати шлÑÑ….)", + zh_TW = "(我想è¦æŒ‡å®šè·¯å¾‘)" + }; + + -- "kilobytes per second" ... download rate. + ["KB/s"] = { + af = "KB/s", + ar = "Ùƒ.بايت/Ø«", + cs = "KB/s", + da = "KB/s", + de = "KB/s", + el = "KB/δευτ.", + en_AU = "KB/s", + en_CA = "KB/s", + en_GB = "KB/s", + es = "KB/s", + fi = "kt/s", + fr = "Ko/s", + he = "ק\"ב/ש", + hu = "KB/mp", + id = "KB/detik", + it = "KB/s", + nb = "KB/s", + nds = "kB/s", + nl = "KB/s", + nn = "KB/s", + pl = "KB/s", + pt = "KB/s", + pt_BR = "KB/s", + ro = "KB/s", + ru = "КБ/Ñ", + sk = "KB/s", + sl = "KB/s", + sv = "KB/s", + tr = "KB/s", + uk = "КБ/c", + zh_TW = "KB/秒" + }; + + -- "bytes per second" ... download rate. + ["B/s"] = { + af = "B/s", + ar = "بايت/ثانية", + cs = "B/s", + da = "B/s", + de = "B/s", + el = "B/δευτ", + en_AU = "B/s", + en_CA = "B/s", + en_GB = "B/s", + es = "B/s", + fi = "t/s", + fr = "octets/s", + he = "ב'/ש", + hu = "B/mp", + id = "B/detik", + it = "B/s", + nb = "B/s", + nds = "B/s", + nl = "B/s", + nn = "B/s", + pl = "B/s", + pt = "B/s", + pt_BR = "B/s", + ro = "B/s", + ru = "Б/Ñ", + sk = "B/s", + sl = "B/s", + sv = "B/s", + tr = "B/s", + uk = "Б/Ñ", + zh_TW = "ä½å…ƒçµ„/秒" + }; + + -- Download rate when we don't know the goal (can't report time left). + -- This is a number (%0) followed by the localized "KB/s" or "B/s" (%1). + ["%0 %1"] = { + af = "%0 %1", + ar = "â€%0 %1", + cs = "%0 %1", + da = "%0 %1", + de = "%0 %1", + el = "%0 %1", + en_AU = "%0 %1", + en_CA = "%0 %1", + en_GB = "%0 %1", + es = "%0 %1", + fi = "%0 %1", + fr = "%0 %1", + he = "%0 %1", + hu = "%0 %1", + id = "%0 %1", + it = "%0 %1", + nb = "%0 %1", + nds = "%0 %1", + nl = "%0 %1", + nn = "%0 %1", + pl = "%0 %1", + pt = "%0 %1", + pt_BR = "%0 %1", + ro = "%0 %1", + ru = "%0 %1", + sk = "%0 %1", + sl = "%0 %1", + sv = "%0 %1", + tr = "%0 %1", + zh_TW = "%0 %1" + }; + + -- Download rate when we know the goal (can report time left). + -- This is a number (%0) followed by the localized "KB/s" or "B/s" (%1), + -- then the hours (%2), minutes (%3), and seconds (%4) remaining + ["%0 %1, %2:%3:%4 remaining"] = { + af = "%0 %1, %2:%3:%4 oorblywend", + ar = "â€%0 %1, %2:%3:%4 متبقية", + cs = "%0 %1, %2:%3:%4 zbývá", + da = "%0 %1, %2:%3:%4 tilbage", + de = "%0 %1, %2:%3:%4 verbleibend", + el = "%0 %1, απομένουν %2:%3:%4", + en_AU = "%0 %1, %2:%3:%4 remaining", + en_CA = "%0 %1, %2:%3:%4 remaining", + en_GB = "%0 %1, %2:%3:%4 remaining", + es = "%0 %1, %2:%3:%4 restantes", + fi = "%0 %1, %2:%3:%4 jäljellä", + fr = "%0 %1, %2:%3:%4 restantes", + he = "%0 %1, נותרו %2:%3:%4", + hu = "%0 %1, %2:%3:%4 van még hátra", + id = "%0 %1, %2:%3:%4 tersisa", + it = "%0 %1, %2:%3:%4 rimanenti", + nb = "%0 %1, %2:%3:%4 igjen", + nds = "%0 %1, %2:%3:%4 verbleiben", + nl = "%0 %1, %2:%3:%4 resterend", + nn = "%0 %1, %2:%3:%4 gjenstÃ¥r", + pl = "%0 %1, %2:%3:%4 do koÅ„ca", + pt = "restam %0 %1, %2:%3:%4", + pt_BR = "%0 %1, faltam %2:%3:%4", + ro = "%0 %1, %2:%3:%4 rămas", + ru = "%0 %1, оÑталоÑÑŒ %2:%3:%4", + sk = "%0 %1, %2:%3:%4 zostáva", + sl = "%0 %1, %2:%3:%4 preostanka", + sv = "%0 %1, %2:%3:%4 Ã¥terstÃ¥r", + tr = "%0 %1, %2:%3:%4 kaldı", + uk = "%0 %1, залишилоÑÑ %2:%3:%4", + zh_TW = "剩餘 %0 %1, %2:%3:%4" + }; + + -- download rate when download isn't progressing at all. + ["stalled"] = { + af = "hang", + ar = "توقÙ", + cs = "zaseknuté", + de = "wartend", + el = "σταματημένο", + en_AU = "stalled", + en_CA = "stalled", + en_GB = "stalled", + es = "parado", + fr = "bloqué", + he = "נדחה", + hu = "beragadt", + it = "in stallo", + nb = "stanset", + nds = "Angehalten", + nl = "staat stil", + nn = "stanset", + pl = "wstrzymano", + pt = "Parado", + pt_BR = "parado", + ro = "întârziat", + ru = "заÑÑ‚Ñ€Ñло", + sk = "zastavené", + sl = "prekinjeno", + sv = "avstannad", + tr = "duraksadı", + zh_TW = "已延é²" + }; + + -- Download progress string: filename (%0), percent downloaded (%1), + -- download rate determined in one of the above strings (%2). + ["%0: %1%% (%2)"] = { + af = "%0: %1%% (%2)", + ar = "â€%0: %1%% (%2)", + cs = "%0: %1%% (%2)", + da = "%0: %1%% (%2)", + de = "%0: %1%% (%2)", + el = "%0: %1%% (%2)", + en_AU = "%0: %1%% (%2)", + en_CA = "%0: %1%% (%2)", + en_GB = "%0: %1%% (%2)", + es = "%0: %1%% (%2)", + fi = "%0: %1%% (%2)", + fr = "%0: %1%% (%2)", + he = "%0: %1%% (%2)", + hu = "%0: %1%% (%2)", + id = "%0: %1%% (%2)", + it = "%0: %1%% (%2)", + nb = "%0: %1%% (%2)", + nds = "%0: %1%% (%2)", + nl = "%0: %1%% (%2)", + nn = "%0: %1%% (%2)", + pl = "%0: %1%% (%2)", + pt = "%0: %1%% (%2)", + pt_BR = "%0: %1%% (%2)", + ro = "%0: %1%% (%2)", + ru = "%0: %1%% (%2)", + sk = "%0: %1%% (%2)", + sl = "%0: %1%% (%2)", + sv = "%0: %1%% (%2)", + tr = "%0: %%%1 (%2)", + zh_TW = "%0: %1%% (%2)" + }; + + -- This is a window title when prompting the user to insert a new disc. + ["Media change"] = { + af = "Media verander", + ar = "تغيير القرص", + cs = "VýmÄ›na média", + da = "Skift medie", + de = "Medienwechsel", + el = "Αλάξτε μέσο αποθήκευσης", + en_AU = "Media change", + en_CA = "Media change", + en_GB = "Media change", + es = "Cambio de disco", + fr = "Changement de média", + he = "שינוי מדיה", + hu = "KövetkezÅ‘ média", + id = "Ganti media", + it = "Inserire il prossimo disco", + nb = "Mediaendring", + nds = "Medien Wechsel", + nl = "Medium wisselen", + nn = "Mediaendring", + pl = "Zmiana noÅ›nika", + pt = "Mudança de media", + pt_BR = "Mídia alterada", + ro = "Schimbare mediu stocare", + ru = "Смена диÑка", + sk = "Výmena média", + sl = "Manjava medija", + sv = "Mediabyte", + tr = "Medya deÄŸiÅŸimi", + uk = "Зміна ноÑÑ–Ñ", + zh_TW = "媒體更改" + }; + + -- This error message is shown to the end-user when we can't make a new + -- folder/directory in the filesystem. + ["Directory creation failed"] = { + af = "Lêer skepping het misluk", + ar = "Ùشل ÙÙŠ إنشاء المجلد", + cs = "Selhalo vytváření adresáře", + da = "Kunne ikke oprette katalog", + de = "Erstellung eines Verzeichnisses fehlgeschlagen", + el = "Η δημιουÏγεία φακέλου απέτυχε", + en_AU = "Directory creation failed", + en_CA = "Directory creation failed", + en_GB = "Directory creation failed", + es = "Fallo en la creación de directorio", + fi = "Hakemiston luominen epäonnistui", + fr = "Création de répertoire échouée", + he = "יצירת התיקיה נכשלה", + hu = "Mappa létrehozása sikertelen", + id = "Pembuatan direktori gagal", + it = "Creazione directory fallita", + nb = "Kunne ikke lage katalog", + nds = "Ordner erstellen schlug fehl!", + nl = "Aanmaken folder mislukt", + nn = "Kunne ikkje laga katalog", + pl = "Tworzenie katalogu nie powiodÅ‚o siÄ™", + pt = "A criação da directoria falhou", + pt_BR = "Falha na criação do diretório", + ro = "Eroare la crearea directorului", + ru = "Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð°", + sk = "Nemôžem vytvoriÅ¥ adresár", + sl = "Ustvarjanje mape ni uspelo", + sv = "Kunde inte skapa katalog", + tr = "Dizin oluÅŸturulamadı", + uk = "Ðеможливо Ñтворити теку", + zh_TW = "無法建立目錄" + }; + + -- This is a GTK+ button label. The '_' comes before the hotkey character. + -- "No" would take the 'N' hotkey in English. + ["N_ever"] = { + af = "N_ooit", + ar = "أب_داً", + cs = "Ni_kdy", + da = "Al_drig", + de = "Ni_emals", + el = "_Ποτέ", + en_AU = "N_ever", + en_CA = "N_ever", + en_GB = "N_ever", + es = "N_unca", + fi = "Ei _koskaan", + fr = "_Jamais", + he = "×_×£ פע×", + hu = "_Soha", + id = "Tidak per_nah", + it = "_Mai", + nb = "Al_dri", + nds = "N_ie", + nl = "No_oit", + nn = "_Aldri", + pl = "N_igdy", + pt = "N_unca", + pt_BR = "N_unca", + ro = "N_iciodată", + ru = "Ð_икогда", + sk = "N_ikdy", + sl = "N_ikoli", + sv = "Al_drig", + tr = "A_sla", + uk = "Ð_іколи", + zh_TW = "æ°¸ä¸(_N)" + }; + + -- This is a GUI button label, to move forward to the next stage of + -- installation. It's opposite is "Back" in this case. + ["Next"] = { + af = "Volgende", + ar = "التالي", + cs = "Další", + da = "Næste", + de = "Weiter", + el = "Επόμενο", + en_AU = "Next", + en_CA = "Next", + en_GB = "Next", + es = "Siguiente", + fi = "Seuraava", + fr = "Suivant", + he = "הב×", + hu = "KövetkezÅ‘", + id = "Berikutnya", + it = "Avanti", + nb = "Neste", + nds = "Weiter", + nl = "Volgende", + nn = "Neste", + pl = "Dalej", + pt = "Seguinte", + pt_BR = "Avançar", + ro = "Următorul", + ru = "Далее", + sk = "ÄŽalej", + sl = "Naprej", + sv = "Nästa", + tr = "Ä°leri", + uk = "Далі", + zh_TW = "下一個" + }; + + -- This is a GUI button label, indicating a negative response. + ["No"] = { + af = "Nee", + ar = "لا", + cs = "Ne", + da = "Nej", + de = "Nein", + el = "Όχι", + en_AU = "No", + en_CA = "No", + en_GB = "No", + es = "No", + fi = "Ei", + fr = "Non", + he = "ל×", + hu = "Nem", + id = "Tidak", + it = "No", + nb = "Nei", + nds = "Nein", + nl = "Nee", + nn = "Nei", + pl = "Nie", + pt = "Não", + pt_BR = "Não", + ro = "Nu", + ru = "Ðет", + sk = "Nie", + sl = "Ne", + sv = "Nej", + tr = "Hayır", + uk = "ÐÑ–", + zh_TW = "å¦" + }; + + -- This is a GUI button label, indicating a positive response. + ["Yes"] = { + af = "Ja", + ar = "نعم", + cs = "Ano", + da = "Ja", + de = "Ja", + el = "Îαί", + en_AU = "Yes", + en_CA = "Yes", + en_GB = "Yes", + es = "Sí", + fi = "Kyllä", + fr = "Oui", + he = "כן", + hu = "Igen", + id = "Ya", + it = "Si", + nb = "Ja", + nds = "Ja", + nl = "Ja", + nn = "Ja", + pl = "Tak", + pt = "Sim", + pt_BR = "Sim", + ro = "Da", + ru = "Да", + sk = "Ãno", + sl = "Da", + sv = "Ja", + tr = "Evet", + uk = "Так", + zh_TW = "是" + }; + + -- HTTP error message in the www UI, as in "404 Not Found" ... requested + -- file is missing. + ["Not Found"] = { + af = "Nie gevind nie", + ar = "لا يوجد", + cs = "Nenalezeno", + da = "Ikke fundet", + de = "Nicht gefunden", + el = "Δεν βÏέθηκε", + en_AU = "Not Found", + en_CA = "Not Found", + en_GB = "Not Found", + es = "No encontrado", + fi = "Ei löytynyt", + fr = "Introuvable", + he = "×œ× × ×ž×¦×", + hu = "Nem található", + id = "Tidak Ditemukan", + it = "Non Trovato", + nb = "Ikke funnet", + nds = "Nicht gefunden", + nl = "Niet Gevonden", + nn = "Ikkje funne", + pl = "Nie znaleziono", + pt = "Inexistente", + pt_BR = "Não Encontrado", + ro = "Nu a fost găsit", + ru = "Ðе найдено", + sk = "Nemôžem nájsÅ¥", + sl = "Ni najdeno", + sv = "Hittades inte", + tr = "Bulunamadı", + uk = "Ðе знайдено", + zh_TW = "找ä¸åˆ°" + }; + + -- This is reported to the user when there are no files to install, and + -- thus no installation to go forward. + ["Nothing to do!"] = { + af = "Niks om te doen nie!", + ar = "لا يوجد شيء لنÙعله", + cs = "Není co instalovat!", + da = "Ingen aktivitet mulig!", + de = "Nichts zu tun!", + el = "Δεν υπάÏχει τίποτα για να γίνει!", + en_AU = "Nothing to do!", + en_CA = "Nothing to do!", + en_GB = "Nothing to do!", + es = "¡Nada que hacer!", + fi = "Ei tehtävää!", + fr = "Rien à faire!", + he = "×ין מה לעשות!", + hu = "Nincs mit telepítenem!", + id = "Tidak ada yang akan dilakukan!", + it = "Impossible procedere!", + nb = "Ingenting Ã¥ gjøre!", + nds = "Nichts zu tun!", + nl = "Niets te doen!", + nn = "Ingenting Ã¥ gjera!", + pl = "Nic do zrobienia!", + pt = "Nada por fazer!", + pt_BR = "Nada para fazer!", + ro = "Nu este nimic de făcut!", + ru = "Ðечего делать!", + sk = "Nemám Äo robiÅ¥", + sl = "NiÄesar ni možno namestiti!", + sv = "Ingenting att göra!", + tr = "Yapılacak bir iÅŸ yok!", + uk = "Ðема чого робити!", + zh_TW = "沒有需è¦åŸ·è¡Œçš„程åº" + }; + + -- This is a GUI button label, sometimes paired with "Cancel" + ["OK"] = { + af = "Regso", + ar = "مواÙÙ‚", + cs = "OK", + da = "OK", + de = "OK", + el = "Εντάξει", + en_AU = "OK", + en_CA = "OK", + en_GB = "OK", + es = "Aceptar", + fr = "OK", + he = "×ישור", + hu = "OK", + id = "OK", + it = "OK", + nb = "OK", + nds = "OK", + nl = "OK", + nn = "OK", + pl = "OK", + pt = "Aceitar", + pt_BR = "OK", + ro = "Bine", + ru = "Да", + sk = "OK", + sl = "V redu", + sv = "OK", + tr = "Tamam", + uk = "Гаразд", + zh_TW = "確定" + }; + + -- This is displayed when the application has a serious problem, such as + -- crashing again in the crash handler, or being unable to find basic + -- files it needs to get started. It may be a window title, or written + -- to stdout, or whatever, but it's basically meant to be a title or + -- header, with more information to follow later. + ["PANIC"] = { + af = "PANIEK", + ar = "خطأ مهم", + cs = "SELHÃNÃ", + da = "PANIK", + de = "PANIK", + el = "ΠΑÎΙΚΟΣ", + en_AU = "PANIC", + en_CA = "PANIC", + en_GB = "PANIC", + es = "PÃNICO", + fr = "PANIC", + he = "בהלה", + hu = "PÃNIK", + id = "GEGER", + it = "PANICO", + nb = "PANIKK", + nds = "PANIK", + nl = "PROBLEEM", + nn = "Panikk", + pl = "PANIKA", + pt = "PÂNICO", + pt_BR = "PÂNICO", + ro = "PANICAT", + ru = "СЕРЬЕЗÐÐЯ ОШИБКÐ", + sk = "PANIKA", + sl = "PANIKA", + sv = "PANIK", + tr = "PANÄ°K", + uk = "ПÐÐІКÐ!!!", + zh_TW = "åš´é‡éŒ¯èª¤" + }; + + -- Prompt shown to user when we need her to insert a new disc. + ["Please insert '%0'"] = { + af = "Verskaf asseblief '%0'", + ar = "من Ùضلك أدخÙÙ„ '%0'", + cs = "Prosím vložte '%0'", + de = "Bitte legen Sie '%0' ein", + el = "ΠαÏακαλώ εισάγεται '%0'", + en_AU = "Please insert '%0'", + en_CA = "Please insert '%0'", + en_GB = "Please insert '%0'", + es = "Por favor introduce '%0'", + fi = "Syötä \"%0\"", + fr = "Veuillez insérer '%0'", + he = "×× × ×”×›× ×¡ '%0'", + hu = "Helyezze be '%0'-t", + id = "Silakan sisipkan '%0'", + it = "Per favore inserire '%0'", + nb = "Sett inn '%0'", + nds = "Bitte '%0' in das Laufwerk einlegen.", + nl = "Laadt '%0' a.u.b.", + nn = "Sett inn '%0'", + pl = "ProszÄ™ wÅ‚ożyć '%0'", + pt = "Por favor insira '%0'", + pt_BR = "Por favor, insira '%0'", + ro = "IntroduceÅ£i '%0'", + ru = "Ð’Ñтавьте, пожалуйÑта, '%0'", + sk = "Prosím vložte '%0'", + sl = "Prosim vstavite '%0'", + sv = "Sätt in '%0'", + tr = "Lütfen '%0' adlı diski takınız", + uk = "Будьте лаÑкаві, вÑтавте '%0'", + zh_TW = "è«‹æ’å…¥ '%0'" + }; + + -- Prompt shown to user in the stdio UI when we need to pause before + -- continuing, usually to let them read the outputted text that is + -- scrolling by. + ["Press enter to continue."] = { + af = "Druk enter sleutel om voort te gaan.", + ar = "اضغط Ù…Ùتاح الإدخال للاستمرار.", + cs = "Pro pokraÄování stisknÄ›te enter.", + da = "Tryk retur for at fortsætte.", + de = "Drücken Sie Enter um fortzufahren", + el = "Πατήστε ENTER για συνέχεια.", + en_AU = "Press enter to continue.", + en_CA = "Press enter to continue.", + en_GB = "Press enter to continue.", + es = "Presione Intro para continuar.", + fi = "Jatka painamalla enter.", + fr = "Veuillez appuyer sur Entrée pour continuer.", + he = "לחץ enter להמשך.", + hu = "Ãœss egy entert a folytatáshoz.", + id = "Untuk melanjtukan tekan enter.", + it = "Premere invio per continuare.", + nb = "Trykk enter for Ã¥ fortsette.", + nds = "Enter drücken, um fortzufahren.", + nl = "Toets enter om door te gaan.", + nn = "Trykk Enter for Ã¥ halda fram.", + pl = "ProszÄ™ nacisnąć enter, aby kontynuować.", + pt = "Pressione enter para continuar.", + pt_BR = "Pressione enter para continuar.", + ro = "ApăsaÅ£i Enter pentru a continua.", + ru = "Ðажмите Enter Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ", + sk = "StlaÄte Enter pre pokraÄovanie.", + sl = "Za nadaljevanje pritisnite enter.", + sv = "Tryck enter för att fortsätta.", + tr = "Devam etmek için giriÅŸ tuÅŸuna basınız.", + uk = "Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ñ‚Ð¸Ñніть Enter.", + zh_TW = "請按 [Enter] éµç¹¼çºŒã€‚" + }; + + -- This is a window title when informing the user that something + -- important has gone wrong (such as being unable to revert changes + -- during a rollback). + ["Serious problem"] = { + af = "Ernstige probleem", + ar = "مشكلة كبيرة", + cs = "Závažný problém", + da = "Seriøst problem", + de = "Ernstes Problem", + el = "ΣοβαÏÏŒ Ï€Ïόβλημα", + en_AU = "Serious problem", + en_CA = "Serious problem", + en_GB = "Serious problem", + es = "Problema grave", + fi = "Vakava ongelma", + fr = "Problème grave", + he = "תקלה רצינית", + hu = "Komoly probléma", + id = "Masalah berat", + it = "Problema critico", + nb = "Alvorlig problem", + nds = "Ernstzunehmender Fehler", + nl = "Serieus probleem", + nn = "Alvorleg problem", + pl = "Poważny bÅ‚Ä…d", + pt = "Problema sério", + pt_BR = "Problema sério", + ro = "Problemă serioasă", + ru = "Ð¡ÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°", + sk = "Vážny problém", + sl = "Pomembna napaka", + sv = "Allvarligt problem", + tr = "Ciddi problem", + uk = "Серйозна проблема", + zh_TW = "åš´é‡å•é¡Œ" + }; + + -- The www UI uses this as a page title when the program is terminating. + ["Shutting down..."] = { + af = "Besig om af te skakel...", + ar = "يجري الإغلاق...", + cs = "UkonÄuji se...", + da = "Lukker ned...", + de = "Schließe...", + el = "Γίνεται τεÏματισμός...", + en_AU = "Shutting down...", + en_CA = "Shutting down...", + en_GB = "Shutting down...", + es = "Cerrando ...", + fr = "Fermeture en cours...", + he = "מכבה...", + hu = "Leállítás...", + id = "Mematikan...", + it = "Uscita in corso...", + nb = "Avslutter...", + nds = "Schließe...", + nl = "Afsluiten...", + nn = "Avsluttar...", + pl = "Zamykanie...", + pt = "A terminar...", + pt_BR = "Desligando...", + ro = "Oprire...", + ru = "Завершение", + sk = "Vypínam sa...", + sl = "Izklaplanje...", + sv = "Avslutar...", + tr = "Kapatılıyor...", + uk = "Ð—Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸...", + zh_TW = "關閉……" + }; + + -- The www UI uses this as page text when the program is terminating. + ["You can close this browser now."] = { + af = "U kan die blaaier nou toemaak.", + ar = "يمكنك إغلاق هذا المتصÙØ­", + cs = "Nyní můžete ukonÄit tento prohlížeÄ.", + da = "Du kan lukke browseren nu.", + de = "Sie können diesen Browser nun schließen.", + el = "ΜποÏείτε να κλείσετε αυτόν τον πεÏιηγητή Ï„ÏŽÏα.", + en_AU = "You can close this browser now.", + en_CA = "You can close this browser now.", + en_GB = "You can close this browser now.", + es = "Ya puedes cerrar el navegador.", + fr = "Vous pouvez maintenant fermer ce navigateur", + he = "תוכל לסגור דפדפן ×–×” כעת.", + hu = "Most már bezárhatod ezt az ablakot.", + id = "Anda dapat menutup browser ini sekarang.", + it = "Puoi chiudere il browser adesso.", + nb = "Du kan lukke denne nettleseren nÃ¥.", + nds = "Sie können den Browser nun schließen.", + nl = "U kunt dit scherm nu sluiten.", + nn = "Du kan stenga denne nettlesaren no.", + pl = "Możesz zamknąć już przeglÄ…darkÄ™.", + pt = "Já pode fechar este browser.", + pt_BR = "Você não pode fechar esse navegador agora.", + ro = "Se poate închide navigatorul web acum.", + ru = "Можете закрыть браузер.", + sk = "Tento prehliadaÄ môžete zavrieÅ¥.", + sl = "Sedaj lahko zaprete brskalnik.", + sv = "Du kan stänga denna webbläsare nu.", + tr = "Bu tarayıcı penceresini ÅŸimdi kapatabilirsiniz.", + uk = "Тепер можна зачинити цей оглÑдач.", + zh_TW = "ä½ ç¾åœ¨å·²å¯ä»¥é—œé–‰ç€è¦½å™¨" + }; + + -- Error message shown to end-user when we can't write a symbolic link + -- to the filesystem. + ["Symlink creation failed!"] = { + af = "Simboliese skakel skepping het misluk!", + ar = "Ùشل ÙÙŠ إنشاء الوصلة الرمزية", + cs = "Selhalo vytváření symbolického odkazu!", + de = "Erzeugung einer Verknüpfung fehlgeschlagen!", + el = "Απέτυχε η δημιουÏγεία ενός symlink!", + en_AU = "Symlink creation failed!", + en_CA = "Symlink creation failed!", + en_GB = "Symlink creation failed!", + es = "¡Error al crear enlace simbólico!", + fi = "Symbolisen linkin luominen epäonnistui!", + fr = "Création de lien symbolique échouée!", + he = "יצירת הקישורית נכשלה!", + hu = "Symlink készítés sikertelen!", + id = "Pembuatan symlink gagal!", + it = "Creazione del collegamento (symlink) fallita!", + nb = "Kunne ikke lage symbolsk lenke!", + nds = "Fehler beim Erstellen einer symbolischen Verknüpfung!", + nl = "Maken van symbolische link mislukt!", + nn = "Kunne ikkje laga symbolsk lenke!", + pl = "Nie udaÅ‚o siÄ™ utworzyć odnoÅ›nika symbolicznego!", + pt = "A criação de uma ligação simbólica falhou!", + pt_BR = "Falha na criação do link simbólico!", + ro = "Nu s-au putut creea legături!", + ru = "Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑÑылки!", + sk = "Nemôžem vytvoriÅ¥ symlink", + sl = "Ustvarjanje symlinka ni uspelo!", + sv = "Kunde inte skapa symbolisk länk!", + tr = "Sembolik baÄŸ oluÅŸturulamadı!", + uk = "Ðеможливо Ñтворити Ñимвольне поÑиланнÑ!", + zh_TW = "無法建立連çµ" + }; + + -- Error message shown to the end-user when the OS has requested + -- termination of the program (SIGINT/ctrl-c on Unix, etc). + ["The installer has been stopped by the system."] = { + af = "Die instaleerder is gestop deur die stelsel.", + ar = "أوق٠نظام التشغيل التثبيت", + cs = "Instalátor byl zastaven signálem ze systému.", + da = "Installation stoppes af operativsystemet.", + de = "Das Installationsprogramm wurde vom System gestoppt.", + el = "Το Ï€ÏόγÏαμμα εγκατάστασης διακόπηκε από το σÏστημα.", + en_AU = "The installer has been stopped by the system.", + en_CA = "The installer has been stopped by the system.", + en_GB = "The installer has been stopped by the system.", + es = "El instalador ha sido interrumpido por el sistema.", + fi = "Järjestelmä pysäytti asennusohjelman.", + fr = "L'installeur a été interrompu par le système.", + he = "ההתקנה נעצרה על ידי המערכת.", + hu = "A telepítÅ‘ megszakítva a rendszer által.", + id = "Installer telah dihentikan oleh sistem.", + it = "L'installazione è stata terminata dal sistema operativo.", + nb = "Installasjonsprogrammet ble stoppet av systemet.", + nds = "Der Installer wurde vom System gestoppt.", + nl = "Het installatieprogramma is door het systeem gestopt.", + nn = "Installasjonsprogrammet vart stoppa av systemet.", + pl = "Instalator zostaÅ‚ zatrzymany przez system.", + pt = "O instalador foi parado pelo sistema.", + pt_BR = "O instalador foi parado pelo sistema.", + ro = "Programul de instalare a fost oprit de către sistem.", + ru = "Программа уÑтановки была оÑтановлена ÑиÑтемой.", + sk = "InÅ¡talátor bol zastavený systémom.", + sl = "Namestitveni program je bil zaustavljen od operacijskega sistema.", + sv = "Installationsprogrammet blev stoppat av systemet.", + tr = "Kurulum programı sistem tarafından durduruldu.", + uk = "ІнÑталÑтор зупинено ÑиÑтемою.", + zh_TW = "安è£ç¨‹å¼å·²è¢«ç³»çµ±çµ‚æ­¢" + }; + + -- Error message shown to the end-user when the program crashes with a + -- bad memory access (segfault on Unix, GPF on Windows, etc). + ["The installer has crashed due to a bug."] = { + af = "Die instaleerder het gefou asgevolg van 'n kewer.", + ar = "Ùشل التركيب بسبب بقة", + cs = "Instalátor zhavaroval vinou vlastní chyby.", + de = "Das Installationsprogramm ist aufgrund eines Fehlers abgestürzt.", + el = "Το Ï€ÏόγÏαμμα εγκατάστασης έσκασε λόγω κάποιου σφάλματος.", + en_AU = "The installer has crashed due to a bug.", + en_CA = "The installer has crashed due to a bug.", + en_GB = "The installer has crashed due to a bug.", + es = "El instalador se ha bloqueado por un fallo.", + fi = "Bugi kaatoi asennusohjelman.", + fr = "L'installateur a quitté inopinément à cause d'un bogue.", + he = "תוכנית ההתקנה קרה עקב שגי×ת תוכנה.", + hu = "A telepítÅ‘ egy bug miatt összeomlott.", + id = "Installer telah bertabrakan karena kutu.", + it = "L'installer è crashato a causa di un bug.", + nb = "Installasjonsprogrammet kræsjet pga. en feil.", + nds = "Der Installer ist Aufgrund eines Fehlers abgestürzt.", + nl = "Het installatieprogramma is door een bug gecrasht.", + nn = "Installasjonsprogrammet kræsja pÃ¥ grunn av ein programfeil.", + pl = "Instalator przerwaÅ‚ dziaÅ‚anie z powodu bÅ‚Ä™du.", + pt = "O instalador terminou acidentalmente devido a um erro.", + pt_BR = "O instalador travou devido a um bug.", + ro = "Programul de instalare s-a oprit din cauza unei erori.", + ru = "Программа уÑтановки завершилаÑÑŒ из-за ошибки.", + sk = "InÅ¡talátor havaroval kvôli chybe.", + sl = "Namestitveni program se je zruÅ¡il zaradi napake.", + sv = "Installationsprogrammet kraschade pga. ett fel.", + tr = "Kurulum bir hata yüzünden çöktü.", + uk = "ІнÑталÑтор завершив роботу через помилку.", + zh_TW = "安è£ç¨‹å¼å› è‡­èŸ²è€Œçµ‚æ­¢" + }; + + -- This is a button label in the ncurses ui to flip an option on/off. + ["Toggle"] = { + af = "Wisselaar", + ar = "بدّل", + cs = "PÅ™epnout", + da = "Skift", + de = "Umschalten", + el = "Εναλλαγή", + en_AU = "Toggle", + en_CA = "Toggle", + en_GB = "Toggle", + es = "Alternar", + fi = "Vaihda", + fr = "Basculer", + he = "הפוך מצב", + hu = "Kapcsoló", + id = "Toggle", + it = "Attiva/Disattiva", + nb = "Velg", + nds = "Umschalten", + nl = "Aan/Uit", + nn = "SlÃ¥ av/pÃ¥", + pl = "PrzeÅ‚Ä…cz", + pt = "Alternar", + pt_BR = "Alternar", + ro = "Comută", + ru = "Переключить", + sk = "Výber", + sl = "Preklopi", + sv = "Växla", + tr = "DeÄŸiÅŸtir", + uk = "Переключити", + zh_TW = "切æ›" + }; + + -- This is an error message shown to the end-user when there is an + -- unexpected entry in a .zip (or whatever) file that we didn't know + -- how to handle. + ["Unknown file type in archive"] = { + af = "Onbekende lêer tipe in argief", + ar = "نوع ملÙات غير معرو٠ÙÙŠ الأرشيÙ", + cs = "Neznámý typ souboru v archivu.", + da = "Ukendt filtype i arkiv", + de = "Unbekannter Dateityp im Archiv", + el = "Άγνωστος Ï„Ïπος αÏχείου μέσα στο πακέτο αÏχείων.", + en_AU = "Unknown file type in archive", + en_CA = "Unknown file type in archive", + en_GB = "Unknown file type in archive", + es = "Tipo de archivo desconocido", + fi = "Paketissa on tiedosto, jonka tyyppiä ei tunneta.", + fr = "Type de fichier inconnu dans cette archive.", + he = "סוג קובץ ×œ× ×™×“×•×¢ ב×רכיון", + hu = "Ismeretlen fájl típus az archívumban", + id = "Jenis berkas dalam arsip tidak dikenal", + it = "Non è stato possibile riconoscere un file presente nell'archivio", + nb = "Ukjent filtype i arkivet", + nds = "Unbekannter Dateityp im Archiv", + nl = "Onbekend bestandstype in archief", + nn = "Ukjent filtype i arkivet", + pl = "Nie znany typ pliku w archiwum.", + pt = "Tipo de ficheiro desconhecido no arquivo", + pt_BR = "Tipo de arquivo desconhecido no arquivo", + ro = "Tip de fiÅŸier necunoscut în arhivă", + ru = "ÐеизвеÑтный тип файла в архиве", + sk = "Neznámy typ súboru v archíve", + sl = "Naznana vrsta datoteke v arhivu", + sv = "Okänd filtyp pÃ¥träffad i arkivet", + tr = "ArÅŸivde bilinmeyen dosya tipi", + uk = "Ðевідомий тип файлу в архіві", + zh_TW = "檔案包中有未知的檔案類別" + }; + + -- This is an error message shown to the end-user if they refuse to + -- agree to the license of the software they are try to install. + ["You must accept the license before you may install"] = { + af = "U moet die lisensie aanvaar voor U mag installeer", + ar = "يجب أن تواÙÙ‚ على الرخصة قبل التثبيت", + cs = "PÅ™ed instalací je nutné odsouhlasit licenci", + de = "Sie müssen den Lizenzbedingungen zustimmen, bevor sie installieren können", + el = "ΠÏέπει να συμφωνήσετε με την άδεια χÏήσης Ï€Ïιν συνεχίσετε με την εγκατάσταση", + en_AU = "You must accept the license before you may install", + en_CA = "You must accept the licence before you may install", + en_GB = "You must accept the licence before you may install", + es = "Tienes que aceptar la licencia antes de que puedas instalar", + fi = "Asennusta ei suoriteta, ellet hyväksy lisenssiä.", + fr = "Vous devez accepter la licence avant de pouvoir installer", + he = "עליך לקבל ×ת הרשיון לפני שתוכל להתקין", + hu = "El kell fogadnod a liszenszt a telepítés elÅ‘tt", + id = "Anda harus menerima lisensi sebelum Anda dapat menginstal", + it = "E' necessario accettare la licenza prima di procedere con l'installazione.", + nb = "Lisensen mÃ¥ godkjennes før du kan installere", + nds = "Sie müssen der Lizenzbedingung zustimmen, um die Installation fortzusetzen", + nl = "U moet akkoord gaan met de licentie om te kunnen installeren", + nn = "Du mÃ¥ godkjenna lisensen før du fÃ¥r installera", + pl = "Musisz zaakceptować licencjÄ™ przed instalacjÄ…", + pt = "Tem que aceitar a licença antes de prosseguir com a instalação", + pt_BR = "Você precisa aceitar esta licença antes de poder instalar", + ro = "Trebuie să acceptaÅ£i licenÅ£a înainte de a instala", + ru = "Ð”Ð»Ñ ÑƒÑтановки вы должны принÑÑ‚ÑŒ лицензионное Ñоглашение", + sk = "Pokiaľ chcete pokraÄovaÅ¥ v inÅ¡talácii, musíte súhlasiÅ¥ s licenciou", + sl = "Za namestitev se morate strinjati z licenco", + sv = "Du mÃ¥ste acceptera licensavtalet innan du kan fortsätta med installationen", + tr = "Kuruluma baÅŸlamadan önce lisansı kabul etmelisiniz", + uk = "Ви маєте погодитиÑÑ Ð· умовами викориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ вÑтановленнÑ", + zh_TW = "ä½ å¿…é ˆåŒæ„該許å¯è­‰ä»¥ç¹¼çºŒå®‰è£ç¨‹åº" + }; + + -- Installations display the currently-installing component, such as + -- "Base game" or "Bonus pack content" or whatnot. The installer lists + -- the current component as "Metadata" when writing out its own + -- information, such as the final list of installed files, the uninstall + -- support application, etc. It's a catch-all category: data about the + -- actual data, basically. + ["Metadata"] = { + af = "Metadata", + ar = "البيانات الإضاÙية", + cs = "Metadata", + da = "Metadata", + de = "Metadaten", + el = "Μεταδεδομένα", + en_AU = "Metadata", + en_CA = "Metadata", + en_GB = "Metadata", + es = "Metadatos", + fi = "Metadata", + fr = "Métadonnées", + he = "נתוני מט×", + hu = "Metaadat", + id = "Metadata", + it = "Metadati", + nb = "Metadata", + nds = "Metadaten", + nl = "Metadata", + nn = "Metadata", + pl = "Metadane", + pt = "Meta-Informação", + pt_BR = "Metadado", + ro = "Metadata", + ru = "Метаданные", + sk = "Metadáta", + sl = "Metapodatki", + sv = "Metadata", + tr = "Bilgi", + uk = "Метадані", + zh_TW = "中繼資料" + }; + + -- This error is shown if incorrect command line arguments are used. + ["Invalid command line"] = { + af = "Ongeldige bevel argumente", + ar = "أمر غير صحيح", + cs = "Neplatné argumenty", + de = "Ungültige Kommandozeile", + el = "Λάθος γÏαμμή εντολών", + en_AU = "Invalid command line", + en_CA = "Invalid command line", + en_GB = "Invalid command line", + es = "Orden incorrecta", + fi = "Virheellinen komentorivi", + fr = "Ligne de commande invalide", + he = "פקודת שורה שגויה", + hu = "Helytelen parancssor", + id = "Perintah baris tidak cocok", + it = "Parametri nella riga di comando non validi", + nb = "Ugyldig kommandolinje", + nds = "Ungültige Befehlszeile", + nl = "Ongeldige opdrachtregel", + nn = "Ugyldig kommandolinje", + pl = "Niepoprawny parametr", + pt = "Argumento da linha de comandos inválido", + pt_BR = "Linha de comando inválida", + ro = "Linie de comandă invalidă", + ru = "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока", + sk = "Chybné parametre", + sl = "Neveljaven ukaz", + sv = "Ogiltigt kommando", + tr = "Geçersiz komut satırı", + uk = "Ðекоректні параметри у командному Ñ€Ñдку", + zh_TW = "無效的命令" + }; + + -- This error is shown when updating the manifest (the list of files that + -- we installed), if it can't load the file for some reason. '%0' is the + -- manifest's package name. + ["Couldn't load manifest file for '%0'"] = { + af = "Kon nie die manifesto lêer laai vir '%0' nie.", + ar = "لم يمكن تحميل قائمة الملÙات لـ'%0'", + cs = "Nemohu naÄíst soubor s manifestem pro '%0'", + de = "Konnte Manifestdatei für '%0' nicht laden", + el = "Δεν μπόÏεσε να φοÏτώσει το αÏχείο \"manifest\" για '%0'", + en_AU = "Couldn't load manifest file for '%0'", + en_CA = "Couldn't load manifest file for '%0'", + en_GB = "Couldn't load manifest file for '%0'", + es = "No pudo cargar el archivo manifest de '%0'", + fi = "Asennusluetteloa paketille \"%0\" ei kyetty lukemaan.", + fr = "Impossible de charger le fichier manifeste de '%0'", + he = "×œ× × ×™×ª×Ÿ לטעון ×ת קובץ המניפסט עבור '%0'", + hu = "'%0' fájllista betöltése sikertelen", + id = "Tidak dapat memuat manifesto untuk '%0'", + it = "Impossibile caricare il manifest file per '%0'", + nb = "Kunne ikke laste manifestfil for '%0'", + nds = "Konnte Manifest für '%0' nicht laden.", + nl = "Kan manifest bestand for '%0' niet laden", + nn = "Kunne ikkje lasta manifestfil for '%0'", + pl = "Nie można zaÅ‚adować manifestu dla pliku '%0'", + pt = "Foi impossível carregar o ficheiro de manifesto para '%0'", + pt_BR = "Não é possível carregar o arquivo manifest de '%0'", + ro = "Nu s-a putut încărca lista de fiÅŸiere de instalat pentru '%0'", + ru = "Ðевозможно загрузить ÑпиÑок уÑтановленных файлов Ð´Ð»Ñ '%0'", + sk = "Nemôžem nahraÅ¥ manifest súbor pre '%0'", + sl = "NeuspeÅ¡no nalaganje datoteke manifesta za '%0'", + sv = "Kunde inte ladda fillistan för '%0'", + tr = "'%0' için kurulum kaydı yüklenemedi", + uk = "Ðеможливо відкрити файл маніфеÑту Ð´Ð»Ñ '%0'", + zh_TW = "無法讀å–來自 '%0' 的檔案清單" + }; + + -- This error is shown when the user prompted the app to read a filename + -- (%0) that doesn't exist. + ["File %0 not found"] = { + af = "Lêer %0 nie gevind nie", + ar = "المل٠%0 غير موجود", + cs = "Soubor '%0' nebyl nalezen", + da = "Filen '%0' ikke fundet", + de = "Datei %0 nicht gefunden.", + el = "Το αÏχείο %0 δεν βÏέθηκε", + en_AU = "File %0 not found", + en_CA = "File %0 not found", + en_GB = "File %0 not found", + es = "Archivo %0 no encontrado", + fi = "Tiedostoa \"%0\" ei ole.", + fr = "Fichier %0 introuvable", + he = "הקובץ %0 ×œ× × ×ž×¦×", + hu = "%0 nem található", + id = "Berkas %0 tidak ditemukan", + it = "Impossibile trovare il File %0", + nb = "Filen '%0' ble ikke funnet", + nds = "Datei %0 wurde nicht gefunden", + nl = "Bestand %0 niet gevonden", + nn = "Kunne ikkje finne fila '%0'", + pl = "Plik %0 nie znaleziony", + pt = "O ficheiro %0 não foi encontrado", + pt_BR = "Arquivo %0 não encontrado", + ro = "FiÅŸierul %0 nu a fost găsit", + ru = "Файл %0 не найден", + sk = "NenaÅ¡iel som súbor %0", + sl = "Datoteke %0 ni možno najti", + sv = "Filen '%0' hittades inte", + tr = "%0 dosyası bulunamadı", + uk = "Ðеможливо знаÑти файл %0", + zh_TW = "找ä¸åˆ°æª”案 %0" + }; + + -- This is a window title on the message box when asking if user is sure + -- they want to uninstall a package. + ["Uninstall"] = { + af = "Verwyder", + ar = "إزالة التثبيت", + cs = "Odinstalovat", + da = "Afinstallér", + de = "Deinstallieren", + el = "Απεγκατάσταση", + en_AU = "Uninstall", + en_CA = "Uninstall", + en_GB = "Uninstall", + es = "Desinstalar", + et = "Eemalda", + fi = "Asennuksen poisto", + fr = "Désinstaller", + he = "הסרה", + hu = "Eltávolítás", + id = "Uninstall", + it = "Disinstalla", + nb = "Avinstallasjon", + nds = "Deinstalleren", + nl = "Deïnstalleren", + nn = "Avinstaller", + pl = "Odinstaluj", + pt = "Desinstalar", + pt_BR = "Desinstalar", + ro = "Dezinstalare", + ru = "Удалить", + sk = "OdinÅ¡talovaÅ¥", + sl = "Odstrani", + sv = "Avinstallera", + tr = "Kaldır", + uk = "ДеінÑталювати", + zh_TW = "移除" + }; + + -- This is the text when asking the user if they want to uninstall + -- the package named '%0'. + ["Are you sure you want to uninstall '%0'?"] = { + af = "Is U seker U wil '%0' verwyder?", + ar = "هل تريد Ùعلاً إزالة '%0' ØŸ", + cs = "Opravdu chcete odinstalovat '%0'?", + da = "Er du sikker pÃ¥ at du vil afinstallere '%0'?", + de = "Sind Sie sicher, dass Sie '%0' deinstallieren wollen?", + el = "Είστε σίγουÏοι θέλετε να απεγκαταστήσετε το '%0'?", + en_AU = "Are you sure you want to uninstall '%0'?", + en_CA = "Are you sure you want to uninstall '%0'?", + en_GB = "Are you sure you want to uninstall '%0'?", + es = "¿Está seguro de que quiere desinstalar '%0'?", + fi = "Haluatko varmasti poistaa asennuksen \"%0\"?", + fr = "Êtes-vous sûr de vouloir désinstaller '%0' ?", + he = "×”×× ×תה בטוח שברצונך להסיר ×ת '%0'?", + hu = "Biztosan eltávolítod: '%0' ?", + id = "Apakah Anda yakin ingin meng-uninstal '%0'?", + it = "Se veramente sicuro di voler disinstallare '%0'?", + nb = "Er du sikker pÃ¥ at du vil avinstallere '%0'?", + nds = "Sind sie sicher, dass sie '%0' deinstallieren wollen?", + nl = "Bent u er zeker van dat u '%0' wilt deïnstalleren?", + nn = "Er du sikker pÃ¥ at du vil avinstallera '%0'?", + pl = "Czy na pewno chcesz odinsalować '%0'?", + pt = "Tem a certeza que quer desinstalar '%0'?", + pt_BR = "Você tem certeza que deseja desinstalar '%0'?", + ro = "SunteÅ£i sigur că doriÅ£i dezinstalarea '%0'?", + ru = "Ð’Ñ‹ уверены, что хотите удалить '%0'?", + sk = "Ste si istí, že chcete odinÅ¡talovaÅ¥ '%0'?", + sl = "Ali ste prepriÄani, da želite odstraniti '%0'?", + sv = "Är du säker pÃ¥ att du vill avinstallera '%0'?", + tr = "'%0' paketini kaldırmak istediÄŸinizden emin misiniz?", + uk = "Ви впевнені що хочете деінÑталювати '%0'?", + zh_TW = "你確定è¦ç§»é™¤ '%0'" + }; + + -- This is a window title, shown while the actual uninstall is in process + -- and a progress meter is being shown. + ["Uninstalling"] = { + af = "In die proses van verwydering", + ar = "يجري الإزالة", + cs = "Odinstalovávám", + da = "Afinstallerer", + de = "Deinstalliere", + el = "Γίνεται απεγκατάσταση", + en_AU = "Uninstalling", + en_CA = "Uninstalling", + en_GB = "Uninstalling", + es = "Desinstalando", + fi = "Poistetaan asennusta", + fr = "Désinstallation en cours", + he = "מסיר", + hu = "Eltávolítás", + id = "Meng-uninstal", + it = "Disinstallazione in corso", + nb = "Avinstallerer", + nds = "Deinstallation", + nl = "Deïnstallatie", + nn = "Avinstallerar", + pl = "Odinstalowywanie", + pt = "A desinstalar", + pt_BR = "Desinstalando", + ro = "Se dezinstalează", + ru = "Удаление", + sk = "OdinÅ¡talovávam", + sl = "Odstranjevanje", + sv = "Avinstallerar", + tr = "Kaldırılıyor", + uk = "ПрибираннÑ", + zh_TW = "正在移除" + }; + + -- This is shown to the user in a message box when uninstallation is done. + ["Uninstall complete"] = { + af = "Verwydering voltooi", + ar = "انتهت الإزالة", + cs = "Odinstalace dokonÄena", + da = "Afinstallation er gennemført", + de = "Deinstallation abgeschlossen", + el = "Η απεγκατάσταση ολοκληÏώθηκε", + en_AU = "Uninstall complete", + en_CA = "Uninstall complete", + en_GB = "Uninstall complete", + es = "Desinstalación terminada", + fi = "Asennus poistettu", + fr = "Désinstallation complète", + he = "ההסרה הושלמה", + hu = "Eltávolítás kész", + id = "Uninstal selesai", + it = "Disinstallazione completata", + nb = "Avinstallasjonen er ferdig", + nds = "Deinstallation abgeschlossen", + nl = "Deïnstallatie voltooid", + nn = "Avinstallasjonen er ferdig", + pl = "Odinstalowanie zakoÅ„czone", + pt = "A desinstalação foi bem sucedida", + pt_BR = "Desinstalação completada", + ro = "Dezinstalare completă", + ru = "Удаление завершено", + sk = "OdinÅ¡talácia dokonÄená", + sl = "Odstranitev konÄana", + sv = "Avinstallation slutförd", + tr = "Kaldırma tamamlandı", + uk = "ÐŸÑ€Ð¸Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾", + zh_TW = "移除完æˆ" + }; + + -- This is written to the terminal in the ncurses UI when the window is + -- too thin to be usable; it's asking the user to resize the terminal + -- window horizontally. Since space may be extremely tight, try to be as + -- terse as possible (but we can wrap the text if possible, so don't be + -- cryptic). The '[' and ']' characters are just decoration to imply this + -- is a system problem outside the scope of the application, but they + -- aren't required. + ["[Make the window wider!]"] = { + af = "[Maak die venster weier!]", + ar = "[كبّر الناÙذة!]", + cs = "[ZvÄ›tÅ¡it šířku okna!]", + da = "[Gør vinduet bredere!]", + de = "[Fenster breiter machen!]", + el = "[Μεγαλώστε το παÏάθυÏο κατά πλάτος!]", + en_AU = "[Make the window wider!]", + en_CA = "[Make the window wider!]", + en_GB = "[Make the window wider!]", + es = "[¡Ensanchar la ventana!]", + fi = "[Levennä ikkunaa!]", + fr = "[Élargissez la fenêtre!]", + he = "[הרחב ×ת החלון!]", + hu = "[Húzd az ablakot szélesebbre!]", + id = "[Buat jendela lebih lebar!]", + it = "[Allarga la finestra!]", + nb = "[Gjør vinduet bredere!]", + nds = "[Mach das Fenster breiter!]", + nl = "[Maak het scherm breder!]", + nn = "[Gjer vindauget breiare!]", + pl = "[Zrób szersze okno!]", + pt = "[Torne a janela mais larga!]", + pt_BR = "[Aumente a largura da janela!]", + ro = "[MăreÅŸte lăţimea ferestrei]", + ru = "Сделайте окно шире!", + sk = "[Roztiahnite okno do šírky!]", + sl = "[RazÅ¡iri to okno!]", + sv = "[Gör fönstret bredare!]", + tr = "[Pencereyi geniÅŸlet!]", + uk = "[Зробіть вікно ширше!]", + zh_TW = "[使視窗更寬]" + }; + + -- This is written to the terminal in the ncurses UI when the window is + -- too short to be usable; it's asking the user to resize the terminal + -- window vertically. Since space may be extremely tight, try to be as + -- terse as possible (but we can wrap the text if possible, so don't be + -- cryptic). The '[' and ']' characters are just decoration to imply this + -- is a system problem outside the scope of the application, but they + -- aren't required. + ["[Make the window taller!]"] = { + af = "[Maak die venster langer!]", + ar = "[اجعل الناÙذة أطول!]", + cs = "[ZvÄ›tÅ¡it výšku okna!]", + da = "[Gør vinduet højere!]", + de = "[Fenster höher machen!]", + el = "[Μεγαλώστε το παÏάθυÏο κατα Ïψος]", + en_AU = "[Make the window taller!]", + en_CA = "[Make the window taller!]", + en_GB = "[Make the window taller!]", + es = "[¡Hacer la ventana más alta!]", + fi = "[Tee ikkunasta korkeampi!]", + fr = "[Agrandissez la fenêtre!]", + he = "[הגבה ×ת החלון!]", + hu = "[Húzd az ablakot magasabbra!]", + id = "[Buat jendela lebih tinggi!]", + it = "[Allunga la finestra!]", + nb = "[Gjør vinduet høyere!]", + nds = "[Mach das Fenster höher!]", + nl = "[Maak het scherm langer!]", + nn = "[Gjer vindauget høgare!]", + pl = "[Zrób wyższe okno!]", + pt = "[Torne a janela mais alta!]", + pt_BR = "[Aumente a altura da janela!]", + ro = "[MăreÅŸte înălÅ£imea ferestrei!]", + ru = "Сделайте окно выше!", + sk = "[Roztiahnite okno do výšky!]", + sl = "[PoviÅ¡aj to okno!]", + sv = "[Gör fönstret högre!]", + tr = "[Pencereyi uzat!]", + uk = "[Зробіть вікно вище!]", + zh_TW = "[使視窗更長]" + }; + + -- This is written out if we failed to add an item to the desktop + -- application menu (or "Start" bar on Windows, or maybe the Dock on + -- Mac OS X, etc). + ["Failed to install desktop menu item"] = { + af = "Mislukking tydens die installasie van die werkskerm kieslys item", + ar = "Ùشل ÙÙŠ التثبيت لقائمة سطح المكتب", + cs = "NepodaÅ™ilo se nainstalovat položku do menu", + da = "Kunne ikke oprette menupunkt i skrivebordets menu", + de = "Konnte Verknüpfung für Desktop-Menü nicht installieren", + el = "Σφάλμα κατα την εγκατάσταση της συντόμευσης εκκίνησης του Ï€ÏογÏάμματος", + en_AU = "Failed to install desktop menu item", + en_CA = "Failed to install desktop menu item", + en_GB = "Failed to install desktop menu item", + es = "Fallo al añadir un elemento al menú de escritorio", + fi = "Kohdan lisääminen työpöytävalikkoon epäonnistui.", + fr = "Echec de l'installation des éléments du bureau", + he = "שגי××” בהתקנת פריט בתפריט היישומי×", + hu = "Asztali ikon létrehozása sikertelen", + it = "L'installazione di un oggetto nel menu delle applicazioni è fallita", + nb = "Klarte ikke Ã¥ installere snarvei", + nds = "Desktop Menu-Eintrag konnte nicht erstellt werden.", + nl = "Installatie van het bureaublad menu item is mislukt", + nn = "Klarte ikkje Ã¥ installera snarveg", + pl = "Nie udaÅ‚o siÄ™ utworzyć elementu menu", + pt = "A instalação do menu no desktop falhou", + pt_BR = "Falha ao instalar o item no menu", + ro = "Nu s-a putut instala itemul din meniu", + ru = "Ðе удалоÑÑŒ уÑтановить Ñлемент меню", + sk = "Nepodarilo sa mi nainÅ¡talovaÅ¥ odkaz na plochu", + sl = "Namestitev menija na namizju ni uspela", + sv = "Misslycklades med att lägga till genväg i programmenyn", + tr = "Masaüstü menü öğesi kurulamadı", + uk = "Ðеможливо Ñтворити Ð·Ð°Ð¿Ð¸Ñ Ñƒ меню", + zh_TW = "安è£æ¡Œé¢é¸å–®é …目失敗" + }; + + -- This is written out if we failed to remove an item from the desktop + -- application menu (or "Start" bar on Windows, or maybe the Dock on + -- Mac OS X, etc). + ["Failed to uninstall desktop menu item"] = { + af = "Mislukking tydens die verwydering van die werkskerm kieslys item", + ar = "Ùشل ÙÙŠ الإزالة من قائمة سطح المكتب", + cs = "NepodaÅ™ilo se odstranit položku z menu", + da = "Kunne ikke fjerne menupunkt i skrivebordets menu", + de = "Konnte Verknüpfung für Desktop-Menü nicht deinstallieren", + el = "Σφάλμα κατά την απεγκατάσταση της συντόμευσης εκκίνησης του Ï€ÏογÏάμματος", + en_AU = "Failed to uninstall desktop menu item", + en_CA = "Failed to uninstall desktop menu item", + en_GB = "Failed to uninstall desktop menu item", + es = "Fallo al quitar un elemento del menú de escritorio", + fi = "Kohdan poistaminen työpöytävalikkosta epäonnistui.", + fr = "Echec de la désinstallation des éléments du bureau", + he = "שגי××” בהסרת פריט מתפריט היישומי×", + hu = "Asztali ikon eltávolítása sikertelen", + it = "La disinstallazione di un oggetto del menu è fallita", + nb = "Klarte ikke Ã¥ fjerne snarvei", + nds = "Desktop Menu-Eintrag konnte nicht entfernt werden.", + nl = "Deïnstallatie van het bureaublad menu item is mislukt", + nn = "Klarte ikkje Ã¥ fjerna snarveg", + pl = "Nie udaÅ‚o siÄ™ odinstalować elementu menu", + pt = "A desinstalação do menu no desktop falhou", + pt_BR = "Falha ao remover o item do menu", + ro = "Nu s-a putut dezinstala itemul din meniu", + ru = "Ðе удалоÑÑŒ удалить Ñлемент меню", + sk = "Nepodarilo sa mi odinÅ¡talovaÅ¥ odkaz z plochy", + sl = "Odstranitev menija na namizju ni uspela", + sv = "Misslyckades med att ta bort genväg i programmenyn", + tr = "Masaüstü menü öğesi kaldırılamadı", + uk = "Ðеможливо прибрати Ð·Ð°Ð¿Ð¸Ñ Ñƒ меню", + zh_TW = "移除桌é¢é¸å–®é …目失敗" + }; + + -- This is a prompt to the user to type in their product key (CD key, + -- authorization code, etc). + ["Please enter your product key"] = { + cs = "Prosím, zadejte klÃ­Ä produktu", + de = "Bitte geben Sie Ihren Produktschlüssel ein", + en_AU = "Please enter your product key", + en_GB = "Please enter your product key", + es = "Por favor, introduzca su código de producto", + fr = "Veuillez entrer la clé du produit", + he = "יש להכניס ×ת המספר הסידורי שלך", + hu = "Kérem adja meg a termékkódot", + it = "Inserisci la CD Key", + nb = "Skriv inn din produkt nøkkel", + nds = "Bitte geben Sie den Produktschlüssel ein", + nl = "Voer uw productsleutel in", + pt = "Entre com a chave do produto", + ro = "IntroduceÅ£i cheia produsului", + sk = "Prosím vložte váš klÃºÄ produktu", + sv = "Skriv in din produktnyckel", + tr = "Lütfen ürün anahtarını giriniz", + zh_TW = "請輸入你的產å“åºè™Ÿ" + }; + + -- The stdio GUI uses this string when we have a default value that can + -- be chosen instead of the user pressing a potentially-lengthy string + -- of keys. "%0" is the default string that will be used if they just + -- press the enter key on their keyboard. This is a parenthetical phrase, + -- as it won't be shown if there's no default available. + ["(just press enter to use '%0')"] = { + cs = "(stisknÄ›te enter pro použití hodnoty '%0')", + de = "(drücken Sie Enter, um '%0' zu verwenden)", + en_AU = "just press enter to use '%0'", + en_GB = "(just press enter to use '%0')", + es = "(simplemente presione enter para usar '%0')", + fr = "(faites \"entrée\" pour effectuer les opérations suivantes: '%0')", + he = "(רק הקש על Enter בכדי להשתמש ב־'%0')", + it = "Premere invio per utilizzare '%0'", + nb = "(trykk enter for Ã¥ bruke '%0')", + nl = "(druk op enter om '%0' te kiezen)", + pt = "(pressione enter para usar '%0')", + ro = "(apăsaÅ£i enter pentru a folosi '%0')", + sk = "(stlaÄte enter pre '%0')", + sv = "(tryck enter för att använda '%0')", + tr = "('%0' yi kullanmak için giriÅŸe basınız)", + zh_TW = "(請按下 Enter éµä»¥ä½¿ç”¨ '%0')" + }; + + -- This is a message box title when informing the user that their product + -- key (CD key, authorization code, etc) is incorrect, mistyped, or + -- invalid in some way. + ["Invalid product key"] = { + cs = "Neplatný klÃ­Ä produktu", + de = "Ungültiger Produktschlüssel", + en_AU = "Invalid product key", + en_GB = "Invalid product key", + es = "Código de producto inválido", + fr = "La clé du produit est invalide", + he = "המספר סידורי ×ינו תקין", + hu = "Valótan termékkód", + it = "CD key non valida", + nb = "Ugyldig produkt nøkkel", + nds = "Ungültiger Produktschlüssel", + nl = "Foute productsleutel", + pt = "Chave do produto inválida", + ro = "Cheia produsului nu este valida", + sk = "Neplatný kÄ¾ÃºÄ produktu", + sv = "Felaktig produktnyckel", + tr = "Geçersiz ürün anahtarı", + zh_TW = "無效的產å“åºè™Ÿ" + }; + + -- This is the text of a message box informing the user that their product + -- key (CD key, authorization code, etc) is incorrect, mistyped, or + -- invalid in some way, and they should try to type the key again. + ["That key appears to be invalid. Please try again."] = { + cs = "Zadaný klÃ­Ä nevypadá platnÄ›. Zkuste jej prosím zadat znovu.", + de = "Dieser Produktschlüssel scheint ungültig zu sein. Versuchen Sie es bitte noch einmal.", + en_AU = "That key appears to be invalid. Please try again.", + en_GB = "That key appears to be invalid. Please try again.", + es = "El código parece inválido. Por favor, inténtelo de nuevo", + fr = "La clé du produit est invalide, veuillez la ressaisir", + he = "מפתח ×–×” ככל הנר××” שגוי, ×× × × ×¡×” שוב.", + it = "La CD key non sembra valida. Sei pregato di riprovare.", + nb = "Produkt nøkkelen ser ut til Ã¥ være ugylidig. Prøv igjen.", + nds = "Dieser Schlüssel ist ungültig. Bitte versuchen Sie es nochmals.", + nl = "Deze produktsleutel lijkt niet te kloppen. Probeer a.u.b. opnieuw.", + pt = "Esta chave do produto parece ser inválida. Por favor tente novamente.", + ro = "Acea cheie nu este validă. Vă rugăm încercaÅ£i iarăşi.", + sk = "KÄ¾ÃºÄ produktu je neplatný, prosím zadajte nový.", + sv = "Denna produktnyckel verkar felaktig. Försök gärna igen.", + tr = "Ãœrün anahtarı geçersiz görünüyor. Lütfen tekrar deneyin.", + zh_TW = "這組åºè™Ÿä¼¼ä¹Žæ˜¯ç„¡æ•ˆçš„,請å†è¼¸å…¥ä¸€æ¬¡ã€‚" + }; + + -- This is the text of the "Window" menu item, on Mac OS X. + -- This is a standard top-level menu item that contains subitems like + -- "Minimize," "Zoom," and "Bring All to Front." + ["Window"] = { + cs = "Okno", + de = "Fenster", + en_AU = "Window", + en_GB = "Window", + es = "Ventana", + fr = "Fenêtre", + he = "חלון", + hu = "Ablak", + it = "Finestra", + nb = "Vindu", + nl = "Venster", + pt = "Janela", + ro = "Fereastră", + sv = "Fönster", + tr = "Pencere", + zh_TW = "視窗" + }; + + -- This is the text of the "About" menu item, on Mac OS X. + -- This menu item creates a window with basic application information. + -- "%0" is the name of the application ("MyGame Installer" or whatnot), + -- which will be replaced at runtime. + ["About %0"] = { + cs = "O %0", + de = "Ãœber %0", + en_AU = "About %0", + en_GB = "About %0", + es = "Acerca de %0", + fr = "À propos de %0", + he = "×ודות %0", + it = "Informazioni su %0", + nl = "Over %0", + pt = "Sobre o %0", + ro = "Despre %0", + sv = "Om %0", + tr = "%0 Hakkında", + zh_TW = "關於 %0" + }; + + -- This is the text of the "Hide" menu item, on Mac OS X. + -- This menu item makes MojoSetup's windows disappear. + -- "%0" is the name of the application ("MyGame Installer" or whatnot), + -- which will be replaced at runtime. + ["Hide %0"] = { + cs = "Skrýt %0", + de = "Blende %0 aus", + en_AU = "Hide %0", + en_GB = "Hide %0", + es = "Ocultar %0", + fr = "Masquer %0", + he = "הסתרת %0", + it = "Nascondi %0", + nb = "Gjem %0", + nl = "Verberg %0", + pt = "Esconder %0", + ro = "Ascunde %0", + sv = "Dölj %0", + tr = "%0 Gizlensin", + zh_TW = "éš±è— %0" + }; + + -- This is the text of the "Hide Others" menu item, on Mac OS X. + -- This menu item makes every application window except MojoSetup's + -- disappear. + ["Hide Others"] = { + cs = "Skrýt ostatní", + de = "Andere ausblenden", + en_AU = "Hide Others", + en_GB = "Hide Others", + es = "Ocultar Otros", + fr = "Masquer les autres", + he = "הסתרת ×חרי×", + it = "Nascondi le altre", + nb = "Skjul andre", + nl = "Verberg Anderen", + pt = "Ocultar os Outros", + ro = "Ascunde-le pe celelalte", + sv = "Dölj övriga", + tr = "DiÄŸerlerini Gizle", + zh_TW = "éš±è—其它" + }; + + -- This is the text of the "Quit" menu item, on Mac OS X. + -- This menu item requests that the MojoSetup application terminate. + -- "%0" is the name of the application ("MyGame Installer" or whatnot), + -- which will be replaced at runtime. + ["Quit %0"] = { + cs = "UkonÄit %0", + de = "Beende %0", + en_AU = "Quit %0", + en_GB = "Quit %0", + es = "Cerrar %0", + fr = "Quitter %0", + he = "יצי××” מ־Quit", + hu = "Kilépés %0", + it = "Esci da %0", + nb = "Avslutt %0", + nl = "Sluit %0", + pt = "Sair do %0", + ro = "IeÅŸire %0", + sv = "Avsluta %0", + tr = "%0 Çıkış", + zh_TW = "çµæŸ %0" + }; + + -- This is the text of the "Show All" menu item, on Mac OS X. + -- This is a standard menu item that means "redisplay all previously + -- hidden windows". + ["Show All"] = { + cs = "Zobrazit vÅ¡e", + de = "Alle einblenden", + en_AU = "Show All", + en_GB = "Show All", + es = "Mostrar Todos", + fr = "Afficher tout", + he = "הצג הכל", + it = "Mostra Tutto", + nb = "Vis alle", + nl = "Alles weergeven", + pt = "Mostrar Todos", + ro = "Arată tot", + sv = "Visa alla", + tr = "Hepsini Göster", + zh_TW = "顯示全部" + }; + + -- This is the text of the "Services" menu item, on Mac OS X. + -- This is a standard menu item that has submenus for other applications + -- to hook into the current app (for example, Mail.app might appear under + -- this menu item with a means to add a email address, copied to the + -- clipboard, to the user's address book). + ["Services"] = { + cs = "Služby", + de = "Dienste", + en_AU = "Services", + en_GB = "Services", + es = "Servicios", + fr = "Services", + he = "שירותי×", + hu = "Szolgáltatások", + it = "Servizi", + nb = "Tjenester", + nl = "Voorzieningen", + pt = "Serviços", + ro = "Servicii", + sv = "Tjänster", + tr = "Hizmetler", + zh_TW = "æœå‹™" + }; + + -- This is the text of the "Minimize" menu item, on Mac OS X. + -- This is a standard menu item that shrinks the current window so it's + -- not on the desktop any more. + ["Minimize"] = { + cs = "Minimalizovat", + de = "Minimieren", + en_AU = "Minimize", + en_GB = "Minimise", + es = "Minimizar", + fr = "Minimiser", + he = "מיזעור", + hu = "Minimalizálás", + it = "Riduci a icona", + nb = "Minimer", + nl = "Minimaliseren", + pt = "Minimizar", + ro = "Minimizează", + sv = "Minimera", + tr = "Küçült", + zh_TW = "最å°åŒ–" + }; + + -- This is the text of the "Zoom" menu item, on Mac OS X. + -- This is a standard menu item that means "Maximize" on most platforms; + -- make the application's current window as large as reasonably possible. + ["Zoom"] = { + cs = "Maximalizovat", + de = "Vergrößern", + en_AU = "Zoom", + en_GB = "Zoom", + es = "Zoom", + fr = "Zoom", + he = "תקריב", + hu = "Nagyítás", + it = "Massimizza", + nb = "Forstørr", + nl = "Vergroten", + pt = "Ampliar", + ro = "Mărire", + sv = "Maximera", + tr = "Büyüt", + zh_TW = "縮放" + }; + + -- This is the text of the "Bring All to Front" menu item, on Mac OS X. + -- This is a standard menu item that brings all MojoSetup application + -- windows to the top of the desktop's window stack. + ["Bring All to Front"] = { + cs = "PÅ™enést vÅ¡e do popÅ™edí", + de = "Alle in den Vordergrund", + en_AU = "Bring All to Front", + en_GB = "Bring All to Front", + es = "Traer Todo al Frente", + fr = "Tout ramener au premier plan", + he = "×§×“× ×”×›×œ לחזית", + it = "Porta tutto in primo piano", + nb = "Flytt Alt Fram", + nl = "Alles op Voorgrond", + pt = "Trazer Todos Para a Frente", + ro = "AfiÅŸează toate în primplan", + tr = "Hepsini Öne Getir", + zh_TW = "將所有視窗移至最上層" + }; +}; + +-- end of localization.lua ... + diff --git a/mk/linux/mojosetup/scripts/mojosetup_init.lua b/mk/linux/mojosetup/scripts/mojosetup_init.lua new file mode 100644 index 00000000..4454a02c --- /dev/null +++ b/mk/linux/mojosetup/scripts/mojosetup_init.lua @@ -0,0 +1,586 @@ +-- MojoSetup; a portable, flexible installation application. +-- +-- Please see the file LICENSE.txt in the source's root directory. +-- +-- This file written by Ryan C. Gordon. + + +-- !!! FIXME: go through the schema and ditch loki_setup things we don't want. + +-- These are various things that need to be exposed to Lua, or are just +-- better written in Lua than C. All work will be done in the "MojoSetup" +-- table (for generic functionality) or the "Setup" table (for config file +-- elements), so the rest of the namespace is available to end-user code, +-- minus what the Lua runtime claims for itself. +-- +-- This file is loaded and executed at MojoSetup startup. The Base Archive, +-- GUI, and Lua are initialized, the MojoSetup table is created and has some +-- initial CFunctions and such inserted. The localization script runs, and +-- then this code executes to do the heavy lifting. All Lua state should be +-- sane for the rest of the app once this script successfully completes. + +local _ = MojoSetup.translate + +-- Set up the garbage counter. Things that are done in possibly long-running +-- loops that create a lot of junk can optionally set a threshold and call +-- MojoSetup.incrementgarbagecounter() on each iteration. Whenever you hit +-- the threshold, garbage collection runs and resets the counter. This keeps +-- memory usage from spiraling out of control for pathological cases. +-- Note that the counter resets in MojoSetup.collectgarbage() itself, so you +-- don't have to worry about the counter accumulating and firing off extra +-- unnecessary collections if you happen to hit a loop at the wrong time. +MojoSetup.garbagecounter = 0 +MojoSetup.garbagethreshold = 500 + +function MojoSetup.incrementgarbagecount() + MojoSetup.garbagecounter = MojoSetup.garbagecounter + 1 + if MojoSetup.garbagecounter >= MojoSetup.garbagethreshold then + MojoSetup.collectgarbage() + end +end + +-- Returns three elements: protocol, host, path +function MojoSetup.spliturl(url) + return string.match(url, "^(.+://)(.-)/(.*)") +end + + +-- This is MojoSetup.stringtofile() for string tables. +function MojoSetup.stringtabletofile(t, dest, perms, len, callback) + -- !!! FIXME: We could do this entirely in C to avoid a concatenated + -- !!! FIXME: string on the Lua heap. + return MojoSetup.stringtofile(table.concat(t), dest, perms, len, callback) +end + + +-- This is handy for debugging. +function MojoSetup.dumptable(tabname, tab, depth) + if depth == nil then -- first call, before any recursion? + local loglevel = MojoSetup.info.loglevel + if (loglevel ~= "debug") and (loglevel ~= "everything") then + return -- don't spend time on this if there's no output... + end + depth = 1 + end + + if tabname ~= nil then + if tab == nil then + MojoSetup.logdebug(tabname .. " = nil") + return + else + MojoSetup.logdebug(tabname .. " = {") + end + end + + local depthstr = "" + for i=1,(depth*4) do + depthstr = depthstr .. " " + end + + if tab.MOJOSETUP_DUMPTABLE_ITERATED then + MojoSetup.logdebug(depthstr .. "(...circular reference...)") + else + tab.MOJOSETUP_DUMPTABLE_ITERATED = true + for k,v in pairs(tab) do + if type(v) == "table" then + MojoSetup.logdebug(depthstr .. tostring(k) .. " = {") + MojoSetup.dumptable(nil, v, depth + 1) + MojoSetup.logdebug(depthstr .. "}") + else + if k ~= "MOJOSETUP_DUMPTABLE_ITERATED" then + MojoSetup.logdebug(depthstr .. tostring(k) .. " = " .. tostring(v)) + end + end + end + tab.MOJOSETUP_DUMPTABLE_ITERATED = nil + end + + if tabname ~= nil then + MojoSetup.logdebug("}") + end +end + + +-- Our namespace for config API... +Setup = {} + +local function schema_assert(test, fnname, elem, errstr) + if not test then + local msg = MojoSetup.format(_("BUG: Config %0 %1"), + fnname .. "::" .. elem, errstr) + MojoSetup.fatal(msg) + end +end + +local function mustExist(fnname, elem, val) + schema_assert(val ~= nil, fnname, elem, _("must be explicitly specified")) +end + +local function mustBeSomething(fnname, elem, val, elemtype) + -- Can be nil...please use mustExist if this is a problem! + if val ~= nil then + if type(val) ~= elemtype then + local msg = MojoSetup.format(_("must be %0"), + MojoSetup.translate(elemtype)) + schema_assert(false, fnname, elem, msg) + end + end +end + +local function mustBeString(fnname, elem, val) + mustBeSomething(fnname, elem, val, "string") +end + +local function mustBeBool(fnname, elem, val) + mustBeSomething(fnname, elem, val, "boolean") +end + +local function mustBeNumber(fnname, elem, val) + mustBeSomething(fnname, elem, val, "number") +end + +local function mustBeFunction(fnname, elem, val) + mustBeSomething(fnname, elem, val, "function") +end + +local function mustBeTable(fnname, elem, val) + mustBeSomething(fnname, elem, val, "table") +end + +local function cantBeEmpty(fnname, elem, val) + -- Can be nil...please use mustExist if this is a problem! + if val ~= nil then + schema_assert(val ~= "", fnname, elem, _("can't be empty string")) + end +end + +local function mustBeStringOrTableOfStrings(fnname, elem, val) + -- Can be nil...please use mustExist if this is a problem! + if val ~= nil then + local err = _("must be string or table of strings") + if type(val) == "string" then + val = { val } + end + schema_assert(type(val) == "table", fnname, elem, err) + for k,v in pairs(val) do + schema_assert(type(v) == "string", fnname, elem, err) + end + end +end + +local function mustBeStringOrNumber(fnname, elem, val) + -- Can be nil...please use mustExist if this is a problem! + if val ~= nil then + local t = type(val) + schema_assert((t == "string") or (t == "number"), fnname, elem, + _("must be a string or number")) + end +end + +local function mustBeUrl(fnname, elem, val) + mustBeString(fnname, elem, val) + cantBeEmpty(fnname, elem, val) + if (val ~= nil) then + local prot,host,path = MojoSetup.spliturl(val) + schema_assert(prot ~= nil,fnname,elem,_("URL doesn't have protocol")) + schema_assert(host ~= nil,fnname,elem,_("URL doesn't have host")) + schema_assert(path ~= nil,fnname,elem,_("URL doesn't have path")) + prot = string.gsub(prot, "://$", "") + local supported = MojoSetup.info.supportedurls[prot] + schema_assert(supported,fnname,elem,_("URL protocol is unsupported")) + end +end + +local function mustBeSplashPosition(fnname, elem, val) + mustBeString(fnname, elem, val) + local valid = (val == nil) or (val == "right") or (val == "bottom") or + (val == "left") or (val == "top") or (val == "background"); + schema_assert(valid, fnname, elem, _("Splash position is invalid")) +end + +local function mustBePerms(fnname, elem, val) + mustBeString(fnname, elem, val) + local valid = MojoSetup.isvalidperms(val) + schema_assert(valid, fnname, elem, _("Permission string is invalid")) +end + +local function mustBeValidProductKeyFormat(fnname, elem, val) + -- Can be nil...please use mustExist if this is a problem! + if val ~= nil then + mustBeString(fnname, elem, val) + cantBeEmpty(fnname, elem, val) + local valid = (string.match(val, "^[X#%*%? %-]*$") ~= nil) + schema_assert(valid, fnname, elem, _("invalid string")) + end +end + +local function sanitize(fnname, tab, elems) + mustBeTable(fnname, "", tab) + tab._type_ = string.lower(fnname) .. "s" -- "Eula" becomes "eulas". + for i,elem in ipairs(elems) do + local child = elem[1] + local defval = elem[2] + + if tab[child] == nil and defval ~= nil then + tab[child] = defval + end + local j = 3 + while elem[j] do + elem[j](fnname, child, tab[child]) -- will assert on problem. + j = j + 1 + end + end + + local notvaliderr = _("is not a valid property") + for k,v in pairs(tab) do + local found = false + if k == "_type_" then + found = true + elseif (type(k) == "number") and (type(v) == "table") then + found = true + else + for i,elem in ipairs(elems) do + local child = elem[1] + if (child == k) then + found = true + break + end + end + end + schema_assert(found, fnname, k, notvaliderr) + end + + return tab +end + +local function reform_schema_table(tab) + local killlist = {} + for k,v in pairs(tab) do + local ktype = type(k) + local vtype = type(v) + if (ktype == "number") and (vtype == "table") and (v._type_ ~= nil) then + -- add element to proper named array. + local typestr = v._type_ + v._type_ = nil + MojoSetup.logdebug("schema: reforming '" .. typestr .. "', '" .. k .. "'") + if tab[typestr] == nil then + tab[typestr] = { v } + else + table.insert(tab[typestr], v) + end + -- can't just set tab[k] to nil here, since it screws up pairs()... + killlist[#killlist+1] = k + elseif vtype == "table" then + tab[k] = reform_schema_table(v) + end + end + + for i,v in ipairs(killlist) do + tab[v] = nil + end + + return tab +end + + +-- Actual schema elements are below... + +function Setup.Package(tab) + -- !!! FIXME: allow_uninstall + -- !!! FIXME: write_manifest + -- !!! FIXME: allow_uninstall must check write_manifest, write_manifest + -- !!! FIXME: must check for Lua parser support...or something like that. + + tab = sanitize("Package", tab, + { + { "vendor", nil, mustExist, mustBeString, cantBeEmpty }, + { "id", nil, mustExist, mustBeString, cantBeEmpty }, + { "disabled", nil, mustBeBool }, + { "description", nil, mustExist, mustBeString, cantBeEmpty }, + { "version", nil, mustExist, mustBeString, cantBeEmpty }, + { "destination", nil, mustBeString, cantBeEmpty }, + { "recommended_destinations", nil, mustBeStringOrTableOfStrings }, + { "precheck", nil, mustBeFunction }, + { "preflight", nil, mustBeFunction }, + { "preinstall", nil, mustBeFunction }, + { "postinstall", nil, mustBeFunction }, + { "splash", nil, mustBeString, cantBeEmpty }, + { "splashpos", nil, mustBeSplashPosition }, + { "url", nil, mustBeString, cantBeEmpty }, + { "once", true, mustBeBool }, + { "category", "Games", mustBeString, cantBeEmpty }, + { "promptoverwrite", true, mustBeBool }, + { "binarypath", nil, mustBeString, cantBeEmpty }, + { "updateurl", nil, mustBeUrl }, + { "superuser", false, mustBeBool }, + { "write_manifest", true, mustBeBool }, + { "support_uninstall", true, mustBeBool }, + { "preuninstall", nil, mustBeFunction }, + { "postuninstall", nil, mustBeFunction } + }) + + if MojoSetup.installs == nil then + MojoSetup.installs = {} + end + + tab._type_ = nil + tab = reform_schema_table(tab) + table.insert(MojoSetup.installs, tab) + return tab + +--[[ + promptbinaries When set to "yes", setup will create a checkbox + to allow the user whether or not to create + a symbolic link to the binaries. + + This setting has no effect if nobinaries is "yes". + + meta When this attribute is set to "yes", then setup will act as + a meta-installer, i.e. it will allow the user to select a + product and set-up will respawn itself for the selected + product installation. + See the section "About Meta-Installation" below. + + component When this attribute is present, its value is the name of the component + that will created by this installer. This means that the files will be added + to an existing installation of the product, and that basic configuration parameters + such as the installation path will be used from the previous installation. + Currently setup is not able to update an existing component, thus if the component + is detected as already installed the installation will fail. + Important: This attribute can't be mixed with elements. + + appbundle (CARBON ONLY) If this is "yes", the destination folder does not include the product + name as part of the path. An application bundle is typically installed much like + a single file would be...and so is treated as such. + + The app bundle path usually specified in the "path" attribute of the "files" element, + or it is specified in the archives directly. + + manpages If set to "yes", then the user will be prompted for the install pages installation path. + Should be used when using the MANPAGE element described below. + + appbundleid (CARBON ONLY) This string means that you are installing new files into an existing + Application Bundle. If the bundle isn't found, the installation aborts, otherwise, all + files are added relative to the base of the app bundle. The string specified here is + the app bundle's CFBundleIdentifier entry in its Info.plist file. LaunchServices are + used to find the bundle and the user can be prompted to manually locate the product + if LaunchServices fails to find it. This is all MacOS-specific, and unrelated to the + "component" attribute. + + appbundledesc (CARBON ONLY) This string is used with the "appbundleid" attribute...it's a human + readable text describing the app bundle in question. +]]-- + +end + +function Setup.Eula(tab) + return sanitize("Eula", tab, + { + { "description", nil, mustExist, mustBeString, cantBeEmpty }, + { "source", nil, mustExist, mustBeString, cantBeEmpty }, + }) +end + +function Setup.Readme(tab) + return sanitize("Readme", tab, + { + { "description", nil, mustExist, mustBeString, cantBeEmpty }, + { "source", nil, mustExist, mustBeString, cantBeEmpty }, + }) +end + +function Setup.ProductKey(tab) + return sanitize("ProductKey", tab, + { + { "description", nil, mustExist, mustBeString, cantBeEmpty }, + { "format", nil, mustBeValidProductKeyFormat }, + { "verify", nil, mustBeFunction }, + { "destination", nil, mustBeString, cantBeEmpty }, + }) +end + +function Setup.Media(tab) + return sanitize("Media", tab, + { + { "id", nil, mustExist, mustBeString, cantBeEmpty }, + { "description", nil, mustExist, mustBeString, cantBeEmpty }, + { "uniquefile", nil, mustExist, mustBeString, cantBeEmpty }, + }) +end + +function Setup.File(tab) + return sanitize("File", tab, + { + { "source", nil, mustBeUrl }, + { "destination", nil, mustBeString, cantBeEmpty }, + { "wildcards", nil, mustBeStringOrTableOfStrings }, + { "filter", nil, mustBeFunction }, + { "allowoverwrite", nil, mustBeBool }, + { "permissions", nil, mustBePerms }, + }) +end + +function Setup.Option(tab) + return sanitize("Option", tab, + { + { "value", false, mustBeBool }, + { "required", false, mustBeBool }, + { "disabled", false, mustBeBool }, + { "bytes", nil, mustExist, mustBeNumber }, + { "description", nil, mustExist, mustBeString, cantBeEmpty }, + { "tooltip", nil, mustBeString, cantBeEmpty }, + }) +end + +function Setup.OptionGroup(tab) + return sanitize("OptionGroup", tab, + { + { "disabled", nil, mustBeBool }, + { "description", nil, mustExist, mustBeString, cantBeEmpty }, + { "tooltip", nil, mustBeString, cantBeEmpty }, + }) +end + +function Setup.DesktopMenuItem(tab) + return sanitize("DesktopMenuItem", tab, + { + { "disabled", nil, mustBeBool }, + { "name", nil, mustExist, mustBeString, cantBeEmpty }, + { "genericname", nil, mustExist, mustBeString, cantBeEmpty }, + { "tooltip", nil, mustExist, mustBeString, cantBeEmpty }, + { "builtin_icon", nil, mustBeBool }, + { "icon", nil, mustExist, mustBeString, cantBeEmpty }, + { "commandline", nil, mustExist, mustBeString, cantBeEmpty }, + { "category", nil, mustExist, mustBeStringOrTableOfStrings }, + { "mimetype", nil, mustBeStringOrTableOfStrings }, + }) +end + +local function prepare_localization() + -- Map some legacy language identifiers into updated equivalents. + local lang_remap = + { + no = "nb", -- "Norwegian" split into "Bokmal" (nb) and "Nynorsk" (nn) + } + + local function sanity_check_localization_entry(str, translations) + local maxval = -1; + + for val in string.gmatch(str, "%%.") do + val = string.sub(val, 2) + if string.match(val, "^[^%%0-9]$") ~= nil then + MojoSetup.fatal("BUG: localization key ['" .. str .. "'] has invalid escape sequence.") + end + if val ~= "%" then + local num = tonumber(val) + if num > maxval then + maxval = num + end + end + end + + for k,v in pairs(translations) do + for val in string.gmatch(v, "%%.") do + val = string.sub(val, 2) + if string.match(val, "^[^%%0-9]$") ~= nil then + MojoSetup.fatal("BUG: '" .. k .. "' localization ['" .. v .. "'] has invalid escape sequence for translation of ['" .. str .. "'].") + end + if val ~= "%" then + if tonumber(val) > maxval then + MojoSetup.fatal("BUG: '" .. k .. "' localization ['" .. v .. "'] has escape sequence > max for translation of ['" .. str .. "'].") + end + end + end + end + end + + -- Build the translations table from the localizations table supplied in + -- localizations.lua... + if type(MojoSetup.localization) ~= "table" then + MojoSetup.localization = nil + end + + -- Merge the applocalization table into localization. + if type(MojoSetup.applocalization) == "table" then + if MojoSetup.localization == nil then + MojoSetup.localization = {} + end + for k,v in pairs(MojoSetup.applocalization) do + if MojoSetup.localization[k] == nil then + MojoSetup.localization[k] = v -- just take the whole table as-is. + else + -- This can add or overwrite entries... + for lang,str in pairs(v) do + MojoSetup.localization[k][lang] = str + end + end + end + end + MojoSetup.applocalization = nil -- done with this; garbage collect it. + + if MojoSetup.localization ~= nil then + local at_least_one = false + local locale = MojoSetup.info.locale + local lang = string.gsub(locale, "_%w+", "", 1) -- make "en_US" into "en" + + if lang_remap[lang] ~= nil then + lang = lang_remap[lang] + end + + MojoSetup.translations = {} + for k,v in pairs(MojoSetup.localization) do + if MojoSetup.translations[k] ~= nil then + MojoSetup.fatal("BUG: Duplicate localization key ['" .. k .. "']") + end + if type(v) == "table" then + sanity_check_localization_entry(k, v) + if v[locale] ~= nil then + MojoSetup.translations[k] = v[locale] + at_least_one = true + elseif v[lang] ~= nil then + MojoSetup.translations[k] = v[lang] + at_least_one = true + end + end + end + + -- Delete the table if there's no actual useful translations for this run. + if (not at_least_one) then + MojoSetup.translations = nil + end + + -- This is eligible for garbage collection now. We're done with it. + MojoSetup.localization = nil + end +end + + +-- Mainline... + +MojoSetup.loginfo("MojoSetup Lua initialization at " .. MojoSetup.date()) +MojoSetup.loginfo("buildver: " .. MojoSetup.info.buildver) +MojoSetup.loginfo("locale: " .. MojoSetup.info.locale) +MojoSetup.loginfo("platform: " .. MojoSetup.info.platform) +MojoSetup.loginfo("arch: " .. MojoSetup.info.arch) +MojoSetup.loginfo("ostype: " .. MojoSetup.info.ostype) +MojoSetup.loginfo("osversion: " .. MojoSetup.info.osversion) +MojoSetup.loginfo("ui: " .. MojoSetup.info.ui) +MojoSetup.loginfo("loglevel: " .. MojoSetup.info.loglevel) + +MojoSetup.loginfo("command line:") +for i,v in ipairs(MojoSetup.info.argv) do + MojoSetup.loginfo(" " .. i .. ": " .. v) +end + +--MojoSetup.loginfo(MojoSetup.info.license) +--MojoSetup.loginfo(MojoSetup.info.lualicense) + +-- These scripts are optional, but hopefully exist... +MojoSetup.runfile("localization") +MojoSetup.runfile("app_localization") +prepare_localization() + +-- okay, we're initialized! + +-- end of mojosetup_init.lua ... + diff --git a/mk/linux/mojosetup/scripts/mojosetup_mainline.lua b/mk/linux/mojosetup/scripts/mojosetup_mainline.lua new file mode 100644 index 00000000..28712180 --- /dev/null +++ b/mk/linux/mojosetup/scripts/mojosetup_mainline.lua @@ -0,0 +1,2082 @@ +-- MojoSetup; a portable, flexible installation application. +-- +-- Please see the file LICENSE.txt in the source's root directory. +-- +-- This file written by Ryan C. Gordon. + + +-- This is where most of the magic happens. Everything is initialized, and +-- the user's config script has successfully run. This Lua chunk drives the +-- main application code. + +-- !!! FIXME: add a --dryrun option. + +local _ = MojoSetup.translate + +MojoSetup.metadatakey = ".mojosetup_metadata." +MojoSetup.metadatadesc = _("Metadata") +MojoSetup.metadatadirname = ".mojosetup" + +if MojoSetup.info.platform == "windows" then + MojoSetup.controlappname = "mojosetup.exe" +else + MojoSetup.controlappname = "mojosetup" +end + + +local function badcmdline() + MojoSetup.fatal(_("Invalid command line")) +end + + +-- This currently counts on (base) ending with a single "/", and not having +-- any strange distortions: "/blah/../blah/.//" would not match "/blah/x", +-- although it _should_ if we parsed it out. +local function make_relative(fname, base) + local baselen = string.len(base) + if string.sub(fname, 0, baselen) == base then + fname = string.sub(fname, baselen+2) -- make it relative. + end + return fname +end + + +local function manifest_resync(man, fname, _key) + if fname == nil then return end + + local fullpath = fname + fname = make_relative(fname, MojoSetup.destination) + + if man[fname] == nil then + MojoSetup.logwarning("Tried to resync unknown file '" ..fname.. "' in manifest!") + else + local perms = "0644" -- !!! FIXME MojoSetup.platform.perms(fullpath) + local sums = nil + local lndest = nil + local ftype = nil + + if MojoSetup.platform.issymlink(fullpath) then + ftype = "symlink" + -- !!! FIXME: linkdest? + elseif MojoSetup.platform.isdir(fullpath) then + ftype = "dir" + else -- !!! FIXME: other types? + ftype = "file" + sums = MojoSetup.checksum(fullpath) + end + + man[fname] = + { + key = _key, + type = ftype, + mode = perms, + checksums = sums, + linkdest = lndest + } + + MojoSetup.logwarning("Resync'd file '" ..fname.. "' in manifest") + end +end + + +-- !!! FIXME: I need to go back from managing everything installed through +-- !!! FIXME: the manifest to a separate table of "things written to disk +-- !!! FIXME: on just this run" ... the existing manifest code can stay as-is, +-- !!! FIXME: rollbacks should be done exclusively from that other table. +-- !!! FIXME: Right now we're relying on dumb stuff like sorting the filenames +-- !!! FIXME: to get a safe deletion order on revert, but we should just +-- !!! FIXME: keep a chronological array instead. + +local function manifest_add(man, fname, _key, ftype, mode, sums, lndest) + if (fname ~= nil) and (_key ~= nil) then + local destlen = string.len(MojoSetup.destination) + if string.sub(fname, 0, destlen) == MojoSetup.destination then + fname = string.sub(fname, destlen+2) -- make it relative. + end + + if man[fname] ~= nil then + MojoSetup.logwarning("Overwriting file '" .. fname .. "' in manifest!") + end + + man[fname] = { + key = _key, + type = ftype, + mode = perms, + checksums = sums, + linkdest = lndest + } + end +end + + +local function manifest_delete(man, fname) + if fname ~= nil then + local destlen = string.len(MojoSetup.destination) + if string.sub(fname, 0, destlen) == MojoSetup.destination then + fname = string.sub(fname, destlen+2) -- make it relative. + end + + if man[fname] == nil then + MojoSetup.logwarning("Deleting unknown file '" .. fname .. "' from manifest!") + else + man[fname] = nil + end + end +end + + +local function flatten_list(list) + local retval = list + if type(list) == "table" then + retval = {} + for i,v in ipairs(list) do + if #retval == 0 then + retval[1] = v + else + retval[#retval+1] = ';' + retval[#retval+1] = v + end + end + retval = table.concat(retval) + end + return retval +end + + +local function do_delete(fname) + local retval = false + if fname == nil then + retval = true + else + -- Try to unlink() first, so we'll catch broken symlinks, then try + -- exists(): if it really wasn't there, we'll call it success anyhow. + if MojoSetup.platform.unlink(fname) then + MojoSetup.loginfo("Deleted '" .. fname .. "'") + retval = true + elseif not MojoSetup.platform.exists(fname) then + retval = true + end + end + return retval +end + + +local function delete_files(filelist, callback, error_is_fatal) + if filelist ~= nil then + local max = #filelist + for i = max,1,-1 do + local fname = filelist[i] + if not do_delete(fname) and error_is_fatal then + MojoSetup.fatal(_("Deletion failed!")) + end + + if callback ~= nil then + callback(fname, i, max) + end + end + end +end + +local function delete_rollbacks() + if MojoSetup.rollbacks == nil then + return + end + local fnames = {} + local max = #MojoSetup.rollbacks + for id = 1,max,1 do + fnames[id] = MojoSetup.rollbackdir .. "/" .. id + end + MojoSetup.rollbacks = {} -- just in case this gets called again... + delete_files(fnames) -- !!! FIXME: callback for gui queue pump? +end + +local function delete_scratchdirs() + do_delete(MojoSetup.downloaddir) + do_delete(MojoSetup.rollbackdir) + do_delete(MojoSetup.scratchdir) -- must be after dirs it contains! + do_delete(MojoSetup.metadatadir) -- must be last! (and is okay to fail.) +end + + +local function do_rollbacks() + if MojoSetup.rollbacks == nil then + return + end + + local max = #MojoSetup.rollbacks + for id = max,1,-1 do + local src = MojoSetup.rollbackdir .. "/" .. id + local dest = MojoSetup.rollbacks[id] + if not MojoSetup.movefile(src, dest) then + -- we're already in fatal(), so we can only throw up a msgbox... + MojoSetup.msgbox(_("Serious problem"), + _("Couldn't restore some files. Your existing installation is likely damaged.")) + end + MojoSetup.loginfo("Restored rollback #" .. id .. ": '" .. src .. "' -> '" .. dest .. "'") + end + + MojoSetup.rollbacks = {} -- just in case this gets called again... +end + + +-- get a linear array of filenames in the manifest. +local function flatten_manifest(man, postprocess) + local files = {} + if postprocess == nil then + postprocess = function(x) return x end + end + if man ~= nil then + for fname,items in pairs(man) do + files[#files+1] = postprocess(fname) + end + end + + table.sort(files, function(a,b) return MojoSetup.strcmp(a,b) < 0 end) + return files +end + + +local function prepend_dest_dir(fname) + if fname == "" then + return MojoSetup.destination + end + return MojoSetup.destination .. "/" .. fname +end + + +-- This gets called by fatal()...must be a global function. +function MojoSetup.revertinstall() + -- (The real revertinstall is set later. This is a stub for startup.) +end + + +local function calc_percent(current, total) + if total == 0 then + return 0 + elseif total < 0 then + return -1 + end + + local retval = MojoSetup.truncatenum((current / total) * 100) + if retval > 100 then + retval = 100 + elseif retval < 0 then + retval = 0 + end + return retval +end + + +local function make_rate_string(rate, bw, total) + local retval = nil + + if rate <= 0 then + retval = _("stalled") + else + local ratetype = _("B/s") + if rate > 1024 then + rate = MojoSetup.truncatenum(rate / 1024) + ratetype = _("KB/s") + end + + if total > 0 then -- can approximate time left if we know the goal. + local bytesleft = total - bw + local secsleft = MojoSetup.truncatenum(bytesleft / rate) + local minsleft = MojoSetup.truncatenum(secsleft / 60) + local hoursleft = MojoSetup.truncatenum(minsleft / 60) + + secsleft = string.sub("00" .. (secsleft - (minsleft * 60)), -2) + minsleft = string.sub("00" .. (minsleft - (hoursleft * 60)), -2) + + if hoursleft < 10 then + hoursleft = "0" .. hoursleft + else + hoursleft = tostring(hoursleft) + end + + retval = MojoSetup.format(_("%0 %1, %2:%3:%4 remaining"), + rate, ratetype, + hoursleft, minsleft, secsleft) + else + retval = MojoSetup.format(_("%0 %1"), rate, ratetype) + end + end + + return retval +end + + +local function split_path(path) + local retval = {} + for item in string.gmatch(path .. "/", "(.-)/") do + if item ~= "" then + retval[#retval+1] = item + end + end + return retval +end + +local function rebuild_path(paths, n) + local retval = paths[n] + n = n + 1 + while paths[n] ~= nil do + retval = retval .. "/" .. paths[n] + n = n + 1 + end + return retval +end + +local function normalize_path(path) + return rebuild_path(split_path(path), 1) +end + + +local function close_archive_list(arclist) + for i = #arclist,1,-1 do + MojoSetup.archive.close(arclist[i]) + arclist[i] = nil + end +end + + +-- This code's a little nasty... +local function drill_for_archive(archive, path, arclist) + if not MojoSetup.archive.enumerate(archive) then + MojoSetup.fatal(_("Couldn't enumerate archive")) + end + + local pathtab = split_path(path) + local ent = MojoSetup.archive.enumnext(archive) + while ent ~= nil do + if ent.type == "file" then + local i = 1 + local enttab = split_path(ent.filename) + while (enttab[i] ~= nil) and (enttab[i] == pathtab[i]) do + i = i + 1 + end + + if enttab[i] == nil then + -- It's a file that makes up some of the specified path. + -- open it as an archive and keep drilling... + local arc = MojoSetup.archive.fromentry(archive) + if arc == nil then + MojoSetup.fatal(_("Couldn't open archive")) + end + arclist[#arclist+1] = arc + if pathtab[i] == nil then + return arc -- this is the end of the path! Done drilling! + end + return drill_for_archive(arc, rebuild_path(pathtab, i), arclist) + end + end + ent = MojoSetup.archive.enumnext(archive) + end + + MojoSetup.fatal(_("Archive not found")) +end + + +local function install_file(dest, perms, writefn, desc, manifestkey) + -- Upvalued so we don't look these up each time... + local fname = string.gsub(dest, "^.*/", "", 1) -- chop the dirs off... + local ptype = _("Installing") + local component = desc + local keepgoing = true + local callback = function(ticks, justwrote, bw, total) + local percent = -1 + local item = fname + if total >= 0 then + MojoSetup.written = MojoSetup.written + justwrote + percent = calc_percent(MojoSetup.written, MojoSetup.totalwrite) + item = MojoSetup.format(_("%0: %1%%"), fname, calc_percent(bw, total)) + end + keepgoing = MojoSetup.gui.progress(ptype, component, percent, item, true) + return keepgoing + end + + -- !!! FIXME: maybe keep a separate list, so we can rollback installs + -- !!! FIXME: that are building on previous installations? + -- Add to manifest first, so we can delete it during rollback if i/o fails. + -- !!! FIXME: perms may be nil...we need a MojoSetup.defaultPermsString()... + manifest_add(MojoSetup.manifest, dest, manifestkey, "file", perms, nil, nil) + + MojoSetup.gui.progressitem() + local written, sums = writefn(callback) + if not written then + if not keepgoing then + MojoSetup.logerror("User cancelled install during file write.") + MojoSetup.fatal() + else + MojoSetup.logerror("Failed to create file '" .. dest .. "'") + MojoSetup.fatal(_("File creation failed!")) + end + end + + -- Readd it to the manifest, now with a checksum! + if manifestkey ~= nil then + manifest_delete(MojoSetup.manifest, dest) + manifest_add(MojoSetup.manifest, dest, manifestkey, "file", perms, sums, nil) + end + + MojoSetup.loginfo("Created file '" .. dest .. "'") + MojoSetup.incrementgarbagecount() +end + + +local function install_file_from_archive(dest, archive, perms, desc, manifestkey) + local fn = function(callback) + return MojoSetup.writefile(archive, dest, perms, nil, callback) + end + return install_file(dest, perms, fn, desc, manifestkey) +end + + +local function install_file_from_stringtable(dest, t, perms, desc, manifestkey) + local fn = function(callback) + return MojoSetup.stringtabletofile(t, dest, perms, nil, callback) + end + return install_file(dest, perms, fn, desc, manifestkey) +end + + +local function install_file_from_string(dest, str, perms, desc, manifestkey) + local fn = function(callback) + return MojoSetup.stringtofile(str, dest, perms, nil, callback) + end + return install_file(dest, perms, fn, desc, manifestkey) +end + + +local function install_file_from_filesystem(dest, src, perms, desc, manifestkey, maxbytes) + local fn = function(callback) + return MojoSetup.copyfile(src, dest, perms, maxbytes, callback) + end + return install_file(dest, perms, fn, desc, manifestkey) +end + + +-- !!! FIXME: we should probably pump the GUI queue here, in case there are +-- !!! FIXME: thousands of symlinks in a row or something. +local function install_symlink(dest, lndest, manifestkey) + if not MojoSetup.platform.symlink(dest, lndest) then + MojoSetup.logerror("Failed to create symlink '" .. dest .. "'") + MojoSetup.fatal(_("Symlink creation failed!")) + end + + manifest_add(MojoSetup.manifest, dest, manifestkey, "symlink", nil, nil, lndest) + MojoSetup.loginfo("Created symlink '" .. dest .. "' -> '" .. lndest .. "'") +end + + +-- !!! FIXME: we should probably pump the GUI queue here, in case there are +-- !!! FIXME: thousands of dirs in a row or something. +local function install_directory(dest, perms, manifestkey) + -- Chop any '/' chars from the end of the string... + dest = string.gsub(dest, "/+$", "") + + if not MojoSetup.platform.mkdir(dest, perms) then + MojoSetup.logerror("Failed to create dir '" .. dest .. "'") + MojoSetup.fatal(_("Directory creation failed")) + end + + manifest_add(MojoSetup.manifest, dest, manifestkey, "directory", perms, nil, nil) + MojoSetup.loginfo("Created directory '" .. dest .. "'") +end + + +local function install_parent_dirs(path, manifestkey) + -- Chop any '/' chars from the end of the string... + path = string.gsub(path, "/+$", "") + + -- Build each piece of final path. The gmatch() skips the last element. + local fullpath = "" + for item in string.gmatch(path, "(.-)/") do + if item ~= "" then + fullpath = fullpath .. "/" .. item + if not MojoSetup.platform.exists(fullpath) then + install_directory(fullpath, nil, manifestkey) + end + end + end +end + + +local function permit_write(dest, entinfo, file) + local allowoverwrite = true + if MojoSetup.platform.exists(dest) then + -- never "permit" existing dirs, so they don't rollback. + if entinfo.type == "dir" then + allowoverwrite = false + else + if MojoSetup.forceoverwrite ~= nil then + allowoverwrite = MojoSetup.forceoverwrite + else + -- !!! FIXME: option/package-wide overwrite? + allowoverwrite = file.allowoverwrite + if not allowoverwrite then + MojoSetup.loginfo("File '" .. dest .. "' already exists.") + local text = MojoSetup.format(_("File '%0' already exists! Replace?"), dest) + local ynan = MojoSetup.promptynan(_("Conflict!"), text, true) + if ynan == "always" then + MojoSetup.forceoverwrite = true + allowoverwrite = true + elseif ynan == "never" then + MojoSetup.forceoverwrite = false + allowoverwrite = false + elseif ynan == "yes" then + allowoverwrite = true + elseif ynan == "no" then + allowoverwrite = false + end + end + end + + -- !!! FIXME: Setup.File.mustoverwrite to override "never"? + + if allowoverwrite then + local id = #MojoSetup.rollbacks + 1 + local f = MojoSetup.rollbackdir .. "/" .. id + install_parent_dirs(f, MojoSetup.metadatakey) + MojoSetup.rollbacks[id] = dest + if not MojoSetup.movefile(dest, f) then + MojoSetup.fatal(_("Couldn't backup file for rollback")) + end + MojoSetup.loginfo("Moved rollback #" .. id .. ": '" .. dest .. "' -> '" .. f .. "'") + + -- Make sure this isn't already in the manifest... + if MojoSetup.manifest[dest] ~= nil then + manifest_delete(MojoSetup.manifest, dest) + end + end + end + end + + return allowoverwrite +end + + +local function install_archive_entity(dest, ent, archive, desc, manifestkey, perms) + install_parent_dirs(dest, manifestkey) + if ent.type == "file" then + install_file_from_archive(dest, archive, perms, desc, manifestkey) + elseif ent.type == "dir" then + install_directory(dest, perms, manifestkey) + elseif ent.type == "symlink" then + install_symlink(dest, ent.linkdest, manifestkey) + else -- !!! FIXME: device nodes, etc... + -- !!! FIXME: should this be fatal? + MojoSetup.fatal(_("Unknown file type in archive")) + end +end + + +local function install_archive_entry(archive, ent, file, option) + local entdest = ent.filename + if entdest == nil then return end -- probably can't happen... + + -- Set destination in native filesystem. May be default or explicit. + local dest = file.destination + if dest == nil then + dest = entdest + else + dest = dest .. "/" .. entdest + end + + local perms = file.permissions -- may be nil + + if file.filter ~= nil then + local filterperms + dest, filterperms = file.filter(dest) + if filterperms ~= nil then + perms = filterperms + end + end + + if dest ~= nil then -- Only install if file wasn't filtered out + dest = MojoSetup.destination .. "/" .. dest + if permit_write(dest, ent, file) then + local desc = option.description + install_archive_entity(dest, ent, archive, desc, desc, perms) + end + end +end + + +local function install_archive(archive, file, option) + if not MojoSetup.archive.enumerate(archive) then + MojoSetup.fatal(_("Couldn't enumerate archive")) + end + + local isbase = (archive == MojoSetup.archive.base) + local single_match = true + local wildcards = file.wildcards + + -- If there's only one explicit file we're looking for, we don't have to + -- iterate the whole archive...we can stop as soon as we find it. + if wildcards == nil then + single_match = false + else + if type(wildcards) == "string" then + wildcards = { wildcards } + end + if #wildcards > 1 then + single_match = false + else + for i,v in ipairs(wildcards) do + if string.find(v, "[*?]") ~= nil then + single_match = false + break -- no reason to keep iterating... + end + end + end + end + + local ent = MojoSetup.archive.enumnext(archive) + while ent ~= nil do + -- If inside GBaseArchive (no URL lead in string), then we + -- want to clip to data/ directory... + if isbase then + local count + ent.filename, count = string.gsub(ent.filename, "^data/", "", 1) + if count == 0 then + ent.filename = nil + end + end + + -- See if we should install this file... + if (ent.filename ~= nil) and (ent.filename ~= "") then + local should_install = false + if wildcards == nil then + should_install = true + else + for i,v in ipairs(wildcards) do + if MojoSetup.wildcardmatch(ent.filename, v) then + should_install = true + break -- no reason to keep iterating... + end + end + end + + if should_install then + install_archive_entry(archive, ent, file, option) + if single_match then + break -- no sense in iterating further if we're done. + end + end + end + + -- and check the next entry in the archive... + ent = MojoSetup.archive.enumnext(archive) + end +end + + +local function install_basepath(basepath, file, option) + -- Obviously, we don't want to enumerate the entire physical filesystem, + -- so we'll dig through each path element with MojoPlatform_exists() + -- until we find one that doesn't, then we'll back up and try to open + -- that as a directory, and then a file archive, and start drilling from + -- there. Fun. + + local function create_basepath_archive(path) + local archive = MojoSetup.archive.fromdir(path) + if archive == nil then + archive = MojoSetup.archive.fromfile(path) + if archive == nil then + MojoSetup.fatal(_("Couldn't open archive")) + end + end + return archive + end + + -- fast path: See if the whole path exists. This is probably the normal + -- case, but it won't work for archives-in-archives. + if MojoSetup.platform.exists(basepath) then + local archive = create_basepath_archive(basepath) + install_archive(archive, file, option) + MojoSetup.archive.close(archive) + else + -- Check for archives-in-archives... + local path = "" + local paths = split_path(basepath) + for i,v in ipairs(paths) do + local knowngood = path + path = path .. "/" .. v + if not MojoSetup.platform.exists(path) then + if knowngood == "" then + MojoSetup.fatal(_("Archive not found")) + end + local archive = create_basepath_archive(knowngood) + local arclist = { archive } + path = rebuild_path(paths, i) + local arc = drill_for_archive(archive, path, arclist) + install_archive(arc, file, option) + close_archive_list(arclist) + return -- we're done here + end + end + + -- wait, the whole thing exists now? Did this just move in? + install_basepath(basepath, file, option) -- try again, I guess... + end +end + + +local function set_destination(dest) + -- Chop any '/' chars from the end of the string... + dest = string.gsub(dest, "/+$", "") + + MojoSetup.loginfo("Install dest: '" .. dest .. "'") + MojoSetup.destination = dest + MojoSetup.metadatadir = MojoSetup.destination .. "/" .. MojoSetup.metadatadirname + MojoSetup.controldir = MojoSetup.metadatadir -- .. "/control" + MojoSetup.manifestdir = MojoSetup.metadatadir .. "/manifest" + MojoSetup.scratchdir = MojoSetup.metadatadir .. "/tmp" + MojoSetup.rollbackdir = MojoSetup.scratchdir .. "/rollbacks" + MojoSetup.downloaddir = MojoSetup.scratchdir .. "/downloads" +end + + +local function run_config_defined_hook(func, pkg) + if func ~= nil then + local errstr = func(pkg) + if errstr ~= nil then + MojoSetup.fatal(errstr) + end + end +end + + +-- The XML manifest is compatible with the loki_setup manifest schema, since +-- it has a reasonable set of data, and allows you to use loki_update or +-- loki_patch with a MojoSetup installation. Please note that we never ever +-- look at this data! You are responsible for updating the other files if +-- you think it'll be important. The Unix MojoSetup uninstaller uses the +-- lua manifest, for example (but loki_uninstall can use the xml one, +-- so if you want, you can just drop in MojoSetup to replace loki_setup and +-- use the Loki tools for everything else. +local function build_xml_manifest(package) + local retval = {}; + + local function addstr(str) + retval[#retval+1] = str + end + + addstr('\n') + addstr('\n') + addstr('\t\n') + + -- Need to group these by options. + local grouped = {} + for fname,entity in pairs(package.manifest) do + local key = entity.key + if grouped[key] == nil then + grouped[key] = {} + end + entity.path = fname + local list = grouped[key] + list[#list+1] = entity + end + + for desc,items in pairs(grouped) do + addstr('\t\t\n'); + end + + addstr('\t\n\n\n') + + return retval +end + + +local function serialize(obj, prefix, postfix) + local retval = {} + local function addstr(str) + retval[#retval+1] = str + end + + if prefix ~= nil then + addstr(prefix) + end + + local function _serialize(obj, indent) + local objtype = type(obj) + if objtype == "nil" then + addstr("nil") + elseif (objtype == "number") or (objtype == "boolean") then + addstr(tostring(obj)) + elseif objtype == "string" then + addstr(string.format("%q", obj)) + elseif objtype == "function" then + addstr("loadstring(") + addstr(string.format("%q", string.dump(obj))) + addstr(")") + elseif objtype == "table" then + addstr("{\n") + local tab = string.rep("\t", indent) + for k,v in pairs(obj) do + local key = k + addstr(tab) + if type(key) == "number" then + addstr('[') + addstr(key) + addstr(']') + elseif not string.match(key, "^[_a-zA-Z][_a-zA-Z0-9]*$") then + addstr('[') + addstr(string.format("%q", key)) + addstr(']') + else + addstr(key) + end + addstr(" = ") + _serialize(v, indent+1) + addstr(",\n") + end + addstr(string.rep("\t", indent-1)) + addstr("}") + else + MojoSetup.logerror("unexpected object to serialize (" .. + objtype .. "): '" .. tostring(obj) .. "'") + MojoSetup.fatal(_("BUG: Unhandled data type")) + end + end + + _serialize(obj, 1) + + if postfix ~= nil then + addstr(postfix) + end + + return retval +end + + +local function build_lua_manifest(package) + return serialize(package, 'MojoSetup.package = ', '\n\n') +end + + +local function build_txt_manifest(package) + local flat = flatten_manifest(package.manifest) + local retval = {} + for i,v in pairs(flat) do + retval[#retval+1] = v + retval[#retval+1] = "\n" + end + return retval +end + + +local function install_control_app(desc, key) + local dst, src + + -- We copy the installer binary itself, and any auxillary files it needs, + -- like this Lua script, to a metadata directory in the installation. + -- Unfortunately, the binary might be a self-extracting installer that + -- has gigabytes of now-unnecessary data appended to it, so we need to + -- decide if that's the case and, if so, extract just the program itself + -- from the start of the file. + local maxbytes = -1 -- copy whole thing by default. + local base = MojoSetup.archive.base + + dst = MojoSetup.controldir .. "/" .. MojoSetup.controlappname + src = MojoSetup.info.binarypath + if src == MojoSetup.info.basearchivepath then + maxbytes = MojoSetup.archive.offsetofstart(base) + if maxbytes <= 0 then + MojoSetup.fatal(_("BUG: Unexpected value")) + end + end + + local perms = "0755" -- !!! FIXME + install_parent_dirs(dst, key) + install_file_from_filesystem(dst, src, perms, desc, key, maxbytes) + + -- Okay, now we need all the support files. + if not MojoSetup.archive.enumerate(base) then + MojoSetup.fatal(_("Couldn't enumerate archive")) + end + + local needdirs = { "scripts", "guis", "meta" } + + local ent = MojoSetup.archive.enumnext(base) + while ent ~= nil do + -- Make sure this is in a directory we want to write out... + local should_write = false + + if (ent.filename ~= nil) and (ent.filename ~= "") then + for i,dir in ipairs(needdirs) do + local clipdir = "^" .. dir .. "/" + if string.find(ent.filename, clipdir) ~= nil then + should_write = true + break + end + end + end + + if should_write then + dst = MojoSetup.controldir .. "/" .. ent.filename + -- don't overwrite preexisting stuff. + if not MojoSetup.platform.exists(dst) then + install_archive_entity(dst, ent, base, desc, key, perms) + end + end + + -- and check the next entry in the archive... + ent = MojoSetup.archive.enumnext(base) + end + + -- okay, we're written out. +end + + +local function install_unix_uninstaller(desc, key) + -- Write a script out that calls the uninstaller. + local fname = MojoSetup.destination .. "/" .. + "uninstall-" .. MojoSetup.install.id .. ".sh" + + -- Man, I hate escaping shell strings... + local bin = "\"`dirname \"$0\"`\"'/" .. MojoSetup.metadatadirname .. "/" .. + MojoSetup.controlappname .. "'" + string.gsub(bin, "'", "'\\''") -- !!! FIXME: no-op!-- Escape single quotes for shell. + + local id = MojoSetup.install.id + string.gsub(id, "'", "'\\''") -- !!! FIXME: no-op! + + local script = + "#!/bin/sh\n" .. + "exec " .. bin .. " uninstall '" .. id .. "' \"$@\"\n\n" + + install_parent_dirs(fname, key) + install_file_from_string(fname, script, "0755", desc, key) +end + + +local function install_product_keys(productkeys) + for desc,prodkey in pairs(productkeys) do + local dest = MojoSetup.destination .. "/" .. prodkey.destination + local productkey = prodkey.productkey + local component = prodkey.component + -- !!! FIXME: Windows registry support. + -- !!! FIXME: file permissions for product keys? + install_parent_dirs(dest, component) + install_file_from_string(dest, productkey, "0644", desc, component) + end +end + + +local function install_manifests(desc, key) + -- We write out a Lua script as a data definition language, a + -- loki_setup-compatible XML manifest, and a straight text file of + -- all the filenames. Take your pick. + + local perms = "0644" -- !!! FIXME + local basefname = MojoSetup.manifestdir .. "/" .. MojoSetup.install.id + local lua_fname = basefname .. ".lua" + local xml_fname = basefname .. ".xml" + local txt_fname = basefname .. ".txt" + + -- We have to cheat and just plug these into the manifest directly, since + -- they won't show up until after we write them out, otherwise. + -- Obviously, we don't have checksums for them, either, as we haven't + -- assembled the data yet! + + manifest_add(MojoSetup.manifest, lua_fname, key, "file", perms, nil, nil) + manifest_add(MojoSetup.manifest, xml_fname, key, "file", perms, nil, nil) + manifest_add(MojoSetup.manifest, txt_fname, key, "file", perms, nil, nil) + + -- build the "package" table that we serialize, etc. + local package = + { + id = MojoSetup.install.id, + vendor = MojoSetup.install.vendor, + description = MojoSetup.install.description, + root = MojoSetup.destination, + update_url = MojoSetup.install.updateurl, + version = MojoSetup.install.version, + manifest = MojoSetup.manifest, + splash = MojoSetup.install.splash, + splashpos = MojoSetup.install.splashpos, + desktopmenuitems = MojoSetup.install.desktopmenuitems, + preuninstall = MojoSetup.install.preuninstall, + postuninstall = MojoSetup.install.postuninstall + } + + -- now build these things... + install_parent_dirs(lua_fname, key) + install_file_from_stringtable(lua_fname, build_lua_manifest(package), perms, desc, nil) + install_file_from_stringtable(xml_fname, build_xml_manifest(package), perms, desc, nil) + install_file_from_stringtable(txt_fname, build_txt_manifest(package), perms, desc, nil) +end + + +local function freedesktop_menuitem_filename(pkg, idx) -- only for Unix. + local vendor = string.gsub(pkg.vendor, "%.", "_") + local fname = vendor .. "-" .. pkg.id .. "_" .. idx .. ".desktop" + return MojoSetup.metadatadir .. "/" .. fname +end + + +local function uninstall_desktop_menu_items(pkg) + -- !!! FIXME: GUI progress? + if pkg.desktopmenuitems ~= nil then + for i,v in ipairs(pkg.desktopmenuitems) do + if MojoSetup.info.platform == "windows" then + MojoSetup.fatal(_("Unimplemented")) -- !!! FIXME: write me. + elseif MojoSetup.info.platform == "macosx" then + MojoSetup.fatal(_("Unimplemented")) -- !!! FIXME: write me. + elseif MojoSetup.info.platform == "beos" then + MojoSetup.fatal(_("Unimplemented")) -- !!! FIXME: write me. + else -- freedesktop, we hope. + local fname = freedesktop_menuitem_filename(pkg, i) + if not MojoSetup.platform.uninstalldesktopmenuitem(fname) then + MojoSetup.fatal(_("Failed to uninstall desktop menu item")) + end + end + end + end +end + + +local function install_freedesktop_menuitem(pkg, idx, item) -- only for Unix. + local icon + local dest = MojoSetup.destination + if item.builtin_icon then + icon = item.icon + else + icon = dest .. "/" .. item.icon + end + + local cmdline = MojoSetup.format(item.commandline, dest) + + -- Try to escape some characters... + cmdline = '"' .. string.gsub(string.gsub(cmdline, "\"","\\\""), "%%", "%%%%") .. '"' + + local t = { "[Desktop Entry]\n" } + local function addpair(key, val) + t[#t+1] = key + t[#t+1] = '=' + t[#t+1] = val + t[#t+1] = '\n' + end + + addpair("Encoding", "UTF-8") + addpair("Value", "1.0") + addpair("Type", "Application") + addpair("Name", item.name) + addpair("GenericName", item.genericname) + addpair("Comment", item.tooltip) + addpair("Icon", icon) + addpair("Exec", cmdline) + addpair("Categories", flatten_list(item.category)) + + if item.mimetype ~= nil then + addpair("MimeType", flatten_list(item.mimetype)) + end + + t[#t+1] = '\n' + + local fname = freedesktop_menuitem_filename(pkg, idx) + local perms = "0644" -- !!! FIXME + local key = MojoSetup.metadatakey + local desc = MojoSetup.metadatadesc + + --MojoSetup.logdebug("Install FreeDesktop file") + --MojoSetup.logdebug(fname) + --MojoSetup.logdebug(str) + install_parent_dirs(fname, key) + install_file_from_stringtable(fname, t, perms, desc, key) + if not MojoSetup.platform.installdesktopmenuitem(fname) then + MojoSetup.fatal(_("Failed to install desktop menu item")) + end +end + + +local function install_desktop_menu_items(pkg) + -- !!! FIXME: GUI progress? + if pkg.desktopmenuitems ~= nil then + for i,item in ipairs(pkg.desktopmenuitems) do + if not item.disabled then + if MojoSetup.info.platform == "windows" then + MojoSetup.fatal(_("Unimplemented")) -- !!! FIXME: write me. + elseif MojoSetup.info.platform == "macosx" then + MojoSetup.fatal(_("Unimplemented")) -- !!! FIXME: write me. + elseif MojoSetup.info.platform == "beos" then + MojoSetup.fatal(_("Unimplemented")) -- !!! FIXME: write me. + else -- freedesktop, we hope. + install_freedesktop_menuitem(pkg, i, item) + end + end + end + end +end + + +local function get_productkey(thisstage, maxstage, desc, fmt, verify, dest, manifestkey) + local key = nil + local userkey = nil + local retval = nil + + -- Retrieve the previous entry, in case we're stepping back over a stage. + -- This lets the user edit it or jsut move forward without typing the + -- whole thing again. + if MojoSetup.productkeys[desc] ~= nil then + userkey = MojoSetup.productkeys[desc].user_productkey + end + + while key == nil do + retval, userkey = MojoSetup.gui.productkey(desc, fmt, userkey, thisstage, maxstage) + if retval ~= 1 then + return retval -- user hit back or cancel. + end + + key = userkey + if verify ~= nil then + local ok, newkey = verify(userkey) + if not ok then + MojoSetup.msgbox( + _("Invalid product key"), + _("That key appears to be invalid. Please try again.")) + key = nil + elseif newkey ~= nil then + key = newkey + end + end + end + + for desckey,prodkey in pairs(MojoSetup.productkeys) do + if (prodkey.destination == dest) and (desckey ~= desc) then + MojoSetup.logwarning("More than one product key with same destination!") + break + end + end + + MojoSetup.productkeys[desc] = { + destination = dest, + productkey = key, + user_productkey = userkey, + component = manifestkey + } + + return 1 +end + + +local function start_gui(desc, splashfname, splashpos) + if splashfname ~= nil then + splashfname = 'meta/' .. splashfname + end + + if not MojoSetup.gui.start(desc, splashfname, splashpos) then + MojoSetup.fatal(_("GUI failed to start")) + end + + MojoSetup.gui_started = true +end + + +local function stop_gui() + MojoSetup.gui.stop() + MojoSetup.gui_started = nil +end + + +local function do_install(install) + MojoSetup.forceoverwrite = nil + MojoSetup.written = 0 + MojoSetup.totalwrite = 0 + MojoSetup.downloaded = 0 + MojoSetup.totaldownload = 0 + MojoSetup.install = install + MojoSetup.installed_menu_items = false + + -- !!! FIXME: need a cmdline to automate cdkey entry? + local skipeulas = MojoSetup.cmdline("i-agree-to-all-licenses") + local skipreadmes = MojoSetup.cmdline("noreadme") + local skipoptions = MojoSetup.cmdline("nooptions") + + -- !!! FIXME: try to sanity check everything we can here + -- !!! FIXME: (unsupported URLs, bogus media IDs, etc.) + -- !!! FIXME: I would like everything possible to fail here instead of + -- !!! FIXME: when a user happens to pick an option no one tested... + + if (install.options == nil) and (install.optiongroups == nil) then + MojoSetup.fatal(_("BUG: no options")) + end + + -- The uninstaller support needs a manifest to know what to do. Force it on. + if (install.support_uninstall) and (not install.write_manifest) then + MojoSetup.fatal(_("BUG: support_uninstall requires write_manifest")) + end + + -- Desktop icons should probably require uninstall so we don't clutter + -- the system with no option for reversal later. + -- !!! FIXME: will miss menu items that are Setup.Option children... + if (install.desktopmenuitems ~= nil) and (not install.support_uninstall) then + MojoSetup.fatal(_("BUG: Setup.DesktopMenuItem requires support_uninstall")) + end + + -- Manifest support requires the Lua parser. + if (install.write_manifest) and (not MojoSetup.info.luaparser) then + MojoSetup.fatal(_("BUG: write_manifest requires Lua parser support")) + end + + -- This is to save us the trouble of a loop every time we have to + -- find media by id... + MojoSetup.media = {} + if install.medias ~= nil then + for k,v in pairs(install.medias) do + if MojoSetup.media[v.id] ~= nil then + MojoSetup.fatal(_("BUG: duplicate media id")) + end + MojoSetup.media[v.id] = v + end + end + + -- Build a bunch of functions into a linear array...this lets us move + -- back and forth between stages of the install with customized functions + -- for each bit that have their own unique params embedded as upvalues. + -- So if there are three EULAs to accept, we'll call three variations of + -- the EULA function with three different tables that appear as local + -- variables, and the driver that calls this function will be able to + -- skip back and forth based on user input. This is a cool Lua thing. + local stages = {} + + -- First stage: Make sure installer can run. Always fails or steps forward. + -- !!! FIXME: you can step back onto this...need a way to run some stages + -- !!! FIXME: only once... + if install.precheck ~= nil then + stages[#stages+1] = function () + run_config_defined_hook(install.precheck, install) + return 1 + end + end + + -- Next stage: accept all global EULAs. Rejection of any EULA is considered + -- fatal. These are global EULAs for the install, per-option EULAs come + -- later. + if (install.eulas ~= nil) and (not skipeulas) then + for k,eula in pairs(install.eulas) do + local desc = eula.description + local fname = "data/" .. eula.source + + -- (desc) and (fname) become upvalues in this function. + stages[#stages+1] = function (thisstage, maxstage) + local retval = MojoSetup.gui.readme(desc,fname,thisstage,maxstage) + if retval == 1 then + if not MojoSetup.promptyn(desc, _("Accept this license?"), false) then + MojoSetup.fatal(_("You must accept the license before you may install")) + end + end + return retval + end + end + end + + -- Next stage: enter all global products keys. These are global keys + -- for the install, per-option keys come later. + MojoSetup.productkeys = {} + if install.productkeys ~= nil then + for k,prodkey in pairs(install.productkeys) do + -- (prodkey) becomes an upvalue in this function. + stages[#stages+1] = function(thisstage, maxstage) + return get_productkey(thisstage, maxstage, prodkey.description, + prodkey.format, prodkey.verify, + prodkey.destination, + MojoSetup.metadatakey) + end + end + end + + -- Next stage: show any READMEs. + if (install.readmes ~= nil) and (not skipreadmes) then + for k,readme in pairs(install.readmes) do + local desc = readme.description + -- !!! FIXME: pull from archive? + local fname = "data/" .. readme.source + -- (desc) and (fname) become upvalues in this function. + stages[#stages+1] = function(thisstage, maxstage) + return MojoSetup.gui.readme(desc, fname, thisstage, maxstage) + end + end + end + + -- Next stage: let user choose install destination. + -- The config file can force a destination if it has a really good reason + -- (system drivers that have to go in a specific place, for example), + -- but really really shouldn't in 99% of the cases. + local destcmdline = MojoSetup.cmdlinestr("destination") + if install.destination ~= nil then + set_destination(install.destination) + elseif destcmdline ~= nil then + set_destination(destcmdline) + else + local recommend = nil + local recommended_cfg = install.recommended_destinations + if recommended_cfg ~= nil then + if type(recommended_cfg) == "string" then + recommended_cfg = { recommended_cfg } + end + + recommend = {} + for i,v in ipairs(recommended_cfg) do + if MojoSetup.platform.isdir(v) then + if MojoSetup.platform.writable(v) then + recommend[#recommend+1] = v .. "/" .. install.id + end + end + end + + if #recommend == 0 then + recommend = nil + end + end + + -- (recommend) becomes an upvalue in this function. + stages[#stages+1] = function(thisstage, maxstage) + local rc, dst + rc, dst = MojoSetup.gui.destination(recommend, thisstage, maxstage) + if rc == 1 then + set_destination(dst) + end + return rc + end + end + + -- Next stage: let user choose install options. + -- This may not produce a GUI stage if it decides that all options + -- are either required or disabled. + if not skipoptions then -- (just take the defaults...) + -- (install) becomes an upvalue in this function. + stages[#stages+1] = function(thisstage, maxstage) + -- This does some complex stuff with a hierarchy of tables in C. + return MojoSetup.gui.options(install, thisstage, maxstage) + end + end + + + -- Next stage: accept all option-specific EULAs. + -- Rejection of any EULA will put you back one stage (usually to the + -- install options), but if there is no previous stage, this becomes + -- fatal. + -- This may not produce a GUI stage if there are no selected options with + -- EULAs to accept. + if not skipeulas then + stages[#stages+1] = function(thisstage, maxstage) + local option_eulas = {} + + local function find_option_eulas(opts) + local options = opts['options'] + if options ~= nil then + for k,v in pairs(options) do + if v.value then + if v.eulas ~= nil then + for ek,ev in pairs(v.eulas) do + option_eulas[#option_eulas+1] = ev + end + end + find_option_eulas(v) + end + end + end + + local optiongroups = opts['optiongroups'] + if optiongroups ~= nil then + for k,v in pairs(optiongroups) do + if not v.disabled then + find_option_eulas(v) + end + end + end + end + + find_option_eulas(install) + + for k,eula in pairs(option_eulas) do + local desc = eula.description + local fname = "data/" .. eula.source + local retval = MojoSetup.gui.readme(desc,fname,thisstage,maxstage) + if retval == 1 then + if not MojoSetup.promptyn(desc, _("Accept this license?"), false) then + -- can't go back? We have to die here instead. + if thisstage == 1 then + MojoSetup.fatal(_("You must accept the license before you may install")) + else + retval = -1 -- just step back a stage. + end + end + end + + if retval ~= 1 then + return retval + end + end + + return 1 -- all licenses were agreed to. Go to the next stage. + end + end + + -- Next stage: enter all option-specific product keys. + -- This may not produce a GUI stage if there are no selected options with + -- product keys. Many installers will use a single global key instead. + stages[#stages+1] = function(thisstage, maxstage) + local options_with_keys = {} + + local function find_options_with_keys(opts) + local options = opts['options'] + if options ~= nil then + for k,v in pairs(options) do + if v.value then + if v.productkeys ~= nil then + options_with_keys[#options_with_keys+1] = v; + end + find_options_with_keys(v) + end + end + end + + local optiongroups = opts['optiongroups'] + if optiongroups ~= nil then + for k,v in pairs(optiongroups) do + if not v.disabled then + find_options_with_keys(v) + end + end + end + end + + find_options_with_keys(install) + + for optk,option in ipairs(options_with_keys) do + for k,prodkey in ipairs(option.productkeys) do + local retval = get_productkey(thisstage, maxstage, + prodkey.description, + prodkey.format, prodkey.verify, + prodkey.destination, + option.description) + if retval ~= 1 then + return retval + end + end + end + + return 1 -- all product keys are entered. Go to the next stage. + end + + -- Next stage: Make sure source list is sane. + -- This is not a GUI stage, it just needs to run between them. + -- This gets a little hairy. + stages[#stages+1] = function(thisstage, maxstage) + -- Make sure we install the destination dir, so it's in the manifest. + if not MojoSetup.platform.exists(MojoSetup.destination) then + install_parent_dirs(MojoSetup.destination, MojoSetup.metadatakey) + install_directory(MojoSetup.destination, nil, MojoSetup.metadatakey) + end + + local function process_file(option, file) + -- !!! FIXME: what happens if a file shows up in multiple options? + local src = file.source + local prot,host,path + if src ~= nil then -- no source, it's in GBaseArchive + prot,host,path = MojoSetup.spliturl(src) + end + if (src == nil) or (prot == "base://") then -- included content? + if MojoSetup.files.included == nil then + MojoSetup.files.included = {} + end + MojoSetup.files.included[file] = option + elseif prot == "media://" then + -- !!! FIXME: make sure media id is valid. + if MojoSetup.files.media == nil then + MojoSetup.files.media = {} + end + if MojoSetup.files.media[host] == nil then + MojoSetup.files.media[host] = {} + end + MojoSetup.files.media[host][file] = option + else + -- !!! FIXME: make sure we can handle this URL... + if MojoSetup.files.downloads == nil then + MojoSetup.files.downloads = {} + end + + if option.bytes > 0 then + MojoSetup.totaldownload = MojoSetup.totaldownload + option.bytes + end + MojoSetup.files.downloads[file] = option + end + end + + -- Sort an option into tables that say what sort of install it is. + -- This lets us batch all the things from one CD together, + -- do all the downloads first, etc. + local function process_option(option) + if option.bytes > 0 then + MojoSetup.totalwrite = MojoSetup.totalwrite + option.bytes + end + if option.files ~= nil then + for k,v in pairs(option.files) do + process_file(option, v) + end + end + + if option.desktopmenuitems ~= nil then + for i,item in ipairs(option.desktopmenuitems) do + if install.desktopmenuitems == nil then + install.desktopmenuitems = {} + end + install.desktopmenuitems[#install.desktopmenuitems+1] = item + end + end + end + + local function build_source_tables(opts) + local options = opts['options'] + if options ~= nil then + for k,v in pairs(options) do + if v.value then + process_option(v) + build_source_tables(v) + end + end + end + + local optiongroups = opts['optiongroups'] + if optiongroups ~= nil then + for k,v in pairs(optiongroups) do + if not v.disabled then + build_source_tables(v) + end + end + end + end + + run_config_defined_hook(install.preflight, install) + + MojoSetup.files = {} + build_source_tables(install) + + -- This dumps the files tables using MojoSetup.logdebug, + -- so it only spits out crap if debug-level logging is enabled. + MojoSetup.dumptable("MojoSetup.files", MojoSetup.files) + + return 1 -- always go forward from non-GUI stage. + end + + -- Next stage: Download external packages. + stages[#stages+1] = function(thisstage, maxstage) + if MojoSetup.files.downloads ~= nil then + -- !!! FIXME: id will cause problems for download resume + -- !!! FIXME: id will chop filename extension + local id = 0 + for file,option in pairs(MojoSetup.files.downloads) do + local f = MojoSetup.downloaddir .. "/" .. id + install_parent_dirs(f, MojoSetup.metadatakey) + id = id + 1 + + -- Upvalued so we don't look these up each time... + local url = file.source + local fname = string.gsub(url, "^.*/", "", 1) -- chop the dirs off... + local ptype = _("Downloading") + local component = option.description + local bps = 0 + local bpsticks = 0 + local ratestr = '' + local item = fname + local percent = -1 + local callback = function(ticks, justwrote, bw, total) + if total < 0 then + -- adjust start point for d/l rate calculation... + bpsticks = ticks + 1000 + else + if ticks >= bpsticks then + ratestr = make_rate_string(bps, bw, total) + bpsticks = ticks + 1000 + bps = 0 + end + bps = bps + justwrote + MojoSetup.downloaded = MojoSetup.downloaded + justwrote + percent = calc_percent(MojoSetup.downloaded, + MojoSetup.totaldownload) + + item = MojoSetup.format(_("%0: %1%% (%2)"), + fname, + calc_percent(bw, total), + ratestr) + end + return MojoSetup.gui.progress(ptype, component, percent, item, true) + end + + MojoSetup.loginfo("Download '" .. url .. "' to '" .. f .. "'") + MojoSetup.gui.progressitem() + local downloaded, sums = MojoSetup.download(url, f, nil, nil, callback) + if not downloaded then + MojoSetup.fatal(_("File download failed!")) + end + MojoSetup.downloads[#MojoSetup.downloads+1] = f + end + end + return 1 + end + + -- Next stage: actual installation. + stages[#stages+1] = function(thisstage, maxstage) + run_config_defined_hook(install.preinstall) + + -- Do stuff on media first, so the user finds out he's missing + -- disc 3 of 57 as soon as possible... + + -- Since we sort all things to install by the media that contains + -- the source data, you should only have to insert each disc + -- once, no matter how they landed in the config file. + + if MojoSetup.files.media ~= nil then + -- Build an array of media ids so we can sort them into a + -- reasonable order...disc 1 before disc 2, etc. + local medialist = {} + for mediaid,mediavalue in pairs(MojoSetup.files.media) do + medialist[#medialist+1] = mediaid + end + table.sort(medialist) + + for mediaidx,mediaid in ipairs(medialist) do + local media = MojoSetup.media[mediaid] + local basepath = MojoSetup.findmedia(media.uniquefile) + while basepath == nil do + if not MojoSetup.gui.insertmedia(media.description) then + return 0 -- user cancelled. + end + basepath = MojoSetup.findmedia(media.uniquefile) + end + + -- Media is ready, install everything from this one... + MojoSetup.loginfo("Found correct media at '" .. basepath .. "'") + local files = MojoSetup.files.media[mediaid] + for file,option in pairs(files) do + local prot,host,path = MojoSetup.spliturl(file.source) + install_basepath(basepath .. "/" .. path, file, option) + end + end + medialist = nil -- done with this. + end + + if MojoSetup.files.downloads ~= nil then + local id = 0 + for file,option in pairs(MojoSetup.files.downloads) do + local f = MojoSetup.downloaddir .. "/" .. id + id = id + 1 + install_basepath(f, file, option) + end + end + + if MojoSetup.files.included ~= nil then + for file,option in pairs(MojoSetup.files.included) do + local arc = MojoSetup.archive.base + if file.source == nil then + install_archive(arc, file, option) + else + local prot,host,path = MojoSetup.spliturl(file.source) + local arclist = {} + arc = drill_for_archive(arc, "data/" .. path, arclist) + install_archive(arc, file, option) + close_archive_list(arclist) + end + end + end + + if install.desktopmenuitems ~= nil then + install_desktop_menu_items(install) + MojoSetup.installed_menu_items = true + end + + if install.support_uninstall then + if MojoSetup.info.platform == "windows" then + MojoSetup.fatal(_("Unimplemented")) -- !!! FIXME: write me. + else -- Unix, Mac OS X, BeOS... + install_unix_uninstaller(MojoSetup.metadatadesc, MojoSetup.metadatakey) + end + end + + install_product_keys(MojoSetup.productkeys) + + run_config_defined_hook(install.postinstall, install) + + if install.write_manifest then + install_control_app(MojoSetup.metadatadesc, MojoSetup.metadatakey) + install_manifests(MojoSetup.metadatadesc, MojoSetup.metadatakey) + end + + return 1 -- go to next stage. + end + + -- Next stage: show results gui + stages[#stages+1] = function(thisstage, maxstage) + MojoSetup.gui.final(_("Installation was successful.")) + return 1 -- go forward. + end + + -- Now make all this happen. + start_gui(install.description, install.splash, install.splashpos) + + -- Make the stages available elsewhere. + MojoSetup.stages = stages + + MojoSetup.manifest = {} + MojoSetup.rollbacks = {} + MojoSetup.downloads = {} + + local i = 1 + while MojoSetup.stages[i] ~= nil do + local stage = MojoSetup.stages[i] + local rc = stage(i, #MojoSetup.stages) + + -- Too many times I forgot to return something. :) + if type(rc) ~= "number" then + MojoSetup.fatal(_("BUG: stage returned wrong type")) + end + + if rc == 1 then + i = i + 1 -- next stage. + elseif rc == -1 then + if i == 1 then + MojoSetup.fatal(_("BUG: stepped back over start of stages")) + else + i = i - 1 + end + elseif rc == 0 then + MojoSetup.fatal() -- user cancelled + else + MojoSetup.fatal(_("BUG: stage returned wrong value")) + end + end + + -- Successful install, so delete conflicts we no longer need to rollback. + delete_rollbacks() + delete_files(MojoSetup.downloads) + delete_scratchdirs() + + -- Don't let future errors delete files from successful installs... + MojoSetup.downloads = nil + MojoSetup.rollbacks = nil + + stop_gui() + + -- Done with these things. Make them eligible for garbage collection. + stages = nil + MojoSetup.manifest = nil + MojoSetup.destination = nil + MojoSetup.manifestdir = nil + MojoSetup.metadatadir = nil + MojoSetup.controldir = nil + MojoSetup.scratchdir = nil + MojoSetup.rollbackdir = nil + MojoSetup.downloaddir = nil + MojoSetup.install = nil + MojoSetup.forceoverwrite = nil + MojoSetup.installed_menu_items = nil + MojoSetup.stages = nil + MojoSetup.files = nil + MojoSetup.productkeys = nil + MojoSetup.media = nil + MojoSetup.written = 0 + MojoSetup.totalwrite = 0 + MojoSetup.downloaded = 0 + MojoSetup.totaldownload = 0 +end + + +local function real_revertinstall() + if MojoSetup.gui_started then + MojoSetup.gui.final(_("Incomplete installation. We will revert any changes we made.")) + end + + MojoSetup.loginfo("Cleaning up half-finished installation...") + + -- !!! FIXME: callbacks here. + if MojoSetup.installed_menu_items then + uninstall_desktop_menu_items(MojoSetup.install) + end + + delete_files(MojoSetup.downloads) + delete_files(flatten_manifest(MojoSetup.manifest, prepend_dest_dir)) + do_rollbacks() + delete_scratchdirs() +end + + +local function installer() + MojoSetup.loginfo("Installer starting") + + MojoSetup.revertinstall = real_revertinstall -- replace the stub. + + -- This dumps the table built from the user's config script using logdebug, + -- so it only spits out crap if debug-level logging is enabled. + MojoSetup.dumptable("MojoSetup.installs", MojoSetup.installs) + + local saw_an_installer = false + for installkey,install in pairs(MojoSetup.installs) do + if not install.disabled then + saw_an_installer = true + do_install(install) + MojoSetup.collectgarbage() -- nuke all the tables we threw around... + end + end + + if not saw_an_installer then + MojoSetup.fatal(_("Nothing to do!")) + end +end + + +local function load_manifest(pkg) + local package = nil + if pkg == nil then + badcmdline() + end + + MojoSetup.package = nil -- just in case. + + -- We need to be in the metadata directory of an install or this fails. + local base = string.gsub(MojoSetup.info.basearchivepath, "/[^/]*$", "", 1) + set_destination(base) -- set up directories + if MojoSetup.metadatadir == MojoSetup.info.basearchivepath then + -- load the existing manifest first... + local ran = MojoSetup.runfilefromdir("manifest", pkg) + if (not ran) or (MojoSetup.package == nil) then + MojoSetup.fatal(MojoSetup.format( + _("Couldn't load manifest file for '%0'"), pkg)) + end + + -- Move this out of the global... + package = MojoSetup.package + MojoSetup.package = nil + end + + -- note that we discard the base directory specified in the manifest, as + -- someone could have moved the installation's folder elsewhere. We'll + -- keep it up to date for loki_update or whatever to use, though. + package.destination = MojoSetup.destination + + return package +end + + +local function manifest_management() + MojoSetup.loginfo("Manifest management starting") + local package = load_manifest(MojoSetup.info.argv[3]) + + local i = 4 + while MojoSetup.info.argv[i] ~= nil do + local cmd = MojoSetup.info.argv[i] + i = i + 1 + + if cmd == "add" then + local key = MojoSetup.info.argv[i] + i = i + 1 + local fname = MojoSetup.info.argv[i] + i = i + 1 + if (key == nil) or (fname == nil) then + badcmdline() + end + + MojoSetup.loginfo("Add '" ..fname.. "', '" ..key.. "' to manifest") + fname = MojoSetup.destination .. "/" .. fname + if not MojoSetup.platform.exists(fname) then + MojoSetup.fatal(MojoSetup.format(_("File %0 not found"), fname)) + end + + manifest_add(package.manifest, fname, key, nil, nil, nil, nil) + manifest_resync(package.manifest, fname, key) + + elseif cmd == "delete" then + local fname = MojoSetup.info.argv[i] + i = i + 1 + if fname == nil then + badcmdline() + end + MojoSetup.loginfo("Delete '" .. fname .. "' from manifest") + fname = MojoSetup.destination .. "/" .. fname + manifest_delete(package.manifest, fname) + + elseif cmd == "resync" then + local fname = MojoSetup.info.argv[i] + i = i + 1 + if fname == nil then + badcmdline() + end + MojoSetup.loginfo("Resync '" .. fname .. "' in manifest") + fname = MojoSetup.destination .. "/" .. fname + if not MojoSetup.platform..exists(fname) then + MojoSetup.fatal(MojoSetup.format(_("File %0 not found"), fname)) + end + manifest_resync(package.manifest, fname) + + elseif string.match(cmd, "^-") == nil then -- skip "-option" strings + MojoSetup.logerror("Unknown command '" .. cmd .. "'") + badcmdline() + end + end + + -- !!! FIXME: duplication with install_manifests() + local perms = "0644" -- !!! FIXME + local basefname = MojoSetup.manifestdir .. "/" .. package.id + local lua_fname = basefname .. ".lua" + local xml_fname = basefname .. ".xml" + local txt_fname = basefname .. ".txt" + + MojoSetup.loginfo("rebuilding manifests...") + + -- !!! FIXME: rollback! + delete_files({lua_fname, xml_fname, txt_fname}, nil, false) + MojoSetup.stringtabletofile(build_lua_manifest(package), lua_fname, perms, nil, nil) + MojoSetup.stringtabletofile(build_xml_manifest(package), xml_fname, perms, nil, nil) + MojoSetup.stringtabletofile(build_txt_manifest(package), txt_fname, perms, nil, nil) + + MojoSetup.loginfo("manifests rebuilt!") +end + + +local function uninstaller() + MojoSetup.loginfo("Uninstaller starting") + local package = load_manifest(MojoSetup.info.argv[3]) + + local title = _("Uninstall") + + local uninstall_permitted = false + if MojoSetup.cmdline("force") then + uninstall_permitted = true + else + local question = _("Are you sure you want to uninstall '%0'?") + question = MojoSetup.format(question, package.description) + uninstall_permitted = MojoSetup.promptyn(title, question, false) + end + + if uninstall_permitted then + start_gui(package.description, package.splash, package.splashpos) + run_config_defined_hook(package.preuninstall, package) + + uninstall_desktop_menu_items(package) + + -- Upvalued in callback so we don't look this up each time... + local ptype = _("Uninstalling") + local callback = function(fname, current, total) + fname = make_relative(fname, MojoSetup.destination) + local percent = 100 - calc_percent(current, total) + local component = package.manifest[fname].key + if component == nil then + component = "" + elseif component == MojoSetup.metadatakey then + component = MojoSetup.metadatadesc + end + + local item = string.gsub(fname, "^.*/", "", 1) -- chop off dirs... + MojoSetup.gui.progressitem() + MojoSetup.gui.progress(ptype, component, percent, item, false) + return true -- !!! FIXME: need to disable cancel button in UI... + end + + local filelist = flatten_manifest(package.manifest, prepend_dest_dir) + delete_files(filelist, callback, true) + run_config_defined_hook(package.postuninstall, package) + MojoSetup.gui.final(_("Uninstall complete")) + stop_gui() + end + + -- !!! FIXME: postuninstall hook? +end + + + +-- Mainline... + +local purpose = nil + +-- Have to check argv instead of using cmdline(), for precision's sake. +-- Remember that unlike main()'s argv in C, Lua starts arrays at 1, +-- so argv[2] would be argv[1] in C. Fun. +local argv2 = MojoSetup.info.argv[2] +if argv2 == "manifest" then + purpose = manifest_management +elseif argv2 == "uninstall" then + purpose = uninstaller +else + purpose = installer + MojoSetup.runfile("config") -- This builds the MojoSetup.installs table. +end + +-- We don't need the "Setup" namespace anymore. Make it eligible +-- for garbage collection. +Setup = nil +MojoSetup.collectgarbage() -- and collect it, etc. + +-- Now do the real work... +purpose() + +-- end of mojosetup_mainline.lua ... + diff --git a/mk/linux/mojosetup/stb_image.c b/mk/linux/mojosetup/stb_image.c new file mode 100644 index 00000000..6602ad20 --- /dev/null +++ b/mk/linux/mojosetup/stb_image.c @@ -0,0 +1,3818 @@ +// (Changes to this code are wrapped in __MOJOSETUP__ sections. --ryan.) +// (Changes to JUST THIS FILE are also public domain. The rest of MojoSetup +// falls under different licensing terms. --ryan.) +#if !__MOJOSETUP__ +#error This file is probably miscompiled. +#endif + +/* stbi-1.08 - public domain JPEG/PNG reader - http://nothings.org/stb_image.c + when you control the images you're loading + + QUICK NOTES: + Primarily of interest to game developers and other people who can + avoid problematic images and only need the trivial interface + + JPEG baseline (no JPEG progressive, no oddball channel decimations) + PNG non-interlaced + BMP non-1bpp, non-RLE + TGA (not sure what subset, if a subset) + PSD (composite view only, no extra channels) + HDR (radiance rgbE format) + writes BMP,TGA (define STBI_NO_WRITE to remove code) + decoded from memory or through stdio FILE (define STBI_NO_STDIO to remove code) + + TODO: + stbi_info_* + + history: + 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz + 1.07 attempt to fix C++ warning/errors again + 1.06 attempt to fix C++ warning/errors again + 1.05 fix TGA loading to return correct *comp and use good luminance calc + 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free + 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR + 1.02 support for (subset of) HDR files, float interface for preferred access to them + 1.01 fix bug: possible bug in handling right-side up bmps... not sure + fix bug: the stbi_bmp_load() and stbi_tga_load() functions didn't work at all + 1.00 interface to zlib that skips zlib header + 0.99 correct handling of alpha in palette + 0.98 TGA loader by lonesock; dynamically add loaders (untested) + 0.97 jpeg errors on too large a file; also catch another malloc failure + 0.96 fix detection of invalid v value - particleman@mollyrocket forum + 0.95 during header scan, seek to markers in case of padding + 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same + 0.93 handle jpegtran output; verbose errors + 0.92 read 4,8,16,24,32-bit BMP files of several formats + 0.91 output 24-bit Windows 3.0 BMP files + 0.90 fix a few more warnings; bump version number to approach 1.0 + 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd + 0.60 fix compiling as c++ + 0.59 fix warnings: merge Dave Moore's -Wall fixes + 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian + 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less + than 16 available + 0.56 fix bug: zlib uncompressed mode len vs. nlen + 0.55 fix bug: restart_interval not initialized to 0 + 0.54 allow NULL for 'int *comp' + 0.53 fix bug in png 3->4; speedup png decoding + 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments + 0.51 obey req_comp requests, 1-component jpegs return as 1-component, + on 'test' only check type, not whether we support this variant +*/ + +#if __MOJOSETUP__ +# include "universal.h" // catches xmalloc() defines, etc. +# undef malloc +# define malloc(x) xmalloc(x) +# undef realloc +# define realloc(x, y) xrealloc(x, y) + +# define STBI_NO_WRITE 1 +# define STBI_NO_STDIO 1 +# define STBI_NO_FAILURE_STRINGS 1 +# if !SUPPORT_HDR +# define STBI_NO_HDR 1 +# endif +# if !SUPPORT_TGA +# define STBI_NO_TGA 1 +# endif +# if !SUPPORT_JPG +# define STBI_NO_JPEG 1 +# endif +# if !SUPPORT_BMP +# define STBI_NO_BMP 1 +# endif +# if !SUPPORT_PSD +# define STBI_NO_PSD 1 +# endif +# if !SUPPORT_PNG +# define STBI_NO_PNG 1 +# define STBI_NO_ZLIB 1 +# endif +#endif + +//// begin header file //////////////////////////////////////////////////// +// +// Limitations: +// - no progressive/interlaced support (jpeg, png) +// - 8-bit samples only (jpeg, png) +// - not threadsafe +// - channel subsampling of at most 2 in each dimension (jpeg) +// - no delayed line count (jpeg) -- IJG doesn't support either +// +// Basic usage (see HDR discussion below): +// int x,y,n; +// unsigned char *data = stbi_load(filename, &x, &y, &n, 0); +// // ... process data if not NULL ... +// // ... x = width, y = height, n = # 8-bit components per pixel ... +// // ... replace '0' with '1'..'4' to force that many components per pixel +// stbi_image_free(data) +// +// Standard parameters: +// int *x -- outputs image width in pixels +// int *y -- outputs image height in pixels +// int *comp -- outputs # of image components in image file +// int req_comp -- if non-zero, # of image components requested in result +// +// The return value from an image loader is an 'unsigned char *' which points +// to the pixel data. The pixel data consists of *y scanlines of *x pixels, +// with each pixel consisting of N interleaved 8-bit components; the first +// pixel pointed to is top-left-most in the image. There is no padding between +// image scanlines or between pixels, regardless of format. The number of +// components N is 'req_comp' if req_comp is non-zero, or *comp otherwise. +// If req_comp is non-zero, *comp has the number of components that _would_ +// have been output otherwise. E.g. if you set req_comp to 4, you will always +// get RGBA output, but you can check *comp to easily see if it's opaque. +// +// An output image with N components has the following components interleaved +// in this order in each pixel: +// +// N=#comp components +// 1 grey +// 2 grey, alpha +// 3 red, green, blue +// 4 red, green, blue, alpha +// +// If image loading fails for any reason, the return value will be NULL, +// and *x, *y, *comp will be unchanged. The function stbi_failure_reason() +// can be queried for an extremely brief, end-user unfriendly explanation +// of why the load failed. Define STBI_NO_FAILURE_STRINGS to avoid +// compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly +// more user-friendly ones. +// +// Paletted PNG and BMP images are automatically depalettized. +// +// +// =========================================================================== +// +// HDR image support (disable by defining STBI_NO_HDR) +// +// stb_image now supports loading HDR images in general, and currently +// the Radiance .HDR file format, although the support is provided +// generically. You can still load any file through the existing interface; +// if you attempt to load an HDR file, it will be automatically remapped to +// LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1; +// both of these constants can be reconfigured through this interface: +// +// stbi_hdr_to_ldr_gamma(2.2f); +// stbi_hdr_to_ldr_scale(1.0f); +// +// (note, do not use _inverse_ constants; stbi_image will invert them +// appropriately). +// +// Additionally, there is a new, parallel interface for loading files as +// (linear) floats to preserve the full dynamic range: +// +// float *data = stbi_loadf(filename, &x, &y, &n, 0); +// +// If you load LDR images through this interface, those images will +// be promoted to floating point values, run through the inverse of +// constants corresponding to the above: +// +// stbi_ldr_to_hdr_scale(1.0f); +// stbi_ldr_to_hdr_gamma(2.2f); +// +// Finally, given a filename (or an open file or memory block--see header +// file for details) containing image data, you can query for the "most +// appropriate" interface to use (that is, whether the image is HDR or +// not), using: +// +// stbi_is_hdr(char *filename); + + +#ifndef STBI_NO_STDIO +#include +#endif + +#ifndef STBI_NO_HDR +#include // ldexp +#include // strcmp +#endif + +enum +{ + STBI_default = 0, // only used for req_comp + + STBI_grey = 1, + STBI_grey_alpha = 2, + STBI_rgb = 3, + STBI_rgb_alpha = 4, +}; + +typedef unsigned char stbi_uc; + +#ifdef __cplusplus +extern "C" { +#endif + +// WRITING API + +#if !defined(STBI_NO_WRITE) && !defined(STBI_NO_STDIO) +// write a BMP/TGA file given tightly packed 'comp' channels (no padding, nor bmp-stride-padding) +// (you must include the appropriate extension in the filename). +// returns TRUE on success, FALSE if couldn't open file, error writing file +extern int stbi_write_bmp (char *filename, int x, int y, int comp, void *data); +extern int stbi_write_tga (char *filename, int x, int y, int comp, void *data); +#endif + +// PRIMARY API - works on images of any type + +// load image by filename, open file, or memory buffer +#ifndef STBI_NO_STDIO +extern stbi_uc *stbi_load (char *filename, int *x, int *y, int *comp, int req_comp); +extern stbi_uc *stbi_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp); +extern int stbi_info_from_file (FILE *f, int *x, int *y, int *comp); +#endif +extern stbi_uc *stbi_load_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp); +// for stbi_load_from_file, file pointer is left pointing immediately after image + +#ifndef STBI_NO_HDR +#ifndef STBI_NO_STDIO +extern float *stbi_loadf (char *filename, int *x, int *y, int *comp, int req_comp); +extern float *stbi_loadf_from_file (FILE *f, int *x, int *y, int *comp, int req_comp); +#endif +extern float *stbi_loadf_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp); + +extern void stbi_hdr_to_ldr_gamma(float gamma); +extern void stbi_hdr_to_ldr_scale(float scale); + +extern void stbi_ldr_to_hdr_gamma(float gamma); +extern void stbi_ldr_to_hdr_scale(float scale); + +#endif // STBI_NO_HDR + +// get a VERY brief reason for failure +extern char *stbi_failure_reason (void); + +// free the loaded image -- this is just free() +extern void stbi_image_free (void *retval_from_stbi_load); + +// get image dimensions & components without fully decoding +extern int stbi_info_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp); +extern int stbi_is_hdr_from_memory(stbi_uc *buffer, int len); +#ifndef STBI_NO_STDIO +extern int stbi_info (char *filename, int *x, int *y, int *comp); +extern int stbi_is_hdr (char *filename); +extern int stbi_is_hdr_from_file(FILE *f); +#endif + +// ZLIB client - used by PNG, available for other purposes + +extern char *stbi_zlib_decode_malloc_guesssize(int initial_size, int *outlen); +extern char *stbi_zlib_decode_malloc(char *buffer, int len, int *outlen); +extern int stbi_zlib_decode_buffer(char *obuffer, int olen, char *ibuffer, int ilen); + +extern char *stbi_zlib_decode_noheader_malloc(char *buffer, int len, int *outlen); +extern int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, char *ibuffer, int ilen); + + +// TYPE-SPECIFIC ACCESS + +// is it a jpeg? +extern int stbi_jpeg_test_memory (stbi_uc *buffer, int len); +extern stbi_uc *stbi_jpeg_load_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp); +extern int stbi_jpeg_info_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp); + +#ifndef STBI_NO_STDIO +extern stbi_uc *stbi_jpeg_load (char *filename, int *x, int *y, int *comp, int req_comp); +extern int stbi_jpeg_test_file (FILE *f); +extern stbi_uc *stbi_jpeg_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp); + +extern int stbi_jpeg_info (char *filename, int *x, int *y, int *comp); +extern int stbi_jpeg_info_from_file (FILE *f, int *x, int *y, int *comp); +#endif + +extern int stbi_jpeg_dc_only; // only decode DC component + +// is it a png? +extern int stbi_png_test_memory (stbi_uc *buffer, int len); +extern stbi_uc *stbi_png_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp); +extern int stbi_png_info_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp); + +#ifndef STBI_NO_STDIO +extern stbi_uc *stbi_png_load (char *filename, int *x, int *y, int *comp, int req_comp); +extern int stbi_png_info (char *filename, int *x, int *y, int *comp); +extern int stbi_png_test_file (FILE *f); +extern stbi_uc *stbi_png_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp); +extern int stbi_png_info_from_file (FILE *f, int *x, int *y, int *comp); +#endif + +// is it a bmp? +extern int stbi_bmp_test_memory (stbi_uc *buffer, int len); + +extern stbi_uc *stbi_bmp_load (char *filename, int *x, int *y, int *comp, int req_comp); +extern stbi_uc *stbi_bmp_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp); +#ifndef STBI_NO_STDIO +extern int stbi_bmp_test_file (FILE *f); +extern stbi_uc *stbi_bmp_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp); +#endif + +// is it a tga? +extern int stbi_tga_test_memory (stbi_uc *buffer, int len); + +extern stbi_uc *stbi_tga_load (char *filename, int *x, int *y, int *comp, int req_comp); +extern stbi_uc *stbi_tga_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp); +#ifndef STBI_NO_STDIO +extern int stbi_tga_test_file (FILE *f); +extern stbi_uc *stbi_tga_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp); +#endif + +// is it a psd? +extern int stbi_psd_test_memory (stbi_uc *buffer, int len); + +extern stbi_uc *stbi_psd_load (char *filename, int *x, int *y, int *comp, int req_comp); +extern stbi_uc *stbi_psd_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp); +#ifndef STBI_NO_STDIO +extern int stbi_psd_test_file (FILE *f); +extern stbi_uc *stbi_psd_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp); +#endif + +// is it an hdr? +extern int stbi_hdr_test_memory (stbi_uc *buffer, int len); + +extern float * stbi_hdr_load (char *filename, int *x, int *y, int *comp, int req_comp); +extern float * stbi_hdr_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp); +#ifndef STBI_NO_STDIO +extern int stbi_hdr_test_file (FILE *f); +extern float * stbi_hdr_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp); +#endif + +// define new loaders +typedef struct +{ + int (*test_memory)(stbi_uc *buffer, int len); + stbi_uc * (*load_from_memory)(stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp); + #ifndef STBI_NO_STDIO + int (*test_file)(FILE *f); + stbi_uc * (*load_from_file)(FILE *f, int *x, int *y, int *comp, int req_comp); + #endif +} stbi_loader; + +// register a loader by filling out the above structure (you must defined ALL functions) +// returns 1 if added or already added, 0 if not added (too many loaders) +extern int stbi_register_loader(stbi_loader *loader); + +#ifdef __cplusplus +} +#endif + +// +// +//// end header file ///////////////////////////////////////////////////// + +#ifndef STBI_NO_STDIO +#include +#endif +#include +#include +#include +#include + +#ifndef _MSC_VER +#define __forceinline +#endif + +// implementation: +#if !__MOJOSETUP__ // (we define these in universal.h ...) +typedef unsigned char uint8; +typedef unsigned short uint16; +typedef signed short int16; +typedef unsigned int uint32; +typedef signed int int32; +typedef unsigned int uint; +#endif + +// should produce compiler error if size is wrong +typedef unsigned char validate_uint32[sizeof(uint32)==4]; + +#if defined(STBI_NO_STDIO) && !defined(STBI_NO_WRITE) +#define STBI_NO_WRITE +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// Generic API that works on all image types +// + +static char *failure_reason; + +char *stbi_failure_reason(void) +{ + return failure_reason; +} + +#if __MOJOSETUP__ && !defined(STBI_NO_FAILURE_STRINGS) +static int e(char *str) +{ + failure_reason = str; + return 0; +} +#endif // __MOJOSETUP__ + +#ifdef STBI_NO_FAILURE_STRINGS + #define e(x,y) 0 +#elif defined(STBI_FAILURE_USERMSG) + #define e(x,y) e(y) +#else + #define e(x,y) e(x) +#endif + +#define epf(x,y) ((float *) (e(x,y)?NULL:NULL)) +#define epuc(x,y) ((unsigned char *) (e(x,y)?NULL:NULL)) + +void stbi_image_free(void *retval_from_stbi_load) +{ + free(retval_from_stbi_load); +} + +#define MAX_LOADERS 32 +stbi_loader *loaders[MAX_LOADERS]; +static int max_loaders = 0; + +int stbi_register_loader(stbi_loader *loader) +{ + int i; + for (i=0; i < MAX_LOADERS; ++i) { + // already present? + if (loaders[i] == loader) + return 1; + // end of the list? + if (loaders[i] == NULL) { + loaders[i] = loader; + max_loaders = i+1; + return 1; + } + } + // no room for it + return 0; +} + +#ifndef STBI_NO_HDR +static float *ldr_to_hdr(stbi_uc *data, int x, int y, int comp); +static stbi_uc *hdr_to_ldr(float *data, int x, int y, int comp); +#endif + +#ifndef STBI_NO_STDIO +unsigned char *stbi_load(char *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = fopen(filename, "rb"); + unsigned char *result; + if (!f) return epuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +unsigned char *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + int i; + + #ifndef STBI_NO_JPEG // __MOJOSETUP__ + if (stbi_jpeg_test_file(f)) + return stbi_jpeg_load_from_file(f,x,y,comp,req_comp); + #endif // __MOJOSETUP__ + + #ifndef STBI_NO_PNG // __MOJOSETUP__ + if (stbi_png_test_file(f)) + return stbi_png_load_from_file(f,x,y,comp,req_comp); + #endif // __MOJOSETUP__ + + #ifndef STBI_NO_BMP // __MOJOSETUP__ + if (stbi_bmp_test_file(f)) + return stbi_bmp_load_from_file(f,x,y,comp,req_comp); + #endif // __MOJOSETUP__ + + #ifndef STBI_NO_PSD // __MOJOSETUP__ + if (stbi_psd_test_file(f)) + return stbi_psd_load_from_file(f,x,y,comp,req_comp); + #endif // __MOJOSETUP__ + + #ifndef STBI_NO_HDR + if (stbi_hdr_test_file(f)) { + float *hdr = stbi_hdr_load_from_file(f, x,y,comp,req_comp); + return hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); + } + #endif + + for (i=0; i < max_loaders; ++i) + if (loaders[i]->test_file(f)) + return loaders[i]->load_from_file(f,x,y,comp,req_comp); + + #ifndef STBI_NO_TGA // __MOJOSETUP__ + // test tga last because it's a crappy test! + if (stbi_tga_test_file(f)) + return stbi_tga_load_from_file(f,x,y,comp,req_comp); + #endif // __MOJOSETUP__ + + return epuc("unknown image type", "Image not of any known type, or corrupt"); +} +#endif + +unsigned char *stbi_load_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + int i; + + #ifndef STBI_NO_JPEG // __MOJOSETUP__ + if (stbi_jpeg_test_memory(buffer,len)) + return stbi_jpeg_load_from_memory(buffer,len,x,y,comp,req_comp); + #endif // __MOJOSETUP__ + + #ifndef STBI_NO_PNG // __MOJOSETUP__ + if (stbi_png_test_memory(buffer,len)) + return stbi_png_load_from_memory(buffer,len,x,y,comp,req_comp); + #endif // __MOJOSETUP__ + + #ifndef STBI_NO_BMP // __MOJOSETUP__ + if (stbi_bmp_test_memory(buffer,len)) + return stbi_bmp_load_from_memory(buffer,len,x,y,comp,req_comp); + #endif // __MOJOSETUP__ + + #ifndef STBI_NO_PSD // __MOJOSETUP__ + if (stbi_psd_test_memory(buffer,len)) + return stbi_psd_load_from_memory(buffer,len,x,y,comp,req_comp); + #endif // __MOJOSETUP__ + + #ifndef STBI_NO_HDR + if (stbi_hdr_test_memory(buffer, len)) { + float *hdr = stbi_hdr_load_from_memory(buffer, len,x,y,comp,req_comp); + return hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); + } + #endif + + for (i=0; i < max_loaders; ++i) + if (loaders[i]->test_memory(buffer,len)) + return loaders[i]->load_from_memory(buffer,len,x,y,comp,req_comp); + + #ifndef STBI_NO_TGA // __MOJOSETUP__ + // test tga last because it's a crappy test! + if (stbi_tga_test_memory(buffer,len)) + return stbi_tga_load_from_memory(buffer,len,x,y,comp,req_comp); + #endif // __MOJOSETUP__ + + return epuc("unknown image type", "Image not of any known type, or corrupt"); +} + +#ifndef STBI_NO_HDR + +#ifndef STBI_NO_STDIO +float *stbi_loadf(char *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = fopen(filename, "rb"); + float *result; + if (!f) return epf("can't fopen", "Unable to open file"); + result = stbi_loadf_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *data; + #ifndef STBI_NO_HDR + if (stbi_hdr_test_file(f)) + return stbi_hdr_load_from_file(f,x,y,comp,req_comp); + #endif + data = stbi_load_from_file(f, x, y, comp, req_comp); + if (data) + return ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); + return epf("unknown image type", "Image not of any known type, or corrupt"); +} +#endif + +float *stbi_loadf_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi_uc *data; + #ifndef STBI_NO_HDR + if (stbi_hdr_test_memory(buffer, len)) + return stbi_hdr_load_from_memory(buffer, len,x,y,comp,req_comp); + #endif + data = stbi_load_from_memory(buffer, len, x, y, comp, req_comp); + if (data) + return ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); + return epf("unknown image type", "Image not of any known type, or corrupt"); +} +#endif + +// these is-hdr-or-not is defined independent of whether STBI_NO_HDR is +// defined, for API simplicity; if STBI_NO_HDR is defined, it always +// reports false! + +extern int stbi_is_hdr_from_memory(stbi_uc *buffer, int len) +{ + #ifndef STBI_NO_HDR + return stbi_hdr_test_memory(buffer, len); + #else + return 0; + #endif +} + +#ifndef STBI_NO_STDIO +extern int stbi_is_hdr (char *filename) +{ + FILE *f = fopen(filename, "rb"); + int result=0; + if (f) { + result = stbi_is_hdr_from_file(f); + fclose(f); + } + return result; +} + +extern int stbi_is_hdr_from_file(FILE *f) +{ + #ifndef STBI_NO_HDR + return stbi_hdr_test_file(f); + #else + return 0; + #endif +} + +#endif + +// @TODO: get image dimensions & components without fully decoding +#ifndef STBI_NO_STDIO +extern int stbi_info (char *filename, int *x, int *y, int *comp); +extern int stbi_info_from_file (FILE *f, int *x, int *y, int *comp); +#endif +extern int stbi_info_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp); + +#ifndef STBI_NO_HDR +static float h2l_gamma_i=1.0f/2.2f, h2l_scale_i=1.0f; +static float l2h_gamma=2.2f, l2h_scale=1.0f; + +void stbi_hdr_to_ldr_gamma(float gamma) { h2l_gamma_i = 1/gamma; } +void stbi_hdr_to_ldr_scale(float scale) { h2l_scale_i = 1/scale; } + +void stbi_ldr_to_hdr_gamma(float gamma) { l2h_gamma = gamma; } +void stbi_ldr_to_hdr_scale(float scale) { l2h_scale = scale; } +#endif + + +////////////////////////////////////////////////////////////////////////////// +// +// Common code used by all image loaders +// + +// image width, height, # components +static uint32 img_x, img_y; +static int img_n, img_out_n; + +#if __MOJOSETUP__ // moved here from elsewhere for #ifdef safety. +static uint8 *idata, *expanded, *out; +static uint32 code_buffer; // jpeg entropy-coded buffer +#endif + +enum +{ + SCAN_load=0, + SCAN_type, + SCAN_header, +}; + +// An API for reading either from memory or file. +#ifndef STBI_NO_STDIO +static FILE *img_file; +#endif +static uint8 *img_buffer, *img_buffer_end; + +#ifndef STBI_NO_STDIO +static void start_file(FILE *f) +{ + img_file = f; +} +#endif + +static void start_mem(uint8 *buffer, int len) +{ +#ifndef STBI_NO_STDIO + img_file = NULL; +#endif + img_buffer = buffer; + img_buffer_end = buffer+len; +} + +static int get8(void) +{ +#ifndef STBI_NO_STDIO + if (img_file) { + int c = fgetc(img_file); + return c == EOF ? 0 : c; + } +#endif + if (img_buffer < img_buffer_end) + return *img_buffer++; + return 0; +} + +static int at_eof(void) +{ +#ifndef STBI_NO_STDIO + if (img_file) + return feof(img_file); +#endif + return img_buffer >= img_buffer_end; +} + +static uint8 get8u(void) +{ + return (uint8) get8(); +} + +static void skip(int n) +{ +#ifndef STBI_NO_STDIO + if (img_file) + fseek(img_file, n, SEEK_CUR); + else +#endif + img_buffer += n; +} + +static int get16(void) +{ + int z = get8(); + return (z << 8) + get8(); +} + +static uint32 get32(void) +{ + uint32 z = get16(); + return (z << 16) + get16(); +} + +static int get16le(void) +{ + int z = get8(); + return z + (get8() << 8); +} + +static uint32 get32le(void) +{ + uint32 z = get16le(); + return z + (get16le() << 16); +} + +static void getn(stbi_uc *buffer, int n) +{ +#ifndef STBI_NO_STDIO + if (img_file) { + fread(buffer, 1, n, img_file); + return; + } +#endif + memcpy(buffer, img_buffer, n); + img_buffer += n; +} + +////////////////////////////////////////////////////////////////////////////// +// +// generic converter from built-in img_n to req_comp +// individual types do this automatically as much as possible (e.g. jpeg +// does all cases internally since it needs to colorspace convert anyway, +// and it never has alpha, so very few cases ). png can automatically +// interleave an alpha=255 channel, but falls back to this for other cases +// +// assume data buffer is malloced, so malloc a new one and free that one +// only failure mode is malloc failing + +static uint8 compute_y(int r, int g, int b) +{ + return (uint8) (((r*77) + (g*150) + (29*b)) >> 8); +} + +static unsigned char *convert_format(unsigned char *data, int img_n, int req_comp) +{ +#if __MOJOSETUP__ + //uint i,j; + uint32 i,j; +#endif + unsigned char *good; + + if (req_comp == img_n) return data; + assert(req_comp >= 1 && req_comp <= 4); + + good = (unsigned char *) malloc(req_comp * img_x * img_y); + if (good == NULL) { + free(data); + return epuc("outofmem", "Out of memory"); + } + + for (j=0; j < img_y; ++j) { + unsigned char *src = data + j * img_x * img_n ; + unsigned char *dest = good + j * img_x * req_comp; + + #define COMBO(a,b) ((a)*8+(b)) + #define CASE(a,b) case COMBO(a,b): for(i=0; i < img_x; ++i, src += a, dest += b) + + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch(COMBO(img_n, req_comp)) { + CASE(1,2) dest[0]=src[0], dest[1]=255; break; + CASE(1,3) dest[0]=dest[1]=dest[2]=src[0]; break; + CASE(1,4) dest[0]=dest[1]=dest[2]=src[0], dest[3]=255; break; + CASE(2,1) dest[0]=src[0]; break; + CASE(2,3) dest[0]=dest[1]=dest[2]=src[0]; break; + CASE(2,4) dest[0]=dest[1]=dest[2]=src[0], dest[3]=src[1]; break; + CASE(3,4) dest[0]=src[0],dest[1]=src[1],dest[2]=src[2],dest[3]=255; break; + CASE(3,1) dest[0]=compute_y(src[0],src[1],src[2]); break; + CASE(3,2) dest[0]=compute_y(src[0],src[1],src[2]), dest[1] = 255; break; + CASE(4,1) dest[0]=compute_y(src[0],src[1],src[2]); break; + CASE(4,2) dest[0]=compute_y(src[0],src[1],src[2]), dest[1] = src[3]; break; + CASE(4,3) dest[0]=src[0],dest[1]=src[1],dest[2]=src[2]; break; + default: assert(0); + } + #undef CASE + } + + free(data); + img_out_n = req_comp; + return good; +} + +#ifndef STBI_NO_HDR +static float *ldr_to_hdr(stbi_uc *data, int x, int y, int comp) +{ + int i,k,n; + float *output = (float *) malloc(x * y * comp * sizeof(float)); + if (output == NULL) { free(data); return epf("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + output[i*comp + k] = (float) pow(data[i*comp+k]/255.0f, l2h_gamma) * l2h_scale; + } + if (k < comp) output[i*comp + k] = data[i*comp+k]/255.0f; + } + free(data); + return output; +} + +#define float2int(x) ((int) (x)) +static stbi_uc *hdr_to_ldr(float *data, int x, int y, int comp) +{ + int i,k,n; + stbi_uc *output = (stbi_uc *) malloc(x * y * comp); + if (output == NULL) { free(data); return epuc("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + float z = (float) pow(data[i*comp+k]*h2l_scale_i, h2l_gamma_i) * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = float2int(z); + } + if (k < comp) { + float z = data[i*comp+k] * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = float2int(z); + } + } + free(data); + return output; +} +#endif + + +#ifndef STBI_NO_JPEG // __MOJOSETUP__ + +////////////////////////////////////////////////////////////////////////////// +// +// "baseline" JPEG/JFIF decoder (not actually fully baseline implementation) +// +// simple implementation +// - channel subsampling of at most 2 in each dimension +// - doesn't support delayed output of y-dimension +// - simple interface (only one output format: 8-bit interleaved RGB) +// - doesn't try to recover corrupt jpegs +// - doesn't allow partial loading, loading multiple at once +// - still fast on x86 (copying globals into locals doesn't help x86) +// - allocates lots of intermediate memory (full size of all components) +// - non-interleaved case requires this anyway +// - allows good upsampling (see next) +// high-quality +// - upsampled channels are bilinearly interpolated, even across blocks +// - quality integer IDCT derived from IJG's 'slow' +// performance +// - fast huffman; reasonable integer IDCT +// - uses a lot of intermediate memory, could cache poorly +// - load http://nothings.org/remote/anemones.jpg 3 times on 2.8Ghz P4 +// stb_jpeg: 1.34 seconds (MSVC6, default release build) +// stb_jpeg: 1.06 seconds (MSVC6, processor = Pentium Pro) +// IJL11.dll: 1.08 seconds (compiled by intel) +// IJG 1998: 0.98 seconds (MSVC6, makefile provided by IJG) +// IJG 1998: 0.95 seconds (MSVC6, makefile + proc=PPro) + +int stbi_jpeg_dc_only; + +// huffman decoding acceleration +#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache + +typedef struct +{ + uint8 fast[1 << FAST_BITS]; + // weirdly, repacking this into AoS is a 10% speed loss, instead of a win + uint16 code[256]; + uint8 values[256]; + uint8 size[257]; + unsigned int maxcode[18]; + int delta[17]; // old 'firstsymbol' - old 'firstcode' +} huffman; + +static huffman huff_dc[4]; // baseline is 2 tables, extended is 4 +static huffman huff_ac[4]; +static uint8 dequant[4][64]; + +static int build_huffman(huffman *h, int *count) +{ + int i,j,k=0,code; + // build size list for each symbol (from JPEG spec) + for (i=0; i < 16; ++i) + for (j=0; j < count[i]; ++j) + h->size[k++] = (uint8) (i+1); + h->size[k] = 0; + + // compute actual symbols (from jpeg spec) + code = 0; + k = 0; + for(j=1; j <= 16; ++j) { + // compute delta to add to code to compute symbol id + h->delta[j] = k - code; + if (h->size[k] == j) { + while (h->size[k] == j) + h->code[k++] = (uint16) (code++); + if (code-1 >= (1 << j)) return e("bad code lengths","Corrupt JPEG"); + } + // compute largest code + 1 for this size, preshifted as needed later + h->maxcode[j] = code << (16-j); + code <<= 1; + } + h->maxcode[j] = 0xffffffff; + + // build non-spec acceleration table; 255 is flag for not-accelerated + memset(h->fast, 255, 1 << FAST_BITS); + for (i=0; i < k; ++i) { + int s = h->size[i]; + if (s <= FAST_BITS) { + int c = h->code[i] << (FAST_BITS-s); + int m = 1 << (FAST_BITS-s); + for (j=0; j < m; ++j) { + h->fast[c+j] = (uint8) i; + } + } + } + return 1; +} + +// sizes for components, interleaved MCUs +static int img_h_max, img_v_max; +static int img_mcu_x, img_mcu_y; +static int img_mcu_w, img_mcu_h; + +// definition of jpeg image component +static struct +{ + int id; + int h,v; + int tq; + int hd,ha; + int dc_pred; + + int x,y,w2,h2; + uint8 *data; +} img_comp[4]; + +#if !__MOJOSETUP__ // moved elsewhere for #ifdef safety. +static unsigned long code_buffer; // jpeg entropy-coded buffer +#endif +static int code_bits; // number of valid bits +static unsigned char marker; // marker seen while filling entropy buffer +static int nomore; // flag if we saw a marker so must stop + +static void grow_buffer_unsafe(void) +{ + do { + int b = nomore ? 0 : get8(); + if (b == 0xff) { + int c = get8(); + if (c != 0) { + marker = (unsigned char) c; + nomore = 1; + return; + } + } + code_buffer = (code_buffer << 8) | b; + code_bits += 8; + } while (code_bits <= 24); +} + +// (1 << n) - 1 +static unsigned long bmask[17]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535}; + +// decode a jpeg huffman value from the bitstream +__forceinline static int decode(huffman *h) +{ + unsigned int temp; + int c,k; + + if (code_bits < 16) grow_buffer_unsafe(); + + // look at the top FAST_BITS and determine what symbol ID it is, + // if the code is <= FAST_BITS + c = (code_buffer >> (code_bits - FAST_BITS)) & ((1 << FAST_BITS)-1); + k = h->fast[c]; + if (k < 255) { + if (h->size[k] > code_bits) + return -1; + code_bits -= h->size[k]; + return h->values[k]; + } + + // naive test is to shift the code_buffer down so k bits are + // valid, then test against maxcode. To speed this up, we've + // preshifted maxcode left so that it has (16-k) 0s at the + // end; in other words, regardless of the number of bits, it + // wants to be compared against something shifted to have 16; + // that way we don't need to shift inside the loop. + if (code_bits < 16) + temp = (code_buffer << (16 - code_bits)) & 0xffff; + else + temp = (code_buffer >> (code_bits - 16)) & 0xffff; + for (k=FAST_BITS+1 ; ; ++k) + if (temp < h->maxcode[k]) + break; + if (k == 17) { + // error! code not found + code_bits -= 16; + return -1; + } + + if (k > code_bits) + return -1; + + // convert the huffman code to the symbol id + c = ((code_buffer >> (code_bits - k)) & bmask[k]) + h->delta[k]; + assert((((code_buffer) >> (code_bits - h->size[c])) & bmask[h->size[c]]) == h->code[c]); + + // convert the id to a symbol + code_bits -= k; + return h->values[c]; +} + +// combined JPEG 'receive' and JPEG 'extend', since baseline +// always extends everything it receives. +__forceinline static int extend_receive(int n) +{ + unsigned int m = 1 << (n-1); + unsigned int k; + if (code_bits < n) grow_buffer_unsafe(); + k = (code_buffer >> (code_bits - n)) & bmask[n]; + code_bits -= n; + // the following test is probably a random branch that won't + // predict well. I tried to table accelerate it but failed. + // maybe it's compiling as a conditional move? + if (k < m) + return (-1 << n) + k + 1; + else + return k; +} + +// given a value that's at position X in the zigzag stream, +// where does it appear in the 8x8 matrix coded as row-major? +static uint8 dezigzag[64+15] = +{ + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63, + // let corrupt input sample past end + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63 +}; + +// decode one 64-entry block-- +static int decode_block(short data[64], huffman *hdc, huffman *hac, int b) +{ + int diff,dc,k; + int t = decode(hdc); + if (t < 0) return e("bad huffman code","Corrupt JPEG"); + + // 0 all the ac values now so we can do it 32-bits at a time + memset(data,0,64*sizeof(data[0])); + + diff = t ? extend_receive(t) : 0; + dc = img_comp[b].dc_pred + diff; + img_comp[b].dc_pred = dc; + data[0] = (short) dc; + + // decode AC components, see JPEG spec + k = 1; + do { + int r,s; + int rs = decode(hac); + if (rs < 0) return e("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (rs != 0xf0) break; // end block + k += 16; + } else { + k += r; + // decode into unzigzag'd location + data[dezigzag[k++]] = (short) extend_receive(s); + } + } while (k < 64); + return 1; +} + +// take a -128..127 value and clamp it and convert to 0..255 +__forceinline static uint8 clamp(int x) +{ + x += 128; + // trick to use a single test to catch both cases + if ((unsigned int) x > 255) { + if (x < 0) return 0; + if (x > 255) return 255; + } + return (uint8) x; +} + +#define f2f(x) (int) (((x) * 4096 + 0.5)) +#define fsh(x) ((x) << 12) + +// derived from jidctint -- DCT_ISLOW +#define IDCT_1D(s0,s1,s2,s3,s4,s5,s6,s7) \ + int t0,t1,t2,t3,p1,p2,p3,p4,p5,x0,x1,x2,x3; \ + p2 = s2; \ + p3 = s6; \ + p1 = (p2+p3) * f2f(0.5411961f); \ + t2 = p1 + p3*f2f(-1.847759065f); \ + t3 = p1 + p2*f2f( 0.765366865f); \ + p2 = s0; \ + p3 = s4; \ + t0 = fsh(p2+p3); \ + t1 = fsh(p2-p3); \ + x0 = t0+t3; \ + x3 = t0-t3; \ + x1 = t1+t2; \ + x2 = t1-t2; \ + t0 = s7; \ + t1 = s5; \ + t2 = s3; \ + t3 = s1; \ + p3 = t0+t2; \ + p4 = t1+t3; \ + p1 = t0+t3; \ + p2 = t1+t2; \ + p5 = (p3+p4)*f2f( 1.175875602f); \ + t0 = t0*f2f( 0.298631336f); \ + t1 = t1*f2f( 2.053119869f); \ + t2 = t2*f2f( 3.072711026f); \ + t3 = t3*f2f( 1.501321110f); \ + p1 = p5 + p1*f2f(-0.899976223f); \ + p2 = p5 + p2*f2f(-2.562915447f); \ + p3 = p3*f2f(-1.961570560f); \ + p4 = p4*f2f(-0.390180644f); \ + t3 += p1+p4; \ + t2 += p2+p3; \ + t1 += p2+p4; \ + t0 += p1+p3; + +// .344 seconds on 3*anemones.jpg +static void idct_block(uint8 *out, int out_stride, short data[64], uint8 *dequantize) +{ + int i,val[64],*v=val; + uint8 *o,*dq = dequantize; + short *d = data; + + if (stbi_jpeg_dc_only) { + // ok, I don't really know why this is right, but it seems to be: + int z = 128 + ((d[0] * dq[0]) >> 3); + for (i=0; i < 8; ++i) { + out[0] = out[1] = out[2] = out[3] = out[4] = out[5] = out[6] = out[7] = z; + out += out_stride; + } + return; + } + + // columns + for (i=0; i < 8; ++i,++d,++dq, ++v) { + // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing + if (d[ 8]==0 && d[16]==0 && d[24]==0 && d[32]==0 + && d[40]==0 && d[48]==0 && d[56]==0) { + // no shortcut 0 seconds + // (1|2|3|4|5|6|7)==0 0 seconds + // all separate -0.047 seconds + // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds + int dcterm = d[0] * dq[0] << 2; + v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm; + } else { + IDCT_1D(d[ 0]*dq[ 0],d[ 8]*dq[ 8],d[16]*dq[16],d[24]*dq[24], + d[32]*dq[32],d[40]*dq[40],d[48]*dq[48],d[56]*dq[56]) + // constants scaled things up by 1<<12; let's bring them back + // down, but keep 2 extra bits of precision + x0 += 512; x1 += 512; x2 += 512; x3 += 512; + v[ 0] = (x0+t3) >> 10; + v[56] = (x0-t3) >> 10; + v[ 8] = (x1+t2) >> 10; + v[48] = (x1-t2) >> 10; + v[16] = (x2+t1) >> 10; + v[40] = (x2-t1) >> 10; + v[24] = (x3+t0) >> 10; + v[32] = (x3-t0) >> 10; + } + } + + for (i=0, v=val, o=out; i < 8; ++i,v+=8,o+=out_stride) { + // no fast case since the first 1D IDCT spread components out + IDCT_1D(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7]) + // constants scaled things up by 1<<12, plus we had 1<<2 from first + // loop, plus horizontal and vertical each scale by sqrt(8) so together + // we've got an extra 1<<3, so 1<<17 total we need to remove. + x0 += 65536; x1 += 65536; x2 += 65536; x3 += 65536; + o[0] = clamp((x0+t3) >> 17); + o[7] = clamp((x0-t3) >> 17); + o[1] = clamp((x1+t2) >> 17); + o[6] = clamp((x1-t2) >> 17); + o[2] = clamp((x2+t1) >> 17); + o[5] = clamp((x2-t1) >> 17); + o[3] = clamp((x3+t0) >> 17); + o[4] = clamp((x3-t0) >> 17); + } +} + +#define MARKER_none 0xff +// if there's a pending marker from the entropy stream, return that +// otherwise, fetch from the stream and get a marker. if there's no +// marker, return 0xff, which is never a valid marker value +static uint8 get_marker(void) +{ + uint8 x; + if (marker != MARKER_none) { x = marker; marker = MARKER_none; return x; } + x = get8u(); + if (x != 0xff) return MARKER_none; + while (x == 0xff) + x = get8u(); + return x; +} + +// in each scan, we'll have scan_n components, and the order +// of the components is specified by order[] +static int scan_n, order[4]; +static int restart_interval, todo; +#define RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7) + +// after a restart interval, reset the entropy decoder and +// the dc prediction +static void reset(void) +{ + code_bits = 0; + code_buffer = 0; + nomore = 0; + img_comp[0].dc_pred = img_comp[1].dc_pred = img_comp[2].dc_pred = 0; + marker = MARKER_none; + todo = restart_interval ? restart_interval : 0x7fffffff; + // no more than 1<<31 MCUs if no restart_interal? that's plenty safe, + // since we don't even allow 1<<30 pixels +} + +static int parse_entropy_coded_data(void) +{ + reset(); + if (scan_n == 1) { + int i,j; + short data[64]; + int n = order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (img_comp[n].x+7) >> 3; + int h = (img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + if (!decode_block(data, huff_dc+img_comp[n].hd, huff_ac+img_comp[n].ha, n)) return 0; + idct_block(img_comp[n].data+img_comp[n].w2*j*8+i*8, img_comp[n].w2, data, dequant[img_comp[n].tq]); + // every data block is an MCU, so countdown the restart interval + if (--todo <= 0) { + if (code_bits < 24) grow_buffer_unsafe(); + // if it's NOT a restart, then just bail, so we get corrupt data + // rather than no data + if (!RESTART(marker)) return 1; + reset(); + } + } + } + } else { // interleaved! + int i,j,k,x,y; + short data[64]; + for (j=0; j < img_mcu_y; ++j) { + for (i=0; i < img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < scan_n; ++k) { + int n = order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < img_comp[n].v; ++y) { + for (x=0; x < img_comp[n].h; ++x) { + int x2 = (i*img_comp[n].h + x)*8; + int y2 = (j*img_comp[n].v + y)*8; + if (!decode_block(data, huff_dc+img_comp[n].hd, huff_ac+img_comp[n].ha, n)) return 0; + idct_block(img_comp[n].data+img_comp[n].w2*y2+x2, img_comp[n].w2, data, dequant[img_comp[n].tq]); + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--todo <= 0) { + if (code_bits < 24) grow_buffer_unsafe(); + // if it's NOT a restart, then just bail, so we get corrupt data + // rather than no data + if (!RESTART(marker)) return 1; + reset(); + } + } + } + } + return 1; +} + +static int process_marker(int m) +{ + int L; + switch (m) { + case MARKER_none: // no marker found + return e("expected marker","Corrupt JPEG"); + + case 0xC2: // SOF - progressive + return e("progressive jpeg","JPEG format not supported (progressive)"); + + case 0xDD: // DRI - specify restart interval + if (get16() != 4) return e("bad DRI len","Corrupt JPEG"); + restart_interval = get16(); + return 1; + + case 0xDB: // DQT - define quantization table + L = get16()-2; + while (L > 0) { + int z = get8(); + int p = z >> 4; + int t = z & 15,i; + if (p != 0) return e("bad DQT type","Corrupt JPEG"); + if (t > 3) return e("bad DQT table","Corrupt JPEG"); + for (i=0; i < 64; ++i) + dequant[t][dezigzag[i]] = get8u(); + L -= 65; + } + return L==0; + + case 0xC4: // DHT - define huffman table + L = get16()-2; + while (L > 0) { + uint8 *v; + int sizes[16],i,m=0; + int z = get8(); + int tc = z >> 4; + int th = z & 15; + if (tc > 1 || th > 3) return e("bad DHT header","Corrupt JPEG"); + for (i=0; i < 16; ++i) { + sizes[i] = get8(); + m += sizes[i]; + } + L -= 17; + if (tc == 0) { + if (!build_huffman(huff_dc+th, sizes)) return 0; + v = huff_dc[th].values; + } else { + if (!build_huffman(huff_ac+th, sizes)) return 0; + v = huff_ac[th].values; + } + for (i=0; i < m; ++i) + v[i] = get8u(); + L -= m; + } + return L==0; + } + // check for comment block or APP blocks + if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) { + skip(get16()-2); + return 1; + } + return 0; +} + +// after we see SOS +static int process_scan_header(void) +{ + int i; + int Ls = get16(); + scan_n = get8(); + if (scan_n < 1 || scan_n > 4 || scan_n > (int) img_n) return e("bad SOS component count","Corrupt JPEG"); + if (Ls != 6+2*scan_n) return e("bad SOS len","Corrupt JPEG"); + for (i=0; i < scan_n; ++i) { + int id = get8(), which; + int z = get8(); + for (which = 0; which < img_n; ++which) + if (img_comp[which].id == id) + break; + if (which == img_n) return 0; + img_comp[which].hd = z >> 4; if (img_comp[which].hd > 3) return e("bad DC huff","Corrupt JPEG"); + img_comp[which].ha = z & 15; if (img_comp[which].ha > 3) return e("bad AC huff","Corrupt JPEG"); + order[i] = which; + } + if (get8() != 0) return e("bad SOS","Corrupt JPEG"); + get8(); // should be 63, but might be 0 + if (get8() != 0) return e("bad SOS","Corrupt JPEG"); + + return 1; +} + +static int process_frame_header(int scan) +{ + int Lf,p,i,z, h_max=1,v_max=1; + Lf = get16(); if (Lf < 11) return e("bad SOF len","Corrupt JPEG"); // JPEG + p = get8(); if (p != 8) return e("only 8-bit","JPEG format not supported: 8-bit only"); // JPEG baseline + img_y = get16(); if (img_y == 0) return e("no header height", "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG + img_x = get16(); if (img_x == 0) return e("0 width","Corrupt JPEG"); // JPEG requires + img_n = get8(); + if (img_n != 3 && img_n != 1) return e("bad component count","Corrupt JPEG"); // JFIF requires + + if (Lf != 8+3*img_n) return e("bad SOF len","Corrupt JPEG"); + + for (i=0; i < img_n; ++i) { + img_comp[i].id = get8(); + if (img_comp[i].id != i+1) // JFIF requires + if (img_comp[i].id != i) // jpegtran outputs non-JFIF-compliant files! + return e("bad component ID","Corrupt JPEG"); + z = get8(); + img_comp[i].h = (z >> 4); if (!img_comp[i].h || img_comp[i].h > 4) return e("bad H","Corrupt JPEG"); + img_comp[i].v = z & 15; if (!img_comp[i].v || img_comp[i].v > 4) return e("bad V","Corrupt JPEG"); + img_comp[i].tq = get8(); if (img_comp[i].tq > 3) return e("bad TQ","Corrupt JPEG"); + } + + if (scan != SCAN_load) return 1; + + if ((1 << 30) / img_x / img_n < img_y) return e("too large", "Image too large to decode"); + + for (i=0; i < img_n; ++i) { + if (img_comp[i].h > h_max) h_max = img_comp[i].h; + if (img_comp[i].v > v_max) v_max = img_comp[i].v; + } + + // compute interleaved mcu info + img_h_max = h_max; + img_v_max = v_max; + img_mcu_w = h_max * 8; + img_mcu_h = v_max * 8; + img_mcu_x = (img_x + img_mcu_w-1) / img_mcu_w; + img_mcu_y = (img_y + img_mcu_h-1) / img_mcu_h; + + for (i=0; i < img_n; ++i) { + // number of effective pixels (e.g. for non-interleaved MCU) + img_comp[i].x = (img_x * img_comp[i].h + h_max-1) / h_max; + img_comp[i].y = (img_y * img_comp[i].v + v_max-1) / v_max; + // to simplify generation, we'll allocate enough memory to decode + // the bogus oversized data from using interleaved MCUs and their + // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't + // discard the extra data until colorspace conversion + img_comp[i].w2 = img_mcu_x * img_comp[i].h * 8; + img_comp[i].h2 = img_mcu_y * img_comp[i].v * 8; + img_comp[i].data = (uint8 *) malloc(img_comp[i].w2 * img_comp[i].h2); + if (img_comp[i].data == NULL) { + for(--i; i >= 0; --i) + free(img_comp[i].data); + return e("outofmem", "Out of memory"); + } + } + + return 1; +} + +// use comparisons since in some cases we handle more than one case (e.g. SOF) +#define DNL(x) ((x) == 0xdc) +#define SOI(x) ((x) == 0xd8) +#define EOI(x) ((x) == 0xd9) +#define SOF(x) ((x) == 0xc0 || (x) == 0xc1) +#define SOS(x) ((x) == 0xda) + +static int decode_jpeg_header(int scan) +{ + int m; + marker = MARKER_none; // initialize cached marker to empty + m = get_marker(); + if (!SOI(m)) return e("no SOI","Corrupt JPEG"); + if (scan == SCAN_type) return 1; + m = get_marker(); + while (!SOF(m)) { + if (!process_marker(m)) return 0; + m = get_marker(); + while (m == MARKER_none) { + // some files have extra padding after their blocks, so ok, we'll scan + if (at_eof()) return e("no SOF", "Corrupt JPEG"); + m = get_marker(); + } + } + if (!process_frame_header(scan)) return 0; + return 1; +} + +static int decode_jpeg_image(void) +{ + int m; + restart_interval = 0; + if (!decode_jpeg_header(SCAN_load)) return 0; + m = get_marker(); + while (!EOI(m)) { + if (SOS(m)) { + if (!process_scan_header()) return 0; + if (!parse_entropy_coded_data()) return 0; + } else { + if (!process_marker(m)) return 0; + } + m = get_marker(); + } + return 1; +} + +// static jfif-centered resampling with cross-block smoothing +// here by cross-block smoothing what I mean is that the resampling +// is bilerp and crosses blocks; I dunno what IJG means + +#define div4(x) ((uint8) ((x) >> 2)) + +static void resample_v_2(uint8 *out1, uint8 *input, int w, int h, int s) +{ + // need to generate two samples vertically for every one in input + uint8 *above; + uint8 *below; + uint8 *source; + uint8 *out2; + int i,j; + source = input; + out2 = out1+w; + for (j=0; j < h; ++j) { + above = source; + source = input + j*s; + below = source + s; if (j == h-1) below = source; + for (i=0; i < w; ++i) { + int n = source[i]*3; + out1[i] = div4(above[i] + n); + out2[i] = div4(below[i] + n); + } + out1 += w*2; + out2 += w*2; + } +} + +static void resample_h_2(uint8 *out, uint8 *input, int w, int h, int s) +{ + // need to generate two samples horizontally for every one in input + int i,j; + if (w == 1) { + for (j=0; j < h; ++j) + out[j*2+0] = out[j*2+1] = input[j*s]; + return; + } + for (j=0; j < h; ++j) { + out[0] = input[0]; + out[1] = div4(input[0]*3 + input[1]); + for (i=1; i < w-1; ++i) { + int n = input[i]*3; + out[i*2-2] = div4(input[i-1] + n); + out[i*2-1] = div4(input[i+1] + n); + } + out[w*2-2] = div4(input[w-2]*3 + input[w-1]); + out[w*2-1] = input[w-1]; + out += w*2; + input += s; + } +} + +// .172 seconds on 3*anemones.jpg +static void resample_hv_2(uint8 *out, uint8 *input, int w, int h, int s) +{ + // need to generate 2x2 samples for every one in input + int i,j; + int os = w*2; + // generate edge samples... @TODO lerp them! + for (i=0; i < w; ++i) { + out[i*2+0] = out[i*2+1] = input[i]; + out[i*2+(2*h-1)*os+0] = out[i*2+(2*h-1)*os+1] = input[i+(h-1)*w]; + } + for (j=0; j < h; ++j) { + out[j*os*2+0] = out[j*os*2+os+0] = input[j*w]; + out[j*os*2+os-1] = out[j*os*2+os+os-1] = input[j*w+i-1]; + } + // now generate interior samples; i & j point to top left of input + for (j=0; j < h-1; ++j) { + uint8 *in1 = input+j*s; + uint8 *in2 = in1 + s; + uint8 *out1 = out + (j*2+1)*os + 1; + uint8 *out2 = out1 + os; + for (i=0; i < w-1; ++i) { + int p00 = in1[0], p01=in1[1], p10=in2[0], p11=in2[1]; + int p00_3 = p00*3, p01_3 = p01*3, p10_3 = p10*3, p11_3 = p11*3; + + #define div16(x) ((uint8) ((x) >> 4)) + + out1[0] = div16(p00*9 + p01_3 + p10_3 + p11); + out1[1] = div16(p01*9 + p00_3 + p01_3 + p10); + out2[0] = div16(p10*9 + p11_3 + p00_3 + p01); + out2[1] = div16(p11*9 + p10_3 + p01_3 + p00); + out1 += 2; + out2 += 2; + ++in1; + ++in2; + } + } +} + +#define float2fixed(x) ((int) ((x) * 65536 + 0.5)) + +// 0.38 seconds on 3*anemones.jpg (0.25 with processor = Pro) +// VC6 without processor=Pro is generating multiple LEAs per multiply! +static void YCbCr_to_RGB_row(uint8 *out, uint8 *y, uint8 *pcb, uint8 *pcr, int count, int step) +{ + int i; + for (i=0; i < count; ++i) { + int y_fixed = (y[i] << 16) + 32768; // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr*float2fixed(1.40200f); + g = y_fixed - cr*float2fixed(0.71414f) - cb*float2fixed(0.34414f); + b = y_fixed + cb*float2fixed(1.77200f); + r >>= 16; + g >>= 16; + b >>= 16; + if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } + if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } + if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } + out[0] = (uint8)r; + out[1] = (uint8)g; + out[2] = (uint8)b; + if (step == 4) out[3] = 255; + out += step; + } +} + +// clean up the temporary component buffers +static void cleanup_jpeg(void) +{ + int i; + for (i=0; i < img_n; ++i) { + if (img_comp[i].data) { + free(img_comp[i].data); + img_comp[i].data = NULL; + } + } +} + +static uint8 *load_jpeg_image(int *out_x, int *out_y, int *comp, int req_comp) +{ + int i, n; + // validate req_comp + if (req_comp < 0 || req_comp > 4) return epuc("bad req_comp", "Internal error"); + + // load a jpeg image from whichever source + if (!decode_jpeg_image()) { cleanup_jpeg(); return NULL; } + + // determine actual number of components to generate + n = req_comp ? req_comp : img_n; + + // resample components to full size... memory wasteful, but this + // lets us bilerp across blocks while upsampling + for (i=0; i < img_n; ++i) { + // if we're outputting fewer than 3 components, we're grey not RGB; + // in that case, don't bother upsampling Cb or Cr + if (n < 3 && i) continue; + + // check if the component scale is less than max; if so it needs upsampling + if (img_comp[i].h != img_h_max || img_comp[i].v != img_v_max) { + int stride = img_x; + // allocate final size; make sure it's big enough for upsampling off + // the edges with upsample up to 4x4 (although we only support 2x2 + // currently) + uint8 *new_data = (uint8 *) malloc((img_x+3)*(img_y+3)); + if (new_data == NULL) { + cleanup_jpeg(); + return epuc("outofmem", "Out of memory (image too large?)"); + } + if (img_comp[i].h*2 == img_h_max && img_comp[i].v*2 == img_v_max) { + int tx = (img_x+1)>>1; + resample_hv_2(new_data, img_comp[i].data, tx,(img_y+1)>>1, img_comp[i].w2); + stride = tx*2; + } else if (img_comp[i].h == img_h_max && img_comp[i].v*2 == img_v_max) { + resample_v_2(new_data, img_comp[i].data, img_x,(img_y+1)>>1, img_comp[i].w2); + } else if (img_comp[i].h*2 == img_h_max && img_comp[i].v == img_v_max) { + int tx = (img_x+1)>>1; + resample_h_2(new_data, img_comp[i].data, tx,img_y, img_comp[i].w2); + stride = tx*2; + } else { + // @TODO resample uncommon sampling pattern with nearest neighbor + free(new_data); + cleanup_jpeg(); + return epuc("uncommon H or V", "JPEG not supported: atypical downsampling mode"); + } + img_comp[i].w2 = stride; + free(img_comp[i].data); + img_comp[i].data = new_data; + } + } + + // now convert components to output image + { + uint32 i,j; + uint8 *output = (uint8 *) malloc(n * img_x * img_y + 1); + if (n >= 3) { // output STBI_rgb_* + for (j=0; j < img_y; ++j) { + uint8 *y = img_comp[0].data + j*img_comp[0].w2; + uint8 *out = output + n * img_x * j; + if (img_n == 3) { + uint8 *cb = img_comp[1].data + j*img_comp[1].w2; + uint8 *cr = img_comp[2].data + j*img_comp[2].w2; + YCbCr_to_RGB_row(out, y, cb, cr, img_x, n); + } else { + for (i=0; i < img_x; ++i) { + out[0] = out[1] = out[2] = y[i]; + out[3] = 255; // not used if n == 3 + out += n; + } + } + } + } else { // output STBI_grey_* + for (j=0; j < img_y; ++j) { + uint8 *y = img_comp[0].data + j*img_comp[0].w2; + uint8 *out = output + n * img_x * j; + if (n == 1) + for (i=0; i < img_x; ++i) *out++ = *y++; + else + for (i=0; i < img_x; ++i) *out++ = *y++, *out++ = 255; + } + } + cleanup_jpeg(); + *out_x = img_x; + *out_y = img_y; + if (comp) *comp = img_n; // report original components, not output + return output; + } +} + +#ifndef STBI_NO_STDIO +unsigned char *stbi_jpeg_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + start_file(f); + return load_jpeg_image(x,y,comp,req_comp); +} + +unsigned char *stbi_jpeg_load(char *filename, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *data; + FILE *f = fopen(filename, "rb"); + if (!f) return NULL; + data = stbi_jpeg_load_from_file(f,x,y,comp,req_comp); + fclose(f); + return data; +} +#endif + +unsigned char *stbi_jpeg_load_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + start_mem(buffer,len); + return load_jpeg_image(x,y,comp,req_comp); +} + +#ifndef STBI_NO_STDIO +int stbi_jpeg_test_file(FILE *f) +{ + int n,r; + n = ftell(f); + start_file(f); + r = decode_jpeg_header(SCAN_type); + fseek(f,n,SEEK_SET); + return r; +} +#endif + +#endif // __MOJOSETUP__ + +int stbi_jpeg_test_memory(unsigned char *buffer, int len) +{ +#ifndef STBI_NO_JPEG // __MOJOSETUP__ + start_mem(buffer,len); + return decode_jpeg_header(SCAN_type); +#else + return 0; +#endif // __MOJOSETUP__ +} + +// @TODO: +#ifndef STBI_NO_STDIO +extern int stbi_jpeg_info (char *filename, int *x, int *y, int *comp); +extern int stbi_jpeg_info_from_file (FILE *f, int *x, int *y, int *comp); +#endif +extern int stbi_jpeg_info_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp); + + +#ifndef STBI_NO_ZLIB // __MOJOSETUP__ + +// public domain zlib decode v0.2 Sean Barrett 2006-11-18 +// simple implementation +// - all input must be provided in an upfront buffer +// - all output is written to a single output buffer (can malloc/realloc) +// performance +// - fast huffman + +// fast-way is faster to check than jpeg huffman, but slow way is slower +#define ZFAST_BITS 9 // accelerate all cases in default tables +#define ZFAST_MASK ((1 << ZFAST_BITS) - 1) + +// zlib-style huffman encoding +// (jpegs packs from left, zlib from right, so can't share code) +typedef struct +{ + uint16 fast[1 << ZFAST_BITS]; + uint16 firstcode[16]; + int maxcode[17]; + uint16 firstsymbol[16]; + uint8 size[288]; + uint16 value[288]; +} zhuffman; + +__forceinline static int bitreverse16(int n) +{ + n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); + n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); + n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); + n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); + return n; +} + +__forceinline static int bit_reverse(int v, int bits) +{ + assert(bits <= 16); + // to bit reverse n bits, reverse 16 and shift + // e.g. 11 bits, bit reverse and shift away 5 + return bitreverse16(v) >> (16-bits); +} + +static int zbuild_huffman(zhuffman *z, uint8 *sizelist, int num) +{ + int i,k=0; + int code, next_code[16], sizes[17]; + + // DEFLATE spec for generating codes + memset(sizes, 0, sizeof(sizes)); + memset(z->fast, 255, sizeof(z->fast)); + for (i=0; i < num; ++i) + ++sizes[sizelist[i]]; + sizes[0] = 0; + for (i=1; i < 16; ++i) + assert(sizes[i] <= (1 << i)); + code = 0; + for (i=1; i < 16; ++i) { + next_code[i] = code; + z->firstcode[i] = (uint16) code; + z->firstsymbol[i] = (uint16) k; + code = (code + sizes[i]); + if (sizes[i]) + if (code-1 >= (1 << i)) return e("bad codelengths","Corrupt JPEG"); + z->maxcode[i] = code << (16-i); // preshift for inner loop + code <<= 1; + k += sizes[i]; + } + z->maxcode[16] = 0x10000; // sentinel + for (i=0; i < num; ++i) { + int s = sizelist[i]; + if (s) { + int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; + z->size[c] = (uint8)s; + z->value[c] = (uint16)i; + if (s <= ZFAST_BITS) { + int k = bit_reverse(next_code[s],s); + while (k < (1 << ZFAST_BITS)) { + z->fast[k] = (uint16) c; + k += (1 << s); + } + } + ++next_code[s]; + } + } + return 1; +} + +// zlib-from-memory implementation for PNG reading +// because PNG allows splitting the zlib stream arbitrarily, +// and it's annoying structurally to have PNG call ZLIB call PNG, +// we require PNG read all the IDATs and combine them into a single +// memory buffer + +static uint8 *zbuffer, *zbuffer_end; + +__forceinline static int zget8(void) +{ + if (zbuffer >= zbuffer_end) return 0; + return *zbuffer++; +} + +//static unsigned long code_buffer; +static int num_bits; + +static void fill_bits(void) +{ + do { + assert(code_buffer < (1U << num_bits)); + code_buffer |= zget8() << num_bits; + num_bits += 8; + } while (num_bits <= 24); +} + +__forceinline static unsigned int zreceive(int n) +{ + unsigned int k; + if (num_bits < n) fill_bits(); + k = code_buffer & ((1 << n) - 1); + code_buffer >>= n; + num_bits -= n; + return k; +} + +__forceinline static int zhuffman_decode(zhuffman *z) +{ + int b,s,k; + if (num_bits < 16) fill_bits(); + b = z->fast[code_buffer & ZFAST_MASK]; + if (b < 0xffff) { + s = z->size[b]; + code_buffer >>= s; + num_bits -= s; + return z->value[b]; + } + + // not resolved by fast table, so compute it the slow way + // use jpeg approach, which requires MSbits at top + k = bit_reverse(code_buffer, 16); + for (s=ZFAST_BITS+1; ; ++s) + if (k < z->maxcode[s]) + break; + if (s == 16) return -1; // invalid code! + // code size is s, so: + b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s]; + assert(z->size[b] == s); + code_buffer >>= s; + num_bits -= s; + return z->value[b]; +} + +static char *zout; +static char *zout_start; +static char *zout_end; +static int z_expandable; + +static int expand(int n) // need to make room for n bytes +{ + char *q; + int cur, limit; + if (!z_expandable) return e("output buffer limit","Corrupt PNG"); + cur = (int) (zout - zout_start); + limit = (int) (zout_end - zout_start); + while (cur + n > limit) + limit *= 2; + q = (char *) realloc(zout_start, limit); + if (q == NULL) return e("outofmem", "Out of memory"); + zout_start = q; + zout = q + cur; + zout_end = q + limit; + return 1; +} + +static zhuffman z_length, z_distance; + +static int length_base[31] = { + 3,4,5,6,7,8,9,10,11,13, + 15,17,19,23,27,31,35,43,51,59, + 67,83,99,115,131,163,195,227,258,0,0 }; + +static int length_extra[31]= +{ 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 }; + +static int dist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, +257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0}; + +static int dist_extra[32] = +{ 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; + +static int parse_huffman_block(void) +{ + for(;;) { + int z = zhuffman_decode(&z_length); + if (z < 256) { + if (z < 0) return e("bad huffman code","Corrupt PNG"); // error in huffman codes + if (zout >= zout_end) if (!expand(1)) return 0; + *zout++ = (char) z; + } else { + uint8 *p; + int len,dist; + if (z == 256) return 1; + z -= 257; + len = length_base[z]; + if (length_extra[z]) len += zreceive(length_extra[z]); + z = zhuffman_decode(&z_distance); + if (z < 0) return e("bad huffman code","Corrupt PNG"); + dist = dist_base[z]; + if (dist_extra[z]) dist += zreceive(dist_extra[z]); + if (zout - zout_start < dist) return e("bad dist","Corrupt PNG"); + if (zout + len > zout_end) if (!expand(len)) return 0; + p = (uint8 *) (zout - dist); + while (len--) + *zout++ = *p++; + } + } +} + +static int compute_huffman_codes(void) +{ + static uint8 length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; + static zhuffman z_codelength; // static just to save stack space + uint8 lencodes[286+32+137];//padding for maximum single op + uint8 codelength_sizes[19]; + int i,n; + + int hlit = zreceive(5) + 257; + int hdist = zreceive(5) + 1; + int hclen = zreceive(4) + 4; + + memset(codelength_sizes, 0, sizeof(codelength_sizes)); + for (i=0; i < hclen; ++i) { + int s = zreceive(3); + codelength_sizes[length_dezigzag[i]] = (uint8) s; + } + if (!zbuild_huffman(&z_codelength, codelength_sizes, 19)) return 0; + + n = 0; + while (n < hlit + hdist) { + int c = zhuffman_decode(&z_codelength); + assert(c >= 0 && c < 19); + if (c < 16) + lencodes[n++] = (uint8) c; + else if (c == 16) { + c = zreceive(2)+3; + memset(lencodes+n, lencodes[n-1], c); + n += c; + } else if (c == 17) { + c = zreceive(3)+3; + memset(lencodes+n, 0, c); + n += c; + } else { + assert(c == 18); + c = zreceive(7)+11; + memset(lencodes+n, 0, c); + n += c; + } + } + if (n != hlit+hdist) return e("bad codelengths","Corrupt PNG"); + if (!zbuild_huffman(&z_length, lencodes, hlit)) return 0; + if (!zbuild_huffman(&z_distance, lencodes+hlit, hdist)) return 0; + return 1; +} + +static int parse_uncompressed_block(void) +{ + uint8 header[4]; + int len,nlen,k; + if (num_bits & 7) + zreceive(num_bits & 7); // discard + // drain the bit-packed data into header + k = 0; + while (num_bits > 0) { + header[k++] = (uint8) (code_buffer & 255); // wtf this warns? + code_buffer >>= 8; + num_bits -= 8; + } + assert(num_bits == 0); + // now fill header the normal way + while (k < 4) + header[k++] = (uint8) zget8(); + len = header[1] * 256 + header[0]; + nlen = header[3] * 256 + header[2]; + if (nlen != (len ^ 0xffff)) return e("zlib corrupt","Corrupt PNG"); + if (zbuffer + len > zbuffer_end) return e("read past buffer","Corrupt PNG"); + if (zout + len > zout_end) + if (!expand(len)) return 0; + memcpy(zout, zbuffer, len); + zbuffer += len; + zout += len; + return 1; +} + +static int parse_zlib_header(void) +{ + int cmf = zget8(); + int cm = cmf & 15; + /* int cinfo = cmf >> 4; */ + int flg = zget8(); + if ((cmf*256+flg) % 31 != 0) return e("bad zlib header","Corrupt PNG"); // zlib spec + if (flg & 32) return e("no preset dict","Corrupt PNG"); // preset dictionary not allowed in png + if (cm != 8) return e("bad compression","Corrupt PNG"); // DEFLATE required for png + // window = 1 << (8 + cinfo)... but who cares, we fully buffer output + return 1; +} + +static uint8 default_length[288], default_distance[32]; +static void init_defaults(void) +{ + int i; // use <= to match clearly with spec + for (i=0; i <= 143; ++i) default_length[i] = 8; + for ( ; i <= 255; ++i) default_length[i] = 9; + for ( ; i <= 279; ++i) default_length[i] = 7; + for ( ; i <= 287; ++i) default_length[i] = 8; + + for (i=0; i <= 31; ++i) default_distance[i] = 5; +} + +static int parse_zlib(int parse_header) +{ + int final, type; + if (parse_header) + if (!parse_zlib_header()) return 0; + num_bits = 0; + code_buffer = 0; + do { + final = zreceive(1); + type = zreceive(2); + if (type == 0) { + if (!parse_uncompressed_block()) return 0; + } else if (type == 3) { + return 0; + } else { + if (type == 1) { + // use fixed code lengths + if (!default_length[0]) init_defaults(); + if (!zbuild_huffman(&z_length , default_length , 288)) return 0; + if (!zbuild_huffman(&z_distance, default_distance, 32)) return 0; + } else { + if (!compute_huffman_codes()) return 0; + } + if (!parse_huffman_block()) return 0; + } + } while (!final); + return 1; +} + +static int do_zlib(char *obuf, int olen, int exp, int parse_header) +{ + zout_start = obuf; + zout = obuf; + zout_end = obuf + olen; + z_expandable = exp; + + return parse_zlib(parse_header); +} + +char *stbi_zlib_decode_malloc_guesssize(int initial_size, int *outlen) +{ + char *p = (char *) malloc(initial_size); + if (p == NULL) return NULL; + if (do_zlib(p, initial_size, 1, 1)) { + *outlen = (int) (zout - zout_start); + return zout_start; + } else { + free(zout_start); + return NULL; + } +} + +char *stbi_zlib_decode_malloc(char *buffer, int len, int *outlen) +{ + zbuffer = (uint8 *) buffer; + zbuffer_end = (uint8 *) buffer+len; + return stbi_zlib_decode_malloc_guesssize(16384, outlen); +} + +int stbi_zlib_decode_buffer(char *obuffer, int olen, char *ibuffer, int ilen) +{ + zbuffer = (uint8 *) ibuffer; + zbuffer_end = (uint8 *) ibuffer + ilen; + if (do_zlib(obuffer, olen, 0, 1)) + return (int) (zout - zout_start); + else + return -1; +} + +char *stbi_zlib_decode_noheader_malloc(char *buffer, int len, int *outlen) +{ + char *p = (char *) malloc(16384); + if (p == NULL) return NULL; + zbuffer = (uint8 *) buffer; + zbuffer_end = (uint8 *) buffer+len; + if (do_zlib(p, 16384, 1, 0)) { + *outlen = (int) (zout - zout_start); + return zout_start; + } else { + free(zout_start); + return NULL; + } +} + +int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, char *ibuffer, int ilen) +{ + zbuffer = (uint8 *) ibuffer; + zbuffer_end = (uint8 *) ibuffer + ilen; + if (do_zlib(obuffer, olen, 0, 0)) + return (int) (zout - zout_start); + else + return -1; +} + +#endif // __MOJOSETUP__ + + +#ifndef STBI_NO_PNG // __MOJOSETUP__ + +// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18 +// simple implementation +// - only 8-bit samples +// - no CRC checking +// - allocates lots of intermediate memory +// - avoids problem of streaming data between subsystems +// - avoids explicit window management +// performance +// - uses stb_zlib, a PD zlib implementation with fast huffman decoding + + +typedef struct +{ + unsigned long length; + unsigned long type; +} chunk; + +#define PNG_TYPE(a,b,c,d) (((a) << 24) + ((b) << 16) + ((c) << 8) + (d)) + +static chunk get_chunk_header(void) +{ + chunk c; + c.length = get32(); + c.type = get32(); + return c; +} + +static int check_png_header(void) +{ + static uint8 png_sig[8] = { 137,80,78,71,13,10,26,10 }; + int i; + for (i=0; i < 8; ++i) + if (get8() != png_sig[i]) return e("bad png sig","Not a PNG"); + return 1; +} + +#if !__MOJOSETUP__ // moved elsewhere for #ifdef safety. +static uint8 *idata, *expanded, *out; +#endif + +enum { + F_none=0, F_sub=1, F_up=2, F_avg=3, F_paeth=4, + F_avg_first, F_paeth_first, +}; + +static uint8 first_row_filter[5] = +{ + F_none, F_sub, F_none, F_avg_first, F_paeth_first +}; + +static int paeth(int a, int b, int c) +{ + int p = a + b - c; + int pa = abs(p-a); + int pb = abs(p-b); + int pc = abs(p-c); + if (pa <= pb && pa <= pc) return a; + if (pb <= pc) return b; + return c; +} + +// create the png data from post-deflated data +static int create_png_image(uint8 *raw, uint32 raw_len, int out_n) +{ + uint32 i,j,stride = img_x*out_n; + int k; + assert(out_n == img_n || out_n == img_n+1); + out = (uint8 *) malloc(img_x * img_y * out_n); + if (!out) return e("outofmem", "Out of memory"); + if (raw_len != (img_n * img_x + 1) * img_y) return e("not enough pixels","Corrupt PNG"); + for (j=0; j < img_y; ++j) { + uint8 *cur = out + stride*j; + uint8 *prior = cur - stride; + int filter = *raw++; + if (filter > 4) return e("invalid filter","Corrupt PNG"); + // if first row, use special filter that doesn't sample previous row + if (j == 0) filter = first_row_filter[filter]; + // handle first pixel explicitly + for (k=0; k < img_n; ++k) { + switch(filter) { + case F_none : cur[k] = raw[k]; break; + case F_sub : cur[k] = raw[k]; break; + case F_up : cur[k] = raw[k] + prior[k]; break; + case F_avg : cur[k] = raw[k] + (prior[k]>>1); break; + case F_paeth : cur[k] = (uint8) (raw[k] + paeth(0,prior[k],0)); break; + case F_avg_first : cur[k] = raw[k]; break; + case F_paeth_first: cur[k] = raw[k]; break; + } + } + if (img_n != out_n) cur[img_n] = 255; + raw += img_n; + cur += out_n; + prior += out_n; + // this is a little gross, so that we don't switch per-pixel or per-component + if (img_n == out_n) { + #define CASE(f) \ + case f: \ + for (i=1; i < img_x; ++i, raw+=img_n,cur+=img_n,prior+=img_n) \ + for (k=0; k < img_n; ++k) + switch(filter) { + CASE(F_none) cur[k] = raw[k]; break; + CASE(F_sub) cur[k] = raw[k] + cur[k-img_n]; break; + CASE(F_up) cur[k] = raw[k] + prior[k]; break; + CASE(F_avg) cur[k] = raw[k] + ((prior[k] + cur[k-img_n])>>1); break; + CASE(F_paeth) cur[k] = (uint8) (raw[k] + paeth(cur[k-img_n],prior[k],prior[k-img_n])); break; + CASE(F_avg_first) cur[k] = raw[k] + (cur[k-img_n] >> 1); break; + CASE(F_paeth_first) cur[k] = (uint8) (raw[k] + paeth(cur[k-img_n],0,0)); break; + } + #undef CASE + } else { + assert(img_n+1 == out_n); + #define CASE(f) \ + case f: \ + for (i=1; i < img_x; ++i, cur[img_n]=255,raw+=img_n,cur+=out_n,prior+=out_n) \ + for (k=0; k < img_n; ++k) + switch(filter) { + CASE(F_none) cur[k] = raw[k]; break; + CASE(F_sub) cur[k] = raw[k] + cur[k-out_n]; break; + CASE(F_up) cur[k] = raw[k] + prior[k]; break; + CASE(F_avg) cur[k] = raw[k] + ((prior[k] + cur[k-out_n])>>1); break; + CASE(F_paeth) cur[k] = (uint8) (raw[k] + paeth(cur[k-out_n],prior[k],prior[k-out_n])); break; + CASE(F_avg_first) cur[k] = raw[k] + (cur[k-out_n] >> 1); break; + CASE(F_paeth_first) cur[k] = (uint8) (raw[k] + paeth(cur[k-out_n],0,0)); break; + } + #undef CASE + } + } + return 1; +} + +static int compute_transparency(uint8 tc[3], int out_n) +{ + uint32 i, pixel_count = img_x * img_y; + uint8 *p = out; + + // compute color-based transparency, assuming we've + // already got 255 as the alpha value in the output + assert(out_n == 2 || out_n == 4); + + p = out; + if (out_n == 2) { + for (i=0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 255); + p += 2; + } + } else { + for (i=0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int expand_palette(uint8 *palette, int len, int pal_img_n) +{ + uint32 i, pixel_count = img_x * img_y; + uint8 *p, *temp_out, *orig = out; + + p = (uint8 *) malloc(pixel_count * pal_img_n); + if (p == NULL) return e("outofmem", "Out of memory"); + + // between here and free(out) below, exitting would leak + temp_out = p; + + if (pal_img_n == 3) { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p += 3; + } + } else { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p[3] = palette[n+3]; + p += 4; + } + } + free(out); + out = temp_out; + return 1; +} + +static int parse_png_file(int scan, int req_comp) +{ + uint8 palette[1024], pal_img_n=0; + uint8 has_trans=0, tc[3]; + uint32 ioff=0, idata_limit=0, i, pal_len=0; + int first=1,k; + + if (!check_png_header()) return 0; + + if (scan == SCAN_type) return 1; + + for(;;first=0) { + chunk c = get_chunk_header(); + if (first && c.type != PNG_TYPE('I','H','D','R')) + return e("first not IHDR","Corrupt PNG"); + switch (c.type) { + case PNG_TYPE('I','H','D','R'): { + int depth,color,interlace,comp,filter; + if (!first) return e("multiple IHDR","Corrupt PNG"); + if (c.length != 13) return e("bad IHDR len","Corrupt PNG"); + img_x = get32(); if (img_x > (1 << 24)) return e("too large","Very large image (corrupt?)"); + img_y = get32(); if (img_y > (1 << 24)) return e("too large","Very large image (corrupt?)"); + depth = get8(); if (depth != 8) return e("8bit only","PNG not supported: 8-bit only"); + color = get8(); if (color > 6) return e("bad ctype","Corrupt PNG"); + if (color == 3) pal_img_n = 3; else if (color & 1) return e("bad ctype","Corrupt PNG"); + comp = get8(); if (comp) return e("bad comp method","Corrupt PNG"); + filter= get8(); if (filter) return e("bad filter method","Corrupt PNG"); + interlace = get8(); if (interlace) return e("interlaced","PNG not supported: interlaced mode"); + if (!img_x || !img_y) return e("0-pixel image","Corrupt PNG"); + if (!pal_img_n) { + img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0); + if ((1 << 30) / img_x / img_n < img_y) return e("too large", "Image too large to decode"); + if (scan == SCAN_header) return 1; + } else { + // if paletted, then pal_n is our final components, and + // img_n is # components to decompress/filter. + img_n = 1; + if ((1 << 30) / img_x / 4 < img_y) return e("too large","Corrupt PNG"); + // if SCAN_header, have to scan to see if we have a tRNS + } + break; + } + + case PNG_TYPE('P','L','T','E'): { + if (c.length > 256*3) return e("invalid PLTE","Corrupt PNG"); + pal_len = c.length / 3; + if (pal_len * 3 != c.length) return e("invalid PLTE","Corrupt PNG"); + for (i=0; i < pal_len; ++i) { + palette[i*4+0] = get8u(); + palette[i*4+1] = get8u(); + palette[i*4+2] = get8u(); + palette[i*4+3] = 255; + } + break; + } + + case PNG_TYPE('t','R','N','S'): { + if (idata) return e("tRNS after IDAT","Corrupt PNG"); + if (pal_img_n) { + if (scan == SCAN_header) { img_n = 4; return 1; } + if (pal_len == 0) return e("tRNS before PLTE","Corrupt PNG"); + if (c.length > pal_len) return e("bad tRNS len","Corrupt PNG"); + pal_img_n = 4; + for (i=0; i < c.length; ++i) + palette[i*4+3] = get8u(); + } else { + if (!(img_n & 1)) return e("tRNS with alpha","Corrupt PNG"); + if (c.length != (uint32) img_n*2) return e("bad tRNS len","Corrupt PNG"); + has_trans = 1; + for (k=0; k < img_n; ++k) + tc[k] = (uint8) get16(); // non 8-bit images will be larger + } + break; + } + + case PNG_TYPE('I','D','A','T'): { + if (pal_img_n && !pal_len) return e("no PLTE","Corrupt PNG"); + if (scan == SCAN_header) { img_n = pal_img_n; return 1; } + if (ioff + c.length > idata_limit) { + uint8 *p; + if (idata_limit == 0) idata_limit = c.length > 4096 ? c.length : 4096; + while (ioff + c.length > idata_limit) + idata_limit *= 2; + p = (uint8 *) realloc(idata, idata_limit); if (p == NULL) return e("outofmem", "Out of memory"); + idata = p; + } + #ifndef STBI_NO_STDIO + if (img_file) + { + if (fread(idata+ioff,1,c.length,img_file) != c.length) return e("outofdata","Corrupt PNG"); + } + else + #endif + { + memcpy(idata+ioff, img_buffer, c.length); + img_buffer += c.length; + } + ioff += c.length; + break; + } + + case PNG_TYPE('I','E','N','D'): { + uint32 raw_len; + if (scan != SCAN_load) return 1; + if (idata == NULL) return e("no IDAT","Corrupt PNG"); + expanded = (uint8 *) stbi_zlib_decode_malloc((char *) idata, ioff, (int *) &raw_len); + if (expanded == NULL) return 0; // zlib should set error + free(idata); idata = NULL; + if ((req_comp == img_n+1 && req_comp != 3 && !pal_img_n) || has_trans) + img_out_n = img_n+1; + else + img_out_n = img_n; + if (!create_png_image(expanded, raw_len, img_out_n)) return 0; + if (has_trans) + if (!compute_transparency(tc, img_out_n)) return 0; + if (pal_img_n) { + // pal_img_n == 3 or 4 + img_n = pal_img_n; // record the actual colors we had + img_out_n = pal_img_n; + if (req_comp >= 3) img_out_n = req_comp; + if (!expand_palette(palette, pal_len, img_out_n)) + return 0; + } + free(expanded); expanded = NULL; + return 1; + } + + default: + // if critical, fail + if ((c.type & (1 << 29)) == 0) { + #ifndef STBI_NO_FAILURE_STRINGS + static char invalid_chunk[] = "XXXX chunk not known"; + invalid_chunk[0] = (uint8) (c.type >> 24); + invalid_chunk[1] = (uint8) (c.type >> 16); + invalid_chunk[2] = (uint8) (c.type >> 8); + invalid_chunk[3] = (uint8) (c.type >> 0); + #endif + return e(invalid_chunk, "PNG not supported: unknown chunk type"); + } + skip(c.length); + break; + } + // end of chunk, read and skip CRC + get8(); get8(); get8(); get8(); + } +} + +static unsigned char *do_png(int *x, int *y, int *n, int req_comp) +{ + unsigned char *result=NULL; + if (req_comp < 0 || req_comp > 4) return epuc("bad req_comp", "Internal error"); + if (parse_png_file(SCAN_load, req_comp)) { + result = out; + out = NULL; + if (req_comp && req_comp != img_out_n) { + result = convert_format(result, img_out_n, req_comp); + if (result == NULL) return result; + } + *x = img_x; + *y = img_y; + if (n) *n = img_n; + } + free(out); out = NULL; + free(expanded); expanded = NULL; + free(idata); idata = NULL; + + return result; +} + +#ifndef STBI_NO_STDIO +unsigned char *stbi_png_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + start_file(f); + return do_png(x,y,comp,req_comp); +} + +unsigned char *stbi_png_load(char *filename, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *data; + FILE *f = fopen(filename, "rb"); + if (!f) return NULL; + data = stbi_png_load_from_file(f,x,y,comp,req_comp); + fclose(f); + return data; +} +#endif + +unsigned char *stbi_png_load_from_memory(unsigned char *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + start_mem(buffer,len); + return do_png(x,y,comp,req_comp); +} + +#ifndef STBI_NO_STDIO +int stbi_png_test_file(FILE *f) +{ + int n,r; + n = ftell(f); + start_file(f); + r = parse_png_file(SCAN_type,STBI_default); + fseek(f,n,SEEK_SET); + return r; +} +#endif + +#endif // __MOJOSETUP__ + +int stbi_png_test_memory(unsigned char *buffer, int len) +{ +#ifndef STBI_NO_PNG // __MOJOSETUP__ + start_mem(buffer, len); + return parse_png_file(SCAN_type,STBI_default); +#else + return 0; +#endif // __MOJOSETUP__ +} + +// TODO: load header from png +#ifndef STBI_NO_STDIO +extern int stbi_png_info (char *filename, int *x, int *y, int *comp); +extern int stbi_png_info_from_file (FILE *f, int *x, int *y, int *comp); +#endif +extern int stbi_png_info_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp); + + +#ifndef STBI_NO_BMP // __MOJOSETUP__ + +// Microsoft/Windows BMP image + +static int bmp_test(void) +{ + int sz; + if (get8() != 'B') return 0; + if (get8() != 'M') return 0; + get32le(); // discard filesize + get16le(); // discard reserved + get16le(); // discard reserved + get32le(); // discard data offset + sz = get32le(); + if (sz == 12 || sz == 40 || sz == 56 || sz == 108) return 1; + return 0; +} + +#ifndef STBI_NO_STDIO +int stbi_bmp_test_file (FILE *f) +{ + int r,n = ftell(f); + start_file(f); + r = bmp_test(); + fseek(f,n,SEEK_SET); + return r; +} +#endif + +#endif // __MOJOSETUP__ + + +int stbi_bmp_test_memory (stbi_uc *buffer, int len) +{ +#ifndef STBI_NO_BMP // __MOJOSETUP__ + start_mem(buffer, len); + return bmp_test(); +#else + return 0; +#endif // __MOJOSETUP__ +} + + +#ifndef STBI_NO_BMP // __MOJOSETUP__ + +// returns 0..31 for the highest set bit +static int high_bit(unsigned int z) +{ + int n=0; + if (z == 0) return -1; + if (z >= 0x10000) n += 16, z >>= 16; + if (z >= 0x00100) n += 8, z >>= 8; + if (z >= 0x00010) n += 4, z >>= 4; + if (z >= 0x00004) n += 2, z >>= 2; + if (z >= 0x00002) n += 1, z >>= 1; + return n; +} + +static int bitcount(unsigned int a) +{ + a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2 + a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4 + a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits + a = (a + (a >> 8)); // max 16 per 8 bits + a = (a + (a >> 16)); // max 32 per 8 bits + return a & 0xff; +} + +static int shiftsigned(int v, int shift, int bits) +{ + int result; + int z=0; + + if (shift < 0) v <<= -shift; + else v >>= shift; + result = v; + + z = bits; + while (z < 8) { + result += v >> z; + z += bits; + } + return result; +} + +static stbi_uc *bmp_load(int *x, int *y, int *comp, int req_comp) +{ + unsigned int mr=0,mg=0,mb=0,ma=0; + stbi_uc pal[256][4]; + int psize=0,i,j,compress=0,width; + int bpp, flip_vertically, pad, target, offset, hsz; + if (get8() != 'B' || get8() != 'M') return epuc("not BMP", "Corrupt BMP"); + get32le(); // discard filesize + get16le(); // discard reserved + get16le(); // discard reserved + offset = get32le(); + hsz = get32le(); + if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108) return epuc("unknown BMP", "BMP type not supported: unknown"); + failure_reason = "bad BMP"; + if (hsz == 12) { + img_x = get16le(); + img_y = get16le(); + } else { + img_x = get32le(); + img_y = get32le(); + } + if (get16le() != 1) return 0; + bpp = get16le(); + if (bpp == 1) return epuc("monochrome", "BMP type not supported: 1-bit"); + flip_vertically = ((int) img_y) > 0; + img_y = abs((int) img_y); + if (hsz == 12) { + if (bpp < 24) + psize = (offset - 14 - 24) / 3; + } else { + compress = get32le(); + if (compress == 1 || compress == 2) return epuc("BMP RLE", "BMP type not supported: RLE"); + get32le(); // discard sizeof + get32le(); // discard hres + get32le(); // discard vres + get32le(); // discard colorsused + get32le(); // discard max important + if (hsz == 40 || hsz == 56) { + if (hsz == 56) { + get32le(); + get32le(); + get32le(); + get32le(); + } + if (bpp == 16 || bpp == 32) { + mr = mg = mb = 0; + if (compress == 0) { + if (bpp == 32) { + mr = 0xff << 16; + mg = 0xff << 8; + mb = 0xff << 0; + } else { + mr = 31 << 10; + mg = 31 << 5; + mb = 31 << 0; + } + } else if (compress == 3) { + mr = get32le(); + mg = get32le(); + mb = get32le(); + // not documented, but generated by photoshop and handled by mspaint + if (mr == mg && mg == mb) { + // ?!?!? + return NULL; + } + } else + return NULL; + } + } else { + assert(hsz == 108); + mr = get32le(); + mg = get32le(); + mb = get32le(); + ma = get32le(); + get32le(); // discard color space + for (i=0; i < 12; ++i) + get32le(); // discard color space parameters + } + if (bpp < 16) + psize = (offset - 14 - hsz) >> 2; + } + img_n = ma ? 4 : 3; + if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 + target = req_comp; + else + target = img_n; // if they want monochrome, we'll post-convert + out = (stbi_uc *) malloc(target * img_x * img_y); + if (!out) return epuc("outofmem", "Out of memory"); + if (bpp < 16) { + int z=0; + if (psize == 0 || psize > 256) return epuc("invalid", "Corrupt BMP"); + for (i=0; i < psize; ++i) { + pal[i][2] = get8(); + pal[i][1] = get8(); + pal[i][0] = get8(); + if (hsz != 12) get8(); + pal[i][3] = 255; + } + skip(offset - 14 - hsz - psize * (hsz == 12 ? 3 : 4)); + if (bpp == 4) width = (img_x + 1) >> 1; + else if (bpp == 8) width = img_x; + else return epuc("bad bpp", "Corrupt BMP"); + pad = (-width)&3; + for (j=0; j < (int) img_y; ++j) { + for (i=0; i < (int) img_x; i += 2) { + int v=get8(),v2=0; + if (bpp == 4) { + v2 = v & 15; + v >>= 4; + } + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + if (i+1 == (int) img_x) break; + v = (bpp == 8) ? get8() : v2; + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + } + skip(pad); + } + } else { + int rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0; + int z = 0; + int easy=0; + skip(offset - 14 - hsz); + if (bpp == 24) width = 3 * img_x; + else if (bpp == 16) width = 2*img_x; + else /* bpp = 32 and pad = 0 */ width=0; + pad = (-width) & 3; + if (bpp == 24) { + easy = 1; + } else if (bpp == 32) { + if (mb == 0xff && mg == 0xff00 && mr == 0xff000000 && ma == 0xff000000) + easy = 2; + } + if (!easy) { + if (!mr || !mg || !mb) return epuc("bad masks", "Corrupt BMP"); + // right shift amt to put high bit in position #7 + rshift = high_bit(mr)-7; rcount = bitcount(mr); + gshift = high_bit(mg)-7; gcount = bitcount(mr); + bshift = high_bit(mb)-7; bcount = bitcount(mr); + ashift = high_bit(ma)-7; acount = bitcount(mr); + } + for (j=0; j < (int) img_y; ++j) { + if (easy) { + for (i=0; i < (int) img_x; ++i) { + int a; + out[z+2] = get8(); + out[z+1] = get8(); + out[z+0] = get8(); + z += 3; + a = (easy == 2 ? get8() : 255); + if (target == 4) out[z++] = a; + } + } else { + for (i=0; i < (int) img_x; ++i) { + unsigned long v = (bpp == 16 ? get16le() : get32le()); + int a; + out[z++] = shiftsigned(v & mr, rshift, rcount); + out[z++] = shiftsigned(v & mg, gshift, gcount); + out[z++] = shiftsigned(v & mb, bshift, bcount); + a = (ma ? shiftsigned(v & ma, ashift, acount) : 255); + if (target == 4) out[z++] = a; + } + } + skip(pad); + } + } + if (flip_vertically) { + stbi_uc t; + for (j=0; j < (int) img_y>>1; ++j) { + stbi_uc *p1 = out + j *img_x*target; + stbi_uc *p2 = out + (img_y-1-j)*img_x*target; + for (i=0; i < (int) img_x*target; ++i) { + t = p1[i], p1[i] = p2[i], p2[i] = t; + } + } + } + + if (req_comp && req_comp != target) { + out = convert_format(out, target, req_comp); + if (out == NULL) return out; // convert_format frees input on failure + } + + *x = img_x; + *y = img_y; + if (comp) *comp = target; + return out; +} + +#ifndef STBI_NO_STDIO +stbi_uc *stbi_bmp_load (char *filename, int *x, int *y, int *comp, int req_comp) +{ + stbi_uc *data; + FILE *f = fopen(filename, "rb"); + if (!f) return NULL; + data = stbi_bmp_load_from_file(f, x,y,comp,req_comp); + fclose(f); + return data; +} + +stbi_uc *stbi_bmp_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp) +{ + start_file(f); + return bmp_load(x,y,comp,req_comp); +} +#endif + +stbi_uc *stbi_bmp_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + start_mem(buffer, len); + return bmp_load(x,y,comp,req_comp); +} + +#endif // __MOJOSETUP__ + + + +#ifndef STBI_NO_TGA // __MOJOSETUP__ + +// Targa Truevision - TGA +// by Jonathan Dummer + +static int tga_test(void) +{ + int sz; + get8u(); // discard Offset + sz = get8u(); // color type + if( sz > 1 ) return 0; // only RGB or indexed allowed + sz = get8u(); // image type + if( (sz != 1) && (sz != 2) && (sz != 3) && (sz != 9) && (sz != 10) && (sz != 11) ) return 0; // only RGB or grey allowed, +/- RLE + get16(); // discard palette start + get16(); // discard palette length + get8(); // discard bits per palette color entry + get16(); // discard x origin + get16(); // discard y origin + if( get16() < 1 ) return 0; // test width + if( get16() < 1 ) return 0; // test height + sz = get8(); // bits per pixel + if( (sz != 8) && (sz != 16) && (sz != 24) && (sz != 32) ) return 0; // only RGB or RGBA or grey allowed + return 1; // seems to have passed everything +} + +#ifndef STBI_NO_STDIO +int stbi_tga_test_file (FILE *f) +{ + int r,n = ftell(f); + start_file(f); + r = tga_test(); + fseek(f,n,SEEK_SET); + return r; +} +#endif + +#endif // __MOJOSETUP__ + + +int stbi_tga_test_memory (stbi_uc *buffer, int len) +{ +#ifndef STBI_NO_TGA // __MOJOSETUP__ + start_mem(buffer, len); + return tga_test(); +#else + return 0; +#endif // __MOJOSETUP__ +} + +#ifndef STBI_NO_TGA // __MOJOSETUP__ + +static stbi_uc *tga_load(int *x, int *y, int *comp, int req_comp) +{ + // read in the TGA header stuff + int tga_offset = get8u(); + int tga_indexed = get8u(); + int tga_image_type = get8u(); + int tga_is_RLE = 0; + int tga_palette_start = get16le(); + int tga_palette_len = get16le(); + int tga_palette_bits = get8u(); + int tga_x_origin = get16le(); + int tga_y_origin = get16le(); + int tga_width = get16le(); + int tga_height = get16le(); + int tga_bits_per_pixel = get8u(); + int tga_inverted = get8u(); + // image data + unsigned char *tga_data; + unsigned char *tga_palette = NULL; + int i, j; +#if __MOJOSETUP__ // gcc whining fixes. --ryan. + //unsigned char raw_data[4]; + //unsigned char trans_data[4]; + unsigned char raw_data[4] = { 0, 0, 0, 0 }; + unsigned char trans_data[4] = { 0, 0, 0, 0 }; +#endif + int RLE_count = 0; + int RLE_repeating = 0; + int read_next_pixel = 1; + // do a tiny bit of precessing + if( tga_image_type >= 8 ) + { + tga_image_type -= 8; + tga_is_RLE = 1; + } + /* int tga_alpha_bits = tga_inverted & 15; */ + tga_inverted = 1 - ((tga_inverted >> 5) & 1); + + // error check + if( //(tga_indexed) || + (tga_width < 1) || (tga_height < 1) || + (tga_image_type < 1) || (tga_image_type > 3) || + ((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16) && + (tga_bits_per_pixel != 24) && (tga_bits_per_pixel != 32)) + ) + { + return NULL; + } + + // If I'm paletted, then I'll use the number of bits from the palette + if( tga_indexed ) + { + tga_bits_per_pixel = tga_palette_bits; + } + + // tga info + *x = tga_width; + *y = tga_height; + if( (req_comp < 1) || (req_comp > 4) ) + { + // just use whatever the file was + req_comp = tga_bits_per_pixel / 8; + *comp = req_comp; + } else + { + // force a new number of components + *comp = tga_bits_per_pixel/8; + } + tga_data = (unsigned char*)malloc( tga_width * tga_height * req_comp ); + + // skip to the data's starting position (offset usually = 0) + skip( tga_offset ); + // do I need to load a palette? + if( tga_indexed ) + { + // any data to skip? (offset usually = 0) + skip( tga_palette_start ); + // load the palette + tga_palette = (unsigned char*)malloc( tga_palette_len * tga_palette_bits / 8 ); + getn( tga_palette, tga_palette_len * tga_palette_bits / 8 ); + } + // load the data + for( i = 0; i < tga_width * tga_height; ++i ) + { + // if I'm in RLE mode, do I need to get a RLE chunk? + if( tga_is_RLE ) + { + if( RLE_count == 0 ) + { + // yep, get the next byte as a RLE command + int RLE_cmd = get8u(); + RLE_count = 1 + (RLE_cmd & 127); + RLE_repeating = RLE_cmd >> 7; + read_next_pixel = 1; + } else if( !RLE_repeating ) + { + read_next_pixel = 1; + } + } else + { + read_next_pixel = 1; + } + // OK, if I need to read a pixel, do it now + if( read_next_pixel ) + { + // load however much data we did have + if( tga_indexed ) + { + // read in 1 byte, then perform the lookup + int pal_idx = get8u(); + if( pal_idx >= tga_palette_len ) + { + // invalid index + pal_idx = 0; + } + pal_idx *= tga_bits_per_pixel / 8; + for( j = 0; j*8 < tga_bits_per_pixel; ++j ) + { + raw_data[j] = tga_palette[pal_idx+j]; + } + } else + { + // read in the data raw + for( j = 0; j*8 < tga_bits_per_pixel; ++j ) + { + raw_data[j] = get8u(); + } + } + // convert raw to the intermediate format + switch( tga_bits_per_pixel ) + { + case 8: + // Luminous => RGBA + trans_data[0] = raw_data[0]; + trans_data[1] = raw_data[0]; + trans_data[2] = raw_data[0]; + trans_data[3] = 255; + break; + case 16: + // Luminous,Alpha => RGBA + trans_data[0] = raw_data[0]; + trans_data[1] = raw_data[0]; + trans_data[2] = raw_data[0]; + trans_data[3] = raw_data[1]; + break; + case 24: + // BGR => RGBA + trans_data[0] = raw_data[2]; + trans_data[1] = raw_data[1]; + trans_data[2] = raw_data[0]; + trans_data[3] = 255; + break; + case 32: + // BGRA => RGBA + trans_data[0] = raw_data[2]; + trans_data[1] = raw_data[1]; + trans_data[2] = raw_data[0]; + trans_data[3] = raw_data[3]; + break; + } + // clear the reading flag for the next pixel + read_next_pixel = 0; + } // end of reading a pixel + // convert to final format + switch( req_comp ) + { + case 1: + // RGBA => Luminance + tga_data[i*req_comp+0] = compute_y(trans_data[0],trans_data[1],trans_data[2]); + break; + case 2: + // RGBA => Luminance,Alpha + tga_data[i*req_comp+0] = compute_y(trans_data[0],trans_data[1],trans_data[2]); + tga_data[i*req_comp+1] = trans_data[3]; + break; + case 3: + // RGBA => RGB + tga_data[i*req_comp+0] = trans_data[0]; + tga_data[i*req_comp+1] = trans_data[1]; + tga_data[i*req_comp+2] = trans_data[2]; + break; + case 4: + // RGBA => RGBA + tga_data[i*req_comp+0] = trans_data[0]; + tga_data[i*req_comp+1] = trans_data[1]; + tga_data[i*req_comp+2] = trans_data[2]; + tga_data[i*req_comp+3] = trans_data[3]; + break; + } + // in case we're in RLE mode, keep counting down + --RLE_count; + } + // do I need to invert the image? + if( tga_inverted ) + { + for( j = 0; j*2 < tga_height; ++j ) + { + int index1 = j * tga_width * req_comp; + int index2 = (tga_height - 1 - j) * tga_width * req_comp; + for( i = tga_width * req_comp; i > 0; --i ) + { + unsigned char temp = tga_data[index1]; + tga_data[index1] = tga_data[index2]; + tga_data[index2] = temp; + ++index1; + ++index2; + } + } + } + // clear my palette, if I had one + if( tga_palette != NULL ) + { + free( tga_palette ); + } + // the things I do to get rid of an error message, and yet keep + // Microsoft's C compilers happy... [8^( + tga_palette_start = tga_palette_len = tga_palette_bits = + tga_x_origin = tga_y_origin = 0; + // OK, done + return tga_data; +} + +#ifndef STBI_NO_STDIO +stbi_uc *stbi_tga_load (char *filename, int *x, int *y, int *comp, int req_comp) +{ + stbi_uc *data; + FILE *f = fopen(filename, "rb"); + if (!f) return NULL; + data = stbi_tga_load_from_file(f, x,y,comp,req_comp); + fclose(f); + return data; +} + +stbi_uc *stbi_tga_load_from_file (FILE *f, int *x, int *y, int *comp, int req_comp) +{ + start_file(f); + return tga_load(x,y,comp,req_comp); +} +#endif + +stbi_uc *stbi_tga_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + start_mem(buffer, len); + return tga_load(x,y,comp,req_comp); +} + +#endif // __MOJOSETUP__ + + +#ifndef STBI_NO_PSD // __MOJOSETUP__ + +// ************************************************************************************************* +// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicholas Schulz, tweaked by STB + +static int psd_test(void) +{ + if (get32() != 0x38425053) return 0; // "8BPS" + else return 1; +} + +#ifndef STBI_NO_STDIO +int stbi_psd_test_file(FILE *f) +{ + int r,n = ftell(f); + start_file(f); + r = psd_test(); + fseek(f,n,SEEK_SET); + return r; +} +#endif + +#endif // __MOJOSETUP__ + + +int stbi_psd_test_memory(stbi_uc *buffer, int len) +{ +#ifndef STBI_NO_PSD // __MOJOSETUP__ + start_mem(buffer, len); + return psd_test(); +#else + return 0; +#endif // __MOJOSETUP__ +} + + +#ifndef STBI_NO_PSD // __MOJOSETUP__ + +static stbi_uc *psd_load(int *x, int *y, int *comp, int req_comp) +{ + int pixelCount; + int channelCount, compression; + int channel, i, count, len; + int w,h; + + // Check identifier + if (get32() != 0x38425053) // "8BPS" + return epuc("not PSD", "Corrupt PSD image"); + + // Check file type version. + if (get16() != 1) + return epuc("wrong version", "Unsupported version of PSD image"); + + // Skip 6 reserved bytes. + skip( 6 ); + + // Read the number of channels (R, G, B, A, etc). + channelCount = get16(); + if (channelCount < 0 || channelCount > 16) + return epuc("wrong channel count", "Unsupported number of channels in PSD image"); + + // Read the rows and columns of the image. + h = get32(); + w = get32(); + + // Make sure the depth is 8 bits. + if (get16() != 8) + return epuc("unsupported bit depth", "PSD bit depth is not 8 bit"); + + // Make sure the color mode is RGB. + // Valid options are: + // 0: Bitmap + // 1: Grayscale + // 2: Indexed color + // 3: RGB color + // 4: CMYK color + // 7: Multichannel + // 8: Duotone + // 9: Lab color + if (get16() != 3) + return epuc("wrong color format", "PSD is not in RGB color format"); + + // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.) + skip(get32() ); + + // Skip the image resources. (resolution, pen tool paths, etc) + skip( get32() ); + + // Skip the reserved data. + skip( get32() ); + + // Find out if the data is compressed. + // Known values: + // 0: no compression + // 1: RLE compressed + compression = get16(); + if (compression > 1) + return epuc("unknown compression type", "PSD has an unknown compression format"); + + // Create the destination image. + out = (stbi_uc *) malloc(4 * w*h); + if (!out) return epuc("outofmem", "Out of memory"); + pixelCount = w*h; + + // Initialize the data to zero. + //memset( out, 0, pixelCount * 4 ); + + // Finally, the image data. + if (compression) { + // RLE as used by .PSD and .TIFF + // Loop until you get the number of unpacked bytes you are expecting: + // Read the next source byte into n. + // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally. + // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times. + // Else if n is 128, noop. + // Endloop + + // The RLE-compressed data is preceeded by a 2-byte data count for each row in the data, + // which we're going to just skip. + skip( h * channelCount * 2 ); + + // Read the RLE data by channel. + for (channel = 0; channel < 4; channel++) { + uint8 *p; + + p = out+channel; + if (channel >= channelCount) { + // Fill this channel with default data. + for (i = 0; i < pixelCount; i++) *p = (channel == 3 ? 255 : 0), p += 4; + } else { + // Read the RLE data. + count = 0; + while (count < pixelCount) { + len = get8(); + if (len == 128) { + // No-op. + } else if (len < 128) { + // Copy next len+1 bytes literally. + len++; + count += len; + while (len) { + *p = get8(); + p += 4; + len--; + } + } else if (len > 128) { + uint32 val; + // Next -len+1 bytes in the dest are replicated from next source byte. + // (Interpret len as a negative 8-bit int.) + len ^= 0x0FF; + len += 2; + val = get8(); + count += len; + while (len) { + *p = val; + p += 4; + len--; + } + } + } + } + } + + } else { + // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...) + // where each channel consists of an 8-bit value for each pixel in the image. + + // Read the data by channel. + for (channel = 0; channel < 4; channel++) { + uint8 *p; + + p = out + channel; + if (channel > channelCount) { + // Fill this channel with default data. + for (i = 0; i < pixelCount; i++) *p = channel == 3 ? 255 : 0, p += 4; + } else { + // Read the data. + count = 0; + for (i = 0; i < pixelCount; i++) + *p = get8(), p += 4; + } + } + } + + if (req_comp && req_comp != 4) { + out = convert_format(out, 4, req_comp); + if (out == NULL) return out; // convert_format frees input on failure + } + + if (comp) *comp = channelCount; + *y = h; + *x = w; + + return out; +} + +#ifndef STBI_NO_STDIO +stbi_uc *stbi_psd_load(char *filename, int *x, int *y, int *comp, int req_comp) +{ + stbi_uc *data; + FILE *f = fopen(filename, "rb"); + if (!f) return NULL; + data = stbi_psd_load_from_file(f, x,y,comp,req_comp); + fclose(f); + return data; +} + +stbi_uc *stbi_psd_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + start_file(f); + return psd_load(x,y,comp,req_comp); +} +#endif + +stbi_uc *stbi_psd_load_from_memory (stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + start_mem(buffer, len); + return psd_load(x,y,comp,req_comp); +} + +#endif // __MOJOSETUP__ + + +// ************************************************************************************************* +// Radiance RGBE HDR loader +// originally by Nicolas Schulz +#ifndef STBI_NO_HDR +static int hdr_test(void) +{ + char *signature = "#?RADIANCE\n"; + int i; + for (i=0; signature[i]; ++i) + if (get8() != signature[i]) + return 0; + return 1; +} + +int stbi_hdr_test_memory(stbi_uc *buffer, int len) +{ + start_mem(buffer, len); + return hdr_test(); +} + +#ifndef STBI_NO_STDIO +int stbi_hdr_test_file(FILE *f) +{ + int r,n = ftell(f); + start_file(f); + r = hdr_test(); + fseek(f,n,SEEK_SET); + return r; +} +#endif + +#define HDR_BUFLEN 1024 +static char *hdr_gettoken(char *buffer) +{ + int len=0; + +#if __MOJOSETUP__ // compiler complained about unused variable. + char c = get8(); +#else + char *s = buffer, c = '\0'; + + c = get8(); +#endif + + while (!at_eof() && c != '\n') { + buffer[len++] = c; + if (len == HDR_BUFLEN-1) { + // flush to end of line + while (!at_eof() && get8() != '\n') + ; + break; + } + c = get8(); + } + + buffer[len] = 0; + return buffer; +} + +static void hdr_convert(float *output, stbi_uc *input, int req_comp) +{ + if( input[3] != 0 ) { + float f1; + // Exponent + f1 = (float) ldexp(1.0f, input[3] - (int)(128 + 8)); + if (req_comp <= 2) + output[0] = (input[0] + input[1] + input[2]) * f1 / 3; + else { + output[0] = input[0] * f1; + output[1] = input[1] * f1; + output[2] = input[2] * f1; + } + if (req_comp == 2) output[1] = 1; + if (req_comp == 4) output[3] = 1; + } else { + switch (req_comp) { + case 4: output[3] = 1; /* fallthrough */ + case 3: output[0] = output[1] = output[2] = 0; + break; + case 2: output[1] = 1; /* fallthrough */ + case 1: output[0] = 0; + break; + } + } +} + + +static float *hdr_load(int *x, int *y, int *comp, int req_comp) +{ + char buffer[HDR_BUFLEN]; + char *token; + int valid = 0; + int width, height; + stbi_uc *scanline; + float *hdr_data; + int len; + unsigned char count, value; + int i, j, k, c1,c2, z; + + + // Check identifier + if (strcmp(hdr_gettoken(buffer), "#?RADIANCE") != 0) + return epf("not HDR", "Corrupt HDR image"); + + // Parse header + while(1) { + token = hdr_gettoken(buffer); + if (token[0] == 0) break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; + } + + if (!valid) return epf("unsupported format", "Unsupported HDR format"); + + // Parse width and height + // can't use sscanf() if we're not using stdio! + token = hdr_gettoken(buffer); + if (strncmp(token, "-Y ", 3)) return epf("unsupported data layout", "Unsupported HDR format"); + token += 3; + height = strtol(token, &token, 10); + while (*token == ' ') ++token; + if (strncmp(token, "+X ", 3)) return epf("unsupported data layout", "Unsupported HDR format"); + token += 3; + width = strtol(token, NULL, 10); + + *x = width; + *y = height; + + *comp = 3; + if (req_comp == 0) req_comp = 3; + + // Read data + hdr_data = (float *) malloc(height * width * req_comp * sizeof(float)); + + // Load image data + // image data is stored as some number of sca + if( width < 8 || width >= 32768) { + // Read flat data + for (j=0; j < height; ++j) { + for (i=0; i < width; ++i) { + stbi_uc rgbe[4]; + main_decode_loop: + getn(rgbe, 4); + hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp); + } + } + } else { + // Read RLE-encoded data + scanline = NULL; + + for (j = 0; j < height; ++j) { + c1 = get8(); + c2 = get8(); + len = get8(); + if (c1 != 2 || c2 != 2 || (len & 0x80)) { + // not run-length encoded, so we have to actually use THIS data as a decoded + // pixel (note this can't be a valid pixel--one of RGB must be >= 128) + stbi_uc rgbe[4] = { c1,c2,len, get8() }; + hdr_convert(hdr_data, rgbe, req_comp); + i = 1; + j = 0; + free(scanline); + goto main_decode_loop; // yes, this is fucking insane; blame the fucking insane format + } + len <<= 8; + len |= get8(); + if (len != width) { free(hdr_data); free(scanline); return epf("invalid decoded scanline length", "corrupt HDR"); } + if (scanline == NULL) scanline = (stbi_uc *) malloc(width * 4); + + for (k = 0; k < 4; ++k) { + i = 0; + while (i < width) { + count = get8(); + if (count > 128) { + // Run + value = get8(); + count -= 128; + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = value; + } else { + // Dump + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = get8(); + } + } + } + for (i=0; i < width; ++i) + hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp); + } + free(scanline); + } + + return hdr_data; +} + +#ifndef STBI_NO_STDIO +float *stbi_hdr_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + start_file(f); + return hdr_load(x,y,comp,req_comp); +} +#endif + +float *stbi_hdr_load_from_memory(stbi_uc *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + start_mem(buffer, len); + return hdr_load(x,y,comp,req_comp); +} + +#endif // STBI_NO_HDR + +/////////////////////// write image /////////////////////// + +#ifndef STBI_NO_WRITE + +static void write8(FILE *f, int x) { uint8 z = (uint8) x; fwrite(&z,1,1,f); } + +static void writefv(FILE *f, char *fmt, va_list v) +{ + while (*fmt) { + switch (*fmt++) { + case ' ': break; + case '1': { uint8 x = va_arg(v, int); write8(f,x); break; } + case '2': { int16 x = va_arg(v, int); write8(f,x); write8(f,x>>8); break; } + case '4': { int32 x = va_arg(v, int); write8(f,x); write8(f,x>>8); write8(f,x>>16); write8(f,x>>24); break; } + default: + assert(0); + va_end(v); + return; + } + } +} + +static void writef(FILE *f, char *fmt, ...) +{ + va_list v; + va_start(v, fmt); + writefv(f,fmt,v); + va_end(v); +} + +static void write_pixels(FILE *f, int rgb_dir, int vdir, int x, int y, int comp, void *data, int write_alpha, int scanline_pad) +{ + uint8 bg[3] = { 255, 0, 255}, px[3]; + uint32 zero = 0; + int i,j,k, j_end; + + if (vdir < 0) + j_end = -1, j = y-1; + else + j_end = y, j = 0; + + for (; j != j_end; j += vdir) { + for (i=0; i < x; ++i) { + uint8 *d = (uint8 *) data + (j*x+i)*comp; + if (write_alpha < 0) + fwrite(&d[comp-1], 1, 1, f); + switch (comp) { + case 1: + case 2: writef(f, "111", d[0],d[0],d[0]); + break; + case 4: + if (!write_alpha) { + for (k=0; k < 3; ++k) + px[k] = bg[k] + ((d[k] - bg[k]) * d[3])/255; + writef(f, "111", px[1-rgb_dir],px[1],px[1+rgb_dir]); + break; + } + /* FALLTHROUGH */ + case 3: + writef(f, "111", d[1-rgb_dir],d[1],d[1+rgb_dir]); + break; + } + if (write_alpha > 0) + fwrite(&d[comp-1], 1, 1, f); + } + fwrite(&zero,scanline_pad,1,f); + } +} + +static int outfile(char *filename, int rgb_dir, int vdir, int x, int y, int comp, void *data, int alpha, int pad, char *fmt, ...) +{ + FILE *f = fopen(filename, "wb"); + if (f) { + va_list v; + va_start(v, fmt); + writefv(f, fmt, v); + va_end(v); + write_pixels(f,rgb_dir,vdir,x,y,comp,data,alpha,pad); + fclose(f); + } + return f != NULL; +} + +int stbi_write_bmp(char *filename, int x, int y, int comp, void *data) +{ + int pad = (-x*3) & 3; + return outfile(filename,-1,-1,x,y,comp,data,0,pad, + "11 4 22 4" "4 44 22 444444", + 'B', 'M', 14+40+(x*3+pad)*y, 0,0, 14+40, // file header + 40, x,y, 1,24, 0,0,0,0,0,0); // bitmap header +} + +int stbi_write_tga(char *filename, int x, int y, int comp, void *data) +{ + int has_alpha = !(comp & 1); + return outfile(filename, -1,-1, x, y, comp, data, has_alpha, 0, + "111 221 2222 11", 0,0,2, 0,0,0, 0,0,x,y, 24+8*has_alpha, 8*has_alpha); +} + +// any other image formats that do interleaved rgb data? +// PNG: requires adler32,crc32 -- significant amount of code +// PSD: no, channels output separately +// TIFF: no, stripwise-interleaved... i think + +#endif // STBI_NO_WRITE + +#if __MOJOSETUP__ +void stb_image_stop_compiler_whining(void) +{ + // a lot of these aren't used if you #ifdef out all graphic formats, + // which you might do if, say, you are shipping a stdio-only installer. + // Just put references to them here so the compiler doesn't think they + // are unused statics. + (void) img_n; + (void) start_mem; + (void) at_eof; + (void) get8u; + (void) skip; + (void) get32; + (void) get32le; + (void) getn; + (void) convert_format; + (void) idata; + (void) expanded; + (void) out; + (void) code_buffer; +} +#endif + diff --git a/mk/linux/mojosetup/universal.h b/mk/linux/mojosetup/universal.h new file mode 100644 index 00000000..09e82223 --- /dev/null +++ b/mk/linux/mojosetup/universal.h @@ -0,0 +1,416 @@ +/** + * MojoSetup; a portable, flexible installation application. + * + * Please see the file LICENSE.txt in the source's root directory. + * + * This file written by Ryan C. Gordon. + */ + +#ifndef _INCL_UNIVERSAL_H_ +#define _INCL_UNIVERSAL_H_ + +// Include this file from everywhere...it provides basic type sanity, etc. + +// Include the Holy Trinity... +#include +#include +#include + +// and some others... +#include +#include // !!! FIXME: maybe use this in platform layer? + +// Windows system headers conflict with MojoSetup typedefs, so chop out +// all the massive and unnecessary dependencies that windows.h pulls in... +#if PLATFORM_WINDOWS +#define WIN32_LEAN_AND_MEAN 1 +#endif + +#if _MSC_VER +#include // need this to get alloca() in MSVC. +// !!! FIXME: temporary solution. +#define snprintf _snprintf +#define strcasecmp(x,y) _stricmp(x,y) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +// !!! FIXME: bad. +typedef char int8; +typedef unsigned char uint8; +typedef short int16; +typedef unsigned short uint16; +typedef int int32; +typedef unsigned int uint32; +typedef long long int64; +typedef unsigned long long uint64; + +// These are likely to get stolen by some overzealous library header... +#ifdef boolean +#error Something is defining boolean. Resolve this before including universal.h. +#endif +#ifdef true +#error Something is defining true. Resolve this before including universal.h. +#endif +#ifdef false +#error Something is defining false. Resolve this before including universal.h. +#endif + +typedef int boolean; +#define true 1 +#define false 0 + +// MSVC doesn't support the "inline" keyword for normal C sources, just C++. +#if defined(_MSC_VER) && !defined(__cplusplus) && !defined(inline) +#define inline __inline +#endif + +// Compiler-enforced printf() safety helper. +// This is appended to function declarations that use printf-style semantics, +// and will make sure your passed the right params to "..." for the +// format you specified, so gcc can catch programmer bugs at compile time. +#ifdef __GNUC__ +#define ISPRINTF(x,y) __attribute__((format (printf, x, y))) +#else +#define ISPRINTF(x,y) +#endif + +// Compiler-enforced sentinel safety helper. +// This is appended to function declarations that use sentinel-style semantics, +// and will make sure your passed the right params to "..." where a NULL +// is needed at the end of the list. +#ifdef __GNUC__ +#define ISSENTINEL __attribute__((sentinel)) +#else +#define ISSENTINEL +#endif + +// Command line access outside of main(). +extern int GArgc; +extern const char **GArgv; + +// Build-specific details. +extern const char *GBuildVer; + +// Static, non-stack memory for scratch work...not thread safe! +extern uint8 scratchbuf_128k[128 * 1024]; + + +#define UNICODE_BOGUS_CHAR_VALUE 0xFFFFFFFF +#define UNICODE_BOGUS_CHAR_CODEPOINT '?' +// !!! FIXME: document me! +uint32 utf8codepoint(const char **str); + +// !!! FIXME: document me! +int utf8len(const char *str); + +// !!! FIXME: document me! +char **splitText(const char *text, int scrw, int *_count, int *_w); + + +// Format a string, sort of (but not exactly!) like sprintf(). +// The only formatters accepted are %0 through %9 (and %%), which do not +// have to appear in order in the string, but match the varargs passed to the +// function. Only strings are accepted for varargs. This function allocates +// memory as necessary, so you need to free() the result, but don't need to +// preallocate a buffer and be concerned about overflowing it. +// This does not use scratchbuf_128k. +char *format(const char *fmt, ...); + +// Convert an int to a string. This uses incremental pieces of +// scratchbuf_128k for a buffer to store the results, and +// will overwrite itself after some number of calls when the memory +// is all used, but note that other things use scratchbuf_128k too, +// so this is only good for printf() things: +// fmtfunc("mission took %0 seconds, %1 points", numstr(secs), numstr(pts)); +const char *numstr(int val); + +// Call this for fatal errors that require immediate app termination. +// Does not clean up, or translate the error string. Try to avoid this. +// These are for crucial lowlevel issues that preclude any meaningful +// recovery (GUI didn't initialize, etc) +// Doesn't return, but if it did, you can assume it returns zero, so you can +// do: 'return panic("out of memory");' or whatnot. +int panic(const char *err); + +// Call this for a fatal problem that attempts an orderly shutdown (system +// is fully working, but config file is hosed, etc). +// This makes an attempt to clean up any files already created by the +// current installer (successfully run Setup.Install blocks in the config +// file are not cleaned up). +// If there's no GUI or Lua isn't initialized, this calls panic(). That's bad. +// Doesn't return, but if it did, you can assume it returns zero, so you can +// do: 'return fatal("missing config file");' or whatnot. +// THIS DOES NOT USE PRINTF-STYLE FORMAT CODES. Please see the comments for +// format() for details. +int fatal(const char *fmt, ...); + +// The platform layer should set up signal/exception handlers before calling +// MojoSetup_main(), that will call these functions. "crashed" for bug +// signals (SIGSEGV, GPF, etc), and "terminated" for external forces that +// destroy the process (SIGKILL, SIGINT, etc). These functions do not return. +void MojoSetup_crashed(void); +void MojoSetup_terminated(void); + +// Malloc replacements that blow up on allocation failure. +// Please note that xmalloc() will zero the newly-allocated memory buffer, +// like calloc() would, but xrealloc() makes no such promise! +void *xmalloc(size_t bytes); +void *xrealloc(void *ptr, size_t bytes); +char *xstrdup(const char *str); + +// strncpy() that promises to null-terminate the string, even on overflow. +char *xstrncpy(char *dst, const char *src, size_t len); + + +#ifdef malloc +#undef malloc +#endif +#define malloc(x) DO_NOT_CALL_MALLOC__USE_XMALLOC_INSTEAD + +#ifdef calloc +#undef calloc +#endif +#define calloc(x,y) DO_NOT_CALL_CALLOC__USE_XMALLOC_INSTEAD + +#ifdef realloc +#undef realloc +#endif +#define realloc(x,y) DO_NOT_CALL_REALLOC__USE_XREALLOC_INSTEAD + +#ifdef strdup +#undef strdup +#endif +#define strdup(x) DO_NOT_CALL_STRDUP__USE_XSTRDUP_INSTEAD + +#ifdef strncpy +#undef strncpy +#endif +#define strncpy(x,y,z) DO_NOT_CALL_STRNCPY__USE_XSTRNCPY_INSTEAD + +#if 0 // !!! FIXME: write me. +#ifdef strcasecmp +#undef strcasecmp +#endif +#define strcasecmp(x,y) DO_NOT_CALL_STRCASECMP__USE_UTF8STRICMP_INSTEAD +#endif + +#if 0 // !!! FIXME: write me. +#ifdef stricmp +#undef stricmp +#endif +#define stricmp(x,y) DO_NOT_CALL_STRICMP__USE_UTF8STRICMP_INSTEAD +#endif + +#if 0 // !!! FIXME: write me. +#ifdef strcmpi +#undef strcmpi +#endif +#define strcmpi(x,y) DO_NOT_CALL_STRCMPI__USE_UTF8STRICMP_INSTEAD +#endif + +// Localization support. +const char *translate(const char *str); +#ifdef _ +#undef _ +#endif +#define _(x) translate(x) + +// Call this with what you are profiling and the start time to log it: +// uint32 start = MojoPlatform_ticks(); +// ...do something... +// profile("Something I did", start); +uint32 profile(const char *what, uint32 start_time); + +// This tries to decode a graphic file in memory into an RGBA framebuffer, +// first with platform-specific facilities, if any, and then any built-in +// decoders, if that fails. +// (data) points to the compressed data, (size) is the number of bytes +// of compressed data. (*w) and (*h) will contain the images dimensions on +// return. +// Returns NULL on failure (unsupported, etc) and a pointer to the +// uncompressed data on success. Caller must free() the returned pointer! +uint8 *decodeImage(const uint8 *data, uint32 size, uint32 *w, uint32 *h); + +// See if a given string is in a valid product key format. +// (fmt) points to a string that would be a Setup.ProductKey.format. +// (key) is the key as it currently stands. It might be partially entered. +// Returns true if the key is valid for the format, false otherwise. +boolean isValidProductKey(const char *fmt, const char *key); + +// See if a given flag was on the command line +// +// cmdline("nosound") will return true if "-nosound", "--nosound", +// etc was on the command line. The option must start with a '-' on the +// command line to be noticed by this function. +// +// \param arg the command line flag to find +// \return true if arg was on the command line, false otherwise. +boolean cmdline(const char *arg); + + +// Get robust command line options, with optional default for missing ones. +// +// If the command line was ./myapp --a=b -c=d ----e f +// - cmdlinestr("a") will return "b" +// - cmdlinestr("c") will return "d" +// - cmdlinestr("e") will return "f" +// - cmdlinestr("g") will return the default string. +// +// Like cmdline(), the option must start with a '-'. +// +// \param arg The command line option to find. +// \param envr optional environment var to check if command line wasn't found. +// \param deflt The return value if (arg) isn't on the command line. +// \return The command line option, or (deflt) if the command line wasn't +// found. This return value is READ ONLY. Do not free it, either. +const char *cmdlinestr(const char *arg, const char *envr, const char *deflt); + +// Returns true if (str) matches (pattern), false otherwise. +// This is NOT a regexp! It only understands '?' and '*', similar to how +// wildcards worked in MS-DOS command lines. '?' matches one char, and +// '*' matches until the end of string or the next char in the pattern +// is seen. Case matters! +boolean wildcardMatch(const char *str, const char *pattern); + +// Logging functions. +typedef enum +{ + MOJOSETUP_LOG_NOTHING, + MOJOSETUP_LOG_ERRORS, + MOJOSETUP_LOG_WARNINGS, + MOJOSETUP_LOG_INFO, + MOJOSETUP_LOG_DEBUG, + MOJOSETUP_LOG_EVERYTHING +} MojoSetupLogLevel; + +extern MojoSetupLogLevel MojoLog_logLevel; +void MojoLog_initLogging(void); +void MojoLog_deinitLogging(void); + +// Logging facilities. +// THESE DO NOT USE PRINTF-STYLE FORMAT CODES. Please see the comments for +// format() for details. +void logWarning(const char *fmt, ...); +void logError(const char *fmt, ...); +void logInfo(const char *fmt, ...); +void logDebug(const char *fmt, ...); + + +// Checksums. + +typedef uint32 MojoCrc32; +void MojoCrc32_init(MojoCrc32 *context); +void MojoCrc32_append(MojoCrc32 *context, const uint8 *buf, uint32 len); +void MojoCrc32_finish(MojoCrc32 *context, uint32 *digest); + + +typedef struct MojoMd5 +{ + uint32 count[2]; + uint32 abcd[4]; + uint8 buf[64]; +} MojoMd5; + +void MojoMd5_init(MojoMd5 *pms); +void MojoMd5_append(MojoMd5 *pms, const uint8 *data, int nbytes); +void MojoMd5_finish(MojoMd5 *pms, uint8 digest[16]); + + +typedef struct +{ + uint32 state[5]; + uint32 count[2]; + uint8 buffer[64]; +} MojoSha1; + +void MojoSha1_init(MojoSha1 *context); +void MojoSha1_append(MojoSha1 *context, const uint8 *data, uint32 len); +void MojoSha1_finish(MojoSha1 *context, uint8 digest[20]); + +typedef struct MojoChecksumContext +{ + MojoCrc32 crc32; + MojoMd5 md5; + MojoSha1 sha1; +} MojoChecksumContext; + + +typedef struct MojoChecksums +{ + uint32 crc32; + uint8 md5[16]; + uint8 sha1[20]; +} MojoChecksums; + + +void MojoChecksum_init(MojoChecksumContext *ctx); +void MojoChecksum_append(MojoChecksumContext *c, const uint8 *data, uint32 ln); +void MojoChecksum_finish(MojoChecksumContext *c, MojoChecksums *sums); + + +// A pointer to this struct is passed to plugins, so they can access +// functionality in the base application. (Add to this as you need to.) +typedef struct MojoSetupEntryPoints +{ + void *(*xmalloc)(size_t bytes); + void *(*xrealloc)(void *ptr, size_t bytes); + char *(*xstrdup)(const char *str); + char *(*xstrncpy)(char *dst, const char *src, size_t len); + const char *(*translate)(const char *str); + void (*logWarning)(const char *fmt, ...); + void (*logError)(const char *fmt, ...); + void (*logInfo)(const char *fmt, ...); + void (*logDebug)(const char *fmt, ...); + char *(*format)(const char *fmt, ...); + const char *(*numstr)(int val); + uint32 (*ticks)(void); + uint32 (*utf8codepoint)(const char **_str); + int (*utf8len)(const char *str); + char **(*splitText)(const char *text, int scrw, int *_count, int *_w); + boolean (*isValidProductKey)(const char *f, const char *k); +} MojoSetupEntryPoints; +extern MojoSetupEntryPoints GEntryPoints; + + +#ifndef DOXYGEN_SHOULD_IGNORE_THIS +#if ((defined _MSC_VER) || (PLATFORM_BEOS)) +#define __EXPORT__ __declspec(dllexport) +#elif (defined SUNPRO_C) +#define __EXPORT__ __global +#elif (__GNUC__ >= 3) +#define __EXPORT__ __attribute__((visibility("default"))) +#else +#define __EXPORT__ +#endif +#endif // DOXYGEN_SHOULD_IGNORE_THIS + +#define DEFINE_TO_STR2(x) #x +#define DEFINE_TO_STR(x) DEFINE_TO_STR2(x) + +#ifndef DOXYGEN_SHOULD_IGNORE_THIS +#define STUBBED2(prelog, x) \ +do { \ + static boolean seen_this = false; \ + if (!seen_this) \ + { \ + seen_this = true; \ + prelog logDebug("STUBBED: %0 at %1 (%2:%3)\n", x, __FUNCTION__, \ + __FILE__, DEFINE_TO_STR(__LINE__)); \ + } \ +} while (false) +#define STUBBED(x) STUBBED2(,x) +#endif + +#define STATICARRAYLEN(x) ( (sizeof ((x))) / (sizeof ((x)[0])) ) + +#ifdef __cplusplus +} +#endif + +#endif + +// end of universal.h ... + diff --git a/mk/linux/mojosetup/zlib/adler32.c b/mk/linux/mojosetup/zlib/adler32.c new file mode 100644 index 00000000..65ad6a5a --- /dev/null +++ b/mk/linux/mojosetup/zlib/adler32.c @@ -0,0 +1,169 @@ +/* adler32.c -- compute the Adler-32 checksum of a data stream + * Copyright (C) 1995-2007 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#include "zutil.h" + +#define local static + +local uLong adler32_combine_(uLong adler1, uLong adler2, z_off64_t len2); + +#define BASE 65521UL /* largest prime smaller than 65536 */ +#define NMAX 5552 +/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ + +#define DO1(buf,i) {adler += (buf)[i]; sum2 += adler;} +#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1); +#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2); +#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4); +#define DO16(buf) DO8(buf,0); DO8(buf,8); + +/* use NO_DIVIDE if your processor does not do division in hardware */ +#ifdef NO_DIVIDE +# define MOD(a) \ + do { \ + if (a >= (BASE << 16)) a -= (BASE << 16); \ + if (a >= (BASE << 15)) a -= (BASE << 15); \ + if (a >= (BASE << 14)) a -= (BASE << 14); \ + if (a >= (BASE << 13)) a -= (BASE << 13); \ + if (a >= (BASE << 12)) a -= (BASE << 12); \ + if (a >= (BASE << 11)) a -= (BASE << 11); \ + if (a >= (BASE << 10)) a -= (BASE << 10); \ + if (a >= (BASE << 9)) a -= (BASE << 9); \ + if (a >= (BASE << 8)) a -= (BASE << 8); \ + if (a >= (BASE << 7)) a -= (BASE << 7); \ + if (a >= (BASE << 6)) a -= (BASE << 6); \ + if (a >= (BASE << 5)) a -= (BASE << 5); \ + if (a >= (BASE << 4)) a -= (BASE << 4); \ + if (a >= (BASE << 3)) a -= (BASE << 3); \ + if (a >= (BASE << 2)) a -= (BASE << 2); \ + if (a >= (BASE << 1)) a -= (BASE << 1); \ + if (a >= BASE) a -= BASE; \ + } while (0) +# define MOD4(a) \ + do { \ + if (a >= (BASE << 4)) a -= (BASE << 4); \ + if (a >= (BASE << 3)) a -= (BASE << 3); \ + if (a >= (BASE << 2)) a -= (BASE << 2); \ + if (a >= (BASE << 1)) a -= (BASE << 1); \ + if (a >= BASE) a -= BASE; \ + } while (0) +#else +# define MOD(a) a %= BASE +# define MOD4(a) a %= BASE +#endif + +/* ========================================================================= */ +uLong ZEXPORT adler32(adler, buf, len) + uLong adler; + const Bytef *buf; + uInt len; +{ + unsigned long sum2; + unsigned n; + + /* split Adler-32 into component sums */ + sum2 = (adler >> 16) & 0xffff; + adler &= 0xffff; + + /* in case user likes doing a byte at a time, keep it fast */ + if (len == 1) { + adler += buf[0]; + if (adler >= BASE) + adler -= BASE; + sum2 += adler; + if (sum2 >= BASE) + sum2 -= BASE; + return adler | (sum2 << 16); + } + + /* initial Adler-32 value (deferred check for len == 1 speed) */ + if (buf == Z_NULL) + return 1L; + + /* in case short lengths are provided, keep it somewhat fast */ + if (len < 16) { + while (len--) { + adler += *buf++; + sum2 += adler; + } + if (adler >= BASE) + adler -= BASE; + MOD4(sum2); /* only added so many BASE's */ + return adler | (sum2 << 16); + } + + /* do length NMAX blocks -- requires just one modulo operation */ + while (len >= NMAX) { + len -= NMAX; + n = NMAX / 16; /* NMAX is divisible by 16 */ + do { + DO16(buf); /* 16 sums unrolled */ + buf += 16; + } while (--n); + MOD(adler); + MOD(sum2); + } + + /* do remaining bytes (less than NMAX, still just one modulo) */ + if (len) { /* avoid modulos if none remaining */ + while (len >= 16) { + len -= 16; + DO16(buf); + buf += 16; + } + while (len--) { + adler += *buf++; + sum2 += adler; + } + MOD(adler); + MOD(sum2); + } + + /* return recombined sums */ + return adler | (sum2 << 16); +} + +/* ========================================================================= */ +local uLong adler32_combine_(adler1, adler2, len2) + uLong adler1; + uLong adler2; + z_off64_t len2; +{ + unsigned long sum1; + unsigned long sum2; + unsigned rem; + + /* the derivation of this formula is left as an exercise for the reader */ + rem = (unsigned)(len2 % BASE); + sum1 = adler1 & 0xffff; + sum2 = rem * sum1; + MOD(sum2); + sum1 += (adler2 & 0xffff) + BASE - 1; + sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem; + if (sum1 >= BASE) sum1 -= BASE; + if (sum1 >= BASE) sum1 -= BASE; + if (sum2 >= (BASE << 1)) sum2 -= (BASE << 1); + if (sum2 >= BASE) sum2 -= BASE; + return sum1 | (sum2 << 16); +} + +/* ========================================================================= */ +uLong ZEXPORT adler32_combine(adler1, adler2, len2) + uLong adler1; + uLong adler2; + z_off_t len2; +{ + return adler32_combine_(adler1, adler2, len2); +} + +uLong ZEXPORT adler32_combine64(adler1, adler2, len2) + uLong adler1; + uLong adler2; + z_off64_t len2; +{ + return adler32_combine_(adler1, adler2, len2); +} diff --git a/mk/linux/mojosetup/zlib/compress.c b/mk/linux/mojosetup/zlib/compress.c new file mode 100644 index 00000000..ea4dfbe9 --- /dev/null +++ b/mk/linux/mojosetup/zlib/compress.c @@ -0,0 +1,80 @@ +/* compress.c -- compress a memory buffer + * Copyright (C) 1995-2005 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#define ZLIB_INTERNAL +#include "zlib.h" + +/* =========================================================================== + Compresses the source buffer into the destination buffer. The level + parameter has the same meaning as in deflateInit. sourceLen is the byte + length of the source buffer. Upon entry, destLen is the total size of the + destination buffer, which must be at least 0.1% larger than sourceLen plus + 12 bytes. Upon exit, destLen is the actual size of the compressed buffer. + + compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_BUF_ERROR if there was not enough room in the output buffer, + Z_STREAM_ERROR if the level parameter is invalid. +*/ +int ZEXPORT compress2 (dest, destLen, source, sourceLen, level) + Bytef *dest; + uLongf *destLen; + const Bytef *source; + uLong sourceLen; + int level; +{ + z_stream stream; + int err; + + stream.next_in = (Bytef*)source; + stream.avail_in = (uInt)sourceLen; +#ifdef MAXSEG_64K + /* Check for source > 64K on 16-bit machine: */ + if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; +#endif + stream.next_out = dest; + stream.avail_out = (uInt)*destLen; + if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; + + stream.zalloc = (alloc_func)0; + stream.zfree = (free_func)0; + stream.opaque = (voidpf)0; + + err = deflateInit(&stream, level); + if (err != Z_OK) return err; + + err = deflate(&stream, Z_FINISH); + if (err != Z_STREAM_END) { + deflateEnd(&stream); + return err == Z_OK ? Z_BUF_ERROR : err; + } + *destLen = stream.total_out; + + err = deflateEnd(&stream); + return err; +} + +/* =========================================================================== + */ +int ZEXPORT compress (dest, destLen, source, sourceLen) + Bytef *dest; + uLongf *destLen; + const Bytef *source; + uLong sourceLen; +{ + return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION); +} + +/* =========================================================================== + If the default memLevel or windowBits for deflateInit() is changed, then + this function needs to be updated. + */ +uLong ZEXPORT compressBound (sourceLen) + uLong sourceLen; +{ + return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + + (sourceLen >> 25) + 13; +} diff --git a/mk/linux/mojosetup/zlib/crc32.c b/mk/linux/mojosetup/zlib/crc32.c new file mode 100644 index 00000000..1acc7ed8 --- /dev/null +++ b/mk/linux/mojosetup/zlib/crc32.c @@ -0,0 +1,442 @@ +/* crc32.c -- compute the CRC-32 of a data stream + * Copyright (C) 1995-2006 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + * + * Thanks to Rodney Brown for his contribution of faster + * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing + * tables for updating the shift register in one step with three exclusive-ors + * instead of four steps with four exclusive-ors. This results in about a + * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3. + */ + +/* @(#) $Id$ */ + +/* + Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore + protection on the static variables used to control the first-use generation + of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should + first call get_crc_table() to initialize the tables before allowing more than + one thread to use crc32(). + */ + +#ifdef MAKECRCH +# include +# ifndef DYNAMIC_CRC_TABLE +# define DYNAMIC_CRC_TABLE +# endif /* !DYNAMIC_CRC_TABLE */ +#endif /* MAKECRCH */ + +#include "zutil.h" /* for STDC and FAR definitions */ + +#define local static + +/* Find a four-byte integer type for crc32_little() and crc32_big(). */ +#ifndef NOBYFOUR +# ifdef STDC /* need ANSI C limits.h to determine sizes */ +# include +# define BYFOUR +# if (UINT_MAX == 0xffffffffUL) + typedef unsigned int u4; +# else +# if (ULONG_MAX == 0xffffffffUL) + typedef unsigned long u4; +# else +# if (USHRT_MAX == 0xffffffffUL) + typedef unsigned short u4; +# else +# undef BYFOUR /* can't find a four-byte integer type! */ +# endif +# endif +# endif +# endif /* STDC */ +#endif /* !NOBYFOUR */ + +/* Definitions for doing the crc four data bytes at a time. */ +#ifdef BYFOUR +# define REV(w) ((((w)>>24)&0xff)+(((w)>>8)&0xff00)+ \ + (((w)&0xff00)<<8)+(((w)&0xff)<<24)) + local unsigned long crc32_little OF((unsigned long, + const unsigned char FAR *, unsigned)); + local unsigned long crc32_big OF((unsigned long, + const unsigned char FAR *, unsigned)); +# define TBLS 8 +#else +# define TBLS 1 +#endif /* BYFOUR */ + +/* Local functions for crc concatenation */ +local unsigned long gf2_matrix_times OF((unsigned long *mat, + unsigned long vec)); +local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat)); +local uLong crc32_combine_(uLong crc1, uLong crc2, z_off64_t len2); + + +#ifdef DYNAMIC_CRC_TABLE + +local volatile int crc_table_empty = 1; +local unsigned long FAR crc_table[TBLS][256]; +local void make_crc_table OF((void)); +#ifdef MAKECRCH + local void write_table OF((FILE *, const unsigned long FAR *)); +#endif /* MAKECRCH */ +/* + Generate tables for a byte-wise 32-bit CRC calculation on the polynomial: + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. + + Polynomials over GF(2) are represented in binary, one bit per coefficient, + with the lowest powers in the most significant bit. Then adding polynomials + is just exclusive-or, and multiplying a polynomial by x is a right shift by + one. If we call the above polynomial p, and represent a byte as the + polynomial q, also with the lowest power in the most significant bit (so the + byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + where a mod b means the remainder after dividing a by b. + + This calculation is done using the shift-register method of multiplying and + taking the remainder. The register is initialized to zero, and for each + incoming bit, x^32 is added mod p to the register if the bit is a one (where + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + x (which is shifting right by one and adding x^32 mod p if the bit shifted + out is a one). We start with the highest power (least significant bit) of + q and repeat for all eight bits of q. + + The first table is simply the CRC of all possible eight bit values. This is + all the information needed to generate CRCs on data a byte at a time for all + combinations of CRC register values and incoming bytes. The remaining tables + allow for word-at-a-time CRC calculation for both big-endian and little- + endian machines, where a word is four bytes. +*/ +local void make_crc_table() +{ + unsigned long c; + int n, k; + unsigned long poly; /* polynomial exclusive-or pattern */ + /* terms of polynomial defining this crc (except x^32): */ + static volatile int first = 1; /* flag to limit concurrent making */ + static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; + + /* See if another task is already doing this (not thread-safe, but better + than nothing -- significantly reduces duration of vulnerability in + case the advice about DYNAMIC_CRC_TABLE is ignored) */ + if (first) { + first = 0; + + /* make exclusive-or pattern from polynomial (0xedb88320UL) */ + poly = 0UL; + for (n = 0; n < sizeof(p)/sizeof(unsigned char); n++) + poly |= 1UL << (31 - p[n]); + + /* generate a crc for every 8-bit value */ + for (n = 0; n < 256; n++) { + c = (unsigned long)n; + for (k = 0; k < 8; k++) + c = c & 1 ? poly ^ (c >> 1) : c >> 1; + crc_table[0][n] = c; + } + +#ifdef BYFOUR + /* generate crc for each value followed by one, two, and three zeros, + and then the byte reversal of those as well as the first table */ + for (n = 0; n < 256; n++) { + c = crc_table[0][n]; + crc_table[4][n] = REV(c); + for (k = 1; k < 4; k++) { + c = crc_table[0][c & 0xff] ^ (c >> 8); + crc_table[k][n] = c; + crc_table[k + 4][n] = REV(c); + } + } +#endif /* BYFOUR */ + + crc_table_empty = 0; + } + else { /* not first */ + /* wait for the other guy to finish (not efficient, but rare) */ + while (crc_table_empty) + ; + } + +#ifdef MAKECRCH + /* write out CRC tables to crc32.h */ + { + FILE *out; + + out = fopen("crc32.h", "w"); + if (out == NULL) return; + fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n"); + fprintf(out, " * Generated automatically by crc32.c\n */\n\n"); + fprintf(out, "local const unsigned long FAR "); + fprintf(out, "crc_table[TBLS][256] =\n{\n {\n"); + write_table(out, crc_table[0]); +# ifdef BYFOUR + fprintf(out, "#ifdef BYFOUR\n"); + for (k = 1; k < 8; k++) { + fprintf(out, " },\n {\n"); + write_table(out, crc_table[k]); + } + fprintf(out, "#endif\n"); +# endif /* BYFOUR */ + fprintf(out, " }\n};\n"); + fclose(out); + } +#endif /* MAKECRCH */ +} + +#ifdef MAKECRCH +local void write_table(out, table) + FILE *out; + const unsigned long FAR *table; +{ + int n; + + for (n = 0; n < 256; n++) + fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : " ", table[n], + n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", ")); +} +#endif /* MAKECRCH */ + +#else /* !DYNAMIC_CRC_TABLE */ +/* ======================================================================== + * Tables of CRC-32s of all single-byte values, made by make_crc_table(). + */ +#include "crc32.h" +#endif /* DYNAMIC_CRC_TABLE */ + +/* ========================================================================= + * This function can be used by asm versions of crc32() + */ +const unsigned long FAR * ZEXPORT get_crc_table() +{ +#ifdef DYNAMIC_CRC_TABLE + if (crc_table_empty) + make_crc_table(); +#endif /* DYNAMIC_CRC_TABLE */ + return (const unsigned long FAR *)crc_table; +} + +/* ========================================================================= */ +#define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8) +#define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1 + +/* ========================================================================= */ +unsigned long ZEXPORT crc32(crc, buf, len) + unsigned long crc; + const unsigned char FAR *buf; + unsigned len; +{ + if (buf == Z_NULL) return 0UL; + +#ifdef DYNAMIC_CRC_TABLE + if (crc_table_empty) + make_crc_table(); +#endif /* DYNAMIC_CRC_TABLE */ + +#ifdef BYFOUR + if (sizeof(void *) == sizeof(ptrdiff_t)) { + u4 endian; + + endian = 1; + if (*((unsigned char *)(&endian))) + return crc32_little(crc, buf, len); + else + return crc32_big(crc, buf, len); + } +#endif /* BYFOUR */ + crc = crc ^ 0xffffffffUL; + while (len >= 8) { + DO8; + len -= 8; + } + if (len) do { + DO1; + } while (--len); + return crc ^ 0xffffffffUL; +} + +#ifdef BYFOUR + +/* ========================================================================= */ +#define DOLIT4 c ^= *buf4++; \ + c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \ + crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24] +#define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4 + +/* ========================================================================= */ +local unsigned long crc32_little(crc, buf, len) + unsigned long crc; + const unsigned char FAR *buf; + unsigned len; +{ + register u4 c; + register const u4 FAR *buf4; + + c = (u4)crc; + c = ~c; + while (len && ((ptrdiff_t)buf & 3)) { + c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); + len--; + } + + buf4 = (const u4 FAR *)(const void FAR *)buf; + while (len >= 32) { + DOLIT32; + len -= 32; + } + while (len >= 4) { + DOLIT4; + len -= 4; + } + buf = (const unsigned char FAR *)buf4; + + if (len) do { + c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); + } while (--len); + c = ~c; + return (unsigned long)c; +} + +/* ========================================================================= */ +#define DOBIG4 c ^= *++buf4; \ + c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ + crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] +#define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 + +/* ========================================================================= */ +local unsigned long crc32_big(crc, buf, len) + unsigned long crc; + const unsigned char FAR *buf; + unsigned len; +{ + register u4 c; + register const u4 FAR *buf4; + + c = REV((u4)crc); + c = ~c; + while (len && ((ptrdiff_t)buf & 3)) { + c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); + len--; + } + + buf4 = (const u4 FAR *)(const void FAR *)buf; + buf4--; + while (len >= 32) { + DOBIG32; + len -= 32; + } + while (len >= 4) { + DOBIG4; + len -= 4; + } + buf4++; + buf = (const unsigned char FAR *)buf4; + + if (len) do { + c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); + } while (--len); + c = ~c; + return (unsigned long)(REV(c)); +} + +#endif /* BYFOUR */ + +#define GF2_DIM 32 /* dimension of GF(2) vectors (length of CRC) */ + +/* ========================================================================= */ +local unsigned long gf2_matrix_times(mat, vec) + unsigned long *mat; + unsigned long vec; +{ + unsigned long sum; + + sum = 0; + while (vec) { + if (vec & 1) + sum ^= *mat; + vec >>= 1; + mat++; + } + return sum; +} + +/* ========================================================================= */ +local void gf2_matrix_square(square, mat) + unsigned long *square; + unsigned long *mat; +{ + int n; + + for (n = 0; n < GF2_DIM; n++) + square[n] = gf2_matrix_times(mat, mat[n]); +} + +/* ========================================================================= */ +local uLong crc32_combine_(crc1, crc2, len2) + uLong crc1; + uLong crc2; + z_off64_t len2; +{ + int n; + unsigned long row; + unsigned long even[GF2_DIM]; /* even-power-of-two zeros operator */ + unsigned long odd[GF2_DIM]; /* odd-power-of-two zeros operator */ + + /* degenerate case (also disallow negative lengths) */ + if (len2 <= 0) + return crc1; + + /* put operator for one zero bit in odd */ + odd[0] = 0xedb88320UL; /* CRC-32 polynomial */ + row = 1; + for (n = 1; n < GF2_DIM; n++) { + odd[n] = row; + row <<= 1; + } + + /* put operator for two zero bits in even */ + gf2_matrix_square(even, odd); + + /* put operator for four zero bits in odd */ + gf2_matrix_square(odd, even); + + /* apply len2 zeros to crc1 (first square will put the operator for one + zero byte, eight zero bits, in even) */ + do { + /* apply zeros operator for this bit of len2 */ + gf2_matrix_square(even, odd); + if (len2 & 1) + crc1 = gf2_matrix_times(even, crc1); + len2 >>= 1; + + /* if no more bits set, then done */ + if (len2 == 0) + break; + + /* another iteration of the loop with odd and even swapped */ + gf2_matrix_square(odd, even); + if (len2 & 1) + crc1 = gf2_matrix_times(odd, crc1); + len2 >>= 1; + + /* if no more bits set, then done */ + } while (len2 != 0); + + /* return combined crc */ + crc1 ^= crc2; + return crc1; +} + +/* ========================================================================= */ +uLong ZEXPORT crc32_combine(crc1, crc2, len2) + uLong crc1; + uLong crc2; + z_off_t len2; +{ + return crc32_combine_(crc1, crc2, len2); +} + +uLong ZEXPORT crc32_combine64(crc1, crc2, len2) + uLong crc1; + uLong crc2; + z_off64_t len2; +{ + return crc32_combine_(crc1, crc2, len2); +} diff --git a/mk/linux/mojosetup/zlib/crc32.h b/mk/linux/mojosetup/zlib/crc32.h new file mode 100644 index 00000000..8053b611 --- /dev/null +++ b/mk/linux/mojosetup/zlib/crc32.h @@ -0,0 +1,441 @@ +/* crc32.h -- tables for rapid CRC calculation + * Generated automatically by crc32.c + */ + +local const unsigned long FAR crc_table[TBLS][256] = +{ + { + 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL, + 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL, + 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL, + 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL, + 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL, + 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL, + 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL, + 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL, + 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL, + 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL, + 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL, + 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL, + 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL, + 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL, + 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL, + 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL, + 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL, + 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL, + 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL, + 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL, + 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL, + 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL, + 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL, + 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL, + 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL, + 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL, + 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL, + 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL, + 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL, + 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL, + 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL, + 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL, + 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL, + 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL, + 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL, + 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL, + 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL, + 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL, + 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL, + 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL, + 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL, + 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL, + 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL, + 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL, + 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL, + 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL, + 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL, + 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL, + 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL, + 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL, + 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL, + 0x2d02ef8dUL +#ifdef BYFOUR + }, + { + 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL, + 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL, + 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL, + 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL, + 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL, + 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL, + 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL, + 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL, + 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL, + 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL, + 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL, + 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL, + 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL, + 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL, + 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL, + 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL, + 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL, + 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL, + 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL, + 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL, + 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL, + 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL, + 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL, + 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL, + 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL, + 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL, + 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL, + 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL, + 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL, + 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL, + 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL, + 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL, + 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL, + 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL, + 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL, + 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL, + 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL, + 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL, + 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL, + 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL, + 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL, + 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL, + 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL, + 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL, + 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL, + 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL, + 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL, + 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL, + 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL, + 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL, + 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL, + 0x9324fd72UL + }, + { + 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL, + 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL, + 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL, + 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL, + 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL, + 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL, + 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL, + 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL, + 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL, + 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL, + 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL, + 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL, + 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL, + 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL, + 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL, + 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL, + 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL, + 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL, + 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL, + 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL, + 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL, + 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL, + 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL, + 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL, + 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL, + 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL, + 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL, + 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL, + 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL, + 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL, + 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL, + 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL, + 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL, + 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL, + 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL, + 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL, + 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL, + 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL, + 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL, + 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL, + 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL, + 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL, + 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL, + 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL, + 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL, + 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL, + 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL, + 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL, + 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL, + 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL, + 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL, + 0xbe9834edUL + }, + { + 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL, + 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL, + 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL, + 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL, + 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL, + 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL, + 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL, + 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL, + 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL, + 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL, + 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL, + 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL, + 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL, + 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL, + 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL, + 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL, + 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL, + 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL, + 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL, + 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL, + 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL, + 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL, + 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL, + 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL, + 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL, + 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL, + 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL, + 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL, + 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL, + 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL, + 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL, + 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL, + 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL, + 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL, + 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL, + 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL, + 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL, + 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL, + 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL, + 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL, + 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL, + 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL, + 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL, + 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL, + 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL, + 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL, + 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL, + 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL, + 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL, + 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL, + 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL, + 0xde0506f1UL + }, + { + 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL, + 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL, + 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL, + 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL, + 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL, + 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL, + 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL, + 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL, + 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL, + 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL, + 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL, + 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL, + 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL, + 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL, + 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL, + 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL, + 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL, + 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL, + 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL, + 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL, + 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL, + 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL, + 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL, + 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL, + 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL, + 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL, + 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL, + 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL, + 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL, + 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL, + 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL, + 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL, + 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL, + 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL, + 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL, + 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL, + 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL, + 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL, + 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL, + 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL, + 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL, + 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL, + 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL, + 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL, + 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL, + 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL, + 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL, + 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL, + 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL, + 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL, + 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL, + 0x8def022dUL + }, + { + 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL, + 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL, + 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL, + 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL, + 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL, + 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL, + 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL, + 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL, + 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL, + 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL, + 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL, + 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL, + 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL, + 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL, + 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL, + 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL, + 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL, + 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL, + 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL, + 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL, + 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL, + 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL, + 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL, + 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL, + 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL, + 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL, + 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL, + 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL, + 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL, + 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL, + 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL, + 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL, + 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL, + 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL, + 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL, + 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL, + 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL, + 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL, + 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL, + 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL, + 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL, + 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL, + 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL, + 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL, + 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL, + 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL, + 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL, + 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL, + 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL, + 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL, + 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL, + 0x72fd2493UL + }, + { + 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL, + 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL, + 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL, + 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL, + 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL, + 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL, + 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL, + 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL, + 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL, + 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL, + 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL, + 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL, + 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL, + 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL, + 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL, + 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL, + 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL, + 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL, + 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL, + 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL, + 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL, + 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL, + 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL, + 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL, + 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL, + 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL, + 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL, + 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL, + 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL, + 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL, + 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL, + 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL, + 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL, + 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL, + 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL, + 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL, + 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL, + 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL, + 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL, + 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL, + 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL, + 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL, + 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL, + 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL, + 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL, + 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL, + 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL, + 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL, + 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL, + 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL, + 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL, + 0xed3498beUL + }, + { + 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL, + 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL, + 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL, + 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL, + 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL, + 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL, + 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL, + 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL, + 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL, + 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL, + 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL, + 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL, + 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL, + 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL, + 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL, + 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL, + 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL, + 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL, + 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL, + 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL, + 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL, + 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL, + 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL, + 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL, + 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL, + 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL, + 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL, + 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL, + 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL, + 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL, + 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL, + 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL, + 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL, + 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL, + 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL, + 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL, + 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL, + 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL, + 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL, + 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL, + 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL, + 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL, + 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL, + 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL, + 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL, + 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL, + 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL, + 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL, + 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL, + 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL, + 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL, + 0xf10605deUL +#endif + } +}; diff --git a/mk/linux/mojosetup/zlib/deflate.c b/mk/linux/mojosetup/zlib/deflate.c new file mode 100644 index 00000000..fcd698cc --- /dev/null +++ b/mk/linux/mojosetup/zlib/deflate.c @@ -0,0 +1,1834 @@ +/* deflate.c -- compress data using the deflation algorithm + * Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* + * ALGORITHM + * + * The "deflation" process depends on being able to identify portions + * of the input text which are identical to earlier input (within a + * sliding window trailing behind the input currently being processed). + * + * The most straightforward technique turns out to be the fastest for + * most input files: try all possible matches and select the longest. + * The key feature of this algorithm is that insertions into the string + * dictionary are very simple and thus fast, and deletions are avoided + * completely. Insertions are performed at each input character, whereas + * string matches are performed only when the previous match ends. So it + * is preferable to spend more time in matches to allow very fast string + * insertions and avoid deletions. The matching algorithm for small + * strings is inspired from that of Rabin & Karp. A brute force approach + * is used to find longer strings when a small match has been found. + * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze + * (by Leonid Broukhis). + * A previous version of this file used a more sophisticated algorithm + * (by Fiala and Greene) which is guaranteed to run in linear amortized + * time, but has a larger average cost, uses more memory and is patented. + * However the F&G algorithm may be faster for some highly redundant + * files if the parameter max_chain_length (described below) is too large. + * + * ACKNOWLEDGEMENTS + * + * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and + * I found it in 'freeze' written by Leonid Broukhis. + * Thanks to many people for bug reports and testing. + * + * REFERENCES + * + * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification". + * Available in http://www.ietf.org/rfc/rfc1951.txt + * + * A description of the Rabin and Karp algorithm is given in the book + * "Algorithms" by R. Sedgewick, Addison-Wesley, p252. + * + * Fiala,E.R., and Greene,D.H. + * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595 + * + */ + +/* @(#) $Id$ */ + +#include "deflate.h" + +const char deflate_copyright[] = + " deflate 1.2.4 Copyright 1995-2010 Jean-loup Gailly and Mark Adler "; +/* + If you use the zlib library in a product, an acknowledgment is welcome + in the documentation of your product. If for some reason you cannot + include such an acknowledgment, I would appreciate that you keep this + copyright string in the executable of your product. + */ + +/* =========================================================================== + * Function prototypes. + */ +typedef enum { + need_more, /* block not completed, need more input or more output */ + block_done, /* block flush performed */ + finish_started, /* finish started, need only more output at next deflate */ + finish_done /* finish done, accept no more input or output */ +} block_state; + +typedef block_state (*compress_func) OF((deflate_state *s, int flush)); +/* Compression function. Returns the block state after the call. */ + +local void fill_window OF((deflate_state *s)); +local block_state deflate_stored OF((deflate_state *s, int flush)); +local block_state deflate_fast OF((deflate_state *s, int flush)); +#ifndef FASTEST +local block_state deflate_slow OF((deflate_state *s, int flush)); +#endif +local block_state deflate_rle OF((deflate_state *s, int flush)); +local block_state deflate_huff OF((deflate_state *s, int flush)); +local void lm_init OF((deflate_state *s)); +local void putShortMSB OF((deflate_state *s, uInt b)); +local void flush_pending OF((z_streamp strm)); +local int read_buf OF((z_streamp strm, Bytef *buf, unsigned size)); +#ifdef ASMV + void match_init OF((void)); /* asm code initialization */ + uInt longest_match OF((deflate_state *s, IPos cur_match)); +#else +local uInt longest_match OF((deflate_state *s, IPos cur_match)); +#endif + +#ifdef DEBUG +local void check_match OF((deflate_state *s, IPos start, IPos match, + int length)); +#endif + +/* =========================================================================== + * Local data + */ + +#define NIL 0 +/* Tail of hash chains */ + +#ifndef TOO_FAR +# define TOO_FAR 4096 +#endif +/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */ + +/* Values for max_lazy_match, good_match and max_chain_length, depending on + * the desired pack level (0..9). The values given below have been tuned to + * exclude worst case performance for pathological files. Better values may be + * found for specific files. + */ +typedef struct config_s { + ush good_length; /* reduce lazy search above this match length */ + ush max_lazy; /* do not perform lazy search above this match length */ + ush nice_length; /* quit search above this match length */ + ush max_chain; + compress_func func; +} config; + +#ifdef FASTEST +local const config configuration_table[2] = { +/* good lazy nice chain */ +/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */ +/* 1 */ {4, 4, 8, 4, deflate_fast}}; /* max speed, no lazy matches */ +#else +local const config configuration_table[10] = { +/* good lazy nice chain */ +/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */ +/* 1 */ {4, 4, 8, 4, deflate_fast}, /* max speed, no lazy matches */ +/* 2 */ {4, 5, 16, 8, deflate_fast}, +/* 3 */ {4, 6, 32, 32, deflate_fast}, + +/* 4 */ {4, 4, 16, 16, deflate_slow}, /* lazy matches */ +/* 5 */ {8, 16, 32, 32, deflate_slow}, +/* 6 */ {8, 16, 128, 128, deflate_slow}, +/* 7 */ {8, 32, 128, 256, deflate_slow}, +/* 8 */ {32, 128, 258, 1024, deflate_slow}, +/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* max compression */ +#endif + +/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4 + * For deflate_fast() (levels <= 3) good is ignored and lazy has a different + * meaning. + */ + +#define EQUAL 0 +/* result of memcmp for equal strings */ + +#ifndef NO_DUMMY_DECL +struct static_tree_desc_s {int dummy;}; /* for buggy compilers */ +#endif + +/* =========================================================================== + * Update a hash value with the given input byte + * IN assertion: all calls to to UPDATE_HASH are made with consecutive + * input characters, so that a running hash key can be computed from the + * previous key instead of complete recalculation each time. + */ +#define UPDATE_HASH(s,h,c) (h = (((h)<hash_shift) ^ (c)) & s->hash_mask) + + +/* =========================================================================== + * Insert string str in the dictionary and set match_head to the previous head + * of the hash chain (the most recent string with same hash key). Return + * the previous length of the hash chain. + * If this file is compiled with -DFASTEST, the compression level is forced + * to 1, and no hash chains are maintained. + * IN assertion: all calls to to INSERT_STRING are made with consecutive + * input characters and the first MIN_MATCH bytes of str are valid + * (except for the last MIN_MATCH-1 bytes of the input file). + */ +#ifdef FASTEST +#define INSERT_STRING(s, str, match_head) \ + (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ + match_head = s->head[s->ins_h], \ + s->head[s->ins_h] = (Pos)(str)) +#else +#define INSERT_STRING(s, str, match_head) \ + (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ + match_head = s->prev[(str) & s->w_mask] = s->head[s->ins_h], \ + s->head[s->ins_h] = (Pos)(str)) +#endif + +/* =========================================================================== + * Initialize the hash table (avoiding 64K overflow for 16 bit systems). + * prev[] will be initialized on the fly. + */ +#define CLEAR_HASH(s) \ + s->head[s->hash_size-1] = NIL; \ + zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); + +/* ========================================================================= */ +int ZEXPORT deflateInit_(strm, level, version, stream_size) + z_streamp strm; + int level; + const char *version; + int stream_size; +{ + return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, + Z_DEFAULT_STRATEGY, version, stream_size); + /* To do: ignore strm->next_in if we use it as window */ +} + +/* ========================================================================= */ +int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, + version, stream_size) + z_streamp strm; + int level; + int method; + int windowBits; + int memLevel; + int strategy; + const char *version; + int stream_size; +{ + deflate_state *s; + int wrap = 1; + static const char my_version[] = ZLIB_VERSION; + + ushf *overlay; + /* We overlay pending_buf and d_buf+l_buf. This works since the average + * output size for (length,distance) codes is <= 24 bits. + */ + + if (version == Z_NULL || version[0] != my_version[0] || + stream_size != sizeof(z_stream)) { + return Z_VERSION_ERROR; + } + if (strm == Z_NULL) return Z_STREAM_ERROR; + + strm->msg = Z_NULL; + if (strm->zalloc == (alloc_func)0) { + strm->zalloc = zcalloc; + strm->opaque = (voidpf)0; + } + if (strm->zfree == (free_func)0) strm->zfree = zcfree; + +#ifdef FASTEST + if (level != 0) level = 1; +#else + if (level == Z_DEFAULT_COMPRESSION) level = 6; +#endif + + if (windowBits < 0) { /* suppress zlib wrapper */ + wrap = 0; + windowBits = -windowBits; + } +#ifdef GZIP + else if (windowBits > 15) { + wrap = 2; /* write gzip wrapper instead */ + windowBits -= 16; + } +#endif + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED || + windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || + strategy < 0 || strategy > Z_FIXED) { + return Z_STREAM_ERROR; + } + if (windowBits == 8) windowBits = 9; /* until 256-byte window bug fixed */ + s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state)); + if (s == Z_NULL) return Z_MEM_ERROR; + strm->state = (struct internal_state FAR *)s; + s->strm = strm; + + s->wrap = wrap; + s->gzhead = Z_NULL; + s->w_bits = windowBits; + s->w_size = 1 << s->w_bits; + s->w_mask = s->w_size - 1; + + s->hash_bits = memLevel + 7; + s->hash_size = 1 << s->hash_bits; + s->hash_mask = s->hash_size - 1; + s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH); + + s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte)); + s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos)); + s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos)); + + s->high_water = 0; /* nothing written to s->window yet */ + + s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ + + overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2); + s->pending_buf = (uchf *) overlay; + s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L); + + if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL || + s->pending_buf == Z_NULL) { + s->status = FINISH_STATE; + strm->msg = (char*)ERR_MSG(Z_MEM_ERROR); + deflateEnd (strm); + return Z_MEM_ERROR; + } + s->d_buf = overlay + s->lit_bufsize/sizeof(ush); + s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize; + + s->level = level; + s->strategy = strategy; + s->method = (Byte)method; + + return deflateReset(strm); +} + +/* ========================================================================= */ +int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength) + z_streamp strm; + const Bytef *dictionary; + uInt dictLength; +{ + deflate_state *s; + uInt length = dictLength; + uInt n; + IPos hash_head = 0; + + if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL || + strm->state->wrap == 2 || + (strm->state->wrap == 1 && strm->state->status != INIT_STATE)) + return Z_STREAM_ERROR; + + s = strm->state; + if (s->wrap) + strm->adler = adler32(strm->adler, dictionary, dictLength); + + if (length < MIN_MATCH) return Z_OK; + if (length > s->w_size) { + length = s->w_size; + dictionary += dictLength - length; /* use the tail of the dictionary */ + } + zmemcpy(s->window, dictionary, length); + s->strstart = length; + s->block_start = (long)length; + + /* Insert all strings in the hash table (except for the last two bytes). + * s->lookahead stays null, so s->ins_h will be recomputed at the next + * call of fill_window. + */ + s->ins_h = s->window[0]; + UPDATE_HASH(s, s->ins_h, s->window[1]); + for (n = 0; n <= length - MIN_MATCH; n++) { + INSERT_STRING(s, n, hash_head); + } + if (hash_head) hash_head = 0; /* to make compiler happy */ + return Z_OK; +} + +/* ========================================================================= */ +int ZEXPORT deflateReset (strm) + z_streamp strm; +{ + deflate_state *s; + + if (strm == Z_NULL || strm->state == Z_NULL || + strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) { + return Z_STREAM_ERROR; + } + + strm->total_in = strm->total_out = 0; + strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */ + strm->data_type = Z_UNKNOWN; + + s = (deflate_state *)strm->state; + s->pending = 0; + s->pending_out = s->pending_buf; + + if (s->wrap < 0) { + s->wrap = -s->wrap; /* was made negative by deflate(..., Z_FINISH); */ + } + s->status = s->wrap ? INIT_STATE : BUSY_STATE; + strm->adler = +#ifdef GZIP + s->wrap == 2 ? crc32(0L, Z_NULL, 0) : +#endif + adler32(0L, Z_NULL, 0); + s->last_flush = Z_NO_FLUSH; + + _tr_init(s); + lm_init(s); + + return Z_OK; +} + +/* ========================================================================= */ +int ZEXPORT deflateSetHeader (strm, head) + z_streamp strm; + gz_headerp head; +{ + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + if (strm->state->wrap != 2) return Z_STREAM_ERROR; + strm->state->gzhead = head; + return Z_OK; +} + +/* ========================================================================= */ +int ZEXPORT deflatePrime (strm, bits, value) + z_streamp strm; + int bits; + int value; +{ + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + strm->state->bi_valid = bits; + strm->state->bi_buf = (ush)(value & ((1 << bits) - 1)); + return Z_OK; +} + +/* ========================================================================= */ +int ZEXPORT deflateParams(strm, level, strategy) + z_streamp strm; + int level; + int strategy; +{ + deflate_state *s; + compress_func func; + int err = Z_OK; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + s = strm->state; + +#ifdef FASTEST + if (level != 0) level = 1; +#else + if (level == Z_DEFAULT_COMPRESSION) level = 6; +#endif + if (level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { + return Z_STREAM_ERROR; + } + func = configuration_table[s->level].func; + + if ((strategy != s->strategy || func != configuration_table[level].func) && + strm->total_in != 0) { + /* Flush the last buffer: */ + err = deflate(strm, Z_BLOCK); + } + if (s->level != level) { + s->level = level; + s->max_lazy_match = configuration_table[level].max_lazy; + s->good_match = configuration_table[level].good_length; + s->nice_match = configuration_table[level].nice_length; + s->max_chain_length = configuration_table[level].max_chain; + } + s->strategy = strategy; + return err; +} + +/* ========================================================================= */ +int ZEXPORT deflateTune(strm, good_length, max_lazy, nice_length, max_chain) + z_streamp strm; + int good_length; + int max_lazy; + int nice_length; + int max_chain; +{ + deflate_state *s; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + s = strm->state; + s->good_match = good_length; + s->max_lazy_match = max_lazy; + s->nice_match = nice_length; + s->max_chain_length = max_chain; + return Z_OK; +} + +/* ========================================================================= + * For the default windowBits of 15 and memLevel of 8, this function returns + * a close to exact, as well as small, upper bound on the compressed size. + * They are coded as constants here for a reason--if the #define's are + * changed, then this function needs to be changed as well. The return + * value for 15 and 8 only works for those exact settings. + * + * For any setting other than those defaults for windowBits and memLevel, + * the value returned is a conservative worst case for the maximum expansion + * resulting from using fixed blocks instead of stored blocks, which deflate + * can emit on compressed data for some combinations of the parameters. + * + * This function could be more sophisticated to provide closer upper bounds for + * every combination of windowBits and memLevel. But even the conservative + * upper bound of about 14% expansion does not seem onerous for output buffer + * allocation. + */ +uLong ZEXPORT deflateBound(strm, sourceLen) + z_streamp strm; + uLong sourceLen; +{ + deflate_state *s; + uLong complen, wraplen; + Bytef *str; + + /* conservative upper bound for compressed data */ + complen = sourceLen + + ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 5; + + /* if can't get parameters, return conservative bound plus zlib wrapper */ + if (strm == Z_NULL || strm->state == Z_NULL) + return complen + 6; + + /* compute wrapper length */ + s = strm->state; + switch (s->wrap) { + case 0: /* raw deflate */ + wraplen = 0; + break; + case 1: /* zlib wrapper */ + wraplen = 6 + (s->strstart ? 4 : 0); + break; + case 2: /* gzip wrapper */ + wraplen = 18; + if (s->gzhead != Z_NULL) { /* user-supplied gzip header */ + if (s->gzhead->extra != Z_NULL) + wraplen += 2 + s->gzhead->extra_len; + str = s->gzhead->name; + if (str != Z_NULL) + do { + wraplen++; + } while (*str++); + str = s->gzhead->comment; + if (str != Z_NULL) + do { + wraplen++; + } while (*str++); + if (s->gzhead->hcrc) + wraplen += 2; + } + break; + default: /* for compiler happiness */ + wraplen = 6; + } + + /* if not default parameters, return conservative bound */ + if (s->w_bits != 15 || s->hash_bits != 8 + 7) + return complen + wraplen; + + /* default settings: return tight bound for that case */ + return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + + (sourceLen >> 25) + 13 - 6 + wraplen; +} + +/* ========================================================================= + * Put a short in the pending buffer. The 16-bit value is put in MSB order. + * IN assertion: the stream state is correct and there is enough room in + * pending_buf. + */ +local void putShortMSB (s, b) + deflate_state *s; + uInt b; +{ + put_byte(s, (Byte)(b >> 8)); + put_byte(s, (Byte)(b & 0xff)); +} + +/* ========================================================================= + * Flush as much pending output as possible. All deflate() output goes + * through this function so some applications may wish to modify it + * to avoid allocating a large strm->next_out buffer and copying into it. + * (See also read_buf()). + */ +local void flush_pending(strm) + z_streamp strm; +{ + unsigned len = strm->state->pending; + + if (len > strm->avail_out) len = strm->avail_out; + if (len == 0) return; + + zmemcpy(strm->next_out, strm->state->pending_out, len); + strm->next_out += len; + strm->state->pending_out += len; + strm->total_out += len; + strm->avail_out -= len; + strm->state->pending -= len; + if (strm->state->pending == 0) { + strm->state->pending_out = strm->state->pending_buf; + } +} + +/* ========================================================================= */ +int ZEXPORT deflate (strm, flush) + z_streamp strm; + int flush; +{ + int old_flush; /* value of flush param for previous deflate call */ + deflate_state *s; + + if (strm == Z_NULL || strm->state == Z_NULL || + flush > Z_BLOCK || flush < 0) { + return Z_STREAM_ERROR; + } + s = strm->state; + + if (strm->next_out == Z_NULL || + (strm->next_in == Z_NULL && strm->avail_in != 0) || + (s->status == FINISH_STATE && flush != Z_FINISH)) { + ERR_RETURN(strm, Z_STREAM_ERROR); + } + if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR); + + s->strm = strm; /* just in case */ + old_flush = s->last_flush; + s->last_flush = flush; + + /* Write the header */ + if (s->status == INIT_STATE) { +#ifdef GZIP + if (s->wrap == 2) { + strm->adler = crc32(0L, Z_NULL, 0); + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (s->gzhead == Z_NULL) { + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s->level == 9 ? 2 : + (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ? + 4 : 0)); + put_byte(s, OS_CODE); + s->status = BUSY_STATE; + } + else { + put_byte(s, (s->gzhead->text ? 1 : 0) + + (s->gzhead->hcrc ? 2 : 0) + + (s->gzhead->extra == Z_NULL ? 0 : 4) + + (s->gzhead->name == Z_NULL ? 0 : 8) + + (s->gzhead->comment == Z_NULL ? 0 : 16) + ); + put_byte(s, (Byte)(s->gzhead->time & 0xff)); + put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff)); + put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff)); + put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff)); + put_byte(s, s->level == 9 ? 2 : + (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ? + 4 : 0)); + put_byte(s, s->gzhead->os & 0xff); + if (s->gzhead->extra != Z_NULL) { + put_byte(s, s->gzhead->extra_len & 0xff); + put_byte(s, (s->gzhead->extra_len >> 8) & 0xff); + } + if (s->gzhead->hcrc) + strm->adler = crc32(strm->adler, s->pending_buf, + s->pending); + s->gzindex = 0; + s->status = EXTRA_STATE; + } + } + else +#endif + { + uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8; + uInt level_flags; + + if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2) + level_flags = 0; + else if (s->level < 6) + level_flags = 1; + else if (s->level == 6) + level_flags = 2; + else + level_flags = 3; + header |= (level_flags << 6); + if (s->strstart != 0) header |= PRESET_DICT; + header += 31 - (header % 31); + + s->status = BUSY_STATE; + putShortMSB(s, header); + + /* Save the adler32 of the preset dictionary: */ + if (s->strstart != 0) { + putShortMSB(s, (uInt)(strm->adler >> 16)); + putShortMSB(s, (uInt)(strm->adler & 0xffff)); + } + strm->adler = adler32(0L, Z_NULL, 0); + } + } +#ifdef GZIP + if (s->status == EXTRA_STATE) { + if (s->gzhead->extra != Z_NULL) { + uInt beg = s->pending; /* start of bytes to update crc */ + + while (s->gzindex < (s->gzhead->extra_len & 0xffff)) { + if (s->pending == s->pending_buf_size) { + if (s->gzhead->hcrc && s->pending > beg) + strm->adler = crc32(strm->adler, s->pending_buf + beg, + s->pending - beg); + flush_pending(strm); + beg = s->pending; + if (s->pending == s->pending_buf_size) + break; + } + put_byte(s, s->gzhead->extra[s->gzindex]); + s->gzindex++; + } + if (s->gzhead->hcrc && s->pending > beg) + strm->adler = crc32(strm->adler, s->pending_buf + beg, + s->pending - beg); + if (s->gzindex == s->gzhead->extra_len) { + s->gzindex = 0; + s->status = NAME_STATE; + } + } + else + s->status = NAME_STATE; + } + if (s->status == NAME_STATE) { + if (s->gzhead->name != Z_NULL) { + uInt beg = s->pending; /* start of bytes to update crc */ + int val; + + do { + if (s->pending == s->pending_buf_size) { + if (s->gzhead->hcrc && s->pending > beg) + strm->adler = crc32(strm->adler, s->pending_buf + beg, + s->pending - beg); + flush_pending(strm); + beg = s->pending; + if (s->pending == s->pending_buf_size) { + val = 1; + break; + } + } + val = s->gzhead->name[s->gzindex++]; + put_byte(s, val); + } while (val != 0); + if (s->gzhead->hcrc && s->pending > beg) + strm->adler = crc32(strm->adler, s->pending_buf + beg, + s->pending - beg); + if (val == 0) { + s->gzindex = 0; + s->status = COMMENT_STATE; + } + } + else + s->status = COMMENT_STATE; + } + if (s->status == COMMENT_STATE) { + if (s->gzhead->comment != Z_NULL) { + uInt beg = s->pending; /* start of bytes to update crc */ + int val; + + do { + if (s->pending == s->pending_buf_size) { + if (s->gzhead->hcrc && s->pending > beg) + strm->adler = crc32(strm->adler, s->pending_buf + beg, + s->pending - beg); + flush_pending(strm); + beg = s->pending; + if (s->pending == s->pending_buf_size) { + val = 1; + break; + } + } + val = s->gzhead->comment[s->gzindex++]; + put_byte(s, val); + } while (val != 0); + if (s->gzhead->hcrc && s->pending > beg) + strm->adler = crc32(strm->adler, s->pending_buf + beg, + s->pending - beg); + if (val == 0) + s->status = HCRC_STATE; + } + else + s->status = HCRC_STATE; + } + if (s->status == HCRC_STATE) { + if (s->gzhead->hcrc) { + if (s->pending + 2 > s->pending_buf_size) + flush_pending(strm); + if (s->pending + 2 <= s->pending_buf_size) { + put_byte(s, (Byte)(strm->adler & 0xff)); + put_byte(s, (Byte)((strm->adler >> 8) & 0xff)); + strm->adler = crc32(0L, Z_NULL, 0); + s->status = BUSY_STATE; + } + } + else + s->status = BUSY_STATE; + } +#endif + + /* Flush as much pending output as possible */ + if (s->pending != 0) { + flush_pending(strm); + if (strm->avail_out == 0) { + /* Since avail_out is 0, deflate will be called again with + * more output space, but possibly with both pending and + * avail_in equal to zero. There won't be anything to do, + * but this is not an error situation so make sure we + * return OK instead of BUF_ERROR at next call of deflate: + */ + s->last_flush = -1; + return Z_OK; + } + + /* Make sure there is something to do and avoid duplicate consecutive + * flushes. For repeated and useless calls with Z_FINISH, we keep + * returning Z_STREAM_END instead of Z_BUF_ERROR. + */ + } else if (strm->avail_in == 0 && flush <= old_flush && + flush != Z_FINISH) { + ERR_RETURN(strm, Z_BUF_ERROR); + } + + /* User must not provide more input after the first FINISH: */ + if (s->status == FINISH_STATE && strm->avail_in != 0) { + ERR_RETURN(strm, Z_BUF_ERROR); + } + + /* Start a new block or continue the current one. + */ + if (strm->avail_in != 0 || s->lookahead != 0 || + (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) { + block_state bstate; + + bstate = s->strategy == Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : + (s->strategy == Z_RLE ? deflate_rle(s, flush) : + (*(configuration_table[s->level].func))(s, flush)); + + if (bstate == finish_started || bstate == finish_done) { + s->status = FINISH_STATE; + } + if (bstate == need_more || bstate == finish_started) { + if (strm->avail_out == 0) { + s->last_flush = -1; /* avoid BUF_ERROR next call, see above */ + } + return Z_OK; + /* If flush != Z_NO_FLUSH && avail_out == 0, the next call + * of deflate should use the same flush parameter to make sure + * that the flush is complete. So we don't have to output an + * empty block here, this will be done at next call. This also + * ensures that for a very small output buffer, we emit at most + * one empty block. + */ + } + if (bstate == block_done) { + if (flush == Z_PARTIAL_FLUSH) { + _tr_align(s); + } else if (flush != Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */ + _tr_stored_block(s, (char*)0, 0L, 0); + /* For a full flush, this empty block will be recognized + * as a special marker by inflate_sync(). + */ + if (flush == Z_FULL_FLUSH) { + CLEAR_HASH(s); /* forget history */ + if (s->lookahead == 0) { + s->strstart = 0; + s->block_start = 0L; + } + } + } + flush_pending(strm); + if (strm->avail_out == 0) { + s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */ + return Z_OK; + } + } + } + Assert(strm->avail_out > 0, "bug2"); + + if (flush != Z_FINISH) return Z_OK; + if (s->wrap <= 0) return Z_STREAM_END; + + /* Write the trailer */ +#ifdef GZIP + if (s->wrap == 2) { + put_byte(s, (Byte)(strm->adler & 0xff)); + put_byte(s, (Byte)((strm->adler >> 8) & 0xff)); + put_byte(s, (Byte)((strm->adler >> 16) & 0xff)); + put_byte(s, (Byte)((strm->adler >> 24) & 0xff)); + put_byte(s, (Byte)(strm->total_in & 0xff)); + put_byte(s, (Byte)((strm->total_in >> 8) & 0xff)); + put_byte(s, (Byte)((strm->total_in >> 16) & 0xff)); + put_byte(s, (Byte)((strm->total_in >> 24) & 0xff)); + } + else +#endif + { + putShortMSB(s, (uInt)(strm->adler >> 16)); + putShortMSB(s, (uInt)(strm->adler & 0xffff)); + } + flush_pending(strm); + /* If avail_out is zero, the application will call deflate again + * to flush the rest. + */ + if (s->wrap > 0) s->wrap = -s->wrap; /* write the trailer only once! */ + return s->pending != 0 ? Z_OK : Z_STREAM_END; +} + +/* ========================================================================= */ +int ZEXPORT deflateEnd (strm) + z_streamp strm; +{ + int status; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + + status = strm->state->status; + if (status != INIT_STATE && + status != EXTRA_STATE && + status != NAME_STATE && + status != COMMENT_STATE && + status != HCRC_STATE && + status != BUSY_STATE && + status != FINISH_STATE) { + return Z_STREAM_ERROR; + } + + /* Deallocate in reverse order of allocations: */ + TRY_FREE(strm, strm->state->pending_buf); + TRY_FREE(strm, strm->state->head); + TRY_FREE(strm, strm->state->prev); + TRY_FREE(strm, strm->state->window); + + ZFREE(strm, strm->state); + strm->state = Z_NULL; + + return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK; +} + +/* ========================================================================= + * Copy the source state to the destination state. + * To simplify the source, this is not supported for 16-bit MSDOS (which + * doesn't have enough memory anyway to duplicate compression states). + */ +int ZEXPORT deflateCopy (dest, source) + z_streamp dest; + z_streamp source; +{ +#ifdef MAXSEG_64K + return Z_STREAM_ERROR; +#else + deflate_state *ds; + deflate_state *ss; + ushf *overlay; + + + if (source == Z_NULL || dest == Z_NULL || source->state == Z_NULL) { + return Z_STREAM_ERROR; + } + + ss = source->state; + + zmemcpy(dest, source, sizeof(z_stream)); + + ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state)); + if (ds == Z_NULL) return Z_MEM_ERROR; + dest->state = (struct internal_state FAR *) ds; + zmemcpy(ds, ss, sizeof(deflate_state)); + ds->strm = dest; + + ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte)); + ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos)); + ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos)); + overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2); + ds->pending_buf = (uchf *) overlay; + + if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL || + ds->pending_buf == Z_NULL) { + deflateEnd (dest); + return Z_MEM_ERROR; + } + /* following zmemcpy do not work for 16-bit MSDOS */ + zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte)); + zmemcpy(ds->prev, ss->prev, ds->w_size * sizeof(Pos)); + zmemcpy(ds->head, ss->head, ds->hash_size * sizeof(Pos)); + zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size); + + ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf); + ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush); + ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize; + + ds->l_desc.dyn_tree = ds->dyn_ltree; + ds->d_desc.dyn_tree = ds->dyn_dtree; + ds->bl_desc.dyn_tree = ds->bl_tree; + + return Z_OK; +#endif /* MAXSEG_64K */ +} + +/* =========================================================================== + * Read a new buffer from the current input stream, update the adler32 + * and total number of bytes read. All deflate() input goes through + * this function so some applications may wish to modify it to avoid + * allocating a large strm->next_in buffer and copying from it. + * (See also flush_pending()). + */ +local int read_buf(strm, buf, size) + z_streamp strm; + Bytef *buf; + unsigned size; +{ + unsigned len = strm->avail_in; + + if (len > size) len = size; + if (len == 0) return 0; + + strm->avail_in -= len; + + if (strm->state->wrap == 1) { + strm->adler = adler32(strm->adler, strm->next_in, len); + } +#ifdef GZIP + else if (strm->state->wrap == 2) { + strm->adler = crc32(strm->adler, strm->next_in, len); + } +#endif + zmemcpy(buf, strm->next_in, len); + strm->next_in += len; + strm->total_in += len; + + return (int)len; +} + +/* =========================================================================== + * Initialize the "longest match" routines for a new zlib stream + */ +local void lm_init (s) + deflate_state *s; +{ + s->window_size = (ulg)2L*s->w_size; + + CLEAR_HASH(s); + + /* Set the default configuration parameters: + */ + s->max_lazy_match = configuration_table[s->level].max_lazy; + s->good_match = configuration_table[s->level].good_length; + s->nice_match = configuration_table[s->level].nice_length; + s->max_chain_length = configuration_table[s->level].max_chain; + + s->strstart = 0; + s->block_start = 0L; + s->lookahead = 0; + s->match_length = s->prev_length = MIN_MATCH-1; + s->match_available = 0; + s->ins_h = 0; +#ifndef FASTEST +#ifdef ASMV + match_init(); /* initialize the asm code */ +#endif +#endif +} + +#ifndef FASTEST +/* =========================================================================== + * Set match_start to the longest match starting at the given string and + * return its length. Matches shorter or equal to prev_length are discarded, + * in which case the result is equal to prev_length and match_start is + * garbage. + * IN assertions: cur_match is the head of the hash chain for the current + * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 + * OUT assertion: the match length is not greater than s->lookahead. + */ +#ifndef ASMV +/* For 80x86 and 680x0, an optimized version will be provided in match.asm or + * match.S. The code will be functionally equivalent. + */ +local uInt longest_match(s, cur_match) + deflate_state *s; + IPos cur_match; /* current match */ +{ + unsigned chain_length = s->max_chain_length;/* max hash chain length */ + register Bytef *scan = s->window + s->strstart; /* current string */ + register Bytef *match; /* matched string */ + register int len; /* length of current match */ + int best_len = s->prev_length; /* best match length so far */ + int nice_match = s->nice_match; /* stop if match long enough */ + IPos limit = s->strstart > (IPos)MAX_DIST(s) ? + s->strstart - (IPos)MAX_DIST(s) : NIL; + /* Stop when cur_match becomes <= limit. To simplify the code, + * we prevent matches with the string of window index 0. + */ + Posf *prev = s->prev; + uInt wmask = s->w_mask; + +#ifdef UNALIGNED_OK + /* Compare two bytes at a time. Note: this is not always beneficial. + * Try with and without -DUNALIGNED_OK to check. + */ + register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1; + register ush scan_start = *(ushf*)scan; + register ush scan_end = *(ushf*)(scan+best_len-1); +#else + register Bytef *strend = s->window + s->strstart + MAX_MATCH; + register Byte scan_end1 = scan[best_len-1]; + register Byte scan_end = scan[best_len]; +#endif + + /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. + * It is easy to get rid of this optimization if necessary. + */ + Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); + + /* Do not waste too much time if we already have a good match: */ + if (s->prev_length >= s->good_match) { + chain_length >>= 2; + } + /* Do not look for matches beyond the end of the input. This is necessary + * to make deflate deterministic. + */ + if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; + + Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); + + do { + Assert(cur_match < s->strstart, "no future"); + match = s->window + cur_match; + + /* Skip to next match if the match length cannot increase + * or if the match length is less than 2. Note that the checks below + * for insufficient lookahead only occur occasionally for performance + * reasons. Therefore uninitialized memory will be accessed, and + * conditional jumps will be made that depend on those values. + * However the length of the match is limited to the lookahead, so + * the output of deflate is not affected by the uninitialized values. + */ +#if (defined(UNALIGNED_OK) && MAX_MATCH == 258) + /* This code assumes sizeof(unsigned short) == 2. Do not use + * UNALIGNED_OK if your compiler uses a different size. + */ + if (*(ushf*)(match+best_len-1) != scan_end || + *(ushf*)match != scan_start) continue; + + /* It is not necessary to compare scan[2] and match[2] since they are + * always equal when the other bytes match, given that the hash keys + * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at + * strstart+3, +5, ... up to strstart+257. We check for insufficient + * lookahead only every 4th comparison; the 128th check will be made + * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is + * necessary to put more guard bytes at the end of the window, or + * to check more often for insufficient lookahead. + */ + Assert(scan[2] == match[2], "scan[2]?"); + scan++, match++; + do { + } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && + *(ushf*)(scan+=2) == *(ushf*)(match+=2) && + *(ushf*)(scan+=2) == *(ushf*)(match+=2) && + *(ushf*)(scan+=2) == *(ushf*)(match+=2) && + scan < strend); + /* The funny "do {}" generates better code on most compilers */ + + /* Here, scan <= window+strstart+257 */ + Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); + if (*scan == *match) scan++; + + len = (MAX_MATCH - 1) - (int)(strend-scan); + scan = strend - (MAX_MATCH-1); + +#else /* UNALIGNED_OK */ + + if (match[best_len] != scan_end || + match[best_len-1] != scan_end1 || + *match != *scan || + *++match != scan[1]) continue; + + /* The check at best_len-1 can be removed because it will be made + * again later. (This heuristic is not always a win.) + * It is not necessary to compare scan[2] and match[2] since they + * are always equal when the other bytes match, given that + * the hash keys are equal and that HASH_BITS >= 8. + */ + scan += 2, match++; + Assert(*scan == *match, "match[2]?"); + + /* We check for insufficient lookahead only every 8th comparison; + * the 256th check will be made at strstart+258. + */ + do { + } while (*++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + scan < strend); + + Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); + + len = MAX_MATCH - (int)(strend - scan); + scan = strend - MAX_MATCH; + +#endif /* UNALIGNED_OK */ + + if (len > best_len) { + s->match_start = cur_match; + best_len = len; + if (len >= nice_match) break; +#ifdef UNALIGNED_OK + scan_end = *(ushf*)(scan+best_len-1); +#else + scan_end1 = scan[best_len-1]; + scan_end = scan[best_len]; +#endif + } + } while ((cur_match = prev[cur_match & wmask]) > limit + && --chain_length != 0); + + if ((uInt)best_len <= s->lookahead) return (uInt)best_len; + return s->lookahead; +} +#endif /* ASMV */ + +#else /* FASTEST */ + +/* --------------------------------------------------------------------------- + * Optimized version for FASTEST only + */ +local uInt longest_match(s, cur_match) + deflate_state *s; + IPos cur_match; /* current match */ +{ + register Bytef *scan = s->window + s->strstart; /* current string */ + register Bytef *match; /* matched string */ + register int len; /* length of current match */ + register Bytef *strend = s->window + s->strstart + MAX_MATCH; + + /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. + * It is easy to get rid of this optimization if necessary. + */ + Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); + + Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); + + Assert(cur_match < s->strstart, "no future"); + + match = s->window + cur_match; + + /* Return failure if the match length is less than 2: + */ + if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1; + + /* The check at best_len-1 can be removed because it will be made + * again later. (This heuristic is not always a win.) + * It is not necessary to compare scan[2] and match[2] since they + * are always equal when the other bytes match, given that + * the hash keys are equal and that HASH_BITS >= 8. + */ + scan += 2, match += 2; + Assert(*scan == *match, "match[2]?"); + + /* We check for insufficient lookahead only every 8th comparison; + * the 256th check will be made at strstart+258. + */ + do { + } while (*++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + scan < strend); + + Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); + + len = MAX_MATCH - (int)(strend - scan); + + if (len < MIN_MATCH) return MIN_MATCH - 1; + + s->match_start = cur_match; + return (uInt)len <= s->lookahead ? (uInt)len : s->lookahead; +} + +#endif /* FASTEST */ + +#ifdef DEBUG +/* =========================================================================== + * Check that the match at match_start is indeed a match. + */ +local void check_match(s, start, match, length) + deflate_state *s; + IPos start, match; + int length; +{ + /* check that the match is indeed a match */ + if (zmemcmp(s->window + match, + s->window + start, length) != EQUAL) { + fprintf(stderr, " start %u, match %u, length %d\n", + start, match, length); + do { + fprintf(stderr, "%c%c", s->window[match++], s->window[start++]); + } while (--length != 0); + z_error("invalid match"); + } + if (z_verbose > 1) { + fprintf(stderr,"\\[%d,%d]", start-match, length); + do { putc(s->window[start++], stderr); } while (--length != 0); + } +} +#else +# define check_match(s, start, match, length) +#endif /* DEBUG */ + +/* =========================================================================== + * Fill the window when the lookahead becomes insufficient. + * Updates strstart and lookahead. + * + * IN assertion: lookahead < MIN_LOOKAHEAD + * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD + * At least one byte has been read, or avail_in == 0; reads are + * performed for at least two bytes (required for the zip translate_eol + * option -- not supported here). + */ +local void fill_window(s) + deflate_state *s; +{ + register unsigned n, m; + register Posf *p; + unsigned more; /* Amount of free space at the end of the window. */ + uInt wsize = s->w_size; + + do { + more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart); + + /* Deal with !@#$% 64K limit: */ + if (sizeof(int) <= 2) { + if (more == 0 && s->strstart == 0 && s->lookahead == 0) { + more = wsize; + + } else if (more == (unsigned)(-1)) { + /* Very unlikely, but possible on 16 bit machine if + * strstart == 0 && lookahead == 1 (input done a byte at time) + */ + more--; + } + } + + /* If the window is almost full and there is insufficient lookahead, + * move the upper half to the lower one to make room in the upper half. + */ + if (s->strstart >= wsize+MAX_DIST(s)) { + + zmemcpy(s->window, s->window+wsize, (unsigned)wsize); + s->match_start -= wsize; + s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ + s->block_start -= (long) wsize; + + /* Slide the hash table (could be avoided with 32 bit values + at the expense of memory usage). We slide even when level == 0 + to keep the hash table consistent if we switch back to level > 0 + later. (Using level 0 permanently is not an optimal usage of + zlib, so we don't care about this pathological case.) + */ + n = s->hash_size; + p = &s->head[n]; + do { + m = *--p; + *p = (Pos)(m >= wsize ? m-wsize : NIL); + } while (--n); + + n = wsize; +#ifndef FASTEST + p = &s->prev[n]; + do { + m = *--p; + *p = (Pos)(m >= wsize ? m-wsize : NIL); + /* If n is not on any hash chain, prev[n] is garbage but + * its value will never be used. + */ + } while (--n); +#endif + more += wsize; + } + if (s->strm->avail_in == 0) return; + + /* If there was no sliding: + * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && + * more == window_size - lookahead - strstart + * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) + * => more >= window_size - 2*WSIZE + 2 + * In the BIG_MEM or MMAP case (not yet supported), + * window_size == input_size + MIN_LOOKAHEAD && + * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. + * Otherwise, window_size == 2*WSIZE so more >= 2. + * If there was sliding, more >= WSIZE. So in all cases, more >= 2. + */ + Assert(more >= 2, "more < 2"); + + n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more); + s->lookahead += n; + + /* Initialize the hash value now that we have some input: */ + if (s->lookahead >= MIN_MATCH) { + s->ins_h = s->window[s->strstart]; + UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]); +#if MIN_MATCH != 3 + Call UPDATE_HASH() MIN_MATCH-3 more times +#endif + } + /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, + * but this is not important since only literal bytes will be emitted. + */ + + } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0); + + /* If the WIN_INIT bytes after the end of the current data have never been + * written, then zero those bytes in order to avoid memory check reports of + * the use of uninitialized (or uninitialised as Julian writes) bytes by + * the longest match routines. Update the high water mark for the next + * time through here. WIN_INIT is set to MAX_MATCH since the longest match + * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead. + */ + if (s->high_water < s->window_size) { + ulg curr = s->strstart + (ulg)(s->lookahead); + ulg init; + + if (s->high_water < curr) { + /* Previous high water mark below current data -- zero WIN_INIT + * bytes or up to end of window, whichever is less. + */ + init = s->window_size - curr; + if (init > WIN_INIT) + init = WIN_INIT; + zmemzero(s->window + curr, (unsigned)init); + s->high_water = curr + init; + } + else if (s->high_water < (ulg)curr + WIN_INIT) { + /* High water mark at or above current data, but below current data + * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up + * to end of window, whichever is less. + */ + init = (ulg)curr + WIN_INIT - s->high_water; + if (init > s->window_size - s->high_water) + init = s->window_size - s->high_water; + zmemzero(s->window + s->high_water, (unsigned)init); + s->high_water += init; + } + } +} + +/* =========================================================================== + * Flush the current block, with given end-of-file flag. + * IN assertion: strstart is set to the end of the current match. + */ +#define FLUSH_BLOCK_ONLY(s, last) { \ + _tr_flush_block(s, (s->block_start >= 0L ? \ + (charf *)&s->window[(unsigned)s->block_start] : \ + (charf *)Z_NULL), \ + (ulg)((long)s->strstart - s->block_start), \ + (last)); \ + s->block_start = s->strstart; \ + flush_pending(s->strm); \ + Tracev((stderr,"[FLUSH]")); \ +} + +/* Same but force premature exit if necessary. */ +#define FLUSH_BLOCK(s, last) { \ + FLUSH_BLOCK_ONLY(s, last); \ + if (s->strm->avail_out == 0) return (last) ? finish_started : need_more; \ +} + +/* =========================================================================== + * Copy without compression as much as possible from the input stream, return + * the current block state. + * This function does not insert new strings in the dictionary since + * uncompressible data is probably not useful. This function is used + * only for the level=0 compression option. + * NOTE: this function should be optimized to avoid extra copying from + * window to pending_buf. + */ +local block_state deflate_stored(s, flush) + deflate_state *s; + int flush; +{ + /* Stored blocks are limited to 0xffff bytes, pending_buf is limited + * to pending_buf_size, and each stored block has a 5 byte header: + */ + ulg max_block_size = 0xffff; + ulg max_start; + + if (max_block_size > s->pending_buf_size - 5) { + max_block_size = s->pending_buf_size - 5; + } + + /* Copy as much as possible from input to output: */ + for (;;) { + /* Fill the window as much as possible: */ + if (s->lookahead <= 1) { + + Assert(s->strstart < s->w_size+MAX_DIST(s) || + s->block_start >= (long)s->w_size, "slide too late"); + + fill_window(s); + if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more; + + if (s->lookahead == 0) break; /* flush the current block */ + } + Assert(s->block_start >= 0L, "block gone"); + + s->strstart += s->lookahead; + s->lookahead = 0; + + /* Emit a stored block if pending_buf will be full: */ + max_start = s->block_start + max_block_size; + if (s->strstart == 0 || (ulg)s->strstart >= max_start) { + /* strstart == 0 is possible when wraparound on 16-bit machine */ + s->lookahead = (uInt)(s->strstart - max_start); + s->strstart = (uInt)max_start; + FLUSH_BLOCK(s, 0); + } + /* Flush if we may have to slide, otherwise block_start may become + * negative and the data will be gone: + */ + if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) { + FLUSH_BLOCK(s, 0); + } + } + FLUSH_BLOCK(s, flush == Z_FINISH); + return flush == Z_FINISH ? finish_done : block_done; +} + +/* =========================================================================== + * Compress as much as possible from the input stream, return the current + * block state. + * This function does not perform lazy evaluation of matches and inserts + * new strings in the dictionary only for unmatched strings or for short + * matches. It is used only for the fast compression options. + */ +local block_state deflate_fast(s, flush) + deflate_state *s; + int flush; +{ + IPos hash_head; /* head of the hash chain */ + int bflush; /* set if current block must be flushed */ + + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the next match, plus MIN_MATCH bytes to insert the + * string following the next match. + */ + if (s->lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { + return need_more; + } + if (s->lookahead == 0) break; /* flush the current block */ + } + + /* Insert the string window[strstart .. strstart+2] in the + * dictionary, and set hash_head to the head of the hash chain: + */ + hash_head = NIL; + if (s->lookahead >= MIN_MATCH) { + INSERT_STRING(s, s->strstart, hash_head); + } + + /* Find the longest match, discarding those <= prev_length. + * At this point we have always match_length < MIN_MATCH + */ + if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) { + /* To simplify the code, we prevent matches with the string + * of window index 0 (in particular we have to avoid a match + * of the string with itself at the start of the input file). + */ + s->match_length = longest_match (s, hash_head); + /* longest_match() sets match_start */ + } + if (s->match_length >= MIN_MATCH) { + check_match(s, s->strstart, s->match_start, s->match_length); + + _tr_tally_dist(s, s->strstart - s->match_start, + s->match_length - MIN_MATCH, bflush); + + s->lookahead -= s->match_length; + + /* Insert new strings in the hash table only if the match length + * is not too large. This saves time but degrades compression. + */ +#ifndef FASTEST + if (s->match_length <= s->max_insert_length && + s->lookahead >= MIN_MATCH) { + s->match_length--; /* string at strstart already in table */ + do { + s->strstart++; + INSERT_STRING(s, s->strstart, hash_head); + /* strstart never exceeds WSIZE-MAX_MATCH, so there are + * always MIN_MATCH bytes ahead. + */ + } while (--s->match_length != 0); + s->strstart++; + } else +#endif + { + s->strstart += s->match_length; + s->match_length = 0; + s->ins_h = s->window[s->strstart]; + UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]); +#if MIN_MATCH != 3 + Call UPDATE_HASH() MIN_MATCH-3 more times +#endif + /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not + * matter since it will be recomputed at next deflate call. + */ + } + } else { + /* No match, output a literal byte */ + Tracevv((stderr,"%c", s->window[s->strstart])); + _tr_tally_lit (s, s->window[s->strstart], bflush); + s->lookahead--; + s->strstart++; + } + if (bflush) FLUSH_BLOCK(s, 0); + } + FLUSH_BLOCK(s, flush == Z_FINISH); + return flush == Z_FINISH ? finish_done : block_done; +} + +#ifndef FASTEST +/* =========================================================================== + * Same as above, but achieves better compression. We use a lazy + * evaluation for matches: a match is finally adopted only if there is + * no better match at the next window position. + */ +local block_state deflate_slow(s, flush) + deflate_state *s; + int flush; +{ + IPos hash_head; /* head of hash chain */ + int bflush; /* set if current block must be flushed */ + + /* Process the input block. */ + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the next match, plus MIN_MATCH bytes to insert the + * string following the next match. + */ + if (s->lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { + return need_more; + } + if (s->lookahead == 0) break; /* flush the current block */ + } + + /* Insert the string window[strstart .. strstart+2] in the + * dictionary, and set hash_head to the head of the hash chain: + */ + hash_head = NIL; + if (s->lookahead >= MIN_MATCH) { + INSERT_STRING(s, s->strstart, hash_head); + } + + /* Find the longest match, discarding those <= prev_length. + */ + s->prev_length = s->match_length, s->prev_match = s->match_start; + s->match_length = MIN_MATCH-1; + + if (hash_head != NIL && s->prev_length < s->max_lazy_match && + s->strstart - hash_head <= MAX_DIST(s)) { + /* To simplify the code, we prevent matches with the string + * of window index 0 (in particular we have to avoid a match + * of the string with itself at the start of the input file). + */ + s->match_length = longest_match (s, hash_head); + /* longest_match() sets match_start */ + + if (s->match_length <= 5 && (s->strategy == Z_FILTERED +#if TOO_FAR <= 32767 + || (s->match_length == MIN_MATCH && + s->strstart - s->match_start > TOO_FAR) +#endif + )) { + + /* If prev_match is also MIN_MATCH, match_start is garbage + * but we will ignore the current match anyway. + */ + s->match_length = MIN_MATCH-1; + } + } + /* If there was a match at the previous step and the current + * match is not better, output the previous match: + */ + if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) { + uInt max_insert = s->strstart + s->lookahead - MIN_MATCH; + /* Do not insert strings in hash table beyond this. */ + + check_match(s, s->strstart-1, s->prev_match, s->prev_length); + + _tr_tally_dist(s, s->strstart -1 - s->prev_match, + s->prev_length - MIN_MATCH, bflush); + + /* Insert in hash table all strings up to the end of the match. + * strstart-1 and strstart are already inserted. If there is not + * enough lookahead, the last two strings are not inserted in + * the hash table. + */ + s->lookahead -= s->prev_length-1; + s->prev_length -= 2; + do { + if (++s->strstart <= max_insert) { + INSERT_STRING(s, s->strstart, hash_head); + } + } while (--s->prev_length != 0); + s->match_available = 0; + s->match_length = MIN_MATCH-1; + s->strstart++; + + if (bflush) FLUSH_BLOCK(s, 0); + + } else if (s->match_available) { + /* If there was no match at the previous position, output a + * single literal. If there was a match but the current match + * is longer, truncate the previous match to a single literal. + */ + Tracevv((stderr,"%c", s->window[s->strstart-1])); + _tr_tally_lit(s, s->window[s->strstart-1], bflush); + if (bflush) { + FLUSH_BLOCK_ONLY(s, 0); + } + s->strstart++; + s->lookahead--; + if (s->strm->avail_out == 0) return need_more; + } else { + /* There is no previous match to compare with, wait for + * the next step to decide. + */ + s->match_available = 1; + s->strstart++; + s->lookahead--; + } + } + Assert (flush != Z_NO_FLUSH, "no flush?"); + if (s->match_available) { + Tracevv((stderr,"%c", s->window[s->strstart-1])); + _tr_tally_lit(s, s->window[s->strstart-1], bflush); + s->match_available = 0; + } + FLUSH_BLOCK(s, flush == Z_FINISH); + return flush == Z_FINISH ? finish_done : block_done; +} +#endif /* FASTEST */ + +/* =========================================================================== + * For Z_RLE, simply look for runs of bytes, generate matches only of distance + * one. Do not maintain a hash table. (It will be regenerated if this run of + * deflate switches away from Z_RLE.) + */ +local block_state deflate_rle(s, flush) + deflate_state *s; + int flush; +{ + int bflush; /* set if current block must be flushed */ + uInt prev; /* byte at distance one to match */ + Bytef *scan, *strend; /* scan goes up to strend for length of run */ + + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the longest encodable run. + */ + if (s->lookahead < MAX_MATCH) { + fill_window(s); + if (s->lookahead < MAX_MATCH && flush == Z_NO_FLUSH) { + return need_more; + } + if (s->lookahead == 0) break; /* flush the current block */ + } + + /* See how many times the previous byte repeats */ + s->match_length = 0; + if (s->lookahead >= MIN_MATCH && s->strstart > 0) { + scan = s->window + s->strstart - 1; + prev = *scan; + if (prev == *++scan && prev == *++scan && prev == *++scan) { + strend = s->window + s->strstart + MAX_MATCH; + do { + } while (prev == *++scan && prev == *++scan && + prev == *++scan && prev == *++scan && + prev == *++scan && prev == *++scan && + prev == *++scan && prev == *++scan && + scan < strend); + s->match_length = MAX_MATCH - (int)(strend - scan); + if (s->match_length > s->lookahead) + s->match_length = s->lookahead; + } + } + + /* Emit match if have run of MIN_MATCH or longer, else emit literal */ + if (s->match_length >= MIN_MATCH) { + check_match(s, s->strstart, s->strstart - 1, s->match_length); + + _tr_tally_dist(s, 1, s->match_length - MIN_MATCH, bflush); + + s->lookahead -= s->match_length; + s->strstart += s->match_length; + s->match_length = 0; + } else { + /* No match, output a literal byte */ + Tracevv((stderr,"%c", s->window[s->strstart])); + _tr_tally_lit (s, s->window[s->strstart], bflush); + s->lookahead--; + s->strstart++; + } + if (bflush) FLUSH_BLOCK(s, 0); + } + FLUSH_BLOCK(s, flush == Z_FINISH); + return flush == Z_FINISH ? finish_done : block_done; +} + +/* =========================================================================== + * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table. + * (It will be regenerated if this run of deflate switches away from Huffman.) + */ +local block_state deflate_huff(s, flush) + deflate_state *s; + int flush; +{ + int bflush; /* set if current block must be flushed */ + + for (;;) { + /* Make sure that we have a literal to write. */ + if (s->lookahead == 0) { + fill_window(s); + if (s->lookahead == 0) { + if (flush == Z_NO_FLUSH) + return need_more; + break; /* flush the current block */ + } + } + + /* Output a literal byte */ + s->match_length = 0; + Tracevv((stderr,"%c", s->window[s->strstart])); + _tr_tally_lit (s, s->window[s->strstart], bflush); + s->lookahead--; + s->strstart++; + if (bflush) FLUSH_BLOCK(s, 0); + } + FLUSH_BLOCK(s, flush == Z_FINISH); + return flush == Z_FINISH ? finish_done : block_done; +} diff --git a/mk/linux/mojosetup/zlib/deflate.h b/mk/linux/mojosetup/zlib/deflate.h new file mode 100644 index 00000000..f53deba8 --- /dev/null +++ b/mk/linux/mojosetup/zlib/deflate.h @@ -0,0 +1,342 @@ +/* deflate.h -- internal compression state + * Copyright (C) 1995-2009 Jean-loup Gailly + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +/* @(#) $Id$ */ + +#ifndef DEFLATE_H +#define DEFLATE_H + +#include "zutil.h" + +/* define NO_GZIP when compiling if you want to disable gzip header and + trailer creation by deflate(). NO_GZIP would be used to avoid linking in + the crc code when it is not needed. For shared libraries, gzip encoding + should be left enabled. */ +#ifndef NO_GZIP +# define GZIP +#endif + +/* =========================================================================== + * Internal compression state. + */ + +#define LENGTH_CODES 29 +/* number of length codes, not counting the special END_BLOCK code */ + +#define LITERALS 256 +/* number of literal bytes 0..255 */ + +#define L_CODES (LITERALS+1+LENGTH_CODES) +/* number of Literal or Length codes, including the END_BLOCK code */ + +#define D_CODES 30 +/* number of distance codes */ + +#define BL_CODES 19 +/* number of codes used to transfer the bit lengths */ + +#define HEAP_SIZE (2*L_CODES+1) +/* maximum heap size */ + +#define MAX_BITS 15 +/* All codes must not exceed MAX_BITS bits */ + +#define INIT_STATE 42 +#define EXTRA_STATE 69 +#define NAME_STATE 73 +#define COMMENT_STATE 91 +#define HCRC_STATE 103 +#define BUSY_STATE 113 +#define FINISH_STATE 666 +/* Stream status */ + + +/* Data structure describing a single value and its code string. */ +typedef struct ct_data_s { + union { + ush freq; /* frequency count */ + ush code; /* bit string */ + } fc; + union { + ush dad; /* father node in Huffman tree */ + ush len; /* length of bit string */ + } dl; +} FAR ct_data; + +#define Freq fc.freq +#define Code fc.code +#define Dad dl.dad +#define Len dl.len + +typedef struct static_tree_desc_s static_tree_desc; + +typedef struct tree_desc_s { + ct_data *dyn_tree; /* the dynamic tree */ + int max_code; /* largest code with non zero frequency */ + static_tree_desc *stat_desc; /* the corresponding static tree */ +} FAR tree_desc; + +typedef ush Pos; +typedef Pos FAR Posf; +typedef unsigned IPos; + +/* A Pos is an index in the character window. We use short instead of int to + * save space in the various tables. IPos is used only for parameter passing. + */ + +typedef struct internal_state { + z_streamp strm; /* pointer back to this zlib stream */ + int status; /* as the name implies */ + Bytef *pending_buf; /* output still pending */ + ulg pending_buf_size; /* size of pending_buf */ + Bytef *pending_out; /* next pending byte to output to the stream */ + uInt pending; /* nb of bytes in the pending buffer */ + int wrap; /* bit 0 true for zlib, bit 1 true for gzip */ + gz_headerp gzhead; /* gzip header information to write */ + uInt gzindex; /* where in extra, name, or comment */ + Byte method; /* STORED (for zip only) or DEFLATED */ + int last_flush; /* value of flush param for previous deflate call */ + + /* used by deflate.c: */ + + uInt w_size; /* LZ77 window size (32K by default) */ + uInt w_bits; /* log2(w_size) (8..16) */ + uInt w_mask; /* w_size - 1 */ + + Bytef *window; + /* Sliding window. Input bytes are read into the second half of the window, + * and move to the first half later to keep a dictionary of at least wSize + * bytes. With this organization, matches are limited to a distance of + * wSize-MAX_MATCH bytes, but this ensures that IO is always + * performed with a length multiple of the block size. Also, it limits + * the window size to 64K, which is quite useful on MSDOS. + * To do: use the user input buffer as sliding window. + */ + + ulg window_size; + /* Actual size of window: 2*wSize, except when the user input buffer + * is directly used as sliding window. + */ + + Posf *prev; + /* Link to older string with same hash index. To limit the size of this + * array to 64K, this link is maintained only for the last 32K strings. + * An index in this array is thus a window index modulo 32K. + */ + + Posf *head; /* Heads of the hash chains or NIL. */ + + uInt ins_h; /* hash index of string to be inserted */ + uInt hash_size; /* number of elements in hash table */ + uInt hash_bits; /* log2(hash_size) */ + uInt hash_mask; /* hash_size-1 */ + + uInt hash_shift; + /* Number of bits by which ins_h must be shifted at each input + * step. It must be such that after MIN_MATCH steps, the oldest + * byte no longer takes part in the hash key, that is: + * hash_shift * MIN_MATCH >= hash_bits + */ + + long block_start; + /* Window position at the beginning of the current output block. Gets + * negative when the window is moved backwards. + */ + + uInt match_length; /* length of best match */ + IPos prev_match; /* previous match */ + int match_available; /* set if previous match exists */ + uInt strstart; /* start of string to insert */ + uInt match_start; /* start of matching string */ + uInt lookahead; /* number of valid bytes ahead in window */ + + uInt prev_length; + /* Length of the best match at previous step. Matches not greater than this + * are discarded. This is used in the lazy match evaluation. + */ + + uInt max_chain_length; + /* To speed up deflation, hash chains are never searched beyond this + * length. A higher limit improves compression ratio but degrades the + * speed. + */ + + uInt max_lazy_match; + /* Attempt to find a better match only when the current match is strictly + * smaller than this value. This mechanism is used only for compression + * levels >= 4. + */ +# define max_insert_length max_lazy_match + /* Insert new strings in the hash table only if the match length is not + * greater than this length. This saves time but degrades compression. + * max_insert_length is used only for compression levels <= 3. + */ + + int level; /* compression level (1..9) */ + int strategy; /* favor or force Huffman coding*/ + + uInt good_match; + /* Use a faster search when the previous match is longer than this */ + + int nice_match; /* Stop searching when current match exceeds this */ + + /* used by trees.c: */ + /* Didn't use ct_data typedef below to supress compiler warning */ + struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ + struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ + struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ + + struct tree_desc_s l_desc; /* desc. for literal tree */ + struct tree_desc_s d_desc; /* desc. for distance tree */ + struct tree_desc_s bl_desc; /* desc. for bit length tree */ + + ush bl_count[MAX_BITS+1]; + /* number of codes at each bit length for an optimal tree */ + + int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */ + int heap_len; /* number of elements in the heap */ + int heap_max; /* element of largest frequency */ + /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. + * The same heap array is used to build all trees. + */ + + uch depth[2*L_CODES+1]; + /* Depth of each subtree used as tie breaker for trees of equal frequency + */ + + uchf *l_buf; /* buffer for literals or lengths */ + + uInt lit_bufsize; + /* Size of match buffer for literals/lengths. There are 4 reasons for + * limiting lit_bufsize to 64K: + * - frequencies can be kept in 16 bit counters + * - if compression is not successful for the first block, all input + * data is still in the window so we can still emit a stored block even + * when input comes from standard input. (This can also be done for + * all blocks if lit_bufsize is not greater than 32K.) + * - if compression is not successful for a file smaller than 64K, we can + * even emit a stored file instead of a stored block (saving 5 bytes). + * This is applicable only for zip (not gzip or zlib). + * - creating new Huffman trees less frequently may not provide fast + * adaptation to changes in the input data statistics. (Take for + * example a binary file with poorly compressible code followed by + * a highly compressible string table.) Smaller buffer sizes give + * fast adaptation but have of course the overhead of transmitting + * trees more frequently. + * - I can't count above 4 + */ + + uInt last_lit; /* running index in l_buf */ + + ushf *d_buf; + /* Buffer for distances. To simplify the code, d_buf and l_buf have + * the same number of elements. To use different lengths, an extra flag + * array would be necessary. + */ + + ulg opt_len; /* bit length of current block with optimal trees */ + ulg static_len; /* bit length of current block with static trees */ + uInt matches; /* number of string matches in current block */ + int last_eob_len; /* bit length of EOB code for last block */ + +#ifdef DEBUG + ulg compressed_len; /* total bit length of compressed file mod 2^32 */ + ulg bits_sent; /* bit length of compressed data sent mod 2^32 */ +#endif + + ush bi_buf; + /* Output buffer. bits are inserted starting at the bottom (least + * significant bits). + */ + int bi_valid; + /* Number of valid bits in bi_buf. All bits above the last valid bit + * are always zero. + */ + + ulg high_water; + /* High water mark offset in window for initialized bytes -- bytes above + * this are set to zero in order to avoid memory check warnings when + * longest match routines access bytes past the input. This is then + * updated to the new high water mark. + */ + +} FAR deflate_state; + +/* Output a byte on the stream. + * IN assertion: there is enough room in pending_buf. + */ +#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);} + + +#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) +/* Minimum amount of lookahead, except at the end of the input file. + * See deflate.c for comments about the MIN_MATCH+1. + */ + +#define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD) +/* In order to simplify the code, particularly on 16 bit machines, match + * distances are limited to MAX_DIST instead of WSIZE. + */ + +#define WIN_INIT MAX_MATCH +/* Number of bytes after end of data in window to initialize in order to avoid + memory checker errors from longest match routines */ + + /* in trees.c */ +void _tr_init OF((deflate_state *s)); +int _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc)); +void _tr_flush_block OF((deflate_state *s, charf *buf, ulg stored_len, + int last)); +void _tr_align OF((deflate_state *s)); +void _tr_stored_block OF((deflate_state *s, charf *buf, ulg stored_len, + int last)); + +#define d_code(dist) \ + ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)]) +/* Mapping from a distance to a distance code. dist is the distance - 1 and + * must not have side effects. _dist_code[256] and _dist_code[257] are never + * used. + */ + +#ifndef DEBUG +/* Inline versions of _tr_tally for speed: */ + +#if defined(GEN_TREES_H) || !defined(STDC) + extern uch _length_code[]; + extern uch _dist_code[]; +#else + extern const uch _length_code[]; + extern const uch _dist_code[]; +#endif + +# define _tr_tally_lit(s, c, flush) \ + { uch cc = (c); \ + s->d_buf[s->last_lit] = 0; \ + s->l_buf[s->last_lit++] = cc; \ + s->dyn_ltree[cc].Freq++; \ + flush = (s->last_lit == s->lit_bufsize-1); \ + } +# define _tr_tally_dist(s, distance, length, flush) \ + { uch len = (length); \ + ush dist = (distance); \ + s->d_buf[s->last_lit] = dist; \ + s->l_buf[s->last_lit++] = len; \ + dist--; \ + s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \ + s->dyn_dtree[d_code(dist)].Freq++; \ + flush = (s->last_lit == s->lit_bufsize-1); \ + } +#else +# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c) +# define _tr_tally_dist(s, distance, length, flush) \ + flush = _tr_tally(s, distance, length) +#endif + +#endif /* DEFLATE_H */ diff --git a/mk/linux/mojosetup/zlib/infback.c b/mk/linux/mojosetup/zlib/infback.c new file mode 100644 index 00000000..af3a8c96 --- /dev/null +++ b/mk/linux/mojosetup/zlib/infback.c @@ -0,0 +1,632 @@ +/* infback.c -- inflate using a call-back interface + * Copyright (C) 1995-2009 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* + This code is largely copied from inflate.c. Normally either infback.o or + inflate.o would be linked into an application--not both. The interface + with inffast.c is retained so that optimized assembler-coded versions of + inflate_fast() can be used with either inflate.c or infback.c. + */ + +#include "zutil.h" +#include "inftrees.h" +#include "inflate.h" +#include "inffast.h" + +/* function prototypes */ +local void fixedtables OF((struct inflate_state FAR *state)); + +/* + strm provides memory allocation functions in zalloc and zfree, or + Z_NULL to use the library memory allocation functions. + + windowBits is in the range 8..15, and window is a user-supplied + window and output buffer that is 2**windowBits bytes. + */ +int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_size) +z_streamp strm; +int windowBits; +unsigned char FAR *window; +const char *version; +int stream_size; +{ + struct inflate_state FAR *state; + + if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || + stream_size != (int)(sizeof(z_stream))) + return Z_VERSION_ERROR; + if (strm == Z_NULL || window == Z_NULL || + windowBits < 8 || windowBits > 15) + return Z_STREAM_ERROR; + strm->msg = Z_NULL; /* in case we return an error */ + if (strm->zalloc == (alloc_func)0) { + strm->zalloc = zcalloc; + strm->opaque = (voidpf)0; + } + if (strm->zfree == (free_func)0) strm->zfree = zcfree; + state = (struct inflate_state FAR *)ZALLOC(strm, 1, + sizeof(struct inflate_state)); + if (state == Z_NULL) return Z_MEM_ERROR; + Tracev((stderr, "inflate: allocated\n")); + strm->state = (struct internal_state FAR *)state; + state->dmax = 32768U; + state->wbits = windowBits; + state->wsize = 1U << windowBits; + state->window = window; + state->wnext = 0; + state->whave = 0; + return Z_OK; +} + +/* + Return state with length and distance decoding tables and index sizes set to + fixed code decoding. Normally this returns fixed tables from inffixed.h. + If BUILDFIXED is defined, then instead this routine builds the tables the + first time it's called, and returns those tables the first time and + thereafter. This reduces the size of the code by about 2K bytes, in + exchange for a little execution time. However, BUILDFIXED should not be + used for threaded applications, since the rewriting of the tables and virgin + may not be thread-safe. + */ +local void fixedtables(state) +struct inflate_state FAR *state; +{ +#ifdef BUILDFIXED + static int virgin = 1; + static code *lenfix, *distfix; + static code fixed[544]; + + /* build fixed huffman tables if first call (may not be thread safe) */ + if (virgin) { + unsigned sym, bits; + static code *next; + + /* literal/length table */ + sym = 0; + while (sym < 144) state->lens[sym++] = 8; + while (sym < 256) state->lens[sym++] = 9; + while (sym < 280) state->lens[sym++] = 7; + while (sym < 288) state->lens[sym++] = 8; + next = fixed; + lenfix = next; + bits = 9; + inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); + + /* distance table */ + sym = 0; + while (sym < 32) state->lens[sym++] = 5; + distfix = next; + bits = 5; + inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); + + /* do this just once */ + virgin = 0; + } +#else /* !BUILDFIXED */ +# include "inffixed.h" +#endif /* BUILDFIXED */ + state->lencode = lenfix; + state->lenbits = 9; + state->distcode = distfix; + state->distbits = 5; +} + +/* Macros for inflateBack(): */ + +/* Load returned state from inflate_fast() */ +#define LOAD() \ + do { \ + put = strm->next_out; \ + left = strm->avail_out; \ + next = strm->next_in; \ + have = strm->avail_in; \ + hold = state->hold; \ + bits = state->bits; \ + } while (0) + +/* Set state from registers for inflate_fast() */ +#define RESTORE() \ + do { \ + strm->next_out = put; \ + strm->avail_out = left; \ + strm->next_in = next; \ + strm->avail_in = have; \ + state->hold = hold; \ + state->bits = bits; \ + } while (0) + +/* Clear the input bit accumulator */ +#define INITBITS() \ + do { \ + hold = 0; \ + bits = 0; \ + } while (0) + +/* Assure that some input is available. If input is requested, but denied, + then return a Z_BUF_ERROR from inflateBack(). */ +#define PULL() \ + do { \ + if (have == 0) { \ + have = in(in_desc, &next); \ + if (have == 0) { \ + next = Z_NULL; \ + ret = Z_BUF_ERROR; \ + goto inf_leave; \ + } \ + } \ + } while (0) + +/* Get a byte of input into the bit accumulator, or return from inflateBack() + with an error if there is no input available. */ +#define PULLBYTE() \ + do { \ + PULL(); \ + have--; \ + hold += (unsigned long)(*next++) << bits; \ + bits += 8; \ + } while (0) + +/* Assure that there are at least n bits in the bit accumulator. If there is + not enough available input to do that, then return from inflateBack() with + an error. */ +#define NEEDBITS(n) \ + do { \ + while (bits < (unsigned)(n)) \ + PULLBYTE(); \ + } while (0) + +/* Return the low n bits of the bit accumulator (n < 16) */ +#define BITS(n) \ + ((unsigned)hold & ((1U << (n)) - 1)) + +/* Remove n bits from the bit accumulator */ +#define DROPBITS(n) \ + do { \ + hold >>= (n); \ + bits -= (unsigned)(n); \ + } while (0) + +/* Remove zero to seven bits as needed to go to a byte boundary */ +#define BYTEBITS() \ + do { \ + hold >>= bits & 7; \ + bits -= bits & 7; \ + } while (0) + +/* Assure that some output space is available, by writing out the window + if it's full. If the write fails, return from inflateBack() with a + Z_BUF_ERROR. */ +#define ROOM() \ + do { \ + if (left == 0) { \ + put = state->window; \ + left = state->wsize; \ + state->whave = left; \ + if (out(out_desc, put, left)) { \ + ret = Z_BUF_ERROR; \ + goto inf_leave; \ + } \ + } \ + } while (0) + +/* + strm provides the memory allocation functions and window buffer on input, + and provides information on the unused input on return. For Z_DATA_ERROR + returns, strm will also provide an error message. + + in() and out() are the call-back input and output functions. When + inflateBack() needs more input, it calls in(). When inflateBack() has + filled the window with output, or when it completes with data in the + window, it calls out() to write out the data. The application must not + change the provided input until in() is called again or inflateBack() + returns. The application must not change the window/output buffer until + inflateBack() returns. + + in() and out() are called with a descriptor parameter provided in the + inflateBack() call. This parameter can be a structure that provides the + information required to do the read or write, as well as accumulated + information on the input and output such as totals and check values. + + in() should return zero on failure. out() should return non-zero on + failure. If either in() or out() fails, than inflateBack() returns a + Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it + was in() or out() that caused in the error. Otherwise, inflateBack() + returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format + error, or Z_MEM_ERROR if it could not allocate memory for the state. + inflateBack() can also return Z_STREAM_ERROR if the input parameters + are not correct, i.e. strm is Z_NULL or the state was not initialized. + */ +int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc) +z_streamp strm; +in_func in; +void FAR *in_desc; +out_func out; +void FAR *out_desc; +{ + struct inflate_state FAR *state; + unsigned char FAR *next; /* next input */ + unsigned char FAR *put; /* next output */ + unsigned have, left; /* available input and output */ + unsigned long hold; /* bit buffer */ + unsigned bits; /* bits in bit buffer */ + unsigned copy; /* number of stored or match bytes to copy */ + unsigned char FAR *from; /* where to copy match bytes from */ + code here; /* current decoding table entry */ + code last; /* parent table entry */ + unsigned len; /* length to copy for repeats, bits to drop */ + int ret; /* return code */ + static const unsigned short order[19] = /* permutation of code lengths */ + {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; + + /* Check that the strm exists and that the state was initialized */ + if (strm == Z_NULL || strm->state == Z_NULL) + return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + + /* Reset the state */ + strm->msg = Z_NULL; + state->mode = TYPE; + state->last = 0; + state->whave = 0; + next = strm->next_in; + have = next != Z_NULL ? strm->avail_in : 0; + hold = 0; + bits = 0; + put = state->window; + left = state->wsize; + + /* Inflate until end of block marked as last */ + for (;;) + switch (state->mode) { + case TYPE: + /* determine and dispatch block type */ + if (state->last) { + BYTEBITS(); + state->mode = DONE; + break; + } + NEEDBITS(3); + state->last = BITS(1); + DROPBITS(1); + switch (BITS(2)) { + case 0: /* stored block */ + Tracev((stderr, "inflate: stored block%s\n", + state->last ? " (last)" : "")); + state->mode = STORED; + break; + case 1: /* fixed block */ + fixedtables(state); + Tracev((stderr, "inflate: fixed codes block%s\n", + state->last ? " (last)" : "")); + state->mode = LEN; /* decode codes */ + break; + case 2: /* dynamic block */ + Tracev((stderr, "inflate: dynamic codes block%s\n", + state->last ? " (last)" : "")); + state->mode = TABLE; + break; + case 3: + strm->msg = (char *)"invalid block type"; + state->mode = BAD; + } + DROPBITS(2); + break; + + case STORED: + /* get and verify stored block length */ + BYTEBITS(); /* go to byte boundary */ + NEEDBITS(32); + if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { + strm->msg = (char *)"invalid stored block lengths"; + state->mode = BAD; + break; + } + state->length = (unsigned)hold & 0xffff; + Tracev((stderr, "inflate: stored length %u\n", + state->length)); + INITBITS(); + + /* copy stored block from input to output */ + while (state->length != 0) { + copy = state->length; + PULL(); + ROOM(); + if (copy > have) copy = have; + if (copy > left) copy = left; + zmemcpy(put, next, copy); + have -= copy; + next += copy; + left -= copy; + put += copy; + state->length -= copy; + } + Tracev((stderr, "inflate: stored end\n")); + state->mode = TYPE; + break; + + case TABLE: + /* get dynamic table entries descriptor */ + NEEDBITS(14); + state->nlen = BITS(5) + 257; + DROPBITS(5); + state->ndist = BITS(5) + 1; + DROPBITS(5); + state->ncode = BITS(4) + 4; + DROPBITS(4); +#ifndef PKZIP_BUG_WORKAROUND + if (state->nlen > 286 || state->ndist > 30) { + strm->msg = (char *)"too many length or distance symbols"; + state->mode = BAD; + break; + } +#endif + Tracev((stderr, "inflate: table sizes ok\n")); + + /* get code length code lengths (not a typo) */ + state->have = 0; + while (state->have < state->ncode) { + NEEDBITS(3); + state->lens[order[state->have++]] = (unsigned short)BITS(3); + DROPBITS(3); + } + while (state->have < 19) + state->lens[order[state->have++]] = 0; + state->next = state->codes; + state->lencode = (code const FAR *)(state->next); + state->lenbits = 7; + ret = inflate_table(CODES, state->lens, 19, &(state->next), + &(state->lenbits), state->work); + if (ret) { + strm->msg = (char *)"invalid code lengths set"; + state->mode = BAD; + break; + } + Tracev((stderr, "inflate: code lengths ok\n")); + + /* get length and distance code code lengths */ + state->have = 0; + while (state->have < state->nlen + state->ndist) { + for (;;) { + here = state->lencode[BITS(state->lenbits)]; + if ((unsigned)(here.bits) <= bits) break; + PULLBYTE(); + } + if (here.val < 16) { + NEEDBITS(here.bits); + DROPBITS(here.bits); + state->lens[state->have++] = here.val; + } + else { + if (here.val == 16) { + NEEDBITS(here.bits + 2); + DROPBITS(here.bits); + if (state->have == 0) { + strm->msg = (char *)"invalid bit length repeat"; + state->mode = BAD; + break; + } + len = (unsigned)(state->lens[state->have - 1]); + copy = 3 + BITS(2); + DROPBITS(2); + } + else if (here.val == 17) { + NEEDBITS(here.bits + 3); + DROPBITS(here.bits); + len = 0; + copy = 3 + BITS(3); + DROPBITS(3); + } + else { + NEEDBITS(here.bits + 7); + DROPBITS(here.bits); + len = 0; + copy = 11 + BITS(7); + DROPBITS(7); + } + if (state->have + copy > state->nlen + state->ndist) { + strm->msg = (char *)"invalid bit length repeat"; + state->mode = BAD; + break; + } + while (copy--) + state->lens[state->have++] = (unsigned short)len; + } + } + + /* handle error breaks in while */ + if (state->mode == BAD) break; + + /* check for end-of-block code (better have one) */ + if (state->lens[256] == 0) { + strm->msg = (char *)"invalid code -- missing end-of-block"; + state->mode = BAD; + break; + } + + /* build code tables -- note: do not change the lenbits or distbits + values here (9 and 6) without reading the comments in inftrees.h + concerning the ENOUGH constants, which depend on those values */ + state->next = state->codes; + state->lencode = (code const FAR *)(state->next); + state->lenbits = 9; + ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), + &(state->lenbits), state->work); + if (ret) { + strm->msg = (char *)"invalid literal/lengths set"; + state->mode = BAD; + break; + } + state->distcode = (code const FAR *)(state->next); + state->distbits = 6; + ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, + &(state->next), &(state->distbits), state->work); + if (ret) { + strm->msg = (char *)"invalid distances set"; + state->mode = BAD; + break; + } + Tracev((stderr, "inflate: codes ok\n")); + state->mode = LEN; + + case LEN: + /* use inflate_fast() if we have enough input and output */ + if (have >= 6 && left >= 258) { + RESTORE(); + if (state->whave < state->wsize) + state->whave = state->wsize - left; + inflate_fast(strm, state->wsize); + LOAD(); + break; + } + + /* get a literal, length, or end-of-block code */ + for (;;) { + here = state->lencode[BITS(state->lenbits)]; + if ((unsigned)(here.bits) <= bits) break; + PULLBYTE(); + } + if (here.op && (here.op & 0xf0) == 0) { + last = here; + for (;;) { + here = state->lencode[last.val + + (BITS(last.bits + last.op) >> last.bits)]; + if ((unsigned)(last.bits + here.bits) <= bits) break; + PULLBYTE(); + } + DROPBITS(last.bits); + } + DROPBITS(here.bits); + state->length = (unsigned)here.val; + + /* process literal */ + if (here.op == 0) { + Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + "inflate: literal '%c'\n" : + "inflate: literal 0x%02x\n", here.val)); + ROOM(); + *put++ = (unsigned char)(state->length); + left--; + state->mode = LEN; + break; + } + + /* process end of block */ + if (here.op & 32) { + Tracevv((stderr, "inflate: end of block\n")); + state->mode = TYPE; + break; + } + + /* invalid code */ + if (here.op & 64) { + strm->msg = (char *)"invalid literal/length code"; + state->mode = BAD; + break; + } + + /* length code -- get extra bits, if any */ + state->extra = (unsigned)(here.op) & 15; + if (state->extra != 0) { + NEEDBITS(state->extra); + state->length += BITS(state->extra); + DROPBITS(state->extra); + } + Tracevv((stderr, "inflate: length %u\n", state->length)); + + /* get distance code */ + for (;;) { + here = state->distcode[BITS(state->distbits)]; + if ((unsigned)(here.bits) <= bits) break; + PULLBYTE(); + } + if ((here.op & 0xf0) == 0) { + last = here; + for (;;) { + here = state->distcode[last.val + + (BITS(last.bits + last.op) >> last.bits)]; + if ((unsigned)(last.bits + here.bits) <= bits) break; + PULLBYTE(); + } + DROPBITS(last.bits); + } + DROPBITS(here.bits); + if (here.op & 64) { + strm->msg = (char *)"invalid distance code"; + state->mode = BAD; + break; + } + state->offset = (unsigned)here.val; + + /* get distance extra bits, if any */ + state->extra = (unsigned)(here.op) & 15; + if (state->extra != 0) { + NEEDBITS(state->extra); + state->offset += BITS(state->extra); + DROPBITS(state->extra); + } + if (state->offset > state->wsize - (state->whave < state->wsize ? + left : 0)) { + strm->msg = (char *)"invalid distance too far back"; + state->mode = BAD; + break; + } + Tracevv((stderr, "inflate: distance %u\n", state->offset)); + + /* copy match from window to output */ + do { + ROOM(); + copy = state->wsize - state->offset; + if (copy < left) { + from = put + copy; + copy = left - copy; + } + else { + from = put - state->offset; + copy = left; + } + if (copy > state->length) copy = state->length; + state->length -= copy; + left -= copy; + do { + *put++ = *from++; + } while (--copy); + } while (state->length != 0); + break; + + case DONE: + /* inflate stream terminated properly -- write leftover output */ + ret = Z_STREAM_END; + if (left < state->wsize) { + if (out(out_desc, state->window, state->wsize - left)) + ret = Z_BUF_ERROR; + } + goto inf_leave; + + case BAD: + ret = Z_DATA_ERROR; + goto inf_leave; + + default: /* can't happen, but makes compilers happy */ + ret = Z_STREAM_ERROR; + goto inf_leave; + } + + /* Return unused input */ + inf_leave: + strm->next_in = next; + strm->avail_in = have; + return ret; +} + +int ZEXPORT inflateBackEnd(strm) +z_streamp strm; +{ + if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) + return Z_STREAM_ERROR; + ZFREE(strm, strm->state); + strm->state = Z_NULL; + Tracev((stderr, "inflate: end\n")); + return Z_OK; +} diff --git a/mk/linux/mojosetup/zlib/inffast.c b/mk/linux/mojosetup/zlib/inffast.c new file mode 100644 index 00000000..0a0761f3 --- /dev/null +++ b/mk/linux/mojosetup/zlib/inffast.c @@ -0,0 +1,340 @@ +/* inffast.c -- fast decoding + * Copyright (C) 1995-2008 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +#include "zutil.h" +#include "inftrees.h" +#include "inflate.h" +#include "inffast.h" + +#ifndef ASMINF + +/* Allow machine dependent optimization for post-increment or pre-increment. + Based on testing to date, + Pre-increment preferred for: + - PowerPC G3 (Adler) + - MIPS R5000 (Randers-Pehrson) + Post-increment preferred for: + - none + No measurable difference: + - Pentium III (Anderson) + - M68060 (Nikl) + */ +#ifdef POSTINC +# define OFF 0 +# define PUP(a) *(a)++ +#else +# define OFF 1 +# define PUP(a) *++(a) +#endif + +/* + Decode literal, length, and distance codes and write out the resulting + literal and match bytes until either not enough input or output is + available, an end-of-block is encountered, or a data error is encountered. + When large enough input and output buffers are supplied to inflate(), for + example, a 16K input buffer and a 64K output buffer, more than 95% of the + inflate execution time is spent in this routine. + + Entry assumptions: + + state->mode == LEN + strm->avail_in >= 6 + strm->avail_out >= 258 + start >= strm->avail_out + state->bits < 8 + + On return, state->mode is one of: + + LEN -- ran out of enough output space or enough available input + TYPE -- reached end of block code, inflate() to interpret next block + BAD -- error in block data + + Notes: + + - The maximum input bits used by a length/distance pair is 15 bits for the + length code, 5 bits for the length extra, 15 bits for the distance code, + and 13 bits for the distance extra. This totals 48 bits, or six bytes. + Therefore if strm->avail_in >= 6, then there is enough input to avoid + checking for available input while decoding. + + - The maximum bytes that a single length/distance pair can output is 258 + bytes, which is the maximum length that can be coded. inflate_fast() + requires strm->avail_out >= 258 for each loop to avoid checking for + output space. + */ +void inflate_fast(strm, start) +z_streamp strm; +unsigned start; /* inflate()'s starting value for strm->avail_out */ +{ + struct inflate_state FAR *state; + unsigned char FAR *in; /* local strm->next_in */ + unsigned char FAR *last; /* while in < last, enough input available */ + unsigned char FAR *out; /* local strm->next_out */ + unsigned char FAR *beg; /* inflate()'s initial strm->next_out */ + unsigned char FAR *end; /* while out < end, enough space available */ +#ifdef INFLATE_STRICT + unsigned dmax; /* maximum distance from zlib header */ +#endif + unsigned wsize; /* window size or zero if not using window */ + unsigned whave; /* valid bytes in the window */ + unsigned wnext; /* window write index */ + unsigned char FAR *window; /* allocated sliding window, if wsize != 0 */ + unsigned long hold; /* local strm->hold */ + unsigned bits; /* local strm->bits */ + code const FAR *lcode; /* local strm->lencode */ + code const FAR *dcode; /* local strm->distcode */ + unsigned lmask; /* mask for first level of length codes */ + unsigned dmask; /* mask for first level of distance codes */ + code here; /* retrieved table entry */ + unsigned op; /* code bits, operation, extra bits, or */ + /* window position, window bytes to copy */ + unsigned len; /* match length, unused bytes */ + unsigned dist; /* match distance */ + unsigned char FAR *from; /* where to copy match from */ + + /* copy state to local variables */ + state = (struct inflate_state FAR *)strm->state; + in = strm->next_in - OFF; + last = in + (strm->avail_in - 5); + out = strm->next_out - OFF; + beg = out - (start - strm->avail_out); + end = out + (strm->avail_out - 257); +#ifdef INFLATE_STRICT + dmax = state->dmax; +#endif + wsize = state->wsize; + whave = state->whave; + wnext = state->wnext; + window = state->window; + hold = state->hold; + bits = state->bits; + lcode = state->lencode; + dcode = state->distcode; + lmask = (1U << state->lenbits) - 1; + dmask = (1U << state->distbits) - 1; + + /* decode literals and length/distances until end-of-block or not enough + input data or output space */ + do { + if (bits < 15) { + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + } + here = lcode[hold & lmask]; + dolen: + op = (unsigned)(here.bits); + hold >>= op; + bits -= op; + op = (unsigned)(here.op); + if (op == 0) { /* literal */ + Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + "inflate: literal '%c'\n" : + "inflate: literal 0x%02x\n", here.val)); + PUP(out) = (unsigned char)(here.val); + } + else if (op & 16) { /* length base */ + len = (unsigned)(here.val); + op &= 15; /* number of extra bits */ + if (op) { + if (bits < op) { + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + } + len += (unsigned)hold & ((1U << op) - 1); + hold >>= op; + bits -= op; + } + Tracevv((stderr, "inflate: length %u\n", len)); + if (bits < 15) { + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + } + here = dcode[hold & dmask]; + dodist: + op = (unsigned)(here.bits); + hold >>= op; + bits -= op; + op = (unsigned)(here.op); + if (op & 16) { /* distance base */ + dist = (unsigned)(here.val); + op &= 15; /* number of extra bits */ + if (bits < op) { + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + if (bits < op) { + hold += (unsigned long)(PUP(in)) << bits; + bits += 8; + } + } + dist += (unsigned)hold & ((1U << op) - 1); +#ifdef INFLATE_STRICT + if (dist > dmax) { + strm->msg = (char *)"invalid distance too far back"; + state->mode = BAD; + break; + } +#endif + hold >>= op; + bits -= op; + Tracevv((stderr, "inflate: distance %u\n", dist)); + op = (unsigned)(out - beg); /* max distance in output */ + if (dist > op) { /* see if copy from window */ + op = dist - op; /* distance back in window */ + if (op > whave) { + if (state->sane) { + strm->msg = + (char *)"invalid distance too far back"; + state->mode = BAD; + break; + } +#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR + if (len <= op - whave) { + do { + PUP(out) = 0; + } while (--len); + continue; + } + len -= op - whave; + do { + PUP(out) = 0; + } while (--op > whave); + if (op == 0) { + from = out - dist; + do { + PUP(out) = PUP(from); + } while (--len); + continue; + } +#endif + } + from = window - OFF; + if (wnext == 0) { /* very common case */ + from += wsize - op; + if (op < len) { /* some from window */ + len -= op; + do { + PUP(out) = PUP(from); + } while (--op); + from = out - dist; /* rest from output */ + } + } + else if (wnext < op) { /* wrap around window */ + from += wsize + wnext - op; + op -= wnext; + if (op < len) { /* some from end of window */ + len -= op; + do { + PUP(out) = PUP(from); + } while (--op); + from = window - OFF; + if (wnext < len) { /* some from start of window */ + op = wnext; + len -= op; + do { + PUP(out) = PUP(from); + } while (--op); + from = out - dist; /* rest from output */ + } + } + } + else { /* contiguous in window */ + from += wnext - op; + if (op < len) { /* some from window */ + len -= op; + do { + PUP(out) = PUP(from); + } while (--op); + from = out - dist; /* rest from output */ + } + } + while (len > 2) { + PUP(out) = PUP(from); + PUP(out) = PUP(from); + PUP(out) = PUP(from); + len -= 3; + } + if (len) { + PUP(out) = PUP(from); + if (len > 1) + PUP(out) = PUP(from); + } + } + else { + from = out - dist; /* copy direct from output */ + do { /* minimum length is three */ + PUP(out) = PUP(from); + PUP(out) = PUP(from); + PUP(out) = PUP(from); + len -= 3; + } while (len > 2); + if (len) { + PUP(out) = PUP(from); + if (len > 1) + PUP(out) = PUP(from); + } + } + } + else if ((op & 64) == 0) { /* 2nd level distance code */ + here = dcode[here.val + (hold & ((1U << op) - 1))]; + goto dodist; + } + else { + strm->msg = (char *)"invalid distance code"; + state->mode = BAD; + break; + } + } + else if ((op & 64) == 0) { /* 2nd level length code */ + here = lcode[here.val + (hold & ((1U << op) - 1))]; + goto dolen; + } + else if (op & 32) { /* end-of-block */ + Tracevv((stderr, "inflate: end of block\n")); + state->mode = TYPE; + break; + } + else { + strm->msg = (char *)"invalid literal/length code"; + state->mode = BAD; + break; + } + } while (in < last && out < end); + + /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ + len = bits >> 3; + in -= len; + bits -= len << 3; + hold &= (1U << bits) - 1; + + /* update state and return */ + strm->next_in = in + OFF; + strm->next_out = out + OFF; + strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last)); + strm->avail_out = (unsigned)(out < end ? + 257 + (end - out) : 257 - (out - end)); + state->hold = hold; + state->bits = bits; + return; +} + +/* + inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe): + - Using bit fields for code structure + - Different op definition to avoid & for extra bits (do & for table bits) + - Three separate decoding do-loops for direct, window, and wnext == 0 + - Special case for distance > 1 copies to do overlapped load and store copy + - Explicit branch predictions (based on measured branch probabilities) + - Deferring match copy and interspersed it with decoding subsequent codes + - Swapping literal/length else + - Swapping window/direct else + - Larger unrolled copy loops (three is about right) + - Moving len -= 3 statement into middle of loop + */ + +#endif /* !ASMINF */ diff --git a/mk/linux/mojosetup/zlib/inffast.h b/mk/linux/mojosetup/zlib/inffast.h new file mode 100644 index 00000000..1e88d2d9 --- /dev/null +++ b/mk/linux/mojosetup/zlib/inffast.h @@ -0,0 +1,11 @@ +/* inffast.h -- header to use inffast.c + * Copyright (C) 1995-2003 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +void inflate_fast OF((z_streamp strm, unsigned start)); diff --git a/mk/linux/mojosetup/zlib/inffixed.h b/mk/linux/mojosetup/zlib/inffixed.h new file mode 100644 index 00000000..75ed4b59 --- /dev/null +++ b/mk/linux/mojosetup/zlib/inffixed.h @@ -0,0 +1,94 @@ + /* inffixed.h -- table for decoding fixed codes + * Generated automatically by makefixed(). + */ + + /* WARNING: this file should *not* be used by applications. It + is part of the implementation of the compression library and + is subject to change. Applications should only use zlib.h. + */ + + static const code lenfix[512] = { + {96,7,0},{0,8,80},{0,8,16},{20,8,115},{18,7,31},{0,8,112},{0,8,48}, + {0,9,192},{16,7,10},{0,8,96},{0,8,32},{0,9,160},{0,8,0},{0,8,128}, + {0,8,64},{0,9,224},{16,7,6},{0,8,88},{0,8,24},{0,9,144},{19,7,59}, + {0,8,120},{0,8,56},{0,9,208},{17,7,17},{0,8,104},{0,8,40},{0,9,176}, + {0,8,8},{0,8,136},{0,8,72},{0,9,240},{16,7,4},{0,8,84},{0,8,20}, + {21,8,227},{19,7,43},{0,8,116},{0,8,52},{0,9,200},{17,7,13},{0,8,100}, + {0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},{16,7,8}, + {0,8,92},{0,8,28},{0,9,152},{20,7,83},{0,8,124},{0,8,60},{0,9,216}, + {18,7,23},{0,8,108},{0,8,44},{0,9,184},{0,8,12},{0,8,140},{0,8,76}, + {0,9,248},{16,7,3},{0,8,82},{0,8,18},{21,8,163},{19,7,35},{0,8,114}, + {0,8,50},{0,9,196},{17,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2}, + {0,8,130},{0,8,66},{0,9,228},{16,7,7},{0,8,90},{0,8,26},{0,9,148}, + {20,7,67},{0,8,122},{0,8,58},{0,9,212},{18,7,19},{0,8,106},{0,8,42}, + {0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},{16,7,5},{0,8,86}, + {0,8,22},{64,8,0},{19,7,51},{0,8,118},{0,8,54},{0,9,204},{17,7,15}, + {0,8,102},{0,8,38},{0,9,172},{0,8,6},{0,8,134},{0,8,70},{0,9,236}, + {16,7,9},{0,8,94},{0,8,30},{0,9,156},{20,7,99},{0,8,126},{0,8,62}, + {0,9,220},{18,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142}, + {0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{21,8,131},{18,7,31}, + {0,8,113},{0,8,49},{0,9,194},{16,7,10},{0,8,97},{0,8,33},{0,9,162}, + {0,8,1},{0,8,129},{0,8,65},{0,9,226},{16,7,6},{0,8,89},{0,8,25}, + {0,9,146},{19,7,59},{0,8,121},{0,8,57},{0,9,210},{17,7,17},{0,8,105}, + {0,8,41},{0,9,178},{0,8,9},{0,8,137},{0,8,73},{0,9,242},{16,7,4}, + {0,8,85},{0,8,21},{16,8,258},{19,7,43},{0,8,117},{0,8,53},{0,9,202}, + {17,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},{0,8,69}, + {0,9,234},{16,7,8},{0,8,93},{0,8,29},{0,9,154},{20,7,83},{0,8,125}, + {0,8,61},{0,9,218},{18,7,23},{0,8,109},{0,8,45},{0,9,186},{0,8,13}, + {0,8,141},{0,8,77},{0,9,250},{16,7,3},{0,8,83},{0,8,19},{21,8,195}, + {19,7,35},{0,8,115},{0,8,51},{0,9,198},{17,7,11},{0,8,99},{0,8,35}, + {0,9,166},{0,8,3},{0,8,131},{0,8,67},{0,9,230},{16,7,7},{0,8,91}, + {0,8,27},{0,9,150},{20,7,67},{0,8,123},{0,8,59},{0,9,214},{18,7,19}, + {0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},{0,8,75},{0,9,246}, + {16,7,5},{0,8,87},{0,8,23},{64,8,0},{19,7,51},{0,8,119},{0,8,55}, + {0,9,206},{17,7,15},{0,8,103},{0,8,39},{0,9,174},{0,8,7},{0,8,135}, + {0,8,71},{0,9,238},{16,7,9},{0,8,95},{0,8,31},{0,9,158},{20,7,99}, + {0,8,127},{0,8,63},{0,9,222},{18,7,27},{0,8,111},{0,8,47},{0,9,190}, + {0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},{0,8,16}, + {20,8,115},{18,7,31},{0,8,112},{0,8,48},{0,9,193},{16,7,10},{0,8,96}, + {0,8,32},{0,9,161},{0,8,0},{0,8,128},{0,8,64},{0,9,225},{16,7,6}, + {0,8,88},{0,8,24},{0,9,145},{19,7,59},{0,8,120},{0,8,56},{0,9,209}, + {17,7,17},{0,8,104},{0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72}, + {0,9,241},{16,7,4},{0,8,84},{0,8,20},{21,8,227},{19,7,43},{0,8,116}, + {0,8,52},{0,9,201},{17,7,13},{0,8,100},{0,8,36},{0,9,169},{0,8,4}, + {0,8,132},{0,8,68},{0,9,233},{16,7,8},{0,8,92},{0,8,28},{0,9,153}, + {20,7,83},{0,8,124},{0,8,60},{0,9,217},{18,7,23},{0,8,108},{0,8,44}, + {0,9,185},{0,8,12},{0,8,140},{0,8,76},{0,9,249},{16,7,3},{0,8,82}, + {0,8,18},{21,8,163},{19,7,35},{0,8,114},{0,8,50},{0,9,197},{17,7,11}, + {0,8,98},{0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229}, + {16,7,7},{0,8,90},{0,8,26},{0,9,149},{20,7,67},{0,8,122},{0,8,58}, + {0,9,213},{18,7,19},{0,8,106},{0,8,42},{0,9,181},{0,8,10},{0,8,138}, + {0,8,74},{0,9,245},{16,7,5},{0,8,86},{0,8,22},{64,8,0},{19,7,51}, + {0,8,118},{0,8,54},{0,9,205},{17,7,15},{0,8,102},{0,8,38},{0,9,173}, + {0,8,6},{0,8,134},{0,8,70},{0,9,237},{16,7,9},{0,8,94},{0,8,30}, + {0,9,157},{20,7,99},{0,8,126},{0,8,62},{0,9,221},{18,7,27},{0,8,110}, + {0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},{96,7,0}, + {0,8,81},{0,8,17},{21,8,131},{18,7,31},{0,8,113},{0,8,49},{0,9,195}, + {16,7,10},{0,8,97},{0,8,33},{0,9,163},{0,8,1},{0,8,129},{0,8,65}, + {0,9,227},{16,7,6},{0,8,89},{0,8,25},{0,9,147},{19,7,59},{0,8,121}, + {0,8,57},{0,9,211},{17,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9}, + {0,8,137},{0,8,73},{0,9,243},{16,7,4},{0,8,85},{0,8,21},{16,8,258}, + {19,7,43},{0,8,117},{0,8,53},{0,9,203},{17,7,13},{0,8,101},{0,8,37}, + {0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},{16,7,8},{0,8,93}, + {0,8,29},{0,9,155},{20,7,83},{0,8,125},{0,8,61},{0,9,219},{18,7,23}, + {0,8,109},{0,8,45},{0,9,187},{0,8,13},{0,8,141},{0,8,77},{0,9,251}, + {16,7,3},{0,8,83},{0,8,19},{21,8,195},{19,7,35},{0,8,115},{0,8,51}, + {0,9,199},{17,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131}, + {0,8,67},{0,9,231},{16,7,7},{0,8,91},{0,8,27},{0,9,151},{20,7,67}, + {0,8,123},{0,8,59},{0,9,215},{18,7,19},{0,8,107},{0,8,43},{0,9,183}, + {0,8,11},{0,8,139},{0,8,75},{0,9,247},{16,7,5},{0,8,87},{0,8,23}, + {64,8,0},{19,7,51},{0,8,119},{0,8,55},{0,9,207},{17,7,15},{0,8,103}, + {0,8,39},{0,9,175},{0,8,7},{0,8,135},{0,8,71},{0,9,239},{16,7,9}, + {0,8,95},{0,8,31},{0,9,159},{20,7,99},{0,8,127},{0,8,63},{0,9,223}, + {18,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},{0,8,79}, + {0,9,255} + }; + + static const code distfix[32] = { + {16,5,1},{23,5,257},{19,5,17},{27,5,4097},{17,5,5},{25,5,1025}, + {21,5,65},{29,5,16385},{16,5,3},{24,5,513},{20,5,33},{28,5,8193}, + {18,5,9},{26,5,2049},{22,5,129},{64,5,0},{16,5,2},{23,5,385}, + {19,5,25},{27,5,6145},{17,5,7},{25,5,1537},{21,5,97},{29,5,24577}, + {16,5,4},{24,5,769},{20,5,49},{28,5,12289},{18,5,13},{26,5,3073}, + {22,5,193},{64,5,0} + }; diff --git a/mk/linux/mojosetup/zlib/inflate.c b/mk/linux/mojosetup/zlib/inflate.c new file mode 100644 index 00000000..a8431abe --- /dev/null +++ b/mk/linux/mojosetup/zlib/inflate.c @@ -0,0 +1,1480 @@ +/* inflate.c -- zlib decompression + * Copyright (C) 1995-2010 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* + * Change history: + * + * 1.2.beta0 24 Nov 2002 + * - First version -- complete rewrite of inflate to simplify code, avoid + * creation of window when not needed, minimize use of window when it is + * needed, make inffast.c even faster, implement gzip decoding, and to + * improve code readability and style over the previous zlib inflate code + * + * 1.2.beta1 25 Nov 2002 + * - Use pointers for available input and output checking in inffast.c + * - Remove input and output counters in inffast.c + * - Change inffast.c entry and loop from avail_in >= 7 to >= 6 + * - Remove unnecessary second byte pull from length extra in inffast.c + * - Unroll direct copy to three copies per loop in inffast.c + * + * 1.2.beta2 4 Dec 2002 + * - Change external routine names to reduce potential conflicts + * - Correct filename to inffixed.h for fixed tables in inflate.c + * - Make hbuf[] unsigned char to match parameter type in inflate.c + * - Change strm->next_out[-state->offset] to *(strm->next_out - state->offset) + * to avoid negation problem on Alphas (64 bit) in inflate.c + * + * 1.2.beta3 22 Dec 2002 + * - Add comments on state->bits assertion in inffast.c + * - Add comments on op field in inftrees.h + * - Fix bug in reuse of allocated window after inflateReset() + * - Remove bit fields--back to byte structure for speed + * - Remove distance extra == 0 check in inflate_fast()--only helps for lengths + * - Change post-increments to pre-increments in inflate_fast(), PPC biased? + * - Add compile time option, POSTINC, to use post-increments instead (Intel?) + * - Make MATCH copy in inflate() much faster for when inflate_fast() not used + * - Use local copies of stream next and avail values, as well as local bit + * buffer and bit count in inflate()--for speed when inflate_fast() not used + * + * 1.2.beta4 1 Jan 2003 + * - Split ptr - 257 statements in inflate_table() to avoid compiler warnings + * - Move a comment on output buffer sizes from inffast.c to inflate.c + * - Add comments in inffast.c to introduce the inflate_fast() routine + * - Rearrange window copies in inflate_fast() for speed and simplification + * - Unroll last copy for window match in inflate_fast() + * - Use local copies of window variables in inflate_fast() for speed + * - Pull out common wnext == 0 case for speed in inflate_fast() + * - Make op and len in inflate_fast() unsigned for consistency + * - Add FAR to lcode and dcode declarations in inflate_fast() + * - Simplified bad distance check in inflate_fast() + * - Added inflateBackInit(), inflateBack(), and inflateBackEnd() in new + * source file infback.c to provide a call-back interface to inflate for + * programs like gzip and unzip -- uses window as output buffer to avoid + * window copying + * + * 1.2.beta5 1 Jan 2003 + * - Improved inflateBack() interface to allow the caller to provide initial + * input in strm. + * - Fixed stored blocks bug in inflateBack() + * + * 1.2.beta6 4 Jan 2003 + * - Added comments in inffast.c on effectiveness of POSTINC + * - Typecasting all around to reduce compiler warnings + * - Changed loops from while (1) or do {} while (1) to for (;;), again to + * make compilers happy + * - Changed type of window in inflateBackInit() to unsigned char * + * + * 1.2.beta7 27 Jan 2003 + * - Changed many types to unsigned or unsigned short to avoid warnings + * - Added inflateCopy() function + * + * 1.2.0 9 Mar 2003 + * - Changed inflateBack() interface to provide separate opaque descriptors + * for the in() and out() functions + * - Changed inflateBack() argument and in_func typedef to swap the length + * and buffer address return values for the input function + * - Check next_in and next_out for Z_NULL on entry to inflate() + * + * The history for versions after 1.2.0 are in ChangeLog in zlib distribution. + */ + +#include "zutil.h" +#include "inftrees.h" +#include "inflate.h" +#include "inffast.h" + +#ifdef MAKEFIXED +# ifndef BUILDFIXED +# define BUILDFIXED +# endif +#endif + +/* function prototypes */ +local void fixedtables OF((struct inflate_state FAR *state)); +local int updatewindow OF((z_streamp strm, unsigned out)); +#ifdef BUILDFIXED + void makefixed OF((void)); +#endif +local unsigned syncsearch OF((unsigned FAR *have, unsigned char FAR *buf, + unsigned len)); + +int ZEXPORT inflateReset(strm) +z_streamp strm; +{ + struct inflate_state FAR *state; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + strm->total_in = strm->total_out = state->total = 0; + strm->msg = Z_NULL; + strm->adler = 1; /* to support ill-conceived Java test suite */ + state->mode = HEAD; + state->last = 0; + state->havedict = 0; + state->dmax = 32768U; + state->head = Z_NULL; + state->wsize = 0; + state->whave = 0; + state->wnext = 0; + state->hold = 0; + state->bits = 0; + state->lencode = state->distcode = state->next = state->codes; + state->sane = 1; + state->back = -1; + Tracev((stderr, "inflate: reset\n")); + return Z_OK; +} + +int ZEXPORT inflateReset2(strm, windowBits) +z_streamp strm; +int windowBits; +{ + int wrap; + struct inflate_state FAR *state; + + /* get the state */ + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + + /* extract wrap request from windowBits parameter */ + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } + else { + wrap = (windowBits >> 4) + 1; +#ifdef GUNZIP + if (windowBits < 48) + windowBits &= 15; +#endif + } + + /* set number of window bits, free window if different */ + if (windowBits && (windowBits < 8 || windowBits > 15)) + return Z_STREAM_ERROR; + if (state->window != Z_NULL && state->wbits != (unsigned)windowBits) { + ZFREE(strm, state->window); + state->window = Z_NULL; + } + + /* update state and reset the rest of it */ + state->wrap = wrap; + state->wbits = (unsigned)windowBits; + return inflateReset(strm); +} + +int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size) +z_streamp strm; +int windowBits; +const char *version; +int stream_size; +{ + int ret; + struct inflate_state FAR *state; + + if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || + stream_size != (int)(sizeof(z_stream))) + return Z_VERSION_ERROR; + if (strm == Z_NULL) return Z_STREAM_ERROR; + strm->msg = Z_NULL; /* in case we return an error */ + if (strm->zalloc == (alloc_func)0) { + strm->zalloc = zcalloc; + strm->opaque = (voidpf)0; + } + if (strm->zfree == (free_func)0) strm->zfree = zcfree; + state = (struct inflate_state FAR *) + ZALLOC(strm, 1, sizeof(struct inflate_state)); + if (state == Z_NULL) return Z_MEM_ERROR; + Tracev((stderr, "inflate: allocated\n")); + strm->state = (struct internal_state FAR *)state; + state->window = Z_NULL; + ret = inflateReset2(strm, windowBits); + if (ret != Z_OK) { + ZFREE(strm, state); + strm->state = Z_NULL; + } + return ret; +} + +int ZEXPORT inflateInit_(strm, version, stream_size) +z_streamp strm; +const char *version; +int stream_size; +{ + return inflateInit2_(strm, DEF_WBITS, version, stream_size); +} + +int ZEXPORT inflatePrime(strm, bits, value) +z_streamp strm; +int bits; +int value; +{ + struct inflate_state FAR *state; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + if (bits < 0) { + state->hold = 0; + state->bits = 0; + return Z_OK; + } + if (bits > 16 || state->bits + bits > 32) return Z_STREAM_ERROR; + value &= (1L << bits) - 1; + state->hold += value << state->bits; + state->bits += bits; + return Z_OK; +} + +/* + Return state with length and distance decoding tables and index sizes set to + fixed code decoding. Normally this returns fixed tables from inffixed.h. + If BUILDFIXED is defined, then instead this routine builds the tables the + first time it's called, and returns those tables the first time and + thereafter. This reduces the size of the code by about 2K bytes, in + exchange for a little execution time. However, BUILDFIXED should not be + used for threaded applications, since the rewriting of the tables and virgin + may not be thread-safe. + */ +local void fixedtables(state) +struct inflate_state FAR *state; +{ +#ifdef BUILDFIXED + static int virgin = 1; + static code *lenfix, *distfix; + static code fixed[544]; + + /* build fixed huffman tables if first call (may not be thread safe) */ + if (virgin) { + unsigned sym, bits; + static code *next; + + /* literal/length table */ + sym = 0; + while (sym < 144) state->lens[sym++] = 8; + while (sym < 256) state->lens[sym++] = 9; + while (sym < 280) state->lens[sym++] = 7; + while (sym < 288) state->lens[sym++] = 8; + next = fixed; + lenfix = next; + bits = 9; + inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); + + /* distance table */ + sym = 0; + while (sym < 32) state->lens[sym++] = 5; + distfix = next; + bits = 5; + inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); + + /* do this just once */ + virgin = 0; + } +#else /* !BUILDFIXED */ +# include "inffixed.h" +#endif /* BUILDFIXED */ + state->lencode = lenfix; + state->lenbits = 9; + state->distcode = distfix; + state->distbits = 5; +} + +#ifdef MAKEFIXED +#include + +/* + Write out the inffixed.h that is #include'd above. Defining MAKEFIXED also + defines BUILDFIXED, so the tables are built on the fly. makefixed() writes + those tables to stdout, which would be piped to inffixed.h. A small program + can simply call makefixed to do this: + + void makefixed(void); + + int main(void) + { + makefixed(); + return 0; + } + + Then that can be linked with zlib built with MAKEFIXED defined and run: + + a.out > inffixed.h + */ +void makefixed() +{ + unsigned low, size; + struct inflate_state state; + + fixedtables(&state); + puts(" /* inffixed.h -- table for decoding fixed codes"); + puts(" * Generated automatically by makefixed()."); + puts(" */"); + puts(""); + puts(" /* WARNING: this file should *not* be used by applications."); + puts(" It is part of the implementation of this library and is"); + puts(" subject to change. Applications should only use zlib.h."); + puts(" */"); + puts(""); + size = 1U << 9; + printf(" static const code lenfix[%u] = {", size); + low = 0; + for (;;) { + if ((low % 7) == 0) printf("\n "); + printf("{%u,%u,%d}", state.lencode[low].op, state.lencode[low].bits, + state.lencode[low].val); + if (++low == size) break; + putchar(','); + } + puts("\n };"); + size = 1U << 5; + printf("\n static const code distfix[%u] = {", size); + low = 0; + for (;;) { + if ((low % 6) == 0) printf("\n "); + printf("{%u,%u,%d}", state.distcode[low].op, state.distcode[low].bits, + state.distcode[low].val); + if (++low == size) break; + putchar(','); + } + puts("\n };"); +} +#endif /* MAKEFIXED */ + +/* + Update the window with the last wsize (normally 32K) bytes written before + returning. If window does not exist yet, create it. This is only called + when a window is already in use, or when output has been written during this + inflate call, but the end of the deflate stream has not been reached yet. + It is also called to create a window for dictionary data when a dictionary + is loaded. + + Providing output buffers larger than 32K to inflate() should provide a speed + advantage, since only the last 32K of output is copied to the sliding window + upon return from inflate(), and since all distances after the first 32K of + output will fall in the output data, making match copies simpler and faster. + The advantage may be dependent on the size of the processor's data caches. + */ +local int updatewindow(strm, out) +z_streamp strm; +unsigned out; +{ + struct inflate_state FAR *state; + unsigned copy, dist; + + state = (struct inflate_state FAR *)strm->state; + + /* if it hasn't been done already, allocate space for the window */ + if (state->window == Z_NULL) { + state->window = (unsigned char FAR *) + ZALLOC(strm, 1U << state->wbits, + sizeof(unsigned char)); + if (state->window == Z_NULL) return 1; + } + + /* if window not in use yet, initialize */ + if (state->wsize == 0) { + state->wsize = 1U << state->wbits; + state->wnext = 0; + state->whave = 0; + } + + /* copy state->wsize or less output bytes into the circular window */ + copy = out - strm->avail_out; + if (copy >= state->wsize) { + zmemcpy(state->window, strm->next_out - state->wsize, state->wsize); + state->wnext = 0; + state->whave = state->wsize; + } + else { + dist = state->wsize - state->wnext; + if (dist > copy) dist = copy; + zmemcpy(state->window + state->wnext, strm->next_out - copy, dist); + copy -= dist; + if (copy) { + zmemcpy(state->window, strm->next_out - copy, copy); + state->wnext = copy; + state->whave = state->wsize; + } + else { + state->wnext += dist; + if (state->wnext == state->wsize) state->wnext = 0; + if (state->whave < state->wsize) state->whave += dist; + } + } + return 0; +} + +/* Macros for inflate(): */ + +/* check function to use adler32() for zlib or crc32() for gzip */ +#ifdef GUNZIP +# define UPDATE(check, buf, len) \ + (state->flags ? crc32(check, buf, len) : adler32(check, buf, len)) +#else +# define UPDATE(check, buf, len) adler32(check, buf, len) +#endif + +/* check macros for header crc */ +#ifdef GUNZIP +# define CRC2(check, word) \ + do { \ + hbuf[0] = (unsigned char)(word); \ + hbuf[1] = (unsigned char)((word) >> 8); \ + check = crc32(check, hbuf, 2); \ + } while (0) + +# define CRC4(check, word) \ + do { \ + hbuf[0] = (unsigned char)(word); \ + hbuf[1] = (unsigned char)((word) >> 8); \ + hbuf[2] = (unsigned char)((word) >> 16); \ + hbuf[3] = (unsigned char)((word) >> 24); \ + check = crc32(check, hbuf, 4); \ + } while (0) +#endif + +/* Load registers with state in inflate() for speed */ +#define LOAD() \ + do { \ + put = strm->next_out; \ + left = strm->avail_out; \ + next = strm->next_in; \ + have = strm->avail_in; \ + hold = state->hold; \ + bits = state->bits; \ + } while (0) + +/* Restore state from registers in inflate() */ +#define RESTORE() \ + do { \ + strm->next_out = put; \ + strm->avail_out = left; \ + strm->next_in = next; \ + strm->avail_in = have; \ + state->hold = hold; \ + state->bits = bits; \ + } while (0) + +/* Clear the input bit accumulator */ +#define INITBITS() \ + do { \ + hold = 0; \ + bits = 0; \ + } while (0) + +/* Get a byte of input into the bit accumulator, or return from inflate() + if there is no input available. */ +#define PULLBYTE() \ + do { \ + if (have == 0) goto inf_leave; \ + have--; \ + hold += (unsigned long)(*next++) << bits; \ + bits += 8; \ + } while (0) + +/* Assure that there are at least n bits in the bit accumulator. If there is + not enough available input to do that, then return from inflate(). */ +#define NEEDBITS(n) \ + do { \ + while (bits < (unsigned)(n)) \ + PULLBYTE(); \ + } while (0) + +/* Return the low n bits of the bit accumulator (n < 16) */ +#define BITS(n) \ + ((unsigned)hold & ((1U << (n)) - 1)) + +/* Remove n bits from the bit accumulator */ +#define DROPBITS(n) \ + do { \ + hold >>= (n); \ + bits -= (unsigned)(n); \ + } while (0) + +/* Remove zero to seven bits as needed to go to a byte boundary */ +#define BYTEBITS() \ + do { \ + hold >>= bits & 7; \ + bits -= bits & 7; \ + } while (0) + +/* Reverse the bytes in a 32-bit value */ +#define REVERSE(q) \ + ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \ + (((q) & 0xff00) << 8) + (((q) & 0xff) << 24)) + +/* + inflate() uses a state machine to process as much input data and generate as + much output data as possible before returning. The state machine is + structured roughly as follows: + + for (;;) switch (state) { + ... + case STATEn: + if (not enough input data or output space to make progress) + return; + ... make progress ... + state = STATEm; + break; + ... + } + + so when inflate() is called again, the same case is attempted again, and + if the appropriate resources are provided, the machine proceeds to the + next state. The NEEDBITS() macro is usually the way the state evaluates + whether it can proceed or should return. NEEDBITS() does the return if + the requested bits are not available. The typical use of the BITS macros + is: + + NEEDBITS(n); + ... do something with BITS(n) ... + DROPBITS(n); + + where NEEDBITS(n) either returns from inflate() if there isn't enough + input left to load n bits into the accumulator, or it continues. BITS(n) + gives the low n bits in the accumulator. When done, DROPBITS(n) drops + the low n bits off the accumulator. INITBITS() clears the accumulator + and sets the number of available bits to zero. BYTEBITS() discards just + enough bits to put the accumulator on a byte boundary. After BYTEBITS() + and a NEEDBITS(8), then BITS(8) would return the next byte in the stream. + + NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return + if there is no input available. The decoding of variable length codes uses + PULLBYTE() directly in order to pull just enough bytes to decode the next + code, and no more. + + Some states loop until they get enough input, making sure that enough + state information is maintained to continue the loop where it left off + if NEEDBITS() returns in the loop. For example, want, need, and keep + would all have to actually be part of the saved state in case NEEDBITS() + returns: + + case STATEw: + while (want < need) { + NEEDBITS(n); + keep[want++] = BITS(n); + DROPBITS(n); + } + state = STATEx; + case STATEx: + + As shown above, if the next state is also the next case, then the break + is omitted. + + A state may also return if there is not enough output space available to + complete that state. Those states are copying stored data, writing a + literal byte, and copying a matching string. + + When returning, a "goto inf_leave" is used to update the total counters, + update the check value, and determine whether any progress has been made + during that inflate() call in order to return the proper return code. + Progress is defined as a change in either strm->avail_in or strm->avail_out. + When there is a window, goto inf_leave will update the window with the last + output written. If a goto inf_leave occurs in the middle of decompression + and there is no window currently, goto inf_leave will create one and copy + output to the window for the next call of inflate(). + + In this implementation, the flush parameter of inflate() only affects the + return code (per zlib.h). inflate() always writes as much as possible to + strm->next_out, given the space available and the provided input--the effect + documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers + the allocation of and copying into a sliding window until necessary, which + provides the effect documented in zlib.h for Z_FINISH when the entire input + stream available. So the only thing the flush parameter actually does is: + when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it + will return Z_BUF_ERROR if it has not reached the end of the stream. + */ + +int ZEXPORT inflate(strm, flush) +z_streamp strm; +int flush; +{ + struct inflate_state FAR *state; + unsigned char FAR *next; /* next input */ + unsigned char FAR *put; /* next output */ + unsigned have, left; /* available input and output */ + unsigned long hold; /* bit buffer */ + unsigned bits; /* bits in bit buffer */ + unsigned in, out; /* save starting available input and output */ + unsigned copy; /* number of stored or match bytes to copy */ + unsigned char FAR *from; /* where to copy match bytes from */ + code here; /* current decoding table entry */ + code last; /* parent table entry */ + unsigned len; /* length to copy for repeats, bits to drop */ + int ret; /* return code */ +#ifdef GUNZIP + unsigned char hbuf[4]; /* buffer for gzip header crc calculation */ +#endif + static const unsigned short order[19] = /* permutation of code lengths */ + {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; + + if (strm == Z_NULL || strm->state == Z_NULL || strm->next_out == Z_NULL || + (strm->next_in == Z_NULL && strm->avail_in != 0)) + return Z_STREAM_ERROR; + + state = (struct inflate_state FAR *)strm->state; + if (state->mode == TYPE) state->mode = TYPEDO; /* skip check */ + LOAD(); + in = have; + out = left; + ret = Z_OK; + for (;;) + switch (state->mode) { + case HEAD: + if (state->wrap == 0) { + state->mode = TYPEDO; + break; + } + NEEDBITS(16); +#ifdef GUNZIP + if ((state->wrap & 2) && hold == 0x8b1f) { /* gzip header */ + state->check = crc32(0L, Z_NULL, 0); + CRC2(state->check, hold); + INITBITS(); + state->mode = FLAGS; + break; + } + state->flags = 0; /* expect zlib header */ + if (state->head != Z_NULL) + state->head->done = -1; + if (!(state->wrap & 1) || /* check if zlib header allowed */ +#else + if ( +#endif + ((BITS(8) << 8) + (hold >> 8)) % 31) { + strm->msg = (char *)"incorrect header check"; + state->mode = BAD; + break; + } + if (BITS(4) != Z_DEFLATED) { + strm->msg = (char *)"unknown compression method"; + state->mode = BAD; + break; + } + DROPBITS(4); + len = BITS(4) + 8; + if (state->wbits == 0) + state->wbits = len; + else if (len > state->wbits) { + strm->msg = (char *)"invalid window size"; + state->mode = BAD; + break; + } + state->dmax = 1U << len; + Tracev((stderr, "inflate: zlib header ok\n")); + strm->adler = state->check = adler32(0L, Z_NULL, 0); + state->mode = hold & 0x200 ? DICTID : TYPE; + INITBITS(); + break; +#ifdef GUNZIP + case FLAGS: + NEEDBITS(16); + state->flags = (int)(hold); + if ((state->flags & 0xff) != Z_DEFLATED) { + strm->msg = (char *)"unknown compression method"; + state->mode = BAD; + break; + } + if (state->flags & 0xe000) { + strm->msg = (char *)"unknown header flags set"; + state->mode = BAD; + break; + } + if (state->head != Z_NULL) + state->head->text = (int)((hold >> 8) & 1); + if (state->flags & 0x0200) CRC2(state->check, hold); + INITBITS(); + state->mode = TIME; + case TIME: + NEEDBITS(32); + if (state->head != Z_NULL) + state->head->time = hold; + if (state->flags & 0x0200) CRC4(state->check, hold); + INITBITS(); + state->mode = OS; + case OS: + NEEDBITS(16); + if (state->head != Z_NULL) { + state->head->xflags = (int)(hold & 0xff); + state->head->os = (int)(hold >> 8); + } + if (state->flags & 0x0200) CRC2(state->check, hold); + INITBITS(); + state->mode = EXLEN; + case EXLEN: + if (state->flags & 0x0400) { + NEEDBITS(16); + state->length = (unsigned)(hold); + if (state->head != Z_NULL) + state->head->extra_len = (unsigned)hold; + if (state->flags & 0x0200) CRC2(state->check, hold); + INITBITS(); + } + else if (state->head != Z_NULL) + state->head->extra = Z_NULL; + state->mode = EXTRA; + case EXTRA: + if (state->flags & 0x0400) { + copy = state->length; + if (copy > have) copy = have; + if (copy) { + if (state->head != Z_NULL && + state->head->extra != Z_NULL) { + len = state->head->extra_len - state->length; + zmemcpy(state->head->extra + len, next, + len + copy > state->head->extra_max ? + state->head->extra_max - len : copy); + } + if (state->flags & 0x0200) + state->check = crc32(state->check, next, copy); + have -= copy; + next += copy; + state->length -= copy; + } + if (state->length) goto inf_leave; + } + state->length = 0; + state->mode = NAME; + case NAME: + if (state->flags & 0x0800) { + if (have == 0) goto inf_leave; + copy = 0; + do { + len = (unsigned)(next[copy++]); + if (state->head != Z_NULL && + state->head->name != Z_NULL && + state->length < state->head->name_max) + state->head->name[state->length++] = len; + } while (len && copy < have); + if (state->flags & 0x0200) + state->check = crc32(state->check, next, copy); + have -= copy; + next += copy; + if (len) goto inf_leave; + } + else if (state->head != Z_NULL) + state->head->name = Z_NULL; + state->length = 0; + state->mode = COMMENT; + case COMMENT: + if (state->flags & 0x1000) { + if (have == 0) goto inf_leave; + copy = 0; + do { + len = (unsigned)(next[copy++]); + if (state->head != Z_NULL && + state->head->comment != Z_NULL && + state->length < state->head->comm_max) + state->head->comment[state->length++] = len; + } while (len && copy < have); + if (state->flags & 0x0200) + state->check = crc32(state->check, next, copy); + have -= copy; + next += copy; + if (len) goto inf_leave; + } + else if (state->head != Z_NULL) + state->head->comment = Z_NULL; + state->mode = HCRC; + case HCRC: + if (state->flags & 0x0200) { + NEEDBITS(16); + if (hold != (state->check & 0xffff)) { + strm->msg = (char *)"header crc mismatch"; + state->mode = BAD; + break; + } + INITBITS(); + } + if (state->head != Z_NULL) { + state->head->hcrc = (int)((state->flags >> 9) & 1); + state->head->done = 1; + } + strm->adler = state->check = crc32(0L, Z_NULL, 0); + state->mode = TYPE; + break; +#endif + case DICTID: + NEEDBITS(32); + strm->adler = state->check = REVERSE(hold); + INITBITS(); + state->mode = DICT; + case DICT: + if (state->havedict == 0) { + RESTORE(); + return Z_NEED_DICT; + } + strm->adler = state->check = adler32(0L, Z_NULL, 0); + state->mode = TYPE; + case TYPE: + if (flush == Z_BLOCK || flush == Z_TREES) goto inf_leave; + case TYPEDO: + if (state->last) { + BYTEBITS(); + state->mode = CHECK; + break; + } + NEEDBITS(3); + state->last = BITS(1); + DROPBITS(1); + switch (BITS(2)) { + case 0: /* stored block */ + Tracev((stderr, "inflate: stored block%s\n", + state->last ? " (last)" : "")); + state->mode = STORED; + break; + case 1: /* fixed block */ + fixedtables(state); + Tracev((stderr, "inflate: fixed codes block%s\n", + state->last ? " (last)" : "")); + state->mode = LEN_; /* decode codes */ + if (flush == Z_TREES) { + DROPBITS(2); + goto inf_leave; + } + break; + case 2: /* dynamic block */ + Tracev((stderr, "inflate: dynamic codes block%s\n", + state->last ? " (last)" : "")); + state->mode = TABLE; + break; + case 3: + strm->msg = (char *)"invalid block type"; + state->mode = BAD; + } + DROPBITS(2); + break; + case STORED: + BYTEBITS(); /* go to byte boundary */ + NEEDBITS(32); + if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { + strm->msg = (char *)"invalid stored block lengths"; + state->mode = BAD; + break; + } + state->length = (unsigned)hold & 0xffff; + Tracev((stderr, "inflate: stored length %u\n", + state->length)); + INITBITS(); + state->mode = COPY_; + if (flush == Z_TREES) goto inf_leave; + case COPY_: + state->mode = COPY; + case COPY: + copy = state->length; + if (copy) { + if (copy > have) copy = have; + if (copy > left) copy = left; + if (copy == 0) goto inf_leave; + zmemcpy(put, next, copy); + have -= copy; + next += copy; + left -= copy; + put += copy; + state->length -= copy; + break; + } + Tracev((stderr, "inflate: stored end\n")); + state->mode = TYPE; + break; + case TABLE: + NEEDBITS(14); + state->nlen = BITS(5) + 257; + DROPBITS(5); + state->ndist = BITS(5) + 1; + DROPBITS(5); + state->ncode = BITS(4) + 4; + DROPBITS(4); +#ifndef PKZIP_BUG_WORKAROUND + if (state->nlen > 286 || state->ndist > 30) { + strm->msg = (char *)"too many length or distance symbols"; + state->mode = BAD; + break; + } +#endif + Tracev((stderr, "inflate: table sizes ok\n")); + state->have = 0; + state->mode = LENLENS; + case LENLENS: + while (state->have < state->ncode) { + NEEDBITS(3); + state->lens[order[state->have++]] = (unsigned short)BITS(3); + DROPBITS(3); + } + while (state->have < 19) + state->lens[order[state->have++]] = 0; + state->next = state->codes; + state->lencode = (code const FAR *)(state->next); + state->lenbits = 7; + ret = inflate_table(CODES, state->lens, 19, &(state->next), + &(state->lenbits), state->work); + if (ret) { + strm->msg = (char *)"invalid code lengths set"; + state->mode = BAD; + break; + } + Tracev((stderr, "inflate: code lengths ok\n")); + state->have = 0; + state->mode = CODELENS; + case CODELENS: + while (state->have < state->nlen + state->ndist) { + for (;;) { + here = state->lencode[BITS(state->lenbits)]; + if ((unsigned)(here.bits) <= bits) break; + PULLBYTE(); + } + if (here.val < 16) { + NEEDBITS(here.bits); + DROPBITS(here.bits); + state->lens[state->have++] = here.val; + } + else { + if (here.val == 16) { + NEEDBITS(here.bits + 2); + DROPBITS(here.bits); + if (state->have == 0) { + strm->msg = (char *)"invalid bit length repeat"; + state->mode = BAD; + break; + } + len = state->lens[state->have - 1]; + copy = 3 + BITS(2); + DROPBITS(2); + } + else if (here.val == 17) { + NEEDBITS(here.bits + 3); + DROPBITS(here.bits); + len = 0; + copy = 3 + BITS(3); + DROPBITS(3); + } + else { + NEEDBITS(here.bits + 7); + DROPBITS(here.bits); + len = 0; + copy = 11 + BITS(7); + DROPBITS(7); + } + if (state->have + copy > state->nlen + state->ndist) { + strm->msg = (char *)"invalid bit length repeat"; + state->mode = BAD; + break; + } + while (copy--) + state->lens[state->have++] = (unsigned short)len; + } + } + + /* handle error breaks in while */ + if (state->mode == BAD) break; + + /* check for end-of-block code (better have one) */ + if (state->lens[256] == 0) { + strm->msg = (char *)"invalid code -- missing end-of-block"; + state->mode = BAD; + break; + } + + /* build code tables -- note: do not change the lenbits or distbits + values here (9 and 6) without reading the comments in inftrees.h + concerning the ENOUGH constants, which depend on those values */ + state->next = state->codes; + state->lencode = (code const FAR *)(state->next); + state->lenbits = 9; + ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), + &(state->lenbits), state->work); + if (ret) { + strm->msg = (char *)"invalid literal/lengths set"; + state->mode = BAD; + break; + } + state->distcode = (code const FAR *)(state->next); + state->distbits = 6; + ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, + &(state->next), &(state->distbits), state->work); + if (ret) { + strm->msg = (char *)"invalid distances set"; + state->mode = BAD; + break; + } + Tracev((stderr, "inflate: codes ok\n")); + state->mode = LEN_; + if (flush == Z_TREES) goto inf_leave; + case LEN_: + state->mode = LEN; + case LEN: + if (have >= 6 && left >= 258) { + RESTORE(); + inflate_fast(strm, out); + LOAD(); + if (state->mode == TYPE) + state->back = -1; + break; + } + state->back = 0; + for (;;) { + here = state->lencode[BITS(state->lenbits)]; + if ((unsigned)(here.bits) <= bits) break; + PULLBYTE(); + } + if (here.op && (here.op & 0xf0) == 0) { + last = here; + for (;;) { + here = state->lencode[last.val + + (BITS(last.bits + last.op) >> last.bits)]; + if ((unsigned)(last.bits + here.bits) <= bits) break; + PULLBYTE(); + } + DROPBITS(last.bits); + state->back += last.bits; + } + DROPBITS(here.bits); + state->back += here.bits; + state->length = (unsigned)here.val; + if ((int)(here.op) == 0) { + Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + "inflate: literal '%c'\n" : + "inflate: literal 0x%02x\n", here.val)); + state->mode = LIT; + break; + } + if (here.op & 32) { + Tracevv((stderr, "inflate: end of block\n")); + state->back = -1; + state->mode = TYPE; + break; + } + if (here.op & 64) { + strm->msg = (char *)"invalid literal/length code"; + state->mode = BAD; + break; + } + state->extra = (unsigned)(here.op) & 15; + state->mode = LENEXT; + case LENEXT: + if (state->extra) { + NEEDBITS(state->extra); + state->length += BITS(state->extra); + DROPBITS(state->extra); + state->back += state->extra; + } + Tracevv((stderr, "inflate: length %u\n", state->length)); + state->was = state->length; + state->mode = DIST; + case DIST: + for (;;) { + here = state->distcode[BITS(state->distbits)]; + if ((unsigned)(here.bits) <= bits) break; + PULLBYTE(); + } + if ((here.op & 0xf0) == 0) { + last = here; + for (;;) { + here = state->distcode[last.val + + (BITS(last.bits + last.op) >> last.bits)]; + if ((unsigned)(last.bits + here.bits) <= bits) break; + PULLBYTE(); + } + DROPBITS(last.bits); + state->back += last.bits; + } + DROPBITS(here.bits); + state->back += here.bits; + if (here.op & 64) { + strm->msg = (char *)"invalid distance code"; + state->mode = BAD; + break; + } + state->offset = (unsigned)here.val; + state->extra = (unsigned)(here.op) & 15; + state->mode = DISTEXT; + case DISTEXT: + if (state->extra) { + NEEDBITS(state->extra); + state->offset += BITS(state->extra); + DROPBITS(state->extra); + state->back += state->extra; + } +#ifdef INFLATE_STRICT + if (state->offset > state->dmax) { + strm->msg = (char *)"invalid distance too far back"; + state->mode = BAD; + break; + } +#endif + Tracevv((stderr, "inflate: distance %u\n", state->offset)); + state->mode = MATCH; + case MATCH: + if (left == 0) goto inf_leave; + copy = out - left; + if (state->offset > copy) { /* copy from window */ + copy = state->offset - copy; + if (copy > state->whave) { + if (state->sane) { + strm->msg = (char *)"invalid distance too far back"; + state->mode = BAD; + break; + } +#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR + Trace((stderr, "inflate.c too far\n")); + copy -= state->whave; + if (copy > state->length) copy = state->length; + if (copy > left) copy = left; + left -= copy; + state->length -= copy; + do { + *put++ = 0; + } while (--copy); + if (state->length == 0) state->mode = LEN; + break; +#endif + } + if (copy > state->wnext) { + copy -= state->wnext; + from = state->window + (state->wsize - copy); + } + else + from = state->window + (state->wnext - copy); + if (copy > state->length) copy = state->length; + } + else { /* copy from output */ + from = put - state->offset; + copy = state->length; + } + if (copy > left) copy = left; + left -= copy; + state->length -= copy; + do { + *put++ = *from++; + } while (--copy); + if (state->length == 0) state->mode = LEN; + break; + case LIT: + if (left == 0) goto inf_leave; + *put++ = (unsigned char)(state->length); + left--; + state->mode = LEN; + break; + case CHECK: + if (state->wrap) { + NEEDBITS(32); + out -= left; + strm->total_out += out; + state->total += out; + if (out) + strm->adler = state->check = + UPDATE(state->check, put - out, out); + out = left; + if (( +#ifdef GUNZIP + state->flags ? hold : +#endif + REVERSE(hold)) != state->check) { + strm->msg = (char *)"incorrect data check"; + state->mode = BAD; + break; + } + INITBITS(); + Tracev((stderr, "inflate: check matches trailer\n")); + } +#ifdef GUNZIP + state->mode = LENGTH; + case LENGTH: + if (state->wrap && state->flags) { + NEEDBITS(32); + if (hold != (state->total & 0xffffffffUL)) { + strm->msg = (char *)"incorrect length check"; + state->mode = BAD; + break; + } + INITBITS(); + Tracev((stderr, "inflate: length matches trailer\n")); + } +#endif + state->mode = DONE; + case DONE: + ret = Z_STREAM_END; + goto inf_leave; + case BAD: + ret = Z_DATA_ERROR; + goto inf_leave; + case MEM: + return Z_MEM_ERROR; + case SYNC: + default: + return Z_STREAM_ERROR; + } + + /* + Return from inflate(), updating the total counts and the check value. + If there was no progress during the inflate() call, return a buffer + error. Call updatewindow() to create and/or update the window state. + Note: a memory error from inflate() is non-recoverable. + */ + inf_leave: + RESTORE(); + if (state->wsize || (state->mode < CHECK && out != strm->avail_out)) + if (updatewindow(strm, out)) { + state->mode = MEM; + return Z_MEM_ERROR; + } + in -= strm->avail_in; + out -= strm->avail_out; + strm->total_in += in; + strm->total_out += out; + state->total += out; + if (state->wrap && out) + strm->adler = state->check = + UPDATE(state->check, strm->next_out - out, out); + strm->data_type = state->bits + (state->last ? 64 : 0) + + (state->mode == TYPE ? 128 : 0) + + (state->mode == LEN_ || state->mode == COPY_ ? 256 : 0); + if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK) + ret = Z_BUF_ERROR; + return ret; +} + +int ZEXPORT inflateEnd(strm) +z_streamp strm; +{ + struct inflate_state FAR *state; + if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) + return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + if (state->window != Z_NULL) ZFREE(strm, state->window); + ZFREE(strm, strm->state); + strm->state = Z_NULL; + Tracev((stderr, "inflate: end\n")); + return Z_OK; +} + +int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength) +z_streamp strm; +const Bytef *dictionary; +uInt dictLength; +{ + struct inflate_state FAR *state; + unsigned long id; + + /* check state */ + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + if (state->wrap != 0 && state->mode != DICT) + return Z_STREAM_ERROR; + + /* check for correct dictionary id */ + if (state->mode == DICT) { + id = adler32(0L, Z_NULL, 0); + id = adler32(id, dictionary, dictLength); + if (id != state->check) + return Z_DATA_ERROR; + } + + /* copy dictionary to window */ + if (updatewindow(strm, strm->avail_out)) { + state->mode = MEM; + return Z_MEM_ERROR; + } + if (dictLength > state->wsize) { + zmemcpy(state->window, dictionary + dictLength - state->wsize, + state->wsize); + state->whave = state->wsize; + } + else { + zmemcpy(state->window + state->wsize - dictLength, dictionary, + dictLength); + state->whave = dictLength; + } + state->havedict = 1; + Tracev((stderr, "inflate: dictionary set\n")); + return Z_OK; +} + +int ZEXPORT inflateGetHeader(strm, head) +z_streamp strm; +gz_headerp head; +{ + struct inflate_state FAR *state; + + /* check state */ + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + if ((state->wrap & 2) == 0) return Z_STREAM_ERROR; + + /* save header structure */ + state->head = head; + head->done = 0; + return Z_OK; +} + +/* + Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found + or when out of input. When called, *have is the number of pattern bytes + found in order so far, in 0..3. On return *have is updated to the new + state. If on return *have equals four, then the pattern was found and the + return value is how many bytes were read including the last byte of the + pattern. If *have is less than four, then the pattern has not been found + yet and the return value is len. In the latter case, syncsearch() can be + called again with more data and the *have state. *have is initialized to + zero for the first call. + */ +local unsigned syncsearch(have, buf, len) +unsigned FAR *have; +unsigned char FAR *buf; +unsigned len; +{ + unsigned got; + unsigned next; + + got = *have; + next = 0; + while (next < len && got < 4) { + if ((int)(buf[next]) == (got < 2 ? 0 : 0xff)) + got++; + else if (buf[next]) + got = 0; + else + got = 4 - got; + next++; + } + *have = got; + return next; +} + +int ZEXPORT inflateSync(strm) +z_streamp strm; +{ + unsigned len; /* number of bytes to look at or looked at */ + unsigned long in, out; /* temporary to save total_in and total_out */ + unsigned char buf[4]; /* to restore bit buffer to byte string */ + struct inflate_state FAR *state; + + /* check parameters */ + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR; + + /* if first time, start search in bit buffer */ + if (state->mode != SYNC) { + state->mode = SYNC; + state->hold <<= state->bits & 7; + state->bits -= state->bits & 7; + len = 0; + while (state->bits >= 8) { + buf[len++] = (unsigned char)(state->hold); + state->hold >>= 8; + state->bits -= 8; + } + state->have = 0; + syncsearch(&(state->have), buf, len); + } + + /* search available input */ + len = syncsearch(&(state->have), strm->next_in, strm->avail_in); + strm->avail_in -= len; + strm->next_in += len; + strm->total_in += len; + + /* return no joy or set up to restart inflate() on a new block */ + if (state->have != 4) return Z_DATA_ERROR; + in = strm->total_in; out = strm->total_out; + inflateReset(strm); + strm->total_in = in; strm->total_out = out; + state->mode = TYPE; + return Z_OK; +} + +/* + Returns true if inflate is currently at the end of a block generated by + Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP + implementation to provide an additional safety check. PPP uses + Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored + block. When decompressing, PPP checks that at the end of input packet, + inflate is waiting for these length bytes. + */ +int ZEXPORT inflateSyncPoint(strm) +z_streamp strm; +{ + struct inflate_state FAR *state; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + return state->mode == STORED && state->bits == 0; +} + +int ZEXPORT inflateCopy(dest, source) +z_streamp dest; +z_streamp source; +{ + struct inflate_state FAR *state; + struct inflate_state FAR *copy; + unsigned char FAR *window; + unsigned wsize; + + /* check input */ + if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL || + source->zalloc == (alloc_func)0 || source->zfree == (free_func)0) + return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)source->state; + + /* allocate space */ + copy = (struct inflate_state FAR *) + ZALLOC(source, 1, sizeof(struct inflate_state)); + if (copy == Z_NULL) return Z_MEM_ERROR; + window = Z_NULL; + if (state->window != Z_NULL) { + window = (unsigned char FAR *) + ZALLOC(source, 1U << state->wbits, sizeof(unsigned char)); + if (window == Z_NULL) { + ZFREE(source, copy); + return Z_MEM_ERROR; + } + } + + /* copy state */ + zmemcpy(dest, source, sizeof(z_stream)); + zmemcpy(copy, state, sizeof(struct inflate_state)); + if (state->lencode >= state->codes && + state->lencode <= state->codes + ENOUGH - 1) { + copy->lencode = copy->codes + (state->lencode - state->codes); + copy->distcode = copy->codes + (state->distcode - state->codes); + } + copy->next = copy->codes + (state->next - state->codes); + if (window != Z_NULL) { + wsize = 1U << state->wbits; + zmemcpy(window, state->window, wsize); + } + copy->window = window; + dest->state = (struct internal_state FAR *)copy; + return Z_OK; +} + +int ZEXPORT inflateUndermine(strm, subvert) +z_streamp strm; +int subvert; +{ + struct inflate_state FAR *state; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + state = (struct inflate_state FAR *)strm->state; + state->sane = !subvert; +#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR + return Z_OK; +#else + state->sane = 1; + return Z_DATA_ERROR; +#endif +} + +long ZEXPORT inflateMark(strm) +z_streamp strm; +{ + struct inflate_state FAR *state; + + if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16; + state = (struct inflate_state FAR *)strm->state; + return ((long)(state->back) << 16) + + (state->mode == COPY ? state->length : + (state->mode == MATCH ? state->was - state->length : 0)); +} diff --git a/mk/linux/mojosetup/zlib/inflate.h b/mk/linux/mojosetup/zlib/inflate.h new file mode 100644 index 00000000..95f4986d --- /dev/null +++ b/mk/linux/mojosetup/zlib/inflate.h @@ -0,0 +1,122 @@ +/* inflate.h -- internal inflate state definition + * Copyright (C) 1995-2009 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +/* define NO_GZIP when compiling if you want to disable gzip header and + trailer decoding by inflate(). NO_GZIP would be used to avoid linking in + the crc code when it is not needed. For shared libraries, gzip decoding + should be left enabled. */ +#ifndef NO_GZIP +# define GUNZIP +#endif + +/* Possible inflate modes between inflate() calls */ +typedef enum { + HEAD, /* i: waiting for magic header */ + FLAGS, /* i: waiting for method and flags (gzip) */ + TIME, /* i: waiting for modification time (gzip) */ + OS, /* i: waiting for extra flags and operating system (gzip) */ + EXLEN, /* i: waiting for extra length (gzip) */ + EXTRA, /* i: waiting for extra bytes (gzip) */ + NAME, /* i: waiting for end of file name (gzip) */ + COMMENT, /* i: waiting for end of comment (gzip) */ + HCRC, /* i: waiting for header crc (gzip) */ + DICTID, /* i: waiting for dictionary check value */ + DICT, /* waiting for inflateSetDictionary() call */ + TYPE, /* i: waiting for type bits, including last-flag bit */ + TYPEDO, /* i: same, but skip check to exit inflate on new block */ + STORED, /* i: waiting for stored size (length and complement) */ + COPY_, /* i/o: same as COPY below, but only first time in */ + COPY, /* i/o: waiting for input or output to copy stored block */ + TABLE, /* i: waiting for dynamic block table lengths */ + LENLENS, /* i: waiting for code length code lengths */ + CODELENS, /* i: waiting for length/lit and distance code lengths */ + LEN_, /* i: same as LEN below, but only first time in */ + LEN, /* i: waiting for length/lit/eob code */ + LENEXT, /* i: waiting for length extra bits */ + DIST, /* i: waiting for distance code */ + DISTEXT, /* i: waiting for distance extra bits */ + MATCH, /* o: waiting for output space to copy string */ + LIT, /* o: waiting for output space to write literal */ + CHECK, /* i: waiting for 32-bit check value */ + LENGTH, /* i: waiting for 32-bit length (gzip) */ + DONE, /* finished check, done -- remain here until reset */ + BAD, /* got a data error -- remain here until reset */ + MEM, /* got an inflate() memory error -- remain here until reset */ + SYNC /* looking for synchronization bytes to restart inflate() */ +} inflate_mode; + +/* + State transitions between above modes - + + (most modes can go to BAD or MEM on error -- not shown for clarity) + + Process header: + HEAD -> (gzip) or (zlib) or (raw) + (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME -> COMMENT -> + HCRC -> TYPE + (zlib) -> DICTID or TYPE + DICTID -> DICT -> TYPE + (raw) -> TYPEDO + Read deflate blocks: + TYPE -> TYPEDO -> STORED or TABLE or LEN_ or CHECK + STORED -> COPY_ -> COPY -> TYPE + TABLE -> LENLENS -> CODELENS -> LEN_ + LEN_ -> LEN + Read deflate codes in fixed or dynamic block: + LEN -> LENEXT or LIT or TYPE + LENEXT -> DIST -> DISTEXT -> MATCH -> LEN + LIT -> LEN + Process trailer: + CHECK -> LENGTH -> DONE + */ + +/* state maintained between inflate() calls. Approximately 10K bytes. */ +struct inflate_state { + inflate_mode mode; /* current inflate mode */ + int last; /* true if processing last block */ + int wrap; /* bit 0 true for zlib, bit 1 true for gzip */ + int havedict; /* true if dictionary provided */ + int flags; /* gzip header method and flags (0 if zlib) */ + unsigned dmax; /* zlib header max distance (INFLATE_STRICT) */ + unsigned long check; /* protected copy of check value */ + unsigned long total; /* protected copy of output count */ + gz_headerp head; /* where to save gzip header information */ + /* sliding window */ + unsigned wbits; /* log base 2 of requested window size */ + unsigned wsize; /* window size or zero if not using window */ + unsigned whave; /* valid bytes in the window */ + unsigned wnext; /* window write index */ + unsigned char FAR *window; /* allocated sliding window, if needed */ + /* bit accumulator */ + unsigned long hold; /* input bit accumulator */ + unsigned bits; /* number of bits in "in" */ + /* for string and stored block copying */ + unsigned length; /* literal or length of data to copy */ + unsigned offset; /* distance back to copy string from */ + /* for table and code decoding */ + unsigned extra; /* extra bits needed */ + /* fixed and dynamic code tables */ + code const FAR *lencode; /* starting table for length/literal codes */ + code const FAR *distcode; /* starting table for distance codes */ + unsigned lenbits; /* index bits for lencode */ + unsigned distbits; /* index bits for distcode */ + /* dynamic table building */ + unsigned ncode; /* number of code length code lengths */ + unsigned nlen; /* number of length code lengths */ + unsigned ndist; /* number of distance code lengths */ + unsigned have; /* number of code lengths in lens[] */ + code FAR *next; /* next available space in codes[] */ + unsigned short lens[320]; /* temporary storage for code lengths */ + unsigned short work[288]; /* work area for code table building */ + code codes[ENOUGH]; /* space for code tables */ + int sane; /* if false, allow invalid distance too far */ + int back; /* bits back of last unprocessed length/lit */ + unsigned was; /* initial length of match */ +}; diff --git a/mk/linux/mojosetup/zlib/inftrees.c b/mk/linux/mojosetup/zlib/inftrees.c new file mode 100644 index 00000000..ccf7fa96 --- /dev/null +++ b/mk/linux/mojosetup/zlib/inftrees.c @@ -0,0 +1,330 @@ +/* inftrees.c -- generate Huffman trees for efficient decoding + * Copyright (C) 1995-2010 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +#include "zutil.h" +#include "inftrees.h" + +#define MAXBITS 15 + +const char inflate_copyright[] = + " inflate 1.2.4 Copyright 1995-2010 Mark Adler "; +/* + If you use the zlib library in a product, an acknowledgment is welcome + in the documentation of your product. If for some reason you cannot + include such an acknowledgment, I would appreciate that you keep this + copyright string in the executable of your product. + */ + +/* + Build a set of tables to decode the provided canonical Huffman code. + The code lengths are lens[0..codes-1]. The result starts at *table, + whose indices are 0..2^bits-1. work is a writable array of at least + lens shorts, which is used as a work area. type is the type of code + to be generated, CODES, LENS, or DISTS. On return, zero is success, + -1 is an invalid code, and +1 means that ENOUGH isn't enough. table + on return points to the next available entry's address. bits is the + requested root table index bits, and on return it is the actual root + table index bits. It will differ if the request is greater than the + longest code or if it is less than the shortest code. + */ +int inflate_table(type, lens, codes, table, bits, work) +codetype type; +unsigned short FAR *lens; +unsigned codes; +code FAR * FAR *table; +unsigned FAR *bits; +unsigned short FAR *work; +{ + unsigned len; /* a code's length in bits */ + unsigned sym; /* index of code symbols */ + unsigned min, max; /* minimum and maximum code lengths */ + unsigned root; /* number of index bits for root table */ + unsigned curr; /* number of index bits for current table */ + unsigned drop; /* code bits to drop for sub-table */ + int left; /* number of prefix codes available */ + unsigned used; /* code entries in table used */ + unsigned huff; /* Huffman code */ + unsigned incr; /* for incrementing code, index */ + unsigned fill; /* index for replicating entries */ + unsigned low; /* low bits for current root entry */ + unsigned mask; /* mask for low root bits */ + code here; /* table entry for duplication */ + code FAR *next; /* next available space in table */ + const unsigned short FAR *base; /* base value table to use */ + const unsigned short FAR *extra; /* extra bits table to use */ + int end; /* use base and extra for symbol > end */ + unsigned short count[MAXBITS+1]; /* number of codes of each length */ + unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ + static const unsigned short lbase[31] = { /* Length codes 257..285 base */ + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, + 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; + static const unsigned short lext[31] = { /* Length codes 257..285 extra */ + 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, + 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 64, 195}; + static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, + 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, + 8193, 12289, 16385, 24577, 0, 0}; + static const unsigned short dext[32] = { /* Distance codes 0..29 extra */ + 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, + 28, 28, 29, 29, 64, 64}; + + /* + Process a set of code lengths to create a canonical Huffman code. The + code lengths are lens[0..codes-1]. Each length corresponds to the + symbols 0..codes-1. The Huffman code is generated by first sorting the + symbols by length from short to long, and retaining the symbol order + for codes with equal lengths. Then the code starts with all zero bits + for the first code of the shortest length, and the codes are integer + increments for the same length, and zeros are appended as the length + increases. For the deflate format, these bits are stored backwards + from their more natural integer increment ordering, and so when the + decoding tables are built in the large loop below, the integer codes + are incremented backwards. + + This routine assumes, but does not check, that all of the entries in + lens[] are in the range 0..MAXBITS. The caller must assure this. + 1..MAXBITS is interpreted as that code length. zero means that that + symbol does not occur in this code. + + The codes are sorted by computing a count of codes for each length, + creating from that a table of starting indices for each length in the + sorted table, and then entering the symbols in order in the sorted + table. The sorted table is work[], with that space being provided by + the caller. + + The length counts are used for other purposes as well, i.e. finding + the minimum and maximum length codes, determining if there are any + codes at all, checking for a valid set of lengths, and looking ahead + at length counts to determine sub-table sizes when building the + decoding tables. + */ + + /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ + for (len = 0; len <= MAXBITS; len++) + count[len] = 0; + for (sym = 0; sym < codes; sym++) + count[lens[sym]]++; + + /* bound code lengths, force root to be within code lengths */ + root = *bits; + for (max = MAXBITS; max >= 1; max--) + if (count[max] != 0) break; + if (root > max) root = max; + if (max == 0) { /* no symbols to code at all */ + here.op = (unsigned char)64; /* invalid code marker */ + here.bits = (unsigned char)1; + here.val = (unsigned short)0; + *(*table)++ = here; /* make a table to force an error */ + *(*table)++ = here; + *bits = 1; + return 0; /* no symbols, but wait for decoding to report error */ + } + for (min = 1; min < max; min++) + if (count[min] != 0) break; + if (root < min) root = min; + + /* check for an over-subscribed or incomplete set of lengths */ + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) return -1; /* over-subscribed */ + } + if (left > 0 && (type == CODES || max != 1)) + return -1; /* incomplete set */ + + /* generate offsets into symbol table for each length for sorting */ + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) + offs[len + 1] = offs[len] + count[len]; + + /* sort symbols by length, by symbol order within each length */ + for (sym = 0; sym < codes; sym++) + if (lens[sym] != 0) work[offs[lens[sym]]++] = (unsigned short)sym; + + /* + Create and fill in decoding tables. In this loop, the table being + filled is at next and has curr index bits. The code being used is huff + with length len. That code is converted to an index by dropping drop + bits off of the bottom. For codes where len is less than drop + curr, + those top drop + curr - len bits are incremented through all values to + fill the table with replicated entries. + + root is the number of index bits for the root table. When len exceeds + root, sub-tables are created pointed to by the root entry with an index + of the low root bits of huff. This is saved in low to check for when a + new sub-table should be started. drop is zero when the root table is + being filled, and drop is root when sub-tables are being filled. + + When a new sub-table is needed, it is necessary to look ahead in the + code lengths to determine what size sub-table is needed. The length + counts are used for this, and so count[] is decremented as codes are + entered in the tables. + + used keeps track of how many table entries have been allocated from the + provided *table space. It is checked for LENS and DIST tables against + the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in + the initial root table size constants. See the comments in inftrees.h + for more information. + + sym increments through all symbols, and the loop terminates when + all codes of length max, i.e. all codes, have been processed. This + routine permits incomplete codes, so another loop after this one fills + in the rest of the decoding tables with invalid code markers. + */ + + /* set up for code type */ + switch (type) { + case CODES: + base = extra = work; /* dummy value--not used */ + end = 19; + break; + case LENS: + base = lbase; + base -= 257; + extra = lext; + extra -= 257; + end = 256; + break; + default: /* DISTS */ + base = dbase; + extra = dext; + end = -1; + } + + /* initialize state for loop */ + huff = 0; /* starting code */ + sym = 0; /* starting code symbol */ + len = min; /* starting code length */ + next = *table; /* current table to fill in */ + curr = root; /* current table index bits */ + drop = 0; /* current bits to drop from code for index */ + low = (unsigned)(-1); /* trigger new sub-table when len > root */ + used = 1U << root; /* use root table entries */ + mask = used - 1; /* mask for comparing low */ + + /* check available table space */ + if ((type == LENS && used >= ENOUGH_LENS) || + (type == DISTS && used >= ENOUGH_DISTS)) + return 1; + + /* process all codes and make table entries */ + for (;;) { + /* create table entry */ + here.bits = (unsigned char)(len - drop); + if ((int)(work[sym]) < end) { + here.op = (unsigned char)0; + here.val = work[sym]; + } + else if ((int)(work[sym]) > end) { + here.op = (unsigned char)(extra[work[sym]]); + here.val = base[work[sym]]; + } + else { + here.op = (unsigned char)(32 + 64); /* end of block */ + here.val = 0; + } + + /* replicate for those indices with low len bits equal to huff */ + incr = 1U << (len - drop); + fill = 1U << curr; + min = fill; /* save offset to next table */ + do { + fill -= incr; + next[(huff >> drop) + fill] = here; + } while (fill != 0); + + /* backwards increment the len-bit code huff */ + incr = 1U << (len - 1); + while (huff & incr) + incr >>= 1; + if (incr != 0) { + huff &= incr - 1; + huff += incr; + } + else + huff = 0; + + /* go to next symbol, update count, len */ + sym++; + if (--(count[len]) == 0) { + if (len == max) break; + len = lens[work[sym]]; + } + + /* create new sub-table if needed */ + if (len > root && (huff & mask) != low) { + /* if first time, transition to sub-tables */ + if (drop == 0) + drop = root; + + /* increment past last table */ + next += min; /* here min is 1 << curr */ + + /* determine length of next table */ + curr = len - drop; + left = (int)(1 << curr); + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) break; + curr++; + left <<= 1; + } + + /* check for enough space */ + used += 1U << curr; + if ((type == LENS && used >= ENOUGH_LENS) || + (type == DISTS && used >= ENOUGH_DISTS)) + return 1; + + /* point entry in root table to sub-table */ + low = huff & mask; + (*table)[low].op = (unsigned char)curr; + (*table)[low].bits = (unsigned char)root; + (*table)[low].val = (unsigned short)(next - *table); + } + } + + /* + Fill in rest of table for incomplete codes. This loop is similar to the + loop above in incrementing huff for table indices. It is assumed that + len is equal to curr + drop, so there is no loop needed to increment + through high index bits. When the current sub-table is filled, the loop + drops back to the root table to fill in any remaining entries there. + */ + here.op = (unsigned char)64; /* invalid code marker */ + here.bits = (unsigned char)(len - drop); + here.val = (unsigned short)0; + while (huff != 0) { + /* when done with sub-table, drop back to root table */ + if (drop != 0 && (huff & mask) != low) { + drop = 0; + len = root; + next = *table; + here.bits = (unsigned char)len; + } + + /* put invalid code marker in table */ + next[huff >> drop] = here; + + /* backwards increment the len-bit code huff */ + incr = 1U << (len - 1); + while (huff & incr) + incr >>= 1; + if (incr != 0) { + huff &= incr - 1; + huff += incr; + } + else + huff = 0; + } + + /* set return parameters */ + *table += used; + *bits = root; + return 0; +} diff --git a/mk/linux/mojosetup/zlib/inftrees.h b/mk/linux/mojosetup/zlib/inftrees.h new file mode 100644 index 00000000..67461da0 --- /dev/null +++ b/mk/linux/mojosetup/zlib/inftrees.h @@ -0,0 +1,62 @@ +/* inftrees.h -- header to use inftrees.c + * Copyright (C) 1995-2005 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +/* Structure for decoding tables. Each entry provides either the + information needed to do the operation requested by the code that + indexed that table entry, or it provides a pointer to another + table that indexes more bits of the code. op indicates whether + the entry is a pointer to another table, a literal, a length or + distance, an end-of-block, or an invalid code. For a table + pointer, the low four bits of op is the number of index bits of + that table. For a length or distance, the low four bits of op + is the number of extra bits to get after the code. bits is + the number of bits in this code or part of the code to drop off + of the bit buffer. val is the actual byte to output in the case + of a literal, the base length or distance, or the offset from + the current table to the next table. Each entry is four bytes. */ +typedef struct { + unsigned char op; /* operation, extra bits, table bits */ + unsigned char bits; /* bits in this part of the code */ + unsigned short val; /* offset in table or code value */ +} code; + +/* op values as set by inflate_table(): + 00000000 - literal + 0000tttt - table link, tttt != 0 is the number of table index bits + 0001eeee - length or distance, eeee is the number of extra bits + 01100000 - end of block + 01000000 - invalid code + */ + +/* Maximum size of the dynamic table. The maximum number of code structures is + 1444, which is the sum of 852 for literal/length codes and 592 for distance + codes. These values were found by exhaustive searches using the program + examples/enough.c found in the zlib distribtution. The arguments to that + program are the number of symbols, the initial root table size, and the + maximum bit length of a code. "enough 286 9 15" for literal/length codes + returns returns 852, and "enough 30 6 15" for distance codes returns 592. + The initial root table size (9 or 6) is found in the fifth argument of the + inflate_table() calls in inflate.c and infback.c. If the root table size is + changed, then these maximum sizes would be need to be recalculated and + updated. */ +#define ENOUGH_LENS 852 +#define ENOUGH_DISTS 592 +#define ENOUGH (ENOUGH_LENS+ENOUGH_DISTS) + +/* Type of code to build for inflate_table() */ +typedef enum { + CODES, + LENS, + DISTS +} codetype; + +extern int inflate_table OF((codetype type, unsigned short FAR *lens, + unsigned codes, code FAR * FAR *table, + unsigned FAR *bits, unsigned short FAR *work)); diff --git a/mk/linux/mojosetup/zlib/trees.c b/mk/linux/mojosetup/zlib/trees.c new file mode 100644 index 00000000..1a6e997a --- /dev/null +++ b/mk/linux/mojosetup/zlib/trees.c @@ -0,0 +1,1243 @@ +/* trees.c -- output deflated data using Huffman coding + * Copyright (C) 1995-2009 Jean-loup Gailly + * detect_data_type() function provided freely by Cosmin Truta, 2006 + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* + * ALGORITHM + * + * The "deflation" process uses several Huffman trees. The more + * common source values are represented by shorter bit sequences. + * + * Each code tree is stored in a compressed form which is itself + * a Huffman encoding of the lengths of all the code strings (in + * ascending order by source values). The actual code strings are + * reconstructed from the lengths in the inflate process, as described + * in the deflate specification. + * + * REFERENCES + * + * Deutsch, L.P.,"'Deflate' Compressed Data Format Specification". + * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc + * + * Storer, James A. + * Data Compression: Methods and Theory, pp. 49-50. + * Computer Science Press, 1988. ISBN 0-7167-8156-5. + * + * Sedgewick, R. + * Algorithms, p290. + * Addison-Wesley, 1983. ISBN 0-201-06672-6. + */ + +/* @(#) $Id$ */ + +/* #define GEN_TREES_H */ + +#include "deflate.h" + +#ifdef DEBUG +# include +#endif + +/* =========================================================================== + * Constants + */ + +#define MAX_BL_BITS 7 +/* Bit length codes must not exceed MAX_BL_BITS bits */ + +#define END_BLOCK 256 +/* end of block literal code */ + +#define REP_3_6 16 +/* repeat previous bit length 3-6 times (2 bits of repeat count) */ + +#define REPZ_3_10 17 +/* repeat a zero length 3-10 times (3 bits of repeat count) */ + +#define REPZ_11_138 18 +/* repeat a zero length 11-138 times (7 bits of repeat count) */ + +local const int extra_lbits[LENGTH_CODES] /* extra bits for each length code */ + = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0}; + +local const int extra_dbits[D_CODES] /* extra bits for each distance code */ + = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; + +local const int extra_blbits[BL_CODES]/* extra bits for each bit length code */ + = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7}; + +local const uch bl_order[BL_CODES] + = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15}; +/* The lengths of the bit length codes are sent in order of decreasing + * probability, to avoid transmitting the lengths for unused bit length codes. + */ + +#define Buf_size (8 * 2*sizeof(char)) +/* Number of bits used within bi_buf. (bi_buf might be implemented on + * more than 16 bits on some systems.) + */ + +/* =========================================================================== + * Local data. These are initialized only once. + */ + +#define DIST_CODE_LEN 512 /* see definition of array dist_code below */ + +#if defined(GEN_TREES_H) || !defined(STDC) +/* non ANSI compilers may not accept trees.h */ + +local ct_data static_ltree[L_CODES+2]; +/* The static literal tree. Since the bit lengths are imposed, there is no + * need for the L_CODES extra codes used during heap construction. However + * The codes 286 and 287 are needed to build a canonical tree (see _tr_init + * below). + */ + +local ct_data static_dtree[D_CODES]; +/* The static distance tree. (Actually a trivial tree since all codes use + * 5 bits.) + */ + +uch _dist_code[DIST_CODE_LEN]; +/* Distance codes. The first 256 values correspond to the distances + * 3 .. 258, the last 256 values correspond to the top 8 bits of + * the 15 bit distances. + */ + +uch _length_code[MAX_MATCH-MIN_MATCH+1]; +/* length code for each normalized match length (0 == MIN_MATCH) */ + +local int base_length[LENGTH_CODES]; +/* First normalized length for each code (0 = MIN_MATCH) */ + +local int base_dist[D_CODES]; +/* First normalized distance for each code (0 = distance of 1) */ + +#else +# include "trees.h" +#endif /* GEN_TREES_H */ + +struct static_tree_desc_s { + const ct_data *static_tree; /* static tree or NULL */ + const intf *extra_bits; /* extra bits for each code or NULL */ + int extra_base; /* base index for extra_bits */ + int elems; /* max number of elements in the tree */ + int max_length; /* max bit length for the codes */ +}; + +local static_tree_desc static_l_desc = +{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS}; + +local static_tree_desc static_d_desc = +{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS}; + +local static_tree_desc static_bl_desc = +{(const ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS}; + +/* =========================================================================== + * Local (static) routines in this file. + */ + +local void tr_static_init OF((void)); +local void init_block OF((deflate_state *s)); +local void pqdownheap OF((deflate_state *s, ct_data *tree, int k)); +local void gen_bitlen OF((deflate_state *s, tree_desc *desc)); +local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count)); +local void build_tree OF((deflate_state *s, tree_desc *desc)); +local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code)); +local void send_tree OF((deflate_state *s, ct_data *tree, int max_code)); +local int build_bl_tree OF((deflate_state *s)); +local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes, + int blcodes)); +local void compress_block OF((deflate_state *s, ct_data *ltree, + ct_data *dtree)); +local int detect_data_type OF((deflate_state *s)); +local unsigned bi_reverse OF((unsigned value, int length)); +local void bi_windup OF((deflate_state *s)); +local void bi_flush OF((deflate_state *s)); +local void copy_block OF((deflate_state *s, charf *buf, unsigned len, + int header)); + +#ifdef GEN_TREES_H +local void gen_trees_header OF((void)); +#endif + +#ifndef DEBUG +# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len) + /* Send a code of the given tree. c and tree must not have side effects */ + +#else /* DEBUG */ +# define send_code(s, c, tree) \ + { if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \ + send_bits(s, tree[c].Code, tree[c].Len); } +#endif + +/* =========================================================================== + * Output a short LSB first on the stream. + * IN assertion: there is enough room in pendingBuf. + */ +#define put_short(s, w) { \ + put_byte(s, (uch)((w) & 0xff)); \ + put_byte(s, (uch)((ush)(w) >> 8)); \ +} + +/* =========================================================================== + * Send a value on a given number of bits. + * IN assertion: length <= 16 and value fits in length bits. + */ +#ifdef DEBUG +local void send_bits OF((deflate_state *s, int value, int length)); + +local void send_bits(s, value, length) + deflate_state *s; + int value; /* value to send */ + int length; /* number of bits */ +{ + Tracevv((stderr," l %2d v %4x ", length, value)); + Assert(length > 0 && length <= 15, "invalid length"); + s->bits_sent += (ulg)length; + + /* If not enough room in bi_buf, use (valid) bits from bi_buf and + * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid)) + * unused bits in value. + */ + if (s->bi_valid > (int)Buf_size - length) { + s->bi_buf |= (ush)value << s->bi_valid; + put_short(s, s->bi_buf); + s->bi_buf = (ush)value >> (Buf_size - s->bi_valid); + s->bi_valid += length - Buf_size; + } else { + s->bi_buf |= (ush)value << s->bi_valid; + s->bi_valid += length; + } +} +#else /* !DEBUG */ + +#define send_bits(s, value, length) \ +{ int len = length;\ + if (s->bi_valid > (int)Buf_size - len) {\ + int val = value;\ + s->bi_buf |= (ush)val << s->bi_valid;\ + put_short(s, s->bi_buf);\ + s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\ + s->bi_valid += len - Buf_size;\ + } else {\ + s->bi_buf |= (ush)(value) << s->bi_valid;\ + s->bi_valid += len;\ + }\ +} +#endif /* DEBUG */ + + +/* the arguments must not have side effects */ + +/* =========================================================================== + * Initialize the various 'constant' tables. + */ +local void tr_static_init() +{ +#if defined(GEN_TREES_H) || !defined(STDC) + static int static_init_done = 0; + int n; /* iterates over tree elements */ + int bits; /* bit counter */ + int length; /* length value */ + int code; /* code value */ + int dist; /* distance index */ + ush bl_count[MAX_BITS+1]; + /* number of codes at each bit length for an optimal tree */ + + if (static_init_done) return; + + /* For some embedded targets, global variables are not initialized: */ +#ifdef NO_INIT_GLOBAL_POINTERS + static_l_desc.static_tree = static_ltree; + static_l_desc.extra_bits = extra_lbits; + static_d_desc.static_tree = static_dtree; + static_d_desc.extra_bits = extra_dbits; + static_bl_desc.extra_bits = extra_blbits; +#endif + + /* Initialize the mapping length (0..255) -> length code (0..28) */ + length = 0; + for (code = 0; code < LENGTH_CODES-1; code++) { + base_length[code] = length; + for (n = 0; n < (1< dist code (0..29) */ + dist = 0; + for (code = 0 ; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < (1<>= 7; /* from now on, all distances are divided by 128 */ + for ( ; code < D_CODES; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) { + _dist_code[256 + dist++] = (uch)code; + } + } + Assert (dist == 256, "tr_static_init: 256+dist != 512"); + + /* Construct the codes of the static literal tree */ + for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0; + n = 0; + while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++; + while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++; + while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++; + while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++; + /* Codes 286 and 287 do not exist, but we must include them in the + * tree construction to get a canonical Huffman tree (longest code + * all ones) + */ + gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count); + + /* The static distance tree is trivial: */ + for (n = 0; n < D_CODES; n++) { + static_dtree[n].Len = 5; + static_dtree[n].Code = bi_reverse((unsigned)n, 5); + } + static_init_done = 1; + +# ifdef GEN_TREES_H + gen_trees_header(); +# endif +#endif /* defined(GEN_TREES_H) || !defined(STDC) */ +} + +/* =========================================================================== + * Genererate the file trees.h describing the static trees. + */ +#ifdef GEN_TREES_H +# ifndef DEBUG +# include +# endif + +# define SEPARATOR(i, last, width) \ + ((i) == (last)? "\n};\n\n" : \ + ((i) % (width) == (width)-1 ? ",\n" : ", ")) + +void gen_trees_header() +{ + FILE *header = fopen("trees.h", "w"); + int i; + + Assert (header != NULL, "Can't open trees.h"); + fprintf(header, + "/* header created automatically with -DGEN_TREES_H */\n\n"); + + fprintf(header, "local const ct_data static_ltree[L_CODES+2] = {\n"); + for (i = 0; i < L_CODES+2; i++) { + fprintf(header, "{{%3u},{%3u}}%s", static_ltree[i].Code, + static_ltree[i].Len, SEPARATOR(i, L_CODES+1, 5)); + } + + fprintf(header, "local const ct_data static_dtree[D_CODES] = {\n"); + for (i = 0; i < D_CODES; i++) { + fprintf(header, "{{%2u},{%2u}}%s", static_dtree[i].Code, + static_dtree[i].Len, SEPARATOR(i, D_CODES-1, 5)); + } + + fprintf(header, "const uch _dist_code[DIST_CODE_LEN] = {\n"); + for (i = 0; i < DIST_CODE_LEN; i++) { + fprintf(header, "%2u%s", _dist_code[i], + SEPARATOR(i, DIST_CODE_LEN-1, 20)); + } + + fprintf(header, "const uch _length_code[MAX_MATCH-MIN_MATCH+1]= {\n"); + for (i = 0; i < MAX_MATCH-MIN_MATCH+1; i++) { + fprintf(header, "%2u%s", _length_code[i], + SEPARATOR(i, MAX_MATCH-MIN_MATCH, 20)); + } + + fprintf(header, "local const int base_length[LENGTH_CODES] = {\n"); + for (i = 0; i < LENGTH_CODES; i++) { + fprintf(header, "%1u%s", base_length[i], + SEPARATOR(i, LENGTH_CODES-1, 20)); + } + + fprintf(header, "local const int base_dist[D_CODES] = {\n"); + for (i = 0; i < D_CODES; i++) { + fprintf(header, "%5u%s", base_dist[i], + SEPARATOR(i, D_CODES-1, 10)); + } + + fclose(header); +} +#endif /* GEN_TREES_H */ + +/* =========================================================================== + * Initialize the tree data structures for a new zlib stream. + */ +void _tr_init(s) + deflate_state *s; +{ + tr_static_init(); + + s->l_desc.dyn_tree = s->dyn_ltree; + s->l_desc.stat_desc = &static_l_desc; + + s->d_desc.dyn_tree = s->dyn_dtree; + s->d_desc.stat_desc = &static_d_desc; + + s->bl_desc.dyn_tree = s->bl_tree; + s->bl_desc.stat_desc = &static_bl_desc; + + s->bi_buf = 0; + s->bi_valid = 0; + s->last_eob_len = 8; /* enough lookahead for inflate */ +#ifdef DEBUG + s->compressed_len = 0L; + s->bits_sent = 0L; +#endif + + /* Initialize the first block of the first file: */ + init_block(s); +} + +/* =========================================================================== + * Initialize a new block. + */ +local void init_block(s) + deflate_state *s; +{ + int n; /* iterates over tree elements */ + + /* Initialize the trees. */ + for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0; + for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0; + for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0; + + s->dyn_ltree[END_BLOCK].Freq = 1; + s->opt_len = s->static_len = 0L; + s->last_lit = s->matches = 0; +} + +#define SMALLEST 1 +/* Index within the heap array of least frequent node in the Huffman tree */ + + +/* =========================================================================== + * Remove the smallest element from the heap and recreate the heap with + * one less element. Updates heap and heap_len. + */ +#define pqremove(s, tree, top) \ +{\ + top = s->heap[SMALLEST]; \ + s->heap[SMALLEST] = s->heap[s->heap_len--]; \ + pqdownheap(s, tree, SMALLEST); \ +} + +/* =========================================================================== + * Compares to subtrees, using the tree depth as tie breaker when + * the subtrees have equal frequency. This minimizes the worst case length. + */ +#define smaller(tree, n, m, depth) \ + (tree[n].Freq < tree[m].Freq || \ + (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m])) + +/* =========================================================================== + * Restore the heap property by moving down the tree starting at node k, + * exchanging a node with the smallest of its two sons if necessary, stopping + * when the heap property is re-established (each father smaller than its + * two sons). + */ +local void pqdownheap(s, tree, k) + deflate_state *s; + ct_data *tree; /* the tree to restore */ + int k; /* node to move down */ +{ + int v = s->heap[k]; + int j = k << 1; /* left son of k */ + while (j <= s->heap_len) { + /* Set j to the smallest of the two sons: */ + if (j < s->heap_len && + smaller(tree, s->heap[j+1], s->heap[j], s->depth)) { + j++; + } + /* Exit if v is smaller than both sons */ + if (smaller(tree, v, s->heap[j], s->depth)) break; + + /* Exchange v with the smallest son */ + s->heap[k] = s->heap[j]; k = j; + + /* And continue down the tree, setting j to the left son of k */ + j <<= 1; + } + s->heap[k] = v; +} + +/* =========================================================================== + * Compute the optimal bit lengths for a tree and update the total bit length + * for the current block. + * IN assertion: the fields freq and dad are set, heap[heap_max] and + * above are the tree nodes sorted by increasing frequency. + * OUT assertions: the field len is set to the optimal bit length, the + * array bl_count contains the frequencies for each bit length. + * The length opt_len is updated; static_len is also updated if stree is + * not null. + */ +local void gen_bitlen(s, desc) + deflate_state *s; + tree_desc *desc; /* the tree descriptor */ +{ + ct_data *tree = desc->dyn_tree; + int max_code = desc->max_code; + const ct_data *stree = desc->stat_desc->static_tree; + const intf *extra = desc->stat_desc->extra_bits; + int base = desc->stat_desc->extra_base; + int max_length = desc->stat_desc->max_length; + int h; /* heap index */ + int n, m; /* iterate over the tree elements */ + int bits; /* bit length */ + int xbits; /* extra bits */ + ush f; /* frequency */ + int overflow = 0; /* number of elements with bit length too large */ + + for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0; + + /* In a first pass, compute the optimal bit lengths (which may + * overflow in the case of the bit length tree). + */ + tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */ + + for (h = s->heap_max+1; h < HEAP_SIZE; h++) { + n = s->heap[h]; + bits = tree[tree[n].Dad].Len + 1; + if (bits > max_length) bits = max_length, overflow++; + tree[n].Len = (ush)bits; + /* We overwrite tree[n].Dad which is no longer needed */ + + if (n > max_code) continue; /* not a leaf node */ + + s->bl_count[bits]++; + xbits = 0; + if (n >= base) xbits = extra[n-base]; + f = tree[n].Freq; + s->opt_len += (ulg)f * (bits + xbits); + if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits); + } + if (overflow == 0) return; + + Trace((stderr,"\nbit length overflow\n")); + /* This happens for example on obj2 and pic of the Calgary corpus */ + + /* Find the first bit length which could increase: */ + do { + bits = max_length-1; + while (s->bl_count[bits] == 0) bits--; + s->bl_count[bits]--; /* move one leaf down the tree */ + s->bl_count[bits+1] += 2; /* move one overflow item as its brother */ + s->bl_count[max_length]--; + /* The brother of the overflow item also moves one step up, + * but this does not affect bl_count[max_length] + */ + overflow -= 2; + } while (overflow > 0); + + /* Now recompute all bit lengths, scanning in increasing frequency. + * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all + * lengths instead of fixing only the wrong ones. This idea is taken + * from 'ar' written by Haruhiko Okumura.) + */ + for (bits = max_length; bits != 0; bits--) { + n = s->bl_count[bits]; + while (n != 0) { + m = s->heap[--h]; + if (m > max_code) continue; + if ((unsigned) tree[m].Len != (unsigned) bits) { + Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); + s->opt_len += ((long)bits - (long)tree[m].Len) + *(long)tree[m].Freq; + tree[m].Len = (ush)bits; + } + n--; + } + } +} + +/* =========================================================================== + * Generate the codes for a given tree and bit counts (which need not be + * optimal). + * IN assertion: the array bl_count contains the bit length statistics for + * the given tree and the field len is set for all tree elements. + * OUT assertion: the field code is set for all tree elements of non + * zero code length. + */ +local void gen_codes (tree, max_code, bl_count) + ct_data *tree; /* the tree to decorate */ + int max_code; /* largest code with non zero frequency */ + ushf *bl_count; /* number of codes at each bit length */ +{ + ush next_code[MAX_BITS+1]; /* next code value for each bit length */ + ush code = 0; /* running code value */ + int bits; /* bit index */ + int n; /* code index */ + + /* The distribution counts are first used to generate the code values + * without bit reversal. + */ + for (bits = 1; bits <= MAX_BITS; bits++) { + next_code[bits] = code = (code + bl_count[bits-1]) << 1; + } + /* Check that the bit counts in bl_count are consistent. The last code + * must be all ones. + */ + Assert (code + bl_count[MAX_BITS]-1 == (1<dyn_tree; + const ct_data *stree = desc->stat_desc->static_tree; + int elems = desc->stat_desc->elems; + int n, m; /* iterate over heap elements */ + int max_code = -1; /* largest code with non zero frequency */ + int node; /* new node being created */ + + /* Construct the initial heap, with least frequent element in + * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1]. + * heap[0] is not used. + */ + s->heap_len = 0, s->heap_max = HEAP_SIZE; + + for (n = 0; n < elems; n++) { + if (tree[n].Freq != 0) { + s->heap[++(s->heap_len)] = max_code = n; + s->depth[n] = 0; + } else { + tree[n].Len = 0; + } + } + + /* The pkzip format requires that at least one distance code exists, + * and that at least one bit should be sent even if there is only one + * possible code. So to avoid special checks later on we force at least + * two codes of non zero frequency. + */ + while (s->heap_len < 2) { + node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0); + tree[node].Freq = 1; + s->depth[node] = 0; + s->opt_len--; if (stree) s->static_len -= stree[node].Len; + /* node is 0 or 1 so it does not have extra bits */ + } + desc->max_code = max_code; + + /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree, + * establish sub-heaps of increasing lengths: + */ + for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n); + + /* Construct the Huffman tree by repeatedly combining the least two + * frequent nodes. + */ + node = elems; /* next internal node of the tree */ + do { + pqremove(s, tree, n); /* n = node of least frequency */ + m = s->heap[SMALLEST]; /* m = node of next least frequency */ + + s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */ + s->heap[--(s->heap_max)] = m; + + /* Create a new node father of n and m */ + tree[node].Freq = tree[n].Freq + tree[m].Freq; + s->depth[node] = (uch)((s->depth[n] >= s->depth[m] ? + s->depth[n] : s->depth[m]) + 1); + tree[n].Dad = tree[m].Dad = (ush)node; +#ifdef DUMP_BL_TREE + if (tree == s->bl_tree) { + fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)", + node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq); + } +#endif + /* and insert the new node in the heap */ + s->heap[SMALLEST] = node++; + pqdownheap(s, tree, SMALLEST); + + } while (s->heap_len >= 2); + + s->heap[--(s->heap_max)] = s->heap[SMALLEST]; + + /* At this point, the fields freq and dad are set. We can now + * generate the bit lengths. + */ + gen_bitlen(s, (tree_desc *)desc); + + /* The field len is now set, we can generate the bit codes */ + gen_codes ((ct_data *)tree, max_code, s->bl_count); +} + +/* =========================================================================== + * Scan a literal or distance tree to determine the frequencies of the codes + * in the bit length tree. + */ +local void scan_tree (s, tree, max_code) + deflate_state *s; + ct_data *tree; /* the tree to be scanned */ + int max_code; /* and its largest code of non zero frequency */ +{ + int n; /* iterates over all tree elements */ + int prevlen = -1; /* last emitted length */ + int curlen; /* length of current code */ + int nextlen = tree[0].Len; /* length of next code */ + int count = 0; /* repeat count of the current code */ + int max_count = 7; /* max repeat count */ + int min_count = 4; /* min repeat count */ + + if (nextlen == 0) max_count = 138, min_count = 3; + tree[max_code+1].Len = (ush)0xffff; /* guard */ + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; nextlen = tree[n+1].Len; + if (++count < max_count && curlen == nextlen) { + continue; + } else if (count < min_count) { + s->bl_tree[curlen].Freq += count; + } else if (curlen != 0) { + if (curlen != prevlen) s->bl_tree[curlen].Freq++; + s->bl_tree[REP_3_6].Freq++; + } else if (count <= 10) { + s->bl_tree[REPZ_3_10].Freq++; + } else { + s->bl_tree[REPZ_11_138].Freq++; + } + count = 0; prevlen = curlen; + if (nextlen == 0) { + max_count = 138, min_count = 3; + } else if (curlen == nextlen) { + max_count = 6, min_count = 3; + } else { + max_count = 7, min_count = 4; + } + } +} + +/* =========================================================================== + * Send a literal or distance tree in compressed form, using the codes in + * bl_tree. + */ +local void send_tree (s, tree, max_code) + deflate_state *s; + ct_data *tree; /* the tree to be scanned */ + int max_code; /* and its largest code of non zero frequency */ +{ + int n; /* iterates over all tree elements */ + int prevlen = -1; /* last emitted length */ + int curlen; /* length of current code */ + int nextlen = tree[0].Len; /* length of next code */ + int count = 0; /* repeat count of the current code */ + int max_count = 7; /* max repeat count */ + int min_count = 4; /* min repeat count */ + + /* tree[max_code+1].Len = -1; */ /* guard already set */ + if (nextlen == 0) max_count = 138, min_count = 3; + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; nextlen = tree[n+1].Len; + if (++count < max_count && curlen == nextlen) { + continue; + } else if (count < min_count) { + do { send_code(s, curlen, s->bl_tree); } while (--count != 0); + + } else if (curlen != 0) { + if (curlen != prevlen) { + send_code(s, curlen, s->bl_tree); count--; + } + Assert(count >= 3 && count <= 6, " 3_6?"); + send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2); + + } else if (count <= 10) { + send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3); + + } else { + send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7); + } + count = 0; prevlen = curlen; + if (nextlen == 0) { + max_count = 138, min_count = 3; + } else if (curlen == nextlen) { + max_count = 6, min_count = 3; + } else { + max_count = 7, min_count = 4; + } + } +} + +/* =========================================================================== + * Construct the Huffman tree for the bit lengths and return the index in + * bl_order of the last bit length code to send. + */ +local int build_bl_tree(s) + deflate_state *s; +{ + int max_blindex; /* index of last bit length code of non zero freq */ + + /* Determine the bit length frequencies for literal and distance trees */ + scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code); + scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code); + + /* Build the bit length tree: */ + build_tree(s, (tree_desc *)(&(s->bl_desc))); + /* opt_len now includes the length of the tree representations, except + * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. + */ + + /* Determine the number of bit length codes to send. The pkzip format + * requires that at least 4 bit length codes be sent. (appnote.txt says + * 3 but the actual value used is 4.) + */ + for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) { + if (s->bl_tree[bl_order[max_blindex]].Len != 0) break; + } + /* Update opt_len to include the bit length tree and counts */ + s->opt_len += 3*(max_blindex+1) + 5+5+4; + Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", + s->opt_len, s->static_len)); + + return max_blindex; +} + +/* =========================================================================== + * Send the header for a block using dynamic Huffman trees: the counts, the + * lengths of the bit length codes, the literal tree and the distance tree. + * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. + */ +local void send_all_trees(s, lcodes, dcodes, blcodes) + deflate_state *s; + int lcodes, dcodes, blcodes; /* number of codes for each tree */ +{ + int rank; /* index in bl_order */ + + Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); + Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, + "too many codes"); + Tracev((stderr, "\nbl counts: ")); + send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */ + send_bits(s, dcodes-1, 5); + send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */ + for (rank = 0; rank < blcodes; rank++) { + Tracev((stderr, "\nbl code %2d ", bl_order[rank])); + send_bits(s, s->bl_tree[bl_order[rank]].Len, 3); + } + Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); + + send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */ + Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); + + send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */ + Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); +} + +/* =========================================================================== + * Send a stored block + */ +void _tr_stored_block(s, buf, stored_len, last) + deflate_state *s; + charf *buf; /* input block */ + ulg stored_len; /* length of input block */ + int last; /* one if this is the last block for a file */ +{ + send_bits(s, (STORED_BLOCK<<1)+last, 3); /* send block type */ +#ifdef DEBUG + s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L; + s->compressed_len += (stored_len + 4) << 3; +#endif + copy_block(s, buf, (unsigned)stored_len, 1); /* with header */ +} + +/* =========================================================================== + * Send one empty static block to give enough lookahead for inflate. + * This takes 10 bits, of which 7 may remain in the bit buffer. + * The current inflate code requires 9 bits of lookahead. If the + * last two codes for the previous block (real code plus EOB) were coded + * on 5 bits or less, inflate may have only 5+3 bits of lookahead to decode + * the last real code. In this case we send two empty static blocks instead + * of one. (There are no problems if the previous block is stored or fixed.) + * To simplify the code, we assume the worst case of last real code encoded + * on one bit only. + */ +void _tr_align(s) + deflate_state *s; +{ + send_bits(s, STATIC_TREES<<1, 3); + send_code(s, END_BLOCK, static_ltree); +#ifdef DEBUG + s->compressed_len += 10L; /* 3 for block type, 7 for EOB */ +#endif + bi_flush(s); + /* Of the 10 bits for the empty block, we have already sent + * (10 - bi_valid) bits. The lookahead for the last real code (before + * the EOB of the previous block) was thus at least one plus the length + * of the EOB plus what we have just sent of the empty static block. + */ + if (1 + s->last_eob_len + 10 - s->bi_valid < 9) { + send_bits(s, STATIC_TREES<<1, 3); + send_code(s, END_BLOCK, static_ltree); +#ifdef DEBUG + s->compressed_len += 10L; +#endif + bi_flush(s); + } + s->last_eob_len = 7; +} + +/* =========================================================================== + * Determine the best encoding for the current block: dynamic trees, static + * trees or store, and output the encoded block to the zip file. + */ +void _tr_flush_block(s, buf, stored_len, last) + deflate_state *s; + charf *buf; /* input block, or NULL if too old */ + ulg stored_len; /* length of input block */ + int last; /* one if this is the last block for a file */ +{ + ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */ + int max_blindex = 0; /* index of last bit length code of non zero freq */ + + /* Build the Huffman trees unless a stored block is forced */ + if (s->level > 0) { + + /* Check if the file is binary or text */ + if (s->strm->data_type == Z_UNKNOWN) + s->strm->data_type = detect_data_type(s); + + /* Construct the literal and distance trees */ + build_tree(s, (tree_desc *)(&(s->l_desc))); + Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, + s->static_len)); + + build_tree(s, (tree_desc *)(&(s->d_desc))); + Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, + s->static_len)); + /* At this point, opt_len and static_len are the total bit lengths of + * the compressed block data, excluding the tree representations. + */ + + /* Build the bit length tree for the above two trees, and get the index + * in bl_order of the last bit length code to send. + */ + max_blindex = build_bl_tree(s); + + /* Determine the best encoding. Compute the block lengths in bytes. */ + opt_lenb = (s->opt_len+3+7)>>3; + static_lenb = (s->static_len+3+7)>>3; + + Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", + opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, + s->last_lit)); + + if (static_lenb <= opt_lenb) opt_lenb = static_lenb; + + } else { + Assert(buf != (char*)0, "lost buf"); + opt_lenb = static_lenb = stored_len + 5; /* force a stored block */ + } + +#ifdef FORCE_STORED + if (buf != (char*)0) { /* force stored block */ +#else + if (stored_len+4 <= opt_lenb && buf != (char*)0) { + /* 4: two words for the lengths */ +#endif + /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. + * Otherwise we can't have processed more than WSIZE input bytes since + * the last block flush, because compression would have been + * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to + * transform a block into a stored block. + */ + _tr_stored_block(s, buf, stored_len, last); + +#ifdef FORCE_STATIC + } else if (static_lenb >= 0) { /* force static trees */ +#else + } else if (s->strategy == Z_FIXED || static_lenb == opt_lenb) { +#endif + send_bits(s, (STATIC_TREES<<1)+last, 3); + compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree); +#ifdef DEBUG + s->compressed_len += 3 + s->static_len; +#endif + } else { + send_bits(s, (DYN_TREES<<1)+last, 3); + send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1, + max_blindex+1); + compress_block(s, (ct_data *)s->dyn_ltree, (ct_data *)s->dyn_dtree); +#ifdef DEBUG + s->compressed_len += 3 + s->opt_len; +#endif + } + Assert (s->compressed_len == s->bits_sent, "bad compressed size"); + /* The above check is made mod 2^32, for files larger than 512 MB + * and uLong implemented on 32 bits. + */ + init_block(s); + + if (last) { + bi_windup(s); +#ifdef DEBUG + s->compressed_len += 7; /* align on byte boundary */ +#endif + } + Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, + s->compressed_len-7*last)); +} + +/* =========================================================================== + * Save the match info and tally the frequency counts. Return true if + * the current block must be flushed. + */ +int _tr_tally (s, dist, lc) + deflate_state *s; + unsigned dist; /* distance of matched string */ + unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ +{ + s->d_buf[s->last_lit] = (ush)dist; + s->l_buf[s->last_lit++] = (uch)lc; + if (dist == 0) { + /* lc is the unmatched char */ + s->dyn_ltree[lc].Freq++; + } else { + s->matches++; + /* Here, lc is the match length - MIN_MATCH */ + dist--; /* dist = match distance - 1 */ + Assert((ush)dist < (ush)MAX_DIST(s) && + (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && + (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); + + s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++; + s->dyn_dtree[d_code(dist)].Freq++; + } + +#ifdef TRUNCATE_BLOCK + /* Try to guess if it is profitable to stop the current block here */ + if ((s->last_lit & 0x1fff) == 0 && s->level > 2) { + /* Compute an upper bound for the compressed length */ + ulg out_length = (ulg)s->last_lit*8L; + ulg in_length = (ulg)((long)s->strstart - s->block_start); + int dcode; + for (dcode = 0; dcode < D_CODES; dcode++) { + out_length += (ulg)s->dyn_dtree[dcode].Freq * + (5L+extra_dbits[dcode]); + } + out_length >>= 3; + Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", + s->last_lit, in_length, out_length, + 100L - out_length*100L/in_length)); + if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1; + } +#endif + return (s->last_lit == s->lit_bufsize-1); + /* We avoid equality with lit_bufsize because of wraparound at 64K + * on 16 bit machines and because stored blocks are restricted to + * 64K-1 bytes. + */ +} + +/* =========================================================================== + * Send the block data compressed using the given Huffman trees + */ +local void compress_block(s, ltree, dtree) + deflate_state *s; + ct_data *ltree; /* literal tree */ + ct_data *dtree; /* distance tree */ +{ + unsigned dist; /* distance of matched string */ + int lc; /* match length or unmatched char (if dist == 0) */ + unsigned lx = 0; /* running index in l_buf */ + unsigned code; /* the code to send */ + int extra; /* number of extra bits to send */ + + if (s->last_lit != 0) do { + dist = s->d_buf[lx]; + lc = s->l_buf[lx++]; + if (dist == 0) { + send_code(s, lc, ltree); /* send a literal byte */ + Tracecv(isgraph(lc), (stderr," '%c' ", lc)); + } else { + /* Here, lc is the match length - MIN_MATCH */ + code = _length_code[lc]; + send_code(s, code+LITERALS+1, ltree); /* send the length code */ + extra = extra_lbits[code]; + if (extra != 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); /* send the extra length bits */ + } + dist--; /* dist is now the match distance - 1 */ + code = d_code(dist); + Assert (code < D_CODES, "bad d_code"); + + send_code(s, code, dtree); /* send the distance code */ + extra = extra_dbits[code]; + if (extra != 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); /* send the extra distance bits */ + } + } /* literal or match pair ? */ + + /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ + Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx, + "pendingBuf overflow"); + + } while (lx < s->last_lit); + + send_code(s, END_BLOCK, ltree); + s->last_eob_len = ltree[END_BLOCK].Len; +} + +/* =========================================================================== + * Check if the data type is TEXT or BINARY, using the following algorithm: + * - TEXT if the two conditions below are satisfied: + * a) There are no non-portable control characters belonging to the + * "black list" (0..6, 14..25, 28..31). + * b) There is at least one printable character belonging to the + * "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). + * - BINARY otherwise. + * - The following partially-portable control characters form a + * "gray list" that is ignored in this detection algorithm: + * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}). + * IN assertion: the fields Freq of dyn_ltree are set. + */ +local int detect_data_type(s) + deflate_state *s; +{ + /* black_mask is the bit mask of black-listed bytes + * set bits 0..6, 14..25, and 28..31 + * 0xf3ffc07f = binary 11110011111111111100000001111111 + */ + unsigned long black_mask = 0xf3ffc07fUL; + int n; + + /* Check for non-textual ("black-listed") bytes. */ + for (n = 0; n <= 31; n++, black_mask >>= 1) + if ((black_mask & 1) && (s->dyn_ltree[n].Freq != 0)) + return Z_BINARY; + + /* Check for textual ("white-listed") bytes. */ + if (s->dyn_ltree[9].Freq != 0 || s->dyn_ltree[10].Freq != 0 + || s->dyn_ltree[13].Freq != 0) + return Z_TEXT; + for (n = 32; n < LITERALS; n++) + if (s->dyn_ltree[n].Freq != 0) + return Z_TEXT; + + /* There are no "black-listed" or "white-listed" bytes: + * this stream either is empty or has tolerated ("gray-listed") bytes only. + */ + return Z_BINARY; +} + +/* =========================================================================== + * Reverse the first len bits of a code, using straightforward code (a faster + * method would use a table) + * IN assertion: 1 <= len <= 15 + */ +local unsigned bi_reverse(code, len) + unsigned code; /* the value to invert */ + int len; /* its bit length */ +{ + register unsigned res = 0; + do { + res |= code & 1; + code >>= 1, res <<= 1; + } while (--len > 0); + return res >> 1; +} + +/* =========================================================================== + * Flush the bit buffer, keeping at most 7 bits in it. + */ +local void bi_flush(s) + deflate_state *s; +{ + if (s->bi_valid == 16) { + put_short(s, s->bi_buf); + s->bi_buf = 0; + s->bi_valid = 0; + } else if (s->bi_valid >= 8) { + put_byte(s, (Byte)s->bi_buf); + s->bi_buf >>= 8; + s->bi_valid -= 8; + } +} + +/* =========================================================================== + * Flush the bit buffer and align the output on a byte boundary + */ +local void bi_windup(s) + deflate_state *s; +{ + if (s->bi_valid > 8) { + put_short(s, s->bi_buf); + } else if (s->bi_valid > 0) { + put_byte(s, (Byte)s->bi_buf); + } + s->bi_buf = 0; + s->bi_valid = 0; +#ifdef DEBUG + s->bits_sent = (s->bits_sent+7) & ~7; +#endif +} + +/* =========================================================================== + * Copy a stored block, storing first the length and its + * one's complement if requested. + */ +local void copy_block(s, buf, len, header) + deflate_state *s; + charf *buf; /* the input data */ + unsigned len; /* its length */ + int header; /* true if block header must be written */ +{ + bi_windup(s); /* align on byte boundary */ + s->last_eob_len = 8; /* enough lookahead for inflate */ + + if (header) { + put_short(s, (ush)len); + put_short(s, (ush)~len); +#ifdef DEBUG + s->bits_sent += 2*16; +#endif + } +#ifdef DEBUG + s->bits_sent += (ulg)len<<3; +#endif + while (len--) { + put_byte(s, *buf++); + } +} diff --git a/mk/linux/mojosetup/zlib/trees.h b/mk/linux/mojosetup/zlib/trees.h new file mode 100644 index 00000000..72facf90 --- /dev/null +++ b/mk/linux/mojosetup/zlib/trees.h @@ -0,0 +1,128 @@ +/* header created automatically with -DGEN_TREES_H */ + +local const ct_data static_ltree[L_CODES+2] = { +{{ 12},{ 8}}, {{140},{ 8}}, {{ 76},{ 8}}, {{204},{ 8}}, {{ 44},{ 8}}, +{{172},{ 8}}, {{108},{ 8}}, {{236},{ 8}}, {{ 28},{ 8}}, {{156},{ 8}}, +{{ 92},{ 8}}, {{220},{ 8}}, {{ 60},{ 8}}, {{188},{ 8}}, {{124},{ 8}}, +{{252},{ 8}}, {{ 2},{ 8}}, {{130},{ 8}}, {{ 66},{ 8}}, {{194},{ 8}}, +{{ 34},{ 8}}, {{162},{ 8}}, {{ 98},{ 8}}, {{226},{ 8}}, {{ 18},{ 8}}, +{{146},{ 8}}, {{ 82},{ 8}}, {{210},{ 8}}, {{ 50},{ 8}}, {{178},{ 8}}, +{{114},{ 8}}, {{242},{ 8}}, {{ 10},{ 8}}, {{138},{ 8}}, {{ 74},{ 8}}, +{{202},{ 8}}, {{ 42},{ 8}}, {{170},{ 8}}, {{106},{ 8}}, {{234},{ 8}}, +{{ 26},{ 8}}, {{154},{ 8}}, {{ 90},{ 8}}, {{218},{ 8}}, {{ 58},{ 8}}, +{{186},{ 8}}, {{122},{ 8}}, {{250},{ 8}}, {{ 6},{ 8}}, {{134},{ 8}}, +{{ 70},{ 8}}, {{198},{ 8}}, {{ 38},{ 8}}, {{166},{ 8}}, {{102},{ 8}}, +{{230},{ 8}}, {{ 22},{ 8}}, {{150},{ 8}}, {{ 86},{ 8}}, {{214},{ 8}}, +{{ 54},{ 8}}, {{182},{ 8}}, {{118},{ 8}}, {{246},{ 8}}, {{ 14},{ 8}}, +{{142},{ 8}}, {{ 78},{ 8}}, {{206},{ 8}}, {{ 46},{ 8}}, {{174},{ 8}}, +{{110},{ 8}}, {{238},{ 8}}, {{ 30},{ 8}}, {{158},{ 8}}, {{ 94},{ 8}}, +{{222},{ 8}}, {{ 62},{ 8}}, {{190},{ 8}}, {{126},{ 8}}, {{254},{ 8}}, +{{ 1},{ 8}}, {{129},{ 8}}, {{ 65},{ 8}}, {{193},{ 8}}, {{ 33},{ 8}}, +{{161},{ 8}}, {{ 97},{ 8}}, {{225},{ 8}}, {{ 17},{ 8}}, {{145},{ 8}}, +{{ 81},{ 8}}, {{209},{ 8}}, {{ 49},{ 8}}, {{177},{ 8}}, {{113},{ 8}}, +{{241},{ 8}}, {{ 9},{ 8}}, {{137},{ 8}}, {{ 73},{ 8}}, {{201},{ 8}}, +{{ 41},{ 8}}, {{169},{ 8}}, {{105},{ 8}}, {{233},{ 8}}, {{ 25},{ 8}}, +{{153},{ 8}}, {{ 89},{ 8}}, {{217},{ 8}}, {{ 57},{ 8}}, {{185},{ 8}}, +{{121},{ 8}}, {{249},{ 8}}, {{ 5},{ 8}}, {{133},{ 8}}, {{ 69},{ 8}}, +{{197},{ 8}}, {{ 37},{ 8}}, {{165},{ 8}}, {{101},{ 8}}, {{229},{ 8}}, +{{ 21},{ 8}}, {{149},{ 8}}, {{ 85},{ 8}}, {{213},{ 8}}, {{ 53},{ 8}}, +{{181},{ 8}}, {{117},{ 8}}, {{245},{ 8}}, {{ 13},{ 8}}, {{141},{ 8}}, +{{ 77},{ 8}}, {{205},{ 8}}, {{ 45},{ 8}}, {{173},{ 8}}, {{109},{ 8}}, +{{237},{ 8}}, {{ 29},{ 8}}, {{157},{ 8}}, {{ 93},{ 8}}, {{221},{ 8}}, +{{ 61},{ 8}}, {{189},{ 8}}, {{125},{ 8}}, {{253},{ 8}}, {{ 19},{ 9}}, +{{275},{ 9}}, {{147},{ 9}}, {{403},{ 9}}, {{ 83},{ 9}}, {{339},{ 9}}, +{{211},{ 9}}, {{467},{ 9}}, {{ 51},{ 9}}, {{307},{ 9}}, {{179},{ 9}}, +{{435},{ 9}}, {{115},{ 9}}, {{371},{ 9}}, {{243},{ 9}}, {{499},{ 9}}, +{{ 11},{ 9}}, {{267},{ 9}}, {{139},{ 9}}, {{395},{ 9}}, {{ 75},{ 9}}, +{{331},{ 9}}, {{203},{ 9}}, {{459},{ 9}}, {{ 43},{ 9}}, {{299},{ 9}}, +{{171},{ 9}}, {{427},{ 9}}, {{107},{ 9}}, {{363},{ 9}}, {{235},{ 9}}, +{{491},{ 9}}, {{ 27},{ 9}}, {{283},{ 9}}, {{155},{ 9}}, {{411},{ 9}}, +{{ 91},{ 9}}, {{347},{ 9}}, {{219},{ 9}}, {{475},{ 9}}, {{ 59},{ 9}}, +{{315},{ 9}}, {{187},{ 9}}, {{443},{ 9}}, {{123},{ 9}}, {{379},{ 9}}, +{{251},{ 9}}, {{507},{ 9}}, {{ 7},{ 9}}, {{263},{ 9}}, {{135},{ 9}}, +{{391},{ 9}}, {{ 71},{ 9}}, {{327},{ 9}}, {{199},{ 9}}, {{455},{ 9}}, +{{ 39},{ 9}}, {{295},{ 9}}, {{167},{ 9}}, {{423},{ 9}}, {{103},{ 9}}, +{{359},{ 9}}, {{231},{ 9}}, {{487},{ 9}}, {{ 23},{ 9}}, {{279},{ 9}}, +{{151},{ 9}}, {{407},{ 9}}, {{ 87},{ 9}}, {{343},{ 9}}, {{215},{ 9}}, +{{471},{ 9}}, {{ 55},{ 9}}, {{311},{ 9}}, {{183},{ 9}}, {{439},{ 9}}, +{{119},{ 9}}, {{375},{ 9}}, {{247},{ 9}}, {{503},{ 9}}, {{ 15},{ 9}}, +{{271},{ 9}}, {{143},{ 9}}, {{399},{ 9}}, {{ 79},{ 9}}, {{335},{ 9}}, +{{207},{ 9}}, {{463},{ 9}}, {{ 47},{ 9}}, {{303},{ 9}}, {{175},{ 9}}, +{{431},{ 9}}, {{111},{ 9}}, {{367},{ 9}}, {{239},{ 9}}, {{495},{ 9}}, +{{ 31},{ 9}}, {{287},{ 9}}, {{159},{ 9}}, {{415},{ 9}}, {{ 95},{ 9}}, +{{351},{ 9}}, {{223},{ 9}}, {{479},{ 9}}, {{ 63},{ 9}}, {{319},{ 9}}, +{{191},{ 9}}, {{447},{ 9}}, {{127},{ 9}}, {{383},{ 9}}, {{255},{ 9}}, +{{511},{ 9}}, {{ 0},{ 7}}, {{ 64},{ 7}}, {{ 32},{ 7}}, {{ 96},{ 7}}, +{{ 16},{ 7}}, {{ 80},{ 7}}, {{ 48},{ 7}}, {{112},{ 7}}, {{ 8},{ 7}}, +{{ 72},{ 7}}, {{ 40},{ 7}}, {{104},{ 7}}, {{ 24},{ 7}}, {{ 88},{ 7}}, +{{ 56},{ 7}}, {{120},{ 7}}, {{ 4},{ 7}}, {{ 68},{ 7}}, {{ 36},{ 7}}, +{{100},{ 7}}, {{ 20},{ 7}}, {{ 84},{ 7}}, {{ 52},{ 7}}, {{116},{ 7}}, +{{ 3},{ 8}}, {{131},{ 8}}, {{ 67},{ 8}}, {{195},{ 8}}, {{ 35},{ 8}}, +{{163},{ 8}}, {{ 99},{ 8}}, {{227},{ 8}} +}; + +local const ct_data static_dtree[D_CODES] = { +{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}}, +{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}}, +{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}}, +{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}}, +{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}}, +{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}} +}; + +const uch _dist_code[DIST_CODE_LEN] = { + 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, + 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, +10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, +11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, +12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, +13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, +13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, +14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, +14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, +14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, +15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, +15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, +15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17, +18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, +23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, +24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, +26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, +26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, +27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, +27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, +28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, +28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, +28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, +29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, +29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, +29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29 +}; + +const uch _length_code[MAX_MATCH-MIN_MATCH+1]= { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, +13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, +17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, +19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, +21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, +22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, +23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, +24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, +25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, +25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, +26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, +26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, +27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28 +}; + +local const int base_length[LENGTH_CODES] = { +0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, +64, 80, 96, 112, 128, 160, 192, 224, 0 +}; + +local const int base_dist[D_CODES] = { + 0, 1, 2, 3, 4, 6, 8, 12, 16, 24, + 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, + 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576 +}; + diff --git a/mk/linux/mojosetup/zlib/uncompr.c b/mk/linux/mojosetup/zlib/uncompr.c new file mode 100644 index 00000000..ad98be3a --- /dev/null +++ b/mk/linux/mojosetup/zlib/uncompr.c @@ -0,0 +1,59 @@ +/* uncompr.c -- decompress a memory buffer + * Copyright (C) 1995-2003, 2010 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#define ZLIB_INTERNAL +#include "zlib.h" + +/* =========================================================================== + Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be large enough to hold the + entire uncompressed data. (The size of the uncompressed data must have + been saved previously by the compressor and transmitted to the decompressor + by some mechanism outside the scope of this compression library.) + Upon exit, destLen is the actual size of the compressed buffer. + + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted. +*/ +int ZEXPORT uncompress (dest, destLen, source, sourceLen) + Bytef *dest; + uLongf *destLen; + const Bytef *source; + uLong sourceLen; +{ + z_stream stream; + int err; + + stream.next_in = (Bytef*)source; + stream.avail_in = (uInt)sourceLen; + /* Check for source > 64K on 16-bit machine: */ + if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; + + stream.next_out = dest; + stream.avail_out = (uInt)*destLen; + if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; + + stream.zalloc = (alloc_func)0; + stream.zfree = (free_func)0; + + err = inflateInit(&stream); + if (err != Z_OK) return err; + + err = inflate(&stream, Z_FINISH); + if (err != Z_STREAM_END) { + inflateEnd(&stream); + if (err == Z_NEED_DICT || (err == Z_BUF_ERROR && stream.avail_in == 0)) + return Z_DATA_ERROR; + return err; + } + *destLen = stream.total_out; + + err = inflateEnd(&stream); + return err; +} diff --git a/mk/linux/mojosetup/zlib/version.txt b/mk/linux/mojosetup/zlib/version.txt new file mode 100644 index 00000000..5c5d8f26 --- /dev/null +++ b/mk/linux/mojosetup/zlib/version.txt @@ -0,0 +1 @@ +zlib-1.2.4 diff --git a/mk/linux/mojosetup/zlib/zconf.h b/mk/linux/mojosetup/zlib/zconf.h new file mode 100644 index 00000000..58880245 --- /dev/null +++ b/mk/linux/mojosetup/zlib/zconf.h @@ -0,0 +1,416 @@ +/* zconf.h -- configuration of the zlib compression library + * Copyright (C) 1995-2010 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#ifndef ZCONF_H +#define ZCONF_H + +/* + * If you *really* need a unique prefix for all types and library functions, + * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. + * Even better than compiling with -DZ_PREFIX would be to use configure to set + * this permanently in zconf.h using "./configure --zprefix". + */ +#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ + +/* all linked symbols */ +# define _dist_code z__dist_code +# define _length_code z__length_code +# define _tr_align z__tr_align +# define _tr_flush_block z__tr_flush_block +# define _tr_init z__tr_init +# define _tr_stored_block z__tr_stored_block +# define _tr_tally z__tr_tally +# define adler32 z_adler32 +# define adler32_combine z_adler32_combine +# define adler32_combine64 z_adler32_combine64 +# define compress z_compress +# define compress2 z_compress2 +# define compressBound z_compressBound +# define crc32 z_crc32 +# define crc32_combine z_crc32_combine +# define crc32_combine64 z_crc32_combine64 +# define deflate z_deflate +# define deflateBound z_deflateBound +# define deflateCopy z_deflateCopy +# define deflateEnd z_deflateEnd +# define deflateInit2_ z_deflateInit2_ +# define deflateInit_ z_deflateInit_ +# define deflateParams z_deflateParams +# define deflatePrime z_deflatePrime +# define deflateReset z_deflateReset +# define deflateSetDictionary z_deflateSetDictionary +# define deflateSetHeader z_deflateSetHeader +# define deflateTune z_deflateTune +# define deflate_copyright z_deflate_copyright +# define get_crc_table z_get_crc_table +# define gz_error z_gz_error +# define gz_intmax z_gz_intmax +# define gz_strwinerror z_gz_strwinerror +# define gzbuffer z_gzbuffer +# define gzclearerr z_gzclearerr +# define gzclose z_gzclose +# define gzclose_r z_gzclose_r +# define gzclose_w z_gzclose_w +# define gzdirect z_gzdirect +# define gzdopen z_gzdopen +# define gzeof z_gzeof +# define gzerror z_gzerror +# define gzflush z_gzflush +# define gzgetc z_gzgetc +# define gzgets z_gzgets +# define gzoffset z_gzoffset +# define gzoffset64 z_gzoffset64 +# define gzopen z_gzopen +# define gzopen64 z_gzopen64 +# define gzprintf z_gzprintf +# define gzputc z_gzputc +# define gzputs z_gzputs +# define gzread z_gzread +# define gzrewind z_gzrewind +# define gzseek z_gzseek +# define gzseek64 z_gzseek64 +# define gzsetparams z_gzsetparams +# define gztell z_gztell +# define gztell64 z_gztell64 +# define gzungetc z_gzungetc +# define gzwrite z_gzwrite +# define inflate z_inflate +# define inflateBack z_inflateBack +# define inflateBackEnd z_inflateBackEnd +# define inflateBackInit_ z_inflateBackInit_ +# define inflateCopy z_inflateCopy +# define inflateEnd z_inflateEnd +# define inflateGetHeader z_inflateGetHeader +# define inflateInit2_ z_inflateInit2_ +# define inflateInit_ z_inflateInit_ +# define inflateMark z_inflateMark +# define inflatePrime z_inflatePrime +# define inflateReset z_inflateReset +# define inflateReset2 z_inflateReset2 +# define inflateSetDictionary z_inflateSetDictionary +# define inflateSync z_inflateSync +# define inflateSyncPoint z_inflateSyncPoint +# define inflateUndermine z_inflateUndermine +# define inflate_copyright z_inflate_copyright +# define inflate_fast z_inflate_fast +# define inflate_table z_inflate_table +# define uncompress z_uncompress +# define zError z_zError +# define zcalloc z_zcalloc +# define zcfree z_zcfree +# define zlibCompileFlags z_zlibCompileFlags +# define zlibVersion z_zlibVersion + +/* all zlib typedefs in zlib.h and zconf.h */ +# define Byte z_Byte +# define Bytef z_Bytef +# define alloc_func z_alloc_func +# define charf z_charf +# define free_func z_free_func +# define gzFile z_gzFile +# define gz_header z_gz_header +# define gz_headerp z_gz_headerp +# define in_func z_in_func +# define intf z_intf +# define out_func z_out_func +# define uInt z_uInt +# define uIntf z_uIntf +# define uLong z_uLong +# define uLongf z_uLongf +# define voidp z_voidp +# define voidpc z_voidpc +# define voidpf z_voidpf + +/* all zlib structs in zlib.h and zconf.h */ +# define gz_header_s z_gz_header_s +# define internal_state z_internal_state + +#endif + +#if defined(__MSDOS__) && !defined(MSDOS) +# define MSDOS +#endif +#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) +# define OS2 +#endif +#if defined(_WINDOWS) && !defined(WINDOWS) +# define WINDOWS +#endif +#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) +# ifndef WIN32 +# define WIN32 +# endif +#endif +#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) +# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) +# ifndef SYS16BIT +# define SYS16BIT +# endif +# endif +#endif + +/* + * Compile with -DMAXSEG_64K if the alloc function cannot allocate more + * than 64k bytes at a time (needed on systems with 16-bit int). + */ +#ifdef SYS16BIT +# define MAXSEG_64K +#endif +#ifdef MSDOS +# define UNALIGNED_OK +#endif + +#ifdef __STDC_VERSION__ +# ifndef STDC +# define STDC +# endif +# if __STDC_VERSION__ >= 199901L +# ifndef STDC99 +# define STDC99 +# endif +# endif +#endif +#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) +# define STDC +#endif +#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) +# define STDC +#endif +#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) +# define STDC +#endif +#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) +# define STDC +#endif + +#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ +# define STDC +#endif + +#ifndef STDC +# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ +# define const /* note: need a more gentle solution here */ +# endif +#endif + +/* Some Mac compilers merge all .h files incorrectly: */ +#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) +# define NO_DUMMY_DECL +#endif + +/* Maximum value for memLevel in deflateInit2 */ +#ifndef MAX_MEM_LEVEL +# ifdef MAXSEG_64K +# define MAX_MEM_LEVEL 8 +# else +# define MAX_MEM_LEVEL 9 +# endif +#endif + +/* Maximum value for windowBits in deflateInit2 and inflateInit2. + * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files + * created by gzip. (Files created by minigzip can still be extracted by + * gzip.) + */ +#ifndef MAX_WBITS +# define MAX_WBITS 15 /* 32K LZ77 window */ +#endif + +/* The memory requirements for deflate are (in bytes): + (1 << (windowBits+2)) + (1 << (memLevel+9)) + that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) + plus a few kilobytes for small objects. For example, if you want to reduce + the default memory requirements from 256K to 128K, compile with + make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" + Of course this will generally degrade compression (there's no free lunch). + + The memory requirements for inflate are (in bytes) 1 << windowBits + that is, 32K for windowBits=15 (default value) plus a few kilobytes + for small objects. +*/ + + /* Type declarations */ + +#ifndef OF /* function prototypes */ +# ifdef STDC +# define OF(args) args +# else +# define OF(args) () +# endif +#endif + +/* The following definitions for FAR are needed only for MSDOS mixed + * model programming (small or medium model with some far allocations). + * This was tested only with MSC; for other MSDOS compilers you may have + * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, + * just define FAR to be empty. + */ +#ifdef SYS16BIT +# if defined(M_I86SM) || defined(M_I86MM) + /* MSC small or medium model */ +# define SMALL_MEDIUM +# ifdef _MSC_VER +# define FAR _far +# else +# define FAR far +# endif +# endif +# if (defined(__SMALL__) || defined(__MEDIUM__)) + /* Turbo C small or medium model */ +# define SMALL_MEDIUM +# ifdef __BORLANDC__ +# define FAR _far +# else +# define FAR far +# endif +# endif +#endif + +#if defined(WINDOWS) || defined(WIN32) + /* If building or using zlib as a DLL, define ZLIB_DLL. + * This is not mandatory, but it offers a little performance increase. + */ +# ifdef ZLIB_DLL +# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) +# ifdef ZLIB_INTERNAL +# define ZEXTERN extern __declspec(dllexport) +# else +# define ZEXTERN extern __declspec(dllimport) +# endif +# endif +# endif /* ZLIB_DLL */ + /* If building or using zlib with the WINAPI/WINAPIV calling convention, + * define ZLIB_WINAPI. + * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. + */ +# ifdef ZLIB_WINAPI +# ifdef FAR +# undef FAR +# endif +# include + /* No need for _export, use ZLIB.DEF instead. */ + /* For complete Windows compatibility, use WINAPI, not __stdcall. */ +# define ZEXPORT WINAPI +# ifdef WIN32 +# define ZEXPORTVA WINAPIV +# else +# define ZEXPORTVA FAR CDECL +# endif +# endif +#endif + +#if defined (__BEOS__) +# ifdef ZLIB_DLL +# ifdef ZLIB_INTERNAL +# define ZEXPORT __declspec(dllexport) +# define ZEXPORTVA __declspec(dllexport) +# else +# define ZEXPORT __declspec(dllimport) +# define ZEXPORTVA __declspec(dllimport) +# endif +# endif +#endif + +#ifdef HAVE_VISIBILITY_PRAGMA +# define ZEXTERN __attribute__((visibility ("default"))) extern +#endif + +#ifndef ZEXTERN +# define ZEXTERN extern +#endif +#ifndef ZEXPORT +# define ZEXPORT +#endif +#ifndef ZEXPORTVA +# define ZEXPORTVA +#endif + +#ifndef FAR +# define FAR +#endif + +#if !defined(__MACTYPES__) +typedef unsigned char Byte; /* 8 bits */ +#endif +typedef unsigned int uInt; /* 16 bits or more */ +typedef unsigned long uLong; /* 32 bits or more */ + +#ifdef SMALL_MEDIUM + /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ +# define Bytef Byte FAR +#else + typedef Byte FAR Bytef; +#endif +typedef char FAR charf; +typedef int FAR intf; +typedef uInt FAR uIntf; +typedef uLong FAR uLongf; + +#ifdef STDC + typedef void const *voidpc; + typedef void FAR *voidpf; + typedef void *voidp; +#else + typedef Byte const *voidpc; + typedef Byte FAR *voidpf; + typedef Byte *voidp; +#endif + +#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ +# define Z_HAVE_UNISTD_H +#endif + +#ifdef Z_HAVE_UNISTD_H +# include /* for off_t */ +# include /* for SEEK_* and off_t */ +# ifdef VMS +# include /* for off_t */ +# endif +# ifndef z_off_t +# define z_off_t off_t +# endif +#endif + +#ifdef _LARGEFILE64_SOURCE +# include +#endif + +#ifndef SEEK_SET +# define SEEK_SET 0 /* Seek from beginning of file. */ +# define SEEK_CUR 1 /* Seek from current position. */ +# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ +#endif +#ifndef z_off_t +# define z_off_t long +#endif + +#if defined(__OS400__) +# define NO_vsnprintf +#endif + +#if defined(__MVS__) +# define NO_vsnprintf +#endif + +/* MVS linker does not support external names larger than 8 bytes */ +#if defined(__MVS__) + #pragma map(deflateInit_,"DEIN") + #pragma map(deflateInit2_,"DEIN2") + #pragma map(deflateEnd,"DEEND") + #pragma map(deflateBound,"DEBND") + #pragma map(inflateInit_,"ININ") + #pragma map(inflateInit2_,"ININ2") + #pragma map(inflateEnd,"INEND") + #pragma map(inflateSync,"INSY") + #pragma map(inflateSetDictionary,"INSEDI") + #pragma map(compressBound,"CMBND") + #pragma map(inflate_table,"INTABL") + #pragma map(inflate_fast,"INFA") + #pragma map(inflate_copyright,"INCOPY") +#endif + +#endif /* ZCONF_H */ diff --git a/mk/linux/mojosetup/zlib/zlib.h b/mk/linux/mojosetup/zlib/zlib.h new file mode 100644 index 00000000..f5785be7 --- /dev/null +++ b/mk/linux/mojosetup/zlib/zlib.h @@ -0,0 +1,1605 @@ +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.4, Mar 14th, 2010 + + Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt + (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). +*/ + +#ifndef ZLIB_H +#define ZLIB_H + +#include "zconf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ZLIB_VERSION "1.2.4" +#define ZLIB_VERNUM 0x1240 +#define ZLIB_VER_MAJOR 1 +#define ZLIB_VER_MINOR 2 +#define ZLIB_VER_REVISION 4 +#define ZLIB_VER_SUBREVISION 0 + +/* + The 'zlib' compression library provides in-memory compression and + decompression functions, including integrity checks of the uncompressed data. + This version of the library supports only one compression method (deflation) + but other algorithms will be added later and will have the same stream + interface. + + Compression can be done in a single step if the buffers are large enough, + or can be done by repeated calls of the compression function. In the latter + case, the application must provide more input and/or consume the output + (providing more output space) before each call. + + The compressed data format used by default by the in-memory functions is + the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped + around a deflate stream, which is itself documented in RFC 1951. + + The library also supports reading and writing files in gzip (.gz) format + with an interface similar to that of stdio using the functions that start + with "gz". The gzip format is different from the zlib format. gzip is a + gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. + + This library can optionally read and write gzip streams in memory as well. + + The zlib format was designed to be compact and fast for use in memory + and on communications channels. The gzip format was designed for single- + file compression on file systems, has a larger header than zlib to maintain + directory information, and uses a different, slower check method than zlib. + + The library does not install any signal handler. The decoder checks + the consistency of the compressed data, so the library should never crash + even in case of corrupted input. +*/ + +typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); +typedef void (*free_func) OF((voidpf opaque, voidpf address)); + +struct internal_state; + +typedef struct z_stream_s { + Bytef *next_in; /* next input byte */ + uInt avail_in; /* number of bytes available at next_in */ + uLong total_in; /* total nb of input bytes read so far */ + + Bytef *next_out; /* next output byte should be put there */ + uInt avail_out; /* remaining free space at next_out */ + uLong total_out; /* total nb of bytes output so far */ + + char *msg; /* last error message, NULL if no error */ + struct internal_state FAR *state; /* not visible by applications */ + + alloc_func zalloc; /* used to allocate the internal state */ + free_func zfree; /* used to free the internal state */ + voidpf opaque; /* private data object passed to zalloc and zfree */ + + int data_type; /* best guess about the data type: binary or text */ + uLong adler; /* adler32 value of the uncompressed data */ + uLong reserved; /* reserved for future use */ +} z_stream; + +typedef z_stream FAR *z_streamp; + +/* + gzip header information passed to and from zlib routines. See RFC 1952 + for more details on the meanings of these fields. +*/ +typedef struct gz_header_s { + int text; /* true if compressed data believed to be text */ + uLong time; /* modification time */ + int xflags; /* extra flags (not used when writing a gzip file) */ + int os; /* operating system */ + Bytef *extra; /* pointer to extra field or Z_NULL if none */ + uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ + uInt extra_max; /* space at extra (only when reading header) */ + Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ + uInt name_max; /* space at name (only when reading header) */ + Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ + uInt comm_max; /* space at comment (only when reading header) */ + int hcrc; /* true if there was or will be a header crc */ + int done; /* true when done reading gzip header (not used + when writing a gzip file) */ +} gz_header; + +typedef gz_header FAR *gz_headerp; + +/* + The application must update next_in and avail_in when avail_in has dropped + to zero. It must update next_out and avail_out when avail_out has dropped + to zero. The application must initialize zalloc, zfree and opaque before + calling the init function. All other fields are set by the compression + library and must not be updated by the application. + + The opaque value provided by the application will be passed as the first + parameter for calls of zalloc and zfree. This can be useful for custom + memory management. The compression library attaches no meaning to the + opaque value. + + zalloc must return Z_NULL if there is not enough memory for the object. + If zlib is used in a multi-threaded application, zalloc and zfree must be + thread safe. + + On 16-bit systems, the functions zalloc and zfree must be able to allocate + exactly 65536 bytes, but will not be required to allocate more than this if + the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers + returned by zalloc for objects of exactly 65536 bytes *must* have their + offset normalized to zero. The default allocation function provided by this + library ensures this (see zutil.c). To reduce memory requirements and avoid + any allocation of 64K objects, at the expense of compression ratio, compile + the library with -DMAX_WBITS=14 (see zconf.h). + + The fields total_in and total_out can be used for statistics or progress + reports. After compression, total_in holds the total size of the + uncompressed data and may be saved for use in the decompressor (particularly + if the decompressor wants to decompress everything in a single step). +*/ + + /* constants */ + +#define Z_NO_FLUSH 0 +#define Z_PARTIAL_FLUSH 1 +#define Z_SYNC_FLUSH 2 +#define Z_FULL_FLUSH 3 +#define Z_FINISH 4 +#define Z_BLOCK 5 +#define Z_TREES 6 +/* Allowed flush values; see deflate() and inflate() below for details */ + +#define Z_OK 0 +#define Z_STREAM_END 1 +#define Z_NEED_DICT 2 +#define Z_ERRNO (-1) +#define Z_STREAM_ERROR (-2) +#define Z_DATA_ERROR (-3) +#define Z_MEM_ERROR (-4) +#define Z_BUF_ERROR (-5) +#define Z_VERSION_ERROR (-6) +/* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ + +#define Z_NO_COMPRESSION 0 +#define Z_BEST_SPEED 1 +#define Z_BEST_COMPRESSION 9 +#define Z_DEFAULT_COMPRESSION (-1) +/* compression levels */ + +#define Z_FILTERED 1 +#define Z_HUFFMAN_ONLY 2 +#define Z_RLE 3 +#define Z_FIXED 4 +#define Z_DEFAULT_STRATEGY 0 +/* compression strategy; see deflateInit2() below for details */ + +#define Z_BINARY 0 +#define Z_TEXT 1 +#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ +#define Z_UNKNOWN 2 +/* Possible values of the data_type field (though see inflate()) */ + +#define Z_DEFLATED 8 +/* The deflate compression method (the only one supported in this version) */ + +#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ + +#define zlib_version zlibVersion() +/* for compatibility with versions < 1.0.2 */ + + + /* basic functions */ + +ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +/* The application can compare zlibVersion and ZLIB_VERSION for consistency. + If the first character differs, the library code actually used is not + compatible with the zlib.h header file used by the application. This check + is automatically made by deflateInit and inflateInit. + */ + +/* +ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); + + Initializes the internal stream state for compression. The fields + zalloc, zfree and opaque must be initialized before by the caller. If + zalloc and zfree are set to Z_NULL, deflateInit updates them to use default + allocation functions. + + The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: + 1 gives best speed, 9 gives best compression, 0 gives no compression at all + (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION + requests a default compromise between speed and compression (currently + equivalent to level 6). + + deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if level is not a valid compression level, or + Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible + with the version assumed by the caller (ZLIB_VERSION). msg is set to null + if there is no error message. deflateInit does not perform any compression: + this will be done by deflate(). +*/ + + +ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +/* + deflate compresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce + some output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. deflate performs one or both of the + following actions: + + - Compress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in and avail_in are updated and + processing will resume at this point for the next call of deflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. This action is forced if the parameter flush is non zero. + Forcing flush frequently degrades the compression ratio, so this parameter + should be set only when necessary (in interactive applications). Some + output may be provided even if flush is not set. + + Before the call of deflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming more + output, and updating avail_in or avail_out accordingly; avail_out should + never be zero before the call. The application can consume the compressed + output when it wants, for example when the output buffer is full (avail_out + == 0), or after each call of deflate(). If deflate returns Z_OK and with + zero avail_out, it must be called again after making room in the output + buffer because there might be more output pending. + + Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to + decide how much data to accumulate before producing output, in order to + maximize compression. + + If the parameter flush is set to Z_SYNC_FLUSH, all pending output is + flushed to the output buffer and the output is aligned on a byte boundary, so + that the decompressor can get all input data available so far. (In + particular avail_in is zero after the call if enough output space has been + provided before the call.) Flushing may degrade compression for some + compression algorithms and so it should be used only when necessary. This + completes the current deflate block and follows it with an empty stored block + that is three bits plus filler bits to the next byte, followed by four bytes + (00 00 ff ff). + + If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the + output buffer, but the output is not aligned to a byte boundary. All of the + input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. + This completes the current deflate block and follows it with an empty fixed + codes block that is 10 bits long. This assures that enough bytes are output + in order for the decompressor to finish the block before the empty fixed code + block. + + If flush is set to Z_BLOCK, a deflate block is completed and emitted, as + for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to + seven bits of the current block are held to be written as the next byte after + the next deflate block is completed. In this case, the decompressor may not + be provided enough bits at this point in order to complete decompression of + the data provided so far to the compressor. It may need to wait for the next + block to be emitted. This is for advanced applications that need to control + the emission of deflate blocks. + + If flush is set to Z_FULL_FLUSH, all output is flushed as with + Z_SYNC_FLUSH, and the compression state is reset so that decompression can + restart from this point if previous compressed data has been damaged or if + random access is desired. Using Z_FULL_FLUSH too often can seriously degrade + compression. + + If deflate returns with avail_out == 0, this function must be called again + with the same value of the flush parameter and more output space (updated + avail_out), until the flush is complete (deflate returns with non-zero + avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that + avail_out is greater than six to avoid repeated flush markers due to + avail_out == 0 on return. + + If the parameter flush is set to Z_FINISH, pending input is processed, + pending output is flushed and deflate returns with Z_STREAM_END if there was + enough output space; if deflate returns with Z_OK, this function must be + called again with Z_FINISH and more output space (updated avail_out) but no + more input data, until it returns with Z_STREAM_END or an error. After + deflate has returned Z_STREAM_END, the only possible operations on the stream + are deflateReset or deflateEnd. + + Z_FINISH can be used immediately after deflateInit if all the compression + is to be done in a single step. In this case, avail_out must be at least the + value returned by deflateBound (see below). If deflate does not return + Z_STREAM_END, then it must be called again as described above. + + deflate() sets strm->adler to the adler32 checksum of all input read + so far (that is, total_in bytes). + + deflate() may update strm->data_type if it can make a good guess about + the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered + binary. This field is only for information purposes and does not affect the + compression algorithm in any manner. + + deflate() returns Z_OK if some progress has been made (more input + processed or more output produced), Z_STREAM_END if all input has been + consumed and all output has been produced (only when flush is set to + Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example + if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible + (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not + fatal, and deflate() can be called again with more input and more output + space to continue compressing. +*/ + + +ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any pending + output. + + deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the + stream state was inconsistent, Z_DATA_ERROR if the stream was freed + prematurely (some input or output was discarded). In the error case, msg + may be set but then points to a static string (which must not be + deallocated). +*/ + + +/* +ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); + + Initializes the internal stream state for decompression. The fields + next_in, avail_in, zalloc, zfree and opaque must be initialized before by + the caller. If next_in is not Z_NULL and avail_in is large enough (the + exact value depends on the compression method), inflateInit determines the + compression method from the zlib header and allocates all data structures + accordingly; otherwise the allocation will be deferred to the first call of + inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to + use default allocation functions. + + inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller, or Z_STREAM_ERROR if the parameters are + invalid, such as a null pointer to the structure. msg is set to null if + there is no error message. inflateInit does not perform any decompression + apart from possibly reading the zlib header if present: actual decompression + will be done by inflate(). (So next_in and avail_in may be modified, but + next_out and avail_out are unused and unchanged.) The current implementation + of inflateInit() does not process any header information -- that is deferred + until inflate() is called. +*/ + + +ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); +/* + inflate decompresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce + some output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. inflate performs one or both of the + following actions: + + - Decompress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in is updated and processing will + resume at this point for the next call of inflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. inflate() provides as much output as possible, until there is + no more input data or no more space in the output buffer (see below about + the flush parameter). + + Before the call of inflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming more + output, and updating the next_* and avail_* values accordingly. The + application can consume the uncompressed output when it wants, for example + when the output buffer is full (avail_out == 0), or after each call of + inflate(). If inflate returns Z_OK and with zero avail_out, it must be + called again after making room in the output buffer because there might be + more output pending. + + The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, + Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much + output as possible to the output buffer. Z_BLOCK requests that inflate() + stop if and when it gets to the next deflate block boundary. When decoding + the zlib or gzip format, this will cause inflate() to return immediately + after the header and before the first block. When doing a raw inflate, + inflate() will go ahead and process the first block, and will return when it + gets to the end of that block, or when it runs out of data. + + The Z_BLOCK option assists in appending to or combining deflate streams. + Also to assist in this, on return inflate() will set strm->data_type to the + number of unused bits in the last byte taken from strm->next_in, plus 64 if + inflate() is currently decoding the last block in the deflate stream, plus + 128 if inflate() returned immediately after decoding an end-of-block code or + decoding the complete header up to just before the first byte of the deflate + stream. The end-of-block will not be indicated until all of the uncompressed + data from that block has been written to strm->next_out. The number of + unused bits may in general be greater than seven, except when bit 7 of + data_type is set, in which case the number of unused bits will be less than + eight. data_type is set as noted here every time inflate() returns for all + flush options, and so can be used to determine the amount of currently + consumed input in bits. + + The Z_TREES option behaves as Z_BLOCK does, but it also returns when the + end of each deflate block header is reached, before any actual data in that + block is decoded. This allows the caller to determine the length of the + deflate block header for later use in random access within a deflate block. + 256 is added to the value of strm->data_type when inflate() returns + immediately after reaching the end of the deflate block header. + + inflate() should normally be called until it returns Z_STREAM_END or an + error. However if all decompression is to be performed in a single step (a + single call of inflate), the parameter flush should be set to Z_FINISH. In + this case all pending input is processed and all pending output is flushed; + avail_out must be large enough to hold all the uncompressed data. (The size + of the uncompressed data may have been saved by the compressor for this + purpose.) The next operation on this stream must be inflateEnd to deallocate + the decompression state. The use of Z_FINISH is never required, but can be + used to inform inflate that a faster approach may be used for the single + inflate() call. + + In this implementation, inflate() always flushes as much output as + possible to the output buffer, and always uses the faster approach on the + first call. So the only effect of the flush parameter in this implementation + is on the return value of inflate(), as noted below, or when it returns early + because Z_BLOCK or Z_TREES is used. + + If a preset dictionary is needed after this call (see inflateSetDictionary + below), inflate sets strm->adler to the adler32 checksum of the dictionary + chosen by the compressor and returns Z_NEED_DICT; otherwise it sets + strm->adler to the adler32 checksum of all output produced so far (that is, + total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described + below. At the end of the stream, inflate() checks that its computed adler32 + checksum is equal to that saved by the compressor and returns Z_STREAM_END + only if the checksum is correct. + + inflate() can decompress and check either zlib-wrapped or gzip-wrapped + deflate data. The header type is detected automatically, if requested when + initializing with inflateInit2(). Any information contained in the gzip + header is not retained, so applications that need that information should + instead use raw inflate, see inflateInit2() below, or inflateBack() and + perform their own processing of the gzip header and trailer. + + inflate() returns Z_OK if some progress has been made (more input processed + or more output produced), Z_STREAM_END if the end of the compressed data has + been reached and all uncompressed output has been produced, Z_NEED_DICT if a + preset dictionary is needed at this point, Z_DATA_ERROR if the input data was + corrupted (input stream not conforming to the zlib format or incorrect check + value), Z_STREAM_ERROR if the stream structure was inconsistent (for example + next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory, + Z_BUF_ERROR if no progress is possible or if there was not enough room in the + output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and + inflate() can be called again with more input and more output space to + continue decompressing. If Z_DATA_ERROR is returned, the application may + then call inflateSync() to look for a good compression block if a partial + recovery of the data is desired. +*/ + + +ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any pending + output. + + inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state + was inconsistent. In the error case, msg may be set but then points to a + static string (which must not be deallocated). +*/ + + + /* Advanced functions */ + +/* + The following functions are needed only in some special applications. +*/ + +/* +ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, + int level, + int method, + int windowBits, + int memLevel, + int strategy)); + + This is another version of deflateInit with more compression options. The + fields next_in, zalloc, zfree and opaque must be initialized before by the + caller. + + The method parameter is the compression method. It must be Z_DEFLATED in + this version of the library. + + The windowBits parameter is the base two logarithm of the window size + (the size of the history buffer). It should be in the range 8..15 for this + version of the library. Larger values of this parameter result in better + compression at the expense of memory usage. The default value is 15 if + deflateInit is used instead. + + windowBits can also be -8..-15 for raw deflate. In this case, -windowBits + determines the window size. deflate() will then generate raw deflate data + with no zlib header or trailer, and will not compute an adler32 check value. + + windowBits can also be greater than 15 for optional gzip encoding. Add + 16 to windowBits to write a simple gzip header and trailer around the + compressed data instead of a zlib wrapper. The gzip header will have no + file name, no extra data, no comment, no modification time (set to zero), no + header crc, and the operating system will be set to 255 (unknown). If a + gzip stream is being written, strm->adler is a crc32 instead of an adler32. + + The memLevel parameter specifies how much memory should be allocated + for the internal compression state. memLevel=1 uses minimum memory but is + slow and reduces compression ratio; memLevel=9 uses maximum memory for + optimal speed. The default value is 8. See zconf.h for total memory usage + as a function of windowBits and memLevel. + + The strategy parameter is used to tune the compression algorithm. Use the + value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a + filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no + string match), or Z_RLE to limit match distances to one (run-length + encoding). Filtered data consists mostly of small values with a somewhat + random distribution. In this case, the compression algorithm is tuned to + compress them better. The effect of Z_FILTERED is to force more Huffman + coding and less string matching; it is somewhat intermediate between + Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as + fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The + strategy parameter only affects the compression ratio but not the + correctness of the compressed output even if it is not set appropriately. + Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler + decoder for special applications. + + deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid + method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is + incompatible with the version assumed by the caller (ZLIB_VERSION). msg is + set to null if there is no error message. deflateInit2 does not perform any + compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the compression dictionary from the given byte sequence + without producing any compressed output. This function must be called + immediately after deflateInit, deflateInit2 or deflateReset, before any call + of deflate. The compressor and decompressor must use exactly the same + dictionary (see inflateSetDictionary). + + The dictionary should consist of strings (byte sequences) that are likely + to be encountered later in the data to be compressed, with the most commonly + used strings preferably put towards the end of the dictionary. Using a + dictionary is most useful when the data to be compressed is short and can be + predicted with good accuracy; the data can then be compressed better than + with the default empty dictionary. + + Depending on the size of the compression data structures selected by + deflateInit or deflateInit2, a part of the dictionary may in effect be + discarded, for example if the dictionary is larger than the window size + provided in deflateInit or deflateInit2. Thus the strings most likely to be + useful should be put at the end of the dictionary, not at the front. In + addition, the current implementation of deflate will use at most the window + size minus 262 bytes of the provided dictionary. + + Upon return of this function, strm->adler is set to the adler32 value + of the dictionary; the decompressor may later use this value to determine + which dictionary has been used by the compressor. (The adler32 value + applies to the whole dictionary even if only a subset of the dictionary is + actually used by the compressor.) If a raw deflate was requested, then the + adler32 value is not computed and strm->adler is not set. + + deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a + parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is + inconsistent (for example if deflate has already been called for this stream + or if the compression method is bsort). deflateSetDictionary does not + perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when several compression strategies will be + tried, for example when there are several ways of pre-processing the input + data with a filter. The streams that will be discarded should then be freed + by calling deflateEnd. Note that deflateCopy duplicates the internal + compression state which can be quite large, so this strategy is slow and can + consume lots of memory. + + deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being Z_NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +/* + This function is equivalent to deflateEnd followed by deflateInit, + but does not free and reallocate all the internal compression state. The + stream will keep the same compression level and any other attributes that + may have been set by deflateInit2. + + deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being Z_NULL). +*/ + +ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, + int level, + int strategy)); +/* + Dynamically update the compression level and compression strategy. The + interpretation of level and strategy is as in deflateInit2. This can be + used to switch between compression and straight copy of the input data, or + to switch to a different kind of input data requiring a different strategy. + If the compression level is changed, the input available so far is + compressed with the old level (and may be flushed); the new level will take + effect only at the next call of deflate(). + + Before the call of deflateParams, the stream state must be set as for + a call of deflate(), since the currently available input may have to be + compressed and flushed. In particular, strm->avail_out must be non-zero. + + deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source + stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if + strm->avail_out was zero. +*/ + +ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, + int good_length, + int max_lazy, + int nice_length, + int max_chain)); +/* + Fine tune deflate's internal compression parameters. This should only be + used by someone who understands the algorithm used by zlib's deflate for + searching for the best matching string, and even then only by the most + fanatic optimizer trying to squeeze out the last compressed bit for their + specific input data. Read the deflate.c source code for the meaning of the + max_lazy, good_length, nice_length, and max_chain parameters. + + deflateTune() can be called after deflateInit() or deflateInit2(), and + returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. + */ + +ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, + uLong sourceLen)); +/* + deflateBound() returns an upper bound on the compressed size after + deflation of sourceLen bytes. It must be called after deflateInit() or + deflateInit2(), and after deflateSetHeader(), if used. This would be used + to allocate an output buffer for deflation in a single pass, and so would be + called before deflate(). +*/ + +ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + deflatePrime() inserts bits in the deflate output stream. The intent + is that this function is used to start off the deflate output with the bits + leftover from a previous deflate stream when appending to it. As such, this + function can only be used for raw deflate, and must be used before the first + deflate() call after a deflateInit2() or deflateReset(). bits must be less + than or equal to 16, and that many of the least significant bits of value + will be inserted in the output. + + deflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, + gz_headerp head)); +/* + deflateSetHeader() provides gzip header information for when a gzip + stream is requested by deflateInit2(). deflateSetHeader() may be called + after deflateInit2() or deflateReset() and before the first call of + deflate(). The text, time, os, extra field, name, and comment information + in the provided gz_header structure are written to the gzip header (xflag is + ignored -- the extra flags are set according to the compression level). The + caller must assure that, if not Z_NULL, name and comment are terminated with + a zero byte, and that if extra is not Z_NULL, that extra_len bytes are + available there. If hcrc is true, a gzip header crc is included. Note that + the current versions of the command-line version of gzip (up through version + 1.3.x) do not support header crc's, and will report that it is a "multi-part + gzip file" and give up. + + If deflateSetHeader is not used, the default gzip header has text false, + the time set to zero, and os set to 255, with no extra, name, or comment + fields. The gzip header is returned to the default state by deflateReset(). + + deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, + int windowBits)); + + This is another version of inflateInit with an extra parameter. The + fields next_in, avail_in, zalloc, zfree and opaque must be initialized + before by the caller. + + The windowBits parameter is the base two logarithm of the maximum window + size (the size of the history buffer). It should be in the range 8..15 for + this version of the library. The default value is 15 if inflateInit is used + instead. windowBits must be greater than or equal to the windowBits value + provided to deflateInit2() while compressing, or it must be equal to 15 if + deflateInit2() was not used. If a compressed stream with a larger window + size is given as input, inflate() will return with the error code + Z_DATA_ERROR instead of trying to allocate a larger window. + + windowBits can also be zero to request that inflate use the window size in + the zlib header of the compressed stream. + + windowBits can also be -8..-15 for raw inflate. In this case, -windowBits + determines the window size. inflate() will then process raw deflate data, + not looking for a zlib or gzip header, not generating a check value, and not + looking for any check values for comparison at the end of the stream. This + is for use with other formats that use the deflate compressed data format + such as zip. Those formats provide their own check values. If a custom + format is developed using the raw deflate format for compressed data, it is + recommended that a check value such as an adler32 or a crc32 be applied to + the uncompressed data as is done in the zlib, gzip, and zip formats. For + most applications, the zlib format should be used as is. Note that comments + above on the use in deflateInit2() applies to the magnitude of windowBits. + + windowBits can also be greater than 15 for optional gzip decoding. Add + 32 to windowBits to enable zlib and gzip decoding with automatic header + detection, or add 16 to decode only the gzip format (the zlib format will + return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a + crc32 instead of an adler32. + + inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller, or Z_STREAM_ERROR if the parameters are + invalid, such as a null pointer to the structure. msg is set to null if + there is no error message. inflateInit2 does not perform any decompression + apart from possibly reading the zlib header if present: actual decompression + will be done by inflate(). (So next_in and avail_in may be modified, but + next_out and avail_out are unused and unchanged.) The current implementation + of inflateInit2() does not process any header information -- that is + deferred until inflate() is called. +*/ + +ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the decompression dictionary from the given uncompressed byte + sequence. This function must be called immediately after a call of inflate, + if that call returned Z_NEED_DICT. The dictionary chosen by the compressor + can be determined from the adler32 value returned by that call of inflate. + The compressor and decompressor must use exactly the same dictionary (see + deflateSetDictionary). For raw inflate, this function can be called + immediately after inflateInit2() or inflateReset() and before any call of + inflate() to set the dictionary. The application must insure that the + dictionary that was used for compression is provided. + + inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a + parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is + inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the + expected one (incorrect adler32 value). inflateSetDictionary does not + perform any decompression: this will be done by subsequent calls of + inflate(). +*/ + +ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +/* + Skips invalid compressed data until a full flush point (see above the + description of deflate with Z_FULL_FLUSH) can be found, or until all + available input is skipped. No output is provided. + + inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR + if no more input was provided, Z_DATA_ERROR if no flush point has been + found, or Z_STREAM_ERROR if the stream structure was inconsistent. In the + success case, the application may save the current current value of total_in + which indicates where valid compressed data was found. In the error case, + the application may repeatedly call inflateSync, providing more input each + time, until success or end of the input data. +*/ + +ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when randomly accessing a large stream. The + first pass through the stream can periodically record the inflate state, + allowing restarting inflate at those points when randomly accessing the + stream. + + inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being Z_NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); +/* + This function is equivalent to inflateEnd followed by inflateInit, + but does not free and reallocate all the internal decompression state. The + stream will keep attributes that may have been set by inflateInit2. + + inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being Z_NULL). +*/ + +ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, + int windowBits)); +/* + This function is the same as inflateReset, but it also permits changing + the wrap and window size requests. The windowBits parameter is interpreted + the same as it is for inflateInit2. + + inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being Z_NULL), or if + the windowBits parameter is invalid. +*/ + +ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + This function inserts bits in the inflate input stream. The intent is + that this function is used to start inflating at a bit position in the + middle of a byte. The provided bits will be used before any bytes are used + from next_in. This function should only be used with raw inflate, and + should be used before the first inflate() call after inflateInit2() or + inflateReset(). bits must be less than or equal to 16, and that many of the + least significant bits of value will be inserted in the input. + + If bits is negative, then the input stream bit buffer is emptied. Then + inflatePrime() can be called again to put bits in the buffer. This is used + to clear out bits leftover after feeding inflate a block description prior + to feeding inflate codes. + + inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); +/* + This function returns two values, one in the lower 16 bits of the return + value, and the other in the remaining upper bits, obtained by shifting the + return value down 16 bits. If the upper value is -1 and the lower value is + zero, then inflate() is currently decoding information outside of a block. + If the upper value is -1 and the lower value is non-zero, then inflate is in + the middle of a stored block, with the lower value equaling the number of + bytes from the input remaining to copy. If the upper value is not -1, then + it is the number of bits back from the current bit position in the input of + the code (literal or length/distance pair) currently being processed. In + that case the lower value is the number of bytes already emitted for that + code. + + A code is being processed if inflate is waiting for more input to complete + decoding of the code, or if it has completed decoding but is waiting for + more output space to write the literal or match data. + + inflateMark() is used to mark locations in the input data for random + access, which may be at bit positions, and to note those cases where the + output of a code may span boundaries of random access blocks. The current + location in the input stream can be determined from avail_in and data_type + as noted in the description for the Z_BLOCK flush parameter for inflate. + + inflateMark returns the value noted above or -1 << 16 if the provided + source stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, + gz_headerp head)); +/* + inflateGetHeader() requests that gzip header information be stored in the + provided gz_header structure. inflateGetHeader() may be called after + inflateInit2() or inflateReset(), and before the first call of inflate(). + As inflate() processes the gzip stream, head->done is zero until the header + is completed, at which time head->done is set to one. If a zlib stream is + being decoded, then head->done is set to -1 to indicate that there will be + no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be + used to force inflate() to return immediately after header processing is + complete and before any actual data is decompressed. + + The text, time, xflags, and os fields are filled in with the gzip header + contents. hcrc is set to true if there is a header CRC. (The header CRC + was valid if done is set to one.) If extra is not Z_NULL, then extra_max + contains the maximum number of bytes to write to extra. Once done is true, + extra_len contains the actual extra field length, and extra contains the + extra field, or that field truncated if extra_max is less than extra_len. + If name is not Z_NULL, then up to name_max characters are written there, + terminated with a zero unless the length is greater than name_max. If + comment is not Z_NULL, then up to comm_max characters are written there, + terminated with a zero unless the length is greater than comm_max. When any + of extra, name, or comment are not Z_NULL and the respective field is not + present in the header, then that field is set to Z_NULL to signal its + absence. This allows the use of deflateSetHeader() with the returned + structure to duplicate the header. However if those fields are set to + allocated memory, then the application will need to save those pointers + elsewhere so that they can be eventually freed. + + If inflateGetHeader is not used, then the header information is simply + discarded. The header is always checked for validity, including the header + CRC if present. inflateReset() will reset the process to discard the header + information. The application would need to call inflateGetHeader() again to + retrieve the header from the next gzip stream. + + inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, + unsigned char FAR *window)); + + Initialize the internal stream state for decompression using inflateBack() + calls. The fields zalloc, zfree and opaque in strm must be initialized + before the call. If zalloc and zfree are Z_NULL, then the default library- + derived memory allocation routines are used. windowBits is the base two + logarithm of the window size, in the range 8..15. window is a caller + supplied buffer of that size. Except for special applications where it is + assured that deflate was used with small window sizes, windowBits must be 15 + and a 32K byte window must be supplied to be able to decompress general + deflate streams. + + See inflateBack() for the usage of these routines. + + inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of + the paramaters are invalid, Z_MEM_ERROR if the internal state could not be + allocated, or Z_VERSION_ERROR if the version of the library does not match + the version of the header file. +*/ + +typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); +typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); + +ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, + in_func in, void FAR *in_desc, + out_func out, void FAR *out_desc)); +/* + inflateBack() does a raw inflate with a single call using a call-back + interface for input and output. This is more efficient than inflate() for + file i/o applications in that it avoids copying between the output and the + sliding window by simply making the window itself the output buffer. This + function trusts the application to not change the output buffer passed by + the output function, at least until inflateBack() returns. + + inflateBackInit() must be called first to allocate the internal state + and to initialize the state with the user-provided window buffer. + inflateBack() may then be used multiple times to inflate a complete, raw + deflate stream with each call. inflateBackEnd() is then called to free the + allocated state. + + A raw deflate stream is one with no zlib or gzip header or trailer. + This routine would normally be used in a utility that reads zip or gzip + files and writes out uncompressed files. The utility would decode the + header and process the trailer on its own, hence this routine expects only + the raw deflate stream to decompress. This is different from the normal + behavior of inflate(), which expects either a zlib or gzip header and + trailer around the deflate stream. + + inflateBack() uses two subroutines supplied by the caller that are then + called by inflateBack() for input and output. inflateBack() calls those + routines until it reads a complete deflate stream and writes out all of the + uncompressed data, or until it encounters an error. The function's + parameters and return types are defined above in the in_func and out_func + typedefs. inflateBack() will call in(in_desc, &buf) which should return the + number of bytes of provided input, and a pointer to that input in buf. If + there is no input available, in() must return zero--buf is ignored in that + case--and inflateBack() will return a buffer error. inflateBack() will call + out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() + should return zero on success, or non-zero on failure. If out() returns + non-zero, inflateBack() will return with an error. Neither in() nor out() + are permitted to change the contents of the window provided to + inflateBackInit(), which is also the buffer that out() uses to write from. + The length written by out() will be at most the window size. Any non-zero + amount of input may be provided by in(). + + For convenience, inflateBack() can be provided input on the first call by + setting strm->next_in and strm->avail_in. If that input is exhausted, then + in() will be called. Therefore strm->next_in must be initialized before + calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called + immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in + must also be initialized, and then if strm->avail_in is not zero, input will + initially be taken from strm->next_in[0 .. strm->avail_in - 1]. + + The in_desc and out_desc parameters of inflateBack() is passed as the + first parameter of in() and out() respectively when they are called. These + descriptors can be optionally used to pass any information that the caller- + supplied in() and out() functions need to do their job. + + On return, inflateBack() will set strm->next_in and strm->avail_in to + pass back any unused input that was provided by the last in() call. The + return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR + if in() or out() returned an error, Z_DATA_ERROR if there was a format error + in the deflate stream (in which case strm->msg is set to indicate the nature + of the error), or Z_STREAM_ERROR if the stream was not properly initialized. + In the case of Z_BUF_ERROR, an input or output error can be distinguished + using strm->next_in which will be Z_NULL only if in() returned an error. If + strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning + non-zero. (in() will always be called before out(), so strm->next_in is + assured to be defined if out() returns non-zero.) Note that inflateBack() + cannot return Z_OK. +*/ + +ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); +/* + All memory allocated by inflateBackInit() is freed. + + inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream + state was inconsistent. +*/ + +ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); +/* Return flags indicating compile-time options. + + Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: + 1.0: size of uInt + 3.2: size of uLong + 5.4: size of voidpf (pointer) + 7.6: size of z_off_t + + Compiler, assembler, and debug options: + 8: DEBUG + 9: ASMV or ASMINF -- use ASM code + 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention + 11: 0 (reserved) + + One-time table building (smaller code, but not thread-safe if true): + 12: BUILDFIXED -- build static block decoding tables when needed + 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed + 14,15: 0 (reserved) + + Library content (indicates missing functionality): + 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking + deflate code when not needed) + 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect + and decode gzip streams (to avoid linking crc code) + 18-19: 0 (reserved) + + Operation variations (changes in library functionality): + 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate + 21: FASTEST -- deflate algorithm with only one, lowest compression level + 22,23: 0 (reserved) + + The sprintf variant used by gzprintf (zero is best): + 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format + 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! + 26: 0 = returns value, 1 = void -- 1 means inferred string length returned + + Remainder: + 27-31: 0 (reserved) + */ + + + /* utility functions */ + +/* + The following utility functions are implemented on top of the basic + stream-oriented functions. To simplify the interface, some default options + are assumed (compression level and memory usage, standard memory allocation + functions). The source code of these utility functions can be modified if + you need special options. +*/ + +ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Compresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total size + of the destination buffer, which must be at least the value returned by + compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + + compress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer. +*/ + +ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int level)); +/* + Compresses the source buffer into the destination buffer. The level + parameter has the same meaning as in deflateInit. sourceLen is the byte + length of the source buffer. Upon entry, destLen is the total size of the + destination buffer, which must be at least the value returned by + compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + + compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_BUF_ERROR if there was not enough room in the output buffer, + Z_STREAM_ERROR if the level parameter is invalid. +*/ + +ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); +/* + compressBound() returns an upper bound on the compressed size after + compress() or compress2() on sourceLen bytes. It would be used before a + compress() or compress2() call to allocate the destination buffer. +*/ + +ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total size + of the destination buffer, which must be large enough to hold the entire + uncompressed data. (The size of the uncompressed data must have been saved + previously by the compressor and transmitted to the decompressor by some + mechanism outside the scope of this compression library.) Upon exit, destLen + is the actual size of the uncompressed buffer. + + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. +*/ + + + /* gzip file access functions */ + +/* + This library supports reading and writing files in gzip (.gz) format with + an interface similar to that of stdio, using the functions that start with + "gz". The gzip format is different from the zlib format. gzip is a gzip + wrapper, documented in RFC 1952, wrapped around a deflate stream. +*/ + +typedef voidp gzFile; /* opaque gzip file descriptor */ + +/* +ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); + + Opens a gzip (.gz) file for reading or writing. The mode parameter is as + in fopen ("rb" or "wb") but can also include a compression level ("wb9") or + a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only + compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' + for fixed code compression as in "wb9F". (See the description of + deflateInit2 for more information about the strategy parameter.) Also "a" + can be used instead of "w" to request that the gzip stream that will be + written be appended to the file. "+" will result in an error, since reading + and writing to the same gzip file is not supported. + + gzopen can be used to read a file which is not in gzip format; in this + case gzread will directly read from the file without decompression. + + gzopen returns NULL if the file could not be opened, if there was + insufficient memory to allocate the gzFile state, or if an invalid mode was + specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). + errno can be checked to determine if the reason gzopen failed was that the + file could not be opened. +*/ + +ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); +/* + gzdopen associates a gzFile with the file descriptor fd. File descriptors + are obtained from calls like open, dup, creat, pipe or fileno (if the file + has been previously opened with fopen). The mode parameter is as in gzopen. + + The next call of gzclose on the returned gzFile will also close the file + descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor + fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, + mode);. The duplicated descriptor should be saved to avoid a leak, since + gzdopen does not close fd if it fails. + + gzdopen returns NULL if there was insufficient memory to allocate the + gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not + provided, or '+' was provided), or if fd is -1. The file descriptor is not + used until the next gz* read, write, seek, or close operation, so gzdopen + will not detect if fd is invalid (unless fd is -1). +*/ + +ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); +/* + Set the internal buffer size used by this library's functions. The + default buffer size is 8192 bytes. This function must be called after + gzopen() or gzdopen(), and before any other calls that read or write the + file. The buffer memory allocation is always deferred to the first read or + write. Two buffers are allocated, either both of the specified size when + writing, or one of the specified size and the other twice that size when + reading. A larger buffer size of, for example, 64K or 128K bytes will + noticeably increase the speed of decompression (reading). + + The new buffer size also affects the maximum length for gzprintf(). + + gzbuffer() returns 0 on success, or -1 on failure, such as being called + too late. +*/ + +ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +/* + Dynamically update the compression level or strategy. See the description + of deflateInit2 for the meaning of these parameters. + + gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not + opened for writing. +*/ + +ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); +/* + Reads the given number of uncompressed bytes from the compressed file. If + the input file was not in gzip format, gzread copies the given number of + bytes into the buffer. + + After reaching the end of a gzip stream in the input, gzread will continue + to read, looking for another gzip stream, or failing that, reading the rest + of the input file directly without decompression. The entire input file + will be read if gzread is called until it returns less than the requested + len. + + gzread returns the number of uncompressed bytes actually read, less than + len for end of file, or -1 for error. +*/ + +ZEXTERN int ZEXPORT gzwrite OF((gzFile file, + voidpc buf, unsigned len)); +/* + Writes the given number of uncompressed bytes into the compressed file. + gzwrite returns the number of uncompressed bytes written or 0 in case of + error. +*/ + +ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); +/* + Converts, formats, and writes the arguments to the compressed file under + control of the format string, as in fprintf. gzprintf returns the number of + uncompressed bytes actually written, or 0 in case of error. The number of + uncompressed bytes written is limited to 8191, or one less than the buffer + size given to gzbuffer(). The caller should assure that this limit is not + exceeded. If it is exceeded, then gzprintf() will return an error (0) with + nothing written. In this case, there may also be a buffer overflow with + unpredictable consequences, which is possible only if zlib was compiled with + the insecure functions sprintf() or vsprintf() because the secure snprintf() + or vsnprintf() functions were not available. This can be determined using + zlibCompileFlags(). +*/ + +ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); +/* + Writes the given null-terminated string to the compressed file, excluding + the terminating null character. + + gzputs returns the number of characters written, or -1 in case of error. +*/ + +ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); +/* + Reads bytes from the compressed file until len-1 characters are read, or a + newline character is read and transferred to buf, or an end-of-file + condition is encountered. If any characters are read or if len == 1, the + string is terminated with a null character. If no characters are read due + to an end-of-file or len < 1, then the buffer is left untouched. + + gzgets returns buf which is a null-terminated string, or it returns NULL + for end-of-file or in case of error. If there was an error, the contents at + buf are indeterminate. +*/ + +ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); +/* + Writes c, converted to an unsigned char, into the compressed file. gzputc + returns the value that was written, or -1 in case of error. +*/ + +ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); +/* + Reads one byte from the compressed file. gzgetc returns this byte or -1 + in case of end of file or error. +*/ + +ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); +/* + Push one character back onto the stream to be read as the first character + on the next read. At least one character of push-back is allowed. + gzungetc() returns the character pushed, or -1 on failure. gzungetc() will + fail if c is -1, and may fail if a character has been pushed but not read + yet. If gzungetc is used immediately after gzopen or gzdopen, at least the + output buffer size of pushed characters is allowed. (See gzbuffer above.) + The pushed character will be discarded if the stream is repositioned with + gzseek() or gzrewind(). +*/ + +ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); +/* + Flushes all pending output into the compressed file. The parameter flush + is as in the deflate() function. The return value is the zlib error number + (see function gzerror below). gzflush is only permitted when writing. + + If the flush parameter is Z_FINISH, the remaining data is written and the + gzip stream is completed in the output. If gzwrite() is called again, a new + gzip stream will be started in the output. gzread() is able to read such + concatented gzip streams. + + gzflush should be called only when strictly necessary because it will + degrade compression if called too often. +*/ + +/* +ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, + z_off_t offset, int whence)); + + Sets the starting position for the next gzread or gzwrite on the given + compressed file. The offset represents a number of bytes in the + uncompressed data stream. The whence parameter is defined as in lseek(2); + the value SEEK_END is not supported. + + If the file is opened for reading, this function is emulated but can be + extremely slow. If the file is opened for writing, only forward seeks are + supported; gzseek then compresses a sequence of zeroes up to the new + starting position. + + gzseek returns the resulting offset location as measured in bytes from + the beginning of the uncompressed stream, or -1 in case of error, in + particular if the file is opened for writing and the new starting position + would be before the current position. +*/ + +ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); +/* + Rewinds the given file. This function is supported only for reading. + + gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) +*/ + +/* +ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); + + Returns the starting position for the next gzread or gzwrite on the given + compressed file. This position represents a number of bytes in the + uncompressed data stream, and is zero when starting, even if appending or + reading a gzip stream from the middle of a file using gzdopen(). + + gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) +*/ + +/* +ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); + + Returns the current offset in the file being read or written. This offset + includes the count of bytes that precede the gzip stream, for example when + appending or when using gzdopen() for reading. When reading, the offset + does not include as yet unused buffered input. This information can be used + for a progress indicator. On error, gzoffset() returns -1. +*/ + +ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +/* + Returns true (1) if the end-of-file indicator has been set while reading, + false (0) otherwise. Note that the end-of-file indicator is set only if the + read tried to go past the end of the input, but came up short. Therefore, + just like feof(), gzeof() may return false even if there is no more data to + read, in the event that the last read request was for the exact number of + bytes remaining in the input file. This will happen if the input file size + is an exact multiple of the buffer size. + + If gzeof() returns true, then the read functions will return no more data, + unless the end-of-file indicator is reset by gzclearerr() and the input file + has grown since the previous end of file was detected. +*/ + +ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); +/* + Returns true (1) if file is being copied directly while reading, or false + (0) if file is a gzip stream being decompressed. This state can change from + false to true while reading the input file if the end of a gzip stream is + reached, but is followed by data that is not another gzip stream. + + If the input file is empty, gzdirect() will return true, since the input + does not contain a gzip stream. + + If gzdirect() is used immediately after gzopen() or gzdopen() it will + cause buffers to be allocated to allow reading the file to determine if it + is a gzip file. Therefore if gzbuffer() is used, it should be called before + gzdirect(). +*/ + +ZEXTERN int ZEXPORT gzclose OF((gzFile file)); +/* + Flushes all pending output if necessary, closes the compressed file and + deallocates the (de)compression state. Note that once file is closed, you + cannot call gzerror with file, since its structures have been deallocated. + gzclose must not be called more than once on the same file, just as free + must not be called more than once on the same allocation. + + gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a + file operation error, or Z_OK on success. +*/ + +ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); +ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); +/* + Same as gzclose(), but gzclose_r() is only for use when reading, and + gzclose_w() is only for use when writing or appending. The advantage to + using these instead of gzclose() is that they avoid linking in zlib + compression or decompression code that is not used when only reading or only + writing respectively. If gzclose() is used, then both compression and + decompression code will be included the application when linking to a static + zlib library. +*/ + +ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); +/* + Returns the error message for the last error which occurred on the given + compressed file. errnum is set to zlib error number. If an error occurred + in the file system and not in the compression library, errnum is set to + Z_ERRNO and the application may consult errno to get the exact error code. + + The application must not modify the returned string. Future calls to + this function may invalidate the previously returned string. If file is + closed, then the string previously returned by gzerror will no longer be + available. + + gzerror() should be used to distinguish errors from end-of-file for those + functions above that do not distinguish those cases in their return values. +*/ + +ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); +/* + Clears the error and end-of-file flags for file. This is analogous to the + clearerr() function in stdio. This is useful for continuing to read a gzip + file that is being written concurrently. +*/ + + + /* checksum functions */ + +/* + These functions are not related to compression but are exported + anyway because they might be useful in applications using the compression + library. +*/ + +ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); +/* + Update a running Adler-32 checksum with the bytes buf[0..len-1] and + return the updated checksum. If buf is Z_NULL, this function returns the + required initial value for the checksum. + + An Adler-32 checksum is almost as reliable as a CRC32 but can be computed + much faster. + + Usage example: + + uLong adler = adler32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + adler = adler32(adler, buffer, length); + } + if (adler != original_adler) error(); +*/ + +/* +ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, + z_off_t len2)); + + Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 + and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for + each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of + seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. +*/ + +ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +/* + Update a running CRC-32 with the bytes buf[0..len-1] and return the + updated CRC-32. If buf is Z_NULL, this function returns the required + initial value for the for the crc. Pre- and post-conditioning (one's + complement) is performed within this function so it shouldn't be done by the + application. + + Usage example: + + uLong crc = crc32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + crc = crc32(crc, buffer, length); + } + if (crc != original_crc) error(); +*/ + +/* +ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); + + Combine two CRC-32 check values into one. For two sequences of bytes, + seq1 and seq2 with lengths len1 and len2, CRC-32 check values were + calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 + check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and + len2. +*/ + + + /* various hacks, don't look :) */ + +/* deflateInit and inflateInit are macros to allow checking the zlib version + * and the compiler's view of z_stream: + */ +ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, + int windowBits, int memLevel, + int strategy, const char *version, + int stream_size)); +ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, + unsigned char FAR *window, + const char *version, + int stream_size)); +#define deflateInit(strm, level) \ + deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit(strm) \ + inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) +#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ + deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ + (strategy), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit2(strm, windowBits) \ + inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) +#define inflateBackInit(strm, windowBits, window) \ + inflateBackInit_((strm), (windowBits), (window), \ + ZLIB_VERSION, sizeof(z_stream)) + +#ifdef _LARGEFILE64_SOURCE + ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); + ZEXTERN off64_t ZEXPORT gzseek64 OF((gzFile, off64_t, int)); + ZEXTERN off64_t ZEXPORT gztell64 OF((gzFile)); + ZEXTERN off64_t ZEXPORT gzoffset64 OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, off64_t)); + ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, off64_t)); +#endif + +#if !defined(ZLIB_INTERNAL) && _FILE_OFFSET_BITS == 64 +# define gzopen gzopen64 +# define gzseek gzseek64 +# define gztell gztell64 +# define gzoffset gzoffset64 +# define adler32_combine adler32_combine64 +# define crc32_combine crc32_combine64 +# ifndef _LARGEFILE64_SOURCE + ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); + ZEXTERN off_t ZEXPORT gzseek64 OF((gzFile, off_t, int)); + ZEXTERN off_t ZEXPORT gztell64 OF((gzFile)); + ZEXTERN off_t ZEXPORT gzoffset64 OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, off_t)); + ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, off_t)); +# endif +#else + ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); + ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); + ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); + ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); +#endif + +#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) + struct internal_state {int dummy;}; /* hack for buggy compilers */ +#endif + +ZEXTERN const char * ZEXPORT zError OF((int)); +ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); +ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void)); +ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); + +#ifdef __cplusplus +} +#endif + +#endif /* ZLIB_H */ diff --git a/mk/linux/mojosetup/zlib/zutil.c b/mk/linux/mojosetup/zlib/zutil.c new file mode 100644 index 00000000..98a55a88 --- /dev/null +++ b/mk/linux/mojosetup/zlib/zutil.c @@ -0,0 +1,318 @@ +/* zutil.c -- target dependent utility functions for the compression library + * Copyright (C) 1995-2005 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#include "zutil.h" + +#ifndef NO_DUMMY_DECL +struct internal_state {int dummy;}; /* for buggy compilers */ +#endif + +const char * const z_errmsg[10] = { +"need dictionary", /* Z_NEED_DICT 2 */ +"stream end", /* Z_STREAM_END 1 */ +"", /* Z_OK 0 */ +"file error", /* Z_ERRNO (-1) */ +"stream error", /* Z_STREAM_ERROR (-2) */ +"data error", /* Z_DATA_ERROR (-3) */ +"insufficient memory", /* Z_MEM_ERROR (-4) */ +"buffer error", /* Z_BUF_ERROR (-5) */ +"incompatible version",/* Z_VERSION_ERROR (-6) */ +""}; + + +const char * ZEXPORT zlibVersion() +{ + return ZLIB_VERSION; +} + +uLong ZEXPORT zlibCompileFlags() +{ + uLong flags; + + flags = 0; + switch ((int)(sizeof(uInt))) { + case 2: break; + case 4: flags += 1; break; + case 8: flags += 2; break; + default: flags += 3; + } + switch ((int)(sizeof(uLong))) { + case 2: break; + case 4: flags += 1 << 2; break; + case 8: flags += 2 << 2; break; + default: flags += 3 << 2; + } + switch ((int)(sizeof(voidpf))) { + case 2: break; + case 4: flags += 1 << 4; break; + case 8: flags += 2 << 4; break; + default: flags += 3 << 4; + } + switch ((int)(sizeof(z_off_t))) { + case 2: break; + case 4: flags += 1 << 6; break; + case 8: flags += 2 << 6; break; + default: flags += 3 << 6; + } +#ifdef DEBUG + flags += 1 << 8; +#endif +#if defined(ASMV) || defined(ASMINF) + flags += 1 << 9; +#endif +#ifdef ZLIB_WINAPI + flags += 1 << 10; +#endif +#ifdef BUILDFIXED + flags += 1 << 12; +#endif +#ifdef DYNAMIC_CRC_TABLE + flags += 1 << 13; +#endif +#ifdef NO_GZCOMPRESS + flags += 1L << 16; +#endif +#ifdef NO_GZIP + flags += 1L << 17; +#endif +#ifdef PKZIP_BUG_WORKAROUND + flags += 1L << 20; +#endif +#ifdef FASTEST + flags += 1L << 21; +#endif +#ifdef STDC +# ifdef NO_vsnprintf + flags += 1L << 25; +# ifdef HAS_vsprintf_void + flags += 1L << 26; +# endif +# else +# ifdef HAS_vsnprintf_void + flags += 1L << 26; +# endif +# endif +#else + flags += 1L << 24; +# ifdef NO_snprintf + flags += 1L << 25; +# ifdef HAS_sprintf_void + flags += 1L << 26; +# endif +# else +# ifdef HAS_snprintf_void + flags += 1L << 26; +# endif +# endif +#endif + return flags; +} + +#ifdef DEBUG + +# ifndef verbose +# define verbose 0 +# endif +int z_verbose = verbose; + +void z_error (m) + char *m; +{ + fprintf(stderr, "%s\n", m); + exit(1); +} +#endif + +/* exported to allow conversion of error code to string for compress() and + * uncompress() + */ +const char * ZEXPORT zError(err) + int err; +{ + return ERR_MSG(err); +} + +#if defined(_WIN32_WCE) + /* The Microsoft C Run-Time Library for Windows CE doesn't have + * errno. We define it as a global variable to simplify porting. + * Its value is always 0 and should not be used. + */ + int errno = 0; +#endif + +#ifndef HAVE_MEMCPY + +void zmemcpy(dest, source, len) + Bytef* dest; + const Bytef* source; + uInt len; +{ + if (len == 0) return; + do { + *dest++ = *source++; /* ??? to be unrolled */ + } while (--len != 0); +} + +int zmemcmp(s1, s2, len) + const Bytef* s1; + const Bytef* s2; + uInt len; +{ + uInt j; + + for (j = 0; j < len; j++) { + if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1; + } + return 0; +} + +void zmemzero(dest, len) + Bytef* dest; + uInt len; +{ + if (len == 0) return; + do { + *dest++ = 0; /* ??? to be unrolled */ + } while (--len != 0); +} +#endif + + +#ifdef SYS16BIT + +#ifdef __TURBOC__ +/* Turbo C in 16-bit mode */ + +# define MY_ZCALLOC + +/* Turbo C malloc() does not allow dynamic allocation of 64K bytes + * and farmalloc(64K) returns a pointer with an offset of 8, so we + * must fix the pointer. Warning: the pointer must be put back to its + * original form in order to free it, use zcfree(). + */ + +#define MAX_PTR 10 +/* 10*64K = 640K */ + +local int next_ptr = 0; + +typedef struct ptr_table_s { + voidpf org_ptr; + voidpf new_ptr; +} ptr_table; + +local ptr_table table[MAX_PTR]; +/* This table is used to remember the original form of pointers + * to large buffers (64K). Such pointers are normalized with a zero offset. + * Since MSDOS is not a preemptive multitasking OS, this table is not + * protected from concurrent access. This hack doesn't work anyway on + * a protected system like OS/2. Use Microsoft C instead. + */ + +voidpf zcalloc (voidpf opaque, unsigned items, unsigned size) +{ + voidpf buf = opaque; /* just to make some compilers happy */ + ulg bsize = (ulg)items*size; + + /* If we allocate less than 65520 bytes, we assume that farmalloc + * will return a usable pointer which doesn't have to be normalized. + */ + if (bsize < 65520L) { + buf = farmalloc(bsize); + if (*(ush*)&buf != 0) return buf; + } else { + buf = farmalloc(bsize + 16L); + } + if (buf == NULL || next_ptr >= MAX_PTR) return NULL; + table[next_ptr].org_ptr = buf; + + /* Normalize the pointer to seg:0 */ + *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4; + *(ush*)&buf = 0; + table[next_ptr++].new_ptr = buf; + return buf; +} + +void zcfree (voidpf opaque, voidpf ptr) +{ + int n; + if (*(ush*)&ptr != 0) { /* object < 64K */ + farfree(ptr); + return; + } + /* Find the original pointer */ + for (n = 0; n < next_ptr; n++) { + if (ptr != table[n].new_ptr) continue; + + farfree(table[n].org_ptr); + while (++n < next_ptr) { + table[n-1] = table[n]; + } + next_ptr--; + return; + } + ptr = opaque; /* just to make some compilers happy */ + Assert(0, "zcfree: ptr not found"); +} + +#endif /* __TURBOC__ */ + + +#ifdef M_I86 +/* Microsoft C in 16-bit mode */ + +# define MY_ZCALLOC + +#if (!defined(_MSC_VER) || (_MSC_VER <= 600)) +# define _halloc halloc +# define _hfree hfree +#endif + +voidpf zcalloc (voidpf opaque, unsigned items, unsigned size) +{ + if (opaque) opaque = 0; /* to make compiler happy */ + return _halloc((long)items, size); +} + +void zcfree (voidpf opaque, voidpf ptr) +{ + if (opaque) opaque = 0; /* to make compiler happy */ + _hfree(ptr); +} + +#endif /* M_I86 */ + +#endif /* SYS16BIT */ + + +#ifndef MY_ZCALLOC /* Any system without a special alloc function */ + +#ifndef STDC +extern voidp malloc OF((uInt size)); +extern voidp calloc OF((uInt items, uInt size)); +extern void free OF((voidpf ptr)); +#endif + +voidpf zcalloc (opaque, items, size) + voidpf opaque; + unsigned items; + unsigned size; +{ + if (opaque) items += size - size; /* make compiler happy */ + return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) : + (voidpf)calloc(items, size); +} + +void zcfree (opaque, ptr) + voidpf opaque; + voidpf ptr; +{ + free(ptr); + if (opaque) return; /* make compiler happy */ +} + +#endif /* MY_ZCALLOC */ diff --git a/mk/linux/mojosetup/zlib/zutil.h b/mk/linux/mojosetup/zlib/zutil.h new file mode 100644 index 00000000..025035db --- /dev/null +++ b/mk/linux/mojosetup/zlib/zutil.h @@ -0,0 +1,287 @@ +/* zutil.h -- internal interface and configuration of the compression library + * Copyright (C) 1995-2010 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +/* @(#) $Id$ */ + +#ifndef ZUTIL_H +#define ZUTIL_H + +#define ZLIB_INTERNAL +#include "zlib.h" + +#ifdef STDC +# if !(defined(_WIN32_WCE) && defined(_MSC_VER)) +# include +# endif +# include +# include +#endif + +#if defined(UNDER_CE) && defined(NO_ERRNO_H) +# define zseterrno(ERR) SetLastError((DWORD)(ERR)) +# define zerrno() ((int)GetLastError()) +#else +# ifdef NO_ERRNO_H + extern int errno; +# else +# include +# endif +# define zseterrno(ERR) do { errno = (ERR); } while (0) +# define zerrno() errno +#endif + +#ifndef local +# define local static +#endif +/* compile with -Dlocal if your debugger can't find static symbols */ + +typedef unsigned char uch; +typedef uch FAR uchf; +typedef unsigned short ush; +typedef ush FAR ushf; +typedef unsigned long ulg; + +extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ +/* (size given to avoid silly warnings with Visual C++) */ + +#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)] + +#define ERR_RETURN(strm,err) \ + return (strm->msg = (char*)ERR_MSG(err), (err)) +/* To be used only when the state is known to be valid */ + + /* common constants */ + +#ifndef DEF_WBITS +# define DEF_WBITS MAX_WBITS +#endif +/* default windowBits for decompression. MAX_WBITS is for compression only */ + +#if MAX_MEM_LEVEL >= 8 +# define DEF_MEM_LEVEL 8 +#else +# define DEF_MEM_LEVEL MAX_MEM_LEVEL +#endif +/* default memLevel */ + +#define STORED_BLOCK 0 +#define STATIC_TREES 1 +#define DYN_TREES 2 +/* The three kinds of block type */ + +#define MIN_MATCH 3 +#define MAX_MATCH 258 +/* The minimum and maximum match lengths */ + +#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */ + + /* target dependencies */ + +#if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32)) +# define OS_CODE 0x00 +# if defined(__TURBOC__) || defined(__BORLANDC__) +# if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__)) + /* Allow compilation with ANSI keywords only enabled */ + void _Cdecl farfree( void *block ); + void *_Cdecl farmalloc( unsigned long nbytes ); +# else +# include +# endif +# else /* MSC or DJGPP */ +# include +# endif +#endif + +#ifdef AMIGA +# define OS_CODE 0x01 +#endif + +#if defined(VAXC) || defined(VMS) +# define OS_CODE 0x02 +# define F_OPEN(name, mode) \ + fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512") +#endif + +#if defined(ATARI) || defined(atarist) +# define OS_CODE 0x05 +#endif + +#ifdef OS2 +# define OS_CODE 0x06 +# ifdef M_I86 +# include +# endif +#endif + +#if defined(MACOS) || defined(TARGET_OS_MAC) +# define OS_CODE 0x07 +# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os +# include /* for fdopen */ +# else +# ifndef fdopen +# define fdopen(fd,mode) NULL /* No fdopen() */ +# endif +# endif +#endif + +#ifdef TOPS20 +# define OS_CODE 0x0a +#endif + +#ifdef WIN32 +# ifndef __CYGWIN__ /* Cygwin is Unix, not Win32 */ +# define OS_CODE 0x0b +# endif +#endif + +#ifdef __50SERIES /* Prime/PRIMOS */ +# define OS_CODE 0x0f +#endif + +#if defined(_BEOS_) || defined(RISCOS) +# define fdopen(fd,mode) NULL /* No fdopen() */ +#endif + +#if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX +# if defined(_WIN32_WCE) +# define fdopen(fd,mode) NULL /* No fdopen() */ +# ifndef _PTRDIFF_T_DEFINED + typedef int ptrdiff_t; +# define _PTRDIFF_T_DEFINED +# endif +# else +# define fdopen(fd,type) _fdopen(fd,type) +# endif +#endif + +#if defined(__BORLANDC__) + #pragma warn -8004 + #pragma warn -8008 + #pragma warn -8066 +#endif + +#ifdef _LARGEFILE64_SOURCE +# define z_off64_t off64_t +#else +# define z_off64_t z_off_t +#endif + + /* common defaults */ + +#ifndef OS_CODE +# define OS_CODE 0x03 /* assume Unix */ +#endif + +#ifndef F_OPEN +# define F_OPEN(name, mode) fopen((name), (mode)) +#endif + +#ifdef _LARGEFILE64_SOURCE +# define F_OPEN64(name, mode) fopen64((name), (mode)) +#else +# define F_OPEN64(name, mode) fopen((name), (mode)) +#endif + + /* functions */ + +#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550) +# ifndef HAVE_VSNPRINTF +# define HAVE_VSNPRINTF +# endif +#endif +#if defined(__CYGWIN__) +# ifndef HAVE_VSNPRINTF +# define HAVE_VSNPRINTF +# endif +#endif +#ifndef HAVE_VSNPRINTF +# ifdef MSDOS + /* vsnprintf may exist on some MS-DOS compilers (DJGPP?), + but for now we just assume it doesn't. */ +# define NO_vsnprintf +# endif +# ifdef __TURBOC__ +# define NO_vsnprintf +# endif +# ifdef WIN32 + /* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */ +# if !defined(vsnprintf) && !defined(NO_vsnprintf) +# if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 ) +# define vsnprintf _vsnprintf +# endif +# endif +# endif +# ifdef __SASC +# define NO_vsnprintf +# endif +#endif +#ifdef VMS +# define NO_vsnprintf +#endif + +#if defined(pyr) +# define NO_MEMCPY +#endif +#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__) + /* Use our own functions for small and medium model with MSC <= 5.0. + * You may have to use the same strategy for Borland C (untested). + * The __SC__ check is for Symantec. + */ +# define NO_MEMCPY +#endif +#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY) +# define HAVE_MEMCPY +#endif +#ifdef HAVE_MEMCPY +# ifdef SMALL_MEDIUM /* MSDOS small or medium model */ +# define zmemcpy _fmemcpy +# define zmemcmp _fmemcmp +# define zmemzero(dest, len) _fmemset(dest, 0, len) +# else +# define zmemcpy memcpy +# define zmemcmp memcmp +# define zmemzero(dest, len) memset(dest, 0, len) +# endif +#else + extern void zmemcpy OF((Bytef* dest, const Bytef* source, uInt len)); + extern int zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len)); + extern void zmemzero OF((Bytef* dest, uInt len)); +#endif + +/* Diagnostic functions */ +#ifdef DEBUG +# include + extern int z_verbose; + extern void z_error OF((char *m)); +# define Assert(cond,msg) {if(!(cond)) z_error(msg);} +# define Trace(x) {if (z_verbose>=0) fprintf x ;} +# define Tracev(x) {if (z_verbose>0) fprintf x ;} +# define Tracevv(x) {if (z_verbose>1) fprintf x ;} +# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;} +# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;} +#else +# define Assert(cond,msg) +# define Trace(x) +# define Tracev(x) +# define Tracevv(x) +# define Tracec(c,x) +# define Tracecv(c,x) +#endif + + +voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size)); +void zcfree OF((voidpf opaque, voidpf ptr)); + +#define ZALLOC(strm, items, size) \ + (*((strm)->zalloc))((strm)->opaque, (items), (size)) +#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) +#define TRY_FREE(s, p) {if (p) ZFREE(s, p);} + +#endif /* ZUTIL_H */

      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�K3erZg_A6X59#a>^X6yrqzX0L)vY(KRY=XGl6k{Z|T9n zA8CKh*0k6r`F{cPUY-3(@Op8d^CDIuPdQob6bnTfwmX`A^(#9VwN!v+`iqR4u=Mua{SS-36Kf zc`9|1uGdy}o0EV!Yjx#$ry!{mY6r285$r~ovfz=SS=|ny+irP~qAhH1S5eyAiK$w- zfs!5j6_nW&fHR(sQ=;7hiAJry?YIVo4){DrBu+9oXK@8Lc{X{y1P=r5PN&JwhsR@OM zN6Gbi*Omk-{cT}2yFZo*ZmKnYFp9xBIi_8gsq3uZA%Y0H|&N z7N2NSEeXzDhuwlw5pe8AMOYIU@mu+od_eihT~+yOj*8@nwF5^J?}aVS?rvB;?bP3{ z{k@QvKki%o!@O4S*+)>P-HoZYQ?d7UcX$qKWC_qJ`**4%_#?~iYhE)Qa1An9nBcNm zC2$M?9LC4mk#g#{DaN>E*lk0f)3uD^qiRXR`t24%l}+IXVD@!h#E`Pn=@V+jno1fm z4=}M{qlhA7JIv zQx4m=gFJ@v8P+?G?>)06ZKqO~?Q8c1Jp}&uO3R!0>edS0$DOn=5U9 z)r~UzlMJolB#-@KQ(5ZwZ@)HjwP=RBpM=wD$7WV=lB&!yW9dK+^HYZv-23e;6UK7v z_GBb{(N4_!7G8V$scrxRS2#P*6(QQi_jdnO!|9dGeB=gap{BdS0Xt$pUhd$Uc8fQR zy@FM~w>mmO0%z5}0_n~`ooad2nTgxAGtU{?PCD7z-W%@%03b+<&1CO#J2LcJK!S_i z(2pc@=AbT%kgE;a53)kaL0F+~uEQ_Gk+u6ai$v=;nq7a9hTViPQk?8t8x{Q}0OD(y zt>jFU?-Vs!cL{)88DGB)Q=@?TyuV-pt^oHj99)4joz<&`EW2qEM~o<8b23P_z^m^~ zIMJPKcW8kr6>oEx87KLb^=sAYCUMq=6}0f)YX|J4!vbV9ILT9~1umR)T&!tmXZ`uQ z?Hni7K7V(G_!_4PoX9lA1w^)g{rX5KX_38w-N<&<4WRAh)<@=()(2l6QgB+; zu!+M-hC*fV;H0Zng&V9OScdgDsonhZP7$Y>5^U7$Ue&2BQtiMoo_aSZvtn~6){M$3BX@hKn z4%uyJ_~$3FvW25iiIGt-J8Z-^bsh)?e1aK!t=5X&vZiFf`mOZW3!?q9-V|}?b9RPN zCFLBQ-CR1;ZrN_$YoYm0g{T#c;`W;a{x~1LD+#V4YH=@clB)p_MOU3R2X*jLoZH@~k30BOGS)4MUEcZ|^t}Ab?V&b%%eBBuV zOl>_Q2;n$tYVcl*D~XJzU~x#eFJHrHe*KEk!AVb>yl=3A63BTyPOIC^*0Jb~7w`RA z9VguvE6!lv+c_$Dg4_@nyU8->78JU+pA)wC4PgatzBj^l?Uv4D^%Ez# z?6=-LPC6e}Q=v_aaI8CrGA{(5vEc^WhSi!IvuZYuHb`QVTCYSx{ zlM^SshRvvEy@Q?8=nkhf#HQSFk}_FoK}dA^tA1af1j?quqVn25-oLEh9;LTG{p-K| K>Hh$v0W|(i_wkMZ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/deflate.c.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/deflate.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7dcc5f0d259536c38eb7775d87426dc8d4a7f4bf GIT binary patch literal 15402 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/gzio.c.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/gzio.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f380cf49b527638fb0c9ff778e20ea0e36040ebf GIT binary patch literal 8002 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 EIK$0MKmY&$ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/infback.c.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/infback.c.i new file mode 100644 index 0000000000000000000000000000000000000000..04efc89e5883bfefa3f3c46a94073c29b23469ca GIT binary patch literal 5437 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 W*}pfS^I$}SZ~4yyu=YRDa>Jvm9Ck7Q literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inffast.h.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inffast.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1cc6e1caa9824095d97120890bb438762a79e250 GIT binary patch literal 393 zcmZQzWME_f14d5<2F9llHpBe?P~du_@AP?@s>o=i$rq+AJa*lExxGJB4VbE!<2&JW z-XQ}Km!oF!hTa_t6P8SI59jFYa$R}FclwEq`5n>6`*PSdYib`W1cXm}pZx5Or0X4% zxl3P*MV_1XNHtzJIIw7A-Py}q&RkyeAmjsY`q8AlQO|oeB_?;zp5!{~Y4OU_lPu?l zT-2C#yrRx<_Ch7K6NjX?^v%#gBeyJMSmqiq?~q`lz3A4Dli2q&Zc=x)>1Vq0{oU&lo4xrDwO#oa%7r{Sgg~6PzNl5tlVi-h43o!3)J$mIaB|*m>f={wiI(LhWt)O82R=cWrzU zqw)3Kw3~Sk_PpP{?T6w!XO%rkznnPB{?C!Ka9f>s;!T}H(f$WnOE@&Op1qV=bmV!W k&Az$6T{^Dv{@Olo(N({=lKR%qwr^5CiT!14WSCzL09UEMYXATM literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inffixed.h.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inffixed.h.i new file mode 100644 index 0000000000000000000000000000000000000000..65e8f4f4fdc37f4004bb9b02925c814f18aac92f GIT binary patch literal 1687 zcmV;I259*J0RRC20000000vh802vkl00000005u=|NsC0|NsB?kC+iu)u2}b6uYVe z>!M;;m935d00000000000001ZoQ;^fa^p4>hG$zp1ZIB~=N+ih>Tkk{M&-QD)zesgty@#%v3f7h2RK4YIhv!T1) z_3Z9&WSf3{*lhPdSa{3)fBI86!!Fs^e%~Lv!9VVvhQmWQY}egx_snje*+chtA5Q%A z^VPil`hvdo`FN6L@ObP`r}2>w{n#D7!Tlz&aeBJ_ zt6vXnII#77xBt;!u`kIN$*sfQN9A1#8N9mBB07yn!isCZT*ux8iPm$49H2tT{6; z8osJ34B~iAGUi z4VkqjH%6c4lDx4Lmk8&Ar(~(6#ppsbB>4D9Sn^p(B$upeSZx}(ifv7k`y~ysOD-z7 zN)?-5d7~1ADl+eAx1ilTIO99Q?}iJ4%p1y<;EQa9wh_@~xP_u2J7_7cs8o68$Mm-3 zGZ}4hZhRH8%8jI~N{y_lJV=cahyI+>OD*omRS8!O3R!fQB$o}kOTbfVE=QXL>a-l6 zkX?gb6cm|8$wHDsQn^D?sa=#PW--n)7Lo$9m@b9sqHMKA&j)9Wng@28vM2{+Q^RH$ zq$#DkNLNFVNwk+mf5K5pw?%WwWpj-lQyLuYmZ+*W)Ugi95@g;K$r3>#rjA7okT->z zL3ub@H_yDcfs%!}S&A(3X3?=hS|PGox-j#~p<_|9D6-_Vl<3&9Q;`TtiP7j-Q-~~W z61r%ukPxWtY?RDvi;j)T6-Bn_2*uF{lwBB=bk0&-LP5ETp>C;#gD-y1=zLodS+c5O zwOM2yS-0>jS6f<0DY85LYg; zWL`TYRiz@EOBbC~n6h{SVY(y*W-(o=)Gnwk*$mFSDY9f!7s(P$yueU`h9Z+_FAGV9 zqeXLBG?&B;29YJ>5>*Ye1(D66i@swpWCAx>BC-^tLaAH(k+`LV)i!1gc zNIN?rOOY)u#sq1})&gm#_#?^cL}WARsvxbdh-`&qU8!7Wk(OT8Nj7ILo~Z3~EJfOP zNH$}xh_oCnyFl70sgY!%W+il0kQNn#$W};J7SMGbX>CPhQjmS}_u$+|+h&LOR23-+pVQhi4ldF+r zWg@bfbiIqTvlA7P)kSxmMOus?;!jC7M|xzpinMdbLb;YCn<-aB+NfL$q@4nbB#VNU z%2h#HC>KQb4U)~6>parRipZuUoAs9kz@ueTq@7z9vz3x;23-+p^=lPrC!>*MT`ICU zbXAZxA`Du#LbAMQuJ@4kEXn3Sb-7e+r&Od!JGU&l7%msxl^`u{+Z1W1q(+kEsmSKk zRY6(+Pa?7vk}Xqz7HKhERg#UCK7_P$$Hoh6L9!WiMWm%&3#6T%M3Ti_Tg+k&X>o%k zB3mKZg;yUyT7+FE*-W~8O2U)ZU*7sjce6bW<8Qh$|4G+Js)IfX=@&xJ`le@f_7(6f zNTi@c@q`{T58C)AlJk97J8>A-3~FB8IQ-cMGRWbSCF2rkKnrJ0c$fU&_QWK4AwY` hVe+gEo{4rAB|WK3a9%dc3x0~i$ruHd?SE?u4T$XnF|7aq literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inflate.c.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inflate.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0569f71b9300936458e2c8aa04532e90f4fbffee GIT binary patch literal 11723 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inflate.h.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inflate.h.i new file mode 100644 index 0000000000000000000000000000000000000000..eb4bb8c537eb0bad830d374196f9c3c934f15a5b GIT binary patch literal 2112 zcmV-G2*39L0RRC20000000;m802gWi00000005u=|NsC0|NsB>eABScC+XrXUzR8% zB+0x7gov8}00000000000001ZoQ+spPa`)JR$ucgto8*^xGZd2E>fj5WFhL3AV}42 zs}*u)oQ%uNIJG^5Q1!p}oMX>D6N+|W;_>;;#pm)l-}C~t+Gz1|$u3UkKZGB{AJ0!Y zKM_HAe!d99i;Km@{0DI!UWoJW&(4CglaM4X*;_2Ao6R;ske4%iS4kju!jz2QFlaB=bd;pxfAM|Q{cGaH1l(75Z9 z(kxJENMeSm1q-FITFx_EU_1?3W<;MEAy`l#rpn4dfO;|)Y-9(=Jv8&T!NX)cxw&LE zl7=m047Nooi$it*G6!rf5H4i%4dbg-ECWt@kJ#8UX?l#Y71tKcuo2)Vt5_r=wX`c= z4OFty!Wdiv?V9Ti+3Dm>HvdZmmRZGuh^I?�C{jxj8D0H)x7?;HdC`f+*Nz`gHTh z_@1pJk&;Fk%XG=)f^AgB);uK*5Gy_hAD3@(#UjB&q0tny!)gxRYrqRsh@#-KKd!y~ zBUUOPbMm+VCVx>f1jo{6QkW7Lx~&5+BoxjhiSfd7V5tzH2muj~(nMT~(1%3|(|4xj zMo@sFTw^R2mWdQS0D18LJGn@~|J=6TcPtOb&94($5RfSgiqpM<6F}ed98ADA1F&{2 z(7xPN7VtPWh;BD4f#@R567~<8!fr={>ppWonBIJd^g&m4nnl>dBUtrL_>O->)k3XUg5;OR@ARnLUVd+ zHpYsi0XF*m^JvoPhXad6y0lSCaP}~GM{vHeqUrl&u*-LW7B5`Ero83)aC&z)n#}q; zg`rBYRvV(X!-rwFUVpfl+jX()@o+ZwxzQF2Wq_xIl^;YRcxEp=&O}wVqOvOJ)ACW+ z>jJ{(Xf92O^5uRgTb# zY=mnCR>FhIEIwgVg&~luX&E;g{QP;;nVjJUQVS~DiCOBL&PG!Ofx>`)j~&TIEzo;b zc{X*ou17gU8^H-2#}I4`4bD5B2BH(q+f)?)PDBD}3q#d*9hvvVS1x2#Q~Y}TIO|Tv zy7^l~bJaUUyLI0UX2aX^KpW}dv%;)6fRwqR@qIG}<5@L;?*Of}gc5*wLJutpb9g%% z{?eITXQzi)cw5>5g#TuC+ZBEWeGEzvyfZPgw|le`v`ZVyB0!q#3mw9&*uVM5CmjA)$P1hTqN9*gsqwrrrv-ejUUI5%*rUyR zi89tN1>n|Fp+00h5IF2T;61%Y&yer{fmx@n7sNnv>}KBq-D?#9E%Y7*6sm@FFxQjE#&b7F8V2nk2v)R2bzDWht%S- zn{H@IZG&I-8*1_o;1rTEnhn%I&1J2?a3@N*`9RRvjPU`Dhd)$5H5tE`OuzrqvX@{9 z1m5_r>^8gh>X+O0VJm8w=L^w`Kpe@i@vIet%4Xa}v3M;0`Xy>hRrNK=@vQnPPYX}T zOS32*ekU{tQUL{D+yvaE3MX=yFJZ8W7{?WB|9~jy6nIxzIp1@BQXklevDSRmfq`A| z#35m=Vea;6@k6;tmx~Hq#9st*vnFK4qzZKd>s}<>U8)E~pto3rZLf04Y7_kv1a}4I z;WFqxOFXwQ;jdRMINV#n@z-)1?u{qV2WF$E$JqmvVH+=25Ko!`R~0<)#=^xD#{-T* zB*g7mRL8K&@_09fpNxTmKAwXt-=3V^E*w`4$JW&Mp@$kcjat+olax+eXRpj>%=K6j zi(Sh!RO^ zE=;%<8bn-%essYY#8J{Ek36Hx8b?ClS-iFc1Gs0iPlE?`;5J{8Aanx-_eUh)wRrZ) z8M>!8;*RyigCI*XC~>8?r%9yZ$|2L2L6{To$+pi7W#RHYhg5(ABfbam`BtXiHq3HY z3F2{BVl}#tnOPxtrK!ZAn#q`RxRU7NS4>ELa=zHaQHup|l_pM6opbIkOI5D9&??#D zfxBV2>rW`kZ(^DniT<{-phAkb9^FE|3fF=1dktwJr3H_sr2rU^b=d+j2=YenMvNvV z>P)TQB`9t*O1sc7C^_7AwA$^!Y&)}NmQZ?O%9H2bqUznEY^#9XkZud-CN_eXhs;?z z&t$yyWXfP|PvQ42gC!8W*i{Sv3j=-GVa(2pWP#G|Se-6Wb;6_h^J^^w=uT`<|`BF45-fgcO&|2x|KTprk qb0GZ8xE8zw*nZ$XvC+uUWcusP?blkrbAHq@$cBHfdjA1{E7E@n$qHWp literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inftrees.c.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/inftrees.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d8c1d76fea233d01aebb7ca1f25ad6d52852a23d GIT binary patch literal 4550 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/trees.c.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/trees.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d7ab3f8cc908a3eb859734a170a5cd2c35cd0203 GIT binary patch literal 12038 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/trees.h.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/trees.h.i new file mode 100644 index 0000000000000000000000000000000000000000..561567806f0ec8b105c94bfcc7a8546aa3e254af GIT binary patch literal 1544 zcmV+j2KV^@0RRC20000000qbZ03k>K00000005u=|NsC0|Ns9Qw6)i+&R75=d20A4 z9e>b}B><8D00000000000001ZoXwcgZxlBW#>MOY74r zq0{B=XdL zez`ocWqsn>_)(W1Lx`{X;>B) zpRU%jSkIR8^<1vj{i@k{5B~nm?D@|x4&Obp5Au^-SJ&5~c5`qo5^rt}w z3`*r#p&W*Atb}V_%lbOLSHX%<+7PM^tS@tA2v7q@BcP1Qk-z{Wp^Uj=azt3cf>jnm z55e4#7H_p*YNim_xuD5V&*Mu1i*hZ{#( zGU3KCBP(tkr5KbO#|q`>IJw)fYQvp7gx}__uU+m+gzFrkRI#=Jlmv{r8l&0*$~&@B zxUL11d9d;wpoFZ9tTYRuNAB<<$&yp`@e+#3@c~dmRz_CJ5WJBUlj9mfIk55_poCDy zl4(GIK1SK*422%v+sT>Ii(6MA1sVgQY9lcp!>WazmAMQOe9SK+TlXv!Zg0GV@HG5XzV`_>P|m<;L+$j&kETiov*X0+S;$9zNS!8Xm4QxLtGS4!ym>Xe5-6 zxvNSjiGXT3>H(!SSsC3(r~p=KWF=hNM8=B%wdUFaDiSIf<7KXdhZDzBZo`vX$8(P3 z0kYwVqT^ZA?x3ohA9wyFvK)RAc`^PZa`%JC5M#LQqnR^SEZlaDeB{m<_H_V%aVoRr+0}ZsxLBrAy?%E*RBQI;@MtWU)CcKGn9P#7WPW2|V@+XgVG&jpe(Dpu zP3xUj-7}t!hm)+@dS-iBwdeYDeSuYlzpveo=ODc;!*yeD&$K_33z6c>CX{*A=Y!(gzxAyy zzoGYilghr;?6fNNG1+PH9_wIL;cxfEX;y9Z(5Y7T*xfyN+jjTl|GsDMXVsoPfBPFS zbd;g&C7D+s*hAD+9iUbxn zeZe;SypOHk)H#j0^xP-kr~gCBLzAAzA;Wr#v`4NB*M# literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/uncompr.c.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/uncompr.c.i new file mode 100644 index 0000000000000000000000000000000000000000..5a36e9a3aa08a62a0aef7cfee65797a0f8d45072 GIT binary patch literal 1029 zcmV+g1p4~`0RRC20000000YGU00?ye00000005u=|NsC0|Ns9~BJN8jFRQR~Uc9m+ zh`_H6UMYG200000000000001ZoUK(+Z`w!@R$u)q=9(&pBOoNCNlC=%l0fcgQ*xqI zI^_i|_8PCw-bK6Xq;Tzj@64{jrlh);^8?`ZH{X2o&5U^!L~6Ox{OJ;U-EQ3Dy_5K& zGv^oGcNb@8^Um8&H;PVs=kv49`RN5By6;@XC9E?sKRN9l7cx@$Qn#bvRd9R++goV0 zAm;9d8v_h-o-4hAd66Vs2XF+plvylN3ys?lPI|q!tSr2n^FA6 z9UR0w5t75>{pe;k8c&Cl@%4RhAY_ykF^AVa__d4d|9@8ibPcv9aRWBxU{s+|v^NU1 zTjh>pZmf{ZmFu6ip~T*E3BnK^0p}~rA>(pkQ}St#vJIb?$ib!6tEQv%@eXN~Wf?IU zvF4lb{nSl(PDPYLUKk5=Ovm(sBc&=9DRMxnvY0}N2@?s;HsxTQ&)XK$fB5_b?8mwm0EZl2ESom2ZH5(w6*- zouMCnXgK<#uufls*b~0_N>nkDHmoHi7`}&YQy%>T2^v@~_iu21_5mjXPR?6%VIgNx ziZ8WGdc!$22{al`e)waSU-~td%IT;#_k{|ul_;)qafi}B^vZXA{h0`gKouMCe~VbN zEK?C>aX)6XJYi=?%R15cXMhO$-U1u~yMhmdOfqKqNDA9H^g&@IlQ1ZWc4RB3>gEo^ zCYmhXPw9}kCv*59+PoeWvHn literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/zconf.h.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/zconf.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8b80de134a3077c79f4281d388da4fc9ca7cc58e GIT binary patch literal 3518 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/zlib.h.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/zlib.h.i new file mode 100644 index 0000000000000000000000000000000000000000..08ac45841898a6acd6bf15ff32885a69f7a0d0f8 GIT binary patch literal 18471 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 aH#Pom@Hf9M{x4#I_TVR6^M3)-^Z(j>D->=3 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/zutil.c.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/zutil.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4432f04af0a8df6a1122bc5e8716d351616c09a9 GIT binary patch literal 2693 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/zutil.h.i b/mk/linux/mojosetup/.hg/store/data/zlib-1.2.3/zutil.h.i new file mode 100644 index 0000000000000000000000000000000000000000..fb2b58f8194b93944a16a71bc3eac8837b52f267 GIT binary patch literal 2680 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 Me|6)00{q*jfn8E6)&Kwi literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib/inffast.c.i b/mk/linux/mojosetup/.hg/store/data/zlib/inffast.c.i new file mode 100644 index 0000000000000000000000000000000000000000..ce0dc62f3a6f25fb61ddd94bb0097960ca419497 GIT binary patch literal 4398 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib/inffixed.h.i b/mk/linux/mojosetup/.hg/store/data/zlib/inffixed.h.i new file mode 100644 index 0000000000000000000000000000000000000000..07844d02fcb95f6a5ba13353c53772a3a4377ed4 GIT binary patch literal 1690 zcmV;L24(pG0RRC20000000vqB02vto0000000R2||NsC0|Ns9X_j~-Y=g%Glm!iAc z>h!go&@w#$00000000000001ZoQ;^va@#f(h9_G;1(vNxR){;1P8V5avdN;GE;?OM z5*@3RC67dRnr8g&1wo!4AOOqB3L$~RbN%sI?{2oIr*9wFe~10%j<3a9zTY43@Av=q zyY)kOckciB!0t_Z?^@2a+Uc&*wh>%yHeJ`qe$xpfv~{}Mwf)Vz8|MGLzh%)1ySrmU zw>k9e{&Z%$etX*Ok6&4M%lv=(OE|-B*{A;4pS!_7?w*I!V>j%#-QnaKM;q-jivD@QmxMiE3Jzu<4Z>M{DI(VzY z{&c*o+2>)h#h5?$)SU-*y7xwUwtsv&^pE{<2s`QN_VoC4?k|_|kFA^KE`_wOAF_xp<5#!-YsbqF62uPu(FgyB=HgHG zEBj6#WZ#`x*;Vth`rfSCRZ9zQ{6d5k*M7-cze{p@%f-A>?aM0KYF2K=-T01=RykR7 zW?snYoZn^W9lj_sQ|-#AdAAUXY?7t6ofm>OaTPW>ze&5?6c_XzZOCXdn&5VH)RGg8 zqQDw5YfWy9KFuY0V<|2X&IM1&QcH``g=k3d@sY6PvywIi;6c+>xsit{N1w=q^bv8+4a|r_@}IHVM>e zIX)q~2E8aKGL4djB!#4Mhon-wC{fH}oM$W~1!gf_3e!c|YKxu^&KNZh>@;Oj4#=j4 z%`iw)N_CO0h9Z+_FN^+!qm*uo=90_i8a<{oINB{yRc)wa9g-!;yeX0;f<#Omiy9zr z3N?fBaI|iod2a(H3v;s+S>(;4V}rCpWV3W(=9NRoqGVBI$!RIkv1O+s5tI_6(Xplw zS=uCY(OMxPP}|uknb#H_8SsrMQHGauq|}QVR!P{GQSIwj#1* zRl{nt$X2el6q>Yf6;}#erR~NQ-6c^mL`b^@${OY;7uh0Ph9kQzS~hx0nNw6*-o~LS z8bVQE7B$nj!yvM-?$EMs;a9GTuMP+PJYoOxAb$)+xnC7O7Fp#%*@CedCN zk_tzQ=CWumi5mjTDMp1-xdLutU>IVHl7+c>on#kR z?2jPr?1U^uwzwD*q$OJmq@CiAB&!pV&7`Y>w7Md)6_RzOa$QAQdRZsgoVj?Sw$rf` zY2P5(jJYDxaGq@A)FN!F$!n?ZdAX>nVk5h^6>3gx#?Y3HP3P!}YdX;(yA zj9H4bldE--&6%r$w7Md)6_PFP*sDlu3z1DpHfycGRo9Sqt{7-?NwOJqMWltX1=3Eg zMv|3@$Y#>@CeqGMR7h4A-E|ddF@lIcCD|P5k=-iN&K(QoT9Rz0ToGxbaxIW{3M`T= z3R)^x1!X#qTm$W}FN3iu6rJ^Hj@G!ls3d* kjiVSQ&)VRbXlGHz>% literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib/inflate.c.i b/mk/linux/mojosetup/.hg/store/data/zlib/inflate.c.i new file mode 100644 index 0000000000000000000000000000000000000000..c0b1198f3c1282bcbd8ed199df9a9fb299b0f452 GIT binary patch literal 14238 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 QJ~EQzL=GqMA5N^$69H3yG5`Po literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib/inftrees.h.i b/mk/linux/mojosetup/.hg/store/data/zlib/inftrees.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5ab5572bf085e73a4d2b094978d08649fe39c216 GIT binary patch literal 1743 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib/trees.h.i b/mk/linux/mojosetup/.hg/store/data/zlib/trees.h.i new file mode 100644 index 0000000000000000000000000000000000000000..762125f4a860bcb40ae2a4b41e1dbad0a027b5fc GIT binary patch literal 1546 zcmV+l2KD&>0RRC20000000qhb03k~N0000000R2||NsC0|NsAnJ_Eya?@)Z3q^5ws zf|(1af09T500000000000001ZoXwcgZxcrl#>MOX74r-MZf1Ay_Ne-RAOa+yQprOl zge=E4O{A1miD^Zn{O|1DIqCk^!qLf8| z#rdbpwJg@N<$OJt%XPnNcGlB*|9bZ9m*+jSwuDl!GEY{7QWx1@)~e=SLTO8=n%Z!z71P&1<#aXkC9A*$ zBcY77VsS*cxL{SJz?KP%qlFl<;`FsDltWfpuwn|PWX0kr#h@&X70Mx$7Ts^Tmn{=Q zDaD{vjupyb`WhJJ!7&y`cyN?rP%6g)YbDCX9gzc(9XUHB*eE%-Jimc;MpS(OtEj9q zS^182CX|Aed9o7jbuIhr_`M2Ngwlpkbzpy4D?@@B7>$537DoaTjD#}Qip3FO2MbnN z3Oy8CCM=E?VyOAO1}GsbEm%d?O35lvR}_P?IOYpoIesrYNU0cGCWKOoL2D#vg>ras zlr0k;95b@w!BL7qd2p;yj*g4F4XZZXxa36*11j#6fx32LUCo)wj2l$mGggiyv>DQo46S`o?>5>@Jo#StpU@mMKk<~bRZ z%5hYVQD&i-Ib>yIrA)!GWzzC{DF$P4Je4D4<;Y4o89ZC2ERLfXjLPv{p(_pFZaukD6IiAH4rtkQeP#zr5;wTS}qZo__C$Kmos7R<_%$KziUQQfuxeae_9q&1g z7s!S;ijH?tyM?N*f7S?S=Q!}E=LO)fP_2(0GCH{0C9N=c|>yn1B2YL8-Ss0 zW5Yf#PGq(`y0=gZWpSMQF7Zp~gFz8xDT^+9?iOlHYkGQY8~v8J%Lun4OPKh25V zru9y%?ue)B;UufJKC`{7+H-$;eSuYlzpvem=O z+uA0)bY=(ZMzgvwEzEXWWl3W@%}=sw>$9+zRhIJpjy4^y-D%Yw@u{|r7x%Ji&;9>D zUN_0AiR*uGyz;7Ww)*t@`eeK;ym|WD?9J1oXD=VVdG&Vu?}2{!=A9vA_k-fuzxAvx zpP_d>lghc(?6fM)G1+PH4(ni5;cw5xX;y8`(5Y6=*xfUD+jh_7|9)ogXVsoFfBP9Q zbTmPwUxfI&Dl%Sx zWSnO*jx-sknv8=@#H*BvZNJ3V16ZTJUlIo}HH$<31DN^HHbd@T0f!bl{;X69HUIzs literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib/uncompr.c.i b/mk/linux/mojosetup/.hg/store/data/zlib/uncompr.c.i new file mode 100644 index 0000000000000000000000000000000000000000..e54ef70a5990b57bf04839d2752763ffece217d3 GIT binary patch literal 1176 zcmV;J1ZVpI0RRC20000000YMW00?*h0000000R2||NsC0|NsA?1OJ;Se0)8M-3H@V zCV&)~Y9XZn00000000000001ZoUK*gZ`w!@R$uum=9(&pBX9`$(Iye6O9Hv0P05K; z>690=w%76M>|M0GP72rl@15B-*pyWFa()0j`^`5q-^?tpTCrLzFJP66sCyLl!{ftJ z#;RE8Fm^|pKV87-Nx#qeNz^~nO}TEt0o+go@t9d?-vn@Uetz2R_jG zNZ?zgAyzUGRw!verH}|?wTMbG0Fw!nhIhbl4)KOqDl1|RLb@8m44DpFl;-d4y#U^f zlQ+(=m+(|b4i9(Z>-l&x8%-xycdb1kwY?G7S$&CH%;hNGvBFK#I*~q zaXV5tAlRidly^!#Ru)8gBVIK)cNNw%G|)BYW$RyOUd{0`;;aDw<*}3~*ZR^oz@LPY zf3b7aV*qVOe-Je3D-e6ao3BEZV`+m%K!V{tbd&M;A4pNaYPo-dvy%@v5pZt?SQ{AP>x94gT*W zRxHm|Oi|pAIW14n+sb8?YWy=m1buG+4uM_410mC#Sw5D+w)eeLP^U>4Oo?`6lTO{u zErzu>ZN%+(GXC`EOFW-u)6o@f*JK!gpBg_Tj$$N}A985=56FKq8V%>e@y!grer=fR z72Mz7ou2{pf?&f(&qmpL?dpKdI_dqJ`&_pLE3N{#zX|HvOLFYi(xm;?`VQvIubuz^ z000BW0000008sz{2g(2d000000{j2~00960|NkfOALX`#ojZD(#B(i&mB{(#I3WN4 z0000000000004NLV_*P-KnTT91H>zV*jPbJ!8yO6vM4h>qeMZ&SyRE#($ZAd$iTo@ qN5ROz&_KZ}H8D>&C%?2n!96iEC#O=6i-Cc;6^LJe%mDz5EfF$m;VU`- literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib/version.txt.i b/mk/linux/mojosetup/.hg/store/data/zlib/version.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..51570b9e5511bbca9597658f44c0bd802e94036d GIT binary patch literal 76 zcmZQzWME`~03IO44Pi3<`40uN9X8x~x;Xyjr<0|r^&fKIF&((H0;(QNl~(0sCg~dL J8R?mD0RWR=88QF> literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib/zconf.h.i b/mk/linux/mojosetup/.hg/store/data/zlib/zconf.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b4c76a91154a849adffbe543d388bd6c898f7466 GIT binary patch literal 5199 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 Q6`!A$77uk20M!#Q6l&~rDF6Tf literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib/zutil.h.i b/mk/linux/mojosetup/.hg/store/data/zlib/zutil.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8be5f8ee0a68acf88cad666d287ffa2b1c6081c3 GIT binary patch literal 3330 zcmV+d4gK-}0RRC200000017(*02>+r0000000R2||NsC0|NsB$Qj{gwYh5@^lQ}mX zJ%h&6R)cK-00000000000001ZoUIvaciKkw^eeyO#_8!wuE9X!tR2_xVj(-UJbVzg zo9y=J2r&XRdaxSFHs0=k-+O09NaB&C=PVx#x-<9vmcOgH@pAPZUIKqwZ#CMDH^(no z>IaR5I7ryzdw4rN^&IxrZB0*_C#UVRDLXxN+_z`#sq3}eW|K9~n(XbnY3;k(@gXR5 zsMo=dQkFzcAb)s{%fN|d;Kq^X&$Gly{WyZygLJ_V7%mgWIe}1?#7R~)I0S=)@aKyZ zG((5h+1W|G-E5w~FU*PRL7Xk&#_@w-)u7AQaYDprJ`v_bdFJyp@u!*KM7%T3j({`b zmlKZS)JMtuNEiVXhr{C+pSV_PqeS_PuDvJot1s>Gkaowb%IIM{NCE0Q$WvyEmMe<6)SmFJ|(;1#O7MBEP=pRpD6~~Dm&DC)k zNw7nxLXk{|BikI0@$U!0MFLB#L3~j837U7{yGhJrF9id}SyZ3+A%niMvxnjG;77Cg ziGyLnEM`3VTM7&3ktr$|Q!GiMxB>9MKv~C6!QtS*Jcy?l+mBA-J5!7ebP^{g``!wc zagvfw1)W~X@oJDEJ|YKC&Wb}*xLP?8Ln@Cb$u41$6AE@|T+neIV_&8ahCvEXe!74d zBPmhg<1>zd<)k7WD8e`qd5V+IP7-I)tPtr~dMQ^+C<-sO_!dXf>~w`aQzBCu%WLQ8 zlYp~t@x8QP#r5)Q9gaclIsqLkLBum~$`d!gjP9gNp%fGv*SqqT@4+h05=5P5^En#9 zb;yNCXQn6sUxm{+;35Ok)shj*EaLt=!qmmAN&qrDxQs#z1c+WZW_a zR~URJMi57HY;&nbLS1@%PWiCe`zH}0Q60fVL zC|*ws(u1NEohDM`a}+-b)$ktX4QfZytJnn@4`HlK=|m~7l(?>WZ9iP~CRQn~)-V`! ze#=kS;f0r+ETDvmK;8uvTHE*+?f=^>Ols%^u?1+)ZLtw88^#y92`8DliK?HCh; z>$O7PP7uUTs$$ACB=AuB zUq7#0JuL2q4)S%ijnWrQS1H;X(S)9Ps8_m#KvZ3#G$PPl(q~{9fXUYV<>vNw-MH4s zVHta?$51)w40<=6JsxY7FRv|o-}%j`nEHNT?elrN1i!XNx8_iz&V2-7JY%v%;>U|I z_%v}srBIw5!9h56FWxl|@RyrDU+^@fpNSVXi}3=@8F(rO>*JH_lwI^$kNP6uNh zhu(d%o@|$>u)rBkyjl<-UM=FwT$kb)XjEyel>*qg$)p++zi2^R}oy<+;l?KHeY@iw3bb zR&!LDn$sPscqE3(2eQFhm>o=}du6ljlcr^kd)O9`_-%sI^YQJtHyBxp-VSQJqrkp0 z@lquW#yyK7qeSLgjas5#6iBQQ_PsflWix+*OL*68%4%JfW<9Oy6|4LeujUT8os7G^ z>uVePlzH77n%%rQ=7S(j&C4`Fkv%&---x3f=-VZ5kBr1X2e3CF+uq!sn$+Y_9h#IE z_xSaVz;`&$aG#*)+Hi#+A*20KsBg(Cax;rux#(^-YwD9{XVq?9ZndHkvj75-)Qflpb9Y!DYe`_k33r9>YREw zLt!g_#=4JP9e9i$8d!C_nr}@B2TgR(pY@})iKkgA${$YJ@WkMcjHkJOap_d+aAUJ_ z;O4#NTixeX$;i$ASFmJR%k}C-vS=NZG^DNh(ZO+sR&9riW#J%-qdE;W2T)LNlrprK z+SbR_VXiEezLA;*@2cqA1-;PS>R86N=v{fEfult!W2zWCO6hWy=+*nU8yL4Acg3eQ z==A$|-tFBDs+w2oWdXG^-J15WA`>ZKIJJH`!?T%BBRuACAZJV()qc8w zlSY%?G#tXmI1|xHZ&hfWtGt%LjS<(qxqKCK6(<4FG(gKDoETF!(#OHeJG(Z%P!1V{E$ERI(oSS0XF-lG3ZHwXA|t6}h!Zt-X)Z zS|(C$Tc$Eno~`KRuJ6pFn9~cWN*7a+(lxK{ZZ=t|#_ly4v zU?m$F^6g(vT@cN8T=~%sHE~C;U%m(_b$t!UIcNf%=07P_!Q*;tnu>)pnstJ!?J*|VUkTYdK=wx?hvd1>h10Y>{twY{x$SxQJ!J;w(q?!&5t&HSIH9=7 zpewSDKgsMgO;Spmeb;L;weuH86Btk$#u;m^a#UGcHAEN7+Ea%@8Z5ILAcuH^X=6Y> zsAxwrzKAA5(kB|kyR*(9fp?k+RZylQcn>$jFcLt`jm4@Nqu>94_=(X^bFvU@8|A#) zYg(K`wF*Vmw51BXQ}9wk*kG(wjGTyraA3%rB^A_-IB9q6N||@v3(vAw+su=} z05>w2%}AGOZt_qo<)IT0^5l~S`TSqWPPlt+JC!nx{gKGSC!-RdAzl%>{!*og3t^9;xNn-EuIOyc3VS_?$0600000000000001ZoaI+hQ`<%me)q4~2}x>U6f9vA7y(lVbjC9VI%(3$ zkfxrqb;1{a}LKeVehywoAcRCl0^^)z`$oIgCtd)MIG3LH}PVr#PvLd?i&l7{r#cs_WJ`k zXX?hdAgiBZg}$XPQW4999Qgu$h-pRxz@!gZ!nYvd9PJ8^GET*egOKnw6w_C8^t9dS zY;VGk-3<$#kNoF)V8iEukQ}bYqm#+#;@#QXi{o);L&#Z}`5c}Z@UznJ8nQl$PagV? zTpH0+-a`fFu5hIfuYAX)y^8gqV(nI}^Y@-xv)-#%4=UFAdv8#)c6RlC0anPqwl?p3 zXiKp}%HiU2ayt5Tbb1CNfMuL1q#&O0B*BdFW1dhF;0xxSsS@2tjI7S!u`71rRSeL;O##JZ7!2vkCmWAnU*N41sV}?!4unjY4 zVg_xPohD|d4dXU3ZX3pFVw^TizlrI$VD=l3{T9St1F_eFc-=s}Zb38?ppE|~{cY?w z$#3JnNqrmhP2yX5Z&LU;f~Ip*dM#`o;BGEL4&A<0zkh=#T)_W9Xn2_LW`Sbx!eAbW zU1g4=dnksQc;;g3XLSJ*H zryljCXBw^)PctR+h5pR(xx$$=t;7bKG!~W|+_Esk{KdrNN+Dai9fSb&xrhO>#<_1* z!-El^sjJDw`|;RX--k19a*@nqrPJm*ohLx*j*Y;r@VQ@-ki-$cqps>PHuPyKY~=S2 zr);}AUSo=~w%7BTA#BF|;a}3JuQd6_`cZu_2C)p62*b1D5g}r7sj)w-lKqJsVy!iS zH0|j$jIn{I{$BAvGNCZtKW7*~yi^dyeip_MFSug57tdELqeq7%H`N%@ux*CR17b3m z^|onrS3Lr@QBYrww4C3;fy^W0Y)wO}epGpbVX&71M?og{OTZ_OOa z*)rp4ZSeB{I6B57o5nM(*BJC{}vM51Zcwvg6SLm|?IseX@Fz4D$ zUN$S|S)*Tj=oJ$0u6$VdA+4J+8=Q(ivdn|O-VP9=Tex{-F88LxMgDS$ML&64r~lL{ i`ad_p73=L}A<@;2aviYpxhCd$s_Vs?nf@0s^KeMvIB6deJs8;A{r1~$S9?BfL7+Bi#`C-zK&P|+1q?QP zqp~fmOce2~0WBD)beoBFtf4vZp!e$4@166rv)|xv&SWQ1CWW_5B+0f*&NnJUFc}Ih zl*~az5QBc)t4+Gw1%;LqlX2hT_0b89#W zc_bu<<#^QhN0Y^HHn|=*PJ|2+6LNUwf}h#Q%kTFzfSy4i5zj%#9CBqcr0iru=2}^E z$a5_uv&FizE-cWV@Oz#RP|7m4;TmINRv_VTRGmp7*MK%u0qabd<|8R|7m8G4Em_$Be)P=hgDR8N?ZQHV{#cQQm0=d}nB9_38nYZB~7C{UflWSOUU>Y+r z{C?K${R|1q)>ws(nXEBP6O$8K@7%J?OCFzuKBB<_Z4PAR@?35a2-@4Y$Kve>j^>XJkjXjKc#8iqnNcD6@_U%gr~r_wR1L?GBkz8|nv9 zQ%0vom(mc@(w{G8!|TJGuG6(P3+m`SOGMah;1J`az;gKE{dBgd71bnZ_5!sFLEDwE zZHMbwHTtM*1TFHuum&?$a$Q)^*%|RQ#9kG?4yfi`K|3SyvMDYapRHl%<9o~52HZ#G z#k1_fb;X@@CI6&-ROu3$He1W9XDgi8JuZpD%Z#Mb>l&goX_ZV%!L?X+2ne5j2~&KJRhfpDwGCy<&>$Lx40m z?ycykGHg7OuEah7c89K_L;1f(g(8qk>HIX6dZHam5*1Ju`^Arp47{@gF1skheTp9R z`ILi7*+*kN?v)7Bh>q#Ob};ldfjr0H^|4`ZuG=X#Uqz zIOW?jdE z^-8~d|EuLIE8)L4!jD-6pX)X6_tXDaPfP#J@aFn%yzmFp+xN5Kd_I~^ydNSNJ)@|& zZX;$AO-p@j_b#rA2O&fC&=)$lo1;G49&O_QZ>%*B+XNs9O~+`Zm&V?GlJgMnCq*}& yNka?`yS7bEtH+J%D}(>jG#|C)+qzcQ<*&6!xVpk?(>u1kAX~3TTK)?%GXuAML;Xzv literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib123/crc32.c.i b/mk/linux/mojosetup/.hg/store/data/zlib123/crc32.c.i new file mode 100644 index 0000000000000000000000000000000000000000..97e661f52ca2f881edf66cbf963f982c0c414843 GIT binary patch literal 4039 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 AE&u=k literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib123/deflate.c.i b/mk/linux/mojosetup/.hg/store/data/zlib123/deflate.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7f2003695e5633a6d6575a6bff3a58c2dacece9e GIT binary patch literal 15342 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 MwLk6u0^`6>)~9Pu8UO$Q literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib123/deflate.h.i b/mk/linux/mojosetup/.hg/store/data/zlib123/deflate.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a9de1eadb40650ee88826bf42669ccae57e27147 GIT binary patch literal 4489 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 b#6KI+ccJ@@ne%TRwfHZ#$!Gro<3GH?6obWL literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib123/gzio.c.i b/mk/linux/mojosetup/.hg/store/data/zlib123/gzio.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0d171adbb89cfdea88cf9e12844dda18dea3b873 GIT binary patch literal 7942 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib123/infback.c.i b/mk/linux/mojosetup/.hg/store/data/zlib123/infback.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d10c20baef72e1f7ad1637b5ab596f07ec0ff343 GIT binary patch literal 5379 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib123/inffast.c.i b/mk/linux/mojosetup/.hg/store/data/zlib123/inffast.c.i new file mode 100644 index 0000000000000000000000000000000000000000..bffee970a998a5982627d360da4cc7b55f5aad0c GIT binary patch literal 3335 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib123/inflate.c.i b/mk/linux/mojosetup/.hg/store/data/zlib123/inflate.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d4dfad11c34bc23429a4e673dcf96fe0e57abab5 GIT binary patch literal 11663 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib123/inftrees.h.i b/mk/linux/mojosetup/.hg/store/data/zlib123/inftrees.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7abfc5b1ebeb7d8461202a7dd323caf5793151e4 GIT binary patch literal 1112 zcmV-e1gHA|0RRC20000000bBS00~6^00000000mF|NsC0|NsByOh$Rs$ZGH_Yw~K< zWdX*YfK4(000000000000001ZoQ+mpPwPeyeb29$sxJ^Ffgq4B7xe-0af?(yx=^)m z)!JUiTkKtTcMarL{qH?9YdZmQtNJ0b_v6f&vu9>=FePKl=(P@uiso~wv?{cx=%@>N zGnY?jN*AtOd$Xz{?Op8C^7Qm%esp+vLbu94(Rop8&#SJTr`*}XMB{8AS5jd@^d{?g zfRrs5dPYHOtQ!!mizerQ^sP48q5{&vWO6X2-_F0@-Q0coOtCV7N>ghJmFwz)rr0y3 zOfy_T*_u?_)+SdHcR@FiOqdW+t9)b{u>yY6*1FL)%Bo>BcTMYc2t0)7Uir1~O#4HZ z{i*ZFn&g$TE4`retw;kMXX~|ymJ(Qu89YSa<+1acN=Q@a+!e;ID5|W6vP4%ZuLzV7 zwDs=U6grSL;N_VdGr%!8-z3Ub>jLS5OyPvQYqd{PUjNnU5R(`wuR`NR#RO95SKf*5 z6g&l;5m=eHiLI!0#>V6V1(7R0SnBu4_JkFvamXq&F>I79AP+e45>^O{UMf98RDDoL zyE9G-GQ(VLFr#XD)pivt&}0ZUld?IlvA`y3Q}YAH^WkAgIQTv9pws%+B4cbsK>EjW?QGoyzR#qQ;P_-5rGu`6Z76fJh8k7&hiu>5|13cd`-kSk z`HaI64~A2;+E|p04E^vE9e(s>TDGZx0cNT3F#3+OmZ|@6c*0mN2ZpF&u`$FM(UQjaxRVL(jz>gqz0BIgWm+<;cI2}P4+IFD5PbWvxyi>jhy{M83-xDXNX?hSL^wqB-7jY`4I<;iL zb+tG}*_|x*`xFp;lLzEPf21etUf^2Jg0aL543cSXG^X#z=ueh{Dz#L|k0=jgHC^4^ z|N7-;IyyZ5G>+Y#|9;8jMb<}@67w3`Mb;VIYMd7T3rP0bE;)_E?F;VW{_^T!Ca=F- z-SuymHxG{wy?=QRJPZ?P&mB6x^)20B@9hoih<|493+MX$D@`GPNZ{XnHZ==4oP%T| eo6~Q)U;ZbC>`2{V7o8X9pZ539CjSD|vi!~HgCrIJ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/zlib123/trees.c.i b/mk/linux/mojosetup/.hg/store/data/zlib123/trees.c.i new file mode 100644 index 0000000000000000000000000000000000000000..52937a96f86dc02937166ff0d326eef016c35e86 GIT binary patch literal 11983 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/sample3.bz2.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/sample3.bz2.i new file mode 100644 index 0000000000000000000000000000000000000000..aacf635d20abcc40396fc6bac1bf8479c62e8fd2 GIT binary patch literal 300 zcmZQzWME`~fHy$uHI%*lKNS3(uzqRQ)i{?=j-S^r|62E(js3GNR1KIab&AR`Hgt?s z3y$1%*7ziY)wcT$3<3_R1`G@eEDZMV?>#VJxOLk(m}#c^tC`Cd`+Ma2vNiSlIx8?P zc2JrS_|oKJ=YovOUNiIW&Ab@mD3}^-^S0*Q?UxqQ?yEbW+q8D;cmEx>2P@{S=h&K9 zz5CJBIF`RgPo;KEotr1QA?#JNnA7(6rJ~TQRx(o<3VL kGBZz1b=na0S%yJGP%I+sUCX@qqjx6yiKysp_W9%h04xK8IRF3v literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/sample3.ref.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/sample3.ref.i new file mode 100644 index 0000000000000000000000000000000000000000..58c911fe5f1a9b0a3a5ea0582ec9e74ee1a8c318 GIT binary patch literal 390 zcmZQzWME_f14cIn#;aQ(Y=-6kp`gY`-=xq{&uH%ghra#KW{FP_mRSr{1EwnGygl#O zciVu6^}=5NgHKsFm`d_4*6J@vdvT*9nSD~T*>-u=7rWFey4eE->{b8HdM5UGPs$h5 z|MQIZKl{4L=JEHi>cXxcmdA>#zs&pkI`qo4(-v2B*6*9~J^9Xb9o@%|k1KvFdfWU> z;&oYf^f9}sf9KjwH;s}kuH>8UzD=w?PW|_kz|C(r_P+o1w=ZnoTZyIjzkRIim{!?a zefOB$tnFKM4o^A#*M#T$wfoncO&6EE7JIyS-?v%^+v(fRKeziG_G;_VJ>SmN|9^Aw Ucq$XJx9G%vV84&?A%l|{0AWjsV*mgE literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/spew_g.c.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/spew_g.c.i new file mode 100644 index 0000000000000000000000000000000000000000..9824b0ece1af7eb48ede6fdfa63169a9b37b69ab GIT binary patch literal 913 zcmV;C18)2P0RRC20000000U6~00zPU00000005`||NsC0|NsB9FuX5}`FqqUSO^jz zQTLN}=22k)00000000000001ZoUK%CZ`(Ey{yhDPLyMu3UliG`1GG+qIgT87NW36+ zQ4GTnP!cUMrbvOL;(0^=d+%r`S-T+!u<;AupO?EMgQE`EhHpW)4j8yf8{L+b+(9Wy zrku!OEhLA6TTv=rfYo@2ImrGL%`gCfoGHk4-572y2nU8Us};)-!mvgZau)-vDuJ68 zoQ8_a1{}AJF59+gv~jT31|%~j_iPrzQy5;HMIaQ4dPL;FYTYUadJRt0JSK=af|MoV z!A`f(T8{cSw5rf~TXW@5bHC63XtctKU=noWgjOhpZhITBt@x7(p-K;d<5oJFk)|=O zp#jV8Q67U#kP1TZLI4)p@ej}`w0h$@kZD9PuobTQj{P50gmJ@hXGYG)7{WJF!d;7o zw#+*83{rc`)9X*34LKQS<3x&_D^!td<(R<7Mj!_QANUWOsTHJLA0N8hrnwz5CVEbp*>>i9Te;j(MJ_-Ht-RWF+#z~-*k6iG#Jrp_v70L zJSnyY&kjf316TCpC>bAiJeCl9EbLEE7xvw5bT~k_4eDN_qF3x??bSi(zvK4@&oE>! nZqJi+pCid%(jM@?_>iw4d`_M00000000000001ZoXuBlbK*7-{?4!1aFZ5t4v@6HxjT|x32|;{UP$vY z?c_=sVauS#SRP4EhTQPqyDQnogj~Mdm-+*dSJJc3KD$~uwe}A5z;JCKRdTA>93GW0 zh9_X8vnx5tv`M(uWD0p8=c&RsArp{M4FCeERF)bZLdXnj0o-af6mWN^p0|84`&X z6{5Jq1I~gO7%}JQ#>{|0D58ifo*0-Qq6>ul7Q6CjKqL=bA*2Ud0@I}|49TVvWthYq zWWsj|hASnNZV}ea4CB``nZ+R_(m=p6&5`MX5Lqn3JOW@rK<+f^Hi#&?P;%{A=?3t~ zkRZCePvj%8iOdYH*s9Uw+`+WqdQ z)X%cPzbR9cBbYpibiW;oi5+;D#-ezr1kkP+Dw%k>hc$JhKiO2|7Y*&VsP=?hc<1P5rLz-GkJ0y z#3(FO{bdA)@U`fn_2FqfAA9v{|BqY$qVJFWtE=JF%6{3q>YYC~p8Ff7$h+U+RC)SCz$;n~1q@SxrxeAo`b!Gz#8Z->pg=Qct4I4Yil^ys2AO}n~j z@ok~HH6!@v&;oU9OIMk5Yyf$HOicsN*5u9(y*w1*o(#@>RH=**Kvl-*welvqwj~J+ zhVWqP5cZp8J--lWMxPBIH$N8sPU<;-^2aed*q815(t3zc$VjG~*b~_=dm}_s#U>)K z6}|2`clnWS(jW1vA+T+Yj=ci$RR(ydiG%Is4c9+B*z<~h;~_=2{RQ8cP|Aq5H-Ys? zXiXTr~GVQ?+$(>iwv5n`02OST7>J<2{ z+d>0j33og^eT^rJ@bai$osRBZfkvmNK}C89ovy9c1DxG?Z^v)nzM6ufw(FidUWM9~ zqqk$A?it44(= zc?Bw}f2Z)Or@siiR_;sSG2YLW9Ry~BM?B2w8d{0hDA909+b*9AJ!b~Lf|2)jS!nJq zTKU_o@Ne>-;7aBjgV2OJ9nhB+g7hTp;1ioh9wH zsb%%WQlVNWuFXwfcm`wq9G3T6YgwqkENib7=90c{BIs1lma9~ktZsQsUevA7_cg^z xN-va7@lQ>_omj9{%2jTAmfWSI{e~yFx%Q2-Pyg)5`;{a)Mu+Z>{{WO``W(8<35@^% literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/words0.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/words0.i new file mode 100644 index 0000000000000000000000000000000000000000..34f492f115b3df620686856dc8abaf1a4d43c92c GIT binary patch literal 321 zcmZQzWME_f14batSOH-(EdLJ$E3K71_|kuhubN(8$8xCjP@-%56Q~+6RWYY_!dbt= z1_CYb>$-M+z4YaP^p=2yUc76$^f!2#ZS1aJwAGi>zdv@uj>6kh-Hh+|SoOSUp541N zrRlg%;t5;#4IUGAxCsd8oILX3W~mN`a-Pb)ADZi~=FC)bp1~IL?e_Ar{gpObpC2y# zU1qU2=iKzm?{?(JUo?quYBQef_d?=Iq#IXPTXr9(r?H!NaLdQ1hJw0#KWDsCk_g{m zC(##_)G57mn^~LIU;Rlfg3ZYpkArpAP3bz!bha!kZH-Nnp0xF!t!n)Lp4ct7zVACb zZt;PX|EHt32|cvC>6-bec`c`}|FusISI>KiTCK}^_&fA@*R$@AANH(H-lY)3Rl{7( HR(}xyj#H8L literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/words1.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/words1.i new file mode 100644 index 0000000000000000000000000000000000000000..95e44d18a24f5d3d1ed6a502e7dfefeef2c2dcca GIT binary patch literal 158 zcmZQzWME`~fH)wP4rMR@4+W9yxIC5C?3i-;`1O~IeypBxLTbh`s2VU;F~{_bAzy=n z0PDqh!GHXGIe0tOH++=H2vZQevElXKqlb#(4AZiAx~&Ni5vapx r&HUS>_R55lX~*`*%aYi8TNgZ;A+o4f@QX8J|4u9B&rCPm6n_H%{JB84 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/words2.i b/mk/linux/mojosetup/.hg/store/data/bzip2-1.0.4/words2.i new file mode 100644 index 0000000000000000000000000000000000000000..0fc58aa9b7e60c494d247d70b3b67fe5360cc5f3 GIT binary patch literal 212 zcmZQzWME`~fGI#~7nHsHKNP40e`bGKd`Lz`*BHX!RMd1b1W1I^F9Kot=aaI*6GO2oZ)xGZeR|g%X!f(S=j4 zv9X*WjSOA8o>(IPglxi_mJh$!e^mNT_FUQ{b!gbVq93C&M&@WYJ9=rsd1J z#Ux94+e1v=0$$K07E7zdD#*cT!$}CoYbN)#0)ALfT?}$iv4=!BnI?yjp}QU>+G=LB zLL3A{96Sl~QcydOs`}-+Pg}mQoYP)F+9(JXSxeH2O(wM%SZ9_}#?$l7)=3LH(X6Cg8QyJYxea|*6q-7>OPxg}+ z?E7G!PGlzMQ)zMDf5|#yQ{PxMD?L3M@6hvCuU^K?qTicJ2~C%BDQr%!|8n8*hAk(? z&W>7-A1W!FBr8Q8aQ)->;{5dd?H-++UXIU>Pv1>0LS7$^uO{bLm%u;s2+5JsL7r`F z)uPKI0Jnw(M=OJyoEn`YbXN4z&K>8(FO|xqMi`mVUMMYdHqv8Y@0ez+wNFDU#_QkH{yn;0@is{jdaDEIlcM(H6$WEx*Lp3w*dmKLbBLmO2s zIy>81wF`c3wQA$M%dDz>r+Y^_FYZZ$ur0Pyei;3TB85Up=c$hZXh{b{u8oF7z%nWn zDkIR!v$kjpVU?J6v&n?cgTJX|Bti>~`p<{tN>%u~s-5H-=?GBq`K~xRGAm_v4fp6L zr9<={Xj+Q~mmZ$;#mAa3j^bO**A7R{Z6PX^4_FDif>rPc zH0%anAExPYxlD|3%EhLZn)iH~n`~;#b%5$caG|>xsJ4Ofb<^_a3>61Wo^7Al-!gt2j7}b_&}d3UfaMSOdY!)kg3rfb%-d%?kerayP+T;2&+Z1&DhX5BI-@15)1L+qbD}m(VYv+6eyxX1IjZ z{AF55c8`0^)S7Fl_jrFTc~R+sry1`uzT-ec(v9?dNeNT+%a|WiCSNF|9$!%Wm5aky fym*e3MTOOlT)^Mde|Kl|(GDc(L>B!Gg!hhiq@iHS literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2/blocksort.c.i b/mk/linux/mojosetup/.hg/store/data/bzip2/blocksort.c.i new file mode 100644 index 0000000000000000000000000000000000000000..1c5aa78313a40ef83e949a97c4737c5e8af46038 GIT binary patch literal 7936 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 MrQ2}<00faEh5UN9r2qf` literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2/bzlib__private.h.i b/mk/linux/mojosetup/.hg/store/data/bzip2/bzlib__private.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1d8854328de7554a547261d8df3be583e91f9ab9 GIT binary patch literal 4070 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2/crctable.c.i b/mk/linux/mojosetup/.hg/store/data/bzip2/crctable.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7c1ad8cf9451599786fc8c1fbc076de467090b79 GIT binary patch literal 2384 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 N7p2>A0RRVYBa0Bof4~3$ literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2/randtable.c.i b/mk/linux/mojosetup/.hg/store/data/bzip2/randtable.c.i new file mode 100644 index 0000000000000000000000000000000000000000..a41582bf4948872377f63052a02a52a15bb02151 GIT binary patch literal 1890 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/bzip2/version.txt.i b/mk/linux/mojosetup/.hg/store/data/bzip2/version.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..877e04f6233b954224ab94e84d65ef439bcd2075 GIT binary patch literal 77 zcmZQzWME`~0A3))17R}#{SO6mmoDHe6NtHX^VV^Xin-tSU%u0R7OEahl_phX78vOo K>KW*nasdE}s2Ixt literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/checksum__crc32.c.i b/mk/linux/mojosetup/.hg/store/data/checksum__crc32.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b62be54cd76531075150d0bb1de09096a5f8ca08 GIT binary patch literal 822 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/checksum__sha1.c.i b/mk/linux/mojosetup/.hg/store/data/checksum__sha1.c.i new file mode 100644 index 0000000000000000000000000000000000000000..8909247706f0d79a1ae1f62ed85eef153fe31c18 GIT binary patch literal 3088 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 literal 0 HcmV?d00001 diff --git a/mk/linux/mojosetup/.hg/store/data/docs.txt.i b/mk/linux/mojosetup/.hg/store/data/docs.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..557a1cbfb9af54b77e544dc9cda33ef3c5403df8 GIT binary patch literal 29105 zcmXV1W0c@b*BslncWm3Xv18kw9ox2T+qP}nHox8H{qm!3ot#Q?lXT~F-E;#00ssR1 zx1m7*00`p#j{}1J{QtH~UnP)&ju(U`xVH4N80hDN*BtUc&HvCXb4kK zS(UI~@c>v~?@k4AT~O6J8K&P{Kl3hL4WspBR14NtmNL;l%kIdL6?cQ6O7HnQ>+KU< zCl_tzlo{ZjXw{J?=q{PVR*q`=`;*GFPA}3YGN&ndW?S>qGPTa;4h@y}@8jy;-aD^aKBS0DE3TF$|;$oEZ>VK zxu7Zi*EA4}rfd>ii^n!-M~9(xYdr434m}#`o3)OIlKPC?7aE)GaNul=>E5e}p}BgR z53yNU>-(1SCMuxhw7sq>EU_oYU#c`V)|=gp1x+*T=sqqNxoZZ-RAgH8bdz$f&h|AGWaJK^W+%V{>yy2?) zF-woOur8!vcw1BLgyIbPmoz*d6}MZ?bym+-G_WS{&b>U zPtHjBy2ru>F|6NPpy$?fve|0S6_Qrqu!`n14M>M?OVkapd}FNlxDZN78)oxLY8hse z2UfsOGMP0t9%#Cm_UFUqt)k(0#yICU(eJ1QL_W)P6Rpy0^5!DM`DFftTw(b+0IR+j z8kC#{-{1&g>>~~7AbPflj|6n4Aldq0siRTJnE2OTL3 zLuMz4sDD&_`$ABv9nEsePMy;Jvl6kQ+vRcpxOXvOtE(kndYo3F+m3&^(wrUvyvv!{ zEuTd>h4g#-+WcDnpcYjh1OeYafIV<2jT6P}XW6avY5cgch(COn^}Hj?3d;k0ZH?`% zd5^!l@PtB>?m01yPgkcKVUDN2C(jmZhw|=?MOD|~eCB6Lt8JX_1wqRpRWi>?gS61W zgwr}bP|`80W%|WQdT3a`-)2X>RPw;8uTAyXJV%Z^m}XI{6CO=x!3DInrXMN8KPNsW zW7)?vLN+U`QV1V{${OBkX?dmksp)fCKNYpO_snQ_)AOM>MQ?mZ`*crP$HnXHGjk%F zc2bSV!iJ@~_zx`h&OuudKyEG9ina3D0GNrAAZjwrv#0d(fts8$W0H0p{cjb_qg15_ z;XAPE?m+dWog|mFh2dtYR-ibgg$P`UPluv)QtR?1h*1%<-u!ZKM8(i2&fl-msfbow zt%ZfnV{fx{8lC}dM-Qc0H0rOPbThg-THPLqs2^t)AMhBKOGdJ1Vh*qxMmlTg$sL(< zz2&@gCIh^>5G=3HW>n13a&#Zt42O7ExD3;C5$$N#IE3DGc-D+a^`#v;ojk7Ci;|cw zk|DFJZ!R%WEp9*w&HlLg0sOO5Ge>M-uf@>sBkiuQ*6QhggXPPU$v_OsHz!OQ>#e9- z)7qlN%Yp~NBF-`bRC+26Yf{qbHi_{ex<_n{&Hf!2CLv>l*Aj!8p8!L1yJ=J6kC9GS zAZWM_b@$(rP0CZFOCn1txjJL1M834E7D;7=g9*c~KqZrqXwUR-xwNVWC-aIgwG)b2 zoTio5Ee}^JCfs$y0U@Tkd_KvOR~Hc<@HyJ0!MdFu9()Kmen?2w>vrUluUNLgUZMil zJL0=&C7Ub1z5tGj;wr5lJZNG~MeV!5g@{1do6XjK)`_9!h1&;9QGq)E0ziA^8%_qU z#5KaB^@LA%mkoBA9l@9GMI{brZFcew6B&FcM=#}$)wI|K+w+>1a3`kgKw6M(AmBeYIXD^Xuh#u5Ygj;4cGQPVs1P&fnu zhCo^%c_bm8@NJFV4^o_70l`|N3XPFP)+8$1`!$EQG1NSaF-740%?}85*9t&e_Cf0l zk>>W9Mv)6a z4G^d4I*xVfm)UE(pjHG|z-eqZD!^^7>&-8wtXWP2VGUBcL}Wd73Aj}%;ZwD-4I=O@ zesePfq&;%fSP}5L7TmoJ*moA0EOu_^E6>6Hd?Q+zK!9?;e8UbY`sQs!&O$>+ zqpWp^u~oemIpiGwy4cRJ7cN4~1$iX!I8lTqF zJcn&$N9zieo=zNe_>jf1<3Vy@PeNvg5DDIK!3`y3qsPt5@xvcPs_3lY?`A(yVE$d> zm$NB8ozZ<@^2&TCQY>-P-Nqp0No@a^p*eD{nzpfY0gM-at(DIrGbk_ndTX%Z^s(2G z`(A^8H?t=FAlwc)ib@UC5DMhgvmH6%b>!u2$S^3=8ivZXB01LK`UPqW_$lKUfB|XlC#ur1pBL8EQ3-2 zzb0{{VOD}Afu>`N7-pVba9=bd`^+_{R1iMD0uzLBYT4j4;f+)s@Zh>}e@}OGa$AkYt;(d-}$yhFnh-4e0t4%+^#6Y1A;uON0qdM$dThKp8@O^IK| zjo22(VpO3+j#oAd^IF3}>~LDj+!;iLYjrRyfM7`Mk+G7iQrIn_GUpAyyMg>; z=yKT7sen=x@qVWs2*&}&9V{jmtdZ9Fd1Fk!89mlL%t_3^OFQv8+mxi^kZfiNX>7jm zfT+wnGNFX&HA-h2{p8x}$1@9)SuBGqc&15ECRBFdoTGrbVh1f%Wcylym}s&CI1HF~ zIYi2b+oC&!6K1EJ%^^hhi5-JT)_`rwz_YuF_NGcjC8HKf3vGJCt}-J7GjrF+p6|%G zlr=<4BNm0fg}PZn-swqki5p9ER%_&A?iOh)Ie-R1xM{rchg%Um1Ag&4U4Z#P~23M z(@s@uT4c0IoB+p8DZ|(e9-9ig%?APImt5n7(ntl<R-ueGT_FtDjt(0L~GnC9U^FU>3$BK9Y(uxa$X1!A%OXpXga zB1%;}IOaBrMpv#F$~NVk;k#YCHtA}gBB@p?0iNSM(f?QKh=bM%_zjIS!u{>?ZO(|` z3B*BT_aw0$_p<3(>W%isyTiP6@A|R(h zrHgU(7--Tz=RP5YB6W4QE3Q_+02n>>0+z8TK;w(dUB3`@rJ)&AH@Nx4Js@L$nQvw`GN0 zKD|GW)DNNV`y31QoosLA4Ojd-`e*X~@>F^h$>4ZG1+2vNDk5PYm~IVY2^AxY?gG4I zMQOB^EW{ur)crsMtCf4+wUqrrpQVbiOjOwnHr8y$%jHNU_m&P+SIMFP3RpWZybN%2 zM8m_!D<2KxRfCt&3Ft>Ep=2ld?v^3S?SbwpIzndD9!mop>7<>@FmF={w49w8m7fHx zq^`G?w+yBMNZz4%cS&9WA!TY}Jiqt-Xi75Fu0Ze)7>o|J{rUTQS}2#n?FJTzzdbI+ zEu3N2%xx2xXClqA z@{p*=cnqrgWk%T&gJu>ycZlaaThIr5Hzi7N;^_Va%EGb?#%R+%hQ31qBb^xPKPsIi zIlNnDq-a*Pjjfs&!7zl3h}rpz1yz%6+2f(uC+~KhL0ZAE8%~)34IqJFw+qKsjWX~l zbKNE)IP$dr=n7c$rPKYv19PT`!b;W{6bcYul)p^3v9AOQ4xKy>to3LdwpaqxFhn#I z0-+RXWt}>R&DH8qeAoz;hU*7gP{WWX%(6*QBt4doV&g1mG}WtS&ji3*Jllm7HiJ{gI*` zy=;;{hRIcd=$ony7Y0*ScCQNuSW?6ZS$xAuoQa1>8qs!I@tLqL6?9m9T)kYiG-k6J zYEfn+C0OlQ&K`K4fV<57C`@yfv+VccROhvL-@5+^CcbzWSXDc4)(Zk7C{YAZ{u!Xn2KkjbPzFHyG=GEJ}4_4weea7V;wv5!zU#b|IV%? z)%-k}eC=Y0jn%!sW>XFaUj!y!;a*2F<}a?nHioG(9Q$y4Gk;TJ+;Gq>Jv|oF%o>B4 zk_~W49GU!PAO*ud7tbVtrwASvy1CMngu=4!O#K|y{wz)Q?qrHiOhONp-RxrjekQqh zld3a=CtRQ7@hm`vXKuKt*~6T0V`KMZ{p`SH(GlgvR}=ji&9PRfbZGsy$1>?E4TU&6 z_T{Ab7R?cj@Y)d*yiM60z|{2;r^)@rm7JMP>3oJ{g}w1V@>d$cPK5|3vptb)DFMBKbb zyJ`!&nTCm!K}hN%#Iw;v+qRHFNEgUBCpPWG>u;$BLtxg86Cr=t&U_OWUwtMxUZKns zt74s*SRacQ;8~y$UuHo(nagN88`!TU2WIYhtcqhX#~D~U401Yn4VkZs2{-;;UmU~Q za5CIpyT>)3Mw5;b^226-00@_3{6>fdG^Vd}IiGZ$YoZ5DP=$uQyUW|iY(1c#dX+cf z7?^2Z&ChQbfDRwW=VSPvZuNRO5It_^{*hs~X0Ct_%N?0@*5VaQVPH`IC);;btkC_S z=&>MJv-n5c6U9X)8z~V}5ABJq5G!_f80;11{{Sv+g`@<>w8h(sbm|Tz7*4hW8Bhn(t(?@;ol=lX9!><2%L^8NXDbl;><&85ZBFHqchdn-s4L%an$ZW~-3XERpp3I4s51ds`W*D^VKmdV&&+T|y)XK+*4*{T zlK%M-k?1i2$7-I=G>%r}44%YeNuD^Y7py-^z9gyUS0fV?7!B%? zxmjqy|A9cq^Z@=MFCO5kxDD>pTC{wwFs+;na9mjjO^+5}fyAcm z2_?E{%m=Y@;>*;%D8`h#ENBiz?Zekub30nMcHd*DIiLYF?~f0hANe>D0v9;HQ%>g8 zOgi}Wv`3pU$PWC9IOR`ZEJHHcD9)`BQr$zU~UR}ISZB8Uut?D;21;Zv- zz_`)iw>oB=Pk_Ze+IpL0Ya80;{dHc0LbW3}L6&cvpg+IZs6C}cVzhg8$k|(V=@VaG z-=Ev^<@k!yvYol*^R_#NtYqcD5oa|5r{jUOByk-fb0v-<@oPF*Y@q=1?rxQz{*gSJZ z%SbPPPD-3VjH~EBK9dY~hySX<|0>7;0MO3>06L`q7ytm^e|!Fwl9|2*W1L>Cc9bZl zjG?pFs0PsulK!XpAG&2uX-rk)h@s+z*6%_Q0wQqHxab?n0^)==j4zcRR|e{7iPaKp-KhS^O#P zcwa2L$$ZGlNt^0^JCCeci@CYbON1S_ah(?18pb{^3)`ypv_-G7OtQIf8YsfvE_L1c zQ@lT1n%e?~Z`ILl@8H0gk;T{lRDk)j_5G`QXK%n3_4~TKx(VOa&DfN(qkgy|>EY2v zUQ^&jz!FxiY%+l%jA?NHc@6T~^H` zu1f7Jm#Jx2U_(}PMguBZQ>%)%fh#C;_ZPg@kAJccA`RP?Y74ZjQ&mcoLK9?Ci-TQD zyUrF_h#1HKd|gO8&oYxRyixJ_HCwUqDU96^ZcVdx=%d@omJ50v38%3pcbH_w@}4=&de$<>?XRG_xPBdi+}}|X>C2z%p!C3NF07$ ziw*kzPM*zug#0zZ5;N?}3RN_J5eC(D?iRvej^qeNQmmdPn&#hkA4v~|I!HZ!4pP8{ zE$yrYQ^_Ha&oE1LhwtY*WZpg}ha`ZeSPd-JgUPdFyVSQJI{DbBwZ=DCUv(!q%rI_E zbuzFL>ICyUD@#E-8H!(%&Ia#MV5BSd4miN!qU2RorS5wDZU+ z=A6etgp0c!O{Ca;XRGs~sN0^KeNN7PGP|*EQ~Vfu1u2#**`iHis|y#kpg0O@bpsS| zUkp-x{iR~~+-SCN*ezrcK)zrI^v(60Mgb;~pfH;pvBhME<4d4B6|B>scRN|n45LKz zManUl^7OEEG8bTjVTEqkE&i2|r}p`KL0flOgMVw%KIPop0W-{Cob<8uwU@GW`(u}9 zUePHQhUL)0rPdE7j^T*)uxo80dgheiq5u~Nj4U~<4FHuGR#62@#D49N(Pe(rOyR~v zLF1{Mwe62=svKMI%wKf&47W>~<*%`?C*2$Ix&#wY@!ZYRSS}!? z%;x+sh6{bQ!#(GL?E9Hx3|Xu;WgS%gsezX z0A)-Cgi4dnySYsSzQVo$rB(Giv?j$X{wVO6 z$-I&j==f3iWyZtdk}7#5E<)Ct<6~ZNg;@xYId8tvi(Kg_*8PV3$b>wV3Xwu*WjQX2 zhzHjoMQA8F(v=VC zRl}QoIBKD8rfE#U#V-j~hUp*5o_oB;{1i^fdTP@|v!5R`0~~QA?ad43R_~zZTT3zO zxD1E*u}YiVOMBmk0Cx+yv`~sh;5shjJ>J2ZTd2NNF4VO%{_}yDS09f>b!K`lA?xT~ zt#WXzq3zkVfmm@fzXhN}ly$=aDJD7xJ}z`Hvi_T-pw`U_3z6-ym!Q*k@8q~QI)I{i^mk&Tuf9dpgEy4*10(`Ybk>{xm##I2(c=DVal*|gG zszW-KNA9`$4HRjhK};Gjn*+3J3oPWhk4D7AUrxQGg%X;roL75&9u z$!lbe_@u9*=L}uUELE21U$Ffa0W+b6c2+lBX@X1|j{~Xm+%ZBueWQOG7=?e&TaleI z;_no=FKrolQdV^uwE#uc;Js(;rIvZ;afoUp3+#*22|$^%3z!t9lyK_z=&as#AI0@M z&2GXY&PXp6yVyFJ(hif3v@zK||#oB15Ki`&L4Wv-!#AcZ3>%ag=sWFEde)J`n_ zFw{~Yk>gTU8r_+D^m{Vi|I&ni1B@dHK#+~)1U*IermG8!^mS`a;;78A2E2eQU#N@H z#zkcG&*lg_tdd^jWstK}2e{+m!IP+6Uv71^PO6GB^XdM`cf{p_ZXxhN@BcEWs zdsvR@Wu+T@-)ndY^LaLbEWej0uQMY85|w7M2%sYdWR_i7#Ka^JkJdB>V?XybsxE|A z1SvZ0@J|@Wq+PGlPjBm|E<6ma2uAx3`xvcT`WQQ^Z;(N$f!vBFW%k;G8wgnHleNG3 z1oeu7(+DDe`Lomi^ltTh)c!J)?V)T){B~4Bq&MX4Fy83Oh0M^NeF-FyM7<{bFlab;rncjfa$7{NLH{(6h^W~-Wn>(ZHetgx{ znXft)OGVUi@ztW|njBRLF=ri8hoL;rvDWU=fh#AnJKo@rWP~yg?$@||5Yj|m(Ag8w z%Dp&Rw@Q^Yd#BO49EIsANibu&B&Q}~hIj(%WVz+)fi70cn3%4es{Q%$B^h<5niQ-zQGdCa5P;daKrJ!PT`h~%qDUs0cY|h?cbgv`li>dxrqf< zeb9sGeHrw*FdQqgyep}f4(2Vew6*?}SgkN06%Y$Tg!0Xi z(e?JUX7!BS&W5><$MR5m-!)1620qy5LoURTerT~1&p{C6Dv_}N+7HF5qNhPmC7VTA z0KB#RIc)X(#V6R(6W>b6@z_&7#_s?fh( z%>Ok1L$^#rJw5N~-roG)-d?=|0H7gbcc`&9f^kV*eDQN*QnHleM6`<|^rDNCW78w_ zlH^3R(-f4XV`Hk`H!XlxHMH)3=ON<%hj6+80A54?*x!po{RN}jH_KRZ@#@#tdBxTEK0q6^V%T+V?C%+=UCqKjcWD-W=?3~m70xJ1e9Fytv z0hio%LPE=RR%YkZM?yjZxZFqe!j!0!NkO}!2H{Z2v87{idpBykeO4u<*3wi^8Eqo6 zrB~jdD9iY`WUFk`^)pQ4x3j~2K#uQr2^;#pjRM5lrLeJs#+j{(pEH_itJCvCkQ?QL zW19ldp*`Ly3qj*DYBv@Yl#FFV_d>CRz-x%l;0M0&t43K?Z%-x$rJJpT9Otj=^-d6_ z3E@)cC5SGxb}r}G0ZMt=MiqC{OIasXictYBf!7hsAKteCavRI3AXAtFe%*~ zN#;}>!4UZouAi$rM+FA1vy^0stG^mi#0wz50>*{KYCJgf=28^W3?ArA2VP~!u4IQE z01NNSWX^UMCTJ8PG49CyM85D5PLm04R+Z-lZA;dyiVC=`g-J@RKrWE?jg%k~mn#*+3qq&LbiHpXeM^;f6-vSWD3%W3-5#6Ik_aGrKQ+$1Ep z;&;2ZoBHr^yxoiCel%EW2V|a7`MrDw>gv*ba;>lp z0MQB~;Y#Zy!w+7r4?%IwmkO&tlhkgl(E#G%OmWeysCNXwg7Piu+|L63G~=nm|EY}g zxGQ=HDUa0=&lW0nB2K_>Bhi<@K1NtB#wd02g=f!{N}@kSVpL=V??Vg$uN#apFX)-pg|QGDgO9U; zFbiDRso$4(@!$a2ZO1i}+gQ-J>In z)E1IeMTbA^Nyctmmq+MgsAq6#C8P3`g@sgXXi*cHbbixfu@eZpx>HZ4LEI4T`A(PZl~v- ztF1|hG8}=(j}qS7`P6(GDaS03mRZ(jg}Ed(2v^_~jkEpw+6?T10KaFjp5(imh$LA; z=&oLho+C^n6n~JVlSIA0{HU_GMXcl-qq57Z=2X_&Pw2-g=Aj@W`RMCB2tzuH(7MWw zu(A4PU^gWpgN*nUp(ir_nOkiXhgXUU9X8Sio~U+t;)T2`Zx`h&UR8$jtG|&Q*CI?V zJBKI2OkPNvVaz+gg5yG=HsA$^f(wk$^R$g&IJIbWSIn0o?!JYB?IZz3wg*^l(n05W z%DtAn5h8%~7Pw>Yev!i#jyG2VK(Ao-$DWm(l?y9B?$IDP>1nyjmk zA{}1QP)Bj+C0X?~kafFf{+!ak)AZiJhypplWEa_yH5F5HTSZYyiQD$wpo`JynTHMt zdkw;})SqPFiAjYLBgh=4Xo%Q6oz$V}ZDGgY0tiH1)bt!eb(G1Y0!9FO7$`sE83|7i zrHo@jr9uJwcbEnFskGYQZlRs2Ye)^O_LV)S-ygGv1GCwrB`9=kTce+r=*)3T(<_bG zazUI3osZ0U^NVTOoMF2WY{6KNV&tntCe6at1sHS-h;+lbMiP4?7MQaNU4ambxCbL) zG~Szie>*Kq=}sr;XYjExb4Lv2g*$s+AM3OTAnL$dah+CynKUYmf&^*4%cC#Oj3wV! z$GCb46|Ln#&Z*iI6>$~74xy_iRD{`)i9UBhghg$(?mG^67q>pR0;$$GyB^};)7NCq zgM_#-g`ApLM`sDF5c6(NN(7C+S4bXId^fV$Nnf$1wPoTssOBeT$Su&6tXCCd$jG2c z+MSeM5Ao{yTmK@0=J+FW;VNF`i-H{RJD#jZmi*F%8Gnrr8$ytAo8_lwAqfsR|8Qu; zw0q&_a;$gq^wIDTwj-{g&hYGjErGLBCJ=7O5Apt?s&cx3$-aL*evX`7X^bB>B^;3X zhNe9$x`8&xXxnG9mY(x1j|3tA+CE`^&} z%J3!0?Xf}19;Mw23sBAXMq*WieoG>Ft7N0GIp?>%_Wf5*=T;jp&#hwwsv<0sXGE6K zw^UJAHNuwLt*MG$M2N{TB*y{rywM? z1ZAbGy>NK8QZ_HP)(35Tw8r`TU{SxeLjh2oDkl^|tU&tmqfXN)9<5L{B-+wrK~=oM z?T7*K$J8Di1EeWv%Ic^_%zjfC1$cS3h2~};p~OBzyZl^~+h?JTwr82Y#aJ5=3yE#)9~a0`*AO46|2-aDU0ZuiqlWg?|uK&Cgax)fa5XE!d{n zN4vBOM+m>)X(wJ_HBrGq7Z^B!XWj(k&rrg}m}II6(csbR;v0G!;Rfsp=Y?j4G!-1= zy!JT9NVvZtI!+crM*%Hu>EMc9I#LuU2cv#_?CR)rd*1n*#4J{lrKCs*s|R_PzC4Qx zF{yQDs!o9|=}OE+`0xq0$CXARmZKAn5aV{cF~kb^EI7H0DBDB`v(V)bzs)aqG}WhP z9vz4~TI+82T!_IbuLV4GqP!RrL*q`fmt#FH;YvL2P?BBa@9sGU_dv(a>fvj~|2`hp zR?I)gp32c=#y7e6d2=+B#D@E*HfRl~{ zY7uq;NkL}n%~|Yf04M03v*jc&j)hM$N(W20{lu+Ti1e?iOmpC5HMj;ONhc9f#BAYmooQ;F8F1*f{piD)D zfIJ-w7B(IQm3147U}o7^QMrOE8({X?(HML2)93)C_Bwe#+rzZqd2`FS#RbV`SvFV81QW7+7QTuH1i+SqJL#;D6@uUaUcY&`A#z~+Af9iQW znj5)6v5JwFqjFtQnM$56HW}m<_Q{GwXLPx($U?X|%UUv5$wOC2XhE^z?)uM0r2p@L z^mf=>32hXSCs?jq*G@NL!Wr(b`*-wbJsH@hQwvE1ivtWNuHAt;-f z1($FEaDtmQzclQ-I|-Ot6gAm=P%EGt*#~5=U)+QF9xR0T31BmHjj1-_EV84wmQ{GXlv z?+^e0w@lc{I>df@7*P48F{GUEU_)d|_1+V5bpq;57ZPCK0Yd9TC zY(_)+xDiJU@F-1mk$`()*oLS_E?7a0XYgpj%>OMYVIcf39nHT6`|*E?0mA-`Aph<_ z7*gAD(0-%}vq!o4cPf_eWwDC=|0n-naLdGbe} z9W?qEd(y2Zov2GuY7#Z(R&6WGgH`Wip`NATBzB9jsNTQq8JYhf@H7BGaQHv=w^3pL zh5y$5usn5jze1&;GX-opzs>s_hjtZ7{U`Z}% zA&6qe28u(-4TI3A6>?96+#${YdLX-apoNu6T7mS9zj0;q z@SXGSeTTZ|ZfUiTAVDSOE!kRGnMGkY-UrB8|6EOsD(h~Pf~7&Z3hS$qAN}Wm-3C;O z$QdWWUedReEm?QaS%>C}Hx=u0^iV7T$rYAR%9I*`=V+9wQpY%B8K7mOo=Q%av4rcq zVFBqz)Zm8h<33lcUfk8S5&I+o>&;HsMSoiYz|~nbyU40-VfOmSwMO@*)`NYv^xGty zgFY=V{x!~7_S~$kt6y)$`Ukvb{}woe1GXP_WAqW-ttjCn)YE^a#7~(!^)-?*^k{@@ z0t%hT@hWO1D7I+fbob9-`g%*#Nr%deOCb_D*YTi3ZSE5Xz%O~z{OKe0jv!Xv&6Sr4 zKB?KJe49)kqC$-cd)N6+hI~ksD^}c6t>t3z{8X zGIK6I*>T8xl6^S*O!q?ekwHVN+O%0RJ#DC@p~4rLp#a|k`}DJv%2^JQJnUl9S}l*$jxS z74`1|tdpFf9=f~YS?doeQz%hjeGm{q_<#W2SKAfTYb4O25SNry=-wj_E3mkNXC{Bq z91ua&mY#$CTHe0N5JAIxGl)g7ic@YPFq3>obh{^9+FthWN_;#H8L)lnLG#Wrry$Xq z6o3=uQ%zouw^m>h2F&(4MR>`t;`5}vcDvh|NqwI`9ZK8#O0!Hb$r&(+n21#~OvE;A zreA%~>s>50$@}xjsODwc2#C9%1dyv3Y)D&lA<%|QC$#p^hBOO7Kt;gw2dT~ zW@|(#>0Z!B4bqcwgR$32BeT&fJ-PlBhKe}455WX|Xu`AvDbSI`C9r0N(#kPy^2n}# z1=zh$1S5Vib@B&5|JdKJ0nT3l|MwMK#OVkzB(5Yrpw84s zI5p$QwrJ}APxAlZmZ_aEW3xz)Fgz8v-Rg*u1gvR}ZC~mJh=7Eog6IR%xWDU68l_o7 zwwf??oYd-YnpCoj>jrIdY29HgXTSe-oUy}ZIGMsX?D=IqSzt=g(*Rq1s0nh72qtZr z(@>JCf4@1f_-7?WE(^YtPRJM4U&;(~1B~~HH(&;w(wNZk{>}k1PF>bstA?IMX24@C zm|rOvHOxv3vOR7j(08LxvI|E`BQU1WWF4N7r>nSR{24lHX1l$iT{QBH@um?8nw(md=NJZJy1hd-?8*G z)$;gvGAH#tIpM0-HhHes8qrC?uFY!kMmq+_l$gcOXMbu$iNTMpfL|6auxT#Vp9n-% zrp$R%FJU}zb#c=WI-TrH9H^bk0wMJcc3=sK2}uid>9UG3@`ym-Utm{e)!7obT^?Sa zdzZ>tmLVf316qs&H0^O$l)Lq^>efU;DYql!+eg_BDw6aI5D8J0GL!)L4Z^5_@df%e zyI!@56C9FNs}*V5n-~vYb&;<#oGDwhh-sOizx_1Qt+z`Tbo!9omccHtqXs9OWVp2+pO6RH@@C9pjG%rd#;ll(-^{CCG#WdMqxhd!cLSQZ=kMA!jK)BF$JGP{&zVixF8 zsI_9>sqornCD(GbWtGre-`M0{#=s?(zJ-HgmsqzLDHx&DZhbXO!skFm!^x=#Gsdun2cyG27$qPG#FIzj$k z>Ppah@{s8+UNk!wwixZWYs1Ws>sPd{j24n^pE4T}1?N$j=vp-o-nJNKp(WL?QeAqR z^qd#KplViCx{0srWFvl30Jjh>EUikGpt4Jkqch(ii|=lMdezc?K{K7*{ov0!>G#wD zi(pKpRgtoJ%NL=_ECYPYK!_HGFc`IFs(S^OP$X8gsbXV|J8y6xJJ&iTkQ$B%MoDur0vnriD$gXM zxEB!PN%>Y05VT3NIbXBOEXuP#E(t+Uy548-wK>|)$1H4hml zM@MI$PMvAr+V8wM2mB9KqKnkBSRc3SM|cvG#OFh+H|3RK{2YTR2WMef_H|NS@*M<{ zus+Zh-)Fb{UCzLu6S2tijL~!ua@VCo?z;^XN61*<^%U^q6-ea$(uX!Tnemx&Q#a=G z_LCX|rf-f)vF{+5`>n0u?Hw-7k7-lm{svY<*q0(P@t=Sd zpAxK)WvmvTWZLDHZ7d0`C%Htfm>f@*R}F@NTbcH3#}82UCyx1loq;R!9|AT20K^Rb zV}CivUx57AjX1YrsCX)izTKJtA-<(H)rb&mD*u!GKl~jhDt1}mFd(R|S7okGx%JtB zo2pd9*uYRIrlO1i3%g=%MR!rr#6M4V`-L5V+u=hTD%^{nF%r|DBj46S3%-9d6Bpt2 zP(Hm%Q9L2Gb~`2d@&T_|{R!MXC+ZsyncT3s?~v}xsUmbGg?8am$mx@f`^;vmQ#jvH zEh|Ar^D4{7P>Ag#){6o5Aob|;51X6Z6$D}Kfa5jH7X30uiLj^@iYBP%GD(AI$BUed2D`bu}DS?J?e$6!u2=kntayVhd~nyo`5NOdIPls8Z z{)?e4UK$#)x+X6PvL*k>-Du~B{K<3t=KK=2vB(XC?`QXiEnsE`pv3)jY=4r zM|OZ8At(jy8lb>BK6I2tQqB*dP+X)%>KxLD`TnX4EB-~V-S z4bXW7&;E;T+qP{RZP3`Zt;V)(Hntn1L1U*$W3@qp2Jict|9k&)-ky`+&UZ8S-kq7f zdv|7bZyuGfOAoC(>PXBb>nYu_=rwnMDgPt3CD_X9a|VG}y1C&iuHpGhu(?|yB?bg# z{YA(~{>aI=)K9WLLuMhrlyt6@j+FEz#ZxeQGgn<2qfQf|)_G5%2~Eima@u2+zzd8o zchGepjSF{y5FF^krUZg0psAFAfB-VpQP1%N5u1t(!TkZNTyR`x)>8Dxe=Pq2uiUzi z3N~A!sEg#Nzv%ECO@?Bc#;MILBXD3L(Hs1OmMiZ#y*Mc>qysdSlU;w3@~O*yi#5|- z%@N%dnycvUDzDbjX#J~y@K#gcM&*ou_G0$1KLI!IUJntKBxXlBl8#SCy=1$Pe3pKC zRqOCb`t$jEcLTSznalr^ZxAPxH66c=J1)|!D4R|c(tv;$9mFsGKjJ1EA1^)K&Rb6x znzO>`hSlL&F}c6Qlgoel<`tzVQg z1BmNj%i`GOMn!#D{d}DFpk82;LZ9{EjWh@k72c@e=jbA(rXjvJsDxANVdRlgm{ zVVk^COic!|)R^SDbEwqENy%$a$zUSTXu+By9p+PsU)ERWAC1qR*VJ>?Q%NdGA}Ei! z1!_a9o|Y66qp^3P{F>*&%eU6o#Pb|g_!8IZM=J6@c{JtLJSzn|0iw`pwu9_>HPxpp z4{w##r#LUZ%fHZeJ-qTma#pi)BbEsYy7mHj#7aZ#nQbrnkd;kRjul%HFMa)QZPq5Uz@%on=8-->Lj zR4qhQCxZ1$kUnU$x#w^7RjgxIAHq3Us|fSjr-!Qf1O((;`1;CS?}Lvy2EAw)#mw+= z7i}j)#n;i=e>8rf&Qo2-BMMwuPxZK9Yl;7!d%;R*;ninZaViwtY_#_bxv0Zk=C^^r zzCNS2ebPl~E)PG+#HXrTqxxyZ?CZ%D<)bySazDa&oa)$H#U^(JjX11G1dR;4%|*7p zt|0E@Oa9~-e$xAX#80oYfM}T40ZT)d3_B=78@+y5F}Ynk^C8ziVT)2m$sssoRf>Q z6M~D+*)FuyKU?Wc=vycjFS+2k^ixb}*G}#RKkKyO>Elk<*m@sowS7h%g6!-oFT$ViqVmvT-{!ZXu^c%1`u`k{X& z%aZO{lY+g|D}6RcI+)fTLCl#Q4yN8cC#IDZ#b{L_g*VpT#@y`)qU(0g^PeXZXLskj zZ{iQ0VZSJLTJ7uB3hv_3>cp*P%NIs7EYi8UoR&A}&BE-fA3=H}>LKEMzKJ z;@J;2ltlintNY{%&05gR=9euVAJD4~O{(%|d;Y~oZtPz9RjDyTB&0$&)kOQ4IN4Y% zoZ0KXmwOCB)rPvkxVDCTr