diff options
author | Karl Berry <karl@freefriends.org> | 2013-04-25 22:40:35 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-04-25 22:40:35 +0000 |
commit | 41d1ed9683f09ac280acceeadd3e5e00689c7873 (patch) | |
tree | 9ce0e24f85c6c26d81fc08ecc2003d63e167c1fc /Master | |
parent | 050e4ce3134f192d97181d2bb1d8fb3cacce2a0b (diff) |
xetexko (25apr13)
git-svn-id: svn://tug.org/texlive/trunk@30110 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/xetex/xetexko/README | 140 | ||||
-rw-r--r-- | Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf | bin | 0 -> 289198 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex | 551 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xetex/xetexko/hanja_hangul.tab | 20902 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xetex/xetexko/hanjacom_hangul.tab | 302 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xetex/xetexko/hanjaexa_hangul.tab | 6582 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xetex/xetexko/xetexko-font.sty | 424 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xetex/xetexko/xetexko-hanging.sty | 124 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xetex/xetexko/xetexko-josa.sty | 211 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xetex/xetexko/xetexko-space.sty | 1633 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xetex/xetexko/xetexko-vertical.sty | 109 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xetex/xetexko/xetexko.sty | 121 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 2 | ||||
-rwxr-xr-x | Master/tlpkg/libexec/ctan2tds | 4 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-xetex.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/xetexko.tlpsrc | 0 |
16 files changed, 31105 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/xetex/xetexko/README b/Master/texmf-dist/doc/xetex/xetexko/README new file mode 100644 index 00000000000..3212035f6a8 --- /dev/null +++ b/Master/texmf-dist/doc/xetex/xetexko/README @@ -0,0 +1,140 @@ +========================================= +XeTeX-ko Package version 2.0 (2013/03/27) +========================================= + +XeTeX-ko is a macro package for Xe(La)TeX which supports typesetting +Korean documents including Old Hangul texts. Though XeTeX itself +already has basic facility to typeset Korean texts, it is necessary +to provide some enhanced features for quality products adapted to +Korean culture. Therefore, this package has enabled, to say a few +among others, typesetting different character classes by different +fonts, insertion of small spaces between Hangul characters, and +raising or lowering latin punctuations after Hangul or Hanja. + +This package requires cjk-ko package for Hangul counters and captions. + + +License +======= +This package is licensed under LPPL (LaTeX Project Public License). + +See each file for details. + + +Author +====== +Please report any errors or suggestions to Dohyun Kim <nomos at ktug org>. + + +Files +===== + +TeXinputs +--------- + xetexko.sty -> tex/xelatex/xetexko/ + xetexko-font.sty -> tex/xelatex/xetexko/ + xetexko-hanging.sty -> tex/xelatex/xetexko/ + xetexko-josa.sty -> tex/xelatex/xetexko/ + xetexko-space.sty -> tex/xelatex/xetexko/ + xetexko-vertical.sty -> tex/xelatex/xetexko/ + hanja_hangul.tab -> tex/xelatex/xetexko/ + hanjacom_hangul.tab -> tex/xelatex/xetexko/ + hanjaexa_hangul.tab -> tex/xelatex/xetexko/ + +Documents +--------- + xetexko-doc.pdf -> doc/xelatex/xetexko/ + xetexko-doc.tex -> doc/xelatex/xetexko/ + README (this file) -> doc/xelatex/xetexko/ + + +Loading +======= +If you are a LaTeX user, declaring + \usepackage{xetexko} +or + \usepackage{kotex} +is sufficient to load the package, which will load fontspec package +as well. Notice that kotex.sty is a file provided by cjk-ko package. + +Under plain TeX: \input xetexko.sty + + +Package Options +=============== + [hangul] +Load Hangul captions. Besides, this option also adjusts interword +and interline spacing. + + [hanja] +Load Hanja captions. Also adjusts spacing as [hangul] option does. + + [unfonts] +Load font setting predefined for Un TrueType fonts available at +http://kldp.net/projects/unfonts/. + + +Hangul Font Commands +==================== + \setmainhangulfont + \setsanshangulfont + \setmonohangulfont +Same as \setmainfont et. al. provided by fontspec package, except that +these affect only Hangul characters and related symbols. + + \setmainhanjafont + \setsanshanjafont + \setmonohanjafont +Same as \setmainfont et. al., except that these affect only Hanja +characters. + +In like manner, these commands are available as well: + \hangulfontspec + \hanjafontspec + \newhangulfontfamily + \newhanjafontfamily + \addhangulfontfeature + \addhanjafontfeature + + +Hangul Font Options +=================== + [hu=<dimen>] +Set spacing between Hangul and Latin characters. + + [interhchar=<dimen>] +Set spacing between Hangul characters. + + [lowerperiod=<dimen>] +Lower latin fullstop after Hangul character. + + [quoteraise=<dimen>] +Raise latin quotation marks. + + [postmathskip=<dimen>] +Set spacing after inline math and before Hangul. + +See xetexko-doc.pdf for other options. + + +Other User Commands +=================== + \dotemph{...} +Emphasise Hangul or Hanja by putting dot above. + + \begin{vertical}{<dimen>} + \end{vertical} +This environment makes a vbox vertically typeset. <dimen> is an +argument required to indicate the box height. For vertical typesetting +of entire document, use the command \verticaltypesetting instead. + + \은 \는 \이 \가 \을 \를 \와 \과 \로 \으로 \라 \이라 +Commands for automatic Josa selection. Unlinke those of cjk-ko +package, these commands works correctly even after Hangul or Hanja. + + \jaso \gana \ojaso \ogana \pjaso \pgana \onum \pnum \oeng + \peng \hnum \Hnum \hroman \hRoman \hNum \hanjanum +Hangul counters provided by cjk-ko package. + + +--END of README-- diff --git a/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf b/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf Binary files differnew file mode 100644 index 00000000000..055170a757b --- /dev/null +++ b/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf diff --git a/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex b/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex new file mode 100644 index 00000000000..80bb8b20de1 --- /dev/null +++ b/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex @@ -0,0 +1,551 @@ +%% !tex program = xelatex +%% written by Dohyun Kim <nomos at ktug org> +%% public domain +%% +%% $Id: xetexko-doc.tex,v 1.53 2012/11/12 14:56:11 nomos Exp $ + +\documentclass[a4paper]{article} +\usepackage{typearea} +\usepackage[hangul]{xetexko} +%\usepackage{xetexko-hanging} +\setmainhangulfont[Ligatures=TeX,quoteraise=.1em]{NanumMyeongjo} +\setmainhanjafont[Path,BoldFont=*Bold]{UnBatang} +\setsanshangulfont[Ligatures=TeX]{NanumGothic} +\usepackage{metalogo} +\usepackage{xcolor} +\usepackage{ulem} +\usepackage[bookmarksnumbered]{hyperref} + +\def\dotemphraise{0.2em} +\edef\verbatim{\unexpanded\expandafter{\verbatim + \linespread{1.1}\selectfont\color{blue!50!black}}} +\def\logoko{\textsf{k}\kern-.1em\textit{o}} +\def\xetexko{\XeTeX\kern-.1ex -\logoko} +\def\kotex{\logoko\kern-.1ex .\kern-.1667em \TeX} +\pdfstringdefDisableCommands{\def\XeTeX{XeTeX}\def\xetexko{XeTeX-ko}} +\renewcommand*\descriptionlabel[1]{\hspace\labelsep\ttfamily\bfseries + \color{red!70!black}#1} +\newenvironment{plaintex} + {\par\medskip\leavevmode\hbox\bgroup + \color{white!80!black}\vrule width2pt\color{black}\kern1em + \vbox\bgroup\hsize=\dimexpr\textwidth-12pt\relax + \small + }{\egroup\egroup\par\medskip} +\newenvironment{example} + {\leavevmode\hbox\bgroup + \color{white!80!black}\vrule width2pt\color{black}\kern1em + \vbox\bgroup\hsize=\dimexpr\textwidth-24pt\relax + }{\egroup\kern1em\color{white!80!black}\vrule width2pt\color{black}\egroup} +\def\cs#1{\texttt{\color{red!70!black}\textbackslash #1}} +\def\hemph#1{\textsf{\bfseries #1}} +\parindent0pt + +\begin{document} +\title{\xetexko\ 간단 매뉴얼} +\author{김 도 현 <\url{nomos at ktug org}>} +\date{Version 2.0\quad\today} +\maketitle + +\begin{quote}\small + For summary introduction in English, + please see \verb+README+ file in this package. + + 주요 변경 사항 + \begin{itemize}\itemsep=0pt + \item 플레인텍에서 xetexko.tex이 아니라 xetexko.sty를 불러야 한다. + \item 은글꼴을 자동으로 부르지 않는다. \verb+[unfonts]+ 옵션이 없으면 + 사용자가 한글 글꼴을 지시해야 할 수 있다. + \item CJK 기호문자를 한글글꼴에서 찾아 식자하는 것이 기본값이 되었다. + 과거에는 한자글꼴에서 찾았다. + \item \verb|interpunctskern| 글꼴 옵션을 없애고 + \verb|quoteraise|를 추가했다. + \end{itemize} +\end{quote} + +\section{입력 인코딩} +입력은 원칙적으로 UTF-8으로 한다. +BOM (Byte Order Mark)은 있어도 좋고 없어도 좋다. +EUC-KR이나 CP949 입력도 지원하는데, 다음과 같은 선언이 있으면 된다. +\begin{verbatim} + \XeTeXinputencoding="korean" + \XeTeXdefaultencoding="korean" +\end{verbatim} + +\section{\XeTeX\ 자체 기능} +\XeTeX 은 자체적으로 유니코드를 지원하므로 \xetexko 를 사용하지 +않아도 한글을 찍을 수 있다. +\begin{verbatim} + \usepackage{fontspec} + \setmainfont[Ligatures=TeX]{UnBatang} + \setsansfont[Ligatures=TeX]{UnDotum} + \setmonofont{UnTaza} + \XeTeXlinebreaklocale="ko" + \XeTeXlinebreakpenalty=50 + \XeTeXlinebreakskip=0pt plus.1ex minus.05ex +\end{verbatim} +하지만 이렇게 사용하면 영문자와 한글이 같은 글꼴로 식자될 뿐만 아니라, +한글 사이 자간이나 영문자와 한글 사이 간격 따위의 \xetexko 가 제공하는 +기능을 포기해야 할 것이다. + +\section{\xetexko\ 부르기} +\xetexko\ 로드하기: \cs{usepackage\{xetexko\}}. + +이 명령은 fontspec 및 xunicode 패키지도 불러온다. +종전과 달리 \hemph{xltxtra 패키지를 함께 부르지 않음}을 주의할 것. + +\begin{plaintex} +플레인텍이라면 \verb|\input xetexko.sty| 명령으로 로드한다. +\end{plaintex} + +패키지 옵션: +\begin{description} +\item[ hangul ] `제1장' `표' `차례' 등 한글 표제를 이용한다. + 절 제목 이하에는 한글 표제가 붙지 않고 숫자로만 표현된다. + 한글이 주된 언어라고 인식하여 줄간격 조정도 수행한다. +\item[ hanja ] `第1章' `表' `目次' 등 한자 표제를 이용한다. + 절 제목 이하에는 한자 표제가 붙지 않고 숫자로만 표현된다. + 한글이 주된 언어라고 인식하여 줄간격 조정도 수행한다. +\item[ unfonts ] 은글꼴을 불러온다. \hemph{이 옵션이 없으면 + 사용자가 한글 글꼴을 지정해야} 할 수 있다.\footnote{\texttt{[unfonts]} + 옵션이 없더라도 \texttt{\string\setmainfont}로 지시한 글꼴에 + 한글 글리프가 들어있으면 따로 한글 글꼴을 지정한 필요가 없다.} +\end{description} + + +\section{글꼴 명령} +\begin{verbatim} + \setmainfont [Ligatures=TeX]{Linux Libertine} + \setmainhangulfont[Ligatures=TeX]{나눔명조} + \setmainhanjafont [Ligatures=TeX]{은 바탕} +\end{verbatim} +각 명령의 의미는 이름이 뜻하는 그대로이며, fontspec 매뉴얼에 따라 +설정한다. 한글폰트를 지정하지 않더라도 경고만 내보낼 뿐 +에러를 발생시키지 않는다. +한자폰트를 따로 지정하지 않으면 한글폰트가 적용된다. +마찬가지로 다음 명령들도 제공한다. +\begin{verbatim} + \setsansfont \setsanshangulfont \setsanshanjafont + \setmonofont \setmonohangulfont \setmonohanjafont +\end{verbatim} + +\begin{plaintex} +플레인텍이라면 다음처럼 한다. +\begin{verbatim} + \font\tenrm="[lmroman10-regular]:mapping=tex-text" at 10pt + \hangulfont="[UnBatang]:mapping=tex-text" at 10pt + \hanjafont ="Naver Dictionary:mapping=tex-text" at 10pt +\end{verbatim} +\end{plaintex} + +\begin{verbatim} + \hangulfontspec[Ligatures=TeX]{나눔고딕} + \hanjafontspec [Ligatures=TeX]{UnGungseo} +\end{verbatim} +임시로 사용할 한글·한자 글꼴을 지시한다. +\cs{adhochangulfont}와 \cs{adhochanjafont}는 이들 명령의 다른 이름이다. + +\begin{verbatim} + \newhangulfontfamily\secthangul[Ligatures=TeX]{나눔고딕} + \newhanjafontfamily \secthanja [Ligatures=TeX]{UnGungseo} + \newhangulfontface \secthangul[Ligatures=TeX]{나눔고딕Bold} + \newhanjafontface \secthanja [Ligatures=TeX]{UnDotumBold} +\end{verbatim} +fontspec 패키지의 \verb+\newfontfamily+ \verb+\newfontface+ 명령을 +수정한 것이다. + +\begin{verbatim} + \addhangulfontfeature{Color=FF0000,interhchar=-.1em} + \addhanjafontfeature {Color=00FF00} +\end{verbatim} +fontspec의 \verb+\addfontfeature+ 명령을 구현한 것이다. +\cs{addhangulfontfeatures}와\\ \cs{addhanjafontfeatures}는 +이들 명령의 다른 이름이다. + +\smallskip +참고로, 한자와 한글을 같은 글꼴로 식자하고 싶을 때 글꼴 설정을 +번거롭게 두 번 할 필요 없이 한글 글꼴만 설정한 뒤 간단히 + \cs{hanjabyhangulfont}를 선언하면 된다. + +\section{기호 글꼴 명령} +라틴 문자나 CJK 기호를 어떤 폰트로 식자할 것인가를 사용자가 지정할 수 있다. +\begin{verbatim} + \xetexkofontregime[quotes=latin, puncts=prevfont]{hangul} +\end{verbatim} +모든 라틴 문자와 CJK 기호들을 원칙적으로 한글 폰트로 식자하되, +따옴표는 라틴 폰트로 찍고 마침표 따위는 직전 문자의 폰트를 따라간다는 의미이다. +옵션은 생략할 수 있다. + +명령의 인자에는 latin, hangul, hanja, prevfont 중 하나가 올 수 있어서 +각각 라틴 폰트, 한글 폰트, 한자 폰트로 식자하라는 뜻이며 +마지막의 prevfont는 직전 문자의 폰트를 그대로 이어받도록 지시한다. + +옵션 키의 종류와 의미는 다음과 같으며 각 키 값은 인자와 마찬가지로 +latin, hangul, hanja, prevfont 가운데 하나를 허용한다. +\begin{description}\itemsep0pt +\item[alphs] 라틴 알파벳 및 아래에 해당하지 않는 모든 라틴 문자 +\item[nums] 라틴 숫자(수식 제외) +\item[parens] 라틴 괄호, 중괄호, 대괄호, 꺽쇠 +\item[quotes] accent grave, apostrophy 및 이들의 리거쳐 +\item[colons] 라틴 콜론, 세미콜론, endash, emdash +\item[hyphens] 하이픈, 하이픈으로 이루어지는 리거쳐, 슬래시 +\item[puncts] 마침표, 물음표, 느낌표, 쉼표 +\item[cjksymbols] CJK 구두점, 괄호 및 상징기호 +\end{description} + +기본값은 다음 명령을 준 것과 동일하다. \hemph{CJK 기호가 한글폰트로 식자되게 +기본값이 변경되었음}에 유의할 것. +\begin{verbatim} + \xetexkofontregime [ + puncts=prevfont, hyphens=prevfont, colons=prevfont, cjksymbols=hangul + ]{latin} +\end{verbatim} + +\begin{plaintex} +플레인텍에서는 다음 명령을 사용한다. \LaTeX에서도 쓸 수 있다. +\begin{verbatim} + \latinalphs \hangulalphs \hanjaalphs \prevfontalphs + \latinnums \hangulnums \hanjanums \prevfontnums + \latinparens \hangulparens \hanjaparens \prevfontparens + \latinquotes \hangulquotes \hanjaquotes \prevfontquotes + \latinhyphens \hangulhyphens \hanjahyphens \prevfonthyphens + \latincolons \hangulcolons \hanjacolons \prevfontcolons + \latinpuncts \hangulpuncts \hanjapuncts \prevfontpuncts + \latincjksymbols \hangulcjksymbols \hanjacjksymbols \prevfontcjksymbols +\end{verbatim} +다음 명령은 이상의 모든 라틴 문자를 식자할 폰트를 지시한다. +\begin{verbatim} + \latinmarks \hangulmarks \hanjamarks \prevfontmarks +\end{verbatim} +\end{plaintex} + +\section{간격 조정} +한글 관련 미세 간격 조정은 다음과 같이 폰트 옵션으로 지시한다. +\begin{verbatim} + \setsanshangulfont[interhchar=-.04em]{나눔고딕} +\end{verbatim} +이 때 나눔고딕 글꼴에만 한글 마이너스 자간이 작동한다. +\dotemph{고정폭 글꼴을 제외한} 한글·한자 글꼴 +명령에 이런 옵션을 쓸 수 있다. +허용되는 옵션은 다음과 같다. 각 항목의 길이값은 기본값을 뜻한다. +\begin{description}\itemsep0pt +\item[hu] +영문자와 한글 사이 간격. 영문 괄호와 한글 사이 간격은 그 두 배이다. 0.06em. +\item[interhchar] +한글 자간.\footnote{한자 자간 옵션은 제공하지 않는다. + 혹시 한자 자간을 조절하고 싶다면 + \texttt{\string\XKinterhanjabreak}을 재정의하라. + 참고로 한글 자간을 조절하는 저수준 명령은 + \texttt{\string\XKinterhangulbreak} 이다.} +0pt. +\item[lowerperiod] +CJK 문자 직후의 마침표를 아래로 끌어내리는 정도. 0pt. +\item[lowerquestion] +CJK 문자 직후의 물음표를 아래로 끌어내리는 정도. 0pt. +\item[lowerexclamation] +CJK 문자 직후의 느낌표를 아래로 끌어내리는 정도. 0pt. +\item[lowercomma] +CJK 문자 직후의 쉼표를 아래로 끌어내리는 정도. 0pt. +\item[preperiodkern] +CJK 문자 직후의 마침표 앞에 들어가는 간격. 0pt. +\item[postperiodkern] +CJK 문자 직후의 마침표 뒤에 들어가는 간격. 0pt. +\item[prequestionkern] +CJK 문자 직후의 물음표 앞에 들어가는 간격. 0pt. +\item[postquestionkern] +CJK 문자 직후의 물음표 뒤에 들어가는 간격. 0pt. +\item[preexclamationkern] +CJK 문자 직후의 느낌표 앞에 들어가는 간격. 0pt. +\item[postexclamationkern] +CJK 문자 직후의 느낌표 뒤에 들어가는 간격. 0pt. +\item[precommakern] +CJK 문자 직후의 쉼표 앞에 들어가는 간격. 0pt. +\item[postcommakern] +CJK 문자 직후의 쉼표 뒤에 들어가는 간격. 0pt. +\item[quoteraise] +영문 인용부호{\small(grave accent나 apostrophe로 입력하는 것을 말함)}를 +위로 끌어올리는 정도. 0pt. +\item[quotewidth] +영문 인용부호의 폭. 기본값은 natural width. +\item[postmathskip] +수식과 CJK 문자 사이의 간격. 기본값은 위 hu 값의 두 배. +\end{description} + +\begin{plaintex} +플레인텍에서는 다음과 같은 방법으로 제어할 수 있다. 기본값은 \LaTeX에서와 같다. +\begin{verbatim} + \def\xetexkohu{0.06em } + \def\xetexkointerhchar{-0.04em } + \def\xetexkolowerperiod{0.15ex } + \def\xetexkolowerquestion{0.15ex } + \def\xetexkolowerexclamation{0.15ex } + \def\xetexkolowercomma{0.15ex } + \def\xetexkopreperiodkern {-0.1em } + \def\xetexkopostperiodkern{} + \def\xetexkoprequestionkern {0.2em } + \def\xetexkopostquestionkern{0.2em } + \def\xetexkopreexclamationkern {0.1em } + \def\xetexkopostexclamationkern{0.1em } + \def\xetexkoprecommakern {0.1em } + \def\xetexkopostcommakern{0.1em } + \def\xetexkoquoteraise{0.1em } + \def\xetexkoquotewidth{0.33em } + \def\xetexkopostmathskip{0.2em } +\end{verbatim} +\end{plaintex} + +\section{그밖의 명령들} +\begin{description} + \item[\cs{disablekoreanfonts}] +한글폰트를 따로 설정하지 않고 영문 폰트를 따라간다. +이 때 \verb|\setmainfont| 따위가 한글과 한자에도 적용된다. + + \item[\cs{disableautojosa}] +혹시 있을지 모를 예기치 못한 기능간 충돌에 대비하여 자동조사 기능을 +끄는 명령을 제공하고 있다. + + \item[\cs{disablecjksymbolspacing}] +CJK 구두점이나 괄호의 폭을 0.5em으로 강제설정하는 것을 방지한다. +\xetexko는 낡은 고정폭 한글 폰트들을 고려하여 이 기능을 구현하였으나 +현대적인 한글 폰트는 이러한 과잉친절이 오히려 성가실 경우가 있다. + + \item[\cs{disablehangulspacing}] +한글조판에 관련된 모든 미세간격을 영(zero)으로 돌린다. 한글 자간도, +영문자와 한글 사이 간격도, 구두점 위치 조정도, 구두점 사이의 간격도 +모두 작동하지 않게 된다. 그러나 CJK 글자 사이의 줄바꿈 허용만은 여전히 +동작한다. + + \item[\cs{disablehangulspacingandlinebreak}] +위 명령과 마찬가지로 모든 미세간격을 금지할 뿐만 아니라 CJK 글자 사이의 +줄바꿈까지도 먹지 않게 한다. +일부 고급 오픈타입 기능을 사용하기 위해서 이 명령이 필요할 때가 있다. +이를테면, interhchar 옵션에 의해 자간을 주면 한글 리거쳐가 +동작하지 않게 되거니와 이 명령을 선언하면 문제가 +해결된다.\footnote{만약 사용자가 + {\ttfamily\string\XeTeXlinebreaklocale}도 선언했다면 + {\ttfamily\string\XeTeXlinebreaklocale""} 명령도 요구된다. + 이 원시명령은 그룹 내에서 쓰더라도 항상 전역적인 효과를 가짐을 유의하라} +\end{description} + +\section{옛한글} +옛한글을 사용하기 위해선 \verb|Script=Hangul| 옵션을 주는 것으로 족하다. +호환성을 위해서 \verb|YetHangul| 옵션도 제공한다. +옛한글 식자는 고급 오픈타입 기능을 이용하므로 +폰트가 이런 기능을 제공해야만 가능한 일이다.\footnote{% +\today\ 현재, 이런 기능을 제공하는 폰트로는 마이크로소프트 오피스 플러스팩이 +제공하는 옛한글 글꼴과 윈도즈~8에 번들된 맑은고딕이 있으며 +공개폰트로는 은바탕과 KTUG판 함초롬 글꼴이 있다.} +\begin{verbatim} + \setmainhangulfont[ Script=Hangul ]{Malgun Gothic} +\end{verbatim} +\begin{plaintex} +플레인텍이라면, +\begin{verbatim} + \hangulfont="Malgun Gothic:script=hang" at 10pt +\end{verbatim} +\end{plaintex} + +\begin{figure} + \begin{example} + \hangulfontspec[YetHangul]{HCR Dotum LVT} + \hanjabyhangulfont\parindent1em +뎨 가ᄂᆞᆫ 뎌 각시 본 듯도 ᄒᆞᆫ뎌이고. +天텬上상白ᄇᆡᆨ玉옥京경을 엇디ᄒᆞ야 離니別별ᄒᆞ고 +ᄒᆡ 다 져믄 날의 눌을 보라 가시ᄂᆞᆫ고 + +어와 네여이고 내 ᄉᆞ셜 드러보오. +내 얼굴 이 거동이 님 괴얌즉 ᄒᆞᆫ가마ᄂᆞᆫ +엇딘디 날 보시고 네로다 녀기실ᄉᆡ +나도 님을 미더 군 ᄠᅥ디 전혀 업서 +이ᄅᆡ야 교ᄐᆡ야 어ᄌᆞ러이 구돗ᄯᅥᆫ디 +반기시ᄂᆞᆫ ᄂᆞᆺ비치 녜와 엇디 다ᄅᆞ신고. +누어 ᄉᆡᆼ각ᄒᆞ고 니러 안자 혜여ᄒᆞ니 +내 몸의 지은 죄 뫼ᄀᆞ티 ᄡᅡ혀시니 +하ᄂᆞᆯ히라 원망ᄒᆞ고 사ᄅᆞᆷ이라 허믈ᄒᆞ랴 +셜워 플텨 혜니 造조物믈의 타시로다. + \end{example} + \caption{옛한글 조판 보기}\label{fig:yethangul} +\end{figure} + +\section{세로쓰기} +세로쓰기를 위한 글꼴 지정은 다음과 같다. +역시 고급 오픈타입 기능을 이용하는 것이므로 +폰트가 이를 지원해야 한다. +\begin{verbatim} + \setmainhangulfont[ Vertical=RotatedGlyphs ]{Adobe 명조 Std} +\end{verbatim} +문서 전체를 세로쓰기할 때 \cs{verticaltypesetting}을 선언하면 +면주는 그대로 두고 본문만 세로쓰기한다.\footnote{당연히 면주의 글꼴은 +\texttt{Vertical} 옵션이 없는 것이라야 할 것이다. +면주 글꼴을 따로 지정하는 것은 사용자의 몫이다. } +문서의 일부를 세로쓰기 하려면 vertical 환경을 이용한다. +vertical 환경의 인자는 세로쓰기 박스의 세로 길이이다. +보통 그 뒤에 세로쓰기에 사용할 글꼴 명령이 온다. +\begin{verbatim} + \begin{vertical}{12em} + \hangulfontspec[ Vertical=RotatedGlyphs ]{Adobe 명조 Std} + 세로쓰기로 식자할 부분 + \end{vertical} +\end{verbatim} +만일 세로쓰기의 EM 박스 크기가 가로쓰기와 다르다면 +\cs{verticalem=1.05em}과 같은 선언을 미리 해두는 것이 좋다. + +혹시 세로로 식자되지 않는 라틴문자 부분이 있다면 +\cs{vertlatin} 명령으로 감싸야 세로쓰기에 어울리는 +결과를 얻을 수 있다. 다만 이때 인자는 박스로 처리되므로 +그 안에서 줄바꿈이 일어나지 않는다. + +\begin{figure} +\begin{example} +\hfil\begin{vertical}{16em} + \hangulfontspec[Vertical=RotatedGlyphs]{Adobe Myungjo Std} + \hangulmarks \hanjabyhangulfont \parindent-1em\leftskip1em +\noindent 님의 침묵 {\small(The Silent Beloved)} +\smallbreak +\hfil\hfil 한 용 운\hfil +\bigbreak +님은 갓슴니다 아아 사랑하는나의님은 갓슴니다\par +푸른산빗을깨치고 단풍나무숩을향하야난 적은길을 거러서 참어떨치고 갓슴니다\par +黃金의꽃가티 굿고빗나든 옛盟誓는 차듸찬띠끌이되야서 한숨의 微風에 나러갓슴니다\par +날카로은 첫〈키쓰〉의追憶은 나의運命의指針을 돌너노코 뒷거름처서 사러젓슴니다\par +\hellipsis\par +아아 님은갓지마는 나는 님을보내지 아니하얏슴니다\par +제곡조를못이기는 사랑의노래는 님의沈默을 휩싸고돔니다\par +\end{vertical}\hfil +\end{example} +\caption{세로쓰기 보기}\label{fig:vertical} +\end{figure} + +\medskip +\begin{plaintex} +플레인텍이라면, +\begin{verbatim} + \vertical{16em}\hangulfont="Adobe 명조 Std:vertical" + 세로쓰기로 식자할 부분 + \endvertical +\end{verbatim} +\end{plaintex} + + +\section{일본어·중국어·고문헌} +띄어쓰기가 없는 옛문헌이나 일본어 단락 따위를 삽입할 때 +japanese 혹은 chinese 환경을 선언하는 것이 좋다. +들여쓰기\footnote {들여쓰기 기본값은 japanese는 1em 이고 chinese는 2em 이다.} +및 자간 조절이 자동으로 이루어지며 +사용자가 입력한 불필요한 공백도 없애준다. +Schinese 환경은 chinese의 다른 이름이다. +Tchinese도 제공하는데 중국어 번체 글꼴을 사용한다면 이 환경을 이용하라. + +\begin{figure} + \begin{example} + \setmainhanjafont{STFangsong}\chinese +子曰:「學而時習之,不亦說乎?有朋自遠方來,不亦樂乎?人不知而不慍,不亦君子乎?」 + +有子曰:「其為人也孝弟,而好犯上者,鮮矣!不好犯上,而好作亂者,未之有也!君子務本,本立而道生;孝弟也者,其為仁之本歟?」 + +子曰:「巧言令色,鮮矣仁!」 + +曾子曰:「吾日三省吾身:為人謀,而不忠乎?與朋友交,而不信乎?傳,不習乎?」 + \end{example} +\caption{고문헌 조판 보기}\label{fig:ancientdoc} +\end{figure} + +\cs{inhibitglue} 명령은 일본어 등 환경에서 가끔 유용한데, +해당 지점에 자동 삽입되는 공백을 영(zero)으로 +만들어준다. + +\section{매달린 구두점} +마침표, 쉼표, 인용부호를 판면 바깥에 식자하여 행 끝에 매달리게 만든다. +\begin{verbatim} + \usepackage{xetexko-hanging} + \hangingpunctuation +\end{verbatim} +\cs{hangingpunctuation} 명령은 글꼴 설정이 완료된 이후에 내려야 +원하는 결과를 얻을 수 있다. + +%\begin{figure} +%\Large +%\hangingpunctuation +%\setbox0\hbox{줄 끝에 매달린 구두점} +%\vbox{\hfil\hbox{\vrule\vbox{\hsize\wd0 +% 줄 끝에 매달린 구두점. +% 줄 끝에 매달린 구두점, +% ``줄 끝에 매달린 구두점'' +% `줄 끝에 매달린 구두점' +% “줄 끝에 매달린 구두점” +% ‘줄 끝에 매달린 구두점’ +% 줄 끝에 매달린 구두점、 +% 줄 끝에 매달린 구두점。 +% 줄 끝에 매달린 구두점 +% }\vrule}\hfil} +%\caption{매달린 구두점 보기}\label{fig:hanging} +%\end{figure} + +\section{수식 한글} +수식 모드에서도 한글을 {\small(hbox로 감싸지 않고)} 직접 입력할 수 있다. +\begin{quote} + \verb|$가^{나^다}$|\quad$\Rightarrow\quad가^{나^다}$ +\end{quote} +수식 한글은 따로 설정하지 않으면 문서의 기본 글꼴을 따라가지만 +굳이 설정하려면 다음과 같이 한다. 이 명령은 플레인텍에서도 쓸 수 있다. +\begin{verbatim} + \setmathhangulfont[ExternalLocation]{UnBatang} +\end{verbatim} +현재 한글만 쓸 수 있게 설정되어 있다. +한자도 수식에 직접 입력하려면 사용자는 +\begin{verbatim} + \setmathhangulblock{4E00}{9FC3} +\end{verbatim} +명령으로 유니코드 블럭을 추가 지정해야 한다. + +\section{자동조사} +자동조사는 \kotex 의 경우와 기본적으로 동일하게 동작한다. +게다가 문장 중에서도 동작하고 +플레인텍에서까지 사용할 수 있다. +그럼에도 불구하고 사용자가 임의로 제어할 필요가 생긴다면 +\cs{jong} \cs{jung} \cs{rieul} 중 하나를 +미리 선언해 둘 수 있다. 이를테면, +\begin{verbatim} + \def\mypage{페이지\jung} + \def\mypage{쪽\jong} + \def\mystar{별\rieul} +\end{verbatim} + +\section{드러냄표} +\dotemph{드러냄표} 강조도 \kotex 과 대동소이하다. +기본은 글자 위에 점을 찍는 형태이나 다음 명령을 이용해 개인적으로 선호하는 +기호를 드러냄표로 쓸 수 있다. +\begin{verbatim} + \def\dotemphraise{0.4em } + \def\dotemphchar{\bfseries ^^^^02d9} +\end{verbatim} +전자는 드러냄표를 피강조 글자 위로 끌어올리는 길이를, +후자는 드러냄표 기호 자체를 정의한다. +\verb|^^^^02d9|는 유니코드 코드포인트를 뜻하는 16진수이고 +숫자 대신 직접 문자를 입력해도 된다. +플레인텍에서도 드러냄표 강조를 사용할 수 있다. + +\section{고아글자 문제} +어느 정도는 고아글자가 생기지 않게 만들어 두었으나, +\XeTeX 에서는 고아글자를 자동으로 완전히 회피하기는 어렵다. +필요하다면 사용자가 적당한 곳에 \verb|\nobreak| 명령을 삽입해야 한다. + +\section{한국어 번호} +항목 번호를 한국어 기호로 붙일 수 있다. \kotex과 마찬가지로 +\verb|\jaso| \verb|\gana| \verb|\ojaso| \verb|\ogana| \verb|\pjaso| +\verb|\pgana| \verb|\onum| \verb|\pnum| \verb|\oeng| \verb|\peng| +\verb|\hnum| \verb|\Hnum| \verb|\hroman| \verb|\hRoman| \verb|\hNum| +\verb|\hanjanum| +따위를 사용한다. + +\section{밑줄긋기} +\LaTeX에서는 \uline{ulem 패키지}를 로드하는 것만으로 자동 지원된다. +\begin{plaintex} +플레인텍에서는 패키지 로드 후 사용자가 \verb|\xetexkoulemsupport| +명령을 내려주어야 한다. +\end{plaintex} + +\section{hyperref} +hyperref 패키지는 \verb+[unicode]+ 옵션 없이 쓴다. +\hfill □ + +\end{document} diff --git a/Master/texmf-dist/tex/xetex/xetexko/hanja_hangul.tab b/Master/texmf-dist/tex/xetex/xetexko/hanja_hangul.tab new file mode 100644 index 00000000000..157b71bdaed --- /dev/null +++ b/Master/texmf-dist/tex/xetex/xetexko/hanja_hangul.tab @@ -0,0 +1,20902 @@ +51068 +51221 +44368 +52832 +49345 +54616 +47732 +47564 +51109 +49340 +49345 +54616 +44592 +48512 +50668 +47732 +44060 +52629 +52629 +51204 +52264 +48708 +49464 +49464 +44396 +48337 +50629 +52509 +46041 +49324 +49849 +51452 +44396 +47049 +51452 +50976 +47049 +50628 +48337 +49345 +44260 +44396 +44060 +50500 +51109 +51473 +44537 +44060 +48393 +44288 +44278 +52268 +51076 +52265 +51452 +54616 +54872 +45800 +50948 +51452 +51221 +47140 +44144 +48324 +48520 +51060 +50696 +45236 +50724 +44396 +44396 +53441 +50836 +51032 +54840 +51648 +50724 +49324 +54840 +54605 +50501 +51020 +48337 +54273 +44368 +54840 +44340 +49849 +49849 +51012 +51008 +50556 +47616 +44396 +44152 +50556 +49845 +54693 +44060 +44508 +54624 +54848 +49436 +46168 +49884 +44228 +45229 +44040 +44152 +46028 +47904 +50732 +47588 +46976 +52272 +50976 +49444 +50684 +48380 +49332 +45208 +44148 +49556 +50620 +51460 +51096 +44148 +52824 +44396 +44148 +45212 +47536 +51032 +44432 +50836 +47560 +50668 +51137 +49324 +49324 +51060 +52489 +50864 +50864 +50872 +50868 +54840 +44592 +50724 +51221 +49324 +49464 +44557 +44557 +50500 +49324 +50500 +51228 +50500 +44537 +46160 +47581 +54637 +45824 +44368 +54644 +50669 +49328 +54805 +47924 +46976 +54693 +44221 +51221 +50577 +54693 +44221 +50556 +52828 +48149 +50864 +49444 +45800 +47156 +53440 +48120 +51064 +51064 +51665 +46972 +47581 +50613 +49901 +51064 +47477 +51221 +52769 +48512 +48512 +44396 +54036 +51109 +44552 +44060 +48729 +51081 +51333 +48520 +49328 +47452 +50612 +52285 +51088 +49324 +53440 +51109 +48512 +49440 +54732 +53441 +54861 +46041 +51064 +52380 +54620 +55128 +51089 +45824 +50689 +51060 +52488 +51109 +49340 +49345 +51032 +47924 +47928 +51064 +44032 +52488 +50521 +44160 +51473 +48708 +50900 +50724 +44148 +44060 +50836 +48393 +52285 +51076 +50773 +48712 +51200 +48169 +51333 +44592 +54056 +50668 +51312 +46024 +47928 +50669 +49900 +54637 +51060 +44553 +50528 +50724 +44592 +48373 +48268 +55092 +44540 +48176 +52840 +48512 +45432 +51473 +50864 +54868 +54924 +44396 +49772 +51204 +49328 +50948 +51204 +44144 +50500 +54788 +49345 +52285 +47452 +52285 +49692 +49888 +50948 +51200 +53469 +54788 +45432 +48177 +44256 +45768 +53441 +49444 +48152 +54785 +47161 +51452 +49888 +51200 +49324 +54077 +49324 +44032 +48708 +51060 +49324 +51060 +51221 +51204 +44048 +47588 +45800 +51200 +54252 +44396 +54588 +49548 +52264 +50948 +51200 +51452 +51340 +50864 +50521 +48516 +51216 +54616 +54596 +53440 +49324 +50668 +51068 +48520 +51089 +44396 +45397 +53825 +45768 +54732 +44144 +50857 +50752 +52392 +49437 +52852 +54252 +54056 +54924 +44033 +47308 +54637 +54633 +50577 +48177 +48277 +47749 +44032 +51060 +48337 +44600 +54620 +44292 +44452 +51204 +51312 +44368 +52264 +51068 +49324 +54805 +49888 +53441 +44036 +51656 +54644 +45236 +51060 +52824 +44284 +44305 +50696 +51020 +49884 +48120 +51452 +54785 +50976 +50504 +47456 +47784 +51060 +47452 +46041 +52264 +52825 +49692 +44277 +51452 +51032 +50668 +52380 +54801 +44032 +51116 +47140 +44256 +50836 +51221 +52769 +44368 +53132 +51228 +45397 +45453 +51652 +47784 +54980 +44400 +51221 +51652 +51340 +52628 +52840 +47140 +44397 +46160 +51221 +49900 +53448 +48156 +45224 +54952 +48320 +53748 +50864 +44228 +52489 +50500 +44396 +49436 +44305 +44257 +50724 +51456 +51021 +48372 +47049 +51312 +49548 +47532 +50857 +55124 +44221 +54788 +49340 +48176 +49549 +48512 +55148 +47532 +47732 +48729 +48372 +50976 +49324 +54801 +49888 +49688 +50724 +51228 +44144 +51452 +51648 +50628 +47049 +47140 +47000 +47532 +44160 +49688 +48512 +54868 +44396 +54952 +48176 +52380 +54364 +49689 +48708 +48393 +50500 +50628 +48708 +51453 +55124 +48708 +52824 +52285 +51648 +48337 +44396 +54952 +49772 +47049 +50896 +47000 +52285 +51333 +44060 +44288 +48176 +51204 +49689 +49689 +47928 +46020 +45812 +44404 +49688 +54665 +48533 +45817 +54980 +51032 +44592 +52377 +44036 +44221 +52264 +55092 +52285 +52393 +48169 +52824 +44277 +44428 +51333 +44144 +52380 +50696 +50980 +53441 +50780 +46972 +49569 +47497 +54844 +46041 +49324 +48516 +47924 +44396 +45768 +52292 +44160 +52292 +50556 +52824 +49324 +44221 +52393 +50689 +52845 +51204 +50616 +45212 +46041 +51456 +44032 +44172 +50948 +50864 +48337 +50556 +51228 +50808 +54200 +50504 +54413 +53461 +50501 +50501 +54644 +52264 +49457 +44036 +51228 +51452 +49341 +51221 +48176 +50685 +54889 +50836 +45812 +52488 +50684 +50976 +44148 +49436 +52264 +52264 +48512 +54605 +52824 +52509 +47732 +51665 +51032 +49444 +49692 +49884 +45800 +52769 +51221 +50864 +53804 +53804 +48708 +52272 +47336 +52393 +50948 +48516 +49345 +44340 +49688 +52824 +49548 +54624 +48512 +50896 +50857 +47456 +45433 +50896 +44053 +47560 +48169 +51204 +45817 +54840 +44152 +54812 +49440 +44216 +44033 +52285 +52629 +49328 +48708 +54952 +50857 +50836 +53457 +49324 +50521 +48268 +48337 +44032 +53468 +51116 +45817 +44264 +48712 +51200 +45208 +52280 +47280 +52572 +50857 +51312 +52509 +48533 +51333 +50724 +51204 +44396 +52292 +52377 +49345 +49345 +44221 +51228 +49324 +54620 +51109 +44221 +50616 +51228 +49444 +47336 +48708 +54364 +44540 +47144 +47449 +47564 +52392 +49440 +53456 +50885 +46041 +49440 +49345 +49440 +44368 +44400 +53748 +51456 +48373 +55148 +47196 +52285 +44305 +50836 +44592 +46321 +51092 +50948 +44592 +48264 +54812 +52380 +52280 +53444 +50836 +52628 +49849 +48516 +54620 +44208 +50501 +52488 +52280 +46041 +47536 +48513 +44256 +49440 +49549 +54620 +44053 +48124 +50685 +44552 +44032 +52488 +48317 +54413 +52628 +50528 +49324 +51032 +51456 +45453 +52380 +50613 +45817 +44221 +54788 +53132 +44160 +52488 +45812 +44368 +49324 +51116 +52268 +48712 +50517 +50976 +45824 +51452 +51228 +46988 +51032 +51652 +44204 +47609 +47924 +45397 +44221 +51060 +49345 +47157 +47280 +47140 +44305 +54252 +50977 +54364 +52268 +51656 +49324 +50864 +54840 +52828 +52772 +47141 +46321 +50948 +47217 +51200 +52280 +49689 +49689 +55092 +47140 +46972 +52268 +45208 +45817 +50628 +47000 +45229 +51064 +50732 +50980 +51104 +50896 +54805 +52649 +51312 +55113 +49440 +44305 +53468 +44537 +53468 +47732 +53664 +51109 +50500 +53468 +50500 +52840 +53664 +49884 +50672 +50672 +49884 +49901 +45817 +52380 +46160 +48516 +47784 +49888 +46160 +48177 +44557 +47532 +54889 +51077 +47581 +45236 +51204 +50577 +50976 +54036 +44277 +50977 +54812 +54620 +46976 +44277 +52380 +49548 +55141 +48337 +44592 +44396 +51204 +51088 +49104 +50577 +44216 +49688 +44592 +50696 +44592 +52380 +44221 +47784 +50684 +45236 +50644 +47896 +44053 +50684 +52293 +44221 +52293 +51116 +44284 +44221 +47784 +51452 +47784 +44396 +54980 +47732 +47729 +50857 +50976 +49324 +44048 +44400 +45453 +51032 +48120 +49437 +44288 +47805 +52509 +52712 +50896 +47749 +44396 +47548 +48512 +49324 +47729 +48729 +46041 +53468 +44053 +54413 +48729 +54840 +52649 +44208 +54840 +54889 +50556 +45257 +48152 +48520 +48124 +46041 +49849 +47148 +54801 +52392 +51221 +49688 +47588 +46020 +52376 +44256 +51456 +49569 +51221 +50577 +52397 +51312 +45733 +46041 +44552 +44048 +51064 +51452 +51032 +47456 +52285 +47749 +51456 +52572 +49884 +53441 +44552 +47492 +45728 +51025 +55148 +46021 +44452 +48276 +48276 +48276 +48393 +44144 +52376 +44452 +54413 +47785 +51648 +48512 +54413 +48729 +54413 +44060 +54889 +44060 +44048 +46321 +48729 +44048 +55113 +44340 +52384 +50836 +52636 +44201 +45817 +54632 +54632 +52265 +46020 +51312 +46020 +51064 +51064 +52285 +48516 +51208 +50696 +44592 +44036 +52380 +52492 +52628 +47928 +44592 +45800 +54805 +54868 +50756 +44208 +47532 +50900 +50676 +47448 +52825 +44053 +52285 +48520 +52488 +52376 +51312 +49328 +48124 +47161 +51333 +54032 +48324 +44161 +44161 +54252 +51060 +49328 +48324 +51092 +44221 +44292 +44557 +46020 +52285 +44508 +44256 +53440 +51060 +51228 +49604 +44428 +52272 +51088 +44033 +44161 +54924 +51088 +44480 +44060 +53440 +51228 +52404 +44221 +46160 +46972 +52825 +50672 +51340 +49325 +44537 +46980 +51204 +52272 +52285 +44284 +44160 +52265 +47532 +52377 +48708 +48512 +51092 +44592 +52285 +49324 +44053 +50756 +48149 +44592 +52384 +44221 +49452 +53441 +44160 +51228 +48149 +50628 +44537 +44341 +51081 +51204 +53441 +45800 +50725 +44284 +48512 +51081 +44160 +54624 +45813 +44060 +52285 +52380 +49328 +51204 +47449 +47532 +48512 +49340 +54364 +44396 +52488 +44292 +52488 +44452 +54925 +52264 +53441 +47156 +44537 +48317 +50976 +54924 +52488 +44480 +44160 +44160 +45817 +54869 +51228 +44160 +51032 +44160 +51656 +52280 +52268 +47560 +47532 +52489 +50669 +50508 +44428 +54032 +44277 +44032 +47924 +47588 +50676 +44540 +44081 +54801 +51648 +46041 +51312 +45432 +44161 +44396 +52488 +51068 +51200 +47561 +47140 +44221 +47196 +47196 +44428 +44396 +50577 +50780 +54952 +47924 +44305 +54624 +47148 +54645 +54645 +44537 +44221 +44256 +48156 +48124 +52825 +46993 +50857 +50857 +47732 +44537 +54984 +44428 +44221 +47449 +48512 +47609 +47000 +45713 +44060 +47732 +46041 +50865 +50865 +44048 +47924 +50696 +54984 +50745 +49849 +45432 +47784 +47449 +54364 +49464 +51201 +44540 +44053 +52488 +44428 +50577 +50696 +44089 +48264 +44428 +46041 +44144 +45800 +54801 +47588 +54984 +54984 +47140 +50668 +52384 +50577 +44428 +54252 +51089 +44512 +44396 +47928 +44396 +47932 +44512 +47928 +45236 +44060 +44060 +54252 +52509 +49437 +55113 +54217 +44397 +46020 +54633 +54252 +50517 +54252 +48373 +44417 +45813 +44396 +44417 +48708 +54868 +48513 +45516 +49884 +48169 +44396 +51060 +51105 +51109 +44053 +51109 +44305 +54848 +44049 +44257 +48320 +44452 +54801 +51109 +44305 +48708 +54848 +50976 +44452 +44452 +54924 +45800 +44452 +47156 +47156 +49328 +46021 +44396 +44144 +54812 +54596 +44396 +51032 +50516 +50616 +54200 +51061 +44396 +49901 +49888 +52380 +51077 +49341 +51320 +49849 +50724 +55036 +48152 +49464 +49901 +47564 +54868 +54801 +47564 +48708 +51320 +53441 +54801 +45800 +47588 +45224 +45800 +51665 +48149 +49556 +48373 +44288 +48320 +44228 +51216 +51105 +47196 +50976 +47196 +49436 +44312 +50752 +49444 +51208 +51208 +50948 +50521 +44277 +52824 +47896 +51064 +50948 +49548 +51593 +44033 +45212 +52824 +44428 +49324 +55100 +44540 +44033 +50732 +51593 +50501 +44221 +49836 +49328 +50628 +52392 +50529 +52397 +47141 +52293 +50628 +47140 +50500 +50517 +50684 +49324 +51648 +52264 +47217 +50547 +44049 +50528 +51656 +52769 +48169 +51228 +47532 +49324 +54980 +52397 +49688 +51312 +48708 +50896 +52769 +50896 +49345 +50684 +47141 +44432 +54616 +51204 +51452 +44396 +44540 +50724 +44452 +50684 +49884 +47141 +52285 +44048 +47140 +50628 +50684 +50896 +49324 +44361 +47536 +44396 +44144 +44144 +47728 +47336 +51452 +54788 +51204 +52280 +52280 +52280 +52280 +52280 +50528 +52404 +50864 +52264 +44553 +50864 +49933 +48152 +49688 +53132 +48156 +48156 +50557 +49324 +49689 +52384 +52712 +49688 +48320 +49436 +44032 +48152 +49688 +44256 +50948 +49688 +52393 +50696 +52509 +44396 +44256 +44396 +47161 +44312 +46020 +44256 +51648 +44508 +49548 +54036 +51221 +44032 +53468 +51656 +49324 +50864 +44396 +54028 +54801 +54840 +49324 +50864 +52377 +47141 +51312 +44592 +47308 +54861 +47560 +50864 +47581 +55128 +44033 +55012 +50836 +51088 +54633 +44600 +51201 +52492 +46041 +47749 +54980 +51060 +53664 +54693 +53440 +54785 +50556 +47140 +50500 +47560 +50864 +54868 +51032 +44400 +52628 +51064 +53444 +51020 +54224 +54596 +49900 +49900 +44060 +48512 +48512 +54028 +46164 +48516 +50752 +54632 +51008 +54637 +51204 +44228 +54945 +51648 +49888 +50724 +50724 +52488 +45580 +54792 +55137 +52712 +46160 +47928 +54980 +54980 +50724 +44256 +54616 +44512 +50668 +50528 +44201 +47588 +47588 +44228 +51221 +50724 +44256 +48512 +44508 +54980 +52377 +49849 +45580 +53444 +47924 +50696 +53468 +44396 +47141 +54056 +50896 +44312 +44592 +52285 +50724 +50529 +49884 +54788 +48376 +47928 +45768 +47924 +47161 +50684 +50976 +51200 +51452 +44592 +51452 +52393 +55148 +50696 +44592 +54217 +51088 +44256 +51088 +48120 +44396 +44032 +45432 +54633 +48708 +51068 +54952 +49888 +54840 +47749 +45804 +44144 +51200 +44048 +51105 +53440 +46028 +48512 +54252 +54596 +48520 +50521 +54868 +49324 +54868 +54644 +44396 +50689 +48512 +53440 +51452 +50752 +51105 +44256 +44032 +51340 +54252 +47217 +46041 +45397 +53440 +49324 +54788 +54925 +51665 +51060 +50501 +44361 +53440 +55148 +51060 +47148 +51088 +48120 +48120 +51648 +44368 +44600 +51452 +44033 +49692 +52272 +49548 +54644 +54924 +44284 +49884 +46020 +54632 +50508 +55012 +55092 +44312 +50676 +47196 +51060 +50528 +54408 +49888 +46041 +54861 +55113 +52824 +50752 +54633 +51116 +50977 +51648 +44256 +54693 +50528 +44540 +44305 +50500 +45804 +54952 +54596 +54896 +45380 +54868 +54665 +53132 +53440 +49104 +51228 +45453 +47784 +50557 +54840 +50896 +47217 +53804 +48169 +44032 +50500 +54616 +52488 +47532 +45208 +51313 +54616 +44257 +54952 +54788 +47196 +48156 +52384 +52272 +47049 +54036 +47560 +47148 +49632 +48512 +54252 +54620 +54805 +44221 +49444 +44032 +50976 +50616 +44257 +44257 +54056 +54632 +49324 +51652 +51021 +50528 +44217 +46020 +45800 +50756 +47532 +55148 +45817 +49436 +51452 +52264 +50724 +51312 +50500 +46160 +44228 +51201 +52840 +47560 +47568 +54861 +46160 +44163 +47196 +47049 +49604 +51312 +54872 +47021 +49324 +51593 +51200 +50752 +48393 +44552 +54840 +44592 +49688 +50976 +49584 +52285 +50528 +47140 +44053 +50516 +52264 +50977 +51216 +50612 +51204 +47000 +49341 +49437 +53440 +54848 +50528 +51312 +45572 +49845 +53441 +53441 +49345 +51201 +54665 +46988 +50500 +44368 +44053 +53668 +50724 +47928 +52544 +51105 +54848 +44228 +44228 +46020 +45812 +45812 +50756 +51088 +48708 +52544 +52384 +54868 +50500 +44228 +52384 +48176 +47049 +54632 +48708 +49324 +46989 +52293 +51221 +44312 +48149 +51088 +49353 +51204 +44368 +44341 +46972 +50516 +51201 +44428 +53444 +54028 +51221 +46993 +49548 +44144 +45817 +49884 +51228 +50516 +52628 +45812 +44061 +50745 +50948 +45224 +49440 +50977 +52384 +45208 +44060 +54980 +54632 +52393 +51452 +51116 +44312 +50556 +50865 +51020 +51104 +50836 +50501 +47732 +54840 +50868 +52380 +55036 +54872 +54872 +55148 +44040 +51593 +50948 +51333 +50948 +49341 +54980 +54889 +46020 +45393 +55012 +47049 +50976 +49345 +45181 +44368 +50616 +45800 +48516 +49885 +47532 +50557 +49324 +50948 +47896 +50689 +48516 +54271 +44508 +44228 +50976 +44553 +47336 +44257 +49548 +54617 +51228 +50836 +54617 +49324 +54980 +52285 +49353 +50745 +49548 +54861 +54801 +51061 +49325 +47560 +52264 +54624 +54633 +53457 +49345 +51652 +50837 +49688 +50760 +44228 +48169 +50724 +44216 +44592 +44201 +51088 +52264 +46973 +50745 +50732 +49324 +52824 +54840 +49353 +47452 +54644 +49604 +51652 +49453 +54616 +51667 +49604 +51008 +44060 +45208 +45796 +50528 +44053 +53685 +54596 +50724 +50724 +47144 +52572 +52264 +47561 +49688 +51452 +53456 +51201 +51105 +44368 +52649 +44368 +44060 +53444 +49340 +51312 +44032 +50528 +54952 +54364 +47336 +50508 +54616 +44368 +54840 +54812 +44341 +44396 +50616 +52293 +49345 +54728 +54028 +46301 +47560 +47560 +44257 +47477 +46020 +50508 +45817 +50556 +48533 +50549 +49324 +44368 +48128 +49548 +54868 +47588 +50672 +52572 +54077 +47196 +49548 +44592 +52489 +51312 +44480 +52712 +54952 +49884 +54840 +47924 +47308 +44368 +55148 +52629 +53444 +45812 +47925 +49552 +50724 +51456 +48264 +45181 +50948 +52280 +45817 +52629 +45812 +50984 +53668 +51137 +52488 +50676 +55137 +44592 +54840 +47144 +54728 +46321 +50948 +51020 +48149 +44432 +44552 +49900 +44368 +47196 +49324 +50628 +51025 +45804 +52392 +50724 +51452 +44552 +45453 +54896 +54896 +44592 +50501 +51312 +55148 +49436 +44368 +50672 +50528 +50745 +44089 +53132 +50864 +48516 +46020 +44040 +55136 +53668 +45817 +49888 +49352 +48317 +48708 +51020 +52712 +45397 +51201 +46988 +53457 +54925 +50976 +54952 +54616 +50685 +46028 +48708 +51452 +51228 +51652 +54840 +52404 +49345 +54984 +47560 +52272 +52404 +47196 +54812 +48149 +50864 +44368 +51008 +54617 +47925 +54945 +52384 +47532 +47448 +54812 +45229 +54952 +47560 +50672 +47141 +47196 +47217 +48512 +45812 +52828 +48712 +48708 +54693 +54617 +47560 +55148 +53440 +44257 +50628 +52280 +50549 +50577 +51216 +46972 +49688 +54952 +51089 +52384 +55012 +54925 +51204 +49453 +54952 +51105 +47532 +52380 +52292 +47140 +50696 +46972 +45229 +52268 +49548 +55148 +51613 +44036 +51096 +52489 +46976 +49444 +45229 +46988 +46972 +44397 +54924 +51064 +49688 +49324 +51064 +44148 +54924 +49888 +51064 +45785 +45800 +45800 +46024 +44053 +50672 +44221 +54200 +50868 +52285 +54848 +54924 +50756 +50752 +44397 +44260 +52285 +50948 +46020 +50948 +47452 +44397 +44512 +51068 +50689 +44256 +44397 +53468 +44397 +46020 +50976 +44397 +51008 +54844 +54252 +50612 +54632 +50896 +47452 +44428 +50612 +52397 +44397 +52380 +50948 +50896 +44428 +44256 +54252 +50896 +50896 +50517 +49436 +46020 +46020 +45800 +47029 +44452 +50669 +50896 +46976 +46976 +53664 +50508 +53664 +51221 +44264 +48149 +47197 +51077 +50517 +51116 +50864 +51012 +50724 +50724 +44508 +48708 +51060 +51648 +52380 +52380 +49688 +51089 +53461 +44217 +54616 +49328 +44305 +51109 +44592 +45384 +47792 +44553 +44040 +51648 +51648 +54032 +54984 +50669 +44552 +47588 +44512 +44081 +46164 +48169 +48516 +48516 +45812 +44048 +48176 +51340 +44081 +48708 +54805 +51648 +44221 +44592 +44340 +51648 +44221 +44204 +45800 +47141 +54028 +50724 +48516 +52628 +54028 +48152 +45817 +44260 +51200 +53444 +52377 +51060 +44048 +54217 +51216 +44284 +45768 +45824 +48176 +44221 +50521 +48520 +50836 +47449 +44396 +47785 +44032 +44396 +54792 +48156 +51648 +53441 +47161 +51200 +48512 +54840 +52824 +49688 +46980 +47217 +47217 +47196 +50836 +45824 +54252 +48124 +54805 +46041 +44172 +44201 +47456 +51088 +52824 +47336 +54644 +51064 +54980 +53748 +51312 +48373 +44305 +50836 +53440 +53440 +44452 +53440 +50577 +51008 +48268 +44396 +50896 +51656 +54801 +51008 +49345 +49688 +50501 +48337 +51216 +54861 +50500 +44284 +45804 +50836 +45817 +44060 +54665 +45516 +50504 +49457 +54788 +50756 +48169 +48512 +54028 +50669 +51008 +54620 +49436 +49688 +51104 +44221 +50528 +48393 +48169 +44033 +50857 +51456 +54801 +51648 +47588 +46993 +54788 +49457 +50672 +52840 +52384 +46980 +46980 +54252 +51221 +54868 +48372 +49884 +54984 +44284 +44221 +50556 +45392 +51228 +50669 +48512 +50724 +44428 +49604 +48708 +51221 +50756 +44396 +47452 +51221 +44277 +52509 +46041 +53468 +45768 +50516 +52292 +49689 +48393 +44048 +49885 +53440 +50696 +51665 +50669 +48176 +44592 +51456 +44592 +49548 +52628 +45812 +44404 +44284 +45817 +44260 +50696 +44204 +53748 +44540 +44053 +50977 +50501 +48533 +44256 +53664 +47497 +48169 +50528 +52280 +44260 +50504 +49900 +53440 +45516 +46028 +49849 +51064 +54844 +48317 +47144 +44284 +52393 +51204 +54980 +48372 +48372 +50864 +51228 +47924 +44228 +50672 +50508 +44557 +44048 +51333 +50976 +54889 +50501 +50836 +50616 +48372 +51600 +48120 +51109 +46020 +53440 +50516 +54413 +51333 +44228 +51652 +54665 +44053 +52632 +44048 +48337 +47336 +54637 +54889 +48169 +45800 +47564 +49440 +44592 +52377 +44340 +50689 +53457 +49849 +50857 +44060 +49548 +49548 +49884 +47729 +53457 +50745 +51088 +46020 +45817 +44256 +52509 +47456 +48393 +48169 +49352 +51109 +53748 +51204 +50724 +51221 +54984 +44061 +51652 +50528 +44277 +50684 +44048 +51204 +50896 +50728 +49324 +47448 +54644 +46993 +51109 +48393 +48533 +51652 +47197 +47196 +50864 +52280 +47588 +47561 +51204 +49345 +49689 +47336 +51648 +47564 +54364 +44221 +52377 +49436 +52404 +51109 +44048 +50857 +51216 +52280 +52377 +44592 +44285 +51109 +44540 +51201 +49345 +47896 +52572 +50616 +53457 +51613 +44148 +51109 +47049 +50948 +52628 +50836 +51613 +54728 +49440 +49440 +48156 +48373 +44340 +46041 +48264 +44033 +47925 +46024 +46024 +51456 +51648 +49457 +53440 +53440 +45812 +46321 +47924 +48516 +54889 +45812 +45804 +54868 +51200 +44036 +50724 +51109 +44201 +44368 +44036 +50669 +48708 +48317 +51204 +44053 +50556 +50745 +54617 +45800 +46988 +44144 +44340 +45817 +50577 +52280 +54984 +54632 +49352 +54617 +50528 +50517 +46020 +54840 +50672 +51652 +45572 +44305 +47196 +50684 +45812 +50976 +44340 +45453 +47217 +50696 +47141 +47536 +50577 +51204 +54984 +50516 +47280 +54028 +47564 +49324 +51076 +49328 +51109 +51109 +49457 +51068 +47588 +44033 +51452 +51109 +54840 +54840 +44260 +51068 +54840 +49436 +44260 +49688 +47581 +51456 +49688 +51068 +52824 +44256 +52376 +44053 +48393 +48708 +51116 +48320 +49632 +51456 +47497 +48373 +51340 +54616 +54805 +49453 +45432 +54616 +44592 +49437 +50808 +50896 +50896 +49689 +45796 +45796 +50556 +52397 +50827 +44396 +44396 +44592 +47805 +47805 +51064 +44284 +52840 +45824 +45384 +52380 +53468 +48512 +53132 +50836 +50521 +54637 +54840 +49892 +46020 +53468 +46160 +50684 +48708 +51060 +44284 +54801 +53448 +54868 +52380 +50868 +54801 +54028 +47581 +47156 +54872 +51200 +50628 +54252 +44428 +44592 +45236 +48393 +54792 +44053 +51216 +50577 +44508 +51452 +54872 +44228 +44060 +52264 +48516 +54785 +51109 +53804 +51109 +48516 +54644 +54889 +48708 +51312 +49692 +44557 +51204 +50724 +49324 +50549 +48152 +50724 +47924 +50724 +51109 +47156 +53448 +50980 +51109 +49437 +48516 +54876 +48708 +47144 +52264 +50668 +45432 +51221 +45236 +52380 +44036 +51200 +44396 +45212 +53440 +54840 +49440 +48264 +44592 +51089 +50668 +48708 +47581 +54861 +51109 +48512 +47560 +45812 +51076 +48512 +51221 +50672 +54644 +47928 +51333 +54028 +53804 +44592 +44081 +51473 +50836 +44552 +50868 +47896 +48176 +52824 +44208 +51109 +45684 +50504 +45225 +55124 +48516 +48708 +50668 +53440 +48393 +50756 +48169 +47924 +44396 +44508 +53804 +48156 +45768 +52629 +51089 +52488 +45804 +45768 +50896 +51452 +54788 +51656 +50500 +47588 +47568 +52376 +54596 +49888 +52393 +50500 +54868 +54980 +54605 +51221 +48124 +48152 +47784 +48512 +47161 +51088 +51088 +49884 +50684 +49328 +50521 +45812 +51200 +44256 +49324 +49457 +50948 +51088 +44144 +49328 +54217 +51076 +50836 +46041 +44053 +51452 +44600 +54644 +54693 +54876 +50672 +44368 +44396 +47784 +44036 +44036 +51060 +45380 +51656 +51652 +55148 +54744 +54637 +44305 +49692 +44284 +50504 +47749 +47148 +54056 +50517 +50976 +50672 +52264 +49888 +51064 +51228 +44452 +51204 +51088 +50997 +50948 +54861 +50780 +47336 +50500 +50836 +44368 +47144 +48729 +54788 +49548 +47532 +49457 +54792 +47581 +48512 +49324 +47784 +48120 +44537 +52265 +52265 +51221 +45229 +54805 +45224 +50724 +45208 +48512 +45516 +50672 +49888 +51648 +54632 +51228 +51109 +50500 +48712 +53468 +54620 +47564 +50724 +50672 +47924 +50528 +50616 +50724 +49324 +50724 +50780 +47532 +54620 +52628 +52712 +49688 +44592 +54788 +52524 +46041 +52285 +47197 +50528 +50500 +50500 +47336 +47732 +51333 +48512 +44397 +54028 +52292 +47497 +50756 +54364 +54952 +49689 +44592 +55092 +48152 +50752 +50976 +45812 +48708 +48708 +52393 +52392 +50696 +44428 +51221 +54844 +44221 +44036 +51204 +54665 +44256 +50756 +47000 +48708 +51064 +51452 +51089 +48512 +51221 +47200 +50504 +46988 +54844 +51020 +50500 +44144 +47140 +51204 +54788 +54868 +54925 +50689 +49440 +49900 +51221 +53461 +50836 +47924 +45224 +50556 +44032 +50976 +49436 +50864 +50948 +51228 +50976 +48120 +45812 +45576 +52828 +55064 +50725 +51204 +52632 +47896 +48512 +51200 +45800 +51060 +51473 +47588 +54889 +47732 +50516 +50689 +55012 +44060 +50948 +48120 +50896 +51221 +52628 +51228 +49444 +53440 +47144 +47784 +50684 +49884 +54200 +50948 +50780 +50976 +54840 +50724 +52393 +48372 +49688 +50976 +44508 +52628 +50836 +48708 +49885 +50896 +51081 +50857 +50837 +52824 +47448 +48120 +48152 +50728 +47560 +44396 +44340 +51652 +44032 +49688 +51652 +50896 +52264 +50857 +47749 +50549 +51656 +49548 +45544 +54800 +46020 +48169 +46993 +45544 +50836 +50528 +48708 +48712 +50696 +54364 +44396 +47336 +49440 +47564 +50696 +51109 +44053 +50857 +45769 +47532 +51201 +44508 +50616 +44540 +51204 +54637 +52293 +54620 +45576 +47196 +47784 +49436 +54840 +54840 +50724 +45576 +51109 +47560 +48324 +44256 +47924 +52488 +53440 +49440 +47896 +54620 +54620 +47925 +47308 +47144 +54925 +44508 +46321 +51649 +49688 +51068 +54868 +44553 +44452 +50836 +55148 +50672 +49440 +44368 +48120 +48152 +48264 +49452 +51032 +54924 +44368 +48152 +49437 +54224 +49440 +49688 +51109 +47156 +54788 +55136 +45544 +46041 +51032 +52280 +50528 +50577 +45397 +47560 +51312 +49688 +51652 +51088 +50668 +48712 +50689 +50976 +45236 +50684 +45824 +50689 +52280 +45544 +54869 +50689 +47732 +48708 +47560 +49900 +55141 +45769 +46021 +47448 +50672 +46976 +50672 +49345 +47161 +44368 +50577 +46976 +49452 +50689 +49933 +55092 +44428 +48120 +47532 +47144 +50628 +52489 +46976 +51088 +54792 +44432 +44432 +44277 +51081 +51088 +51088 +51316 +49552 +48512 +54056 +51088 +54952 +49888 +47609 +49324 +53468 +54252 +44228 +44256 +45432 +54617 +50976 +51204 +54644 +49328 +49552 +50948 +47736 +51333 +44036 +49689 +51092 +50500 +51088 +51032 +48512 +51088 +47532 +54617 +48317 +50976 +45236 +50620 +50620 +50689 +49328 +47732 +51200 +50857 +53440 +44480 +53469 +44417 +50864 +49688 +50504 +44032 +49569 +50756 +50977 +50836 +44361 +51032 +51221 +51456 +48373 +51452 +53461 +54945 +51333 +44288 +51452 +51221 +50756 +51032 +48372 +49892 +49892 +52509 +49900 +44061 +49440 +49892 +50976 +54872 +51060 +51312 +49884 +54732 +44417 +49457 +44400 +44417 +54952 +51116 +51088 +54252 +54644 +50672 +49548 +44032 +49900 +49888 +50857 +54889 +48128 +44396 +44288 +48712 +49689 +52292 +51104 +51201 +50896 +44592 +51064 +48128 +44396 +44148 +52628 +51221 +44148 +48512 +45397 +48337 +54872 +47588 +52840 +54620 +50864 +49885 +45397 +52840 +45397 +52824 +50976 +48372 +44288 +45397 +52840 +47561 +52272 +44396 +44284 +52840 +54848 +50724 +50836 +49892 +50689 +52292 +49900 +50948 +49324 +44288 +54812 +50836 +51456 +54872 +50696 +51032 +48372 +52828 +52509 +48372 +54413 +52492 +45824 +49324 +49900 +46020 +47456 +45824 +49688 +54028 +48393 +48512 +48512 +49324 +44537 +51109 +51109 +51204 +50948 +51316 +49900 +51452 +45824 +46020 +49548 +51208 +49548 +51060 +51060 +51060 +49548 +52392 +49689 +51652 +49345 +49345 +47560 +44032 +49345 +47308 +49440 +49440 +44260 +50773 +50773 +50864 +47308 +47308 +50836 +48169 +50773 +50773 +50773 +44060 +50836 +53440 +44480 +51333 +52712 +44048 +44264 +52628 +53748 +44048 +52628 +49884 +50980 +52377 +44256 +45768 +51652 +48120 +50836 +44397 +48708 +52789 +55148 +48708 +44144 +44228 +51204 +44404 +52404 +44228 +50725 +52488 +49884 +49884 +48337 +44537 +49444 +51652 +55148 +45768 +51204 +49436 +52492 +47564 +50500 +47336 +48337 +52404 +48708 +49549 +49453 +46020 +47336 +45572 +49324 +52789 +51060 +44396 +49453 +44396 +44368 +47308 +44368 +49549 +55148 +51340 +46164 +50669 +49328 +51221 +49440 +47141 +50508 +46020 +54924 +54861 +55128 +44592 +51064 +50732 +54620 +49888 +49436 +52636 +49464 +44592 +51064 +50900 +54032 +50836 +50521 +54616 +47932 +51208 +50517 +44553 +44204 +48516 +50756 +44592 +51104 +44216 +44592 +52264 +44060 +44396 +44053 +54788 +50724 +46988 +46020 +54028 +51089 +51089 +50521 +44144 +44053 +44032 +44396 +54792 +54028 +47549 +52488 +51200 +50516 +48520 +49688 +44049 +47161 +53440 +48708 +50976 +45824 +54637 +50501 +44396 +54840 +48177 +48124 +50504 +52488 +47161 +51648 +54217 +46041 +51216 +44508 +49688 +47896 +46041 +54617 +50669 +48320 +54633 +54633 +46973 +50529 +48512 +49692 +51656 +47456 +51008 +51060 +54644 +51204 +46041 +51060 +47784 +44053 +50504 +50948 +54872 +52824 +48128 +47532 +44228 +46041 +50808 +50864 +49345 +54801 +47532 +50836 +44368 +51137 +47564 +44368 +50500 +50500 +50837 +49324 +54252 +52488 +44512 +48393 +48393 +45432 +47532 +50976 +54788 +54945 +46020 +49888 +49457 +46020 +44221 +51456 +54840 +54801 +51008 +50612 +46993 +44048 +47196 +47000 +54744 +44033 +44277 +49709 +54868 +45813 +47548 +54868 +44144 +47000 +44592 +48124 +44260 +44260 +51460 +44256 +52572 +50528 +50528 +44053 +47452 +50980 +47497 +44404 +53440 +51137 +44285 +51020 +46041 +51137 +51137 +50948 +54952 +48708 +50628 +49709 +52393 +48533 +51460 +44404 +46041 +52280 +44256 +51020 +52824 +51593 +54889 +50976 +50808 +50577 +48393 +52628 +46024 +52404 +51060 +52824 +49884 +51116 +50836 +50501 +51452 +44048 +47456 +50616 +48120 +44048 +54812 +54812 +50756 +51221 +49849 +48120 +44048 +47924 +50864 +51333 +45224 +44040 +50516 +50516 +50808 +51333 +49324 +49464 +50689 +44284 +44552 +50976 +44592 +47336 +46020 +53748 +44228 +50745 +52285 +45817 +54805 +44152 +50528 +47448 +50724 +49709 +44256 +51088 +50808 +54077 +51204 +52264 +44216 +50857 +50620 +52264 +52377 +49884 +50557 +51333 +51333 +44053 +44368 +44053 +49328 +52404 +52280 +51221 +46020 +47336 +51109 +52280 +52280 +50724 +51312 +44396 +51109 +52712 +52280 +46020 +46020 +49845 +50948 +48176 +47469 +49345 +51613 +54028 +44552 +52488 +50628 +47196 +51092 +47536 +47308 +47308 +52840 +46321 +53440 +51456 +44368 +44432 +50836 +52488 +50836 +44432 +52392 +50669 +54617 +45453 +50629 +50629 +51032 +50508 +54744 +51665 +54644 +44040 +49688 +51648 +50724 +51396 +48120 +51032 +50689 +46020 +50689 +51208 +49436 +50501 +51008 +49688 +52272 +47140 +55092 +47217 +47217 +51204 +50689 +55148 +44397 +52280 +50689 +44508 +50516 +50808 +45432 +44428 +52488 +52268 +47564 +51204 +51204 +50620 +50516 +50516 +54732 +45432 +54732 +52380 +44340 +52380 +51452 +54889 +44221 +49692 +49548 +49548 +47157 +44277 +51340 +44368 +44144 +44277 +44145 +47924 +48512 +48512 +52264 +44396 +44396 +44592 +51060 +49324 +54028 +52824 +49548 +54637 +51060 +44540 +49552 +44428 +54047 +49552 +44148 +48520 +51105 +51105 +49884 +54252 +51221 +49688 +48276 +45393 +49324 +48516 +54028 +51648 +55148 +54840 +45812 +50948 +51109 +53461 +45824 +47568 +54588 +47568 +52393 +48520 +47156 +51656 +52628 +48177 +52824 +51228 +47589 +50669 +50696 +48337 +44049 +44428 +45376 +49688 +45824 +51221 +49464 +52488 +51652 +49324 +44400 +49437 +48169 +45824 +44480 +51452 +48337 +51109 +51204 +50756 +45824 +50976 +49345 +49341 +44592 +52293 +44341 +47784 +46020 +54980 +51221 +49688 +47729 +50948 +50501 +54253 +44060 +48169 +48337 +45393 +44277 +48152 +54889 +46020 +47729 +44032 +46321 +55064 +51333 +49340 +47564 +47561 +54364 +44341 +52293 +47561 +48169 +51109 +44221 +52380 +48373 +52824 +47924 +48264 +45817 +54224 +54224 +51109 +47729 +51312 +52392 +48516 +47805 +48169 +51452 +47736 +51452 +51208 +54732 +46976 +44036 +54217 +50672 +44204 +48337 +48337 +54665 +44036 +50836 +54872 +50976 +50976 +44592 +50628 +48708 +52397 +52769 +44305 +51109 +51200 +44221 +48708 +44552 +46024 +49345 +44592 +50500 +55124 +44060 +49436 +47140 +47924 +50517 +44256 +51025 +51200 +54252 +51216 +50517 +47896 +44221 +51088 +48512 +46041 +48169 +54224 +49345 +51032 +51656 +51312 +52824 +55092 +46020 +51340 +54952 +46020 +44592 +44256 +48169 +51221 +50976 +54252 +48337 +47497 +47000 +48708 +51201 +50516 +49436 +44053 +50857 +53441 +49569 +49436 +44221 +50864 +50976 +47896 +49688 +52769 +49345 +54224 +44396 +54633 +50808 +47448 +54616 +50684 +45229 +49688 +52824 +48512 +44221 +44396 +44396 +44540 +50724 +44285 +47336 +51020 +47308 +45824 +47197 +51060 +51452 +51204 +46020 +49884 +55136 +47896 +52285 +47924 +54224 +44305 +44275 +44340 +48317 +51109 +54644 +47492 +47492 +47308 +50668 +51201 +50689 +49440 +52397 +50745 +47140 +52397 +51064 +49692 +50672 +51221 +51201 +48149 +44148 +54924 +45236 +54924 +44277 +51077 +44060 +48320 +51060 +44592 +45453 +48516 +44144 +44048 +54785 +51109 +54224 +51061 +51068 +51060 +49340 +49885 +51060 +49884 +49884 +44417 +51312 +51064 +54840 +48520 +54861 +50724 +53748 +51060 +44053 +54028 +49888 +51228 +51109 +44404 +46020 +48512 +51200 +48120 +54788 +54840 +52488 +45432 +44221 +51652 +51060 +48120 +54872 +47564 +49548 +50557 +54788 +44221 +46024 +51109 +44053 +44053 +48533 +53444 +44053 +54596 +54596 +49453 +53444 +44148 +44396 +44032 +48156 +54596 +44396 +51204 +48324 +49548 +53444 +54869 +44053 +54945 +48120 +54869 +47564 +54869 +44228 +44228 +44480 +45817 +47197 +47197 +45800 +54812 +52404 +55064 +55064 +51060 +51060 +51060 +51060 +54869 +54869 +49340 +54805 +47928 +46041 +50616 +50616 +50865 +47532 +52292 +54364 +51312 +48712 +54077 +50857 +54364 +52285 +50689 +47532 +52377 +48149 +53440 +44553 +48169 +49569 +50669 +50773 +52384 +54588 +51648 +47161 +48520 +50773 +51221 +51312 +50773 +44221 +45824 +49436 +49692 +55124 +50577 +54924 +50984 +54980 +47456 +51221 +52377 +49436 +44221 +46020 +51333 +51333 +47000 +51333 +46301 +48176 +49324 +47144 +44592 +49345 +52824 +51333 +51452 +47000 +50612 +49453 +52264 +44148 +49884 +44032 +54200 +54889 +48373 +49692 +50948 +48169 +50836 +48120 +54812 +51221 +54364 +51228 +45909 +51669 +51669 +48324 +45909 +51333 +52384 +50836 +50808 +50836 +55064 +48120 +47329 +50577 +54252 +44396 +49900 +49900 +54596 +50613 +47477 +51064 +46020 +51221 +44060 +44592 +51064 +51064 +52380 +53456 +53945 +53945 +44036 +55128 +53468 +52492 +51648 +47581 +47581 +54812 +48276 +51025 +52392 +48124 +48124 +52649 +52649 +50724 +44553 +50724 +55148 +44060 +50864 +50756 +52509 +51333 +53132 +50668 +48320 +44592 +51648 +52684 +52840 +53468 +46024 +44160 +50684 +54844 +55113 +45684 +50773 +54744 +55124 +44053 +54848 +55176 +48516 +48512 +53468 +51333 +47924 +50864 +52285 +52285 +44144 +50696 +54252 +52488 +48124 +48708 +51089 +51608 +50521 +44396 +48152 +45432 +45432 +51221 +54028 +54252 +52393 +44256 +54840 +51200 +45804 +50689 +49324 +51452 +51228 +53468 +51060 +46028 +50864 +48512 +44553 +54217 +49457 +50896 +45768 +44340 +48520 +55148 +54596 +50976 +44161 +54788 +52509 +48337 +54889 +50900 +52636 +54588 +52636 +49892 +53444 +50689 +52509 +45824 +47568 +44592 +50669 +52824 +51076 +49692 +49884 +55184 +47196 +54637 +44305 +47784 +51648 +54801 +47144 +51312 +54889 +51656 +54840 +44277 +44452 +54637 +49436 +44368 +49436 +49324 +44284 +44508 +50577 +50640 +54924 +52825 +44292 +51060 +55113 +44340 +47536 +54924 +51088 +55100 +52824 +49345 +45685 +54620 +51008 +44033 +53685 +45392 +44277 +51204 +49885 +55137 +50676 +48337 +44036 +45909 +54812 +50501 +44508 +53685 +50684 +44060 +52769 +45516 +50868 +47581 +50857 +50857 +50672 +48708 +44260 +52488 +50676 +50668 +49436 +44228 +49892 +52384 +47536 +51228 +54620 +54840 +54801 +52377 +54252 +51021 +44204 +54924 +55148 +54056 +47928 +50696 +54805 +49569 +51204 +51221 +47532 +50724 +50724 +50976 +47532 +47049 +54872 +52509 +50613 +50676 +47532 +45768 +45516 +50501 +44033 +54788 +44036 +50724 +48124 +51333 +48708 +48708 +45909 +52684 +52285 +48124 +47140 +44228 +44288 +44288 +54665 +46020 +52376 +44277 +52392 +47200 +49437 +44048 +44260 +45377 +51221 +52628 +46024 +44284 +52392 +47049 +50756 +50896 +44552 +44592 +46988 +52285 +54841 +54868 +44428 +45812 +52377 +52377 +45393 +47581 +52384 +54848 +54844 +49437 +52285 +55124 +50976 +54812 +50501 +49604 +52509 +54788 +49688 +51216 +44396 +52280 +51669 +45909 +48708 +54801 +52280 +53444 +44288 +53440 +45516 +50868 +49345 +52684 +52393 +54889 +51456 +44221 +50556 +49457 +52769 +54200 +54844 +49688 +51228 +52488 +49688 +48156 +49440 +50808 +44201 +44148 +50948 +50976 +50976 +54605 +55012 +54872 +48124 +54085 +51032 +47732 +50857 +44172 +49345 +51020 +50501 +49900 +47924 +44032 +44033 +50864 +50528 +54801 +50616 +50672 +44048 +50728 +52509 +49352 +47497 +48516 +50689 +44452 +44340 +44033 +44277 +50868 +49548 +49548 +44592 +50836 +49569 +54889 +51656 +44264 +44396 +52285 +45769 +54801 +44060 +51221 +50857 +52488 +49552 +49888 +48149 +44060 +50896 +54644 +55124 +50857 +50521 +50984 +49548 +46020 +51008 +51088 +55093 +44216 +53468 +54889 +50728 +49888 +47749 +44277 +49453 +51333 +54364 +47784 +47784 +44341 +52825 +52280 +52280 +52280 +52572 +48124 +53945 +51109 +53685 +50724 +49345 +47564 +44288 +44033 +51312 +44396 +54812 +44060 +47144 +50864 +51333 +44540 +51008 +47140 +49345 +50948 +45800 +47564 +44036 +49845 +50857 +44221 +44053 +51228 +51665 +47336 +44428 +52377 +52377 +50837 +48729 +47308 +52509 +50864 +50857 +52824 +53685 +45817 +44172 +54728 +54077 +48708 +48324 +49692 +44368 +51613 +51228 +50672 +48729 +44452 +54812 +52488 +51669 +51008 +51008 +55148 +55148 +53444 +45812 +53440 +45824 +45824 +49549 +44432 +52293 +54952 +48152 +48516 +47196 +47196 +46041 +44048 +44172 +54620 +48124 +44221 +47308 +47924 +52280 +55100 +52628 +54732 +49900 +49849 +48317 +50613 +52488 +49452 +45516 +45812 +53444 +44221 +49569 +44048 +50836 +50808 +54872 +46041 +44540 +44540 +44144 +51312 +44036 +54644 +51025 +50724 +47924 +50669 +47492 +49353 +51456 +54924 +47928 +46972 +50528 +47492 +50684 +44292 +54616 +52404 +50668 +51008 +45824 +47805 +50528 +47805 +45824 +51228 +47560 +46988 +47928 +51452 +52824 +45208 +45208 +50684 +50577 +48149 +52824 +44305 +44305 +50864 +48512 +47448 +47736 +51669 +54812 +52280 +47805 +45208 +54924 +54788 +50577 +52280 +44592 +44396 +54872 +49453 +51032 +50672 +45212 +47560 +45817 +54869 +45817 +45817 +45817 +44284 +50900 +47924 +51092 +49696 +49688 +50997 +55148 +49457 +50500 +44228 +44032 +51092 +51109 +54841 +52285 +51204 +46041 +52377 +50508 +51656 +51201 +50508 +44537 +49884 +44048 +51665 +44508 +44060 +46321 +51204 +52285 +44032 +51204 +51208 +50669 +51204 +51064 +50977 +55148 +51204 +55148 +55148 +52265 +45824 +44396 +54840 +54840 +54840 +50529 +49324 +53468 +47896 +54840 +47140 +48169 +49548 +54200 +51216 +44221 +49345 +51060 +51032 +49440 +54840 +48708 +50684 +49688 +49688 +51116 +52272 +44396 +47477 +48373 +48176 +53440 +51081 +48520 +51077 +51116 +53441 +51109 +51089 +44053 +50864 +50864 +54620 +49888 +52264 +53440 +55128 +44396 +50732 +46024 +52380 +51665 +51064 +54869 +47928 +49548 +50577 +45684 +48516 +52264 +50864 +44553 +44552 +48152 +44040 +50612 +48512 +50724 +49437 +48708 +51648 +51088 +50529 +46024 +51312 +49849 +44592 +50672 +44305 +48320 +52488 +44396 +47928 +44264 +50900 +44208 +54028 +52840 +52840 +49849 +50868 +50756 +45580 +50613 +49436 +51312 +48512 +53804 +46160 +54637 +51208 +48512 +47924 +54252 +48156 +50836 +53469 +45800 +44396 +47452 +52285 +44512 +54840 +48372 +48337 +51648 +54217 +50684 +54252 +54588 +53468 +50976 +51652 +51200 +50521 +54252 +54616 +45768 +49444 +51200 +51656 +48708 +51105 +47568 +47588 +49888 +50517 +52628 +44161 +48124 +52629 +44032 +48520 +51092 +51452 +45800 +53441 +47924 +45392 +45225 +48512 +54252 +48152 +48149 +47161 +45208 +44340 +44216 +44144 +52377 +48156 +53440 +53440 +50836 +44396 +51320 +48320 +52488 +48176 +48176 +51200 +51032 +44144 +54869 +47217 +44036 +51105 +50745 +46976 +45397 +48156 +53469 +52380 +55124 +44292 +49885 +44600 +51613 +45784 +44277 +44277 +44428 +51204 +51316 +52272 +44256 +52824 +54801 +52293 +54924 +54217 +50696 +49845 +45208 +48317 +51648 +44312 +51656 +54869 +53440 +53440 +51648 +49444 +50504 +47217 +51652 +44201 +44368 +44256 +46041 +45208 +46020 +47148 +52264 +47140 +51217 +50508 +44208 +47148 +44144 +51648 +47144 +50500 +44284 +45804 +54801 +50836 +45817 +44368 +51137 +51228 +54844 +51104 +50864 +50528 +49464 +45208 +51340 +48156 +44221 +52404 +51652 +51221 +49324 +49324 +44221 +47588 +47217 +44397 +48169 +44204 +51021 +51221 +50672 +45516 +47564 +54801 +49341 +48393 +44260 +50724 +44400 +44396 +53685 +44260 +54785 +46020 +52265 +48512 +46980 +54036 +54620 +49548 +45216 +50672 +52769 +49569 +50556 +44033 +54252 +50756 +52377 +51456 +50696 +51116 +47140 +49688 +53448 +47196 +49552 +48337 +44160 +54872 +46020 +48120 +50756 +44552 +48393 +49324 +47148 +48124 +47928 +48512 +54056 +44144 +46020 +50752 +50528 +44428 +50501 +52509 +51204 +52628 +52393 +53468 +48516 +45216 +50684 +45516 +51320 +50508 +49436 +55124 +51137 +51216 +49548 +47452 +52397 +44053 +52384 +49688 +46020 +48512 +51200 +51109 +54844 +44592 +46020 +44217 +44592 +48176 +49689 +44204 +47497 +50529 +50500 +44404 +51137 +47049 +44312 +50696 +54841 +49452 +51221 +50557 +52292 +53456 +52404 +48533 +51217 +52377 +44277 +52628 +50628 +51312 +52628 +44397 +52392 +44204 +44557 +48176 +49688 +44172 +47196 +44341 +47749 +44221 +52377 +53444 +47609 +49452 +49548 +44288 +54077 +50672 +45209 +44036 +51221 +52628 +51204 +50976 +50672 +44508 +45224 +54945 +50976 +48317 +50808 +49884 +51452 +49440 +47896 +51228 +50676 +49341 +49884 +52509 +52840 +51021 +49692 +54889 +54200 +50577 +54872 +50628 +51104 +50516 +49436 +50508 +50501 +44061 +52684 +51593 +52404 +46980 +46980 +51221 +44060 +52628 +52628 +46028 +44172 +55064 +44557 +52649 +49325 +49444 +49444 +50896 +44148 +50556 +49341 +49324 +48176 +50836 +47736 +52380 +46988 +50728 +55136 +52280 +44033 +47336 +52509 +44557 +44368 +44396 +44552 +50857 +44033 +52628 +52404 +51204 +49552 +49552 +48149 +55093 +50857 +48169 +52264 +49548 +44049 +50836 +46020 +51648 +45433 +46989 +47156 +49688 +44396 +44256 +54732 +49325 +49345 +51652 +47736 +50529 +52628 +45769 +49440 +53457 +44152 +45817 +48152 +48152 +53457 +47456 +46020 +44264 +52824 +50752 +54624 +44148 +50728 +52285 +51204 +51652 +44201 +55092 +45769 +44428 +52264 +52265 +44201 +50724 +51008 +49453 +44053 +49453 +53552 +54028 +50836 +48712 +49688 +53444 +49332 +49328 +49689 +44508 +50857 +52285 +44341 +48337 +48393 +49556 +51228 +52404 +49688 +51201 +47144 +45817 +47532 +44288 +47197 +46972 +47336 +52509 +44060 +54840 +49324 +52285 +53461 +54868 +52572 +45236 +47560 +51109 +44508 +50689 +52377 +50724 +51648 +52404 +47564 +52280 +44396 +51200 +49353 +45800 +52488 +47784 +47784 +51217 +49452 +44221 +54364 +44053 +51020 +44396 +44204 +47029 +44201 +50689 +44452 +45236 +48324 +47196 +46024 +54620 +50672 +44480 +51104 +51032 +51104 +53489 +53489 +49332 +50836 +54945 +49436 +44048 +44305 +53457 +51456 +50672 +47536 +51613 +55064 +45817 +44368 +44537 +49452 +53456 +53444 +52384 +48156 +52264 +51208 +52488 +47308 +48516 +47924 +54952 +54028 +52524 +52265 +52268 +53440 +48149 +55136 +46024 +47144 +54925 +55184 +47196 +44368 +52268 +45804 +44048 +44368 +44284 +44160 +44036 +50745 +47280 +45229 +45432 +52380 +52265 +53469 +48149 +52265 +44201 +45817 +49353 +51312 +44221 +44221 +54872 +51217 +44552 +54924 +45812 +55092 +44040 +48317 +48317 +50724 +44144 +50685 +50508 +47609 +49688 +48120 +51228 +45824 +53441 +46020 +54805 +46988 +52272 +44144 +50556 +50976 +50685 +50685 +51032 +54868 +51208 +48712 +45397 +44033 +52377 +51600 +54869 +47560 +51204 +55184 +47157 +53444 +54028 +49688 +47196 +47141 +50836 +51201 +48152 +50577 +47280 +52272 +53552 +52268 +47144 +54732 +44400 +54869 +47141 +46980 +54872 +50689 +47196 +47217 +44148 +44144 +52268 +44148 +46976 +49452 +50689 +48120 +50577 +52280 +50689 +52268 +55092 +49453 +46972 +44400 +48120 +47532 +52268 +47144 +53444 +52524 +47140 +51204 +50752 +45817 +44368 +54869 +46988 +46972 +45229 +51648 +44592 +44452 +44592 +49900 +48373 +48373 +49688 +44256 +50976 +44060 +51060 +44277 +44036 +48152 +48169 +51221 +48149 +52392 +44396 +48124 +47924 +44256 +44049 +52293 +54952 +48120 +52629 +44201 +54876 +49436 +44368 +48124 +51652 +44396 +49888 +53448 +50612 +52825 +50724 +54056 +49436 +44368 +53448 +47156 +45393 +54224 +52285 +51204 +52384 +51060 +44048 +49328 +44284 +50684 +46024 +44592 +53804 +54952 +52384 +44368 +44221 +50577 +54633 +48124 +49688 +50528 +44256 +50528 +51221 +51201 +51652 +48512 +49688 +47308 +44396 +54788 +54924 +44368 +49440 +44368 +53441 +46160 +47156 +54224 +53468 +54952 +54952 +47928 +54617 +51228 +51228 +51116 +48712 +44033 +51116 +47049 +48708 +48152 +48152 +46976 +50976 +46976 +48120 +46160 +49849 +50836 +44032 +44257 +49324 +44032 +50976 +51664 +44033 +50508 +51452 +52629 +44540 +52377 +51008 +48512 +51109 +52280 +44396 +51089 +52280 +45800 +52265 +49324 +49888 +51089 +52265 +44540 +47536 +52265 +52489 +45800 +52489 +48169 +44060 +54637 +50612 +49884 +54056 +50976 +47728 +48169 +44592 +51204 +47784 +50668 +54056 +54588 +47448 +48512 +48169 +49440 +51221 +51221 +45768 +51313 +51312 +51032 +47448 +49548 +44148 +50631 +51032 +44592 +52824 +48264 +54364 +48264 +51204 +44340 +49688 +50668 +47924 +44592 +44592 +44592 +54868 +51068 +45800 +44396 +51648 +51312 +54801 +46020 +49692 +50865 +50865 +46972 +44036 +54620 +45824 +51201 +50864 +52280 +49884 +44305 +50577 +49884 +50773 +48124 +48124 +46024 +52632 +50724 +50980 +54056 +50521 +52769 +54032 +44161 +44260 +49849 +54840 +48169 +54840 +44228 +52285 +55012 +47749 +54844 +48516 +44552 +47932 +50669 +49437 +55124 +50672 +52769 +48169 +50837 +49888 +44144 +50577 +51104 +48337 +49457 +50689 +54788 +48520 +51652 +47161 +52632 +54840 +47588 +51089 +47568 +48320 +44396 +54844 +49548 +51333 +49884 +54616 +50865 +48708 +51656 +47896 +45769 +52285 +50728 +46041 +50528 +48337 +50521 +51452 +47217 +54788 +44305 +51312 +51312 +49884 +54889 +54889 +55012 +44340 +44284 +44368 +51652 +51656 +51652 +49345 +46041 +54861 +50504 +54644 +54693 +49604 +54952 +50685 +54984 +55064 +54632 +54620 +51456 +47564 +54788 +44260 +51452 +55148 +49457 +49457 +54252 +51208 +51208 +50724 +54872 +54924 +54840 +49888 +47564 +51204 +53441 +49688 +51452 +48372 +44221 +49437 +49452 +50696 +49437 +52397 +44228 +51221 +44480 +51221 +50669 +51648 +50516 +50896 +47548 +47049 +52285 +50773 +54952 +51104 +48708 +55012 +54872 +51060 +44032 +54984 +55064 +48512 +48124 +44508 +44040 +50689 +46020 +50948 +49436 +52397 +47924 +45224 +44036 +45212 +50516 +50577 +52632 +50836 +52264 +48372 +47749 +44368 +44060 +44256 +50745 +52285 +44592 +54840 +50504 +47141 +50528 +44592 +44228 +47928 +51104 +49444 +54840 +47784 +47561 +51333 +45769 +51109 +54812 +54253 +54620 +49440 +51204 +47308 +49452 +53444 +44221 +48324 +47536 +46024 +55148 +50640 +44592 +54889 +53468 +50685 +50685 +50669 +45812 +46041 +54952 +48708 +45812 +51312 +54840 +50669 +54693 +49457 +49340 +44368 +54252 +44221 +50684 +50528 +50685 +50976 +49436 +47805 +54984 +50836 +54253 +47140 +49888 +44305 +52393 +47308 +50672 +54869 +47140 +55148 +50997 +47217 +45229 +46972 +46976 +49604 +45817 +50628 +52489 +50760 +50517 +44257 +50696 +44221 +50696 +54848 +44040 +49436 +51312 +51312 +52380 +47564 +51613 +51613 +52404 +52572 +52280 +50865 +54924 +51064 +44152 +48516 +48708 +50900 +50976 +50896 +48533 +48152 +48373 +47161 +44404 +44396 +49464 +45685 +51312 +49325 +51664 +46993 +45229 +51204 +47749 +54889 +47581 +46024 +51312 +44592 +44592 +50689 +51333 +47581 +46041 +46993 +47196 +47805 +47217 +47785 +48712 +48120 +47568 +48376 +52272 +52636 +52636 +47792 +51452 +51064 +54036 +48149 +53440 +53440 +46020 +47141 +44396 +44452 +44508 +48708 +54980 +51221 +51088 +49332 +51077 +51105 +44428 +52380 +50864 +44036 +50724 +52264 +49340 +49692 +48276 +50732 +51088 +51060 +54665 +51116 +52492 +51064 +54364 +53441 +52404 +51109 +47581 +52824 +51061 +44264 +44417 +46160 +51060 +44592 +49549 +44053 +51312 +47785 +49328 +54924 +47000 +44396 +47581 +50577 +47560 +52488 +51648 +50896 +54637 +54224 +48176 +44152 +46041 +44256 +47896 +54744 +51200 +52632 +54028 +49688 +54868 +49900 +50976 +51200 +52632 +49569 +54032 +49569 +44161 +50900 +51652 +44396 +44228 +47784 +48708 +48708 +50773 +50521 +48169 +48516 +50696 +48512 +45224 +49437 +54840 +50556 +46160 +49900 +52840 +50836 +51076 +50696 +50752 +47588 +51312 +44284 +51648 +51333 +50868 +54868 +49849 +52628 +51312 +44204 +47141 +54840 +44204 +51221 +49569 +52285 +54413 +45800 +54952 +52840 +44256 +54217 +51060 +49884 +51648 +44312 +54952 +44032 +44032 +44396 +54252 +47568 +49444 +50685 +50685 +49884 +50620 +54588 +53440 +51060 +47161 +48337 +45768 +46989 +54868 +48152 +48276 +51333 +45824 +49324 +50689 +48512 +48177 +47784 +44048 +52832 +50684 +50976 +47924 +49548 +49569 +51088 +54633 +50976 +49888 +44144 +53441 +51089 +45224 +51200 +50689 +51200 +51656 +49324 +49324 +45800 +44256 +54252 +44396 +50836 +48520 +44036 +48156 +46028 +44032 +45236 +51452 +48708 +50976 +49884 +52293 +49324 +52629 +48176 +49884 +44312 +49324 +50836 +51221 +51221 +49884 +52824 +47448 +47784 +54924 +50689 +52293 +51312 +54364 +51092 +51600 +47217 +46041 +47196 +49373 +47141 +46976 +50689 +49688 +49692 +51204 +44228 +51221 +49436 +50984 +52404 +54637 +51664 +47140 +49353 +44292 +44036 +48337 +51076 +44368 +48177 +51076 +54413 +51088 +49688 +50696 +52264 +54728 +51452 +52380 +51228 +51060 +51060 +50865 +48268 +44277 +44256 +47196 +51204 +47148 +54645 +50577 +54645 +44540 +51648 +49885 +44201 +51116 +46976 +48373 +44152 +54637 +44228 +46020 +44305 +50808 +44305 +50668 +50504 +50504 +44428 +51060 +53441 +44256 +51656 +44277 +46041 +49345 +49345 +54872 +44600 +44396 +54792 +53440 +53748 +50864 +52272 +49345 +50549 +49849 +49437 +51092 +50500 +50836 +51221 +45817 +44592 +44368 +54868 +54924 +51109 +51109 +49900 +49324 +49324 +51652 +48176 +51221 +44292 +44221 +48156 +48516 +48512 +50976 +53685 +44033 +55148 +46993 +47448 +48393 +52832 +50728 +44400 +44036 +49549 +50577 +44396 +51221 +50976 +47588 +48169 +47217 +54077 +51109 +51228 +54788 +46020 +51312 +50836 +44257 +54224 +51201 +54632 +51116 +52824 +51064 +54056 +44221 +44204 +54872 +47564 +45208 +54801 +51312 +44592 +54952 +47140 +50756 +52488 +49900 +48516 +49569 +47805 +50724 +51060 +47532 +46160 +52840 +50689 +49324 +44397 +51228 +44228 +44260 +53448 +49548 +52380 +48276 +48120 +51221 +47532 +48712 +47197 +48520 +46020 +51648 +47000 +47144 +44160 +51208 +47161 +47532 +44592 +48337 +47452 +52509 +52380 +47732 +44592 +44592 +52292 +44260 +49452 +46301 +48708 +54056 +48393 +48512 +54844 +51333 +51221 +51312 +44537 +47140 +48533 +50977 +50612 +44256 +44260 +46041 +45817 +44053 +47581 +52404 +49437 +48264 +51137 +51092 +44228 +50672 +50684 +50669 +44428 +50669 +49340 +51076 +52628 +47497 +49436 +51208 +48373 +44284 +47000 +52628 +52628 +46020 +44288 +48516 +48516 +47548 +44221 +50696 +50756 +44285 +47197 +54840 +51217 +51032 +51452 +44396 +44397 +49849 +51320 +47049 +44053 +49885 +52628 +50500 +44144 +48708 +52488 +53441 +52824 +48712 +48533 +51221 +52488 +52285 +47477 +54868 +44160 +44508 +49901 +46021 +52280 +46020 +44480 +51204 +46972 +51648 +44428 +47749 +48512 +44221 +48337 +51204 +51032 +53440 +49340 +53440 +50556 +48373 +55064 +50808 +45800 +44032 +51333 +44048 +51060 +52840 +48372 +50616 +50672 +50672 +51204 +52632 +50864 +44201 +49324 +50501 +54200 +48373 +50836 +54868 +49436 +50557 +50577 +46980 +50504 +48376 +55064 +44508 +44228 +44508 +49324 +54413 +49444 +53440 +51600 +44148 +47785 +47924 +52488 +44256 +54840 +47144 +47497 +51221 +45224 +50976 +50976 +48120 +49569 +50896 +55012 +50689 +51221 +54200 +51217 +51609 +44040 +50629 +51200 +49692 +50976 +51452 +50948 +47588 +52404 +44537 +51208 +54644 +52628 +50689 +50976 +54889 +47336 +50501 +52380 +54693 +54408 +49892 +44060 +54744 +46988 +50728 +50976 +52828 +47140 +44144 +49888 +52628 +48708 +49444 +44032 +51061 +51204 +48512 +45400 +54596 +46993 +50857 +44257 +51652 +44396 +45813 +50836 +51652 +48169 +49332 +50896 +51116 +47749 +49548 +44032 +50836 +44152 +54889 +44036 +48708 +51088 +44148 +47560 +49692 +50896 +49324 +50689 +49884 +51648 +52572 +50728 +51221 +47448 +50857 +45817 +44368 +52292 +49324 +49849 +53457 +54633 +54812 +44264 +44592 +44256 +44256 +49552 +48152 +46020 +46020 +49692 +51204 +45572 +51656 +49325 +44396 +53748 +52285 +52264 +44216 +44340 +47588 +55093 +44277 +44256 +53441 +53441 +44368 +50577 +51204 +44032 +54632 +52712 +46020 +47217 +48712 +51200 +49345 +49845 +44592 +47144 +54812 +50857 +52280 +44285 +44060 +44060 +45800 +54868 +49353 +49340 +52572 +48393 +50976 +44257 +51109 +54840 +54872 +44480 +50620 +50696 +44256 +44053 +44508 +44508 +51312 +47564 +44540 +51201 +51109 +50501 +46993 +51652 +51333 +47532 +49688 +44221 +49345 +48264 +53685 +44288 +51201 +52636 +47448 +47196 +47049 +48128 +45572 +49548 +49549 +44032 +51200 +53489 +54364 +47197 +44508 +51088 +49324 +52628 +51109 +47564 +47784 +51312 +50577 +51312 +48393 +51452 +49332 +49436 +44428 +54945 +44204 +52509 +44592 +50672 +51109 +49444 +50549 +51060 +49900 +51649 +52488 +52572 +52509 +48149 +49688 +54868 +44452 +51652 +51456 +50900 +51204 +54812 +52632 +51316 +48268 +44048 +47784 +47924 +52712 +50836 +47536 +47448 +44368 +54620 +50980 +48264 +51204 +53441 +47308 +50868 +49692 +46024 +53489 +53489 +47609 +44516 +46321 +49689 +44432 +44432 +45812 +54812 +44592 +45208 +49345 +53440 +45397 +50696 +51200 +46041 +51613 +48516 +44221 +50672 +54945 +49900 +44256 +47448 +47196 +44256 +51452 +55148 +49849 +51088 +49328 +44537 +46160 +51221 +47196 +54620 +52628 +50672 +45804 +49688 +44053 +45800 +47492 +45453 +51008 +44201 +49464 +49340 +52712 +49440 +51221 +44036 +44397 +51396 +50613 +44552 +48149 +52392 +47280 +54413 +55036 +45817 +44228 +49688 +48317 +48317 +51221 +52488 +44284 +54924 +51609 +54644 +44032 +44221 +49437 +44160 +51109 +46020 +51032 +54364 +49569 +50577 +47492 +47141 +52272 +47805 +51008 +46020 +45824 +47732 +44592 +45800 +48712 +54869 +44228 +50684 +45768 +45397 +51032 +44256 +54632 +51008 +45572 +44221 +50684 +44592 +48128 +46020 +44452 +52632 +51228 +44340 +54028 +46321 +51452 +44033 +47732 +50864 +51656 +54889 +52380 +47336 +47280 +52272 +45432 +47168 +52268 +47140 +47736 +54812 +50864 +47140 +51600 +44256 +46021 +50672 +47141 +54224 +51200 +49688 +47144 +51204 +51452 +44221 +51200 +47196 +50684 +47141 +51200 +52828 +44152 +50501 +49548 +54924 +50620 +50668 +47217 +47280 +52488 +54732 +44480 +44144 +49548 +47161 +50549 +52392 +51008 +50976 +50689 +50577 +45453 +48149 +52280 +45212 +44144 +49933 +49453 +52712 +52509 +44428 +44396 +51109 +44396 +50872 +46972 +47140 +52268 +46976 +45817 +44285 +50628 +46988 +46976 +52489 +47448 +47168 +54028 +45229 +50872 +47161 +44288 +55136 +52264 +54872 +55124 +50668 +50984 +54632 +44396 +44396 +52488 +52636 +44201 +54644 +51064 +44432 +55184 +49696 +54633 +50837 +44340 +46993 +44288 +49688 +55148 +50528 +51032 +44592 +54988 +52572 +55136 +44288 +44048 +44288 +44048 +52380 +49341 +44284 +51064 +55136 +54736 +50976 +44216 +54952 +51060 +44032 +50724 +53444 +44540 +44396 +54840 +51201 +54872 +54728 +48516 +55148 +49548 +54988 +55137 +49440 +44048 +52489 +50669 +51021 +50668 +52384 +54872 +51648 +51221 +52264 +48372 +47924 +44592 +48372 +48372 +50780 +44144 +51204 +52824 +49353 +52824 +49341 +51333 +49464 +49464 +47141 +49353 +50864 +50669 +44480 +50508 +50508 +49324 +49452 +47792 +47792 +47792 +50836 +47792 +51312 +50521 +51652 +49373 +53468 +49345 +54785 +49692 +49688 +51092 +44221 +54364 +44217 +44396 +49549 +44557 +50868 +50684 +51060 +48512 +49885 +50629 +51092 +54844 +53444 +44537 +50685 +51652 +50868 +50728 +52628 +48712 +52404 +44540 +49345 +51064 +51312 +52629 +44452 +52268 +50640 +53444 +46160 +44053 +50684 +48712 +46021 +49452 +49452 +49688 +44396 +45800 +51452 +51008 +49457 +50696 +49332 +44033 +44033 +54952 +51456 +51204 +55036 +55036 +44257 +44033 +44201 +51032 +44396 +55036 +45800 +51032 +54952 +47924 +44288 +47784 +47588 +47588 +50528 +51088 +46021 +50977 +48708 +54596 +48708 +48708 +48708 +54224 +52280 +47784 +49548 +49340 +48708 +47784 +44032 +51204 +49884 +47785 +53440 +49692 +51060 +50997 +49440 +44397 +47784 +54840 +44396 +46160 +47784 +45812 +48176 +44397 +53448 +52712 +48708 +49328 +52280 +47784 +49884 +50976 +50976 +53440 +44040 +44148 +53457 +49328 +47336 +47784 +47532 +46041 +50857 +52285 +48169 +47196 +51204 +49548 +51204 +47805 +47196 +44396 +52393 +50472 +51200 +48124 +44432 +47609 +44592 +54588 +45236 +44592 +46020 +49440 +52380 +48516 +50577 +45236 +48337 +48520 +49888 +46041 +44221 +44592 +51064 +49436 +54644 +50577 +50504 +50500 +44537 +44221 +50500 +46041 +45812 +47197 +52397 +50577 +50728 +50728 +49688 +49688 +49849 +48729 +50689 +45817 +49688 +47477 +45769 +53444 +48276 +44452 +51221 +51609 +44396 +54036 +52769 +47732 +53444 +55064 +51312 +54620 +52264 +51089 +52380 +54872 +48276 +45824 +49437 +53441 +47581 +49688 +55128 +49328 +54028 +54620 +52380 +50724 +50724 +49888 +49324 +50668 +54861 +44053 +51648 +50724 +53664 +44396 +53461 +51648 +51648 +44204 +44264 +44264 +50773 +51221 +51221 +50696 +44512 +44361 +53468 +44204 +44553 +48320 +54032 +44048 +47928 +51333 +48169 +55113 +44208 +50724 +50864 +44592 +48516 +49436 +49436 +49900 +44592 +50725 +50868 +50896 +54637 +50672 +52840 +52840 +53456 +50864 +46024 +54840 +54868 +51208 +47785 +45684 +47792 +45813 +47732 +47932 +52649 +52392 +48708 +49324 +51648 +54056 +48152 +52628 +51105 +44396 +51312 +47792 +53469 +54413 +44396 +47141 +47452 +52285 +54413 +44508 +54840 +47568 +47588 +49696 +51200 +49437 +53441 +53440 +53440 +54616 +47140 +47140 +49884 +48156 +48708 +50976 +51204 +52824 +49548 +44256 +52392 +50672 +49324 +54889 +54805 +44396 +49444 +49688 +51068 +44032 +51333 +52380 +48149 +55064 +48708 +48516 +49353 +52636 +47477 +50976 +44256 +54861 +44048 +48277 +47896 +49324 +54840 +54217 +51088 +48276 +51648 +49548 +51200 +51221 +47161 +54252 +54028 +51021 +49324 +51060 +44397 +50900 +51452 +49373 +47336 +54788 +54792 +48512 +48152 +48124 +53468 +50521 +51228 +50689 +44288 +48729 +54805 +47217 +47196 +45800 +46973 +49324 +48156 +53469 +44221 +51008 +51452 +44600 +50557 +54924 +54924 +51116 +49849 +51064 +50948 +54980 +52380 +50577 +47148 +49324 +44228 +51060 +54665 +48372 +49464 +49353 +51648 +51064 +50724 +49464 +44256 +49688 +54861 +45209 +47029 +50504 +46041 +51060 +47784 +47280 +51060 +48120 +52380 +51652 +48177 +50976 +54952 +49444 +54861 +54785 +49549 +44305 +46020 +44208 +44144 +51060 +51452 +50668 +48337 +49692 +55113 +51656 +44305 +50896 +47749 +54876 +50752 +55137 +54028 +50724 +44257 +50976 +51068 +54801 +51221 +52380 +51109 +50836 +51221 +49324 +53441 +52769 +48268 +54924 +51228 +47448 +49328 +54844 +54728 +45453 +49900 +51652 +47148 +44396 +48120 +51208 +51456 +54632 +48712 +48169 +52265 +50976 +55148 +48156 +46160 +50756 +44361 +51021 +54252 +50689 +46988 +54840 +45229 +54620 +47532 +44221 +48512 +50724 +47532 +49692 +48393 +51061 +50837 +46041 +47196 +54644 +52840 +54801 +52649 +54805 +47588 +49688 +51201 +54056 +44204 +49340 +46020 +44260 +48729 +50676 +44036 +44221 +49548 +49453 +45380 +46021 +50857 +54952 +50672 +51221 +50500 +49549 +44400 +50672 +51104 +52404 +47532 +49464 +49324 +47336 +49464 +46020 +46021 +47196 +47000 +47144 +50948 +50752 +50868 +54872 +52377 +54805 +50980 +44036 +52285 +49341 +48512 +44288 +54665 +49688 +49604 +50528 +52384 +50529 +50529 +44277 +50756 +54632 +53440 +46041 +54980 +50752 +44144 +49324 +47049 +54844 +45813 +53441 +51221 +52393 +46301 +44428 +52824 +49437 +54952 +44592 +44404 +44284 +54632 +51076 +52285 +51452 +48393 +54840 +52285 +49689 +52376 +48169 +52825 +47449 +45544 +44397 +46020 +51333 +45572 +51228 +48729 +48708 +49569 +51204 +48708 +45812 +50669 +50696 +50612 +47197 +44048 +48128 +51221 +47497 +50980 +51020 +49772 +44144 +54924 +50977 +49900 +49900 +54364 +49692 +50732 +50672 +47000 +54844 +52397 +50628 +52380 +52392 +47896 +51648 +51020 +47729 +48516 +50672 +47928 +50557 +48708 +52397 +50672 +44040 +51228 +49453 +50672 +49341 +47197 +51648 +46021 +44592 +51216 +48124 +48708 +48512 +50612 +50672 +49900 +49340 +50976 +54872 +51200 +44048 +45212 +53804 +52628 +51221 +44144 +46020 +54413 +49324 +48156 +50501 +50752 +51228 +50808 +50728 +50976 +49444 +52769 +50948 +44032 +54637 +50628 +54861 +49440 +48120 +44040 +47896 +50689 +50672 +50976 +44361 +47896 +49457 +48120 +51116 +54844 +45236 +44508 +47549 +50501 +48176 +48120 +47144 +51021 +51021 +47588 +52392 +51452 +50948 +52268 +45800 +47732 +54924 +48177 +49436 +51609 +48516 +51204 +44148 +54840 +48393 +49345 +50669 +51064 +45812 +49885 +44060 +51221 +54889 +53444 +50864 +48317 +48124 +49884 +46028 +49373 +50857 +44201 +46041 +45800 +52628 +52628 +52628 +51064 +53461 +47469 +54925 +50896 +45224 +48164 +50976 +52380 +52632 +47049 +51204 +48372 +49692 +50676 +52824 +47564 +49845 +47564 +50689 +51088 +44452 +48393 +52380 +49436 +47336 +44508 +44060 +44032 +50689 +48156 +51652 +50672 +45817 +50896 +49604 +50896 +47156 +50836 +47805 +51456 +49849 +54633 +53468 +45813 +50752 +50976 +44396 +49548 +47749 +51088 +49884 +51068 +47200 +47560 +48512 +48120 +47456 +51116 +50724 +44228 +50728 +44053 +51649 +49324 +49548 +44592 +51652 +49688 +50868 +52628 +51008 +50857 +54844 +49548 +49325 +51061 +53457 +49845 +50837 +50808 +48152 +52629 +51200 +48169 +50745 +52285 +47736 +44201 +51204 +54840 +54889 +54736 +51088 +52377 +52824 +54805 +48512 +44152 +54876 +44032 +51116 +46020 +46321 +49688 +54596 +44368 +54924 +44260 +51228 +44256 +47217 +52404 +50684 +49453 +47564 +54805 +49692 +47140 +46988 +46976 +54952 +48712 +53444 +50668 +49688 +54840 +54596 +54364 +52404 +44221 +44396 +49340 +49345 +51201 +48128 +50724 +47196 +54840 +54840 +50976 +49328 +48276 +50857 +44260 +47564 +44221 +50612 +54364 +51201 +50528 +49548 +52832 +49324 +51228 +47197 +47336 +50997 +44540 +44341 +52509 +45572 +52841 +44060 +44053 +47532 +50672 +51312 +44368 +52509 +49692 +45800 +44396 +46321 +50556 +49845 +47729 +45817 +47561 +49345 +54620 +50672 +46988 +50752 +49884 +44148 +48393 +49440 +51032 +47564 +51648 +47581 +44053 +53457 +48533 +49688 +52285 +51109 +52649 +49436 +54872 +44285 +51216 +50616 +49345 +47448 +52572 +51228 +50577 +51109 +51333 +50689 +54861 +49692 +49688 +44288 +54805 +49548 +52509 +44260 +49436 +47156 +51656 +50976 +48324 +50984 +52488 +48156 +49345 +54812 +44208 +47924 +54028 +51665 +48152 +44508 +49689 +51104 +51104 +55137 +47196 +49437 +49552 +46024 +54889 +48124 +50980 +49549 +47308 +51613 +52509 +51060 +51648 +47564 +45800 +45812 +51312 +49900 +44452 +50676 +49548 +46020 +51200 +49328 +55121 +54596 +49328 +51092 +51092 +49436 +46041 +48372 +47536 +50948 +49341 +49341 +51669 +44221 +51669 +54896 +50836 +47196 +52384 +44048 +52492 +54945 +49884 +51452 +54077 +54632 +50868 +47448 +54861 +48373 +54840 +54868 +54620 +44036 +49328 +49437 +50724 +47196 +46976 +45397 +50864 +47492 +48124 +51312 +45817 +54620 +53469 +54644 +50668 +47168 +49436 +54617 +47161 +47564 +51088 +50745 +54924 +52268 +47156 +51204 +50629 +50724 +54872 +52828 +51204 +47564 +45812 +45812 +50613 +49688 +48317 +44144 +45804 +44552 +44201 +53441 +47156 +45453 +44284 +52840 +48516 +49353 +51609 +49688 +50696 +52488 +45813 +52509 +51221 +49836 +51200 +47280 +48712 +47156 +45768 +49845 +49436 +47729 +45397 +50689 +50689 +47805 +51652 +44592 +48708 +51228 +54840 +50976 +52712 +50508 +46020 +51064 +51008 +45824 +51088 +54840 +51221 +45224 +51456 +50528 +48373 +53441 +50976 +48712 +44257 +51104 +50689 +48712 +54876 +47564 +52285 +47925 +52380 +50976 +46973 +52268 +50668 +47168 +50864 +50577 +47196 +49324 +51600 +54805 +46021 +50773 +55064 +49324 +48152 +49900 +54364 +51204 +47568 +47448 +52392 +54253 +49353 +51669 +44257 +48712 +44285 +54732 +47196 +52828 +54620 +50689 +50997 +47141 +51221 +49548 +54805 +49688 +50976 +54644 +54924 +54840 +51200 +47217 +47280 +45824 +48264 +44257 +47280 +49688 +47548 +50689 +48120 +44228 +47156 +52380 +50689 +48516 +47548 +51061 +52392 +50557 +52280 +45824 +50577 +44148 +46976 +48264 +49345 +50672 +52265 +54413 +49453 +47448 +46988 +52509 +44396 +50745 +52392 +48277 +44288 +44432 +50684 +54840 +54805 +49604 +52268 +46976 +50684 +46972 +48120 +49440 +53444 +45817 +44368 +52380 +50689 +54840 +54028 +52489 +46988 +46976 +45229 +47564 +46976 +52380 +54788 +50684 +44277 +50684 +50872 +54868 +54868 +47736 +44305 +51221 +54924 +54952 +54952 +55064 +54861 +47161 +51312 +49440 +44396 +53440 +49324 +51201 +51089 +51116 +51116 +52268 +50577 +44592 +51333 +48516 +45684 +44221 +47928 +48149 +50669 +47196 +52712 +48176 +44060 +48152 +50684 +44060 +48169 +47785 +52488 +47308 +44208 +54637 +46024 +44305 +55124 +51088 +44305 +44305 +50948 +52285 +48320 +45804 +50517 +51221 +52636 +44032 +49548 +48520 +48156 +53440 +53440 +47161 +51320 +54788 +44144 +53444 +54252 +54805 +54252 +53468 +53468 +48337 +50521 +46041 +49452 +51452 +51089 +51216 +50948 +49437 +47144 +52824 +54889 +51452 +54840 +49325 +46976 +44221 +44368 +55100 +54665 +51204 +50676 +54872 +50577 +55092 +55092 +49440 +51020 +50724 +51452 +50836 +49885 +44228 +46041 +54792 +51116 +44060 +54861 +45209 +54633 +52489 +55012 +51613 +48149 +50672 +44340 +44305 +53469 +54924 +44256 +49888 +48264 +49548 +50685 +54924 +44288 +53461 +49888 +50676 +47148 +55148 +48512 +44221 +52384 +48372 +44221 +51089 +51221 +50756 +54924 +54077 +46993 +50672 +54988 +48393 +51201 +47469 +44257 +55148 +49689 +54785 +54984 +44257 +44208 +49548 +55148 +50616 +54620 +51109 +51456 +51228 +52384 +44592 +50724 +44260 +47140 +54632 +50684 +54872 +48124 +44397 +46020 +48176 +48516 +47536 +54844 +54844 +46024 +49437 +49772 +47924 +54861 +52488 +48512 +50508 +52488 +52509 +48393 +48533 +44417 +49444 +49437 +44221 +55124 +51089 +50684 +54785 +50556 +51089 +50977 +44053 +50672 +48708 +44256 +47581 +49849 +52285 +49548 +47749 +45392 +44221 +44404 +49900 +54785 +44508 +51333 +45800 +54616 +55064 +54413 +50672 +55012 +49457 +54889 +52488 +51204 +54589 +50689 +51088 +50948 +45800 +51216 +55148 +45212 +45212 +48520 +50672 +44221 +44221 +50865 +48120 +49332 +50948 +51105 +55124 +44221 +50976 +47588 +54872 +54980 +51312 +50808 +48264 +52628 +49688 +50577 +47148 +51088 +44060 +44256 +44284 +48372 +54840 +50728 +45224 +49885 +47049 +54200 +44396 +53748 +45817 +52628 +49440 +51008 +48149 +50685 +54801 +55148 +47924 +49885 +50728 +54633 +54952 +55148 +50868 +50885 +45236 +49452 +44417 +50836 +54984 +47749 +47156 +54805 +50724 +50857 +44277 +46020 +52285 +47448 +55148 +54596 +54364 +52509 +47197 +44204 +49689 +49845 +47336 +48393 +52572 +51061 +53685 +51089 +51333 +50948 +54840 +51060 +51088 +50724 +50948 +47308 +49440 +44396 +50676 +44221 +47564 +44260 +51201 +52268 +51613 +51104 +55148 +55148 +55137 +51061 +49548 +52824 +54889 +52380 +50685 +52392 +50672 +50684 +49452 +44368 +51316 +46321 +46024 +49888 +52488 +48516 +49324 +50836 +50984 +51064 +46041 +49548 +48516 +48264 +50672 +49900 +46976 +48124 +53461 +51068 +44221 +48124 +44221 +52488 +50689 +50865 +50669 +54364 +46988 +53468 +51312 +52268 +49688 +55148 +44201 +52509 +47156 +55036 +52489 +49453 +47161 +50528 +51032 +54801 +51312 +54924 +45804 +45453 +46988 +50976 +55148 +44256 +54984 +49888 +51452 +46020 +50836 +54785 +46988 +54364 +50689 +47148 +47925 +54253 +49444 +47140 +46989 +50724 +54984 +44305 +49325 +47308 +47141 +45432 +51089 +47308 +49452 +55148 +49453 +47329 +50685 +52268 +50577 +50557 +45212 +52509 +51089 +52649 +44288 +44396 +52384 +48120 +45817 +46976 +52489 +46988 +47161 +52268 +50872 +51312 +51312 +54028 +51137 +54252 +52845 +50896 +50528 +50948 +47308 +54869 +51089 +48512 +50556 +54028 +45796 +50556 +54952 +51312 +49345 +51060 +51109 +49345 +44032 +51109 +52393 +51109 +50857 +51109 +54200 +54032 +48152 +49548 +51204 +54056 +46021 +52285 +53804 +49341 +54200 +52393 +48169 +48149 +52285 +50976 +50857 +46021 +50500 +53489 +50864 +50864 +48712 +44396 +47784 +53440 +47784 +45516 +51064 +47581 +48169 +47784 +47785 +44053 +47932 +50616 +44032 +54056 +49324 +52380 +44256 +50976 +44032 +49373 +47924 +51200 +44204 +44428 +51204 +51088 +53945 +55148 +48169 +44221 +44204 +50724 +44257 +49436 +47532 +47532 +48512 +51032 +44053 +51649 +48516 +44428 +49692 +46021 +44396 +44032 +44148 +48393 +54200 +44284 +44201 +54840 +52628 +55148 +48708 +46973 +44060 +47560 +49340 +50948 +47532 +46024 +46041 +44368 +44053 +55148 +47168 +46021 +47157 +54588 +54364 +48149 +55148 +51452 +50948 +44508 +51452 +44204 +44204 +48156 +48276 +44396 +54872 +49884 +51089 +50504 +55184 +49345 +44305 +47560 +50864 +44053 +54056 +54980 +50500 +51008 +48320 +49345 +50980 +44305 +45684 +51201 +44221 +51473 +47785 +54056 +48708 +44201 +51032 +49457 +54252 +50517 +51060 +54840 +47161 +48708 +54588 +45768 +50836 +50976 +44396 +50900 +51200 +45804 +48149 +44256 +49440 +50689 +55012 +54620 +44368 +54617 +51312 +44600 +49692 +49328 +53457 +50997 +49688 +46041 +47196 +46021 +54801 +49324 +54924 +51137 +50725 +49552 +50668 +54224 +48169 +55148 +44204 +47532 +54801 +51008 +49328 +45229 +54056 +51228 +50672 +49324 +47532 +54620 +54744 +44221 +48176 +48708 +54952 +54056 +44592 +50696 +54364 +51008 +47000 +51089 +44204 +44053 +44260 +50684 +44284 +51333 +48120 +52285 +51032 +51228 +51137 +50528 +47609 +49884 +51320 +49324 +47157 +51204 +46972 +54840 +51333 +54980 +50808 +54413 +50752 +50896 +49457 +51200 +47896 +50948 +52380 +54732 +45800 +50508 +45432 +54840 +44032 +54980 +54200 +50976 +50976 +48120 +49324 +50836 +49552 +48149 +47749 +54876 +50896 +49688 +47560 +50896 +50528 +50725 +49324 +54840 +44053 +51061 +51652 +52285 +54840 +47564 +44221 +51109 +47784 +51109 +52280 +50724 +50724 +54840 +52572 +48516 +44432 +54224 +54224 +54889 +48373 +47536 +55100 +46041 +44368 +47308 +49325 +54952 +49688 +46024 +44201 +44040 +44204 +46021 +50696 +54924 +54744 +54644 +46980 +49440 +54984 +50689 +48712 +54925 +45572 +47805 +50685 +50864 +44305 +49688 +47196 +45804 +54732 +48120 +50577 +54872 +45432 +46972 +54744 +44592 +54869 +54788 +47896 +51088 +49556 +47196 +50725 +49689 +50773 +44508 +44032 +51221 +47477 +54036 +44592 +44053 +51201 +52380 +44036 +44396 +50864 +44592 +50668 +52285 +47560 +44053 +50724 +48512 +48124 +44060 +50500 +48516 +48320 +48169 +47784 +44208 +50980 +44033 +50756 +44048 +47588 +45800 +48712 +50948 +48176 +54788 +52285 +50689 +45824 +50696 +44048 +54217 +51216 +48512 +54788 +49352 +54028 +51088 +44396 +44049 +49548 +48149 +51088 +44032 +50684 +49373 +49888 +51060 +51312 +44032 +48124 +49328 +47448 +54596 +51652 +51652 +44033 +48277 +47217 +51652 +44368 +52380 +47140 +44305 +49440 +51452 +44277 +50672 +54980 +50577 +54980 +45209 +49689 +51452 +44552 +51008 +49692 +48372 +51060 +54693 +50836 +54633 +54805 +44508 +52649 +49696 +48152 +54056 +47196 +45817 +47280 +54844 +47928 +50500 +51221 +51228 +47924 +50724 +49457 +44400 +47588 +54056 +51221 +54788 +52265 +54632 +49440 +50616 +44396 +54788 +46993 +51060 +49688 +48512 +50976 +50556 +55148 +47497 +47532 +51652 +47144 +49604 +49548 +48393 +50756 +51221 +48337 +51092 +49772 +48124 +50669 +44144 +52840 +47000 +48124 +47581 +50976 +51204 +49689 +53441 +48176 +51137 +54840 +44592 +50501 +44260 +52285 +44592 +48393 +50756 +47197 +51333 +44288 +50684 +51312 +48176 +47548 +44552 +48708 +54028 +44053 +53441 +44552 +48277 +44552 +44221 +46020 +44060 +54844 +50864 +47784 +48120 +52632 +49440 +51228 +49457 +45824 +50976 +48124 +44048 +50948 +50672 +54872 +54644 +52380 +51204 +51204 +52285 +47144 +51204 +54616 +45800 +50896 +50556 +45432 +54840 +50689 +50976 +54889 +49436 +49836 +47448 +49324 +50857 +49604 +50836 +50728 +50724 +51652 +51652 +54805 +47560 +46020 +47448 +45817 +47456 +46993 +44340 +51204 +52285 +52264 +44257 +51312 +50836 +50528 +48712 +49436 +49345 +44260 +51204 +51333 +44540 +50696 +52572 +52509 +44592 +47532 +50689 +49548 +44396 +49440 +50724 +50672 +47928 +51109 +51064 +54868 +50689 +52404 +47196 +47924 +46321 +49688 +51613 +49900 +44144 +53461 +51064 +47308 +44221 +49689 +54889 +44340 +48149 +44221 +48264 +51652 +47448 +44592 +54812 +44221 +50528 +48317 +52268 +44144 +51312 +45817 +44368 +44260 +45800 +54924 +54872 +49836 +49688 +51204 +52488 +50668 +49888 +48512 +48712 +49689 +47928 +52712 +46988 +49352 +51228 +49440 +50672 +54869 +44060 +47280 +46021 +47141 +51656 +50976 +47140 +52268 +44221 +51201 +44340 +49688 +46980 +47217 +47196 +47141 +52268 +46976 +50689 +49352 +50577 +55092 +44288 +46020 +52268 +54872 +44284 +54252 +51656 +48149 +54840 +51665 +54364 +54032 +50577 +47168 +50752 +49901 +44053 +52380 +54032 +48516 +48169 +45812 +50745 +44396 +48516 +47784 +53668 +54840 +47161 +51060 +48337 +51088 +48177 +44204 +51109 +52824 +47532 +45817 +47609 +48512 +52628 +48337 +48320 +52628 +44204 +47532 +51088 +50549 +44228 +54632 +47336 +51201 +44396 +47609 +51204 +54077 +47536 +51613 +47924 +48317 +45812 +50745 +50549 +50616 +44048 +45824 +49900 +52392 +52392 +44048 +49345 +49373 +52397 +49888 +49328 +49328 +50976 +49373 +49548 +49340 +50857 +49556 +47197 +48372 +50857 +48393 +47805 +45397 +51204 +50976 +44049 +49888 +49341 +51204 +48520 +45224 +51204 +48337 +51221 +54868 +51221 +44204 +52824 +47609 +48708 +48708 +44396 +49692 +47448 +52285 +47896 +44512 +54032 +48512 +44221 +51204 +44228 +44228 +44204 +50808 +48373 +51204 +47896 +45813 +48152 +44053 +50752 +48373 +45224 +50976 +48516 +51652 +52629 +47924 +47924 +52769 +51204 +54644 +54596 +45813 +52824 +50557 +55092 +47029 +48264 +51032 +48264 +54868 +50668 +50668 +47924 +51456 +51060 +47448 +50668 +52393 +51452 +54868 +45817 +52384 +44592 +50896 +44053 +49849 +52285 +53668 +47280 +44592 +51105 +47448 +52393 +53444 +47536 +44053 +44053 +51452 +48317 +52393 +52393 +54596 +49453 +45800 +49548 +49548 +52404 +51032 +45377 +45236 +51221 +48708 +51208 +47308 +44277 +55128 +44396 +51452 +54616 +49328 +54980 +54617 +47140 +50577 +51652 +50864 +54028 +44060 +54792 +51200 +50500 +52684 +48708 +50669 +47141 +51333 +52285 +54413 +51452 +54252 +54588 +44048 +50500 +51088 +49444 +51200 +45804 +51652 +48277 +51648 +46041 +51200 +51656 +48708 +44396 +51216 +44032 +54788 +51088 +48337 +45776 +51613 +50745 +44221 +51204 +52649 +53685 +51060 +54644 +50976 +54924 +53440 +50577 +52824 +52824 +55124 +50500 +47588 +46160 +44221 +54952 +53685 +46021 +47581 +48708 +49548 +49328 +48512 +51060 +51648 +51340 +53448 +50724 +49324 +47196 +49688 +53444 +44036 +50669 +48533 +51109 +44288 +45812 +48708 +47560 +47548 +52824 +44228 +51204 +50516 +52404 +48708 +48708 +48124 +44256 +53748 +50500 +50948 +50612 +52684 +50500 +52489 +52488 +45800 +52280 +51333 +44228 +50976 +54980 +54413 +46980 +50577 +49900 +46020 +50976 +44284 +50728 +53444 +44256 +54616 +51020 +50696 +47336 +49548 +44432 +44228 +49885 +44288 +50696 +50728 +52377 +52285 +48152 +50808 +47448 +52292 +49688 +54617 +51204 +53457 +48324 +53444 +51109 +54364 +52280 +51313 +46972 +50696 +51333 +52628 +51109 +52292 +49688 +49353 +44032 +51312 +47336 +47336 +47561 +44540 +51008 +50689 +54889 +48373 +50836 +47469 +52488 +47448 +47196 +44036 +54224 +45800 +51020 +54617 +50516 +48152 +44036 +54872 +44340 +45453 +50976 +48120 +50613 +50745 +48317 +47280 +47140 +49436 +45812 +47492 +51204 +47492 +46972 +48324 +51228 +52824 +50577 +49440 +51208 +51669 +47925 +47141 +44285 +45208 +51201 +51204 +49440 +50689 +51008 +44396 +50745 +53444 +51204 +47336 +47144 +46976 +48156 +44036 +44228 +48156 +48156 +46321 +48156 +48177 +48177 +44032 +44553 +51312 +51312 +47784 +51201 +54028 +44060 +54889 +44480 +52404 +47161 +44256 +47568 +51593 +44368 +54077 +44256 +50528 +50500 +54840 +54620 +48317 +54872 +51452 +52380 +49437 +50528 +54952 +54840 +54889 +54840 +52293 +52572 +54840 +54952 +50685 +54028 +54840 +44368 +50528 +49457 +54889 +47141 +54364 +54617 +51089 +54588 +44036 +54252 +52628 +44400 +44396 +51456 +51089 +49324 +44256 +44400 +44400 +52628 +49324 +51068 +51204 +46021 +47749 +44592 +50689 +50864 +48176 +51312 +52649 +48516 +54633 +50689 +54868 +51061 +48156 +50756 +54633 +50521 +51092 +50684 +44048 +54633 +50864 +54924 +48276 +44060 +46020 +48152 +48372 +44396 +49457 +46020 +47197 +51092 +47609 +47532 +51652 +54785 +44048 +48152 +44288 +50516 +45432 +49688 +51452 +53461 +50516 +44256 +47140 +47785 +51221 +44036 +50864 +47609 +47581 +51649 +44592 +50896 +51204 +49345 +49692 +55124 +54812 +48152 +48393 +49692 +48124 +47749 +49457 +49884 +50868 +47732 +54032 +48169 +47896 +53456 +48120 +47784 +44036 +54788 +44396 +49884 +50521 +51221 +50976 +49888 +54876 +45813 +51652 +54889 +44396 +49888 +51060 +49373 +47588 +47568 +51200 +51652 +51652 +47732 +51200 +50896 +51656 +51060 +51088 +51088 +52488 +51105 +54788 +48337 +48120 +47329 +55092 +46041 +48120 +51656 +51060 +51060 +47749 +49692 +52824 +44305 +44428 +47784 +51652 +51312 +50577 +50504 +47589 +51473 +47589 +52265 +51221 +48120 +51456 +52488 +54872 +54872 +51228 +51221 +51340 +44204 +50500 +47564 +54788 +55148 +44260 +47000 +44160 +49452 +51204 +44260 +50756 +47497 +49437 +44221 +47148 +50528 +51221 +51221 +47532 +47000 +49688 +44428 +49688 +49688 +46021 +48708 +48708 +47785 +54844 +50696 +47197 +50669 +52393 +52292 +52628 +50976 +54844 +47568 +54616 +49457 +55092 +44260 +51116 +52632 +44148 +48120 +46020 +54980 +55012 +51228 +44508 +44256 +50696 +47924 +54785 +48268 +50732 +47896 +52628 +44480 +48120 +50745 +44396 +45817 +51652 +44049 +49688 +54624 +44221 +47561 +47749 +47564 +54984 +52293 +51109 +50696 +51312 +44396 +47561 +49692 +51333 +47336 +47532 +47564 +54364 +45817 +44508 +47805 +54872 +49692 +48324 +55148 +52488 +48149 +52489 +51669 +49900 +49692 +47308 +52384 +44036 +44048 +50685 +55100 +46041 +47924 +47536 +44480 +54620 +50685 +50528 +54924 +52392 +44160 +44256 +51312 +44396 +48120 +52628 +49548 +45397 +54984 +50836 +54869 +47805 +47732 +48712 +47732 +47140 +44305 +54869 +54788 +47732 +54617 +47196 +47805 +47329 +44288 +47564 +47532 +52489 +45817 +44048 +52489 +47784 +44557 +44557 +50984 +49325 +49353 +54869 +49884 +51032 +49888 +51648 +54980 +49888 +50689 +44396 +51452 +44368 +51340 +45800 +50780 +44368 +51613 +54869 +54056 +49437 +51221 +52404 +44592 +51088 +50504 +50732 +53441 +44264 +44053 +49437 +48152 +44305 +53461 +47560 +49324 +45800 +44208 +47168 +48512 +48124 +45208 +54925 +44053 +51648 +52404 +44048 +44060 +48516 +50517 +50500 +48708 +52384 +50672 +49604 +51204 +52264 +46024 +50752 +50672 +44552 +54413 +44161 +47568 +49324 +51200 +50725 +46972 +53440 +53440 +51648 +52292 +52840 +50529 +54224 +47784 +51452 +47549 +54212 +45432 +48729 +54077 +47161 +54252 +47141 +54028 +48156 +48149 +49888 +51105 +50528 +47140 +47217 +46041 +50857 +47141 +44305 +52636 +44081 +51204 +51452 +44305 +44508 +50517 +45544 +54624 +47456 +50948 +50528 +46973 +44036 +54805 +50672 +46041 +54077 +49436 +47196 +54861 +49437 +54801 +44368 +54924 +50528 +44368 +50669 +44081 +52488 +44257 +52380 +46993 +44361 +50668 +54952 +54801 +47581 +47217 +50857 +52264 +52377 +50500 +50976 +44221 +47581 +54617 +50672 +49324 +44260 +44257 +51201 +54868 +45544 +51104 +54744 +54617 +49709 +53441 +44081 +48533 +50628 +52628 +44277 +51137 +44592 +51333 +52397 +47548 +44512 +54028 +51221 +48124 +51312 +51204 +54616 +45433 +50528 +49604 +51089 +47497 +48708 +51020 +45824 +47924 +44592 +47200 +50756 +51204 +44053 +48176 +51201 +52280 +50672 +50516 +49444 +51221 +46021 +53440 +44040 +50689 +54200 +44061 +48317 +50808 +49437 +52840 +45800 +54616 +53461 +51228 +45516 +54077 +44048 +51228 +53444 +49324 +51221 +44228 +49692 +54413 +49440 +54869 +54869 +47560 +44277 +45380 +49556 +50529 +51088 +47448 +49324 +45817 +48169 +54876 +48708 +50808 +49345 +45516 +52264 +51204 +54624 +44228 +47156 +48152 +50528 +50868 +53748 +52293 +44060 +46989 +48512 +50836 +44260 +51204 +52280 +52404 +50724 +54077 +47449 +45544 +44048 +52285 +52280 +51008 +47280 +54364 +51201 +47560 +52377 +52572 +51333 +44221 +49692 +47452 +44592 +49440 +47196 +44144 +51613 +46321 +44036 +49437 +47536 +51221 +51216 +44305 +48152 +51105 +44368 +51228 +47141 +44036 +52488 +55148 +51109 +44368 +46024 +54744 +50865 +52628 +44368 +44201 +53469 +47280 +44040 +52488 +44553 +44033 +45817 +51032 +44053 +48317 +48317 +50668 +48712 +44553 +50528 +44060 +44048 +50668 +50672 +47805 +54252 +51088 +48149 +50577 +47568 +52272 +54788 +44305 +47280 +47280 +51656 +50668 +47141 +48152 +54869 +54252 +50689 +47141 +47217 +47217 +47560 +48149 +49345 +44288 +46988 +52272 +50516 +49884 +49884 +47168 +51081 +49324 +50557 +49324 +44592 +50556 +47560 +44060 +50836 +52380 +44592 +44592 +51648 +54077 +45824 +52649 +51076 +51032 +49437 +50864 +51656 +52488 +48520 +48512 +48708 +51312 +51648 +49328 +48120 +51312 +44144 +54840 +52629 +49888 +49688 +49324 +49884 +45768 +47140 +50864 +49345 +50724 +51312 +54364 +51452 +44452 +54801 +51648 +51228 +44256 +51221 +44256 +49464 +52840 +49888 +44060 +44260 +52404 +46020 +54868 +46020 +44592 +44256 +44288 +52544 +47497 +45433 +54408 +44552 +46020 +49885 +47197 +49440 +48708 +51200 +55064 +50976 +44228 +51064 +51088 +54868 +51221 +48373 +50896 +50864 +49440 +50577 +51228 +51032 +47588 +49324 +52404 +48176 +51089 +51652 +50689 +51649 +44256 +45817 +49324 +47560 +53457 +48512 +55012 +44592 +50612 +55148 +44592 +49324 +49440 +45812 +54924 +49688 +50696 +45453 +45768 +46020 +47140 +50577 +50557 +51228 +52268 +47448 +50976 +50864 +50745 +47532 +49444 +44552 +54868 +46021 +49688 +49324 +51064 +46021 +51088 +53440 +44036 +50696 +49440 +48337 +50672 +52628 +52628 +52649 +48516 +47784 +50868 +44284 +52488 +51648 +44081 +48708 +51648 +50612 +48708 +44256 +48152 +54588 +45768 +47141 +50976 +51312 +48708 +48156 +47161 +47568 +52845 +51216 +51652 +50521 +51089 +51656 +51648 +52636 +44144 +51088 +54876 +51201 +52845 +46041 +52824 +54876 +54633 +51064 +51088 +51656 +44040 +51076 +53804 +51060 +51452 +50696 +45453 +48512 +55148 +44256 +46993 +48512 +52769 +49464 +47140 +44260 +44036 +44081 +51228 +51221 +46020 +52488 +49464 +50500 +47452 +47449 +44256 +51089 +51076 +51456 +48169 +54056 +44592 +51649 +52824 +44512 +45733 +54077 +44284 +54408 +51312 +51320 +50865 +49548 +49688 +54693 +51032 +49444 +48320 +44592 +48373 +48317 +45208 +44060 +51333 +51333 +49436 +52845 +46020 +51008 +47156 +51088 +50865 +51649 +52629 +51652 +52824 +46020 +44032 +44228 +44256 +44256 +44257 +50857 +49688 +50857 +51228 +44053 +47785 +49340 +48120 +52824 +44592 +47449 +49548 +51201 +50689 +51008 +52628 +49353 +51312 +51061 +54889 +52393 +44592 +49688 +54952 +48373 +44368 +52265 +46041 +52572 +47140 +49688 +45453 +49353 +50696 +50577 +45208 +50668 +48712 +51228 +53748 +50728 +52845 +54869 +44305 +47140 +54364 +49353 +50577 +51089 +47532 +52268 +54792 +50508 +44396 +44417 +49437 +44417 +44277 +50864 +49340 +51221 +50836 +52380 +46164 +46028 +47196 +51208 +52265 +50836 +54212 +48149 +50836 +48337 +50752 +51460 +44368 +44508 +51312 +50724 +44508 +50836 +51656 +52285 +50836 +51312 +44368 +52285 +44400 +54952 +49457 +44396 +52268 +50752 +45812 +44404 +44284 +52524 +54925 +49556 +44288 +44508 +46160 +53441 +51020 +50752 +50752 +50508 +50976 +44396 +44417 +50836 +50836 +51312 +47308 +50976 +51204 +51312 +44396 +47308 +49892 +50724 +44508 +52285 +49548 +44288 +44288 +47469 +53489 +52712 +47308 +51312 +52268 +44508 +44417 +46160 +51312 +47217 +51208 +51077 +52376 +49901 +48512 +52380 +52489 +54945 +44592 +47784 +49849 +48516 +49688 +47896 +44396 +52280 +51200 +47161 +47329 +48337 +44221 +44221 +51109 +48177 +49324 +51456 +44361 +46041 +49569 +51221 +51312 +51032 +49688 +51221 +44396 +44040 +48337 +45800 +47532 +51204 +51613 +46321 +51456 +54868 +44221 +44048 +44221 +51453 +52629 +47477 +48393 +50864 +51648 +44036 +47581 +52629 +54872 +46021 +44228 +54952 +54028 +49328 +44553 +49888 +51312 +49692 +50500 +52404 +50896 +54848 +54637 +49548 +44552 +48708 +54596 +44204 +51060 +46041 +51216 +49373 +44049 +51201 +51460 +45225 +53468 +44256 +51077 +52264 +48124 +54252 +49548 +49324 +48512 +52293 +48516 +54056 +45804 +51088 +51228 +47161 +52265 +45432 +48520 +44396 +48264 +44032 +44032 +48276 +49884 +47896 +54028 +49464 +51204 +44277 +47217 +47749 +48320 +46973 +44228 +44257 +51648 +51064 +50836 +49440 +54596 +44277 +44292 +46321 +54952 +44540 +51204 +49692 +50668 +48268 +44305 +52629 +53685 +44228 +45813 +54665 +52293 +51473 +44396 +47280 +54596 +49324 +45817 +51137 +52293 +48512 +44512 +46020 +54028 +47532 +46993 +44144 +44288 +44204 +54632 +53685 +44049 +51648 +49457 +49328 +49436 +51200 +51089 +49548 +49548 +51221 +54801 +50672 +44256 +53132 +44036 +51452 +44305 +44053 +50868 +50724 +52392 +49548 +44036 +48512 +47000 +52628 +48708 +54224 +48708 +44060 +51648 +44340 +50612 +51204 +51312 +44256 +54840 +51137 +51221 +49341 +52628 +47197 +48149 +44592 +47548 +49328 +44512 +48373 +52264 +44256 +44277 +44216 +44428 +44512 +52628 +44288 +50896 +52293 +51320 +54028 +52293 +54801 +53441 +46972 +45800 +49548 +50557 +51204 +55012 +54200 +49692 +49345 +49440 +48337 +51104 +49457 +54840 +51060 +51200 +50557 +51456 +47456 +50725 +46041 +49548 +49341 +51208 +54889 +49457 +48120 +48276 +52380 +51204 +54200 +48393 +52629 +54861 +54801 +54980 +52628 +47896 +44048 +44256 +44452 +49885 +47336 +50868 +54633 +45817 +54869 +52628 +44256 +48708 +50557 +51613 +44396 +45384 +52380 +49548 +52268 +44277 +48169 +46021 +47456 +48708 +52265 +51200 +49324 +51648 +52629 +52285 +47217 +46988 +51204 +48512 +47532 +49688 +54596 +51201 +52509 +50616 +48393 +51104 +52268 +54056 +54364 +46160 +50612 +47736 +51204 +52293 +49324 +44452 +51060 +54840 +49328 +44396 +51313 +48337 +52628 +44592 +44452 +49549 +47336 +52265 +47197 +45380 +49324 +52268 +51312 +49324 +47477 +45800 +47049 +49548 +48149 +47729 +49884 +53461 +47308 +45800 +51216 +48372 +44036 +48124 +44452 +45824 +44368 +46321 +54889 +49692 +47196 +51104 +49548 +47196 +49436 +51104 +44592 +54056 +44592 +48708 +44036 +44144 +47196 +47197 +52392 +54028 +45817 +49352 +44284 +44396 +52392 +50684 +48512 +51452 +47280 +49885 +46988 +44452 +50668 +54869 +54840 +51652 +45824 +51201 +49453 +51452 +51201 +51032 +44592 +46321 +52268 +51452 +48264 +49688 +52628 +52392 +44285 +46321 +47197 +47196 +51204 +53441 +50689 +50612 +47280 +45453 +52392 +47156 +46976 +52392 +50557 +51333 +44144 +47156 +48320 +45800 +52268 +47532 +49324 +46972 +50689 +54869 +52265 +50976 +48120 +51201 +49901 +49888 +52293 +49888 +50668 +55128 +47448 +49440 +51088 +51064 +52492 +51109 +52380 +44396 +48708 +54032 +47932 +49324 +44053 +45684 +48516 +48708 +49688 +51064 +47784 +52377 +53468 +54840 +54028 +51077 +44048 +44144 +48149 +47568 +51312 +51216 +51452 +47532 +49689 +51312 +47140 +49436 +49549 +54861 +46041 +51088 +52293 +50900 +51453 +47536 +51109 +48177 +45432 +48516 +51060 +44257 +54633 +47049 +44036 +48512 +47049 +52268 +44081 +47532 +50900 +47197 +44397 +44592 +49688 +54056 +51109 +47536 +51333 +51221 +44284 +54868 +49340 +49340 +45817 +48320 +50976 +47732 +54980 +49436 +51333 +54840 +51204 +52272 +51088 +47532 +49444 +48512 +45769 +48708 +44257 +49688 +44256 +45817 +44396 +44032 +51312 +51109 +45817 +48120 +49340 +48516 +51312 +44053 +44053 +47784 +49340 +49328 +45208 +52824 +50577 +44053 +44340 +48317 +54872 +49436 +51333 +54632 +45208 +45800 +50620 +47140 +52265 +51201 +50620 +51312 +46976 +47729 +47729 +44508 +44228 +44277 +51221 +44508 +44277 +44592 +52264 +51452 +49692 +50557 +54861 +50864 +55128 +54872 +51064 +47928 +47928 +44396 +45225 +52824 +46160 +50976 +48512 +44228 +49436 +49692 +48708 +51652 +49324 +44361 +51648 +44553 +48516 +50868 +51076 +45812 +44552 +49548 +48169 +49353 +52572 +44508 +52272 +54028 +44596 +48512 +51656 +52376 +51088 +51452 +54945 +52272 +45572 +49464 +48520 +49444 +49888 +54588 +51200 +44144 +47161 +51452 +49548 +44048 +50521 +48520 +53440 +51652 +53468 +52636 +49884 +51333 +54788 +51312 +44221 +48152 +44396 +47589 +49696 +48376 +44305 +44221 +51076 +54665 +49444 +44208 +51452 +49688 +44312 +48177 +51208 +44305 +54848 +52264 +54872 +44557 +51312 +54792 +44256 +44368 +51204 +44060 +46973 +54788 +48337 +49440 +48373 +44553 +46041 +50997 +51312 +51064 +47448 +49444 +44428 +49436 +54644 +51656 +53685 +49324 +44053 +49345 +54924 +51208 +51665 +44204 +44204 +52824 +47928 +51652 +47140 +49457 +44396 +49548 +48169 +53685 +52488 +54872 +52840 +44221 +49688 +51228 +49688 +54801 +44361 +44201 +48156 +51221 +49688 +53468 +44260 +48512 +44221 +54840 +51648 +50672 +44221 +48393 +44228 +49549 +51060 +51333 +52840 +53440 +47140 +45433 +47049 +51452 +44428 +49548 +44592 +44592 +51456 +44592 +50896 +52380 +49440 +49688 +50976 +44228 +46020 +44288 +44053 +47581 +48533 +52384 +52292 +44284 +52572 +47452 +47448 +44592 +53444 +48317 +51089 +45733 +47732 +52376 +52393 +45812 +51333 +44260 +52628 +49437 +52824 +54665 +47049 +44596 +48708 +50976 +48124 +50669 +52509 +48264 +47197 +49436 +50689 +49345 +51088 +49436 +49345 +54632 +44201 +49440 +50672 +47732 +51665 +45800 +51333 +52404 +48124 +47896 +50672 +49444 +48372 +49884 +52628 +54200 +50756 +44557 +52509 +47732 +50948 +48512 +50948 +53804 +44396 +47896 +54792 +50672 +51333 +54200 +54844 +51064 +51228 +50780 +52824 +50728 +51221 +51204 +53468 +54616 +50672 +52509 +49436 +49849 +50948 +44557 +49440 +50689 +51652 +50529 +52628 +50669 +48169 +44264 +48152 +52628 +44216 +52265 +51204 +49345 +50728 +54624 +52572 +44228 +50857 +46020 +48149 +50868 +51652 +54840 +50837 +44257 +51116 +46321 +54788 +49548 +51652 +51333 +51312 +54889 +52292 +54596 +48393 +52629 +47532 +52629 +50672 +49604 +51333 +47448 +44204 +44204 +47564 +51665 +45572 +47561 +54364 +47144 +48120 +49440 +52509 +51201 +49340 +49604 +48264 +47456 +48533 +50696 +49548 +47924 +50836 +44053 +54844 +49452 +44228 +47532 +49688 +50672 +49440 +49464 +44368 +51613 +52524 +51649 +49440 +49328 +47536 +50984 +48264 +47308 +51089 +51456 +44036 +50836 +52380 +50696 +49688 +44452 +54925 +52268 +55148 +44053 +50868 +45804 +49849 +54924 +44228 +49353 +44204 +44053 +54788 +51312 +52509 +54644 +44201 +48317 +45800 +50613 +45453 +49688 +50669 +50724 +49688 +44228 +48712 +44204 +46988 +48373 +54984 +52268 +51088 +48393 +50557 +47925 +47280 +55184 +52268 +44305 +50864 +49549 +47448 +49452 +51204 +44368 +47196 +51204 +50689 +51116 +50577 +49452 +49688 +52268 +46972 +47532 +46021 +46988 +47448 +47144 +47729 +44508 +50864 +54861 +51452 +49452 +55128 +50557 +44553 +54872 +44305 +44592 +51064 +50948 +50868 +44361 +49692 +48708 +49324 +47581 +45225 +51076 +51333 +47452 +48516 +51648 +47928 +48169 +51200 +51652 +45684 +49436 +49440 +44048 +49444 +48520 +47144 +51312 +49888 +49464 +51649 +51333 +52628 +48152 +48520 +52636 +49548 +50669 +44221 +53468 +48169 +50997 +44208 +44256 +50836 +51656 +54665 +54924 +44553 +54788 +44053 +46973 +51208 +44368 +53685 +44221 +52488 +44204 +49688 +44201 +49688 +51312 +44228 +51228 +51201 +49436 +47497 +50689 +49549 +44592 +48708 +51089 +49345 +44260 +49849 +50976 +47732 +49688 +48533 +51452 +46020 +47448 +44428 +51333 +53444 +44288 +47197 +52384 +52824 +44201 +49345 +54632 +47732 +46988 +51228 +47896 +51665 +50728 +44452 +49884 +49688 +45800 +54200 +49440 +44396 +52628 +50756 +52404 +47336 +54200 +48124 +50672 +51652 +48149 +50837 +51652 +48393 +52572 +54840 +51204 +47532 +50529 +44216 +48712 +54364 +47564 +47448 +50689 +52629 +47924 +49548 +55184 +47308 +49440 +51613 +44053 +44204 +51312 +54788 +44201 +52268 +48512 +49324 +54637 +48512 +44208 +48512 +44208 +48156 +48337 +54637 +51312 +54637 +50549 +50549 +44221 +54616 +44288 +51456 +45812 +51109 +44228 +50745 +50549 +47280 +45812 +47196 +44288 +47581 +47581 +47581 +47581 +54620 +46972 +46972 +48512 +48120 +48268 +44256 +51452 +51200 +47784 +44256 +48124 +44053 +54028 +44312 +51228 +44204 +48512 +49340 +50628 +51312 +51396 +44312 +52384 +50669 +52824 +50516 +48268 +45224 +49436 +49884 +48708 +47588 +47448 +54028 +48268 +51060 +51312 +50948 +54596 +44228 +51613 +46041 +47448 +44592 +44204 +47729 +51312 +45208 +48708 +44592 +44592 +46976 +50577 +48120 +44053 +45804 +48120 +50577 +50976 +50976 +48516 +54028 +44256 +50577 +44256 +44053 +51109 +44256 +50689 +51032 +51200 +51200 +49688 +44036 +51060 +51060 +50997 +44400 +44400 +44036 +54872 +52572 +49440 +51032 +47049 +44053 +44216 +50976 +44081 +44040 +53444 +50756 +55148 +48264 +51204 +48516 +51204 +47156 +47532 +44081 +45572 +50521 +52268 +50864 +44277 +50696 +52649 +50745 +48516 +44361 +49884 +49884 +52712 +48520 +54633 +48516 +51061 +46989 +51061 +54588 +47161 +47308 +51656 +44396 +49845 +55184 +49345 +55137 +55137 +44144 +44368 +54896 +55064 +49548 +49341 +44361 +44053 +51201 +52712 +48708 +50864 +49341 +49884 +51200 +51204 +55012 +49884 +54200 +51333 +50756 +55064 +54980 +54645 +54617 +54620 +44256 +54364 +50696 +47144 +54980 +44256 +47536 +48516 +44368 +44256 +48264 +51061 +54896 +54788 +46020 +50836 +45432 +47196 +44256 +47784 +51088 +44592 +44396 +44396 +44396 +51656 +51656 +51060 +49324 +50672 +45236 +45236 +45800 +47280 +51221 +51088 +44221 +52488 +47784 +50868 +54028 +54588 +52824 +49324 +52376 +44032 +44144 +54633 +49436 +47196 +47452 +51201 +45817 +50864 +47336 +45572 +44053 +48169 +52272 +47336 +44592 +47196 +54869 +50864 +47560 +54924 +51060 +52393 +51221 +50556 +53457 +50857 +44552 +50868 +52824 +45812 +53456 +44361 +44221 +51649 +48516 +49453 +45812 +51652 +52384 +50689 +51221 +50976 +50760 +47308 +47217 +51649 +45397 +51312 +51060 +50508 +51217 +44292 +49436 +47144 +54840 +49457 +47157 +48729 +51221 +52712 +48708 +51200 +44341 +47928 +49436 +48337 +52509 +51221 +50500 +51221 +44396 +52509 +44508 +47144 +50808 +52509 +47144 +50745 +44480 +47144 +50672 +52509 +50724 +49457 +50857 +52397 +50808 +49453 +51649 +45812 +45397 +51208 +51201 +52397 +52397 +45453 +50984 +49324 +51312 +49324 +49689 +51060 +49689 +49324 +51312 +51312 +50977 +50613 +45713 +44592 +44396 +44557 +51312 +55128 +51201 +54872 +54889 +51060 +51064 +52488 +50668 +51452 +50672 +46160 +54637 +50997 +44036 +52264 +50724 +51109 +44256 +51648 +44552 +48512 +48708 +48516 +48176 +48169 +44204 +48169 +49692 +50864 +45580 +54637 +44557 +50672 +44361 +50977 +47928 +54952 +44592 +48708 +55100 +55184 +55184 +54224 +44557 +51221 +53468 +49888 +51333 +52285 +54801 +49888 +50948 +51452 +51656 +45800 +54596 +48156 +48149 +44396 +51216 +48176 +44256 +53468 +51088 +44404 +51648 +45768 +54217 +51088 +48512 +48152 +51652 +54788 +51312 +48176 +44049 +49457 +51648 +54252 +47924 +44144 +54840 +44032 +51060 +50980 +49436 +50521 +47217 +46041 +52852 +47140 +44221 +45432 +50672 +48169 +44256 +51060 +44305 +54644 +44033 +46041 +52824 +54952 +55113 +55113 +51060 +50508 +54665 +48320 +45733 +51088 +44508 +49849 +51312 +51648 +52712 +47588 +54801 +52712 +54801 +47589 +47589 +52377 +54801 +45380 +54924 +49332 +51109 +51228 +45516 +48120 +45453 +47144 +47564 +48156 +47928 +50756 +44396 +44033 +44221 +50976 +54805 +51340 +47148 +51204 +51221 +47588 +49692 +49888 +54801 +53945 +52572 +52489 +49688 +55124 +53448 +54252 +51221 +53748 +54252 +46160 +53448 +45544 +45516 +48708 +50724 +46972 +47532 +44160 +52285 +49688 +52393 +47049 +49688 +48708 +54364 +47452 +48320 +44284 +44480 +49688 +45812 +51204 +45516 +51221 +44060 +49437 +50529 +50628 +51076 +49888 +52384 +48512 +48512 +44144 +48708 +44053 +50756 +46041 +48708 +44341 +51333 +51221 +50501 +47588 +48512 +51204 +51656 +51452 +46972 +50864 +51228 +50516 +49457 +45516 +49688 +52380 +45224 +50868 +51333 +50976 +50501 +49884 +46028 +50836 +44148 +50808 +44033 +50976 +44032 +45800 +54589 +51109 +48373 +49440 +45768 +47732 +50732 +46321 +53748 +48169 +44216 +47140 +50732 +49688 +45817 +49548 +52628 +44201 +51061 +48149 +47308 +52377 +48708 +54644 +44256 +47140 +48712 +44396 +51109 +47197 +44341 +48169 +52572 +54364 +44053 +48512 +45817 +47561 +49836 +51204 +47456 +44368 +51081 +47336 +51656 +49444 +46976 +47144 +46041 +54077 +45768 +49884 +47308 +52712 +44340 +54952 +46321 +48264 +51649 +52488 +49440 +47924 +52684 +50980 +54693 +49688 +48516 +51025 +51204 +44284 +45812 +54924 +45453 +46164 +47156 +48708 +50745 +44089 +52489 +50613 +51204 +46989 +44160 +51312 +46164 +44256 +51228 +52712 +48712 +54984 +45432 +54869 +51109 +54788 +54364 +55141 +44260 +45225 +50672 +47140 +54869 +51104 +46972 +44396 +51109 +47144 +45768 +51104 +49888 +54788 +50752 +44305 +51109 +51076 +44305 +51088 +44368 +50620 +52712 +44592 +44256 +52712 +47732 +50620 +51648 +52824 +44201 +52380 +51656 +51652 +49688 +45824 +51652 +44396 +54632 +50976 +49341 +50836 +50668 +50857 +49437 +49437 +44396 +50668 +50668 +55141 +44144 +44396 +55124 +49444 +49324 +49324 +44396 +51648 +45812 +49436 +51648 +52392 +45812 +54252 +54252 +44288 +54868 +52392 +52380 +49692 +54624 +47924 +51452 +46020 +44053 +49328 +52264 +48276 +54028 +53468 +48276 +54032 +49440 +54637 +48169 +48152 +48708 +54840 +51473 +54632 +52285 +47161 +52629 +52293 +53440 +48149 +54788 +44032 +49440 +44049 +47196 +44277 +48169 +49436 +44284 +48512 +51312 +48393 +47532 +49548 +50668 +46993 +51221 +47448 +48120 +48149 +47609 +45392 +44144 +54889 +49688 +51333 +54200 +47784 +51217 +46020 +48169 +52264 +51061 +49548 +52285 +51312 +47336 +45824 +49444 +50836 +46041 +46321 +45817 +51109 +47196 +51032 +51665 +54632 +54869 +47805 +51228 +47196 +47196 +52280 +49933 +44036 +50577 +44036 +44036 +49353 +50684 +48520 +48337 +50684 +50684 +52488 +52488 +50696 +47477 +51221 +44396 +50528 +51081 +52488 +44508 +51208 +48393 +54872 +51061 +52264 +47732 +48120 +44036 +52380 +50864 +50864 +51089 +44417 +53664 +54616 +44592 +47581 +51088 +55036 +50976 +52824 +54693 +48708 +48512 +46164 +49692 +47924 +51648 +44152 +49340 +47928 +44160 +51064 +48512 +44508 +44060 +54840 +49436 +44553 +44552 +44592 +50896 +48516 +54028 +50696 +49900 +44592 +54868 +54868 +48169 +54848 +44208 +44396 +51648 +50868 +44540 +50836 +52628 +47784 +50500 +48708 +51081 +54637 +51333 +51020 +50864 +48320 +50696 +51208 +50948 +47141 +54596 +50529 +54788 +51109 +52285 +51200 +49548 +51228 +50896 +50684 +47161 +53468 +52488 +51201 +47896 +44221 +47549 +50857 +44032 +47785 +54056 +54252 +44396 +48124 +51060 +51060 +44144 +48708 +50557 +44256 +51200 +45768 +48177 +48337 +51216 +49688 +50836 +49440 +48516 +54861 +50689 +51089 +46041 +51200 +51656 +45216 +44048 +54840 +54217 +47588 +48512 +49373 +44256 +54596 +48120 +48520 +51460 +47924 +48276 +44032 +47784 +47896 +48156 +51088 +47568 +51088 +51200 +52824 +44537 +44221 +47217 +52509 +51312 +50896 +54792 +53664 +44221 +44033 +47749 +47140 +50997 +51064 +44036 +52380 +52292 +49888 +50984 +55092 +51088 +47148 +50724 +45796 +44508 +52293 +52649 +51088 +44396 +44305 +47581 +52824 +44368 +52488 +48373 +50976 +49688 +51088 +44053 +54924 +51064 +45796 +54056 +50857 +50668 +52649 +47581 +46041 +51473 +44204 +52629 +49692 +54872 +44284 +51204 +54644 +45813 +54805 +54665 +52380 +52488 +54805 +51060 +50504 +44368 +52824 +51076 +52380 +51060 +54889 +48337 +47140 +44540 +48176 +49696 +51109 +45804 +54801 +50836 +54596 +51593 +44368 +54924 +51228 +53461 +50864 +49569 +54984 +54805 +46973 +54805 +45812 +49888 +49552 +51020 +47588 +54861 +51312 +50557 +46160 +48120 +47532 +46160 +48512 +51064 +51020 +54616 +48156 +52488 +50980 +51201 +46020 +50976 +49688 +49457 +49888 +47924 +48324 +55148 +44221 +47532 +48372 +51312 +47792 +47532 +51109 +51089 +53448 +52636 +49324 +49324 +52840 +48393 +44144 +47588 +47609 +54665 +44221 +52264 +49888 +44400 +50672 +51221 +51312 +51340 +50756 +54632 +50976 +52265 +54801 +47581 +49689 +45684 +49548 +54788 +46993 +48512 +50500 +47561 +47732 +51593 +45224 +47785 +44048 +47000 +47144 +49884 +50752 +53664 +47156 +54925 +50976 +50725 +50549 +45734 +49692 +47581 +47581 +51088 +50872 +52397 +51201 +44144 +46041 +44288 +52628 +44256 +46989 +45433 +44397 +48120 +44512 +51076 +44260 +54616 +48373 +52824 +44256 +44284 +48373 +47200 +52285 +51452 +49709 +49688 +51092 +47928 +52292 +48156 +47532 +46020 +54028 +54632 +54252 +44596 +44428 +49437 +44540 +51200 +51217 +48372 +53461 +44540 +52488 +53468 +44221 +54868 +44256 +45733 +48708 +44552 +50516 +47581 +48393 +52628 +50612 +51200 +44204 +47492 +45812 +49689 +52392 +46020 +54840 +44592 +54868 +52684 +46020 +52632 +48708 +51109 +54872 +48708 +47000 +52376 +47609 +54217 +50948 +45812 +49341 +52628 +50616 +51032 +52488 +51228 +50756 +52293 +45236 +52840 +53441 +44396 +52393 +46972 +48708 +54872 +48533 +48149 +54252 +51221 +54805 +50689 +50689 +49548 +49332 +52628 +44284 +54693 +47564 +50864 +50976 +48512 +47144 +55012 +55012 +45224 +51593 +50752 +52632 +49548 +50976 +54200 +47784 +50516 +50501 +45209 +50689 +54876 +44292 +44053 +47732 +51201 +51452 +51200 +48372 +50976 +49884 +50685 +50516 +44396 +44036 +48373 +47456 +51204 +48516 +54413 +54861 +54861 +54980 +50672 +46028 +51200 +52824 +49345 +49900 +44040 +44228 +44221 +48120 +54889 +49340 +54252 +44060 +46041 +51312 +51204 +50948 +48156 +50808 +54028 +44228 +54840 +51109 +44032 +45800 +50557 +51456 +52509 +52380 +50948 +52840 +44508 +51221 +54984 +49324 +49884 +51609 +46988 +51333 +50836 +50896 +48120 +50728 +49696 +52404 +51204 +44288 +50684 +44277 +52380 +44060 +44340 +44275 +51109 +47336 +50948 +54028 +50976 +49688 +51008 +49324 +49692 +49884 +50728 +51652 +46993 +45208 +47805 +47141 +44208 +49328 +50896 +47532 +44396 +49885 +48169 +51228 +49436 +46020 +47448 +54869 +51216 +52380 +51312 +48149 +52264 +50896 +52628 +50977 +44340 +48152 +54252 +54252 +45225 +49325 +54812 +48516 +50868 +51613 +44216 +51656 +50557 +52285 +51008 +48120 +54840 +49552 +51652 +47749 +49688 +52629 +47448 +49437 +44264 +46993 +50857 +50745 +44060 +51340 +49884 +45817 +46972 +50837 +49324 +54620 +48176 +50836 +44228 +48708 +51333 +44260 +51340 +49688 +52293 +48176 +46988 +46020 +44228 +47532 +49340 +46993 +50668 +47497 +54805 +47589 +51312 +49688 +47784 +53685 +52629 +48393 +50516 +50672 +52509 +49324 +54217 +44396 +44540 +49692 +52393 +50976 +53748 +51312 +50612 +50696 +51665 +50836 +54596 +47196 +49689 +48512 +51109 +47448 +44053 +47564 +50672 +47497 +44592 +54364 +44260 +54620 +51201 +49549 +47197 +49444 +49345 +51201 +47736 +54984 +47564 +48373 +52404 +52264 +51088 +49340 +49440 +50872 +44257 +50724 +48120 +47336 +51452 +51333 +52292 +54028 +51109 +48128 +52509 +51312 +49464 +44428 +51064 +51216 +50616 +49548 +51020 +44452 +51652 +54840 +49332 +44396 +52380 +47560 +51109 +52293 +51109 +46160 +47156 +47536 +44396 +50528 +54224 +47532 +50948 +44537 +45812 +49849 +48264 +47609 +50864 +52380 +51204 +49900 +52488 +50696 +50696 +47448 +50976 +44368 +51200 +54868 +44036 +47588 +50868 +48372 +50976 +44144 +47196 +50836 +54812 +50501 +51228 +48708 +51208 +52404 +54224 +50668 +48516 +44340 +49692 +50976 +50500 +49688 +48373 +44432 +53461 +47924 +46041 +49324 +49548 +49437 +47469 +50728 +52488 +44592 +44036 +50728 +49552 +47161 +50668 +54616 +50745 +51609 +54861 +49324 +45453 +47280 +55012 +50728 +50865 +44201 +54840 +48149 +54840 +50528 +48120 +54924 +50696 +44228 +51088 +54693 +50756 +47736 +51032 +47497 +44053 +52268 +49340 +51109 +47156 +44284 +50896 +45804 +52824 +53461 +49444 +48317 +45812 +49552 +47156 +48264 +51221 +54644 +44256 +54644 +52489 +52380 +44256 +55001 +49332 +49888 +54984 +50557 +48708 +49688 +49436 +54984 +45824 +48712 +50896 +45397 +51452 +47588 +50976 +54364 +45824 +51228 +51312 +51652 +51652 +51060 +51032 +54805 +44256 +52509 +54840 +44592 +48268 +44148 +49436 +44508 +51088 +48320 +51312 +48128 +45224 +49888 +51109 +47896 +44221 +44152 +49440 +47308 +50864 +49328 +49549 +47140 +51032 +49549 +49324 +47140 +50696 +50557 +47448 +54952 +51201 +52824 +54588 +46321 +50557 +47560 +54872 +54364 +48264 +49688 +45812 +53748 +44417 +52488 +50948 +47448 +54924 +52628 +44256 +50728 +48372 +47141 +51200 +51200 +50528 +51064 +51312 +55012 +52828 +47280 +44285 +53441 +50724 +50696 +50696 +44592 +54805 +45432 +49548 +53748 +47581 +50728 +48712 +50612 +54984 +44592 +44221 +55012 +47560 +44396 +50612 +46041 +48393 +50620 +48317 +50577 +50696 +49440 +50977 +44397 +47156 +47156 +51008 +51109 +50689 +47217 +53804 +50948 +50557 +47161 +44144 +50836 +48264 +48120 +46988 +44480 +45212 +44228 +53461 +47564 +47448 +47448 +55092 +54413 +51649 +50948 +44592 +51104 +54924 +47532 +44228 +48120 +47448 +44340 +45208 +51228 +44592 +47196 +52392 +49332 +46321 +47448 +44428 +54952 +50669 +46976 +47928 +48324 +54840 +54840 +47196 +54617 +54596 +49324 +54952 +44148 +52376 +54840 +54728 +52264 +48373 +54728 +54728 +45432 +54840 +50864 +54840 +44368 +44144 +44341 +54252 +54788 +51092 +51092 +55092 +48152 +54785 +49689 +55036 +44508 +46020 +44592 +44508 +51221 +49836 +48373 +44404 +52293 +49324 +50864 +44036 +51088 +54861 +55036 +47609 +55128 +49688 +54616 +52292 +49885 +51032 +47560 +54693 +48169 +50529 +54028 +52377 +44204 +47928 +47928 +50696 +48169 +48708 +50900 +50900 +44512 +44592 +46041 +51064 +44592 +52380 +50896 +44208 +54924 +44552 +44592 +51473 +50500 +51088 +47785 +50773 +48516 +48516 +54637 +44277 +51312 +48372 +50684 +44060 +48512 +52824 +46160 +54252 +54788 +45768 +53945 +44396 +50976 +52293 +54217 +51648 +50976 +44032 +44048 +44144 +47141 +48512 +50684 +52272 +44396 +48708 +54028 +54788 +51452 +51312 +48324 +48337 +44256 +51216 +51200 +49324 +52384 +47161 +44256 +45800 +44256 +54805 +47140 +51221 +44257 +47784 +44201 +51088 +54924 +54924 +48169 +48512 +50577 +50752 +47148 +51452 +51060 +54620 +54876 +44368 +47140 +51061 +48337 +44600 +54633 +49444 +51060 +47581 +47589 +44277 +44208 +44452 +44277 +51656 +47564 +45432 +52841 +54801 +50836 +49324 +51228 +54805 +47148 +44396 +49548 +50857 +54801 +49464 +52264 +54056 +50500 +54632 +52489 +49440 +48393 +49888 +51652 +54252 +54788 +52384 +50724 +48512 +47532 +46993 +54224 +49436 +50672 +50976 +44161 +45800 +50672 +51221 +51204 +53468 +54924 +50752 +51648 +49569 +48708 +44144 +48128 +44592 +44592 +50977 +44400 +49324 +47609 +44053 +49324 +49437 +47452 +47140 +51217 +51312 +46020 +44260 +54632 +54632 +50669 +48169 +48708 +48708 +50948 +50980 +52377 +50672 +49556 +44428 +44204 +50696 +50696 +52397 +50976 +47049 +44284 +50896 +46041 +50501 +54032 +52404 +47581 +51104 +50577 +49849 +44341 +49440 +51221 +46989 +44284 +51593 +44040 +51221 +47784 +49436 +47732 +50976 +44060 +49885 +55012 +54889 +50616 +54200 +50976 +50948 +48512 +50672 +48120 +50948 +48373 +50980 +54792 +50976 +50976 +47784 +54616 +50689 +49836 +51473 +53461 +51200 +51333 +51228 +48373 +50896 +44508 +47609 +46980 +46021 +54840 +52628 +51217 +47141 +50752 +50868 +44396 +45224 +47336 +52632 +50689 +49849 +51109 +53748 +46993 +48169 +49324 +49892 +51088 +54812 +50896 +50745 +47156 +49688 +48152 +50997 +50997 +51656 +50724 +54980 +54620 +51652 +51060 +48708 +54876 +45817 +51032 +46160 +45236 +54624 +44257 +54924 +47560 +47749 +51032 +47928 +54805 +46321 +50976 +52285 +49548 +44592 +47564 +51312 +49345 +49437 +51312 +47532 +52404 +50724 +47197 +50948 +51656 +45817 +51652 +54364 +44144 +48708 +50976 +51216 +45208 +47336 +44540 +51333 +51064 +51109 +49556 +47928 +44368 +47564 +52841 +51088 +47560 +47560 +44341 +47308 +47784 +49892 +52509 +47532 +47564 +49548 +49345 +51109 +47581 +49345 +47925 +51452 +49324 +52628 +53945 +51649 +54077 +54077 +44368 +44144 +48324 +47308 +48152 +50948 +55148 +44592 +51204 +54889 +48708 +47196 +44432 +44432 +54812 +45812 +49440 +52488 +49440 +50836 +49548 +47784 +52649 +49900 +49324 +51452 +51221 +45817 +47140 +54644 +49440 +51032 +44221 +45804 +49452 +44228 +51088 +54693 +49453 +46972 +44552 +49849 +52292 +47140 +51201 +54788 +47156 +52489 +53469 +44040 +47581 +54644 +51228 +50689 +44204 +47805 +54840 +50672 +54869 +53441 +51208 +48712 +54617 +47736 +48264 +47280 +51208 +45225 +48128 +47140 +51456 +47140 +52628 +50620 +47196 +46160 +49548 +51200 +47217 +47532 +47329 +48393 +50676 +48708 +49345 +44256 +44204 +50689 +49436 +55092 +51104 +44396 +44428 +46160 +51104 +47564 +44396 +51208 +52489 +52272 +54792 +54889 +45685 +48176 +45685 +55124 +51473 +47589 +51060 +44061 +47736 +54785 +54665 +50672 +44036 +50896 +44144 +47161 +54788 +49696 +54632 +46041 +54637 +44032 +54632 +50500 +54840 +50948 +46020 +52649 +50948 +46020 +49692 +54805 +44396 +51032 +51032 +48372 +44036 +50864 +54364 +52264 +51060 +49340 +52828 +48512 +44260 +48516 +49632 +44161 +45225 +51333 +45812 +51068 +51473 +52649 +44060 +44592 +49324 +50684 +51648 +51076 +44552 +44552 +44512 +50896 +47756 +51228 +50724 +45544 +50948 +45800 +44032 +53440 +47161 +45824 +54252 +54252 +50836 +51340 +54596 +49548 +45800 +51200 +54616 +49696 +49688 +51652 +51060 +54028 +48156 +51200 +47568 +48512 +44260 +51656 +51656 +50684 +48264 +50696 +47924 +53441 +44404 +44396 +54788 +51216 +44144 +54588 +50977 +49845 +52824 +48156 +47924 +48373 +51060 +52824 +44256 +51076 +44053 +44161 +51316 +47568 +44208 +51060 +44033 +45376 +51452 +44508 +51064 +51116 +50676 +47217 +54665 +51109 +45817 +54792 +44260 +44036 +45544 +49688 +44217 +44260 +51221 +51060 +44204 +49888 +48512 +44537 +50696 +50976 +51652 +47448 +44396 +44400 +51228 +51021 +48372 +51109 +49464 +49324 +44400 +51060 +47144 +52392 +44256 +44036 +54252 +52392 +48708 +44260 +46020 +50672 +47497 +52824 +52285 +51452 +52384 +54364 +47049 +49345 +48176 +48176 +48708 +44428 +45208 +44284 +50516 +46021 +49437 +51228 +44144 +44592 +44592 +52377 +44312 +44557 +52376 +52404 +51228 +48373 +51473 +49444 +54200 +51217 +44260 +45800 +50976 +50976 +44040 +50896 +54252 +48372 +48512 +50976 +45800 +50616 +50948 +48176 +51200 +47336 +54252 +45800 +50728 +45813 +44396 +45813 +54924 +50857 +50896 +50837 +45236 +44221 +52264 +48152 +53748 +52824 +49345 +45544 +54805 +49437 +44148 +54924 +44256 +47144 +46988 +47532 +49845 +49884 +47336 +50696 +52393 +49444 +49440 +50948 +54364 +51312 +51201 +44053 +49340 +54252 +50577 +54596 +48373 +44036 +49440 +44036 +52524 +44537 +45800 +51105 +48264 +48156 +49345 +49900 +48324 +50836 +47564 +46976 +50724 +53441 +44340 +51312 +49688 +45453 +52392 +52392 +48317 +44552 +45817 +52489 +45800 +48708 +45224 +48373 +50976 +52824 +45824 +52489 +47568 +49437 +54588 +55184 +48149 +52828 +47280 +47217 +49845 +49452 +46976 +51217 +45824 +44144 +52268 +49884 +44204 +48152 +50696 +46976 +50500 +49436 +50500 +50836 +48393 +45812 +48373 +47896 +48373 +54056 +54645 +44592 +44592 +44204 +44288 +48320 +50628 +44508 +44033 +54200 +47784 +47729 +47729 +48324 +49884 +49324 +51216 +46972 +44033 +47589 +51312 +47156 +50836 +51648 +44512 +44201 +49452 +50948 +54785 +51204 +50976 +46988 +50501 +46020 +52828 +48169 +44592 +47749 +50689 +44396 +52376 +52280 +44540 +44288 +46321 +54620 +46972 +52376 +44036 +48120 +44033 +52376 +46972 +46988 +49900 +51201 +44288 +44204 +44288 +50628 +44508 +47729 +49884 +51216 +46988 +44033 +44592 +44201 +51201 +51204 +50976 +44396 +44540 +52376 +44033 +44396 +44540 +52628 +44208 +51648 +52488 +44553 +44256 +45800 +51088 +51200 +49345 +54644 +44428 +44201 +49436 +54644 +44452 +44361 +52489 +54644 +54844 +44396 +49457 +49549 +50696 +44592 +47197 +52824 +45796 +54596 +49457 +44257 +49345 +44361 +52824 +54617 +52489 +55092 +51032 +47141 +44208 +55092 +50672 +55092 +50616 +50616 +51221 +48512 +44396 +44396 +44508 +44361 +44228 +48276 +49888 +51312 +54861 +52264 +53664 +50864 +50508 +51060 +51064 +54984 +51008 +49328 +55128 +53441 +44592 +49888 +51008 +50752 +48516 +50500 +50836 +49569 +49888 +51020 +55124 +44208 +54952 +45580 +50864 +50864 +51648 +55113 +48169 +49888 +52488 +49444 +54788 +49324 +51456 +54728 +50613 +50669 +49548 +52824 +44032 +49888 +54868 +49688 +51652 +51452 +51221 +44396 +51088 +51088 +52280 +44256 +48512 +44204 +51656 +47161 +51200 +50521 +47532 +45432 +48152 +51452 +44048 +50696 +44144 +50836 +49324 +51060 +51060 +44144 +51312 +54217 +54588 +54805 +44404 +48156 +45804 +51200 +46020 +51200 +49324 +49453 +50689 +54980 +49692 +50696 +54889 +54633 +49884 +52272 +54952 +49884 +54788 +53440 +44396 +44452 +51204 +54924 +55184 +54868 +54644 +49345 +50808 +49440 +49688 +46041 +48120 +52392 +47749 +50529 +54924 +54788 +55113 +44312 +51060 +48337 +51312 +52824 +47280 +51452 +44305 +44284 +47924 +50696 +46321 +44592 +51648 +51064 +49549 +46993 +50500 +44305 +55148 +49436 +51221 +53444 +54056 +51216 +50976 +44221 +52488 +52840 +49324 +50516 +50612 +54952 +49457 +44228 +54788 +47924 +50724 +44256 +49569 +54252 +54924 +44221 +49444 +51652 +49444 +46021 +54868 +52285 +49688 +52393 +44284 +44404 +51333 +54952 +49688 +47581 +54788 +48708 +52824 +45813 +51032 +45208 +51008 +51312 +48708 +52384 +52392 +52840 +49692 +44592 +44592 +45812 +52628 +50948 +44397 +52397 +46041 +51137 +52293 +52628 +44148 +52265 +50577 +51204 +49689 +54616 +45436 +49900 +54364 +54924 +48276 +50976 +52393 +49436 +54200 +49884 +55012 +49884 +50896 +44284 +50501 +51333 +52404 +54644 +48373 +48372 +51221 +44036 +44228 +50976 +51088 +51204 +49884 +55064 +51064 +50516 +54632 +45224 +49900 +54413 +51228 +50577 +50616 +54889 +55012 +44201 +45209 +51665 +47784 +50508 +50948 +49457 +46321 +52488 +49440 +44148 +54252 +44340 +54889 +54925 +44032 +50689 +48120 +49548 +48128 +54812 +52285 +51652 +54617 +51228 +49549 +48169 +51648 +44216 +51061 +44053 +50896 +49324 +54617 +46020 +50836 +50836 +54925 +50864 +54364 +52509 +44221 +47532 +47784 +47784 +49345 +51201 +47448 +51204 +52293 +51312 +47144 +47336 +52280 +44396 +44260 +49845 +51089 +50724 +50724 +44540 +51665 +51060 +54840 +44053 +47564 +51312 +54632 +54868 +52380 +54980 +51613 +49341 +55148 +52264 +45824 +51613 +45544 +46976 +50752 +51025 +55100 +44592 +51456 +44368 +54028 +54812 +49440 +47924 +52280 +51105 +49885 +52488 +45812 +52280 +48372 +49849 +54788 +51312 +53444 +45817 +49688 +54744 +44201 +44368 +44221 +51104 +45572 +51032 +50528 +49452 +48708 +55036 +54868 +50669 +51032 +49440 +50577 +45572 +44204 +45824 +45813 +54840 +51452 +54840 +51032 +50549 +44048 +50696 +51204 +54812 +46021 +51201 +54788 +52268 +47280 +49900 +50948 +52392 +47141 +50976 +48320 +49453 +50672 +50501 +49688 +50948 +49688 +50836 +52280 +50577 +51008 +46976 +52280 +54925 +49453 +54872 +52268 +50696 +45817 +49452 +50616 +46021 +50616 +44228 +51221 +48512 +51064 +44592 +50508 +54861 +53664 +50577 +49328 +55128 +53441 +54984 +51032 +49888 +44592 +51064 +44053 +55064 +44396 +44144 +50500 +45580 +54728 +50752 +47200 +55113 +49569 +54413 +49444 +48169 +44208 +51221 +44256 +44032 +54217 +51200 +49888 +54805 +49324 +49548 +51652 +51200 +52488 +49324 +44404 +51312 +54588 +50669 +51060 +44305 +47280 +49884 +44312 +49884 +55184 +54924 +49457 +51452 +49440 +54868 +53444 +44396 +51204 +44452 +49692 +50696 +51137 +54644 +49345 +53440 +50896 +54980 +51452 +44228 +47924 +50612 +52488 +50724 +44256 +50976 +54924 +44305 +49444 +49569 +55148 +52397 +51228 +52628 +45209 +46021 +52265 +48708 +44284 +50948 +50976 +49688 +49900 +51312 +52392 +47049 +49692 +49688 +45812 +49900 +51032 +47784 +49900 +52393 +54889 +44036 +54644 +54617 +50508 +50948 +50501 +50976 +55012 +52280 +51088 +50516 +50616 +52404 +48120 +54200 +49436 +47784 +45817 +49549 +49324 +50836 +48169 +51061 +44216 +48128 +44540 +47564 +51201 +51204 +47448 +45812 +52280 +52488 +46976 +48372 +55100 +50616 +44204 +49452 +52280 +44257 +52380 +54945 +54616 +44089 +54861 +54632 +54861 +44228 +54812 +54876 +47308 +54632 +46021 +47217 +46160 +44053 +44592 +49884 +54413 +46321 +50756 +48708 +49688 +54632 +54413 +51656 +51656 +50684 +50684 +49884 +52629 +54924 +46024 +51032 +46024 +50669 +44204 +54028 +54980 +50529 +51200 +49345 +54872 +44204 +44036 +54644 +44144 +48512 +55148 +48712 +54840 +50696 +51200 +44032 +48516 +54812 +54841 +50728 +50896 +48712 +51201 +51333 +48516 +55148 +52824 +54364 +49884 +54620 +48708 +45468 +48708 +44396 +45468 +50976 +52488 +47589 +49324 +55092 +55012 +44036 +54617 +47589 +47589 +54620 +47784 +47532 +50696 +54588 +50976 +44032 +45800 +47896 +48708 +55092 +50529 +47336 +47589 +52628 +45800 +54872 +54869 +54056 +51221 +50896 +48512 +51116 +44277 +53945 +51060 +54637 +50756 +48712 +54868 +54032 +53456 +44288 +52293 +51656 +51060 +51200 +49464 +54588 +51088 +51060 +44480 +54200 +54212 +47588 +45824 +49373 +54889 +48708 +52393 +51060 +51648 +47924 +54616 +48516 +45516 +51076 +54924 +54644 +48320 +51088 +44032 +55100 +51201 +44368 +54644 +51109 +52380 +50689 +49692 +51652 +49324 +48712 +48712 +44396 +49324 +44288 +51109 +51452 +47280 +52268 +49324 +52840 +49345 +51204 +48176 +44081 +54788 +47588 +52380 +49688 +48512 +53456 +51333 +51333 +51656 +51116 +51109 +46020 +49888 +54805 +52632 +50868 +48372 +51116 +47280 +48393 +52285 +51116 +51081 +50528 +51104 +48512 +44396 +49352 +49353 +47308 +50948 +54056 +49340 +50756 +51648 +52712 +54364 +50980 +51613 +45812 +52268 +50504 +48373 +49452 +47564 +50689 +49888 +44048 +54788 +51109 +48708 +46021 +49549 +50504 +49345 +54788 +47329 +44277 +51109 +54056 +51221 +48512 +50896 +44277 +51116 +52293 +54788 +54056 +51109 +54868 +51656 +54032 +53456 +48712 +54212 +44396 +51200 +44288 +51060 +52380 +48516 +49464 +52393 +44480 +54889 +45824 +47924 +48708 +54616 +51060 +51201 +51648 +44032 +54924 +51088 +51076 +47280 +51109 +51088 +54644 +49888 +44396 +51652 +47280 +49324 +48512 +46020 +51116 +49549 +49345 +49324 +48708 +51452 +44081 +48176 +53456 +47280 +48393 +52684 +48512 +51104 +49352 +49353 +50504 +52268 +50980 +51613 +49452 +50689 +44277 +51201 +54785 +49324 +45212 +46041 +54785 +51221 +54785 +51221 +51088 +54616 +45817 +51452 +51452 +47141 +44508 +48512 +51312 +44036 +44592 +49328 +44221 +44552 +49440 +51088 +44208 +44540 +51648 +51088 +51652 +51652 +51208 +51200 +52488 +51200 +49901 +51104 +44404 +50900 +52628 +44600 +52628 +51452 +54876 +54792 +51088 +51312 +53440 +47148 +44036 +51340 +52489 +54785 +51312 +49549 +51020 +44397 +44216 +51089 +51137 +52488 +50976 +47197 +52712 +53461 +52628 +51088 +51228 +52628 +52825 +54889 +44368 +44368 +52488 +51312 +51201 +51060 +52268 +52268 +51313 +54028 +48149 +50724 +55128 +46024 +44208 +48512 +52280 +44204 +48169 +51648 +49341 +50900 +54028 +44592 +50557 +52285 +53441 +53468 +50696 +51204 +47161 +47588 +48156 +51656 +44256 +53440 +44032 +52264 +54252 +44032 +51452 +44396 +51217 +52377 +48512 +48152 +51200 +49328 +54028 +45768 +44144 +47141 +44540 +51060 +51201 +45796 +49440 +44368 +53440 +51452 +51204 +44284 +49464 +44452 +44277 +44508 +54637 +52824 +45432 +48320 +52824 +44161 +46020 +49440 +52380 +45804 +44368 +54596 +49440 +53440 +51228 +44397 +44592 +49689 +46020 +52489 +44221 +49453 +49548 +48372 +50696 +51456 +47924 +49548 +47049 +50857 +44033 +51452 +44368 +48512 +45813 +52380 +44592 +50948 +50976 +53441 +52393 +51201 +45392 +44397 +49453 +47452 +47449 +47497 +44284 +44144 +51648 +50896 +44428 +52377 +48513 +51320 +52393 +44592 +52629 +51333 +52292 +51333 +48337 +44036 +51221 +51216 +52377 +50976 +53441 +46164 +51456 +50857 +51333 +51228 +52264 +52840 +45800 +44148 +44284 +53461 +50864 +48373 +51313 +51217 +54200 +50976 +45265 +51228 +49324 +53748 +44148 +46020 +52264 +54812 +45813 +52285 +51204 +51204 +51228 +52377 +49453 +47564 +47448 +51104 +54596 +50857 +47197 +47308 +52629 +45817 +45824 +52629 +49324 +44508 +51201 +52377 +51109 +52377 +47564 +51333 +47144 +48533 +51312 +50672 +48324 +53748 +44516 +46321 +52789 +49440 +48264 +51452 +51333 +51456 +48156 +52629 +52629 +44432 +44432 +47536 +45813 +44368 +44368 +48373 +47308 +46024 +52268 +44288 +51312 +45804 +48317 +48317 +52489 +44144 +51200 +44368 +46024 +51452 +51228 +47924 +50557 +45380 +47536 +47157 +52377 +47141 +51648 +51204 +51452 +45800 +50948 +47329 +47536 +49440 +50948 +52268 +46976 +49453 +50577 +49444 +49453 +45813 +44396 +51201 +52268 +52268 +49324 +44592 +44285 +47536 +49888 +44417 +53456 +48516 +44396 +52404 +53440 +53440 +44417 +46993 +51064 +46972 +50780 +44592 +44397 +45817 +44277 +51109 +50616 +48120 +44053 +44396 +47336 +47196 +53440 +51649 +50504 +52404 +46020 +51025 +50725 +52264 +50508 +44452 +44400 +49464 +50900 +49440 +45824 +54732 +48276 +51064 +49328 +44305 +49688 +46024 +51652 +45824 +50529 +45225 +44592 +47784 +50672 +51076 +44552 +51204 +44361 +54840 +44396 +54889 +51200 +47161 +53468 +50836 +51652 +48516 +44305 +50521 +54077 +48176 +44256 +44256 +54252 +51452 +50857 +50529 +48156 +52629 +51648 +52488 +44032 +51068 +44221 +49885 +48337 +51060 +44277 +44397 +44368 +44305 +47196 +54644 +51204 +51452 +51116 +51648 +50836 +47049 +50837 +49548 +50976 +50756 +44400 +52393 +47564 +48372 +44221 +51452 +50696 +47497 +52393 +51092 +47049 +52824 +55064 +47581 +52384 +44284 +44048 +51032 +54077 +52380 +44260 +50672 +48337 +44288 +48176 +50980 +48176 +47049 +50672 +50976 +51665 +50577 +54632 +52380 +51452 +49692 +44040 +50976 +54945 +49688 +48373 +52824 +48373 +50728 +48516 +51204 +50668 +50728 +44048 +44257 +51652 +54624 +50896 +47197 +44368 +52488 +51204 +49464 +50672 +49444 +52384 +44368 +51092 +48373 +47308 +48516 +48264 +47536 +44040 +49353 +44048 +54872 +51032 +44201 +45824 +51060 +50668 +54632 +44361 +47280 +48708 +50669 +47141 +47196 +47536 +52264 +50508 +44452 +54732 +45824 +51064 +51204 +50529 +47452 +50672 +44361 +44256 +44032 +47196 +52629 +51648 +51068 +54840 +51652 +47141 +52488 +44221 +49885 +51116 +51648 +44368 +51452 +51204 +47196 +44368 +52393 +48372 +47049 +47144 +48176 +55064 +44260 +47581 +47049 +52384 +52824 +51452 +48373 +51665 +50728 +49688 +48708 +50896 +54624 +51204 +47197 +52384 +47536 +49888 +44256 +49324 +49324 +54588 +51396 +48320 +46980 +46980 +49324 +49444 +54032 +54032 +48320 +48320 +49444 +48320 +48152 +49324 +48320 +48320 +51652 +50837 +45453 +45453 +51652 +52265 +52265 +51068 +51081 +48320 +48320 +49901 +51077 +47308 +52404 +52380 +44036 +52380 +50864 +50724 +55128 +49888 +51060 +44284 +47588 +49436 +51105 +44305 +46028 +46164 +50689 +52404 +50868 +44540 +54637 +50500 +48152 +50724 +52404 +50752 +54872 +51200 +51473 +51652 +50896 +50948 +47144 +51648 +52393 +45768 +52488 +47148 +51060 +54805 +44032 +51652 +53468 +51060 +51201 +48149 +50773 +51656 +52293 +46020 +49696 +51060 +44161 +44221 +54924 +46041 +50976 +48120 +48337 +51201 +45236 +51060 +44208 +52628 +47148 +51456 +53748 +49569 +44292 +46020 +48169 +54980 +50669 +46024 +54805 +49440 +49552 +54252 +50976 +49548 +51452 +53804 +52629 +44396 +52404 +52404 +46020 +44221 +51201 +46160 +51032 +51200 +53685 +44305 +50724 +49436 +47161 +49549 +51312 +51456 +48393 +50672 +49324 +54924 +47532 +44257 +47000 +48516 +52265 +44208 +48337 +54872 +52404 +47197 +50976 +51452 +51652 +50977 +53441 +44508 +50948 +51201 +51068 +45804 +50896 +46972 +54605 +45265 +50976 +53461 +49688 +46164 +49688 +50616 +52380 +51648 +52404 +50864 +49885 +51221 +50976 +50868 +50501 +54200 +44284 +50508 +54616 +54889 +51452 +46020 +45804 +50948 +45224 +50976 +44396 +50836 +52628 +47448 +49552 +45813 +52404 +51648 +50896 +49548 +53457 +44204 +55085 +50836 +44288 +51109 +50724 +51201 +49341 +52825 +49549 +51312 +52264 +46164 +52404 +47336 +51648 +51340 +47536 +51456 +50836 +52380 +49440 +55100 +50976 +50724 +50836 +44144 +49436 +54588 +50836 +47588 +54644 +49688 +54872 +51204 +46321 +51060 +47561 +48320 +48320 +46989 +47140 +50896 +50976 +45208 +47532 +51021 +51221 +46321 +44592 +50745 +49328 +54620 +50864 +47581 +50668 +44277 +49437 +44305 +48512 +54637 +48712 +48169 +54805 +45208 +55124 +49900 +48169 +50896 +52492 +54868 +49324 +48169 +44368 +44396 +50864 +44048 +53468 +44396 +54596 +48708 +48337 +49548 +54056 +50752 +51200 +52628 +50629 +47536 +44305 +44508 +51452 +49884 +44256 +50865 +44060 +54633 +44537 +51656 +44600 +49692 +54980 +54805 +44368 +54644 +44508 +45208 +45229 +44217 +54924 +51221 +46993 +50868 +50672 +49457 +46160 +52824 +47140 +48512 +50724 +48512 +44256 +54617 +46993 +44217 +44221 +44400 +50689 +48156 +44537 +54056 +47141 +50868 +48512 +54952 +52376 +48708 +52397 +44285 +51452 +45812 +52628 +48337 +47000 +50696 +52840 +50864 +48512 +54693 +45800 +44201 +50745 +44368 +51032 +46020 +50616 +48120 +50557 +54056 +50501 +50976 +44204 +50864 +50868 +54980 +44508 +54693 +54693 +49688 +45817 +47749 +49885 +50837 +52629 +51088 +52628 +44201 +50724 +54693 +50868 +54840 +50857 +48708 +47561 +49548 +48512 +47308 +51008 +51204 +54840 +44368 +50616 +51109 +47564 +44368 +54728 +46321 +54224 +49900 +48708 +51613 +50948 +51221 +47924 +49440 +47536 +54028 +45800 +47609 +50629 +51312 +54924 +54413 +47805 +52628 +44305 +47144 +52268 +51204 +50864 +44592 +50672 +52280 +52268 +47161 +54872 +55092 +54413 +52268 +47141 +50976 +51221 +52628 +51089 +48176 +51452 +51060 +54637 +50864 +51452 +50684 +52712 +47784 +53456 +54980 +46160 +51664 +48516 +50896 +48512 +50728 +53468 +52392 +44032 +53440 +52488 +44048 +44256 +49548 +48156 +49688 +51116 +47749 +45209 +52384 +49688 +50976 +46041 +51648 +49440 +51109 +51221 +50980 +46020 +54952 +47588 +54841 +49328 +47280 +54252 +52712 +54644 +50684 +49884 +50577 +50976 +47197 +47548 +50628 +46020 +48176 +51092 +49692 +45812 +52712 +52384 +52488 +44260 +51228 +54632 +46020 +54840 +49436 +49457 +53456 +52628 +49692 +50728 +48156 +44049 +49688 +48120 +52384 +52628 +52264 +50728 +50689 +50521 +51088 +54644 +45817 +51109 +54364 +52280 +50612 +47532 +51312 +47308 +51032 +51109 +48373 +52488 +54812 +45812 +48156 +45453 +50669 +50696 +44089 +50684 +51032 +50577 +50976 +54984 +49688 +50672 +47161 +48120 +48120 +50577 +55124 +51312 +49884 +48120 +50684 +48320 +52292 +49437 +50976 +49437 +49437 +51060 +51473 +50556 +50577 +47532 +44608 +44552 +44396 +51012 +51312 +46020 +49632 +51221 +48149 +44396 +55121 +48512 +52840 +52841 +54036 +46976 +48512 +45236 +51312 +49340 +52488 +44396 +52380 +44208 +48276 +50864 +54868 +54620 +44277 +51116 +47581 +51068 +52404 +49324 +55128 +51061 +52292 +49324 +53664 +49437 +45376 +52380 +54872 +51064 +48317 +50556 +44540 +54028 +48169 +52840 +44204 +46160 +50900 +50672 +48512 +48708 +45225 +49900 +50752 +44208 +46164 +44396 +51064 +44160 +54032 +49341 +51076 +52488 +45684 +48516 +50980 +51032 +44552 +48708 +44284 +54945 +51020 +44512 +51312 +50669 +51473 +45393 +44060 +51068 +54868 +53468 +54637 +50896 +54840 +50529 +47928 +53441 +51088 +45768 +46028 +49884 +48124 +44256 +50500 +50689 +48337 +49324 +44256 +48156 +54588 +50725 +49324 +51089 +54252 +50976 +51204 +44049 +51652 +49324 +49884 +52384 +44144 +52393 +49324 +49324 +54788 +52488 +54252 +54868 +54596 +49373 +49436 +49437 +48149 +51452 +52825 +51105 +54028 +46041 +44216 +48520 +51116 +47448 +50672 +48512 +47549 +50900 +48708 +50521 +48152 +48156 +44161 +44396 +49696 +51221 +47924 +45768 +45393 +52404 +44032 +47785 +45800 +49888 +51060 +49324 +44305 +44032 +48513 +44048 +46041 +54805 +54861 +44368 +52824 +51060 +46973 +48337 +49885 +47784 +54801 +51008 +44512 +51452 +52509 +54693 +46041 +48177 +47280 +44228 +50984 +49696 +51076 +51316 +51656 +44277 +52293 +52404 +49440 +44204 +51204 +54588 +52384 +49688 +54980 +47749 +44284 +51312 +49452 +54632 +55092 +44512 +52264 +47196 +44600 +48317 +50668 +48120 +51032 +51064 +44305 +50504 +51452 +50976 +49353 +44256 +51204 +46976 +49324 +50528 +51312 +54620 +50696 +49464 +44081 +44396 +49548 +49453 +49688 +51109 +51228 +51340 +44292 +54861 +51333 +46160 +47140 +47588 +46993 +47576 +51088 +50980 +54056 +50725 +49549 +50837 +50672 +51221 +48156 +54872 +54801 +54945 +51204 +48393 +52392 +47564 +51648 +49324 +54788 +50724 +50612 +51312 +44305 +52265 +47148 +54805 +52840 +49888 +54632 +47148 +50556 +49436 +51221 +44397 +54788 +52384 +47581 +54252 +47532 +48152 +50696 +49457 +44256 +47532 +53945 +48337 +51452 +44537 +46021 +47448 +52572 +44144 +52285 +50896 +44204 +44053 +51312 +46020 +49345 +47452 +44284 +47497 +54028 +45433 +47532 +52285 +48512 +44428 +48124 +52544 +54077 +50504 +48708 +54632 +50500 +52628 +47280 +50500 +44361 +53457 +44260 +46021 +52628 +52628 +52824 +51137 +48516 +45393 +51333 +49692 +45812 +51221 +44592 +51204 +52384 +44592 +50977 +44552 +44288 +47896 +52285 +51204 +49437 +46041 +51312 +44256 +52265 +49696 +51652 +47197 +47609 +47197 +54868 +54364 +50508 +47000 +44557 +48169 +47924 +45236 +47576 +52280 +54840 +46301 +55124 +44552 +54848 +44221 +48277 +47928 +44060 +50689 +49884 +50672 +44284 +49440 +46020 +46028 +50948 +51333 +48373 +50976 +51665 +50501 +44400 +52840 +51228 +52272 +54841 +50577 +45800 +54616 +50864 +44081 +49457 +44361 +50808 +48373 +52488 +49341 +44228 +49324 +44361 +44508 +52392 +47924 +52488 +52488 +54980 +50976 +52509 +54872 +49453 +48124 +44048 +45800 +44148 +49569 +44508 +54840 +49440 +53440 +44040 +52840 +54200 +51333 +52824 +49688 +50556 +48120 +54028 +50528 +44228 +51204 +48120 +52264 +45813 +48169 +54624 +44216 +49353 +44060 +47448 +50836 +53457 +45572 +50745 +50857 +45817 +49604 +51137 +47141 +49325 +52628 +48149 +48152 +49341 +48708 +49345 +44053 +51088 +50724 +54805 +54889 +51312 +47448 +44060 +51456 +49604 +49688 +47576 +54840 +51652 +51652 +46972 +51068 +50896 +45817 +50620 +49885 +44032 +44032 +47560 +51204 +49569 +51312 +49604 +54616 +48393 +50728 +45208 +47196 +49604 +50864 +51313 +45800 +49688 +44288 +49440 +47144 +49688 +50724 +47564 +47561 +46972 +54596 +50696 +47448 +51201 +49340 +52509 +51064 +50724 +50724 +44081 +51109 +52572 +52377 +49345 +45817 +47564 +50857 +49328 +48393 +44221 +54364 +49436 +47336 +49688 +52509 +47217 +52280 +51216 +51312 +47140 +54616 +49892 +44053 +49345 +48533 +51109 +44204 +51137 +47196 +54868 +51665 +48149 +54812 +44053 +48156 +47536 +52293 +49688 +49328 +51137 +44452 +49324 +47448 +45544 +54945 +48324 +49688 +48264 +44368 +51204 +50577 +53461 +49345 +55100 +52488 +51456 +47308 +44208 +47196 +45824 +49900 +51104 +44592 +44036 +51333 +46321 +50500 +50689 +45824 +44432 +45572 +52404 +48372 +52384 +44552 +51109 +51221 +49440 +44060 +44036 +48708 +49688 +47196 +51204 +54924 +50724 +47156 +51089 +51312 +52392 +53441 +47280 +48317 +52384 +54872 +50685 +53441 +44284 +45817 +44144 +48516 +45804 +54224 +51032 +50528 +48264 +54984 +51312 +51452 +54945 +52628 +51228 +45768 +53457 +54869 +44221 +48712 +50689 +44452 +45397 +50976 +44048 +44048 +44204 +52272 +51656 +47736 +47140 +47280 +44228 +52268 +44305 +49345 +48393 +46989 +46021 +49325 +52265 +47140 +54364 +54252 +45432 +54788 +44288 +47217 +50501 +47196 +55136 +44048 +46976 +48149 +52392 +50557 +52280 +50577 +44148 +55092 +44288 +51109 +49453 +47280 +52268 +44396 +48152 +46972 +52268 +46976 +52265 +50508 +44285 +45817 +52489 +46976 +44552 +44396 +51012 +52840 +51221 +49632 +48149 +51312 +53664 +52380 +52380 +49340 +49341 +48276 +51312 +47928 +45376 +50577 +52292 +44204 +44060 +48708 +53468 +44144 +46164 +52488 +51333 +45225 +54056 +44053 +54032 +44160 +50900 +55136 +44512 +50724 +44396 +54637 +48169 +54868 +46160 +45684 +54028 +50725 +51204 +51221 +44216 +44256 +48156 +50500 +54028 +54252 +48156 +50900 +52393 +47785 +45800 +44049 +51204 +50976 +52384 +48149 +47161 +49325 +50672 +47448 +54252 +49884 +54788 +49324 +54596 +45768 +54588 +53441 +54805 +44256 +47196 +51060 +47581 +50500 +50976 +49457 +54801 +50556 +45544 +51656 +45817 +46041 +47140 +51312 +51064 +44060 +52272 +49688 +49440 +51221 +51452 +49452 +54868 +51204 +49604 +54801 +51312 +46973 +47749 +51137 +49353 +44368 +51032 +49328 +52509 +53461 +50504 +51008 +50668 +51452 +47196 +54252 +50612 +47000 +53945 +47144 +44081 +49548 +49604 +47532 +51221 +49436 +44284 +44256 +52384 +49688 +51340 +47148 +48393 +51088 +47448 +44060 +44036 +50696 +51228 +46993 +52840 +44397 +50500 +52285 +53440 +52392 +52265 +47896 +48516 +44592 +46301 +44284 +44260 +52285 +49437 +44256 +46972 +52628 +52628 +44552 +51656 +55124 +44428 +54848 +48512 +45812 +51221 +44144 +44144 +47609 +52824 +44228 +50689 +44060 +51109 +49569 +50501 +49341 +52488 +51333 +45800 +49688 +44361 +54872 +50528 +46020 +48120 +47336 +51088 +48708 +48120 +47561 +51652 +48149 +47141 +49453 +45817 +51204 +50620 +45208 +47448 +54840 +48169 +51068 +44032 +48712 +50857 +54364 +45817 +47564 +46972 +48533 +50857 +44221 +51201 +51313 +49440 +47448 +49900 +44432 +47308 +48149 +45432 +45824 +46976 +48372 +52268 +44053 +46321 +54869 +47280 +54872 +53441 +47156 +51032 +52272 +54364 +46989 +52280 +50577 +51109 +51109 +44396 +50724 +51208 +44404 +47308 +48120 +51109 +47928 +47568 +49328 +49452 +54841 +47928 +50684 +54224 +54620 +54224 +49328 +44060 +54637 +54077 +44361 +50980 +49340 +54620 +54620 +44036 +48124 +54616 +49688 +46160 +44049 +45544 +52392 +54217 +54616 +47161 +48320 +48708 +50980 +50528 +44288 +44033 +54633 +48268 +52629 +54861 +44508 +48124 +49436 +44260 +46993 +50668 +51221 +49324 +44397 +50676 +50676 +52380 +44201 +47536 +52285 +49332 +44260 +50628 +47928 +50684 +50508 +54844 +50669 +47928 +54637 +54252 +54637 +44201 +50836 +47928 +48152 +50516 +50948 +51064 +54876 +44208 +46976 +46020 +52380 +54077 +51204 +50620 +53457 +44060 +54633 +44432 +53960 +44288 +53804 +44228 +44508 +45817 +44288 +54364 +54632 +55137 +44452 +52380 +48317 +45817 +54872 +45804 +50728 +50896 +47928 +49328 +49452 +50684 +54620 +54224 +47928 +53960 +50980 +50948 +54620 +44361 +44036 +48124 +54637 +48124 +44049 +45544 +44508 +47928 +45804 +48124 +47140 +44060 +48268 +44033 +50528 +44260 +44396 +50676 +46993 +46020 +50669 +50628 +52285 +54785 +47928 +54844 +50684 +50508 +52380 +46976 +44201 +44452 +54876 +44208 +54633 +51204 +53457 +44432 +54632 +54872 +48512 +48512 +47477 +45824 +49888 +52380 +50732 +44060 +52824 +51020 +50577 +46160 +50529 +49849 +54032 +48176 +44081 +50980 +50756 +51648 +48708 +51221 +48169 +50577 +51020 +51652 +44228 +51221 +50529 +44144 +51200 +51312 +51312 +51216 +47161 +50500 +53440 +53440 +54588 +48337 +48512 +51228 +47449 +47217 +51652 +54805 +52824 +45572 +47589 +44053 +49688 +53440 +54620 +51060 +44452 +50864 +54644 +54633 +51456 +52488 +54805 +49692 +48512 +54224 +54633 +49452 +49849 +52377 +54252 +46160 +50896 +51652 +51228 +54632 +46020 +45216 +50868 +54744 +48176 +48708 +52628 +44592 +53748 +47452 +51020 +44397 +49688 +51652 +48708 +45733 +46020 +54632 +50977 +49849 +54744 +51064 +51200 +50577 +51081 +54801 +51473 +50616 +51020 +50976 +51228 +50864 +50997 +50948 +50808 +50620 +45824 +49688 +50516 +54889 +44228 +49688 +51008 +44592 +50628 +55092 +44201 +50868 +50724 +50808 +50528 +44537 +45817 +51228 +51109 +46020 +50724 +44537 +51008 +49328 +50836 +51064 +53748 +46321 +48708 +49688 +49688 +50724 +54744 +48516 +45768 +51060 +51228 +46020 +49845 +51008 +52377 +55092 +47217 +55148 +51060 +47168 +50696 +52628 +44033 +52377 +51456 +51204 +45212 +51061 +51089 +50504 +44552 +44204 +50885 +50500 +51665 +44256 +54872 +52824 +44396 +51456 +51088 +50745 +51200 +52628 +54840 +51105 +46973 +50668 +49688 +51312 +49688 +54620 +54869 +49933 +44288 +52628 +51105 +50745 +44228 +55092 +49688 +47448 +51060 +45212 +54617 +51105 +51665 +51665 +50864 +50864 +49444 +45460 +48512 +49341 +47785 +47928 +48516 +48169 +50868 +47141 +47549 +50521 +50689 +45516 +50516 +48149 +47805 +51204 +53461 +54840 +47924 +51312 +49688 +51228 +47785 +52840 +49548 +49341 +51221 +51652 +54056 +47588 +47161 +52376 +51452 +44285 +49341 +48708 +54861 +51216 +51020 +50696 +51452 +46164 +47548 +47161 +46041 +50689 +47924 +47161 +49345 +47161 +54616 +54861 +51020 +47589 +47589 +50868 +47448 +47805 +48712 +47924 +50948 +54869 +51020 +49845 +51061 +50528 +45812 +46321 +49328 +55100 +45432 +47469 +52404 +51609 +48169 +50577 +54056 +48317 +48120 +54413 +55148 +51228 +47588 +47805 +47805 +47280 +47141 +54869 +50528 +48708 +52404 +47217 +50689 +50528 +54413 +47141 +48372 +51089 +51312 +54617 +48729 +52397 +52397 +51221 +52380 +51652 +51221 +51221 +51221 +51221 +51221 +51204 +51221 +52380 +48708 +48708 +44256 +48120 +47732 +47732 +54252 +50685 +51204 +54924 +50685 +54785 +51221 +52292 +44036 +51064 +51201 +46020 +50732 +51064 +44552 +44540 +54868 +45684 +54028 +51064 +49341 +45225 +47568 +51312 +45804 +48152 +50696 +50836 +46020 +54588 +44040 +44361 +54252 +50521 +48337 +51064 +54801 +46020 +44600 +54812 +50504 +50504 +55124 +44277 +54616 +45804 +44368 +51221 +47564 +44221 +49632 +51312 +52488 +54788 +44277 +48393 +53457 +51109 +48708 +44285 +44397 +46989 +49453 +50976 +48169 +50517 +52628 +52628 +44040 +52488 +47924 +44397 +44148 +54200 +51228 +52380 +50728 +46020 +44396 +53457 +48708 +54812 +48152 +44201 +54596 +44285 +45817 +47336 +44452 +44368 +54868 +44592 +52380 +44053 +52392 +45804 +54925 +54788 +52380 +46021 +47568 +52380 +46976 +50948 +51064 +48520 +47588 +44428 +44049 +50948 +52488 +54620 +54624 +46024 +50976 +50868 +49453 +50948 +50948 +48176 +46020 +44396 +50728 +44256 +54596 +50948 +54812 +46021 +47568 +46021 +50948 +51064 +48520 +54620 +50948 +50728 +46020 +44396 +44396 +44396 +54644 +49452 +51228 +51020 +51105 +50868 +49548 +47141 +48393 +54889 +50689 +50868 +48393 +50516 +51020 +54693 +54840 +54792 +51221 +44221 +44508 +54637 +49692 +50504 +49688 +51060 +50865 +50752 +49569 +44508 +44592 +54637 +50696 +50756 +48152 +46024 +51201 +51216 +48152 +54028 +50689 +52293 +44221 +47280 +54633 +44368 +50508 +50529 +50948 +55184 +44292 +49888 +51060 +51060 +54644 +53748 +54200 +48337 +47280 +48512 +54801 +46160 +54924 +44508 +54801 +46980 +51221 +51221 +50689 +44400 +54841 +50516 +44221 +53748 +53748 +48712 +47280 +53748 +51088 +51088 +52628 +51221 +47280 +45812 +54632 +44036 +44284 +52684 +44221 +44552 +51060 +49884 +51228 +50529 +50501 +50504 +50896 +54632 +50745 +51204 +50504 +54788 +49888 +51032 +50896 +49345 +51204 +51204 +44053 +44264 +50976 +47308 +54364 +51032 +47564 +52629 +54952 +54840 +52488 +44256 +49552 +50628 +55036 +51204 +50976 +55001 +48712 +54788 +48712 +47196 +46988 +49453 +44288 +54792 +51221 +44221 +50504 +54637 +49692 +49688 +50865 +50756 +44256 +46024 +44592 +48152 +49569 +54637 +50696 +47196 +47161 +54028 +44221 +55184 +54801 +51221 +54633 +50689 +44221 +54644 +51060 +48712 +54924 +53748 +50516 +50689 +50689 +44284 +51228 +50745 +50501 +51204 +50504 +50529 +49453 +47564 +51204 +49345 +54840 +47280 +51204 +50976 +48712 +44288 +54413 +54364 +54413 +48512 +54616 +51216 +48149 +49341 +53468 +53468 +47148 +44292 +49440 +49548 +44396 +54364 +49884 +50948 +50577 +50836 +49688 +44060 +49548 +48276 +47448 +49845 +47308 +54364 +54364 +47448 +54364 +54364 +54364 +47308 +54364 +49892 +54413 +55092 +54413 +50577 +51216 +48149 +49341 +44396 +49884 +49688 +50836 +47448 +54364 +54364 +54364 +48708 +48264 +48708 +48708 +49885 +49885 +49552 +44592 +51221 +49324 +53441 +51204 +49552 +54693 +46024 +51076 +50612 +44428 +52825 +51020 +48152 +48152 +49552 +51020 +51452 +51060 +51089 +54596 +51088 +46020 +47448 +51088 +52384 +49324 +54252 +49885 +46028 +54644 +51076 +52392 +44368 +54801 +48337 +50836 +46041 +51088 +54693 +50577 +44428 +51060 +50684 +46973 +51032 +52268 +48156 +45516 +50500 +54252 +51456 +46160 +49549 +50668 +55148 +54952 +54844 +44284 +49885 +51204 +52404 +48337 +54632 +48512 +50629 +45812 +48708 +51109 +50948 +44288 +50613 +45212 +50868 +54840 +54889 +52384 +55036 +51204 +54980 +50528 +45817 +48516 +50948 +44264 +49324 +49569 +45817 +48149 +44256 +55148 +44452 +47448 +49688 +46020 +50685 +50728 +47561 +45817 +47564 +54596 +50612 +49688 +44540 +49328 +44452 +52268 +49440 +55148 +45812 +51032 +44592 +50836 +51137 +50745 +46020 +50696 +54693 +51204 +48516 +54644 +47805 +50684 +47560 +52280 +50577 +46972 +52268 +45229 +49885 +51221 +44592 +53441 +45817 +46024 +55148 +51076 +50612 +52825 +48152 +51020 +51204 +49885 +54252 +49324 +46028 +51060 +51060 +50836 +54693 +54801 +46973 +44368 +51032 +48337 +48156 +46160 +50500 +50668 +45516 +51456 +44284 +54844 +54632 +44288 +49324 +44452 +44264 +49688 +52280 +50685 +47561 +48149 +47448 +49688 +44540 +47564 +49328 +52268 +50577 +49688 +44508 +44341 +54693 +48516 +48156 +45768 +54596 +48156 +46020 +54632 +48708 +51204 +50516 +50528 +48373 +54800 +50728 +54805 +48516 +48712 +55141 +47560 +50612 +54413 +44036 +51201 +53440 +53441 +52824 +49692 +51452 +51648 +54056 +44540 +51068 +49341 +50980 +47928 +52841 +45812 +47140 +50864 +48149 +48372 +44208 +53468 +50669 +44396 +47928 +44396 +44221 +54028 +51312 +50896 +54217 +52628 +44144 +51452 +45432 +44396 +48708 +51109 +44032 +47161 +51652 +53468 +48512 +50521 +49324 +54596 +53440 +53440 +49324 +47448 +47588 +48320 +51312 +52824 +50997 +46321 +46041 +49692 +51204 +49888 +44221 +51060 +54644 +48149 +51452 +51064 +45209 +51452 +45800 +54644 +47448 +44397 +49569 +52840 +48169 +46993 +54620 +46020 +54788 +53468 +51456 +50500 +48729 +49457 +50528 +47197 +52628 +51452 +49324 +48337 +44260 +46020 +47000 +51333 +44284 +44592 +44592 +54744 +48708 +49548 +54744 +44040 +50836 +47924 +54200 +52509 +54200 +51204 +48708 +54889 +44148 +54925 +50976 +51228 +51204 +54616 +51333 +51333 +50976 +49324 +50780 +53444 +44480 +49688 +44148 +49849 +51600 +47448 +54077 +46321 +54812 +52488 +46021 +50504 +50896 +52628 +49548 +49440 +47140 +52824 +49345 +47197 +49845 +46972 +51109 +47589 +50724 +52280 +54364 +52509 +44396 +54596 +51648 +50984 +54728 +54868 +48156 +49689 +54952 +47536 +51092 +46024 +47448 +53444 +51613 +45812 +44368 +52384 +54744 +46972 +45800 +44221 +50669 +50629 +53441 +48712 +52712 +50672 +47329 +47140 +46321 +50577 +44592 +49345 +44397 +55092 +54872 +50668 +54364 +47560 +50612 +53440 +49692 +52824 +44396 +51068 +48149 +47140 +51109 +49324 +49324 +48512 +44396 +52628 +51452 +53440 +45432 +44032 +50669 +53468 +54952 +47588 +51064 +44368 +54868 +46973 +54644 +48320 +54364 +47140 +48729 +54744 +49457 +52840 +51456 +44592 +44592 +44284 +52628 +51333 +49689 +52280 +54200 +51600 +51333 +49548 +47924 +50724 +47448 +44148 +49440 +54364 +46972 +52509 +51092 +52712 +44592 +49345 +50577 +44264 +50948 +50948 +50948 +50864 +54620 +51061 +54637 +53804 +44040 +48149 +54588 +51088 +52404 +51200 +44256 +54644 +44368 +54980 +44284 +44201 +53748 +44221 +48320 +48708 +44284 +44032 +50864 +49688 +47336 +48149 +54952 +48169 +48149 +51088 +44288 +48712 +47560 +47308 +47336 +54952 +52489 +51109 +49688 +52404 +48712 +44288 +47196 +44256 +44256 +44256 +44256 +44368 +47196 +51312 +54364 +44260 +44260 +52404 +48169 +55092 +50684 +47784 +45812 +44260 +48712 +48156 +52488 +48708 +51088 +48156 +50684 +52404 +54252 +54588 +47924 +48520 +51060 +50857 +44257 +44277 +55092 +44292 +44228 +48393 +51340 +49548 +49324 +52404 +47532 +48712 +51333 +52404 +48533 +49569 +51137 +44428 +51333 +49692 +51204 +52628 +54840 +46980 +52628 +44592 +47156 +51652 +48712 +48393 +47560 +49340 +47564 +47564 +49849 +49688 +47564 +44036 +44036 +45453 +54872 +44292 +45397 +48712 +47157 +50577 +46160 +53804 +47308 +54861 +54785 +53804 +54632 +53804 +53804 +44396 +52285 +50872 +50872 +44201 +44428 +48512 +49900 +44508 +51333 +47448 +44508 +49345 +51453 +44480 +47588 +44592 +44592 +44060 +44340 +54844 +48156 +48177 +47588 +54988 +50684 +49548 +47049 +50669 +52628 +44592 +47581 +47049 +50948 +44048 +47532 +54364 +54596 +47560 +44592 +54728 +49688 +50684 +52280 +50612 +46020 +51064 +44208 +51077 +54861 +53441 +51312 +44592 +49436 +54868 +44161 +49324 +54637 +46024 +47568 +44060 +49900 +48152 +50896 +48708 +45432 +47928 +54840 +47196 +49324 +48169 +48516 +45225 +50864 +54200 +47784 +44032 +54633 +54728 +54632 +48708 +47161 +53440 +48156 +49688 +54217 +48520 +54596 +51228 +48120 +44396 +51312 +48177 +50976 +44260 +54588 +51216 +49457 +53468 +54252 +48512 +51088 +44144 +44256 +49437 +46041 +45824 +53457 +44600 +49689 +54980 +49345 +51060 +50504 +50808 +51312 +51452 +51064 +47148 +46973 +46041 +51228 +51648 +48337 +50976 +44368 +48372 +54644 +49440 +54633 +54924 +47196 +48373 +44256 +55092 +53448 +44400 +51228 +47732 +49548 +51088 +49324 +52840 +50668 +45516 +52393 +44260 +44221 +49548 +50864 +44396 +49440 +54252 +54872 +51312 +47532 +49324 +49324 +44256 +47800 +49457 +47532 +51452 +55148 +50857 +49888 +52824 +44592 +52397 +49345 +45516 +49692 +44228 +51312 +52393 +44256 +52628 +46041 +47000 +48708 +50696 +50669 +44260 +47449 +44396 +52285 +44221 +47452 +47497 +52628 +47532 +47609 +51333 +51228 +50684 +54840 +50612 +51200 +49836 +49548 +54844 +51228 +54980 +49457 +45796 +46980 +51333 +51593 +54200 +54200 +54872 +52380 +51593 +50808 +50948 +50745 +52632 +50976 +51217 +54889 +47144 +50616 +52628 +52628 +44148 +48317 +50501 +50577 +48373 +49352 +54632 +54616 +53440 +54840 +49892 +50557 +49440 +50728 +44216 +54840 +50724 +48169 +49548 +47448 +47560 +49884 +49324 +54872 +51088 +46321 +53457 +50836 +50517 +50857 +44148 +44592 +50728 +50557 +49888 +47144 +50724 +47477 +55064 +48124 +51228 +51312 +44396 +44204 +49548 +47564 +49845 +49688 +54364 +51201 +44592 +52629 +51109 +52628 +51204 +50857 +51109 +44053 +49444 +48324 +50984 +44144 +49345 +48156 +44368 +49900 +49689 +54889 +51456 +49440 +49440 +48264 +44432 +51064 +49900 +47896 +55148 +51613 +54693 +48516 +54872 +54980 +54924 +51593 +49548 +51204 +44048 +44452 +49849 +47168 +49345 +47280 +49436 +50528 +50976 +51228 +49436 +54868 +49436 +47140 +47157 +47141 +47736 +52840 +49345 +50501 +47196 +44288 +47140 +49440 +50612 +46020 +44592 +50864 +46024 +47196 +48169 +54028 +44032 +48156 +54217 +51216 +47196 +50976 +51088 +48512 +48177 +54252 +54980 +54588 +53468 +54644 +44600 +44256 +50976 +51060 +46041 +51593 +54980 +54924 +51228 +44368 +49440 +51088 +49345 +49900 +44221 +47140 +47144 +44204 +47532 +49884 +51312 +44260 +49324 +54872 +44400 +51593 +50857 +52397 +47497 +44592 +52628 +48708 +44260 +52285 +44256 +50696 +50684 +51312 +44221 +49548 +49836 +52824 +48516 +51217 +48317 +49345 +51228 +50728 +50808 +49352 +50501 +52628 +48373 +54889 +52380 +51109 +54200 +49548 +50724 +44592 +53457 +54872 +50836 +48169 +44216 +47477 +54364 +49444 +48324 +47564 +48124 +50857 +50948 +49845 +44432 +49440 +47536 +51456 +54868 +44048 +47168 +51204 +44288 +51312 +51012 +48512 +47141 +44396 +48373 +50504 +48512 +46020 +44228 +48393 +51077 +44036 +49884 +48393 +47749 +48372 +50672 +51648 +54840 +44552 +48512 +48152 +47928 +44204 +49324 +50725 +48512 +50836 +44208 +44201 +54596 +54872 +51664 +48372 +50504 +50500 +51221 +48169 +48393 +47928 +44396 +53945 +44032 +45432 +47161 +47736 +54605 +53440 +48124 +47549 +48320 +52824 +44032 +50896 +51088 +44396 +54952 +52824 +45800 +51200 +50836 +44256 +51333 +50984 +50521 +50984 +50517 +51068 +50857 +51204 +54617 +53748 +50724 +51060 +44292 +50528 +51648 +50504 +54665 +44368 +50508 +47148 +51452 +50577 +51228 +54861 +46973 +50668 +47784 +54633 +51076 +44368 +55092 +51452 +52824 +44033 +54665 +45380 +47749 +46976 +44217 +44592 +46020 +54872 +53440 +54252 +47924 +44204 +50837 +48156 +51456 +51456 +44161 +55148 +44400 +44201 +46021 +44221 +51228 +50500 +50500 +44305 +44257 +47924 +49888 +47000 +44033 +54032 +47197 +48337 +49436 +48373 +50516 +53441 +48533 +44552 +44048 +54596 +51312 +47449 +51089 +44204 +44397 +53664 +50500 +50896 +44592 +47140 +50556 +52628 +44277 +53448 +44260 +49849 +44592 +44221 +50669 +50669 +52397 +52824 +47000 +46041 +52376 +49692 +44221 +44144 +44404 +51060 +51333 +44228 +49696 +54805 +52825 +47896 +50976 +50516 +52628 +51228 +54840 +51228 +50501 +44060 +47784 +48373 +52632 +46028 +50616 +44040 +50896 +54200 +44260 +48120 +54840 +50689 +45800 +47785 +44201 +44036 +52285 +48169 +54617 +50549 +50896 +44148 +50745 +49324 +54617 +52628 +45817 +54624 +50557 +47448 +52377 +44264 +44216 +51456 +54620 +51088 +51088 +51061 +50836 +50504 +44228 +47456 +51204 +44396 +52404 +52404 +50669 +46020 +47560 +44368 +44256 +51204 +49888 +44553 +45800 +51088 +50724 +50836 +50696 +44396 +52825 +51648 +47448 +50857 +47336 +54596 +49345 +51089 +50612 +47924 +44432 +51020 +45800 +49324 +52488 +51068 +54868 +48324 +50549 +49689 +54889 +48264 +44368 +47308 +50672 +44256 +52712 +54620 +54620 +46020 +47588 +51456 +55100 +51025 +45432 +45800 +54620 +54617 +51032 +48317 +52489 +46972 +44228 +51032 +44201 +53469 +50864 +51204 +50629 +50577 +48317 +45397 +54869 +49884 +50549 +47805 +51201 +50501 +50668 +47448 +48373 +47196 +54617 +47217 +49345 +50557 +50549 +44288 +44396 +47532 +45212 +51312 +44396 +44228 +50672 +47749 +49884 +44396 +50500 +52285 +48372 +51664 +44256 +46041 +47196 +50517 +54952 +50521 +47161 +52824 +44396 +50896 +54617 +53440 +49324 +51648 +51060 +44292 +55092 +54665 +51452 +54633 +46976 +54861 +47924 +48156 +47532 +44204 +44257 +50500 +50837 +54620 +51228 +47924 +51089 +47896 +50516 +44260 +54596 +48533 +44048 +49692 +44221 +50896 +49689 +54840 +44040 +50501 +44264 +52628 +51088 +48120 +47785 +50669 +50836 +50669 +49692 +52377 +51061 +44216 +54617 +50696 +50549 +51088 +47448 +47308 +52488 +52712 +55100 +47196 +54872 +51204 +51025 +54869 +47805 +44288 +49345 +47196 +44557 +47161 +44048 +54632 +52264 +44048 +44048 +50684 +52264 +45433 +50864 +52628 +44452 +54252 +52628 +54252 +51312 +44512 +51452 +44204 +48120 +48120 +50864 +47448 +49888 +44512 +47536 +50696 +44592 +47197 +44396 +44512 +44221 +50668 +54693 +50516 +44032 +48120 +47456 +49324 +51109 +51064 +44221 +51228 +47161 +50516 +52628 +47589 +47589 +55128 +52488 +48512 +47732 +47732 +48512 +54252 +44144 +44397 +47784 +48512 +54620 +47000 +44397 +47732 +47532 +54413 +48512 +48512 +47732 +47560 +47560 +47560 +55064 +47560 +52628 +54693 +48516 +54889 +54889 +44552 +44305 +52392 +51452 +54945 +44508 +44305 +54945 +49436 +50668 +51216 +47532 +55121 +55121 +51061 +44160 +45812 +44592 +46024 +47925 +47925 +44216 +45824 +52636 +50976 +51216 +51060 +55184 +50684 +52636 +47588 +50516 +44221 +50872 +47140 +45817 +46021 +52280 +50504 +50516 +50516 +45812 +50516 +51652 +45824 +52280 +50696 +48120 +45812 +50684 +46021 +47196 +52824 +48516 +48520 +48372 +48124 +48124 +50896 +52629 +44144 +51312 +50752 +51452 +51648 +47609 +50724 +48324 +53440 +48317 +50896 +51312 +53440 +51221 +47729 +45236 +51221 +51088 +44256 +44256 +46041 +48516 +46020 +50672 +48708 +52285 +44256 +52377 +50672 +45817 +46321 +49436 +49436 +48516 +54224 +47928 +48156 +52488 +53440 +51333 +44396 +49373 +49437 +50976 +49884 +51221 +50724 +45380 +51221 +54844 +44201 +50616 +46028 +49324 +54812 +44216 +50616 +47336 +48708 +44508 +44396 +54620 +50732 +50732 +54980 +55148 +50508 +49324 +54980 +50745 +52264 +45453 +45229 +51228 +51116 +51228 +51088 +51116 +51228 +51228 +51228 +52824 +52828 +52828 +55128 +50500 +51008 +44228 +54252 +49353 +49464 +51116 +52824 +50616 +51200 +52488 +47161 +47161 +52377 +44428 +49464 +44036 +49444 +44396 +44368 +52265 +44260 +50612 +49548 +44592 +50696 +49353 +52628 +50864 +50868 +50616 +50864 +50501 +50501 +51061 +52264 +52628 +51204 +52488 +44552 +50508 +52824 +52828 +55128 +51008 +51200 +47161 +54252 +52488 +51116 +44036 +50612 +52265 +50864 +50501 +50857 +47217 +44277 +48169 +50628 +47329 +47217 +44277 +44048 +45813 +47161 +45813 +47329 +44277 +44048 +44396 +52628 +48324 +44396 +50557 +52712 +54868 +47197 +54644 +50976 diff --git a/Master/texmf-dist/tex/xetex/xetexko/hanjacom_hangul.tab b/Master/texmf-dist/tex/xetex/xetexko/hanjacom_hangul.tab new file mode 100644 index 00000000000..6477fd7f378 --- /dev/null +++ b/Master/texmf-dist/tex/xetex/xetexko/hanjacom_hangul.tab @@ -0,0 +1,302 @@ +44060 +44081 +44144 +44256 +44264 +44288 +44480 +44480 +44512 +44544 +44552 +45208 +45208 +45208 +45208 +45208 +45208 +45208 +45208 +45208 +45209 +45209 +45209 +45209 +45209 +45209 +45209 +45212 +45212 +45212 +45212 +45212 +45212 +45224 +45224 +45224 +45224 +45225 +45225 +45225 +45229 +45229 +45229 +45229 +45229 +45236 +45257 +45432 +45432 +45432 +45432 +45432 +45432 +45432 +45432 +45432 +45432 +45432 +45432 +45433 +45433 +45433 +45433 +45433 +45433 +45436 +45453 +45453 +45453 +45453 +45516 +45516 +45516 +45516 +45572 +45572 +45572 +45572 +45572 +45572 +45572 +45572 +45713 +45713 +45728 +45733 +45733 +45733 +45733 +45733 +46160 +46972 +46973 +46973 +46976 +47161 +47196 +47456 +47532 +48176 +48264 +48320 +48512 +48520 +48708 +49325 +49325 +49340 +49353 +49373 +49453 +49464 +49604 +49888 +49900 +49901 +50556 +50557 +50557 +50577 +50577 +50577 +50577 +50577 +50577 +50577 +50577 +50668 +50668 +50668 +50668 +50668 +50668 +50668 +50668 +50668 +50668 +50668 +50669 +50669 +50669 +50669 +50672 +50672 +50672 +50672 +50672 +50672 +50672 +50672 +50672 +50672 +50672 +50672 +50672 +50672 +50676 +50676 +50676 +50676 +50676 +50676 +50684 +50684 +50684 +50684 +50684 +50685 +50689 +50689 +50689 +50689 +50689 +50689 +50689 +50689 +50689 +50689 +50689 +50689 +50689 +50696 +50696 +50696 +50696 +50724 +50836 +50836 +50836 +50836 +50836 +50836 +50836 +50836 +50836 +50836 +50857 +50868 +50896 +50976 +50976 +50976 +50976 +50976 +50976 +50976 +50976 +50976 +50976 +50977 +50977 +50977 +50980 +50980 +50980 +50980 +50984 +50984 +50984 +50984 +50997 +51060 +51060 +51060 +51060 +51060 +51060 +51060 +51060 +51060 +51060 +51060 +51060 +51060 +51060 +51061 +51061 +51064 +51064 +51064 +51064 +51064 +51064 +51064 +51076 +51076 +51076 +51077 +51077 +51077 +51109 +51201 +51648 +51665 +52264 +52377 +52404 +53441 +53441 +53461 +53469 +53685 +54252 +54253 +54637 +54637 +54788 +54869 +50732 +54841 +49933 +44257 +52509 +44592 +52397 +48512 +44144 +55148 +51200 +51061 +47168 +49888 +49345 +48373 +51221 +51221 +50864 +50508 +44396 +49373 +51228 +46160 +44553 +51068 +46020 +54952 +54665 +46020 +48152 +49324 +44288 +54617 diff --git a/Master/texmf-dist/tex/xetex/xetexko/hanjaexa_hangul.tab b/Master/texmf-dist/tex/xetex/xetexko/hanjaexa_hangul.tab new file mode 100644 index 00000000000..d5c3e65562b --- /dev/null +++ b/Master/texmf-dist/tex/xetex/xetexko/hanjaexa_hangul.tab @@ -0,0 +1,6582 @@ +44396 +52392 +52832 +47560 +44284 +50724 +51008 +44404 +46168 +51208 +49332 +53672 +51060 +51320 +44544 +50732 +45440 +46028 +51320 +44040 +44264 +50984 +54792 +45440 +49920 +46168 +50732 +50872 +44396 +44404 +44600 +44600 +50984 +50976 +46896 +44264 +44396 +49444 +44152 +51228 +49436 +54805 +52380 +55113 +47448 +47492 +50577 +50857 +49888 +51652 +45824 +50732 +48152 +50976 +49324 +47560 +55136 +55128 +51473 +45236 +49849 +54413 +50896 +44201 +53468 +52636 +48169 +50836 +47784 +51089 +51060 +52628 +46041 +49689 +50669 +44417 +50773 +47280 +45516 +51200 +49689 +51088 +52392 +51456 +49688 +49464 +51473 +49888 +44060 +51217 +45208 +49549 +51208 +47217 +51081 +54077 +44204 +51593 +44033 +46988 +47896 +51060 +47140 +44228 +50724 +46972 +51228 +45392 +44256 +48708 +54844 +49688 +55036 +50836 +45224 +52628 +52840 +51656 +55148 +53468 +50836 +54924 +51456 +47568 +47029 +45817 +50836 +49548 +51201 +50864 +52265 +51060 +50672 +44228 +55137 +47924 +44048 +52285 +49845 +49884 +44221 +47336 +49341 +54620 +49692 +54924 +48373 +45804 +46021 +50521 +50864 +45824 +49688 +47732 +51008 +51312 +50668 +47736 +51456 +45544 +54644 +50976 +50557 +51025 +49453 +54413 +47280 +47140 +49440 +46972 +49437 +44592 +50773 +44260 +49884 +50685 +51204 +47805 +51116 +47049 +44264 +47784 +44277 +55141 +49688 +51204 +47581 +47784 +47564 +44428 +49884 +47532 +48373 +47749 +44396 +53440 +52840 +51221 +47452 +50725 +48729 +54876 +46041 +44277 +51137 +52649 +52840 +44221 +47449 +54665 +52832 +45224 +49324 +47736 +54596 +44208 +49689 +55113 +44277 +44277 +50976 +54805 +44040 +54588 +51216 +48512 +46973 +44049 +44040 +45817 +48177 +54632 +51088 +55012 +46993 +45824 +44256 +49444 +51312 +47140 +54925 +46160 +54200 +51200 +50672 +50501 +44208 +51032 +52265 +52404 +44148 +44053 +52832 +49709 +49436 +52832 +47049 +46321 +47536 +51208 +49549 +49548 +51104 +48156 +48708 +52489 +51204 +44048 +52628 +52524 +49444 +47141 +52392 +52832 +55092 +44148 +44053 +44544 +44033 +48708 +52636 +48337 +44396 +54624 +48156 +47049 +44340 +49464 +54624 +48324 +51208 +47280 +49900 +54056 +50577 +47196 +48176 +50517 +47196 +51340 +53441 +49884 +45208 +49440 +54637 +50976 +44452 +44452 +51061 +49440 +44048 +47336 +52404 +47484 +49464 +48708 +49692 +50976 +51208 +51452 +51452 +44033 +51020 +44228 +51648 +44049 +54840 +46989 +51032 +44049 +48512 +44552 +50528 +53748 +50517 +51452 +49324 +51452 +51032 +51204 +52397 +54872 +49548 +50976 +52280 +51456 +51312 +50864 +49324 +44256 +49604 +44340 +49933 +54617 +44060 +50672 +44396 +51060 +54868 +55176 +48276 +48169 +45812 +48169 +44277 +50836 +48512 +45580 +54617 +50864 +54876 +55113 +52840 +47581 +51008 +48149 +47549 +48268 +54952 +53804 +55113 +49324 +49567 +54693 +47456 +47536 +50696 +54980 +51452 +49696 +44257 +51060 +45448 +44592 +49900 +44079 +44415 +46179 +44079 +45384 +50948 +44228 +51228 +54861 +53444 +50508 +50508 +51020 +51652 +44051 +48531 +44275 +44275 +45143 +44312 +49688 +45208 +50556 +51088 +53804 +54632 +44400 +46041 +54844 +47197 +52628 +54925 +47497 +49688 +52392 +47452 +46629 +46629 +48192 +50687 +50687 +54848 +44396 +50676 +49884 +44089 +48516 +52632 +45684 +47784 +52293 +50501 +49324 +50976 +50501 +49373 +47928 +47564 +54840 +44061 +54616 +47564 +47029 +51665 +54980 +51656 +51116 +44032 +50780 +44049 +48176 +50528 +52628 +44148 +44396 +45812 +54056 +48149 +52628 +47456 +49548 +54980 +44256 +54028 +51471 +48708 +51079 +46041 +51228 +52629 +44285 +47196 +51656 +54644 +49845 +54588 +51208 +52264 +49892 +47749 +51107 +51333 +51665 +54925 +53457 +50504 +54988 +48156 +49352 +50948 +52488 +48708 +44284 +50629 +54693 +54868 +54616 +51089 +50669 +51088 +50556 +47497 +54632 +45824 +50689 +51032 +51600 +51021 +54788 +44537 +51656 +54632 +46039 +54364 +47168 +50491 +46976 +49352 +46988 +50504 +44396 +48708 +50516 +54632 +44048 +49688 +45785 +51088 +52285 +48317 +54633 +50745 +49440 +50756 +50752 +44540 +49436 +44340 +48708 +47784 +51221 +48520 +50836 +52377 +51109 +51664 +45812 +44397 +44396 +51340 +54252 +44152 +50528 +51340 +51088 +48268 +51064 +44256 +51116 +50864 +45384 +44396 +47588 +53468 +48337 +54224 +48372 +54861 +52489 +54616 +51204 +51109 +44592 +49548 +52384 +50948 +48373 +53440 +50864 +50556 +44508 +50948 +44340 +50864 +50808 +50836 +47217 +49457 +48372 +45824 +54801 +50620 +46993 +50696 +51333 +47564 +51109 +54616 +44260 +49324 +47448 +44592 +47308 +50696 +51665 +51008 +44432 +45813 +50696 +54644 +54840 +50745 +44048 +52392 +45824 +45817 +52841 +48149 +47805 +44452 +51204 +47336 +49437 +44033 +55148 +55148 +44368 +45229 +50868 +52404 +47469 +48373 +51333 +52380 +44256 +54644 +51312 +44284 +44340 +45824 +54840 +53804 +47161 +49452 +47000 +45393 +48520 +44256 +51088 +48152 +44032 +44361 +54812 +50669 +49692 +49900 +52265 +54952 +44592 +45432 +44368 +51061 +50864 +55148 +50628 +49888 +50684 +54840 +49341 +44512 +50864 +45812 +49900 +48176 +44396 +52392 +50500 +54252 +46041 +49324 +45236 +49884 +47896 +51081 +44592 +54840 +44368 +54805 +54252 +52628 +54217 +50752 +44208 +51032 +51060 +53440 +51109 +44256 +49436 +53440 +51060 +47784 +54801 +47140 +44396 +49688 +52268 +46160 +52824 +48393 +50517 +49324 +51340 +48156 +49888 +50857 +49888 +50976 +54056 +47217 +54872 +54620 +50756 +49688 +50868 +47532 +53457 +46988 +47576 +44053 +52629 +50628 +49437 +47449 +49437 +49688 +47732 +54844 +50808 +48156 +50696 +45516 +52845 +53444 +44228 +49688 +48320 +50516 +44284 +49341 +49328 +54632 +45824 +49345 +49324 +48393 +47144 +49900 +52629 +48120 +51060 +47785 +50745 +51204 +51061 +45572 +45817 +54812 +50868 +49688 +54028 +50696 +45813 +44221 +47144 +51312 +52280 +52376 +47197 +49689 +45576 +50724 +50516 +52280 +44048 +52572 +51333 +47336 +50672 +45812 +47588 +49900 +50900 +45236 +50724 +49888 +48120 +52392 +45817 +46988 +55148 +50557 +51656 +50689 +54924 +47805 +45544 +48152 +48120 +50620 +44396 +52268 +47144 +51656 +51088 +54644 +49436 +54840 +44204 +51228 +47732 +49692 +45572 +55148 +49692 +47144 +51200 +49688 +47308 +44396 +49324 +51221 +44060 +50857 +48169 +44144 +54633 +50836 +45397 +51032 +47049 +50745 +51064 +50672 +49689 +49437 +47548 +50500 +47784 +47749 +52572 +50864 +50696 +44396 +48120 +51456 +50728 +50896 +44053 +51216 +47469 +54624 +49457 +52572 +44368 +47732 +47805 +52840 +45824 +50756 +50528 +46301 +49900 +48320 +45572 +47156 +44540 +50864 +49688 +51340 +54028 +54924 +50836 +53748 +44537 +50516 +46972 +44592 +50808 +48156 +52272 +49696 +51649 +51081 +54872 +54028 +52841 +44144 +48120 +54644 +44592 +49884 +49444 +52264 +44396 +46021 +45544 +52841 +44592 +53748 +52377 +49569 +51204 +47308 +51204 +51648 +48516 +51020 +51104 +44452 +54924 +51648 +46988 +45432 +51452 +44540 +45824 +50948 +44592 +54728 +52509 +50885 +46160 +51648 +46020 +48124 +50773 +48520 +44032 +51313 +54840 +49849 +50900 +45768 +44592 +47144 +50504 +47784 +49324 +49345 +50521 +54868 +51340 +44396 +47196 +48512 +53468 +47581 +46993 +53440 +54632 +47581 +48156 +44512 +44592 +54632 +46160 +47217 +48712 +51312 +52293 +44592 +51104 +48120 +48176 +51092 +54637 +44053 +44428 +44592 +49709 +47197 +52280 +50868 +50501 +45800 +48124 +50948 +52380 +49688 +48124 +46028 +50529 +47749 +50836 +50896 +47456 +50808 +44053 +50896 +45813 +44256 +47308 +47336 +52280 +50724 +54364 +50857 +47581 +46020 +52280 +50724 +51201 +49845 +48373 +45800 +52628 +50980 +46041 +54728 +50501 +44592 +51665 +51665 +54868 +44368 +51396 +54364 +47805 +48176 +50808 +51032 +50724 +49436 +54840 +45824 +54869 +51032 +52268 +51669 +47140 +47140 +45544 +54924 +47141 +50577 +47280 +54413 +48120 +50872 +54889 +44144 +48512 +48512 +51204 +48393 +51060 +44040 +44592 +48708 +47561 +51064 +54889 +48276 +44049 +48512 +44060 +49324 +55148 +49324 +46041 +50896 +51088 +54224 +44284 +47168 +54889 +49692 +45208 +54889 +52393 +47928 +54788 +55137 +50629 +47784 +48177 +49340 +50976 +51204 +51312 +51456 +44260 +47924 +50689 +51333 +52404 +47156 +48708 +44396 +54889 +49444 +48393 +47336 +51312 +51221 +51452 +47564 +47329 +50629 +51008 +48712 +51221 +52392 +46976 +45576 +50696 +44592 +44228 +44592 +53469 +50864 +44396 +54872 +51200 +46989 +47161 +51648 +48376 +49324 +51200 +45800 +47308 +50696 +51312 +54620 +52377 +51088 +52824 +50628 +46993 +46160 +47217 +51204 +50616 +53748 +53440 +51032 +52824 +50500 +50689 +51217 +53804 +50500 +49688 +52264 +51109 +51333 +50745 +48152 +44368 +47156 +44540 +47196 +50628 +44053 +49548 +51061 +51648 +54805 +51109 +54224 +44221 +51116 +46041 +44032 +44428 +54620 +51201 +50724 +49328 +54945 +46020 +51060 +46024 +54588 +47728 +49552 +47196 +49436 +54801 +54596 +49464 +54596 +49888 +54788 +50948 +48324 +51060 +44204 +54980 +51652 +48708 +50669 +50977 +44144 +51104 +48120 +51060 +49884 +44277 +49688 +45800 +49340 +53468 +47785 +51221 +48320 +50857 +51613 +52268 +51221 +45824 +53468 +54840 +44396 +51201 +53685 +54924 +54805 +49709 +53448 +44600 +46041 +51473 +51228 +49452 +52380 +52824 +50948 +50980 +44256 +47548 +50756 +51333 +51665 +51333 +45224 +49444 +49892 +49353 +48120 +47924 +54889 +45804 +45800 +45397 +50976 +51025 +49900 +50528 +51064 +49436 +52264 +51312 +47581 +52392 +44553 +48169 +54056 +50528 +54032 +50724 +49900 +44032 +54952 +48516 +44048 +44368 +44032 +46041 +52392 +50864 +44256 +48516 +48512 +51460 +51200 +53468 +52488 +51008 +54637 +51076 +55100 +52649 +53441 +44277 +47148 +47168 +50865 +54077 +50696 +54644 +47532 +54980 +44277 +44033 +50896 +45909 +50640 +44368 +44305 +44221 +51089 +48512 +54801 +48176 +52393 +51088 +48169 +54632 +54785 +44396 +54889 +47200 +44161 +51452 +53456 +50628 +49885 +45909 +53945 +48124 +47497 +49688 +53748 +51092 +52393 +48512 +48533 +51032 +44397 +44592 +47532 +51204 +50896 +50864 +52292 +44592 +50977 +47144 +51333 +48124 +44161 +52649 +50976 +44537 +50948 +48120 +49688 +55092 +49436 +52824 +52628 +54812 +44557 +50864 +54801 +49692 +49688 +53440 +47336 +46024 +48169 +53468 +52488 +51008 +49548 +48708 +51652 +50896 +51060 +55124 +49353 +54801 +48124 +48516 +54633 +52377 +51008 +52293 +45769 +50724 +48393 +47144 +49345 +49328 +47560 +52292 +54840 +47197 +50528 +51032 +54868 +52264 +52268 +50501 +54925 +49692 +45768 +44048 +47532 +50672 +50684 +47469 +47928 +44552 +44201 +50864 +48320 +50668 +54869 +47561 +51452 +47588 +45824 +46973 +51208 +50948 +51032 +54732 +54785 +52280 +46976 +51008 +49453 +52272 +46972 +47161 +51204 +54841 +52392 +50500 +51116 +51116 +44201 +51452 +50857 +50857 +44537 +50577 +50837 +49845 +49345 +50865 +51060 +54840 +44553 +44049 +51204 +44508 +44160 +46020 +44540 +47784 +51064 +50508 +48156 +54788 +47784 +48169 +50500 +44053 +49569 +55064 +50836 +44284 +44340 +47448 +50529 +51088 +51088 +48708 +50752 +46988 +51105 +44032 +48156 +54924 +51060 +54644 +51064 +51452 +52649 +49440 +54788 +49548 +44396 +54056 +44452 +50976 +44277 +44277 +54848 +47196 +47141 +45208 +49340 +51116 +50500 +48512 +44081 +53444 +54077 +53945 +45813 +53441 +54364 +44256 +54848 +52285 +48337 +51648 +46041 +53748 +51312 +50696 +47492 +54028 +51228 +48124 +53440 +52264 +44396 +48169 +50672 +53444 +48512 +51333 +44508 +47196 +54632 +50689 +52824 +52393 +49457 +54812 +49692 +49452 +44148 +49444 +49548 +44060 +47732 +54848 +54588 +50745 +54924 +45225 +49569 +48516 +52628 +52393 +54889 +46988 +50896 +54840 +46160 +54869 +44260 +50836 +52293 +44592 +44148 +51204 +46020 +44540 +47568 +51228 +47732 +52280 +47029 +48317 +50577 +44144 +44144 +44033 +49325 +44148 +49324 +52628 +52628 +54925 +50868 +55137 +49440 +49689 +48708 +52293 +50685 +47925 +46024 +49341 +44552 +55036 +46164 +47161 +44053 +55092 +51032 +49353 +47805 +45800 +46988 +54840 +52293 +51116 +50724 +46972 +47736 +55064 +48512 +49452 +55092 +48149 +54812 +44221 +55184 +51656 +55148 +54952 +44148 +54028 +52488 +51089 +44428 +49569 +44397 +50508 +45393 +44148 +52393 +52393 +48708 +44592 +51648 +44592 +52628 +44404 +50864 +44552 +44404 +44032 +48520 +44221 +51200 +49440 +44228 +44049 +44400 +54620 +53685 +48156 +49452 +48708 +47456 +50629 +50696 +51396 +49328 +51089 +47197 +53804 +47156 +44284 +49328 +52840 +52712 +47144 +47784 +46024 +44048 +44060 +49548 +44256 +54596 +51088 +51064 +55137 +49440 +49689 +49341 +50696 +53441 +47196 +47161 +44144 +51116 +54872 +46161 +46181 +54624 +48152 +44257 +46160 +51664 +47336 +44396 +44428 +44032 +49548 +44201 +51208 +51221 +45800 +51200 +50616 +48169 +44592 +48120 +50613 +50633 +50948 +51032 +51204 +51221 +50976 +55064 +50836 +50836 +51648 +44277 +44592 +44036 +44305 +51648 +54980 +48128 +48512 +47932 +44305 +45800 +51200 +46020 +50672 +48152 +46041 +44144 +48124 +52285 +47749 +53664 +54252 +50504 +52632 +50857 +54788 +49692 +49884 +51088 +47925 +46993 +45212 +54056 +49888 +54952 +48708 +51452 +44592 +52393 +49548 +49437 +44260 +51228 +47197 +49345 +50976 +49692 +51105 +50864 +45824 +52268 +47564 +48124 +54872 +50728 +45212 +54872 +54980 +44221 +48149 +54788 +47141 +51652 +54869 +47581 +54364 +54840 +50577 +44228 +45380 +49549 +50948 +52384 +55137 +51652 +49569 +44040 +48533 +49604 +47161 +55148 +45824 +44553 +54252 +54869 +54252 +54785 +54812 +52393 +50672 +44396 +51089 +45212 +47148 +50976 +52404 +52392 +50724 +54861 +44368 +54840 +44260 +46020 +51137 +44428 +54889 +48373 +51312 +51032 +46024 +49436 +51081 +52488 +44053 +51652 +49340 +45236 +50672 +44208 +54868 +49437 +48169 +47924 +52832 +44053 +55064 +47568 +47588 +49324 +48320 +47196 +44144 +45824 +50872 +54633 +51201 +47140 +54028 +50997 +44396 +47148 +44277 +49440 +49888 +54805 +47928 +51312 +48512 +53469 +48152 +50556 +47148 +48512 +51340 +51200 +54036 +52524 +52393 +52628 +44049 +44161 +54952 +44204 +51204 +48169 +45224 +46020 +54788 +50628 +45817 +45813 +51200 +44404 +50521 +44048 +54952 +44257 +50948 +48169 +52628 +50620 +52392 +45236 +54801 +47924 +50865 +47732 +51092 +48176 +45236 +49457 +52841 +50672 +44557 +52649 +51060 +44040 +44540 +47924 +50501 +47456 +49884 +51109 +54785 +51208 +45380 +50689 +44288 +54980 +44060 +49569 +48516 +49353 +50724 +51649 +49885 +44277 +54624 +50745 +54632 +44208 +54844 +48708 +49849 +52628 +51664 +49548 +51204 +49325 +44228 +49569 +52824 +48376 +51312 +49328 +48152 +46993 +54596 +49440 +48176 +45824 +52832 +51648 +54588 +49328 +54224 +49549 +51200 +55124 +44221 +52380 +51109 +45436 +54805 +53440 +53489 +47729 +53457 +52712 +49436 +51201 +54620 +44288 +52384 +45813 +54840 +52712 +47196 +44204 +47197 +44204 +54252 +51664 +48516 +47141 +51312 +44592 +52488 +50984 +51060 +47161 +44144 +47156 +47196 +52489 +44277 +52824 +54364 +44552 +44221 +50857 +46041 +51333 +48373 +51652 +54364 +54632 +48376 +44060 +48712 +51312 +47157 +47140 +46972 +49900 +47732 +51204 +51201 +48176 +49452 +47144 +51652 +49452 +48712 +44033 +47217 +52628 +44256 +53440 +49340 +54617 +46988 +49453 +55148 +46988 +52629 +51060 +45208 +47532 +50557 +51204 +51060 +52824 +44592 +54637 +54644 +44081 +51088 +54616 +54812 +44144 +54644 +55148 +54644 +50780 +52280 +49692 +54980 +49888 +46160 +54633 +49341 +50865 +50500 +48512 +51320 +44396 +51088 +44048 +54632 +54616 +51060 +49453 +50616 +44368 +54812 +52824 +49688 +44053 +51020 +55121 +51032 +55148 +49353 +44552 +50629 +50864 +44033 +52393 +46976 +44260 +51221 +47924 +49464 +44032 +47161 +49324 +44480 +52712 +55092 +50684 +54980 +51092 +52380 +52272 +49324 +51021 +54588 +44256 +49849 +46993 +53748 +49437 +47497 +44592 +50756 +47156 +46021 +54844 +46976 +50724 +45800 +44452 +50528 +51116 +54924 +51032 +47561 +51648 +48516 +54077 +51665 +48317 +47141 +47140 +46972 +54644 +44552 +44060 +44033 +51652 +44277 +51221 +44396 +44396 +44228 +47161 +46041 +49548 +44033 +50696 +52265 +45397 +51648 +47336 +54364 +44552 +49688 +54252 +49688 +49440 +47280 +49548 +48512 +44396 +49688 +49324 +51648 +45812 +50857 +49556 +50689 +47532 +45236 +48320 +49688 +49632 +45817 +54620 +49548 +50857 +53457 +46321 +48373 +52488 +45812 +53457 +46988 +45397 +47157 +52393 +51656 +51473 +49548 +47197 +45812 +55137 +44592 +51656 +45769 +50696 +51064 +50864 +50773 +44284 +52769 +50672 +49772 +50672 +47448 +53685 +47924 +54056 +50900 +50976 +44396 +50517 +54252 +48320 +49884 +52272 +51068 +48277 +50864 +45824 +46976 +51032 +52292 +52649 +50672 +55100 +50976 +55092 +50773 +52649 +44277 +45804 +44284 +44368 +47196 +49689 +47217 +44228 +52393 +52272 +45812 +48708 +45813 +49440 +50672 +45544 +49888 +44396 +50577 +53468 +44537 +48128 +44228 +50976 +54848 +54868 +50773 +50976 +52293 +54596 +48120 +44053 +49444 +48276 +50669 +45812 +47336 +50549 +49548 +52840 +49453 +51008 +51228 +50672 +49689 +44256 +49849 +45236 +50773 +47732 +49548 +50669 +49324 +51021 +51665 +48149 +50976 +47784 +49341 +49688 +52824 +54200 +47140 +46020 +54980 +54632 +54693 +51473 +51060 +51452 +52488 +44417 +49885 +51664 +50745 +50620 +44400 +49324 +50836 +49444 +51648 +45733 +49900 +49324 +47805 +52840 +48128 +44033 +53456 +49452 +48120 +47000 +51452 +49689 +49444 +48156 +51221 +51313 +54889 +49436 +49324 +54620 +53456 +54840 +52392 +54876 +47548 +45393 +47588 +49692 +47928 +44036 +52572 +44432 +54616 +48708 +49885 +49324 +49340 +45376 +48729 +47564 +52397 +48512 +49440 +45224 +50696 +49688 +48120 +44404 +48149 +47280 +44040 +49341 +48128 +49688 +44040 +48317 +50696 +49440 +51021 +50689 +51200 +49692 +48533 +49436 +54364 +47924 +47308 +51109 +52628 +52524 +48320 +50557 +47589 +48708 +55092 +49324 +47280 +51221 +54952 +44368 +44341 +54889 +47924 +50684 +54617 +51200 +54945 +50689 +44228 +55148 +50976 +47144 +49440 +54872 +51008 +51025 +47156 +49900 +51109 +48176 +44036 +49689 +48152 +51216 +50976 +54056 +50668 +50672 +51025 +45229 +47336 +50669 +54868 +44396 +51216 +52488 +44036 +49888 +45576 +48176 +52840 +48176 +47308 +47568 +50976 +49548 +47448 +54632 +48376 +50857 +49888 +52824 +51076 +45453 +49692 +54801 +54861 +52392 +48393 +50528 +44284 +54364 +48156 +44221 +53685 +49436 +52628 +54924 +52488 +48512 +54924 +50517 +50948 +48516 +50684 +48512 +47452 +50508 +50745 +55036 +50672 +50864 +52509 +50684 +52628 +51312 +55148 +45824 +51204 +51221 +48372 +54785 +46028 +54980 +53748 +47536 +44221 +52264 +49457 +54841 +51613 +54785 +50896 +48393 +55148 +51456 +44221 +47561 +48393 +51312 +48393 +47532 +50885 +46041 +50504 +47141 +47925 +48317 +51088 +50685 +46020 +50684 +47924 +50672 +49440 +44089 +54744 +45824 +54620 +49688 +51216 +51228 +51208 +44256 +52268 +52488 +49453 +46980 +48264 +44285 +55148 +49453 +48120 +50672 +52268 +51020 +46020 +44036 +54869 +51200 +46041 +47564 +52264 +47532 +49548 +44277 +54744 +51208 +51648 +51312 +49688 +48708 +50629 +54200 +52280 +54840 +44036 +44396 +50504 +49692 +44148 +54056 +54028 +48516 +44284 +53440 +53440 +51089 +47161 +49548 +44480 +50672 +49464 +54980 +47148 +49324 +49324 +48393 +54056 +51064 +46021 +51088 +47049 +44204 +48708 +51649 +52509 +55064 +44152 +47532 +50896 +50501 +49688 +49328 +51201 +47336 +44540 +49569 +49324 +48149 +50836 +44053 +54872 +54872 +46020 +50976 +50549 +50549 +50836 +51008 +49884 +51008 +44208 +46024 +54788 +44032 +51333 +44161 +51452 +52488 +50521 +50976 +44221 +49328 +51060 +49324 +50696 +47589 +55092 +44305 +51089 +54952 +50724 +44081 +44221 +51221 +55148 +47784 +44221 +53457 +50752 +44397 +52268 +54364 +53441 +54848 +45432 +44048 +44396 +50976 +54980 +51088 +49884 +52824 +54841 +50577 +50745 +54800 +48712 +50857 +47336 +51312 +49340 +44368 +51201 +55064 +48264 +54632 +52268 +51104 +49892 +45804 +51452 +45432 +54632 +50668 +53441 +50976 +47141 +54869 +55148 +49452 +52280 +47144 +54952 +49324 +49836 +48149 +44396 +44277 +51088 +50864 +47217 +49324 +51081 +45684 +47588 +48156 +44396 +46160 +49696 +54217 +48320 +47784 +48520 +49440 +48708 +54805 +51060 +50976 +44340 +48337 +44257 +48372 +54924 +50672 +51204 +54980 +48372 +47928 +46980 +46020 +50724 +49836 +47161 +51456 +44228 +50868 +52628 +52852 +44404 +45824 +48176 +48320 +50977 +48533 +50669 +51333 +46980 +48712 +49688 +46028 +49444 +49884 +49900 +44396 +50976 +50864 +53440 +50756 +44216 +51456 +54596 +46020 +49836 +52268 +46020 +50948 +48393 +47336 +47532 +47564 +51092 +54596 +44537 +51104 +54788 +47141 +46024 +45812 +49688 +50745 +52489 +45804 +51032 +50668 +47157 +44592 +44305 +54805 +44221 +46972 +51664 +46164 +44256 +50976 +47280 +48149 +45516 +54200 +47144 +53461 +47156 +50728 +45817 +47532 +51221 +50752 +52628 +44053 +54805 +50521 +50756 +54077 +48177 +53440 +49688 +51060 +48177 +44208 +44256 +44277 +46041 +54632 +49457 +54801 +44284 +54665 +51216 +52264 +46041 +48708 +51456 +47157 +49457 +50864 +51228 +50976 +51204 +50857 +44053 +45817 +51109 +54364 +52285 +47197 +46041 +51221 +47141 +49341 +48152 +49324 +46321 +45817 +54841 +51032 +54632 +49453 +46972 +47448 +44048 +45812 +55137 +54800 +45812 +49373 +49373 +50976 +50976 +45224 +47924 +44053 +50980 +52377 +44396 +50896 +47168 +47448 +47148 +54801 +48708 +50516 +50669 +44397 +50976 +49692 +51648 +52264 +52280 +51613 +50745 +48512 +50672 +49457 +55092 +49436 +44368 +44368 +54980 +51109 +51109 +44592 +49688 +49900 +48152 +44553 +51648 +51064 +44256 +50732 +44284 +44161 +49696 +54644 +53440 +46021 +51088 +52392 +47785 +48512 +47161 +49353 +47448 +49440 +45236 +50517 +50528 +47140 +45813 +50668 +50672 +47140 +49888 +47532 +47049 +44221 +55124 +49324 +52840 +54801 +52264 +50976 +48372 +44305 +44033 +47000 +44552 +44053 +52629 +48176 +44284 +51032 +44340 +49457 +54200 +54644 +52628 +54889 +54924 +54840 +54224 +50724 +51088 +49324 +44228 +44264 +49436 +44256 +49324 +47560 +51200 +53748 +52628 +54800 +46993 +48152 +44256 +52824 +52404 +50528 +49440 +44284 +49845 +50745 +53748 +52280 +49548 +54744 +44060 +48516 +44400 +52824 +50557 +51452 +54801 +47280 +50684 +47196 +53748 +50689 +48708 +46972 +47140 +48324 +54693 +47784 +48177 +44305 +46160 +50836 +54624 +52632 +54617 +45397 +51452 +47141 +45817 +54872 +48708 +54028 +52293 +50521 +45813 +50724 +49444 +51032 +52824 +45813 +50672 +48169 +52628 +47564 +45804 +48149 +44036 +50672 +54812 +51200 +50500 +48276 +50976 +50504 +53748 +47805 +49324 +51652 +44256 +44592 +44368 +44368 +50684 +51652 +44048 +47732 +54788 +49340 +50508 +52380 +54872 +51064 +51064 +52380 +44208 +44228 +52404 +50521 +47588 +47588 +48708 +46020 +48708 +44396 +51216 +49692 +48708 +47924 +49325 +44256 +54861 +54876 +46973 +54637 +44217 +51204 +54644 +54889 +48372 +44257 +48393 +47785 +46980 +50689 +49692 +47049 +44161 +51228 +49452 +52628 +48729 +51652 +50672 +46020 +52824 +51208 +47049 +54620 +54364 +54665 +47609 +50629 +48128 +44228 +44228 +50508 +54801 +50872 +44217 +51221 +50836 +50689 +50577 +51665 +51333 +55012 +48124 +47336 +44060 +50836 +50616 +49552 +44480 +54889 +50549 +49457 +52264 +47156 +49452 +49440 +49440 +51201 +45776 +52376 +47896 +54869 +50612 +52280 +54848 +52789 +54364 +51104 +55137 +54637 +50864 +47588 +47581 +51204 +54872 +44201 +44033 +45229 +48708 +49437 +49325 +47925 +47157 +47736 +47925 +55148 +52280 +44396 +52488 +54869 +54620 +44201 +45684 +46041 +54980 +50668 +50976 +52649 +48149 +52268 +51312 +51320 +51228 +44040 +44508 +54665 +55036 +49437 +44404 +52264 +49437 +54952 +50668 +48169 +53440 +49437 +44032 +49884 +51648 +46041 +51088 +48512 +48124 +51652 +51652 +52264 +50672 +44368 +54861 +44277 +44368 +47029 +44340 +46989 +50696 +44161 +51340 +50672 +44277 +44161 +44340 +44341 +49353 +50752 +51221 +45384 +46020 +47000 +45813 +52292 +50500 +44260 +44053 +44221 +51228 +44592 +47732 +44060 +48124 +51200 +50976 +51064 +45824 +52264 +49457 +46028 +48152 +54645 +44396 +54861 +47196 +50724 +48149 +44081 +47197 +52489 +47144 +50696 +44368 +49689 +49328 +49440 +51104 +44552 +55036 +49689 +45817 +46024 +47469 +44053 +45544 +45800 +45812 +50808 +44048 +45804 +47141 +52272 +49452 +48152 +46989 +51200 +45544 +44340 +50689 +49452 +46976 +47560 +54028 +48373 +44452 +48708 +48512 +54868 +50696 +47448 +50521 +51064 +44428 +54876 +51221 +46160 +50500 +51648 +50628 +52384 +51088 +44592 +50836 +44428 +54876 +51076 +54889 +44396 +49324 +49688 +50672 +54077 +47749 +51312 +47336 +47532 +52285 +51228 +52404 +49440 +52392 +51228 +46021 +47280 +47161 +47308 +51081 +50864 +51061 +52488 +44592 +51060 +45380 +48512 +44204 +50500 +48169 +45404 +49440 +50900 +45380 +54596 +49437 +48149 +52380 +51228 +46020 +52392 +49440 +50857 +50696 +47148 +50504 +54617 +44277 +47168 +44508 +52824 +49549 +50896 +50500 +51333 +47564 +44204 +51221 +50976 +48120 +44204 +50976 +47581 +44396 +52824 +44144 +50516 +50976 +47000 +54844 +44428 +52285 +53440 +44277 +45713 +49340 +51228 +49688 +52628 +54889 +51665 +44040 +47896 +50684 +54693 +51648 +44452 +49688 +50528 +48169 +52285 +45817 +51008 +50728 +44592 +52628 +49325 +51089 +45572 +46020 +49888 +47336 +54364 +47532 +47564 +54805 +51104 +54868 +47588 +44256 +47156 +46020 +49440 +51088 +51312 +48393 +52824 +54028 +48120 +52628 +50696 +47217 +49452 +48708 +44397 +51221 +44396 +50672 +52649 +50676 +44361 +50836 +50517 +50836 +46041 +53440 +50976 +54792 +50836 +54633 +54872 +46993 +50676 +49888 +52380 +52380 +45812 +50752 +45397 +47749 +54861 +52285 +50868 +54732 +52840 +52524 +50864 +45812 +44053 +49688 +51312 +51221 +52628 +54792 +51221 +52509 +48152 +44508 +44284 +44144 +46988 +50696 +50857 +49324 +44148 +49324 +55128 +48268 +46160 +47609 +49457 +47549 +44305 +54644 +52488 +52489 +51089 +53748 +47532 +48708 +44060 +49688 +46972 +49688 +50868 +51333 +54840 +51064 +48373 +51648 +44160 +52392 +44048 +44148 +51452 +51200 +44256 +45393 +50696 +52265 +50521 +52404 +44277 +50696 +52824 +44592 +52628 +47196 +51076 +50857 +51613 +46989 +54801 +51204 +49436 +51008 +44033 +48324 +51221 +44512 +46160 +48120 +51021 +51228 +50616 +52293 +49328 +47452 +48337 +49548 +54632 +54869 +45824 +51312 +48708 +49341 +47497 +45813 +51200 +47609 +50685 +48373 +44340 +44284 +45224 +44040 +44032 +49884 +44284 +49604 +51088 +51452 +53468 +44340 +52840 +49436 +46021 +52769 +50896 +52509 +49352 +51221 +44216 +44540 +51333 +50948 +54620 +44160 +44201 +45225 +54252 +49688 +44396 +51652 +49548 +46020 +48152 +53457 +44216 +50745 +50857 +46973 +44257 +49688 +51333 +54252 +47736 +44540 +52488 +47729 +49436 +47161 +47336 +51109 +47497 +51665 +51312 +49900 +49328 +44256 +48152 +48120 +49688 +44036 +45817 +54644 +44256 +47924 +48264 +46972 +52268 +51613 +47161 +51021 +49345 +50868 +47609 +50865 +52824 +51032 +45812 +54869 +48120 +45800 +49353 +49324 +49688 +52509 +52380 +47448 +51032 +44396 +47280 +47140 +54224 +47157 +47536 +54620 +54952 +50864 +48120 +49440 +50577 +52268 +49933 +50628 +48320 +47161 +54861 +44592 +47308 +48152 +48708 +54840 +54840 +49888 +49353 +54056 +44277 +47749 +44396 +54252 +47588 +49340 +48120 +51109 +48708 +47532 +44428 +49340 +54844 +54693 +51221 +49884 +50689 +44148 +45224 +54889 +51452 +50672 +53748 +49332 +45800 +49892 +51201 +47928 +55148 +47564 +51109 +54889 +45812 +49548 +50676 +48708 +46972 +48152 +47140 +52572 +52264 +46020 +51201 +44305 +51200 +49452 +49328 +48120 +44216 +44396 +51652 +52824 +50864 +49452 +54840 +44048 +52824 +44208 +47785 +48512 +54840 +44221 +54952 +47784 +47581 +50864 +54840 +52377 +45376 +54792 +51221 +48124 +44204 +50500 +53444 +51089 +50900 +48337 +49436 +52628 +48176 +51076 +50984 +44204 +52628 +51060 +51061 +48120 +44228 +50689 +47581 +44592 +48372 +49436 +48324 +48264 +50557 +47532 +48264 +44396 +48512 +50500 +50500 +51137 +52392 +50977 +44552 +44228 +44397 +47000 +49849 +48176 +45684 +50696 +49688 +47924 +49692 +54253 +52628 +45784 +51221 +48393 +51088 +50808 +44284 +50836 +50864 +52488 +44221 +45817 +44480 +49325 +53457 +44053 +50836 +45813 +52393 +44540 +47029 +48128 +47729 +44204 +47197 +48264 +50864 +48120 +51665 +47924 +48324 +54889 +49549 +50836 +50629 +44552 +47156 +48317 +44048 +52404 +47161 +52268 +49884 +51008 +46020 +51452 +52292 +47736 +50684 +46988 +51473 +52488 +49345 +44428 +45393 +46972 +54984 +49884 +46972 +52489 +52824 +51452 +44204 +44221 +51060 +51061 +53468 +52292 +45784 +54253 +46988 +49688 +50864 +50836 +51216 +47161 +51200 +45813 +48337 +51116 +44368 +49688 +48512 +48512 +52380 +47581 +54620 +54620 +48512 +50500 +54945 +51200 +54252 +54788 +48120 +47588 +46993 +44256 +51312 +45813 +50669 +51333 +47532 +47197 +47924 +47280 +51228 +47141 +47532 +51109 +48156 +50577 +47568 +53440 +54217 +51109 +51312 +44452 +51064 +49436 +50696 +44208 +50948 +51137 +46041 +50948 +48149 +51204 +54872 +49440 +51104 +47141 +50672 +54889 +55016 +54840 +54252 +50684 +52488 +48149 +47308 +51452 +50696 +55100 +46973 +44256 +52489 +48512 +45393 +54632 +52488 +47197 +51092 +45813 +48512 +54945 +51613 +44368 +49689 +48712 +54812 +44592 +54844 +51200 +51089 +51060 +51060 +45212 +44152 +49324 +44397 +44257 +50684 +48512 +50629 +52824 +45713 +52285 +54028 +51312 +52404 +54620 +51089 +54028 +51012 +50900 +44081 +48708 +51060 +51452 +50724 +47928 +51228 +51452 +47197 +47928 +44260 +52628 +46980 +51116 +49688 +47749 +51656 +52404 +51312 +54364 +47144 +49845 +47217 +49689 +55128 +50896 +54413 +54980 +44208 +51088 +54200 +44288 +45684 +51076 +51064 +44060 +54596 +53456 +47896 +49692 +44553 +51204 +47568 +48324 +44553 +49884 +54588 +51200 +49324 +53456 +52392 +52824 +53748 +54801 +51060 +55092 +47924 +51452 +54801 +51648 +51064 +44397 +51228 +51208 +49548 +47805 +54588 +54620 +50612 +54788 +48169 +45733 +51092 +48512 +48169 +44228 +44592 +46021 +47197 +44512 +54632 +55148 +52292 +49692 +51649 +52824 +54844 +52509 +51204 +52628 +51228 +51456 +52628 +51217 +52264 +50976 +48320 +51665 +55176 +51200 +44033 +44201 +51593 +45813 +51652 +49576 +50557 +44396 +54889 +51228 +52628 +49552 +52264 +50745 +44049 +54840 +44257 +44060 +51204 +51333 +51312 +52404 +49328 +47280 +49688 +52292 +51217 +50612 +44060 +54889 +51104 +45800 +54925 +49688 +45812 +44256 +54792 +47564 +53441 +50724 +48317 +50725 +50668 +47805 +48708 +47805 +50577 +51656 +48149 +50689 +50976 +50577 +46976 +50689 +52280 +44428 +51652 +48373 +51064 +45824 +48268 +49436 +52393 +53461 +52264 +45812 +52392 +51648 +53457 +44032 +49692 +54889 +47308 +52264 +50732 +52840 +44552 +50517 +44396 +48512 +53440 +44256 +50517 +54077 +46020 +51228 +53440 +51228 +48372 +50896 +46020 +47452 +44592 +47785 +52380 +44204 +51333 +49548 +48276 +50976 +52628 +53457 +52377 +49689 +48512 +49845 +51109 +51312 +48512 +46321 +52384 +48512 +48708 +47924 +54812 +50521 +47749 +48169 +47581 +49849 +47805 +52488 +51312 +44060 +48176 +49548 +49888 +44152 +49688 +49345 +49548 +54872 +50864 +54952 +52840 +45800 +48393 +51064 +50521 +50684 +51068 +47564 +48276 +44144 +49884 +54868 +48320 +45824 +47561 +46321 +48276 +54872 +44305 +51613 +52264 +53440 +50976 +54840 +52380 +44292 +54792 +47280 +44540 +44592 +44257 +47581 +51032 +47308 +44600 +46321 +50616 +51021 +51008 +44592 +51208 +54785 +50669 +50556 +50724 +51648 +51648 +54620 +52265 +48512 +49692 +54217 +44340 +51452 +54952 +50896 +44417 +52509 +44256 +44340 +49436 +44404 +51648 +47609 +47140 +51452 +45813 +51648 +44256 +47049 +54848 +46980 +51204 +44537 +48512 +51648 +50669 +44592 +53441 +52272 +47924 +46021 +51064 +49884 +50696 +54620 +50672 +48512 +46980 +54665 +44036 +51032 +48120 +44396 +47581 +44592 +49324 +54632 +50976 +47456 +51088 +51312 +50836 +44032 +47532 +44592 +44277 +47141 +48337 +49324 +44256 +47560 +49549 +52628 +51204 +49324 +48176 +54728 +44221 +54252 +47497 +49345 +51312 +51312 +49692 +44221 +45812 +51088 +47456 +51060 +49548 +50612 +54868 +47140 +54028 +49548 +47588 +47140 +50745 +49549 +49345 +49548 +51060 +45397 +49324 +44256 +48512 +51021 +46321 +50672 +52572 +44036 +51228 +44552 +54364 +49688 +49688 +46024 +49341 +50528 +50508 +51456 +44288 +48708 +50896 +51020 +51613 +49548 +46160 +54924 +52393 +53469 +45800 +45817 +52824 +50696 +48373 +50528 +48373 +49688 +44032 +52272 +54632 +47564 +49552 +48708 +47161 +51208 +44452 +54801 +52712 +52845 +46993 +55141 +54224 +47140 +51088 +54624 +44592 +45768 +50689 +54952 +46321 +47308 +53469 +44592 +44053 +49452 +44397 +54364 +48264 +46160 +47492 +48120 +52265 +54792 +54840 +48120 +54624 +51105 +52509 +47140 +50672 +52489 +50628 +54620 +54952 +50613 +46976 +50557 +50672 +47161 +50577 +50872 +54617 +54980 +50696 +54617 +50669 +44148 +54633 +52376 +51008 +47729 +55148 +45216 +54632 +52264 +54633 +50516 +46020 +51228 +50724 +49325 +51008 +52649 +51452 +47609 +50896 +45685 +47896 +51312 +50896 +47784 +44404 +45216 +49437 +54596 +51088 +48169 +44049 +44428 +54693 +44508 +54056 +44305 +49692 +52264 +50836 +44260 +54924 +55148 +50500 +50577 +51312 +47448 +44033 +47532 +50756 +47532 +51613 +44592 +54840 +51092 +48512 +51109 +44288 +44397 +47609 +52285 +45812 +47784 +49457 +47140 +50672 +49688 +49884 +49845 +48337 +52509 +54980 +50896 +52404 +44204 +44049 +54620 +48149 +49688 +47448 +51104 +51104 +50696 +49440 +50616 +51312 +44048 +50857 +51333 +48393 +44053 +50612 +52377 +51088 +47560 +48393 +54872 +49345 +51652 +44288 +48373 +47536 +46321 +51221 +44053 +46989 +50613 +50745 +51088 +50672 +51208 +54984 +50976 +54788 +45397 +48512 +51208 +51216 +47925 +51200 +45733 +54732 +47928 +47140 +51104 +47736 +51216 +45776 +52292 +47564 +55100 +45685 +47589 +52572 +44048 +44061 +54637 +54632 +55064 +49548 +50948 +51320 +44592 +44148 +51061 +47560 +51312 +48156 +48708 +51200 +51088 +52636 +44049 +45768 +50521 +44368 +49692 +52649 +45376 +50997 +51648 +49345 +52488 +49440 +50976 +52840 +44552 +51333 +47197 +54632 +48324 +50529 +49772 +53444 +50977 +50896 +50696 +44288 +44404 +54077 +51092 +51333 +53440 +51105 +50836 +44228 +50672 +54980 +49692 +45824 +49440 +44340 +48708 +54812 +48149 +44201 +52572 +52629 +54588 +44396 +51333 +48533 +52404 +52629 +51648 +45544 +44260 +48393 +49444 +46321 +50948 +44432 +44480 +51613 +49341 +53440 +47161 +47805 +54984 +44284 +47805 +48152 +44592 +50689 +44148 +44288 +52629 +47532 +52489 +49440 +54364 +49440 +44508 +45453 +46301 +46301 +51060 +47156 +51088 +49548 +54792 +49884 +48120 +52840 +52840 +54785 +50976 +47197 +47000 +50689 +49373 +44204 +44228 +44204 +50868 +44256 +51201 +52285 +47536 +51201 +47588 +45817 +49900 +48712 +47532 +49457 +44053 +54805 +55012 +49440 +44257 +48708 +51320 +45824 +45824 +54844 +49352 +52384 +51228 +50864 +50557 +52824 +47448 +48156 +44368 +54872 +54785 +47536 +55012 +51081 +54788 +48708 +49888 +49328 +52824 +50760 +46160 +52380 +54812 +54644 +48708 +50836 +50836 +45685 +54840 +51076 +51020 +48152 +50684 +51060 +50756 +50896 +54633 +51452 +50672 +49884 +47732 +54812 +51088 +54252 +48708 +54792 +45768 +49324 +48128 +48320 +44048 +45208 +50976 +50696 +44592 +51076 +55093 +47029 +54924 +49888 +45432 +54620 +44217 +53804 +54868 +46021 +48729 +52489 +55148 +49569 +48120 +49888 +50724 +44417 +51109 +46020 +54665 +44396 +44144 +54844 +51228 +47732 +50628 +44592 +49688 +47280 +50896 +51216 +54788 +44228 +50976 +55036 +49341 +49548 +44201 +45432 +54812 +44256 +53748 +51648 +50976 +47560 +44260 +52488 +52832 +51312 +54924 +47144 +47308 +47196 +53440 +49688 +50724 +50724 +49453 +49688 +47588 +45812 +55136 +44221 +50517 +45813 +52280 +50696 +45800 +51228 +52280 +51656 +50865 +54732 +55124 +44277 +45800 +49692 +45432 +54872 +50672 +44396 +54861 +49688 +50696 +47196 +44397 +54840 +47564 +47157 +46164 +52628 +49884 +54637 +52840 +47588 +49548 +52293 +49884 +47785 +50976 +51020 +49688 +47448 +47196 +49688 +51217 +49933 +54924 +54848 +54924 +50529 +47805 +49341 +51333 +44208 +44400 +45800 +47336 +49688 +52649 +52628 +47157 +54872 +51217 +51312 +55092 +51032 +52628 +45768 +54028 +49328 +51032 +54840 +49444 +54872 +47564 +47564 +44144 +47308 +54840 +51473 +48124 +54788 +51652 +49548 +51089 +51452 +44396 +54788 +51060 +52824 +54801 +49888 +51092 +51116 +54252 +47049 +51648 +44592 +50756 +44288 +44144 +52397 +50528 +48512 +44480 +54980 +50616 +50672 +52824 +54364 +51060 +49604 +51648 +44480 +51081 +50696 +52828 +52392 +52397 +52285 +49324 +52632 +54861 +46041 +51221 +48120 +50976 +49549 +52292 +44544 +51105 +44592 +50724 +48512 +50725 +48520 +48177 +52377 +45800 +51089 +52264 +44396 +50976 +44201 +54980 +44508 +55137 +51109 +50868 +53804 +51456 +46020 +48512 +52293 +54841 +50900 +48373 +51312 +52384 +52377 +44404 +48512 +54889 +52632 +50857 +52268 +49353 +52824 +44148 +52824 +52488 +47928 +52280 +52293 +51104 +54596 +44592 +51656 +52489 +44144 +51216 +44600 +48320 +52268 +47141 +47141 +50557 +44428 +51221 +48512 +52264 +51648 +49884 +54637 +51208 +44592 +48156 +45580 +53804 +51452 +52489 +50900 +51648 +51204 +52636 +48324 +47805 +48156 +51204 +48124 +44033 +48276 +51137 +44396 +51312 +48373 +44292 +54632 +51201 +52649 +50864 +51652 +44396 +51340 +52404 +44508 +47148 +54056 +46020 +47924 +49548 +52384 +47197 +52285 +51228 +52488 +47049 +51204 +44260 +51109 +44404 +46028 +54872 +48708 +48708 +45813 +54616 +50501 +44228 +44201 +44508 +54840 +52628 +49688 +52292 +51088 +55113 +54224 +48169 +50752 +50836 +50857 +54984 +52629 +52393 +52404 +52264 +47805 +49440 +53440 +48324 +51648 +51200 +52392 +44452 +45800 +51452 +46321 +47280 +46321 +50557 +44428 +52489 +47161 +52828 +52828 +48512 +49324 +51312 +44284 +54644 +47928 +44417 +49688 +54644 +49452 +50808 +51204 +47217 +44396 +47456 +44452 +52632 +50857 +50900 +44368 +44053 +48152 +44592 +44361 +48512 +47196 +44361 +53440 +48124 +51204 +44204 +44228 +51613 +44081 +44277 +51204 +46993 +47784 +50669 +47449 +50896 +44397 +48708 +44081 +54644 +54200 +54844 +51200 +50857 +49345 +50724 +52264 +51652 +49440 +48393 +47564 +49688 +51333 +52509 +44081 +51204 +49328 +49884 +52649 +49688 +48708 +44060 +47736 +51648 +50696 +48124 +47161 +52268 +50620 +47161 +55128 +50900 +47549 +50696 +49884 +49888 +50857 +50857 +54924 +45453 +50976 +44592 +48156 +48169 +44592 +46160 +51312 +51228 +44368 +50864 +54633 +55100 +50984 +44257 +49688 +54056 +44081 +54805 +44480 +50500 +49696 +50976 +49569 +49453 +52285 +50836 +49696 +50672 +49556 +47308 +51333 +50612 +44368 +49688 +52380 +49440 +47280 +47536 +51201 +46021 +50753 +44592 +52380 +50868 +48169 +45800 +51200 +44144 +52636 +49888 +44277 +54637 +49440 +50504 +44452 +50864 +47280 +49324 +46020 +49888 +54805 +44396 +54637 +49324 +45817 +52292 +51200 +50628 +52824 +44277 +50689 +51204 +44452 +47140 +49604 +47560 +47560 +44256 +45817 +48176 +47336 +52832 +52264 +46020 +50501 +51104 +51104 +51032 +51201 +45817 +44285 +48708 +47448 +51061 +49692 +51456 +48156 +47532 +44284 +51452 +48156 +52628 +44089 +54980 +48152 +49324 +54980 +51060 +44292 +51200 +50684 +48268 +44204 +54632 +47049 +51648 +47729 +50864 +50557 +49900 +47588 +51020 +47732 +53804 +44508 +49688 +54812 +48128 +50857 +50865 +52285 +47564 +44516 +48708 +51104 +50773 +44592 +47805 +51216 +54617 +54252 +44048 +52280 +47141 +47532 +44396 +46164 +44417 +50980 +52840 +51648 +50684 +48324 +54840 +44060 +44452 +50900 +54924 +48317 +53440 +53440 +52280 +49324 +49885 +49453 +54805 +54805 +49436 +51201 +50556 +54632 +48708 +50629 +50616 +52509 +49688 +44540 +53440 +49440 +44288 +46020 +44208 +52380 +54632 +47805 +50501 +51312 +44552 +44552 +49340 +47581 +50896 +52285 +54077 +51613 +51648 +49692 +50612 +47924 +47576 +44053 +44592 +49549 +48324 +51204 +44288 +52265 +49688 +52488 +44208 +54620 +50724 +44368 +50508 +52840 +52393 +47469 +52265 +48149 +47156 +49688 +49440 +47140 +48120 +54788 +52384 +48149 +51613 +52629 +54028 +47609 +49324 +44396 +50864 +51456 +54952 +47141 +52272 +48120 +49444 +50556 +47924 +47932 +48156 +49324 +47140 +50864 +48169 +49340 +51089 +47532 +49440 +44285 +44228 +52264 +49324 +45544 +50724 +52628 +50732 +44288 +54644 +51221 +54792 +53461 +52392 +45800 +54217 +54624 +54785 +54620 +55176 +44292 +51137 +50724 +54925 +50980 +50728 +49884 +54872 +54876 +48512 +52544 +54620 +44552 +54792 +46976 +47928 +54624 +50689 +44208 +54693 +52632 +52824 +44396 +50948 +50684 +54693 +50669 +48120 +51137 +50728 +50864 +49901 +51221 +51088 +44208 +49436 +50864 +51473 +44361 +54980 +51312 +51204 +44033 +51060 +54861 +51032 +49436 +47532 +44257 +54788 +49688 +44537 +54788 +48393 +44285 +51228 +47000 +51452 +45392 +50669 +51204 +48317 +51204 +47497 +54840 +48169 +45817 +52824 +47560 +54632 +51204 +50857 +44396 +51064 +48373 +54812 +50948 +51032 +50629 +44048 +52393 +54840 +48712 +52509 +54732 +52280 +54844 +44396 +44036 +51088 +51648 +51664 +44396 +50976 +44256 +51025 +50885 +54633 +44257 +52572 +49436 +51089 +51201 +47924 +52628 +50504 +50516 +47308 +48324 +49933 +48712 +50549 +50672 +54617 +48149 +50689 +54861 +51088 +55137 +51228 +50864 +47280 +48149 +50864 +51228 +48512 +49440 +51020 +54848 +49437 +48533 +52397 +50864 +50752 +50528 +54632 +45812 +48149 +51201 +54869 +48169 +51020 +52628 +47161 +47588 +47589 +46988 +49548 +49444 +51652 +48149 +48373 +45572 +55148 +45824 +45812 +50868 +49328 +51008 +49689 +53748 +48337 +54840 +48708 +48708 +51105 +48708 +48708 +54632 +49884 +51204 +51204 +51092 +51216 +54924 +48372 +50896 +47560 +52488 +47308 +44160 +47736 +54848 +44361 +50864 +44592 +53440 +50521 +49324 +54056 +51228 +54788 +51228 +54596 +51452 +54252 +52393 +51060 +51221 +44217 +51208 +46020 +54792 +45800 +51312 +54792 +52285 +50896 +44288 +47049 +48393 +44592 +47197 +44537 +51665 +50976 +46020 +49688 +54840 +50868 +51221 +48169 +50857 +50529 +50745 +54056 +48393 +50864 +51088 +48516 +44288 +48373 +44537 +46024 +54889 +52489 +52404 +48149 +44204 +47157 +47217 +50976 +52280 +46976 +49632 +45225 +48708 +53440 +51452 +51217 +48512 +44397 +48512 +54616 +50948 +48149 +45813 +48264 +52392 +54925 +51105 +48708 +51228 +51228 +51228 +51228 +48264 +54644 +54861 +51648 +48149 +51020 +44032 +44221 +48156 +50896 +52628 +50689 +51032 +44060 +50732 +50980 +52840 +50500 +51200 +44396 +48124 +48176 +44049 +48320 +51208 +54840 +51652 +49888 +44036 +48708 +45796 +51652 +53448 +49340 +49457 +50684 +51104 +47784 +48176 +53748 +48708 +48512 +52384 +44592 +47548 +51032 +47928 +50724 +44228 +51208 +52840 +54616 +54624 +49345 +44284 +54980 +50836 +48373 +54952 +50868 +48708 +50516 +49324 +54812 +47749 +50808 +44049 +44256 +50724 +49340 +49345 +47336 +52840 +54924 +49340 +51032 +47536 +50976 +54632 +46021 +44552 +47732 +48264 +50501 +52488 +54861 +54945 +50984 +54792 +54252 +54596 +52488 +50976 +51060 +50900 +49341 +55100 +54801 +47456 +50672 +53468 +54925 +49341 +47497 +54392 +54848 +44341 +48512 +50948 +50948 +49688 +50516 +50976 +44053 +54945 +50577 +54952 +50836 +48276 +54596 +47532 +54945 +46020 +47448 +48708 +51200 +46020 +55128 +52268 +51032 +46160 +50896 +44396 +51116 +48149 +51228 +50521 +46020 +51060 +45392 +49548 +48376 +44396 +48152 +47568 +50528 +50504 +49324 +52268 +51656 +50577 +51204 +50672 +49464 +51228 +48120 +49888 +51228 +51021 +51076 +49324 +44256 +45377 +50676 +44148 +49688 +50689 +54252 +54840 +54840 +50685 +54200 +50577 +47156 +49885 +50728 +53748 +51104 +51200 +50689 +50689 +52840 +45817 +45812 +47308 +54924 +50669 +50685 +44216 +51008 +45397 +51088 +44204 +50577 +48149 +48120 +49688 +47560 +47049 +44228 +44228 +49688 +48520 +48156 +48393 +48324 +51032 +50948 +54872 +48276 +44592 +47784 +48512 +50521 +50521 +48516 +44592 +44400 +53468 +51068 +48149 +48320 +48156 +44396 +54788 +49696 +48708 +50984 +52824 +47140 +51060 +47148 +55092 +45544 +55148 +50724 +44221 +47280 +54252 +53441 +52628 +52384 +52285 +50504 +50696 +50669 +47497 +48512 +49341 +54844 +51456 +49688 +48317 +54596 +49341 +49345 +54617 +47141 +44368 +54620 +51116 +44264 +49849 +47336 +47561 +47729 +47589 +50724 +51201 +52629 +54889 +48264 +46321 +46041 +51665 +46021 +50508 +50696 +51228 +46020 +47536 +54364 +48393 +44148 +49453 +46972 +49888 +50504 +44284 +49453 +51061 +44264 +50756 +50508 +44032 +48156 +44256 +47161 +44036 +44292 +54644 +44305 +54665 +44508 +52293 +51221 +46993 +54224 +54872 +48372 +50836 +50756 +52377 +49688 +44284 +45824 +50724 +44216 +47560 +44340 +44340 +50516 +47568 +44221 +44256 +44273 +44256 +54840 +45796 +49452 +45236 +49324 +44060 +48708 +54028 +49569 +51109 +50508 +47564 +49709 +52264 +49452 +44292 +44256 +51201 +48512 +51312 +51320 +50752 +48708 +52292 +48337 +49352 +49688 +50976 +44592 +52264 +48152 +48149 +47564 +52509 +55092 +44480 +51228 +46988 +49688 +47805 +47732 +48152 +47140 +52268 +44396 +47448 +51032 +47928 +47141 +47141 +51613 +51088 +54844 +49888 +52824 +54665 +47581 +46041 +50669 +48708 +54840 +47588 +52264 +47588 +52488 +44516 +50976 +51032 +51032 +50976 +47161 +50508 +51221 +44544 +51088 +47581 +48169 +44277 +51201 +44060 +50612 +51104 +54056 +54028 +53440 +50521 +44368 +50976 +51656 +44060 +47568 +49849 +49440 +51648 +51200 +48120 +44277 +51060 +44557 +44557 +46160 +48512 +49444 +50629 +51221 +51312 +47924 +47448 +52268 +47532 +49689 +47197 +54785 +51089 +54056 +45236 +44144 +51092 +44397 +51137 +51320 +54632 +51228 +52628 +49440 +51228 +47581 +54364 +46980 +49436 +44557 +50529 +47536 +46041 +51228 +50672 +51204 +44557 +50745 +46993 +50612 +49688 +52264 +54644 +54876 +51204 +52285 +47336 +52280 +51648 +50948 +49440 +52488 +48124 +44508 +49548 +49549 +47560 +49324 +53440 +51104 +44288 +46321 +45236 +47196 +47196 +51032 +54644 +50628 +44221 +48372 +51452 +54632 +44288 +51208 +47280 +47805 +50629 +52285 +47549 +51064 +52632 +52628 +46321 +50612 +51452 +44396 +45824 +46160 +54861 +49884 +54812 +44396 +51648 +49884 +50896 +44553 +50868 +48169 +44277 +54637 +51664 +51089 +50896 +47785 +44060 +48708 +44048 +54788 +49373 +49437 +44368 +51088 +51068 +48156 +51312 +50896 +51088 +51648 +48177 +47924 +48372 +46041 +48156 +46041 +44204 +44277 +44396 +44508 +52264 +50976 +50896 +47196 +44257 +48512 +45393 +50500 +50500 +54805 +44036 +50504 +46020 +48512 +48393 +47749 +49688 +52628 +44592 +50672 +48324 +51104 +49440 +54980 +54889 +50836 +51204 +44508 +50669 +51201 +47589 +51473 +48372 +47785 +51652 +49696 +45813 +52825 +44228 +51333 +47560 +44396 +50516 +52280 +44396 +54617 +46321 +50672 +46041 +50864 +49345 +45544 +49692 +48516 +48373 +47161 +50724 +54872 +51032 +54872 +47805 +50549 +47336 +50672 +48372 +52393 +47161 +49324 +44368 +47148 +52397 +44201 +52404 +48317 +44053 +49548 +54924 +52572 +51201 +54872 +50724 +47140 +48120 +54840 +49373 +44032 +51008 +50948 +50896 +54364 +47197 +47161 +51061 +51116 +49328 +54848 +49549 +53440 +47568 +54876 +52393 +48337 +48393 +54844 +48512 +44284 +48512 +47532 +51092 +48708 +52264 +47805 +49604 +51109 +51201 +44361 +54413 +50724 +47805 +49340 +44257 +46160 +46024 +50976 +54800 +46024 +45800 +47196 +52380 +45776 +45776 +47532 +46041 +44144 +44204 +48373 +49352 +52264 +46020 +44204 +45453 +50508 +44221 +44036 +51201 +44204 +47588 +45804 +44204 +50872 +49324 +51116 +47581 +47168 +44260 +54984 +45813 +51088 +50577 +53668 +49345 +54785 +51312 +54924 +51081 +52524 +44396 +50752 +52628 +51648 +51221 +49464 +49345 +51105 +48512 +52393 +45813 +45813 +54364 +54632 +48337 +44033 +52628 +51452 +48149 +47448 +45685 +55137 +54252 +51228 +54633 +52404 +50780 +51228 +51228 +51228 +52824 +54028 +44552 +44032 +47549 +44144 +44396 +46980 +44257 +54801 +44592 +54632 +54632 +49892 +54632 +50528 +54624 +52264 +52293 +50836 +52280 +51228 +52272 +50628 +44204 +50773 +50628 +44508 +52488 +46041 +50684 +50557 +52712 +51648 diff --git a/Master/texmf-dist/tex/xetex/xetexko/xetexko-font.sty b/Master/texmf-dist/tex/xetex/xetexko/xetexko-font.sty new file mode 100644 index 00000000000..8264204e362 --- /dev/null +++ b/Master/texmf-dist/tex/xetex/xetexko/xetexko-font.sty @@ -0,0 +1,424 @@ +% $Id: xetexko-font.sty,v 1.29 2012/10/27 10:55:09 nomos Exp $ +% +% Copyright (c) 2013 Dohyun Kim <nomos at ktug org> +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2006/05/20 or later. + +\ProvidesPackage{xetexko-font}[2013/03/27 v2.0 Font commands for XeTeX-ko] + +\RequirePackage{fontspec} +\RequirePackage{xkeyval} + +%%%%%%%%%% +% ttfamily +\protected\edef\ttfamily + {\unexpanded\expandafter{\ttfamily\disablehangulspacing}} +\edef\verbatim@font + {\unexpanded\expandafter{\verbatim@font\disablehangulspacingandlinebreak}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% for old hangul rendering +\ExplSyntaxOn +\fontspec_define_font_feature:n {YetHangul} +\keys_define:nn {fontspec} + { + YetHangul .default:n = {On} , + YetHangul / On .code:n = { + \fontspec_update_fontid:n {yethangul:on} + \fontspec_update_featstr:n {script=hang} + } , + YetHangul / Off .code:n = { + \fontspec_update_fontid:n {yethangul:off} + \fontspec_update_featstr:n {-ljmo;-vjmo;-tjmo} + } + } +\ExplSyntaxOff + +%%%%%%%%%%%%% +% hangul font +\def\hangfnt{% + \edef\@tempb{\sfdefault}\edef\@tempc{\ttdefault}% + \ifx\XKprevfont\@tempb \korsansfont \else + \ifx\XKprevfont\@tempc \kormonofont \else + \kormainfont \fi\fi} +% hanja font +\def\hanifnt{% + \edef\@tempb{\sfdefault}\edef\@tempc{\ttdefault}% + \ifx\XKprevfont\@tempb \hnjsansfont \else + \ifx\XKprevfont\@tempc \hnjmonofont \else + \hnjmainfont \fi\fi} + +%%%%%%%%%%%%%%%%%%%%% +% hangul font options +\newtoks\XK@font@options\XK@font@options{} +\define@key[xtxko]{font}{hu}{\addto@hook\XK@font@options{\def\xetexkohu{#1}}} +\define@key[xtxko]{font}{interhchar}{\addto@hook\XK@font@options{\def\xetexkointerhchar{#1}}} +\define@key[xtxko]{font}{lowerexclamation}{\addto@hook\XK@font@options{\def\xetexkolowerexclamation{#1}}} +\define@key[xtxko]{font}{lowerperiod}{\addto@hook\XK@font@options{\def\xetexkolowerperiod{#1}}} +\define@key[xtxko]{font}{lowerquestion}{\addto@hook\XK@font@options{\def\xetexkolowerquestion{#1}}} +\define@key[xtxko]{font}{lowercomma}{\addto@hook\XK@font@options{\def\xetexkolowercomma{#1}}} +\define@key[xtxko]{font}{postexclamationkern}{\addto@hook\XK@font@options{\def\xetexkopostexclamationkern{#1}}} +\define@key[xtxko]{font}{postmathskip}{\addto@hook\XK@font@options{\def\xetexkopostmathskip{#1}}} +\define@key[xtxko]{font}{postperiodkern}{\addto@hook\XK@font@options{\def\xetexkopostperiodkern{#1}}} +\define@key[xtxko]{font}{postquestionkern}{\addto@hook\XK@font@options{\def\xetexkopostquestionkern{#1}}} +\define@key[xtxko]{font}{postcommakern}{\addto@hook\XK@font@options{\def\xetexkopostcommakern{#1}}} +\define@key[xtxko]{font}{preexclamationkern}{\addto@hook\XK@font@options{\def\xetexkopreexclamationkern{#1}}} +\define@key[xtxko]{font}{preperiodkern}{\addto@hook\XK@font@options{\def\xetexkopreperiodkern{#1}}} +\define@key[xtxko]{font}{prequestionkern}{\addto@hook\XK@font@options{\def\xetexkoprequestionkern{#1}}} +\define@key[xtxko]{font}{precommakern}{\addto@hook\XK@font@options{\def\xetexkoprecommakern{#1}}} +\define@key[xtxko]{font}{quoteraise}{\addto@hook\XK@font@options{\def\xetexkoquoteraise{#1}}} +\define@key[xtxko]{font}{quotewidth}{\addto@hook\XK@font@options{\def\xetexkoquotewidth{#1}}} + +\presetkeys[xtxko]{font}{ + hu=0.06em, + interhchar={}, + lowerexclamation={}, + lowerperiod={}, + lowercomma={}, + lowerquestion={}, + postexclamationkern={}, + postmathskip=\dimexpr\xetexkohu*\tw@\relax, + postperiodkern={}, + postcommakern={}, + postquestionkern={}, + preexclamationkern={}, + preperiodkern={}, + precommakern={}, + prequestionkern={}, + quoteraise={}, + quotewidth={} +}{} + +%%%%%%%%%%%%%%%%%%%% +% user font commands +\protected\def\setmainhangulfont + {\@ifnextchar[\@setmainhangulfont{\@setmainhangulfont[]}} +\def\@setmainhangulfont[#1]{% + \def\kormainfont{\XK@main@hangul@font\XK@main@hangul@options}% + \XK@font@options{}% + \setkeys*[xtxko]{font}{#1}% + \edef\XK@main@hangul@options{\the\XK@font@options}% + \expandafter\newfontfamily\expandafter\XK@main@hangul@font\expandafter[\XKV@rm]} + +\protected\def\setsanshangulfont + {\@ifnextchar[\@setsanshangulfont{\@setsanshangulfont[]}} +\def\@setsanshangulfont[#1]{% + \def\korsansfont{\XK@sans@hangul@font\XK@sans@hangul@options}% + \XK@font@options{}% + \setkeys*[xtxko]{font}{#1}% + \edef\XK@sans@hangul@options{\the\XK@font@options}% + \expandafter\newfontfamily\expandafter\XK@sans@hangul@font\expandafter[\XKV@rm]} + +\protected\def\setmonohangulfont{\newfontfamily\kormonofont} + +\protected\def\setmainhanjafont + {\@ifnextchar[\@setmainhanjafont{\@setmainhanjafont[]}} +\def\@setmainhanjafont[#1]{% + \def\hnjmainfont{\XK@main@hanja@font\XK@main@hanja@options}% + \XK@font@options{}% + \setkeys*[xtxko]{font}{#1}% + \edef\XK@main@hanja@options{\the\XK@font@options}% + \expandafter\newfontfamily\expandafter\XK@main@hanja@font\expandafter[\XKV@rm]} + +\protected\def\setsanshanjafont + {\@ifnextchar[\@setsanshanjafont{\@setsanshanjafont[]}} +\def\@setsanshanjafont[#1]{% + \def\hnjsansfont{\XK@sans@hanja@font\XK@sans@hanja@options}% + \XK@font@options{}% + \setkeys*[xtxko]{font}{#1}% + \edef\XK@sans@hanja@options{\the\XK@font@options}% + \expandafter\newfontfamily\expandafter\XK@sans@hanja@font\expandafter[\XKV@rm]} + +\protected\def\setmonohanjafont {\newfontfamily\hnjmonofont} + +% adhochangulfont/adhochanjafont, hangulfontspec/hanjafontspec +\protected\def\adhochangulfont{\@ifnextchar[\@adhochangulfont{\@adhochangulfont[]}} +\def\@adhochangulfont[#1]{% + \def\hangfnt{\XK@adhoc@hangul@font\XK@adhoc@hangul@options}% + \XK@font@options{}% + \setkeys*[xtxko]{font}{#1}% + \edef\XK@adhoc@hangul@options{\the\XK@font@options}% + \expandafter\newfontfamily\expandafter\XK@adhoc@hangul@font\expandafter[\XKV@rm]} +\let\hangulfontspec\adhochangulfont + +\protected\def\adhochanjafont{\@ifnextchar[\@adhochanjafont{\@adhochanjafont[]}} +\def\@adhochanjafont[#1]{% + \def\hanifnt{\XK@adhoc@hanja@font\XK@adhoc@hanja@options}% + \XK@font@options{}% + \setkeys*[xtxko]{font}{#1}% + \edef\XK@adhoc@hanja@options{\the\XK@font@options}% + \expandafter\newfontfamily\expandafter\XK@adhoc@hanja@font\expandafter[\XKV@rm]} +\let\hanjafontspec\adhochanjafont + +% newhangulfontfamily/newhanjafontfamily +\def\XK@newfont@family{XK@newfont@family} +\def\XK@newfont@options{XK@newfont@options} + +\protected\def\newhangulfontfamily#1{% + \@ifnextchar[{\@newhangulfontfamily#1}{\@newhangulfontfamily#1[]}} +\def\@newhangulfontfamily#1[#2]{% + \protected\def#1{\def\hangfnt{\csname\XK@newfont@family\string#1\endcsname + \csname\XK@newfont@options\string#1\endcsname}}% + \XK@font@options{}% + \setkeys*[xtxko]{font}{#2}% + \expandafter\edef\csname\XK@newfont@options\string#1\endcsname + {\the\XK@font@options}% + \expandafter\expandafter\expandafter\newfontfamily\expandafter + \csname\expandafter\XK@newfont@family\expandafter + \string\expandafter#1\expandafter\endcsname\expandafter[\XKV@rm]} + +\protected\def\newhanjafontfamily#1{% + \@ifnextchar[{\@newhanjafontfamily#1}{\@newhanjafontfamily#1[]}} +\def\@newhanjafontfamily#1[#2]{% + \protected\def#1{\def\hanifnt{\csname\XK@newfont@family\string#1\endcsname + \csname\XK@newfont@options\string#1\endcsname}}% + \XK@font@options{}% + \setkeys*[xtxko]{font}{#2}% + \expandafter\edef\csname\XK@newfont@options\string#1\endcsname + {\the\XK@font@options}% + \expandafter\expandafter\expandafter\newfontfamily\expandafter + \csname\expandafter\XK@newfont@family\expandafter + \string\expandafter#1\expandafter\endcsname\expandafter[\XKV@rm]} + +% newhangulfontface/newhanjafontface +\protected\def\newhangulfontface#1{% + \@ifnextchar[{\@newhangulfontface#1}{\@newhangulfontface#1[]}} +\def\@newhangulfontface#1[#2]{% + \protected\def#1{\def\hangfnt{\csname\XK@newfont@family\string#1\endcsname + \csname\XK@newfont@options\string#1\endcsname}}% + \XK@font@options{}% + \setkeys*[xtxko]{font}{#2}% + \expandafter\edef\csname\XK@newfont@options\string#1\endcsname + {\the\XK@font@options}% + \expandafter\expandafter\expandafter\newfontface\expandafter + \csname\expandafter\XK@newfont@family\expandafter + \string\expandafter#1\expandafter\endcsname\expandafter[\XKV@rm]} + +\protected\def\newhanjafontface#1{% + \@ifnextchar[{\@newhanjafontface#1}{\@newhanjafontface#1[]}} +\def\@newhanjafontface#1[#2]{% + \protected\def#1{\def\hanifnt{\csname\XK@newfont@family\string#1\endcsname + \csname\XK@newfont@options\string#1\endcsname}}% + \XK@font@options{}% + \setkeys*[xtxko]{font}{#2}% + \expandafter\edef\csname\XK@newfont@options\string#1\endcsname + {\the\XK@font@options}% + \expandafter\expandafter\expandafter\newfontface\expandafter + \csname\expandafter\XK@newfont@family\expandafter + \string\expandafter#1\expandafter\endcsname\expandafter[\XKV@rm]} + +% addhangulfontfeature/addhanjafontfeature +\let\XK@orig@hangfnt\hangfnt +\let\XK@orig@hanifnt\hanifnt + +\protected\def\addhangulfontfeature#1{% + \begingroup + \hangfnt + \unpresetkeys[xtxko]{font}% + \XK@font@options{}% + \setkeys*[xtxko]{font}{#1}% + \global\toks@\expandafter{\the\XK@font@options}% + \addfontfeature{\XKV@rm}% + \global\let\XK@curr@family\f@family + \endgroup + \ifx\hangfnt\XK@orig@hangfnt + \edef\@tempb{\sfdefault}\edef\@tempc{\ttdefault}% + \ifx\XKprevfont\@tempb + \edef\@tempa{\noexpand\DeclareRobustCommand\noexpand\XK@sans@hangul@font + {\noexpand\fontfamily{\XK@curr@family}\noexpand\selectfont}}\@tempa + \edef\XK@sans@hangul@options{\unexpanded\expandafter + {\XK@sans@hangul@options}\the\toks@}% + \else + \ifx\XKprevfont\@tempc + \edef\@tempa{\noexpand\DeclareRobustCommand\noexpand\XK@mono@hangul@font + {\noexpand\fontfamily{\XK@curr@family}\noexpand\selectfont}}\@tempa + \else + \edef\@tempa{\noexpand\DeclareRobustCommand\noexpand\XK@main@hangul@font + {\noexpand\fontfamily{\XK@curr@family}\noexpand\selectfont}}\@tempa + \edef\XK@main@hangul@options{\unexpanded\expandafter + {\XK@main@hangul@options}\the\toks@}% + \fi\fi + \else + \edef\hangfnt{\unexpanded\expandafter{\hangfnt\fontfamily}{\XK@curr@family}% + \noexpand\selectfont\the\toks@}% + \fi +} +\let\addhangulfontfeatures\addhangulfontfeature + +\protected\def\addhanjafontfeature#1{% + \begingroup + \hanifnt + \unpresetkeys[xtxko]{font}% + \XK@font@options{}% + \setkeys*[xtxko]{font}{#1}% + \global\toks@\expandafter{\the\XK@font@options}% + \addfontfeature{\XKV@rm}% + \global\let\XK@curr@family\f@family + \endgroup + \ifx\hanifnt\XK@orig@hanifnt + \edef\@tempb{\sfdefault}\edef\@tempc{\ttdefault}% + \ifx\XKprevfont\@tempb + \edef\@tempa{\noexpand\DeclareRobustCommand\noexpand\XK@sans@hanja@font + {\noexpand\fontfamily{\XK@curr@family}\noexpand\selectfont}}\@tempa + \edef\XK@sans@hanja@options{\unexpanded\expandafter + {\XK@sans@hanja@options}\the\toks@}% + \else + \ifx\XKprevfont\@tempc + \edef\@tempa{\noexpand\DeclareRobustCommand\noexpand\XK@mono@hanja@font + {\noexpand\fontfamily{\XK@curr@family}\noexpand\selectfont}}\@tempa + \else + \edef\@tempa{\noexpand\DeclareRobustCommand\noexpand\XK@main@hanja@font + {\noexpand\fontfamily{\XK@curr@family}\noexpand\selectfont}}\@tempa + \edef\XK@main@hanja@options{\unexpanded\expandafter + {\XK@main@hanja@options}\the\toks@}% + \fi\fi + \else + \edef\hanifnt{\unexpanded\expandafter{\hanifnt\fontfamily}{\XK@curr@family}% + \noexpand\selectfont\the\toks@}% + \fi +} +\let\addhanjafontfeatures\addhanjafontfeature + +%% we have to redefine \normalfont +\protected\edef\normalfont{% + \unexpanded{% + \let\hangfnt\XK@orig@hangfnt + \let\hanifnt\XK@orig@hanifnt + }% + \unexpanded\expandafter{\normalfont}% +} +\let\reset@font\normalfont + +%%%%%%%%%%%%%%%%%%%% +%% xetexkofontregime +\define@key[xtxko]{char}{alphs}{\csname #1alphs\endcsname} +\define@key[xtxko]{char}{nums}{\csname #1nums\endcsname} +\define@key[xtxko]{char}{parens}{\csname #1parens\endcsname} +\define@key[xtxko]{char}{quotes}{\csname #1quotes\endcsname} +\define@key[xtxko]{char}{puncts}{\csname #1puncts\endcsname} +\define@key[xtxko]{char}{colons}{\csname #1colons\endcsname} +\define@key[xtxko]{char}{hyphens}{\csname #1hyphens\endcsname} +\define@key[xtxko]{char}{cjksymbols}{\csname #1cjksymbols\endcsname} + +\protected\def\xetexkofontregime{% + \@ifnextchar[\@xetexkofontregime{\@xetexkofontregime[]}} +\def\@xetexkofontregime[#1]#2{% + \csname #2marks\endcsname + \setkeys*[xtxko]{char}{#1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%% +% set unfonts if [unfonts] +\if@unfonts + %% 한글폰트 지정하기 : + \setmainhangulfont + [ ExternalLocation, + Mapping=tex-text, + BoldFont=UnBatangBold, + ItalicFont=UnBatang, ItalicFeatures={FakeSlant=0.17}, + SlantedFont=UnBatang, SlantedFeatures={FakeSlant=0.17}, + BoldItalicFont=UnBatangBold, BoldItalicFeatures={FakeSlant=0.17}, + BoldSlantedFont=UnBatangBold, BoldSlantedFeatures={FakeSlant=0.17}, + interhchar=-0.045em, + lowerperiod=0.1em ] + {UnBatang} + \setsanshangulfont + [ ExternalLocation, + Mapping=tex-text, + BoldFont=UnDotumBold, + ItalicFont=UnDotum, ItalicFeatures={FakeSlant=0.17}, + SlantedFont=UnDotum, SlantedFeatures={FakeSlant=0.17}, + BoldItalicFont=UnDotumBold, BoldItalicFeatures={FakeSlant=0.17}, + BoldSlantedFont=UnDotumBold, BoldSlantedFeatures={FakeSlant=0.17}, + lowerperiod=0.1em ] + {UnDotum} + \setmonohangulfont + [ ExternalLocation, + Scale=1.05, + BoldFont=UnTaza, BoldFeatures={FakeBold=2}, + ItalicFont=UnTaza, ItalicFeatures={FakeSlant=0.17}, + SlantedFont=UnTaza, SlantedFeatures={FakeSlant=0.17}, + BoldItalicFont=UnTaza, BoldItalicFeatures={FakeBold=2,FakeSlant=0.17}, + BoldSlantedFont=UnTaza, BoldSlantedFeatures={FakeBold=2,FakeSlant=0.17}] + {UnTaza} + \let\hnjmonofont\korsansfont +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%% +% for lazy font setting +\AtBeginDocument{% + \ifdefined\kormainfont\else \let\kormainfont\relax + \PackageWarning{xetexko-font}{Main (Serif) Hangul Font is not set.^^J} + \fi + \ifdefined\korsansfont\else \let\korsansfont\kormainfont \fi + \ifdefined\kormonofont\else \let\kormonofont\korsansfont \fi + \ifdefined\hnjmainfont\else \let\hnjmainfont\kormainfont \fi + \ifdefined\hnjsansfont\else \let\hnjsansfont\korsansfont \fi + \ifdefined\hnjmonofont\else \let\hnjmonofont\kormonofont \fi + % set space glue from hangul font + \if@hangul + \edef\reserved@a{\familydefault} + \edef\reserved@b{\rmdefault} + \ifx\reserved@a\reserved@b + \XK@hangul@spaceskip{\kormainfont} + \else + \XK@hangul@spaceskip{\korsansfont} + \fi + \fi +} +\def\XK@hangul@spaceskip#1{% + \bgroup + \@for\reserved@a:=,\small,\footnotesize,\large,\Large,\LARGE\do{% + \reserved@a + \bgroup + #1% + \global\dimen@\fontdimen2\font + \global\dimen@ii\fontdimen7\font + \egroup + \fontdimen2\font=\dimen@ + \fontdimen3\font=.5\dimen@ + \fontdimen4\font=.3333\dimen@ + \fontdimen7\font=\dimen@ii + }% + \egroup +} + +%%%%%%%%%%%%%%%%%%%%% +% hangul in math mode +\def\setmathhangulfont{% + \@ifnextchar[{\setmathhangulfont@}{\setmathhangulfont@[]}} +\def\setmathhangulfont@[#1]#2{% + \zf@fontspec{#1}{#2}% + \xdef\xetexko@math@hangul@family{\zf@family}} +\AtBeginDocument{% + \begingroup + \ifx\xetexko@math@hangul@family\undefined + \edef\@tempb{\sfdefault}\edef\@tempc{\ttdefault}% + \ifx\f@family\@tempb \korsansfont \else + \ifx\f@family\@tempc \kormonofont \else + \kormainfont \fi\fi + \xdef\xetexko@math@hangul@family{\f@family}\fi + \endgroup + \DeclareSymbolFont{mathhangul}\zf@enc\xetexko@math@hangul@family + \mddefault\updefault + \ifcsname \zf@enc/\xetexko@math@hangul@family/\bfdefault/\updefault\endcsname + \SetSymbolFont{mathhangul}{bold}\zf@enc\xetexko@math@hangul@family + \bfdefault\updefault + \fi + \setmathhangulblock{AC00}{D7A3} +} + +%%%%%%%%%%%%%%%%%%%%%%% +% under [hangul] option +\if@hangul + \linespread{1.3888} + \footnotesep=1.3888\footnotesep + \skip\footins=1.3888\skip\footins plus6pt minus3pt +\fi + +\endinput diff --git a/Master/texmf-dist/tex/xetex/xetexko/xetexko-hanging.sty b/Master/texmf-dist/tex/xetex/xetexko/xetexko-hanging.sty new file mode 100644 index 00000000000..e0cce2114d5 --- /dev/null +++ b/Master/texmf-dist/tex/xetex/xetexko/xetexko-hanging.sty @@ -0,0 +1,124 @@ +% $Id: xetexko-hanging.sty,v 1.9 2012/12/06 04:56:05 nomos Exp $ +% +% Copyright (c) 2013 Dohyun Kim <nomos at ktug org> +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2006/05/20 or later. + +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname ProvidesPackage\endcsname\relax\else + \ProvidesPackage{xetexko-hanging} + [2013/03/27 v2.0 Hanging punctuations for XeTeX-ko] +\fi + +\chardef\catcodeofATcharacter\catcode`@ +\catcode`\@ = 11 + +\let\XK@orig@periodboxstop \XKperiodboxstop +\let\XK@orig@commaboxstop \XKcommaboxstop +\let\XK@orig@closingquotestop \XKclosingquotestop +\let\XK@orig@openingquotestart\XKopeningquotestart +\let\XK@orig@postcjkfullstop \postcjkfullstop +\let\XK@orig@postcjkcloseparen\postcjkcloseparen +\let\XK@orig@precjkopenparen@ \precjkopenparen@ + +\def\disablehangingpunctuation{% + \let\XKperiodboxstop \XK@orig@periodboxstop + \let\XKcommaboxstop \XK@orig@commaboxstop + \let\XKclosingquotestop \XK@orig@closingquotestop + \let\XKopeningquotestart\XK@orig@openingquotestart + \let\postcjkfullstop \XK@orig@postcjkfullstop + \let\postcjkcloseparen \XK@orig@postcjkcloseparen + \let\precjkopenparen@ \XK@orig@precjkopenparen@ +} +\let\disablehangingpunctuations\disablehangingpunctuation + +\ifdefined\strip@pt\else + \begingroup + \catcode`P=12 + \catcode`T=12 + \lowercase{\def\x{\def\rem@pt##1.##2PT{##1\ifnum##2>\z@.##2\fi}}} + \expandafter\endgroup\x + \def\strip@pt{\expandafter\rem@pt\the} +\fi + +\def\hangingpunctuation{% + \begingroup + \setbox\z@\hbox{가.}\setbox\tw@\hbox{가}% + \xdef\temp@a + {\strip@pt\dimexpr(\wd\z@-\wd\tw@)*65536/\number\dimexpr 1em\relax\relax}% + \setbox\z@\hbox{가'}% + \xdef\temp@b + {\strip@pt\dimexpr(\wd\z@-\wd\tw@)*65536/\number\dimexpr 1em\relax\relax}% + \endgroup + \edef\xetexko@periodwidth{\temp@a em}% + \edef\xetexko@quotewidth {\temp@b em}% + \def\XKperiodboxstop{% + \XK@orig@periodboxstop + \ifnum\XKcurrentfont>\z@ + \count@\spacefactor + \XKH@post@hang\xetexko@periodwidth + \spacefactor\count@ + \fi + }% + \def\XKcommaboxstop{% + \XK@orig@commaboxstop + \ifnum\XKcurrentfont>\z@ + \count@\spacefactor + \XKH@post@hang\xetexko@periodwidth + \spacefactor\count@ + \fi + }% + \def\XKclosingquotestop{% + \XK@orig@closingquotestop \XKH@post@hang\xetexko@quotewidth + }% + \def\XKopeningquotestart{% + \XKH@pre@hang\xetexko@quotewidth \XK@orig@openingquotestart + }% + \def\precjkopenparen@{% + \@josa@char@to@number\@let@token\count@ + \dimen@\XeTeXglyphbounds\@ne\XeTeXcharglyph\count@ + \dimen@\dimexpr\fontcharwd\font\count@-\dimen@\relax + \ifdim\dimen@<.5em \dimen@.5em \else\advance\dimen@.1em \fi + \ifx^^^^201c\@let@token + \dimen@ii\dimen@ \advance\dimen@ii-.125em + \XKH@pre@hang\dimen@ii + \else\ifx^^^^2018\@let@token \XKH@pre@hang\dimen@ + \fi\fi + \leavevmode\hbox to\dimen@\bgroup\hss + \XeTeXinterchartoks\XKboundary\XKcjkopening = {\empty}% + }% + \def\postcjkcloseparen{% + \XK@orig@postcjkcloseparen + \ifx^^^^3001\@let@token \XKH@post@hang\dimen@ + \else\ifx^^^^ff0c\@let@token \XKH@post@hang\dimen@ + \else\ifx^^^^201d\@let@token + \dimen@ii\dimen@ \advance\dimen@ii-.125em + \XKH@post@hang\dimen@ii + \else\ifx^^^^2019\@let@token \XKH@post@hang\dimen@ + \fi\fi\fi\fi + }% + \def\postcjkfullstop{% + \XK@orig@postcjkfullstop \XKH@post@hang\dimen@ + }% +} +\def\XKH@post@hang#1{% + \nobreak\hskip\z@\relax + \vrule width-#1 height\z@ depth\z@ + \kern#1\relax +} +\def\XKH@pre@hang#1{% + \kern#1\relax + \vrule width-#1 height\z@ depth\z@ + \nobreak\hskip\z@\relax +} +\let\hangingpunctuations\hangingpunctuation + +\catcode`\@\catcodeofATcharacter + +\endinput diff --git a/Master/texmf-dist/tex/xetex/xetexko/xetexko-josa.sty b/Master/texmf-dist/tex/xetex/xetexko/xetexko-josa.sty new file mode 100644 index 00000000000..6d8bb6ffe95 --- /dev/null +++ b/Master/texmf-dist/tex/xetex/xetexko/xetexko-josa.sty @@ -0,0 +1,211 @@ +% $Id: xetexko-josa.sty,v 1.11 2011/03/14 03:47:59 nomos Exp $ +% +% Copyright (c) 2013 Dohyun Kim <nomos at ktug org> +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2006/05/20 or later. + +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname ProvidesPackage\endcsname\relax\else + \ProvidesPackage{xetexko-josa}[2013/03/27 v2.0 Auto-josa for XeTeX-ko] +\fi + +\unless\ifcsname @tempcnta\endcsname\newcount\@tempcnta\fi +\unless\ifcsname @tempcntb\endcsname\newcount\@tempcntb\fi + +\newcount\@josa\@josa\m@ne +\protected\def\jong{\global\@josa\z@} +\protected\def\rieul{\global\@josa\@ne} +\protected\def\jung{\global\@josa\tw@} + +\begingroup +\catcode`\A=11 +\catcode`\0=12 +\global\let\dhucs@cat@eleven=A +\global\let\dhucs@cat@twelve=0 +\endgroup + +\expandafter\def\expandafter\strip@characternum@meaning@prefix\detokenize + {the character} #1{\number`#1} +\expandafter\def\expandafter\strip@letternum@meaning@prefix\detokenize + {the letter} #1{\number`#1} + +\def\@josa@char@to@number#1#2{% + \ifcat#1\dhucs@cat@eleven + \expandafter\expandafter\expandafter#2\expandafter + \strip@letternum@meaning@prefix\meaning#1\relax + \else\ifcat#1\dhucs@cat@twelve + \expandafter\expandafter\expandafter#2\expandafter + \strip@characternum@meaning@prefix\meaning#1\relax + \else + #2\z@ + \fi\fi +} + +\def\josa@char@to@number{% + \XeTeXinterchartokenstate\z@ + \@josa@char@to@number\XK@last@char\count@ + \@josa@char@to@number\XK@lastlast@char\@tempcnta + \@josa@char@to@number\XK@lastlastlast@char\@tempcntb + \ifnum\count@="302E + \count@\@tempcnta \@tempcnta\@tempcntb + \else\ifnum\count@="302F + \count@\@tempcnta \@tempcnta\@tempcntb + \else\ifnum\count@="1160 + \count@\@tempcnta \@tempcnta\@tempcntb + \fi\fi\fi + \XeTeXinterchartokenstate\@ne +} + +\def\josa@last@char@latin{% + \ifnum 49=\count@ \rieul\else % 1 + \ifnum 51=\count@ \jong \else % 3 + \ifnum 54=\count@ \jong \else % 6 + \ifnum 55=\count@ \rieul\else % 7 + \ifnum 56=\count@ \rieul\else % 8 + \ifnum 48=\count@ \jong \else % 0 + \ifnum 108=\count@ \rieul\else % l + \ifnum 109=\count@ \jong \else % m + \ifnum 110=\count@ \jong \else % n + \ifnum 76=\count@ \rieul\else % L + \ifnum 77=\count@ \jong \else % M + \ifnum 78=\count@ \jong \else % N + \jung + \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi + \ifnum 110=\@tempcnta \ifnum 103=\count@ \jong \fi\fi %skati-ng + \ifnum 97=\@tempcnta \ifnum 112=\count@ \jong \fi\fi %c-ap + \ifnum 117=\@tempcnta \ifnum 112=\count@ \jong \fi\fi %c-up + \ifnum 97=\@tempcnta \ifnum 116=\count@ \jong \fi\fi %c-at + \ifnum 101=\@tempcnta \ifnum 116=\count@ \jong \fi\fi %Haml-et + \ifnum 105=\@tempcnta \ifnum 116=\count@ \jong \fi\fi %summ-it + \ifnum 111=\@tempcnta \ifnum 116=\count@ \jong \fi\fi %n-ot + \ifnum 117=\@tempcnta \ifnum 116=\count@ \jong \fi\fi %n-ut + \ifnum 111=\@tempcnta \ifnum 107=\count@ \jong \fi\fi %bo-ok + \ifnum 105=\@tempcnta \ifnum 99=\count@ \jong \fi\fi %picn-ic + \ifnum 108=\@tempcnta \ifnum 101=\count@ \rieul\fi\fi %app-le + \ifnum 105=\@tempcntb \ifnum 109=\@tempcnta \ifnum 101=\count@ \jong\fi\fi\fi %t-ime + \ifnum 105=\@tempcntb \ifnum 110=\@tempcnta \ifnum 101=\count@ \jong\fi\fi\fi %m-ine + \ifnum 97=\@tempcntb \ifnum 99=\@tempcnta \ifnum 107=\count@ \jong\fi\fi\fi %b-ack + \ifnum 105=\@tempcntb \ifnum 99=\@tempcnta \ifnum 107=\count@ \jong\fi\fi\fi %p-ick + \ifnum 111=\@tempcntb \ifnum 97=\@tempcnta \ifnum 116=\count@ \jung\fi\fi\fi %b-oat + \ifnum 84=\@tempcntb \ifnum 69=\@tempcnta \ifnum 88=\count@ \jong\fi\fi\fi %TEX +} + +\def\josa@hanja@hangul#1{% + \begingroup + \count@=\z@ + \openin1=#1\relax \josa@hanja \closein1 + \endgroup +} +\def\josa@hanja{% + \read1 to \@tempa + \ifnum\count@=\@josa + \global\@josa\@tempa \let\next\relax + \else + \advance\count@\@ne \let\next\josa@hanja + \fi + \next +} + +\def\num@josa#1{% + \bgroup + \count@#1% + \ifnum\count@<\z@ \count@-\count@ \fi + \count\tw@\count@ + \divide\count\tw@ 10 + \multiply\count\tw@ 10 + \advance\count@-\count\tw@ + \ifcase\count@\jong\or\rieul\or\jung\or\jong\or\jung\or + \jung\or\jong\or\rieul\or\rieul\or\jung\fi + \egroup +} + +\def\josa@last@char@cjk{% + \ifnum\@josa>19967 \ifnum\@josa<40870 % cjk unified ideographs + \advance\@josa-19968 % "4E00 + \josa@hanja@hangul{hanja_hangul.tab}\fi\fi + \ifnum\@josa>13311 \ifnum\@josa<19894 % cjk unified ideographs ext. A + \advance\@josa-13312 % "3400 + \josa@hanja@hangul{hanjaexa_hangul.tab}\fi\fi + \ifnum\@josa>63743 \ifnum\@josa<64046 % cjk compatibility ideographs + \advance\@josa-63744 % "F900 + \josa@hanja@hangul{hanjacom_hangul.tab}\fi\fi + \ifnum\@josa>44031 \ifnum\@josa<55204 % hangul syllables + \advance\@josa-44032 % "AC00 + \count@=\@josa \divide\count@28 \multiply\count@28 + \advance\@josa-\count@ \advance\@josa4519 % "11A7 + \fi\fi + \ifnum\@josa>"115F \ifnum\@josa<"11A8 % jamo vowels + \ifnum\@josa="1160 \ifnum\@tempcnta="1105 \rieul \else \jong \fi % ㄹ or other chosong + \else \jung \fi\fi\fi + \ifnum\@josa>"11A7 \ifnum\@josa<"1200 % jamo final consonants + \ifnum\@josa="11AF \rieul \else \jong \fi\fi\fi + \ifnum\@josa>"D7AF \ifnum\@josa<"D7C7 \jung \fi\fi % jamo vowels + \ifnum\@josa>"D7CA \ifnum\@josa<"D7FC \jong \fi\fi % jamo final consonants + \ifnum\@josa>12592 \ifnum\@josa<12623 % ㄱㄴㄷㄹ + \ifnum\@josa=12601 \rieul + \else\jong\fi \fi\fi + \ifnum\@josa>12895 \ifnum\@josa<12924 \advance\@josa-96 \fi\fi + \ifnum\@josa>12799 \ifnum\@josa<12814 % ㉠ or ㈀ + \ifnum\@josa=12803 \rieul + \else\jong\fi \fi\fi + \ifnum\@josa>12813 \ifnum\@josa<12829 % ㉮ or ㈎ + \jung \fi\fi + \ifnum\@josa>9311 \ifnum\@josa<9372 % ① or ⑴ + \advance\@josa\m@ne \num@josa{\@josa}\fi\fi + \ifnum\@josa>9423 \ifnum\@josa<9450 \advance\@josa-26 \fi\fi + \ifnum\@josa>9397 \ifnum\@josa<9424 \advance\@josa-26 \fi\fi + \ifnum\@josa>9371 \ifnum\@josa<9398 % ⓐ or ⒜ + \ifnum\@josa=9383 \rieul\else % l + \ifnum\@josa=9384 \jong\else % m + \ifnum\@josa=9385 \jong\else % n + \jung\fi\fi\fi \fi\fi + \ifnum\@josa>8543 \ifnum\@josa<8556 % ⅰ ⅱ ⅲ + \advance\@josa-3 \num@josa{\@josa}\fi\fi + \ifnum\@josa>8559 \ifnum\@josa<8572 % Ⅰ Ⅱ Ⅲ + \advance\@josa\@ne \num@josa{\@josa}\fi\fi +} + +\protected\def\makejosa#1#2{% + \ifnum\@josa<\z@ + \josa@char@to@number + \ifnum\count@<\@cclvi + \ifnum\lastskip>\z@\else\XKcjklatinsmallbreak\fi % probably last char is latin ㅠㅠ + \josa@last@char@latin + \else + \@josa\count@ + \josa@last@char@cjk + \fi + \fi + \ifcase\@josa #2% jong + \or \ifx\@empty#1\@empty \else#2\fi% rieul + \else #1% jung + \fi + \global\@josa\m@ne +} + +\def\가{\makejosa{가}{이}} +\def\이{\futurelet\dhucs@next\makejosa@I} +\def\은{\makejosa{는}{은}} +\def\는{\makejosa{는}{은}} +\def\을{\makejosa{를}{을}} +\def\를{\makejosa{를}{을}} +\def\와{\makejosa{와}{과}} +\def\과{\makejosa{와}{과}} +\def\으{\makejosa{}{으}} +\def\로{\makejosa{}{으}로} +\def\라{\makejosa{라}{이라}} +\def\makejosa@I{% + \ifx\dhucs@next라% + \makejosa\relax{이}% + \else + \makejosa{가}{이}% + \fi +} + +\endinput diff --git a/Master/texmf-dist/tex/xetex/xetexko/xetexko-space.sty b/Master/texmf-dist/tex/xetex/xetexko/xetexko-space.sty new file mode 100644 index 00000000000..d0978bde015 --- /dev/null +++ b/Master/texmf-dist/tex/xetex/xetexko/xetexko-space.sty @@ -0,0 +1,1633 @@ +% $Id: xetexko-space.sty,v 1.29 2012/10/27 10:55:09 nomos Exp $ +% +% Copyright (c) 2013 Dohyun Kim <nomos at ktug org> +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2006/05/20 or later. + +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname ProvidesPackage\endcsname\relax\else + \ProvidesPackage{xetexko-space} + [2013/03/27 v2.0 Spacings and fonts for XeTeX-ko] +\fi + +%%% we need XeTeX > 0.997 +\ifx\XeTeXinterchartoks\XeTeXcharclass + \errmessage{This package requires XeTeX 0.997 or higher.} + \expandafter\endinput +\fi +\ifcsname newXeTeXintercharclass\endcsname\else + \errmessage{This package requires TeXLive 2009 or higher.} + \expandafter\endinput +\fi + +\unless\ifcsname @sptoken\endcsname + {\def\:{\global\let\@sptoken= } \: }% space token +\fi + +%%%%%%%%%%%%%%%%%%%%% +% assign char classes + +%%% default assignments (see unicode-letters.tex) +% CJK hanja = class 1 +% CJK openings = class 2 +% CJK closings and small kana = class 3 +% others = class 0 +\chardef \XKhanja \@ne +\chardef \XKcjkopening \tw@ +\chardef \XKsmallkana \thr@@ +\chardef \XKlatinchar \z@ +\chardef \XKboundary \@cclv + +%%% small kana (something has changed) +\XeTeXcharclass "3041 = \XKsmallkana +\XeTeXcharclass "3043 = \XKsmallkana +\XeTeXcharclass "3045 = \XKsmallkana +\XeTeXcharclass "3047 = \XKsmallkana +\XeTeXcharclass "3049 = \XKsmallkana +\XeTeXcharclass "3063 = \XKsmallkana +\XeTeXcharclass "3083 = \XKsmallkana +\XeTeXcharclass "3085 = \XKsmallkana +\XeTeXcharclass "3087 = \XKsmallkana +\XeTeXcharclass "308E = \XKsmallkana +\XeTeXcharclass "3095 = \XKsmallkana +\XeTeXcharclass "3096 = \XKsmallkana +\XeTeXcharclass "30A1 = \XKsmallkana +\XeTeXcharclass "30A3 = \XKsmallkana +\XeTeXcharclass "30A5 = \XKsmallkana +\XeTeXcharclass "30A7 = \XKsmallkana +\XeTeXcharclass "30A9 = \XKsmallkana +\XeTeXcharclass "30C3 = \XKsmallkana +\XeTeXcharclass "30E3 = \XKsmallkana +\XeTeXcharclass "30E5 = \XKsmallkana +\XeTeXcharclass "30E7 = \XKsmallkana +\XeTeXcharclass "30EE = \XKsmallkana +\XeTeXcharclass "30F5 = \XKsmallkana +\XeTeXcharclass "30F6 = \XKsmallkana +\count@="FF67 \loop + \XeTeXcharclass\count@ = \XKsmallkana + \ifnum\count@<"FF6F \advance\count@\@ne \repeat + +%%% +\XeTeXcharclass "25A1 = \XKhanja % □ + +%%% +\XeTeXcharclass "2018 = \XKcjkopening % ‘ +\XeTeXcharclass "201C = \XKcjkopening % “ + +%%% cjk closing parentheses +\newXeTeXintercharclass \XKcjkclosing +\XeTeXcharclass "2019 = \XKcjkclosing % ’ +\XeTeXcharclass "201D = \XKcjkclosing % ” +\XeTeXcharclass "3001 = \XKcjkclosing % 、 +\XeTeXcharclass "FE11 = \XKcjkclosing % 、 vert +\XeTeXcharclass "FF0C = \XKcjkclosing % , +\XeTeXcharclass "FE10 = \XKcjkclosing % , vert +\XeTeXcharclass "2019 = \XKcjkclosing % ’ +\XeTeXcharclass "201D = \XKcjkclosing % ” +\XeTeXcharclass "FF09 = \XKcjkclosing % ) +\XeTeXcharclass "FE36 = \XKcjkclosing % ) vert +\XeTeXcharclass "3015 = \XKcjkclosing % 〕 +\XeTeXcharclass "FE3A = \XKcjkclosing % 〕 vert +\XeTeXcharclass "FF3D = \XKcjkclosing % ] +\XeTeXcharclass "FE48 = \XKcjkclosing % ] vert +\XeTeXcharclass "FF5D = \XKcjkclosing % } +\XeTeXcharclass "FE38 = \XKcjkclosing % } vert +\XeTeXcharclass "3009 = \XKcjkclosing % 〉 +\XeTeXcharclass "FE40 = \XKcjkclosing % 〉 vert +\XeTeXcharclass "300B = \XKcjkclosing % 》 +\XeTeXcharclass "FE3E = \XKcjkclosing % 》 vert +\XeTeXcharclass "300D = \XKcjkclosing % 」 +\XeTeXcharclass "FE42 = \XKcjkclosing % 」 vert +\XeTeXcharclass "300F = \XKcjkclosing % 』 +\XeTeXcharclass "FE44 = \XKcjkclosing % 』 vert +\XeTeXcharclass "3011 = \XKcjkclosing % 】 +\XeTeXcharclass "FE3C = \XKcjkclosing % 】 vert + +%%% cjk colons +\newXeTeXintercharclass \XKcjkcolon +\XeTeXcharclass "00B7 = \XKcjkcolon % · +\XeTeXcharclass "30FB = \XKcjkcolon % ・ +\XeTeXcharclass "FF1A = \XKcjkcolon % : +\XeTeXcharclass "FE13 = \XKcjkcolon % ︓ +\XeTeXcharclass "FF1B = \XKcjkcolon % ; +\XeTeXcharclass "FE14 = \XKcjkcolon % ︔ + +%%% cjk fullstops +\newXeTeXintercharclass \XKcjkfullstop +\XeTeXcharclass "3002 = \XKcjkfullstop % 。 +\XeTeXcharclass "FE12 = \XKcjkfullstop % ︒ +\XeTeXcharclass "FF0E = \XKcjkfullstop % . + +%%% cjk liaisons +\newXeTeXintercharclass \XKcjkliaison +\XeTeXcharclass "2015 = \XKcjkliaison % ― +\XeTeXcharclass "2026 = \XKcjkliaison % … +\XeTeXcharclass "FE19 = \XKcjkliaison % ︙ +\XeTeXcharclass "2025 = \XKcjkliaison % ‥ +\XeTeXcharclass "FE30 = \XKcjkliaison % ︰ + +%%% cjk question/exclamation marks +\newXeTeXintercharclass \XKcjkextrastop +\XeTeXcharclass "FF1F = \XKcjkextrastop % ? +\XeTeXcharclass "FF01 = \XKcjkextrastop % ! + +%%% other cjk symbols +\newXeTeXintercharclass \XKcjksymbol +%% still missing: +%% 00AD +%% 0138 ĸ +%% 0149 ʼn +%% 0166 Ŧ +%% 0167 ŧ +%% 0370.. greek letters +%% 0400.. cyrillic letters +\XeTeXcharclass "00B2 = \XKcjksymbol % ² +\XeTeXcharclass "00B3 = \XKcjksymbol % ³ +\XeTeXcharclass "00B9 = \XKcjksymbol % ¹ +\XeTeXcharclass "00BC = \XKcjksymbol % ¼ +\XeTeXcharclass "00BD = \XKcjksymbol % ½ +\XeTeXcharclass "00BE = \XKcjksymbol % ¾ +\XeTeXcharclass "02D0 = \XKcjksymbol % ː +\XeTeXcharclass "2032 = \XKcjksymbol % ′ +\XeTeXcharclass "2033 = \XKcjksymbol % ″ +\XeTeXcharclass "203B = \XKcjksymbol % ※ +\XeTeXcharclass "2074 = \XKcjksymbol % ⁴ +\XeTeXcharclass "207F = \XKcjksymbol % ⁿ +\XeTeXcharclass "2081 = \XKcjksymbol % ₁ +\XeTeXcharclass "2082 = \XKcjksymbol % ₂ +\XeTeXcharclass "2083 = \XKcjksymbol % ₃ +\XeTeXcharclass "2084 = \XKcjksymbol % ₄ +\XeTeXcharclass "2103 = \XKcjksymbol % ℃ changed from smallkana +\XeTeXcharclass "2109 = \XKcjksymbol % ℉ changed from smallkana +\XeTeXcharclass "2113 = \XKcjksymbol % ℓ changed from smallkana +\XeTeXcharclass "2121 = \XKcjksymbol % ℡ +\XeTeXcharclass "2122 = \XKcjksymbol % ™ +\XeTeXcharclass "212B = \XKcjksymbol % Å changed from smallkana +\XeTeXcharclass "2153 = \XKcjksymbol % ⅓ +\XeTeXcharclass "2154 = \XKcjksymbol % ⅔ +\XeTeXcharclass "215B = \XKcjksymbol % ⅛ +\XeTeXcharclass "215C = \XKcjksymbol % ⅜ +\XeTeXcharclass "215D = \XKcjksymbol % ⅝ +\XeTeXcharclass "215E = \XKcjksymbol % ⅞ +\count@ "2160 % Ⅰ +\loop + \XeTeXcharclass\count@\XKcjksymbol + \ifnum\count@ < "216B % Ⅻ + \advance\count@\@ne \repeat +\count@ "2170 % ⅰ +\loop + \XeTeXcharclass\count@\XKcjksymbol + \ifnum\count@ < "217B % ⅻ + \advance\count@\@ne \repeat +%% math symbols (?) +\count@ "2190 % ← +\loop + \XeTeXcharclass\count@\XKcjksymbol + \ifnum\count@ < "2199 % ↙ + \advance\count@\@ne \repeat +\XeTeXcharclass "21D2 = \XKcjksymbol % ⇒ +\XeTeXcharclass "21D4 = \XKcjksymbol % ⇔ +\XeTeXcharclass "2200 = \XKcjksymbol % ∀ +\XeTeXcharclass "2202 = \XKcjksymbol % ∂ +\XeTeXcharclass "2203 = \XKcjksymbol % ∃ +\XeTeXcharclass "2207 = \XKcjksymbol % ∇ +\XeTeXcharclass "2208 = \XKcjksymbol % ∈ +\XeTeXcharclass "220B = \XKcjksymbol % ∋ +\XeTeXcharclass "220F = \XKcjksymbol % ∏ +\XeTeXcharclass "2211 = \XKcjksymbol % ∑ +\XeTeXcharclass "221A = \XKcjksymbol % √ +\XeTeXcharclass "221D = \XKcjksymbol % ∝ +\XeTeXcharclass "2220 = \XKcjksymbol % ∠ +\XeTeXcharclass "2225 = \XKcjksymbol % ∥ +\XeTeXcharclass "2227 = \XKcjksymbol % ∧ +\XeTeXcharclass "2228 = \XKcjksymbol % ∨ +\XeTeXcharclass "2229 = \XKcjksymbol % ∩ +\XeTeXcharclass "222A = \XKcjksymbol % ∪ +\XeTeXcharclass "222B = \XKcjksymbol % ∫ +\XeTeXcharclass "222C = \XKcjksymbol % ∬ +\XeTeXcharclass "222E = \XKcjksymbol % ∮ +\XeTeXcharclass "2234 = \XKcjksymbol % ∴ +\XeTeXcharclass "2235 = \XKcjksymbol % ∵ +\XeTeXcharclass "223C = \XKcjksymbol % ∼ +\XeTeXcharclass "223D = \XKcjksymbol % ∽ +\XeTeXcharclass "2252 = \XKcjksymbol % ≒ +\XeTeXcharclass "2260 = \XKcjksymbol % ≠ +\XeTeXcharclass "2261 = \XKcjksymbol % ≡ +\XeTeXcharclass "2264 = \XKcjksymbol % ≤ +\XeTeXcharclass "2265 = \XKcjksymbol % ≥ +\XeTeXcharclass "226A = \XKcjksymbol % ≪ +\XeTeXcharclass "226B = \XKcjksymbol % ≫ +\XeTeXcharclass "2282 = \XKcjksymbol % ⊂ +\XeTeXcharclass "2283 = \XKcjksymbol % ⊃ +\XeTeXcharclass "2286 = \XKcjksymbol % ⊆ +\XeTeXcharclass "2287 = \XKcjksymbol % ⊇ +\XeTeXcharclass "2299 = \XKcjksymbol % ⊙ +\XeTeXcharclass "22A5 = \XKcjksymbol % ⊥ +\XeTeXcharclass "2312 = \XKcjksymbol % ⌒ +\count@ "2460 % ① +\loop + \XeTeXcharclass\count@\XKcjksymbol + \ifnum\count@ < "24EA % ⓪ + \advance\count@\@ne \repeat +\XeTeXcharclass "2500 = \XKcjksymbol % ─ +\XeTeXcharclass "2501 = \XKcjksymbol % ━ +\XeTeXcharclass "2502 = \XKcjksymbol % │ +\XeTeXcharclass "2503 = \XKcjksymbol % ┃ +\count@ "250C % ─ +\loop + \XeTeXcharclass\count@\XKcjksymbol + \ifnum\count@ < "254B % ╋ + \advance\count@\@ne \repeat +\XeTeXcharclass "2592 = \XKcjksymbol % ▒ +\XeTeXcharclass "25A0 = \XKcjksymbol % ■ +%\XeTeXcharclass "25A1 = \XKcjksymbol % □ +\XeTeXcharclass "25A3 = \XKcjksymbol % ▣ +\XeTeXcharclass "25A4 = \XKcjksymbol % ▤ +\XeTeXcharclass "25A5 = \XKcjksymbol % ▥ +\XeTeXcharclass "25A6 = \XKcjksymbol % ▦ +\XeTeXcharclass "25A7 = \XKcjksymbol % ▧ +\XeTeXcharclass "25A8 = \XKcjksymbol % ▨ +\XeTeXcharclass "25A9 = \XKcjksymbol % ▩ +\XeTeXcharclass "25B2 = \XKcjksymbol % ▲ +\XeTeXcharclass "25B3 = \XKcjksymbol % △ +\XeTeXcharclass "25B6 = \XKcjksymbol % ▶ +\XeTeXcharclass "25B7 = \XKcjksymbol % ▷ +\XeTeXcharclass "25BC = \XKcjksymbol % ▼ +\XeTeXcharclass "25BD = \XKcjksymbol % ▽ +\XeTeXcharclass "25C0 = \XKcjksymbol % ◀ +\XeTeXcharclass "25C1 = \XKcjksymbol % ◁ +\XeTeXcharclass "25C6 = \XKcjksymbol % ◆ +\XeTeXcharclass "25C7 = \XKcjksymbol % ◇ +\XeTeXcharclass "25C8 = \XKcjksymbol % ◈ +\XeTeXcharclass "25CB = \XKcjksymbol % ○ +\XeTeXcharclass "25CE = \XKcjksymbol % ◎ +\XeTeXcharclass "25CF = \XKcjksymbol % ● +\XeTeXcharclass "25D0 = \XKcjksymbol % ◐ +\XeTeXcharclass "25D1 = \XKcjksymbol % ◑ +\XeTeXcharclass "2605 = \XKcjksymbol % ★ +\XeTeXcharclass "2606 = \XKcjksymbol % ☆ +\XeTeXcharclass "260E = \XKcjksymbol % ☎ +\XeTeXcharclass "260F = \XKcjksymbol % ☏ +\XeTeXcharclass "261C = \XKcjksymbol % ☜ +\XeTeXcharclass "261E = \XKcjksymbol % ☞ +\XeTeXcharclass "2640 = \XKcjksymbol % ♀ +\XeTeXcharclass "2642 = \XKcjksymbol % ♂ +\XeTeXcharclass "2660 = \XKcjksymbol % ♠ +\XeTeXcharclass "2661 = \XKcjksymbol % ♡ +\XeTeXcharclass "2663 = \XKcjksymbol % ♣ +\XeTeXcharclass "2664 = \XKcjksymbol % ♤ +\XeTeXcharclass "2665 = \XKcjksymbol % ♥ +\XeTeXcharclass "2667 = \XKcjksymbol % ♧ +\XeTeXcharclass "2668 = \XKcjksymbol % ♨ +\XeTeXcharclass "2669 = \XKcjksymbol % ♩ +\XeTeXcharclass "266A = \XKcjksymbol % ♪ +\XeTeXcharclass "266C = \XKcjksymbol % ♬ +\XeTeXcharclass "266D = \XKcjksymbol % ♭ +\XeTeXcharclass "3012 = \XKcjksymbol % 〒 +\XeTeXcharclass "301C = \XKcjksymbol % 〜 +\XeTeXcharclass "FF04 = \XKcjksymbol % $ +\XeTeXcharclass "FF05 = \XKcjksymbol % % +\XeTeXcharclass "FF5E = \XKcjksymbol % ~ +\XeTeXcharclass "FFE0 = \XKcjksymbol % ¢ +\XeTeXcharclass "FFE1 = \XKcjksymbol % £ +\XeTeXcharclass "FFE5 = \XKcjksymbol % ¥ +\XeTeXcharclass "FFE6 = \XKcjksymbol % ₩ + +%%% hangul syllables +\newXeTeXintercharclass \XKhangulsyllable +\count@ "AC00 +\loop + \XeTeXcharclass\count@\XKhangulsyllable + \ifnum\count@ < "D7A3 + \advance\count@\@ne \repeat + +%%% leading consonants jamo +\newXeTeXintercharclass \XKhangulchosong +\count@ "1100 +\loop + \XeTeXcharclass\count@\XKhangulchosong + \ifnum\count@ < "115F + \advance\count@\@ne \repeat +\count@ "A960 +\loop + \XeTeXcharclass\count@\XKhangulchosong + \ifnum\count@ < "A97C + \advance\count@\@ne \repeat + +%%% jungseong/jongseong jamo including tone marks +\newXeTeXintercharclass \XKhanguljungjong +\count@ "1160 +\loop + \XeTeXcharclass\count@\XKhanguljungjong + \ifnum\count@ < "11FF + \advance\count@\@ne \repeat +\count@ "D7B0 +\loop + \XeTeXcharclass\count@\XKhanguljungjong + \ifnum\count@ < "D7FB + \advance\count@\@ne \repeat +\XeTeXcharclass "302E = \XKhanguljungjong +\XeTeXcharclass "302F = \XKhanguljungjong + +%%% latin openings +\newXeTeXintercharclass \XKlatinopening +\XeTeXcharclass`\( = \XKlatinopening +\XeTeXcharclass`\[ = \XKlatinopening +\XeTeXcharclass`\{ = \XKlatinopening +\XeTeXcharclass`\< = \XKlatinopening + +%%% latin closings +\newXeTeXintercharclass \XKlatinclosing +\XeTeXcharclass`\) = \XKlatinclosing +\XeTeXcharclass`\] = \XKlatinclosing +\XeTeXcharclass`\} = \XKlatinclosing +\XeTeXcharclass`\> = \XKlatinclosing + +%%% latin quotes +\newXeTeXintercharclass\XKopeningquote +\XeTeXcharclass`\` = \XKopeningquote +\newXeTeXintercharclass\XKclosingquote +\XeTeXcharclass`\' = \XKclosingquote + +%%% latin full stop +\newXeTeXintercharclass \XKlatinfullstop +\XeTeXcharclass `\. = \XKlatinfullstop + +%%% latin questions/exclamations +\newXeTeXintercharclass \XKlatinquestion +\XeTeXcharclass `\? = \XKlatinquestion +\newXeTeXintercharclass \XKlatinexclamation +\XeTeXcharclass `\! = \XKlatinexclamation + +%%% latin hyphen including / +\newXeTeXintercharclass \XKlatinhyphen +\XeTeXcharclass `\- = \XKlatinhyphen % this affects -- --- ligatures +\XeTeXcharclass `\/ = \XKlatinhyphen + +%%% latin comma +\newXeTeXintercharclass \XKlatincomma +\XeTeXcharclass `\, = \XKlatincomma + +%%% latin colons +\newXeTeXintercharclass \XKlatincolon +\XeTeXcharclass `\: = \XKlatincolon +\XeTeXcharclass `\; = \XKlatincolon +\XeTeXcharclass "2013 = \XKlatincolon % – ? liaison +\XeTeXcharclass "2014 = \XKlatincolon % — ? liaison + +%%% latin numbers +\newXeTeXintercharclass \XKlatinnumber +\count@ `0 +\loop + \XeTeXcharclass\count@\XKlatinnumber + \ifnum\count@ < `9 + \advance\count@\@ne \repeat + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% define inter char tokes +%%% ? latin numbers +\XeTeXinterchartoks \XKlatinchar \XKlatinnumber = {\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKlatinnumber \XKlatinnumber = {\XKlastchar} +\XeTeXinterchartoks \XKlatinopening \XKlatinnumber = {\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKlatinclosing \XKlatinnumber = {\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKopeningquote \XKlatinnumber = {\XKopeningquotestop\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKclosingquote \XKlatinnumber = {\XKclosingquotestop\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKhanja \XKlatinnumber = {\XKcjklatinsmallbreak\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKsmallkana \XKlatinnumber = {\XKcjklatinsmallbreak\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKcjksymbol \XKlatinnumber = {\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKcjkopening \XKlatinnumber = {\postcjkopenparen\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKcjkclosing \XKlatinnumber = {\postcjkcloseparen\XKhalfsmallbreak\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKcjkcolon \XKlatinnumber = {\postcjkcolon\XKquatersmallbreak\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKcjkfullstop \XKlatinnumber = {\postcjkfullstop\XKfixedhalfskip\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKcjkliaison \XKlatinnumber = {\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKcjkextrastop \XKlatinnumber = {\XKhalfsmallbreak\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKhangulsyllable \XKlatinnumber = {\XKcjklatinsmallbreak\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKhangulchosong \XKlatinnumber = {\XKcjklatinsmallbreak\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKhanguljungjong \XKlatinnumber = {\XKcjklatinsmallbreak\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKlatinfullstop \XKlatinnumber = {\XKperiodboxstop\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKlatinquestion \XKlatinnumber = {\XKquestionboxstop\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKlatinexclamation \XKlatinnumber = {\XKexclamationboxstop\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKlatincomma \XKlatinnumber = {\XKcommaboxstop\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKlatincolon \XKlatinnumber = {\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKlatinhyphen \XKlatinnumber = {\XKlatinnumfont\XKlastchar} +\XeTeXinterchartoks \XKboundary \XKlatinnumber = {\XKundoignorespaces\XKlatinnumfont\XKbeginboundary\XKlastchar} + +%%% ? latin alphabets +\XeTeXinterchartoks \XKlatinchar \XKlatinchar = {\XKlastchar} +\XeTeXinterchartoks \XKlatinnumber \XKlatinchar = {\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKlatinopening \XKlatinchar = {\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKlatinclosing \XKlatinchar = {\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKopeningquote \XKlatinchar = {\XKopeningquotestop\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKclosingquote \XKlatinchar = {\XKclosingquotestop\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKhanja \XKlatinchar = {\XKcjklatinsmallbreak\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKsmallkana \XKlatinchar = {\XKcjklatinsmallbreak\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKcjksymbol \XKlatinchar = {\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKcjkopening \XKlatinchar = {\postcjkopenparen\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKcjkclosing \XKlatinchar = {\postcjkcloseparen\XKhalfsmallbreak\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKcjkcolon \XKlatinchar = {\postcjkcolon\XKquatersmallbreak\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKcjkfullstop \XKlatinchar = {\postcjkfullstop\XKfixedhalfskip\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKcjkliaison \XKlatinchar = {\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKcjkextrastop \XKlatinchar = {\XKhalfsmallbreak\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKhangulsyllable \XKlatinchar = {\XKcjklatinsmallbreak\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKhangulchosong \XKlatinchar = {\XKcjklatinsmallbreak\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKhanguljungjong \XKlatinchar = {\XKcjklatinsmallbreak\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKlatinfullstop \XKlatinchar = {\XKperiodboxstop\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKlatinquestion \XKlatinchar = {\XKquestionboxstop\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKlatinexclamation \XKlatinchar = {\XKexclamationboxstop\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKlatincomma \XKlatinchar = {\XKcommaboxstop\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKlatincolon \XKlatinchar = {\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKlatinhyphen \XKlatinchar = {\XKmaybelatinfont\XKlastchar} +\XeTeXinterchartoks \XKboundary \XKlatinchar = {\XKundoignorespaces\XKmaybelatinfont\XKbeginboundary\XKlastchar} + +%%% ? hanja +\XeTeXinterchartoks \XKlatinchar \XKhanja = {\XKhanjafont\XKcjklatinsmallbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatinnumber \XKhanja = {\XKhanjafont\XKcjklatinsmallbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatinopening \XKhanja = {\XKhanjafont\XKcjklastchar} +\XeTeXinterchartoks \XKlatinclosing \XKhanja = {\XKhanjafont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKopeningquote \XKhanja = {\XKopeningquotestop\XKhanjafont\XKcjklastchar} +\XeTeXinterchartoks \XKclosingquote \XKhanja = {\XKclosingquotestop\XKhanjafont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKhanja \XKhanja = {\XKinterhanjabreak\XKcjklastchar} +\XeTeXinterchartoks \XKsmallkana \XKhanja = {\XKinterhanjabreak\XKcjklastchar} +\XeTeXinterchartoks \XKcjksymbol \XKhanja = {\XKhanjafont\XKcjklastchar} +\XeTeXinterchartoks \XKcjkopening \XKhanja = {\postcjkopenparen\XKhanjafont\XKcjklastchar} +\XeTeXinterchartoks \XKcjkclosing \XKhanja = {\postcjkcloseparen\XKhalfsmallbreak\XKhanjafont\XKcjklastchar} +\XeTeXinterchartoks \XKcjkcolon \XKhanja = {\postcjkcolon\XKquatersmallbreak\XKhanjafont\XKcjklastchar} +\XeTeXinterchartoks \XKcjkfullstop \XKhanja = {\postcjkfullstop\XKfixedhalfskip\XKhanjafont\XKcjklastchar} +\XeTeXinterchartoks \XKcjkliaison \XKhanja = {\XKhanjafont\XKcjklastchar} +\XeTeXinterchartoks \XKcjkextrastop \XKhanja = {\XKhalfsmallbreak\XKhanjafont\XKcjklastchar} +\XeTeXinterchartoks \XKhangulsyllable \XKhanja = {\XKhanjafont\XKinterhanjabreak\XKcjklastchar} +\XeTeXinterchartoks \XKhangulchosong \XKhanja = {\XKhanjafont\XKinterhanjabreak\XKcjklastchar} +\XeTeXinterchartoks \XKhanguljungjong \XKhanja = {\XKhanjafont\XKinterhanjabreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatinfullstop \XKhanja = {\XKperiodboxstop\XKhanjafont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatinquestion \XKhanja = {\XKquestionboxstop\XKhanjafont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatinexclamation \XKhanja = {\XKexclamationboxstop\XKhanjafont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatincomma \XKhanja = {\XKcommaboxstop\XKhanjafont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatincolon \XKhanja = {\XKhanjafont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatinhyphen \XKhanja = {\XKhanjafont\XKzeroskip\XKcjklastchar} +\XeTeXinterchartoks \XKboundary \XKhanja = {\XKhanjafont\XKafterboundaryskip\XKbeginboundary\XKcjklastchar} + +%%% ? small kana +\XeTeXinterchartoks \XKlatinchar \XKsmallkana = {\XKhanjafont\XKcjklatinsmallbreak} +\XeTeXinterchartoks \XKlatinnumber \XKsmallkana = {\XKhanjafont\XKcjklatinsmallbreak} +\XeTeXinterchartoks \XKlatinopening \XKsmallkana = {\XKhanjafont} +\XeTeXinterchartoks \XKlatinclosing \XKsmallkana = {\XKhanjafont\XKcjklatinsmallbreak} +\XeTeXinterchartoks \XKopeningquote \XKsmallkana = {\XKopeningquotestop\XKhanjafont} +\XeTeXinterchartoks \XKclosingquote \XKsmallkana = {\XKclosingquotestop\XKhanjafont\XKcjklatinsmallbreak} +\XeTeXinterchartoks \XKhanja \XKsmallkana = {\nobreak\XKzeroskip} +\XeTeXinterchartoks \XKsmallkana \XKsmallkana = {\nobreak\XKzeroskip} +\XeTeXinterchartoks \XKcjksymbol \XKsmallkana = {\XKhanjafont} +\XeTeXinterchartoks \XKcjkopening \XKsmallkana = {\postcjkopenparen\XKhanjafont} +\XeTeXinterchartoks \XKcjkclosing \XKsmallkana = {\postcjkcloseparen\XKhalfsmallbreak\XKhanjafont} +\XeTeXinterchartoks \XKcjkcolon \XKsmallkana = {\postcjkcolon\XKquatersmallbreak\XKhanjafont} +\XeTeXinterchartoks \XKcjkfullstop \XKsmallkana = {\postcjkfullstop\XKfixedhalfskip\XKhanjafont} +\XeTeXinterchartoks \XKcjkliaison \XKsmallkana = {\XKhanjafont} +\XeTeXinterchartoks \XKcjkextrastop \XKsmallkana = {\XKhalfsmallbreak\XKhanjafont} +\XeTeXinterchartoks \XKhangulsyllable \XKsmallkana = {\XKhanjafont\XKinterhanjabreak} +\XeTeXinterchartoks \XKhangulchosong \XKsmallkana = {\XKhanjafont\XKinterhanjabreak} +\XeTeXinterchartoks \XKhanguljungjong \XKsmallkana = {\XKhanjafont\XKinterhanjabreak} +\XeTeXinterchartoks \XKlatinfullstop \XKsmallkana = {\XKperiodboxstop\XKhanjafont\XKcjklatinbreak} +\XeTeXinterchartoks \XKlatinquestion \XKsmallkana = {\XKquestionboxstop\XKhanjafont\XKcjklatinbreak} +\XeTeXinterchartoks \XKlatinexclamation \XKsmallkana = {\XKexclamationboxstop\XKhanjafont\XKcjklatinbreak} +\XeTeXinterchartoks \XKlatincomma \XKsmallkana = {\XKcommaboxstop\XKhanjafont\XKcjklatinbreak} +\XeTeXinterchartoks \XKlatincolon \XKsmallkana = {\XKhanjafont\XKcjklatinbreak} +\XeTeXinterchartoks \XKlatinhyphen \XKsmallkana = {\XKhanjafont} +\XeTeXinterchartoks \XKboundary \XKsmallkana = {\XKhanjafont\XKafterboundaryskip\XKbeginboundary} + +%%% ? cjk symbols +\XeTeXinterchartoks \XKlatinchar \XKcjksymbol = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinnumber \XKcjksymbol = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinopening \XKcjksymbol = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinclosing \XKcjksymbol = {\XKmaybehanjafont\XKcjklatinsmallbreak} +\XeTeXinterchartoks \XKopeningquote \XKcjksymbol = {\XKopeningquotestop\XKmaybehanjafont} +\XeTeXinterchartoks \XKclosingquote \XKcjksymbol = {\XKclosingquotestop\XKmaybehanjafont\XKcjklatinsmallbreak} +\XeTeXinterchartoks \XKhanja \XKcjksymbol = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKsmallkana \XKcjksymbol = {\XKmaybehanjafont} +%\XeTeXinterchartoks \XKcjksymbol \XKcjksymbol = {} +\XeTeXinterchartoks \XKcjkopening \XKcjksymbol = {\postcjkopenparen} +\XeTeXinterchartoks \XKcjkclosing \XKcjksymbol = {\postcjkcloseparen\XKhalfsmallbreak} +\XeTeXinterchartoks \XKcjkcolon \XKcjksymbol = {\postcjkcolon\XKquatersmallbreak} +\XeTeXinterchartoks \XKcjkfullstop \XKcjksymbol = {\postcjkfullstop\XKfixedhalfskip} +%\XeTeXinterchartoks \XKcjkliaison \XKcjksymbol = {} +\XeTeXinterchartoks \XKcjkextrastop \XKcjksymbol = {\XKhalfsmallbreak} +\XeTeXinterchartoks \XKhangulsyllable \XKcjksymbol = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKhangulchosong \XKcjksymbol = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKhanguljungjong \XKcjksymbol = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinfullstop \XKcjksymbol = {\XKperiodboxstop\XKmaybehanjafont\XKcjklatinbreak} +\XeTeXinterchartoks \XKlatinquestion \XKcjksymbol = {\XKquestionboxstop\XKmaybehanjafont\XKcjklatinbreak} +\XeTeXinterchartoks \XKlatinexclamation \XKcjksymbol = {\XKexclamationboxstop\XKmaybehanjafont\XKcjklatinbreak} +\XeTeXinterchartoks \XKlatincomma \XKcjksymbol = {\XKcommaboxstop\XKmaybehanjafont\XKcjklatinbreak} +\XeTeXinterchartoks \XKlatincolon \XKcjksymbol = {\XKmaybehanjafont\XKcjklatinbreak} +\XeTeXinterchartoks \XKlatinhyphen \XKcjksymbol = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKboundary \XKcjksymbol = {\XKmaybehanjafont\XKafterboundaryskip\XKbeginboundary} + +%%% ? cjk openings +\XeTeXinterchartoks \XKlatinchar \XKcjkopening = {\XKmaybehanjafont\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKlatinnumber \XKcjkopening = {\XKmaybehanjafont\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKlatinopening \XKcjkopening = {\XKmaybehanjafont\precjkopenparen} +\XeTeXinterchartoks \XKlatinclosing \XKcjkopening = {\XKmaybehanjafont\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKopeningquote \XKcjkopening = {\XKopeningquotestop\XKmaybehanjafont\precjkopenparen} +\XeTeXinterchartoks \XKclosingquote \XKcjkopening = {\XKclosingquotestop\XKmaybehanjafont\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKhanja \XKcjkopening = {\XKhalfsmallbreak\XKmaybehanjafont\precjkopenparen} +\XeTeXinterchartoks \XKsmallkana \XKcjkopening = {\XKhalfsmallbreak\XKmaybehanjafont\precjkopenparen} +\XeTeXinterchartoks \XKcjksymbol \XKcjkopening = {\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKcjkopening \XKcjkopening = {\postcjkopenparen\precjkopenparen} +\XeTeXinterchartoks \XKcjkclosing \XKcjkopening = {\postcjkcloseparen\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKcjkcolon \XKcjkopening = {\postcjkcolon\XKquatersmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKcjkfullstop \XKcjkopening = {\postcjkfullstop\XKfixedhalfskip\precjkopenparen} +\XeTeXinterchartoks \XKcjkliaison \XKcjkopening = {\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKcjkextrastop \XKcjkopening = {\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKhangulsyllable \XKcjkopening = {\XKmaybehanjafont\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKhangulchosong \XKcjkopening = {\XKmaybehanjafont\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKhanguljungjong \XKcjkopening = {\XKmaybehanjafont\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKlatinfullstop \XKcjkopening = {\XKperiodboxstop\XKmaybehanjafont\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKlatinquestion \XKcjkopening = {\XKquestionboxstop\XKmaybehanjafont\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKlatinexclamation \XKcjkopening = {\XKexclamationboxstop\XKmaybehanjafont\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKlatincomma \XKcjkopening = {\XKcommaboxstop\XKmaybehanjafont\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKlatincolon \XKcjkopening = {\XKmaybehanjafont\XKhalfsmallbreak\precjkopenparen} +\XeTeXinterchartoks \XKlatinhyphen \XKcjkopening = {\XKmaybehanjafont\XKzeroskip\precjkopenparen} +\XeTeXinterchartoks \XKboundary \XKcjkopening = {\XKmaybehanjafont\XKafterboundaryskip\XKbeginboundary\precjkopenparen} + +%%% ? cjk closings +\XeTeXinterchartoks \XKlatinchar \XKcjkclosing = {\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKlatinnumber \XKcjkclosing = {\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKlatinopening \XKcjkclosing = {\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKlatinclosing \XKcjkclosing = {\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKopeningquote \XKcjkclosing = {\XKopeningquotestop\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKclosingquote \XKcjkclosing = {\XKclosingquotestop\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKhanja \XKcjkclosing = {\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKsmallkana \XKcjkclosing = {\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKcjksymbol \XKcjkclosing = {\precjkcloseparen} +\XeTeXinterchartoks \XKcjkopening \XKcjkclosing = {\postcjkopenparen\precjkcloseparen} +\XeTeXinterchartoks \XKcjkclosing \XKcjkclosing = {\postcjkcloseparen\precjkcloseparen} +\XeTeXinterchartoks \XKcjkcolon \XKcjkclosing = {\postcjkcolon\nobreak\XKquatersmallbreak\precjkcloseparen} +\XeTeXinterchartoks \XKcjkfullstop \XKcjkclosing = {\postcjkfullstop\precjkcloseparen} +\XeTeXinterchartoks \XKcjkliaison \XKcjkclosing = {\precjkcloseparen} +\XeTeXinterchartoks \XKcjkextrastop \XKcjkclosing = {\precjkcloseparen} +\XeTeXinterchartoks \XKhangulsyllable \XKcjkclosing = {\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKhangulchosong \XKcjkclosing = {\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKhanguljungjong \XKcjkclosing = {\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKlatinfullstop \XKcjkclosing = {\XKperiodboxstop\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKlatinquestion \XKcjkclosing = {\XKquestionboxstop\XKmaybehanjafont\nobreak\XKcjklatinbreak\precjkcloseparen} +\XeTeXinterchartoks \XKlatinexclamation \XKcjkclosing = {\XKexclamationboxstop\XKmaybehanjafont\nobreak\XKcjklatinbreak\precjkcloseparen} +\XeTeXinterchartoks \XKlatincomma \XKcjkclosing = {\XKcommaboxstop\XKmaybehanjafont\nobreak\XKcjklatinbreak\precjkcloseparen} +\XeTeXinterchartoks \XKlatincolon \XKcjkclosing = {\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKlatinhyphen \XKcjkclosing = {\XKmaybehanjafont\precjkcloseparen} +\XeTeXinterchartoks \XKboundary \XKcjkclosing = {\XKmaybehanjafont\XKbeginboundary\precjkcloseparen} + +%%% ? latin openings +\XeTeXinterchartoks \XKlatinchar \XKlatinopening = {\XKwaslatinchar\XKlatinparenfont} +\XeTeXinterchartoks \XKlatinnumber \XKlatinopening = {\XKwaslatinchar\XKlatinparenfont} +%\XeTeXinterchartoks \XKlatinopening \XKlatinopening = {} +%\XeTeXinterchartoks \XKlatinclosing \XKlatinopening = {} +\XeTeXinterchartoks \XKopeningquote \XKlatinopening = {\XKopeningquotestop\XKlatinparenfont} +\XeTeXinterchartoks \XKclosingquote \XKlatinopening = {\XKclosingquotestop\XKzeroskip\XKlatinparenfont} +\XeTeXinterchartoks \XKhanja \XKlatinopening = {\XKcjklatinbreak\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKsmallkana \XKlatinopening = {\XKcjklatinbreak\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjksymbol \XKlatinopening = {\XKcjklatinbreak\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjkopening \XKlatinopening = {\postcjkopenparen\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjkclosing \XKlatinopening = {\postcjkcloseparen\XKhalfsmallbreak\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjkcolon \XKlatinopening = {\postcjkcolon\XKquatersmallbreak\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjkfullstop \XKlatinopening = {\postcjkfullstop\XKfixedhalfskip\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjkliaison \XKlatinopening = {\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjkextrastop \XKlatinopening = {\XKhalfsmallbreak\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKhangulsyllable \XKlatinopening = {\XKcjklatinbreak\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKhangulchosong \XKlatinopening = {\XKcjklatinbreak\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKhanguljungjong \XKlatinopening = {\XKcjklatinbreak\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKlatinfullstop \XKlatinopening = {\XKperiodboxstop\XKlatinparenfont} +\XeTeXinterchartoks \XKlatinquestion \XKlatinopening = {\XKquestionboxstop\XKlatinparenfont} +\XeTeXinterchartoks \XKlatinexclamation \XKlatinopening = {\XKexclamationboxstop\XKlatinparenfont} +\XeTeXinterchartoks \XKlatincomma \XKlatinopening = {\XKcommaboxstop\XKlatinparenfont} +\XeTeXinterchartoks \XKlatincolon \XKlatinopening = {\XKlatinparenfont} +\XeTeXinterchartoks \XKlatinhyphen \XKlatinopening = {\XKlatinparenfont} +\XeTeXinterchartoks \XKboundary \XKlatinopening = {\XKundoignorespaces\XKlatinparenfont\XKbeginboundary} + +%%% ? latin opening quote ` +\XeTeXinterchartoks \XKlatinchar \XKopeningquote = {\XKwaslatinchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKlatinnumber \XKopeningquote = {\XKwaslatinchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKlatinopening \XKopeningquote = {\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKlatinclosing \XKopeningquote = {\XKlatinquotefont\XKopeningquotestart} +%\XeTeXinterchartoks \XKopeningquote \XKopeningquote = {} +\XeTeXinterchartoks \XKclosingquote \XKopeningquote = {\XKclosingquotestop\XKopeningquotestart} +\XeTeXinterchartoks \XKhanja \XKopeningquote = {\XKcjklatinbreak\XKwascjkchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKsmallkana \XKopeningquote = {\XKcjklatinbreak\XKwascjkchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKcjksymbol \XKopeningquote = {\XKcjklatinbreak\XKwascjkchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKcjkopening \XKopeningquote = {\postcjkopenparen\XKwascjkchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKcjkclosing \XKopeningquote = {\postcjkcloseparen\XKhalfsmallbreak\XKwascjkchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKcjkcolon \XKopeningquote = {\postcjkcolon\XKquatersmallbreak\XKwascjkchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKcjkfullstop \XKopeningquote = {\postcjkfullstop\XKfixedhalfskip\XKwascjkchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKcjkliaison \XKopeningquote = {\XKwascjkchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKcjkextrastop \XKopeningquote = {\XKhalfsmallbreak\XKwascjkchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKhangulsyllable \XKopeningquote = {\XKcjklatinbreak\XKwascjkchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKhangulchosong \XKopeningquote = {\XKcjklatinbreak\XKwascjkchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKhanguljungjong \XKopeningquote = {\XKcjklatinbreak\XKwascjkchar\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKlatinfullstop \XKopeningquote = {\XKperiodboxstop\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKlatinquestion \XKopeningquote = {\XKquestionboxstop\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKlatinexclamation \XKopeningquote = {\XKexclamationboxstop\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKlatincomma \XKopeningquote = {\XKcommaboxstop\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKlatincolon \XKopeningquote = {\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKlatinhyphen \XKopeningquote = {\XKlatinquotefont\XKopeningquotestart} +\XeTeXinterchartoks \XKboundary \XKopeningquote = {\XKundoignorespaces\XKlatinquotefont\XKbeginboundary\XKopeningquotestart} + +%%% ? latin closings +\XeTeXinterchartoks \XKlatinchar \XKlatinclosing = {\XKwaslatinchar\XKlatinparenfont} +\XeTeXinterchartoks \XKlatinnumber \XKlatinclosing = {\XKwaslatinchar\XKlatinparenfont} +%\XeTeXinterchartoks \XKlatinopening \XKlatinclosing = {} +%\XeTeXinterchartoks \XKlatinclosing \XKlatinclosing = {} +\XeTeXinterchartoks \XKopeningquote \XKlatinclosing = {\XKopeningquotestop\XKlatinparenfont} +\XeTeXinterchartoks \XKclosingquote \XKlatinclosing = {\XKclosingquotestop\XKlatinparenfont} +\XeTeXinterchartoks \XKhanja \XKlatinclosing = {\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKsmallkana \XKlatinclosing = {\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjksymbol \XKlatinclosing = {\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjkopening \XKlatinclosing = {\postcjkopenparen\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjkclosing \XKlatinclosing = {\postcjkcloseparen\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjkcolon \XKlatinclosing = {\postcjkcolon\nobreak\XKquatersmallbreak\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjkfullstop \XKlatinclosing = {\postcjkfullstop\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjkliaison \XKlatinclosing = {\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKcjkextrastop \XKlatinclosing = {\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKhangulsyllable \XKlatinclosing = {\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKhangulchosong \XKlatinclosing = {\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKhanguljungjong \XKlatinclosing = {\XKwascjkchar\XKlatinparenfont} +\XeTeXinterchartoks \XKlatinfullstop \XKlatinclosing = {\XKperiodboxstop\XKlatinparenfont} +\XeTeXinterchartoks \XKlatinquestion \XKlatinclosing = {\XKquestionboxstop\XKlatinparenfont} +\XeTeXinterchartoks \XKlatinexclamation \XKlatinclosing = {\XKexclamationboxstop\XKlatinparenfont} +\XeTeXinterchartoks \XKlatincomma \XKlatinclosing = {\XKcommaboxstop\XKlatinparenfont} +\XeTeXinterchartoks \XKlatincolon \XKlatinclosing = {\XKlatinparenfont} +\XeTeXinterchartoks \XKlatinhyphen \XKlatinclosing = {\XKlatinparenfont} +\XeTeXinterchartoks \XKboundary \XKlatinclosing = {\XKundoignorespaces\XKlatinparenfont\XKbeginboundary} + +%%% ? latin closing quote ' +\XeTeXinterchartoks \XKlatinchar \XKclosingquote = {\XKwaslatinchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKlatinnumber \XKclosingquote = {\XKwaslatinchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKlatinopening \XKclosingquote = {\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKlatinclosing \XKclosingquote = {\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKopeningquote \XKclosingquote = {\XKopeningquotestop\XKclosingquotestart} +%\XeTeXinterchartoks \XKclosingquote \XKclosingquote = {} +\XeTeXinterchartoks \XKhanja \XKclosingquote = {\XKwascjkchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKsmallkana \XKclosingquote = {\XKwascjkchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKcjksymbol \XKclosingquote = {\XKwascjkchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKcjkopening \XKclosingquote = {\postcjkopenparen\XKwascjkchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKcjkclosing \XKclosingquote = {\postcjkcloseparen\XKwascjkchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKcjkcolon \XKclosingquote = {\postcjkcolon\nobreak\XKquatersmallbreak\XKwascjkchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKcjkfullstop \XKclosingquote = {\postcjkfullstop\XKwascjkchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKcjkliaison \XKclosingquote = {\XKwascjkchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKcjkextrastop \XKclosingquote = {\XKwascjkchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKhangulsyllable \XKclosingquote = {\XKwascjkchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKhangulchosong \XKclosingquote = {\XKwascjkchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKhanguljungjong \XKclosingquote = {\XKwascjkchar\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKlatinfullstop \XKclosingquote = {\XKperiodboxstop\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKlatinquestion \XKclosingquote = {\XKquestionboxstop\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKlatinexclamation \XKclosingquote = {\XKexclamationboxstop\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKlatincomma \XKclosingquote = {\XKcommaboxstop\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKlatincolon \XKclosingquote = {\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKlatinhyphen \XKclosingquote = {\XKlatinquotefont\XKclosingquotestart} +\XeTeXinterchartoks \XKboundary \XKclosingquote = {\XKundoignorespaces\XKlatinquotefont\XKbeginboundary\XKclosingquotestart} + +%%% ? latin colon +\XeTeXinterchartoks \XKlatinchar \XKlatincolon = {\XKwaslatinchar\XKcolonfont} +\XeTeXinterchartoks \XKlatinnumber \XKlatincolon = {\XKwaslatinchar\XKcolonfont} +\XeTeXinterchartoks \XKlatinopening \XKlatincolon = {\XKcolonfont} +\XeTeXinterchartoks \XKlatinclosing \XKlatincolon = {\XKcolonfont} +\XeTeXinterchartoks \XKopeningquote \XKlatincolon = {\XKopeningquotestop\XKcolonfont} +\XeTeXinterchartoks \XKclosingquote \XKlatincolon = {\XKclosingquotestop\XKcolonfont} +\XeTeXinterchartoks \XKhanja \XKlatincolon = {\nobreak\XKcjklatinbreak\XKwascjkchar\XKcolonfont} +\XeTeXinterchartoks \XKsmallkana \XKlatincolon = {\nobreak\XKcjklatinbreak\XKwascjkchar\XKcolonfont} +\XeTeXinterchartoks \XKcjksymbol \XKlatincolon = {\nobreak\XKcjklatinbreak\XKwascjkchar\XKcolonfont} +\XeTeXinterchartoks \XKcjkopening \XKlatincolon = {\postcjkopenparen\XKwascjkchar\XKcolonfont} +\XeTeXinterchartoks \XKcjkclosing \XKlatincolon = {\postcjkcloseparen\nobreak\XKhalfsmallbreak\XKwascjkchar\XKcolonfont} +\XeTeXinterchartoks \XKcjkcolon \XKlatincolon = {\postcjkcolon\nobreak\XKquatersmallbreak\XKwascjkchar\XKcolonfont} +\XeTeXinterchartoks \XKcjkfullstop \XKlatincolon = {\postcjkfullstop\nobreak\XKfixedhalfskip\XKwascjkchar\XKcolonfont} +\XeTeXinterchartoks \XKcjkliaison \XKlatincolon = {\XKwascjkchar\XKcolonfont} +\XeTeXinterchartoks \XKcjkextrastop \XKlatincolon = {\nobreak\XKhalfsmallbreak\XKwascjkchar\XKcolonfont} +\XeTeXinterchartoks \XKhangulsyllable \XKlatincolon = {\nobreak\XKcjklatinbreak\XKwascjkchar\XKcolonfont} +\XeTeXinterchartoks \XKhangulchosong \XKlatincolon = {\nobreak\XKcjklatinbreak\XKwascjkchar\XKcolonfont} +\XeTeXinterchartoks \XKhanguljungjong \XKlatincolon = {\nobreak\XKcjklatinbreak\XKwascjkchar\XKcolonfont} +\XeTeXinterchartoks \XKlatinfullstop \XKlatincolon = {\XKperiodboxstop\XKcolonfont} +\XeTeXinterchartoks \XKlatinquestion \XKlatincolon = {\XKquestionboxstop\XKcolonfont} +\XeTeXinterchartoks \XKlatinexclamation \XKlatincolon = {\XKexclamationboxstop\XKcolonfont} +\XeTeXinterchartoks \XKlatincomma \XKlatincolon = {\XKcommaboxstop\XKcolonfont} +%\XeTeXinterchartoks \XKlatincolon \XKlatincolon = {} +\XeTeXinterchartoks \XKlatinhyphen \XKlatincolon = {\XKcolonfont} +\XeTeXinterchartoks \XKboundary \XKlatincolon = {\XKundoignorespaces\XKcolonfont\XKbeginboundary} + +%%% ? hangul syllables +\XeTeXinterchartoks \XKlatinchar \XKhangulsyllable = {\XKhangulfont\XKcjklatinsmallbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatinnumber \XKhangulsyllable = {\XKhangulfont\XKcjklatinsmallbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatinopening \XKhangulsyllable = {\XKhangulfont\XKcjklastchar} +\XeTeXinterchartoks \XKlatinclosing \XKhangulsyllable = {\XKhangulfont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKopeningquote \XKhangulsyllable = {\XKopeningquotestop\XKhangulfont\XKcjklastchar} +\XeTeXinterchartoks \XKclosingquote \XKhangulsyllable = {\XKclosingquotestop\XKhangulfont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKhanja \XKhangulsyllable = {\XKhangulfont\XKinterhanjabreak\XKcjklastchar} +\XeTeXinterchartoks \XKsmallkana \XKhangulsyllable = {\XKhangulfont\XKinterhanjabreak\XKcjklastchar} +\XeTeXinterchartoks \XKcjksymbol \XKhangulsyllable = {\XKhangulfont\XKcjklastchar} +\XeTeXinterchartoks \XKcjkopening \XKhangulsyllable = {\postcjkopenparen\XKhangulfont\XKcjklastchar} +\XeTeXinterchartoks \XKcjkclosing \XKhangulsyllable = {\postcjkcloseparen\XKhangulfont\XKhalfsmallbreak\XKcjklastchar} +\XeTeXinterchartoks \XKcjkcolon \XKhangulsyllable = {\postcjkcolon\XKhangulfont\XKquatersmallbreak\XKcjklastchar} +\XeTeXinterchartoks \XKcjkfullstop \XKhangulsyllable = {\postcjkfullstop\XKhangulfont\XKfixedhalfskip\XKcjklastchar} +\XeTeXinterchartoks \XKcjkliaison \XKhangulsyllable = {\XKhangulfont\XKcjklastchar} +\XeTeXinterchartoks \XKcjkextrastop \XKhangulsyllable = {\XKhangulfont\XKhalfsmallbreak\XKcjklastchar} +\XeTeXinterchartoks \XKhangulsyllable \XKhangulsyllable = {\XKinterhangulbreak\XKcjklastchar} +\XeTeXinterchartoks \XKhangulchosong \XKhangulsyllable = {\XKcjklastchar} +\XeTeXinterchartoks \XKhanguljungjong \XKhangulsyllable = {\XKinterhangulbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatinfullstop \XKhangulsyllable = {\XKperiodboxstop\XKhangulfont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatinquestion \XKhangulsyllable = {\XKquestionboxstop\XKhangulfont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatinexclamation \XKhangulsyllable = {\XKexclamationboxstop\XKhangulfont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatincomma \XKhangulsyllable = {\XKcommaboxstop\XKhangulfont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatincolon \XKhangulsyllable = {\XKhangulfont\XKcjklatinbreak\XKcjklastchar} +\XeTeXinterchartoks \XKlatinhyphen \XKhangulsyllable = {\XKhangulfont\XKzeroskip\XKcjklastchar} +\XeTeXinterchartoks \XKboundary \XKhangulsyllable = {\XKhangulfont\XKafterboundaryskip\XKbeginboundary\XKcjklastchar} + +%%% ? choseong jamo +\XeTeXinterchartoks \XKlatinchar \XKhangulchosong = {\XKhangulfont\XKcjklatinsmallbreak\XKlastchar} +\XeTeXinterchartoks \XKlatinnumber \XKhangulchosong = {\XKhangulfont\XKcjklatinsmallbreak\XKlastchar} +\XeTeXinterchartoks \XKlatinopening \XKhangulchosong = {\XKhangulfont\XKlastchar} +\XeTeXinterchartoks \XKlatinclosing \XKhangulchosong = {\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKopeningquote \XKhangulchosong = {\XKopeningquotestop\XKhangulfont\XKlastchar} +\XeTeXinterchartoks \XKclosingquote \XKhangulchosong = {\XKclosingquotestop\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKhanja \XKhangulchosong = {\XKhangulfont\XKinterhanjabreak\XKlastchar} +\XeTeXinterchartoks \XKsmallkana \XKhangulchosong = {\XKhangulfont\XKinterhanjabreak\XKlastchar} +\XeTeXinterchartoks \XKcjksymbol \XKhangulchosong = {\XKhangulfont\XKlastchar} +\XeTeXinterchartoks \XKcjkopening \XKhangulchosong = {\postcjkopenparen\XKhangulfont\XKlastchar} +\XeTeXinterchartoks \XKcjkclosing \XKhangulchosong = {\postcjkcloseparen\XKhangulfont\XKhalfsmallbreak\XKlastchar} +\XeTeXinterchartoks \XKcjkcolon \XKhangulchosong = {\postcjkcolon\XKhangulfont\XKquatersmallbreak\XKlastchar} +\XeTeXinterchartoks \XKcjkfullstop \XKhangulchosong = {\postcjkfullstop\XKhangulfont\XKfixedhalfskip\XKlastchar} +\XeTeXinterchartoks \XKcjkliaison \XKhangulchosong = {\XKhangulfont\XKlastchar} +\XeTeXinterchartoks \XKcjkextrastop \XKhangulchosong = {\XKhangulfont\XKhalfsmallbreak\XKlastchar} +\XeTeXinterchartoks \XKhangulsyllable \XKhangulchosong = {\XKinterhangulbreak\XKlastchar} +%\XeTeXinterchartoks \XKhangulchosong \XKhangulchosong = {} +\XeTeXinterchartoks \XKhanguljungjong \XKhangulchosong = {\XKinterhangulbreak\XKlastchar} +\XeTeXinterchartoks \XKlatinfullstop \XKhangulchosong = {\XKperiodboxstop\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKlatinquestion \XKhangulchosong = {\XKquestionboxstop\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKlatinexclamation \XKhangulchosong = {\XKexclamationboxstop\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKlatincomma \XKhangulchosong = {\XKcommaboxstop\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKlatincolon \XKhangulchosong = {\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKlatinhyphen \XKhangulchosong = {\XKhangulfont\XKzeroskip\XKlastchar} +\XeTeXinterchartoks \XKboundary \XKhangulchosong = {\XKhangulfont\XKafterboundaryskip\XKbeginboundary\XKlastchar} + +%%% ? jungseong/jongseong jamo +\XeTeXinterchartoks \XKlatinchar \XKhanguljungjong = {\XKhangulfont\XKcjklatinsmallbreak\XKlastchar} +\XeTeXinterchartoks \XKlatinnumber \XKhanguljungjong = {\XKhangulfont\XKcjklatinsmallbreak\XKlastchar} +\XeTeXinterchartoks \XKlatinopening \XKhanguljungjong = {\XKhangulfont\XKlastchar} +\XeTeXinterchartoks \XKlatinclosing \XKhanguljungjong = {\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKopeningquote \XKhanguljungjong = {\XKopeningquotestop\XKhangulfont\XKlastchar} +\XeTeXinterchartoks \XKclosingquote \XKhanguljungjong = {\XKclosingquotestop\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKhanja \XKhanguljungjong = {\XKhangulfont\XKinterhanjabreak\XKlastchar} +\XeTeXinterchartoks \XKsmallkana \XKhanguljungjong = {\XKhangulfont\XKinterhanjabreak\XKlastchar} +\XeTeXinterchartoks \XKcjksymbol \XKhanguljungjong = {\XKhangulfont\XKlastchar\XKlastchar} +\XeTeXinterchartoks \XKcjkopening \XKhanguljungjong = {\postcjkopenparen\XKhangulfont\XKlastchar} +\XeTeXinterchartoks \XKcjkclosing \XKhanguljungjong = {\postcjkcloseparen\XKhangulfont\XKhalfsmallbreak\XKlastchar} +\XeTeXinterchartoks \XKcjkcolon \XKhanguljungjong = {\postcjkcolon\XKhangulfont\XKquatersmallbreak\XKlastchar} +\XeTeXinterchartoks \XKcjkfullstop \XKhanguljungjong = {\postcjkfullstop\XKhangulfont\XKfixedhalfskip\XKlastchar} +\XeTeXinterchartoks \XKcjkliaison \XKhanguljungjong = {\XKhangulfont\XKlastchar} +\XeTeXinterchartoks \XKcjkextrastop \XKhanguljungjong = {\XKhangulfont\XKhalfsmallbreak\XKlastchar} +\XeTeXinterchartoks \XKhangulsyllable \XKhanguljungjong = {\XKlastchar} +\XeTeXinterchartoks \XKhangulchosong \XKhanguljungjong = {\XKlastchar} +\XeTeXinterchartoks \XKhanguljungjong \XKhanguljungjong = {\XKlastchar} +\XeTeXinterchartoks \XKlatinfullstop \XKhanguljungjong = {\XKperiodboxstop\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKlatinquestion \XKhanguljungjong = {\XKquestionboxstop\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKlatinexclamation \XKhanguljungjong = {\XKexclamationboxstop\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKlatincomma \XKhanguljungjong = {\XKcommaboxstop\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKlatincolon \XKhanguljungjong = {\XKhangulfont\XKcjklatinbreak\XKlastchar} +\XeTeXinterchartoks \XKlatinhyphen \XKhanguljungjong = {\XKhangulfont\XKlastchar} +\XeTeXinterchartoks \XKboundary \XKhanguljungjong = {\XKhangulfont\XKafterboundaryskip\XKbeginboundary\XKlastchar} + +%%% ? latin period [.] +\XeTeXinterchartoks \XKlatinchar \XKlatinfullstop = {\XKwaslatinchar\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKlatinnumber \XKlatinfullstop = {\XKwaslatinchar\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKlatinopening \XKlatinfullstop = {\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKlatinclosing \XKlatinfullstop = {\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKopeningquote \XKlatinfullstop = {\XKopeningquotestop\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKclosingquote \XKlatinfullstop = {\XKclosingquotestop\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKhanja \XKlatinfullstop = {\XKwascjkchar\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKsmallkana \XKlatinfullstop = {\XKwascjkchar\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKcjksymbol \XKlatinfullstop = {\XKwascjkchar\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKcjkopening \XKlatinfullstop = {\postcjkopenparen \XKwascjkchar\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKcjkclosing \XKlatinfullstop = {\postcjkcloseparen\XKwascjkchar\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKcjkcolon \XKlatinfullstop = {\postcjkcolon\nobreak\XKquatersmallbreak\XKwascjkchar\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKcjkfullstop \XKlatinfullstop = {\postcjkfullstop\XKwascjkchar\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKcjkliaison \XKlatinfullstop = {\XKwascjkchar\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKcjkextrastop \XKlatinfullstop = {\XKwascjkchar\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKhangulsyllable \XKlatinfullstop = {\XKwascjkchar\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKhangulchosong \XKlatinfullstop = {\XKwascjkchar\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKhanguljungjong \XKlatinfullstop = {\XKwascjkchar\XKpunctsfont\XKperiodboxstart} +%\XeTeXinterchartoks \XKlatinfullstop \XKlatinfullstop = {} +%\XeTeXinterchartoks \XKlatinquestion \XKlatinfullstop = {} +%\XeTeXinterchartoks \XKlatinexclamation \XKlatinfullstop = {} +%\XeTeXinterchartoks \XKlatincomma \XKlatinfullstop = {} +\XeTeXinterchartoks \XKlatincolon \XKlatinfullstop = {\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKlatinhyphen \XKlatinfullstop = {\XKpunctsfont\XKperiodboxstart} +\XeTeXinterchartoks \XKboundary \XKlatinfullstop = {\XKundoignorespaces\XKpunctsfont\XKbeginboundary\XKperiodboxstart} + +%%% ? latin question +\XeTeXinterchartoks \XKlatinchar \XKlatinquestion = {\XKwaslatinchar\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKlatinnumber \XKlatinquestion = {\XKwaslatinchar\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKlatinopening \XKlatinquestion = {\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKlatinclosing \XKlatinquestion = {\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKopeningquote \XKlatinquestion = {\XKopeningquotestop\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKclosingquote \XKlatinquestion = {\XKclosingquotestop\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKhanja \XKlatinquestion = {\XKwascjkchar\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKsmallkana \XKlatinquestion = {\XKwascjkchar\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKcjksymbol \XKlatinquestion = {\XKwascjkchar\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKcjkopening \XKlatinquestion = {\postcjkopenparen\XKwascjkchar\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKcjkclosing \XKlatinquestion = {\postcjkcloseparen\XKwascjkchar\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKcjkcolon \XKlatinquestion = {\postcjkcolon\nobreak\XKquatersmallbreak\XKwascjkchar\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKcjkfullstop \XKlatinquestion = {\postcjkfullstop\XKwascjkchar\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKcjkliaison \XKlatinquestion = {\XKwascjkchar\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKcjkextrastop \XKlatinquestion = {\XKwascjkchar\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKhangulsyllable \XKlatinquestion = {\XKwascjkchar\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKhangulchosong \XKlatinquestion = {\XKwascjkchar\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKhanguljungjong \XKlatinquestion = {\XKwascjkchar\XKpunctsfont\XKquestionboxstart} +%\XeTeXinterchartoks \XKlatinfullstop \XKlatinquestion = {} +%\XeTeXinterchartoks \XKlatinquestion \XKlatinquestion = {} +%\XeTeXinterchartoks \XKlatinexclamation \XKlatinquestion = {} +%\XeTeXinterchartoks \XKlatincomma \XKlatinquestion = {} +\XeTeXinterchartoks \XKlatincolon \XKlatinquestion = {\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKlatinhyphen \XKlatinquestion = {\XKpunctsfont\XKquestionboxstart} +\XeTeXinterchartoks \XKboundary \XKlatinquestion = {\XKundoignorespaces\XKpunctsfont\XKbeginboundary\XKquestionboxstart} + +%%% ? latin exclamation +\XeTeXinterchartoks \XKlatinchar \XKlatinexclamation = {\XKwaslatinchar\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKlatinnumber \XKlatinexclamation = {\XKwaslatinchar\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKlatinopening \XKlatinexclamation = {\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKlatinclosing \XKlatinexclamation = {\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKopeningquote \XKlatinexclamation = {\XKopeningquotestop\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKclosingquote \XKlatinexclamation = {\XKclosingquotestop\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKhanja \XKlatinexclamation = {\XKwascjkchar\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKsmallkana \XKlatinexclamation = {\XKwascjkchar\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKcjksymbol \XKlatinexclamation = {\XKwascjkchar\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKcjkopening \XKlatinexclamation = {\postcjkopenparen\XKwascjkchar\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKcjkclosing \XKlatinexclamation = {\postcjkcloseparen\XKwascjkchar\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKcjkcolon \XKlatinexclamation = {\postcjkcolon\nobreak\XKquatersmallbreak\XKwascjkchar\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKcjkfullstop \XKlatinexclamation = {\postcjkfullstop\XKwascjkchar\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKcjkliaison \XKlatinexclamation = {\XKwascjkchar\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKcjkextrastop \XKlatinexclamation = {\XKwascjkchar\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKhangulsyllable \XKlatinexclamation = {\XKwascjkchar\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKhangulchosong \XKlatinexclamation = {\XKwascjkchar\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKhanguljungjong \XKlatinexclamation = {\XKwascjkchar\XKpunctsfont\XKexclamationboxstart} +%\XeTeXinterchartoks \XKlatinfullstop \XKlatinexclamation = {} +%\XeTeXinterchartoks \XKlatinquestion \XKlatinexclamation = {} +%\XeTeXinterchartoks \XKlatinexclamation \XKlatinexclamation = {} +%\XeTeXinterchartoks \XKlatincomma \XKlatinexclamation = {} +\XeTeXinterchartoks \XKlatincolon \XKlatinexclamation = {\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKlatinhyphen \XKlatinexclamation = {\XKpunctsfont\XKexclamationboxstart} +\XeTeXinterchartoks \XKboundary \XKlatinexclamation = {\XKundoignorespaces\XKpunctsfont\XKbeginboundary\XKexclamationboxstart} + +% ? latin comma +\XeTeXinterchartoks \XKlatinchar \XKlatincomma = {\XKwaslatinchar\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKlatinnumber \XKlatincomma = {\XKwaslatinchar\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKlatinopening \XKlatincomma = {\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKlatinclosing \XKlatincomma = {\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKopeningquote \XKlatincomma = {\XKopeningquotestop\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKclosingquote \XKlatincomma = {\XKclosingquotestop\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKhanja \XKlatincomma = {\XKwascjkchar\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKsmallkana \XKlatincomma = {\XKwascjkchar\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKcjksymbol \XKlatincomma = {\XKwascjkchar\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKcjkopening \XKlatincomma = {\postcjkopenparen\XKwascjkchar\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKcjkclosing \XKlatincomma = {\postcjkcloseparen\XKwascjkchar\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKcjkcolon \XKlatincomma = {\postcjkcolon\nobreak\XKquatersmallbreak\XKwascjkchar\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKcjkfullstop \XKlatincomma = {\postcjkfullstop\XKwascjkchar\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKcjkliaison \XKlatincomma = {\XKwascjkchar\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKcjkextrastop \XKlatincomma = {\XKwascjkchar\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKhangulsyllable \XKlatincomma = {\XKwascjkchar\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKhangulchosong \XKlatincomma = {\XKwascjkchar\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKhanguljungjong \XKlatincomma = {\XKwascjkchar\XKpunctsfont\XKcommaboxstart} +%\XeTeXinterchartoks \XKlatinfullstop \XKlatincomma = {} +%\XeTeXinterchartoks \XKlatinquestion \XKlatincomma = {} +%\XeTeXinterchartoks \XKlatinexclamation \XKlatincomma = {} +%\XeTeXinterchartoks \XKlatincomma \XKlatincomma = {} +\XeTeXinterchartoks \XKlatincolon \XKlatincomma = {\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKlatinhyphen \XKlatincomma = {\XKpunctsfont\XKcommaboxstart} +\XeTeXinterchartoks \XKboundary \XKlatincomma = {\XKundoignorespaces\XKpunctsfont\XKbeginboundary\XKcommaboxstart} + +%%% ? latin hyphens [-/] +\XeTeXinterchartoks \XKlatinchar \XKlatinhyphen = {\XKwaslatinchar\XKhyphenfont} +\XeTeXinterchartoks \XKlatinnumber \XKlatinhyphen = {\XKwaslatinchar\XKhyphenfont} +\XeTeXinterchartoks \XKlatinopening \XKlatinhyphen = {\XKhyphenfont} +\XeTeXinterchartoks \XKlatinclosing \XKlatinhyphen = {\XKhyphenfont} +\XeTeXinterchartoks \XKopeningquote \XKlatinhyphen = {\XKopeningquotestop\XKhyphenfont} +\XeTeXinterchartoks \XKclosingquote \XKlatinhyphen = {\XKclosingquotestop\XKhyphenfont} +\XeTeXinterchartoks \XKhanja \XKlatinhyphen = {\XKwascjkchar\XKhyphenfont} +\XeTeXinterchartoks \XKsmallkana \XKlatinhyphen = {\XKwascjkchar\XKhyphenfont} +\XeTeXinterchartoks \XKcjksymbol \XKlatinhyphen = {\XKwascjkchar\XKhyphenfont} +\XeTeXinterchartoks \XKcjkopening \XKlatinhyphen = {\postcjkopenparen\XKwascjkchar\XKhyphenfont} +\XeTeXinterchartoks \XKcjkclosing \XKlatinhyphen = {\postcjkcloseparen\XKwascjkchar\XKhyphenfont} +\XeTeXinterchartoks \XKcjkcolon \XKlatinhyphen = {\postcjkcolon\nobreak\XKquatersmallbreak\XKwascjkchar\XKhyphenfont} +\XeTeXinterchartoks \XKcjkfullstop \XKlatinhyphen = {\postcjkfullstop\XKwascjkchar\XKhyphenfont} +\XeTeXinterchartoks \XKcjkliaison \XKlatinhyphen = {\XKwascjkchar\XKhyphenfont} +\XeTeXinterchartoks \XKcjkextrastop \XKlatinhyphen = {\XKwascjkchar\XKhyphenfont} +\XeTeXinterchartoks \XKhangulsyllable \XKlatinhyphen = {\XKwascjkchar\XKhyphenfont} +\XeTeXinterchartoks \XKhangulchosong \XKlatinhyphen = {\XKwascjkchar\XKhyphenfont} +\XeTeXinterchartoks \XKhanguljungjong \XKlatinhyphen = {\XKwascjkchar\XKhyphenfont} +\XeTeXinterchartoks \XKlatinfullstop \XKlatinhyphen = {\XKperiodboxstop\XKhyphenfont} +\XeTeXinterchartoks \XKlatinquestion \XKlatinhyphen = {\XKquestionboxstop\XKhyphenfont} +\XeTeXinterchartoks \XKlatinexclamation \XKlatinhyphen = {\XKexclamationboxstop\XKhyphenfont} +\XeTeXinterchartoks \XKlatincomma \XKlatinhyphen = {\XKcommaboxstop\XKhyphenfont} +\XeTeXinterchartoks \XKlatincolon \XKlatinhyphen = {\XKhyphenfont} +%\XeTeXinterchartoks \XKlatinhyphen \XKlatinhyphen = {} +\XeTeXinterchartoks \XKboundary \XKlatinhyphen = {\XKundoignorespaces\XKhyphenfont\XKbeginboundary} + +%%% ? boundary +\XeTeXinterchartoks \XKlatinchar \XKboundary = {\XKendboundary\XKwaslatinchar\XKlatinfont} +\XeTeXinterchartoks \XKlatinnumber \XKboundary = {\XKendboundary\XKwaslatinchar\XKlatinfont} +\XeTeXinterchartoks \XKlatinopening \XKboundary = {\XKendboundary\XKlatinfont} +\XeTeXinterchartoks \XKlatinclosing \XKboundary = {\XKendboundary\XKlatinfont} +\XeTeXinterchartoks \XKopeningquote \XKboundary = {\XKopeningquotestop\XKendboundary\XKlatinfont} +\XeTeXinterchartoks \XKclosingquote \XKboundary = {\XKclosingquotestop\XKendboundary\XKlatinfont} +\XeTeXinterchartoks \XKhanja \XKboundary = {\XKendboundary\XKwascjkchar\XKlatinfont\XKignorespaces} +\XeTeXinterchartoks \XKsmallkana \XKboundary = {\XKendboundary\XKwascjkchar\XKlatinfont\XKignorespaces} +\XeTeXinterchartoks \XKcjksymbol \XKboundary = {\XKendboundary\XKwascjkchar\XKlatinfont\XKignorespaces} +\XeTeXinterchartoks \XKcjkopening \XKboundary = {\postcjkopenparen\XKendboundary\XKwascjkchar\XKlatinfont\XKignorespaces} +\XeTeXinterchartoks \XKcjkclosing \XKboundary = {\postcjkcloseparen\XKendboundary\ifcjtypeset\XKhalfskip\fi\XKwascjkchar\XKlatinfont\XKignorespaces} +\XeTeXinterchartoks \XKcjkcolon \XKboundary = {\postcjkcolon\XKendboundary\nobreak\XKquatersmallbreak\XKwascjkchar\XKlatinfont\XKignorespaces} +\XeTeXinterchartoks \XKcjkfullstop \XKboundary = {\postcjkfullstop\XKendboundary\ifcjtypeset\XKfixedhalfskip\fi\XKwascjkchar\XKlatinfont\XKignorespaces} +\XeTeXinterchartoks \XKcjkliaison \XKboundary = {\XKendboundary\XKwascjkchar\XKlatinfont\XKignorespaces} +\XeTeXinterchartoks \XKcjkextrastop \XKboundary = {\XKendboundary\XKwascjkchar\XKlatinfont\XKignorespaces} +\XeTeXinterchartoks \XKhangulsyllable \XKboundary = {\XKendboundary\XKwascjkchar\XKlatinfont\XKignorespaces} +\XeTeXinterchartoks \XKhangulchosong \XKboundary = {\XKendboundary\XKwascjkchar\XKlatinfont\XKignorespaces} +\XeTeXinterchartoks \XKhanguljungjong \XKboundary = {\XKendboundary\XKwascjkchar\XKlatinfont\XKignorespaces} +\XeTeXinterchartoks \XKlatinfullstop \XKboundary = {\XKperiodboxstop\XKendboundary\XKlatinfont} +\XeTeXinterchartoks \XKlatinquestion \XKboundary = {\XKquestionboxstop\XKendboundary\XKlatinfont} +\XeTeXinterchartoks \XKlatinexclamation \XKboundary = {\XKexclamationboxstop\XKendboundary\XKlatinfont} +\XeTeXinterchartoks \XKlatincomma \XKboundary = {\XKcommaboxstop\XKendboundary\XKlatinfont} +\XeTeXinterchartoks \XKlatincolon \XKboundary = {\XKendboundary\XKlatinfont} +\XeTeXinterchartoks \XKlatinhyphen \XKboundary = {\XKendboundary\XKlatinfont} +%\XeTeXinterchartoks \XKboundary \XKboundary = {} + +%%% ? cjk colons +\XeTeXinterchartoks \XKlatinchar \XKcjkcolon = {\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKlatinnumber \XKcjkcolon = {\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKlatinopening \XKcjkcolon = {\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKlatinclosing \XKcjkcolon = {\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKopeningquote \XKcjkcolon = {\XKopeningquotestop\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKclosingquote \XKcjkcolon = {\XKclosingquotestop\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKhanja \XKcjkcolon = {\nobreak\XKquatersmallbreak\XKmaybehanjafont\precjkcolon} +\XeTeXinterchartoks \XKsmallkana \XKcjkcolon = {\nobreak\XKquatersmallbreak\XKmaybehanjafont\precjkcolon} +\XeTeXinterchartoks \XKcjksymbol \XKcjkcolon = {\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKcjkopening \XKcjkcolon = {\postcjkopenparen\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKcjkclosing \XKcjkcolon = {\postcjkcloseparen\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKcjkcolon \XKcjkcolon = {\postcjkcolon\nobreak\ifcjtypeset\XKhalfminusquaterskip\else\XKsmallskip\fi\precjkcolon} +\XeTeXinterchartoks \XKcjkfullstop \XKcjkcolon = {\postcjkfullstop\nobreak\ifcjtypeset\XKthreequaterskip\else\XKsmallskip\fi\precjkcolon} +\XeTeXinterchartoks \XKcjkliaison \XKcjkcolon = {\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKcjkextrastop \XKcjkcolon = {\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKhangulsyllable \XKcjkcolon = {\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKhangulchosong \XKcjkcolon = {\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKhanguljungjong \XKcjkcolon = {\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKlatinfullstop \XKcjkcolon = {\XKperiodboxstop\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKlatinquestion \XKcjkcolon = {\XKquestionboxstop\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKlatinexclamation \XKcjkcolon = {\XKexclamationboxstop\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKlatincomma \XKcjkcolon = {\XKcommaboxstop\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKlatincolon \XKcjkcolon = {\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKlatinhyphen \XKcjkcolon = {\XKmaybehanjafont\nobreak\XKquatersmallbreak\precjkcolon} +\XeTeXinterchartoks \XKboundary \XKcjkcolon = {\XKmaybehanjafont\nobreak\XKquatersmallbreak\XKbeginboundary\precjkcolon} + +%%% ? cjk fullstop +\XeTeXinterchartoks \XKlatinchar \XKcjkfullstop = {\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKlatinnumber \XKcjkfullstop = {\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKlatinopening \XKcjkfullstop = {\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKlatinclosing \XKcjkfullstop = {\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKopeningquote \XKcjkfullstop = {\XKopeningquotestop\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKclosingquote \XKcjkfullstop = {\XKclosingquotestop\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKhanja \XKcjkfullstop = {\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKsmallkana \XKcjkfullstop = {\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKcjksymbol \XKcjkfullstop = {\precjkfullstop} +\XeTeXinterchartoks \XKcjkopening \XKcjkfullstop = {\postcjkopenparen\precjkfullstop} +\XeTeXinterchartoks \XKcjkclosing \XKcjkfullstop = {\postcjkcloseparen\precjkfullstop} +\XeTeXinterchartoks \XKcjkcolon \XKcjkfullstop = {\postcjkcolon\nobreak\XKquatersmallbreak\precjkfullstop} +\XeTeXinterchartoks \XKcjkfullstop \XKcjkfullstop = {\postcjkfullstop\precjkfullstop} +\XeTeXinterchartoks \XKcjkliaison \XKcjkfullstop = {\precjkfullstop} +\XeTeXinterchartoks \XKcjkextrastop \XKcjkfullstop = {\precjkfullstop} +\XeTeXinterchartoks \XKhangulsyllable \XKcjkfullstop = {\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKhangulchosong \XKcjkfullstop = {\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKhanguljungjong \XKcjkfullstop = {\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKlatinfullstop \XKcjkfullstop = {\XKperiodboxstop\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKlatinquestion \XKcjkfullstop = {\XKquestionboxstop\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKlatinexclamation \XKcjkfullstop = {\XKexclamationboxstop\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKlatincomma \XKcjkfullstop = {\XKcommaboxstop\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKlatincolon \XKcjkfullstop = {\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKlatinhyphen \XKcjkfullstop = {\XKmaybehanjafont\precjkfullstop} +\XeTeXinterchartoks \XKboundary \XKcjkfullstop = {\XKmaybehanjafont\XKbeginboundary\precjkfullstop} + +%%% ? cjk liaison +\XeTeXinterchartoks \XKlatinchar \XKcjkliaison = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinnumber \XKcjkliaison = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinopening \XKcjkliaison = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinclosing \XKcjkliaison = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKopeningquote \XKcjkliaison = {\XKopeningquotestop\XKmaybehanjafont} +\XeTeXinterchartoks \XKclosingquote \XKcjkliaison = {\XKclosingquotestop\XKmaybehanjafont} +\XeTeXinterchartoks \XKhanja \XKcjkliaison = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKsmallkana \XKcjkliaison = {\XKmaybehanjafont} +%\XeTeXinterchartoks \XKcjksymbol \XKcjkliaison = {} +\XeTeXinterchartoks \XKcjkopening \XKcjkliaison = {\postcjkopenparen} +\XeTeXinterchartoks \XKcjkclosing \XKcjkliaison = {\postcjkcloseparen\nobreak\XKhalfsmallbreak} +\XeTeXinterchartoks \XKcjkcolon \XKcjkliaison = {\postcjkcolon\nobreak\XKquatersmallbreak} +\XeTeXinterchartoks \XKcjkfullstop \XKcjkliaison = {\postcjkfullstop\nobreak\XKfixedhalfskip} +%\XeTeXinterchartoks \XKcjkliaison \XKcjkliaison = {} +%\XeTeXinterchartoks \XKcjkextrastop \XKcjkliaison = {} +\XeTeXinterchartoks \XKhangulsyllable \XKcjkliaison = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKhangulchosong \XKcjkliaison = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKhanguljungjong \XKcjkliaison = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinfullstop \XKcjkliaison = {\XKperiodboxstop\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinquestion \XKcjkliaison = {\XKquestionboxstop\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinexclamation \XKcjkliaison = {\XKexclamationboxstop\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatincomma \XKcjkliaison = {\XKcommaboxstop\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatincolon \XKcjkliaison = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinhyphen \XKcjkliaison = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKboundary \XKcjkliaison = {\XKmaybehanjafont\XKbeginboundary} + +%%% ? cjk quesiton/exclamation +\XeTeXinterchartoks \XKlatinchar \XKcjkextrastop = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinnumber \XKcjkextrastop = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinopening \XKcjkextrastop = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinclosing \XKcjkextrastop = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKopeningquote \XKcjkextrastop = {\XKopeningquotestop\XKmaybehanjafont} +\XeTeXinterchartoks \XKclosingquote \XKcjkextrastop = {\XKclosingquotestop\XKmaybehanjafont} +\XeTeXinterchartoks \XKhanja \XKcjkextrastop = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKsmallkana \XKcjkextrastop = {\XKmaybehanjafont} +%\XeTeXinterchartoks \XKcjksymbol \XKcjkextrastop = {} +\XeTeXinterchartoks \XKcjkopening \XKcjkextrastop = {\postcjkopenparen} +\XeTeXinterchartoks \XKcjkclosing \XKcjkextrastop = {\postcjkcloseparen\nobreak\XKhalfsmallbreak} +\XeTeXinterchartoks \XKcjkcolon \XKcjkextrastop = {\postcjkcolon\nobreak\XKquatersmallbreak} +\XeTeXinterchartoks \XKcjkfullstop \XKcjkextrastop = {\postcjkfullstop\nobreak\XKfixedhalfskip} +%\XeTeXinterchartoks \XKcjkliaison \XKcjkextrastop = {} +%\XeTeXinterchartoks \XKcjkextrastop \XKcjkextrastop = {} +\XeTeXinterchartoks \XKhangulsyllable \XKcjkextrastop = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKhangulchosong \XKcjkextrastop = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKhanguljungjong \XKcjkextrastop = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinfullstop \XKcjkextrastop = {\XKperiodboxstop\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinquestion \XKcjkextrastop = {\XKquestionboxstop\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinexclamation \XKcjkextrastop = {\XKexclamationboxstop\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatincomma \XKcjkextrastop = {\XKcommaboxstop\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatincolon \XKcjkextrastop = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKlatinhyphen \XKcjkextrastop = {\XKmaybehanjafont} +\XeTeXinterchartoks \XKboundary \XKcjkextrastop = {\XKmaybehanjafont\XKbeginboundary} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% font setting +\def\XKlatinfont{\ifcase\XKcurrentfont\else\XK@latinfont\fi} +\def\XKhangulfont + {\ifcase\XKcurrentfont\XKstoreprevfont\XK@hangulfont\or\or\XK@hangulfont\fi} +\def\XKhanjafont + {\ifcase\XKcurrentfont\XKstoreprevfont\XK@hanjafont\or\XK@hanjafont\fi} +\def\XK@latinfont {\chardef\XKcurrentfont\z@\XKrestoreprevfont} +\def\XK@hangulfont{\chardef\XKcurrentfont\@ne\hangfnt} +\def\XK@hanjafont {\chardef\XKcurrentfont\tw@\hanifnt} +\chardef\XKcurrentfont\z@ + +\ifcsname selectfont\endcsname + \def\XKstoreprevfont {\edef\XKprevfont{\f@family}} + \def\XKrestoreprevfont{\fontfamily\XKprevfont\selectfont} +\else + \def\XKstoreprevfont{\edef\XKrestoreprevfont{\the\font}} +\fi + +\protected\def\latincjksymbols {\let\XKmaybehanjafont\XKlatinfont} +\protected\def\hangulcjksymbols {\let\XKmaybehanjafont\XKhangulfont} +\protected\def\hanjacjksymbols {\let\XKmaybehanjafont\XKhanjafont} +\protected\def\prevfontcjksymbols {\let\XKmaybehanjafont\empty} + +\protected\def\latinalphs {\let\XKmaybelatinfont\XKlatinfont} +\protected\def\hangulalphs {\let\XKmaybelatinfont\XKhangulfont} +\protected\def\hanjaalphs {\let\XKmaybelatinfont\XKhanjafont} +\protected\def\prevfontalphs{\let\XKmaybelatinfont\empty} + +\protected\def\latinnums {\let\XKlatinnumfont\XKlatinfont} +\protected\def\hangulnums {\let\XKlatinnumfont\XKhangulfont} +\protected\def\hanjanums {\let\XKlatinnumfont\XKhanjafont} +\protected\def\prevfontnums {\let\XKlatinnumfont\empty} + +\protected\def\latinparens {\let\XKlatinparenfont\XKlatinfont} +\protected\def\hangulparens {\let\XKlatinparenfont\XKhangulfont} +\protected\def\hanjaparens {\let\XKlatinparenfont\XKhanjafont} +\protected\def\prevfontparens{\let\XKlatinparenfont\empty} + +\protected\def\latinquotes {\let\XKlatinquotefont\XKlatinfont} +\protected\def\hangulquotes {\let\XKlatinquotefont\XKhangulfont} +\protected\def\hanjaquotes {\let\XKlatinquotefont\XKhanjafont} +\protected\def\prevfontquotes{\let\XKlatinquotefont\empty} + +\protected\def\latinhyphens {\let\XKhyphenfont\XKlatinfont} +\protected\def\hangulhyphens {\let\XKhyphenfont\XKhangulfont} +\protected\def\hanjahyphens {\let\XKhyphenfont\XKhanjafont} +\protected\def\prevfonthyphens {\let\XKhyphenfont\empty} + +\protected\def\latincolons {\let\XKcolonfont\XKlatinfont} +\protected\def\hangulcolons {\let\XKcolonfont\XKhangulfont} +\protected\def\hanjacolons {\let\XKcolonfont\XKhanjafont} +\protected\def\prevfontcolons {\let\XKcolonfont\empty} + +\protected\def\latinpuncts {\let\XKpunctsfont\XKlatinfont} +\protected\def\hangulpuncts {\let\XKpunctsfont\XKhangulfont} +\protected\def\hanjapuncts {\let\XKpunctsfont\XKhanjafont} +\protected\def\prevfontpuncts {\let\XKpunctsfont\empty} + +\protected\def\latinmarks + {\latinalphs \latinnums \latinpuncts \latinquotes + \latinparens \latinhyphens \latincolons \latincjksymbols} +\protected\def\hangulmarks + {\hangulalphs\hangulnums\hangulpuncts\hangulquotes + \hangulparens\hangulhyphens\hangulcolons \hangulcjksymbols} +\protected\def\hanjamarks + {\hanjaalphs \hanjanums \hanjapuncts \hanjaquotes + \hanjaparens \hanjahyphens \hanjacolons \hanjacjksymbols} +\protected\def\prevfontmarks + {\prevfontalphs\prevfontnums\prevfontparens\prevfontquotes + \prevfonthyphens\prevfontcolons\prevfontpuncts\prevfontcjksymbols} + +\latinmarks +\prevfontpuncts % empty default font in case of latin . , ? ! +\prevfonthyphens % empty default font in case of hyphens +\prevfontcolons % empty default font in case of latin ; : +\hangulcjksymbols % cjk symbols in hangul font + +% simple command to typeset hanja by hangul font +\protected\def\hanjabyhangulfont{\let\XKhanjafont\XKhangulfont} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% options regarding micro-spacing +\def\xetexkohu {0.06em } +\def\xetexkointerhchar {} +\def\xetexkolowerperiod {} +\def\xetexkolowerquestion {} +\def\xetexkolowerexclamation{} +\def\xetexkolowercomma {} +\def\xetexkopreperiodkern {} +\def\xetexkopostperiodkern {} +\def\xetexkoprequestionkern {} +\def\xetexkopostquestionkern{} +\def\xetexkopreexclamationkern {} +\def\xetexkopostexclamationkern{} +\def\xetexkoprecommakern {} +\def\xetexkopostcommakern {} +\def\xetexkoquotewidth {} +\def\xetexkoquoteraise {} +\def\xetexkopostmathskip{\dimexpr (\xetexkohu + \z@) * \tw@\relax} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% `` '' or ` ' +\def\XKopeningquotestart{% + \chardef\XK@make@quotebox\z@ + \ifx\empty\xetexkoquotewidth\empty + \ifx\empty\xetexkoquoteraise\empty \else + \chardef\XK@make@quotebox\tw@ + \fi + \else + \chardef\XK@make@quotebox\@ne + \fi + \ifnum\XK@make@quotebox>\z@ + \leavevmode + \ifnum\XK@make@quotebox=\tw@ \raise\xetexkoquoteraise \fi + \hbox + \ifnum\XK@make@quotebox=\@ne to\xetexkoquotewidth \fi + \bgroup\hss + \fi +} +\def\XKopeningquotestop{% + \ifnum\XK@make@quotebox>\z@ + \egroup\nobreak\hskip\z@ + \fi +} +\def\XKclosingquotestart{% + \chardef\XK@make@quotebox\z@ + \ifx\empty\xetexkoquotewidth\empty + \ifx\empty\xetexkoquoteraise\empty \else + \chardef\XK@make@quotebox\tw@ + \fi + \else + \chardef\XK@make@quotebox\@ne + \fi + \ifnum\XK@make@quotebox>\z@ + \leavevmode\nobreak\hskip\z@ + \ifnum\XK@make@quotebox=\tw@ \raise\xetexkoquoteraise \fi + \hbox + \ifnum\XK@make@quotebox=\@ne to\xetexkoquotewidth \fi + \bgroup + \fi +} +\def\XKclosingquotestop{% + \ifnum\XK@make@quotebox>\z@ + \hss\egroup + \fi +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% . , ? ! +\def\XKwaslatinchar{\chardef\XK@after@cjk@punct\z@} +\def\XKwascjkchar {\chardef\XK@after@cjk@punct\@ne} +\XKwaslatinchar +\chardef\XK@inpunctuationbox\z@ + +\def\XKperiodboxstart{% . + \ifnum\XK@after@cjk@punct>\z@ + \ifx\empty\xetexkolowerperiod\empty + \else + \leavevmode\lower\xetexkolowerperiod\hbox\bgroup + \chardef\XK@inpunctuationbox\@ne + \fi + \fi + \ifnum\XKcurrentfont>\z@ + \ifx\empty\xetexkopreperiodkern\empty + \else + \kern\xetexkopreperiodkern\relax + \fi + \fi +} +\def\XKperiodboxstop{% + \ifnum\XKcurrentfont>\z@ + \ifx\empty\xetexkopostperiodkern\empty + \else + \vrule width\xetexkopostperiodkern height\z@ depth\z@ + \fi + \fi + \ifnum\XK@inpunctuationbox=\@ne + \global\count@\spacefactor\egroup\spacefactor\count@ + \fi +} + +\def\XKquestionboxstart{% ? + \ifnum\XK@after@cjk@punct>\z@ + \ifx\empty\xetexkolowerquestion\empty + \else + \leavevmode\lower\xetexkolowerquestion\hbox\bgroup + \chardef\XK@inpunctuationbox\@ne + \fi + \fi + \ifnum\XKcurrentfont>\z@ + \ifx\empty\xetexkoprequestionkern\empty + \else + \kern\xetexkoprequestionkern\relax + \fi + \fi +} +\def\XKquestionboxstop{% + \ifnum\XKcurrentfont>\z@ + \ifx\empty\xetexkopostquestionkern\empty + \else + \vrule width\xetexkopostquestionkern height\z@ depth\z@ + \fi + \fi + \ifnum\XK@inpunctuationbox=\@ne + \global\count@\spacefactor\egroup\spacefactor\count@ + \fi +} + +\def\XKexclamationboxstart{% ! + \ifnum\XK@after@cjk@punct>\z@ + \ifx\empty\xetexkolowerexclamation\empty + \else + \leavevmode\lower\xetexkolowerexclamation\hbox\bgroup + \chardef\XK@inpunctuationbox\@ne + \fi + \fi + \ifnum\XKcurrentfont>\z@ + \ifx\empty\xetexkopreexclamationkern\empty + \else + \kern\xetexkopreexclamationkern\relax + \fi + \fi +} +\def\XKexclamationboxstop{% + \ifnum\XKcurrentfont>\z@ + \ifx\empty\xetexkopostexclamationkern\empty + \else + \vrule width\xetexkopostexclamationkern height\z@ depth\z@ + \fi + \fi + \ifnum\XK@inpunctuationbox=\@ne + \global\count@\spacefactor\egroup\spacefactor\count@ + \fi +} + +\def\XKcommaboxstart{% , + \ifnum\XK@after@cjk@punct>\z@ + \ifx\empty\xetexkolowercomma\empty + \else + \leavevmode\lower\xetexkolowercomma\hbox\bgroup + \chardef\XK@inpunctuationbox\@ne + \fi + \fi + \ifnum\XKcurrentfont>\z@ + \ifx\empty\xetexkoprecommakern\empty + \else + \kern\xetexkoprecommakern\relax + \fi + \fi +} +\def\XKcommaboxstop{% + \ifnum\XKcurrentfont>\z@ + \ifx\empty\xetexkopostcommakern\empty + \else + \vrule width\xetexkopostcommakern height\z@ depth\z@ + \fi + \fi + \ifnum\XK@inpunctuationbox=\@ne + \global\count@\spacefactor\egroup\spacefactor\count@ + \fi +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% cjk openings and closings +%%% considering bounding box +\def\precjkopenparen{\futurelet\@let@token\precjkopenparen@} +\def\precjkopenparen@{% + \@josa@char@to@number\@let@token\count@ + \dimen@\XeTeXglyphbounds\@ne\XeTeXcharglyph\count@ + \dimen@\dimexpr\fontcharwd\font\count@-\dimen@\relax + \ifdim\dimen@<.5em \dimen@.5em \else\advance\dimen@.1em \fi + \leavevmode\hbox to\dimen@\bgroup\hss + \XeTeXinterchartoks\XKboundary\XKcjkopening = {\empty}} +\def\postcjkopenparen{\egroup} + +\def\precjkcloseparen{\futurelet\@let@token\precjkcloseparen@} +\def\precjkcloseparen@{% + \@josa@char@to@number\@let@token\count@ + \dimen@\XeTeXglyphbounds\thr@@\XeTeXcharglyph\count@ + \dimen@\dimexpr\fontcharwd\font\count@-\dimen@\relax + \ifdim\dimen@<.5em \dimen@.5em \else\advance\dimen@.1em \fi + \leavevmode\hbox to\dimen@\bgroup + \XeTeXinterchartoks\XKboundary\XKcjkclosing = {\empty}} +\def\postcjkcloseparen{\hss\egroup} + +\def\precjkfullstop{\futurelet\@let@token\precjkfullstop@} +\def\precjkfullstop@{% + \@josa@char@to@number\@let@token\count@ + \dimen@\XeTeXglyphbounds\thr@@\XeTeXcharglyph\count@ + \dimen@\dimexpr\fontcharwd\font\count@-\dimen@\relax + \ifdim\dimen@<.5em \dimen@.5em \else\advance\dimen@.1em \fi + \leavevmode\hbox to\dimen@\bgroup + \XeTeXinterchartoks\XKboundary\XKcjkfullstop = {\empty}} +\def\postcjkfullstop{\hss\egroup} + +\def\precjkcolon {\leavevmode\hbox to 0.5em\bgroup\hss} +\def\postcjkcolon{\hss\egroup} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% various spaces +\def\XKzeroskip {\hskip\z@ plus .1em minus .1ex } +\def\XKsmallskip + {\hskip\dimexpr (\xetexkohu + \z@) * \tw@ \relax plus .1ex minus .05ex } +\def\XKsmallsmallskip + {\hskip\dimexpr \xetexkohu + \z@ \relax plus .1ex minus .05ex } +\def\XKxkanjiskip {\hskip0.25em plus0.15em minus0.06em } +\def\XKhalfskip {\hskip0.5em minus 0.5em } +\def\XKfixedhalfskip {\hskip0.5em\relax} +\def\XKquaterskip {\hskip0.25em minus 0.25em } +\def\XKhalfminusquaterskip {\hskip0.5em minus 0.25em } +\def\XKthreequaterskip {\hskip0.75em minus 0.25em } + +\def\XKinterhangulbreak + {\ifcjtypeset\else\penalty50 \fi + \hskip\dimexpr\xetexkointerhchar + \z@\relax plus .1ex minus .05ex } +\def\XKinterhanjabreak {\ifcjtypeset\else\penalty50 \fi \XKzeroskip} +\def\XKcjklatinbreak {\ifcjtypeset\XKxkanjiskip\else\XKsmallskip\fi} +\def\XKcjklatinsmallbreak {\ifcjtypeset\XKxkanjiskip\else\XKsmallsmallskip\fi} +\def\XKhalfsmallbreak {\ifcjtypeset\XKhalfskip\else\XKsmallsmallskip\fi} +\def\XKquatersmallbreak {\ifcjtypeset\XKquaterskip\else\XKsmallskip\fi} + +\def\XKafterboundaryskip{% + \ifcase\lastnodetype + \or \XKzeroskip % 1. hbox: especially after indent box + \or\or\or\or\or\or\or + \or \XKzeroskip % 9. whatsit + \or \XKcjkmathbreak % 10. math + \or + \or \XKzeroskip % 12. kern + \fi} +%% users can redefine XKcjkmathbreak +\def\XKcjkmathbreak{% + \ifcjtypeset\XKxkanjiskip + \else\hskip\xetexkopostmathskip plus .1ex minus .05ex \fi} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% for autojosa, get last chars +\let\XK@last@char=0 +\let\XK@lastlast@char\XK@last@char +\let\XK@lastlastlast@char\XK@lastlast@char + +\def\XKlastchar{\futurelet\@let@token\XK@save@last@char} +\def\XK@save@last@char{% + \global\let\XK@lastlastlast@char\XK@lastlast@char + \global\let\XK@lastlast@char \XK@last@char + \global\let\XK@last@char \@let@token +} +\def\XKcjklastchar{\afterassignment\XK@cjk@save@last@char\let\@let@token= } +\def\XK@cjk@save@last@char{% + \XK@save@last@char + % and supress char orphan + \toks@{\@let@token}% 가 + \afterassignment\XK@check@nextchar\let\XK@next@= +} +\def\XK@check@nextchar{% 가<par> 가. 가。 가<sp> + \toks@\expandafter{\the\toks@\XK@next@}% + \ifx\XK@next@\par + \let\next\XK@nobreak@the@toks@ + \else\ifx\@sptoken\XK@next@ + \let\next\XK@afterassign@getnext@ + \else\ifx.\XK@next@ + \let\next\XK@afterassign@getnext@ + \else\ifx^^^^3002\XK@next@ + \let\next\XK@afterassign@getnext@ + \else\ifx^^^^ff0e\XK@next@ + \let\next\XK@afterassign@getnext@ + \else + \let\next\XK@normal@the@toks@ + \fi\fi\fi\fi\fi + \next +} +\def\XK@check@nextchar@{% 가.<par> 가.<sp> + \toks@\expandafter{\the\toks@\XK@next@@}% + \ifx\XK@next@@\par + \expandafter\XK@nobreak@the@toks@ + \else + \ifx\XK@next@@\@sptoken + \expandafter\expandafter\expandafter\futurelet + \expandafter\expandafter\expandafter\XK@next@@@ + \expandafter\expandafter\expandafter\XK@check@nextchar@@ + \else + \expandafter\expandafter\expandafter\XK@normal@the@toks@ + \fi + \fi +} +\def\XK@check@nextchar@@{% 가.<sp><par> + \ifx\XK@next@@@\par\XK@nobreak\fi \the\toks@ +} +\def\XK@afterassign@getnext@{% + \afterassignment\XK@check@nextchar@\let\XK@next@@= +} +\def\XK@normal@the@toks@{\the\toks@} +\def\XK@nobreak@the@toks@{\XK@nobreak\the\toks@} +\def\XK@nobreak{\skip@\lastskip\unskip\unpenalty\nobreak\hskip\skip@} + +\def\XKbeginboundary{% empty interchartoks crashes xetex!!! + \XeTeXinterchartoks\XKboundary\XKlatinnumber = {\empty}% + \XeTeXinterchartoks\XKboundary\XKlatinchar = {\empty}% + \XeTeXinterchartoks\XKboundary\XKhanja = {\empty}% + \XeTeXinterchartoks\XKboundary\XKhangulsyllable = {\empty}% + \XeTeXinterchartoks\XKboundary\XKhanguljungjong = {\empty}% + \XeTeXinterchartoks\XKboundary\XKhangulchosong = {\empty}% +} +\def\XKendboundary{% + \XeTeXinterchartoks\XKboundary\XKlatinnumber = {\XKundoignorespaces\XKlatinnumfont\XKbeginboundary\XKlastchar}% + \XeTeXinterchartoks\XKboundary\XKlatinchar = {\XKundoignorespaces\XKmaybelatinfont\XKbeginboundary\XKlastchar}% + \XeTeXinterchartoks\XKboundary\XKhanja = {\XKhanjafont\XKafterboundaryskip\XKbeginboundary\XKcjklastchar}% + \XeTeXinterchartoks\XKboundary\XKhangulsyllable = {\XKhangulfont\XKafterboundaryskip\XKbeginboundary\XKcjklastchar}% + \XeTeXinterchartoks\XKboundary\XKhanguljungjong = {\XKhangulfont\XKafterboundaryskip\XKbeginboundary\XKlastchar}% + \XeTeXinterchartoks\XKboundary\XKhangulchosong = {\XKhangulfont\XKafterboundaryskip\XKbeginboundary\XKlastchar}% +} + +%%%%%%%%%%%%%% +% etc commands +\let\enablejamoautojosa\relax % enabled already + +\protected\def\disableautojosa{% + \let\XKbeginboundary\relax + \let\XKendboundary\relax + \let\XKlastchar\relax + \let\XKcjklastchar\relax + \let\XK@save@last@char\relax +} + +\protected\def\disablekoreanfonts{% + \let\XKlatinfont \relax + \let\XKhangulfont \relax + \let\XKhanjafont \relax + \let\XKmaybelatinfont \relax + \let\XKpunctsfont \relax + \let\XKlatinnumfont \relax + \let\XKlatinparenfont \relax + \let\XKlatinquotefont \relax + \let\XKhyphenfont \relax + \let\XKcolonfont \relax +} + + +\protected\def\disablecjksymbolspacing{% for natural width of 。「」 etc + \let\precjkopenparen \relax \let\postcjkopenparen \relax + \let\precjkcloseparen\relax \let\postcjkcloseparen\relax + \let\precjkfullstop \relax \let\postcjkfullstop \relax + \let\precjkcolon \relax \let\postcjkcolon \relax +} + +\protected\def\disablehangulspacing{% all micro-spacing is 0pt + \disablecjksymbolspacing + \let\XKopeningquotestart \relax \let\XKopeningquotestop \relax + \let\XKclosingquotestart \relax \let\XKclosingquotestop \relax + \let\XKperiodboxstart \relax \let\XKperiodboxstop \relax + \let\XKquestionboxstart \relax \let\XKquestionboxstop \relax + \let\XKexclamationboxstart \relax \let\XKexclamationboxstop \relax + \let\XKcommaboxstart \relax \let\XKcommaboxstop \relax + \let\XKwaslatinchar \relax \let\XKwascjkchar \relax + \let\XKinterhangulbreak \XKzeroskip + \let\XKinterhanjabreak \XKzeroskip + \let\XKcjklatinbreak \XKzeroskip + \let\XKcjklatinsmallbreak \XKzeroskip + \let\XKhalfsmallbreak \XKzeroskip + \let\XKfixedhalfskip \XKzeroskip + \let\XKquatersmallbreak \XKzeroskip + \let\XKhalfminusquaterskip \XKzeroskip + \let\XKhalfskip \XKzeroskip + \let\XKsmallskip \XKzeroskip + \let\XKthreequaterskip \XKzeroskip + \let\XKcjkmathbreak \XKzeroskip +} + +\protected\def\disablehangulspacingandlinebreak{% all micro-spacing is \relax + \let\XKzeroskip\relax + \disablehangulspacing +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +% for old and C/J documents +\newif\ifcjtypeset + +% try to remove space skip +\def\XKignorespaces{} +\def\XKundoignorespaces{} + +\def\XK@japanese{\cjtypesettrue + %% killing spaces after cjk chars + \def\XKignorespaces{\futurelet\XK@let@token\XK@ignorespaces}% + \def\XK@ignorespaces{\ifx\XK@let@token\@sptoken\kern-1sp\kern1sp\ignorespaces\fi}% + \def\XKundoignorespaces{\ifnum\lastkern=\@ne\@sptoken\fi}% + %% cjksymbols + \hanjacjksymbols + %% spaceskip is equal to xkanjiskip + \spaceskip.25em plus.15em minus.06em +} +\protected\def\japanese{\XK@japanese\parindent1em } +\protected\def\Tchinese{\XK@japanese\parindent2em } +\protected\def\Schinese{\XK@japanese\parindent2em + % these glyphs in simplified chinese fonts are left-aligned. + \XeTeXcharclass "FF1F = \XKcjkfullstop % ? + \XeTeXcharclass "FF01 = \XKcjkfullstop % ! + \XeTeXcharclass "FF1A = \XKcjkfullstop % : + \XeTeXcharclass "FF1B = \XKcjkfullstop % ; + } +\let\chinese\Schinese + +%% inhibitglue +\let\inhibitglue\relax + +%%%%%%%%%%%%%%%%%%%%%% +%% hangul in math mode -- general +\def\setmathhangulblock#1#2{% + \count@ "#1 + \loop + \XeTeXmathcode\count@ = 7 \symmathhangul \count@ + \ifnum\count@<"#2 + \advance\count@\@ne \repeat} + +%%%%%%%%%%% +%% for ulem +\def\xetexkoulemsupport{% + \UL@hook\expandafter{\the\UL@hook + \let\XKcjklastchar\XKlastchar + \def\ulem@XKrestoreprevfont{\let\XKprevfont\ulem@XKprevfont}% + \let\ulem@XK@hangulfont\XK@hangulfont + \let\ulem@XK@hanjafont\XK@hanjafont + \def\XK@hangulfont{\hangfnt\global\let\ulem@XKprevfont\XKprevfont + \aftergroup\aftergroup\aftergroup\ulem@XK@hangulfont + \aftergroup\aftergroup\aftergroup\ulem@XKrestoreprevfont}% + \def\XK@hanjafont{\hanifnt\global\let\ulem@XKprevfont\XKprevfont + \aftergroup\aftergroup\aftergroup\ulem@XK@hanjafont + \aftergroup\aftergroup\aftergroup\ulem@XKrestoreprevfont}% +}} + +%%%%%%%%%% +%% dotemph +\def\dotemphraise{0.4em } +\ifcsname bfseries\endcsname + \def\dotemphchar{\bfseries ^^^^02d9} +\else + \def\dotemphchar{\bf \char95 } +\fi + +\protected\def\dotemph#1{% + \leavevmode + \begingroup + \def\XKcjklastchar{\futurelet\@let@token\XK@dotemph@last@char}% + #1\relax + \endgroup} + +\def\XK@dotemph@last@char{\XK@save@last@char\dot@@@emph} + +\def\dot@@@emph#1{% + \setbox\z@\hbox{#1}\dimen@\wd\z@ + \setbox\z@\hbox to\dimen@{\hss\dotemphchar\hss}\ht\z@\z@\dp\z@\z@ + \rlap{\raise\dotemphraise\box\z@}\nobreak + #1} + +%%% declare to use interchartoken +\XeTeXinterchartokenstate\@ne + +%%% frenchspacing is default +\frenchspacing + +\def\hellipsis{^^^^2026^^^^2026} + +\endinput diff --git a/Master/texmf-dist/tex/xetex/xetexko/xetexko-vertical.sty b/Master/texmf-dist/tex/xetex/xetexko/xetexko-vertical.sty new file mode 100644 index 00000000000..0e82f313a23 --- /dev/null +++ b/Master/texmf-dist/tex/xetex/xetexko/xetexko-vertical.sty @@ -0,0 +1,109 @@ +% $Id: xetexko-vertical.sty,v 1.12 2012/12/13 09:13:00 nomos Exp $ +% +% Copyright (c) 2013 Dohyun Kim <nomos at ktug org> +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2006/05/20 or later. + +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname ProvidesPackage\endcsname\relax\else + \ProvidesPackage{xetexko-vertical} + [2013/03/27 v2.0 Vertical environment for XeTeX-ko] +\fi + +\unless\ifcsname @tempdima\endcsname\newdimen\@tempdima\fi +\unless\ifcsname @tempdimb\endcsname\newdimen\@tempdimb\fi +\unless\ifcsname @tempdimc\endcsname\newdimen\@tempdimc\fi +\unless\ifcsname AtBeginDocument\endcsname\def\AtBeginDocument#1{#1}\fi +\unless\ifcsname @onlypreamble\endcsname\def\@onlypreamble#1{}\fi + +% do not veticalize headline/footline +\protected\def\verticaltypesetting{% + \AtBeginDocument{\XK@vertical@spacing}% + \maxdepth\z@ + \dimen@\textwidth + \textwidth\textheight + \textheight\dimen@ + \edef\@outputpage{% + \unexpanded{\xetexko@rotatebox\@outputbox\textwidth\textheight}% + \unexpanded\expandafter{\@outputpage}}% +} +\@onlypreamble\verticaltypesetting + +\def\xetexko@rotatebox#1{% + \ifvbox#1\count@\@ne\else\count@\z@\fi + \dimen@\wd#1\dimen@ii\dimexpr\ht#1+\dp#1\relax + \setbox#1\ifnum\count@=\@ne + \vbox to\dimen@\bgroup\hbox to\dimen@ii\bgroup\hfil\else + \hbox to\dimen@ii\bgroup\vbox to\dimen@\bgroup\fi + \wd#1\z@ \ht#1\z@ \dp#1\z@ + \special{x:gsave}\special{x:rotate -90}\box#1\special{x:grestore}% + \ifnum\count@=\@ne\egroup\vfil\else\vfil\egroup\hfil\fi\egroup +} + +% users can declare vertical EM size, which might be different from 1em. +\newdimen\verticalem + +\def\XK@vertical@spacing{% + \ifnum\verticalem > \z@ + \def\XK@vert@half@em{.5\verticalem}% + \else + \def\XK@vert@half@em{.5em}% + \fi + \def\precjkopenparen {\leavevmode\hbox to\XK@vert@half@em\bgroup\hss}% + \def\precjkcloseparen{\leavevmode\hbox to\XK@vert@half@em\bgroup}% + \def\precjkfullstop {\leavevmode\hbox to\XK@vert@half@em\bgroup}% + \spaceskip\XK@vert@half@em plus\XK@vert@half@em\relax + \parindent\XK@vert@half@em \parindent2\parindent +} + +\protected\long\def\vertical#1{% + \setbox\z@\vbox\bgroup + \hsize=#1% + \leftskip\z@ + \rightskip\z@ + \parindent\z@ + \everypar{}% + \XK@vertical@spacing +} + +\protected\def\endvertical{% + \egroup + \@tempdima\wd\z@ + \@tempdimb\ht\z@ + \@tempdimc\dp\z@ + \setbox\z@\hbox{% + \kern\dimexpr\@tempdimb+0.5em\relax + \wd\z@\z@ + \ht\z@\z@ + \dp\z@\z@ + \special{x:gsave}% + \special{x:rotate -90}% + \box\z@ + \special{x:grestore}}% + \wd\z@\dimexpr\@tempdimb+\@tempdimc\relax + \ht\z@\z@ + \dp\z@\z@ + \leavevmode + \raise\dimexpr\@tempdima-\@tempdimc\relax\box\z@ +} + +\protected\def\vertlatin#1{\leavevmode\lower0.5ex\hbox{\latinmarks #1}} + +\endinput + +%% example: +%\newhangulfontfamily\myvertfont +% [Script=Hangul,Vertical=RotatedGlyphs] +% {HCR Dotum LVT} +%\verticalem=1.05em +%\begin{vertical}{12em}\myvertfont +% 세로쓰기 영역. +% #1 = 세로길이 +%\end{vertical} + diff --git a/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty b/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty new file mode 100644 index 00000000000..5787c502425 --- /dev/null +++ b/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty @@ -0,0 +1,121 @@ +% $Id: xetexko.sty,v 1.7 2012/10/27 10:04:19 nomos Exp $ +% +% Copyright (c) 2013 Dohyun Kim <nomos at ktug org> +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2006/05/20 or later. + +\ifx\ProvidesPackage\relax \let\ProvidesPackage\undefined \fi +\ifx\ProvidesPackage\undefined + \chardef\catcodeofATcharacter\catcode`@ + \catcode`\@ = 11 + + \input xetexko-space.sty + \input xetexko-josa.sty + \input xetexko-vertical.sty + + % 한글 폰트 + \def\hangulfont{\font\hangfnt} + \def\hanjafont {\font\hanifnt} + %\hangulfont="[UnBatang]:mapping=tex-text" at 10pt + %\let\hanifnt\hangfnt + % 수식 한글 + \newfam\symmathhangul + \def\setmathhangulfont#1#{\setmathhangulfont@} + \def\setmathhangulfont@#1{% + \font\tenhangul = "#1" at 10pt + \font\sevenhangul = "#1" at 7pt + \font\fivehangul = "#1" at 5pt + \textfont\symmathhangul = \tenhangul + \scriptfont\symmathhangul = \sevenhangul + \scriptscriptfont\symmathhangul = \fivehangul + } + \setmathhangulblock{AC00}{D7A3} + %\setmathhangulfont{[UnBatang]} + + \catcode`\@\catcodeofATcharacter + \expandafter\endinput +\fi + +\ProvidesPackage{xetexko}[2013/03/27 v2.0 Typesetting Korean with XeLaTeX] + +\newif\if@hangul +\newif\if@hanja +\newif\if@unfonts +\DeclareOption{hangul}{\@hangultrue} +\DeclareOption{hanja}{\@hangultrue\@hanjatrue} +\DeclareOption{unfonts}{\@unfontstrue} +\ProcessOptions\relax + +\RequirePackage{xetexko-space} +\RequirePackage{xetexko-josa} +\RequirePackage{xetexko-font} +\RequirePackage{xetexko-vertical} + +\RequirePackage{kolabels-utf} +\if@hangul \RequirePackage{konames-utf} \fi + +\AtBeginDocument{ + % for ulem package + \ifcsname UL@hook\endcsname \xetexkoulemsupport \fi + % for hyperref package + \@ifpackageloaded{hyperref}{\pdfstringdefDisableCommands{% + \let\dotemph\@firstofone + \let\makejosa\@secondoftwo + \let\jong\relax + \let\jung\relax + \let\rieul\relax + \let\latinalphs\relax + \let\hangulalphs\relax + \let\hanjaalphs\relax + \let\prevfontalphs\relax + \let\latinnums\relax + \let\hangulnums\relax + \let\hanjanums\relax + \let\prevfontnums\relax + \let\latinparens\relax + \let\hangulparens\relax + \let\hanjaparens\relax + \let\prevfontparens\relax + \let\latinquotes\relax + \let\hangulquotes\relax + \let\hanjaquotes\relax + \let\prevfontquotes\relax + \let\latinpuncts\relax + \let\hangulpuncts\relax + \let\hanjapuncts\relax + \let\prevfontpuncts\relax + \let\latinmarks\relax + \let\hangulmarks\relax + \let\hanjamarks\relax + \let\prevfontmarks\relax + \let\latincolons\relax + \let\hangulcolons\relax + \let\hanjacolons\relax + \let\prevfontcolons\relax + \let\latinhyphens\relax + \let\hangulhyphens\relax + \let\hanjahyphens\relax + \let\prevfonthyphens\relax + \let\latincjksymbols\relax + \let\hangulcjksymbols\relax + \let\hanjacjksymbols\relax + \let\prevfontcjksymbols\relax + \let\disablekoreanfonts\relax + \let\disablehangulspacing\relax + \let\disablehangulspacingandlinebreak\relax + \let\disableautojosa\relax + \let\disablecjksymbolspacing\relax + \let\japanese\relax + \let\chinese\relax + \let\Tchinese\relax + \let\Schinese\relax + }}{} +} + +\endinput diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index e2c38920137..10d2644712e 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -478,7 +478,7 @@ my @TLP_working = qw( xargs xcite xcolor xcomment xcookybooky xdoc xecjk xecolor xecyr xeindex xepersian xesearch xetex-def xetex-devanagari xetex-itrans xetex-pstricks xetex-tibetan - xetexfontinfo + xetexfontinfo xetexko xetexref xevlna xfor xgreek xhfill xifthen xint xits xkeyval xlop xltxtra xmpincl xnewcommand diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 13f7c457080..954c4887ae0 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -849,6 +849,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`); 'pxchfon', "&MAKEflatten", 'pxfonts', "&MAKEflatten", 'pxtxalfa', "&MAKEcopy", + 'pythontex', "die 'skipping, python dependencies'", 'pzccal', "die 'skipping, obsoleted by urwchancal'", 'r2bib', "die 'skipping, requires compilation'", 'ragged2e', "die 'skipping, part of ms'", @@ -1246,6 +1247,7 @@ $standarddest = "texmf-dist"; 'xesearch', 'xetex', 'xetex-def', 'xelatex', 'xetexfontinfo', 'xetex', + 'xetexko', 'xetex', 'xevlna', 'xelatex', 'xltxtra', 'xelatex', 'xstring', 'generic', @@ -1544,6 +1546,7 @@ $standardtex='\.(.bx|cfg|sty|clo|ldf|cls|def|fd|cmap|4ht)$'; 'xepersian', 'xepersian-mathsdigitspec\.tex|' . $standardtex, 'xesearch', 't-.*|' . $standardtex, 'xetexfontinfo','\.tex', + 'xetexko', '\.tab$|' . $standardtex, 'xwatermark', '\.sty', # no .cfg 'xlop', 'xlop\.(tex|sty)', # no manual.sty 'xstring', 'xstring\.tex|' . $standardtex, @@ -1769,6 +1772,7 @@ $standardtex='\.(.bx|cfg|sty|clo|ldf|cls|def|fd|cmap|4ht)$'; 'xetex-pstricks', 'xetex', 'xetex-tibetan', 'xetex', 'xetexfontinfo', 'xetex', + 'xetexko', 'xetex', 'xetexref', 'xetex', 'xevlna', 'xelatex', 'xltxtra', 'xelatex', diff --git a/Master/tlpkg/tlpsrc/collection-xetex.tlpsrc b/Master/tlpkg/tlpsrc/collection-xetex.tlpsrc index 7ccbb0d5542..8706b0a3e4a 100644 --- a/Master/tlpkg/tlpsrc/collection-xetex.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-xetex.tlpsrc @@ -27,6 +27,7 @@ depend xetex-pstricks depend xetex-tibetan depend xetexconfig depend xetexfontinfo +depend xetexko depend xevlna depend xltxtra depend xunicode diff --git a/Master/tlpkg/tlpsrc/xetexko.tlpsrc b/Master/tlpkg/tlpsrc/xetexko.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/tlpkg/tlpsrc/xetexko.tlpsrc |