Mercurial > hg > Papers > 2012 > toma-thesis
changeset 0:84e2f327b98d
first commit
author | Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 22 Feb 2012 14:32:16 +0900 |
parents | |
children | 800ca97bb133 |
files | .hgignore Paper/Makefile Paper/book.bib Paper/cerium.bib Paper/pic/Mailbox.eps Paper/pic/emblem-bitmap.eps Paper/picins.sty Paper/thesis.tex |
diffstat | 8 files changed, 3845 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Wed Feb 22 14:32:16 2012 +0900 @@ -0,0 +1,29 @@ +syntax: glob +*.aux +*.bbl +*.blg +*.dvi +*.fdb_latexmk +*.glg +*.glo +*.gls +*.idx +*.ilg +*.ind +*.ist +*.lof +*.log +*.lot +*.nav +*.nlo +*.out +*.pdfsync +*.ps +*.snm +*.synctex.gz +*.toc +*.vrb +*.maf +*.mtc +*.mtc0 +*.pdf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/Makefile Wed Feb 22 14:32:16 2012 +0900 @@ -0,0 +1,36 @@ +# Created by Daichi Toma on Nov 16, 2011 + +TARGET=thesis + +LATEX=platex +BIBTEX=pbibtex +DVIPDF=dvipdfmx +#You need setting "-l" option if You think You get a landscape PDF +#DVIPDF_OPT=-l + +#Embed fonts +#DVIPDF_OPT=-f hiraginoEmbed.map + +.SUFFIXES: .tex .dvi .pdf + +.tex.dvi: + $(LATEX) $< + $(BIBTEX) $(TARGET) + $(LATEX) $< + $(LATEX) $< + +.dvi.pdf: + $(DVIPDF) $(DVIPDF_OPT) $< + + +all: $(TARGET).pdf + open $(TARGET).pdf + +dvi: $(TARGET).dvi + +pdf: $(TARGET).pdf + + +clean: + rm -f *.dvi *.aux *.log *.pdf *.ps *.gz *.bbl *.blg *~ *.core +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/book.bib Wed Feb 22 14:32:16 2012 +0900 @@ -0,0 +1,25 @@ +@BOOK{clay200912, + title={並行コンピューティング技法 - 実践マルチコア/マルチスレッドプログラミング}, + author={Clay Breshears}, + publisher={オライリージャパン}, + year={2009}, + month={12}, + isbn={9784873114354}, + url={http://amazon.co.jp/o/ASIN/4873114357/}, + price={¥ 3,360}, + totalpages={284}, + timestamp={2011.11.17}, +} + +@BOOK{fix200609, + title={マルチコアCPUのための並列プログラミング - 並列処理\&マルチスレッド入門}, + author={安田 絹子 and 飯塚 博道 and 青柳 信吾 and 小林 林広 and 阿部 貴之}, + publisher={秀和システム}, + year={2006}, + month={9}, + isbn={9784798014623}, + url={http://amazon.co.jp/o/ASIN/4798014621/}, + price={¥ 3,360}, + totalpages={367}, + timestamp={2011.11.17}, +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/cerium.bib Wed Feb 22 14:32:16 2012 +0900 @@ -0,0 +1,293 @@ +@manual{cell_abi, +author = "{International Business Machines Corporation, Sony Computer Entertainment Incorporated, Toshiba Corporation}", +title ="{Cell Broadband Engine Linux Reference Implementation Application Binary Interface Specification}", +year = 2007 +} + +@manual{cell_cpp, +author = "{International Business Machines Corporation, Sony Computer Entertainment Incorporated, Toshiba Corporation}", +title = "{C/C++ Language Extensions for Cell Broadband Engine Architecture Version 2.6}", +year = 2008 +} + +@misc{osmesa, +author = "", +title = "{The Mesa 3D Graphics Library}", +howpublished = "{http://www.mesa3d.org/}" +} + +@misc{fedora, +author = "", +title = "{Fedora Project}", +howpublished = "{http://fedoraproject.org/}" +} + +@misc{ydl, +author = "", +title = "{Yellow Dog Linux for PowerPC Computers}", +howpublished = "{http://us.fixstars.com/products/ydl/}" +} + +@book{amdahl, +author = "{Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea}", +title = "{Java Concurrency in Prac-tice}", +publisher = "{Addison-Wesley Professional}", +year = "2005" +} + +@misc{cerium, +author = "", +title = "{SourceForge.JP: Cerium Rendering Engine}", +howpublished = "{https//sourceforge.jp/projects/cerium/}" +} + +@misc{spurs, +author = "{Keisuke Inoue}", +title = "{SPU Centric Execution Model}", +text = "SACSIS 2006", +year = 2006 +} + +@manual{cell, +author = "{Sony Corporation}", +title = "{Cell BroadbandEngine \texttrademark アーキテクチャ}", +year = 2006 +} + +@manual{cell_sdk, +author = "{International Business Machines Corporation}", +title = "{Software Development Kit for Multicore Acceleration Version 3.1}", +year = 2008 +} + +@manual{libspe2, +author = "{International Business Machines Corporation, Sony Computer Entertainment Incorporated, Toshiba Corporation}", +title = "{SPE Runtime Management Library Version 2.3}", +year = 2008 +} + + +@misc{blender, +title = "{blender.org}", +howpublished = "{http://blender.org/}" +} + +@article{spufs, +author = "{Toshiyuki SANUKI}", +title = "{Cell Broadband Engine \texttrademark を用いたブレード・サーバーの設計と実装}", +journal = "{IBM PROVISION No.48}", +year = 2006 +} + +@misc{sdl, +author = "", +title = "{Simple DirectMedia Layer}", +howpublished = "{http://www.libsdl.org/}" +} + +@misc{sdl_image, +author = "", +title = "{SDL\_image}", +howpublished = "{http://www.libsdl.org/projects/SDL\_image/}" +} + +@manual{opencl, +author = "{Aaftab Munshi, Khronos OpenCL Working Group}", +title ="{The OpenCL Specification Version 1.0}", +year = 2007 +} + +@misc{gallium, +author = "", +title = "{Gallium3D}", +howpublished = "{http://www.tungstengraphics.com/wiki/index.php/Gallium3D}" +} + +@inproceedings{cellbe-overview-conference, +author = {Pham, D. and Asano, S. and Bolliger, M.and Day, M. N. and Hofstee, H. P. and Johns, C. and Kahle, J. and Kameyama, A. and Keaty, J. and Masubuchi, Y. and Riley, M. and Shippy, D. and Stasiak, D. and Suzuoki, M. and Wang, M. and Warnock, J. and Weitzel, S. and Wendel, D. and Yamazaki, T. and Yazawa, K. }, +booktitle = {Solid-State Circuits Conference, 2005. Digest of Technical Papers. ISSCC. 2005 IEEE International}, +pages = {184--592 Vol. 1}, +title = {The design and implementation of a first-generation CELL processor}, +year = {2005} +} + +@INPROCEEDINGS{KOKKEVIS06high-performancephysics, +author = {V KOKKEVIS and S OSMAN and E L}, +title = {High-performance physics solver design for next generation consoles}, +booktitle = {In Game Developers Conference}, +year = {2006} +} + +@misc{Cellteto, +author = "{Williams, J. Carter, L. Oliker, J. Shalf, K. Yelick}", +title = "{3D Lattice Boltzmann Magneto-hydrodynamics (LBMHD3D)}", +howpublished = "{UTK Summit on Software and Algorithms for the Cell Processor}", +year = {2006} +} + +@inproceedings{cellbe-spe-overview-conference, +uthor = {Flachs, B. and Asano, S. and Dhong, S. H. and Hotstee, P. and Gervais, G. and Kim, R. and Le, T. and Liu, P. and Leenstra, J. and Liberty, J. and Michael, B. and Oh, H. and Mueller, S. M. and Takahashi, O. and Hatakeyama, A. and Watanabe, Y. and Yano, N. }, +journal = {Solid-State Circuits Conference, 2005. Digest of Technical Papers. ISSCC. 2005 IEEE International}, +pages = {134--135 Vol. 1}, +title = {A streaming processing unit for a CELL processor}, +year = {2005} +} + +@article{Cellteto2, + author = {A. E. Eichenberger}, + title = {Using advanced compiler technology to exploit the performance of the Cell Broadband Engine \texttrademark architecture}, + journal = {IBM System Journal Vol 45, No.1}, + year = {2006}, +} + + +@INPROCEEDINGS{Benthin06raytracing, + author = {Carsten Benthin and Ingo Wald and Michael Scherbaum and Heiko Friedrich}, + title = {Ray Tracing on the CELL Processor}, + booktitle = {In Proceedings of the 2006 IEEE Symposium on Interactive Ray Tracing}, + year = {2006}, + pages = {15--23} +} + +@inproceedings{citeulike:1905188, +author = {Blagojevic, Filip and Nikolopoulos, Dimitris S. and Stamatakis, Alexandros and Antonopoulos, Christos D. }, +booktitle = {PPoPP '07: Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming}, +pages = {90--100}, +publisher = {ACM}, +title = {Dynamic multigrain parallelization on the cell broadband engine}, +year = {2007} +} + +@article{DBLP:journals/cphysics/Fabritiis07, + author = {G. De Fabritiis}, + title = {Performance of the Cell processor for biomolecular simulations}, + journal = {Computer Physics Communications}, + volume = {176}, + number = {11-12}, + year = {2007}, + pages = {660-664}, + ee = {http://dx.doi.org/10.1016/j.cpc.2007.02.107}, + bibsource = {DBLP, http://dblp.uni-trier.de} +} + +@article{1272431, + author = {Kurzak,, Jakub and Dongarra,, Jack}, + title = {Implementation of mixed precision in solving systems of linear equations on the Cell processor: Research Articles}, + journal = {Concurr. Comput. : Pract. Exper.}, + volume = {19}, + number = {10}, + year = {2007}, + issn = {1532-0626}, + pages = {1371--1385}, + publisher = {John Wiley and Sons Ltd.}, +} + +@inproceedings{1128027, + author = {Williams,, Samuel and Shalf,, John and Oliker,, Leonid and Kamil,, Shoaib and Husbands,, Parry and Yelick,, Katherine}, + title = {The potential of the cell processor for scientific computing}, + booktitle = {CF '06: Proceedings of the 3rd conference on Computing frontiers}, + year = {2006}, + isbn = {1-59593-302-6}, + pages = {9--20}, + publisher = {ACM} +} +@Comment LocalWords: SACSIS BroadbandEngine sdk Multicore + + +@article{kono:2008a, + author = "河野真治", + title = "検証を自身で表現できるハードウェア、ソフトウェア記述言語 Continuation based C と、そのCell への応用", + journal = "電子情報通信学会VLSI設計技術研究会", + month = "March", + year = 2008 +} + +@article{akira:2008a, + author = "神里 晃 and 宮國 渡 and 杉山 千秋 and 河野 真治", + title = "CからCellアーキテクチャを利用したCbCへの変換", + journal = "電子情報通信学会VLSI設計技術研究会", + month = "March", + year = 2008 +} + +@article{akira:2006a, + author = "神里 晃 and 河野 真治", + title = "Continuation based CによるPS3 Cell のシミュレーション", + journal = "情報処理学会システムソフトウェアとオペレーティング・システム研究会", + month = "May", + year = 2006 +} + + +@mastersthesis{akira:master, + author = "神里 晃", + title = "Cell を用いたゲームフレームワークの提案", + school = "琉球大学理工学研究科情報工学専攻", + month = "Feb", + year = 2008 +} + + +@mastersthesis{gongo:master, + author = "宮國 渡", + title = "Cell用の Fine-Grain Task Manager の実装", + school = "琉球大学理工学研究科情報工学専攻", + month = "Feb", + year = 2009 +} + +@article{gongo:2008a, + author = "宮國 渡 and 河野 真治 and 神里 晃 and 杉山 千秋", + title = "Cell 用の Fine-grain Task Manager の実装", + journal = "情報処理学会 システムソフトウェアとオペレーティング・システム研究会", + month = "April", + year = 2008 +} + +@article{chiaki:thesis, + author = "杉山 千秋", + title = "SceneGraph と StatePattern を用いたゲームフレームワークの設計と実装", + journal = "琉球大学工学部情報工学科 平成19年度卒業論文", + year = 2008 +} + +@article{akamine:2010a, + author = "赤嶺 一樹 and 河野 真治", + title = "Meta Engine を用いた Federated Linda の実験", + journal = "日本ソフトウェア科学会第 27 会大会(2010 年度)", + month = "Sep", + year = 2010 +} + +@mastersthesis{kaito:master, + author = "多賀野 海人", + title = "Cell Task Manager Cerium における Task を用いたパイプラインの改良", + school = "琉球大学理工学研究科情報工学専攻", + month = "Feb", + year = 2011 +} + + +@article{yutaka:2010a, + author = "金城 裕 and 河野 真治", + title = "Fine Grain Task Manager Cerium のチューニング", + journal = "日本ソフトウェア科学会第 27 会大会(2010 年度)", + month = "Sep", + year = 2010 +} + +@article{yutaka:2011a, + author = "金城 裕 and 河野 真治", + title = "ゲームフレームワーク Cerium TaskManager の改良", + journal = "情報処理学会システムソフトウェアとオペレーティング・システム研究会", + month = "Apr", + year = 2011 +} + +@article{yutaka:2011b, + author = "金城 裕 and 河野 真治", + title = "Cerium におけるDataSegment APIの設計", + journal = "日本ソフトウェア科学会第 28 会大会(2011 年度)", + month = "Sep", + year = 2011 +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/pic/Mailbox.eps Wed Feb 22 14:32:16 2012 +0900 @@ -0,0 +1,1431 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%HiResBoundingBox: 0.000000 0.000000 496.000000 325.000000 +%APL_DSC_Encoding: UTF8 +%APLProducer: (Version 10.7.2 (Build 11C74) Quartz PS Context) +%%Title: (Unknown) +%%Creator: (Unknown) +%%CreationDate: (Unknown) +%%For: (Unknown) +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%Pages: 1 +%%BoundingBox: 0 0 496 325 +%%EndComments +%%BeginProlog +%%BeginFile: cg-pdf.ps +%%Copyright: Copyright 2000-2004 Apple Computer Incorporated. +%%Copyright: All Rights Reserved. +currentpacking true setpacking +/cg_md 141 dict def +cg_md begin +/L3? languagelevel 3 ge def +/bd{bind def}bind def +/ld{load def}bd +/xs{exch store}bd +/xd{exch def}bd +/cmmtx matrix def +mark +/sc/setcolor +/scs/setcolorspace +/dr/defineresource +/fr/findresource +/T/true +/F/false +/d/setdash +/w/setlinewidth +/J/setlinecap +/j/setlinejoin +/M/setmiterlimit +/i/setflat +/rc/rectclip +/rf/rectfill +/rs/rectstroke +/f/fill +/f*/eofill +/sf/selectfont +/s/show +/xS/xshow +/yS/yshow +/xyS/xyshow +/S/stroke +/m/moveto +/l/lineto +/c/curveto +/h/closepath +/n/newpath +/q/gsave +/Q/grestore +counttomark 2 idiv +{ld}repeat pop +/SC{ + /ColorSpace fr scs +}bd +/sopr /setoverprint where{pop/setoverprint}{/pop}ifelse ld +/soprm /setoverprintmode where{pop/setoverprintmode}{/pop}ifelse ld +/cgmtx matrix def +/sdmtx{cgmtx currentmatrix pop}bd +/CM {cgmtx setmatrix}bd +/cm {cmmtx astore CM concat}bd +/W{clip newpath}bd +/W*{eoclip newpath}bd +statusdict begin product end dup (HP) anchorsearch{ + pop pop pop + true +}{ + pop + (hp) anchorsearch{ + pop pop true + }{ + pop false + }ifelse +}ifelse +{ + { + { + pop pop + (0)dup 0 4 -1 roll put + F charpath + }cshow + } +}{ + {F charpath} +}ifelse +/cply exch bd +/cps {cply stroke}bd +/pgsave 0 def +/bp{/pgsave save store}bd +/ep{pgsave restore showpage}def +/re{4 2 roll m 1 index 0 rlineto 0 exch rlineto neg 0 rlineto h}bd +/scrdict 10 dict def +/scrmtx matrix def +/patarray 0 def +/createpat{patarray 3 1 roll put}bd +/makepat{ +scrmtx astore pop +gsave +initgraphics +CM +patarray exch get +scrmtx +makepattern +grestore +setpattern +}bd +/cg_BeginEPSF{ + userdict save/cg_b4_Inc_state exch put + userdict/cg_endepsf/cg_EndEPSF load put + count userdict/cg_op_count 3 -1 roll put + countdictstack dup array dictstack userdict/cg_dict_array 3 -1 roll put + 3 sub{end}repeat + /showpage {} def + 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin + 10 setmiterlimit [] 0 setdash newpath + false setstrokeadjust false setoverprint +}bd +/cg_EndEPSF{ + countdictstack 3 sub { end } repeat + cg_dict_array 3 1 index length 3 sub getinterval + {begin}forall + count userdict/cg_op_count get sub{pop}repeat + userdict/cg_b4_Inc_state get restore + F setpacking +}bd +/cg_biproc{currentfile/RunLengthDecode filter}bd +/cg_aiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}bd +/ImageDataSource 0 def +L3?{ + /cg_mibiproc{pop pop/ImageDataSource{cg_biproc}def}bd + /cg_miaiproc{pop pop/ImageDataSource{cg_aiproc}def}bd +}{ + /ImageBandMask 0 def + /ImageBandData 0 def + /cg_mibiproc{ + string/ImageBandMask xs + string/ImageBandData xs + /ImageDataSource{[currentfile/RunLengthDecode filter dup ImageBandMask/readstring cvx + /pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd + }bd + /cg_miaiproc{ + string/ImageBandMask xs + string/ImageBandData xs + /ImageDataSource{[currentfile/ASCII85Decode filter/RunLengthDecode filter + dup ImageBandMask/readstring cvx + /pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd + }bd +}ifelse +/imsave 0 def +/BI{save/imsave xd mark}bd +/EI{imsave restore}bd +/ID{ +counttomark 2 idiv +dup 2 add +dict begin +{def} repeat +pop +/ImageType 1 def +/ImageMatrix[Width 0 0 Height neg 0 Height]def +currentdict dup/ImageMask known{ImageMask}{F}ifelse exch +L3?{ + dup/MaskedImage known + { + pop + << + /ImageType 3 + /InterleaveType 2 + /DataDict currentdict + /MaskDict + << /ImageType 1 + /Width Width + /Height Height + /ImageMatrix ImageMatrix + /BitsPerComponent 1 + /Decode [0 1] + currentdict/Interpolate known + {/Interpolate Interpolate}if + >> + >> + }if +}if +exch +{imagemask}{image}ifelse +end +}bd +/cguidfix{statusdict begin mark version end +{cvr}stopped{cleartomark 0}{exch pop}ifelse +2012 lt{dup findfont dup length dict begin +{1 index/FID ne 2 index/UniqueID ne and +{def} {pop pop} ifelse}forall +currentdict end definefont pop +}{pop}ifelse +}bd +/t_array 0 def +/t_i 0 def +/t_c 1 string def +/x_proc{ + exch t_array t_i get add exch moveto + /t_i t_i 1 add store +}bd +/y_proc{ + t_array t_i get add moveto + /t_i t_i 1 add store +}bd +/xy_proc{ + + t_array t_i 2 copy 1 add get 3 1 roll get + 4 -1 roll add 3 1 roll add moveto + /t_i t_i 2 add store +}bd +/sop 0 def +/cp_proc/x_proc ld +/base_charpath +{ + /t_array xs + /t_i 0 def + { + t_c 0 3 -1 roll put + currentpoint + t_c cply sop + cp_proc + }forall + /t_array 0 def +}bd +/sop/stroke ld +/nop{}def +/xsp/base_charpath ld +/ysp{/cp_proc/y_proc ld base_charpath/cp_proc/x_proc ld}bd +/xysp{/cp_proc/xy_proc ld base_charpath/cp_proc/x_proc ld}bd +/xmp{/sop/nop ld /cp_proc/x_proc ld base_charpath/sop/stroke ld}bd +/ymp{/sop/nop ld /cp_proc/y_proc ld base_charpath/sop/stroke ld}bd +/xymp{/sop/nop ld /cp_proc/xy_proc ld base_charpath/sop/stroke ld}bd +/refnt{ +findfont dup length dict copy dup +/Encoding 4 -1 roll put +definefont pop +}bd +/renmfont{ +findfont dup length dict copy definefont pop +}bd +L3? dup dup{save exch}if +/Range 0 def +/DataSource 0 def +/val 0 def +/nRange 0 def +/mulRange 0 def +/d0 0 def +/r0 0 def +/di 0 def +/ri 0 def +/a0 0 def +/a1 0 def +/r1 0 def +/r2 0 def +/dx 0 def +/Nsteps 0 def +/sh3tp 0 def +/ymax 0 def +/ymin 0 def +/xmax 0 def +/xmin 0 def +/setupFunEval +{ + begin + /nRange Range length 2 idiv store + /mulRange + + [ + 0 1 nRange 1 sub + { + 2 mul/nDim2 xd + Range nDim2 get + Range nDim2 1 add get + 1 index sub + + 255 div + exch + }for + ]store + end +}bd +/FunEval +{ + begin + + nRange mul /val xd + + 0 1 nRange 1 sub + { + dup 2 mul/nDim2 xd + val + add DataSource exch get + mulRange nDim2 get mul + mulRange nDim2 1 add get + add + }for + end +}bd +/max +{ + 2 copy lt + {exch pop}{pop}ifelse +}bd +/sh2 +{ + /Coords load aload pop + 3 index 3 index translate + + 3 -1 roll sub + 3 1 roll exch + sub + 2 copy + dup mul exch dup mul add sqrt + dup + scale + atan + + rotate + + /Function load setupFunEval + + + clippath {pathbbox}stopped {0 0 0 0}if newpath + /ymax xs + /xmax xs + /ymin xs + /xmin xs + currentdict/Extend known + { + /Extend load 0 get + { + 0/Function load FunEval sc + xmin ymin xmin abs ymax ymin sub rectfill + }if + }if + + /Nsteps/Function load/Size get 0 get 1 sub store + /dx 1 Nsteps div store + gsave + /di ymax ymin sub store + /Function load + + 0 1 Nsteps + { + 1 index FunEval sc + 0 ymin dx di rectfill + dx 0 translate + }for + pop + grestore + currentdict/Extend known + { + /Extend load 1 get + { + Nsteps/Function load FunEval sc + 1 ymin xmax 1 sub abs ymax ymin sub rectfill + }if + }if +}bd +/shp +{ + 4 copy + + dup 0 gt{ + 0 exch a1 a0 arc + }{ + pop 0 moveto + }ifelse + dup 0 gt{ + 0 exch a0 a1 arcn + }{ + pop 0 lineto + }ifelse + + fill + + dup 0 gt{ + 0 exch a0 a1 arc + }{ + pop 0 moveto + }ifelse + dup 0 gt{ + 0 exch a1 a0 arcn + }{ + pop 0 lineto + }ifelse + + fill +}bd +/calcmaxs +{ + + xmin dup mul ymin dup mul add sqrt + xmax dup mul ymin dup mul add sqrt + xmin dup mul ymax dup mul add sqrt + xmax dup mul ymax dup mul add sqrt + max max max +}bd +/sh3 +{ + /Coords load aload pop + 5 index 5 index translate + 3 -1 roll 6 -1 roll sub + 3 -1 roll 5 -1 roll sub + 2 copy dup mul exch dup mul add sqrt + /dx xs + 2 copy 0 ne exch 0 ne or + { + + exch atan rotate + }{ + pop pop + }ifelse + + /r2 xs + /r1 xs + /Function load + dup/Size get 0 get 1 sub + /Nsteps xs + setupFunEval + + + + + + dx r2 add r1 lt{ + + 0 + }{ + dx r1 add r2 le + { + 1 + }{ + r1 r2 eq + { + 2 + }{ + 3 + }ifelse + }ifelse + }ifelse + /sh3tp xs + clippath {pathbbox}stopped {0 0 0 0}if + newpath + /ymax xs + /xmax xs + /ymin xs + /xmin xs + + dx dup mul r2 r1 sub dup mul sub dup 0 gt + { + sqrt r2 r1 sub atan + /a0 exch 180 exch sub store + /a1 a0 neg store + }{ + pop + /a0 0 store + /a1 360 store + }ifelse + currentdict/Extend known + { + /Extend load 0 get r1 0 gt and + { + 0/Function load FunEval sc + + + + + { + { + dx 0 r1 360 0 arcn + xmin ymin moveto + xmax ymin lineto + xmax ymax lineto + xmin ymax lineto + xmin ymin lineto + eofill + } + { + r1 0 gt{0 0 r1 0 360 arc fill}if + } + { + + + + + 0 r1 xmin abs r1 add neg r1 shp + } + { + + + r2 r1 gt{ + + 0 r1 + r1 neg r2 r1 sub div dx mul + 0 + shp + }{ + + + + 0 r1 calcmaxs + dup + + r2 add dx mul dx r1 r2 sub sub div + neg + exch 1 index + abs exch sub + shp + }ifelse + } + }sh3tp get exec + }if + }if + + /d0 0 store + /r0 r1 store + /di dx Nsteps div store + /ri r2 r1 sub Nsteps div store + /Function load + 0 1 Nsteps + { + 1 index FunEval sc + d0 di add r0 ri add d0 r0 shp + { + + d0 0 r0 a1 a0 arc + d0 di add 0 r0 ri add a0 a1 arcn + fill + + + d0 0 r0 a0 a1 arc + d0 di add 0 r0 ri add a1 a0 arcn + fill + }pop + + + /d0 d0 di add store + /r0 r0 ri add store + }for + pop + + currentdict/Extend known + { + /Extend load 1 get r2 0 gt and + { + Nsteps/Function load FunEval sc + + + + + { + { + dx 0 r2 0 360 arc fill + } + { + dx 0 r2 360 0 arcn + xmin ymin moveto + xmax ymin lineto + xmax ymax lineto + xmin ymax lineto + xmin ymin lineto + eofill + } + { + + + xmax abs r1 add r1 dx r1 shp + } + { + + r2 r1 gt{ + + + + calcmaxs dup + + r1 add dx mul dx r2 r1 sub sub div + exch 1 index + exch sub + dx r2 + shp + }{ + + r1 neg r2 r1 sub div dx mul + 0 + dx + r2 + shp + }ifelse + } + } + sh3tp get exec + }if + }if +}bd +/sh +{ + begin + /ShadingType load dup dup 2 eq exch 3 eq or + { + gsave + newpath + /ColorSpace load scs + currentdict/BBox known + { + /BBox load aload pop + 2 index sub + 3 index + 3 -1 roll exch sub + exch rectclip + }if + 2 eq + {sh2}{sh3}ifelse + grestore + }{ + + pop + (DEBUG: shading type unimplemented\n)print flush + }ifelse + end +}bd +{restore}if not dup{save exch}if + L3?{ + /sh/shfill ld + /csq/clipsave ld + /csQ/cliprestore ld + }if +{restore}if +end +setpacking +%%EndFile +%%EndProlog +%%BeginSetup +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 0 0 496 325 +%%BeginPageSetup +cg_md begin +bp +sdmtx +%RBIBeginFontSubset: Helvetica +%!FontType1-1.0: Helvetica 1.0000.0.0000 + 14 dict begin/FontName /Helvetica def + /PaintType 0 def + /Encoding 256 array 0 1 255{1 index exch/.notdef put}for + dup 33 /S put + dup 34 /P put + dup 35 /E put + dup 36 /U put + dup 37 /M put + dup 38 /F put + dup 39 /C put + dup 40 /I put + dup 41 /n put + dup 42 /b put + dup 43 /o put + dup 44 /u put + dup 45 /d put + dup 46 /space put + dup 47 /a put + dup 48 /i put + dup 49 /l put + dup 50 /x put + dup 51 /O put + dup 52 /t put + dup 53 /e put + dup 54 /r put + dup 55 /p put + dup 56 /c put + dup 57 /h put + dup 58 /B put + readonly def + 42/FontType resourcestatus{pop pop false}{true}ifelse + %APLsfntBegin + {currentfile 0(%APLsfntEnd\n)/SubFileDecode filter flushfile}if + /FontType 42 def + /FontMatrix matrix def + /FontBBox[2048 -1947 1 index div -985 2 index div 2961 3 index div 2297 5 -1 roll div]cvx def + /sfnts [< + 74727565000900000000000063767420000000000000009C0000036C6670676D000000000000040800000A1D676C79660000000000000E280000148C6865616400000000000022B4000000366868656100000000000022EC00000024686D747800000000000023100000006C6C6F6361000000000000237C000000386D61787000000000000023B4000000207072657000000000000023D4000003CF05C0001005BD00280580001A042F001F0000FFD90000FFDA0000FFD9FE55FFE605C70010FE6DFFF1033B000000B9000000B902FE3F3C00C0008D009B00AF000600A800C00028005E009800C9016A00B9015C00B400D6011E002E0080000400B8004C00CC01FFFFD1006600A400AF007400C2009500B1000C0028006D0015004C008E0125FF7A000C0040004C00620084FFA200240038008600BD0039005E008E00EDFFA9FFB300400052005500AA00AB00C200CB012302B10413FFAEFFE4000800510074008400AA00D1FF4CFFAF0012002C004200500051008400BE012503DAFF680018003B0098009C009F00A100C100EC018201B4FF68FF76FFD0FFE100020018001C00530053007D01B401E103AF0486FF9CFFEAFFFE001F0028002A00520060009300A300AA00AF00AF00C001000145016B0174019301950240028202B404850517FEFD00060029004700470048006F008800B400B900C400F200F901EF02180310037403C5FF35FFF3000B004B004C0052005500650076007600870087008E00AB00BB0106013001430150017D0194019501D3022A025502580277027802E6034E035C037903D3047304B2058C0598060BFEF5FFBBFFC7FFD50017001D005B0072007E009C00C200D000F400FA01030106011C0125013B0142015E015E0180019B02B901A101B9025001C001D002AA01DF01E301EF01FB0205020C0215022B0274029302AB02C202CE03690395039903DF03F5043E050205A105E5062507DBFE62FE89FECEFF3BFFE1FFF800030008002100390042004E005F0061006F00700034007F008E00AD00AD00AF00BD00C400C500C900C900C900E3011C00ED00F800F901000112011A0132014D014D014E014F01660169019E01BA01BA01BE01E301EF01F602000200020902110217021C02530262026D028002D50280031B032A034A035A03AF03AF03C803D603FB03FB04050413041504470449008C046D049A049A04A604A804B204CF0539053E054E055605800589058C036305D105D6067E068E06B206EF06F00728074C076F078C00B400C900C000C10000000000000000000000000004012400AF0032006E0063014401620096014301A10161008A00740064018801EF01700028FF5D037E0347023000AA00BE007B0062009A007D0089035C00A1FFD803AA00D70093006C0000008000A70442001D0597001D00820030002A + 002A002A002A002A40292A292827262524232221201F1E1D1C1B1A191817161514131211100D0C0B0A090807060504030201002C4523466020B02660B004262348482D2C452346236120B02661B004262348482D2C45234660B0206120B04660B004262348482D2C4523462361B0206020B02661B02061B004262348482D2C45234660B0406120B06660B004262348482D2C4523462361B0406020B02661B04061B004262348482D2C0110203C003C2D2C20452320B0CD442320B8015A51582320B08D44235920B0ED51582320B04D44235920B09051582320B00D44235921212D2C20204518684420B001602045B04676688A4560442D2C01B9400000000A2D2C00B9000040000B2D2C2045B00043617D6818B0004360442D2C45B01A234445B01923442D2C2045B00325456164B050515845441B2121592D2C20B0032552582359212D2C69B04061B0008B0C6423648BB8400062600C642364615C58B0036159B002602D2C45B0112BB0172344B0177AE5182D2C45B0112BB01723442D2C45B0112BB017458CB0172344B0177AE5182D2CB002254661658A46B040608B482D2CB0022546608A46B040618C482D2C4B53205C58B002855958B00185592D2C20B0032545B019236A4445B01A23444565234520B00325606A20B009234223688A6A606120B0005258B21A401A4523614459B0005058B219401945236144592D2CB9187E3B210B2D2CB92D412D410B2D2CB93B21187E0B2D2CB93B21E7830B2D2CB92D41D2C00B2D2CB9187EC4E00B2D2C4B525845441B2121592D2C0120B003252349B04060B0206320B000525823B002253823B002256538008A63381B212121212159012D2C456920B00943B0022660B00325B005254961B0805358B21940194523616844B21A401A4523606A44B209191A45652345604259B00943608A103A2D2C01B005251023208AF500B0016023EDEC2D2C01B005251023208AF500B0016123EDEC2D2C01B0062510F500EDEC2D2C20B001600110203C003C2D2C20B001610110203C003C2D2C764520B003254523616818236860442D2C7645B00325452361682318456860442D2C7645B0032545616823452361442D2C4569B014B0324B505821B0205961442DB8002B2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8002C2C2020456944B001602DB8002D2CB8002C2A212DB8002E2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8002F2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800302C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800312C2020456944B0016020 + 20457D691844B001602DB800322CB800312A2DB800332C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800342C4B535845441B2121592DB800352C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800362C2020456944B001602DB800372CB800362A212DB800382C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800392C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8003A2C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB8003B2C2020456944B001602020457D691844B001602DB8003C2CB8003B2A2DB8003D2C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8003E2C4B535845441B2121592DB8003F2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800402C2020456944B001602DB800412CB800402A212DB800422C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800432C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800442C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800452C2020456944B001602020457D691844B001602DB800462CB800452A2DB800472C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800482C4B535845441B2121592DB800492C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8004A2C2020456944B001602DB8004B2CB8004A2A212DB8004C2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8004D2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8004E2C4B20B0032650585158 + B080441BB04044591B21212045B0C05058B0C0441B2159592DB8004F2C2020456944B001602020457D691844B001602DB800502CB8004F2A2DB800512C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800522C4B535845441B2121592DB800532C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800542C2020456944B001602DB800552CB800542A212DB800562C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800572C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800582C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800592C2020456944B001602020457D691844B001602DB8005A2CB800592A2DB8005B2C4B20B003265358B0401BB000598A8A20B0032653582321B0808A8A1B8A235920B0032653582321B800C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8005C2C4B535845441B2121592D00000000020042000004D005BD00030007003FB800532BB800082FB800092FB8000810B80000D0B800002FB8000910B80003DCB80004DCB8000010B80007DC00BA0007000000562BBA0002000500562B3031331121112711211142048EB8FCE205BDFA43B8044DFBB30000000300970000050405BD000A00150028008240385A0D5A116A026A0D6A117A02772107490D4811021D081F0F041F131E000027081E17020B1E270804311B690F31231A2A091525281619292AB8015FB3217666182B2B4EF43C4DFD3C4E10F64DEDF4ED003FFD3FED12392FFD3901111239313043794012181A0508192506260718042B01051A082B01002B012B2B2B8181015D5D013237363534272623211101323736353427262321110321201716151407060716171615140706290102C47E466E754282FE9D01ADB74E318F4C7DFE75C3027701026D404F294D7138635985FEDEFD93035023378F90321CFE39FD5A6A435FA03A1FFDFB05139A5B778B592F272B3660A98E73AC0002005AFFDA057105E5001D001E00B1403B1B0597019605031F011F0482018705891305530803861D111115063A1D030C3A15091E021E1E190331023B1031111A20093119191F20A1216A66182B2B4EF44DED4E10F64DEDF4ED12392F003F3FED3FED12392F10ED + 31304379403A001C172513260E251B260B160932000D1410320112110F10071C0932000500033201010204030A180C32000F120C3200081A06320104010632012B2B2B2B01103C103C2B2B103C103C2B2B2B2B2B2B815D015D080117232E0123220011101233323736373306070621202726111037362123041E013411C221C5B2D9FEF5F1EFDC733D1EC21A92AFFED7FF00AEE5ACBA01472805E5FEDABB8EA6FECFFEC5FEFEFEBFA95991E89DBD9BCD01AC0145D0E20000000200AF000004ED05BD000B000C004E4024071E04040B031E01000209081E0A0B080C020C0C02000669023B091A0E03082500190D0EB8010BB3219589182B2B4EF44DFD3C4E10F64DF4E41112392F003F3F3CFD3C3F3CED12392FFD313013211521112115211121152101AF042FFC93032BFCD5037CFBC2021F05BDB4FE42AAFE0EAF05BD000000000100AF000004AA05BD000900394018071E040409031E0100020908066B011A0B03082500190A0BB80157B32195DC182B2B4EF44DFD3C4E10F64DE4003F3F3CED12392FFD313013211521112115211123AF03FBFCCC02D1FD2FC705BDB4FE42AFFD6400000100C90000019205BD00030017B8002B2BBA00010000002E2B00B800002FB800022F303113331123C9C9C905BDFA43000100970000061705BD001300CB405944014B03020601090316011903D7010513011C03140B1B0C57015803D401DB03D40BDB0C0A040A040D45028602045102970202290A280D380A380D4702570276020725640D0A0203120301020B0C120306081517171A040405B8019B400D0A1F030B06FD0C0102FD0D1F12B8019BB6130019147670182B4E10F43C4DFDE419F43939F4393918E4FD3C4E10456544E6003F173C3F3C1217394B5279B10D0CB801AAB40201020A0BB801AAB202020387054D2E7AFD047DC487052E7AFD047DC43130005D727101725D71132109012111231134363501230115141615112397011D01A601A3011ABD04FE5DC5FE5A05BE05BDFB2604DAFA4303632DD077FB2904D72D36DD34FC9D000000030050FFD505E805E5000F001B001C008A402C8705C700C701C302C808C90A064308153A0F031B3A07091C021C1C0B1231031A1E18310B191D1ED8216A66182B2B4EF44DED4E10F64DED12392F003F3FED3FED313043794032001A0D26012509250526160E18320014001232011A081832001006123201170C1532011302153201190A1B320011041B32002B2B2B2B012B2B2B2B2B2B2B2B81005D0017161110070221202726111037122100123510002322001114122103049BBB92A7C4FE95FEADC2AD94BE0174011BEBFEF1EBE4FEE0F701150E05E5FAC3FED0FEB7DAFF00E0D8014A012AD40110FAA20179F50103013CFEC7FECFF4FEB1055E000200AF000004F805BD000A001400614035690C6912790C + 7A12044814581468147A140407081E1110100A010E0F1E0100020A080206120C0409141431041A160F092500191516B8010BB3219589182B2B4EF44DFD3C4E10F64DFD11121739003F3F3CFD3C1012392F3CFD3C015D31305D132132161514062321112300272623211121323635AF0295C4F0D6DEFE32C70380784273FE74018C86A705BDDDC8ACFFFD9304B93A1FFE0372900000020060FFD504F605E5002F003000FE405E290F27232626360E3521472662267A0E7724096B08180E172502590E680EAA22030A0E3A2224220A03041C1886142F2F2B1C3A1403043A2B0930020A0E081124221F28303011182517490825281A321F25114900252F193132A0216A89182B2B4EF44DEDF4ED4E10F64DEDF4ED12392F1211393912113939003F3FED3FED12392F10ED111217392EFD335D7131304379404D282E111F0008022602262D2506251A26032C002B002D2E032C002B00052A082B011D131F2B001B15182B011918012D042B0009270B2B01250B012E042B000729042B001E121C2B0119161C2B01002B2B2B2B10102B2B01103C2B2B2B2B103C2B2B2B2B2B2B818181005D0116171633323736353427262F012627263534243332041523262726232206151417161F01161716151404232027263701011E073463FA705CB24B4CA2C7C3518C0112FBE70143BB0F315BDAB09A5A3BD0CE95518CFE9DEBFEEE9B9B03024D01DA7D4E92203EA0783332252D2C355CB7C6FEDFF5763F7394626C3220302F223B67C4F4D28C8BEE040B00000200AAFFD9052F05BD00150016003C4023170527053810030A0002053A1009160316161409250C1A18012514191718A0219570182B2B4EF44DED4E10F64DED12392F003F3FED3F3C5D3130011114171633323736351133111007022120032619012101743C59D3FD5B31CA4986FE8CFE8C8549024305BDFC74A06AA0AD5E9F038CFCC7FEF192FEF6010A92010F033900030052FFDC04470449000F003B003C00DD40382A30010A100B1B0C1C2733481069096A10073908120C09031B320724091D100C1D3B2B022E293BB73B023B322A2512100705081C2722171CB8018A4023171D1F07271D2E0B021D350B3C073C3C1C1407292AA8241A3E1B291C4A0F2738193D3EBC0197002100B9019600182B2B4EF44DEDF4ED4E10F64DE4FDC412392F003F3FED3FED3FEDED1239111217395D1112392EED2EED01111239111739313043794028363715220001192501360F2100181E1B21001620142101212200370221001A1D1721011521172101002B2B2B01103C2B2B2B2B818181005D015D2416333237363D010E010F0106070615013637363534262322070607233E01333217161511141633323637150E0123222726270E012322263534363713010E724E5F59962168326D62315301B43E150C837A8D3B21 + 0AA805F7A3BD767517250C1E112A2C265D2A160937CE7C95BDBA978ACF5A2C49A691151C060E0D1C2F67016C082C182D5C534C2A53C69B484898FD971C220303850C06422340486AB58895A41301E40000020076FFDE042505C20011001E0070402EA607A71CD71C0322080F1E02050000171D0507110A1E1D0B0B1427081A201A2E102E01290011191F208721BD5D182B2B4EF43C4DFDE4E44E10F64DED003FED3F3FED3F113911393130437940181216060A1606142601120A142601150717260113091E26002B2B012B2B8181005D1333113E01333212111402232227262715232436353426232206151417163376AF3BA460C8F9F6DA7A543239A6026691918D7BB92647C205C2FDEB4D51FEEDFEF4FEFEB03B234D897DE8BEA9DEB6D1975EB100000002003BFFE103D0044E001A001B00A7402FA719019818A808AA18034A08119B14030314061D1A070D1D140B1B071B1B1710271201032702111A1D0A2717191C1DB80107B321727D182B2B4EF44DED4E10F63C4DED3939ED12392F003F3FED3FED12392F10ED313043794034001908250C150A26000E1310260112110F1007190A26000500032101010204030B160D26000F120D2600091806260104010621012B2B2B2B01103C103C2B2B103C103C2B2B2B81005D015D001617232E012322070615141633323637330E01232202351000330702D6E317AF10727EAC4A308892708319AF1EF0BBD2FA0112D41C044EB0D76383A86DA0A1DC8977D5C50133E6011A013A0500020038FFDA03ED05C2000B001D00774032370E470E570EA704A91B05250814020F1D1000081D1D07130A021D170B052E132E102911121A1F0B271A191E1F87217242182B2B4EF44DED4E10F63C4DFDE4E4003FED3F3FED3F1139113931304379401A181C090A000101180B2600091C0B260000190226000A1B0826012B2B012B2B818181005D1216333236353426232206150017161711331123350E0123220035341233F692A17DA1A67A88A9018A53303DADA23FAC6FB3FEFAEFDE015FE8D7C9CBC3D0CA0237341E4B021DFA3E956358012DFAEA015700030048FFDA041A0449001C00240025010C40799708991AA71F03050E020F0514150E120F1514400C401408291A014B0BB603C701C603C71BD808D909D61FD823E817E8230BC711C712025C080521240F9A161D243906070716211D1C070A1D160B2507971CA71CB71CD71C0425160F251C05190A0C07110E270F1D27051A27242E072719192627D421A65D182B2B4EF44DFDE44E10F64DEDD4FD391239391112393912392F5D003F3FED3FED12392F3CFD3C10ED1112393130437940460023040503050205010504061F26111012101310141004060C25221B24260020001D26011E1D09170726000B150E26010D0E231A2126011E0521260108180A26000D + 100A2600002B2B2B2B01103C2B2B103C2B2B2B2A2B2A8101715D00715D5D00161716171615211E013332373637330E01070607062322001110003301262726232206070102B4D638361210FCEF0590978D543014B1074F3152794152C8FEEA0118E2011F0B284AAD7CA805012304476B55516C4AA2A3C55D36473B912E501C100123010601020142FE26754682B38A01DC00000000010084000003ED05C200160053402C0607070817071708270427137507750808130D0213150000111D0607150C0A0D290A1A180115290016191718B80106B3216242182B2B4EF43C4DFD3C4E10F64DED003F3C3FED3F1139390112393130005D133311363736333217161511231134272623220615112384B440335782E9532DB91E318770B6B405C2FDDC512139A3599EFD5102A37637589AD6FDC8000000000200840000013B05BD000300070036401C07E50400010006030A0917171A06010229070300190809AA216242182B2B4EF43C4DC4FD3CC44E456544E6003F3F3C3F4DED3130133311231133152384B7B7B7B7042AFBD605BDCC0000000100890000013D05BD0003002940150000030A0517171A0102290003190405AA216242182B2B4EF43C4DFD3C4E456544E6003F3F31301333112389B4B405BDFA43000000020084000003ED04490019001A005E4031B706C706020406140627147606740705140C021418101D05070006180B0A1A071A1A000C29091A1C012E18291900191B1CB80106B3216242182B2B4EF43C4DFDE44E10F64DED12392F003F3F3C3F3FED1139390112393130005D015D1333153E01333217161511231134272623220706070E011511230184AB4CAA68E4502CB71D307E40294A382D1BB401A7042F985E529F57A2FD5102A3623C640D1642357169FDCF0449000003003BFFD90421044E000C0018001900904033980896109916A504A808A610A916B808C808D704E50EE9140C3A08061D18070C1D120B190719191502270F1A1B092715191A1BB80109B321725D182B2B4EF44DED4E10F64DED12392F003F3FED3FED31304379402C001704260B1309260000110226010717092600050D0226010A140C260001100C26000816062601030E0626012B2B2B2B012B2B2B2B2B81005D241235342726232206151416331200111002212200351000330702E085304CBAA59696A3D6011EFCFEF7DDFEFC0112E70674010FA6965E94FCB2ABE403DAFEECFEF4FEFDFEAE012BFC010E01400500020076FE5504250449000E00220074402CA908A717022808201C110E061D15070F060E1D1C0B220E0227181A240A2E102E2129220F1923248721BD5D182B2B4EF43C4DFDE4E44E10F64DED003F3FED3F3FED1139123931304379401C161B00051A260426001B022601051602260101190E260003170626012B2B012B2B2B2B8181005D + 243635342726232207061514171633013315363736333212111007062322272627112302C6A72546BABB45252546BAFE2EAF36405B7BB6FEB7749A7952303BB479D3D2805CB1BB649A7C57A603B18E49283CFEE9FEFDFEA2965F351E49FDDD00000100890000029204470011004F40262703260D37034704040E0810020E0911090C270805070006110A081A13012E10291100191213B80145B321627E182B2B4EF43C4DFDE44E10E6003F3F4D3FC4FDC411123939011112393130005D1333153E0133321617152E0123220615112389AB15A46B05181D101B108892B4042FB9369B0203BE0302AF72FD980000010017FFEF0209055A00180052B50D2E0AC00E01B8013F40250416391703060E0A111A17171A0301062900150E150F031F030203FC1619191AFC21677D182B2B4EF44DFD5D39C42F3CFD3C104E456544E6002F3F3F3C4DFD3CED10FDE431301333113315231114171633323637150E012322263511233533A8B6ABAB2615310D1E141F43277E5A9191055AFED593FD4538130B01028E0908816702C593000000020080FFE303DE044900170018005E403AB814C81402091308141913191428067703D707070800050E0A00060D0A051D120B180718180B160D2E0A290C0B1A1A01291619191AD2216242182B2B4EF44DED4E10F63C4DFDE41112392F003F3FED3F3F3C391112393130005D015D0111141716333237363511331123370607062322272635112501381A3083BC4425B4AA0223346793E5532D01AF042FFD39523460A85A9D020EFBD19E3D2A5499528902D81A000001000B000003E1042F000B0035B800532B00B800002FB800032FB800062FB800092FBA000200060000111239BA000400060000111239BA000800060000111239303113331B0117090123090123011EE9F6F9DBFE970179E6FEF6FEFEE40179042FFE87017905FDFBFDDB0192FE6E022500000000010000000000006B8BED625F0F3CF500110800000000005F4D8F0000000000C9C13CF7F865FC270B9108F9000000090001000000000000000100000629FE2900000C01F865FCED0B9100010000000000000000000000000000001B05120042023900000556009705C7005A055600AF04E300AF023900C906AA009706390050055600AF0556006005C700AA04730052047300760400003B04730038047300480473008401C7008401C70089047300840473003B0473007602AA008902390017047300800400000B00000034003400B80148018C01BE01D6026202E003360402044A0514057E0600066C0736078607B407D6083208AA091C096209B20A0C0A4600010000001B00920009006B0007000200100010005D000007E80A1D00040001B800532BB800492BB8003F2BB800352BB8002B2B4118008001A6009001A600A001A600030069018B0079018B + 0089018B0099018B00040089018B0099018B00A9018B00B9018BB2040840BA0179001A014A400B041F5414191F180A0B1FD2B80106B49E1FD918E3BB0119000D00E10119B20D0009410A01A0019F0064001F01A50025017A00480028019AB3296C1F60410A01A9007001A9008001A90003008001A9000101A9B21E321FBE012C00250401001F0126001E0401B61FE7312D1FE531B80201B21FC227B80401B21FC11EB80201400F1FC01D9E1FBF1D671FBE1D671FAB27B80401B21FAA29B80401B61FA91D6C1F931EB8019AB21F921DB80101B21F911DB80101B21F751DB80201B61F6D29961F6431B8019AB21F4C96B802ABB21F391DB80156400B1F3638211F351DE41F2F27B80801400B1F2D1D4C1F2A31CD1F241DB802ABB21F201EB8012540111F1C1D931F3A1D4C1F1E1D45273A1D4527BB01AA019B002A019BB2254A1FBA019B0025017AB349293896B8017BB348283125B8017A403648289629482725294C1F252946272729482756C80784075B07410732072B072807260721071B071408120810080E080C080A08080807B801ACB23F1F06BB01AB003F001F01ABB308060805B801AEB23F1F04BB01AD003F001F01ADB70804080208000814B8FFE0B40000010014B801ABB41000000100B801ABB606100000010006B801ADB300000100B801AD401F04000001000410000001001002000001000200000001000002010802004A00B0018DB806008516763F183F123E113946443E113946443E113946443E113946443E113946443E11394660443E11394660443E11394660442B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B18011DB0964B5358B0AA1D59B0324B5358B0FF1D592B2B2B2B2B2B2B2B182B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B74752B2B2B65422B2B4B5279B376706A66456523456023456560234560B08B766818B080622020B16A704565234520B003266062636820B003266165B070236544B06A234420B176664565234520B003266062636820B003266165B066236544B0762344B10066455458B166406544B27640764523614459B36242725D456523456023456560234560B089766818B080622020B172424565234520B003266062636820B003266165B042236544B072234420B1625D4565234520B003266062636820B003266165B05D236544B0622344B1005D455458B15D406544B262406245236144592B2B2B2B456953427374B8019A2045694B20B02853B049515A58B020615944B801A6204569447500 + 00>] def + /CharStrings 27 dict dup begin + /.notdef 0 def +/space 1 def +/B 2 def +/C 3 def +/E 4 def +/F 5 def +/I 6 def +/M 7 def +/O 8 def +/P 9 def +/S 10 def +/U 11 def +/a 12 def +/b 13 def +/c 14 def +/d 15 def +/e 16 def +/h 17 def +/i 18 def +/l 19 def +/n 20 def +/o 21 def +/p 22 def +/r 23 def +/t 24 def +/u 25 def +/x 26 def + end readonly def + currentdict dup/FontName get exch definefont pop end + %APLsfntEnd + 42/FontType resourcestatus{pop pop true}{false}ifelse + {currentfile 0(%APLT1End\n)/SubFileDecode filter flushfile}if + /FontType 1 def + /FontMatrix [ 0.00048828125 0 0 0.00048828125 0 0 ] def + /FontBBox{-1947 -985 2961 2297}def + /UniqueID 4257378 def + currentdict currentfile eexec + 54544758EC884CF30C3CD503CEDBFF3839C47C3C3333173232E3FDBFF439491DB843E1924E63AA7726BBB0485AB56D93D8C0906F647A47162891E73FFC2A9873C4B1EAC5EEBDFFC4D06084FBD84139DF4583C6E259D10699944D1068C9C45667DCCCFB9B7EA01B606435EDCBD273ABAC093D14085CCBAC149BD7382E842CFE0D7FE4FD2EF589A2471F6074A80A8B675C2F7A50D63AC1EF90D787BADD11633CB01CF6EE3B37AAF9078A69AC4740E9B6525D78BBD839551A1CB80DB8682FA5E87591BBD6EE8B946063A2A58D9CA3685AB305495DC5FB5747EB8A9A059C4976C0FE4EEAB1D56FF47F1E9664ED9F4A7DAB763AF92B2F6CF2FA7DEC24710E0B9096E30F772BA7FEA9BDBE496C42ED2CEB58F54E80BDF57CE7B4DB6CCFE7182F43BF93CCA0767AF95D62C5D2C3DC6AE1E6D139F51A2C63432117F1714C5566572EE9967A715420ABDCD1D7BD74F8450B89965FCC81C6ACA565C5F3CCF91D430D1F953E4F1A645300A98DD8C47CD64555F08F422340A85404EAE0D3229C4F9336B9470CACBD6BBF3395104750A915CC6EAAC197668267B8C62D2764C8CD69FD937CA3C924D997A0EDE7964BEB9EA2F92EF70C5E5DA0AA5567765E71F2B911B3C5586B741EEB93F3C73016EC16BFF283758900903D203992EFC8BAFAF13579C602F38C926597C1DAC1BA3798797E796C89ECAEC4435602C69EF8DE4A69515109638DF86B62BEC4457DD235B018F13E50EF61B04CEB8E3062CDF2AFC8BADD47299D478A46B2E1E6448B7A26CF42AB37E06DC278FC1822864D5079D7823450BD66FA46070696AE612902D7110D04B8B5EE1B8A98821C9DD334B636A02B5BFD2C6501058034B24146B36D138AD028F43FC1155088AD80D1A7972E373240B0BE173728E4650F354743425E325CA93D97AD5D56EF3B00B546CAA18F2B3BE9E09F50602A0C419304BB6DA2D9D3F73E226DD2C697100DFB52B56B42BA63B3DF0037BA7FBF848CA880308E8E165ECE250A6C056C999D17C080E660E6FA0A953F0A4B6002AD8DCE7E2C3F89CEC0EA4E1D3BEC5751CA010A9EC6D3F7DC4A34F283C58BE5EE021488C54EA2AA6A2557C46D530D3DB24CF51E77FB40476AD68FAB792D3EE2568E4C0CA39AF599471A9F26D16ED13774EB31623760FE29BAF6345BC52E8406792F56A2039F39EDB09A5C1AD1DB825F891A1785A76F5C311FC1D53C62368D5E40C9363D9774A16EB11FA859AFD1C20C0A6756548C9970F1651419A12B7BD74E9C27B465C4B5441EB80885B61BFC5470AEADFBDD287872315681E13F300F18D31F48482BCFE1A250B9563FB655E753499C75D9E162BCA51BD726B44FEFD068FC34BE49E022681913F7418D6E93D235E4AB71005AD05C275E75FE3CC180963AA988E2888A68163914CF6A2756E8D9AB6F08A8D7805C5A0B3922BC2A76E26A10EEA93F1F09F4 + 59022907305D78480E435FA390B200AEC41FD4DBC0F52CC42C24C8D0A958F9B431402B36A67D44B01EF21BB7E2460C46E3719B66A6117A899242B7E520D6ADE930A283113296A64D1206C3AF72BC86358D8BFF0EDA828C413FD8B9B80EBA09E1472DC8E2D43CD2F6326E84358F15196F96532CA6DE5381D9DF1504B85C47813C4F156174F751E76299D2C1A44DE3A9C7B82107329BE0E97124F5C5DEAE580459DAE89AC67E7B2F93DBDB1EAD5564D5E728977C704E1B366D6746C3771DD9DDA78D6715377D5DE6C48986A00D141F1ECCB1AFD34C1DA201B048CFCD890AD169970B0A7A06F81E11213065FBBE6E504F81F30C3FC7572A7238210684361654F4B87F74C20992CF57CB3F7E5BEF22DC622163248F50AC413D5A0DF884960AC0EC6ACA1C8E12D0266A75C0FDC5EA1C35662968A40C6DE2BAC9AF1A4E1302C3F3873DF5473D31E8BCB0D1F20551E2D72D4F22608E5E8F3AE3A74197EEF93D7141B0B97412C689117EE399B03D6134400A478D3F87E5CA6143D10EAED1F4B5F57E44331684F38580CCB3DCEC3F17D453D4EA1D8D808047567D75A979604BE5049661580650EEE3D9BC1775545F8399263843A7B97ADE276678337BDE7B8186971A9E64F21F0E63FE40D3A0638BAB8DC23B4D71782102EFB10363E5336183030D92BE7F22105EE2294E4D883FC22E9E2133D7C94E9ACE69F399A4DD8D748C86AEACB2CA974797D9D25A617BB36FF85CAB5BD87B6AEEC216402B2E2456251EE27BA7712801C4064C35BE521903EAC4ABF756424C0B5177C8F25EE8F74566FD5CB51F9474E49C283113A17010ECD41A2C772F8173E056EDDC6FE7A06FB61AD2B0A1C1831974CEC94B200F5FADC4A8680B40FFB63CD679EE22AA8F553FE91F54BA56E9689561A2BC5B833DD3B3B853494A3C25CFA060FE56B41929E2C52D187124F8B1537E0C16BC82825E7E09B98C6E93F61DE210CC3A21B36037E0BB34BF7032978F12599FDD49D4CDDA9E7B212359A13C7D1CA49AB209050F1CEFD39E2EF8B599544C5020979BE5A975F43AF8482DB2121983CF455D6A71984DF311AABBE5EDD6C547DCCD108718DB627CC7DB34632E300D9665584F5705EBC8FAE438A57983D50911DFF84E11CAB9DC29A3CA40DD575843BF9C92A4C8D325EB94BEDAF73CED9FA473F0B6CB96DCE7CD0E5DD7AF7FA11119100E91E44E02A359B5D5001FFA6836294B8C68C60DC59970006BECE1D30DB063B92DCB0FA50CB7855C14A44CCC2A888D45DB7508A0D458C4F98C229E18547A90C9D838E6AA50E1353E11E7B60293BE419A985BACA01D5EFD1F113A325F229EA199D76D7B42CAA226D22CC517B94E9D3678885E25820E163B89DD923A7779C4EEFE711D4DCE5EF85DBA160C5781DE225B37A34CFF730B46320823C9C4E12BA03F7E2DD41160B25F8976213B463316F4DCFE63 + 6C4B43065A84561651F3E89C0BC375844AE2E5889F0515B9B4196C570EBE8CA7FC80A6AECE531DE949C4D3A350CC5F3E8E0141193CAB44C156D731E103A052AE2E533D467D0E4F73D803892492ECDA025F9935B495678D95E33D44E3E0112C0661BF05CA3CD685855F9959B8A5956A9A2E4529A1BCCED44A6947C0CA0D9D890EF14680B3BA8A403F21DACDE93E0ACAE0EEB33B553755744A4AE3B4AD08588E1E7DFA80673E4E33FEC013C9F61C778ED3B747B9909C265E50C9ABFC0633B62DE405F5F7817B12463A7592E4AB92F926A5FACD141677FA0CAB45C9731CC2F1E5B09A6C43BCA16551B78CFF783EE562BAA130275F1A85A5D99F2196BDBFD361724805F4CD7E0E3976081A920137DFCFA97A45824BA207ED79F2A210335D23F6E3405968DE82F5B7A58F71D4F70FC3BB98F1B578DAFB7854BB1213294A940B87C418F93D10CD0FB24433BED32F85FD508E39F6F18182B8355D12A9848EF53EE8E47B74CE440C42D9ADE0162B3A2441771E27F41F4B2E5C3579DCA85C557D8032DD4A41D04819FA0C326909572CE7D5019DE631875D46B5CC834572B2A6C43F7EBB43A8B6FD70F4A4D0A78BA1358FB4C4C7637C0293285064B1F4DECDDFFF43E091E11C42D0D8FEDF1DDE809B9AB2698279677F2C352408858004D531D777476F1BB9EC93C3293B05B26D959486F466495A37C62D14AFF05F7B22335D516AF4893C641DCB1176A10C5F8A075354F78DFBF4C3A7D53F5D2EBD0A70360F86F2FBCE9E4EB65E7C0260AB07BF7944D9E77982AE703AAFDCAB49A39539FA8E53125319BF8BE9A3B7D36C0B72151C27C5159776FB4B673EA15E96BA82C6DCDF7E56FD5A19B954C1337A46F4A627F9A1CC684BCDC5995AB1B47AECF3976C53827883FADC8CF23D9DD22182C4F3EB371F5BBA40BAC5D5E99DCD9DA6E0DC65685FAD96E45D5D6D4895F37F5AA1E552B5106638C4D28DD1CC2C65CA1EF4CCE5C12A452BBBDA59C824B9645AA507DE785948341AC51191DD15CC1CF0665A9BC12C238EF9440E0946765100B9E7B0BF3E96CD276992EF74D9FA22D4D5E185EF5C00A90BC93CEB41D24BE3589295B776B739C428B7B90B9AB5F31991A4AEBE332F5B1B21CD908D8041A9E608321E9DC96C2E252BCAF9B6D9A38632E64476A1E653D29FBA277363AA0FB795C1C1F8BDE2FF9B96626DB6CC538BE7058EB3B14E30C7CFA584C1165C0FCC4D358EA75A8FD02BDB8F48114A1F4E374873EEB387594038CC73C4660EFC4DC9B2AE9CE723D400AA8DDED28742D99E600C3CC4CB7D596BD516DD4869B35D9270A2FA483A9C4AF58FE877CD10A2AF6053E99A8A67CD39E92FA79F8BFC1698D30EADF96F1B1EDD0435B9F9B5645C1BC00D9F46579E835BC425D691A03AA3A6E2B2592E1FC36EFC950F4E393D3D182034E69F3AC37BD42F914F1864ABD478695401 + 6E9F0D2EA6B7985613653F1D429CF15DD654985D1D85547718DA2DE85B1E1E9D968E291AA646DCCDAFFD1F66475C314485ACB0808D7028660AE81524DABB9E888B655F778F97BFE6677A52EFE20E529827D78D5D54ADF9A64B0565436F614D4D9A2111E707F2D6AB21D78D23878182C2DAAEC5CAB78DD59F04F3B231DAC428F890E7054304FC94F53BF68219068A5206557AFA8D3DCFBF8D5D4F020157AA487F39FAA8C47FBB82E130FE59BFF018D56899EFD62D798EEA41329C397A54F8E81152FF8AE1F882E7978ABDA776DE0B894170756330880D471C743ECF30DF6675AC41CD9BFD653A8836A84BF05A0030E631C5AAEDDE082B9D9F4DF3264CDE434ABA59CF497DDBFFF8A47A998596647E55611DD93E5E7063B4DF02C704CB0F2375012EE8B25880429130970F4A18A2B87B5BF70F04038A00499B9FA7F39FAB1299B7FD4DBCF387EC383D3B5AB13CF9F20F75652CDF6B05668678F1D9BD19A26AB7924A608E41C25F1716CC3948451C445B95A4FC10278D97BE8B9792DF40345CC5EFF3E45E17FDAE91FE52CB00796CF34B3409FE853EF6A165E9344844DC1FF6658D88C32B1FC62962A06F9CA427169D74D1ECB1F56F91D89BF2A3CCB286EFB08AF24AD4FA5E2B0CA4D9774D023E5F9DBEAC0A5047E50C5E38310E4803CEDAA598A8FEBCBA803B4252D4E50876A5D3C31B0BFC6B1762F6402C1EB020FFDE7806891F7DBFBC7781C7D7BDC9B2B8BCAE1E460BC54FCE87308C14F9EAA4D0CCAAD987FBB07F93C1AC04E89B6054600456C8CA5EDB8E3F9F554E08F63D5864C0E4D6EF50B1D74BECA9132C4B6356DE30414957E7066E1E8B2631384FC0C3F1A48C1D1C37B1B161DB6AF6021D45E84148EE4A0DF666713D2D5F48C5FD8A9D4D7EB46C5CBCEF99CCE86D122D8D71099D996B92C2A0528007BC54AB368488963EC2AC41BF32D2C4ED7DDEF54908F050964CB0332E39FE180C7198FF94ADDFB56079744F5066BB4C59124FDE2A1FC695D1F5F99A8A8565F33100E51FCB1BE92E3AADA94ED8A15E1E86A3B1DBF2580A5841801B8A9C21FF628A8DB38521275A2E33161DB2947EFF42A86FEDF8D412CA35021CB83CBB772DB98D624AC94EB1CBBC205E32E5D58384952CA604A42455485BA848BACF556AC90A58D48A0B01DBAE479283CDA8156C366CEC7FA34E0EBD2BABD606B1D69F918A8E94BBD6EA2816CCC9DC7F2785C12B55A70BC00FBE09F45FF162389D0A43E067120A8C10A1E806AA1BA69C32C39A8ED086CDE9F299E9868B85A17B38DAE6BDD9AF8941648A9A103F4F5778F345A740D378A6CDE45BDFA0E748D99B8E37B60B65D0EEA0D93033D0C6B747B4936D20753571D8A589B644671A35BE3256AD63572F9E4D96D56E4B679DD5C12BAABE865BE9C2C1249BBC135D18E71486695772F68802F721F7B164E9E8DB264F7D7CA330 + 48 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark end + %APLT1End + %RBIEndFontSubset +/Helvetica cguidfix +/F1.1/Helvetica renmfont +[ /CIEBasedABC 4 dict dup begin +/WhitePoint [ 0.9505 1.0000 1.0891 ] def +/DecodeABC [ { 1.8008 exp } bind { 1.8008 exp } bind { 1.8008 exp } bind ] def +/MatrixABC [ 0.4295 0.2318 0.0204 0.3278 0.6722 0.1111 0.1933 0.0960 0.9578 ] def +/RangeLMN [ 0.0 0.9505 0.0 1.0000 0.0 1.0891 ] def +end ] /Cs1 exch/ColorSpace dr pop +[ /CIEBasedA 5 dict dup begin /WhitePoint [ 0.9505 1.0000 1.0891 ] def +/DecodeA { { 1.8008 exp } bind exec} bind +def +/MatrixA [ 0.9642 1.0000 0.8249 ] def +/RangeLMN [ 0.0 2.0000 0.0 2.0000 0.0 2.0000 ] def +/DecodeLMN [ { 0.9857 mul} bind { 1.0000 mul} bind { 1.3202 mul} bind ] def +end ] /Cs2 exch/ColorSpace dr pop +%%EndPageSetup +0.60000002 i +/Cs1 SC +1 1 1 sc +q +0 0 496 325 rc +-33.5 375.5 m +545.30005 375.5 l +545.30005 -379.30005 l +-33.5 -379.30005 l +h +-33.5 375.5 m +f +2 321 m +346 321 l +346 2 l +2 2 l +h +2 321 m +f +1 J +1 j +0 0 0 sc +1 0 0 -1 -33 375 cm +35 54 m +379 54 l +379 373 l +35 373 l +h +35 54 m +S +/Cs2 SC +0 sc +0 i +1 0 0 -1 174 161.5 cm +/F1.1[ 21 0 0 -21 0 0]sf +-21.010254 -139.5 m +(!"#)[ 14.006836 14.006836 0.000000 ] xS +0.60000002 i +/Cs1 SC +1 1 1 sc +CM +24 223 m +78 223 l +78 69 l +24 69 l +h +24 223 m +f +0 0 0 sc +1 0 0 -1 -33 375 cm +57 152 m +111 152 l +111 306 l +57 306 l +h +57 152 m +S +/Cs2 SC +0 sc +0 i +1 0 0 -1 51 146 cm +/F1.1[ 18 0 0 -18 0 0]sf +-18.505371 -59 m +(!"$)[ 12.005859 12.005859 0.000000 ] xS +[ +4 +4 +] 0 d +0.60000002 i +/Cs1 SC +0 0 0 sc +1 0 0 -1 -33 375 cm +120.9 199 m +155.10001 199 l +S +CM +130.10001 176 m +122.10001 179 l +122.10001 173 l +h +130.10001 176 m +f +0 J +0 j +[] 0 d +1 0 0 -1 -33 375 cm +163.10001 199 m +155.10001 196 l +155.10001 202 l +h +163.10001 199 m +S +CM +79.900002 176 m +87.900002 173 l +87.900002 179 l +h +79.900002 176 m +f +1 0 0 -1 -33 375 cm +112.9 199 m +120.9 202 l +120.9 196 l +h +112.9 199 m +S +1 J +1 j +[ +4 +4 +] 0 d +120.9 210 m +155.10001 210 l +S +CM +130.10001 165 m +122.10001 168 l +122.10001 162 l +h +130.10001 165 m +f +0 J +0 j +[] 0 d +1 0 0 -1 -33 375 cm +163.10001 210 m +155.10001 207 l +155.10001 213 l +h +163.10001 210 m +S +CM +79.900002 165 m +87.900002 162 l +87.900002 168 l +h +79.900002 165 m +f +1 0 0 -1 -33 375 cm +112.9 210 m +120.9 213 l +120.9 207 l +h +112.9 210 m +S +1 J +1 j +[ +4 +4 +] 0 d +120.9 221 m +155.10001 221 l +S +CM +130.10001 154 m +122.10001 157 l +122.10001 151 l +h +130.10001 154 m +f +0 J +0 j +[] 0 d +1 0 0 -1 -33 375 cm +163.10001 221 m +155.10001 218 l +155.10001 224 l +h +163.10001 221 m +S +CM +79.900002 154 m +87.900002 151 l +87.900002 157 l +h +79.900002 154 m +f +1 0 0 -1 -33 375 cm +112.9 221 m +120.9 224 l +120.9 218 l +h +112.9 221 m +S +1 J +1 j +[ +4 +4 +] 0 d +120.9 232 m +155.10001 232 l +S +CM +130.10001 143 m +122.10001 146 l +122.10001 140 l +h +130.10001 143 m +f +0 J +0 j +[] 0 d +1 0 0 -1 -33 375 cm +163.10001 232 m +155.10001 229 l +155.10001 235 l +h +163.10001 232 m +S +CM +79.900002 143 m +87.900002 140 l +87.900002 146 l +h +79.900002 143 m +f +1 0 0 -1 -33 375 cm +112.9 232 m +120.9 235 l +120.9 229 l +h +112.9 232 m +S +1 J +1 j +[ +4 +4 +] 0 d +120.9 243 m +155.10001 243 l +S +CM +130.10001 132 m +122.10001 135 l +122.10001 129 l +h +130.10001 132 m +f +0 J +0 j +[] 0 d +1 0 0 -1 -33 375 cm +163.10001 243 m +155.10001 240 l +155.10001 246 l +h +163.10001 243 m +S +CM +79.900002 132 m +87.900002 129 l +87.900002 135 l +h +79.900002 132 m +f +1 0 0 -1 -33 375 cm +112.9 243 m +120.9 246 l +120.9 240 l +h +112.9 243 m +S +1 J +1 j +[ +4 +4 +] 0 d +120.9 254 m +155.10001 254 l +S +CM +130.10001 121 m +122.10001 124 l +122.10001 118 l +h +130.10001 121 m +f +0 J +0 j +[] 0 d +1 0 0 -1 -33 375 cm +163.10001 254 m +155.10001 251 l +155.10001 257 l +h +163.10001 254 m +S +CM +79.900002 121 m +87.900002 118 l +87.900002 124 l +h +79.900002 121 m +f +1 0 0 -1 -33 375 cm +112.9 254 m +120.9 257 l +120.9 251 l +h +112.9 254 m +S +1 1 1 sc +CM +132 274 m +313 274 l +313 18 l +132 18 l +h +132 274 m +f +1 J +1 j +0 0 0 sc +1 0 0 -1 -33 375 cm +165 101 m +346 101 l +346 357 l +165 357 l +h +165 101 m +S +/Cs2 SC +0 sc +0 i +1 0 0 -1 222.5 146 cm +-19.494141 -110 m +(%&')[ 14.994141 10.995117 0.000000 ] xS +0.60000002 i +/Cs1 SC +1 1 1 sc +CM +166.5 224 m +194.5 224 l +194.5 196 l +166.5 196 l +h +166.5 224 m +f +0 0 0 sc +1 0 0 -1 -33 375 cm +199.5 151 m +227.5 151 l +227.5 179 l +199.5 179 l +h +199.5 151 m +S +1 1 1 sc +CM +194.5 224 m +222.5 224 l +222.5 196 l +194.5 196 l +h +194.5 224 m +f +0 0 0 sc +1 0 0 -1 -33 375 cm +227.5 151 m +255.5 151 l +255.5 179 l +227.5 179 l +h +227.5 151 m +S +1 1 1 sc +CM +222.5 224 m +250.5 224 l +250.5 196 l +222.5 196 l +h +222.5 224 m +f +0 0 0 sc +1 0 0 -1 -33 375 cm +255.5 151 m +283.5 151 l +283.5 179 l +255.5 179 l +h +255.5 151 m +S +1 1 1 sc +CM +250.5 224 m +278.5 224 l +278.5 196 l +250.5 196 l +h +250.5 224 m +f +0 0 0 sc +1 0 0 -1 -33 375 cm +283.5 151 m +311.5 151 l +311.5 179 l +283.5 179 l +h +283.5 151 m +S +/Cs2 SC +0 sc +0 i +1 0 0 -1 222.5 236 cm +/F1.1[ 13 0 0 -13 0 0]sf +-47.699463 5 m +(\(\)*+,\)-.%/01*+2)[ 3.611816 7.229980 7.229980 7.229980 7.229980 7.229980 7.229980 3.611816 10.829102 7.229980 2.888184 2.888184 7.229980 7.229980 0.000000 ] xS +0.60000002 i +/Cs1 SC +1 1 1 sc +CM +208.5 160.5 m +236.5 160.5 l +236.5 132.5 l +208.5 132.5 l +h +208.5 160.5 m +f +0 0 0 sc +1 0 0 -1 -33 375 cm +241.5 214.5 m +269.5 214.5 l +269.5 242.5 l +241.5 242.5 l +h +241.5 214.5 m +S +1 1 1 sc +CM +208.5 97 m +236.5 97 l +236.5 69 l +208.5 69 l +h +208.5 97 m +f +0 0 0 sc +1 0 0 -1 -33 375 cm +241.5 278 m +269.5 278 l +269.5 306 l +241.5 306 l +h +241.5 278 m +S +/Cs2 SC +0 sc +0 i +1 0 0 -1 222.5 172 cm +-52.755371 5 m +(3,4*+,\)-.%/01*+2)[ 10.111816 7.229980 3.611816 7.229980 7.229980 7.229980 7.229980 7.229980 3.611816 10.829102 7.229980 2.888184 2.888184 7.229980 7.229980 0.000000 ] xS +1 0 0 -1 222.5 57 cm +-78.768066 5 m +(3,4*+,\)-.\(\)4566,74.%/01*+2)[ 10.111816 7.229980 3.611816 7.229980 7.229980 7.229980 7.229980 7.229980 3.611816 3.611816 7.229980 3.611816 7.229980 4.329102 4.329102 7.229980 7.229980 3.611816 3.611816 10.829102 7.229980 2.888184 2.888184 7.229980 7.229980 0.000000 ] xS +0.60000002 i +/Cs1 SC +0 0 0 sc +1 0 0 -1 -33 375 cm +140 204.5 m +199.05957 172.7605 l +S +/Cs2 SC +0 sc +0 i +1 0 0 -1 104 198 cm +-22.769043 5 m +(89/\)\)51)[ 6.500000 7.229980 7.229980 7.229980 7.229980 7.229980 0.000000 ] xS +0.60000002 i +/Cs1 SC +0 0 0 sc +1 0 0 -1 -33 375 cm +86 227 m +231.60001 227 l +S +CM +206.60001 148 m +198.60001 151 l +198.60001 145 l +h +206.60001 148 m +f +0 J +0 j +1 0 0 -1 -33 375 cm +239.60001 227 m +231.60001 224 l +231.60001 230 l +h +239.60001 227 m +S +1 J +1 j +140 248 m +232.40045 287.60019 l +S +CM +206.75363 84.248444 m +200.58223 90.157227 l +198.21872 84.642365 l +h +206.75363 84.248444 m +f +0 J +0 j +1 0 0 -1 -33 375 cm +239.75363 290.75156 m +233.58223 284.84277 l +231.21872 290.35764 l +h +239.75363 290.75156 m +S +1 J +1 j +86 248 m +140 248 l +S +95.900002 204.5 m +140 204.5 l +S +CM +54.900002 170.5 m +62.900002 167.5 l +62.900002 173.5 l +h +54.900002 170.5 m +f +0 J +0 j +1 0 0 -1 -33 375 cm +87.900002 204.5 m +95.900002 207.5 l +95.900002 201.5 l +h +87.900002 204.5 m +S +1 1 1 sc +CM +371 322.5 m +413 322.5 l +413 3.5 l +371 3.5 l +h +371 322.5 m +f +1 J +1 j +0 0 0 sc +1 0 0 -1 -33 375 cm +404 52.5 m +446 52.5 l +446 371.5 l +404 371.5 l +h +404 52.5 m +S +/Cs2 SC +0 sc +0 i +1 0 0 -1 392 163 cm +/F1.1[ 15 0 0 -15 0 0]sf +-12.088623 6 m +(#\(:)[ 10.004884 4.167480 0.000000 ] xS +0.60000002 i +/Cs1 SC +0 0 0 sc +1 0 0 -1 -33 375 cm +321.89999 165 m +464 165 l +S +CM +280.89999 210 m +288.89999 207 l +288.89999 213 l +h +280.89999 210 m +f +0 J +0 j +1 0 0 -1 -33 375 cm +313.89999 165 m +321.89999 168 l +321.89999 162 l +h +313.89999 165 m +S +1 J +1 j +270 292 m +455.10001 292 l +S +CM +430.10001 83 m +422.10001 86 l +422.10001 80 l +h +430.10001 83 m +f +0 J +0 j +1 0 0 -1 -33 375 cm +463.10001 292 m +455.10001 289 l +455.10001 295 l +h +463.10001 292 m +S +1 J +1 j +270 228.5 m +455.10001 228.5 l +S +CM +430.10001 146.5 m +422.10001 149.5 l +422.10001 143.5 l +h +430.10001 146.5 m +f +0 J +0 j +1 0 0 -1 -33 375 cm +463.10001 228.5 m +455.10001 225.5 l +455.10001 231.5 l +h +463.10001 228.5 m +S +1 1 1 sc +CM +438 321 m +494 321 l +494 2 l +438 2 l +h +438 321 m +f +1 J +1 j +0 0 0 sc +1 0 0 -1 -33 375 cm +471 54 m +527 54 l +527 373 l +471 373 l +h +471 54 m +S +/Cs2 SC +0 sc +0 i +1 0 0 -1 466 161.5 cm +-15.007324 6 m +(""#)[ 10.004884 10.004884 0.000000 ] xS +ep +end +%%Trailer +%%EOF
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/pic/emblem-bitmap.eps Wed Feb 22 14:32:16 2012 +0900 @@ -0,0 +1,1317 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%HiResBoundingBox: 0.000000 0.000000 451.000000 246.000000 +%APL_DSC_Encoding: UTF8 +%%Title: (Unknown) +%%Creator: (Unknown) +%%CreationDate: (Unknown) +%%For: (Unknown) +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%Pages: 1 +%%BoundingBox: 0 0 451 246 +%%EndComments +%%BeginProlog +%%BeginFile: cg-pdf.ps +%%Copyright: Copyright 2000-2004 Apple Computer Incorporated. +%%Copyright: All Rights Reserved. +currentpacking true setpacking +/cg_md 141 dict def +cg_md begin +/L3? languagelevel 3 ge def +/bd{bind def}bind def +/ld{load def}bd +/xs{exch store}bd +/xd{exch def}bd +/cmmtx matrix def +mark +/sc/setcolor +/scs/setcolorspace +/dr/defineresource +/fr/findresource +/T/true +/F/false +/d/setdash +/w/setlinewidth +/J/setlinecap +/j/setlinejoin +/M/setmiterlimit +/i/setflat +/rc/rectclip +/rf/rectfill +/rs/rectstroke +/f/fill +/f*/eofill +/sf/selectfont +/s/show +/xS/xshow +/yS/yshow +/xyS/xyshow +/S/stroke +/m/moveto +/l/lineto +/c/curveto +/h/closepath +/n/newpath +/q/gsave +/Q/grestore +counttomark 2 idiv +{ld}repeat pop +/SC{ + /ColorSpace fr scs +}bd +/sopr /setoverprint where{pop/setoverprint}{/pop}ifelse ld +/soprm /setoverprintmode where{pop/setoverprintmode}{/pop}ifelse ld +/cgmtx matrix def +/sdmtx{cgmtx currentmatrix pop}bd +/CM {cgmtx setmatrix}bd +/cm {cmmtx astore CM concat}bd +/W{clip newpath}bd +/W*{eoclip newpath}bd +statusdict begin product end dup (HP) anchorsearch{ + pop pop pop + true +}{ + pop + (hp) anchorsearch{ + pop pop true + }{ + pop false + }ifelse +}ifelse +{ + { + { + pop pop + (0)dup 0 4 -1 roll put + F charpath + }cshow + } +}{ + {F charpath} +}ifelse +/cply exch bd +/cps {cply stroke}bd +/pgsave 0 def +/bp{/pgsave save store}bd +/ep{pgsave restore showpage}def +/re{4 2 roll m 1 index 0 rlineto 0 exch rlineto neg 0 rlineto h}bd +/scrdict 10 dict def +/scrmtx matrix def +/patarray 0 def +/createpat{patarray 3 1 roll put}bd +/makepat{ +scrmtx astore pop +gsave +initgraphics +CM +patarray exch get +scrmtx +makepattern +grestore +setpattern +}bd +/cg_BeginEPSF{ + userdict save/cg_b4_Inc_state exch put + userdict/cg_endepsf/cg_EndEPSF load put + count userdict/cg_op_count 3 -1 roll put + countdictstack dup array dictstack userdict/cg_dict_array 3 -1 roll put + 3 sub{end}repeat + /showpage {} def + 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin + 10 setmiterlimit [] 0 setdash newpath + false setstrokeadjust false setoverprint +}bd +/cg_EndEPSF{ + countdictstack 3 sub { end } repeat + cg_dict_array 3 1 index length 3 sub getinterval + {begin}forall + count userdict/cg_op_count get sub{pop}repeat + userdict/cg_b4_Inc_state get restore + F setpacking +}bd +/cg_biproc{currentfile/RunLengthDecode filter}bd +/cg_aiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}bd +/ImageDataSource 0 def +L3?{ + /cg_mibiproc{pop pop/ImageDataSource{cg_biproc}def}bd + /cg_miaiproc{pop pop/ImageDataSource{cg_aiproc}def}bd +}{ + /ImageBandMask 0 def + /ImageBandData 0 def + /cg_mibiproc{ + string/ImageBandMask xs + string/ImageBandData xs + /ImageDataSource{[currentfile/RunLengthDecode filter dup ImageBandMask/readstring cvx + /pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd + }bd + /cg_miaiproc{ + string/ImageBandMask xs + string/ImageBandData xs + /ImageDataSource{[currentfile/ASCII85Decode filter/RunLengthDecode filter + dup ImageBandMask/readstring cvx + /pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd + }bd +}ifelse +/imsave 0 def +/BI{save/imsave xd mark}bd +/EI{imsave restore}bd +/ID{ +counttomark 2 idiv +dup 2 add +dict begin +{def} repeat +pop +/ImageType 1 def +/ImageMatrix[Width 0 0 Height neg 0 Height]def +currentdict dup/ImageMask known{ImageMask}{F}ifelse exch +L3?{ + dup/MaskedImage known + { + pop + << + /ImageType 3 + /InterleaveType 2 + /DataDict currentdict + /MaskDict + << /ImageType 1 + /Width Width + /Height Height + /ImageMatrix ImageMatrix + /BitsPerComponent 1 + /Decode [0 1] + currentdict/Interpolate known + {/Interpolate Interpolate}if + >> + >> + }if +}if +exch +{imagemask}{image}ifelse +end +}bd +/cguidfix{statusdict begin mark version end +{cvr}stopped{cleartomark 0}{exch pop}ifelse +2012 lt{dup findfont dup length dict begin +{1 index/FID ne 2 index/UniqueID ne and +{def} {pop pop} ifelse}forall +currentdict end definefont pop +}{pop}ifelse +}bd +/t_array 0 def +/t_i 0 def +/t_c 1 string def +/x_proc{ + exch t_array t_i get add exch moveto + /t_i t_i 1 add store +}bd +/y_proc{ + t_array t_i get add moveto + /t_i t_i 1 add store +}bd +/xy_proc{ + + t_array t_i 2 copy 1 add get 3 1 roll get + 4 -1 roll add 3 1 roll add moveto + /t_i t_i 2 add store +}bd +/sop 0 def +/cp_proc/x_proc ld +/base_charpath +{ + /t_array xs + /t_i 0 def + { + t_c 0 3 -1 roll put + currentpoint + t_c cply sop + cp_proc + }forall + /t_array 0 def +}bd +/sop/stroke ld +/nop{}def +/xsp/base_charpath ld +/ysp{/cp_proc/y_proc ld base_charpath/cp_proc/x_proc ld}bd +/xysp{/cp_proc/xy_proc ld base_charpath/cp_proc/x_proc ld}bd +/xmp{/sop/nop ld /cp_proc/x_proc ld base_charpath/sop/stroke ld}bd +/ymp{/sop/nop ld /cp_proc/y_proc ld base_charpath/sop/stroke ld}bd +/xymp{/sop/nop ld /cp_proc/xy_proc ld base_charpath/sop/stroke ld}bd +/refnt{ +findfont dup length dict copy dup +/Encoding 4 -1 roll put +definefont pop +}bd +/renmfont{ +findfont dup length dict copy definefont pop +}bd +L3? dup dup{save exch}if +/Range 0 def +/DataSource 0 def +/val 0 def +/nRange 0 def +/mulRange 0 def +/d0 0 def +/r0 0 def +/di 0 def +/ri 0 def +/a0 0 def +/a1 0 def +/r1 0 def +/r2 0 def +/dx 0 def +/Nsteps 0 def +/sh3tp 0 def +/ymax 0 def +/ymin 0 def +/xmax 0 def +/xmin 0 def +/setupFunEval +{ + begin + /nRange Range length 2 idiv store + /mulRange + + [ + 0 1 nRange 1 sub + { + 2 mul/nDim2 xd + Range nDim2 get + Range nDim2 1 add get + 1 index sub + + 255 div + exch + }for + ]store + end +}bd +/FunEval +{ + begin + + nRange mul /val xd + + 0 1 nRange 1 sub + { + dup 2 mul/nDim2 xd + val + add DataSource exch get + mulRange nDim2 get mul + mulRange nDim2 1 add get + add + }for + end +}bd +/max +{ + 2 copy lt + {exch pop}{pop}ifelse +}bd +/sh2 +{ + /Coords load aload pop + 3 index 3 index translate + + 3 -1 roll sub + 3 1 roll exch + sub + 2 copy + dup mul exch dup mul add sqrt + dup + scale + atan + + rotate + + /Function load setupFunEval + + + clippath {pathbbox}stopped {0 0 0 0}if newpath + /ymax xs + /xmax xs + /ymin xs + /xmin xs + currentdict/Extend known + { + /Extend load 0 get + { + 0/Function load FunEval sc + xmin ymin xmin abs ymax ymin sub rectfill + }if + }if + + /Nsteps/Function load/Size get 0 get 1 sub store + /dx 1 Nsteps div store + gsave + /di ymax ymin sub store + /Function load + + 0 1 Nsteps + { + 1 index FunEval sc + 0 ymin dx di rectfill + dx 0 translate + }for + pop + grestore + currentdict/Extend known + { + /Extend load 1 get + { + Nsteps/Function load FunEval sc + 1 ymin xmax 1 sub abs ymax ymin sub rectfill + }if + }if +}bd +/shp +{ + 4 copy + + dup 0 gt{ + 0 exch a1 a0 arc + }{ + pop 0 moveto + }ifelse + dup 0 gt{ + 0 exch a0 a1 arcn + }{ + pop 0 lineto + }ifelse + + fill + + dup 0 gt{ + 0 exch a0 a1 arc + }{ + pop 0 moveto + }ifelse + dup 0 gt{ + 0 exch a1 a0 arcn + }{ + pop 0 lineto + }ifelse + + fill +}bd +/calcmaxs +{ + + xmin dup mul ymin dup mul add sqrt + xmax dup mul ymin dup mul add sqrt + xmin dup mul ymax dup mul add sqrt + xmax dup mul ymax dup mul add sqrt + max max max +}bd +/sh3 +{ + /Coords load aload pop + 5 index 5 index translate + 3 -1 roll 6 -1 roll sub + 3 -1 roll 5 -1 roll sub + 2 copy dup mul exch dup mul add sqrt + /dx xs + 2 copy 0 ne exch 0 ne or + { + + exch atan rotate + }{ + pop pop + }ifelse + + /r2 xs + /r1 xs + /Function load + dup/Size get 0 get 1 sub + /Nsteps xs + setupFunEval + + + + + + dx r2 add r1 lt{ + + 0 + }{ + dx r1 add r2 le + { + 1 + }{ + r1 r2 eq + { + 2 + }{ + 3 + }ifelse + }ifelse + }ifelse + /sh3tp xs + clippath {pathbbox}stopped {0 0 0 0}if + newpath + /ymax xs + /xmax xs + /ymin xs + /xmin xs + + dx dup mul r2 r1 sub dup mul sub dup 0 gt + { + sqrt r2 r1 sub atan + /a0 exch 180 exch sub store + /a1 a0 neg store + }{ + pop + /a0 0 store + /a1 360 store + }ifelse + currentdict/Extend known + { + /Extend load 0 get r1 0 gt and + { + 0/Function load FunEval sc + + + + + { + { + dx 0 r1 360 0 arcn + xmin ymin moveto + xmax ymin lineto + xmax ymax lineto + xmin ymax lineto + xmin ymin lineto + eofill + } + { + r1 0 gt{0 0 r1 0 360 arc fill}if + } + { + + + + + 0 r1 xmin abs r1 add neg r1 shp + } + { + + + r2 r1 gt{ + + 0 r1 + r1 neg r2 r1 sub div dx mul + 0 + shp + }{ + + + + 0 r1 calcmaxs + dup + + r2 add dx mul dx r1 r2 sub sub div + neg + exch 1 index + abs exch sub + shp + }ifelse + } + }sh3tp get exec + }if + }if + + /d0 0 store + /r0 r1 store + /di dx Nsteps div store + /ri r2 r1 sub Nsteps div store + /Function load + 0 1 Nsteps + { + 1 index FunEval sc + d0 di add r0 ri add d0 r0 shp + { + + d0 0 r0 a1 a0 arc + d0 di add 0 r0 ri add a0 a1 arcn + fill + + + d0 0 r0 a0 a1 arc + d0 di add 0 r0 ri add a1 a0 arcn + fill + }pop + + + /d0 d0 di add store + /r0 r0 ri add store + }for + pop + + currentdict/Extend known + { + /Extend load 1 get r2 0 gt and + { + Nsteps/Function load FunEval sc + + + + + { + { + dx 0 r2 0 360 arc fill + } + { + dx 0 r2 360 0 arcn + xmin ymin moveto + xmax ymin lineto + xmax ymax lineto + xmin ymax lineto + xmin ymin lineto + eofill + } + { + + + xmax abs r1 add r1 dx r1 shp + } + { + + r2 r1 gt{ + + + + calcmaxs dup + + r1 add dx mul dx r2 r1 sub sub div + exch 1 index + exch sub + dx r2 + shp + }{ + + r1 neg r2 r1 sub div dx mul + 0 + dx + r2 + shp + }ifelse + } + } + sh3tp get exec + }if + }if +}bd +/sh +{ + begin + /ShadingType load dup dup 2 eq exch 3 eq or + { + gsave + newpath + /ColorSpace load scs + currentdict/BBox known + { + /BBox load aload pop + 2 index sub + 3 index + 3 -1 roll exch sub + exch rectclip + }if + 2 eq + {sh2}{sh3}ifelse + grestore + }{ + + pop + (DEBUG: shading type unimplemented\n)print flush + }ifelse + end +}bd +{restore}if not dup{save exch}if + L3?{ + /sh/shfill ld + /csq/clipsave ld + /csQ/cliprestore ld + }if +{restore}if +end +setpacking +%%EndFile +%%EndProlog +%%BeginSetup +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 0 0 451 246 +%%BeginPageSetup +cg_md begin +bp +sdmtx +[ /CIEBasedA 5 dict dup begin /WhitePoint [ 0.9505 1.0000 1.0891 ] def +/DecodeA { { 1.8008 exp } bind exec} bind +def +/MatrixA [ 0.9642 1.0000 0.8249 ] def +/RangeLMN [ 0.0 2.0000 0.0 2.0000 0.0 2.0000 ] def +/DecodeLMN [ { 0.9857 mul} bind { 1.0000 mul} bind { 1.3202 mul} bind ] def +end ] /Cs1 exch/ColorSpace dr pop +[ /CIEBasedABC 4 dict dup begin +/WhitePoint [ 0.9505 1.0000 1.0891 ] def +/DecodeABC [ { 1.8008 exp } bind { 1.8008 exp } bind { 1.8008 exp } bind ] def +/MatrixABC [ 0.4295 0.2318 0.0204 0.3278 0.6722 0.1111 0.1933 0.0960 0.9578 ] def +/RangeLMN [ 0.0 0.9505 0.0 1.0000 0.0 1.0891 ] def +end ] /Cs2 exch/ColorSpace dr pop +%%EndPageSetup +/Cs1 SC +1 sc +q +0 0 451 246 rc +0 246 m +451 246 l +451 0 l +0 0 l +h +f +0.60000002 i +0 0 0 1 setcmykcolor +111.76596 202.81165 m +110.20593 201.28641 108.88751 199.56763 107.90891 197.71027 c +105.75609 193.62228 104.43982 188.83307 104.92006 184.19055 c +105.65408 177.10065 109.19324 170.87027 113.39337 165.2901 c +117.81967 159.41132 122.82057 153.96204 128.0706 148.81357 c +132.22687 144.7374 136.60381 140.90536 141.06769 137.17297 c +141.06769 137.17297 142.23466 138.25497 143.56769 140.08899 c +144.7249 141.68073 145.88605 144.05676 146.41486 145.34192 c +150.37337 154.9621 152.95833 166.61832 151.86409 177.01877 c +151.08528 184.41821 149.36505 193.2063 145.28447 199.55975 c +142.24835 204.2872 137.63116 208.65149 131.92557 209.64954 c +124.93436 210.87225 116.99205 207.9231 111.76596 202.81165 c +h +162.11165 135.12994 m +170.23468 135.33896 178.40063 135.58899 186.61853 136.04599 c +188.98267 136.17685 191.36844 136.32138 193.73473 136.42294 c +204.24261 136.86923 214.77298 137.63583 224.73029 141.28235 c +233.90622 144.64169 242.45691 149.88193 246.46088 159.18472 c +248.0799 162.94824 248.76358 166.97955 250.19727 170.79803 c +251.82413 175.12616 255.04889 179.95609 259.66974 181.34387 c +263.72458 182.56262 268.46881 181.97876 272.03717 179.64764 c +279.47263 174.78925 282.41602 163.87802 281.05457 155.45227 c +279.57031 146.26083 274.496 137.81165 267.76373 131.47177 c +261.26361 125.35068 252.97644 122.02249 244.59564 119.3194 c +231.53696 115.10651 217.29672 115.34085 203.71909 114.73639 c +199.6897 114.55768 195.65649 114.44049 191.62331 114.50882 c +188.52759 114.56158 185.28929 114.51471 182.13893 114.55185 c +179.00804 114.58795 175.86066 114.88968 172.73131 114.70413 c +172.66832 114.70026 172.24203 114.62604 172.21127 114.66315 c +172.52719 114.27838 173.17564 114.04202 173.58878 113.78033 c +174.22107 113.37799 174.84119 112.95609 175.45346 112.52448 c +176.67123 111.66608 177.85764 110.76471 179.05511 109.87994 c +184.33423 105.97366 188.78732 100.96576 192.39304 95.495056 c +193.37354 94.008759 194.29126 92.483307 195.14378 90.920837 c +198.00034 85.681732 199.96323 79.916992 201.0238 74.049805 c +201.17722 73.204102 201.31087 72.350525 201.42233 71.491211 c +202.42799 63.491272 200.82846 55.491089 197.52199 47.530334 c +197.23871 46.874023 196.93974 46.225525 196.62915 45.583008 c +193.75339 39.657104 189.60008 34.225586 184.64482 29.889587 c +182.91055 28.372009 181.07347 26.969543 179.1214 25.745117 c +178.06866 25.086792 176.98563 24.479309 175.8831 23.908997 c +169.46075 20.584839 162.50714 18.373901 155.36555 17.262634 c +147.92755 16.105408 140.30402 16.016479 132.92412 17.62384 c +131.05498 18.030212 129.20732 18.548828 127.39432 19.160034 c +113.15013 23.964783 102.26048 32.213928 90.798065 41.583008 c +83.572571 47.488281 74.716164 52.213806 65.717979 54.723572 c +55.072914 57.693237 43.733055 57.680542 32.76738 57.905212 c +26.310265 58.037231 19.29364 59.068359 15.115433 64.551758 c +12.409317 68.104492 10.42749 72.704956 10.885803 77.248077 c +11.160706 79.973694 12.191513 82.87796 13.414703 85.323151 c +15.014771 88.524475 17.414612 90.923889 20.187286 92.944366 c +21.653442 93.907196 23.193993 94.690491 24.780807 95.313568 c +41.649223 102.67688 59.925621 93.364258 73.610123 83.557495 c +82.079376 77.487366 90.180389 70.953979 97.969452 64.036194 c +100.23077 62.028198 102.47234 59.998962 104.71471 57.969788 c +110.35907 52.860291 116.37869 48.147461 123.13553 44.592773 c +125.09991 43.559448 127.11258 42.618103 129.16484 41.7724 c +132.99931 40.193298 136.96854 38.637573 141.11601 38.161011 c +149.60187 37.18634 159.06671 39.811462 165.50375 45.536133 c +171.93393 51.254883 174.67804 59.965698 173.7944 68.381836 c +172.3802 81.850555 163.38118 92.567352 153.59015 101.21097 c +149.90558 104.4639 146.02911 107.54395 141.98418 110.3389 c +141.6761 110.55179 138.96027 108.39362 138.60722 108.18069 c +137.2664 107.37015 135.85674 106.67194 134.40215 106.09085 c +131.48076 104.92291 128.36797 104.19437 125.23221 103.94052 c +112.61497 102.92383 96.615051 111.72369 99.815186 126.9249 c +100.64093 130.85846 104.633 135.02448 108.60287 135.72958 c +109.86151 135.95227 109.98706 136.00204 111.25516 135.92291 c +111.60959 135.90048 113.02081 135.77548 113.37578 135.76862 c +113.08412 135.77448 107.7858 140.24911 107.56773 140.42291 c +99.118774 147.11337 95.066101 150.69632 88.644699 159.43671 c +86.852264 161.87509 85.236496 164.44745 83.840698 167.13388 c +80.844009 172.89948 78.339996 179.41907 78.376251 186.00302 c +78.417107 193.60474 80.489578 201.09485 84.408051 207.59888 c +86.442642 210.9758 88.840042 214.15152 91.451996 217.10263 c +95.652679 221.84894 100.86171 225.69852 106.44032 228.677 c +113.30977 232.34485 120.92508 234.83337 128.73125 235.2688 c +141.47881 235.98163 153.0755 230.3176 161.30014 220.76483 c +163.36995 218.3606 165.3055 215.68771 166.88071 212.92993 c +169.13704 208.97876 170.81528 204.74146 172.17075 200.40546 c +176.40068 186.87128 175.66721 172.08313 172.35725 158.42877 c +171.40366 154.49338 170.10141 150.58994 168.48178 146.8761 c +166.90024 143.24911 164.90852 139.82919 162.88947 136.43271 c +162.81282 136.30377 162.28694 135.14172 162.11165 135.12994 c +h +162.11165 135.12994 m +f +244.69958 75.160583 m +244.70056 73.28949 243.17224 71.757202 241.30115 71.754333 c +218.703 71.721069 l +216.8324 71.718201 215.29965 73.246521 215.29721 75.117554 c +215.26599 98.200592 l +215.26355 100.07172 216.54239 101.60199 218.10828 101.60199 c +219.67419 101.60199 220.95496 100.07172 220.95496 98.200592 c +220.95496 79.417389 l +220.95496 77.546295 222.48572 76.016052 224.35681 76.016052 c +235.55701 76.016052 l +237.4281 76.016052 238.95834 77.546295 238.95834 79.417389 c +238.95834 98.200592 l +238.95834 100.07172 240.24448 101.60199 241.81577 101.60199 c +243.38708 101.60199 244.67517 100.07172 244.67615 98.200592 c +244.69958 75.160583 l +h +244.69958 75.160583 m +f +270.87292 75.10437 m +270.87292 73.233276 269.58871 71.703003 268.01743 71.703003 c +266.44617 71.703003 265.16098 73.233276 265.16098 75.10437 c +265.16098 87.907074 l +265.16098 89.778168 263.63071 91.308441 261.75964 91.308441 c +257.87683 91.308441 l +256.00571 91.308441 254.47543 89.778168 254.47543 87.907074 c +254.47543 75.10437 l +254.47543 73.233276 253.19513 71.703003 251.62973 71.703003 c +250.0643 71.703003 248.784 73.233276 248.784 75.10437 c +248.784 92.220551 l +248.784 94.091614 250.3143 95.619995 252.18539 95.618011 c +267.46277 95.597504 l +269.33386 95.595551 270.86511 94.063293 270.86511 92.192261 c +270.87292 75.10437 l +h +270.87292 75.10437 m +f +282.52484 75.10437 m +282.52484 73.233215 281.23874 71.703003 279.66742 71.703003 c +278.09613 71.703003 276.81 73.233215 276.81 75.10437 c +276.81 75.10437 276.81 86.20108 276.81 86.20108 c +276.81 88.072113 278.09613 89.602448 279.66742 89.602448 c +281.23874 89.602448 282.52484 88.072113 282.52484 86.20108 c +282.52484 86.20108 282.52484 75.10437 282.52484 75.10437 c +h +282.52484 98.546753 m +282.52484 96.902222 281.23874 95.556488 279.66742 95.556488 c +278.09613 95.556488 276.81 96.902222 276.81 98.546753 c +276.81 100.19128 278.09613 101.53699 279.66742 101.53699 c +281.23874 101.53699 282.52484 100.19128 282.52484 98.546753 c +h +282.52484 98.546753 m +f +302.95154 75.026672 m +302.54529 73.200439 300.68201 71.705383 298.81091 71.705383 c +294.19763 71.703369 l +292.32654 71.703369 290.46323 73.196533 290.05502 75.022705 c +286.19958 92.301056 l +285.79135 94.127228 286.7435 95.621338 288.31482 95.621338 c +289.88608 95.621338 291.57455 94.144806 292.06674 92.340118 c +295.62338 79.307922 l +296.11557 77.503204 296.91345 77.506165 297.39587 79.313751 c +300.87634 92.364502 l +301.35873 94.17215 303.05505 95.644806 304.64587 95.636993 c +306.23666 95.628174 307.20541 94.127228 306.79919 92.301056 c +302.95154 75.026672 l +h +302.95154 75.026672 m +f +333.70007 84.822266 m +333.70007 82.951172 332.1698 81.420868 330.29868 81.420868 c +316.22058 81.420868 l +314.34949 81.420868 312.82605 82.351532 312.83386 83.488312 c +312.84167 84.625031 314.37878 85.555695 316.24988 85.555695 c +324.61511 85.555695 l +326.48621 85.555695 328.01648 86.849609 328.01648 88.431671 c +328.01648 90.013641 326.48621 91.307617 324.61511 91.307617 c +320.73425 91.307617 l +318.86316 91.307617 317.33289 89.777344 317.33289 87.906281 c +317.33289 79.416962 l +317.33289 77.545898 318.86316 76.015625 320.73425 76.015625 c +330.328 76.015625 l +332.1991 76.015625 333.72937 75.044922 333.72937 73.859375 c +333.72937 72.672852 332.1991 71.702148 330.328 71.703125 c +315.02136 71.705078 l +313.15027 71.706055 311.62 73.236328 311.62 75.107422 c +311.62 92.22464 l +311.62 94.095703 313.15027 95.626007 315.02136 95.625 c +330.29868 95.622101 l +332.1698 95.621124 333.70007 94.09082 333.70007 92.219757 c +333.70007 84.822266 l +h +333.70007 84.822266 m +f +356.25061 93.46579 m +356.25061 92.279266 354.72034 91.308594 352.84927 91.308594 c +346.97424 91.308594 l +345.10318 91.308594 343.57288 89.77829 343.57288 87.907227 c +343.57288 75.104492 l +343.57288 73.233398 342.28775 71.703125 340.71646 71.703125 c +339.14517 71.703125 337.85709 73.233398 337.85315 75.104492 c +337.81799 92.220642 l +337.81409 94.091797 339.34143 95.622009 341.21255 95.622009 c +352.84927 95.622009 l +354.72034 95.622009 356.25061 94.651306 356.25061 93.46579 c +h +356.25061 93.46579 m +f +378.72168 75.107483 m +378.72168 73.236389 377.19144 71.706055 375.32031 71.705139 c +363.76364 71.703186 l +361.89258 71.702209 360.36227 72.672852 360.36227 73.859436 c +360.36227 75.044983 361.89258 76.015686 363.76364 76.015686 c +369.67972 76.015686 l +371.55078 76.015686 373.08109 77.251038 373.08109 78.759796 c +373.08109 80.269562 371.55078 81.504944 369.67972 81.50589 c +363.73438 81.507843 l +361.86325 81.50885 360.33301 83.039093 360.33301 84.910187 c +360.33301 92.22467 l +360.33301 94.095764 361.86325 95.626068 363.73438 95.625061 c +375.32031 95.622131 l +377.19144 95.621185 378.72168 94.650452 378.72168 93.464905 c +378.72168 92.278381 377.19144 91.307648 375.32031 91.307648 c +368.8887 91.307648 l +367.01758 91.307648 365.4873 90.072327 365.4873 88.562561 c +365.4873 87.052826 367.01758 85.817444 368.8887 85.81842 c +375.32031 85.820374 l +377.19144 85.82132 378.72168 84.291077 378.72168 82.419983 c +378.72168 75.107483 l +h +378.72168 75.107483 m +f +414.42694 73.859802 m +414.42694 72.673218 412.89667 71.704468 411.0256 71.705444 c +403.93967 71.713257 l +402.06857 71.714294 400.5383 73.24646 400.5383 75.117615 c +400.5383 87.073608 l +400.5383 88.944702 399.00803 90.474976 397.13693 90.474976 c +395.74631 90.474976 l +393.87521 90.474976 392.34494 91.445679 392.34494 92.631256 c +392.34494 93.81778 393.87521 94.788483 395.74631 94.788483 c +397.13693 94.788483 l +399.00803 94.788483 400.5383 96.318756 400.5383 98.18985 c +400.5383 98.200592 l +400.5383 100.07166 401.82346 101.60193 403.39474 101.60193 c +404.96603 101.60193 406.25119 100.07166 406.25119 98.200592 c +406.25119 98.18985 l +406.25119 96.318756 407.78146 94.788483 409.65256 94.788483 c +411.0256 94.788483 l +412.89667 94.788483 414.42694 93.81778 414.42694 92.631256 c +414.42694 91.444733 412.89667 90.473999 411.0256 90.473999 c +409.65256 90.473999 l +407.78146 90.473999 406.25119 88.943726 406.25119 87.072632 c +406.25119 79.417419 l +406.25119 77.546326 407.78146 76.016022 409.65256 76.016022 c +411.0256 76.016022 l +412.89667 76.016022 414.42694 75.045349 414.42694 73.859802 c +h +414.42694 73.859802 m +f +440.60672 69.137634 m +440.60672 67.266541 439.07642 65.735352 437.20532 65.733337 c +429.26974 65.725525 l +427.39865 65.723572 425.86838 66.693298 425.86838 67.879883 c +425.86838 69.066345 427.39865 70.037048 429.26974 70.037048 c +431.4924 70.037048 l +433.36353 70.037048 434.8938 71.567383 434.8938 73.438477 c +434.8938 75.115173 l +434.8938 76.986237 433.36353 78.513611 431.4924 78.510712 c +421.91037 78.493103 l +420.03928 78.490173 418.509 80.017548 418.509 81.888641 c +418.509 92.220673 l +418.509 94.091736 419.79416 95.622009 421.36444 95.622009 c +422.93475 95.622009 424.21994 94.091736 424.21994 92.220673 c +424.21994 86.229462 l +424.21994 84.358368 425.75021 82.828094 427.62134 82.828094 c +431.4924 82.828094 l +433.36353 82.828094 434.8938 84.358368 434.8938 86.229462 c +434.8938 92.220673 l +434.8938 94.091736 436.17892 95.622009 437.75024 95.622009 c +439.32153 95.622009 440.60672 94.091736 440.60672 92.220673 c +440.60672 69.137634 l +h +440.60672 69.137634 m +f +251.90887 33.203613 m +251.90982 31.33252 250.38055 29.79834 248.50943 29.792542 c +240.36295 29.771057 l +238.49188 29.765137 236.96161 28.230957 236.96161 26.359863 c +236.96161 24.338379 l +236.96161 22.467285 238.49188 20.937073 240.36295 20.937073 c +248.50943 20.937073 l +250.38055 20.937073 251.91083 19.91748 251.91083 18.671387 c +251.91083 17.425354 250.38055 16.408691 248.50943 16.412598 c +233.61298 16.440002 l +231.74188 16.443848 230.21259 17.977112 230.21356 19.848145 c +230.21942 30.848206 l +230.22037 32.719238 231.75165 34.249512 233.62274 34.249512 c +241.75748 34.249512 l +243.6286 34.249512 245.15887 35.779785 245.15887 37.650879 c +245.15887 39.672363 l +245.15887 41.543457 243.6286 43.07373 241.75748 43.07373 c +227.12469 43.07373 l +225.25357 43.07373 223.72284 41.543457 223.72284 39.672363 c +223.72284 19.80719 l +223.72284 17.936035 222.20328 16.405762 220.34637 16.405762 c +218.48944 16.405762 216.96844 17.936035 216.96649 19.80719 c +216.944 44.203613 l +216.94208 46.074768 218.47134 47.60498 220.34247 47.60498 c +248.50165 47.60498 l +250.37274 47.60498 251.90399 46.074768 251.90497 44.203613 c +251.90887 33.203613 l +h +251.90887 33.203613 m +f +282.54193 13.608154 m +282.54193 11.737061 281.01166 10.202881 279.14056 10.198975 c +269.05853 10.173584 l +267.18744 10.169739 265.65717 11.185303 265.65717 12.431396 c +265.65717 13.67749 267.18744 14.697083 269.05853 14.697083 c +272.38858 14.697083 l +274.2597 14.697083 275.78998 16.227295 275.78998 18.098389 c +275.78998 20.11792 l +275.78998 21.989075 274.2597 23.522217 272.38858 23.5271 c +259.52338 23.554504 l +257.65228 23.559387 256.12201 25.092529 256.12201 26.963684 c +256.12201 37.963684 l +256.12201 39.834717 257.64154 41.36499 259.49802 41.36499 c +261.35446 41.36499 262.87396 39.834717 262.87396 37.963684 c +262.87396 31.412842 l +262.87396 29.541809 264.40424 28.011536 266.27533 28.011536 c +272.38858 28.011536 l +274.2597 28.011536 275.78998 29.541809 275.78998 31.412842 c +275.78998 37.963684 l +275.78998 39.834717 277.30948 41.36499 279.16592 41.36499 c +281.02237 41.36499 282.54193 39.834717 282.54193 37.963684 c +282.54193 13.608154 l +h +282.54193 13.608154 m +f +314.13388 19.807434 m +314.13388 17.936279 312.60358 16.406006 310.73248 16.406006 c +291.11337 16.404053 l +289.24228 16.404053 287.71198 17.934326 287.71198 19.805481 c +287.71198 37.963623 l +287.71198 39.834717 289.23148 41.36499 291.08896 41.36499 c +292.94635 41.36499 294.46588 39.834717 294.46588 37.963623 c +294.46588 24.338623 l +294.46588 22.467529 295.99615 20.937256 297.86725 20.937256 c +303.85944 20.937256 l +305.73053 20.937256 307.2608 22.467529 307.2608 24.338623 c +307.2608 37.963623 l +307.2608 39.834717 308.79111 41.36499 310.6622 41.36499 c +310.73248 41.36499 l +312.60358 41.36499 314.13388 39.834717 314.13388 37.963623 c +314.13388 19.807434 l +h +314.13388 19.807434 m +f +439.2514 19.826843 m +439.2514 17.955688 437.72113 16.424438 435.85004 16.422485 c +416.34219 16.408813 l +414.47113 16.40686 412.94086 17.425415 412.94086 18.671509 c +412.94086 19.917603 414.47113 20.937134 416.34219 20.937134 c +429.05511 20.937134 l +430.92621 20.937134 432.45648 22.220337 432.45648 23.788696 c +432.45648 25.357056 430.92621 26.642212 429.05511 26.643188 c +416.25238 26.65686 l +414.38129 26.657837 412.85101 28.190063 412.85101 30.061157 c +412.85101 37.951782 l +412.85101 39.822876 414.38129 41.354126 416.25238 41.355103 c +435.75824 41.362915 l +437.62933 41.363892 439.15961 40.345337 439.15961 39.099243 c +439.15961 37.853149 437.62933 36.833618 435.75824 36.833618 c +424.71136 36.833618 l +422.84024 36.833618 421.31003 35.550415 421.31003 33.982056 c +421.31003 32.413696 422.84024 31.129517 424.71136 31.12854 c +435.85004 31.120728 l +437.72113 31.119751 439.2514 29.588501 439.2514 27.717407 c +439.2514 19.826843 l +h +439.2514 19.826843 m +f +326.05594 19.807129 m +326.05594 17.935974 324.53641 16.405701 322.67996 16.405701 c +320.82352 16.405701 319.30399 17.935974 319.30399 19.807129 c +319.30399 44.203552 l +319.30399 46.074707 320.82352 47.604919 322.67996 47.604919 c +324.53641 47.604919 326.05594 46.074707 326.05594 44.203552 c +326.05594 19.807129 l +h +326.05594 19.807129 m +f +329.16574 20.942261 m +327.35229 21.400269 325.86691 23.306519 325.86691 25.177612 c +325.86499 27.831909 l +325.86499 29.703003 327.34836 31.609314 329.16187 32.068237 c +342.15991 35.359314 l +343.97339 35.818237 345.45776 35.124878 345.45776 33.818237 c +345.45776 32.511597 344.00269 30.965698 342.22534 30.383667 c +333.56909 27.547729 l +331.79172 26.965698 331.79172 26.014526 333.57104 25.435425 c +342.20187 22.620972 l +343.9812 22.04187 345.44113 20.498901 345.44702 19.193237 c +345.45288 17.887573 343.97339 17.19519 342.15991 17.653198 c +329.16574 20.942261 l +h +329.16574 20.942261 m +f +376.08286 13.524109 m +376.08286 11.653076 374.55261 10.118835 372.68152 10.11499 c +362.60144 10.0896 l +360.73038 10.085693 359.20007 11.101257 359.20007 12.347412 c +359.20007 13.593506 360.73038 14.613037 362.60144 14.613037 c +365.93152 14.613037 l +367.80261 14.613037 369.33289 16.143311 369.33289 18.014404 c +369.33289 20.035828 l +369.33289 21.906982 367.80261 23.440186 365.93152 23.444092 c +353.06433 23.471375 l +351.19324 23.475342 349.66296 25.008484 349.66296 26.879639 c +349.66296 37.879639 l +349.66296 39.750732 351.1825 41.281006 353.03897 41.281006 c +354.89542 41.281006 356.41492 39.750732 356.41492 37.879639 c +356.41492 31.328857 l +356.41492 29.457764 357.94519 27.92749 359.81628 27.92749 c +365.93152 27.92749 l +367.80261 27.92749 369.33289 29.457764 369.33289 31.328857 c +369.33289 37.879639 l +369.33289 39.750732 370.85144 41.281006 372.70786 41.281006 c +374.56433 41.281006 376.08286 39.750732 376.08286 37.879639 c +376.08286 13.524109 l +h +376.08286 13.524109 m +f +407.65485 19.889404 m +407.65485 18.01825 406.12457 16.487976 404.25348 16.487976 c +384.63437 16.487976 l +382.76328 16.487976 381.23294 18.01825 381.23294 19.889404 c +381.23294 38.047546 l +381.23294 39.91864 382.75247 41.448914 384.60992 41.448914 c +386.46735 41.448914 387.98688 39.91864 387.98688 38.047546 c +387.98688 24.420593 l +387.98688 22.5495 389.51715 21.019287 391.38824 21.019287 c +397.38043 21.019287 l +399.25153 21.019287 400.7818 22.5495 400.7818 24.420593 c +400.7818 38.047546 l +400.7818 39.91864 402.3121 41.448914 404.1832 41.448914 c +404.25348 41.448914 l +406.12457 41.448914 407.65485 39.91864 407.65485 38.047546 c +407.65485 19.889404 l +h +407.65485 19.889404 m +f +390.40884 75.125366 m +390.40884 73.254272 389.12372 71.723999 387.55237 71.723999 c +385.98111 71.723999 384.69595 73.254272 384.69595 75.125366 c +384.69595 75.125366 384.69595 86.222046 384.69595 86.222046 c +384.69595 88.09314 385.98111 89.623413 387.55237 89.623413 c +389.12372 89.623413 390.40884 88.09314 390.40884 86.222046 c +390.40884 86.222046 390.40884 75.125366 390.40884 75.125366 c +h +390.40884 98.56778 m +390.40884 96.923248 389.12271 95.577515 387.55142 95.577515 c +385.98013 95.577515 384.694 96.923248 384.694 98.56778 c +384.694 100.21231 385.98013 101.55801 387.55142 101.55801 c +389.12271 101.55801 390.40884 100.21231 390.40884 98.56778 c +h +390.40884 98.56778 m +f +/Cs2 SC +0 0.54901999 0.42745101 sc +283.92609 50.121887 m +285.79718 50.121887 287.32748 51.652649 287.32748 53.523254 c +287.32748 53.523254 287.32748 55.919739 287.32748 55.919739 c +287.32748 57.790344 285.79718 59.321106 283.92609 59.321106 c +283.92609 59.321106 283.37726 59.321106 283.37726 59.321106 c +281.50616 59.321106 279.97589 57.790344 279.97589 55.919739 c +279.97589 55.919739 279.97589 53.523254 279.97589 53.523254 c +279.97589 51.652649 281.50616 50.121887 283.37726 50.121887 c +283.37726 50.121887 283.92609 50.121887 283.92609 50.121887 c +h +294.70636 48.946106 m +294.70636 47.0755 293.17609 45.544739 291.30502 45.544739 c +291.30502 45.544739 275.99835 45.544739 275.99835 45.544739 c +274.12726 45.544739 272.59698 47.0755 272.59698 48.946106 c +272.59698 48.946106 272.59698 60.542786 272.59698 60.542786 c +272.59698 62.413391 274.12726 63.946106 275.99835 63.948059 c +275.99835 63.948059 291.30502 63.965637 291.30502 63.965637 c +293.17609 63.96759 294.70636 62.438782 294.70636 60.568176 c +294.70636 60.568176 294.70636 48.946106 294.70636 48.946106 c +h +294.70636 48.946106 m +f +319.81052 57.021606 m +319.81052 55.756958 318.28024 54.721802 316.40915 54.721802 c +315.9306 54.721802 l +314.05951 54.721802 312.52924 53.19104 312.52924 51.320435 c +312.52924 48.922974 l +312.52924 47.052368 310.99899 45.521606 309.12787 45.521606 c +308.54974 45.521606 l +306.67865 45.521606 305.14838 47.052368 305.14838 48.922974 c +305.14838 51.320435 l +305.14838 53.19104 303.6181 54.721802 301.74701 54.721802 c +301.23138 54.721802 l +299.36029 54.721802 297.83002 55.756958 297.83002 57.021606 c +297.83002 58.286255 299.36029 59.321411 301.23138 59.321411 c +301.74701 59.321411 l +303.6181 59.321411 305.14545 60.852173 305.14154 62.722778 c +305.13568 65.120239 l +305.13177 66.990845 306.65912 68.521606 308.53021 68.521606 c +316.40915 68.521606 l +318.28024 68.521606 319.81052 67.48645 319.81052 66.221313 c +319.81052 64.956177 318.28024 63.921021 316.40915 63.921021 c +315.9306 63.921021 l +314.05951 63.921021 312.52924 62.885864 312.52924 61.621216 c +312.52924 60.356567 314.05951 59.321411 315.9306 59.321411 c +316.40915 59.321411 l +318.28024 59.321411 319.81052 58.286255 319.81052 57.021606 c +h +319.81052 57.021606 m +f +384.02142 48.922791 m +384.02338 47.052185 382.49506 45.521423 380.62393 45.521423 c +380.04584 45.521423 l +378.17474 45.521423 376.64447 47.052185 376.64447 48.922791 c +376.64447 51.320251 l +376.64447 53.190857 375.1142 54.721619 373.2431 54.721619 c +372.69623 54.721619 l +370.8251 54.721619 369.29486 53.190857 369.29486 51.320251 c +369.29486 48.922791 l +369.29486 47.052185 367.76459 45.521423 365.89349 45.521423 c +365.31537 45.521423 l +363.44427 45.521423 361.91403 47.052185 361.91403 48.922791 c +361.91403 65.070251 l +361.91403 66.940857 363.44427 68.471619 365.31537 68.471619 c +365.89349 68.471619 l +367.76459 68.471619 369.29486 66.940857 369.29486 65.070251 c +369.29486 62.722595 l +369.29486 60.85199 370.8251 59.321228 372.69623 59.321228 c +380.60635 59.321228 l +382.47745 59.321228 384.0097 57.790466 384.01163 55.919861 c +384.02142 48.922791 l +h +384.02142 48.922791 m +f +357.83304 47.809875 m +357.83304 46.544739 356.3028 45.510559 354.43167 45.512024 c +346.51373 45.517883 l +344.64264 45.519348 343.11237 47.051086 343.11237 48.921692 c +343.11237 55.90802 l +343.11237 57.778625 341.58206 59.309387 339.711 59.309387 c +339.15433 59.309387 l +337.2832 59.309387 335.75296 60.344543 335.75296 61.609192 c +335.75296 62.87384 337.2832 63.908997 339.15433 63.908997 c +339.711 63.908997 l +341.58206 63.908997 343.11237 64.944153 343.11237 66.208801 c +343.11237 67.47345 344.64264 68.508606 346.51373 68.508606 c +347.0899 68.508606 l +348.96097 68.508606 350.49127 67.47345 350.49127 66.208801 c +350.49127 64.944153 352.02155 63.908997 353.89261 63.908997 c +354.43167 63.908997 l +356.3028 63.908997 357.83304 62.87384 357.83304 61.609192 c +357.83304 60.344543 356.3028 59.309387 354.43167 59.309387 c +353.89261 59.309387 l +352.02155 59.309387 350.49127 57.778625 350.49127 55.90802 c +350.49127 53.511536 l +350.49127 51.64093 352.02155 50.110168 353.89261 50.110168 c +354.43167 50.110168 l +356.3028 50.110168 357.83304 49.075012 357.83304 47.809875 c +h +357.83304 47.809875 m +f +410.18707 55.809631 m +410.18707 53.939026 408.6568 52.408264 406.78568 52.408264 c +392.70755 52.408264 l +390.83649 52.408264 389.31305 53.390686 389.32086 54.59137 c +389.32867 55.792053 390.86578 56.774475 392.73688 56.774475 c +399.43414 56.774475 l +401.30524 56.774475 402.83551 57.344299 402.83551 58.041077 c +402.83551 58.737854 401.30524 59.307678 399.43414 59.307678 c +398.88727 59.307678 l +397.01617 59.307678 395.4859 57.776917 395.4859 55.906311 c +395.4859 53.509827 l +395.4859 51.639221 397.01617 50.108459 398.88727 50.108459 c +406.815 50.108459 l +408.6861 50.108459 410.21637 49.073303 410.21637 47.808716 c +410.21637 46.544006 408.6861 45.50885 406.815 45.509338 c +391.50836 45.510315 l +389.63727 45.510803 388.10699 47.041565 388.10699 48.912231 c +388.10699 60.510803 l +388.10699 62.381409 389.63727 63.911682 391.50836 63.911682 c +406.78568 63.908752 l +408.6568 63.908752 410.18707 62.377502 410.18707 60.506897 c +410.18707 55.809631 l +h +410.18707 55.809631 m +f +228.07758 214.98465 m +224.3139 209.75613 222.07367 208.23221 218.06 202.57495 c +217.5444 201.77368 217.03854 200.96509 216.54825 200.15555 c +216.14789 199.33081 215.80023 198.48221 215.52097 197.60721 c +214.87445 195.4324 214.07755 194.51831 214.07755 192.11795 c +215.81003 193.65112 216.74359 195.65112 218.34323 196.78494 c +219.24167 197.42114 219.7182 198.54565 220.53848 199.30298 c +224.47409 205.03201 231.67523 207.4324 235.95844 212.72583 c +237.39056 213.7063 238.9296 214.57153 240.46478 215.43826 c +241.49014 216.01639 242.51166 216.595 243.49994 217.20871 c +244.48822 217.82251 245.44327 218.47144 246.34949 219.19067 c +247.01166 219.84503 247.54291 220.37189 248.10931 220.93536 c +248.67572 221.49875 249.27728 222.10037 250.08197 222.91333 c +248.86322 222.94656 247.26163 222.94656 245.48816 222.87476 c +244.85934 222.77029 244.23038 222.63406 243.60342 222.46951 c +241.09174 221.81125 238.59369 220.70288 236.42719 219.51047 c +235.80804 219.28589 235.17133 219.0759 234.51898 218.89035 c +233.86273 218.70438 233.19083 218.5437 232.48969 218.41675 c +231.88226 218.09058 228.70258 215.29422 228.07758 214.98465 c +h +198.74359 160.11792 m +198.59515 160.81522 199.67526 180.49878 201.04045 188.89963 c +201.11081 189.52615 201.18701 190.15161 201.27289 190.77615 c +201.61081 193.27173 202.07758 195.74487 202.73973 198.17944 c +202.79047 198.68286 202.85101 199.18484 202.91747 199.6853 c +203.5932 204.69119 205.11273 209.55005 208.15179 214.06812 c +208.68109 214.97977 209.24359 215.88553 209.83347 216.78296 c +210.42331 217.68143 211.03851 218.57153 211.67917 219.45386 c +212.00729 219.87579 212.3432 220.29764 212.69089 220.71851 c +214.80612 223.57104 217.64981 225.78882 220.81393 227.68579 c +221.34122 228.00174 221.87833 228.30981 222.42136 228.62134 c +222.67911 228.68924 228.20844 231.69949 230.86273 232.72928 c +231.14594 232.86014 231.42914 232.99103 231.71234 233.1218 c +231.99359 233.25269 233.87054 233.90408 234.54047 234.07156 c +234.70258 234.08521 236.65424 234.56375 237.07806 234.61792 c +240.20499 235.47192 243.81833 235.49734 247.50583 235.00854 c +248.03311 234.93777 248.55853 234.8494 249.08585 234.73801 c +249.52335 234.58475 251.41013 234.37723 251.87686 234.21802 c +253.51944 233.65747 255.27725 233.61789 259.07803 231.21808 c +259.38864 230.96753 263.52722 229.56818 265.87683 226.51834 c +266.12689 223.81812 265.37689 221.56812 265.07806 219.66821 c +264.59763 216.63599 264.8183 216.05695 263.4726 212.38354 c +263.2616 211.83081 263.04483 211.29962 262.82416 210.79517 c +262.6073 210.29178 262.38663 209.81613 262.16986 209.37427 c +261.34756 208.23904 260.53314 207.10718 259.70303 205.98849 c +258.04092 203.75073 256.31241 201.5657 254.35931 199.51587 c +253.96872 199.10669 253.56635 198.70337 253.14056 198.31717 c +249.47644 195.60718 245.47647 192.40698 241.10538 190.65454 c +240.63077 190.41577 240.14639 190.17648 239.65814 189.93433 c +236.73041 188.48221 233.68695 186.91483 230.4057 185.87576 c +229.87836 185.64917 229.34906 185.42264 228.81976 185.19601 c +225.64789 183.8396 222.47208 182.51639 219.45258 180.96561 c +218.73386 180.5965 215.78073 178.98322 215.07758 178.58475 c +207.83347 175.26733 198.77684 160.90894 198.74359 160.11792 c +h +198.74359 160.11792 m +f +ep +end +%%Trailer +%%EOF
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/picins.sty Wed Feb 22 14:32:16 2012 +0900 @@ -0,0 +1,578 @@ +% PICINS.STY --- Style File zum Einbinden von Bildern +% Autor: J. Bleser, E. Lang +% Hochschulrechenzentrum +% Technische Hochschule Darmstadt +% !!! Dieses Style-File ist urheberrechtlich geschuetzt !!! +% !!! Aenderungen nur mit Zustimmung der Autoren !!! +\message{Option `picins' Version 3.0 Sep. 1992, TH Darmstadt/HRZ} +\newbox\@BILD% +\newbox\@TEXT% +\newdimen\d@breite% +\newdimen\d@hoehe% +\newdimen\d@xoff% +\newdimen\d@yoff% +\newdimen\d@shad% +\newdimen\d@dash% +\newdimen\d@boxl% +\newdimen\d@pichskip% +\newdimen\d@tmp +\newdimen\d@tmpa +\newdimen\d@bskip +\newdimen\hsiz@% +\newdimen\p@getot@l% +\newcount\c@breite +\newcount\c@hoehe +\newcount\c@xoff +\newcount\c@yoff +\newcount\c@pos +\newcount\c@shad +\newcount\c@dash +\newcount\c@boxl +\newcount\c@zeilen% +\newcount\@changemode% +\newcount\c@piccaption% +\newcount\c@piccaptionpos% +\newcount\c@picpos +\newcount\c@whole% +\newcount\c@half% +\newcount\c@tmp +\newcount\c@tmpa +\newcount\c@tmpb +\newcount\c@tmpc +\newcount\c@tmpd +\newskip\d@leftskip +\newif\if@list \@listfalse% +\newif\if@offset% + + +\c@piccaptionpos=1% +\c@picpos=0 +\d@shad=4pt% +\d@dash=4pt% +\d@boxl=10pt% +\d@pichskip=1em% +\@changemode=0% +\def\@captype{figure}% +\let\old@par=\par% + +\def\pichskip#1{\d@pichskip #1\relax} + + +\def\shadowthickness#1{\d@shad #1\relax} + + +\def\dashlength#1{\d@dash #1\relax} + + +\def\boxlength#1{\d@boxl #1\relax} + + +\def\picchangemode{\@changemode=1}% +\def\nopicchangemode{\@changemode=0}% + + +\def\piccaptionoutside{\c@piccaptionpos=1}% +\def\piccaptioninside{\c@piccaptionpos=2}% +\def\piccaptionside{\c@piccaptionpos=3}% +\def\piccaptiontopside{\c@piccaptionpos=4}% + +\def\piccaption{\@ifnextchar [{\@piccaption}{\@piccaption[]}} +\def\@piccaption[#1]#2{\c@piccaption=1\def\sh@rtf@rm{#1}\def\capti@nt@xt{#2}} +\def\make@piccaption{% + \hsiz@\d@breite% + \ifnum\c@piccaptionpos=2% + \advance\hsiz@ -2\fboxsep% + \fi% + \ifnum\c@piccaptionpos>2% + \hsiz@\hsize\advance\hsiz@-\d@breite\advance\hsiz@-\d@pichskip% + \fi% + \setbox\@TEXT=\vbox{\hsize\hsiz@\caption[\sh@rtf@rm]{\capti@nt@xt}}% +} + + + +\def\newcaption{\refstepcounter\@captype\@dblarg{\@newcaption\@captype}} +\long\def\@newcaption#1[#2]#3{% + \old@par% + \addcontentsline{\csname ext@#1\endcsname }{#1}% + {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}} + \begingroup\@parboxrestore\normalsize% + \@newmakecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\old@par% + \endgroup% +} +\long\def\@newmakecaption#1#2{% + \vskip 10pt% + \setbox\@tempboxa \hbox {#1: #2}% + \ifdim \wd\@tempboxa >\hsize% + \setbox0=\hbox{#1: }\dimen0=\hsize\advance\dimen0 by-\wd0 + \setbox1=\vtop{\hsize=\dimen0 #2} + \hbox{\box0 \box1} + \par + \else \hbox to\hsize {\hfil \box \@tempboxa \hfil} + \fi +} + + + + + +\def\parpic{% + \@ifnextchar ({\iparpic}{\iparpic(0pt,0pt)} +} +\def\iparpic(#1,#2){% + \@ifnextchar ({\@offsettrue\iiparpic(#1,#2)}% + {\@offsetfalse\iiparpic(#1,#2)(0pt,0pt)} +} +\def\iiparpic(#1,#2)(#3,#4){% + \@ifnextchar [{\iiiparpic(#1,#2)(#3,#4)}{\iiiparpic(#1,#2)(#3,#4)[l]} +} +\def\iiiparpic(#1,#2)(#3,#4)[#5]{% + \@ifnextchar [{\ivparpic(#1,#2)(#3,#4)[#5]}{\ivparpic(#1,#2)(#3,#4)[#5][]} +} +\def\ivparpic(#1,#2)(#3,#4)[#5][#6]#7{% + \let\par=\old@par\par% + \hangindent0pt\hangafter1% + \setbox\@BILD=\hbox{#7}% + \d@breite=#1\d@breite=\the\d@breite% + \ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi% + \c@breite=\d@breite\divide\c@breite by65536% + \multiply\c@piccaption\c@piccaptionpos% + \d@hoehe=#2\d@hoehe=\the\d@hoehe% + \ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi% + \c@hoehe=\d@hoehe\divide\c@hoehe by65536% + \d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536% + \d@yoff=\d@hoehe% + \advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536% + \c@pos=1\unitlength1pt% + \if@offset% + \setbox\@BILD=\hbox{% + \begin{picture}(\c@breite,\c@hoehe)% + \put(0,0){\makebox(\c@breite,\c@hoehe){}}% + \put(\c@xoff,\c@yoff){\box\@BILD}% + \end{picture}% + }% + \else% + \setbox\@BILD=\hbox{% + \begin{picture}(\c@breite,\c@hoehe)% + \put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}% + \end{picture}% + }% + \fi% + \ifnum\c@piccaption=2% + \make@piccaption% + \advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT% + \c@hoehe=\d@hoehe\divide\c@hoehe by65536% + \setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}% + \hbox{\hspace{\fboxsep}\box\@TEXT}% + \vspace{4pt}}% + \fi% + \@tfor\@tempa := #5\do{% + \if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa l\c@pos=1\fi% + \if\@tempa r\c@pos=2\fi% + }% + \ifnum\c@piccaption=1% + \make@piccaption% + \advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT% + \c@hoehe=\d@hoehe\divide\c@hoehe by65536% + \setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}\hbox{\box\@TEXT}\vspace{4pt}}% + \fi% + \ifodd\count0\c@picpos=0\else\c@picpos=\@changemode\fi% + \pagetotal=\the\pagetotal% + \d@tmp=\pagegoal\advance\d@tmp by-\pagetotal\advance\d@tmp by-\baselineskip% + \ifdim\d@hoehe>\d@tmp% + \vskip 0pt plus\d@hoehe\relax\pagebreak[3]\vskip 0pt plus-\d@hoehe\relax% + \ifnum\c@picpos=1\c@picpos=0\else\c@picpos=\@changemode\fi% + \fi% + \ifnum\c@picpos=1\ifnum\c@pos=1\c@pos=2\else\c@pos=1\fi\fi% + \ifnum\@listdepth>0 + \@listtrue\parshape 0% + \advance\hsize -\rightmargin% + \d@leftskip \leftskip% + \leftskip \@totalleftmargin% + \if@inlabel\rule{\linewidth}{0pt}\vskip-\baselineskip\relax\fi% + \else\@listfalse\medskip% + \fi% + \if@list\d@tmpa=\linewidth\else\d@tmpa=\hsize\fi% + \ifnum\c@piccaption=3% + \make@piccaption% + \d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT% + \ifdim\d@hoehe>\d@tmp% + \setbox\@TEXT=\vbox to\d@hoehe{\vfill\box\@TEXT\vspace{.2\baselineskip}\vfill}% + \else% + \setbox\@BILD=\vbox to\d@tmp{\vfill\box\@BILD\vfill}% + \d@hoehe\d@tmp% + \fi% + \fi% + \ifnum\c@piccaption=4% + \make@piccaption% + \d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT% + \setbox\@TEXT=\vbox to\d@hoehe{\vspace{-10pt}\box\@TEXT\vfil}% + \advance\d@hoehe-\d@tmp% + \fi% + \ifnum\c@pos=1\d@tmpa=0pt% + \ifnum\c@piccaption>2% + \setbox\@BILD=\hbox{\box\@BILD\hspace{\d@pichskip}\hbox{\box\@TEXT}}% + \fi% + \else\advance\d@tmpa by-\wd\@BILD\d@breite=-\d@breite% + \ifnum\c@piccaption>2% + \d@tmpa=0pt% + \setbox\@BILD=\hbox{\hbox{\box\@TEXT}\hspace{\d@pichskip}\box\@BILD}% + \fi% + \fi% + \p@getot@l\the\pagetotal% + \d@bskip\d@hoehe\advance\d@bskip by\parskip\advance\d@bskip by.3\baselineskip% + {\noindent\hspace*{\d@tmpa}\relax% + \box\@BILD\nopagebreak\vskip-\d@bskip\relax\nopagebreak}% + \d@tmp=-\d@hoehe\divide\d@tmp by\baselineskip% + \c@zeilen=\d@tmp\advance\c@zeilen by-1% + \ifdim\d@breite<0pt\advance\d@breite by-\d@pichskip% + \else\advance\d@breite by\d@pichskip% + \fi% + \hangindent=\d@breite% + \hangafter=\c@zeilen% + \let\par=\x@par% + \ifnum\c@piccaption=3% + \hangindent0pt\hangafter1\let\par=\old@par% + \vskip\d@hoehe\vskip.2\baselineskip% + \fi% + \c@piccaption=0% +} + + + + +\newdimen\ptoti +\newdimen\ptotii +\def\x@par{% + \ptoti\pagetotal% + \old@par% + \ptotii\pagetotal% + \ifdim\ptoti=\ptotii% + \d@tmp\d@hoehe% + \else% + \d@tmp\baselineskip% + \multiply\d@tmp by\prevgraf% + \advance\d@tmp by\parskip% + \global\advance\d@hoehe by-\d@tmp\d@tmp=\d@hoehe% + \fi% + \ifdim\d@hoehe>0pt% + \divide\d@tmp by\baselineskip\c@zeilen=-\d@tmp\advance\c@zeilen by-1% + \c@zeilen=\the\c@zeilen% + \else\c@zeilen=0 + \fi + \ifnum\c@zeilen<0\hangafter=\c@zeilen\hangindent=\d@breite% + \else\let\par=\old@par% + \hangindent 0pt% + \leftskip \d@leftskip% + \if@list\parshape \@ne \@totalleftmargin \linewidth% + \advance\hsize \rightmargin% + \fi% + \fi% +} + + +\def\picskip#1{% + \let\par=\old@par% + \par% + \pagetotal\the\pagetotal% + \c@tmp=#1\relax% + \ifnum\c@tmp=0% + \d@tmp\baselineskip\multiply\d@tmp by\prevgraf\advance\d@tmp\parskip% + \ifdim\p@getot@l<\pagetotal + \advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex% + \ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi% + \fi% + \ifdim\p@getot@l=\pagetotal% + \advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex% + \ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi% + \fi% + \else\hangafter=-\c@tmp\hangindent=\d@breite% + \fi% + \leftskip \d@leftskip% + \if@list\parshape \@ne \@totalleftmargin \linewidth% + \advance\hsize \rightmargin% + \fi% +} + + + + + + +\def\hpic{% + \@ifnextchar ({\ihpic}{\ihpic(0pt,0pt)} +} +\def\ihpic(#1,#2){% + \@ifnextchar ({\@offsettrue\iihpic(#1,#2)}% + {\@offsetfalse\iihpic(#1,#2)(0pt,0pt)} +} +\def\iihpic(#1,#2)(#3,#4){% + \@ifnextchar [{\iiihpic(#1,#2)(#3,#4)}{\iiihpic(#1,#2)(#3,#4)[l]} +} +\def\iiihpic(#1,#2)(#3,#4)[#5]{% + \@ifnextchar [{\ivhpic(#1,#2)(#3,#4)[#5]}{\ivhpic(#1,#2)(#3,#4)[#5][]} +} +\def\ivhpic(#1,#2)(#3,#4)[#5][#6]#7{% + \setbox\@BILD=\hbox{#7}% + \d@breite=#1\d@breite=\the\d@breite% + \ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi% + \c@breite=\d@breite\divide\c@breite by65536% + \d@hoehe=#2\d@hoehe=\the\d@hoehe% + \ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi% + \c@hoehe=\d@hoehe\divide\c@hoehe by65536% + \d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536% + \d@yoff=\d@hoehe% + \advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536% + \c@pos=0\d@tmpa=\parindent\parindent=0pt\unitlength1pt% + \if@offset + \setbox\@BILD=\hbox{% + \begin{picture}(\c@breite,\c@hoehe)% + \put(0,0){\makebox(\c@breite,\c@hoehe){}}% + \put(\c@xoff,\c@yoff){\box\@BILD}% + \end{picture}% + }% + \else% + \setbox\@BILD=\hbox{% + \begin{picture}(\c@breite,\c@hoehe)% + \put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}% + \end{picture}% + }% + \fi% + \@tfor\@tempa := #5\do{% + \if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi% + \if\@tempa t\c@pos=1\fi% + \if\@tempa b\c@pos=2\fi% + }% + \ifnum\c@pos=0\parbox{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi% + \ifnum\c@pos=1\parbox[t]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi% + \ifnum\c@pos=2\parbox[b]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi% + \parindent=\d@tmpa% +} + + + + + + +\def\Rahmen(#1,#2)#3{% + \c@whole=\@wholewidth\divide\c@whole by65536% + \c@half=\@halfwidth\divide\c@half by65536% + \c@tmpa=#1\advance\c@tmpa by\c@whole\advance\c@tmpa by\c@whole% + \c@tmpb=#2\advance\c@tmpb by\c@whole\advance\c@tmpb by\c@whole% + \begin{picture}(\c@tmpa,\c@tmpb)% + \put(\c@whole,\c@half){\framebox(#1,#2){#3}}% + \end{picture}% + \global\advance\d@breite by2\@wholewidth% + \global\advance\d@hoehe by2\@wholewidth% +} + + +\def\Schatten(#1,#2)#3{% + \c@whole=\@wholewidth\divide\c@whole by65536% + \c@half=\@halfwidth\divide\c@half by65536% + \c@shad=\d@shad\divide\c@shad by65536% + \c@tmp=\c@whole\advance\c@tmp by\c@whole\c@tmpd=\c@tmp% + \advance\c@tmp by\c@shad% + \advance\c@tmpd by#1% + \advance\c@half by\c@shad% + \c@tmpa=#1\advance\c@tmpa by\c@tmp% + \c@tmpb=#2\advance\c@tmpb by\c@tmp% + \begin{picture}(\c@tmpa,\c@tmpb)% + \put(\c@whole,\c@half){\framebox(#1,#2){#3}}% + \put(\c@shad,0){\rule{\c@tmpd pt}{\c@shad pt}}% + \put(\c@tmpd,0){\rule{\c@shad pt}{#2 pt}}% + \end{picture}% + \global\advance\d@breite by2\@wholewidth\global\advance\d@breite by\d@shad% + \global\advance\d@hoehe by2\@wholewidth\global\advance\d@hoehe by\d@shad% +} + + +\def\Oval(#1,#2)#3{% + \@wholewidth=0.4pt% + \c@tmpa=\the#1\divide\c@tmpa by2% + \c@tmpb=\the#2\divide\c@tmpb by2% + \begin{picture}(#1,#2)% + \put(\c@tmpa,\c@tmpb){\oval(#1,#2)}% + \put(0.4,0.4){#3}% + \end{picture}% + \global\advance\d@breite by1pt\global\advance\d@hoehe by1pt% +} + + +\def\Strich(#1,#2)#3{% + \c@whole=\@wholewidth\divide\c@whole by65536% + \c@half=\@halfwidth\divide\c@half by65536% + \c@dash=\d@dash\divide\c@dash by65536% + \c@tmp=\c@whole\advance\c@tmp by\c@whole% + \c@tmpa=#1\advance\c@tmpa by\c@tmp% + \c@tmpb=#2\advance\c@tmpb by\c@tmp% + \c@tmpc=#1\advance\c@tmpc by\c@whole% + \c@tmpd=#2\advance\c@tmpd by\c@whole% + \begin{picture}(\c@tmpa,\c@tmpb)% + \put(\c@half,\c@half){\dashbox{\c@dash}(\c@tmpc,\c@tmpd){#3}}% + \end{picture}% + \global\advance\d@breite by2\@wholewidth% + \global\advance\d@hoehe by2\@wholewidth% +} + + +\def\Kasten(#1,#2)#3{% + \@wholewidth=0.4pt% + \c@boxl=\d@boxl\divide\c@boxl by65536\c@boxl=\the\c@boxl% + \c@tmpa=#1\advance\c@tmpa by\c@boxl% + \c@tmpb=#2\advance\c@tmpb by\c@boxl% + \c@tmp=#2% + \begin{picture}(\c@tmpa,\c@tmpb)% + \put(0,\c@boxl){\framebox(#1,#2){#3}}% + \put(\c@boxl,0){\line(-1,1){\c@boxl}}% + \put(\c@boxl,0){\line(1,0){#1}\line(-1,1){\c@boxl}}% + \put(\c@boxl,0){\put(#1,0){\line(0,1){\c@tmp}% + \put(0,\c@tmp){\line(-1,1){\c@boxl}}}}% + \end{picture}% + \global\advance\d@breite by\d@boxl% + \global\advance\d@hoehe by\d@boxl% +} + + + + + +\newbox\env@box% +\newdimen\d@envdp +\newcount\c@hsize +\newcount\c@envdp +\newdimen\d@envb + +\long\def\frameenv{\@ifnextchar [{\@frameenv}{\@frameenv[\textwidth]}} +\long\def\@frameenv[#1]{% + \hsiz@=\textwidth \textwidth=#1 \d@envb=#1 + \advance\textwidth by-2\@wholewidth + \advance\textwidth by-2\fboxsep + \hsize=\textwidth \linewidth=\textwidth + \setbox\env@box=\vbox\bgroup}% +\def\endframeenv{% + \egroup% + \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@ + \c@breite=\d@envb \divide\c@breite by65536 + \advance\d@envb by-2\@wholewidth + \c@hsize=\d@envb \divide\c@hsize by65536% + \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box% + \advance\d@envdp by2\fboxsep% + \d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth + \c@hoehe=\d@hoehe \divide\c@hoehe by65536 + \c@envdp=\d@envdp \divide\c@envdp by65536% + \c@tmp=\@wholewidth \divide\c@tmp by65536 + \vskip\@wholewidth% + \unitlength 1pt\noindent% + \begin{picture}(\c@breite,\c@hoehe)(0,0) + \put(\c@tmp,\c@tmp){\framebox(\c@hsize,\c@envdp){\box\env@box}} + \end{picture}% +} + + + +\long\def\shadowenv{\@ifnextchar [{\@shadowenv}{\@shadowenv[\textwidth]}} +\long\def\@shadowenv[#1]{% + \hsiz@=\textwidth \textwidth=#1 \d@envb=#1 + \advance\textwidth by-2\@wholewidth + \advance\textwidth by-2\fboxsep + \advance\textwidth by-\d@shad% + \hsize=\textwidth \linewidth=\textwidth + \setbox\env@box=\vbox\bgroup}% +\def\endshadowenv{% + \egroup + \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@ + \d@tmpa=\d@envb + \c@breite=\d@envb \divide\c@breite by65536 + \advance\d@envb by-2\@wholewidth \advance\d@envb by-\d@shad + \c@hsize=\d@envb \divide\c@hsize by65536% + \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box% + \advance\d@envdp by2\fboxsep% + \c@envdp=\d@envdp \divide\c@envdp by65536% + \d@hoehe=\d@envdp + \advance\d@hoehe by2\@wholewidth \advance\d@hoehe by\d@shad + \c@hoehe=\d@hoehe \divide\c@hoehe by65536 + \c@shad =\d@shad \divide\c@shad by65536 + \c@tmp=\@wholewidth \divide\c@tmp by65536 + \advance\d@tmpa by-2\d@shad + \c@xoff =\d@tmpa \divide\c@xoff by65536 + \advance\c@xoff by\c@shad \advance\c@xoff by-1 + \advance\d@envdp by\@wholewidth + \vskip\@halfwidth + \unitlength 1pt\noindent% + \begin{picture}(\c@breite,\c@hoehe)(0,0) + \put(\c@tmp,\c@shad){\framebox(\c@hsize,\c@envdp){\box\env@box}} + \put(\c@shad,0){\rule{\d@tmpa}{\d@shad}}% + \put(\c@xoff,0){\rule{\d@shad}{\d@envdp}}% + \end{picture}% + \vskip\@halfwidth +} + + +\long\def\dashenv{\@ifnextchar [{\@dashenv}{\@dashenv[\textwidth]}} +\long\def\@dashenv[#1]{% + \hsiz@=\textwidth \textwidth=#1 \d@envb=#1 + \advance\textwidth by-2\@wholewidth \advance\textwidth by-2\fboxsep + \hsize=\textwidth \linewidth=\textwidth + \setbox\env@box=\vbox\bgroup}% +\long\def\enddashenv{% + \egroup + \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@ + \c@breite=\d@envb \divide\c@breite by65536 + \advance\d@envb by-\@wholewidth + \c@hsize=\d@envb \divide\c@hsize by65536% + \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box% + \advance\d@envdp by2\fboxsep% + \advance\d@envdp by\@wholewidth + \d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth + \c@hoehe=\d@hoehe \divide\c@hoehe by65536 + \c@envdp=\d@envdp \divide\c@envdp by65536% + \c@dash=\d@dash \divide\c@dash by65536% + \c@whole=\@wholewidth \divide\c@whole by65536 + \c@half=\@halfwidth \divide\c@half by 65536 + \noindent\unitlength 1pt + \begin{picture}(\c@breite,\c@hoehe)(0,0) + \put(\c@half,\c@whole){\dashbox{\c@dash}(\c@hsize,\c@envdp){\box\env@box}} + \end{picture}% +} + + +\long\def\ovalenv{\@ifnextchar [{\@ovalenv}{\@ovalenv[\textwidth]}}% +\long\def\@ovalenv[#1]{% + \hsiz@=\textwidth \textwidth=#1 \d@envb=#1 + \advance\textwidth by-4\fboxsep + \hsize=\textwidth \linewidth=\textwidth + \setbox\env@box=\vbox\bgroup}% +\long\def\endovalenv{% + \egroup + \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@ + \@wholewidth=0.4pt + \c@breite=\d@envb \divide\c@breite by65536 + \advance\d@envb by-2\@wholewidth + \c@hsize=\d@envb \divide\c@hsize by65536% + \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box% + \advance\d@envdp by4\fboxsep% + \c@envdp=\d@envdp \divide\c@envdp by65536% + \d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth + \c@hoehe=\d@hoehe \divide\c@hoehe by65536 + \c@tmpa=\c@hsize \divide\c@tmpa by2% + \c@tmpb=\c@envdp \divide\c@tmpb by2% + \d@tmpa=2\fboxsep \advance\d@tmpa by\@wholewidth + \c@xoff=\d@tmpa \divide\c@xoff by65536% + \advance\d@tmpa by\dp\env@box + \c@yoff=\d@tmpa \divide\c@yoff by65536% + \unitlength 1pt\noindent + \begin{picture}(\c@breite,\c@hoehe)(0,0) + \put(\c@tmpa,\c@tmpb){\oval(\c@hsize,\c@envdp)} + \put(\c@xoff,\c@yoff){\box\env@box}% + \end{picture}% +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/thesis.tex Wed Feb 22 14:32:16 2012 +0900 @@ -0,0 +1,136 @@ +\documentclass[twocolumn,twoside,9.5pt]{jarticle} +\usepackage[dvips]{graphicx} +\usepackage{picins} +\usepackage{fancyhdr} +\pagestyle{fancy} +\lhead{\parpic{\includegraphics[height=1zw,clip,keepaspectratio]{pic/emblem-bitmap.eps}}琉球大学主催 工学部情報工学科 卒業研究発表会} +\rhead{} +\cfoot{} + +\setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}} +\setlength{\headheight}{0mm} +\setlength{\headsep}{5mm} +\setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}} +\setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}} +\setlength{\textwidth}{181mm} +\setlength{\textheight}{261mm} +\setlength{\footskip}{0mm} +\pagestyle{empty} + +\begin{document} +\title{Cerium Task Manager における マルチコア 上での並列実行機構の実装} +\author{085740J 當眞 大千 {}{} 指導教員 : 河野 真治} +\date{} +\maketitle +\thispagestyle{fancy} + +\section{はじめに} +プロセッサメーカは, 消費電力, 発熱及びクロックの限界という観点から, +マルチコア構成の路線を打ち出しており, 今後ますますマルチコアプロセッサが主流になると想像できる. + +マルチコアプロセッサ上で, リソースを有効活用するためには, 並列プログラムを行う必要があるが, +効率の良い並列プログラムを書くことは難しい. + +そこで, 本研究室で作成した Cerium Task Manager\cite{gongo:2008a} をマルチコアプロセッサに対応させることで, +マルチコアプロセッサ上での Task 単位による並列プログラミングをサポートする. + +今まで, Cerium Task Manager は, PlayStation 3/Cell\cite{cell} 上でのみ, 並列実行を可能にしていたが, +今回新たに Mac OS X, Linux 上での並列実行に対応した. + +本論文では, まず既存の Cerium Task Manager の実装について説明する. +その後, 新たに実装した並列実行の機構について説明する. + +\section{Cerium Task Manager}\label{section:cerium} + +Cerium Task Manager は, Cell 用に開発されたゲームフレームワークであり, +Rendering Engine を含む. + +Cerium Task Manager では, 並列処理を Task 単位で記述する. +関数やサブルーチンを Task として扱い, +Task には, input データ, output データ及び依存関係を設定する. +Cerium Task Manager によってそれらの Task は管理され, 実行される. + +Cerium Task Manager は, PlayStation 3/Cell, Mac OS X 及び Linux 上で利用することができ, +それぞれのプラットフォームで同じプログラムを動作させることができる. +これにより, アーキテクチャに依存しないプログラムを記述することが可能である. + +\subsection{Cerium Task Manager の特長} +Cerium Task Manager では, プログラムの様々なレベルでパイプラインが構成されるので, +プログラムの性能向上が見込める\cite{kaito:master}. + +また, Task 自体は入力データから, 出力データを計算するだけなので非常に単純だが, +その入出力データをダブルバッファリングとして切り替えたり, +適切な並列度が得られるように徐々に生成するのは非常に煩雑となる. +さらに, これらのデータ管理は, 並列実行を行うアーキテクチャに特化した処理が必要となる\cite{yutaka:2011b}. +Cerium Task Manager を利用することで, このような煩わしいことから解放され, +並列計算の実装に集中することができる. + + +\section{新たに実装した並列実行の機構}\label{section:impl} + +PlayStation 3/Cell 上の場合, 各 SPE に Task が割り当てられ, 並列に実行される. + +今回新たに, Mac OS X, Linux 上でも並列に実行させることを可能にした. +これは, PlayStation 3/Cell の Mailbox に対応させる形で, +Synchronized Queue を用いて Mac OS X, Linux 側の Cerium Task Manager の設計をし直したものである. + +\subsection{Mailbox} +Mailbox は, Cell の機能の1つである. +Mailbox は, PPE と SPE の間を双方向で, 32 bit メッセージの受け渡しが可能であり, +FIFO キュー構造になっている. + +\begin{figure}[h] +\begin{center} +\includegraphics[scale=0.4]{./pic/Mailbox.eps} +\end{center} +\caption{Mailbox} +\label{fig:mailbox} +\end{figure} + +\subsection{Synchronized Queue} +Maiilbox に対応させる形で作成した, Linux 上で動作する同期キューである. +キューを操作しているスレッドが常に1つになるよう, バイナリセマフォで管理されている. +各スレッドは, input 用と output 用として Synchronized Queue を2つ持っており, +管理スレッドからタスクを受けて並列に実行するようになっている. + +\subsection{ベンチマーク} +0からnまでに含まれる素数の探索を行う例題を用いた. +表\ref{table:benchmark}に結果を示す. + +{\bf 実験環境} +\begin{itemize} +\item OS : CentOS 6.0 +\item CPU : Intel(R) Xeon(R) CPU X5650 @2.67GHz (仮想環境で 4 コアのみ使用) +\item Memory : 8GB +\end{itemize} + +\begin{table}[h] +\begin{center} +\caption{ベンチマーク} +\label{table:benchmark} +\begin{tabular}[t]{l||l|l} +\hline +スレッド数 & $\displaystyle n =10^6$ & $\displaystyle n =10^7 $\\ +\hline\hline +1 スレッド & 239 ms & 2641 ms\\ +\hline +4 スレッド & 104 ms & 1010 ms\\ +\hline +\end{tabular} +\end{center} +\end{table} + +表\ref{table:benchmark}から, 台数効果が出ていることが確認できる. + +\section{まとめ} +本稿では, 既存の Cerium Task Manager の実装と新しい並列実行の機構について説明した. +新しく実装した並列実行の機構を用いることによって, Mac OS X, Linux 上でのマルチプロセッサ環境に対応できる. + +\nocite{yutaka:2010a, cell_abi, cell_cpp, cell_sdk, libspe2, ydl, clay200912, fix200609} +\thispagestyle{fancy} + +\nocite{yutaka:2010a} +\bibliographystyle{junsrt} +\bibliography{cerium,book} + +\end{document}