diff options
author | Karl Berry <karl@freefriends.org> | 2017-07-30 22:20:15 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-07-30 22:20:15 +0000 |
commit | ab0137d0a3f9f8fc686c8804fb910eb99ca9cd75 (patch) | |
tree | 27c7e9685f74b7bcf70e1ce738faa684a4826067 /Master/texmf-dist | |
parent | ee2ba58b71acb3f3395797014cae26262b39771e (diff) |
luatexja (30jul17)
git-svn-id: svn://tug.org/texlive/trunk@44924 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
25 files changed, 24774 insertions, 1617 deletions
diff --git a/Master/texmf-dist/doc/luatex/luatexja/README b/Master/texmf-dist/doc/luatex/luatexja/README index e2b4bda9551..451e146af4c 100644 --- a/Master/texmf-dist/doc/luatex/luatexja/README +++ b/Master/texmf-dist/doc/luatex/luatexja/README @@ -1,4 +1,4 @@ -The LuaTeX-ja Package 20170505.0 +The LuaTeX-ja Package 20170730.0 -------------------------------- Copyright (c) 2011--2017 The LuaTeX-ja project License: modified BSD (see COPYING) @@ -40,9 +40,9 @@ Installation 2. If you must/want to install manually: a. Download the source archive from CTAN, - or tagged as 20170505.0 in the Git repository by + or tagged as 20170730.0 in the Git repository by <http://git.osdn.jp/view?p=luatex-ja/luatexja.git - ;a=snapshot;h=refs/tags/20170505.0;sf=tgz> + ;a=snapshot;h=refs/tags/20170730.0;sf=tgz> b. Extract the archive and process following three files by LuaLaTeX to generate classes for Japanese typesetting: @@ -87,4 +87,4 @@ Notes * src/*.{ins.dtx} and src/ltj-kinsoku_make.tex are not needed in regular use. -Last commit date: Fri May 5 21:25:22 2017 +0900 +Last commit date: Sun Jul 30 13:50:43 2017 +0900 diff --git a/Master/texmf-dist/doc/luatex/luatexja/luatexja-en.pdf b/Master/texmf-dist/doc/luatex/luatexja/luatexja-en.pdf Binary files differindex 33b468387c4..822a5d1c49b 100644 --- a/Master/texmf-dist/doc/luatex/luatexja/luatexja-en.pdf +++ b/Master/texmf-dist/doc/luatex/luatexja/luatexja-en.pdf diff --git a/Master/texmf-dist/doc/luatex/luatexja/luatexja-ja.pdf b/Master/texmf-dist/doc/luatex/luatexja/luatexja-ja.pdf Binary files differindex a34ccd6c1c2..07e9e4769d6 100644 --- a/Master/texmf-dist/doc/luatex/luatexja/luatexja-ja.pdf +++ b/Master/texmf-dist/doc/luatex/luatexja/luatexja-ja.pdf diff --git a/Master/texmf-dist/doc/luatex/luatexja/luatexja.dtx b/Master/texmf-dist/doc/luatex/luatexja/luatexja.dtx index fc5ac40a02a..313d56f2ca6 100644 --- a/Master/texmf-dist/doc/luatex/luatexja/luatexja.dtx +++ b/Master/texmf-dist/doc/luatex/luatexja/luatexja.dtx @@ -21,7 +21,7 @@ \usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float} \usepackage{booktabs,multicol,luatexja-ruby} \usepackage[all]{xy} -\usepackage{lltjext,alltt} +\usepackage{lltjext,alltt,comment} %%%%%%%% Lua GC \patchcmd\@outputpage{\stepcounter{page}}{% @@ -39,7 +39,6 @@ %%%%%%%% fonts \usepackage{luatexja-otf} -\directlua{luatexja.otf.enable_ivs()} \usepackage[no-math]{fontspec} \setmainfont[Ligatures=TeX]{Linux Libertine O} \setmonofont[Scale=MatchLowercase, ItalicFont=lmmono10-italic.otf, @@ -460,7 +459,7 @@ on the content of the register \emph{only}. This is major difference with \pTeX. %</en> %<*ja> \paragraph{組方向} -20150420.0版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている. +バージョン20150420.0からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている. なお,\LuaTeX 本体も$\Omega$流の組方向をサポートしているが,それとは全くの別物であること に注意してほしい. 特に,異なった組方向のボックスを扱う場合には @@ -503,7 +502,7 @@ without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package. 詳しい説明は\ref{ssec-setrange}節を参照してほしい. また,\P,~\S といったISO~8859-1の上位領域とJIS~X~0208の共通部分の文字は - 20150906.0版から標準で欧文扱いとなった.\LaTeXe\ 2017/01/01以降では + バージョン20150906.0から標準で欧文扱いとなった.\LaTeXe\ 2017/01/01以降では 標準でTUエンコーディングのLatin Modernフォントが使われるので, 特に何もせずソース中にそのまま記述してもこれらの文字が出力される \footnote{\LaTeXe\ 2017/01/01より前では,ソース中に直接記述しても @@ -573,10 +572,10 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}. %</ja> %<*en> \item In this document, natural numbers start from~zero. - $\omega$ denotes the set of all natural numbers. + $\omega$ denotes the set of all natural numbers which can be used in \TeX. %</en> %<*ja> -\item 本ドキュメントでは,自然数は0から始まる.自然数全体の集合は$\omega$と表記する. +\item 本ドキュメントでは,自然数は0から始まる.(\TeX で扱える)自然数全体の集合は$\omega$と表記する. %</ja> \end{itemize} @@ -645,7 +644,7 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}. \end{itemize} %<en>In summary, \LuaTeX-ja version 20160404.0 (or~later) no longer supports \TeX~Live~2015. %<*ja> -要約すると,20160404.0版以降の\LuaTeX-jaは\TeX~Live~2015以前では動作しない\footnote{% +要約すると,バージョン20160404.0以降の\LuaTeX-jaは\TeX~Live~2015以前では動作しない\footnote{% もっとも,自分で\LuaTeX のバイナリをSubversionリポジトリからビルドしていれば話は別である. }. %</ja> @@ -985,7 +984,7 @@ plfonts.dtx} and \texttt{pldefs.ltx}): \begin{itemize} %<*en> -\item Font encodings for Japanese fonts is \texttt{JY3}~(for horizontal direction) and +\item Font encodings for Japanese fonts are \texttt{JY3}~(for horizontal direction) and \texttt{JT3}~(for vertical direction). %</en> %<*ja> @@ -994,20 +993,20 @@ plfonts.dtx} and \texttt{pldefs.ltx}): %</ja> %<*en> -\item Traditionally, Japanese documents use two typeface categories: \emph{mincho}~(明朝体) and +\item Traditionally, Japanese documents use only two families: \emph{mincho}~(明朝体) and \emph{gothic}~(\textgt{ゴシック体}). \emph{mincho} is used in the main text, while \emph{gothic} is used in the headings or for emphasis. \begin{center}\small \begin{tabular}{lllc} \toprule -\textbf{classification}&&&\textbf{family name}\\\midrule +\textbf{classification}&&&\textbf{commands}\\\midrule \emph{mincho} (明朝体)&\verb+\textmc{...}+&\verb+{\mcfamily ...}+&\cs{mcdefault}\\ \emph{gothic} (\textgt{ゴシック体})&\verb+\textgt{...}+&\verb+{\gtfamily ...}+&\cs{gtdefault}\\ \bottomrule \end{tabular} \end{center} \item -By default, the following fonts are used for \emph{mincho} and \emph{gothic}: +By default, the following fonts are used for these two families. \begin{center}\small \begin{tabular}{ccccc} \toprule @@ -1017,7 +1016,7 @@ By default, the following fonts are used for \emph{mincho} and \emph{gothic}: \bottomrule \end{tabular} \end{center} -Note that the bold series in both family are same as the medium series of \emph{gothic} +Note that the bold series in both family are same as the medium series of gothic family. There is no italic nor slanted shape for these \texttt{mc}~and~\texttt{gt}. %</en> @@ -1032,7 +1031,7 @@ Note that the bold series in both family are same as the medium series of \emph{ \bottomrule \end{tabular} \end{center} -\item 標準では,次のフォントファミリが用いられる: +\item 標準では,次のフォントが用いられる: \begin{center}\small \begin{tabular}{ccccc} \toprule @@ -1042,8 +1041,8 @@ Note that the bold series in both family are same as the medium series of \emph{ \bottomrule \end{tabular} \end{center} -どちらのファミリにおいても,そのboldシリーズで使われるフォントは -ゴシック体のmediumシリーズで使われるフォントと同じであることに注意. +どちらのファミリにおいても,太字(\cs{bfseries})のフォントは +ゴシック体中字(\cs{gtfamily}\cs{mdseries})で使われるフォントと同じであることに注意. また,どちらのファミリでもイタリック体・スラント体は定義されない. %</ja> @@ -1058,7 +1057,7 @@ Note that the bold series in both family are same as the medium series of \emph{ These classes and packages also redefine \cs{jttdefault} to \cs{gtdefault} (\emph{gothic}~family). } specifies the Japanese font family in \cs{verb}~or~\texttt{verbatim} environment. - The default value of \cs{jttdefault} is \cs{mcdefault}, so \emph{mincho} family is used. + The default value of \cs{jttdefault} is \cs{mcdefault}, so the mincho family is used. %</en> %<*ja> \item \cs{verb} や \texttt{verbatim} 環境中の和文文字に使われる和文フォントファミリは @@ -1075,8 +1074,8 @@ Note that the bold series in both family are same as the medium series of \emph{ %<*en> \item If you use the \Pkg{beamer} class with the default font theme (which uses sans serif fonts) and with \LuaTeX-ja, you might want to change default Japanese fonts to - \emph{gothic} family. The following line changes the default Japanese font family - to \emph{gothic}: + the gothic family. The following line changes the default Japanese font family + to it: %</en> %<*ja> \item \Pkg{beamer}クラスを既定のフォント設定で使う場合,既定欧文フォントがサンセリフなの @@ -1433,22 +1432,19 @@ alphabetic fonts %</en> %<*ja> \begin{center}\small -\begin{tabular}{cccc} +\begin{tabular}{ccccc} \toprule 和文 -&\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}\\ -欧文 -&\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}\\ -\midrule -和文 -&\cs{newjfontfamily}&\cs{newjfontface}&\cs{defaultjfontfeatures}\\ +&\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}&\cs{setmonojfont}$^*$\\ 欧文 -&\cs{newfontfamily}&\cs{newfontface}&\cs{defaultfontfeatures}\\ +&\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}&\cs{setmonofont}\\ \midrule 和文 -&\cs{addjfontfeatures}\\ +&\cs{newjfontfamily}&\cs{newjfontface} +&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\ 欧文 -&\cs{addfontfeatures}\\ +&\cs{newfontfamily}&\cs{newfontface} +&\cs{defaultfontfeatures}&\cs{addfontfeatures}\\ \bottomrule \end{tabular} \end{center} @@ -1535,543 +1531,87 @@ JIS~X~0208:1990→辻 %<en>\subsection{Presets of Japanese fonts} %<ja>\subsection{和文フォントのプリセット設定} -\label{ssec-preset} +\label{ssec:preset-abst} %<*en> -One can load the \Pkg{luatexja-preset} -package to use several ``presets'' of Japanese fonts. -This package provides functions in a part of -\Pkg{japanese-otf} package and a part of \Pkg{PXchfon} package by Takayuki Yato. - -One can specified other options other than listed in this subsection. -These are simply passed to the \Pkg{luatexja-fontspec}\footnote{if \texttt{nfssonly} option is -\emph{not} specified; in this case these options are simply ignored.}. -For example, the line~5 in below example is eqivalent to lines 1--3. +With \Pkg{luatexja-preset} package, +one use one of ``preset'' to simplify Japanese font setting. +For details of package options, and those of each presets, please see Subsecion~\ref{ssec:preset}. +The following presets are defined: %</en> %<*ja> よく使われている和文フォント設定を一行で指定できるようにしたのが -\Pkg{luatexja-preset}パッケージである.このパッケージは, -\Pkg{otf}パッケージの一部機能と八登崇之氏による\Pkg{PXchfon}パッケージの一部機能とを -合わせたような格好をしている. - -オプションとして,本節にないものも指定することができるが,それらは -\Pkg{luatexja-fontspec}パッケージに渡される\footnote{\texttt{nfssonly} オプションが -指定されていた場合は,\Pkg{luatexja-fontspec}パッケージは読み込まれないので単純に無視され -る.}.例えば,下の1--3行目は5行目のように一行にまとめることができる. +\Pkg{luatexja-preset}パッケージである.オプションや各プリセットの詳細については +\ref{ssec:preset}節を参照して欲しい. +現時点では以下のプリセットが定義されている: %</ja> +\begin{quote} + \ttfamily + \hyphenchar\font=-1 \exhyphenchar=-1 + hiragino-pro, hiragino-pron, ipa, ipa-hg, ipaex, ipaex-hg, + kozuka-pr6, kozuka-pr6n, kozuka-pro, moga-mobo, moga-mobo-ex, + morisawa-pr6n, morisawa-pro, ms, ms-hg, noembed, noto-otc, noto-otf, + sourcehan, sourcehan-jp, ume, yu-osx, yu-win, yu-win10 +\end{quote} + +%<ja> 例えば,本ドキュメントでは\Pkg{luatexja-preset}パッケージを +%<en> For example, this document loads \Pkg{luatexja-preset} package by \begin{lstlisting} -\usepackage[no-math]{fontspec} -\usepackage[match]{luatexja-fontspec} \usepackage[kozuka-pr6n]{luatexja-preset} -%%-------- -\usepackage[no-math,match,kozuka-pr6n]{luatexja-preset} \end{lstlisting} +%<ja>として読み込み,小塚書体(Pr6N)を使うことを指定している. +%<en> which means that Kozuka~Pr6N fonts will be used in this document. -%<en>\paragraph{General options} -%<ja>\paragraph{一般的なオプション} -\begin{cslist}[before*=] -\item[fontspec% -%<en>\textrm{~(enabled by default)} -%<ja>\emph{\gtfamily (既定)} -] -%<*en> -With this option, Japanese fonts are selected using functionality of -the \Pkg{luatexja-fontspec} package. This means that the \Pkg{fontspec} package is - automatically loaded by this package. - -If you need to pass some options to \Pkg{fontspec}, you can load \Pkg{fontspec} manually -before \Pkg{luatexja-preset}: -%</en> %<*ja> -\Pkg{luatexja-fontspec}パッケージの機能を用いて和文フォントを選択する. -これは,\Pkg{fontspec}パッケージが自動で読み込まれることを意味する. - -もし\Pkg{fontspec}パッケージに何らかのオプションを渡す必要がある -\footnote{例えば,数式フォントまで置換されてしまい,\cs{mathit}によってギリシャ文字の -斜体大文字が出なくなる,など.}場合は, -次のように\Pkg{luatexja-preset}の前に\Pkg{fontspec}を手動で読みこめば良い: -%</ja> +上記のプリセット以外の和文フォント設定を使いたい場合,本来は +\Pkg{luatexja-fontspec}パッケージの提供する +\cs{setmainjfont}, \cs{setsansjfont}を使って自分で指定するべきである. +\texttt{custom}オプションを使うことで,\Pkg{luatexja-preset}パッケージの内部に直接アクセスして \begin{lstlisting} -\usepackage[no-math]{fontspec} -\usepackage[...]{luatexja-preset} +\usepackage[kozuka-pr6n, % kozuka-pr6n プリセットを基礎にして, + custom={ + mc=SourceHanSerif-Regular, % 明朝体(全ウェイト) + mc-l=SourceHanSerif-Bold, % 明朝体細字 + mc-m=KozMinPr6N-Regular, % 明朝体中字 + % mc-bx=KozMinPr6N-Bold, % 明朝体太字 + % gt=HirakakuProN-W3, % ゴシック体(全ウェイト) + % gt-m=SourceHanSans-Regular, % ゴシック体中字(deluxe オプション指定時) + % gt-bx=HiraKakuProN-W6,ular, % ゴシック体太字 + % gt-eb=HiraKakuProN-W6,ular, % ゴシック体極太 + mg-m=HG Maru Gothic PRO, % 丸ゴシック体 + }, + deluxe,expert,jis2004,match,nfssonly +]{luatexja-preset} \end{lstlisting} - -\item[nfssonly] +のようにすることもできるが,\texttt{custom}オプションの書式は予告なく変更されることがある +上,\texttt{90jis}や\texttt{JIS2004}オプションとの相性があまり良くないので推奨はしない. +%</ja> %<*en> -With this option, selecting Japanese fonts won't be performed using the functionality of - the \Pkg{fontspec} package, but only standard NFSS2 (hence without - \cs{addjfontfeatures} etc.). -This option is ignored when \Pkg{luatexja-fontspec} package is loaded. - -When this option is specified, \Pkg{fontspec}~and~\Pkg{luatexja-fontspec} are -\emph{not} loaded by default. Nevertheless, -the package\Pkg{fontspec} can coexist with the option, as the following: -\begin{lstlisting} -\usepackage{fontspec} -\usepackage[hiragino-pron,nfssonly]{luatexja-preset} -\end{lstlisting} -In this case, one can use \cs{setmainfont} etc.\ to select \emph{alphabetic} fonts. -%</en> -%<*ja> -\LaTeX 標準のフォント選択機構(NFSS2)を用いて -\texttt{ltjpm}(明朝),\texttt{ltjpg}(ゴシック),それに後に述べる \texttt{deluxe} オプ - ションが指定された場合には \texttt{ltjpmg}(丸ゴシック)という -3つの和文フォントファミリを定義し,これらを用いる. +To use a Japanese font setting which does not match with any presets, +the legitimate method is to use \cs{setmainjfont}~and~\cs{setsansjfont} +which are provided by the \Pkg{luatexja-fontspec} package. -本オプション指定時には\Pkg{fontspec}・\Pkg{luatexja-fontspec}パッケージは -自動では読み込まれない,しかし, +One can use the \texttt{custom} option, such as \begin{lstlisting} -\usepackage{fontspec} -\usepackage[hiragino-pron,nfssonly]{luatexja-preset} +\usepackage[kozuka-pr6n, % based on the kozuka-pr6n preset (Kozuka Pr6N), + custom={ + mc=SourceHanSerif-Regular, % mincho family (all weights) + mc-l=SourceHanSerif-Bold, % mincho light + mc-m=KozMinPr6N-Regular, % mincho medium + % mc-bx=KozMinPr6N-Bold, % mincho bold + % gt=HirakakuProN-W3, % gothic family (all weights) + % gt-m=SourceHanSans-Regular, % gothic medium (with deluxe option) + % gt-bx=HiraKakuProN-W6,ular, % gothic bold + % gt-eb=HiraKakuProN-W6,ular, % gothic extra bold + mg-m=HGMaruGothicMPRO, % rounded gothic + }, + deluxe,expert,jis2004,match,nfssonly +]{luatexja-preset} \end{lstlisting} -のようにすれば,このオプションを指定すれば -欧文フォントを\Pkg{fontspec}パッケージの機能を使って指定することができる. -一方, -パッケージ読み込み時に既に\Pkg{luatexja-fontspec}パッケージが読み込まれて - いる場合は \texttt{nfssonly} オプションは無視される. -%</ja> - -\item[match] -%<*en> -If this option is specified, usual family-changing commands such as -\cs{rmfamily},~\cs{textrm}, \cs{sffamily},~\dots\ also change Japanese font family. -This option is passed to \Pkg{luatexja-fontspec}, if \texttt{fontspec} -option is specifed. -%</en> - -%<*ja> -このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\ -\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が -欧文フォントだけでなく和文フォントも変更するようになる. -\ \texttt{fontspec}\ -オプションが有効になっている場合は,このオプションは \Pkg{luatexja-fontspec} パッケージへと渡される. -%</ja> - - -\item[nodeluxe% -%<en>\textrm{~(enabled by default)} -%<ja>\emph{\gtfamily (既定)} -] -%<*en> -The nagation of \texttt{deluxe} option. -Use one-weighted \textit{mincho} and \textit{gothic} font families. -This means that \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+ and -\verb+\gtfamily\mdseries+ use the same font. -%</en> -%<*ja> -\texttt{deluxe}オプションの否定. -\LaTeXe 環境下の標準設定のように,明朝体・ゴシック体を各1ウェイトで使用する. -より具体的に言うと,この設定の下では -\ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+, -\verb+\gtfamily\mdseries+はみな同じフォントとなる. -%</ja> -\item[deluxe] -%<*en> -Use \textit{mincho} with two weights (medium~and~bold), -\textit{gothic} with three weights (medium, bold~and~heavy), and \textit{rounded gothic}% -\footnote{Provided by \cs{mgfamily} and \cs{textmg}, -because \textit{rounded gothic} is called \textit{maru gothic} (丸ゴシック) in Japanese.}. -The heavy weight of \textit{gothic} can be used by ``changing the family'' \cs{gtebfamily}, -or \verb+\textgteb{...}+. -This is because the \Pkg{fontspec} package can handle only medium (\cs{mdseries}) and -bold (\cs{bfseries}). -%</en> -%<*ja> -明朝体2ウェイト・ゴシック体3ウェイトと, -丸ゴシック体 (\cs{mgfamily}, \verb+\textmg{...}+) を使用可能とする. -ゴシック体は中字・太字・極太の3ウェイトがあるが, -極太ゴシック体を使う場合, -\begin{itemize} - \item \cs{gtebfamily}, \verb+\textgteb{...}+ - \item \cs{ebseries} (周囲がゴシック体のとき,\texttt{nfssonly} オプション指定時のみ) -\end{itemize} -のいずれかを用いる.標準で \cs{ebseries} が準備されていないのは,バージョンが古い -\Pkg{fontspec}では中字(\cs{mdseries})と太字(\cs{bfseries})しか扱えなかった名残である. -%</ja> -\item[expert] -%<*en> -Use horizontal/vertical kana alternates, and define a command \cs{rubyfamily} to use kana -characters designed for ruby. -%</en> -%<*ja> -横組・縦組専用仮名を用いる.また,\cs{rubyfamily} でルビ用仮名が使用可能となる\footnote{% - \cs{rubyfamily}とはいいつつ,実際にはフォントファミリを切り替えるのではない(通常では - font featureの追加,\texttt{nfssonly} 指定時にはシェイプを \texttt{rb} に切り替え). -}. -%</ja> -\item[bold] -%<*en> -Substitute bold series of \textit{gothic} for bold series of \textit{mincho}. -If \texttt{nodeluxe} option is enabled, medium series of \textit{gothic} is also changed, -since we use same font for both series of \textit{gothic}. -%</en> -%<*ja> -「明朝の太字」をゴシック体の太字によって代替する. -もし\texttt{nodeluxe}オプションが指定されている場合は,ゴシック体は1ウェイトしか使用されな - いため, -「ゴシック体の中字」も同時に変更されることになる. -%</ja> -\item[90jis] -%<en>Use 90JIS glyph variants if possible. -%<ja>出来る限り90JISの字形を使う. -\item[jis2004] -%<en>Use JIS2004 glyph variants if possible. -%<ja>出来る限りJIS2004の字形を使う. -\item[jfm\_yoko=<jfm>] -%<*en> -Use the JFM \texttt{jfm-<jfm>.lua} for horizontal direction, instead of \texttt{jfm-ujis.lua}~(default JFM). -%</en> -%<*ja> -横組用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時は -\LuaTeX\nobreakdash -ja標準の\texttt{jfm-ujis.lua}が用いられる. -%</ja> -\item[jfm\_tate=<jfm>] -%<*en> -Use the JFM \texttt{jfm-<jfm>.lua} for vertical direction, instead of \texttt{jfm-ujisv.lua}~(default JFM). -%</en> -%<*ja> -縦用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時は -\LuaTeX-ja標準の\texttt{jfm-ujisv.lua}が用いられる. -%</ja> - -\item[jis] -%<en>Same as \texttt{jfm\_yoko=jis}. -%<ja>\texttt{jfm\_yoko=jis}と同じ.ここで用いるJFM\texttt{jfm-jis.lua}はJISフォントメトリックを元にしたものである. - -\end{cslist} -%<*en> -Note that \texttt{90jis} and \texttt{jis2004} only affect with \textit{mincho}, -\textit{gothic} (and possibly \textit{rounded gothic}) defined by this package. -We didn't taken account of when both \texttt{90jis} and \texttt{jis2004} are specified. -%</en> -%<*ja> -\texttt{90jis}と\texttt{jis2004}については本パッケージで定義された -明朝体・ゴシック体(・丸ゴシック体)にのみ有効である. -両オプションが同時に指定された場合の動作については全く考慮していない. -%</ja> - -%<en>\paragraph{Presets for multi weight} -%<ja>\paragraph{多ウェイト用プリセットの一覧} -%<*en> -Besides \texttt{morisawa-pro}~and~\texttt{morisawa-pr6n} presets, -fonts are specified by font name, not by file name. -In following tables, starred fonts (e.g.~KozGo\dots-Regular) are used for medium series of \textit{gothic}, -\emph{if and only if \texttt{deluxe} option is specified}. -%</en> -%<*ja> -\texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は -(ファイル名でなく)フォント名で行われる. -以下の表において,*\,つきのフォント(e,g,~KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション指定時に} -ゴシック体中字として用いられるものを示している. -%</ja> -\begin{cslist}[style=standard] - \item[kozuka-pro] Kozuka Pro (Adobe-Japan1-4) fonts. -%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] - \item[kozuka-pr6] Kozuka Pr6 (Adobe-Japan1-6) fonts. -%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] - \item[kozuka-pr6n] Kozuka Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts. - -%<*en> -Kozuka Pro/Pr6N fonts are bundled with Adobe's software, such as Adobe~InDesign. -There is not rounded gothic family in Kozuka fonts. +However, we do not recommend this \cs{custom} option; +the format might change, and this \cs{custom} option is not well-compatible with +\texttt{90jis}~nor~\cs{jis2004} options. %</en> -%<*ja> -小塚Pro書体・Pr6N書体はAdobe InDesign等のAdobe製品にバンドルされている. -「小塚丸ゴシック」は存在しないので,便宜的に小塚ゴシックHによって代用している. -%</ja> -\begin{center}\small -\begin{tabular}{cllll} -\toprule -\bfseries family&\bfseries series&\ttfamily kozuka-pro&\ttfamily kozuka-pr6&\ttfamily kozuka-pr6n\\ -\midrule - &medium&KozMinPro-Regular&KozMinProVI-Regular&KozMinPr6N-Regular\\ -%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}% -%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}% - &bold&KozMinPro-Bold&KozMinProVI-Bold&KozMinPr6N-Bold\\ -\midrule - &&KozGoPro-Regular*&KozGoProVI-Regular*&KozGoPr6N-Regular*\\ - &\smash{\raisebox{1.5ex}{medium}} - &KozGoPro-Medium&KozGoProVI-Medium&KozGoPr6N-Medium\\ -\cmidrule(l){2-5} -%<en>\smash{\raisebox{2ex}{\textit{gothic}}}% -%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}% - &bold&KozGoPro-Bold&KozGoProVI-Bold&KozGoPr6N-Bold\\ - &heavy&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\ -\midrule -%<en>\textit{rounded gothic} -%<ja>\gt 丸ゴシック -&&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\ -\bottomrule -\end{tabular} -\end{center} - - \item[hiragino-pro] Hiragino Pro (Adobe-Japan1-5) fonts. -%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] - \item[hiragino-pron] Hiragino ProN (Adobe-Japan1-5, JIS04-savvy) fonts. - -%<*en> -Hiragino fonts are bundled with Mac OS~X 10.5 or later. -Some editions of a Japanese word-processor ``一太郎2012'' includes Hiragino ProN fonts. -Note that the heavy weight of \textit{gothic} family only supports -Adobe-Japan1-3 character collection (Std/StdN). -%</en> -%<*ja> -ヒラギノフォントは,Mac OS~X以外にも,一太郎2012の上位エディションにもバンドルされている. -極太ゴシックとして用いるヒラギノ角ゴW8は,Adobe-Japan1-3の範囲しかカバーしていない -Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. -%</ja> -\begin{center}\small -\begin{tabular}{clll} -\toprule -\bf family&\bf series&\tt hiragino-pro&\tt hiragino-pron\\ -\midrule - &medium&Hiragino~Mincho~Pro~W3&Hiragino~Mincho~ProN~W3\\ -%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}% -%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}% - &bold&Hiragino~Mincho~Pro~W6&Hiragino~Mincho~ProN~W6\\ -\midrule - &&Hiragino~Kaku~Gothic~Pro~W3*&Hiragino~Kaku~Gothic~ProN~W3*\\ - &\smash{\raisebox{1.5ex}{medium}} - &Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\ -\cmidrule(l){2-4} -%<en>\smash{\raisebox{2ex}{\textit{gothic}}}% -%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}% - &bold&Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\ - &heavy&Hiragino~Kaku~Gothic~Std~W8&Hiragino~Kaku~Gothic~StdN~W8\\ -\midrule -%<en>\textit{rounded gothic} -%<ja>\gt 丸ゴシック -&&Hiragino~Maru~Gothic~Pro~W4&Hiragino~Maru~Gothic~ProN~W4\\ -\bottomrule -\end{tabular} -\end{center} - - \item[morisawa-pro] Morisawa Pro (Adobe-Japan1-4) fonts. -%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] - \item[morisawa-pr6n] Morisawa Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts. -\begin{center}\small -\begin{tabular}{cl>{\tt}l>{\tt}l} -\toprule -\bf family&\bf series&morisawa-pro&morisawa-pr6n\\ -\midrule - &medium&A-OTF-RyuminPro-Light.otf&A-OTF-RyuminPr6N-Light.otf\\ -%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}% -%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}% - &bold&A-OTF-FutoMinA101Pro-Bold.otf&A-OTF-FutoMinA101Pr6N-Bold.otf\\ -\midrule - &medium - &A-OTF-GothicBBBPro-Medium.otf&A-OTF-GothicBBBPr6N-Medium.otf\\ -%<en>\textit{gothic}% -%<ja>\gt ゴシック - &bold&A-OTF-FutoGoB101Pro-Bold.otf&A-OTF-FutoGoB101Pr6N-Bold.otf\\ - &heavy&A-OTF-MidashiGoPro-MB31.otf&A-OTF-MidashiGoPr6N-MB31.otf\\ -\midrule -%<en>\textit{rounded gothic} -%<ja>\gt 丸ゴシック -&&A-OTF-Jun101Pro-Light.otf&A-OTF-ShinMGoPr6N-Light.otf\\ -\bottomrule -\end{tabular} -\end{center} - -\newpage - \item[yu-win] Yu fonts bundled with Windows~8.1. -%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] - \item[yu-win10] Yu fonts bundled with Windows~10. -%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] - \item[yu-osx] Yu fonts bundled with OSX~Mavericks. -\begin{center}\small -\begin{tabular}{cllll} -\toprule -\bf family&\bf series&\texttt{yu-win}&\texttt{yu-win10}&\texttt{yu-osx}\\ -\midrule - &medium&YuMincho-Regular&YuMincho-Regular&YuMincho~Medium\\ -%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}% -%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}% - &bold&YuMincho-Demibold&YuMincho-Demibold&YuMincho~Demibold\\ -\midrule - &&YuGothic-Regular*&YuGothic-Regular*&YuGothic~Medium*\\ - &\smash{\raisebox{1.5ex}{medium}}% - &YuGothic-Regular&YuGothic-Medium&YuGothic~Medium\\ -\cmidrule(l){2-5} -%<en>\textit{gothic}% -%<ja>\gt ゴシック - &bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ - &heavy&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ -\midrule -%<en>\textit{rounded gothic} -%<ja>\gt 丸ゴシック -&&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ -\bottomrule -\end{tabular} -\end{center} - -\item[moga-mobo] MogaMincho, MogaGothic, and MoboGothic. -\item[moga-mobo-ex] MogaExMincho, MogaExGothic, and MoboExGothic. -%<en>These fonts can be downloaded from\\\hfill \url{http://yozvox.web.fc2.com/}. -%<ja>これらのフォントは \url{http://yozvox.web.fc2.com/} からダウンロードできる. -\begin{center}\small -\begin{tabular}{clll} -\toprule -\bf family&\bf series&\bf default, \texttt{90jis}~option&\bf \texttt{jis2004} option\\ -\midrule - &medium&Moga90Mincho&MogaMincho\\ -%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}% -%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}% - &bold&Moga90Mincho Bold&MogaMincho Bold\\ -\midrule - &medium&Moga90Gothic&MogaGothic\\ -%<en>\textit{gothic}% -%<ja>\gt ゴシック - &bold&Moga90Gothic Bold&MogaGothic Bold\\ - &heavy&Moga90Gothic Bold&MogaGothic Bold\\ -\midrule -%<en>\textit{rounded gothic} -%<ja>\gt 丸ゴシック -&&Mobo90Gothic&MoboGothic\\ -\bottomrule -\end{tabular} -\end{center} -%<en>When \texttt{moga-mobo-ex} is specified, the font ``MogaEx90Mincho'' etc.\ are used. -%<ja>\texttt{moga-mobo-ex}オプション指定時にはMogaEx90MinchoなどのExが名前についたフォントが使われる. - -\item[ume] Ume Mincho and Ume Gothic. -%<en>These fonts can be downloaded from\\\hfill \url{https://ja.osdn.net/projects/ume-font/wiki/FrontPage}. -%<ja>これらのフォントは \url{https://ja.osdn.net/projects/ume-font/wiki/FrontPage} からダウンロードできる. -\begin{center}\small -\begin{tabular}{cll} -\toprule -\bf family&\bf series&\bf default\\ -\midrule - &medium&Ume Mincho\\ -%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}% -%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}% - &bold&Ume Mincho\\ -\midrule - &&Ume Gothic*\\ - &\smash{\raisebox{1.5ex}{medium}}&Ume Gothic O5\\ -\cmidrule(l){2-3} -%<en>\textit{gothic}% -%<ja>\gt ゴシック - &bold&Ume Gothic O5\\ - &heavy&Ume Gothic O5\\ -\midrule -%<en>\textit{rounded gothic} -%<ja>\gt 丸ゴシック -&&Ume Gothic O5\\ -\bottomrule -\end{tabular} -\end{center} - -\end{cslist} -%<en>\paragraph{Presets for single weight} -%<ja>\paragraph{単ウェイト用プリセット一覧} -%<*en> -Next, we describe settings for using only single weight. -%</en> -%<*ja> -次に,単ウェイト用の設定を述べる.この4設定では -明朝体太字・丸ゴシック体はゴシック体と同じフォントが用いられる. -%</ja> -\par\nobreak\medskip -{\centering\small -\begin{tabular}{lllll} -\toprule -&\tt noembed&\tt ipa&\tt ipaex&\tt ms\\ -\midrule -%<*en> -\it mincho&Ryumin-Light (non-embedded) -&IPA Mincho&IPAex Mincho&MS Mincho\\ -\it gothic&GothicBBB-Medium (non-embedded) -&IPA Gothic&IPAex Gothic&MS Gothic\\ -%</en> -%<*ja> -\gtfamily 明朝体&Ryumin-Light(非埋込) -&IPA明朝&IPAex明朝&MS明朝\\ -\gtfamily ゴシック体&GothicBBB-Medium(非埋込) -&IPAゴシック&IPAexゴシック&MSゴシック\\ -%</ja> -\bottomrule -\end{tabular}\par\medskip} - -%<en>\paragraph{Using HG fonts} -%<ja>\paragraph{HGフォントの利用} -%<*en> -We can use HG~fonts bundled with Microsoft~Office for realizing multiple weights. -%</en> -%<*ja> -すぐ前に書いた単ウェイト用設定を,Microsoft Office等に付属するHGフォントを使って -多ウェイト化した設定もある. -%</ja> -\par\nobreak\medskip -{\centering\small -\begin{tabular}{llll} -\toprule -&\tt ipa-hg&\tt ipaex-hg&\tt ms-hg\\ -\midrule -%<*en> -\bf mincho medium -&IPA Mincho&IPAex Mincho&MS Mincho\\\midrule -\bf mincho bold& -\multicolumn{3}{c}{HG Mincho E}\\\midrule -\bf Gothic medium\\ -~~without \texttt{deluxe} -&IPA Gothic&IPAex Gothic&MS Gothic\\ -~~with {\tt jis2004} -&IPA Gothic&IPAex Gothic&MS Gothic\\ -\cmidrule(lr){1-4} -~~otherwise& -\multicolumn{3}{c}{HG Gothic M}\\\midrule -\bf gothic bold& -\multicolumn{3}{c}{HG Gothic E}\\\midrule -\bf gothic heavy& -\multicolumn{3}{c}{HG Soei Kaku Gothic UB}\\\midrule -\bf rounded gothic& -\multicolumn{3}{c}{HG Maru Gothic PRO}\\ -%</en> -%<*ja> -\gtfamily 明朝体中字 -&IPA明朝&IPAex明朝&MS明朝\\\midrule -\gtfamily 明朝体太字& -\multicolumn{3}{c}{HG明朝E}\\\midrule -\gtfamily ゴシック体中字\\ - 単ウェイト時 -&IPAゴシック&IPAexゴシック&MSゴシック\\ - {\tt jis2004}指定時 -&IPAゴシック&IPAexゴシック&MSゴシック\\ -\cmidrule(lr){1-4} - それ以外の時& -\multicolumn{3}{c}{HGゴシックM}\\\midrule -\gtfamily ゴシック体太字& -\multicolumn{3}{c}{HGゴシックE}\\\midrule -\gtfamily ゴシック体極太& -\multicolumn{3}{c}{HG創英角ゴシックUB}\\\midrule -\gtfamily 丸ゴシック体& -\multicolumn{3}{c}{HG丸ゴシック体PRO}\\ -%</ja> -\bottomrule -\end{tabular}\par\medskip} - -%<*en> -Note that HG~Mincho~E, HG~Gothic~E, HG Soei Kaku Gothic UB, and HG Maru Gothic PRO -are internally specified by: -\begin{description} -\item[default] by font name (\texttt{HGMinchoE}, etc.). -\item[{\tt 90jis}] by file name (\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}). -\item[{\tt jis2004}] by file name (\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}). -\end{description} -%</en> -%<*ja> -なお,HG明朝E・HGゴシックE・HG創英角ゴシックUB・HG丸ゴシック体PROの4つについては,内部で -\begin{description} -\item[標準] フォント名(\texttt{HGMinchoE} など) -\item[{\tt 90jis}指定時] ファイル名 (% -\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}) -\item[{\tt jis2004}指定時] ファイル名 (% -\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}) -\end{description} -として指定を行っているので注意すること. -%</ja> - %<*en> \subsection{\cs{CID}, \cs{UTF}, and macros in \Pkg{japanese-otf} package} @@ -2213,7 +1753,7 @@ and the character ``漢'' to the character range~100. %<*en> A character can belong to only one character range. For example, whole SIP belong to the range~4 in the default setting of \LuaTeX-ja, -and if you execute the above line, then SIP will belong to the range~100 and be +and if one executes the above line, then SIP will belong to the range~100 and be removed from the range~4. %</en> %<*ja> @@ -2489,7 +2029,7 @@ the same codepoint as \S\ (\text{U+00A7}). Hence, as previous versions of \LuaTeX-ja, if these characters are treated as \text{JAchar}s, then \cs{Frowny} produces ``\ltjjachar`§'' (in a Japanese font). -To avoid such situations, the default setting of \LuaTeX-ja is changed in this release +To avoid such situations, the default setting of \LuaTeX-ja is changed in version~20150906.0 so that all characters \texttt{U+0080}--\texttt{U+00FF} are treated as \textbf{ALchar}. If you want to output a character as \textbf{ALchar} and \textbf{JAchar} regardless the range @@ -2510,7 +2050,7 @@ setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the foll 即ち,以前のバージョンのように,「前節の文字範囲8内の文字は\textbf{JAchar}」という設定で あったとすると,上記の \cs{Frowny} は和文フォントで「\ltjjachar`§」を出力することになる. -このような事態を避けるために,本バージョンからは \texttt{U+0080}--\texttt{U+00FF} の範囲の +このような事態を避けるために,バージョン20150906.0からは \texttt{U+0080}--\texttt{U+00FF} の範囲の 文字は全て\textbf{ALchar}となるように初期設定を変更している. なお,文字範囲の設定に関わらず1つの文字を\textbf{ALchar}, \textbf{JAchar}で出力したい場合には, @@ -2804,7 +2344,7 @@ becuse a \emph{JAchar} is encapsulated by a horizontal box if needed. まだ違いが見られる. \end{itemize} -なお,20170401.0版以降の\LuaTeX-jaでは,\cs{vcenter} によるボックスには +なお,バージョン20170401.0以降の\LuaTeX-jaでは,\cs{vcenter} によるボックスには 全体が\Param{yalbaselineshift}, \Param{talbaselineshift} パラメータが反映されるようにしている. その方が結果が自然であることによる変更なのだが,結果的に\cs{vcenter} については\pTeX と同じ挙動となった. @@ -2860,6 +2400,7 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt ``ア'', not 20. %</en> %<*ja> +\newpage \subsection{禁則処理関連パラメータとOpenTypeのfont feature} 禁則処理や \Param{kanjiskip}, \Param{xkanjiskip} の挿入に関連したパラメータのうち \begin{quote} @@ -3859,7 +3400,7 @@ Specify the name of (horizontal) JFM. If specified JFM has not been loaded, \LuaTeX-ja search and load a file named \texttt{jfm-<name>.lua}. -The following JFMs are shipped with \LuaTeX-ja: +The following horizontal JFMs are shipped with \LuaTeX-ja: %</en> %<*ja> 用いる(横組用)JFMの名前を指定する.もし以前に指定されたJFMが読み込まれていなければ, @@ -3867,7 +3408,7 @@ The following JFMs are shipped with \LuaTeX-ja: %</ja> \begin{description} %<*en> -\item[\tt jfm-ujis.lua] A standard JFM in \LuaTeX-ja. This JFM is +\item[\tt jfm-ujis.lua] A standard horizontal JFM in \LuaTeX-ja. This JFM is based on \verb+upnmlminr-h.tfm+, a metric for UTF/OTF package that is used in \upTeX. When you use the \Pkg{luatexja-otf} package, you should use this JFM. %</en> @@ -3970,7 +3511,7 @@ JFMもサイズも同じなので,普通に「)【」と入力した時と \label{para-kern} %<*en> Some fonts have information for inter-glyph spacing. -This version of \LuaTeX-ja treats kerning spaces like an italic correction; +\LuaTeX-ja 20140324.0 or later treats kerning spaces like an italic correction; any glue and/or kern from the JFM and a kerning space can coexist. See \autoref{fig:kern-jfm} for detail. @@ -3981,7 +3522,7 @@ because of the compatibility with previous versions of \LuaTeX-ja. %<*ja> いくつかのフォントはグリフ間のスペースについての情報を持っている. このカーニング情報は以前の\LuaTeX-ja とはあまり相性が良くなかったが, -本バージョンではカーニングによる空白はイタリック補正と同様に扱うことになっている. +バージョン20140324.0以降ではカーニングによる空白はイタリック補正と同様に扱うことになっている. つまり,カーニング由来の空白とJFM由来のグルー・カーンは同時に入りうる. \autoref{fig:kern-jfm}を参照. \begin{itemize} @@ -4042,7 +3583,7 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ \texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の使用によって, 「JFM由来のグルーの他に,\Param{kanjiskip}の自然長/伸び量/縮み量の一部が 同じ場所に挿入される」という状況が起こりうる. -この機能を無効化し,20150922.0版以前と同じような組版を得るためには +この機能を無効化し,バージョン20150922.0以前と同じような組版を得るためには 他のOpenType機能と同じように\ \texttt{-ltjksp}\ 指定を行えば良い. \begin{LTXexample}[width=16\zw] \leavevmode @@ -4068,12 +3609,13 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ %<ja>\subsection{\cs{tfont} 命令} +\begin{comment} + {\catcode`\<=12\catcode`\>=12 \begin{table}[t] %<en>\caption{Differences between vertical JFMs shipped with \LuaTeX-ja} %<ja>\caption{\LuaTeX-ja に同梱されている縦組用 JFM の違い} %<en>\medskip \label{tab-difjfm-tate} -\catcode`\<=12\catcode`\>=12 \ltjsetparameter{jacharrange={+3}} \small \def\r#1#2{% @@ -4110,9 +3652,32 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ \end{minipage} \ltjsetparameter{jacharrange={-3}} \end{table} +} +\end{comment} %<*en> -... +\cs{tfont} loads a font as a Japanese font for vertical direction. +This command admits the same syntax used in \cs{font}~and~\cs{jfont}. +A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont}: +\begin{itemize} + \item Both \texttt{vert}~and~\texttt{vrt2} Opentype features are activated, + unless they are explicitly activated or deactivated (as the third line in the example below). +\begin{lstlisting} +\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv + % vert and vrt2 are automatically activated +\tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated +\end{lstlisting} + \item ... + \item One have to specify the name of vertical JFM in \texttt{jfm=<name>}. +\LuaTeX-ja ships following vertical JFMs: +\begin{description} +\item[\tt jfm-ujisv.lua] A standard vertical JFM in \LuaTeX-ja. This JFM is + based on \verb+upnmlminr-v.tfm+, a metric for UTF/OTF package that + is used in \upTeX. +\item[\tt jfm-tmin.lua] A counterpart for \verb+tmin10.tfm+, which is one + of the default Japanese font metric shipped with \pTeX. +\end{description} +\end{itemize} %</en> %<*ja> \cs{tfont} はフォントを縦組用の和文フォントとして読み込む命令であり, @@ -4130,7 +3695,7 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ \end{lstlisting} \item \ref{ssec-math}節で述べる,数式中の和文フォントには縦組用和文フォントは指定できない. \item \texttt{jfm=<name>}\ の部分には縦組用JFMを指定する. -以下の縦組用JFMが\LuaTeX-jaには同梱されており,違いを\autoref{tab-difjfm-tate}に示した. +以下の縦組用JFMが\LuaTeX-jaには同梱されている.%おり,違いを\autoref{tab-difjfm-tate}に示した. \begin{description} \item[\tt jfm-ujisv.lua] \LuaTeX-jaの標準縦組用JFMである.このJFMは\upTeX で 用いられるUTF/OTFパッケージ用の和文用TFMである \verb+upnmlminr-v.tfm+ を @@ -4271,15 +3836,15 @@ floating-point numbers in design-size unit. \begin{cslist}[style=standard] -\item[version=$1\mathrel{\textrm{or}}2$] +\item[version=<version>] %<en>(optional, default value is~1) %<ja>(任意,既定値は1) %<*en> -The version JFM. Currently 1~and~2 are supported +The version JFM. Currently 1,~2,~and,~3 are supported %</en> %<*ja> -JFMのバージョン.1または2がサポートされる. +JFMのバージョン.1,~2,~3がサポートされる. %</ja> \item[dir=<direction>] @@ -4710,8 +4275,8 @@ we specify <ratio> to $0.25/(0.5+0.25)=1/3$. \Pkg{luatexja-adjust}による優先順位付き 行長調整(\ref{ssec-adj}節)において,このグルーの優先度を指定する.許される値は以下の通り: \begin{description} - \item[バージョン1のとき] $-4$から$+3$の間の整数 - \item[バージョン2のとき] $-4$から$+3$の間の整数の2つ組\texttt{\{<stretch>, <shrink>\}}か, + \item[バージョン1] $-4$から$+3$の間の整数 + \item[バージョン2以降] $-4$から$+3$の間の整数の2つ組\texttt{\{<stretch>, <shrink>\}}か, または$-4$から$+3$の間の整数.<stretch>, <shrink>はそれぞれこのグルーが伸びるときの優先度,縮むときの 優先度であり,単に整数$i$が指定された場合は\texttt{\{$i$, $i$\}}であると解釈される. \end{description} @@ -4754,7 +4319,7 @@ In case of glue, one can specify following additional keys in each \texttt{[$j$] \begin{cslist}[style=standard] \item[priority=<priority>] An integer in $[-4,3]$ (treated as 0 if omitted), or -a pair of these integers \texttt{\{<stretch>, <shrink>\}} (version~2 only). +a pair of these integers \texttt{\{<stretch>, <shrink>\}} (version 2~or~later). This is used only in line adjustment with priority by \Pkg{luatexja-adjust} (see Subsection~\ref{ssec-adj}). Higher value means the glue is easy to stretch, @@ -4943,8 +4508,31 @@ The following is the list of imaginary characters: %<ja>通常の(\cs{noindent} で開始されていない)段落の先頭. \item['jcharbdd'] -%<en>A boundary between \textbf{JAchar} and anything else (such as \textbf{ALchar}, kern, glue,\,\ldots). -%<ja>\textbf{JAchar}と「その他のもの」(欧文文字,glue,kern等)との境界. +%<en>A boundary between \textbf{JAchar} and anything else. +%<*ja> +\textbf{JAchar}と「その他のもの」との境界. + +バージョン2以前では\textbf{ALchar},箱,罫線(rule),glue,~kernなどいろいろなものと\textbf{JAchar}の境界に対して +本特殊文字が用いられていたが, +バージョン3以降では\ \texttt{'jcharbdd'}, \texttt{'alchar'}, \texttt{'nox\_alchar'}, +\texttt{'glue'} と細分化され, +\texttt{'jcharbdd'} は主に\textbf{JAchar}とボックスや罫線(rule)との境界に使われるようになった. +%</ja> + +\item['alchar', 'nox\_alchar'] +%<*en> +(version 3~or~later) A boundary between \textbf{JAchar} and \textbf{ALchar}. +%</en> +%<*ja> +(バージョン3以降)\textbf{JAchar}と\textbf{ALchar}との境界. +\textbf{JAchar}と\textbf{ALchar}の間に\Param{xkanjiskip}が入ることが可能な場合は +\ \texttt{'alchar'}\ が,そうでない場合は\ \texttt{'nox\_alchar'}\ が用いられる +(この区別は\textbf{ALchar}側の\Param{alxspmode}の値によってのみ行われる). +%</ja> + +\item['glue'] +%<en>(version 3~or~later) A boundary between \textbf{JAchar}, and, a glue or kern. +%<ja>(バージョン3以降))\textbf{JAchar}とglue,kernとの境界. \item[$-1$] %<en>The left/right boundary of an inline math formula. @@ -5167,16 +4755,9 @@ For $i\in\omega$, \texttt{char\_type[$i$]} is information of characters whose cl 0&\text{\texttt{'left'} (default)}\\0.5&\text{\tt 'middle'}\\1&\text{\tt 'right'} \end{cases} \] -\item For $j\in \omega$, \texttt{[$j$]} stores a kern or a glue which will be inserted -between character class~$i$ and class~$j$. - -If a kern will be inserted, the value of this field is \texttt{[$j$]=\{false, <kern\_node>, <ratio>\}}, -where <kern\_node> is a node\footnote{% - This version of \LuaTeX-ja uses ``direct access - model'' for accessing nodes, if possible. }. -If a glue will be inserted, we have \texttt{[$j$]=\{false, <spec\_node>, <ratio>, <icflag>\}}, -where <spec\_node> is also a node, and $\text{<icflag>}=\textit{from\_jfm}+\text{<priority>}$. \end{itemize} +For $i$,~$j\in \omega$, \texttt{char\_type[$i$][$j$]} stores a kern or a glue which will be inserted +between character class~$i$ and class~$j$. \end{description} %</en> %<*ja> @@ -5209,23 +4790,34 @@ JFMで指定されているそれぞれの値をスケーリングしたもの \end{cases} \] のいずれかの値をとる. -\item $j\in \omega$に対して,\texttt{[$j$]} は文字クラス$i$の文字と$j$の文字の間に挿入されるkern - やglueを格納している. -間に入るものがkernであれば,このフィールドの値は\ -\texttt{[$j$]=\{false, <kern\_node>, <ratio>\}} である. -<kern\_node>はkernを表すノードそのものである\footnote{% -本バージョンではノードのアクセス手法にdirect access +\end{itemize} +$i$,~$j\in \omega$に対して,\texttt{char\_type[$i$][$j$]} は +文字クラス$i$の文字と$j$の文字の間に挿入されるグルーやカーンを格納している. +\begin{itemize} + \item 間に入るものがカーンであれば,この値は\ +\texttt{[$j$]=\{[1]=<kern\_node>, ratio=<ratio>\}} であり, +<kern\_node>はカーンを表すノードそのものである\footnote{% +バージョン20150420.0以降ではノードのアクセス手法にdirect access modelを用いている.そのため,例えば\LuaTeX\ beta-0.78.2では,単なる自然数のようにし か見えないことに注意. }. -glueであれば,\texttt{[$j$]=\{false, <spec\_node>, <ratio>, <icflag>\}} である. -<spec\_node>はglueの長さを表すノードそのものであり, - $\text{<icflag>}=\textit{from\_jfm}+\text{<priority>}$である. + \item グルーであれば,この値は以下のキーを持つテーブルである. + \begin{description} + \item[\texttt{width}, \texttt{stretch}, \texttt{shrink}] + グルーのそれぞれ自然長,伸び量,縮み量をsp単位で表したもの. + \item[\texttt{priority}] バ(ージョン2以降の)JFMでの指定 \texttt{\{<stretch>,<shrink>\}} を + \[ + (\text{<stretch>}+4)\cdot 8+\text{<shrink>}+4 + \] + として0--63の整数にパックしたもの. + \item[\texttt{ratio}, \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch}, \texttt{kanjiskip\_shrink}] + JFM中の同名のフィールドの値がそのまま使われている. + \end{description} \end{itemize} \item[ascent\textrm{, }descent] …… \item[chars\_cbcache] -…… +文字クラス決定の処理で.キャッシュとして使われる. \end{cslist} %</ja> @@ -5434,13 +5026,13 @@ Penalty value for suppressing orphans. This penalty is inserted just %<*en> An additional attributes which each character whose character code is <chr\_code> has. -At the present version, the lowermost bit of <natural number> indicates +At version~20120506.0 or later, the lowermost bit of <natural number> indicates whether the character is considered as a punctuation mark (see the description of \Param{jcharwidowpenalty} above). %</en> %<*ja> 文字コードが<chr\_code>の文字が持つ付加的な属性値. -現在のバージョンでは,<natural number>の最下位ビットが,その文字が句読点と +バージョン20120506.0以降では,<natural number>の最下位ビットが,その文字が句読点と みなされるかどうかを表している(上の\Param{jcharwidowpenalty}の記述を参照). %</ja> @@ -6106,7 +5698,7 @@ As an example, the example above can be improved as follows: この文字の後ろに入るグルー等の処理については未定義である \footnote{% この命令と同等の内容は,\cs{dirrctlua}の形で\Pkg{ltjsclasses}内で以前から使われていた. - 一般ユーザでも利用しやすくするため,20170505.0版では新たに命令として定義した. + 一般ユーザでも利用しやすくするため,バージョン20170505.0で新たに命令として定義した. }. \item \cs{ltjfakeboxbdd}は,実行された箇所が「ボックスの先頭と末尾」であると\LuaTeX-jaの 和文処理グルー挿入処理に認識させる. @@ -6400,7 +5992,7 @@ character whose character class is zero, instead of `あ'. 「漢」の寸法を元に(本節の最初に述べた,小文字で始まる)\cs{cht}, \cs{cwd} といった長さ変数を設定する. -なお,\LaTeX が2015/10/01 版以降の場合は,「あ」「漢」の代わりに +なお,\LaTeX が2015/10/01版以降の場合は,「あ」「漢」の代わりに 「文字クラス0の和文文字」を用いる. %</ja> @@ -6893,6 +6485,7 @@ A demonstrarion is shown in \autoref{fig:altkanji-fontspec}. %<*en> \paragraph{Remark on \texttt{AltFont}, \texttt{YokoFeatures}, \texttt{TateFeatures} keys} +\leavevmode\par In \texttt{AltFont},~\texttt{YokoFeatures},~\texttt{TateFeatures} keys, one cannot specify per-shape settings such as \texttt{BoldFeatures}. For example, @@ -6962,24 +6555,31 @@ OpenType機能指定は \subsection{\Pkg{luatexja-otf}} \label{ssec-ltjotf} %<*en> -This optional package supports typesetting characters in -Adobe-Japan1 character collection -(or other CID character collection, if the font is supported). +This optional package supports typesetting glyphs +by specifying a CID number. The package \Pkg{luatexja-otf} offers the following 2~low-level commands: %</en> %<*ja> -この追加パッケージはAdobe-Japan1(フォント自身が持っていれば, -別のCID文字セットでも可)の文字の出力をサポートする. +この追加パッケージはCID番号による文字の出力をサポートする. \Pkg{luatexja-otf}は以下の2つの低レベルコマンドを提供する: %</ja> \begin{cslist} \item[\cs{CID}\{<number>\}] %<*en> -Typeset a character whose CID number is <number>. +Typeset a glyph whose CID number is <number>. +If the Japanese font is neither Adobe-Japan1,~Adobe-GB1, Adobe-CNS1,~nor~Adobe-Korea1 CID-keyed font, +\LuaTeX-ja treats that <number> is a CID number of Adobe-Japan1 character collection, +and tries to typeset a ``most suitable glyph''. %</en> %<*ja> CID番号が<number>の文字を出力する. +もし現在の和文フォントがAdobe-Japan1,~Adobe-GB1, Adobe-CNS1,~Adobe-Korea1の + いずれのCID-keyed fontでもない場合,<number>はAdobe-Japan1のCID番号であると解釈し + 「適切なグリフ」\footnote{% + 例えばフォントにIVDコレクションAdobe-Japan1が含まれていれば,その情報を用いて + グリフを選択する. +}を出力する. %</ja> \item[\cs{UTF}\{<hex\_number>\}] @@ -7058,34 +6658,6 @@ JFMの\texttt{chars}テーブルのエントリとして \verb+'AJ1-xxx'+ の形 正しく半角幅で組むために利用されている. %</ja> -%<*en> -\paragraph{IVS support} -Recent fonts support Ideographic Variation Selector (IVS). -\Pkg{luaotfload} and \Pkg{fontspec} packages used to be not supported IVS, -so we implemented experimental IVS support in \Pkg{luatexja-otf}, -which is activated by -\begin{lstlisting} -\directlua{luatexja.otf.enable_ivs()} -\end{lstlisting} -However, recent \Pkg{luaotfload} and \Pkg{fontspec} packages seem to support IVS, -so we don't execute above command anymore. -%</en> -%<*ja> -\paragraph{IVSサポート} -最近のOpenTypeフォントやTrueTypeフォントには, -\texttt{U+E0100}--\texttt{U+E01EF}の範囲の「文字」 -(漢字用異体字セレクタ)を後置することによって -字形を指定する仕組み(IVS)が含まれている. -執筆時点の2013年12月では,\Pkg{luaotfload}や\Pkg{fontspec}パッケージ類は -IVSに対応してはいないようであったため, -\Pkg{luatexja-otf}パッケージ内に試験的なIVS対応を実装した.これは以下の命令の実行で有効になる: -\begin{lstlisting} -\directlua{luatexja.otf.enable_ivs()} -\end{lstlisting} -しかし,現在の\Pkg{luaotfload}や\Pkg{fontspec}パッケージは -IVSに対応しているようであるので,もはや上の命令を実行する必要はない. -%</ja> - \subsection{\Pkg{luatexja-adjust}} \label{ssec-adj} \begin{figure}[t] @@ -7349,27 +6921,15 @@ among the line-head form, the line-middle form, and the line-end form. \texttt{<z>}\ の他に\ \texttt{<d>}(dtou方向),\texttt{<u>}(utod方向)を追加した. \texttt{<z>} と \texttt{<u>} の違いは,\texttt{<z>} が(\Pkg{plext} パッケージと同様に) 周囲の組方向が縦組のときにしか意味を持たない - のに対し,\texttt{<u>} にはそのような制限がないことである. - - \item \Pkg{plext} パッケージでは,表組(\texttt{tabular} 環境,\texttt{align} 環境等)や -\texttt{minipage} 環境,\cs{parbox} 命令において, -垂直位置指定 \texttt{[t]},~\texttt{[b]} の挙動が非読み込み時と微妙に変わることがあった. - -\Pkg{lltjext} パッケージでは,垂直位置指定が\LaTeXe と同様の挙動(以下に示す)に -なるように修正した. -\begin{itemize} - \item \texttt{[t]} オプション指定時は,ボックスのベースラインが中身の1行目のベースライン - (1行目の上に罫線などが来た時は,ボックスの上端)に一致するように配置する. - \item \texttt{[b]} オプション指定時は,ボックスのベースラインが中身の最終行のベースライン - (中身の最後が罫線などの時は,ボックスの下端)に一致するように配置する. - \item それ以外のときは,ボックスの中央が「数式の軸」に一致するように配置する. -\end{itemize} - + \footnote{% + 周囲の組方向が縦組以外のときは,\texttt{<z>} を指定しても中身の組方向は周囲の組方向と変わらない. + }% +のに対し,\texttt{<u>} にはそのような制限がないことである. \item 連数字用命令 \cs{rensuji} における位置合わせオプション \texttt{[l]}, \texttt{[c]}, \texttt{[r]} の挙動を若干変更した. - \end{itemize} } + %</ja> %<*en> \subsection{\texttt{lltjext.sty}} @@ -7407,7 +6967,7 @@ counterpart of the \Pkg{plext} package. その際,中身は<pos>の値に従い,左寄せ(\texttt{l}),右揃え(\texttt{r}), 中央揃え(それ以外)される. \item[picture環境] -図表作成に用いる \texttt{picture} 環境も, +図表作成に用いる\texttt{picture}環境も, \begin{lstlisting} \begin{picture}<dir>(x_size, y_size)(x_offset,y_offset) ... @@ -7450,14 +7010,21 @@ the direction inside the environment is same as that outside the enviromnent. \item[u] \emph{utod} direction \end{description} \item[\cs{parbox}\<<dir>\>{[<pos>]}\{<width>\}\{<contents>\}] -\cs{parbox} command is also extended by \texttt{\<dir\>}. +\cs{parbox} command is also extended by \texttt{\<<dir>\>}. \item[\cs{pbox}\<<dir>\>{[<width>][<pos>]}\{<contents>\}] This commands typeset <contents> in LR-mode, in <dir> direction. If <width> is positive, the width of the box becomes this <width>. -In this case, <contents> will be aligned \dots - +In this case, <contents> will be aligned to left (when <pos> is \texttt{l}), +center (\texttt{c}), or~right (\texttt{r}). + \item[picture\textrm{\ environment}] +\texttt{picture} environment also extended by \texttt{\<<dir>\>}, as follows: +\begin{lstlisting} +\begin{picture}<dir>(x_size, y_size)(x_offset,y_offset) + ... +\end{picture} +\end{lstlisting} \item[\cs{rensuji}{[<pos>]}\{<contents>\}\textrm{, }\cs{rensujiskip}] @@ -7470,8 +7037,691 @@ In this case, <contents> will be aligned \dots \end{cslist} %</en> +%<*ja> +\paragraph{表組他の揃え位置} +表組(\texttt{array}, \texttt{tabular}環境),\cs{parbox}命令,\cs{minipage}環境の +揃え位置については\autoref{tab:lltjext_dir}を参照.\pLaTeX~2017-07-29と +できるだけ同じ挙動になるようにしている.\autoref{tab:lltjext_dir}中のA--Dの意味は次の通り. + +\begin{table} + \caption{\Pkg{lltjext}パッケージにおける表組・\cs{parbox}命令他の揃え位置} + \label{tab:lltjext_dir} + {\centering + \begin{tabular}{lcccc} + \toprule + ↓中身\周囲→&\cs{yoko}&\cs{tate}&\cs{utod}&\cs{dtou}\\ + \midrule + \cs{yoko}&A&B&B&B\\ + \cs{tate}&B&A&D&C\\ + \cs{utod}&B&D&A&C\\ + \cs{dtou}&B&C&C&A\\ + \bottomrule + \end{tabular}\par} +\end{table} + +\begin{description} + \item[A] 周囲の組方向と中身の組方向が同じ場合. + \begin{itemize} + \item \texttt{[t]}指定のとき: + 中身の先頭行のベースラインが周囲のベースラインと一致する. + 表組で先頭行の上に罫線があった場合は,それがベースラインの位置 + \footnote{\LuaTeX-jaでは和文側のベースラインの位置も上下移動できることに注意. + そのため「和文ベースライン」の位置に来るとは限らない.}となる. + \item \texttt{[c]}指定のとき: + 中身の上下の中心が周囲の数式の軸を通る. + \item \texttt{[b]}指定のとき: + 中身の最終行のベースラインが周囲のベースラインと一致する. + 表組で最終行の下に罫線があった場合は,それがベースラインの位置となる. + \end{itemize} + \item[B] 周囲の組方向と中身の組方向が90度ずれている場合. + \begin{itemize} + \item \texttt{[t]}指定のとき: + 表組においては,上端が周囲のベースラインと一致する. + \cs{parbox}や\cs{minipage}環境においては,上端が周囲の和文文字の上端と一致する. + \item \texttt{[c]}指定のとき: + 中身の上下の中心が周囲の数式の軸を通る. + \item \texttt{[b]}指定のとき: + 表組においては,下端が周囲のベースラインと一致する. + \cs{parbox}や\cs{minipage}環境においては,下端が周囲の和文文字の下端と一致する. + \end{itemize} + \item[C] 周囲の組方向と中身の組方向が180度ずれている場合. + \cs{parbox}や\cs{minipage}環境においては,上のBの場合と同じ挙動である.表組においては, + Aで\texttt{[t]}と\texttt{[b]}を入れ替えた + \begin{itemize} + \item \texttt{[t]}指定のとき: + 中身の最終行のベースラインが周囲のベースラインと一致する. + 最終行の下に罫線があった場合は,それがベースラインの位置となる. + \item \texttt{[c]}指定のとき: + 中身の上下の中心が周囲の数式の軸を通る. + \item \texttt{[b]}指定のとき: + 中身の先頭行のベースラインが周囲のベースラインと一致する. + 表組で先頭行の上に罫線があった場合は,それがベースラインの位置となる. + \end{itemize} + \item[D] 通常の縦組(\cs{tate})と「縦数式ディレクション」に相当する\cs{utod}方向が絡んだ場合. + \cs{parbox}や\cs{minipage}環境においては,上のBの場合と同じ挙動である.表組においては, + \begin{itemize} + \item \texttt{[t]}指定のとき: + 中身の先頭行の欧文ベースラインが周囲の欧文ベースラインと一致する. + \item \texttt{[c]}指定のとき: + 中身の上下の中心が周囲の数式の軸を通る. + \item \texttt{[b]}指定のとき: + 中身の最終行の欧文ベースラインが周囲の欧文ベースラインと一致する. + \end{itemize} +\end{description} +%</ja> + +\subsection{\Pkg{luatexja-preset}} +\label{ssec:preset} + +%<*en> +As described in Subsection~\ref{ssec:preset-abst}, +One can load the \Pkg{luatexja-preset} +package to use several ``presets'' of Japanese fonts. +This package provides functions in a part of \Pkg{japanese-otf} package (changing fonts) +and a part of \Pkg{PXchfon} package (presets) by Takayuki Yato. + +One can specified other options other than listed below. +These are simply passed to the \Pkg{luatexja-fontspec}\footnote{if \texttt{nfssonly} option is +\emph{not} specified; in this case these options are simply ignored.}. +For example, the line~5 in below example is equivalent to lines 1--3. +%</en> +%<*ja> +\ref{ssec:preset-abst}節で述べたように,よく使われている和文フォント設定を一行で指定できるようにしたのが +\Pkg{luatexja-preset}パッケージである.このパッケージは, +\Pkg{otf}パッケージの一部(多書体化)と八登崇之氏による\Pkg{PXchfon}パッケージの一部(プリセット指定) +とを合わせたような格好をしている. + +オプションとして,以下のリストにないものも指定することができるが,それらは +\Pkg{luatexja-fontspec}パッケージに渡される\footnote{\texttt{nfssonly} オプションが +指定されていた場合は,\Pkg{luatexja-fontspec}パッケージは読み込まれないので単純に無視され +る.}.例えば,下の1--3行目は5行目のように一行にまとめることができる. +%</ja> +\begin{lstlisting} +\usepackage[no-math]{fontspec} +\usepackage[match]{luatexja-fontspec} +\usepackage[kozuka-pr6n]{luatexja-preset} +%%-------- +\usepackage[no-math,match,kozuka-pr6n]{luatexja-preset} +\end{lstlisting} + +\begin{cslist}[before*=] +\item[fontspec% +%<en>\textrm{~(enabled by default)} +%<ja>\emph{\gtfamily (既定)} +] +%<*en> +With this option, Japanese fonts are selected using functionality of +the \Pkg{luatexja-fontspec} package. This means that the \Pkg{fontspec} package is + automatically loaded by this package. + +If you need to pass some options to \Pkg{fontspec}, you can load \Pkg{fontspec} manually +before \Pkg{luatexja-preset}: +%</en> +%<*ja> +\Pkg{luatexja-fontspec}パッケージの機能を用いて和文フォントを選択する. +これは,\Pkg{fontspec}パッケージが自動で読み込まれることを意味する. + +もし\Pkg{fontspec}パッケージに何らかのオプションを渡す必要がある +\footnote{例えば,数式フォントまで置換されてしまい,\cs{mathit}によってギリシャ文字の +斜体大文字が出なくなる,など.}場合は, +次のように\Pkg{luatexja-preset}の前に\Pkg{fontspec}を手動で読みこめば良い: +%</ja> +\begin{lstlisting} +\usepackage[no-math]{fontspec} +\usepackage[...]{luatexja-preset} +\end{lstlisting} + +\item[nfssonly] +%<*en> +With this option, selecting Japanese fonts won't be performed using the functionality of + the \Pkg{fontspec} package, but only standard NFSS2 (hence without + \cs{addjfontfeatures} etc.). +This option is ignored when \Pkg{luatexja-fontspec} package is loaded. + +When this option is specified, \Pkg{fontspec}~and~\Pkg{luatexja-fontspec} are +\emph{not} loaded by default. Nevertheless, +the package\Pkg{fontspec} can coexist with the option, as the following: +\begin{lstlisting} +\usepackage{fontspec} +\usepackage[hiragino-pron,nfssonly]{luatexja-preset} +\end{lstlisting} +In this case, one can use \cs{setmainfont} etc.\ to select \emph{alphabetic} fonts. +%</en> +%<*ja> +\LaTeX 標準のフォント選択機構(NFSS2)を用いて +\texttt{ltjpm}(明朝),\texttt{ltjpg}(ゴシック),それに後に述べる \texttt{deluxe} オプ + ションが指定された場合には \texttt{ltjpmg}(丸ゴシック)という +3つの和文フォントファミリを定義し,これらを用いる. + +本オプション指定時には\Pkg{fontspec}・\Pkg{luatexja-fontspec}パッケージは +自動では読み込まれない,しかし, +\begin{lstlisting} +\usepackage{fontspec} +\usepackage[hiragino-pron,nfssonly]{luatexja-preset} +\end{lstlisting} +のようにすれば,このオプションを指定すれば +欧文フォントを\Pkg{fontspec}パッケージの機能を使って指定することができる. +一方, +パッケージ読み込み時に既に\Pkg{luatexja-fontspec}パッケージが読み込まれて + いる場合は \texttt{nfssonly} オプションは無視される. +%</ja> + +\item[match] +%<*en> +If this option is specified, usual family-changing commands such as +\cs{rmfamily},~\cs{textrm}, \cs{sffamily},~\dots\ also change Japanese font family. +This option is passed to \Pkg{luatexja-fontspec}, if \texttt{fontspec} +option is specifed. +%</en> + +%<*ja> +このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\ +\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が +欧文フォントだけでなく和文フォントも変更するようになる. +\ \texttt{fontspec}\ +オプションが有効になっている場合は,このオプションは \Pkg{luatexja-fontspec} パッケージへと渡される. +%</ja> + + +\item[nodeluxe% +%<en>\textrm{~(enabled by default)} +%<ja>\emph{\gtfamily (既定)} +] +%<*en> +The nagation of \texttt{deluxe} option. +Use one-weighted \textit{mincho} and \textit{gothic} font families. +This means that \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+ and +\verb+\gtfamily\mdseries+ use the same font. +%</en> +%<*ja> +\texttt{deluxe}オプションの否定. +\LaTeXe 環境下の標準設定のように,明朝体・ゴシック体を各1ウェイトで使用する. +より具体的に言うと,この設定の下では +\ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+, +\verb+\gtfamily\mdseries+はみな同じフォントとなる. +%</ja> +\item[deluxe] +%<*en> +Use the mincho family with three weights (light, medium, and~bold), +the gothic family with three weights (medium, bold, and extra~bold), and \textit{rounded gothic}% +\footnote{Provided by \cs{mgfamily} and \cs{textmg}, +because ``rounded gothic'' is called \textit{maru gothic} (丸ゴシック) in Japanese.}. +Mincho light and gothic extra~bold can be by +\cs{mcfamily}\cs{ltseries}~and~\cs{gtfamily}\cs{ebseries}, respectively. + +\begin{itemize} + \item Some presets do not have the light weight of mincho. + In this case, we substitute the medium weight for the light weight. + \item \Pkg{luatexja-preset} does not produce an error (only produces a warning), even if + (one of) fonts for \cs{mcfamily}\cs{ltseries}, \cs{gtfamily}\cs{ebseries}, \cs{mgfamily} + do not exist. +\end{itemize} +%</en> +%<*ja> +明朝体・ゴシック体各3ウェイトと, +丸ゴシック体 (\cs{mgfamily}, \verb+\textmg{...}+) を利用可能にする. +明朝体は細字・中字・太字の3ウェイトがあり, +明朝体の細字は \cs{mcfamily}\cs{ltseries} で利用できる. +また,ゴシック体は中字・太字・極太の3ウェイトがあり, +ゴシック体の極太は \cs{gtfamily}\cs{ebseries} で利用できる% +\footnote{過去との互換性のため,\cs{gtebfamily}, \cs{textgteb\{...\}} も + 依然として利用可能である.}. + +\begin{itemize} + \item プリセット設定によっては明朝体細字が用意されていないものもある.その場合は + 明朝体中字が代用される. + \item 明朝体細字,ゴシック体極太,丸ゴシック体の3フォントについては + 実際にフォントをロードする前に存在するかチェックを行う. + 存在しなかったものについては警告を発し, + それぞれ明朝体中字.ゴシック体太字,ゴシック体太字で代用する. +\end{itemize} +%</ja> +\item[expert] +%<*en> +Use horizontal/vertical kana alternates, and define a command \cs{rubyfamily} to use kana +characters designed for ruby. +%</en> +%<*ja> +横組・縦組専用仮名を用いる.また,\cs{rubyfamily} でルビ用仮名が使用可能となる\footnote{% + \cs{rubyfamily}とはいいつつ,実際にはフォントファミリを切り替えるのではない(通常では + font featureの追加,\texttt{nfssonly} 指定時にはシェイプを \texttt{rb} に切り替え). +}. +%</ja> +\item[bold] +%<*en> +Substitute bold series of gothic for bold series of mincho. +If \texttt{nodeluxe} option is enabled, medium series of gothic is also changed, +since we use same font for both series of gothic. +%</en> +%<*ja> +「明朝の太字」をゴシック体の太字によって代替する. +もし\texttt{nodeluxe}オプションが指定されている場合は,ゴシック体は1ウェイトしか使用されな + いため, +「ゴシック体の中字」も同時に変更されることになる. +%</ja> +\item[90jis] +%<en>Use 90JIS glyph variants if possible. +%<ja>出来る限り90JISの字形を使う. +\item[jis2004] +%<en>Use JIS2004 glyph variants if possible. +%<ja>出来る限りJIS2004の字形を使う. +\item[jfm\_yoko=<jfm>] +%<*en> +Use the JFM \texttt{jfm-<jfm>.lua} for horizontal direction, instead of \texttt{jfm-ujis.lua}~(default JFM). +%</en> +%<*ja> +横組用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時は +\LuaTeX\nobreakdash -ja標準の\texttt{jfm-ujis.lua}が用いられる. +%</ja> +\item[jfm\_tate=<jfm>] +%<*en> +Use the JFM \texttt{jfm-<jfm>.lua} for vertical direction, instead of \texttt{jfm-ujisv.lua}~(default JFM). +%</en> +%<*ja> +縦用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時は +\LuaTeX-ja標準の\texttt{jfm-ujisv.lua}が用いられる. +%</ja> + +\item[jis] +%<en>Same as \texttt{jfm\_yoko=jis}. +%<ja>\texttt{jfm\_yoko=jis}と同じ.ここで用いるJFM\texttt{jfm-jis.lua}はJISフォントメトリックを元にしたものである. + +\end{cslist} +%<*en> +Note that \texttt{90jis} and \texttt{jis2004} only affect with mincho, +gothic (and, possibly rounded gothic) families defined by this package. +We didn't taken account of when both \texttt{90jis} and \texttt{jis2004} are specified. +%</en> +%<*ja> +\texttt{90jis}と\texttt{jis2004}については本パッケージで定義された +明朝体・ゴシック体(・丸ゴシック体)にのみ有効である. +両オプションが同時に指定された場合の動作については全く考慮していない. +%</ja> + +%<en>\paragraph{Presets for multi weight} +%<ja>\paragraph{多ウェイト用プリセットの一覧} +%<*en> +Besides \texttt{morisawa-pro}~and~\texttt{morisawa-pr6n} presets, +fonts are specified by font name, not by file name. +In following tables, starred fonts (e.g.~KozGo\dots-Regular) are used for medium series of \textit{gothic}, +\emph{if and only if \texttt{deluxe} option is specified}. +%</en> +%<*ja> +\texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は +(ファイル名でなく)フォント名で行われる. +以下の表において,*\,つきのフォント(e.g.,~KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション指定時に} +ゴシック体中字として用いられるものを示している. +%</ja> +\begin{cslist}[style=standard] + \item[kozuka-pro] Kozuka Pro (Adobe-Japan1-4) fonts. +%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] + \item[kozuka-pr6] Kozuka Pr6 (Adobe-Japan1-6) fonts. +%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] + \item[kozuka-pr6n] Kozuka Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts. + +%<*en> +Kozuka Pro/Pr6N fonts are bundled with Adobe's software, such as Adobe~InDesign. +There is not rounded gothic family in Kozuka fonts. +%</en> +%<*ja> +小塚Pro書体・Pr6N書体はAdobe InDesign等のAdobe製品にバンドルされている. +「小塚丸ゴシック」は存在しないので,便宜的に小塚ゴシックHによって代用している. +%</ja> +\begin{center}\small +\begin{tabular}{lllll} +\toprule +\bfseries family&\bfseries series&\ttfamily kozuka-pro&\ttfamily kozuka-pr6&\ttfamily kozuka-pr6n\\ +\midrule + &light&KozMinPro-Light&KozMinProVI-Light&KozMinPr6N-Light\\ +%<en>\textit{mincho}% +%<ja>\textgt{明朝}% + &medium&KozMinPro-Regular&KozMinProVI-Regular&KozMinPr6N-Regular\\ + &bold&KozMinPro-Bold&KozMinProVI-Bold&KozMinPr6N-Bold\\ +\midrule + &&KozGoPro-Regular*&KozGoProVI-Regular*&KozGoPr6N-Regular*\\ + &\smash{\raisebox{1.5ex}{medium}} + &KozGoPro-Medium&KozGoProVI-Medium&KozGoPr6N-Medium\\ +\cmidrule(l){2-5} +%<en>\smash{\raisebox{2ex}{\textit{gothic}}}% +%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}% + &bold&KozGoPro-Bold&KozGoProVI-Bold&KozGoPr6N-Bold\\ + &extra bold&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\ +\midrule +%<en>\textit{rounded gothic} +%<ja>\gt 丸ゴシック +&&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\ +\bottomrule +\end{tabular} +\end{center} +%<en>\newpage + \item[hiragino-pro] Hiragino Pro (Adobe-Japan1-5) fonts. +%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] + \item[hiragino-pron] Hiragino ProN (Adobe-Japan1-5, JIS04-savvy) fonts. +%<*en> +Hiragino fonts (except Hiragino~Mincho~W2) are bundled with Mac OS~X 10.5 or later. +Some editions of a Japanese word-processor ``一太郎2012'' includes Hiragino ProN fonts. +Note that fonts for gothic extra~bold (HiraKakuStd[N]-W8) only contains characters in +Adobe-Japan1-3 character collection, while others contains those in +Adobe-Japan1-5 character collection. +%</en> +%<*ja> +ヒラギノフォントは,Mac OS~X以外にも,一太郎2012の上位エディションにもバンドルされている. +極太ゴシック体として用いるヒラギノ角ゴW8は,Adobe-Japan1-3の範囲しかカバーしていない +Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. + +なお,明朝体細字として用いるヒラギノ明朝体W2はOS~Xや一太郎にはバンドルされておらず, +別途購入する必要がある. +%</ja> +\begin{center}\small +\begin{tabular}{llll} +\toprule +\bf family&\bf series&\tt hiragino-pro&\tt hiragino-pron\\ +\midrule + &light&Hiragino~Mincho~Pro~W2&Hiragino~Mincho~ProN~W2\\ +%<en>\textit{mincho}% +%<ja>\textgt{明朝}% + &medium&Hiragino~Mincho~Pro~W3&Hiragino~Mincho~ProN~W3\\ + &bold&Hiragino~Mincho~Pro~W6&Hiragino~Mincho~ProN~W6\\ +\midrule + &&Hiragino~Kaku~Gothic~Pro~W3*&Hiragino~Kaku~Gothic~ProN~W3*\\ + &\smash{\raisebox{1.5ex}{medium}} + &Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\ +\cmidrule(l){2-4} +%<en>\smash{\raisebox{2ex}{\textit{gothic}}}% +%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}% + &bold&Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\ + &extra bold&Hiragino~Kaku~Gothic~Std~W8&Hiragino~Kaku~Gothic~StdN~W8\\ +\midrule +%<en>\textit{rounded gothic} +%<ja>\gt 丸ゴシック +&&Hiragino~Maru~Gothic~Pro~W4&Hiragino~Maru~Gothic~ProN~W4\\ +\bottomrule +\end{tabular} +\end{center} + + \item[morisawa-pro] Morisawa Pro (Adobe-Japan1-4) fonts. +%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] + \item[morisawa-pr6n] Morisawa Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts. +\begin{center}\small +\begin{tabular}{ll>{\tt}l>{\tt}l} +\toprule +\bf family&\bf series&morisawa-pro&morisawa-pr6n\\ +\midrule + &medium&A-OTF-RyuminPro-Light.otf&A-OTF-RyuminPr6N-Light.otf\\ +%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}% +%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}% + &bold&A-OTF-FutoMinA101Pro-Bold.otf&A-OTF-FutoMinA101Pr6N-Bold.otf\\ +\midrule + &medium + &A-OTF-GothicBBBPro-Medium.otf&A-OTF-GothicBBBPr6N-Medium.otf\\ +%<en>\textit{gothic}% +%<ja>\gt ゴシック + &bold&A-OTF-FutoGoB101Pro-Bold.otf&A-OTF-FutoGoB101Pr6N-Bold.otf\\ + &extra bold&A-OTF-MidashiGoPro-MB31.otf&A-OTF-MidashiGoPr6N-MB31.otf\\ +\midrule +%<en>\textit{rounded gothic} +%<ja>\gt 丸ゴシック +&&A-OTF-Jun101Pro-Light.otf&A-OTF-ShinMGoPr6N-Light.otf\\ +\bottomrule +\end{tabular} +\end{center} + + + \item[yu-win] Yu fonts bundled with Windows~8.1. +%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] + \item[yu-win10] Yu fonts bundled with Windows~10. +%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] + \item[yu-osx] Yu fonts bundled with OSX~Mavericks. +\begin{center}\small +\begin{tabular}{lllll} +\toprule +\bf family&\bf series&\texttt{yu-win}&\texttt{yu-win10}&\texttt{yu-osx}\\ +\midrule + &light&YuMincho-Light&YuMincho-Light&(YuMincho~Medium)\\ +%<en>\textit{mincho}% +%<ja>\textgt{明朝}% + &medium&YuMincho-Regular&YuMincho-Regular&YuMincho~Medium\\ + &bold&YuMincho-Demibold&YuMincho-Demibold&YuMincho~Demibold\\ +\midrule + &&YuGothic-Regular*&YuGothic-Regular*&YuGothic~Medium*\\ + &\smash{\raisebox{1.5ex}{medium}}% + &YuGothic-Regular&YuGothic-Medium&YuGothic~Medium\\ +\cmidrule(l){2-5} +%<en>\textit{gothic}% +%<ja>\gt ゴシック + &bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ + &extra bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ +\midrule +%<en>\textit{rounded gothic} +%<ja>\gt 丸ゴシック +&&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ +\bottomrule +\end{tabular} +\end{center} + +\item[moga-mobo] MogaMincho, MogaGothic, and MoboGothic. +%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] +\item[moga-mobo-ex] MogaExMincho, MogaExGothic, and MoboExGothic. +%<en>\par These fonts can be downloaded from \url{http://yozvox.web.fc2.com/}. +%<ja>これらのフォントは \url{http://yozvox.web.fc2.com/} からダウンロードできる. +\begin{center}\small +\begin{tabular}{llll} +\toprule +\bf family&\bf series&\bf default, \texttt{90jis}~option&\bf \texttt{jis2004} option\\ +\midrule + &medium&Moga90Mincho&MogaMincho\\ +%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}% +%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}% + &bold&Moga90Mincho Bold&MogaMincho Bold\\ +\midrule + &medium&Moga90Gothic&MogaGothic\\ +%<en>\textit{gothic}% +%<ja>\gt ゴシック + &bold&Moga90Gothic Bold&MogaGothic Bold\\ + &extra bold&Moga90Gothic Bold&MogaGothic Bold\\ +\midrule +%<en>\textit{rounded gothic} +%<ja>\gt 丸ゴシック +&&Mobo90Gothic&MoboGothic\\ +\bottomrule +\end{tabular} +\end{center} +%<en>When \texttt{moga-mobo-ex} is specified, the font ``MogaEx90Mincho'' etc.\ are used. +%<ja>\texttt{moga-mobo-ex}オプション指定時にはMogaEx90MinchoなどのExが名前についたフォントが使われる. + +\item[ume] Ume Mincho and Ume Gothic. +%<en>\par These fonts can be downloaded from\\\hfill \url{https://ja.osdn.net/projects/ume-font/wiki/FrontPage}. +%<ja>これらのフォントは \url{https://ja.osdn.net/projects/ume-font/wiki/FrontPage} からダウンロードできる. +\begin{center}\small +\begin{tabular}{lll} +\toprule +\bf family&\bf series&\bf default\\ +\midrule + &medium&Ume Mincho\\ +%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}% +%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}% + &bold&Ume Mincho\\ +\midrule + &&Ume Gothic*\\ + &\smash{\raisebox{1.5ex}{medium}}&Ume Gothic O5\\ +\cmidrule(l){2-3} +%<en>\textit{gothic}% +%<ja>\gt ゴシック + &bold&Ume Gothic O5\\ + &extra bold&Ume Gothic O5\\ +\midrule +%<en>\textit{rounded gothic} +%<ja>\gt 丸ゴシック +&&Ume Gothic O5\\ +\bottomrule +\end{tabular} +\end{center} + + \item[sourcehan] Source Han Serif and Source Han Sans fonts (Language-specific OTF \textit{or} OTC) +%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] + \item[sourcehan-jp] Source Han Serif JP and Source Han Sans JP fonts (Region-specific Subset OTF) +\begin{center}\small +\def\AD#1#2{Source Han #1 #2&Source Han #1 JP #2}% +\begin{tabular}{lllll} +\toprule +\bf family&\bf series&\texttt{sourcehan}&\texttt{sourcehan-jp}\\ +\midrule + &light&\AD{Serif}{Light}\\ +%<en>\textit{mincho}% +%<ja>\textgt{明朝}% + &medium&\AD{Serif}{Regular}\\ + &bold&\AD{Serif}{Bold}\\ +\midrule + &&\AD{Sans}{Regular*}\\ + &\smash{\raisebox{1.5ex}{medium}} + &\AD{Sans}{Medium}\\ +\cmidrule(l){2-4} +%<en>\smash{\raisebox{2ex}{\textit{gothic}}}% +%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}% + &bold&\AD{Sans}{Bold}\\ + &extra bold&\AD{Sans}{Heavy}\\ +\midrule +%<en>\textit{rounded gothic} +%<ja>\gt 丸ゴシック +&&\AD{Sans}{Heavy}\\ +\bottomrule +\end{tabular} +\end{center} + + + \item[noto-otc] Noto Serif CJK and Noto Sans CJK fonts (OTC) +%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax] + \item[noto-otf] Noto Serif CJK and Noto Sans CJK fonts (Language-specific OTF) +\begin{center}\small +\def\AD#1#2{Noto #1 CJK #2&Noto #1 CJK JP #2}% +\begin{tabular}{lllll} +\toprule +\bf family&\bf series&\texttt{noto-otc}&\texttt{noto-otf}\\ +\midrule + &light&\AD{Serif}{Light}\\ +%<en>\textit{mincho}% +%<ja>\textgt{明朝}% + &medium&\AD{Serif}{Regular}\\ + &bold&\AD{Serif}{Bold}\\ +\midrule + &&\AD{Sans}{Regular*}\\ + &\smash{\raisebox{1.5ex}{medium}} + &\AD{Sans}{Medium}\\ +\cmidrule(l){2-4} +%<en>\smash{\raisebox{2ex}{\textit{gothic}}}% +%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}% + &bold&\AD{Sans}{Bold}\\ + &extra bold&\AD{Sans}{Black}\\ +\midrule +%<en>\textit{rounded gothic} +%<ja>\gt 丸ゴシック +&&\AD{Sans}{Black}\\ +\bottomrule +\end{tabular} +\end{center} + + + +\end{cslist} +%<en>\paragraph{Presets for single weight} +%<ja>\paragraph{単ウェイト用プリセット一覧} +%<*en> +Next, we describe settings for using only single weight. +%</en> +%<*ja> +次に,単ウェイト用の設定を述べる.この4設定では +明朝体太字・丸ゴシック体はゴシック体と同じフォントが用いられる. +%</ja> +\par\nobreak\medskip +{\centering\small +\begin{tabular}{lllll} +\toprule +&\tt noembed&\tt ipa&\tt ipaex&\tt ms\\ +\midrule +%<*en> +\it mincho&Ryumin-Light (non-embedded) +&IPA Mincho&IPAex Mincho&MS Mincho\\ +\it gothic&GothicBBB-Medium (non-embedded) +&IPA Gothic&IPAex Gothic&MS Gothic\\ +%</en> +%<*ja> +\gtfamily 明朝体&Ryumin-Light(非埋込) +&IPA明朝&IPAex明朝&MS明朝\\ +\gtfamily ゴシック体&GothicBBB-Medium(非埋込) +&IPAゴシック&IPAexゴシック&MSゴシック\\ +%</ja> +\bottomrule +\end{tabular}\par\medskip} + +%<en>\paragraph{Using HG fonts} +%<ja>\paragraph{HGフォントの利用} +%<*en> +We can use HG~fonts bundled with Microsoft~Office for realizing multiple weights. +In the table below, starred fonts (e.g., IPA~Gothic*) are used +only if \texttt{jis2004} or \texttt{nodeluxe} option is spefified. +%</en> +%<*ja> +すぐ前に書いた単ウェイト用設定を,Microsoft Office等に付属するHGフォントを使って +多ウェイト化した設定もある.以下の表では,*~付きのフォント(例:IPAゴシック*)は +\texttt{jis2004}と\texttt{nodeluxe}のいずれかのオプションが有効になっているときに使われる. +%</ja> +\par\nobreak\medskip +{\centering\small +\begin{tabular}{lllll} +\toprule +\textbf{family}&\textbf{series}&\tt ipa-hg&\tt ipaex-hg&\tt ms-hg\\ +\midrule +%<*en> +&medium&IPA Mincho&IPAex Mincho&MS Mincho\\ +\smash{\raisebox{1.5ex}{\textit{mincho}}}% +&bold&HG Mincho E&HG Mincho E&HG Mincho E\\\midrule +&&IPA Gothic*&IPAex Gothic*&MS Gothic*\\ +&\smash{\raisebox{1.5ex}{medium}}% +&HG Gothic M&HG Gothic M&HG Gothic M\\\cmidrule{2-5} +\textit{gothic}&bold&HG Gothic E&HG Gothic E&HG Gothic E\\\cmidrule{2-5} +&extra bold&HG Soei Kaku Gothic UB&HG Soei Kaku Gothic UB&HG Soei Kaku Gothic UB\\\midrule +\textit{rounded gothic}&& +HG MaruGothic M PRO&HG MaruGothic M PRO&HG MaruGothic M PRO\\ +%</en> +%<*ja> +&medium&IPA明朝&IPAex明朝&MS明朝\\ +\smash{\raisebox{1.5ex}{\textgt{明朝体}}}% +&bold&HG明朝E&HG明朝E&HG明朝E\\\midrule +&&IPAゴシック*&IPAexゴシック*&MSゴシック*\\ +&\smash{\raisebox{1.5ex}{medium}}% +&HGゴシックM&HGゴシックM&HGゴシックM\\\cmidrule{2-5} +\textgt{ゴシック体}&bold&HGゴシックE&HGゴシックE&HGゴシックE\\\cmidrule{2-5} +&extra bold&HG創英角ゴシックUB&HG創英角ゴシックUB&HG創英角ゴシックUB\\\midrule +\textgt{丸ゴシック体}&& +HG丸ゴシックM-PRO&HG丸ゴシックM-PRO&HG丸ゴシックM-PRO\\ +%</ja> +\bottomrule +\end{tabular}\par\medskip} + +%<*en> +Note that HG~Mincho~E, HG~Gothic~E, HG Soei Kaku Gothic UB, and HG Maru Gothic PRO +are internally specified by: +\begin{description} +\item[default] by font name (\texttt{HGMinchoE}, etc.). +\item[{\tt 90jis}] by file name (\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}). +\item[{\tt jis2004}] by file name (\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}). +\end{description} +%</en> +%<*ja> +なお,HG明朝E・HGゴシックE・HG創英角ゴシックUB・HG丸ゴシック体PROの4つについては,内部で +\begin{description} +\item[標準] フォント名(\texttt{HGMinchoE} など) +\item[{\tt 90jis}指定時] ファイル名 (% +\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}) +\item[{\tt jis2004}指定時] ファイル名 (% +\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}) +\end{description} +として指定を行っているので注意すること. +%</ja> + +\clearpage %<en>\part{Implementations} %<ja>\part{実装} \label{part-imp} @@ -7787,7 +8037,7 @@ for its label before the actual contents. So \dots %</en> %<*ja> 「段落の開始」を意味するノード. -list環境,itemize環境などにおいて,\cs{item} で始まる各項目は…… +\texttt{list}環境,\texttt{itemize}環境などにおいて,\cs{item} で始まる各項目は…… %</ja> \item[\textit{direction}] @@ -7803,7 +8053,7 @@ These whatsits will be removed during the process of inserting \textbf{JAglue}s. %<en>\subsection{Stack system of \LuaTeX-ja} %<ja>\subsection{\LuaTeX-jaのスタックシステム} -\label{ssec-stack} +\label{ssec:stack} %<en>\paragraph{Background} %<ja>\paragraph{背景} @@ -7827,7 +8077,7 @@ source: \end{LTXexample} %<*en> -As described in Subsection~\ref{ssec-param}, the only effective value of +As described in Subsection~\ref{ssec:param}, the only effective value of \Param{kanjiskip} in an hbox is the latest value, so the value of \Param{kanjiskip} which applied in the entire hbox should be 5\,pt. However, by the implementation method of \LuaTeX, this ``5\,pt'' cannot be @@ -7835,7 +8085,7 @@ known from any callbacks. In the \texttt{tex/packaging.w}, which is a file in the source of \LuaTeX, there are the following codes: %</en> %<*ja> -\ref{ssec-param}節で述べたように,あるhboxの中で効力を持つ +\ref{ssec:param}節で述べたように,あるhboxの中で効力を持つ \Param{kanjiskip}の値は最後に現れた値のみであり,したがってボックス全体に適用される \Param{kanjiskip}は5\,ptであるべきである.しかし,\LuaTeX の実 装を観察すると,この5\,ptという長さはどのコールバックからも知ることはできないことがわかる. @@ -8132,7 +8382,7 @@ function luatexja.unary_pars.hoge (t) end \end{lstlisting} Here the argument of \verb+luatexja.unary_pars.hoge+ is -the stack level of \LuaTeX-ja's stack system (see Subsection~\ref{ssec-stack}). +the stack level of \LuaTeX-ja's stack system (see Subsection~\ref{ssec:stack}). On the other hand, for parameters that need an additional argument (this must be an integer), one have to define a function in @@ -8163,7 +8413,7 @@ function luatexja.unary_pars.hoge (t) end \end{lstlisting} を実行すると,\verb+\ltjgetparameter{hoge}+ は \texttt{42} という\emph{文字列}を返す. -関数 \verb+luatexja.unary_pars.hoge+ の引数$t$は,\ref{ssec-stack}節で述べた +関数 \verb+luatexja.unary_pars.hoge+ の引数$t$は,\ref{ssec:stack}節で述べた \LuaTeX-jaのスタックシステムにおけるスタックレベルである. 戻り値はいかなる値であっても,最終的には文字列として出力されることに注意. @@ -8475,6 +8725,8 @@ u \def\OA{$\text{\sf O}_{\text{\sf A}}$} \def\OB{$\text{\sf O}_{\text{\sf B}}$} +\def\NA{$\text{\sf N}_{\text{\sf A}}$} +\def\NB{$\text{\sf N}_{\text{\sf B}}$} \begin{defn} %<*en> A \emph{cluster} is consecutive nodes in one of the following forms, @@ -8669,7 +8921,7 @@ JFMグルーの挿入が行われない(\Param{xkanjiskip},~\Param{kanjiskip} \item[欧文] リスト中に直接/hboxの中身として出現している「\textbf{JAchar}以外の文字」.次の3つの場合が該当: \begin{itemize} \item \textit{id}が\textit{id\_glyph}である. -\item \textit{id}が\textit{id\_math}である. +\item \textit{id}が\textit{id\_math}である(つまりこのクラスタは1つの文中数式をなす). \item \textit{id}が\textit{id\_pbox}か\textit{id\_hlist}か\textit{id\_disc}であって,$\mathit{Np}.\mathit{head}$が\textbf{ALchar}. \end{itemize} \item[箱] box,またはそれに類似するもの.次の2つが該当: @@ -8725,7 +8977,7 @@ $g$は「文字コード \texttt{'boxbdd'} の文字」と\textit{Np}の間に \Param{kcatcode}の最下位ビットはこの\Param{jcharwidowpenalty}用にのみ利用される.}. \subsection{概観と典型例:2つの「和文A」の場合} -\label{ssec-cluster-wa} +\label{ssec:cluster-wa} 先に述べたように,2つの隣り合ったクラスタ,\textit{Nq}と\textit{Np}の間には, ペナルティ,\cs{vadjust},whatsitなど,行組版には関係しないものがある.模式的に表すと, \[ @@ -8891,7 +9143,7 @@ $a$は禁則処理用に\textit{Nq}と\textit{Np}の間に加えられるべき \sf 和文A& \gkf{E}{M→K}{PN}& \gkf{---}{\OA →K}{PN}& -\gkf{---}{\OA →X}{PN}& +\gkf{---}{\NA →X}{PN}& \gkf{---}{\OA}{PA}& \gkf{---}{\OA}{PN}& \gkf{---}{\OA}{PS}\\ @@ -8900,7 +9152,7 @@ $a$は禁則処理用に\textit{Nq}と\textit{Np}の間に加えられるべき \gkf{---}{K}{PS}& \gkf{---}{X}{PS}\\ \sf 欧文& -\gkf{E}{\OB →X}{PA}& +\gkf{E}{\NB →X}{PA}& \gkf{---}{X}{PS}\cr \sf 箱&\gkf{E}{\OB}{PA}\\ \sf glue&\gkf{E}{\OB}{PN}\\ @@ -8951,21 +9203,29 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K] \paragraph{和文Aと欧文の間} \textit{Nq}が\textsf{和文A}で,\textit{Np}が\textsf{欧文}の場合,JFMグルー挿入処理は次のようにして行われる. \begin{itemize} -\item 「右空白」については,まず以下に述べる\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる. +\item 「右空白」については,まず以下に述べる\textsf{欧文境界B~[\NB]}により空白を決定しようと試みる. それが失敗した場合は,\textsf{\Param{xkanjiskip}~[X]}によって定める. %\item 「左空白」については,既に述べた\textsf{line-end~[E]}をそのまま採用する.それに伴う「右空白」の補正も%同じ. \item 禁則用ペナルティも,以前述べた\textsf{P-normal~[PN]}と同じである. \end{itemize} \begin{description} -\item[Boundary-B~{[\OB]}] \textbf{JAchar}と「\textbf{JAchar}でないもの」との間に入る空白を以下によって求め, -未定義でなければそれを「右空白」として採用する. -\textsf{JFM-origin~[M]}の変種と考えて良い. -これによって定まる空白の典型例は,和文の閉じ括弧と欧文文字の間に入る半角アキである. +\item[欧文境界B~{[\NB]}] 以下で求めた量を「右空白」として採用する. +この処理は\textsf{JFM-origin~[M]}の変種と考えて良く, +典型例は「和文の閉じ括弧と欧文文字の間に入る半角アキ」である. \begin{enumerate} \item もし両クラスタの間で \cs{inhibitglue} が実行されていた場合% -(証としてwhatsitノードが自動挿入される),「右空白」は未定義. +(証としてwhatsitノードが自動挿入される),未定義. \item そうでなければ, -\textit{Nq}と「文字コードが {\tt'jcharbdd'} の文字」との間に入るグルー/カーンとして定まる. +\textit{Nq}と「文字コードが$x$の文字」との間に入るグルー/カーンとする. +この$x$は次の場合分けによる: + \begin{itemize} + \item $\mathit{Np}.\mathit{id}$が\textit{id\_math}のとき(つまりクラスタ\textit{Np}が文中数式を表す) + ときは,$x=-1$. + \item \textit{Np}の中身の中身の文字コードについて,「直前への\Param{xkanjiskip}の挿入」が禁止されている +(つまり,\Param{jaxspmode}~(or \Param{alxspmode})パラメタが偶数)ときは, + $x=\text{\texttt{'nox\_alchar'}}$. + \item 以上のいずれでもないときは,$x=\text{\texttt{'alchar'}}$. + \end{itemize} \end{enumerate} \item[\Param{xkanjiskip}~{[X]}] この段階では,\textsf{\Param{kanjiskip}~[K]}のときと同じように, @@ -8989,22 +9249,29 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K] \paragraph{欧文と和文Aの間} \textit{Nq}が\textsf{欧文}で,\textit{Np}が\textsf{和文A}の場合,JFMグルー挿入処理は上の場合とほぼ同じである. -\textsf{和文A}のクラスタが逆になるので,\textsf{Boundary-A~[\OA]}の部分が変わるだけ. +\textsf{和文A}のクラスタが逆になるので,\textsf{欧文境界B~[\NB]}の部分が変わるだけである. \begin{itemize} -\item 「右空白」については,まず以下に述べる\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる. +\item 「右空白」については,まず以下に述べる\textsf{欧文境界A~[\OA]}により空白を決定しようと試みる. それが失敗した場合は,\textsf{\Param{xkanjiskip}~[X]}によって定める. %\item \textit{Nq}が和文でないので,「左空白」は算出されない. \item 禁則用ペナルティは,以前述べた\textsf{P-normal~[PN]}と同じである. \end{itemize} \begin{description} -\item[Boundary-A~{[\OA]}] 「\textbf{JAchar}でないもの」と\textbf{JAchar}との間に入る空白を以下によって求め, -未定義でなければそれを「右空白」として採用する. -\textsf{JFM-origin~[M]}の変種と考えて良い. -これによって定まる空白の典型例は,欧文文字と和文の開き括弧との間に入る半角アキである. +\item[欧文境界A~{[\NA]}] これは\textsf{欧文境界B~[\NB]}で\textit{Np}と\textit{Nq}の役割が + 交換されたものと思えば良い. + この処理で定まる空白の典型例は,欧文文字と和文の開き括弧との間に入る半角アキである. \begin{enumerate} -\item もし両クラスタの間で \cs{inhibitglue} が実行されていた場合(証としてwhatsitノードが自動挿入される),次へ. +\item もし両クラスタの間で \cs{inhibitglue} が実行されていた場合(証としてwhatsitノードが自動挿入される), + 未定義. \item そうでなければ, -「文字コードが {\tt'jcharbdd'} の文字」と\textit{Np}との間に入るグルー/カーンとして定まる. +「文字コードが$x$の文字」と\textit{Np}との間に入るグルー/カーンと定める. +$x$は\textit{Nq}から\textsf{欧文境界B~[\NB]}におけるそれと同じ方法で定めるが, +\texttt{'nox\_alchar'}か\texttt{'alchar'}は +\begin{quote} + \textit{Nq}の中身の文字コードについて,「直後への\Param{xkanjiskip}の挿入」が禁止されている +(つまり,\Param{jaxspmode}~(or \Param{alxspmode})パラメタが2以上). +\end{quote} + か否かで判断する. \end{enumerate} \end{description} @@ -9012,9 +9279,8 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K] \textit{Nq}が\textsf{和文A}で,\textit{Np}が\textsf{箱}・グルー・カーンのいずれかであった場合, 両者の間に挿入されるJFMグルーについては同じ処理である.しかし,そこでの行分割に対する仕様が異なるので, ペナルティの挿入処理は若干異なったものとなっている. - \begin{itemize} -\item 「右空白」については,既に述べた\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる. +\item 「右空白」については,以下に述べる\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる. それが失敗した場合は,「右空白」は挿入されない. %\item 「左空白」については,既に述べた\textsf{line-end~[E]}の算出方法をそのまま採用する.それに伴う「右空白」の補正も同じ. \item 禁則用ペナルティの処理は,後ろのクラスタ\textit{Np}の種類によって異なる. @@ -9037,6 +9303,12 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K] \end{itemize} \begin{description} +\item[Boundary-B~{[\OB]}] この処理は\textsf{欧文境界B~[\NB]}と同様であり, + $x$が次によって決まることのみが異なる: + \begin{itemize} + \item \textit{Np}がグルーやカーンのときは,$x=\text{\texttt{'glue'}}$. + \item そうでない(\textit{Np}が\textsf{箱})ときは,$x=\text{\texttt{'jcharbdd'}}$. + \end{itemize} \item[P-allow~{[PA]}] \textit{Nq}と\textit{Np}の間の(a)部分にペナルティがあれば,\textsf{P-normal~[PN]}と同様に, それらの各ノードにおいてペナルティ値を$a$だけ増加させる. @@ -9065,7 +9337,7 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K] すぐ上の(\textit{Nq}と\textit{Np}の順序が逆になっている)場合と同じである. %が,「左空白」がなくなることにのみ注意. \begin{itemize} -\item 「右空白」については,既に述べた\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる. +\item 「右空白」については,以下に述べる\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる. それが失敗した場合は,「右空白」は挿入されない. %\item \textit{Nq}が和文でないので,「左空白」は算出されない. \item 禁則用ペナルティの処理は,\textit{Nq}の種類によって異なる. @@ -9080,12 +9352,21 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので, \end{description} \end{itemize} +\begin{description} +\item[Boundary-A~{[\OA]}] この処理は\textsf{欧文境界A~[\NA]}と同様であり, + $x$が次によって決まることのみが異なる: + \begin{itemize} + \item \textit{Nq}がグルーやカーンのときは,$x=\text{\texttt{'glue'}}$. + \item そうでない(\textit{Nq}が\textsf{箱})ときは,$x=\text{\texttt{'jcharbdd'}}$. + \end{itemize} +\end{description} + \paragraph{和文Aと和文Bの違い} 先に述べたように,\textsf{和文B}はhboxの中身の先頭(or 末尾)として出現している \textbf{JAchar}である.リスト内に直接ノードとして現れている\textbf{JAchar}(\textsf{和文A})との違いは, \begin{itemize} \item \textsf{和文B}に対しては,JFMの文字クラス指定から定まる空白 -\textsf{JFM-origin~[M]},\textsf{Boundary-A~[\OA]},\textsf{Boundary-B~[\OB]})の挿入は行われない. +(\textsf{JFM由来[M]},\textsf{Boundary-A~[\OA]}など)の挿入は行われない. %「左空白」の算出も行われない. 例えば, \begin{itemize} @@ -9108,12 +9389,12 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので, あ.A \end{LTXexample} \begin{itemize} -\item 1行目の\cs{inhibitglue}は\textsf{Boundary-B~[\OB]}の処理のみを抑止するので,ピリオドと「A」の間には +\item 1行目の\cs{inhibitglue}は\textsf{欧文境界B~[\NB]}の処理のみを抑止するので,ピリオドと「A」の間には \Param{xkanjiskip}(四分アキ)が入ることに注意. \item 2行目のピリオドと「A」の間においては,前者が\textsf{和文B}となる(hboxの中身の末尾として登場しているから)ので, -そもそも\textsf{Boundary-B~[\OB]}の処理は行われない.よって,\Param{xkanjiskip}が入ることとなる. +そもそも\textsf{欧文境界B~[\NB]}の処理は行われない.よって,\Param{xkanjiskip}が入ることとなる. \item 3行目では,ピリオドの属するクラスタは\textsf{和文A}である.これによって, -ピリオドと「A」の間には\textsf{Boundary-B~[\OB]}由来の半角アキが入ることになる. +ピリオドと「A」の間には\textsf{欧文境界B~[\NB]}由来の半角アキが入ることになる. \end{itemize} %</ja> @@ -9295,7 +9576,7 @@ variation selectors are ``combined'' with the previous character. \texttt{vsraw}は,ブール値の値をとるキーであり,標準ではfalseである. \begin{itemize} \item trueの場合は,異体字セレクタは「直前の文字に続けて」出力される. -もしもIVSサポート(\ref{ssec-ltjotf}節)が有効になっていた場合は, +もしもIVSサポート(\ref{ssec:ltjotf}節)が有効になっていた場合は, 以下の例(左側は入力,右側はその出力)のようになる. %</ja> \begin{LTXexample} @@ -9580,7 +9861,7 @@ the \texttt{lstlisting} environment or other environments/commands. \begin{itemize} \item \textbf{JAglue}ではないグルー \item JFMグルー(優先度\footnote{% - \ref{ssec-jfm-str}節にあるように, + \ref{ssec:jfm-str}節にあるように, 各JFMグルーには$-4$から3までの優先度がついている.場合によっては 伸びと縮みで異なる優先度が付いているかもしれない.}% 別にまとめられる) diff --git a/Master/texmf-dist/source/luatex/luatexja/tool/table_ivd_aj1.lua b/Master/texmf-dist/source/luatex/luatexja/tool/table_ivd_aj1.lua new file mode 100644 index 00000000000..cf898a47b21 --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/tool/table_ivd_aj1.lua @@ -0,0 +1,32 @@ +print([[ +return { +version = 2, +table_ivd_aj1 = {]]) + +local f = io.open('IVD_Sequences.txt') +local t, maxcid = {}, 0 +local s = f:read() +while s do + if s:match('#') then + print('-- ' .. s) + elseif s:match('Adobe.Japan.') then + local c1,c2,c3 = s:match('(%x+)%s+(%x+);%s+Adobe.Japan.;%s+CID%+(%d+)') + c1, c2, c3 = tonumber(c1, 16), tonumber(c2, 16), tonumber(c3) + if c2 and c2>=0xE0100 then + c2 = c2 - 0xE00FF + if maxcid<c3 then maxcid = c3 end + t[c3] = c2*0x200000+c1 + end + end + s = f:read() +end +f:close() + +for i=1,maxcid do + print(' ' .. tostring(t[i] or false) .. ',') +end + + +-- ( echo 'luatexja.otf.ivd_aj1 = {' ; grep 'Adobe-Japan1' IVD_Sequences.txt|sed 's/\([0-9A-F][0-9A-F]*\) \([0-9A-F][0-9A-F]*\)\;.*CID.\([0-9][0-9]*\)$/[\3]=\{0x\1,0x\2\},/' ; echo '}' ) +print([[}}]]) + diff --git a/Master/texmf-dist/source/luatex/luatexja/tool/jisx0208table.tex b/Master/texmf-dist/source/luatex/luatexja/tool/table_jisx0208.lua index f3de6b982ec..f3de6b982ec 100644 --- a/Master/texmf-dist/source/luatex/luatexja/tool/jisx0208table.tex +++ b/Master/texmf-dist/source/luatex/luatexja/tool/table_jisx0208.lua diff --git a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-24.sty b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-24.sty deleted file mode 100644 index dd6bd5b284c..00000000000 --- a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-24.sty +++ /dev/null @@ -1,358 +0,0 @@ -% -% luatexja-fontspec-24.sty -% - -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luatexja-fontspec-24}[2017/04/19 fontspec support of LuaTeX-ja] -\RequirePackage{l3keys2e,luatexja} -\ExplSyntaxOn - -%%%%%%%% Change Japanese font family by \rmfamily or not -\cs_new:Npn \ltj_fontspec_match_cmd { - \renewcommand\jttdefault{\gtdefault} - \@ltj@match@familytrue - \DeclareDocumentCommand \setmonojfont { O{} m } { - \ltj_fontspec_set_family:Nnn \jttdefault {##1}{##2} - \normalfont - } -} -\bool_if:NT \ltj_fontspec_match_bool \ltj_fontspec_match_cmd -%%%%%%%% Messages - -\msg_new:nnn {luatexja-fontspec} {addjfontfeatures-ignored} -{ - \string\addjfontfeature (s)~ ignored;\\ - it~ cannot~ be~ used~ with~ a~ font~ that~ wasn't~ selected~ by~ luatexja-fontspec. -} - -\msg_new:nnn {luatexja-fontspec} {altfont-ignored-by-norange} -{ - ignored~ sublist~ `#1'~ in~ AltFont~ (no~ range~ is~ specified). -} - -\msg_new:nnn {luatexja-fontspec} {altfont-ignored-by-rangeonly} -{ - ignored~ sublist~ `#1'~ in~ AltFont~ (only~ range~ is~ specified). -} - -\cs_generate_variant:Nn \prg_new_conditional:Nnn {Nnx} - -%%%%%%%% Internal control sequences -%% Each CS is ltj_fontspec version that corresponds to original CS of fontspec. -\cs_new:Nn \ltj_fontspec_define_option:nn { - \__fontspec_keys_define_code:nnn {fontspec} {#1} {#2} -} -\cs_new:Nn \ltj_fontspec_define_preparse_external:nn { - \__fontspec_keys_define_code:nnn {fontspec-preparse-external} {#1} {#2} -} -\cs_new:Nn \ltj_fontspec_define_altfont_option:nn { - \__fontspec_keys_define_code:nnn {fontspec-ltjaltfont} {#1} {#2} -} - -%% Alternate Fonts -%% Spec: AltFont = { -%% ... -%% { Range = <range>, <font features> }, -%% { Range = <range>, Font = <font name>, <font features> }, -%% { Range = <range>, Font = <font name> }, -%% ... -%% } -\tl_new:N \l_ltj_fontspec_altname_tl -\tl_new:N \l_ltj_fontspec_altrange_tl -\clist_new:N \l_ltj_fontspec_altfont_clist -\clist_new:N \l_ltj_fontspec_altfont_leftover_clist -\int_new:N \g_ltj_fontspec_altnumber_int - -\ltj_fontspec_define_altfont_option:nn {Range} { - \tl_set:Nn \l_ltj_fontspec_altrange_tl {#1} -} -\ltj_fontspec_define_altfont_option:nn {Font} { - \fontspec_complete_fontname:Nn \l_ltj_fontspec_altname_tl {#1} -} -\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {AltFont} { - \clist_put_right:Nn \l_ltj_fontspec_altfont_clist { #1 } -} -\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {YokoFeatures} { - \clist_put_right:Nn \l_ltj_fontspec_fontfeat_yoko_clist { #1 } -} -\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {TateFeatures} { - \clist_put_right:Nn \l_ltj_fontspec_fontfeat_tate_clist { #1 } -} -\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {TateFont} { - \tl_if_empty:nF {#1} { - \fontspec_complete_fontname:Nn \l_ltj_fontspec_fontname_tate_tl {#1} - } -} -%% -\clist_new:N \l_ltj_fontspec_fontfeat_yoko_clist -\clist_new:N \l_ltj_fontspec_fontfeat_tate_clist -\tl_new:N \l_ltj_fontspec_fontname_tate_tl - -\cs_new:Npn \ltj_fontspec_DeclareFontFamily #1 #2 #3 { - \DeclareKanjiFamily {JY3} {#2} {#3} - \DeclareKanjiFamily {JT3} {#2} {#3} -} - -\cs_set_eq:NN \__ltj_orig_fontspec_select:nn \fontspec_select:nn -\cs_new:Nn \ltj_fontspec_select:nn { - \group_begin: - \ltj_fontspec_define_option:nn {AltFont} { - \clist_put_right:Nn \l_ltj_fontspec_altfont_clist {##1} - } - \ltj_fontspec_define_option:nn {CID} { - \__fontspec_update_featstr:n {cid=##1} - } - \ltj_fontspec_define_option:nn {Kanjiskip} { - \str_if_eq_x:nnTF {false} { \str_lower_case:n { ##1 } }{ - \__fontspec_update_featstr:n {-ltjksp} - } { - \__fontspec_update_featstr:n {+ltjksp} - } - } - \ltj_fontspec_define_option:nn {JFM} { - \__fontspec_update_featstr:n {jfm=##1} - } - % vary by shape - \ltj_fontspec_define_option:nn {YokoFeatures} { - \clist_put_right:Nn \l_ltj_fontspec_fontfeat_yoko_clist { ##1 } - } - \ltj_fontspec_define_option:nn {TateFeatures} { - \clist_put_right:Nn \l_ltj_fontspec_fontfeat_tate_clist { ##1 } - } - \ltj_fontspec_define_option:nn {TateFont} - { - \tl_if_empty:nF {##1} { - \fontspec_complete_fontname:Nn \l_ltj_fontspec_fontname_tate_tl {##1} - } - } - \ltj_fontspec_define_option:nn {JFM-var} { - \__fontspec_update_featstr:n {jfmvar=##1} - } - \ltj_fontspec_define_preparse_external:nn {NoEmbed} { - \cs_set:Nn \__fontspec_namewrap:n {psft:####1} - } - %% Omit the warning message - %% "OpenType feature 'Kerning=Off' (-kern) not available ..." - \ltj_fontspec_define_option:nn {Kerning/Off} { - \__fontspec_update_featstr:n {-kern} - } - \clist_set:Nx \g__fontspec_default_fontopts_clist { - YokoFeatures = { JFM=ujis }, TateFeatures = { JFM=ujisv }, - Scale=\fp_use:N \g_ltj_fontspec_scale_fp, Kerning=Off, Script=CJK, - \g__ltj_fontspec_default_fontopts_clist - } - \prop_set_eq:NN \g__fontspec_fontopts_prop \g__ltj_fontspec_fontopts_prop - \cs_set_eq:NN \__fontspec_make_font_shapes:Nnnnn \ltj_fontspec_make_font_shapes:Nnnnn - \cs_set_eq:NN \DeclareFontFamily \ltj_fontspec_DeclareFontFamily - \tl_set:Nn \g_fontspec_encoding_tl {JY3} - \__ltj_orig_fontspec_select:nn{#1}{#2} - \group_end: -} - -%% declare_shape - -\cs_new:Nn \ltj_fontspec_declare_shape_yoko:nnnn { - \ltj_fontspec_declare_shape_aux:nnnnnn {#1} {#2} {#3} {#4} { JY3 } { \l_ltj_fontspec_fontfeat_yoko_clist } -} -\cs_new:Nn \ltj_fontspec_declare_shape_tate:nnnn { - \ltj_fontspec_declare_shape_aux:nnnnnn {#1} {#2} {#3} {#4} { JT3 } { \l_ltj_fontspec_fontfeat_tate_clist } -} -\cs_new:Nn \ltj_fontspec_declare_shape:nnnn { - \ltj_fontspec_declare_shape_yoko:nnnn {#1} {#2} {#3} {#4} - \ltj_fontspec_declare_shape_tate:nnnn {#1} {#2} {#3} {#4} -} -\cs_generate_variant:Nn \ltj_fontspec_declare_shape:nnnn {nnxx} -\cs_generate_variant:Nn \ltj_fontspec_declare_shape_yoko:nnnn {nnxx} -\cs_generate_variant:Nn \ltj_fontspec_declare_shape_tate:nnnn {nnxx} - -\cs_new:Nn \ltj_fontspec_declare_shape_aux:nnnnnn - { - \tl_clear:N \l__fontspec_nfss_tl - \tl_clear:N \l__fontspec_nfss_sc_tl - \tl_set_eq:NN \l__fontspec_saved_fontname_tl \l_fontspec_fontname_tl - - \tl_set:Nn \g_fontspec_encoding_tl {#5} - \tl_set:Nn \l__fontspec_nfss_enc_tl {#5} - \exp_args:Nx \clist_map_inline:nn {#4} - { - \tl_clear:N \l__fontspec_size_tl - \tl_set_eq:NN \l__fontspec_sizedfont_tl \l__fontspec_saved_fontname_tl % in case not spec'ed - - \keys_set_known:nxN {fontspec-sizing} { \exp_after:wN \use:n ##1 } - \l__fontspec_sizing_leftover_clist - \tl_if_empty:NT \l__fontspec_size_tl { \__fontspec_error:n {no-size-info} } - - \str_if_eq:nnTF { #5 } { JY3 } { - % "normal" - \__fontspec_load_fontname:n {\l__fontspec_sizedfont_tl} - } { - \tl_if_empty:NTF \l_ltj_fontspec_fontname_tate_tl - { \__fontspec_load_fontname:n {\l__fontspec_sizedfont_tl} } - { \__fontspec_load_fontname:n {\l_ltj_fontspec_fontname_tate_tl} } - } - \__fontspec_setup_nfss:Nnn \l__fontspec_nfss_tl {#3} {#6} - } - \bool_set_true:N \l__fontspec_nosc_bool - \__fontspec_declare_shapes_normal:nn {#1} {#2} - \__fontspec_declare_shape_slanted:nn {#1} {#2} - } - -\cs_new:Nn \ltj_fontspec_set_family:Nnn { - \cs_set_eq:NN \fontspec_select:nn \ltj_fontspec_select:nn - \__ltj_orig_fontspec_set_family:Nnn #1 {#2} {#3} - \cs_set_eq:NN \fontspec_select:nn \__ltj_orig_fontspec_select:nn -} -\cs_set_eq:NN \__ltj_orig_fontspec_set_family:Nnn \fontspec_set_family:Nnn -\cs_set_eq:NN \__ltj_orig_fontspec_make_font_shapes:Nnnnn \__fontspec_make_font_shapes:Nnnnn -\cs_set_eq:NN \__ltj_fontspec_orig_DeclareFontShape \DeclareFontShape - -\cs_new:Nn \ltj_fontspec_make_font_shapes:Nnnnn { - \group_begin: - %% 基底フォント - \cs_set_eq:NN \__fontspec_font_set:Nnn \use_none:nnn - \cs_set_eq:NN \__fontspec_font_if_null:NT \use_none:nn - \cs_set_eq:NN \__fontspec_declare_shape:nnxx \ltj_fontspec_declare_shape:nnxx - \__ltj_orig_fontspec_make_font_shapes:Nnnnn {#1} {#2} {#3} {#4} {#5} - %% - \ltj_fontspec_make_font_shapes_alt:Nnnnnn {#1}{#2}{#3} - {#4, \l_ltj_fontspec_fontfeat_yoko_clist}{#5} {JY3 } - \ltj_fontspec_make_font_shapes_alt:Nnnnnn {#1}{#2}{#3} - {#4, \l_ltj_fontspec_fontfeat_tate_clist}{#5} {JT3} - \group_end: - } - -%%% Altfont 内部処理部 -\cs_new:Nn \ltj_fontspec_make_font_shapes_alt:Nnnnnn { - \group_begin: - \str_if_eq:nnTF { #6 } { JY3 } { - \cs_set_eq:NN \__fontspec_declare_shape:nnxx \ltj_fontspec_declare_shape_yoko:nnxx - }{ - \cs_set_eq:NN \__fontspec_declare_shape:nnxx \ltj_fontspec_declare_shape_tate:nnxx - } - \keys_set_known:nn {fontspec-ltjaltfont-reparse} { #4 } - \clist_if_empty:NF \l_ltj_fontspec_altfont_clist { - \int_gzero:N \g_ltj_fontspec_altnumber_int - \clist_map_inline:Nn \l_ltj_fontspec_altfont_clist { - \tl_clear:N \l_ltj_fontspec_altrange_tl - \tl_set:Nn \l_ltj_fontspec_altname_tl { #1 } - \tl_set:Nn \l_tmpa_tl { #1 } - - \keys_set_known:nxN {fontspec-ltjaltfont} { \exp_after:wN \use:n ##1 } - \l_ltj_fontspec_altfont_leftover_clist - \keys_set_known:nn {fontspec-ltjaltfont-reparse} { \exp_after:wN \use:n ##1 } - - \tl_if_empty:NT \l_ltj_fontspec_altrange_tl { - \msg_warning:nnn {luatexja-fontspec} {altfont-ignored-by-norange} { ##1 } - } { - \bool_if:nTF { - \tl_if_eq_p:NN \l_ltj_fontspec_altname_tl \l_tmpa_tl - && - \tl_if_empty_p:N \l_ltj_fontspec_altfont_leftover_clist - } { - \msg_warning:nnn {luatexja-fontspec} {altfont-ignored-by-rangeonly} { ##1 } - } { - \__ltj_orig_fontspec_make_font_shapes:Nnnnn - { \l_ltj_fontspec_altname_tl } {#2} - {#3 _ alt \int_use:N \g_ltj_fontspec_altnumber_int } - {#4, \l_ltj_fontspec_altfont_leftover_clist } - {#5} - \DeclareAlternateKanjiFont - { #6 }{ \l_fontspec_family_tl }{#2}{#3}% - { #6 }{ \l_fontspec_family_tl }{#2} - { #3 _alt \int_use:N \g_ltj_fontspec_altnumber_int } - { \l_ltj_fontspec_altrange_tl } - \int_gincr:N \g_ltj_fontspec_altnumber_int - } - } - } - } - \group_end: -} - - -%%%%%%%% User commands -\DeclareDocumentCommand \jfontspec { O{} m O{} } { - \ltj_fontspec_set_family:Nnn \k@family {#1,#3}{#2} - \selectfont - \ignorespaces -} - -\DeclareDocumentCommand \setmainjfont { O{} m O{} } { - \ltj_fontspec_set_family:Nnn \mcdefault {#1,#3}{#2} - \DeclareSymbolFont{mincho}{JY3}{\l_fontspec_family_tl}{m}{n} - \SetSymbolFont{mincho}{bold}{JY3}{\l_fontspec_family_tl}{bx}{n} - \normalfont -} - -\DeclareDocumentCommand \setsansjfont { O{} m O{} } { - \ltj_fontspec_set_family:Nnn \gtdefault {#1,#3}{#2} - \DeclareMathAlphabet{\mathgt}{JY3}{\l_fontspec_family_tl}{m}{n} - \normalfont -} - -\DeclareDocumentCommand \newjfontfamily { m O{} m O{} } { - \cs_set_eq:NN \fontspec_set_family:Nnn \ltj_fontspec_set_family:Nnn - \newfontfamily #1 [#2,#4] {#3} - \cs_set_eq:NN \fontspec_set_family:Nnn \__ltj_orig_fontspec_set_family:Nnn -} - -\DeclareDocumentCommand \newjfontface { m O{} m O{} } { - \newjfontfamily #1 [ BoldFont={},ItalicFont={},SmallCapsFont={},#2,#4 ] {#3} -} - -\clist_new:N \g__ltj_fontspec_default_fontopts_clist -\prop_new:N \g__ltj_fontspec_fontopts_prop -\DeclareDocumentCommand \defaultjfontfeatures { t+ o m } - { - \IfNoValueTF {#2} - { \__ltj_fontspec_set_default_features:nn {#1} {#3} } - { \__ltj_fontspec_set_font_default_features:nnn {#1} {#2} {#3} } - \ignorespaces - } -\cs_new:Nn \__ltj_fontspec_set_default_features:nn - { - \clist_set_eq:NN \l__ltj_fontspec_tmp_clist \g__fontspec_default_fontopts_clist - \clist_set_eq:NN \g__fontspec_default_fontopts_clist \g__ltj_fontspec_default_fontopts_clist - \__fontspec_set_default_features:nn {#1} {#2} - \clist_set_eq:NN \g__ltj_fontspec_default_fontopts_clist \g__fontspec_default_fontopts_clist - \clist_set_eq:NN \g__fontspec_default_fontopts_clist \l__ltj_fontspec_tmp_clist - } -\cs_new:Nn \__ltj_fontspec_set_font_default_features:nnn - { - \prop_set_eq:NN \l__ltj_fontspec_tmp_prop \g__fontspec_fontopts_prop - \prop_set_eq:NN \g__fontspec_fontopts_prop \g__ltj_fontspec_fontopts_prop - \__fontspec_set_font_default_features:nnn {#1} {#2} {#3} - \prop_set_eq:NN \g__ltj_fontspec_fontopts_prop \g__fontspec_fontopts_prop - \prop_set_eq:NN \g__fontspec_fontopts_prop \l__ltj_fontspec_tmp_prop - } - -\DeclareDocumentCommand \addjfontfeatures {m} { - \ltj_fontspec_if_fontspec_font:TF - { - \group_begin: - \tl_set_eq:NN \f@family \k@family - \cs_set_eq:NN \fontspec_select:nn \ltj_fontspec_select:nn - \addfontfeatures {#1} - \group_end: - \fontfamily\l_fontspec_family_tl\selectfont - }{ - \msg_warning:nn {luatexja-fontspec} {addjfontfeatures-ignored} - } - \ignorespaces -} - -\cs_set_eq:NN \addjfontfeature \addjfontfeatures - -\prg_new_conditional:Nnn \ltj_fontspec_if_fontspec_font: {TF,T,F} -{ - \cs_if_exist:cTF {g__fontspec_ \k@family _prop} \prg_return_true: \prg_return_false: -} - -%%% CJKShape=JIS2004 -\__fontspec_define_feature_option:nnnnn{CJKShape}{JIS2004}{20}{100}{+jp04} -%%% CharacterWidth={VerticalAlternateProportional, VerticalAlternateHalf} -\__fontspec_define_feature_option:nnnnn{CharacterWidth}{VerticalAlternateProportional}{22}{100}{+vpal} -\__fontspec_define_feature_option:nnnnn{CharacterWidth}{VerticalAlternateHalf}{22}{101}{+vhal} -\__fontspec_define_feature_option:nnnnn{Kerning}{Vertical} {}{}{+vkrn} - -\endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec.sty b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec.sty index c3ae22a79f2..848eedbd68a 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec.sty @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luatexja-fontspec}[2017/05/05 fontspec support of LuaTeX-ja] +\ProvidesPackage{luatexja-fontspec}[2017/06/25 fontspec support of LuaTeX-ja] \RequirePackage{l3keys2e,luatexja} \ExplSyntaxOn @@ -26,10 +26,11 @@ unknown .code:n = \PassOptionsToPackage { \l_keys_key_tl } {fontspec}, } \ProcessKeysOptions{ luatexja-fontspec } -\RequirePackage{fontspec}[2014/06/01]% v2.4 -\@ifpackagelater{fontspec}{2017/01/01}% - {\RequirePackage{luatexja-fontspec-25c}}% v2.5c - {\RequirePackage{luatexja-fontspec-24}}% --v2.5a +\RequirePackage{fontspec}[2017/01/01]% v2.5c +\RequirePackage{luatexja-fontspec-25c} +%\@ifpackagelater{fontspec}{2017/01/01}% +% {\RequirePackage{luatexja-fontspec-25c}}% v2.5c +% {\RequirePackage{luatexja-fontspec-24}}% --v2.5a \ExplSyntaxOff %%%%%%%% Now we completely ignore kanjifont definition file. diff --git a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-otf.sty b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-otf.sty index 845b1a2aa74..ad421d0e1d4 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-otf.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-otf.sty @@ -64,7 +64,7 @@ \expandafter\let\csname ifltj@in@latex\expandafter\endcsname \csname iftrue\endcsname \NeedsTeXFormat{LaTeX2e} - \ProvidesPackage{luatexja-otf}[2017/05/05] + \ProvidesPackage{luatexja-otf}[2017/05/20] \fi %</LaTeX> % Load core module if not yet. @@ -97,8 +97,107 @@ \RequirePackage{luatexja-ajmacros} \else %<*!LaTeX> \input luatexja-ajmacros.sty % + % \bou is defined in lltjext, \mbox is defined in LaTeX kernel + \def\boutenchar{\char\euc"A1A2}%" + \def\bou#1{\ifvmode\leavevmode\fi\@bou#1\end} + \def\@bou#1{% + \ifx#1\end \let\next=\relax + \else + \ifnum\ltjgetparameter{direction}=3\relax + \hbox to\z@{\vbox to\z@{\boxmaxdepth\maxdimen + \vss\moveleft0.2\zw\hbox{\yoko\boutenchar}\nointerlineskip + \hbox{\char\euc"A1A1}}\hss}\nobreak#1\relax + \else + \hbox to\z@{\vbox to\z@{\boxmaxdepth\maxdimen + \vss\moveleft-0.2\zw\hbox{\boutenchar}\nointerlineskip + \hbox{\char\euc"A1A1}}\hss}\nobreak#1\relax + \fi + \let\next=\@bou + \fi\next} + \long\def\mbox#1{\leavevmode\hbox{#1}} \fi %</LaTeX> +% macros from otf.sty +%for literature +\protected\def\ajKunoji{% + \ifnum\ltjgetparameter{direction}=3 \mbox{\UTF{3033}\UTF{3035}}\else + \@PackageError{luatexja-otf}{A TATE character in YOKO mode!}{Change a direction to TATE.}%2003/03/12 + \fi} +\protected\def\ajKunojiwithBou{% + \ifnum\ltjgetparameter{direction}=3 \mbox{\bou{\mbox{\UTF{3033}}}\bou{\mbox{\UTF{3035}}}}\else + \@PackageError{luatexja-otf}{A TATE character in YOKO mode!}{Change a direction to TATE.}%2003/03/12 + \fi} +\protected\def\ajDKunoji{% + \ifnum\ltjgetparameter{direction}=3 \mbox{\UTF{3034}\UTF{3035}}\else + \@PackageError{luatexja-otf}{A TATE character in YOKO mode!}{Change a direction to TATE.}%2003/03/12 + \fi} +\protected\def\ajDKunojiwithBou{% + \ifnum\ltjgetparameter{direction}=3 \mbox{\bou{\mbox{\UTF{3034}}}\bou{\mbox{\UTF{3035}}}}\else + \@PackageError{luatexja-otf}{A TATE character in YOKO mode!}{Change a direction to TATE.}%2003/03/12 + \fi} +\protected\def\ajNinoji{\CID{12106}} +\protected\def\ajvarNinoji{% + \ifnum\ltjgetparameter{direction}=3 \CID{12107}\else + \@PackageError{luatexja-otf}{A TATE character in YOKO mode!}{Change a direction to TATE.}%2003/03/12 + \fi} +\protected\def\ajYusuriten{% + \ifnum\ltjgetparameter{direction}=3 \CID{16193}\else + \@PackageError{luatexja-otf}{A TATE character in YOKO mode!}{Change a direction to TATE.}%2003/03/12 + \fi} +\protected\def\ajMasu{\UTF{303c}} +\protected\def\ajYori{\UTF{309f}} +\protected\def\ajKoto{\UTF{30ff}} +\protected\def\ajUta{\UTF{303d}} +%dingbats +\protected\def\ajCommandKey{\UTF{2318}} +\protected\def\ajReturnKey{\UTF{23ce}} +\protected\def\ajCheckmark{\UTF{2713}} +\protected\def\ajVisibleSpace{\UTF{2423}} +\protected\def\ajSenteMark{\UTF{2617}} +\protected\def\ajGoteMark{\UTF{2616}} +\protected\def\ajClub{\UTF{2663}} +\protected\def\ajHeart{\UTF{2661}} +\protected\def\ajSpade{\UTF{2660}} +\protected\def\ajDiamond{\UTF{2662}} +\protected\def\ajvarClub{\UTF{2667}} +\protected\def\ajvarHeart{\UTF{2665}} +\protected\def\ajvarSpade{\UTF{2664}} +\protected\def\ajvarDiamond{\UTF{2666}} +\protected\def\ajPhone{\UTF{260e}} +\protected\def\ajPostal{\UTF{3020}} +\protected\def\ajvarPostal{\UTF{3036}} +\protected\def\ajSun{\UTF{2600}} +\protected\def\ajCloud{\UTF{2601}} +\protected\def\ajUmbrella{\UTF{2602}} +\protected\def\ajSnowman{\UTF{2603}} +\protected\def\ajJIS{\UTF{3004}} +\protected\def\ajJAS{\CID{12088}} +\protected\def\ajBall{\CID{12097}} +\protected\def\ajHotSpring{\UTF{2668}} +\protected\def\ajWhiteSesame{\UTF{fe46}} +\protected\def\ajBlackSesame{\UTF{fe45}} +\protected\def\ajWhiteFlorette{\UTF{2740}} +\protected\def\ajBlackFlorette{\UTF{273f}} +\protected\def\ajRightBArrow{\CID{8206}} +\protected\def\ajLeftBArrow{\CID{8207}} +\protected\def\ajUpBArrow{\CID{8208}} +\protected\def\ajDownBArrow{\CID{8209}} +\protected\def\ajRightHand{\CID{8219}} +\protected\def\ajLeftHand{\CID{8220}} +\protected\def\ajUpHand{\CID{8221}} +\protected\def\ajDownHand{\CID{8222}} +\protected\def\ajRightScissors{\CID{12176}} +\protected\def\ajLeftScissors{\CID{12175}} +\protected\def\ajUpScissors{\CID{12177}} +\protected\def\ajDownScissors{\CID{12178}} +\protected\def\ajRightWArrow{\CID{12197}} +\protected\def\ajLeftWArrow{\CID{12196}} +\protected\def\ajUpWArrow{\CID{12198}} +\protected\def\ajDownWArrow{\CID{12199}} +\protected\def\ajRightDownArrow{\CID{12202}} +\protected\def\ajLeftDownArrow{\CID{12203}} +\protected\def\ajLeftUpArrow{\CID{12204}} +\protected\def\ajRightUpArrow{\CID{12205}} %%------------------ all done \ltj@otf@AtEnd diff --git a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty index 6a71e23d24f..d5c3d1a07bf 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty @@ -1,5 +1,5 @@ % luatexja-preset.sty -\ProvidesPackage{luatexja-preset}[2017/05/05 Japanese font presets] +\ProvidesPackage{luatexja-preset}[2017/07/30 Japanese font presets] \RequirePackage{expl3,l3keys2e} \RequirePackage{luatexja} @@ -58,22 +58,40 @@ % font preset \bool_new:N \l_ltjpreset_office_bool % MS Office の HG 系フォントを使っているか \bool_new:N \l_ltjpreset_noembed_bool % 非埋込か -\clist_new:N \l_ltjpreset_font_list + +\prop_new:N \l_ltjpreset_font_prop +\keys_define:nn { ltjpreset_set_font_list } { + mc .code:n = + \prop_put:Nnn \l_ltjpreset_font_prop { mc-l } {#1} + \prop_put:Nnn \l_ltjpreset_font_prop { mc-m } {#1} + \prop_put:Nnn \l_ltjpreset_font_prop { mc-bx } {#1}, + gt .code:n = + \prop_put:Nnn \l_ltjpreset_font_prop { gt-u } {#1} + \prop_put:Nnn \l_ltjpreset_font_prop { gt-m } {#1} + \prop_put:Nnn \l_ltjpreset_font_prop { gt-bx } {#1} + \prop_put:Nnn \l_ltjpreset_font_prop { gt-eb } {#1}, + unknown .code:n = + \prop_put:Non \l_ltjpreset_font_prop { \l_keys_key_tl } {#1} +} + + \cs_new:Npn \ltjpreset_set_uni:nn #1#2 { - \ltjpreset_set_multi:n { #1, #2, #2, #2, #2, #2, #2 } + \keys_set:nn { ltjpreset_set_font_list } { + mc = #1, gt = #2, mc-bx = #2, mg-m = #2, + } } \cs_new:Npn \ltjpreset_set_multi:n #1 { - \clist_set:Nn \l_ltjpreset_font_list { #1 } + \keys_set:nn { ltjpreset_set_font_list } { #1 } \bool_set_false:N \l_ltjpreset_office_bool \bool_set_false:N \l_ltjpreset_noembed_bool } \cs_new:Npn \ltjpreset_set_office:nn #1 #2{ \ltjpreset_set_multi:n { - #1, HGMinchoE , % mc/m, mc/bx - HGGothicM , HGGothicE , % gt/m, gt/bx (multiweight)) - #2 , HGSoeiKakugothicUB , % gt/m (uni), gt/eb - HGMaruGothicMPRO % mg/m + mc-m = #1, mc-bx = HGMinchoE , + gt-m = HGGothicM , gt-bx = HGGothicE , + gt-u = #2 , gt-eb = HGSoeiKakugothicUB , + mg-m = HGMaruGothicMPRO } \bool_set_true:N \l_ltjpreset_office_bool } @@ -93,98 +111,83 @@ %% Pro \ltjpreset_declare_option:nn{kozuka-pro}{ \ltjpreset_set_multi:n { - KozMinPro-Regular , % mc/m - KozMinPro-Bold , % mc/bx - KozGoPro-Regular , % gt/m (multi) - KozGoPro-Bold , % gt/bx - KozGoPro-Medium , % gt/m (uni) - KozGoPro-Heavy , % gt/eb - KozGoPro-Heavy % mg/m + mc-m = KozMinPro-Regular, mc-bx = KozMinPro-Bold, + gt-m = KozGoPro-Regular, gt-bx = KozGoPro-Bold, + gt-u = KozGoPro-Medium, gt-eb = KozGoPro-Heavy, + mg-m = KozGoPro-Heavy, mc-l = KozMinPro-Light, } } %% Pr6 \ltjpreset_declare_option:nn{kozuka-pr6}{ \ltjpreset_set_multi:n { - KozMinProVI-Regular , % mc/m - KozMinProVI-Bold , % mc/bx - KozGoProVI-Regular , % gt/m (multi) - KozGoProVI-Bold , % gt/bx - KozGoProVI-Medium , % gt/m (uni) - KozGoProVI-Heavy , % gt/eb - KozGoProVI-Heavy % mg/m + mc-m = KozMinProVI-Regular, mc-bx = KozMinProVI-Bold, + gt-m = KozGoProVI-Regular, gt-bx = KozGoProVI-Bold, + gt-u = KozGoProVI-Medium, gt-eb = KozGoProVI-Heavy, + mg-m = KozGoProVI-Heavy, mc-l = KozMinProVI-Light, } } %% Pr6N \ltjpreset_declare_option:nn{kozuka-pr6n}{ \ltjpreset_set_multi:n { - KozMinPr6N-Regular , % mc/m - KozMinPr6N-Bold , % mc/bx - KozGoPr6N-Regular , % gt/m (multi) - KozGoPr6N-Bold , % gt/bx - KozGoPr6N-Medium , % gt/m (uni) - KozGoPr6N-Heavy , % gt/eb - KozGoPr6N-Heavy % mg/m + mc-m = KozMinPr6N-Regular, mc-bx = KozMinPr6N-Bold, + gt-m = KozGoPr6N-Regular, gt-bx = KozGoPr6N-Bold, + gt-u = KozGoPr6N-Medium, gt-eb = KozGoPr6N-Heavy, + mg-m = KozGoPr6N-Heavy, mc-l = KozMinPr6N-Light, } } % ヒラギノ (OSX) \ltjpreset_declare_option:nn{hiragino-pro}{ \ltjpreset_set_multi:n { - HiraMinPro-W3 , - HiraMinPro-W6 , - HiraKakuPro-W3 , % gt/m (multi) - HiraKakuPro-W6 , - HiraKakuPro-W6 , % gt/m (uni) - HiraKakuStd-W8 , - HiraMaruPro-W4 , + mc-m = HiraMinPro-W3, mc-bx = HiraMinPro-W6, + gt-m = HiraKakuPro-W3, gt-bx = HiraKakuPro-W6, + gt-u = HiraKakuPro-W6, gt-eb = HiraKakuStd-W8, + mg-m = HiraMaruPro-W4, mc-l = HiraMinPro-W2, } } \ltjpreset_declare_option:nn{hiragino-pron}{ \ltjpreset_set_multi:n { - HiraMinProN-W3 , - HiraMinProN-W6 , - HiraKakuProN-W3 , % gt/m (multi) - HiraKakuProN-W6 , - HiraKakuProN-W6 , % gt/m (uni) - HiraKakuStdN-W8 , - HiraMaruProN-W4 , + mc-m = HiraMinProN-W3, mc-bx = HiraMinProN-W6, + gt-m = HiraKakuProN-W3, gt-bx = HiraKakuProN-W6, + gt-u = HiraKakuProN-W6, gt-eb = HiraKakuStdN-W8, + mg-m = HiraMaruProN-W4, mc-l = HiraMinProN-W2, } } % モリサワ \ltjpreset_declare_option:nn{morisawa-pro}{ \ltjpreset_set_multi:n { - A-OTF-RyuminPro-Light.otf , A-OTF-FutoMinA101Pro-Bold.otf , % mc/m, mc/bx - A-OTF-GothicBBBPro-Medium.otf , A-OTF-FutoGoB101Pro-Bold.otf , % gt/m, gt/bx (multiweight)) - A-OTF-GothicBBBPro-Medium.otf , A-OTF-MidashiGoPro-MB31.otf , % gt/m (uni), gt/eb - A-OTF-Jun101Pro-Light.otf % mg/m + mc = A-OTF-RyuminPro-Light.otf, mc-bx = A-OTF-FutoMinA101Pro-Bold.otf, + gt-m = A-OTF-GothicBBBPro-Medium.otf , gt-bx = A-OTF-FutoGoB101Pro-Bold.otf, + gt-u = A-OTF-GothicBBBPro-Medium.otf , gt-eb = A-OTF-MidashiGoPro-MB31.otf, + mg-m = A-OTF-Jun101Pro-Light.otf, } } \ltjpreset_declare_option:nn{morisawa-pr6n}{ \ltjpreset_set_multi:n { - A-OTF-RyuminPr6N-Light.otf , A-OTF-FutoMinA101Pr6N-Bold.otf , % mc/m, mc/bx - A-OTF-GothicBBBPr6N-Medium.otf , A-OTF-FutoGoB101Pr6N-Bold.otf , % gt/m, gt/bx (multiweight)) - A-OTF-GothicBBBPr6N-Medium.otf , A-OTF-MidashiGoPr6N-MB31.otf , % gt/m (uni), gt/eb - A-OTF-ShinMGoPr6N-Light.otf % mg/m + mc = A-OTF-RyuminPr6N-Light.otf, mc-bx = A-OTF-FutoMinA101Pr6N-Bold.otf, + gt-m = A-OTF-GothicBBBPr6N-Medium.otf , gt-bx = A-OTF-FutoGoB101Pr6N-Bold.otf, + gt-u = A-OTF-GothicBBBPr6N-Medium.otf , gt-eb = A-OTF-MidashiGoPr6N-MB31.otf, + mg-m = A-OTF-Jun101Pr6N-Light.otf, } } % 游明朝/游ゴシック (Win8.1) \ltjpreset_declare_option:nn{yu-win}{ \ltjpreset_set_multi:n { - YuMincho-Regular , YuMincho-Demibold , % mc/m, mc/bx - YuGothic-Regular , YuGothic-Bold , % gt/m, gt/bx (multiweight)) - YuGothic-Regular , YuGothic-Bold , % gt/m (uni), gt/eb - YuGothic-Bold % mg/m + mc-m = YuMincho-Regular, mc-bx = YuMincho-Demibold, + gt-m = YuGothic-Regular, gt-bx = YuGothic-Bold, + gt-u = YuGothic-Regular, gt-eb = YuGothic-Bold, + mg-m = YuGothic-Bold, mc-l = YuMincho-Light } } % Win10 \ltjpreset_declare_option:nn{yu-win10}{ \ltjpreset_set_multi:n { - YuMincho-Regular , YuMincho-Demibold , % mc/m, mc/bx - YuGothic-Regular , YuGothic-Bold , % gt/m, gt/bx (multiweight)) - YuGothic-Medium , YuGothic-Bold , % gt/m (uni), gt/eb - YuGothic-Bold % mg/m + mc-m = YuMincho-Regular, mc-bx = YuMincho-Demibold, + gt-m = YuGothic-Regular, gt-bx = YuGothic-Bold, + gt-u = YuGothic-Medium, gt-eb = YuGothic-Bold, + mg-m = YuGothic-Bold, mc-l = YuMincho-Light } } @@ -192,51 +195,88 @@ % according to http://support.apple.com/kb/HT5944 \ltjpreset_declare_option:nn{yu-osx}{ \ltjpreset_set_multi:n { - YuMincho~Medium , YuMincho~Demibold , % mc/m, mc/bx - YuGothic~Medium , YuGothic~Bold , % gt/m, gt/bx (multiweight)) - YuGothic~Medium , YuGothic~Bold , % gt/m (uni), gt/eb - YuGothic~Bold % mg/m + mc = YuMincho~Medium, mc-bx = YuMincho~Demibold, + gt-m = YuGothic~Medium, gt-u = YuGothic~Medium, + gt-bx = YuGothic~Bold, gt-eb = YuGothic~Bold, + mg-m = YuGothic~Bold } } % moga-mobo \ltjpreset_declare_option:nn{moga-mobo}{ \ltjpreset_set_multi:n { - Moga90Mincho, Moga90Mincho~Bold , % mc/m, mc/bx - Moga90Gothic, Moga90Gothic~Bold, % gt/m, gt/bx (multiweight)) - Moga90Gothic, Moga90Gothic~Bold, % gt/m (uni), gt/eb - Mobo90Gothic % mg/m + mc = Moga90Mincho, mc-bx = Moga90Mincho~Bold, + gt-m = Moga90Gothic, gt-bx = Moga90Gothic~Bold, + gt-u = Moga90Gothic, gt-eb = Moga90Gothic~Bold, + mg-m = Mobo90Gothic } } \ltjpreset_declare_option:nn{moga-mobo-ex}{ \ltjpreset_set_multi:n { - MogaEx90Mincho, MogaEx90Mincho~Bold , % mc/m, mc/bx - MogaEx90Gothic, MogaEx90Gothic~Bold, % gt/m, gt/bx (multiweight)) - MogaEx90Gothic, MogaEx90Gothic~Bold, % gt/m (uni), gt/eb - MoboEx90Gothic % mg/m + mc = MogaEx90Mincho, mc-bx = MogaEx90Mincho~Bold, + gt-m = MogaEx90Gothic, gt-bx = MogaEx90Gothic~Bold, + gt-u = MogaEx90Gothic, gt-eb = MogaEx90Gothic~Bold, + mg-m = MoboEx90Gothic } } % Ume fones \ltjpreset_declare_option:nn{ume}{ \ltjpreset_set_multi:n { - Ume~Mincho, Ume~Mincho, - Ume~Gothic, Ume~Gothic~O5, - Ume~Gothic~O5, Ume~Gothic~O5, - Ume~Gothic~O4 + mc = Ume~Mincho, + gt-m = Ume~Gothic, gt-bx = Ume~Gothic~O5, + gt-u = Ume~Gothic~O5, gt-eb = Ume~Gothic~O5, + mg-m = Ume~Gothic~O4 } } % Source Han {Serif,Sans} \ltjpreset_declare_option:nn{sourcehan}{ \ltjpreset_set_multi:n { - Source~Han~Serif~Regular, % mc/m - Source~Han~Serif~Bold, % mc/bx - Source~Han~Sans~Normal, % gt/m (multi) - Source~Han~Sans~Bold, % gt/bx - Source~Han~Sans~Medium, % gt/m (uni) - Source~Han~Sans~Heavy, % gt/eb - Source~Han~Sans~Heavy % mg/m + mc-m = Source~Han~Serif~Regular, + mc-bx = Source~Han~Serif~Bold, + gt-m = Source~Han~Sans~Regular, + gt-bx = Source~Han~Sans~Bold, + gt-u = Source~Han~Sans~Medium, + gt-eb = Source~Han~Sans~Heavy, + mg-m = Source~Han~Sans~Heavy, + mc-l = Source~Han~Serif~Light, + } +} +\ltjpreset_declare_option:nn{sourcehan-jp}{ + \ltjpreset_set_multi:n { + mc-m = Source~Han~Serif~JP~Regular, + mc-bx = Source~Han~Serif~JP~Bold, + gt-m = Source~Han~Sans~JP~Regular, + gt-bx = Source~Han~Sans~JP~Bold, + gt-u = Source~Han~Sans~JP~Medium, + gt-eb = Source~Han~Sans~JP~Heavy, + mg-m = Source~Han~Sans~JP~Heavy, + mc-l = Source~Han~Serif~JP~Light, + } +} +\ltjpreset_declare_option:nn{noto-otc}{ + \ltjpreset_set_multi:n { + mc-m = Noto~Serif~CJK~Regular, + mc-bx = Noto~Serif~CJK~Bold, + gt-m = Noto~Sans~CJK~Regular, + gt-bx = Noto~Sans~CJK~Bold, + gt-u = Noto~Sans~CJK~Medium, + gt-eb = Noto~Sans~CJK~Black, + mg-m = Noto~Sans~CJK~Black, + mc-l = Noto~Serif~CJK~Light, + } +} +\ltjpreset_declare_option:nn{noto-otf}{ + \ltjpreset_set_multi:n { + mc-m = Noto~Serif~CJK~JP~Regular, + mc-bx = Noto~Serif~CJK~JP~Bold, + gt-m = Noto~Sans~CJK~JP~Regular, + gt-bx = Noto~Sans~CJK~JP~Bold, + gt-u = Noto~Sans~CJK~JP~Medium, + gt-eb = Noto~Sans~CJK~JP~Black, + mg-m = Noto~Sans~CJK~JP~Black, + mc-l = Noto~Serif~CJK~JP~Light, } } @@ -289,56 +329,54 @@ %% KozMinPr6N, HiraMinProN-W3 の場合はjp04 feature がないので,nlck にする \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 } \tl_if_eq:NNTF \l_ltjpreset_kanji_shape_tl \l_tmpa_tl { - \clist_if_in:NnT \l_ltjpreset_font_list { KozMinPr6N-Regular } + \tl_set:Nx \l_tmpb_tl { \prop_item:Nn \l_ltjpreset_font_prop { mc-m } } + \tl_if_in:NnT \l_tmpb_tl { KozMinPr6N-Regular } { \bool_set_true:N \l_ltjpreset_shape_nlck_bool } - \clist_if_in:NnT \l_ltjpreset_font_list { HiraMinProN-W3 } + \tl_if_in:NnT \l_tmpb_tl { HiraMinProN-W3 } { \bool_set_true:N \l_ltjpreset_shape_nlck_bool } - \clist_if_in:NnT \l_ltjpreset_font_list { Moga90Mincho } + \tl_if_in:NnT \l_tmpb_tl { Moga90Mincho } { - \tl_remove_all:Nn \l_ltjpreset_font_list {90} + \prop_clear:N \l_tmpa_prop + \prop_map_inline:Nn \l_ltjpreset_font_prop { + \tl_set:Nn \l_tmpb_tl { #2 } + \tl_remove_all:Nn \l_tmpb_tl {90} + \prop_put:Nnx \l_tmpa_prop { #1 } { \tl_use:N \l_tmpb_tl } + } + \prop_set_eq:NN \l_ltjpreset_font_prop \l_tmpa_prop \tl_clear:N \l_ltjpreset_kanji_shape_tl } - \clist_if_in:NnT \l_ltjpreset_font_list { MogaEx90Mincho } + \tl_if_in:NnT \l_tmpb_tl { MogaEx90Mincho } { - \tl_remove_all:Nn \l_ltjpreset_font_list {90} + \prop_clear:N \l_tmpa_prop + \prop_map_inline:Nn \l_ltjpreset_font_prop { + \tl_set:Nn \l_tmpb_tl { #2 } + \tl_remove_all:Nn \l_tmpb_tl {90} + \prop_put:Nnx \l_tmpa_prop { #1 } { \tl_use:N \l_tmpb_tl } + } + \prop_set_eq:NN \l_ltjpreset_font_prop \l_tmpa_prop \tl_clear:N \l_ltjpreset_kanji_shape_tl } }{ \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS1990 } \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl { - \clist_if_in:NnT \l_ltjpreset_font_list { Moga90Mincho } - { \tl_clear:N \l_ltjpreset_kanji_shape_tl } + \tl_set:Nx \l_tmpb_tl { \prop_item:Nn \l_ltjpreset_font_prop { mc-m } } + \tl_if_in:NnT \l_tmpb_tl { Moga90Mincho } + { \tl_clear:N \l_ltjpreset_kanji_shape_tl } } } %%%% リストからの展開 % mc/m -\clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl -\cs_set:Nx \ltjpreset_font_mc_m: { \tl_use:N \l_tmpa_tl } - -% mc/bx -\clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl -\cs_set:Nx \ltjpreset_font_mc_bx: { \tl_use:N \l_tmpa_tl } - -% gt/m -\clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl -\cs_set:Nx \ltjpreset_font_gt_m: { \tl_use:N \l_tmpa_tl } - -% gt/bx -\clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl -\cs_set:Nx \ltjpreset_font_gt_bx: { \tl_use:N \l_tmpa_tl } +\cs_set:Nx \ltjpreset_font_mc_l: { \prop_item:Nn \l_ltjpreset_font_prop { mc-l } } +\cs_set:Nx \ltjpreset_font_mc_m: { \prop_item:Nn \l_ltjpreset_font_prop { mc-m } } +\cs_set:Nx \ltjpreset_font_mc_bx: { \prop_item:Nn \l_ltjpreset_font_prop { mc-bx } } +\cs_set:Nx \ltjpreset_font_gt_m: { \prop_item:Nn \l_ltjpreset_font_prop { gt-m } } +\cs_set:Nx \ltjpreset_font_gt_u: { \prop_item:Nn \l_ltjpreset_font_prop { gt-u } } +\cs_set:Nx \ltjpreset_font_gt_bx: { \prop_item:Nn \l_ltjpreset_font_prop { gt-bx } } +\cs_set:Nx \ltjpreset_font_gt_eb: { \prop_item:Nn \l_ltjpreset_font_prop { gt-eb } } +\cs_set:Nx \ltjpreset_font_mg_m: { \prop_item:Nn \l_ltjpreset_font_prop { mg-m } } -% gt/m-uni -\clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl -\cs_set:Nx \ltjpreset_font_gt_n_uni: { \tl_use:N \l_tmpa_tl } - -% gt/eb -\clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl -\cs_set:Nx \ltjpreset_font_gt_eb: { \tl_use:N \l_tmpa_tl } - -% mg/m -\clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl -\cs_set:Nx \ltjpreset_font_mg: { \tl_use:N \l_tmpa_tl } +%\prop_show:N \l_ltjpreset_font_prop %% HG 系フォント + JIS2004/90JIS のときはフォント名を置換 \bool_if:NT \l_ltjpreset_office_bool { @@ -347,8 +385,8 @@ \cs_set:Nx \ltjpreset_font_mc_bx: { hgrme04.ttc } \cs_set:Nx \ltjpreset_font_gt_bx: { hgrge04.ttc } \cs_set:Nx \ltjpreset_font_gt_eb: { hgrsgu04.ttc } - \cs_set:Nx \ltjpreset_font_mg: { hgrsmp04.ttf } - \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_n_uni: + \cs_set:Nx \ltjpreset_font_mg_m: { hgrsmp04.ttf } + \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_u: % HG ゴシックM のときはそうはいかないので 1 ウェイト時のゴシック体を使う } \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS1990 } @@ -356,10 +394,17 @@ \cs_set:Nx \ltjpreset_font_mc_bx: { hgrme.ttc } \cs_set:Nx \ltjpreset_font_gt_bx: { hgrge.ttc } \cs_set:Nx \ltjpreset_font_gt_eb: { hgrsgu.ttc } - \cs_set:Nx \ltjpreset_font_mg: { hgrsmp.ttf } + \cs_set:Nx \ltjpreset_font_mg_m: { hgrsmp.ttf } } } +% mc/l +\tl_set:Nx \l_tmpa_tl { \ltjpreset_font_mc_l: } +\tl_if_empty:NT \l_tmpa_tl {\tl_set:Nn \l_tmpa_tl {~}} +\cs_set:Nx \ltjpreset_font_mc_l: { + \tl_if_blank:nTF \l_tmpa_tl { \ltjpreset_font_mc_m: } {\tl_use:N \l_tmpa_tl } +} + %% 90JIS/JIS2004 字形指定のオプション \bool_if:NTF \l_ltjpreset_nfssonly_bool { \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS1990 } @@ -380,6 +425,30 @@ } } + +%%%%%%%% 存在判定 +\cs_new:Nn \ltjpreset_substitute:nnnn { + \group_begin: + \suppressfontnotfounderror=1 + \font \l_ltjpreset_font_test: = "\cs:w ltjpreset_font_#1_#2: \cs_end:"\relax + \ifx \l_ltjpreset_font_test: \nullfont + \msg_warning:nnxxxx { luatexja-preset }{ no-font } + { \cs:w ltjpreset_font_#1_#2: \cs_end: }{ #1/#2 } + { \cs:w ltjpreset_font_#3_#4: \cs_end: }{ #3/#4 } + \cs_gset_eq:cc { ltjpreset_font_#1_#2: } { ltjpreset_font_#3_#4: } + \fi + \group_end: +} + +\msg_new:nnn { luatexja-preset }{ no-font }{ + Font~ #1~ (#2)~ is~ not~found.~ Hence~ I~ substitute~ #3~ (#4)~ for~ it. +} +\bool_if:NT \l_ltjpreset_deluxe_bool { + \ltjpreset_substitute:nnnn { gt } { eb } { gt } { bx } + \ltjpreset_substitute:nnnn { mg } { m } { gt } { bx } + \ltjpreset_substitute:nnnn { mc } { l } { mc } { m } +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% nfss only \bool_if:NTF \l_ltjpreset_nfssonly_bool { @@ -392,23 +461,23 @@ \DeclareFontShape{JY3}{#1}{#2}{n}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3" : jfm=\tl_use:N \ltjpreset_use_jfm_yoko_tl ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl - ; script=cjk \bool_if:NT \l_ltjpreset_expert_bool { ;+hkna }} + ; script=hani \bool_if:NT \l_ltjpreset_expert_bool { ;+hkna }} } {} \DeclareFontShape{JT3}{#1}{#2}{n}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3" : jfm=\tl_use:N \ltjpreset_use_jfm_tate_tl ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl; - ; script=cjk \bool_if:NT \l_ltjpreset_expert_bool { ;+vkna }} + ; script=hani \bool_if:NT \l_ltjpreset_expert_bool { ;+vkna }} } {} \bool_if:NT \l_ltjpreset_expert_bool { \DeclareFontShape{JY3}{#1}{#2}{rb}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3" : jfm=\tl_use:N \ltjpreset_use_jfm_yoko_tl ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl ;+ruby - ; script=kana } + ; script=kana} } {} \DeclareFontShape{JT3}{#1}{#2}{rb}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3" : jfm=\tl_use:N \ltjpreset_use_jfm_tate_tl ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl ;+ruby - ; script=kana } + ; script=kana} } {} } } @@ -424,7 +493,7 @@ \bool_if:NTF \l_ltjpreset_bold_bool { \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_bx: }{ - \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_n_uni: + \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_u: } \cs_set_eq:NN \ltjpreset_font_gt_bx: \ltjpreset_font_gt_m: \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_m: @@ -448,14 +517,17 @@ \bool_if:NTF \l_ltjpreset_deluxe_bool { \DeclareKanjiFamily{JY3}{ltjpmg}{}\DeclareKanjiFamily{JT3}{ltjpmg}{} - \ltj_preset_define_family:nnn {ltjpmg} {m} {\ltjpreset_font_mg:} - \ltj_preset_define_family:nnn {ltjpg} {eb} {\ltjpreset_font_gt_eb:} + \def\ltdefault{l} + \DeclareRobustCommand\ltseries { \not@math@alphabet\ltseries\relax\fontseries\ltdefault\selectfont } + \ltj_preset_define_family:nnn {ltjpm} {l} {\ltjpreset_font_mc_l:} \def\ebdefault{eb} - \DeclareRobustCommand\ebseries { \not@math@alphabet\ebseries\relaxfontseries\ebdefault\selectfont } - \DeclareRobustCommand\gtebfamily { \kanjifamily{ltjpg}\fontseries{eb}\selectfont } + \DeclareRobustCommand\ebseries { \not@math@alphabet\ebseries\relax\fontseries\ebdefault\selectfont } + \DeclareRobustCommand\gtebfamily { \kanjifamily{ltjpg}\fontseries{\ebdefault}\selectfont } \DeclareTextFontCommand{\textgteb}{\gtebfamily} + \ltj_preset_define_family:nnn {ltjpg} {eb} {\ltjpreset_font_gt_eb:} \DeclareRobustCommand\mgfamily { \not@math@alphabet\mgfamily\relax\kanjifamily{ltjpmg}\selectfont } \DeclareTextFontCommand{\textmg}{\mgfamily} + \ltj_preset_define_family:nnn {ltjpmg} {m} {\ltjpreset_font_mg_m:} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -493,20 +565,19 @@ \bool_if:NTF \l_ltjpreset_deluxe_bool { %% mg \newjfontfamily \mgfamily [ - BoldFont = \ltjpreset_font_mg:, + BoldFont = \ltjpreset_font_mg_m:, \bool_if:NT \l_ltjpreset_noembed_bool { NoEmbed, } \tl_use:N \l_ltjpreset_add_features_tl - ] { \ltjpreset_font_mg: } + ] { \ltjpreset_font_mg_m: } \DeclareTextFontCommand{\textmg}{\mgfamily} %% gt/eb -%% 注意: ファミリは 'gteb'.シリーズは \mdseries のまま. -%% \bfseries を追加したほうが良い? - \newjfontfamily \gtebfamily [ - BoldFont = \ltjpreset_font_gt_eb:, - \bool_if:NT \l_ltjpreset_noembed_bool { NoEmbed, } - \tl_use:N \l_ltjpreset_add_features_tl - ] { \ltjpreset_font_gt_eb: } + \def\ebdefault{eb} + \DeclareRobustCommand\ebseries { \not@math@alphabet\ebseries\relax\fontseries\ebdefault\selectfont } + \DeclareRobustCommand\gtebfamily { \kanjifamily{\gtdefault}\fontseries{\ebdefault}\selectfont } \DeclareTextFontCommand{\textgteb}{\gtebfamily} +%% mc/l + \def\ltdefault{l} + \DeclareRobustCommand\ltseries { \not@math@alphabet\ltseries\relax\fontseries\ltdefault\selectfont } \bool_if:NT \l_ltjpreset_bold_bool { \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_bx: } @@ -514,7 +585,7 @@ \bool_if:NTF \l_ltjpreset_bold_bool { \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_bx: }{ - \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_n_uni: + \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_u: } \cs_set_eq:NN \ltjpreset_font_gt_bx: \ltjpreset_font_gt_m: \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_m: @@ -526,11 +597,17 @@ \addjfontfeature{ Kerning=Off } \setmainjfont [ + \bool_if:NT \l_ltjpreset_deluxe_bool { + FontFace={l}{n}{\ltjpreset_font_mc_l:}, + } BoldFont = \ltjpreset_font_mc_bx: \bool_if:NT \l_ltjpreset_noembed_bool { , NoEmbed }, \tl_use:N \l_ltjpreset_add_features_tl ] { \ltjpreset_font_mc_m: } \setsansjfont [ + \bool_if:NT \l_ltjpreset_deluxe_bool { + FontFace={eb}{n}{\ltjpreset_font_gt_eb:}, + } BoldFont = \ltjpreset_font_gt_bx: \bool_if:NT \l_ltjpreset_noembed_bool { , NoEmbed }, \tl_use:N \l_ltjpreset_add_features_tl diff --git a/Master/texmf-dist/tex/luatex/luatexja/jfm-ujis.lua b/Master/texmf-dist/tex/luatex/luatexja/jfm-ujis.lua index 61e48024685..476f063db9b 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/jfm-ujis.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/jfm-ujis.lua @@ -8,6 +8,7 @@ local t = { + version = 3, dir = 'yoko', zw = 1.0, zh = 1.0, kanjiskip = { 0.0, 0.25, 0 }, @@ -260,10 +261,7 @@ local t = { [99] = { -- box末尾 - chars = {'boxbdd', 'parbdd'}, - glue = { - [3] = { 0.25, 0.0, 0.25, priority=1 }, - } + chars = {'boxbdd', 'parbdd', 'glue'}, }, } @@ -277,4 +275,13 @@ for i=9758,9778 do ht[#ht+1] = 'AJ1-' .. tostring(i) end local ht = t[207].chars for i=9738,9757 do ht[#ht+1] = 'AJ1-' .. tostring(i) end +t[100]=table.fastcopy(t[0]) +t[100].chars={'nox_alchar'} +for i,v in pairs(t) do + if i~=6 and type(i)=='number' and type(v)=='table' then -- 感嘆符以外 + if v.glue and v.glue[0] then v.glue[100] = v.glue[0] end + if v.kern and v.kern[0] then v.kern[100] = v.kern[0] end + end +end + luatexja.jfont.define_jfm(t) diff --git a/Master/texmf-dist/tex/luatex/luatexja/jfm-ujisv.lua b/Master/texmf-dist/tex/luatex/luatexja/jfm-ujisv.lua index 4ea0b3b5bc5..a4b1333b698 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/jfm-ujisv.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/jfm-ujisv.lua @@ -8,6 +8,7 @@ local t = { + version = 3, dir = 'tate', zw = 1.0, zh = 1.0, kanjiskip = { 0.0, 0.25, 0 }, @@ -259,10 +260,7 @@ local t = { }, [99] = { -- box末尾 - chars = {'boxbdd', 'parbdd'}, - glue = { - [3] = { 0.25, 0.0, 0.25, priority=1 }, - } + chars = {'boxbdd', 'parbdd', 'glue'}, }, } @@ -274,5 +272,13 @@ for i=13274,13294 do ht[#ht+1] = 'AJ1-' .. tostring(i) end local ht = t[207].chars for i=13254,13273 do ht[#ht+1] = 'AJ1-' .. tostring(i) end +t[100]=table.fastcopy(t[0]) +t[100].chars={'nox_alchar'} +for i,v in pairs(t) do + if i~=6 and type(i)=='number' and type(v)=='table' then -- 感嘆符以外 + if v.glue and v.glue[0] then v.glue[100] = v.glue[0] end + if v.kern and v.kern[0] then v.kern[100] = v.kern[0] end + end +end luatexja.jfont.define_jfm(t) diff --git a/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty b/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty index cc8f8a4c4c8..31d218cbc3f 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty @@ -3,9 +3,9 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{lltjext}[2017/05/05 v1.2g-ltj-5 Macros for vertical writing] +\ProvidesPackage{lltjext}[2017/07/26 v1.2g-ltj-7 Macros for vertical writing] \RequirePackage{luatexja} - +\newcount\ltj@ext@dir {\catcode`\*=11 \global\let\ltj@lltjext@orig@tabularS=\tabular* }% @@ -15,19 +15,20 @@ %%% array and tabular \def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz \let\@classiv\@arrayclassiv - \let\\\@arraycr\let\@halignto\@empty\X@tabarray} + \let\\\@arraycr\let\@halignto\@empty + \ltj@ext@dir=\ltjgetparameter{direction}\relax\X@tabarray} \def\tabular{\let\@halignto\@empty\X@tabular} \@namedef{tabular*}{\@ifnextchar<%> - {\@stabular}{\@stabular<Z>}} + {\@stabular}{\@stabular<z>}} \def\X@tabarray{\@ifnextchar<%> - {\p@tabarray}{\p@tabarray<Z>}} + {\p@tabarray}{\p@tabarray<z>}} \def\X@tabular{\@ifnextchar<%> - {\p@tabular}{\p@tabular<Z>}} + {\p@tabular}{\p@tabular<z>}} \def\@stabular<#1>#2{% \setlength\dimen@{#2}% \edef\@halignto{to\the\dimen@}\p@tabular<#1>} \def\p@tabular<#1>{\leavevmode \hbox \bgroup - \count@=\ltjgetparameter{direction}$\let\@acol\@tabacol + \ltj@ext@dir=\ltjgetparameter{direction}$\let\@acol\@tabacol \let\@classz\@tabclassz \let\@classiv\@tabclassiv \let\\\@tabularcr\p@tabarray<#1>} \def\p@tabarray<#1>{\m@th\@ifnextchar[%] @@ -36,7 +37,7 @@ \def\p@array<#1>[#2]#3{% \let\box@dir\relax \if #1z\relax - \ifnum\count@=3\relax + \ifnum\ltj@ext@dir=3\relax \let\box@dir\utod\@tempcnta=\zstrutbox \fi \else @@ -51,7 +52,7 @@ \fi\fi\fi\fi \fi \ifx\box@dir\relax - \ifcase\count@ + \ifcase\ltj@ext@dir \or \let\box@dir\dtou\@tempcnta=\dstrutbox% dtou \or\or\let\box@dir\tate\@tempcnta=\tstrutbox% tate \or \let\box@dir\yoko\@tempcnta=\ystrutbox% yoko @@ -65,7 +66,8 @@ \fork@array@option<#1>[#2]% \@mkpream{#3}\edef\@preamble{\ialign \noexpand\@halignto \bgroup\@arstrut \@preamble \tabskip\z@skip \cr}% - \let\tabularnewline\\% + \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox + \let\tabularnewline\\% \@begin@alignbox\bgroup\box@dir\adjustbaseline \let\par\@empty \let\@sharp##\let\protect\relax @@ -73,137 +75,86 @@ \def\endarray{\crcr\egroup\egroup\@end@alignbox} \def\endtabular{\endarray$\egroup} \expandafter \let \csname endtabular*\endcsname = \endtabular -% コミュニティ版では、アスキー版で不自然だった表組(array環境およびtabular環境)と -% 周囲の本文との揃え位置を修正し、以下のように設計しました。 -% \begin{itemize} -% \item 周囲の組方向が横組かつ組方向が|<y>|, |<z>|指定の場合 -% \begin{itemize} -% \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置) -% \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) -% \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置) -% \end{itemize} -% \item 周囲の組方向が横組かつ組方向が|<t>|指定の場合 -% \begin{itemize} -% \item |[t]|指定のとき\\表組の上端が周囲の和文ベースラインと一致 -% \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) -% \item |[b]|指定のとき\\表組の下端が周囲の和文ベースラインと一致 -% \end{itemize} -% \item 周囲の組方向が縦組かつ組方向が|<y>|指定の場合 -% \begin{itemize} -% \item |[t]|指定のとき\\表組の上端が周囲の和文ベースラインと一致 -% \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) -% \item |[b]|指定のとき\\表組の下端が周囲の和文ベースラインと一致 -% \end{itemize} -% \item 周囲の組方向が縦組かつ組方向が|<t>|指定の場合 -% \begin{itemize} -% \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置) -% \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) -% \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置) -% \end{itemize} -% \item 周囲の組方向が縦組かつ組方向が|<z>|指定の場合 -% [TODO] 未定! -%^^A \begin{itemize} -%^^A \item |[t]|指定のとき\\表組の上端が周囲の和文ベースラインと一致 -%^^A \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) -%^^A \item |[b]|指定のとき\\表組の下端が周囲の和文ベースラインと一致 -%^^A \end{itemize} -\def\fork@array@option<#1>[#2]{% -\ifnum\ltjgetparameter{direction}=4 % yoko - \ifx\box@dir\yoko - \if #2t\relax - \let\@begin@alignbox\vtop - \let\@end@alignbox\relax - \else\if #2b\relax - \let\@begin@alignbox\vbox - \let\@end@alignbox\relax - \else - \let\@begin@alignbox\vcenter - \let\@end@alignbox\relax - \fi\fi +% ↓中身\周囲→ yoko tate utod dtou +% yoko A* B* B B +% tate B* A* D C +% utod B D* A C +% dtou B C C A +% A: 周囲と中身の組方向が一致.そのまま \vtop/\vcenter/\vbox +% B: 周囲と中身が90度ずれ.上端/下端がベースラインに揃うように +% C: 周囲と中身が180度ずれ.\vtop, \vbox 入れ替え +% D: 欧文ベースライン同士を揃えるようにする + +\def\fork@array@option@@A#1{% + \let\@end@alignbox\relax + \if #1t\relax \let\@begin@alignbox\vtop + \else\if #1b\relax\let\@begin@alignbox\vbox + \else \let\@begin@alignbox\vcenter + \fi\fi} +\def\fork@array@option@@B#1{% + \if #1t\relax + \def\@begin@alignbox{\vtop\bgroup\kern\z@\vbox}% + \let\@end@alignbox\egroup + \else\if #1b\relax + \def\@begin@alignbox{\vbox\bgroup\vbox}% + \def\@end@alignbox{\kern\z@\egroup}% \else - \if #2t\relax - \def\@begin@alignbox{\vtop\bgroup\kern\z@\vbox}% - \let\@end@alignbox\egroup - \else\if #2b\relax - \def\@begin@alignbox{\vbox\bgroup\vbox}% - \def\@end@alignbox{\kern\z@\egroup}% - \else - \let\@begin@alignbox\vcenter - \let\@end@alignbox\relax - \fi\fi + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi} +\def\fork@array@option@@C#1{% + \let\@end@alignbox\relax + \if #1t\relax \let\@begin@alignbox\vbox + \else\if #1b\relax\let\@begin@alignbox\vtop + \else \let\@begin@alignbox\vcenter + \fi\fi} +\def\fork@array@option<#1>[#2]{% +\ifnum\ltj@ext@dir=4 % yoko + \ifx\box@dir\yoko \fork@array@option@@A{#2}% + \else \fork@array@option@@B{#2}% \fi -\else\ifnum\ltjgetparameter{direction}=1 % dtou - \ifx\box@dir\yoko - \if #2t\relax - \def\@begin@alignbox{\vtop\bgroup\kern\z@\vbox}% - \let\@end@alignbox\egroup - \else\if #2b\relax - \def\@begin@alignbox{\vbox\bgroup\vbox}% - \def\@end@alignbox{\kern\z@\egroup}% - \else - \let\@begin@alignbox\vcenter - \let\@end@alignbox\relax - \fi\fi - \else\ifx\box@dir\dtou - \if #2t\relax - \let\@begin@alignbox\vtop - \let\@end@alignbox\relax - \else\if #2b\relax - \let\@begin@alignbox\vbox - \let\@end@alignbox\relax - \else - \let\@begin@alignbox\vcenter - \let\@end@alignbox\relax - \fi\fi - \else % 180 度回転→vtop, vbox を入れ替える - \if #2t\relax - \let\@begin@alignbox\vbox %%% !!! - \let\@end@alignbox\relax - \else\if #2b\relax - \let\@begin@alignbox\vtop %%% !!! - \let\@end@alignbox\relax - \else - \let\@begin@alignbox\vcenter - \let\@end@alignbox\relax - \fi\fi +\else\ifnum\ltj@ext@dir=1 % dtou + \ifx\box@dir\yoko \fork@array@option@@B{#2}% + \else\ifx\box@dir\dtou \fork@array@option@@A{#2}% + \else \fork@array@option@@C{#2}% \fi\fi -\else % tate, utod - \ifx\box@dir\yoko +\else\ifnum\ltj@ext@dir=3 % tate + \ifx\box@dir\yoko \fork@array@option@@B{#2}% + \else\ifx\box@dir\tate \fork@array@option@@A{#2}% + \else\ifx\box@dir\dtou \fork@array@option@@C{#2}% + \else \if #2t\relax - \def\@begin@alignbox{\vtop\bgroup\kern\z@\vbox}% - \let\@end@alignbox\egroup + \def\@begin@alignbox{\lower\dimexpr + \ltjgetparameter{talbaselineshift}-\ltjgetparameter{yalbaselineshift}\vtop} + \let\@end@alignbox\relax \else\if #2b\relax - \def\@begin@alignbox{\vbox\bgroup\vbox}% - \def\@end@alignbox{\kern\z@\egroup}% + \def\@begin@alignbox{\lower\dimexpr + \ltjgetparameter{talbaselineshift}-\ltjgetparameter{yalbaselineshift}\vbox} + \let\@end@alignbox\relax \else \let\@begin@alignbox\vcenter \let\@end@alignbox\relax \fi\fi - \else\ifx\box@dir\dtou % 180 度回転→vtop, vbox を入れ替える + \fi\fi\fi +\else % utod + \ifx\box@dir\yoko \fork@array@option@@B{#2}% + \else\ifx\box@dir\utod \fork@array@option@@A{#2}% + \else\ifx\box@dir\dtou \fork@array@option@@C{#2}% + \else \if #2t\relax - \let\@begin@alignbox\vbox %%% !!! + \def\@begin@alignbox{\lower\dimexpr + \ltjgetparameter{yalbaselineshift}-\ltjgetparameter{talbaselineshift}\vtop} \let\@end@alignbox\relax \else\if #2b\relax - \let\@begin@alignbox\vtop %%% !!! + \def\@begin@alignbox{\lower\dimexpr + \ltjgetparameter{yalbaselineshift}-\ltjgetparameter{talbaselineshift}\vbox} \let\@end@alignbox\relax \else \let\@begin@alignbox\vcenter \let\@end@alignbox\relax \fi\fi - \else - \if #2t\relax - \let\@begin@alignbox\vtop - \let\@end@alignbox\relax - \else\if #2b\relax - \let\@begin@alignbox\vbox - \let\@end@alignbox\relax - \else - \let\@begin@alignbox\vcenter - \let\@end@alignbox\relax - \fi\fi - \fi\fi -\fi\fi% -} + \fi\fi\fi +\fi\fi\fi} %%% caption \newbox\@floatbox @@ -414,45 +365,53 @@ \let\hss\vss\let\unhbox\unvbox \csname bm@#4\endcsname}\@end@parbox \@end@tempboxa} -% コミュニティ版では、アスキー版で不自然だった|\parbox|の箱と -% 周囲の本文との揃え位置を修正し、以下のように設計しました。 -% \begin{itemize} -% \item 周囲の組方向が横組かつ組方向が|<y>|, |<z>|指定の場合 -% \begin{itemize} -% \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致 -% \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) -% \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致 -% \end{itemize} -% \item 周囲の組方向が横組かつ組方向が|<t>|指定の場合 -% \begin{itemize} -% \item |[t]|指定のとき\\箱の上端が周囲の和文文字の高さと一致 -% \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) -% \item |[b]|指定のとき\\箱の下端が周囲の和文文字の深さと一致 -% \end{itemize} -% \item 周囲の組方向が縦組かつ組方向が|<y>|指定の場合 -% \begin{itemize} -% \item |[t]|指定のとき\\箱の上端が周囲の和文文字の高さと一致 -% \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) -% \item |[b]|指定のとき\\箱の下端が周囲の和文文字の深さと一致 -% \end{itemize} -% \item 周囲の組方向が縦組かつ組方向が|<t>|指定の場合 -% \begin{itemize} -% \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致 -% \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) -% \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致 -% \end{itemize} -% \item 周囲の組方向が縦組かつ組方向が|<z>|指定の場合 -% [TODO] 未定! -%^^A \begin{itemize} -%^^A \item |[t]|指定のとき\\箱の上端が周囲の和文ベースラインと一致 -%^^A \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) -%^^A \item |[b]|指定のとき\\箱の下端が周囲の和文ベースラインと一致 -%^^A \end{itemize} -% \end{itemize} + + +% ↓中身\周囲→ yoko tate utod dtou +% yoko A* B* B B +% tate B* A* D C +% utod B D* A C +% dtou B C C A +% A: 周囲と中身の組方向が一致.そのまま \vtop/\vcenter/\vbox +% B: 周囲と中身が90度ずれ.上端が和文の高さ or 下端が和文の深さに揃うように +% C: 周囲と中身が180度ずれ.(コードは B のものを流用) +% D: 上端が和文の高さ or 下端が和文の深さに揃うように(コードは B のものを流用) + +\def\fork@parbox@option@@A#1{% + \let\@end@parbox\relax + \if #1t\relax \let\@begin@parbox\vtop + \else\if #1b\relax\let\@begin@parbox\vbox + \else + \ifmmode + \let\@begin@parbox\vcenter\let\@end@parbox\relax + \else + \def\@begin@parbox{\null$\vcenter}% + \def\@end@parbox{\m@th$\null}% + \fi + \fi\fi} +\def\lltjext@getjablshift{% + \ifnum\ltj@ext@dir=3 \ltjgetparameter{tjabaselineshift}\else + \ltjgetparameter{yjabaselineshift}\fi} +\def\fork@parbox@option@@B#1{% + \if #1t\relax + \def\@begin@parbox{\raise\dimexpr\cht-\lltjext@getjablshift\vtop\bgroup\kern\z@\vbox}% + \let\@end@parbox\egroup + \else\if #1b\relax + \def\@begin@parbox{\lower\dimexpr\cdp+\lltjext@getjablshift\vbox\bgroup\vbox}% + \def\@end@parbox{\kern\z@\egroup}% + \else + \ifmmode + \let\@begin@parbox\vcenter\let\@end@parbox\relax + \else + \def\@begin@parbox{\null$\vcenter}% + \def\@end@parbox{\m@th$\null}% + \fi + \fi\fi} +\let\fork@parbox@option@@C=\fork@parbox@option@@B \def\fork@parbox@option<#1>[#2]{% - \let\box@dir\relax + \let\box@dir\relax \ltj@ext@dir=\ltjgetparameter{direction}\relax \if #1z\relax - \ifnum\ltjgetparameter{direction}=3\relax + \ifnum\ltj@ext@dir=3\relax \let\box@dir\utod \fi \else @@ -463,141 +422,35 @@ \fi\fi\fi\fi \fi \ifx\box@dir\relax - \ifcase\ltjgetparameter{direction}\relax + \ifcase\ltj@ext@dir \or \let\box@dir\dtou \or\or\let\box@dir\tate \or \let\box@dir\yoko \else \let\box@dir\utod \fi \fi -\ifnum\ltjgetparameter{direction}=4 % yoko - \ifx\box@dir\yoko - \if #2t\relax - \let\@begin@parbox\vtop - \let\@end@parbox\relax - \else\if #2b\relax - \let\@begin@parbox\vbox - \let\@end@parbox\relax - \else - \ifmmode - \let\@begin@parbox\vcenter\let\@end@parbox\relax - \else - \def\@begin@parbox{\null$\vcenter}% - \def\@end@parbox{\m@th$\null}% - \fi - \fi\fi - \else - \if #2t\relax - \def\@begin@parbox{\raise\cht\vtop\bgroup\kern\z@\vbox}% - \let\@end@parbox\egroup - \else\if #2b\relax - \def\@begin@parbox{\lower\cdp\vbox\bgroup\vbox}% - \def\@end@parbox{\kern\z@\egroup}% - \else - \ifmmode - \let\@begin@parbox\vcenter\let\@end@parbox\relax - \else - \def\@begin@parbox{\null$\vcenter}% - \def\@end@parbox{\m@th$\null}% - \fi - \fi\fi +\ifnum\ltj@ext@dir=4 % yoko + \ifx\box@dir\yoko \fork@parbox@option@@A{#2}% + \else \fork@parbox@option@@B{#2}% \fi -\else\ifnum\ltjgetparameter{direction}=1 % dtou - \ifx\box@dir\yoko - \if #2t\relax - \def\@begin@parbox{\raise\cht\vtop\bgroup\kern\z@\vbox}% - \let\@end@parbox\egroup - \else\if #2b\relax - \def\@begin@parbox{\lower\cdp\vbox\bgroup\vbox}% - \def\@end@parbox{\kern\z@\egroup}% - \else - \ifmmode - \let\@begin@parbox\vcenter\let\@end@parbox\relax - \else - \def\@begin@parbox{\null$\vcenter}% - \def\@end@parbox{\m@th$\null}% - \fi - \fi\fi - \else\ifx\box@dir\dtou - \if #2t\relax - \let\@begin@parbox\vtop - \let\@end@parbox\relax - \else\if #2b\relax - \let\@begin@parbox\vbox - \let\@end@parbox\relax - \else - \ifmmode - \let\@begin@parbox\vcenter\let\@end@parbox\relax - \else - \def\@begin@parbox{\null$\vcenter}% - \def\@end@parbox{\m@th$\null}% - \fi - \fi\fi - \else % 180 度回転→vtop, vbox を入れ替える - \if #2t\relax - \let\@begin@parbox\vbox %%% !!! - \let\@end@parbox\relax - \else\if #2b\relax - \let\@begin@parbox\vtop %%% !!! - \let\@end@parbox\relax - \else - \ifmmode - \let\@begin@parbox\vcenter\let\@end@parbox\relax - \else - \def\@begin@parbox{\null$\vcenter}% - \def\@end@parbox{\m@th$\null}% - \fi - \fi\fi +\else\ifnum\ltj@ext@dir=1 % dtou + \ifx\box@dir\yoko \fork@parbox@option@@B{#2}% + \else\ifx\box@dir\dtou \fork@parbox@option@@A{#2}% + \else \fork@parbox@option@@C{#2}% \fi\fi -\else % tate, utod - \ifx\box@dir\yoko - \if #2t\relax - \def\@begin@parbox{\raise\cht\vtop\bgroup\kern\z@\vbox}% - \let\@end@parbox\egroup - \else\if #2b\relax - \def\@begin@parbox{\lower\cdp\vbox\bgroup\vbox}% - \def\@end@parbox{\kern\z@\egroup}% - \else - \ifmmode - \let\@begin@parbox\vcenter\let\@end@parbox\relax - \else - \def\@begin@parbox{\null$\vcenter}% - \def\@end@parbox{\m@th$\null}% - \fi - \fi\fi - \else\ifx\box@dir\dtou % 180 度回転→vtop, vbox を入れ替える - \if #2t\relax - \let\@begin@parbox\vbox %%% !!! - \let\@end@parbox\relax - \else\if #2b\relax - \let\@begin@parbox\vtop %%% !!! - \let\@end@parbox\relax - \else - \ifmmode - \let\@begin@parbox\vcenter\let\@end@parbox\relax - \else - \def\@begin@parbox{\null$\vcenter}% - \def\@end@parbox{\m@th$\null}% - \fi - \fi\fi - \else - \if #2t\relax - \let\@begin@parbox\vtop - \let\@end@parbox\relax - \else\if #2b\relax - \let\@begin@parbox\vbox - \let\@end@parbox\relax - \else - \ifmmode - \let\@begin@parbox\vcenter\let\@end@parbox\relax - \else - \def\@begin@parbox{\null$\vcenter}% - \def\@end@parbox{\m@th$\null}% - \fi - \fi\fi - \fi\fi -\fi\fi% -} +\else\ifnum\ltj@ext@dir=3 % tate + \ifx\box@dir\yoko \fork@parbox@option@@B{#2}% + \else\ifx\box@dir\tate \fork@parbox@option@@A{#2}% + \else\ifx\box@dir\dtou \fork@parbox@option@@C{#2}% + \else \fork@parbox@option@@B{#2}% D + \fi\fi\fi +\else % utod + \ifx\box@dir\yoko \fork@parbox@option@@B{#2}% + \else\ifx\box@dir\utod \fork@parbox@option@@A{#2}% + \else\ifx\box@dir\dtou \fork@parbox@option@@C{#2}% + \else \fork@parbox@option@@B{#2}% D + \fi\fi\fi +\fi\fi\fi} %%% pbox \DeclareRobustCommand\pbox{\leavevmode\@ifnextchar<{\X@makePbox}{\X@makePbox<Z>}} @@ -798,19 +651,21 @@ \def\ltj@lltjext@patch@array{% \patchcmd{\@tabular}{\hbox\bgroup}{% - \hbox\bgroup\count@=\ltjgetparameter{direction}}{}{} + \hbox\bgroup\ltj@ext@dir=\ltjgetparameter{direction}}{}{} + \pretocmd{\array}% + {\ltj@ext@dir=\ltjgetparameter{direction}\relax}{}{} \def\@startpbox##1{\bgroup \box@dir\adjustbaseline%%% これを追加 - \hsize=##1\@arrayparboxrestore + \setlength\hsize{##1}\@arrayparboxrestore \everypar{% \vrule \@height \ltjgetht\@arstrutbox \@width \z@ \everypar{}}% } - \def\@tabarray{\@ifnextchar<\p@tabarray{\p@tabarray<Z>}} + \def\@tabarray{\@ifnextchar<\p@tabarray{\p@tabarray<z>}} \def\p@array<##1>[##2]##3{% \let\box@dir\relax \if ##1z\relax - \ifnum\count@=3\relax + \ifnum\ltj@ext@dir=3\relax \let\box@dir\utod\@tempcnta=\zstrutbox \fi \else @@ -825,7 +680,7 @@ \fi\fi\fi\fi \fi \ifx\box@dir\relax - \ifcase\count@ + \ifcase\ltj@ext@dir \or \let\box@dir\dtou\@tempcnta=\dstrutbox% dtou \or\or\let\box@dir\tate\@tempcnta=\tstrutbox% tate \or \let\box@dir\yoko\@tempcnta=\ystrutbox% yoko @@ -868,7 +723,7 @@ %%%%%%%%%%%%%%%% LuaTeX-ja original -\define@key[ltj]{japaram}{autouprightnum}{% %COUNT - \ltj@@set@stack{AURN}{0}{10000}\z@#1 } +%%\define@key[ltj]{japaram}{autouprightnum}{% %COUNT +%% \ltj@@set@stack{AURN}{0}{10000}\z@#1 } \endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-direction.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-direction.lua index 52286624ca9..9d650f2020a 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-direction.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-direction.lua @@ -530,7 +530,7 @@ do start_time_measure('box_primitive_hook') local list_dir = get_dir_count()%dir_math_mod local b = getbox(tex_getcount('ltj@tempcnta')) - if b then + if b and getlist(to_direct(b)) then local box_dir = get_box_dir(to_direct(b), dir_yoko) if box_dir%dir_math_mod ~= list_dir then ltjb.package_error( @@ -1159,7 +1159,6 @@ do finalize_inner(shipout_temp) setbox('global', "AtBeginShipoutBox", copy(getlist(shipout_temp))) setfield(shipout_temp, 'head',nil) - -- garbage collect --local m = collectgarbage('count') --if m>lua_mem_kb+20480 then diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-ivd_aj1.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-ivd_aj1.lua new file mode 100644 index 00000000000..709cfb33075 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-ivd_aj1.lua @@ -0,0 +1,23091 @@ +return { +version = 2, +table_ivd_aj1 = { +-- # IVD_Sequences +-- # +-- # History: +-- # +-- # 2016-08-15 Combined registration of the MSARG collection and of +-- # sequences in that collection. +-- # +-- # 2014-05-16 Combined registration of the Moji_Joho collection and of +-- # sequences in that collection. +-- # +-- # 2012-07-02 File restored due to corruption on the server. +-- # +-- # 2012-03-02 Registration of additional sequences in the Adobe-Japan1 +-- # collection. Registration of additional sequences in the +-- # Hanyo-Denshi collection. +-- # +-- # 2010-11-14 Combined registration of the Hanyo-Denshi collection and +-- # of sequences in that collection. +-- # +-- # 2007-12-14 Combined registration of the Adobe-Japan1 collection and +-- # of sequences in that collection. +-- # +-- # This file is part of the Unicode Ideographic Variation Database (IVD). +-- # For more details on the IVD, see UTS #37: +-- # http://www.unicode.org/reports/tr37/ +-- # +-- # Copyright 2006-2016 Unicode, Inc. +-- # For terms of use, see: http://www.unicode.org/terms_of_use.html +-- # +-- # EOF + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + 2117341, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + 2117276, + 2118934, + 2120195, + 2135615, + 2118848, + 2122011, + 2122536, + 2120182, + 2134050, + 2131061, + 2130716, + 2128464, + 2121898, + 2122721, + 2125349, + 2123245, + 2131046, + 2130598, + 2137077, + 2123923, + 2119463, + 2123169, + 2122353, + 2120603, + 2120144, + 2131579, + 2136308, + 2129250, + 2129342, + 2136974, + 2122262, + 2129055, + 2132151, + 2120585, + 2121397, + 2122505, + 2123415, + 2123848, + 2135495, + 2135949, + 2123599, + 2117349, + 2117386, + 2117453, + 2117533, + 2117705, + 2119410, + 2119991, + 2120148, + 2120193, + 2120713, + 2121951, + 2121999, + 2122096, + 2123283, + 2124037, + 2126010, + 2127183, + 2127216, + 2128379, + 2129325, + 2129391, + 2130115, + 2130958, + 2132067, + 2132738, + 2134101, + 2134138, + 2118459, + 2117269, + 2117285, + 2119647, + 2130098, + 2134209, + 2128111, + 2117120, + 2119921, + 2125474, + 2134072, + 2128434, + 2130728, + 2130571, + 2137135, + 2117953, + 2118512, + 2118845, + 2118881, + 2119392, + 2120187, + 2121493, + 2136306, + 2125291, + 2130148, + 2131245, + 2135650, + 2135664, + 2135712, + 2136059, + 2118667, + 2118643, + 2120583, + 2126031, + 4227005, + 2133954, + 2135784, + 2118511, + 2137436, + 2128570, + 2117137, + 2128019, + 2130428, + 2125350, + 2119192, + 2118916, + 2124573, + 2131226, + 2137147, + 2120165, + 2118569, + 2125158, + 2127068, + 2135439, + 2119234, + 2117265, + 2134091, + 2135794, + 2130767, + 2136332, + 2118625, + 2119094, + 2120496, + 2121585, + 2123296, + 2123507, + 2123780, + 2124856, + 2125043, + 2125097, + 2126939, + 2127560, + 2128462, + 2136116, + 2130673, + 2132059, + 2132576, + 2134765, + 2125234, + 2127275, + 2127562, + 2136517, + 2121894, + 4229889, + 2133386, + 2135474, + 2124174, + 2118573, + 2118022, + 2119442, + 2119728, + 2120004, + 2120628, + 2121462, + 2121768, + 2122665, + 2122740, + 4222143, + 2125588, + 2125966, + 2126100, + 2126169, + 2126293, + 2126655, + 2129409, + 2130550, + 2130641, + 2131351, + 2134112, + 2134619, + 2137371, + 2119785, + 2123196, + 2124890, + 2127141, + 2118137, + 2119982, + 2120037, + 2121600, + 2121692, + 2122428, + 2123258, + 2124330, + 2124583, + 2124724, + 2126731, + 2129857, + 2132310, + 2137388, + 2137358, + 2137796, + 2120865, + 2124950, + 2130811, + 2117892, + 2120779, + 2122166, + 2130374, + 2123894, + 2126433, + 2117209, + 2117626, + 2118520, + 2121833, + 2125353, + 2128463, + 2136051, + 2117131, + 2118422, + 2117358, + 2117461, + 2117437, + 2117537, + 2117491, + 2118304, + 2118639, + 2119177, + 2119951, + 2120385, + 2120630, + 2120673, + 2128337, + 2123399, + 2123676, + 2123702, + 2124620, + 2124979, + 2125931, + 2126786, + 4225421, + 2128318, + 2128444, + 2128775, + 2130609, + 2130651, + 2130692, + 2130807, + 2130927, + 2130899, + 2131814, + 2132658, + 2119209, + 2133160, + 2133990, + 2134094, + 2135838, + 2131594, + 2117572, + 2120936, + 2122257, + 2126425, + 2127163, + 2130405, + 4227773, + 2131710, + 2133184, + 2135749, + 2136339, + 2136533, + 2117323, + 2117402, + 2132451, + 2119390, + 2119754, + 2119882, + 2121467, + 2121707, + 2121770, + 4219028, + 2121826, + 2122192, + 2122258, + 2122448, + 2123065, + 2136897, + 2123366, + 2123952, + 4222327, + 2125936, + 2127180, + 2127494, + 2129269, + 2130597, + 2131961, + 2135435, + 2135694, + 2133149, + 2118129, + 2118334, + 2119958, + 2118835, + 2120627, + 2120982, + 2122088, + 2124162, + 2125231, + 2128013, + 2131147, + 2132055, + 2132594, + 2134951, + 2136760, + 2125164, + 2136488, + 2131673, + 2119587, + 2123775, + 2131662, + 2134542, + 2118275, + 2119303, + 2118660, + 2121427, + 2122465, + 2122937, + 2123836, + 2123832, + 2124731, + 2126706, + 2128058, + 2128491, + 2132378, + 4229586, + 2133355, + 2133763, + 2134253, + 2135459, + 2135700, + 2135913, + 2120550, + 2120883, + 2124157, + 2136141, + 2136142, + 2122651, + 2128672, + 2124331, + 2124415, + 2123958, + 2137101, + 2125663, + 4215410, + 2119069, + 2121840, + 2122476, + 2125115, + 2125319, + 2125521, + 2131035, + 2132240, + 2133828, + 2117140, + 2137145, + 2118646, + 2124059, + 2124346, + 2135940, + 2123818, + 2117980, + 2128579, + 2131122, + 2134492, + 2134924, + 2119259, + 2137384, + 2123810, + 2130693, + 2130993, + 2129061, + 2118152, + 2130629, + 2127078, + 2117246, + 2117507, + 2118048, + 2120658, + 2118154, + 2118360, + 2118375, + 2121211, + 2119066, + 2119722, + 2120166, + 2120588, + 2120600, + 2120667, + 2121330, + 2121337, + 2121891, + 2122015, + 2122083, + 2122174, + 2122715, + 2123106, + 2123729, + 2123859, + 2124026, + 2124606, + 2124627, + 2124887, + 2125602, + 2125719, + 2125637, + 2127024, + 2127128, + 2127587, + 2127627, + 2128639, + 2128801, + 2128929, + 2129385, + 2129718, + 2129904, + 2130077, + 2130534, + 2130846, + 2132403, + 2132684, + 2133163, + 2134148, + 2135121, + 2135443, + 2135441, + 2135458, + 2135653, + 2136019, + 2136360, + 2130456, + 2117176, + 2118699, + 2120888, + 2121164, + 2126761, + 2127436, + 2127676, + 2120873, + 2129899, + 2133259, + 2135745, + 2136081, + 2136148, + 2136152, + 2117377, + 2117390, + 2118513, + 2119068, + 2119272, + 2119674, + 2120007, + 2120457, + 2120644, + 2120848, + 2121228, + 2121342, + 2121676, + 2122734, + 2123578, + 2123223, + 4220386, + 2123551, + 2123979, + 2123972, + 2124383, + 2121264, + 2124741, + 2124823, + 2124925, + 2127231, + 4225352, + 2120547, + 2128384, + 2129152, + 2121661, + 2132367, + 2132504, + 2133172, + 2133367, + 2133708, + 2133789, + 2136290, + 2136590, + 2136892, + 2117248, + 2117757, + 2117888, + 2120083, + 2120604, + 2122287, + 2122368, + 2122988, + 2124602, + 2126496, + 2127249, + 2128199, + 2129833, + 2131963, + 2132668, + 2132848, + 2122668, + 2130890, + 2135968, + 2118665, + 2118659, + 2119083, + 2123860, + 2124376, + 2132592, + 2127911, + 2123637, + 2137805, + 2118516, + 2120610, + 2130202, + 2131536, + 2134022, + 2117144, + 2117189, + 2117319, + 2117393, + 2118602, + 2118712, + 2120622, + 2121491, + 2121765, + 2123089, + 2123581, + 2124866, + 2124914, + 2125027, + 2125944, + 2126851, + 2128502, + 2128558, + 2128648, + 2129178, + 2129150, + 2129254, + 2123239, + 2126427, + 2118587, + 2120773, + 2121192, + 2122450, + 2122464, + 2122521, + 2125344, + 2131546, + 2132529, + 2133469, + 2134776, + 2125569, + 2128294, + 2136922, + 2117288, + 2117291, + 2117292, + 2117531, + 2117536, + 2117841, + 2117959, + 2128630, + 2118001, + 2118134, + 2118484, + 2118433, + 4215679, + 2118635, + 2119084, + 2119811, + 2120929, + 2121527, + 2121546, + 2121775, + 2121808, + 2121837, + 2122527, + 2123097, + 2124363, + 2124993, + 2126530, + 2126573, + 2127855, + 2130168, + 2130181, + 2130440, + 2131278, + 2134263, + 2135009, + 2136063, + 2136407, + 2136666, + 2117360, + 2118109, + 2120749, + 2123393, + 2124141, + 2120768, + 2123506, + 2124149, + 2126729, + 2123856, + 2129025, + 2117829, + 2118372, + 2119495, + 2121214, + 2134822, + 2123172, + 2124579, + 2124605, + 2126900, + 2128257, + 2128317, + 2128715, + 2129354, + 2130617, + 2130892, + 2132095, + 2132319, + 4229945, + 2133969, + 2134481, + 2118687, + 2134656, + 2117213, + 2117686, + 2118629, + 2118458, + 2126551, + 2126742, + 2127849, + 2130662, + 2133679, + 2136518, + 2136520, + 2136530, + 2118007, + 2122010, + 2131550, + 2119088, + 2128506, + 2117750, + 2120659, + 2134087, + 2135685, + 2117170, + 4221659, + 2134503, + 2120785, + 2120776, + 2122648, + 2128543, + 2124947, + 2135924, + 2133857, + 2128554, + 2126218, + 2135688, + 2129026, + 2123799, + 2129520, + 2123857, + 2134892, + 2118386, + 2118683, + 2131371, + 2132499, + 2129828, + 2133709, + 2134241, + 2118502, + 2132104, + 2128193, + 2117570, + 2117822, + 2118161, + 2117956, + 2118995, + 2119469, + 2126826, + 2119563, + 2120017, + 2121570, + 2121604, + 2121845, + 2122102, + 2122087, + 2122153, + 2122674, + 2122810, + 2123116, + 2123375, + 2123842, + 2125331, + 2127206, + 2128445, + 2129147, + 2129228, + 2129305, + 2129483, + 2129771, + 2130702, + 2130762, + 2131661, + 2132488, + 2132579, + 2132838, + 2133757, + 2136090, + 2137487, + 2130616, + 2133966, + 2137064, + 2118279, + 2122271, + 2122883, + 2125760, + 2135705, + 2123841, + 2117777, + 2124576, + 2124922, + 2125652, + 2128500, + 2129232, + 2132032, + 2132515, + 2123528, + 2117366, + 2117689, + 2117670, + 2117733, + 2118012, + 2118200, + 2118243, + 2119079, + 2119439, + 2119685, + 2120396, + 2121466, + 2122162, + 2122232, + 2122483, + 2122610, + 2124060, + 2124329, + 2126461, + 2126508, + 2126638, + 2127892, + 2127983, + 2129273, + 2127628, + 2130089, + 2132363, + 2132761, + 2133218, + 2133714, + 2134115, + 2134901, + 2135674, + 2136149, + 2136595, + 2137720, + 2117955, + 2118559, + 2118579, + 2121339, + 2121510, + 2125339, + 2125456, + 2126724, + 2126846, + 2129219, + 2130487, + 2132480, + 2132730, + 2135632, + 2117198, + 2117643, + 2118628, + 2118780, + 2119418, + 2120145, + 2120548, + 2121201, + 2121387, + 2121511, + 2122296, + 2123077, + 2123695, + 2125398, + 2126544, + 2129098, + 2132148, + 2130081, + 2130145, + 2130928, + 2131534, + 2132615, + 2133480, + 2134583, + 2135751, + 2136167, + 2137875, + 2117268, + 2117266, + 2117389, + 2118472, + 2118729, + 2118718, + 2120239, + 2121612, + 2121633, + 2121887, + 2123943, + 2124430, + 2126938, + 2128001, + 2132638, + 2132644, + 2132855, + 2134416, + 2117214, + 2137033, + 2117284, + 2117500, + 2117551, + 2117657, + 2117654, + 2117961, + 2117996, + 2118303, + 2118329, + 2118398, + 2118554, + 2118627, + 2118673, + 2118670, + 2119049, + 2119505, + 2119586, + 2120061, + 2120532, + 2120541, + 2120591, + 2121189, + 2121191, + 2121207, + 2121336, + 2121347, + 2121370, + 2121399, + 2121496, + 2121810, + 2122060, + 2122391, + 2122456, + 2122663, + 2123067, + 2123266, + 2123331, + 2123508, + 2123629, + 2123809, + 2123927, + 2124235, + 2124895, + 2125098, + 2125161, + 2125359, + 2125469, + 2127154, + 2127495, + 2127980, + 2128447, + 2129120, + 2129157, + 2129176, + 2129246, + 2129329, + 2129941, + 2129923, + 2130095, + 2130097, + 2130260, + 2130319, + 2130474, + 2130770, + 2132044, + 2132065, + 2132763, + 2133154, + 2133244, + 2134218, + 2134389, + 2134641, + 2127935, + 2134780, + 2135460, + 2135629, + 2136069, + 2136473, + 2136792, + 2137403, + 2118235, + 2118315, + 2118647, + 2118664, + 2119893, + 2122487, + 2125792, + 2133098, + 2133855, + 2137785, + 2117963, + 2118203, + 2118730, + 2119421, + 4225600, + 2134391, + 2137440, + 2137810, + 2126660, + 2125577, + 2130288, + 2127121, + 2121725, + 2121946, + 2136744, + 2126555, + 2133948, + 2124644, + 2136067, + 2117322, + 2119408, + 2119524, + 2119870, + 2120282, + 2121832, + 2122183, + 2123279, + 2123270, + 2123833, + 2123953, + 2125303, + 2127317, + 2129210, + 2130542, + 2136898, + 2117275, + 2117456, + 2118601, + 2118918, + 2121071, + 2121190, + 2121198, + 2123771, + 2124953, + 2126963, + 2127874, + 2132560, + 2134934, + 2132191, + 2119504, + 2121383, + 2122539, + 2117813, + 2117804, + 4215181, + 2123520, + 2118857, + 2119774, + 2120123, + 2120624, + 2121577, + 2122317, + 2122657, + 2123837, + 2124659, + 2125320, + 2125949, + 2134471, + 2126464, + 2127893, + 2127910, + 2128237, + 2123150, + 2129200, + 2130908, + 2132161, + 2133769, + 2135707, + 2118244, + 2119464, + 2123600, + 2129770, + 2133153, + 2118068, + 2119490, + 2135594, + 2119738, + 2124170, + 2130100, + 2118834, + 2120974, + 2119676, + 2128021, + 2137594, + 2117468, + 2118218, + 2118795, + 2122814, + 2123304, + 2123540, + 2123765, + 2128516, + 2128726, + 2129186, + 2134831, + 2123868, + 2137005, + 2128697, + 2118425, + 2118026, + 2118199, + 2120671, + 2122486, + 2122926, + 2122982, + 2123565, + 4221882, + 2131369, + 2135761, + 2127504, + 2137046, + 2122572, + 2134790, + 2137003, + 2127551, + 2123346, + 2117129, + 2117784, + 2118594, + 2120817, + 2121960, + 2122898, + 2123107, + 2123871, + 2126310, + 2126794, + 2127139, + 2128791, + 2129538, + 2131605, + 2132867, + 2133211, + 2134392, + 2136336, + 2123180, + 2123435, + 2124683, + 2117333, + 2117332, + 2117434, + 2117503, + 2118202, + 2118648, + 2118642, + 2119139, + 2119387, + 2119915, + 2120139, + 2120137, + 2120191, + 2120528, + 2120781, + 2121218, + 2121259, + 2121687, + 2121757, + 2122503, + 2123055, + 2120540, + 2123183, + 2123197, + 2123240, + 2123677, + 2124642, + 2124667, + 2124815, + 2126661, + 2128201, + 2128321, + 2129144, + 2129177, + 2129195, + 2130082, + 2130178, + 2130419, + 2132374, + 2132574, + 2132585, + 2132582, + 2132620, + 2132718, + 2133191, + 2133212, + 2135756, + 2136316, + 2124655, + 2117259, + 2117436, + 2117517, + 2117968, + 2120535, + 2120698, + 2122056, + 2122497, + 2123330, + 2124577, + 2125515, + 2124987, + 2126398, + 2127037, + 2127316, + 2128065, + 4225338, + 2129932, + 2129971, + 2130410, + 2131092, + 2133918, + 2124880, + 2137727, + 2121487, + 2132824, + 2137387, + 2128634, + 2133752, + 2120589, + 2135787, + 2117123, + 2118641, + 2119671, + 2119985, + 2120393, + 2120612, + 2121865, + 2125439, + 2125574, + 2127294, + 2133226, + 2120607, + 2131200, + 2128864, + 2117746, + 2123764, + 2130589, + 2120801, + 2131274, + 2129438, + 2130446, + 2118041, + 2120708, + 2122600, + 2133350, + 2123164, + 4223342, + 2128190, + 2129175, + 2129925, + 2132765, + 2133706, + 2134126, + 2131655, + 2134186, + 2117663, + 4215546, + 2120762, + 2123603, + 2125948, + 4223541, + 2134348, + 2134472, + 2134827, + 2130661, + 2120642, + 2121521, + 2121977, + 2117179, + 2118614, + 2120584, + 2122315, + 2123569, + 2124682, + 2126569, + 2126816, + 2128430, + 2130283, + 2133411, + 2134354, + 2136470, + 2117906, + 2118615, + 2118762, + 2120703, + 2122632, + 2124345, + 2129324, + 2135808, + 2119386, + 2118606, + 4215912, + 2120599, + 2120753, + 2121182, + 2117614, + 2121985, + 2122494, + 2125106, + 2128320, + 2128331, + 2129218, + 2129485, + 2129874, + 2130413, + 2130463, + 2131088, + 2132038, + 2132338, + 2132880, + 2133620, + 2133807, + 2134065, + 2134347, + 2134380, + 2135750, + 2134428, + 2117312, + 2117455, + 2117957, + 2118465, + 2121619, + 2122254, + 2123732, + 2124865, + 2125323, + 2126691, + 2129446, + 2134477, + 2134659, + 2118612, + 2119961, + 2120639, + 2125265, + 4225373, + 2129454, + 2129051, + 2119806, + 2126239, + 2118138, + 2132051, + 2134000, + 2117578, + 2120955, + 2123301, + 2127788, + 2128611, + 2130460, + 2136575, + 2118086, + 2121642, + 2123244, + 2124143, + 2124681, + 2125299, + 2125462, + 2125668, + 2127614, + 2129172, + 2121185, + 2134133, + 2134407, + 2136070, + 2118118, + 2118173, + 2122304, + 2123409, + 2123481, + 4222490, + 2121398, + 2129362, + 4226930, + 2123512, + 2131375, + 2131447, + 4229880, + 2118313, + 2118617, + 2120051, + 2121359, + 2121616, + 2121813, + 2134756, + 2135652, + 2117815, + 2117919, + 2118365, + 2118432, + 2118471, + 2118636, + 2118888, + 2118982, + 2118961, + 2119191, + 2120040, + 2120126, + 2120252, + 2120629, + 4217862, + 2120719, + 2120721, + 2120730, + 2121348, + 2121354, + 2121440, + 2121584, + 2122367, + 2122372, + 2122459, + 2122636, + 2122615, + 2123271, + 2123276, + 2123309, + 2123382, + 2123646, + 2123938, + 2124319, + 2124341, + 2124988, + 2125192, + 2125321, + 2125400, + 2126140, + 2126118, + 2126183, + 2127303, + 2127617, + 2127965, + 2128129, + 4225381, + 2128368, + 2128608, + 2128657, + 2129063, + 2129209, + 2130070, + 2130902, + 2131083, + 2131273, + 2132061, + 2132211, + 2132511, + 2132540, + 2132564, + 2132595, + 2133089, + 2133214, + 2134436, + 2134630, + 2134910, + 2135064, + 2135708, + 2135960, + 2117130, + 2117128, + 2117150, + 2117207, + 2118039, + 2118256, + 4216782, + 2119732, + 2119884, + 2120482, + 2121272, + 2121925, + 2123006, + 2123617, + 2123606, + 2125124, + 2126518, + 2127219, + 2128483, + 2131128, + 2132850, + 2134456, + 2134816, + 2119217, + 2119668, + 2136318, + 2122477, + 2124045, + 2124694, + 2126317, + 2129492, + 2130039, + 2130546, + 2132454, + 2136287, + 2131797, + 2133937, + 2120763, + 2117432, + 2117601, + 2117557, + 2118919, + 2120224, + 2120669, + 2120681, + 2121667, + 2122062, + 2122543, + 2123184, + 2123339, + 2124014, + 2124187, + 2125176, + 2125297, + 2127155, + 2127289, + 2127647, + 4225374, + 2128358, + 2129203, + 2130403, + 2130607, + 2131370, + 2132394, + 2132538, + 2133675, + 2133915, + 2134066, + 2134493, + 2135815, + 2117306, + 2117313, + 2118147, + 2119797, + 2119916, + 2120715, + 2127130, + 2120765, + 2130254, + 2132490, + 2133957, + 2135651, + 2135917, + 2128677, + 2132687, + 2136072, + 2134370, + 2119411, + 2118568, + 2134039, + 2118713, + 2119554, + 2121253, + 2122664, + 2124852, + 2125962, + 2127713, + 2129035, + 2129888, + 2132080, + 2134082, + 2134356, + 2134800, + 2134808, + 2135695, + 2126942, + 2136772, + 2120967, + 2121065, + 2123120, + 2123682, + 2133416, + 2135771, + 2122606, + 2123593, + 2124057, + 2130885, + 2136087, + 2135744, + 2132222, + 2125700, + 2122874, + 2120696, + 2117142, + 2125868, + 2127197, + 2123311, + 2118084, + 2118198, + 2118370, + 2120147, + 2121601, + 2121767, + 2122256, + 2123071, + 2123124, + 2123295, + 4220532, + 2124018, + 2123798, + 2124643, + 2125317, + 2126450, + 2127135, + 2127579, + 4226238, + 2130006, + 2119920, + 2132221, + 2132351, + 2132640, + 2132627, + 2132683, + 2134045, + 2134418, + 2135890, + 2135897, + 2123145, + 2128398, + 2130182, + 2135739, + 2121261, + 2121948, + 2122266, + 2123173, + 2123284, + 2123664, + 2127859, + 2128461, + 2128973, + 2129470, + 2130186, + 2133164, + 2133348, + 2133473, + 2133599, + 2128041, + 2118151, + 2122457, + 2122661, + 2122818, + 2122392, + 2132525, + 2128515, + 2128832, + 2132652, + 2135786, + 2129270, + 2130444, + 2131785, + 2117337, + 2117960, + 2118467, + 2118496, + 2120611, + 2120706, + 2120726, + 2121181, + 2122278, + 2122311, + 2122928, + 2123795, + 2123828, + 2125001, + 2125125, + 2125079, + 2123731, + 2125660, + 2126158, + 2126205, + 2123211, + 2128511, + 2128813, + 2129370, + 2129482, + 2129832, + 2130298, + 2130459, + 2130489, + 2131366, + 2132590, + 2133198, + 2133493, + 2134136, + 2134135, + 2134701, + 2134673, + 2135427, + 2137006, + 2118221, + 2119044, + 2125624, + 2126134, + 2117992, + 2128261, + 2129493, + 2130355, + 2129102, + 2119244, + 2119761, + 2120872, + 2122666, + 2123518, + 2123517, + 2124122, + 2126553, + 2127247, + 2127246, + 2128142, + 2128214, + 2128351, + 2129047, + 2129184, + 2129220, + 2131463, + 2132532, + 2135611, + 2134113, + 2137888, + 2117863, + 2118261, + 2118604, + 2118626, + 2117641, + 2119082, + 2119918, + 2120015, + 2126397, + 2120587, + 2120804, + 2118429, + 2121955, + 2121971, + 2122588, + 2122627, + 2122559, + 2122683, + 2122957, + 2123241, + 2123513, + 2121187, + 2124237, + 2124285, + 2125589, + 2126309, + 2117257, + 2127337, + 2127608, + 2128531, + 2129119, + 2129359, + 2129308, + 2130017, + 2130761, + 2130776, + 2131052, + 2131132, + 2131451, + 2132165, + 2133360, + 2134017, + 2134125, + 2134935, + 2135836, + 2136594, + 2117839, + 2119831, + 4219278, + 2130387, + 2131253, + 2133256, + 2134048, + 2117571, + 2117748, + 2118215, + 2118515, + 2121839, + 2122569, + 2123615, + 2125356, + 2133427, + 2134047, + 2117591, + 2120798, + 2133194, + 2123215, + 2129306, + 2118482, + 2132118, + 2118006, + 2122691, + 2120536, + 2120555, + 2120714, + 2122765, + 2123601, + 2134108, + 2117334, + 2119962, + 2119978, + 2124912, + 2132561, + 2118974, + 2119701, + 2120101, + 2121968, + 2122323, + 2123713, + 2130485, + 2124117, + 2135616, + 2136516, + 2136616, + 2117459, + 2119686, + 2120702, + 2129936, + 2120881, + 2121263, + 2121605, + 2121760, + 2122059, + 2122292, + 2123519, + 2125040, + 2125534, + 2130126, + 2130303, + 2130644, + 2132107, + 2133176, + 2134016, + 2134062, + 2135690, + 2137819, + 2137051, + 2117347, + 2118640, + 2119975, + 2128684, + 2134413, + 2136140, + 2137593, + 2125533, + 2125863, + 2118483, + 2118980, + 2120581, + 2122328, + 2122398, + 2122451, + 2124962, + 2125807, + 4224034, + 2132503, + 2135096, + 2125761, + 2132734, + 2130744, + 2118119, + 2131704, + 2118634, + 2118633, + 2117446, + 2134100, + 2133936, + 2120042, + 2130225, + 4218365, + 2128618, + 2133951, + 2123994, + 2133047, + 2126584, + 2137160, + 2124349, + 2132656, + 2117177, + 2118488, + 4216326, + 2119526, + 2122437, + 2122658, + 2123238, + 2124622, + 2125281, + 2125403, + 2125997, + 2127853, + 2128623, + 2128810, + 2129339, + 2129981, + 2130118, + 2131659, + 2132629, + 2134875, + 2119395, + 2119879, + 2121534, + 2123181, + 2123414, + 2124416, + 2124725, + 2127159, + 2132679, + 2117668, + 2127845, + 2119472, + 2121499, + 2121829, + 2123386, + 2124896, + 2127348, + 2128410, + 2129774, + 2130420, + 2131736, + 2134085, + 2136499, + 2128841, + 2127196, + 2128633, + 2128721, + 2131140, + 2134032, + 2128361, + 2128530, + 2130742, + 2120417, + 2127680, + 2117165, + 2117362, + 2120601, + 2121696, + 2122429, + 2123324, + 2123761, + 2125032, + 2131563, + 2132087, + 2132539, + 2134350, + 2134771, + 2136528, + 2124311, + 2125862, + 4223786, + 2130663, + 2131031, + 2133167, + 2117121, + 2117958, + 2118091, + 2119051, + 2120693, + 2121238, + 2121267, + 2121345, + 2121492, + 2121525, + 2121579, + 2121652, + 2122226, + 2122513, + 2123426, + 2123549, + 4222830, + 2126418, + 2127162, + 2127674, + 2130036, + 2130233, + 2130296, + 2131830, + 2132671, + 2132700, + 2133381, + 2133491, + 2134682, + 2135415, + 2136066, + 2137317, + 2118341, + 2122583, + 2127604, + 2123541, + 2124936, + 2126797, + 2133187, + 2134958, + 2135667, + 2125093, + 2119836, + 2124046, + 2124236, + 2134013, + 2134938, + 2127323, + 2134042, + 2119770, + 2123778, + 2122676, + 2124283, + 2117443, + 2125612, + 2123736, + 2133947, + 2131238, + 2129332, + 2134868, + 2124095, + 2125680, + 2119530, + 2119927, + 2120492, + 2129196, + 2126378, + 2118666, + 2134499, + 4234676, + 2117293, + 2117454, + 2117724, + 2117749, + 2118211, + 2133150, + 2118728, + 2119716, + 2120602, + 2121245, + 2121365, + 2121389, + 2121463, + 2121503, + 2121868, + 2122421, + 2122554, + 2122704, + 2123951, + 2124864, + 2128007, + 2128270, + 2128395, + 2129376, + 2130503, + 2132482, + 2132710, + 2133572, + 2134035, + 2134200, + 2134317, + 2134488, + 2137870, + 2125029, + 2122840, + 2122978, + 2123125, + 2125556, + 2127492, + 2128667, + 2134121, + 2134993, + 2125498, + 2118898, + 2121657, + 2122916, + 2133837, + 2133997, + 2134596, + 2118008, + 2119787, + 2119977, + 2120789, + 2121367, + 2125307, + 2129551, + 2127132, + 2133180, + 2133730, + 2136155, + 2126009, + 2117405, + 2124735, + 2125745, + 2127152, + 2135803, + 2117966, + 2118672, + 2119733, + 2119767, + 2120108, + 2120800, + 2121618, + 2123159, + 2123612, + 2125345, + 2127483, + 2130911, + 2133229, + 2134036, + 4231421, + 2134861, + 2127909, + 2127930, + 2118314, + 2121382, + 2119455, + 2120052, + 2121746, + 2117650, + 2117978, + 4215212, + 2118093, + 2118144, + 2118928, + 2119764, + 2119768, + 2120023, + 2120597, + 2120950, + 2121099, + 2121916, + 2122389, + 2122797, + 2123633, + 2123843, + 2123964, + 2123999, + 2127575, + 2125272, + 2125423, + 2125211, + 2125935, + 2126280, + 2121555, + 2127320, + 2128247, + 2128713, + 2128724, + 2128722, + 4226262, + 2129265, + 2118192, + 2131043, + 2131305, + 2131428, + 2132494, + 2132740, + 2133062, + 2133519, + 2134019, + 2134031, + 2135065, + 2135670, + 2136109, + 2136624, + 2135512, + 2117837, + 2118357, + 2118668, + 2119682, + 2120718, + 2122151, + 2122910, + 2125086, + 2127795, + 2128613, + 2130164, + 2130948, + 2134099, + 2134661, + 2120928, + 2137351, + 2118463, + 2121623, + 2121651, + 2125212, + 2126457, + 2127715, + 2128319, + 2128868, + 2124754, + 2126572, + 2132653, + 2123779, + 2124385, + 2118136, + 2128513, + 2124084, + 2120778, + 2137334, + 2130667, + 2120645, + 2134345, + 2125854, + 2119288, + 2120815, + 2121927, + 2123110, + 2124940, + 2133082, + 2134081, + 2136083, + 2118737, + 2123463, + 2134541, + 2120008, + 2134179, + 2118021, + 2117197, + 2118122, + 2131353, + 2132750, + 2125912, + 2122618, + 2134859, + 2124130, + 2136500, + 2129412, + 2127223, + 2118487, + 2124128, + 2133727, + 4232931, + 2124893, + 2117260, + 2120764, + 2121488, + 2133993, + 2118402, + 2133201, + 2130057, + 2131577, + 2121471, + 2123237, + 2117235, + 2117989, + 2120066, + 2120767, + 2136046, + 2117371, + 2120074, + 2121677, + 2132621, + 2125793, + 2128304, + 2128226, + 4217831, + 2131057, + 2126635, + 2126257, + 2121332, + 2121717, + 2122619, + 2122906, + 2126275, + 2129048, + 2117187, + 2121468, + 2117195, + 2119644, + 2119330, + 2121897, + 2125763, + 2129165, + 2130173, + 2130227, + 2130367, + 2133938, + 2132375, + 2131620, + 2121204, + 2122378, + 2122925, + 2132359, + 2123639, + 2125026, + 2125118, + 2126902, + 2127924, + 2120262, + 2129781, + 2130605, + 2136492, + 2117619, + 2121411, + 2122461, + 2122642, + 2123095, + 2123631, + 2127555, + 2126412, + 2130124, + 2130106, + 2133801, + 2134349, + 2117645, + 2119673, + 2120338, + 4221061, + 2124147, + 2126180, + 2126589, + 2133175, + 2119922, + 2133216, + 2135658, + 2134041, + 2131839, + 2128356, + 2127847, + 2130985, + 2117423, + 2118245, + 2118490, + 2122445, + 2123727, + 2125002, + 2127485, + 2128788, + 2129045, + 2130486, + 2131332, + 2133995, + 2123485, + 2125600, + 2126342, + 2129435, + 2130859, + 2136513, + 2137766, + 2118141, + 2128817, + 2127986, + 2128824, + 2130055, + 2128712, + 2124520, + 2121313, + 2130060, + 2127185, + 2127200, + 2117995, + 2134626, + 2125452, + 2127482, + 2134423, + 2136810, + 2117392, + 2129776, + 2122396, + 2128719, + 2135461, + 2137321, + 2119290, + 2119769, + 2131684, + 2135740, + 2117428, + 2118180, + 2118474, + 2118605, + 2118619, + 2121222, + 2122796, + 2123153, + 2123647, + 2124862, + 2124878, + 2126408, + 2126511, + 2126829, + 2127188, + 2129473, + 2130476, + 2131433, + 2133161, + 2128836, + 2134470, + 2126185, + 2136082, + 4233455, + 2122557, + 2123369, + 2127210, + 2127588, + 2128080, + 2131267, + 2131694, + 2118442, + 4215633, + 2118694, + 2120067, + 2121351, + 2121596, + 2121906, + 2122313, + 2122361, + 2122411, + 2123152, + 2124756, + 2125004, + 2127282, + 2127534, + 4225169, + 2128344, + 2129355, + 2129783, + 2130085, + 2132139, + 2132665, + 2133179, + 2134143, + 2135902, + 2136283, + 2124299, + 2128952, + 2117785, + 2120766, + 2121646, + 2123655, + 2124760, + 2126901, + 2127625, + 2129806, + 2137915, + 2123722, + 2128407, + 2118457, + 2127243, + 2136813, + 2121574, + 2130333, + 2130929, + 2130072, + 2121532, + 2121669, + 2127202, + 2128710, + 2134076, + 2123879, + 2120171, + 2120347, + 2129168, + 2127486, + 2132780, + 2117621, + 2121578, + 2124313, + 2124855, + 2125570, + 2127074, + 2128232, + 2132072, + 2132565, + 2133113, + 2121439, + 2122703, + 2127301, + 2128338, + 2130647, + 2134824, + 2134770, + 2131100, + 2131693, + 2137133, + 2118849, + 2121580, + 2123148, + 2125148, + 2125845, + 2133159, + 4230355, + 4233275, + 4220239, + 2127094, + 2117133, + 2117336, + 2119648, + 2119979, + 2120294, + 2120652, + 2118056, + 2121219, + 2121372, + 2121750, + 2122358, + 2123127, + 2123175, + 2123374, + 2125166, + 2126390, + 2128678, + 2130256, + 2130330, + 2130585, + 2132828, + 2133152, + 2133222, + 2133364, + 2135580, + 2135620, + 2117550, + 2122923, + 2124646, + 2130462, + 2131041, + 2131306, + 2134248, + 2120705, + 2124115, + 2136232, + 2131066, + 2131287, + 2117391, + 2118255, + 2121641, + 2121285, + 2123533, + 2128271, + 2130297, + 2132231, + 2132358, + 2125301, + 2121495, + 2122325, + 2124984, + 2117327, + 2126441, + 2136978, + 2118150, + 2118715, + 2119284, + 2119859, + 2122148, + 2122350, + 2126106, + 2120046, + 2129033, + 2129118, + 2129179, + 2135792, + 2123143, + 2130014, + 2117145, + 2117493, + 2118005, + 2119744, + 2121315, + 2121331, + 2121482, + 2123716, + 2117158, + 2131261, + 2135433, + 2135643, + 2129011, + 2136065, + 2117883, + 2119873, + 2127446, + 2128039, + 2118181, + 2127781, + 2131217, + 2128774, + 2117711, + 2119945, + 2126407, + 2128839, + 2129384, + 2133946, + 2133972, + 2134093, + 2117567, + 4215497, + 2120233, + 2121473, + 2135981, + 2117597, + 2130455, + 2134762, + 2119427, + 2122581, + 2124649, + 2127147, + 2132188, + 2133780, + 2128450, + 2118367, + 2119827, + 2122069, + 2122250, + 2123438, + 2124749, + 2128959, + 2130921, + 2117667, + 2117624, + 2118405, + 2118726, + 2119729, + 2120009, + 2120605, + 2120944, + 2120943, + 2121001, + 2121366, + 2122417, + 2122599, + 2123070, + 2123193, + 2123531, + 2125013, + 2125025, + 2126073, + 2127922, + 2129451, + 2130142, + 2130611, + 2130956, + 2131180, + 2131714, + 2132242, + 2132522, + 2133066, + 2134182, + 2134738, + 2136317, + 2137331, + 2137452, + 2117199, + 2117281, + 2117773, + 2118230, + 2119498, + 2120104, + 2121277, + 2121688, + 2121689, + 2122303, + 2123444, + 2123547, + 2123728, + 2123986, + 2118034, + 2129185, + 2130090, + 2130344, + 2132736, + 2133132, + 2133183, + 2134654, + 2135602, + 2118688, + 2136108, + 2118423, + 2117845, + 2118492, + 4217000, + 2122930, + 2123572, + 2126439, + 2127718, + 2128454, + 2134502, + 2118339, + 2124961, + 2124678, + 2119680, + 2121292, + 2120020, + 2123564, + 2129915, + 2118113, + 2127558, + 2122857, + 2128104, + 2136916, + 2137787, + 2119627, + 2120121, + 2123303, + 2123674, + 2124750, + 2118889, + 2124249, + 2121301, + 2130332, + 2123669, + 2137002, + 2123774, + 2137170, + 2123869, + 2117286, + 2117603, + 2118600, + 2122425, + 2123563, + 2124971, + 2133956, + 2117549, + 2129517, + 2137791, + 2117127, + 2122082, + 2125440, + 2125611, + 2131219, + 2118771, + 2123562, + 2136901, + 2121203, + 2128789, + 2120876, + 2120646, + 2131740, + 2125386, + 2131153, + 2128404, + 2130184, + 2120089, + 2129037, + 2124817, + 2127648, + 2118361, + 2119970, + 2126113, + 2126431, + 2127835, + 2135847, + 2137441, + 2124043, + 2120319, + 2120216, + 2118053, + 2118669, + 2118781, + 2123278, + 2127583, + 2134007, + 2134680, + 2137332, + 2120170, + 2126429, + 2125509, + 2117965, + 2123977, + 2129343, + 2129388, + 2135906, + 2137786, + 2122872, + 2124321, + 2130690, + 2120068, + 2120543, + 2124763, + 2126619, + 2127602, + 2129330, + 2129943, + 2131097, + 2117938, + 2123560, + 2137817, + 2127598, + 2123618, + 2118399, + 2136325, + 2120740, + 2122299, + 2129022, + 2133168, + 2118991, + 2121910, + 2129163, + 2135424, + 2118401, + 2117215, + 2118070, + 2119964, + 2126394, + 2129974, + 2134478, + 2121509, + 2127842, + 2118532, + 2121593, + 2129156, + 2131372, + 2132531, + 2133645, + 2135894, + 2123763, + 2131374, + 2135123, + 2121993, + 2121992, + 2124985, + 2127442, + 4229869, + 2133816, + 2118959, + 2117457, + 2117930, + 2118343, + 2118603, + 2120613, + 2121341, + 2121888, + 2122114, + 2122710, + 2123529, + 2123738, + 2125415, + 2125196, + 2126646, + 2126647, + 2127153, + 4225360, + 2132181, + 2132632, + 2134090, + 2134161, + 2134261, + 2135748, + 2131853, + 2119957, + 2117256, + 2117465, + 2117134, + 2132617, + 2133823, + 2136080, + 2117805, + 2121340, + 2120086, + 2120633, + 2121400, + 2122714, + 2122746, + 2122945, + 2123484, + 2124106, + 2124248, + 2125067, + 2125494, + 2126228, + 2127144, + 2128559, + 4226954, + 2129920, + 2131017, + 2131145, + 2132353, + 2132769, + 2133514, + 2134117, + 2135677, + 2136330, + 2122110, + 2122385, + 2124594, + 2124931, + 2125172, + 2129868, + 2129916, + 2125248, + 2129797, + 2131898, + 2132216, + 2123621, + 2130865, + 2136124, + 2135799, + 2125083, + 2129249, + 2131005, + 2134378, + 2117233, + 2118517, + 2121040, + 4221700, + 2125803, + 2131405, + 2131501, + 2132391, + 2118185, + 2118671, + 2120805, + 2123598, + 2123944, + 2126854, + 2126979, + 2127330, + 2132175, + 2132193, + 2134476, + 2135778, + 2135672, + 2121611, + 2126727, + 2128587, + 2131022, + 2122656, + 2127205, + 2118281, + 2125121, + 2125468, + 2126857, + 2127193, + 2127979, + 2129042, + 2135686, + 2128604, + 2137997, + 2117558, + 2122094, + 2123205, + 4228700, + 2117254, + 2117294, + 2117850, + 2117153, + 2118092, + 2120686, + 2123161, + 2123905, + 2125244, + 2126623, + 2127426, + 2127789, + 2128412, + 2129127, + 2130543, + 2132690, + 2134140, + 2134479, + 2135669, + 2136088, + 2118299, + 2129361, + 2117675, + 2118552, + 2123671, + 2125259, + 2126288, + 2126899, + 2130408, + 2133802, + 2135715, + 2137175, + 2137759, + 2126944, + 2119745, + 2125209, + 2129199, + 4233310, + 2117348, + 2117430, + 2117515, + 2118071, + 2118321, + 2121146, + 2121756, + 2126770, + 2128188, + 2130643, + 2134580, + 2135735, + 2135798, + 2135818, + 2137751, + 2137954, + 2123430, + 2124660, + 2118167, + 2118307, + 2126024, + 2132162, + 4218569, + 2121803, + 2122128, + 4222755, + 4223305, + 2128958, + 4226548, + 2130031, + 4228334, + 4231203, + 2134828, + 2118722, + 2136943, + 2124499, + 2125961, + 2133186, + 2133487, + 2135858, + 2118324, + 2120257, + 2121418, + 2121476, + 4220695, + 2124156, + 2124180, + 2125162, + 2125583, + 2126434, + 2126588, + 2128877, + 2129921, + 2130046, + 2131787, + 2134222, + 2117997, + 2137747, + 2128260, + 2130059, + 2134834, + 2132694, + 2117677, + 2118796, + 2132593, + 2124650, + 2133188, + 2130183, + 2121937, + 2123680, + 2137586, + 2117273, + 2117272, + 2137104, + 2132587, + 2131393, + 2131304, + 2124032, + 2125438, + 2128023, + 2130261, + 2121484, + 2117136, + 2117141, + 2117162, + 2117169, + 2117174, + 2117180, + 2117183, + 2117186, + 2117206, + 2117208, + 2117250, + 2117253, + 2133099, + 2117258, + 2130450, + 2121485, + 2117262, + 2117278, + 2117279, + 2117280, + 2117282, + 2117296, + 2117299, + 2117302, + 2117326, + 2117325, + 2117316, + 2117318, + 2117314, + 2117335, + 2117342, + 2117357, + 2117343, + 2117367, + 2117385, + 2117466, + 2117424, + 2117467, + 2117469, + 2117463, + 2117447, + 2117494, + 2117512, + 2117519, + 2117528, + 2117499, + 2117481, + 2117488, + 2117521, + 2117487, + 2117510, + 2117526, + 2117912, + 2117588, + 2117599, + 2117582, + 2117592, + 2117595, + 2117585, + 2117594, + 2117584, + 2117604, + 2117605, + 2117658, + 2117672, + 2117652, + 2117674, + 2117669, + 2117637, + 2117404, + 2117622, + 2117665, + 2117673, + 2117676, + 2117630, + 2117615, + 2117649, + 2117638, + 2117699, + 2117703, + 2123523, + 2117717, + 2117712, + 2117704, + 2117722, + 2117718, + 2117740, + 2117752, + 2117760, + 2117786, + 2117765, + 2117812, + 2117810, + 2117833, + 2117834, + 2117811, + 2117826, + 2117846, + 2117854, + 2117861, + 2117869, + 2117859, + 2117870, + 2117881, + 2117877, + 2117897, + 2117889, + 2117890, + 2117910, + 2117909, + 2117908, + 2117914, + 2117921, + 2117946, + 2117943, + 2117948, + 2117947, + 2117951, + 2117952, + 2117970, + 2117964, + 4215124, + 2117986, + 2128632, + 2117993, + 2117994, + 2117998, + 2118016, + 2118018, + 2119384, + 2118028, + 2118025, + 2118031, + 2118033, + 2118035, + 4215189, + 2118038, + 2118052, + 2118054, + 2118050, + 2118057, + 2118058, + 2118059, + 2118067, + 2118065, + 2118066, + 2118064, + 2118069, + 2118077, + 2118085, + 2118089, + 2118107, + 2118112, + 2131541, + 2118121, + 2118125, + 2118128, + 2118133, + 2118142, + 2118148, + 2118155, + 2118164, + 2118158, + 2118183, + 2118186, + 2118190, + 2118195, + 2118201, + 2118223, + 2118212, + 2118219, + 2118220, + 2118238, + 2118228, + 2118250, + 2118260, + 2118249, + 2118259, + 2118271, + 2118269, + 2118285, + 2118292, + 2118290, + 2118257, + 2118280, + 2118289, + 2133928, + 2133927, + 2118316, + 2118317, + 2118332, + 2118325, + 2118337, + 2118349, + 2118359, + 2118366, + 2118371, + 2118374, + 2136301, + 2118368, + 2118387, + 2118389, + 2118392, + 2118393, + 2118406, + 2118408, + 2127160, + 2118413, + 2118416, + 2118415, + 2118421, + 2118426, + 2118435, + 2118447, + 2118449, + 2118451, + 2118456, + 2118464, + 2118470, + 2118469, + 2117143, + 2118473, + 2118477, + 2118102, + 2118494, + 2118505, + 2118510, + 2119960, + 2118523, + 2118519, + 2118530, + 2118550, + 2118560, + 2118566, + 2118565, + 2118574, + 2118576, + 2118582, + 2118595, + 2128914, + 2135769, + 2118623, + 2123516, + 2126318, + 2118638, + 2118632, + 2118637, + 2118650, + 2118657, + 2118717, + 2118720, + 2118700, + 2118701, + 2118716, + 2118702, + 2118710, + 2118697, + 2118685, + 2118734, + 2118799, + 2118773, + 2118798, + 2118751, + 2118769, + 2118775, + 2118768, + 2118802, + 2118779, + 2118784, + 2118774, + 2118788, + 2118800, + 2118790, + 2118855, + 2118818, + 2118840, + 2118821, + 2118828, + 2118852, + 2118856, + 2118824, + 2118827, + 2118850, + 2118820, + 2118846, + 2118844, + 2118872, + 2118885, + 2118886, + 2118927, + 2118932, + 2118909, + 2118894, + 2118893, + 2118906, + 2118882, + 2118969, + 2118976, + 2119011, + 2118988, + 2118958, + 2119004, + 2118981, + 2118998, + 2118999, + 2118968, + 2118963, + 2119005, + 2119065, + 2119040, + 2118831, + 2119050, + 2119071, + 2119035, + 2119038, + 2119064, + 2119070, + 2119086, + 2119036, + 2119043, + 2119081, + 2119047, + 2119080, + 2119130, + 2119109, + 2119135, + 2119108, + 2119132, + 2119140, + 2119124, + 2119188, + 2119159, + 2119190, + 2119166, + 2119165, + 2119195, + 2119161, + 2119246, + 2119248, + 2126303, + 2119220, + 2119222, + 2119218, + 2119224, + 2119275, + 2119268, + 2119215, + 2119276, + 2119274, + 2119302, + 2119296, + 2119306, + 2119328, + 2119316, + 2119311, + 2119333, + 2119342, + 2119350, + 2119348, + 2119362, + 2119356, + 2119361, + 2119363, + 2119360, + 2119368, + 2119374, + 2119377, + 2119379, + 2119383, + 2119406, + 2119417, + 2119424, + 2119423, + 2119428, + 2119433, + 2119432, + 2119435, + 2119437, + 2119443, + 2119448, + 2119446, + 2119111, + 2119452, + 2119462, + 2119479, + 2119480, + 2119502, + 2119483, + 2119488, + 2119503, + 2119529, + 2119616, + 2119560, + 2119521, + 2119551, + 2119561, + 2119571, + 2119584, + 2119603, + 2119588, + 2119594, + 2119600, + 2119619, + 2119622, + 2119636, + 2119634, + 2119635, + 2119690, + 2119638, + 2119651, + 2119691, + 2119705, + 2119709, + 2119794, + 2119713, + 2119778, + 2119755, + 2119792, + 2124736, + 2119762, + 2119741, + 2119801, + 2119813, + 2119865, + 2119839, + 2119851, + 2119866, + 2119902, + 2119867, + 2119864, + 2119854, + 2119877, + 2119891, + 2119889, + 2119895, + 2119897, + 2119896, + 2119909, + 2119900, + 2119908, + 2119903, + 2119919, + 2119930, + 2119929, + 2119931, + 2119932, + 2119933, + 2119938, + 2119946, + 2119952, + 2119963, + 2123942, + 2119973, + 2119980, + 2119981, + 2119986, + 2119992, + 2119998, + 2128594, + 2120021, + 2120016, + 2120014, + 2120026, + 2120024, + 2120034, + 2120032, + 2120039, + 2120044, + 2120041, + 2120056, + 2120065, + 2120093, + 2117470, + 2117547, + 2120099, + 2120114, + 2120134, + 2120168, + 2120156, + 2120077, + 2120153, + 2120154, + 2120229, + 2120223, + 2120209, + 2120220, + 2120201, + 2120218, + 2120256, + 2120300, + 2120265, + 2120245, + 2120246, + 2120290, + 2120298, + 2120346, + 2120380, + 2120382, + 2120395, + 2120386, + 2120381, + 2120419, + 2120407, + 2120422, + 2120425, + 2120406, + 2120442, + 2120443, + 2120460, + 2120459, + 2120470, + 2120498, + 2120400, + 2120490, + 2120502, + 2120510, + 2120515, + 2120517, + 2120512, + 2120529, + 2120533, + 2120538, + 2120539, + 2120549, + 2120553, + 2120560, + 2120563, + 2120565, + 2120568, + 2123144, + 2120570, + 2120576, + 2120579, + 2120614, + 2120632, + 2120643, + 2120647, + 2120649, + 2120660, + 2120656, + 2120676, + 2120678, + 2120674, + 2120670, + 2120677, + 2120683, + 2120688, + 2120694, + 2120691, + 2120709, + 2120711, + 2120712, + 2120717, + 2120723, + 2120736, + 2120738, + 2120744, + 2120760, + 2120761, + 2120769, + 2120774, + 2120782, + 2120787, + 2120784, + 2120783, + 2120561, + 2120812, + 4217966, + 2117218, + 2120822, + 2120825, + 2120844, + 2120849, + 2120852, + 2120091, + 2120875, + 2120891, + 2120886, + 2120892, + 2120887, + 2120901, + 2120894, + 2120903, + 2120921, + 2120937, + 2120957, + 2120954, + 2120941, + 2121100, + 2120938, + 2120971, + 2120981, + 2120983, + 2121052, + 2120991, + 2120987, + 2120977, + 2120980, + 2120994, + 2120986, + 2120985, + 2120984, + 2121036, + 2121042, + 2121038, + 2121035, + 2121068, + 2121075, + 2121078, + 2121095, + 2121092, + 2121090, + 2121122, + 2121117, + 2121132, + 2121134, + 2121149, + 2121104, + 2121143, + 2121148, + 2121161, + 2121165, + 2121171, + 2121170, + 2121174, + 2121179, + 2121195, + 2121202, + 2121205, + 2121227, + 2121242, + 2121241, + 2121233, + 2121243, + 2121270, + 2121271, + 2121284, + 2121283, + 2121280, + 2121294, + 2121303, + 2121300, + 2121311, + 2121314, + 2121316, + 2121287, + 2121333, + 2121334, + 2121338, + 2137788, + 2121343, + 2121376, + 2121409, + 2121410, + 2121416, + 2121424, + 2121423, + 2121430, + 2121443, + 2121437, + 2121434, + 2121435, + 2121442, + 2121441, + 2121448, + 2121449, + 2121452, + 2121457, + 2121459, + 2121456, + 2121460, + 2121464, + 2121470, + 2121475, + 2121481, + 2121565, + 2121564, + 2121483, + 2121489, + 2121494, + 2121513, + 2121517, + 2121528, + 2121537, + 2121544, + 2121548, + 2121550, + 2121519, + 2121553, + 2121558, + 2121559, + 2121561, + 2121569, + 2121581, + 2121587, + 2121591, + 2121603, + 2121602, + 2121599, + 2121610, + 2121608, + 2121617, + 2121607, + 2121630, + 2121625, + 2121624, + 2121632, + 2121640, + 2121645, + 2121660, + 2121686, + 2121723, + 2121700, + 2121720, + 2121713, + 2121693, + 2121907, + 2121727, + 2121761, + 2121824, + 2121753, + 2121744, + 2121769, + 2121742, + 2121777, + 2121755, + 2121749, + 2121771, + 2121766, + 2121743, + 2121786, + 2121818, + 2121793, + 2121834, + 2121847, + 2121823, + 2121802, + 2121798, + 2121805, + 2121827, + 2121795, + 2121828, + 2121794, + 2121836, + 2121835, + 2121817, + 2121857, + 2121869, + 2121959, + 2121859, + 2121882, + 2121860, + 2121883, + 2121878, + 2121879, + 2121874, + 2121895, + 2121867, + 2121953, + 2121912, + 2121952, + 2121939, + 2121908, + 2121712, + 2121917, + 2121926, + 2121909, + 2121944, + 2122061, + 2122005, + 2121990, + 2121974, + 2121975, + 2121984, + 2121972, + 2121978, + 2121987, + 2122017, + 2121979, + 2121969, + 2121997, + 2121998, + 2122055, + 2122046, + 2122024, + 2122023, + 2122058, + 2122047, + 2122044, + 2122028, + 2122036, + 2122045, + 2122050, + 2122052, + 2122099, + 2122103, + 2122072, + 2122073, + 2122074, + 2122091, + 2122100, + 2122095, + 2122085, + 2122097, + 2122079, + 2122077, + 2122067, + 2122101, + 2122137, + 2122134, + 2122119, + 2122156, + 2122132, + 2122138, + 2122122, + 2122129, + 2122155, + 2122158, + 2122188, + 2122186, + 2122185, + 2122231, + 2122184, + 2122179, + 2122182, + 2122170, + 2122187, + 2129785, + 2122189, + 2122214, + 2122211, + 2122230, + 2122234, + 2122228, + 2122239, + 2122237, + 2122236, + 2122238, + 2122240, + 2122248, + 2122249, + 2122253, + 2122252, + 2122260, + 2122267, + 2122270, + 2122273, + 2122282, + 2122286, + 2122288, + 2122290, + 2122291, + 2122305, + 2122318, + 2122334, + 2122339, + 2122331, + 2122336, + 2122344, + 2122364, + 2122370, + 2122377, + 2122366, + 2122386, + 2122387, + 2122390, + 4219604, + 2122371, + 2122388, + 2122455, + 2122449, + 2122427, + 2122447, + 2122495, + 2122438, + 2122964, + 2122440, + 2122460, + 2122444, + 2122442, + 2122434, + 2122439, + 2122395, + 2122441, + 2122508, + 2122478, + 2122481, + 2122535, + 2122498, + 2122504, + 2122479, + 2122485, + 2122576, + 2122558, + 2122573, + 2122780, + 2122575, + 2122646, + 2122638, + 2122624, + 2122667, + 2122614, + 2122659, + 2122639, + 2122633, + 2122655, + 2122677, + 2122603, + 2122601, + 2122686, + 2122729, + 2122688, + 2122694, + 2122723, + 2122697, + 2122706, + 2122742, + 2122692, + 2122774, + 2122804, + 2122758, + 2122771, + 2122790, + 2122806, + 2123037, + 2122775, + 2122792, + 2122767, + 2122855, + 2122863, + 2122870, + 2122830, + 2123050, + 2122901, + 2122899, + 2122917, + 2122921, + 2122888, + 2122940, + 2122970, + 2122962, + 2122949, + 2122951, + 2122939, + 2122968, + 2122946, + 2122993, + 2122983, + 2130441, + 2122976, + 2122977, + 2122412, + 2122979, + 2122991, + 2123052, + 2122998, + 2122996, + 2122994, + 2123002, + 2123008, + 2123005, + 2123032, + 2123036, + 2123013, + 2123044, + 2123043, + 2123051, + 2123060, + 2123061, + 2123063, + 2123062, + 2123064, + 2127179, + 2123080, + 2123094, + 2123093, + 2123085, + 2123096, + 2123102, + 2123101, + 2123122, + 2123128, + 2123138, + 2123139, + 2132874, + 2123163, + 2123167, + 2123179, + 2123191, + 2123203, + 2123206, + 2123201, + 2123204, + 2123212, + 2123218, + 2123227, + 2123225, + 2123232, + 2123233, + 2123249, + 2123634, + 2123274, + 2123267, + 2123259, + 2123635, + 2123317, + 2123318, + 2123316, + 2123292, + 2123343, + 2123332, + 2123337, + 2123329, + 2123358, + 2123357, + 2123364, + 2123367, + 2123368, + 2123359, + 2123362, + 2123376, + 2123395, + 2123400, + 2123406, + 2123401, + 2123396, + 2123416, + 2123421, + 2123457, + 2123449, + 2123465, + 2123454, + 2123452, + 2123460, + 2123448, + 2123478, + 2123482, + 2123488, + 2123327, + 2123494, + 2123497, + 2123504, + 2123509, + 2123511, + 2123535, + 2123542, + 2123550, + 2123558, + 2123559, + 2135864, + 2123566, + 2123583, + 2123574, + 2123585, + 2123576, + 2123575, + 2123590, + 2123614, + 2123616, + 2123609, + 2123619, + 2123620, + 2123657, + 2123632, + 2123689, + 2123644, + 2123626, + 2123660, + 2123659, + 2123686, + 2123681, + 2123653, + 2123703, + 2123759, + 2123700, + 2123756, + 2123699, + 2123753, + 2123704, + 2123748, + 2123742, + 2123741, + 2123746, + 2123758, + 2123705, + 2123726, + 2123718, + 2123751, + 2124444, + 2123806, + 2123846, + 2123817, + 2123840, + 2123853, + 2123826, + 2123854, + 2123955, + 2123819, + 2123865, + 2123875, + 2123895, + 2123903, + 2123935, + 2123919, + 2123949, + 2123924, + 2123933, + 2123931, + 2123907, + 2124462, + 2123961, + 2123892, + 2123957, + 2123936, + 2123962, + 2124047, + 2123917, + 2123902, + 2124033, + 2123978, + 2124040, + 2123992, + 2124066, + 2124070, + 2124001, + 2124044, + 2123981, + 2123988, + 2124007, + 2123989, + 2124086, + 2124050, + 2124036, + 2123991, + 2124003, + 2124069, + 2124025, + 2124000, + 2124015, + 2124072, + 2124074, + 2124058, + 2124067, + 2124065, + 2123974, + 2124153, + 2124151, + 2124124, + 2124152, + 2124139, + 2124116, + 2124158, + 2124142, + 2124089, + 2124148, + 2124093, + 2124121, + 2124080, + 2124129, + 2124126, + 2124125, + 2124161, + 2124138, + 2124210, + 2124206, + 2124240, + 2124223, + 2124225, + 2124243, + 2124222, + 2124238, + 2120680, + 2124234, + 2124253, + 2124219, + 2124227, + 2124199, + 2124334, + 2124177, + 2124192, + 2124188, + 2124181, + 2124212, + 2124254, + 2124264, + 2124290, + 2124315, + 2124287, + 2124554, + 2124281, + 2124274, + 2124263, + 2124293, + 2124209, + 2124318, + 2124269, + 2124308, + 2124267, + 2124298, + 2124306, + 2124481, + 2124323, + 2124307, + 2124356, + 2124300, + 2124402, + 2124342, + 2124408, + 2124359, + 2124386, + 2124377, + 2124390, + 2124360, + 2124344, + 2124322, + 2124432, + 2124429, + 2124448, + 2124420, + 2124450, + 2124451, + 2124439, + 2131479, + 2124475, + 2124483, + 2124482, + 2124472, + 2124467, + 2124460, + 2124510, + 2124497, + 2124511, + 2124458, + 2124506, + 2124522, + 2124539, + 2124549, + 2131478, + 2124538, + 2124562, + 2124566, + 2136881, + 2124575, + 2124600, + 2124599, + 2127580, + 2124601, + 2136302, + 2124615, + 2124611, + 2124617, + 2124624, + 2124633, + 2124628, + 2124635, + 2124639, + 2124641, + 2124664, + 2124665, + 2124671, + 2124672, + 2124676, + 2124675, + 2124685, + 2124696, + 2124693, + 2124702, + 2124708, + 2124714, + 2124715, + 2124719, + 2124722, + 2124721, + 2124723, + 2124727, + 2124732, + 2124742, + 2124747, + 2124755, + 2124767, + 2124780, + 2124779, + 2124787, + 2124783, + 2137790, + 2124808, + 2124819, + 2124820, + 2124827, + 2124836, + 2124835, + 2124894, + 2124885, + 2124898, + 2124906, + 2124930, + 2124941, + 2124954, + 2124929, + 2124955, + 2124926, + 2124904, + 2124915, + 2124946, + 2124944, + 2124996, + 2125041, + 2125011, + 2124989, + 2125015, + 2124997, + 2125021, + 2124974, + 2124977, + 2124990, + 2124986, + 2125019, + 2125039, + 2125017, + 2125034, + 2125087, + 2132045, + 2125110, + 2125099, + 2125117, + 2125112, + 2125081, + 2125109, + 2125107, + 2125074, + 2125068, + 2125155, + 2125203, + 2125156, + 2125146, + 2125177, + 2125145, + 2125198, + 2125205, + 2125796, + 2125189, + 2125305, + 2125333, + 2125322, + 2125237, + 2125255, + 2125286, + 2125240, + 2125254, + 2125292, + 2125278, + 2125260, + 2125288, + 2125266, + 2125253, + 2125306, + 2125273, + 2125284, + 2125269, + 2125290, + 2125294, + 2125357, + 2125422, + 2125358, + 2125337, + 2125426, + 2125407, + 2125374, + 2125347, + 2125419, + 2125355, + 2125430, + 2125389, + 2125343, + 2125379, + 2125370, + 2125390, + 2125348, + 2125567, + 2125341, + 2125368, + 2125442, + 2125482, + 2125464, + 2125513, + 2125495, + 2125523, + 2125501, + 2125487, + 2125508, + 2125490, + 2125524, + 2125525, + 2125455, + 2125477, + 2125506, + 2125471, + 2125633, + 2125585, + 2125900, + 2125548, + 2125560, + 2125566, + 2125631, + 2125554, + 2125617, + 2125551, + 2125618, + 2125516, + 2125630, + 2125587, + 2125559, + 2125702, + 2125690, + 2125688, + 2125697, + 2125696, + 2125679, + 2125659, + 2125811, + 2125677, + 2125698, + 2125692, + 2125656, + 2125710, + 2125713, + 2125762, + 2125670, + 2125747, + 2125731, + 2125729, + 2125732, + 2125753, + 2125766, + 2125738, + 2125791, + 2125781, + 2125804, + 2125780, + 2125784, + 2125809, + 2125806, + 2125787, + 2125833, + 2125835, + 2125818, + 2125841, + 2125825, + 2125839, + 2125822, + 2125851, + 2125850, + 2125684, + 2125853, + 2125848, + 2125855, + 2125872, + 2125886, + 2125874, + 2125905, + 2125923, + 2125977, + 2125970, + 2125999, + 2126065, + 2125996, + 2126008, + 2126003, + 2125998, + 2126047, + 2126027, + 2126045, + 2126041, + 2126089, + 2126077, + 2126108, + 2126105, + 2126181, + 2126165, + 2126216, + 2126182, + 2126178, + 2126156, + 2126166, + 2126188, + 2126223, + 2126331, + 2126212, + 2126229, + 2126248, + 2126252, + 2126295, + 2126265, + 2126270, + 2126290, + 2126281, + 2126292, + 2126286, + 2126304, + 2126316, + 2126311, + 2126325, + 2126332, + 2126329, + 2126335, + 2126349, + 2126352, + 2126363, + 4223528, + 2126381, + 2126380, + 2126384, + 2126386, + 2126395, + 2126396, + 2126399, + 2126400, + 2126406, + 2126411, + 2126424, + 2126452, + 2126462, + 2126466, + 2126465, + 2126471, + 2126482, + 2126486, + 2126498, + 2126503, + 2126521, + 2126514, + 2126531, + 2126534, + 2126532, + 2126542, + 2126546, + 2126562, + 2126560, + 2126561, + 2126585, + 2126583, + 2117647, + 2126615, + 2126602, + 2126620, + 2126614, + 2126621, + 2126644, + 2126639, + 2126633, + 2126629, + 2126654, + 2126670, + 2126671, + 2137816, + 2126679, + 2126698, + 2126696, + 2126704, + 2126712, + 2126709, + 2126715, + 2126714, + 2126792, + 2126771, + 2126798, + 2126779, + 2126784, + 2126821, + 2126830, + 2126814, + 2127010, + 2126853, + 2126959, + 2126885, + 2126840, + 2126898, + 2126906, + 2126933, + 2126911, + 2126943, + 2126937, + 2126913, + 2126940, + 2126953, + 2126960, + 2126947, + 2126954, + 2126966, + 2126974, + 2126987, + 2127006, + 2127015, + 2127050, + 2127055, + 2127060, + 2126833, + 2127072, + 2127075, + 2127079, + 2127081, + 2127086, + 2127090, + 2127088, + 2127089, + 2127096, + 2127095, + 2127108, + 2127107, + 2127109, + 2127116, + 2127118, + 2127117, + 2127125, + 2127123, + 2127134, + 2127142, + 2127148, + 2127164, + 2127172, + 2127181, + 2127178, + 2127177, + 2127195, + 2127174, + 2127194, + 2127209, + 2127204, + 2127207, + 2127211, + 2127213, + 2127224, + 2127222, + 2127238, + 2127239, + 2127220, + 2127242, + 2127241, + 2127234, + 2127252, + 2127258, + 2127261, + 2127269, + 2127267, + 2127298, + 2127283, + 2127299, + 2127285, + 2127293, + 2127288, + 2127292, + 2127281, + 2127309, + 2127306, + 2127314, + 2127321, + 2127331, + 2127326, + 2127358, + 2127359, + 2127356, + 2127361, + 2127344, + 2127354, + 2127346, + 2127347, + 2127371, + 2127373, + 2127369, + 2127391, + 2127399, + 2127392, + 2127393, + 2127394, + 2127396, + 2127412, + 2127408, + 2127419, + 2127431, + 2127432, + 2127430, + 2127452, + 2127448, + 2127457, + 2127458, + 2127464, + 2127465, + 2127466, + 2127463, + 2127468, + 2127472, + 2127474, + 2127478, + 2127480, + 2127484, + 2127488, + 2127491, + 2127496, + 2127499, + 2127502, + 2127510, + 2127507, + 2127513, + 2127514, + 2127536, + 2127540, + 2127544, + 2127545, + 2127546, + 2127554, + 2127565, + 2127574, + 2127570, + 2127582, + 2127585, + 2127589, + 2127591, + 2127594, + 2131503, + 2127611, + 2127624, + 2127623, + 2127620, + 2127657, + 2127652, + 4224798, + 2127653, + 2127654, + 2127643, + 2127671, + 2127672, + 2127687, + 2127706, + 2127720, + 2127723, + 2127707, + 2127717, + 2127743, + 2127742, + 2127737, + 2127758, + 2127755, + 2127761, + 2127776, + 2127774, + 2127792, + 2127798, + 2127801, + 2127807, + 2127804, + 2127805, + 2127803, + 2127815, + 2127821, + 2127831, + 2127834, + 2127836, + 2127843, + 2127854, + 2127868, + 2127884, + 2127890, + 2128166, + 2127904, + 2128170, + 2127941, + 2128014, + 2127988, + 2128006, + 2127996, + 2128026, + 2128012, + 2128035, + 2128053, + 2128042, + 2128047, + 2128081, + 2128070, + 2128075, + 2128084, + 2128062, + 2128060, + 2128069, + 2128074, + 2128108, + 2128103, + 2128090, + 2128125, + 2128116, + 2128135, + 2128146, + 2128145, + 2128153, + 2128172, + 2128171, + 2128192, + 2128224, + 2128215, + 2128223, + 2128218, + 2128213, + 2128211, + 2128250, + 2128255, + 2128266, + 2128285, + 2128295, + 2137931, + 2128298, + 2128302, + 2128307, + 2128313, + 2128314, + 2128329, + 2128341, + 2128359, + 2128364, + 2128353, + 2128355, + 2128392, + 2128397, + 2128408, + 2128409, + 2128416, + 2128415, + 2128256, + 2128433, + 2128443, + 2128446, + 2128439, + 2128451, + 2128471, + 2128457, + 2128481, + 2128482, + 2128489, + 2138013, + 2128496, + 2128505, + 2128509, + 2128520, + 2128535, + 2128533, + 2128536, + 2128534, + 2128553, + 2128584, + 2128560, + 2128566, + 2128581, + 2128580, + 2128575, + 2134147, + 2128583, + 2128586, + 2128589, + 2128591, + 2128597, + 2128595, + 2128601, + 2128602, + 2128605, + 2128609, + 2128610, + 2128614, + 2128621, + 2128624, + 2128642, + 2128655, + 2128650, + 2128646, + 2128691, + 2128664, + 2128665, + 2128670, + 2128693, + 2128680, + 2128694, + 2128720, + 2128762, + 2128644, + 2128717, + 2128651, + 2128716, + 2128709, + 2128757, + 2128741, + 2128756, + 2128743, + 2128752, + 2128753, + 2128748, + 2128750, + 2128797, + 2128792, + 2128799, + 2128781, + 2128796, + 2128794, + 2128779, + 2128786, + 2128783, + 2128733, + 2128793, + 2128843, + 2128833, + 2128844, + 2128847, + 2128820, + 2128838, + 2128861, + 2128873, + 2128913, + 2128916, + 2128870, + 2128869, + 2128992, + 2128896, + 2128903, + 2128915, + 2128883, + 2128887, + 2128919, + 2128909, + 2128886, + 2128931, + 2128935, + 2128938, + 2128927, + 2128951, + 2128939, + 2128957, + 2128972, + 2128963, + 2128980, + 2128975, + 2128960, + 2128976, + 2128984, + 2128991, + 2128996, + 2128982, + 2128997, + 2129004, + 2129013, + 2129027, + 2129040, + 2129060, + 2129069, + 2129058, + 2129067, + 2129057, + 2129064, + 2129075, + 2129074, + 2129073, + 2129070, + 2129081, + 2129085, + 2129088, + 2129093, + 2129090, + 2129112, + 2129106, + 2129116, + 2129122, + 2136891, + 2129135, + 2129138, + 2129140, + 2129142, + 2129146, + 2129158, + 2129154, + 2129180, + 2129173, + 2129162, + 2129221, + 2129227, + 2129198, + 2129202, + 2129215, + 2129205, + 2129222, + 2129267, + 2129238, + 2129230, + 2129266, + 2129256, + 2129262, + 2129231, + 2129251, + 2129299, + 2129289, + 2129243, + 2129295, + 2129277, + 2129307, + 2129338, + 2129326, + 2129315, + 2129333, + 2129351, + 2129341, + 2129323, + 2129469, + 2129314, + 2129327, + 2129372, + 2129336, + 2129311, + 2129328, + 2129368, + 2129373, + 2129380, + 2129374, + 2129403, + 2129394, + 2129377, + 2129413, + 2129418, + 2129443, + 2129441, + 2129426, + 2129457, + 2129439, + 2129417, + 2129419, + 2129442, + 2129478, + 2129510, + 2129467, + 2129461, + 2129465, + 2129475, + 2129463, + 2129458, + 2129466, + 2129511, + 2129501, + 2129494, + 2129502, + 2129497, + 2129498, + 2129529, + 2129514, + 2129513, + 2129532, + 2129531, + 2129539, + 2129365, + 2129533, + 2133934, + 2129535, + 2129544, + 2129545, + 2129548, + 2129554, + 2129552, + 2129555, + 2129556, + 2129558, + 2129550, + 2129563, + 2129564, + 2129720, + 2129722, + 2129733, + 2129740, + 2129741, + 2129742, + 2129744, + 2129745, + 2129749, + 2129748, + 2129752, + 2129759, + 2129760, + 2129768, + 2129769, + 2129767, + 2129784, + 2129794, + 2129798, + 2129795, + 2129800, + 2129799, + 2129804, + 2129812, + 2129822, + 2129821, + 2129818, + 2129827, + 2129839, + 2129842, + 2129849, + 2129838, + 2129846, + 2129848, + 2132849, + 2129861, + 2129862, + 2129866, + 2129877, + 2129876, + 2129889, + 2129894, + 2129897, + 2129907, + 2129913, + 2136284, + 2129926, + 2129924, + 2129931, + 2129938, + 2129944, + 2129945, + 2129948, + 2129953, + 2129960, + 2129983, + 2129979, + 2129994, + 2129990, + 2130002, + 2130008, + 2130010, + 2130015, + 2130018, + 2130024, + 2130035, + 2130034, + 2130032, + 2130038, + 2130041, + 2130045, + 2130047, + 2130052, + 2130054, + 2130053, + 2130075, + 2130067, + 2130074, + 2130093, + 2118032, + 2130092, + 2130139, + 2130149, + 2130137, + 2130141, + 2130116, + 2130138, + 2130134, + 2130185, + 2130159, + 2130161, + 2130203, + 2130217, + 2130211, + 2130223, + 2130251, + 2135691, + 2130246, + 2130238, + 2130259, + 2130257, + 2130172, + 2130289, + 2130286, + 2130277, + 2130278, + 2130292, + 2130307, + 2130312, + 2130314, + 2130304, + 2130306, + 2130336, + 2130325, + 2130340, + 2130339, + 2130271, + 2130323, + 2130345, + 2130352, + 2130357, + 2130366, + 2130360, + 2130365, + 2130368, + 2130370, + 2130362, + 2130377, + 2130381, + 2130385, + 2130393, + 2130392, + 2130376, + 2130394, + 2130399, + 2130400, + 2130407, + 2130426, + 2130427, + 2130430, + 2130433, + 2130434, + 2130437, + 2130439, + 2130442, + 2130445, + 2130448, + 2130454, + 2130473, + 2130475, + 2130488, + 2130483, + 2130496, + 2130521, + 2130520, + 2130525, + 2130522, + 2130527, + 2130532, + 2130530, + 2130536, + 2130538, + 2130539, + 2130478, + 2130545, + 2130551, + 2130552, + 2130558, + 2130573, + 2130578, + 2130603, + 2130591, + 2130619, + 2130604, + 2130657, + 2130659, + 2130655, + 2130642, + 2130676, + 2130675, + 2130682, + 2130835, + 2130691, + 2130683, + 2130681, + 2130654, + 2130694, + 2130652, + 2130697, + 2130649, + 2130741, + 2130740, + 2130710, + 2130738, + 2130737, + 2130752, + 2130745, + 2130768, + 2130757, + 2130735, + 2130731, + 2130711, + 2130712, + 2130821, + 2130842, + 2130858, + 2130847, + 2130850, + 2130838, + 2130723, + 2130830, + 2130823, + 2130826, + 2130812, + 2130869, + 2130803, + 2130805, + 2130848, + 2130825, + 2130856, + 2130932, + 2130963, + 2130923, + 2130894, + 2130941, + 2130947, + 2130904, + 2130955, + 2130881, + 2130935, + 2130951, + 2130912, + 2130930, + 2130957, + 2130978, + 2130976, + 2130877, + 2131000, + 2131206, + 2130939, + 2131053, + 2130986, + 2131004, + 2131290, + 2131076, + 2131063, + 2131051, + 2131117, + 2131054, + 2131074, + 2131049, + 2131014, + 2130988, + 2131055, + 2131065, + 2130997, + 2131146, + 2131042, + 2131129, + 2131135, + 2131103, + 2131161, + 2131149, + 2131131, + 2131162, + 2131152, + 2131137, + 2131142, + 2131158, + 2131105, + 2131233, + 2131199, + 2131188, + 2131223, + 2131224, + 2131244, + 2131231, + 2131221, + 2131220, + 2131196, + 2131264, + 2131299, + 2131288, + 2131272, + 2131265, + 2131458, + 2131275, + 2131285, + 2131328, + 2131364, + 2131336, + 2131345, + 2131338, + 2131368, + 2131309, + 2131348, + 2131355, + 2131434, + 2131335, + 2131356, + 2131319, + 2131326, + 2131344, + 2131401, + 2131386, + 2131407, + 2131385, + 2131408, + 2131413, + 2131421, + 2131429, + 2131420, + 2131449, + 2131466, + 2131475, + 2131467, + 2131454, + 2131450, + 2131462, + 2131490, + 2131482, + 2131504, + 2131519, + 2131533, + 2117205, + 2131540, + 2131551, + 2131559, + 2131569, + 2131603, + 2131619, + 2131625, + 2131626, + 2131595, + 2131596, + 2131638, + 2131631, + 2131652, + 2131654, + 2131632, + 2131657, + 2132003, + 2131627, + 2131668, + 2131678, + 2131689, + 2131692, + 2131679, + 2131675, + 2131695, + 2131730, + 2131718, + 2131720, + 2131712, + 2131715, + 2131707, + 2131729, + 2131721, + 2131725, + 2131705, + 2131722, + 2131764, + 2131775, + 2131767, + 2131771, + 2131749, + 2131753, + 2131738, + 2131808, + 2131807, + 2131832, + 2131788, + 2131790, + 2131828, + 2131799, + 2131816, + 2131822, + 2131801, + 2131795, + 2131811, + 2131818, + 2131973, + 2131874, + 2131871, + 2131842, + 2131887, + 2131915, + 2131901, + 2131904, + 2131920, + 2135766, + 2131883, + 2131908, + 2131891, + 2131911, + 2131910, + 2131899, + 2131951, + 2131954, + 2131936, + 2131983, + 2131981, + 2131966, + 2131958, + 2131959, + 2131982, + 2131922, + 2131985, + 2131990, + 2131989, + 2132002, + 2132001, + 2132017, + 2132022, + 2132025, + 2132007, + 2132027, + 2132036, + 2132034, + 2132050, + 2132057, + 2132062, + 2132066, + 2132075, + 2132097, + 2132094, + 2132126, + 2132085, + 2132093, + 2132149, + 2132082, + 2132098, + 2132119, + 2132114, + 2132142, + 2132121, + 2132130, + 2132109, + 2132132, + 2132144, + 2132159, + 2132145, + 2132163, + 2132164, + 2132180, + 2132184, + 2132185, + 2132189, + 2132217, + 2132226, + 2132220, + 2132212, + 2132200, + 2132210, + 2132228, + 2132236, + 2132234, + 2132243, + 2132291, + 2132254, + 2132261, + 2132266, + 2132267, + 2132289, + 2132292, + 2132283, + 2132278, + 2132280, + 2132300, + 2132253, + 2132320, + 2132318, + 2132326, + 2132324, + 2132333, + 2132330, + 2132335, + 2132340, + 2132343, + 2132350, + 2132355, + 2132360, + 2132362, + 2132371, + 2132376, + 2132385, + 2132393, + 2132390, + 2132396, + 2132399, + 2132402, + 2132410, + 2132413, + 2132415, + 2132416, + 2132442, + 2132444, + 2132445, + 2132455, + 2132468, + 2132472, + 2132483, + 2132502, + 2132496, + 2132492, + 2132507, + 2132509, + 2132517, + 2132534, + 2132545, + 2132571, + 2132562, + 2132550, + 2132552, + 2132604, + 2132589, + 2132588, + 2132578, + 2132613, + 2132610, + 2132612, + 2132648, + 2132641, + 2132625, + 2132645, + 2132646, + 2132634, + 2132643, + 2132676, + 2132685, + 2132674, + 2132698, + 2132715, + 2132723, + 2132711, + 2132708, + 2132721, + 2132756, + 2132704, + 2132706, + 2132727, + 2132702, + 2132699, + 2132748, + 2132743, + 2132762, + 2132705, + 2132758, + 2132752, + 2132759, + 2132768, + 2132787, + 2135979, + 2132774, + 2132779, + 2132798, + 2132776, + 2132801, + 2132812, + 2132815, + 2132814, + 2132809, + 2132822, + 2132827, + 2132826, + 2132843, + 2132831, + 2132844, + 2132847, + 2132852, + 2132861, + 2132864, + 2132876, + 2132878, + 2132882, + 2132883, + 2132886, + 2132889, + 2132890, + 2133050, + 2133057, + 2133055, + 2133064, + 2133068, + 2133070, + 2133072, + 2133077, + 2133090, + 2133100, + 2133112, + 2133114, + 2133122, + 2133129, + 2133125, + 2133130, + 2133133, + 2133134, + 2133140, + 2133116, + 2133144, + 2122269, + 2133165, + 2133162, + 2133181, + 2133170, + 2133171, + 2133166, + 2133174, + 2133192, + 2133185, + 2133220, + 2133219, + 2133210, + 2133245, + 2133242, + 2133243, + 2133252, + 2133253, + 2133258, + 2133255, + 2133263, + 2133261, + 2133264, + 2137934, + 2133267, + 2133197, + 2133268, + 2133270, + 2133351, + 2133357, + 2133361, + 2133363, + 2133377, + 2133401, + 2133442, + 2133438, + 2133434, + 2133455, + 2133466, + 2133462, + 2133452, + 2133467, + 2133451, + 2133482, + 2133483, + 2133471, + 2133475, + 2133500, + 2133512, + 2133513, + 2133503, + 2133533, + 2133534, + 2133520, + 2133535, + 2133570, + 2133557, + 2133552, + 2133556, + 2133578, + 2133575, + 2133577, + 2133580, + 2133584, + 2133576, + 2133593, + 2133604, + 2133600, + 2133546, + 2133603, + 2133589, + 2133622, + 2133618, + 2133628, + 2133633, + 2133639, + 2133637, + 2133636, + 2133643, + 2133642, + 2133651, + 2133649, + 2133652, + 2133657, + 2133674, + 2133665, + 2133676, + 2133680, + 2133702, + 2133681, + 2133694, + 2133701, + 2133704, + 2133707, + 2133723, + 2133731, + 2133756, + 2133755, + 2133739, + 2133758, + 2133770, + 2133765, + 2133781, + 2133778, + 2133785, + 2133779, + 2133788, + 2133791, + 2133787, + 2133772, + 2133798, + 2133811, + 2133819, + 2133817, + 2133829, + 2133826, + 2133822, + 2133836, + 2133833, + 2133830, + 2133838, + 2133847, + 2133852, + 2133858, + 2133859, + 2133860, + 2133916, + 2133919, + 2133923, + 2133933, + 2133935, + 2133943, + 2133978, + 2133989, + 2133986, + 2133994, + 2133999, + 2134151, + 2134004, + 2134021, + 2134009, + 2134010, + 2134033, + 2134037, + 2134049, + 2134029, + 2134046, + 2134038, + 2134027, + 2134055, + 2134070, + 2134069, + 2134073, + 2134008, + 2134095, + 2134096, + 2134097, + 2134098, + 2134030, + 2134089, + 2134078, + 2134102, + 2134104, + 2134110, + 2134120, + 2134127, + 2134134, + 2135720, + 2134130, + 2134146, + 2134141, + 2134145, + 2134144, + 2134154, + 2134153, + 2134159, + 2134184, + 2134191, + 2134193, + 2134197, + 2134242, + 2134244, + 2122312, + 2134235, + 2134274, + 2134290, + 2134297, + 2134322, + 2134320, + 2134346, + 2134358, + 2134360, + 2134371, + 2134373, + 2134377, + 2134387, + 2134386, + 2134411, + 2134409, + 2134402, + 2134434, + 2134443, + 2134447, + 2134442, + 2134453, + 2134452, + 2134458, + 2134464, + 2134465, + 2134473, + 2134475, + 2134480, + 2134486, + 2134495, + 2134497, + 2134491, + 2134524, + 2134517, + 2134518, + 2134558, + 2134527, + 2134548, + 2134572, + 2134549, + 2134545, + 2134622, + 2134615, + 2134597, + 2134601, + 2134628, + 2134600, + 2134677, + 2134591, + 2134603, + 2134608, + 2134684, + 2134678, + 2134675, + 2134683, + 2134618, + 2134735, + 2134713, + 2134711, + 2134761, + 2134799, + 2134778, + 2134852, + 2134830, + 2134809, + 2134818, + 2134810, + 2134819, + 2134842, + 2134837, + 2134843, + 2134876, + 2134880, + 2134908, + 2134894, + 2134870, + 2134960, + 2134956, + 2134957, + 2134932, + 2134969, + 2134998, + 2134999, + 2135016, + 2135013, + 2135000, + 2134979, + 2135005, + 2134992, + 2134984, + 2135012, + 2135066, + 2135060, + 2135059, + 2135043, + 2135047, + 2135056, + 2135094, + 2135083, + 2135093, + 2135073, + 2135098, + 2135105, + 2135122, + 2135108, + 2135131, + 2135136, + 2135138, + 2135134, + 2135146, + 2134569, + 2135152, + 2135157, + 2135159, + 2135165, + 2135130, + 2135164, + 2135166, + 2135169, + 2135167, + 2135426, + 2135431, + 2135434, + 2135444, + 2135446, + 2135448, + 2135449, + 2135456, + 2135464, + 2135463, + 2135469, + 2135484, + 2135483, + 2135481, + 2135486, + 2135498, + 2125814, + 2135491, + 2135501, + 2135500, + 2135509, + 2135508, + 2135510, + 2135516, + 2135521, + 2135525, + 2135522, + 2135585, + 2135592, + 2135598, + 2135599, + 2135618, + 2135628, + 2135631, + 2135627, + 2135671, + 2135644, + 2135646, + 2135645, + 2135647, + 2135654, + 2135666, + 2135660, + 2135693, + 2135704, + 2135701, + 2135703, + 2135722, + 2135719, + 2135729, + 2135730, + 2135728, + 2135732, + 2135734, + 2135736, + 2135737, + 2135758, + 2135755, + 2135753, + 2135757, + 2132301, + 2135772, + 2135821, + 2135765, + 2135801, + 2135812, + 2135814, + 2135816, + 2135827, + 2135822, + 2135825, + 2135823, + 2135830, + 2135833, + 2135844, + 2135850, + 2135856, + 2135865, + 2135869, + 2135870, + 2135876, + 2135878, + 2135880, + 2135874, + 2135881, + 2135900, + 2135904, + 2135908, + 2135910, + 2135912, + 2118354, + 2135915, + 2135921, + 2135929, + 2135941, + 2135932, + 2135937, + 2135930, + 2135942, + 2135947, + 2135951, + 2135952, + 2135964, + 2135976, + 2135974, + 2135971, + 2135987, + 2135988, + 2136003, + 2136006, + 2136008, + 2136011, + 2136028, + 2136045, + 2137935, + 2136050, + 2128607, + 2136054, + 2136053, + 2136079, + 2136076, + 2136120, + 2136100, + 2136097, + 2136119, + 2136125, + 2136134, + 2136143, + 2136139, + 2136171, + 2136175, + 2136176, + 2136177, + 2136180, + 2136179, + 2136234, + 2136239, + 2136241, + 2136246, + 2136260, + 2136259, + 2136262, + 2136297, + 2136299, + 2136323, + 2136329, + 2136338, + 2136340, + 2136344, + 2136353, + 2136349, + 2136350, + 2136356, + 2136352, + 2136364, + 2136366, + 2136381, + 2136382, + 2136386, + 2136393, + 2136389, + 2136400, + 2136395, + 2136401, + 2136402, + 2136396, + 2136405, + 2136471, + 2136472, + 2136485, + 2136493, + 2136494, + 2136508, + 2136543, + 2136539, + 2136541, + 2136536, + 2136529, + 2136557, + 2136558, + 2136561, + 2136562, + 2136571, + 2136568, + 2136577, + 2136591, + 2136581, + 2136546, + 2136601, + 2136619, + 2136631, + 2136645, + 2136642, + 2136640, + 2136643, + 2136638, + 2136661, + 2136653, + 2136667, + 2136663, + 2136671, + 2136674, + 2136677, + 2136676, + 2136681, + 2136683, + 2136682, + 2136749, + 2136752, + 2136764, + 2136768, + 2136783, + 2136785, + 2136787, + 2136788, + 2136798, + 2136799, + 2136802, + 2136803, + 2136806, + 2136815, + 2136811, + 2136814, + 2136820, + 2136817, + 2136823, + 2136827, + 2136838, + 2136856, + 2136858, + 2136863, + 2136866, + 2136867, + 2136869, + 2136871, + 2136872, + 2136873, + 2136874, + 2136878, + 2136879, + 2136882, + 2136900, + 2136899, + 2136911, + 2136909, + 2136910, + 2136913, + 2136920, + 2136948, + 2136979, + 2136963, + 2136977, + 2136982, + 2136983, + 2136991, + 2136992, + 2137000, + 2137012, + 2137024, + 2137034, + 2137017, + 2137030, + 2137039, + 2137041, + 2137042, + 2137059, + 2137058, + 2137060, + 2137044, + 2137057, + 2137146, + 2137074, + 2137073, + 2137072, + 2137109, + 2137108, + 2137097, + 2137107, + 2137100, + 2137094, + 2137096, + 2137106, + 2137098, + 2137092, + 2137134, + 2137115, + 2137125, + 2137124, + 2137121, + 2137136, + 2137159, + 2137138, + 2137158, + 2137150, + 2137178, + 2137184, + 2137191, + 2137206, + 2137208, + 2137319, + 2137324, + 2137328, + 2137353, + 2137352, + 2137323, + 2137347, + 2137350, + 2137386, + 2137382, + 2137519, + 2137379, + 2137375, + 2137412, + 2137365, + 2137362, + 2137409, + 2137407, + 2137406, + 2137414, + 2137416, + 2137437, + 2137438, + 2137444, + 2137425, + 2137424, + 2137433, + 2137458, + 2137481, + 2137479, + 2137515, + 2137455, + 2137466, + 2137498, + 2137508, + 2137513, + 2137522, + 2137540, + 2137537, + 2137531, + 2137528, + 2137530, + 2137542, + 2137551, + 2137538, + 2137561, + 2137555, + 2137592, + 2137574, + 2137581, + 2137583, + 2137597, + 2137626, + 2137627, + 2137630, + 2137717, + 2137721, + 2137725, + 2137729, + 2137736, + 2137739, + 2137740, + 2137746, + 2137749, + 2137745, + 2137757, + 2137765, + 2137769, + 2137784, + 2137770, + 2137773, + 2135905, + 2137804, + 2137806, + 2137807, + 2137808, + 2137812, + 2137820, + 2137822, + 2137821, + 2137824, + 2137829, + 2137832, + 2137839, + 2137844, + 2137846, + 2137847, + 2137849, + 2137851, + 2137852, + 2137853, + 2137863, + 2137864, + 2127543, + 2137877, + 2137889, + 2137900, + 2137918, + 2137930, + 2137938, + 2137940, + 2137955, + 2137951, + 2137952, + 2137953, + 2137958, + 2137959, + 2137964, + 2137962, + 2137975, + 2137970, + 2137974, + 2138005, + 2138012, + 2138016, + 2119727, + 2124231, + 2134105, + 2126948, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + 2119006, + 4233460, + 4222626, + 4234287, + 4222443, + 4231106, + 4221725, + 4215721, + 2264285, + 4216386, + 4233484, + 2126128, + 4229462, + 2137559, + 4231142, + 4218978, + 4219600, + 4220518, + 4216221, + 4228187, + 4233092, + 2119321, + 2112846, + 4227056, + 4227051, + 4218813, + 4225351, + 2117600, + 6312831, + 4214981, + 2133696, + 4216240, + 2124507, + 4217937, + 4233076, + 4225345, + 4219239, + 2250868, + 2129515, + 2130758, + 2264822, + 4214822, + 4217548, + 4219762, + 2137724, + 4229882, + 4218359, + 2123323, + 4222621, + 2137780, + 4234592, + 4224273, + 4231623, + 4221322, + 2123781, + 4228521, + 4234198, + 4231942, + 4223946, + 4215793, + 2120802, + 4231278, + 4220755, + 4223100, + 2129505, + 4231499, + 4220633, + 2125338, + 4228527, + 4228599, + 4216040, + 4218592, + 4221090, + 2131235, + 2134444, + 4233112, + 4228949, + 4233073, + 4231191, + 4227040, + 4220026, + 4231197, + 2131948, + 4220080, + 4220947, + 4223310, + 4223357, + 4229742, + 4216396, + 4231265, + 4215413, + 2122772, + 4224550, + 4231260, + 2136658, + 4227455, + 4234971, + 4216132, + 4222959, + 2126882, + 4228856, + 2121213, + 4231103, + 4221146, + 4234312, + 4221501, + 2128926, + 4229691, + 4223014, + 4215243, + 4219735, + 4221388, + 4232090, + 4216922, + 2122833, + 4231469, + 4220130, + 4222650, + 2119777, + 2136154, + 4216885, + 4217952, + 4228063, + 4230381, + 4216920, + 2128305, + 4234503, + 2125830, + 4223006, + 4216440, + 4231233, + 4233235, + 4231331, + 4229902, + 4223064, + 4221282, + 4225456, + 2119370, + 4223564, + 4231193, + 4225508, + 2118237, + 4225976, + 2125649, + 2134449, + 4219709, + 4219465, + 4221451, + 4220874, + 4225559, + 4231228, + 4217499, + 4229932, + 4218591, + 4222997, + 2136123, + 4228413, + 4224933, + 4217385, + 4218518, + 4222177, + 4228332, + 2136112, + 4234322, + 2137781, + 4215090, + 4233477, + 4226174, + 4232275, + 4219144, + 4224594, + 4223799, + 4223380, + 4227072, + 2130954, + 4231292, + 2125603, + 2126153, + 2131182, + 4221332, + 2131999, + 2117972, + 4215177, + 2118037, + 4215204, + 4216121, + 4216115, + 4216292, + 4216370, + 4216485, + 4216843, + 4217534, + 2234906, + 2120795, + 4218468, + 4219031, + 4219753, + 4219910, + 2123042, + 4220291, + 4220838, + 2123770, + 4221083, + 2123918, + 4222574, + 2245584, + 2126376, + 4223950, + 4224260, + 4224269, + 4224277, + 4224659, + 4225148, + 4225585, + 4235165, + 4225945, + 4226192, + 4226222, + 4226459, + 4226478, + 4226463, + 4227028, + 4227630, + 4227725, + 4227794, + 4227875, + 4227957, + 4228375, + 2131262, + 4228994, + 4229074, + 4229386, + 4229551, + 4229854, + 4229953, + 4230618, + 4230665, + 4230931, + 4231146, + 4231145, + 4231256, + 4219464, + 4231617, + 4232635, + 2127714, + 4232996, + 4233056, + 4233069, + 4233252, + 4234030, + 4234135, + 4234226, + 4234922, + 4235164, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + 4227750, + 4227880, + 2119251, + 6312873, + 4223577, + 4222066, + 4225800, + 4233559, + 4219635, + 4233488, + 6330221, + 6320509, + 4225663, + 4225965, + 4219843, + 6325215, + 4225378, + 4215771, + 4225991, + 4231108, + 4226110, + 4214986, + 4215573, + 4216233, + 4216494, + 4216857, + 4217115, + 4217896, + 4218576, + 4218575, + 4219457, + 4220609, + 4221960, + 4222499, + 4222700, + 4225687, + 4226013, + 4227049, + 4228130, + 4228953, + 4229134, + 6326226, + 4233753, + 4234925, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + 4231202, + 4231099, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + 2118108, + 2126233, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + 2129546, + 2132252, + 2134856, + 2134664, + 2131164, + 2117577, + 2126011, + 2123313, + 2123976, + 2134777, + 2123515, + 2121541, + 2117160, + 2117345, + 2117372, + 2117376, + 2117379, + 2117433, + 2117462, + 2117522, + 2117514, + 2117530, + 2117524, + 2117581, + 2117696, + 2117666, + 2117631, + 2117662, + 2117702, + 2117744, + 2117698, + 2117780, + 2117876, + 2117848, + 2117962, + 2117988, + 2118045, + 2118078, + 2118124, + 2118165, + 2118300, + 2118310, + 2118336, + 2118363, + 2118400, + 4215559, + 2118436, + 2118514, + 2118547, + 2118578, + 2118621, + 2161166, + 2118812, + 2118794, + 2118825, + 2118911, + 2119046, + 2119513, + 2119525, + 2119596, + 2119624, + 2119623, + 2161167, + 6314074, + 2119838, + 2119858, + 2119947, + 2120019, + 2120027, + 2120029, + 2120035, + 2120100, + 2120122, + 2120534, + 2120640, + 2127151, + 2120664, + 4217819, + 2120734, + 2120870, + 2120890, + 2120949, + 2120999, + 2121043, + 4258321, + 2121026, + 2121069, + 2121144, + 2121145, + 2121168, + 2121505, + 2121524, + 2121575, + 2121655, + 2121694, + 2121821, + 2121861, + 2121866, + 2121950, + 2121941, + 2122016, + 2121970, + 2122001, + 2122039, + 2122032, + 2122136, + 2122259, + 2122406, + 2122741, + 2122848, + 2122909, + 2122958, + 2123086, + 2123264, + 2123285, + 2123273, + 2123310, + 4220446, + 2123300, + 2123365, + 2123351, + 2123353, + 2123380, + 2123379, + 2123417, + 2123424, + 2123442, + 2123455, + 2123514, + 2123534, + 6317847, + 2123622, + 2123707, + 4221010, + 2123712, + 4220929, + 2123844, + 2123983, + 2161171, + 2124136, + 2161172, + 2124184, + 2124258, + 2124336, + 2124395, + 2124358, + 2124403, + 2124414, + 2124514, + 2124516, + 2124758, + 2124863, + 2124892, + 2124934, + 2124911, + 2125018, + 2125060, + 2125191, + 2125167, + 2125206, + 2125228, + 2125263, + 2125304, + 2125298, + 2125308, + 2125369, + 2125404, + 2125351, + 2125372, + 2125503, + 2125704, + 2125749, + 2125813, + 2125829, + 2125831, + 2125864, + 2125957, + 2125995, + 2126095, + 2126084, + 2126172, + 2126150, + 2126151, + 10506718, + 2126273, + 2126334, + 2126513, + 2126526, + 2126628, + 2126634, + 2126711, + 2126781, + 2126793, + 2126806, + 2126819, + 2126802, + 2126855, + 2126837, + 2126886, + 2126890, + 2126889, + 2126894, + 4224098, + 2126985, + 2127007, + 2127105, + 2127215, + 2127490, + 2127516, + 2127518, + 2127515, + 2127526, + 4224714, + 2127686, + 2118319, + 2127905, + 2127950, + 2127972, + 2127994, + 2128176, + 4225340, + 2128222, + 2128229, + 2128276, + 4225423, + 2128283, + 2128593, + 2128615, + 4233046, + 2128619, + 2128798, + 2129086, + 2129224, + 4226396, + 2129335, + 2129312, + 2129366, + 2129490, + 2129735, + 2129825, + 2129853, + 2130689, + 2130786, + 2130815, + 2130887, + 2130934, + 2131016, + 2131124, + 2131283, + 2131289, + 2131307, + 2161183, + 2131376, + 4228626, + 2161185, + 2131975, + 2132213, + 2132498, + 2132535, + 2132601, + 2132647, + 2132670, + 2132703, + 2132728, + 2132726, + 2132819, + 2132863, + 2133232, + 2133236, + 2133266, + 2133366, + 2161187, + 2133711, + 4258340, + 6328376, + 2134119, + 2134238, + 2134269, + 2134293, + 2134311, + 2134490, + 2134487, + 2134494, + 2134509, + 2134510, + 2134500, + 2134501, + 2134534, + 2134544, + 2134538, + 2134586, + 2134592, + 2134588, + 2134606, + 2134617, + 2134609, + 2134585, + 2134631, + 2134695, + 2134647, + 2134648, + 2134759, + 2134743, + 2134745, + 2134736, + 2161191, + 2134741, + 2134752, + 2134739, + 2134821, + 2134817, + 2134779, + 2161192, + 2134814, + 2134783, + 2134813, + 2134786, + 2134896, + 2134871, + 2134948, + 2134982, + 2135006, + 2135032, + 2135089, + 2135109, + 2135112, + 2135442, + 6329990, + 2161193, + 2135709, + 2135727, + 2135859, + 2135867, + 2135875, + 2135885, + 2135887, + 2135889, + 4233045, + 2136151, + 2136165, + 2136303, + 4233468, + 2136359, + 4233512, + 2136478, + 2136654, + 2136793, + 2136796, + 2136949, + 2136946, + 2136975, + 2137009, + 2137019, + 2137088, + 2137456, + 2137451, + 2137524, + 2137625, + 2137809, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + 6319336, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + 4231224, + 2132737, + 2129379, + 2137795, + 2125483, + 2128269, + 2121876, + 2125175, + 4219240, + 2124266, + 2125364, + 4229392, + 4222754, + 4216424, + 2123234, + 2128200, + 2131547, + 4233215, + 4215524, + 2132793, + 2122733, + 2122954, + 2127951, + 2128448, + 2124730, + 4225353, + 4229526, + 2126190, + 4225342, + 4227077, + 4227565, + 2128221, + 4220561, + 2129778, + 2125193, + 2126528, + 4219214, + 2127646, + 4225984, + 4225366, + 4215015, + 4217956, + 2121186, + 2122126, + 4230408, + 2118525, + 2119174, + 4228183, + 2121653, + 4219378, + 4232110, + 4225422, + 4234029, + 4225665, + 2135779, + 2123909, + 4226625, + 2123354, + 2118481, + 2128017, + 2133203, + 2123087, + 4214702, + 4214645, + 4216896, + 2118345, + 2124645, + 2119848, + 2124751, + 4215117, + 2122302, + 2128208, + 2124548, + 4232838, + 2131548, + 2125274, + 2136158, + 2123462, + 2124663, + 2129396, + 2134858, + 6315722, + 2134788, + 4221314, + 4215220, + 4219724, + 4228827, + 4231305, + 6328354, + 4214857, + 4226543, + 4231253, + 8410025, + 6330636, + 4229211, + 4218614, + 6319295, + 4231771, + 4227009, + 6324925, + 4232901, + 4217779, + 6316392, + 6318466, + 4221883, + 4220258, + 4230315, + 4218316, + 4233233, + 4218416, + 4230860, + 4225710, + 4216647, + 4214929, + 4225652, + 4214885, + 4218618, + 4231735, + 4221582, + 4214436, + 4215148, + 4220660, + 4220961, + 4225132, + 4226398, + 4227075, + 4230396, + 4232781, + 4219639, + 4226922, + 4214655, + 4215794, + 4217289, + 4229917, + 4231338, + 4215758, + 4230959, + 4220884, + 4224940, + 4227612, + 4221295, + 4220798, + 4229663, + 4214280, + 4216820, + 4221197, + 4227191, + 4229546, + 4231234, + 4219758, + 4219970, + 4227641, + 4226511, + 4227169, + 4214991, + 4229781, + 4218981, + 4215110, + 4224826, + 4227188, + 4230643, + 4218541, + 4218615, + 4227655, + 4220995, + 4231171, + 4222270, + 4219794, + 4230953, + 4223981, + 4233234, + 4219058, + 6316617, + 4220304, + 4226507, + 4229817, + 4230311, + 4223542, + 4228218, + 4215302, + 4216436, + 4219300, + 4226185, + 4226331, + 4232944, + 6325565, + 4214719, + 4219751, + 4224710, + 4221021, + 4227336, + 4227126, + 4227068, + 4215823, + 4232867, + 4234911, + 4234903, + 4227183, + 4227198, + 4222590, + 4214917, + 4215187, + 4215259, + 2230542, + 4215616, + 4232921, + 6313385, + 4216513, + 4216589, + 4217003, + 4217306, + 4217398, + 6314686, + 4218190, + 4218247, + 4218313, + 4218323, + 4218669, + 4218776, + 4219096, + 4219197, + 4219390, + 4219496, + 4219599, + 4220189, + 4219919, + 4220146, + 4220253, + 4220511, + 4220841, + 4220903, + 4221291, + 4221232, + 4221351, + 4221508, + 4221584, + 6319112, + 4221971, + 6319651, + 4222737, + 4222718, + 4222782, + 4223487, + 4223973, + 4224050, + 4224095, + 4224224, + 4224268, + 4224626, + 4225322, + 4225236, + 4225466, + 4225561, + 4225685, + 4226290, + 4226419, + 4226525, + 4226613, + 4226990, + 4227041, + 4227162, + 4227167, + 4227187, + 4227184, + 4227190, + 4227411, + 4227466, + 4227509, + 4227533, + 4228082, + 4228437, + 4228565, + 4228890, + 4229174, + 4229278, + 4229336, + 4229364, + 4229419, + 4229435, + 4229482, + 4229487, + 4229661, + 4230405, + 4230415, + 4235086, + 4230801, + 4230817, + 4231250, + 4231182, + 4231472, + 4231510, + 4231512, + 4231525, + 4231539, + 4231538, + 4231586, + 4231599, + 4231594, + 4231604, + 4231610, + 4232311, + 4232856, + 4233021, + 6330208, + 6330225, + 4233228, + 4233331, + 4233411, + 4233797, + 4234061, + 4234072, + 4234182, + 4234209, + 4234225, + 4234568, + 4234703, + 4235016, + 4219505, + 4220567, + 4219151, + 4229219, + 6328405, + 4231290, + 4225263, + 2133151, + 4232936, + 2255185, + 10507177, + 4224220, + 4231243, + 8427788, + 2275288, + 2134707, + 2135473, + 6315766, + 4219892, + 2124991, + 4223321, + 4231264, + 6328923, + 4220348, + 4218752, + 6324161, + 4215672, + 4233203, + 4215574, + 4227761, + 4228051, + 4230312, + 4231246, + 2130621, + 6330053, + 4233491, + 4218619, + 4223088, + 6314931, + 8413544, + 10510696, + 12607848, + 4221418, + 8415618, + 2123630, + 2132434, + 4232852, + 2118258, + 4230980, + 4232076, + 4227781, + 4217810, + 4224176, + 4226537, + 2253346, + 4231300, + 4232594, + 4233171, + 4227608, + 4215665, + 4207618, + 2110466, + 6304770, + 4218494, + 2123235, + 4220703, + 4221535, + 4230519, + 4233442, + 2231223, + 4216235, + 4228688, + 4231174, + 4215754, + 4215864, + 4218917, + 4226330, + 4218344, + 4219602, + 4230621, + 2268491, + 4365643, + 2118527, + 2121530, + 4218960, + 4221377, + 4339258, + 2275214, + 4231415, + 6330367, + 6330711, + 4220545, + 4223883, + 4231121, + 2117617, + 4225001, + 4215159, + 4228702, + 4225658, + 4231239, + 6318811, + 4216147, + 4217169, + 4218997, + 6316391, + 4231118, + 6312081, + 4222804, + 6322804, + 4220680, + 4227615, + 4215164, + 4215352, + 4219314, + 2123587, + 4227241, + 4229913, + 4231267, + 2230884, + 2132481, + 2122294, + 4232903, + 4233319, + 2118707, + 2120219, + 4229796, + 4218341, + 4219212, + 2122373, + 4219815, + 4221387, + 4222313, + 4222511, + 4227093, + 4227412, + 4227922, + 4229915, + 6327548, + 2118719, + 4231543, + 4227440, + 6321425, + 4231100, + 2275142, + 4232086, + 2275191, + 4218729, + 4219809, + 2124658, + 4228060, + 6312372, + 4215986, + 4215370, + 2127138, + 2116408, + 4217343, + 6314495, + 2121215, + 4229870, + 6327022, + 4230343, + 6327495, + 4221729, + 6318881, + 4222667, + 2126778, + 2231199, + 4219752, + 4220316, + 6328490, + 2118394, + 6320693, + 2126389, + 4231500, + 4218673, + 4214331, + 4215767, + 4219784, + 2118760, + 4226370, + 4227026, + 4229190, + 4231217, + 4214607, + 4229203, + 4231152, + 4218337, + 4231285, + 6328437, + 4219456, + 4220664, + 4217203, + 4215517, + 4216134, + 4217781, + 2120710, + 4217871, + 6315023, + 2120729, + 4222344, + 4225117, + 4227222, + 2228235, + 2120578, + 2119630, + 4219077, + 6313972, + 4233470, + 6318349, + 4221846, + 4233439, + 2136288, + 2266751, + 2111373, + 4214709, + 2111738, + 4222328, + 4224799, + 4231218, + 2117307, + 2228642, + 4215299, + 4217867, + 4229642, + 6326794, + 4231109, + 4229232, + 6328386, + 2110751, + 2275153, + 4219408, + 4224731, + 4227158, + 2132352, + 4229792, + 4229835, + 4233052, + 6330204, + 2128389, + 4227334, + 4232891, + 4226125, + 6323136, + 2132650, + 4232938, + 2129237, + 4219463, + 2125720, + 4226977, + 6324793, + 4231288, + 4231287, + 4215373, + 4215144, + 4219779, + 2122743, + 2127398, + 4230512, + 4231169, + 4231277, + 4231200, + 2260919, + 4231199, + 4230346, + 4217866, + 6315018, + 4217253, + 2243838, + 4231168, + 4231214, + 4232842, + 4234203, + 4217127, + 2110503, + 4223015, + 4231252, + 2130219, + 4214329, + 4221774, + 4223149, + 6326933, + 4220566, + 4214820, + 4226926, + 4225993, + 2251479, + 4225873, + 4231184, + 4220913, + 4222184, + 4233680, + 4218731, + 4218805, + 6316530, + 4220701, + 2125678, + 4229823, + 4224756, + 4220693, + 6317845, + 4216988, + 4231165, + 4231194, + 4216682, + 4231651, + 4215880, + 4218397, + 4225547, + 4224644, + 4231273, + 4231149, + 4222459, + 4215118, + 4231188, + 4225082, + 2119457, + 2232893, + 2118060, + 4216080, + 2129110, + 4228580, + 4229892, + 6328323, + 4231183, + 4233776, + 4217870, + 4231251, + 2118686, + 2112392, + 2117991, + 4227209, + 4214387, + 4218829, + 4229773, + 2120679, + 4226317, + 4229511, + 6319422, + 4227258, + 4215642, + 4228484, + 4231147, + 4226587, + 4227207, + 2117175, + 4222801, + 4231601, + 4214580, + 4215332, + 4215626, + 4218374, + 4224340, + 4220521, + 4228419, + 4231295, + 4218798, + 4235067, + 4215609, + 2247956, + 2121573, + 2120172, + 4217324, + 4229717, + 2121369, + 4224453, + 4217446, + 4220279, + 4222318, + 4230304, + 6327456, + 4220685, + 4229510, + 4214297, + 4218467, + 4218483, + 4218634, + 4228369, + 4214863, + 4226536, + 4231124, + 4231245, + 4226111, + 4215557, + 4218153, + 4219569, + 4220683, + 4225074, + 4226603, + 4227294, + 4228108, + 4231334, + 6328486, + 4233469, + 4234604, + 4214433, + 4218429, + 4218840, + 4218841, + 4219455, + 4220699, + 6317851, + 4215186, + 4220009, + 4227067, + 4215265, + 4225256, + 4234068, + 4234939, + 4221401, + 6318173, + 2110568, + 2138036, + 4226669, + 4234943, + 6324488, + 4220430, + 4224735, + 4231159, + 4217220, + 2118352, + 4224754, + 4227095, + 4219451, + 4226315, + 2135528, + 4226308, + 4230797, + 2275209, + 6318202, + 2123777, + 4219145, + 2132717, + 4230968, + 4215495, + 4220681, + 4223798, + 6320950, + 6320951, + 2250367, + 4231242, + 4220636, + 2129802, + 4229505, + 4233482, + 4227020, + 6324220, + 2133686, + 4228653, + 4223879, + 4235149, + 6332301, + 4220357, + 2138052, + 4223440, + 6330019, + 4234327, + 6332063, + 2129019, + 2121417, + 4219280, + 2134051, + 8414999, + 2129922, + 2254512, + 6312138, + 4215066, + 6312276, + 6312341, + 2229800, + 4215437, + 4215511, + 2228362, + 2230660, + 2110782, + 4215775, + 4220668, + 6313267, + 6313444, + 2118741, + 4216512, + 2119993, + 4217372, + 4217538, + 2120566, + 4217795, + 2120724, + 2111458, + 2120934, + 4218452, + 2117192, + 4218595, + 6316183, + 2122452, + 4219596, + 4219932, + 4219846, + 4219944, + 2255257, + 2122523, + 6317663, + 8414815, + 2123363, + 4220661, + 2241484, + 4221085, + 4221069, + 2124278, + 2124166, + 2271718, + 4217832, + 4221371, + 2124748, + 6319889, + 2125335, + 4222872, + 4222122, + 2124970, + 4223003, + 4223330, + 4223547, + 2117164, + 4223772, + 4224202, + 2127087, + 2127221, + 2127340, + 2127438, + 2113457, + 2127722, + 2127785, + 4225344, + 2138054, + 6322515, + 4235083, + 4225454, + 4231299, + 2128723, + 2275261, + 4226068, + 2114148, + 4226128, + 4226136, + 4226374, + 4226403, + 4226594, + 6323746, + 2129480, + 6323765, + 4226627, + 4226700, + 4226896, + 2229567, + 2253418, + 4350576, + 4227013, + 4227014, + 6324201, + 2130241, + 2114643, + 4227672, + 2130553, + 6324857, + 4227705, + 4227811, + 2118009, + 2130778, + 4228128, + 4228029, + 4228340, + 2114853, + 4228487, + 2131444, + 2228400, + 4228919, + 4228923, + 4229125, + 4229053, + 2131581, + 6326326, + 2110510, + 2132166, + 4229565, + 4229851, + 4229950, + 4229978, + 4230515, + 4230553, + 2115558, + 4230708, + 4230730, + 4231151, + 4231303, + 4231162, + 4231198, + 4231221, + 4231248, + 2133960, + 4231297, + 4231306, + 6328458, + 8425610, + 10522762, + 12619914, + 14717066, + 6328457, + 8425609, + 10522761, + 12619913, + 14717065, + 16814217, + 18911369, + 21008521, + 23105673, + 25202825, + 27299977, + 29397129, + 2263431, + 4232157, + 4232636, + 2264599, + 4232882, + 4233049, + 2136121, + 4233451, + 4233475, + 4233481, + 4233541, + 6330693, + 4233547, + 2136584, + 4233823, + 4233829, + 4233967, + 4234008, + 2137055, + 4234505, + 4234504, + 4234917, + 4234956, + 6332168, + 4235082, + 2275354, + 4235111, + 4367898, + 4342510, + 2245358, + 4229404, + 4221128, + 4220667, + 4218693, + 4215552, + 2118537, + 4217171, + 2161169, + 2123858, + 4221555, + 2243774, + 2229777, + 4229650, + 2117124, + 2117125, + 2117151, + 2117163, + 2117167, + 2117168, + 2117184, + 2117185, + 2117188, + 2117210, + 2117247, + 2117261, + 2117270, + 2117305, + 2117328, + 2117344, + 2117373, + 2117375, + 2117387, + 2117397, + 2117472, + 2117435, + 2117449, + 2117460, + 2117498, + 2117501, + 2117502, + 2117527, + 2117566, + 2117583, + 2117629, + 2117632, + 2117633, + 2117648, + 2117659, + 2117671, + 2117678, + 2117719, + 2117734, + 2117738, + 2117691, + 2117775, + 2117782, + 2117788, + 2117836, + 2117862, + 2117865, + 2117871, + 2117896, + 2117899, + 2117904, + 2117915, + 2117918, + 2117983, + 2118049, + 2118076, + 6312414, + 2118126, + 2118132, + 2118145, + 2118146, + 2118163, + 2118217, + 2118241, + 2118246, + 2118291, + 2118344, + 2118384, + 2118410, + 2118411, + 2118462, + 2118476, + 2118475, + 2118497, + 2118508, + 2118571, + 2118618, + 2118630, + 2118645, + 2118695, + 2118733, + 2118758, + 2118763, + 2118772, + 2118797, + 2118806, + 2118817, + 2118829, + 2118841, + 2118847, + 2118854, + 2118861, + 2118926, + 2118955, + 2118965, + 2118986, + 2119008, + 4216161, + 2119048, + 2119054, + 2119176, + 2119182, + 2119183, + 2119223, + 2119231, + 2119241, + 2119243, + 2119247, + 2119270, + 2119273, + 2119279, + 2119281, + 2119282, + 2119317, + 2119322, + 2119340, + 2119341, + 2119345, + 2119369, + 2119389, + 2119396, + 2119434, + 2119445, + 2119459, + 2119471, + 2119475, + 2119476, + 2119500, + 2119536, + 2119564, + 2119580, + 2119608, + 2119654, + 2119661, + 2119669, + 2119670, + 2119679, + 2119689, + 2119712, + 2119730, + 2119804, + 2119808, + 2119849, + 2119886, + 2119888, + 2119892, + 2119898, + 2119913, + 2119948, + 2119972, + 2119983, + 2120033, + 2120045, + 2120138, + 2120146, + 2120157, + 2120163, + 2120164, + 2120196, + 2120204, + 2120227, + 2120263, + 2120277, + 2120291, + 2120301, + 2120318, + 2120350, + 2120359, + 2120364, + 2120371, + 2120416, + 2120448, + 2120473, + 2120485, + 2120493, + 2120513, + 2120572, + 2120574, + 2120575, + 2120586, + 2120739, + 2120747, + 2120752, + 2120803, + 2120809, + 2120828, + 2120907, + 2120914, + 2120948, + 2120996, + 2120998, + 2121027, + 2121030, + 2121034, + 2121106, + 2121108, + 2121113, + 2121120, + 2121176, + 2121184, + 2121208, + 2121216, + 2121234, + 2121236, + 2121237, + 2121240, + 2121262, + 2121304, + 2121323, + 2121324, + 2121384, + 2121386, + 2121406, + 2121407, + 4218571, + 2121426, + 2121479, + 2121486, + 2121500, + 2121501, + 2121506, + 2121512, + 2121526, + 2121531, + 2121536, + 2121552, + 2121560, + 2121572, + 2121609, + 2121628, + 2121639, + 2121636, + 2121647, + 2121656, + 2121668, + 2121673, + 2121697, + 2121705, + 2121709, + 2121724, + 2121751, + 2121754, + 2121779, + 2121825, + 2121855, + 2121886, + 2121892, + 2121904, + 2121931, + 2121947, + 2121976, + 2122002, + 2122003, + 2122004, + 2122012, + 2122108, + 2122125, + 2122143, + 2122152, + 2122178, + 2122207, + 2122261, + 2122281, + 2122307, + 2122310, + 2122316, + 2122321, + 2122326, + 2122436, + 2122492, + 2122506, + 2122509, + 2122520, + 2122553, + 2122562, + 2122563, + 2122597, + 2122612, + 2122621, + 2122628, + 2122631, + 2122640, + 2122654, + 2122705, + 2122716, + 2122761, + 2122768, + 2122786, + 2122836, + 2122843, + 2122861, + 2122875, + 2122942, + 2122943, + 2122981, + 2122999, + 2123003, + 2123012, + 2123030, + 2123033, + 2123079, + 2123111, + 2123137, + 2123141, + 2123202, + 2123248, + 2123250, + 2123308, + 2123340, + 2123355, + 2123356, + 2123361, + 2123371, + 4220535, + 2123428, + 2123464, + 2123500, + 2123525, + 2123539, + 2123571, + 2123592, + 2123596, + 2123638, + 2123643, + 2123696, + 2123698, + 2123769, + 2123735, + 2123737, + 2123760, + 2123820, + 2123824, + 2123825, + 2123867, + 2123890, + 2123893, + 2123898, + 2123908, + 2123941, + 2123954, + 2123984, + 2123990, + 2124008, + 2124013, + 2124016, + 2124017, + 2124028, + 2124049, + 2124051, + 2124085, + 2124091, + 2124119, + 2124131, + 2124146, + 2124159, + 2124160, + 2124198, + 2124205, + 2124215, + 2124246, + 2124247, + 2124289, + 2124303, + 2124309, + 2124328, + 2124340, + 2124350, + 2124357, + 2124368, + 2124369, + 2124374, + 2124379, + 2124419, + 2124425, + 2124433, + 2124445, + 2124446, + 2124447, + 2124508, + 2124519, + 2124524, + 2124574, + 2124580, + 2124597, + 2124614, + 2124630, + 2124640, + 2124674, + 2124734, + 2124769, + 2124785, + 2124816, + 2124851, + 2124853, + 4222010, + 2124889, + 2124918, + 2124923, + 2124933, + 2124949, + 2124956, + 2125008, + 2125012, + 2125014, + 2125024, + 2125035, + 2125036, + 2125038, + 2125066, + 2125070, + 2125073, + 2125102, + 2125143, + 2125150, + 2125157, + 2125186, + 2125247, + 2125252, + 2125258, + 2125270, + 2125289, + 2125346, + 2125393, + 2125511, + 2125514, + 2125518, + 2125565, + 2125594, + 2125610, + 2125615, + 2125619, + 2125658, + 2125662, + 2125666, + 2125693, + 2125707, + 2125709, + 2125714, + 2125716, + 2125722, + 2125735, + 2125736, + 2125750, + 2125786, + 2125790, + 4222969, + 2125881, + 2125884, + 4223050, + 2125908, + 2125917, + 2125918, + 2125924, + 2125932, + 2125950, + 2125953, + 2125973, + 2126007, + 2126035, + 2126036, + 2126040, + 2126044, + 2126087, + 2126112, + 2126129, + 2126154, + 2126162, + 2126176, + 2126201, + 2126226, + 4223411, + 2126283, + 2126291, + 2126294, + 2126336, + 2126365, + 2126379, + 2126392, + 2126401, + 2126419, + 2126421, + 2126422, + 2126428, + 2126477, + 2126509, + 2126516, + 2126535, + 2126587, + 2126596, + 2126597, + 2126632, + 2126641, + 2126659, + 2126700, + 2126716, + 2126723, + 2126725, + 2126726, + 2126741, + 2126750, + 2126751, + 2126752, + 2126758, + 2126763, + 2126773, + 2126775, + 2126780, + 2126799, + 2126809, + 2126825, + 2126836, + 2126845, + 2126852, + 2126858, + 2126874, + 2126875, + 2126884, + 2126888, + 2126892, + 2126895, + 2126896, + 2126897, + 2126905, + 2126916, + 2126919, + 2126923, + 2126925, + 2126929, + 2126935, + 2126950, + 2126955, + 2126961, + 2126976, + 2126981, + 2126982, + 2126983, + 2126992, + 2127000, + 2127004, + 2127008, + 2127011, + 2127016, + 2127019, + 2127029, + 2127039, + 2127048, + 2127066, + 2127070, + 2127182, + 2127225, + 2127233, + 2127248, + 2127250, + 2127251, + 2127284, + 2127332, + 2127353, + 2127360, + 2127370, + 2127381, + 2127382, + 2127385, + 2127390, + 2127405, + 2127413, + 2127427, + 2127435, + 2127461, + 2127469, + 2127471, + 2127473, + 2127476, + 2127524, + 2127525, + 2127557, + 2127564, + 2127596, + 2127612, + 2127668, + 2127670, + 2127708, + 2127711, + 2127712, + 2127730, + 2127741, + 2127765, + 2127786, + 2127846, + 2127856, + 2127860, + 2127878, + 2127906, + 2127917, + 2127918, + 2127920, + 2127925, + 2127976, + 2128030, + 2128072, + 2128076, + 2128078, + 2128100, + 2128096, + 2128097, + 2128114, + 2128119, + 2128123, + 2128177, + 4225332, + 2128187, + 2128189, + 2128197, + 2128219, + 2128220, + 2128267, + 2128278, + 2128280, + 2128312, + 2128315, + 2128330, + 2128346, + 2128387, + 2128393, + 2128401, + 2128414, + 2128429, + 2128441, + 2128453, + 2128460, + 2128477, + 4225632, + 2128493, + 2128504, + 2128544, + 2128547, + 2128563, + 2128571, + 2128572, + 2128582, + 2128647, + 2128660, + 2128679, + 2128689, + 2128711, + 2128718, + 2128736, + 2128745, + 2128749, + 2128754, + 2128785, + 2128815, + 2128855, + 2128857, + 2128907, + 2128911, + 2128928, + 2128934, + 2128945, + 2128950, + 2128977, + 2128985, + 2128999, + 2129006, + 2129008, + 2129084, + 2129087, + 2129096, + 2129097, + 2129111, + 2129113, + 2129117, + 2129131, + 2129159, + 2129160, + 2129161, + 2129171, + 2129181, + 2129187, + 2129217, + 2129235, + 2129241, + 2129245, + 2129274, + 2129286, + 2129291, + 2129292, + 2129356, + 2129387, + 2129393, + 2129401, + 2129416, + 2129425, + 2129429, + 2129440, + 2129479, + 2129506, + 2129518, + 2129523, + 2129549, + 2129553, + 2129560, + 2129732, + 2129743, + 2129746, + 2129747, + 2129761, + 2129809, + 2129855, + 2129870, + 2129887, + 2129893, + 2129900, + 2129902, + 2129903, + 2129914, + 2129934, + 2129937, + 2129940, + 2129956, + 2129958, + 2129978, + 2129980, + 2130016, + 2130033, + 2130037, + 2130078, + 2130086, + 2130091, + 2130135, + 2130136, + 2130198, + 2130200, + 2130234, + 2130250, + 2130252, + 2130305, + 2130308, + 2130356, + 2130383, + 2130425, + 2130435, + 2130465, + 2130482, + 2130484, + 2130502, + 2130507, + 2130511, + 2130574, + 2130606, + 2130615, + 2130622, + 2130630, + 2130686, + 2130755, + 2130769, + 2130773, + 2130822, + 2130829, + 2130834, + 2130840, + 2130857, + 2130879, + 2130880, + 2130922, + 2130959, + 2130961, + 2131018, + 2131062, + 2131112, + 2131119, + 2131136, + 2131138, + 2131184, + 2131197, + 2131212, + 2131252, + 2131294, + 2131343, + 2131383, + 2131406, + 2131373, + 2131474, + 2131497, + 2131538, + 2131555, + 2131564, + 2131567, + 2131578, + 2131597, + 2131601, + 2131608, + 2131623, + 2131624, + 2131706, + 2131709, + 2131723, + 2131731, + 2131737, + 2131742, + 2131752, + 2131774, + 2131825, + 2131848, + 2131865, + 2131884, + 2131885, + 2131893, + 2131926, + 2131947, + 2131949, + 2131969, + 4229123, + 2131974, + 2131979, + 2131988, + 2131996, + 2132054, + 2132063, + 2132068, + 2132120, + 2132138, + 2132157, + 2132158, + 2132170, + 2132178, + 2132187, + 2132208, + 2132209, + 2132230, + 2132248, + 2132249, + 2132250, + 2132263, + 2132272, + 2132286, + 2132347, + 2132436, + 2132438, + 2132453, + 2132465, + 2132487, + 2132495, + 2132501, + 2132514, + 2132558, + 2132607, + 2132724, + 2132767, + 2132791, + 2132803, + 2132804, + 2132820, + 2132892, + 2132894, + 2133063, + 2133076, + 2133107, + 2133156, + 2133209, + 2133217, + 2133240, + 2133246, + 2133275, + 2133353, + 2133356, + 2133380, + 2133389, + 2133397, + 2133414, + 2133446, + 2133454, + 2133476, + 2133484, + 2133536, + 2133579, + 2133612, + 2133616, + 2133626, + 2133650, + 2133678, + 2133683, + 2133713, + 4230868, + 2133753, + 2133783, + 2133814, + 2133926, + 2133941, + 2133942, + 4231110, + 2133984, + 2133988, + 2134006, + 2134018, + 2134060, + 2134084, + 2134152, + 2134165, + 2134169, + 2134171, + 2134178, + 2134196, + 2134231, + 2134237, + 2134260, + 2134295, + 2134300, + 2134321, + 2134330, + 2134333, + 2134344, + 2134363, + 2134369, + 2134372, + 2134414, + 2134430, + 2134440, + 2134445, + 2134446, + 2134450, + 2134460, + 2134512, + 2134519, + 2134523, + 2134535, + 2134568, + 2134579, + 2134584, + 2134595, + 2134599, + 2134607, + 2134624, + 2134722, + 2134731, + 2134732, + 2134751, + 2134797, + 2134805, + 2134815, + 2134823, + 2134855, + 2134866, + 4232037, + 2134890, + 2134893, + 2134939, + 2134970, + 2134953, + 2134977, + 2134986, + 2135010, + 2135034, + 2135037, + 2135055, + 2135092, + 2135103, + 2135125, + 2135147, + 2135154, + 2135416, + 2135462, + 2135465, + 4232619, + 2135476, + 2135485, + 2135514, + 2135581, + 2135617, + 2135640, + 2135684, + 2135716, + 2135721, + 2135762, + 2121138, + 2135774, + 2135785, + 2135793, + 2135810, + 2135817, + 2135898, + 2135907, + 2135918, + 2135923, + 2135962, + 2135970, + 2135989, + 2135990, + 2136025, + 2136030, + 2136052, + 2136074, + 2136078, + 2136094, + 2136099, + 2136107, + 2136126, + 2136146, + 2136147, + 2136153, + 2136172, + 2136248, + 2136250, + 2136255, + 2136264, + 2136293, + 2136370, + 2136371, + 2136384, + 2136397, + 2136412, + 2136415, + 2136497, + 2136505, + 2136506, + 2136521, + 2136578, + 2136598, + 2136612, + 2136615, + 2136621, + 2136622, + 2136630, + 2136632, + 2136650, + 2136662, + 2136757, + 2136758, + 2136825, + 2136835, + 2136864, + 2136883, + 2136884, + 2136947, + 2136953, + 2136999, + 2137025, + 2137031, + 2137047, + 2137063, + 2137067, + 2137079, + 2137082, + 2137085, + 2137099, + 2137127, + 2137130, + 2137142, + 2137153, + 2137171, + 2137187, + 2137200, + 2137207, + 2137346, + 2137410, + 2137415, + 2137443, + 2137449, + 2137468, + 2137470, + 2137485, + 2137521, + 2137539, + 2137543, + 2137558, + 2137567, + 2137579, + 2137588, + 2137621, + 2137629, + 2137764, + 2137768, + 2137772, + 2137831, + 2137838, + 2137872, + 2137874, + 2137879, + 2137881, + 2137903, + 2137911, + 2137913, + 2137921, + 2137925, + 2137943, + 2137960, + 2137969, + 2137973, + 2138000, + 2138004, + 2138018, + 4214320, + 2110469, + 4214624, + 2119200, + 2121419, + 4218704, + 4219044, + 2242106, + 4221732, + 2125817, + 2125542, + 2126259, + 4223531, + 4225734, + 4226913, + 4227185, + 4227230, + 4231094, + 4231676, + 4218290, + 4233182, + 2117587, + 2117849, + 2117872, + 2118083, + 2119286, + 2124372, + 2125057, + 2125264, + 2125378, + 2125529, + 2126820, + 2126881, + 2127212, + 2127953, + 2131957, + 2241534, + 2126760, + 2112243, + 2110683, + 2114572, + 2113162, + 4339140, + 2138045, + 2116584, + 2138044, + 2113242, + 2112290, + 2138046, + 2114938, + 2113683, + 4365885, + 2115173, + 2113795, + 2114195, + 2115246, + 2110600, + 2237961, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + 2117448, + 2117471, + 2117482, + 2117484, + 2117646, + 2117656, + 2117697, + 2117874, + 2117840, + 2117894, + 2117891, + 2117941, + 2117973, + 2117975, + 2110645, + 2118090, + 2118114, + 2118231, + 2118348, + 2118358, + 2118395, + 2118428, + 2118499, + 2118557, + 2118674, + 2118783, + 2118792, + 2118992, + 2119041, + 2119085, + 2119118, + 2119227, + 2119326, + 2119337, + 2119347, + 2119543, + 2119548, + 2233115, + 2119631, + 2119652, + 2119780, + 2119817, + 2233454, + 2119890, + 2119904, + 2131521, + 2120075, + 2120082, + 2120131, + 2120211, + 2120295, + 2120311, + 2120324, + 2120388, + 2234557, + 2120573, + 2120595, + 2120722, + 2120814, + 2234036, + 2120826, + 2120847, + 2120863, + 2120867, + 2120874, + 2120912, + 2235956, + 2120973, + 2121031, + 2121089, + 2121124, + 2121127, + 2121163, + 2121310, + 2121465, + 2121472, + 2121474, + 2121507, + 2121533, + 2121556, + 2121597, + 2121741, + 2121748, + 2121752, + 2121781, + 2121799, + 2121885, + 2121940, + 2121949, + 2122027, + 2122172, + 2122169, + 2122274, + 2122330, + 2122351, + 2122454, + 2122620, + 2122725, + 2122873, + 2122948, + 2122960, + 2123049, + 2123165, + 2123322, + 2123298, + 2123307, + 2123312, + 2123315, + 2123336, + 2240964, + 2123383, + 2123384, + 2123405, + 2123451, + 2123483, + 2123496, + 2123591, + 2123649, + 2123667, + 2123672, + 2123675, + 2123772, + 2123805, + 2123939, + 2124042, + 2124105, + 2241988, + 2124098, + 2124132, + 2124197, + 2124239, + 2112438, + 2112451, + 2124265, + 2124277, + 2242367, + 2124347, + 2242403, + 2124436, + 2124453, + 2112527, + 2124571, + 2124588, + 2124647, + 2124713, + 2124717, + 2124759, + 2124799, + 2124805, + 2124916, + 2124952, + 2125051, + 2124998, + 2125105, + 2125113, + 2125119, + 2125144, + 2125204, + 2125226, + 2125275, + 2125277, + 2125380, + 2125406, + 2125489, + 2125505, + 2125584, + 2125657, + 2125665, + 2125694, + 2125708, + 2125728, + 2125756, + 2125767, + 2125770, + 2125808, + 2125902, + 2125941, + 2125988, + 2126052, + 2126123, + 2126110, + 2126126, + 2126161, + 2126184, + 2126213, + 2126215, + 2126266, + 2126276, + 2126357, + 2113087, + 2126491, + 2246641, + 2126631, + 2126672, + 2126694, + 2126754, + 2126891, + 2126918, + 2126946, + 2126957, + 2127014, + 2127017, + 2127049, + 2127103, + 2127127, + 2113394, + 2127310, + 2127362, + 2127368, + 2127460, + 2127489, + 2127517, + 2127530, + 2127542, + 2127566, + 2127572, + 2127590, + 2127601, + 2127626, + 2127641, + 2127693, + 2127694, + 2127738, + 2127744, + 2127764, + 2127840, + 2249870, + 2127939, + 2127982, + 2128048, + 2249998, + 2128045, + 2128128, + 2128156, + 2128174, + 2128180, + 2128198, + 2128249, + 2128328, + 2250609, + 2128340, + 2128350, + 2128363, + 2128365, + 2128517, + 2251204, + 2128590, + 2128637, + 2128658, + 2128685, + 2128699, + 2128751, + 2128897, + 2128947, + 2252193, + 2129005, + 2129017, + 2129039, + 2129044, + 2129056, + 2129109, + 2129201, + 2129244, + 2129283, + 2129318, + 2129346, + 2129448, + 2129815, + 2129883, + 2129973, + 2129975, + 2130122, + 2130144, + 2130163, + 2130272, + 2130279, + 2130280, + 2130285, + 2130363, + 2130378, + 2130391, + 2114651, + 2130528, + 2130548, + 2255615, + 2130593, + 2130595, + 2130596, + 2130601, + 2130623, + 2130645, + 2130685, + 2130688, + 2130722, + 2130733, + 2130746, + 2130759, + 2130813, + 2130855, + 2130895, + 2130897, + 2130913, + 2130945, + 2130950, + 2131039, + 2131056, + 2131059, + 2131077, + 2131102, + 2131130, + 2256448, + 2131250, + 2131230, + 2131247, + 2131300, + 2131322, + 2131340, + 2131362, + 2131403, + 2131437, + 2131455, + 2131460, + 2131461, + 2131472, + 2257140, + 2131480, + 2131512, + 2131543, + 2131554, + 2114973, + 2131573, + 2131640, + 2131708, + 2131847, + 2115050, + 2131978, + 2131984, + 2132174, + 2258564, + 2132274, + 2132281, + 2132288, + 2132372, + 2132470, + 2132551, + 2132573, + 2132577, + 2132597, + 2132688, + 2132806, + 2132825, + 2132841, + 2132893, + 2133065, + 2133096, + 2133423, + 2133457, + 2133463, + 2133539, + 2133565, + 2133627, + 2261623, + 2115652, + 2133754, + 2133790, + 2133805, + 2133844, + 2261965, + 2133992, + 2133998, + 2134024, + 2134061, + 2134167, + 2134195, + 2134206, + 2134212, + 2134213, + 2134215, + 2134255, + 2134292, + 2134294, + 2134306, + 2134307, + 2134319, + 2134324, + 2134403, + 2134513, + 2134857, + 2134884, + 2134885, + 2134947, + 2135007, + 2135044, + 2135091, + 2135114, + 2135139, + 2135153, + 2135438, + 2135455, + 2135468, + 2135478, + 2135499, + 2135504, + 2135507, + 2116016, + 2135518, + 2135717, + 2135791, + 2135886, + 2135957, + 2135982, + 2135994, + 2136001, + 2136009, + 2136027, + 2136150, + 2136295, + 2136408, + 2136579, + 2136769, + 2136771, + 2136782, + 2136790, + 2136834, + 2136840, + 2116631, + 2136877, + 2136926, + 2136934, + 2136964, + 2136970, + 2136990, + 2137038, + 2137061, + 2137080, + 2137123, + 2137167, + 2137168, + 2137189, + 2137373, + 2137374, + 2137411, + 2137426, + 2137482, + 2137494, + 2137536, + 2137516, + 2137532, + 2269584, + 2137575, + 2137607, + 2137758, + 2137775, + 2138007, + 2228361, + 2117122, + 2117135, + 2117138, + 2117161, + 2117166, + 2117191, + 2228386, + 2117201, + 2110470, + 2228388, + 2117225, + 2117277, + 2110508, + 2117308, + 2117315, + 2117320, + 2117355, + 2117338, + 2117361, + 2117365, + 2117398, + 2117476, + 2117431, + 2117438, + 2117464, + 2228755, + 2117495, + 2117496, + 2117506, + 2117509, + 2117606, + 2117554, + 2117573, + 2117579, + 2117586, + 2110570, + 2117618, + 2117651, + 2117660, + 2117710, + 2117715, + 2117731, + 2117795, + 2117768, + 2117778, + 2117779, + 2117781, + 2117802, + 2229035, + 2117809, + 2117818, + 2117819, + 2117828, + 2117831, + 2117875, + 2229121, + 2117838, + 2229105, + 2117844, + 2117857, + 2110610, + 2229241, + 2117911, + 2229322, + 2117984, + 2229513, + 2118003, + 2118019, + 2118027, + 2110652, + 2118040, + 2118051, + 2118061, + 2110663, + 2229718, + 2118131, + 2118162, + 2118166, + 2230095, + 2118229, + 2118236, + 2118252, + 2118263, + 2118276, + 2118274, + 2230279, + 2118296, + 2230330, + 2118308, + 2118330, + 2118331, + 2118346, + 2118353, + 2230457, + 2118391, + 2118453, + 2118466, + 2230652, + 2230685, + 2118503, + 2118522, + 2118564, + 2118580, + 2230995, + 2118583, + 2118592, + 2231069, + 2110813, + 2110814, + 2118613, + 2110819, + 2118644, + 2118692, + 2118696, + 2110830, + 2118723, + 2118754, + 2118764, + 2118805, + 2118816, + 2118822, + 2118830, + 2118839, + 2118842, + 2118851, + 2231621, + 2118892, + 2118895, + 2118897, + 2118899, + 2118912, + 2118913, + 2118921, + 2118972, + 2118977, + 2110886, + 2118983, + 2110888, + 2119012, + 2231777, + 2119037, + 2119042, + 2119057, + 2110917, + 2119122, + 2231957, + 2231917, + 2119103, + 2119113, + 2119116, + 2119121, + 2119133, + 2110938, + 2119138, + 2231908, + 2119145, + 2119208, + 2232159, + 2119175, + 2119184, + 2119216, + 2110964, + 2119229, + 2119232, + 2119239, + 2119262, + 2119264, + 2119277, + 2110981, + 2119304, + 2119308, + 2119325, + 2119336, + 2119346, + 2119365, + 2119373, + 2119391, + 2119400, + 2119414, + 2119415, + 2232833, + 2232917, + 2119465, + 2232955, + 2119493, + 2119494, + 2119501, + 2232948, + 2119528, + 2119535, + 2119539, + 2119540, + 2119541, + 2119547, + 2233060, + 2233047, + 2119578, + 2119581, + 2119582, + 2119592, + 2119639, + 2233085, + 2119628, + 2233142, + 2233156, + 2119646, + 2119664, + 2111050, + 2119672, + 2119675, + 2119677, + 2119684, + 2119710, + 2119719, + 2119737, + 2233284, + 2119753, + 2119756, + 2119783, + 2119818, + 2119819, + 2119821, + 2119823, + 2119824, + 2119828, + 2119837, + 2119850, + 2119857, + 2233453, + 2119875, + 2119885, + 2119906, + 2119923, + 2119924, + 2119941, + 2119942, + 2119949, + 2119956, + 2233815, + 2111121, + 2119997, + 2111129, + 2120006, + 2111126, + 2255913, + 2120031, + 2233927, + 2120053, + 2120054, + 2120060, + 2120095, + 2120110, + 2120124, + 2120136, + 2120141, + 2120158, + 2120167, + 2120174, + 2234118, + 2234178, + 2111183, + 2120205, + 2120215, + 2120231, + 2120237, + 2120293, + 2120314, + 2120331, + 2120348, + 2120351, + 2120352, + 2120354, + 2120369, + 2120373, + 2120378, + 2120383, + 2120410, + 2120412, + 2120421, + 2120432, + 2120430, + 2120437, + 2120456, + 2120471, + 2120500, + 2120524, + 2120530, + 2120552, + 2120559, + 2120577, + 2120580, + 2234819, + 2120598, + 2120620, + 2111329, + 2111330, + 2120654, + 2120662, + 2111340, + 2111339, + 2120689, + 2120701, + 2111349, + 2120707, + 2120745, + 2235478, + 2120799, + 2120807, + 2120808, + 2120816, + 2235693, + 2235717, + 2235768, + 2235746, + 2120840, + 2120842, + 2111425, + 2235809, + 2235804, + 2120864, + 2120866, + 2120871, + 2235794, + 2120877, + 2120885, + 2235831, + 2120905, + 2235872, + 2235955, + 2120966, + 2120976, + 2121003, + 2120989, + 2120992, + 2121009, + 2121017, + 2111464, + 2121057, + 2121066, + 2111476, + 2121072, + 2236190, + 2111485, + 2121096, + 2111488, + 2121111, + 2121136, + 2121140, + 2236278, + 2121169, + 2121175, + 2236410, + 2121188, + 2121193, + 2111535, + 2111542, + 2111552, + 2121247, + 2121278, + 2121289, + 2111580, + 2121302, + 2111585, + 2121325, + 2121326, + 2236795, + 2121381, + 2121388, + 2121401, + 2121414, + 2121433, + 2237214, + 2121469, + 2121480, + 2237357, + 2121502, + 2121543, + 2121571, + 2121586, + 2121598, + 2121615, + 2121634, + 2121671, + 2121675, + 2121682, + 2121683, + 2121684, + 2121698, + 2121710, + 2121711, + 2121715, + 2111767, + 2121762, + 2121764, + 2111770, + 2121804, + 2121877, + 2121896, + 2238195, + 2121905, + 2121918, + 2121928, + 2121945, + 2121966, + 2121973, + 2122000, + 2122009, + 2122014, + 2122042, + 2111855, + 2122049, + 2122054, + 2122080, + 2238555, + 2122130, + 2122131, + 2122135, + 2122149, + 2122157, + 2238635, + 2122197, + 2122205, + 2122229, + 2238863, + 2122275, + 2122322, + 2122337, + 2122340, + 2122363, + 2122349, + 2122355, + 2122393, + 2122453, + 2239160, + 2122493, + 2122499, + 2122512, + 2239311, + 2239312, + 2122546, + 2122549, + 2122555, + 2122556, + 2122561, + 2122564, + 2122574, + 2239302, + 2122585, + 2239517, + 2239398, + 2122604, + 2122649, + 2239524, + 2122644, + 2122685, + 2122708, + 2122709, + 2122720, + 2122731, + 2122732, + 2122738, + 2122782, + 2122789, + 2122793, + 2122799, + 2122842, + 2122845, + 2122867, + 2122877, + 2122887, + 2122897, + 2122911, + 2122955, + 2122956, + 2122965, + 2122967, + 2239969, + 2122980, + 2123007, + 2112110, + 2123023, + 2123028, + 2112115, + 2123038, + 2123058, + 2123076, + 2123092, + 2123115, + 2123130, + 2123140, + 2123146, + 2123186, + 2123189, + 2123192, + 2123199, + 2123209, + 2123220, + 2112214, + 2123257, + 2123260, + 2123268, + 2123272, + 2123297, + 2123306, + 2123333, + 2123345, + 2123342, + 2112234, + 2240963, + 2241013, + 2240950, + 2123370, + 2123372, + 2123373, + 2123387, + 2123392, + 2123408, + 2123410, + 2112270, + 2123437, + 2123441, + 2123445, + 2112282, + 2112284, + 2112215, + 2123521, + 2123538, + 2241394, + 2123545, + 2241491, + 2241490, + 2123597, + 2123604, + 2123613, + 2241488, + 2241508, + 2241493, + 2123636, + 2241498, + 2123666, + 2241503, + 2130787, + 2123792, + 2123715, + 2123720, + 2123730, + 2123739, + 2123767, + 2241610, + 2241617, + 2241611, + 2123800, + 2123807, + 2123821, + 2241637, + 2123827, + 2123835, + 2123838, + 2123845, + 2123849, + 2123852, + 2123861, + 2123863, + 2112375, + 2123883, + 2123886, + 2123900, + 2123906, + 2123920, + 2123926, + 2112365, + 2123928, + 2123929, + 2123930, + 2123932, + 2123946, + 2123947, + 2123956, + 2123963, + 2124027, + 2241764, + 2241882, + 2123971, + 2123973, + 2123980, + 2123993, + 2124004, + 2124005, + 2124012, + 2124023, + 2124035, + 2124039, + 2112391, + 2241940, + 2112397, + 2124102, + 2124137, + 2124140, + 2124154, + 2124178, + 2112420, + 2124182, + 2124208, + 2124218, + 2124220, + 2124224, + 2124241, + 2242105, + 2242119, + 2242104, + 2124259, + 2124270, + 2124271, + 2124275, + 2112461, + 2124276, + 2124286, + 2124305, + 2124314, + 2124317, + 2242332, + 2124338, + 2124339, + 2124351, + 2124361, + 2124410, + 2124366, + 2124370, + 2124388, + 2242316, + 2124427, + 2112496, + 2124449, + 2242404, + 2124459, + 2124477, + 2124486, + 2124500, + 2124496, + 2124509, + 2242559, + 2242535, + 2124529, + 2124530, + 2124531, + 2124541, + 2242596, + 2124555, + 2124559, + 2124560, + 2124561, + 2242621, + 2124567, + 2112550, + 2124591, + 2124618, + 2124632, + 2124652, + 2124661, + 2124666, + 2124673, + 2124699, + 2124718, + 2243224, + 2124733, + 2124743, + 2124744, + 2124745, + 2124762, + 2124774, + 2124775, + 2124782, + 2124802, + 2124810, + 2124814, + 2124854, + 2243711, + 2124877, + 2124891, + 2124909, + 2124932, + 2124937, + 2112707, + 2124948, + 2124951, + 2124973, + 2124994, + 2112722, + 2125020, + 2125033, + 2125037, + 2243840, + 2125056, + 2125092, + 2125094, + 2125095, + 2124903, + 2125103, + 2125116, + 2125147, + 2125152, + 2125168, + 2125184, + 2125185, + 2125194, + 2125197, + 2125201, + 2125208, + 2243904, + 2244090, + 2244089, + 2244051, + 2125227, + 2125230, + 2125236, + 2125250, + 2125108, + 2125256, + 2125262, + 2125279, + 2125302, + 2125366, + 2125342, + 2112785, + 2125362, + 2125384, + 2125385, + 2125387, + 2125388, + 2125391, + 2125395, + 2125396, + 2125399, + 2125411, + 2112798, + 2125459, + 2125479, + 2125492, + 2125507, + 2125621, + 2125547, + 2125561, + 2125563, + 2125578, + 2125580, + 2125592, + 2125605, + 2125622, + 2125628, + 2244478, + 2125650, + 2125655, + 2125664, + 2125672, + 2125712, + 2125718, + 2125758, + 2125727, + 2125733, + 2125743, + 2112868, + 2125768, + 2125769, + 2125801, + 2244758, + 2125820, + 2125824, + 2125834, + 2125859, + 2244867, + 2125882, + 2125891, + 2125895, + 2125899, + 2112922, + 2125925, + 2125929, + 2125934, + 2125942, + 2125958, + 2125975, + 2245062, + 2125983, + 2126001, + 2245118, + 2126060, + 2126026, + 2126033, + 2126083, + 2126086, + 2126088, + 2126092, + 2112960, + 2126127, + 2126160, + 2126163, + 2126174, + 2112980, + 2126230, + 2126208, + 2126235, + 2126240, + 2126242, + 2126254, + 2126255, + 2245564, + 2126297, + 2126300, + 2126343, + 2113029, + 2126388, + 2126393, + 2126402, + 2126423, + 2126435, + 2246185, + 2126446, + 2126447, + 2126456, + 2126463, + 2126478, + 2246309, + 2126510, + 2126512, + 2126529, + 2113120, + 2126540, + 2113126, + 2113128, + 2126579, + 2126586, + 2126599, + 2126610, + 2126616, + 2126617, + 2113155, + 2126649, + 2126636, + 2126643, + 2126653, + 2126674, + 2113172, + 2126699, + 2246806, + 2126702, + 2126703, + 2126705, + 2126721, + 2126730, + 2126740, + 2126744, + 2126748, + 2126757, + 2126777, + 2126783, + 2126789, + 2126795, + 2126817, + 2126823, + 2126841, + 2126867, + 2126842, + 2126849, + 2126931, + 2126912, + 2126915, + 2126930, + 2126941, + 2126977, + 2126984, + 2247245, + 2126994, + 2126999, + 2127001, + 2127009, + 2127013, + 2127018, + 2127033, + 2127035, + 2127034, + 2127062, + 2127064, + 2127083, + 2247510, + 2127098, + 2247535, + 2127136, + 2127140, + 2127146, + 2113367, + 2247702, + 2127165, + 2127166, + 2127168, + 2127176, + 2127184, + 2127186, + 2127218, + 2127217, + 2127226, + 2127229, + 2127230, + 2127244, + 2113397, + 2127266, + 2113399, + 2127280, + 2127287, + 2127295, + 2127296, + 2127302, + 2127311, + 2127315, + 2127325, + 2127327, + 2127328, + 2127335, + 2127342, + 2127345, + 2127363, + 2127384, + 2127367, + 2127375, + 2113454, + 2248206, + 2127379, + 2127387, + 2127388, + 2248247, + 2127397, + 2127400, + 2127420, + 2127411, + 2248298, + 2113481, + 2127425, + 2248331, + 2127433, + 2127445, + 2113495, + 2127470, + 2127509, + 2127521, + 2127520, + 2127527, + 2127528, + 2127535, + 2248778, + 2127561, + 2248789, + 2127592, + 2248994, + 2127639, + 2127642, + 2127661, + 2127669, + 2249129, + 2113593, + 2249189, + 2249165, + 2127704, + 2249246, + 2127740, + 2249292, + 2113624, + 2127770, + 2127775, + 2127778, + 2127780, + 2127838, + 2127839, + 2127844, + 2127850, + 2127852, + 2127867, + 2249774, + 2127877, + 2127881, + 2127885, + 2127897, + 2127916, + 2127943, + 2127978, + 2249945, + 2128010, + 2128020, + 2128036, + 2128029, + 2128031, + 2128059, + 2128085, + 2128102, + 2128121, + 2128122, + 2128126, + 2250151, + 2128144, + 2128155, + 2128165, + 2128202, + 2128216, + 2113797, + 2128231, + 2128242, + 2128277, + 2128289, + 2128297, + 2128308, + 2128322, + 2128327, + 2128332, + 2128333, + 2128342, + 2113864, + 2250665, + 2250676, + 2113871, + 2128394, + 2128405, + 2128411, + 2113891, + 2128440, + 2128455, + 2128470, + 2128473, + 2128476, + 2128479, + 2128487, + 2128490, + 2128501, + 2128514, + 2128522, + 2128528, + 2128556, + 2251220, + 2113972, + 2128569, + 2128574, + 2113983, + 2128588, + 2128616, + 2128628, + 2251492, + 2251491, + 2251505, + 2128701, + 2128682, + 2128686, + 2128687, + 2114022, + 2114035, + 2128767, + 2128705, + 2114030, + 2128725, + 2128761, + 2128740, + 2128742, + 2128755, + 2251698, + 2114055, + 2128784, + 2128795, + 2114062, + 2128821, + 2128828, + 2128837, + 2128842, + 2251851, + 2251876, + 2128852, + 2128854, + 2128858, + 2128874, + 2128880, + 2128899, + 2128910, + 2128965, + 2128970, + 2128983, + 2128990, + 2128993, + 2129001, + 2129007, + 2252334, + 2252374, + 2252389, + 2129062, + 2252386, + 2129078, + 2129079, + 2252504, + 2129092, + 2252482, + 2129101, + 2252520, + 2252579, + 2129126, + 2252636, + 2129141, + 2129155, + 2114246, + 2129170, + 2129182, + 2252768, + 2252756, + 2129213, + 2129214, + 2129216, + 2129223, + 2252812, + 2252795, + 2114262, + 2129242, + 2129258, + 2129264, + 2114269, + 2129279, + 2252823, + 2129288, + 2129303, + 2252896, + 2129309, + 2129319, + 2129322, + 2129334, + 2129344, + 2129367, + 2129369, + 2129382, + 2114306, + 2253037, + 4226569, + 2129424, + 2129431, + 2129437, + 2129447, + 2129452, + 2129477, + 2129525, + 2129534, + 2129542, + 2129543, + 2114347, + 2129562, + 2114371, + 2129724, + 2129723, + 2129726, + 2129731, + 2110657, + 2253424, + 2253446, + 2129763, + 2129764, + 2129773, + 2129789, + 2129790, + 2129808, + 2118011, + 2243854, + 2129814, + 2129820, + 2129837, + 2253826, + 2129859, + 2129871, + 2129891, + 2129906, + 2129930, + 2129928, + 2129942, + 2129964, + 2129968, + 2129987, + 2130022, + 2130043, + 2130073, + 2130076, + 2130084, + 2130087, + 2130104, + 2254462, + 2130117, + 2130133, + 2130150, + 2130189, + 2130165, + 2130171, + 2114542, + 2130229, + 2130206, + 2114544, + 2130212, + 2130215, + 2130220, + 2254621, + 2130237, + 2114568, + 2130281, + 2114583, + 2114588, + 2130309, + 2114594, + 2130328, + 2130354, + 2130369, + 2130371, + 2130390, + 2130395, + 2255069, + 2130404, + 2255082, + 2130412, + 2130429, + 2130431, + 2255215, + 2130436, + 2255325, + 2130457, + 2130466, + 2255390, + 2130492, + 2130505, + 2130501, + 2255448, + 2114678, + 2114682, + 2130519, + 2255500, + 2130524, + 2130531, + 2255543, + 2114705, + 2130557, + 2130559, + 2130563, + 2130570, + 2130579, + 2130599, + 2130600, + 2130610, + 2130612, + 2130618, + 2130620, + 2130658, + 2130664, + 2130679, + 2130695, + 2130696, + 2130700, + 2130772, + 2130715, + 2130717, + 2130736, + 2130748, + 2130756, + 2130775, + 2114750, + 2114772, + 2114739, + 2130836, + 2130837, + 2130843, + 2130845, + 2130889, + 2130896, + 2130900, + 2130909, + 2130917, + 2130937, + 2130965, + 2255987, + 2130967, + 2131001, + 2131023, + 2131025, + 2131026, + 2131033, + 2131034, + 2131036, + 2256093, + 2131045, + 2131064, + 2131068, + 2131073, + 2114829, + 2131095, + 2131110, + 2131134, + 2114824, + 2131150, + 2131151, + 2131155, + 2256485, + 2131175, + 2131178, + 2131183, + 2131185, + 2131194, + 2131227, + 2131236, + 2131237, + 2131243, + 2131279, + 2131311, + 2114883, + 2131281, + 2131297, + 2131298, + 2256788, + 2131323, + 2131325, + 2131327, + 2131329, + 2131334, + 2131347, + 2131357, + 2131359, + 2256888, + 2256886, + 2256887, + 2131388, + 2131399, + 2131402, + 2131416, + 2131417, + 2131423, + 2131425, + 2131430, + 2131446, + 2131456, + 2131473, + 2131486, + 2131489, + 2131492, + 2131495, + 2257165, + 2131513, + 2131516, + 2257209, + 2131520, + 2131539, + 2131542, + 2131575, + 2131591, + 2131593, + 2131612, + 2131613, + 2131633, + 2131635, + 2131649, + 2131651, + 2131665, + 2131669, + 2131671, + 2131683, + 2131686, + 2115000, + 2131717, + 2131719, + 2131726, + 2131728, + 2131743, + 2131745, + 2131747, + 2131761, + 2131770, + 2131776, + 2131779, + 2131793, + 2131800, + 2131812, + 2131813, + 2131826, + 2131836, + 2257883, + 2257882, + 2131879, + 2131849, + 2131851, + 2131859, + 2131872, + 2257918, + 2115045, + 2131902, + 2257936, + 2131905, + 2131918, + 2131935, + 2257993, + 2131939, + 2131941, + 2131942, + 2131946, + 2131987, + 2132008, + 2132014, + 2132018, + 2132028, + 2115087, + 2132042, + 2132056, + 2258453, + 2258452, + 2132073, + 2258481, + 2132079, + 2132128, + 2132156, + 2132160, + 2258579, + 2132177, + 2132179, + 2115137, + 2132225, + 2258702, + 2132279, + 2258723, + 2132290, + 2132293, + 2132297, + 2258770, + 2132322, + 2132361, + 2132368, + 2132383, + 2132400, + 2132407, + 2132440, + 2132459, + 2115233, + 2132467, + 2132477, + 2132479, + 2115247, + 2132497, + 2132500, + 2259333, + 2132513, + 2132533, + 2132542, + 2132549, + 2132557, + 2132568, + 2132654, + 2132624, + 2132663, + 2132695, + 2132732, + 2259588, + 2132746, + 2132741, + 2132749, + 2132764, + 2132781, + 2115340, + 2132817, + 2132830, + 2132854, + 2132865, + 2132875, + 2132884, + 2132885, + 2133049, + 2259891, + 2133053, + 2259902, + 2259911, + 2133061, + 2133071, + 2133079, + 2133097, + 2133101, + 2260152, + 2133139, + 2133138, + 2133145, + 2115428, + 2133147, + 2133206, + 2133205, + 2260384, + 2133233, + 2260496, + 2133257, + 2133262, + 2133448, + 2133465, + 2133516, + 2115581, + 2133501, + 2133510, + 2261130, + 2133524, + 2133526, + 2133537, + 2133538, + 2133543, + 2261179, + 2115606, + 2133558, + 2133561, + 2133588, + 2133602, + 2133613, + 2133615, + 2133656, + 2133662, + 2133685, + 2133691, + 2261634, + 2115662, + 2261747, + 2133760, + 2133768, + 2133803, + 2133824, + 2133834, + 2133848, + 2262028, + 2133924, + 2133940, + 2262101, + 2133953, + 2133958, + 2161188, + 2133962, + 2133965, + 2133971, + 2133973, + 2134001, + 2134005, + 2134011, + 2134028, + 2134071, + 2262379, + 2134083, + 2134109, + 2262472, + 2262473, + 2134149, + 2134156, + 2134160, + 2134177, + 2115765, + 2134192, + 2134198, + 2134211, + 2134216, + 2262743, + 2134236, + 2134239, + 2262778, + 2134262, + 2134258, + 2134272, + 2134251, + 2134270, + 2134271, + 2134276, + 2134278, + 2134296, + 2134302, + 2134327, + 2134329, + 2134342, + 2134343, + 2134359, + 2134361, + 2134388, + 2134393, + 2134405, + 2134451, + 2134454, + 2134467, + 2134468, + 2263369, + 2263366, + 2134508, + 2134529, + 2134550, + 2134551, + 2263403, + 2134594, + 2134602, + 2134614, + 2134625, + 2134629, + 2134632, + 2263432, + 2134652, + 2134653, + 2134655, + 2134665, + 2134669, + 2134679, + 2134681, + 2134687, + 2134699, + 2263482, + 2263483, + 2134706, + 2134719, + 2134720, + 2134726, + 2134734, + 2134757, + 2134801, + 2263582, + 2263593, + 2134775, + 2134825, + 2263665, + 2263619, + 2134865, + 2134874, + 2134891, + 2134897, + 2134899, + 2134945, + 2263705, + 2263757, + 2134920, + 2134923, + 2134927, + 2134942, + 2135029, + 2263780, + 2263773, + 2135025, + 2134983, + 2135004, + 2135015, + 2135049, + 2135062, + 2135063, + 2135035, + 2135090, + 2135099, + 2264001, + 2264047, + 2135149, + 2135151, + 2135417, + 2135430, + 2135436, + 2135437, + 2264336, + 2264433, + 2135496, + 2264571, + 2264607, + 2135596, + 2135603, + 2135604, + 2264630, + 2135612, + 2135649, + 2264713, + 2135682, + 2264811, + 2135706, + 2264882, + 2116071, + 2135731, + 2135738, + 2135741, + 2116090, + 2265080, + 2135768, + 2135770, + 2135773, + 2116100, + 2135828, + 2135843, + 2116137, + 2135862, + 2135873, + 2135879, + 2135895, + 2135899, + 2135914, + 2265760, + 2265777, + 2135958, + 2135966, + 2135985, + 2135986, + 2135998, + 2136012, + 2136017, + 2136020, + 2136024, + 2136033, + 2136049, + 2136068, + 2136077, + 2136084, + 2136086, + 2116284, + 2266256, + 2136114, + 2136115, + 2136101, + 2136135, + 2136166, + 2136235, + 2136237, + 2136240, + 2266575, + 2136247, + 2136251, + 2136252, + 2136258, + 2136263, + 2136267, + 2136289, + 2136291, + 2136298, + 2136304, + 2136305, + 2136307, + 2136328, + 2116411, + 2266864, + 2136342, + 2136343, + 2266905, + 2136346, + 2136347, + 2136348, + 2266960, + 2136369, + 2136378, + 2136379, + 2136380, + 2136385, + 2136390, + 2136398, + 2136416, + 2136483, + 2136486, + 2136509, + 2136511, + 2136515, + 2136532, + 2136537, + 2136542, + 2267334, + 2136560, + 2136569, + 2136572, + 2136586, + 2136593, + 2136602, + 2136608, + 2136625, + 2136644, + 2136652, + 2136664, + 2116546, + 2136751, + 2116554, + 2136759, + 2116562, + 2136761, + 2267762, + 2136774, + 2136784, + 2136786, + 2136789, + 2136800, + 2136805, + 2136809, + 2136844, + 2136848, + 2136850, + 2136854, + 2136860, + 2136875, + 2136893, + 2116640, + 2136907, + 2136931, + 2136933, + 2136939, + 2136940, + 2136950, + 2136951, + 2136998, + 2137004, + 2268635, + 2137010, + 2137016, + 2137022, + 2137075, + 2137048, + 2137053, + 2137066, + 2137071, + 2137070, + 2268693, + 2268810, + 2268745, + 2137110, + 2137112, + 2137113, + 2137114, + 2137117, + 2137122, + 2137129, + 2268868, + 2137137, + 2137143, + 2137157, + 2137180, + 2268905, + 2137161, + 2137162, + 2268891, + 2137172, + 2137176, + 2137179, + 2137181, + 2137183, + 2137193, + 2137194, + 2137195, + 2137197, + 2137198, + 2137202, + 2137205, + 2137210, + 2137318, + 2137330, + 2137355, + 2269143, + 2137361, + 2137367, + 2137368, + 2269231, + 2116804, + 2269210, + 2137394, + 2116817, + 2137418, + 2137439, + 2137442, + 2269433, + 2269314, + 2137459, + 2137462, + 2137463, + 2137476, + 2137497, + 2137505, + 2137535, + 2137525, + 2137529, + 2137533, + 2137545, + 2137562, + 2137568, + 2137571, + 2116871, + 2137610, + 2137602, + 2137613, + 2137628, + 2137723, + 2236952, + 2137728, + 2137733, + 2137755, + 2270092, + 2137789, + 2270263, + 2137823, + 2137855, + 2137858, + 2116983, + 2137859, + 2137914, + 2137917, + 2137926, + 2137939, + 2137941, + 2137944, + 2270705, + 2137949, + 2270722, + 2137961, + 2137965, + 2137968, + 2270898, + 2128186, + 2110996, + 2111661, + 2112972, + 2113500, + 2115006, + 2115088, + 2116478, + 2116664, + 2116833, + 2117132, + 2117155, + 2117156, + 2117241, + 2117363, + 2117388, + 2117401, + 2117419, + 2117422, + 2117425, + 2117508, + 2117534, + 2117559, + 2117636, + 2117644, + 2117708, + 2117727, + 2117730, + 2117751, + 2117774, + 2117790, + 2117794, + 2117827, + 2117864, + 2117873, + 2117886, + 2117895, + 2117900, + 2117901, + 2117902, + 2117939, + 2117944, + 2118004, + 2118020, + 2118072, + 2118074, + 2118088, + 2118095, + 2118097, + 2118099, + 2118100, + 2118104, + 2118111, + 2118149, + 2118182, + 2118184, + 2118187, + 2118193, + 2118194, + 2118197, + 2118204, + 2118234, + 2118240, + 2118254, + 2118264, + 2118265, + 2118282, + 2118284, + 2118369, + 2118377, + 2118385, + 2118403, + 2118417, + 2118431, + 2118445, + 2118450, + 2118461, + 2118501, + 2118509, + 2118521, + 2118526, + 2118548, + 2118553, + 2118570, + 2118575, + 2118586, + 2118593, + 2118596, + 2118597, + 2118624, + 2118675, + 2118698, + 2118705, + 2118708, + 2118709, + 2118732, + 2118823, + 2118826, + 2118833, + 2118843, + 2118862, + 2118890, + 2118908, + 2118917, + 2118920, + 2118933, + 2118951, + 2118954, + 2118966, + 2118993, + 2119014, + 2119055, + 2119058, + 2119060, + 2119076, + 2119090, + 2119107, + 2119110, + 2119123, + 2119131, + 2119148, + 2119150, + 2119153, + 2119158, + 2119160, + 2119173, + 2119181, + 2119185, + 2119186, + 2119212, + 2119221, + 2119225, + 2119245, + 2119252, + 2119301, + 2119327, + 2119334, + 2119351, + 2119372, + 2119375, + 2119385, + 2119393, + 2119403, + 2119405, + 2119409, + 2119431, + 2119436, + 2119450, + 2119451, + 2119453, + 2119468, + 2119470, + 2119485, + 2119486, + 2119519, + 2119531, + 2119533, + 2119546, + 2119555, + 2119575, + 2119598, + 2119637, + 2119655, + 2119693, + 2119718, + 2119757, + 2119759, + 2119775, + 2119789, + 2119807, + 2119809, + 2119832, + 2119868, + 2119967, + 2119971, + 2120025, + 2120057, + 2120087, + 2120111, + 2120115, + 2120159, + 2120177, + 2120184, + 2120370, + 2120376, + 2120426, + 2120438, + 2120475, + 2120477, + 2120481, + 2120504, + 2120631, + 2120663, + 2120672, + 2120735, + 2120746, + 2120748, + 2120758, + 2120793, + 2120796, + 2120813, + 2120925, + 2120961, + 2121012, + 2121021, + 2121049, + 2121086, + 2121091, + 2121159, + 2121209, + 2121256, + 2121266, + 2121269, + 2121307, + 2121320, + 2121322, + 2121335, + 2121344, + 2121355, + 2121395, + 2121405, + 2121425, + 2121428, + 2121429, + 2121549, + 2121644, + 2121706, + 2121735, + 2121801, + 2121812, + 2121831, + 2121915, + 2121924, + 2121981, + 2121994, + 2122006, + 2122026, + 2122038, + 2122078, + 2122084, + 2122107, + 2122109, + 2122111, + 2122141, + 2122168, + 2122204, + 2122210, + 2122213, + 2122216, + 2122244, + 2122247, + 2122289, + 2122297, + 2122301, + 2122362, + 2122384, + 2122408, + 2122458, + 2122484, + 2122518, + 2122538, + 2122550, + 2122566, + 2122571, + 2122579, + 2122609, + 2122613, + 2122623, + 2122626, + 2122634, + 2122670, + 2122671, + 2122730, + 2122744, + 2122745, + 2122770, + 2122776, + 2122784, + 2122788, + 2122794, + 2122805, + 2122813, + 2122815, + 2122834, + 2122847, + 2122868, + 2122896, + 2122904, + 2122905, + 2122924, + 2122931, + 2122989, + 2122992, + 2123035, + 2123039, + 2123054, + 2123081, + 2123104, + 2123154, + 2123157, + 2123188, + 2123198, + 2123208, + 2123214, + 2123216, + 2123231, + 2123390, + 2123403, + 2123404, + 2123443, + 2123456, + 2123471, + 2123557, + 2123573, + 2123605, + 2123648, + 2123663, + 2123665, + 2123684, + 2123697, + 2123701, + 2123710, + 2123816, + 2123910, + 2124011, + 2124021, + 2124055, + 2124083, + 2124088, + 2124123, + 2124133, + 2124200, + 2124203, + 2124207, + 2124261, + 2124273, + 2124362, + 2124373, + 2124391, + 2124401, + 2124463, + 2124488, + 2124489, + 2124547, + 2124603, + 2124607, + 2124669, + 2124670, + 2124720, + 2124791, + 2124793, + 2124804, + 2124809, + 2124813, + 2124844, + 2124874, + 2124882, + 2124884, + 2124921, + 2124972, + 2124980, + 2125010, + 2125153, + 2125180, + 2125241, + 2125296, + 2125381, + 2125427, + 2125435, + 2125437, + 2125449, + 2125500, + 2125530, + 2125531, + 2125606, + 2125609, + 2125616, + 2125703, + 2125725, + 2125742, + 2125751, + 2125837, + 2125856, + 2125897, + 2125976, + 2126000, + 2126037, + 2126038, + 2126149, + 2126258, + 2126324, + 2126359, + 2126367, + 2126403, + 2126415, + 2126416, + 2126426, + 2126432, + 2126440, + 2126455, + 2126468, + 2126537, + 2126565, + 2126580, + 2126594, + 2126603, + 2126622, + 2126626, + 2126650, + 2126651, + 2126669, + 2126680, + 2126695, + 2126962, + 2127023, + 2127071, + 2127076, + 2127092, + 2127099, + 2127126, + 2127137, + 2127167, + 2127198, + 2127257, + 2127268, + 2127297, + 2127300, + 2127308, + 2127319, + 2127324, + 2127329, + 2127343, + 2127364, + 2127372, + 2127389, + 2127410, + 2127416, + 2127429, + 2127434, + 2127455, + 2127533, + 2127549, + 2127577, + 2127595, + 2127600, + 2127609, + 2127616, + 2127630, + 2127650, + 2127656, + 2127663, + 2127673, + 2127678, + 2127685, + 2127690, + 2127695, + 2127710, + 2127716, + 2127719, + 2127724, + 2127748, + 2127756, + 2127757, + 2127766, + 2127783, + 2127791, + 2127799, + 2127806, + 2127817, + 2127825, + 2127833, + 2127857, + 2127927, + 2127964, + 2127998, + 2128024, + 2128033, + 2128049, + 2128051, + 2128073, + 2128083, + 2128140, + 2128159, + 2128167, + 2128168, + 2128191, + 2128194, + 2128212, + 2128235, + 2128252, + 2128299, + 2128324, + 2128362, + 2128386, + 2128396, + 2128432, + 2128442, + 2128452, + 2128512, + 2128518, + 2128532, + 2128565, + 2128573, + 2128638, + 2128683, + 2128759, + 2128800, + 2128812, + 2128816, + 2128872, + 2128882, + 2128888, + 2128892, + 2128894, + 2128905, + 2128936, + 2128943, + 2128962, + 2128978, + 2128979, + 2128987, + 2128988, + 2128989, + 2129010, + 2129021, + 2129031, + 2129054, + 2129082, + 2129095, + 2129107, + 2129114, + 2129212, + 2129229, + 2129282, + 2129285, + 2129293, + 2129297, + 2129310, + 2129331, + 2129337, + 2129360, + 2129381, + 2129397, + 2129398, + 2129455, + 2129462, + 2129476, + 2129519, + 2129528, + 2129537, + 2129725, + 2129755, + 2129757, + 2129765, + 2129777, + 2129791, + 2129792, + 2129803, + 2129826, + 2129917, + 2129918, + 2129919, + 2129927, + 2129933, + 2129950, + 2129977, + 2130056, + 2130062, + 2130127, + 2130132, + 2130157, + 2130160, + 2130167, + 2130170, + 2130174, + 2130179, + 2130199, + 2130224, + 2130263, + 2130287, + 2130291, + 2130315, + 2130320, + 2130331, + 2130334, + 2130379, + 2130389, + 2130397, + 2130398, + 2130401, + 2130415, + 2130422, + 2130432, + 2130443, + 2130451, + 2130452, + 2130458, + 2130490, + 2130500, + 2130541, + 2130564, + 2130569, + 2130577, + 2130602, + 2130608, + 2130640, + 2130666, + 2130671, + 2130678, + 2130774, + 2130808, + 2130936, + 2130940, + 2131032, + 2131091, + 2131121, + 2131133, + 2131195, + 2131270, + 2131286, + 2131293, + 2131333, + 2131352, + 2131522, + 2131526, + 2131648, + 2131732, + 2131746, + 2131758, + 2131769, + 2131805, + 2131835, + 2131852, + 2131854, + 2131863, + 2131864, + 2131870, + 2131875, + 2131886, + 2131903, + 2131913, + 2131930, + 2131992, + 2131995, + 2132013, + 2132026, + 2132037, + 2132043, + 2132046, + 2132053, + 2132058, + 2132078, + 2132122, + 2132123, + 2132124, + 2132173, + 2132192, + 2132207, + 2132238, + 2132239, + 2132262, + 2132277, + 2132314, + 2132316, + 2132331, + 2132336, + 2132348, + 2132389, + 2132405, + 2132412, + 2132437, + 2132553, + 2132567, + 2132583, + 2132606, + 2132614, + 2132630, + 2132662, + 2132681, + 2132689, + 2132701, + 2132716, + 2132725, + 2132742, + 2132751, + 2132753, + 2132805, + 2132818, + 2132845, + 2132856, + 2132860, + 2132862, + 2132869, + 2132895, + 2133067, + 2133075, + 2133115, + 2133178, + 2133189, + 2133193, + 2133202, + 2133228, + 2133237, + 2133239, + 2133249, + 2133251, + 2133271, + 2133276, + 2133358, + 2133393, + 2133407, + 2133419, + 2133426, + 2133461, + 2133479, + 2133489, + 2133490, + 2133492, + 2133505, + 2133515, + 2133542, + 2133553, + 2133568, + 2133569, + 2133581, + 2133583, + 2133596, + 2133601, + 2133609, + 2133617, + 2133621, + 2133623, + 2133641, + 2133648, + 2133653, + 2133658, + 2133671, + 2133673, + 2133677, + 2133736, + 2133744, + 2133767, + 2133784, + 2133797, + 2133799, + 2133804, + 2133813, + 2133818, + 2133827, + 2133831, + 2133841, + 2133845, + 2133920, + 2133921, + 2133922, + 2133925, + 2134020, + 2134043, + 2134063, + 2134092, + 2134107, + 2134128, + 2134132, + 2134137, + 2134155, + 2134168, + 2134176, + 2134194, + 2134205, + 2134217, + 2134256, + 2134277, + 2134309, + 2134362, + 2134375, + 2134394, + 2134410, + 2134417, + 2134421, + 2134448, + 2134459, + 2134461, + 2134466, + 2134469, + 2134528, + 2134537, + 2134563, + 2134646, + 2134670, + 2134703, + 2134715, + 2134716, + 2134721, + 2134723, + 2134725, + 2134728, + 2134804, + 2134835, + 2134838, + 2134872, + 2134911, + 2134914, + 2134922, + 2134971, + 2134988, + 2135014, + 2135033, + 2135042, + 2135053, + 2135054, + 2135086, + 2135116, + 2135432, + 2135457, + 2135487, + 2135494, + 2135497, + 2135505, + 2135506, + 2135520, + 2135524, + 2135526, + 2135588, + 2135601, + 2135608, + 2135613, + 2135636, + 2135668, + 2135675, + 2135679, + 2135681, + 2135683, + 2135689, + 2135702, + 2135726, + 2135811, + 2135835, + 2135841, + 2135842, + 2135848, + 2135857, + 2135911, + 2135926, + 2135933, + 2135935, + 2135961, + 2135967, + 2135980, + 2135993, + 2136013, + 2136032, + 2136047, + 2136071, + 2136102, + 2136110, + 2136162, + 2136163, + 2136244, + 2136261, + 2136322, + 2136337, + 2136341, + 2136373, + 2136392, + 2136404, + 2136414, + 2136545, + 2136588, + 2136592, + 2136611, + 2136641, + 2136657, + 2136765, + 2136766, + 2136833, + 2136841, + 2136843, + 2136845, + 2136846, + 2136857, + 2136885, + 2136904, + 2136917, + 2136936, + 2136960, + 2136966, + 2136976, + 2136989, + 2137008, + 2137023, + 2137032, + 2137087, + 2137090, + 2137116, + 2137141, + 2137156, + 2137174, + 2137185, + 2137192, + 2137392, + 2137405, + 2137450, + 2137467, + 2137573, + 2137577, + 2137587, + 2137722, + 2137730, + 2137731, + 2137732, + 2137776, + 2137828, + 2137840, + 2137842, + 2137865, + 2137871, + 2137876, + 2137883, + 2137890, + 2137894, + 2137898, + 2137899, + 2137908, + 2137946, + 2137967, + 2138014, + 2138021, + 2228469, + 2248196, + 2248690, + 2260339, + 2118029, + 4216196, + 4218722, + 4219208, + 4220959, + 2133716, + 2110942, + 2138047, + 2138048, + 2138049, + 2138050, + 2269874, + 4214286, + 4214310, + 2228568, + 4214643, + 4214870, + 4215021, + 4215147, + 2229681, + 8409566, + 4215293, + 2229996, + 4215396, + 4215409, + 6312562, + 4215615, + 2275155, + 4215872, + 2231640, + 4216220, + 6313387, + 4216329, + 6313646, + 8410798, + 2275162, + 2275164, + 4216526, + 4216558, + 4216790, + 4216893, + 4216921, + 4217167, + 6314321, + 4217184, + 4217186, + 4217562, + 4217690, + 4217715, + 4217724, + 8412083, + 2251212, + 4218435, + 2275190, + 6315747, + 4218680, + 4218785, + 4218845, + 4219234, + 6316466, + 4219384, + 2111908, + 2111928, + 2240066, + 2275196, + 4220150, + 2112092, + 2230216, + 4220254, + 2240491, + 4220295, + 4220297, + 2259380, + 4220302, + 2112196, + 2112203, + 4220385, + 4220519, + 4220526, + 6317761, + 2275202, + 2112133, + 4220672, + 4220769, + 4220868, + 4220930, + 4221245, + 4221278, + 2275211, + 4221596, + 2112499, + 2242545, + 2275220, + 4222008, + 6319274, + 2138060, + 4222436, + 2112817, + 4222472, + 4222578, + 6319819, + 4222677, + 4222683, + 4222811, + 6319963, + 4222820, + 4222836, + 2244683, + 4223550, + 2113088, + 2111649, + 6321098, + 4224189, + 4224349, + 4224444, + 2275244, + 4224520, + 4224612, + 4224617, + 2275247, + 4224823, + 4224894, + 4225447, + 4225457, + 4225726, + 4226016, + 6323280, + 4226313, + 4226482, + 6323634, + 4226878, + 6324193, + 4227090, + 2275273, + 4227286, + 4227337, + 4227369, + 4227596, + 4227611, + 4227648, + 2275279, + 4228052, + 4228111, + 2275282, + 4228330, + 2256030, + 4228433, + 4228451, + 4228559, + 4228686, + 4228706, + 4228746, + 4229186, + 4229239, + 4229441, + 4229974, + 6327126, + 4229980, + 2115359, + 2260028, + 4230250, + 4230265, + 6327498, + 4230503, + 2115614, + 4230915, + 6328132, + 6328261, + 6328276, + 4231158, + 6328439, + 8425591, + 31494281, + 16814218, + 4231336, + 4231501, + 4231913, + 4231989, + 4232075, + 2275312, + 4232653, + 4232746, + 6330008, + 4232871, + 8427519, + 10524671, + 2275173, + 4233505, + 8427863, + 4234152, + 4234158, + 4234169, + 4234248, + 4234276, + 4234299, + 2275341, + 4234470, + 4234688, + 4234690, + 2275351, + 6330607, + 4339773, + 6322952, + 4220015, + 6323262, + 4225909, + 6321429, + 6326813, + 6316130, + 4223096, + 12604329, + 4226178, + 4232857, + 4228692, + 4227441, + 4232053, + 4215980, + 4223713, + 4221079, + 4234155, + 4215753, + 4220758, + 4224294, + 8418577, + 4225736, + 4219706, + 6328385, + 4233665, + 4220327, + 4231644, + 4233133, + 4227730, + 6323326, + 4223546, + 6326277, + 4228867, + 2136861, + 2136876, + 2117634, + 2118110, + 2118407, + 2120684, + 4218570, + 2123294, + 2123543, + 2125898, + 4215262, + 2119009, + 2124858, + 2128480, + 2253644, + 2131971, + 2135467, + 2135893, + 2268733, + 2270746, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + 6319778, + 8413682, + 6325778, + 4230015, + 2117173, + 2117212, + 2117219, + 2117224, + 2117236, + 2117237, + 2117271, + 2117295, + 2117339, + 2117346, + 2117352, + 2117359, + 2117374, + 2117378, + 2117384, + 2117394, + 2117399, + 2117427, + 2117429, + 2117440, + 2117442, + 2117451, + 2117452, + 2117458, + 2117475, + 2117486, + 2117489, + 2117497, + 2117505, + 2117513, + 2117516, + 2117518, + 2117520, + 2117523, + 2117529, + 2117535, + 2117561, + 2117563, + 2117564, + 2117565, + 2117568, + 2117569, + 2117574, + 2117576, + 2117580, + 2117596, + 2117602, + 2117616, + 2117628, + 2117639, + 2117642, + 2117655, + 2117661, + 2117680, + 2117682, + 2117683, + 2117685, + 2117701, + 2117706, + 2117713, + 2117714, + 2117721, + 2117728, + 2117735, + 2117741, + 2117745, + 2117761, + 2117763, + 2117764, + 2117766, + 2117770, + 2117776, + 2117787, + 2117791, + 2117792, + 2117793, + 2117807, + 2117808, + 2117817, + 2117821, + 2117824, + 2117843, + 2117852, + 2117853, + 2117855, + 2117858, + 2117860, + 2117878, + 2117882, + 4215026, + 2117913, + 2117916, + 2117917, + 2117923, + 2117927, + 2117928, + 2117932, + 2117933, + 2117935, + 2117937, + 2117940, + 2117945, + 2117954, + 2117967, + 2117971, + 2117976, + 2117990, + 2118014, + 2118030, + 2118079, + 2118082, + 2118098, + 2118101, + 2118117, + 2118130, + 2118135, + 2118168, + 2118178, + 2118213, + 2118232, + 2118239, + 2118272, + 2118277, + 2118293, + 2118294, + 2118295, + 2118298, + 2118309, + 2118311, + 2118320, + 2118326, + 2118327, + 2118328, + 2118333, + 2118340, + 2118342, + 2118351, + 2118356, + 2118364, + 2118373, + 2118376, + 2118378, + 2118380, + 2118388, + 2118390, + 2118412, + 2118419, + 2118424, + 2118427, + 2118430, + 2118437, + 2118439, + 2118440, + 2118441, + 2118443, + 2118444, + 2118448, + 2118460, + 2118489, + 2118491, + 4215653, + 2118531, + 2118535, + 2118536, + 2118542, + 2118561, + 2118581, + 2118584, + 2118589, + 2118607, + 2118610, + 2118611, + 2118622, + 4215776, + 2118631, + 2118658, + 2118682, + 2118689, + 2118703, + 2118724, + 2118727, + 2118735, + 2118750, + 2118756, + 2118759, + 2118761, + 2118765, + 2118766, + 2118785, + 2118787, + 2118789, + 2118793, + 2118801, + 2118815, + 2118858, + 2118880, + 2118902, + 2118910, + 2118924, + 2118925, + 2118962, + 2118971, + 2118973, + 2118985, + 2118989, + 2119000, + 2119002, + 2119003, + 2119039, + 2119059, + 2119063, + 2119075, + 2119105, + 2119115, + 2119127, + 2119128, + 2119134, + 2119167, + 4216325, + 2119178, + 2119193, + 2119219, + 2119228, + 2119233, + 2119235, + 2119236, + 2119238, + 2119265, + 2119266, + 2119267, + 2119285, + 2119300, + 2119307, + 2119335, + 2119339, + 2119358, + 2119371, + 2119376, + 2119388, + 2119397, + 2119398, + 2119399, + 2119425, + 2119426, + 2119441, + 2119456, + 2119458, + 2119460, + 2119461, + 2119466, + 2119487, + 2119506, + 2119522, + 2119527, + 2119534, + 2119537, + 2119545, + 2119550, + 2119553, + 2119572, + 2119577, + 2119583, + 2119585, + 2119573, + 2119591, + 2119593, + 2119613, + 2119645, + 2119657, + 2119678, + 2119683, + 2119688, + 2119649, + 2119692, + 2119707, + 2119711, + 2119725, + 2119743, + 2119760, + 2119765, + 2119784, + 2119800, + 2119815, + 2119816, + 2119820, + 2119830, + 2119840, + 2119841, + 2119842, + 2119846, + 2119876, + 2119874, + 2119880, + 2119894, + 2119901, + 2119905, + 4217094, + 2119954, + 2119955, + 2119965, + 2119969, + 2119976, + 2119984, + 2119987, + 2119989, + 2119990, + 2119999, + 2120003, + 2120018, + 2120030, + 2120043, + 2120047, + 2120050, + 2120059, + 2120076, + 2120078, + 2120085, + 2120103, + 2120109, + 2120112, + 2120119, + 2120129, + 2120132, + 2120175, + 2120178, + 2120180, + 2120183, + 2120192, + 2120206, + 2120210, + 2120222, + 2120228, + 2120232, + 2120234, + 2120240, + 2120260, + 2120261, + 2120264, + 2120268, + 2120272, + 2120286, + 2120315, + 2120336, + 2120339, + 2120342, + 2120345, + 2120379, + 2120390, + 2120392, + 2120399, + 2120445, + 2120449, + 2120523, + 2120542, + 2120558, + 2120582, + 2120590, + 2120592, + 2120593, + 2120596, + 2120616, + 2120617, + 2120621, + 2120623, + 2120625, + 2120626, + 2120634, + 2120636, + 2120641, + 2120653, + 2120655, + 2120665, + 2120666, + 2120687, + 2120692, + 2120716, + 2120727, + 2120742, + 2120750, + 2120754, + 2120757, + 2120794, + 2120820, + 2120821, + 2120827, + 2120829, + 2120839, + 2120850, + 2120861, + 2120882, + 2120884, + 2120919, + 2120942, + 2120945, + 2120946, + 2120978, + 2120995, + 2121023, + 2121032, + 2121045, + 2121041, + 2121055, + 2121056, + 2121058, + 2121060, + 2121081, + 2121082, + 2121087, + 2121098, + 2121107, + 2121109, + 2121115, + 2121119, + 2121131, + 2121155, + 2121166, + 2121177, + 2121223, + 2121229, + 2121248, + 2121291, + 2121296, + 2121297, + 2121308, + 2121328, + 2121358, + 2121378, + 2121380, + 2121393, + 2121420, + 2121422, + 2121436, + 2121438, + 2121445, + 2121451, + 2121478, + 2121497, + 2121508, + 2121515, + 2121516, + 2121518, + 2121520, + 2121535, + 2121540, + 2121563, + 2121568, + 2121583, + 2121588, + 2121589, + 2121592, + 2121594, + 2121613, + 2121622, + 2121629, + 2121643, + 2121648, + 2121649, + 2121672, + 2121680, + 2121681, + 2121704, + 2121708, + 2121714, + 2121718, + 2121722, + 2121738, + 2121747, + 2121759, + 2121773, + 2121792, + 2121800, + 2121809, + 2121814, + 2121815, + 2121841, + 2121854, + 2121858, + 2121862, + 2121864, + 2121870, + 2121873, + 2121875, + 2121880, + 4219038, + 2121890, + 2121893, + 2121911, + 2121922, + 2121929, + 2121930, + 2121934, + 2121935, + 2121954, + 2121957, + 2121980, + 2121986, + 2121991, + 2121996, + 2122007, + 2122018, + 2122033, + 2122037, + 2122041, + 2122053, + 2122057, + 2122092, + 2122098, + 2122104, + 2122112, + 2122113, + 2122115, + 2122116, + 2122123, + 2122140, + 2122144, + 2122154, + 2122176, + 2122177, + 2122190, + 2122191, + 2122206, + 2122209, + 2122215, + 2122217, + 2122220, + 2122221, + 2122223, + 2122241, + 2122243, + 2122268, + 2122272, + 2122279, + 2122283, + 2122306, + 2122308, + 2122320, + 2122324, + 2122332, + 2122365, + 2122381, + 2122382, + 2122383, + 2122419, + 2122422, + 2122423, + 2122426, + 2122430, + 2122431, + 2122446, + 2122474, + 2122482, + 2122500, + 2122507, + 2122515, + 2122537, + 2122541, + 2122570, + 2122578, + 2122580, + 2122584, + 2122587, + 2122598, + 2122605, + 2122616, + 2122645, + 2122650, + 2122660, + 2122662, + 2122669, + 2122689, + 2122693, + 2122696, + 2122702, + 2122707, + 2122739, + 2122762, + 2122800, + 2122827, + 2122831, + 2122835, + 2122844, + 2122849, + 2122851, + 2122885, + 2122895, + 2122907, + 2122913, + 2122915, + 2122918, + 2122920, + 2122941, + 2122953, + 2122961, + 2122985, + 2122986, + 2122997, + 2123009, + 2123016, + 2123017, + 2123018, + 2123027, + 2123046, + 2123057, + 2123066, + 2123068, + 2123069, + 2123075, + 2123088, + 2123090, + 2123103, + 2123133, + 2123160, + 2123168, + 2123171, + 2123174, + 2123182, + 2123187, + 2123222, + 2123224, + 4220383, + 2123252, + 2123253, + 2123262, + 2123263, + 2123277, + 2123281, + 2123282, + 2123286, + 2123293, + 2123299, + 2123302, + 2123305, + 2123321, + 2123319, + 2123328, + 2123334, + 2123338, + 2123352, + 2123360, + 2123381, + 2123391, + 2123385, + 2123388, + 2123418, + 2123419, + 2123420, + 2123423, + 4220597, + 2123458, + 2123459, + 2123468, + 2123470, + 2123476, + 2123487, + 2123499, + 2123502, + 2123527, + 2123548, + 2123552, + 2123554, + 2123582, + 2123589, + 2123628, + 2123652, + 2123662, + 2123670, + 2123673, + 2123708, + 2123709, + 2123714, + 2123717, + 2123721, + 2123740, + 2123745, + 2123750, + 2123762, + 2123766, + 2123796, + 2123801, + 2123815, + 2123823, + 2123839, + 2123850, + 2123864, + 2123887, + 2123888, + 2123889, + 2123897, + 2123899, + 2123912, + 2123937, + 2123945, + 2123950, + 2123985, + 2123987, + 2123996, + 2123997, + 2124010, + 2124022, + 2124029, + 2124038, + 2124041, + 2124048, + 2124054, + 2124081, + 2124101, + 2124110, + 2124134, + 2124144, + 2124145, + 2124155, + 2124173, + 2124193, + 2124216, + 2124229, + 2124232, + 4221438, + 2124288, + 2124291, + 2124320, + 2124324, + 2124343, + 4221525, + 2124394, + 2124417, + 2124422, + 2124423, + 2124443, + 2124464, + 2124465, + 2124468, + 2124478, + 2124479, + 2124492, + 2124501, + 2124502, + 2124528, + 2124540, + 2124546, + 2124550, + 2124551, + 2124553, + 2124584, + 2124587, + 2124598, + 2124621, + 2124626, + 2124637, + 2124651, + 2124654, + 2124656, + 2124677, + 2124695, + 2124703, + 2124704, + 2124706, + 2124707, + 2124712, + 2124716, + 2124728, + 2124729, + 2124739, + 2124740, + 2124771, + 2124818, + 2124825, + 2124831, + 2124838, + 2124839, + 2124840, + 2124846, + 2124859, + 2124875, + 2124879, + 2124907, + 2124920, + 2124935, + 2124959, + 2124976, + 2124978, + 2125005, + 2125007, + 2125009, + 2125031, + 2125042, + 2125044, + 2125063, + 2125071, + 2125075, + 2125082, + 2125096, + 2125151, + 2125159, + 2125202, + 2125207, + 2125239, + 2125245, + 2125280, + 2125282, + 2125285, + 2125295, + 2125300, + 2125312, + 2125316, + 2125371, + 2125394, + 2125405, + 2125410, + 2125416, + 2125453, + 2125465, + 2125472, + 2125485, + 2125486, + 2125491, + 2125499, + 2125504, + 2125512, + 2125517, + 2125519, + 2125549, + 2125550, + 2125572, + 2125576, + 2125581, + 2125590, + 2125595, + 2125627, + 2125613, + 2125647, + 2125651, + 2125661, + 2125676, + 2125699, + 2125715, + 2125734, + 2125744, + 2125765, + 2125800, + 2125821, + 2125847, + 2125871, + 2125876, + 2125879, + 2125892, + 2125896, + 2125909, + 2125972, + 2125974, + 2125979, + 2126004, + 2126074, + 2126085, + 2126091, + 2126125, + 2126136, + 2126145, + 2126155, + 4223314, + 2126167, + 2126170, + 2126220, + 2126234, + 2126256, + 2126271, + 2126272, + 2126284, + 2126298, + 2126328, + 2126344, + 2126345, + 2126355, + 2126362, + 2126372, + 2126383, + 2126405, + 2126414, + 2126430, + 2126443, + 2126449, + 2126459, + 2126460, + 2126473, + 2126483, + 2126504, + 2126549, + 2126550, + 2126552, + 2126559, + 2126590, + 2126605, + 2126611, + 2126642, + 2126645, + 2126678, + 2126685, + 2126686, + 2126687, + 2126688, + 2126697, + 2126713, + 2126720, + 2126734, + 2126736, + 2126739, + 2126743, + 2126762, + 2126765, + 2126790, + 2126796, + 2126803, + 2126813, + 2126822, + 2126839, + 2126843, + 2126847, + 2126848, + 2126865, + 2126893, + 2126951, + 2126952, + 2126958, + 2126991, + 2126993, + 2127002, + 2127022, + 2127025, + 2127026, + 2127052, + 2127056, + 2127059, + 4224216, + 2127067, + 2127080, + 2127082, + 4224239, + 2127100, + 2127110, + 2127122, + 2127143, + 2127145, + 2127158, + 2127161, + 2127171, + 2127175, + 2127191, + 2127199, + 2127201, + 2127227, + 2127228, + 2127237, + 2127253, + 2127260, + 2127290, + 2127378, + 2127395, + 2127401, + 2127417, + 2127418, + 2127424, + 2127428, + 2127449, + 2127493, + 2127500, + 2127501, + 2127519, + 2127522, + 2127523, + 2127553, + 2127563, + 4224724, + 2127584, + 2127606, + 2127622, + 2127634, + 2127636, + 2127637, + 2127644, + 2127662, + 2127677, + 2127682, + 2127698, + 2127702, + 2127703, + 2127728, + 2127731, + 2127732, + 4224909, + 4224930, + 2127790, + 2127793, + 2127797, + 2127811, + 2127826, + 2127829, + 2127864, + 2127886, + 2127889, + 2127901, + 2127907, + 2127940, + 2127944, + 2127948, + 2127954, + 2127966, + 2127968, + 2127969, + 2127971, + 2128015, + 2128040, + 2128044, + 2128050, + 2128061, + 2128063, + 2128071, + 2128082, + 2128086, + 2128091, + 2128095, + 2128106, + 2128115, + 2128118, + 2128127, + 2128134, + 2128154, + 2128158, + 2128160, + 2128169, + 2128173, + 2128181, + 2128196, + 2128203, + 2128207, + 2128209, + 2128233, + 2128251, + 2128254, + 2128268, + 2128273, + 2128275, + 2128284, + 2128296, + 2128303, + 2128335, + 2128349, + 2128352, + 2128354, + 2128357, + 2128369, + 2128376, + 2128380, + 2128391, + 2128417, + 2128423, + 2128427, + 2128431, + 2128436, + 2128437, + 2128456, + 2128469, + 2128485, + 2128510, + 2128523, + 2128529, + 2128542, + 2128585, + 2128603, + 2128617, + 2128620, + 2128625, + 2128635, + 2128671, + 2128675, + 2128681, + 2128688, + 2128692, + 2128703, + 2128704, + 2128746, + 2128772, + 2128777, + 2128782, + 2128790, + 2128805, + 2128818, + 2128822, + 2128826, + 2128827, + 2128829, + 2128834, + 2128840, + 2128859, + 2128884, + 2128885, + 2128889, + 2128890, + 2128898, + 2128900, + 2128902, + 2128908, + 2128921, + 2128923, + 2128933, + 2128940, + 2128948, + 2128953, + 2128954, + 2128966, + 2128981, + 2128986, + 2128995, + 4226153, + 2129020, + 2129030, + 2129072, + 2129083, + 2129103, + 2129108, + 2129129, + 2129167, + 2129169, + 2129174, + 2129190, + 2129194, + 2129197, + 2129233, + 2129239, + 2129253, + 2129255, + 2129272, + 2129275, + 2129281, + 2129302, + 2129347, + 2129348, + 2129349, + 2129350, + 2129357, + 2129358, + 2129408, + 2129378, + 2129386, + 2129389, + 2129402, + 2129436, + 2129453, + 2129459, + 2129471, + 2129486, + 2129488, + 2129496, + 2129503, + 2129509, + 2129557, + 2129565, + 2129566, + 2129727, + 2129756, + 2129766, + 4226944, + 2129805, + 2129807, + 2129830, + 2129834, + 2129844, + 2129852, + 2129856, + 2129864, + 2129896, + 2129935, + 2129939, + 2129949, + 2129951, + 2129952, + 2129966, + 2129972, + 2129982, + 2129984, + 2129988, + 2130020, + 2130029, + 2130049, + 2130105, + 2130120, + 2130125, + 2130130, + 2130158, + 2130162, + 2130166, + 2130169, + 2130187, + 2130204, + 2130208, + 2130236, + 2130245, + 2130247, + 2130258, + 2130273, + 2130295, + 2130310, + 2130318, + 2130326, + 2130338, + 2130350, + 2130373, + 2130382, + 2130411, + 2130416, + 2130417, + 2130418, + 2130421, + 2130424, + 4227584, + 2130447, + 2130461, + 2130472, + 2130499, + 2130510, + 2130513, + 2130518, + 2130535, + 2130555, + 2130560, + 2130561, + 2130567, + 2130580, + 2130582, + 2130584, + 2130586, + 2130587, + 2130592, + 2130650, + 2130656, + 2130660, + 2130669, + 2130698, + 2130699, + 2130718, + 2130719, + 2130721, + 2130732, + 2130734, + 2130739, + 2130743, + 2130749, + 2130754, + 2130765, + 2130766, + 2130800, + 2130816, + 2130818, + 2130820, + 2130841, + 2130844, + 2130854, + 2130860, + 2130878, + 2130771, + 2130920, + 2130969, + 2130861, + 2130991, + 2131013, + 2131015, + 2131021, + 2131030, + 4228188, + 2131040, + 2131044, + 2131047, + 2131050, + 2131060, + 2131069, + 2131090, + 2131093, + 2131113, + 2131114, + 2131143, + 2131144, + 2131148, + 2131186, + 2131191, + 2131202, + 2131203, + 2131207, + 2131214, + 2131216, + 2131228, + 2131234, + 2131239, + 2131242, + 2131251, + 2131254, + 2131263, + 2131280, + 2131282, + 2131292, + 4228445, + 2131295, + 2131296, + 2131321, + 2131337, + 2131339, + 2131360, + 2131365, + 2131367, + 2131380, + 2131382, + 2131384, + 2131389, + 2131390, + 2131391, + 2131394, + 2131418, + 2131424, + 2131432, + 2131443, + 2131452, + 2131469, + 2131470, + 2131481, + 2131483, + 2131510, + 2131514, + 2131517, + 2131544, + 2131545, + 2131549, + 2131552, + 2131553, + 2131556, + 2131561, + 2131574, + 2131606, + 2131610, + 2131617, + 2131622, + 2131629, + 2131636, + 2131637, + 2131639, + 2131641, + 2131647, + 2131653, + 2131666, + 2131674, + 2131676, + 2131680, + 2131685, + 2131687, + 2131592, + 2131716, + 2131727, + 2131759, + 2131762, + 2131772, + 2131773, + 2131781, + 2131789, + 2131809, + 2131823, + 2131843, + 2131844, + 2131845, + 2131846, + 2131856, + 2131861, + 4229027, + 2131889, + 2131912, + 2131914, + 2131925, + 2131929, + 2131932, + 2131938, + 2131940, + 2131953, + 2131955, + 2131960, + 2131962, + 2131967, + 2131977, + 2131993, + 2131986, + 2131994, + 2131998, + 2132016, + 2132021, + 2132033, + 2132035, + 2132040, + 2132041, + 4229195, + 2132049, + 2132060, + 2132064, + 2132081, + 2132089, + 2132091, + 2132096, + 2132127, + 2132136, + 2132154, + 2132171, + 2132172, + 2132190, + 2132199, + 2132215, + 2132237, + 2132245, + 2132246, + 2132256, + 2132264, + 2132273, + 2132282, + 2132294, + 2132303, + 2132306, + 2132311, + 2132315, + 2132321, + 2132323, + 2132334, + 2132339, + 2132341, + 2132346, + 2132349, + 2132365, + 2132373, + 2132379, + 2132380, + 2132384, + 2132404, + 2132406, + 2132439, + 2132457, + 2132461, + 2132473, + 2132484, + 2132485, + 2132510, + 2132512, + 2132516, + 2132518, + 2132523, + 2132524, + 2132527, + 2132541, + 2132544, + 2132547, + 2132563, + 2132566, + 2132572, + 2132581, + 2132598, + 2132599, + 2132602, + 2132603, + 2132608, + 2132611, + 2132619, + 2132623, + 2132626, + 2132631, + 2132633, + 2132639, + 2132649, + 2132655, + 2132659, + 2132667, + 2132675, + 2132678, + 2132680, + 2132682, + 2132691, + 2132692, + 2132693, + 2132720, + 2132735, + 2132747, + 2132766, + 2132784, + 2132796, + 2132802, + 2132808, + 2132813, + 2132835, + 2132857, + 2132868, + 2132877, + 2132879, + 2133048, + 2133054, + 2133073, + 2133080, + 2133083, + 2133085, + 2133081, + 2133091, + 2133092, + 2133094, + 2133109, + 2133110, + 2133118, + 2133126, + 2133127, + 2133131, + 2133136, + 4230299, + 2133148, + 2133177, + 2133190, + 2133195, + 2133199, + 2133213, + 2133224, + 2133231, + 2133234, + 2133247, + 2133349, + 2133375, + 2133378, + 2133384, + 2133392, + 2133406, + 2133408, + 2133420, + 2133429, + 2133431, + 2133433, + 2133435, + 2133440, + 2133445, + 2133447, + 2133450, + 2133460, + 2133477, + 2133488, + 2133436, + 2133508, + 2133509, + 2133521, + 2133555, + 2133559, + 2133560, + 2133582, + 2133595, + 2133597, + 2133598, + 2133625, + 2133634, + 2133635, + 2133659, + 2133661, + 2133666, + 2133690, + 2133697, + 2133699, + 2133700, + 2133703, + 2133724, + 2133742, + 2133745, + 2133751, + 2133741, + 2133762, + 2133775, + 2133776, + 2133782, + 2133792, + 2133793, + 2133795, + 2133800, + 2133806, + 2133812, + 2133815, + 2133825, + 2133839, + 2133842, + 2133843, + 2133853, + 2133854, + 2133861, + 2133917, + 2133944, + 2133950, + 2133952, + 2133963, + 2133968, + 2133970, + 2133987, + 2134014, + 2134040, + 2134056, + 2134057, + 2134058, + 2134067, + 2134068, + 2134079, + 2134114, + 2134118, + 2134124, + 2134158, + 2134181, + 2134220, + 2134229, + 2134232, + 2134233, + 2134245, + 2134226, + 2134280, + 2134285, + 2134288, + 2134298, + 2134304, + 2134313, + 2134318, + 2134326, + 2134332, + 2134339, + 2134351, + 2134355, + 2134381, + 2134395, + 2134401, + 2134406, + 2134419, + 2134420, + 2134424, + 2134433, + 2134438, + 2134463, + 2134483, + 2134484, + 2134489, + 2134505, + 2134506, + 2134511, + 2134521, + 2134525, + 2134532, + 2134533, + 2134540, + 2134546, + 2134547, + 2134552, + 2134556, + 2134557, + 2134564, + 2134565, + 2134566, + 2134574, + 2134575, + 2134576, + 2134581, + 2134582, + 2134590, + 2134598, + 2134605, + 2134616, + 2134620, + 2134621, + 2134633, + 2134638, + 2134639, + 2134640, + 2134645, + 2134649, + 2134651, + 2134666, + 2134674, + 2134688, + 2134692, + 2134693, + 2134696, + 2134710, + 2134712, + 2134714, + 2134717, + 2134727, + 2134733, + 2134744, + 2134748, + 2134749, + 2134753, + 2134755, + 2134760, + 2134764, + 2134766, + 2134768, + 2134784, + 2134792, + 2134812, + 2134820, + 2134826, + 2134836, + 2134839, + 2134864, + 2134869, + 2134878, + 2134887, + 2134889, + 2134895, + 2134900, + 2134902, + 2134906, + 2134909, + 2134912, + 2134913, + 2134925, + 2134930, + 2134933, + 2134936, + 4232097, + 2134950, + 2134952, + 2134955, + 2134964, + 2134965, + 2134966, + 2134980, + 2134981, + 2134985, + 2134987, + 2134989, + 2134995, + 2135001, + 2135031, + 2135041, + 2135048, + 2135061, + 2135071, + 2135087, + 2135101, + 2135107, + 2135129, + 2135132, + 2135135, + 2135137, + 2135144, + 2135150, + 2135172, + 2135171, + 2135422, + 2135428, + 2135453, + 2135454, + 2135482, + 2135513, + 2135517, + 2135519, + 2135582, + 2135586, + 2135589, + 2135590, + 2135607, + 2135609, + 2135610, + 2135634, + 2135638, + 2135639, + 2135662, + 2135676, + 2135678, + 2135697, + 2135711, + 2135718, + 2135754, + 4232922, + 2135775, + 2135802, + 2135813, + 2135834, + 2135837, + 4232993, + 2135882, + 2135896, + 2135927, + 2135928, + 2135931, + 2135936, + 2135945, + 2135959, + 2135992, + 2135996, + 2135999, + 2136004, + 2136005, + 2136007, + 2136010, + 2136014, + 2136016, + 2136023, + 2136029, + 2136036, + 2136055, + 2136056, + 2136058, + 2136089, + 2136092, + 2136096, + 2136111, + 2136117, + 2136132, + 2136138, + 2136145, + 2136170, + 2136238, + 2136268, + 2136294, + 2136310, + 2136327, + 2136351, + 2136354, + 2136358, + 2136363, + 2136372, + 2136377, + 2136391, + 2136409, + 2136411, + 2136475, + 2136477, + 2136479, + 2136496, + 2136498, + 2136501, + 2136531, + 2136538, + 2136540, + 2136551, + 2136554, + 2136555, + 2136556, + 2136564, + 2136565, + 2136573, + 2136574, + 2136580, + 2136587, + 2136606, + 2136610, + 2136627, + 2136629, + 2136647, + 4233802, + 2136651, + 2136660, + 2136669, + 2136746, + 2136748, + 2136750, + 2136754, + 2136756, + 2136763, + 2136767, + 2136776, + 2136791, + 2136795, + 2136804, + 2136807, + 2136812, + 2136818, + 2136819, + 2136821, + 2136826, + 2136829, + 2136831, + 2136832, + 2136836, + 2136837, + 2136859, + 2136870, + 4234037, + 2136887, + 2136889, + 2136890, + 2136908, + 2136918, + 2136919, + 2136923, + 2136929, + 2136938, + 2136941, + 2136942, + 2136952, + 2136959, + 2136965, + 2136967, + 2136969, + 2136971, + 2136973, + 2136980, + 2136986, + 2137001, + 2137015, + 2137020, + 2137040, + 2137081, + 2137103, + 2137105, + 2137118, + 2137126, + 2137128, + 2137149, + 2137155, + 2137166, + 2137182, + 2137211, + 2137335, + 2137337, + 2137372, + 2137391, + 2137395, + 2137396, + 2137402, + 2137404, + 2137413, + 2137427, + 2137428, + 2137445, + 2137475, + 2137478, + 2137486, + 2137490, + 2137491, + 2137493, + 2137495, + 2137496, + 2137514, + 2137518, + 4234687, + 2137546, + 2137556, + 2137557, + 2137566, + 2137582, + 2137584, + 2137598, + 2137614, + 2137616, + 2137617, + 2137618, + 2137622, + 2137735, + 2137742, + 2137743, + 2137750, + 2137752, + 2137774, + 2137779, + 2137798, + 2137800, + 2137803, + 2137813, + 2137836, + 2137837, + 2137841, + 2137845, + 2137848, + 2137873, + 2137878, + 2137882, + 2137887, + 2137905, + 2137906, + 2137916, + 2137919, + 2137923, + 2137924, + 2137927, + 2137942, + 2137950, + 2137966, + 2137971, + 2137978, + 2137981, + 2137999, + 2138001, + 2138002, + 2138006, + 2138017, + 2138019, +}} diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua index 93e92ab5dec..531a5c75433 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua @@ -207,6 +207,7 @@ local function check_box(box_ptr, box_end) if getfield(p, 'shift')==0 then last_char = nil if check_box(getlist(p), nil) then found_visible_node = true end + find_first_char = false else find_first_char = false; last_char = nil end @@ -832,7 +833,9 @@ do end get_kanjiskip = function() - if Np.auto_kspc or Nq.auto_kspc then + if Np.auto_kspc==0 or Nq.auto_kspc==0 then + return nil + elseif Np.auto_kspc or Nq.auto_kspc then local pm, qm = Np.met, Nq.met if (pm.char_type==qm.char_type) and (qm.var==pm.var) then return get_kanjiskip_low(true, qm, 1, 1, 1) @@ -841,7 +844,7 @@ do local ga = get_kanjiskip_low(true, pm, 1, 1, 1) return calc_ja_ja_aux(gb, ga, 0, 1) end - else + else local g = node_new(id_glue) set_attr(g, attr_icflag, kanjiskip_jfm_flag and KANJI_SKIP_JFM or KANJI_SKIP) return g @@ -912,7 +915,9 @@ do end get_xkanjiskip = function(Nn) - if (Nq.xspc>=2) and (Np.xspc%2==1) and (Nq.auto_xspc or Np.auto_xspc) then + if Np.auto_xspc==0 or Nq.auto_xspc==0 then + return nil + elseif (Nq.xspc>=2) and (Np.xspc%2==1) and (Nq.auto_xspc or Np.auto_xspc) then return get_xkanjiskip_low(true, Nn.met, 1, 1, 1) else local g = node_new(id_glue) @@ -924,18 +929,44 @@ end -------------------- 隣接した「塊」間の処理 +local function combine_spc(name) + return (Np[name] or Nq[name]) and ((Np[name]~=0) and (Nq[name]~=0)) +end + +-- NA, NB: alchar or math +local function get_NA_skip() + local pm = Np.met + local g, _, kn, kp, kh = new_jfm_glue( + pm.char_type, + fast_find_char_class( + (Nq.id == id_math and -1 or (Nq.xspc>=2 and 'alchar' or 'nox_alchar')), pm), + Np.class) + local k = ((Nq.xspc>=2) and (Np.xspc%2==1) and combine_spc('auto_xspc')) + and get_xkanjiskip_low(false, pm, kn, kp, kh) + return g, k +end +local function get_NB_skip() + local qm = Nq.met + local g, _, kn, kp, kh = new_jfm_glue( + qm.char_type, Nq.class, + fast_find_char_class( + (Np.id == id_math and -1 or (Np.xspc%2==1 and 'alchar' or 'nox_alchar')), qm) + ) + local k = ((Nq.xspc>=2) and (Np.xspc%2==1) and combine_spc('auto_xspc')) + and get_xkanjiskip_low(false, qm, kn, kp, kh) + return g, k +end + local function get_OA_skip(is_kanji) local pm = Np.met local g, _, kn, kp, kh = new_jfm_glue( pm.char_type, - fast_find_char_class((Nq.id == id_math and -1 or 'jcharbdd'), pm), + fast_find_char_class( + (((Nq.id==id_glue)or(Nq.id==id_kern)) and 'glue' or 'jcharbdd'), pm), Np.class) local k if is_kanji==0 then - k = (Np.auto_kspc or Nq.auto_kspc) and get_kanjiskip_low(false, pm, kn, kp, kh) - elseif is_kanji==1 then - k = ((Nq.xspc>=2) and (Np.xspc%2==1) and (Nq.auto_xspc or Np.auto_xspc)) - and get_xkanjiskip_low(false, pm, kn, kp, kh) + k = combine_spc('auto_kspc') and get_kanjiskip_low(false, pm, kn, kp, kh) end return g, k end @@ -943,13 +974,11 @@ local function get_OB_skip(is_kanji) local qm = Nq.met local g, _, kn, kp, kh = new_jfm_glue( qm.char_type, Nq.class, - fast_find_char_class((Np.id == id_math and -1 or'jcharbdd'), qm)) + fast_find_char_class( + (((Np.id==id_glue)or(Np.id==id_kern)) and 'glue' or 'jcharbdd'), qm)) local k if is_kanji==0 then - k = (Np.auto_kspc or Nq.auto_kspc) and get_kanjiskip_low(false, qm, kn, kp, kh) - elseif is_kanji==1 then - k = ((Nq.xspc>=2) and (Np.xspc%2==1) and (Nq.auto_xspc or Np.auto_xspc)) - and get_xkanjiskip_low(false, qm, kn, kp, kh) + k = combine_spc('auto_kspc') and get_kanjiskip_low(false, qm, kn, kp, kh) end return g, k end @@ -970,7 +999,7 @@ local function handle_np_jachar(mode) handle_penalty_normal(0, Np.pre, g); real_insert(g); real_insert(k) elseif Nq.pre then local g, k - if non_ihb_flag then g, k = get_OA_skip(1) end -- O_A->X + if non_ihb_flag then g, k = get_NA_skip() end -- N_A->X if not g then g = get_xkanjiskip(Np) end handle_penalty_normal((qid==id_hlist and 0 or Nq.post), Np.pre, g); real_insert(g); real_insert(k) @@ -991,7 +1020,7 @@ end -- jachar .. (anything) local function handle_nq_jachar() if Np.pre then - local g = non_ihb_flag and get_OB_skip(1) or get_xkanjiskip(Nq) -- O_B->X + local g = non_ihb_flag and get_NB_skip() or get_xkanjiskip(Nq) -- N_B->X handle_penalty_normal(Nq.post, (Np.id==id_hlist and 0 or Np.pre), g); real_insert(g) else local g =non_ihb_flag and (get_OB_skip()) -- O_B @@ -1180,6 +1209,8 @@ end -- main interface function main(ahead, mode, dir) if not ahead then return ahead end + --luatexja.ext_show_node_list(to_node(ahead ), '>B ', print) + --print() head = ahead; local lp, last, par_indented, TEMP = init_var(mode,dir) lp = calc_np(last, lp) @@ -1203,6 +1234,8 @@ function main(ahead, mode, dir) end handle_list_tail(mode, last) end + --luatexja.ext_show_node_list(to_node(ahead ), '>A ', print) + --print() return cleanup(mode, TEMP) end end @@ -1251,10 +1284,10 @@ do Np.first = lp; Np.nuc = lp; Np.last = lp if Nq then if Nq.met then - Np.class = fast_find_char_class('parbdd', Nq.met) + Np.class = fast_find_char_class('boxbdd', Nq.met) end Np.met = Nq.met; Np.pre = 0; Np.post = 0; Np.xspc = 0 - Np.auto_xspc = false + Np.auto_xspc, Np.auto_kspc = 0, 0 end return Np else @@ -1271,7 +1304,7 @@ do Nq.class = fast_find_char_class('parbdd', Np.met) end Nq.met = Np.met; Nq.pre = 0; Nq.post = 0; Nq.xspc = 0 - Nq.auto_xspc = false + Nq.auto_xspc, Nq.auto_kspc = 0, 0 end head = node_remove(head, y) node_free(y) @@ -1283,7 +1316,7 @@ do Nq.class = fast_find_char_class('boxbdd', Np.met) end Nq.met = Np.met; Nq.pre = 0; Nq.post = 0; Nq.xspc = 0 - Nq.auto_xspc = false + Nq.auto_xspc, Nq.auto_kspc = 0, 0 end head = node_remove(head, y) node_free(y) diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua index 77855f5374a..c7f8593e646 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua @@ -155,13 +155,22 @@ function define_jfm(t) if type(x)=='number' then v.kern[j] = {x, 0.5} elseif type(x)=='table' then - v.kern[j] = { x[1], ratio=x.ratio or (x[2] and 0.5*(1+x[2]) or 0.5) } + v.kern[j] = { x[1], (x.ratio or (x[2] and 0.5*(1+x[2]) or 0.5)) } end end t.char_type[i] = v t[i] = nil end end + if t.version<3 then + -- In version 3, 'jcharbdd' is divided into + -- 'alchar': ALchar (or math boundary) + -- 'nox_alchar': ALchar (or math boundary), where xkanjiskip won't inserted + -- 'glue': glue/kern, 'jcharbdd': other cases (和文B, rule, ...) + t.chars.alchar = t.chars.jcharbdd + t.chars.nox_alchar = t.chars.jcharbdd + t.chars.glue = t.chars.jcharbdd + end t = luatexbase.call_callback("luatexja.load_jfm", t, jfm_file_name) t.size_cache = {} defjfm_res = t @@ -804,7 +813,13 @@ do return dest end prepare_fl_data = function (dest, id) - local fl = fontloader.open(id.filename) + local t = fontloader.info(id.filename) + local fl + if t.filename then + fl = fontloader.open(id.filename) + else + fl = fontloader.open(id.filename, id.fullname) + end local ind_to_uni, unicodes = {}, {} for i,v in pairs(id.characters) do ind_to_uni[v.index] = i @@ -856,16 +871,16 @@ end -- do - local cache_ver = 11 + local cache_ver = 12 local checksum = file.checksum local function prepare_extra_data_base(id) if (not id) or (not id.filename) then return end - local bname = file.nameonly(id.filename) + local bname = id.psname or file.nameonly(id.filename) if not font_extra_basename[bname] then -- if the cache is present, read it local newsum = checksum(id.filename) -- MD5 checksum of the fontfile - local v = "extra_" .. string.lower(file.nameonly(id.filename)) + local v = "extra_" .. string.lower(bname) local dat = ltjb.load_cache( v, function (t) return (t.version~=cache_ver) or (t.chksum~=newsum) end @@ -888,8 +903,8 @@ do end end local function prepare_extra_data_font(id, res) - if type(res)=='table' and res.shared and res.filename then - font_extra_info[id] = font_extra_basename[file.nameonly(res.filename)] + if type(res)=='table' and res.shared and (res.psname or res.filename) then + font_extra_info[id] = font_extra_basename[res.psname or file.nameonly(res.filename)] end end luatexbase.add_to_callback( diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty b/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty index 16b5c2b38dc..0176d446a70 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty @@ -12,9 +12,10 @@ \def\luatexjalatexLoaded{\endinput} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ltj-latex}[2017/05/05 LaTeX support of LuaTeX-ja] +\ProvidesPackage{ltj-latex}[2017/06/18 LaTeX support of LuaTeX-ja] % LaTeX2e 2017/05/01 で行われる対策 +% 本 sty からは 2018/05/01 削除予定 \ifx\document@default@language \@undefined \let\document@default@language\m@ne \fi @@ -78,6 +79,8 @@ \ltj@asc@temp\let\ltj@asc@temp=\relax }{}}% ascmac \ltj@pkgpatch{stfloats} +\ltj@pkgpatch{preview} +\ltj@pkgpatch{array} \RequirePackage{lltjp-geometry} \RequirePackage{filehook} diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua index 6a1447aebf6..fdb308348f5 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua @@ -55,16 +55,33 @@ local ltjd_get_dir_count = ltjd.get_dir_count local dir_tate = luatexja.dir_table.dir_tate luatexja.userid_table.OTF = luatexbase.newuserwhatsitid('char_by_cid', 'luatexja') -luatexja.userid_table.VSR = luatexbase.newuserwhatsitid('replace_vs', 'luatexja') -local OTF, VSR = luatexja.userid_table.OTF, luatexja.userid_table.VSR +local OTF = luatexja.userid_table.OTF +local tex_get_attr = tex.getattribute + +local cache_var = 2 +local cache_outdate_fn = function (t) return t.version~=cache_ver end +local ivd_aj1 = ltjb.load_cache('ltj-ivd_aj1',cache_outdate_fn) +if not ivd_aj1 then -- make cache + ivd_aj1 = require('ltj-ivd_aj1.lua') + ltjb.save_cache_luc('ltj-ivd_aj1', ivd_aj1) +end + local function get_ucs_from_rmlgbm(c) - local v = ltjr_cidfont_data["Adobe-Japan1"].resources.unicodes["Japan1." .. tostring(c)] - if not v then -- AJ1 範囲外 - return 0 + local v = (ivd_aj1 and ivd_aj1.table_ivd_aj1[c] + or ltjr_cidfont_data["Adobe-Japan1"].resources.unicodes["Japan1." .. tostring(c)]) + or 0 + if v>=0x200000 then -- table + local curjfnt_num = tex_get_attr((ltjd_get_dir_count()==dir_tate) + and attr_curtfnt or attr_curjfnt) + local curjfnt = identifiers[curjfnt_num].resources + local base, ivs = v % 0x200000, 0xE00FF + math.floor(v/0x200000) + curjfnt = curjfnt and curjfnt.variants + curjfnt = curjfnt and curjfnt[ivs] + return curjfnt and curjfnt[base] or base elseif v<0xF0000 then -- 素直に Unicode にマップ可能 return v - else + else -- privete use area local w = ltjr_cidfont_data["Adobe-Japan1"].characters[v]. tounicode -- must be non-nil! local i = string.len(w) @@ -93,7 +110,6 @@ end local cid do - local tex_get_attr = tex.getattribute cid = function (key) if key==0 then return append_jglyph(char) end local curjfnt_num = tex_get_attr((ltjd_get_dir_count()==dir_tate) @@ -137,17 +153,18 @@ local function extract(head) if getid(p)==id_whatsit then if getsubtype(p)==sid_user then local puid = getfield(p, 'user_id') - if puid==OTF or puid==VSR then + if puid==OTF then + --if puid==OTF or puid==VSR then local g = node_new(id_glyph) setfield(g, 'subtype', 0) setfield(g, 'char', getfield(p, 'value')) local v = has_attr(p, attr_curfnt); setfield(g, 'font',v) - if puid==OTF then + --if puid==OTF then setfield(g, 'lang', lang_ja) set_attr(g, attr_kblshift, has_attr(p, attr_kblshift)) - else - set_attr(g, attr_ablshift, has_attr(p, attr_ablshift)) - end + --else + -- set_attr(g, attr_ablshift, has_attr(p, attr_ablshift)) + --end head = node_insert_after(head, p, g) head = node_remove(head, p) node_free(p); p = g @@ -206,86 +223,12 @@ end luatexbase.add_to_callback("luatexja.find_char_class", cid_set_char_class, "ltj.otf.find_char_class", 1) --------------------- IVS -local enable_ivs, disable_ivs -do - local is_ivs_enabled = false --- 組版時 - local function ivs_jglyph(char, bp, pf, uid) - local p = node_new(id_whatsit,sid_user) - setfield(p, 'user_id', uid) - setfield(p, 'type', 100) - setfield(p, 'value', char) - return p - end - - local function do_ivs_repr(h) - local head = to_direct(h) - local p, r = head - local is_dir_tate = (ltjs.list_dir == dir_tate) - local attr_ablshift = is_dir_tate and attr_tablshift or attr_yablshift - local attr_kblshift = is_dir_tate and attr_tkblshift or attr_ykblshift - local attr_curfnt = is_dir_tate and attr_curtfnt or attr_curjfnt - while p do - local pid = getid(p) - if pid==id_glyph then - local q = node_next(p) -- the next node of p - if q and getid(q)==id_glyph then - local qc = getchar(q) - if (qc>=0xFE00 and qc<=0xFE0F) or (qc>=0xE0100 and qc<0xE01F0) then - -- q is a variation selector - if qc>=0xE0100 then qc = qc - 0xE0100 end - local pf = getfont(p) - local pt = ltjf_font_extra_info[pf] - pt = pt and pt[getchar(p)]; pt = pt and pt[qc] - head, r = node_remove(head,q) - node_free(q) - if pt then - local is_jachar = (getfield(p, 'lang')==lang_ja) - local np = ivs_jglyph(pt, p, pf, - is_jachar and OTF or VSR) - if is_jachar then - set_attr(np, attr_curfnt, pf) - set_attr(np, attr_kblshift, has_attr(p, attr_kblshift)) - end - head = node_insert_after(head, p, np) - head = node_remove(head,p) - node_free(p) - end - p = r - else - p = q - end - else - p = node_next(p) - end - else - p = node_next(p) - end - end - return to_node(head) - end - - enable_ivs = function () - if is_ivs_enabled then - ltjb.package_warning('luatexja-otf', - 'luatexja.otf.enable_ivs() was already called, so this call is ignored', '') - else - ltjb.add_to_callback('hpack_filter', do_ivs_repr, 'ltj.do_ivs', - luatexbase.priority_in_callback('hpack_filter', 'luaotfload.node_processor')) - ltjb.add_to_callback('pre_linebreak_filter', do_ivs_repr, 'ltj.do_ivs', - luatexbase.priority_in_callback('pre_linebreak_filter', 'luaotfload.node_processor')) - is_ivs_enabled = true - end - end - disable_ivs = function () - if is_ivs_enabled then - luatexbase.remove_from_callback('hpack_filter', 'ltj.do_ivs') - luatexbase.remove_from_callback('pre_linebreak_filter', 'ltj.do_ivs') - is_ivs_enabled = false - end - end +--IVS +local function enable_ivs() + ltjb.package_warning('luatexja-otf', + 'luatexja.otf.enable_ivs() has now no effect.') end +local disable_ivs = enable_ivs luatexja.otf = { append_jglyph = append_jglyph, @@ -294,4 +237,5 @@ luatexja.otf = { cid = cid, } + -- EOF diff --git a/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty b/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty index ce109e42706..91544ddc6f6 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty @@ -79,6 +79,7 @@ \RequirePackage{pdftexcmds} [2011/11/29] % v0.20 \RequirePackage{xkeyval} [2012/10/14] % v2.6b \RequirePackage{atbegshi} + \AtBeginShipoutInit \IfFileExists{everyhook.sty}{\RequirePackage{everyhook}\ltj@everyhook@availtrue}{} \else %<*!LaTeX> \input luatexbase.sty diff --git a/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua b/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua index 28c1a98d913..d6d83e61437 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua @@ -177,18 +177,23 @@ end -- EXT: print parameters that don't need arguments do + local tex_getattr = tex.getattribute + local function getattr(a) + local r = tex.getattribute(a) + return (r==-0x7FFFFFFF) and 0 or r + end luatexja.unary_pars = { yalbaselineshift = function(t) - return print_scaled(tex.getattribute('ltj@yablshift'))..'pt' + return print_scaled(getattr('ltj@yablshift'))..'pt' end, yjabaselineshift = function(t) - return print_scaled(tex.getattribute('ltj@ykblshift'))..'pt' + return print_scaled(getattr('ltj@ykblshift'))..'pt' end, talbaselineshift = function(t) - return print_scaled(tex.getattribute('ltj@tablshift'))..'pt' + return print_scaled(getattr('ltj@tablshift'))..'pt' end, tjabaselineshift = function(t) - return print_scaled(tex.getattribute('ltj@tkblshift'))..'pt' + return print_scaled(getattr('ltj@tkblshift'))..'pt' end, kanjiskip = function(t) return print_spec(ltjs.get_stack_skip(stack_table_index.KSK, t)) @@ -200,10 +205,10 @@ do return ltjs.get_stack_table(stack_table_index.JWP, 0, t) end, autospacing = function(t) - return tex.getattribute('ltj@autospc') + return getattr('ltj@autospc') end, autoxspacing = function(t) - return tex.getattribute('ltj@autoxspc') + return getattr('ltj@autoxspc') end, differentjfm = function(t) local f, r = luatexja.jfmglue.diffmet_rule, '???' @@ -409,8 +414,10 @@ local function debug_show_node_X(p,print_fn, limit) .. tostring(p.font) .. ' (' .. print_scaled(p.height) .. '+' .. print_scaled(p.depth) .. ')x' .. print_scaled(p.width) - .. ' off: (' .. print_scaled(p.xoffset) - .. ',' .. print_scaled(p.yoffset) .. ')' + if p.xoffset~=0 or p.yoffset~=0 then + s = s .. ' off: (' .. print_scaled(p.xoffset) + .. ',' .. print_scaled(p.yoffset) .. ')' + end print_fn(s) elseif pt=='hlist' or pt=='vlist' or pt=='unset'or pt=='ins' then if pt=='ins' then diff --git a/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty b/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty index 4dc2125e6df..3c378360e2e 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty @@ -37,7 +37,7 @@ \ProvidesPackage{luatexja}[2017/05/05 Japanese Typesetting with Lua(La)TeX] \fi %</LaTeX> %%%% VERSION -\def\LuaTeXjaversion{20170505.0} +\def\LuaTeXjaversion{20170730.0} \directlua{require('ltj-unicode-ccfix.lua')}% catcode of ideographs diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty index 2e0be5dc847..86bb36babee 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{lltjcore}[2017/05/05 Patch to LaTeX2e Kernel for LuaTeX-ja] +\ProvidesPackage{lltjcore}[2017/06/18 Patch to LaTeX2e Kernel for LuaTeX-ja] \def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page @@ -304,4 +304,36 @@ \fi \fi} +%%%%%% \@tabclassz +\def\ltj@sharp{\ltjfakeboxbdd\ignorespaces\@sharp\unskip\ltjfakeboxbdd} +\def\@tabclassz{% + \ifcase\@lastchclass + \@acolampacol + \or + \@ampacol + \or + \or + \or + \@addamp + \or + \@acolampacol + \or + \@firstampfalse\@acol + \fi + \edef\@preamble{% + \@preamble{% + \ifcase\@chnum + \hfil\ltj@sharp\hfil + \or + \hskip1sp\ltj@sharp\hfil + \or + \hfil\hskip1sp\ltj@sharp + \fi}}} +\patchcmd\@classv{% + \ignorespaces\@sharp +}{% + \everypar\expandafter{\the\everypar\ltjfakeboxbdd}\ignorespaces\@sharp\unskip +}{}{} + + \endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-array.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-array.sty new file mode 100644 index 00000000000..f3361904845 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-array.sty @@ -0,0 +1,16 @@ +% +% lltjp-array.sty +% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{lltjp-array}[2017/06/18 Patch to preview for LuaTeX-ja] + +\RequirePackage{etoolbox,array,luatexja} + +\patchcmd\insert@column{% + \ignorespaces\@sharp\unskip +}{% + \ltj@sharp +}{}{} + +\endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-preview.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-preview.sty new file mode 100644 index 00000000000..f8a90efa05f --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-preview.sty @@ -0,0 +1,16 @@ +% +% lltjp-preview.sty +% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{lltjp-preview}[2017/05/08 Patch to preview for LuaTeX-ja] + +\RequirePackage{etoolbox,preview,luatexja} + +\patchcmd\pr@endbox{% + \pr@ship@end +}{% + \setbox\pr@box\hbox{\yoko\box\pr@box}\pr@ship@end +}{}{} + +\endinput |