├── LICENSE ├── Makefile ├── process_management_and_process_schedule.md └── figures └── multitask.eps /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Takuya ASADA. 2 | 全ての原稿データ は クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。 3 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all clean process_management_and_process_schedule 2 | 3 | all: process_management_and_process_schedule 4 | 5 | process_management_and_process_schedule: process_management_and_process_schedule.pdf process_management_and_process_schedule.html process_management_and_process_schedule.epub process_management_and_process_schedule.mobi 6 | process_management_and_process_schedule.tex: figures/context_switch.eps figures/fork.eps figures/multitask.eps figures/red-black-tree.eps figures/exec.eps figures/memory_map.eps figures/process_switch.eps 7 | process_management_and_process_schedule.html: figures/context_switch.png figures/fork.png figures/multitask.png figures/red-black-tree.png figures/exec.png figures/memory_map.png figures/process_switch.png 8 | 9 | clean: 10 | rm -fv *.tex *.aux *.dvi *.log *.pdf *.html *.epub *.mobi *.out figures/*.png 11 | 12 | %.png: %.eps 13 | convert $< $@ 14 | 15 | %.pdf: %.dvi 16 | dvipdfmx $< 17 | 18 | %.dvi: %.tex 19 | platex $< 20 | platex $< 21 | 22 | %.tex: %.md 23 | pandoc $< -s -o $@ -V documentclass=jsarticle -V classoption=a4j --default-image-extension=.eps --filter pandoc-citeproc 24 | 25 | %.html: %.md 26 | pandoc $< -s -o $@ --default-image-extension=.png --filter pandoc-citeproc 27 | 28 | %.epub: %.md %.html 29 | pandoc $< -s -o $@ --default-image-extension=.png --filter pandoc-citeproc 30 | 31 | %.mobi: %.epub 32 | -~/kindlegen/kindlegen $< 33 | -------------------------------------------------------------------------------- /process_management_and_process_schedule.md: -------------------------------------------------------------------------------- 1 | --- 2 | authors: 3 | - 'Takuya ASADA syuu@dokukino.com' 4 | title: 'Linuxのしくみを学ぶ - プロセス管理とスケジューリング' 5 | ... 6 | 7 | プロセスとマルチタスクの実現 8 | ============================ 9 | 10 | Linuxは、多数のプロセスを同時に動作させる事が出来るマルチタスク環境を実現しています。\ 11 | psコマンドやtopコマンドを実行しプロセスのリストを取得すると多数のプロセスが実行中である事がわかります。 12 | また、これらのプロセス全てが同時に平行して動作しているように見えます。 13 | これはどのようにして実現されているのでしょうか。 14 | 15 | 一般的に、1つのプロセッサは同時に複数のプログラムを実行する事が出来ません[^1]。\ 16 | そこで、マルチタスクをサポートするOSでは複数のプロセスを非常に短い時間ずつ切り替えながら実行する事で、体感上は複数のプロセスが同時に実行されているように見せています(図1)。 17 | 18 | ![マルチタスク](figures/multitask) 19 | 20 | このような仕組みを実現する為にどんな機能がカーネルへ実装されているのか順に見ていきましょう。 21 | 22 | プロセスの切り替え 23 | ================== 24 | 25 | CPU上で処理中のデータを失う事なく現在のプロセスから別のプロセスに切り替えを行うには、現在のプロセスが使用しているレジスタやフラグなどCPUの状態を保存・復帰出来るようにする必要があります。 26 | 27 | このCPUの状態の事をコンテキスト、保存と復帰を行いコンテキストを切り替える事をコンテキストスイッチと呼びます。 28 | 29 | カーネルでプロセスの切り替えをサポートするには、プロセス毎にコンテキストの保存領域を用意・管理し適切なタイミングでコンテキストスイッチを実行する必要があります。 30 | 31 | プロセス毎のCPU時間の管理とプロセス切り替え 32 | ------------------------------------------- 33 | 34 | プロセス切り替えは、プロセスがスケジューラに割り当てられたCPU時間を使い切った時、あるいはプロセスがIO待ちなどの理由で自発的にCPUを手放した時に実行されます。 35 | 36 | ### CPU時間の管理の仕組み 37 | 38 | Linuxカーネルはハードウェアタイマにより定期的にタイマ割り込みが発生するように設定されています。 39 | 40 | この割り込みによって呼ばれる割り込みハンドラでは一定の時間が経過する度にプロセスのCPU利用時間を更新します。 41 | 42 | ### プロセス切り替えの仕組み 43 | 44 | プロセスのCPU利用時間がスケジューラにより割り当てられたCPU時間を超えたら、割り込みからの復帰時に現在のプロセスの状態を保存し、別のプロセスへ切り替えを行います。 45 | 46 | 以下に例を示します(図2)。 47 | 48 | ![タイマ割り込みとプロセス切り替え](figures/process_switch) 49 | 50 | 1. ユーザモードでプロセスAが実行されています。 51 | 52 | 2. タイマ割り込みが発生し、カーネルモードへ制御が移ります。 53 | 54 | 3. タイマ割り込みの割り込みハンドラからプロセス利用時間を更新する処理が呼び出されます。 55 | 56 | 4. 割り当てられたCPU時間を使い切っていない為プロセスAへ復帰、ユーザモードでプロセスAの実行が再開されます。 57 | 58 | 5. タイマ割り込みが発生し、カーネルモードへ制御が移ります。 59 | 60 | 6. タイマ割り込みの割り込みハンドラからプロセス利用時間を更新する処理が呼び出されます。 61 | 62 | 7. 割り当てられたCPU時間を超えたので、プロセスBへ切り替えを行います。 63 | 64 | 8. プロセスBへ復帰、ユーザモードでプロセスBの実行が再開されます。 65 | 66 | 9. タイマ割り込みが発生し、カーネルモードへ制御が移ります。 67 | 68 | 10. タイマ割り込みの割り込みハンドラからプロセス利用時間を更新する処理が呼び出されます。 69 | 70 | 11. 割り当てられたCPU時間を使い切っていない為プロセスBへ復帰、ユーザモードでプロセスBの実行が再開されます。 71 | 72 | コンテキストスイッチ 73 | -------------------- 74 | 75 | 次に、Linuxのコンテキストスイッチ処理がどのように実装されているのかを見ていきます。 76 | 77 | Linuxカーネルでは、コンテキストの保存領域としてthread\_info構造体とカーネルスタックを併用します。 78 | この二つはプロセス毎に割り当てられており、プロセス生成時に作成されます。 79 | 80 | コンテキストスイッチは以下のような手順で実行されます(図3)。 81 | 82 | ![コンテキストスイッチ](figures/context_switch) 83 | 84 | 1. スケジューラで次に実行するプロセスを選択します。 85 | 86 | 2. ページテーブル(詳しくは[ページング]を参照)を切り替えます。 87 | 88 | 3. スタックへ汎用レジスタ、フラグを退避します。 89 | 90 | 4. 現在のプロセスのthread\_info構造体へスタックポインタ、インストラクションポインタを退避します。 91 | 92 | 5. 次に実行するプロセスのthread\_info構造体からスタックポインタを復帰します。 93 | 94 | 6. セグメントレジスタを切り替えます。 95 | 96 | 7. 次に実行するプロセスのインストラクションポインタを復帰します。 97 | この時点でコンテキストが次のプロセスへ切り替わります。 98 | 99 | 8. スタックから汎用レジスタ、フラグを復帰し、コンテキストスイッチを完了します。 100 | 101 | プロセススケジューリング 102 | ======================== 103 | 104 | ユーザに対し全ての実行中プロセスがスムーズに動作しているように見せ、かつ高い性能が得られるようにするには、 105 | 106 | - いつコンテキストスイッチを実行するか 107 | 108 | - どのプロセスに切り替えるか 109 | 110 | が重要になります。 111 | 112 | プロセスへの時間割り当てが適切に行われていないと、そのプロセスはユーザから見て止まっているように見えてしまいます。\ 113 | また、コンテキストスイッチの頻度が高すぎるとオーバーヘッドが増大し、低すぎるとプロセスが断続的に止まっているように見えてしまいます。\ 114 | この二点を適切に決定し、実行する事がプロセススケジューラの役割になります。 115 | 116 | Linuxカーネルでは2.6.23よりそれまでのO(1)スケジューラに代わりCFS(Completely 117 | Fair Scheduler:完全に公平なスケジューラ)がマージされました。\ 118 | このスケジューラは、”CPU時間の分配を可能な限り公平にする”というコンセプトの元に実装されています。 119 | 120 | いつプロセス切り替えを実行するのか 121 | ---------------------------------- 122 | 123 | プロセスが次のプロセスへ切り替えられるまでに与えられるCPU時間の事をタイムスライスと呼びます。 124 | 125 | CFSではタイムスライスの長さをシステム負荷に応じて動的に調整します。 126 | まず、全タスクを一周動作させるまでのスケジューリング周期を求めます。この値は単一プロセッサ時の周期(20msec)にCPU数によって重み付けをした値です。 127 | 128 | この値に対し、以下のような計算を行った値をプロセスのタイムスライスとしています。 129 | 130 | ``` 131 | (スケジューリング周期 ÷ プロセス数) × 優先度による重み付け 132 | ``` 133 | 134 | つまり、CPU数が増える程スケジューリング周期は長く、プロセスが増える程タイムスライスは短くなります。 135 | これは、CPU数が増えれば一度に実行出来るプロセス数が増えるのでスケジューリング頻度を増やす必要が無くなる為です。 136 | 137 | 但し、このルールのみを用いていると、プロセスが多くなるに従いタイムスライスが短くなりすぎる為、タイムスライスの最小値を決めそれより短くならないようにしています。 138 | 139 | どのプロセスへ切り換えるのか 140 | ---------------------------- 141 | 142 | マルチタスクをサポートするOSでは一般的に、実行可能なプロセスを管理するランキューをカーネル内に持っており、ここから一つプロセスを選んでプロセス切り替えを行います。 143 | この時に、できるだけ低いコストで、最も適切なプロセスをランキューから取り出し、ランキューをメンテナンスするのがプロセススケジューラの重要な仕事になります。 144 | 145 | Linux 2.4のスケジューラではランキューは単純なリスト構造になっていました。 146 | しかし、この構造の場合、プロセススイッチの為に優先度の最も高いプロセスをランキューから一つ選ぶにはランキューを線形探索しなければなりません。 147 | これでは、探索コストがO(n)になってしまいプロセスが増えると非常に時間がかかってしまいます。 148 | 149 | 探索コストの問題を解決する為、以前のO(1)スケジューラでは優先度別リストを導入していました。 150 | これは、優先度ごとのプロセスリストの配列になっており、配列のエントリ毎に実行可能なプロセスの有無を示すビットを持っているのでスケジューラは常に一定の計算量(O(1))で最優先プロセスを探索する事が可能でした。 151 | 152 | しかし、単純に優先度の高いプロセスから実行していくとプロセスの実行頻度が大きく偏るという構造的な問題があり、これを避ける為にプロセスの優先度を調整したりしなければならず実装が複雑になっていました。 153 | 154 | CFSではこれらの問題を解決する為、ランキューにプロセスの実行時間でソートされたRed-Black Tree(赤黒木: 二分木の一種)を用いています(図4)。 155 | 156 | ![Red-Black Tree](figures/red-black-tree) 157 | 158 | 全てのプロセスはスケジューリングの為にvruntimeというパラメータを持ちます。 159 | これはプロセスが今までに使用したCPU時間の合計に対して優先度による重み付けを行った値です。 160 | ランキューはvruntimeの値でソートされ、スケジューラはvruntimeの値が最も小さいプロセスを実行しようとします。 161 | 1つのプロセスを実行し続けるとvruntimeが増加していき、他のプロセスのvruntimeの方が最も小さい値になった時点でプロセス切り替えが行われます。 162 | これを繰り返す事で全てのプロセスが公平に実行され、かつ優先度が反映された時間割り当てが実現されます。 163 | 164 | 探索コストの面では、Reb-Black Treeの操作にかかるコストはO(log n)なのでO(1)に比べて劣るように見えますが、プロセス数が多くなれば差は非常にわずかになります。 165 | また、スケジューラのアルゴリズム上、殆どの場合左端のノードしか参照しない事が分かっているので、このノードのポインタをキャッシュする事で更に高速化しています。 166 | 167 | マルチプロセッサ環境への対応 168 | ---------------------------- 169 | 170 | Linuxカーネルは多数のCPUを搭載するNUMAを含むマルチプロセッサ環境にも最適化されており、プロセススケジューリングも例外ではありません。 171 | 172 | 最初に、ランキューを見てみましょう。 旧来のLinux2.4カーネルではシステム全体で1つのランキューを持っていました。 173 | この仕組みはシンプルですが、ランキューに対して操作を行う度にロックをかけなければならず、大規模システムには不向きでした。 174 | 現在のLinuxカーネルでは、CPU毎のランキューを用意する事でこれを解決しています。 175 | しかし、ランキューを分けてしまうとCPU毎の実行プロセス数が偏ってしまい、あるプロセッサは忙しいが別のプロセッサはアイドル状態というような状況が発生する可能性があります。 176 | 177 | そこで、プロセススケジューラでは定期的にランキューの実行プロセス数の偏りをチェックし、一定以上の偏りが有ればプロセスが多いキューから少ないキューへプロセスを移動しています。 178 | 179 | また、新しいプロセスを生成する時に最も実行中プロセスが少ないランキューを持つCPUへプロセスを割り当て、プロセス数の偏りが起きないようにしています。 180 | 181 | プロセスに関するデータ構造 182 | ========================== 183 | 184 | プロセスディスクリプタ 185 | ---------------------- 186 | 187 | プロセスがどのような状態にあるか、どんな資源へアクセスしているかなどを管理する為、全てのプロセスに一つずつプロセスディスクリプタが割り当てられます。 188 | Linuxでのプロセスディスクリプタはtask\_struct構造体という名前になっていて、ここにプロセスに関する全ての情報が詰め込まれています。 189 | 190 | 項目数が大変多いので、主な項目をピックアップして以下に示します。 191 | 192 | ### プロセスの状態 193 | [プロセスの状態]にて説明します。 194 | 195 | ### thread\_info構造体 196 | コンテキストスイッチ時にスタックポインタ、インストラクションポインタなどを保存する領域です。 197 | 198 | ### 優先度 199 | プロセスをどの程度優先して実行するかを表すパラメータでnice値を元に決定され、プロセススケジューリングに反映されます。 200 | 201 | ### スケジューリング情報 202 | vruntimeなどのプロセススケジューリングに必要な情報を記録しています。 203 | 204 | ### PID 205 | プロセスを識別するのに利用されるユニークなIDです。 206 | 207 | ### プロセスの親子関係 208 | Linuxのプロセスには親子関係があります。 209 | この項目ではプロセス間の親子関係を記録しています。 210 | 211 | ### メモリディスクリプタ 212 | プロセスの仮想メモリ空間に関する情報(ページテーブルやメモリリージョンの情報など)を記録しています。 213 | 詳しくは[メモリディスクリプタ]で説明します。 214 | 215 | ### 開いているファイルの情報 216 | プロセスがオープンしているファイルディスクリプタを記録しています。 217 | 218 | ### パイプに関する情報 219 | プロセスが利用しているパイプに関する情報を記録しています。 220 | 221 | ### シグナルに関する情報 222 | プロセスが受け取ったシグナルに関する情報を記録しています。 223 | 224 | スケジューラが利用するランキューや[ウェイトキュー]で説明するウエイトキューは、このプロセスディスクリプタへのポインタを管理しています。 225 | 226 | プロセスの状態 227 | -------------- 228 | 229 | システムで実行中のプロセスは、IO待ちなどにより一時的に実行を中断しなければならない状態が存在します。 230 | このようなプロセスの状態遷移を表す為、プロセスディスクリプタにステータスフラグが用意されています。 231 | 232 | ### TASK\_RUNNING 233 | 実行中・実行待ちの状態です。停止される要因が無ければプロセスは常にこの状態にあります。 234 | この状態のプロセスはランキューによって管理され、実行されるのを待ちます。 235 | 236 | ### TASK\_INTERRUPTIBLE 237 | ある要因によって待ち状態に入っている事を表します。 238 | ハードウェア割り込み、システム資源の解放、シグナルなどの要因により起床します。 239 | この状態のプロセスはウエイトキューによって管理され、待ち要因の事象が発生するのを待ちます。 240 | 241 | ### TASK\_UNINTERRUPTIBLE 242 | TASK\_INTERRUPTIBLEと同様の状態ですが、シグナルによって起床しません。 243 | この状態のプロセスはウエイトキューによって管理され、待ち要因の事象が発生するのを待ちます。 244 | 245 | ### TASK\_STOPPED 246 | シグナルにより停止状態に設定されています。 247 | ランキュー/ウエイトキューのどちらにも管理されていません。 248 | 249 | ### TASK\_TRACED 250 | デバッガにより停止状態に設定されています。 251 | ランキュー/ウエイトキューのどちらにも管理されていません。 252 | 253 | ウエイトキュー 254 | -------------- 255 | 256 | TASK\_INTERRUPTIBLE, TASK\_UNINTERRUPTIBLEのプロセスは待ち要因別の双方向リストによって管理されています。 257 | プロセスが待ち状態に入る時、対応する待ち要因のウエイトキューに入れられます。 258 | 259 | 待ち要因の事象が発生したら、ウエイトキューからプロセスをランキューへ移動して起動させます。 260 | 261 | プロセスの生成 262 | ============== 263 | 264 | Linuxでは新しいプロセスを生成しプログラムを実行するのにfork()とexecve()の二つのシステムコールを順に呼ぶ必要があります。 265 | fork()では現在のプロセスを複製して子プロセスを作り、execve()では実行ファイルを読み込み、現在のプロセスを上書きします。 266 | 267 | fork()の流れ 268 | ------------ 269 | 270 | fork()の中で大まかにどのような処理が行われているかを以下に示します(図5)。 271 | 272 | ![fork()](figures/fork) 273 | 274 | 1. 子プロセスに新しいPIDを割り当てます。 275 | 276 | 2. プロセスディスクリプタを割り当て、親プロセスのプロセスディスクリプタから内容をコピーします。 277 | 278 | 3. thread\_info構造体を割り当て、親プロセスのthread\_info構造体から内容をコピーします。 279 | 280 | 4. 利用中ファイルの情報、シグナルの情報、メモリディスクリプタなどをコピーします。 281 | 282 | 5. 親プロセスのスタックに退避されているレジスタの値を子プロセスのスタックにコピーします。 283 | 284 | 6. ステータスをTASK\_RUNNINGに設定します。 285 | 286 | 7. ランキューに登録します。 287 | 288 | プロセスディスクリプタ、thread\_info構造体、利用中の資源の情報などは全てコピーされます。 289 | 但し、メモリ空間はコピーせずに親プロセスと共有し、後で書き込みが起きた時点で初めてコピーを行います。 290 | このような方式をコピーオンライトと呼びます。詳しくは[コピーオンライト]で解説します。 291 | 292 | execve()の流れ 293 | -------------- 294 | 295 | execve()の中で大まかにどのような処理が行われているかを以下に示します(図6)。 296 | 297 | ![exec()](figures/exec) 298 | 299 | 1. バイナリファイルをオープンします。 300 | 301 | 2. バイナリファイルのヘッダをロードします。 302 | 303 | 3. ファイル名、引数、環境変数をコピーします。 304 | 305 | 4. バイナリヘッダを読み込みます。 306 | 307 | 5. 古い資源を解放します。 308 | 309 | 6. メモリ領域を作成してプログラムをマップします。 310 | 311 | 7. スタックポインタ、インストラクションポインタの初期値を設定します。 312 | 313 | execve()はバイナリファイルをロードし、現在のプロセスのコンテキストを上書きします。 314 | バイナリファイルのヘッダからバイナリの形式を判断、適切なローダを用いてメモリレイアウトなどを取得し、新しいメモリ領域を作ってプログラムをマップします。 315 | 316 | プロセスのアドレス空間 317 | ====================== 318 | 319 | Linuxカーネルではメモリ保護の為プロセス毎に異なる仮想アドレス空間を割り当て、他のプロセスのメモリ領域を破壊する事を防いでいます。 320 | 321 | この仮想メモリへ必要な物理メモリを割り当てていく事で、実際にプロセスへ物理メモリを提供しています。 322 | 323 | ページング 324 | ---------- 325 | 326 | Linuxでは他の多くのOSと同様にメモリ管理にページング方式を用います。 327 | この方式では、物理メモリ空間をページと呼ばれる固定長のブロックに区切り、仮想アドレスに対するページ割り当てを記録するページテーブルで管理します。 328 | 329 | プロセス毎に異なる仮想メモリ空間を割り当てる為、ページテーブルはプロセスに一つ割り当てられます。 330 | 331 | x86アーキテクチャのページテーブルは2階層ですが、Linuxカーネルでは各種64bitアーキテクチャに対応する為に最大4階層までのページテーブルをサポートしています。 332 | 333 | メモリディスクリプタ 334 | -------------------- 335 | 336 | メモリディスクリプタはプロセスのアドレス空間に関する情報を全て記録している場所で、プロセスディスクリプタに対して1つ割り当てられています。 337 | 338 | 主な項目をピックアップして以下に示します。 339 | 340 | ### メモリリージョンのリスト 341 | プロセスのアドレス空間に割り当てたメモリ領域の情報です。詳しくは[メモリリージョン]にて説明します。 342 | 343 | ### ページテーブル 344 | プロセスのアドレス空間を管理しているページテーブルのアドレスです。 345 | 346 | ### コード領域の情報 347 | プロセスのプログラムデータを割り当てている領域です。 348 | 349 | ### ヒープ領域の情報 350 | プロセスが動的に確保するデータ記録用の領域です。 351 | C言語のmalloc()等で使用されます。 352 | 353 | ### データ領域の情報 354 | プロセスが静的に確保するデータ記録用の領域です。 355 | C言語のグローバル等で使用されます。 356 | 357 | メモリリージョン 358 | ---------------- 359 | 360 | カーネルはexecve()時の初期メモリ領域の割り当て時やプロセスからのシステムコールを通した要求により、仮想アドレス空間にプロセスがアクセス可能なリニアアドレスの区間を作成します。 361 | この区間をメモリリージョンと呼んでいます。 362 | 363 | メモリリージョンはメモリリージョンディスクリプタ(vm\_area\_struct構造体)によりプロセス毎に管理されており、主に以下のような情報を持っています。 364 | 365 | - メモリ領域の範囲(先頭、終端アドレス) 366 | 367 | - メモリへのアクセス権 368 | 369 | - ファイルオブジェクト(ファイルをメモリマップしている場合のみ) 370 | 371 | メモリリージョンにより実行中プロセスの仮想アドレス空間へメモリ領域を割り当てた様子を以下に示します(図7)。 372 | 373 | ![メモリディスクリプタとメモリマップ](figures/memory_map) 374 | 375 | デマンドページング 376 | ------------------ 377 | 378 | Linuxカーネルでは、メモリリージョンの作成を行った時点では対応するページ(固定長の物理メモリのブロック)を確保しません。 379 | プロセスがこの領域にアクセスを行うと、メモリが割り当てられていないページである為ページフォルトが発生します。 380 | この時点で初めてページフレームを割り当てます。 381 | この手法をデマントページングと呼びます。 382 | 383 | 殆どの場合、プロセスがある時点にアクセスするメモリ領域はごく一部のページに限られています。 384 | その為、この手法によってメモリ割り当てを効率化する事が出来ます。 385 | 386 | コピーオンライト 387 | ---------------- 388 | 389 | fork()でプロセスを複製する際、Linuxカーネルでは親プロセスのページフレームをコピーせずにページを読み取り専用に設定して親プロセスと子プロセスの間で共有します。 390 | その後、ページに対する書き込みが発生した時点で初めて新しくページを作成しコピーを実行します。 391 | このような方式をコピーオンライトと呼び、無駄なコピーを抑制させる事によりカーネルの性能を向上させています。 392 | 393 | プログラムをロードして新しいプロセスを作成する時、多くの場合はfork()の直後にexecve()を実行する為、親プロセスのメモリ領域は直ぐに必要なくなってしまいます。 394 | このような場合、コピーオンライトでページのコピーを抑制しておけば無駄なコピーを行わなくてすみます。 395 | 396 | まとめ 397 | ====== 398 | 399 | 以上、プロセス管理の仕組みとプロセススケジューラ、プロセスのアドレス空間について見てきました。 400 | 複数のプロセスがどのようにして平行動作しているのかお分かりいただけたでしょうか。 401 | 402 | ライセンス 403 | ========== 404 | 405 | Copyright (c) 2014 Takuya ASADA. 全ての原稿データ は 406 | クリエイティブ・コモンズ 表示 - 継承 4.0 国際 407 | ライセンスの下に提供されています。 408 | 409 | 参考文献 410 | ======== 411 | 412 | 以下に本記事を執筆するにあたり参照した文献を示します。 413 | 414 | - 詳解LINUXカーネル 第3版 Linuxカーネル2.6 解読室 Linux 415 | - Kernel Watch 416 | - developerWorks Japan 417 | 418 | [^1]: IntelのHyperThreadingやSunのCMTのように1プロセッサで複数スレッドを処理可能なプロセッサも存在します。 419 | しかしこの場合OSはスレッド数分の論理プロセッサが存在すると認識する為、この論理プロセッサの上ではやはり同時に複数のプログラムを動かす事が出来ません。 420 | -------------------------------------------------------------------------------- /figures/multitask.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-3.0 EPSF-3.0 2 | %%HiResBoundingBox: 0.000000 0.000000 185.000000 96.000000 3 | %APL_DSC_Encoding: UTF8 4 | %APLProducer: (Version 10.6.1 (Build 10B504) Quartz PS Context) 5 | %%Title: (Unknown) 6 | %%Creator: (Unknown) 7 | %%CreationDate: (Unknown) 8 | %%For: (Unknown) 9 | %%DocumentData: Clean7Bit 10 | %%LanguageLevel: 2 11 | %%Pages: 1 12 | %%BoundingBox: 0 0 148 77 13 | %%EndComments 14 | %%BeginProlog 15 | %%BeginFile: cg-pdf.ps 16 | %%Copyright: Copyright 2000-2004 Apple Computer Incorporated. 17 | %%Copyright: All Rights Reserved. 18 | currentpacking true setpacking 19 | /cg_md 141 dict def 20 | cg_md begin 21 | /L3? languagelevel 3 ge def 22 | /bd{bind def}bind def 23 | /ld{load def}bd 24 | /xs{exch store}bd 25 | /xd{exch def}bd 26 | /cmmtx matrix def 27 | mark 28 | /sc/setcolor 29 | /scs/setcolorspace 30 | /dr/defineresource 31 | /fr/findresource 32 | /T/true 33 | /F/false 34 | /d/setdash 35 | /w/setlinewidth 36 | /J/setlinecap 37 | /j/setlinejoin 38 | /M/setmiterlimit 39 | /i/setflat 40 | /rc/rectclip 41 | /rf/rectfill 42 | /rs/rectstroke 43 | /f/fill 44 | /f*/eofill 45 | /sf/selectfont 46 | /s/show 47 | /xS/xshow 48 | /yS/yshow 49 | /xyS/xyshow 50 | /S/stroke 51 | /m/moveto 52 | /l/lineto 53 | /c/curveto 54 | /h/closepath 55 | /n/newpath 56 | /q/gsave 57 | /Q/grestore 58 | counttomark 2 idiv 59 | {ld}repeat pop 60 | /SC{ 61 | /ColorSpace fr scs 62 | }bd 63 | /sopr /setoverprint where{pop/setoverprint}{/pop}ifelse ld 64 | /soprm /setoverprintmode where{pop/setoverprintmode}{/pop}ifelse ld 65 | /cgmtx matrix def 66 | /sdmtx{cgmtx currentmatrix pop}bd 67 | /CM {cgmtx setmatrix}bd 68 | /cm {cmmtx astore CM concat}bd 69 | /W{clip newpath}bd 70 | /W*{eoclip newpath}bd 71 | statusdict begin product end dup (HP) anchorsearch{ 72 | pop pop pop 73 | true 74 | }{ 75 | pop 76 | (hp) anchorsearch{ 77 | pop pop true 78 | }{ 79 | pop false 80 | }ifelse 81 | }ifelse 82 | { 83 | { 84 | { 85 | pop pop 86 | (0)dup 0 4 -1 roll put 87 | F charpath 88 | }cshow 89 | } 90 | }{ 91 | {F charpath} 92 | }ifelse 93 | /cply exch bd 94 | /cps {cply stroke}bd 95 | /pgsave 0 def 96 | /bp{/pgsave save store}bd 97 | /ep{pgsave restore showpage}def 98 | /re{4 2 roll m 1 index 0 rlineto 0 exch rlineto neg 0 rlineto h}bd 99 | /scrdict 10 dict def 100 | /scrmtx matrix def 101 | /patarray 0 def 102 | /createpat{patarray 3 1 roll put}bd 103 | /makepat{ 104 | scrmtx astore pop 105 | gsave 106 | initgraphics 107 | CM 108 | patarray exch get 109 | scrmtx 110 | makepattern 111 | grestore 112 | setpattern 113 | }bd 114 | /cg_BeginEPSF{ 115 | userdict save/cg_b4_Inc_state exch put 116 | userdict/cg_endepsf/cg_EndEPSF load put 117 | count userdict/cg_op_count 3 -1 roll put 118 | countdictstack dup array dictstack userdict/cg_dict_array 3 -1 roll put 119 | 3 sub{end}repeat 120 | /showpage {} def 121 | 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 122 | 10 setmiterlimit [] 0 setdash newpath 123 | false setstrokeadjust false setoverprint 124 | }bd 125 | /cg_EndEPSF{ 126 | countdictstack 3 sub { end } repeat 127 | cg_dict_array 3 1 index length 3 sub getinterval 128 | {begin}forall 129 | count userdict/cg_op_count get sub{pop}repeat 130 | userdict/cg_b4_Inc_state get restore 131 | F setpacking 132 | }bd 133 | /cg_biproc{currentfile/RunLengthDecode filter}bd 134 | /cg_aiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}bd 135 | /ImageDataSource 0 def 136 | L3?{ 137 | /cg_mibiproc{pop pop/ImageDataSource{cg_biproc}def}bd 138 | /cg_miaiproc{pop pop/ImageDataSource{cg_aiproc}def}bd 139 | }{ 140 | /ImageBandMask 0 def 141 | /ImageBandData 0 def 142 | /cg_mibiproc{ 143 | string/ImageBandMask xs 144 | string/ImageBandData xs 145 | /ImageDataSource{[currentfile/RunLengthDecode filter dup ImageBandMask/readstring cvx 146 | /pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd 147 | }bd 148 | /cg_miaiproc{ 149 | string/ImageBandMask xs 150 | string/ImageBandData xs 151 | /ImageDataSource{[currentfile/ASCII85Decode filter/RunLengthDecode filter 152 | dup ImageBandMask/readstring cvx 153 | /pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd 154 | }bd 155 | }ifelse 156 | /imsave 0 def 157 | /BI{save/imsave xd mark}bd 158 | /EI{imsave restore}bd 159 | /ID{ 160 | counttomark 2 idiv 161 | dup 2 add 162 | dict begin 163 | {def} repeat 164 | pop 165 | /ImageType 1 def 166 | /ImageMatrix[Width 0 0 Height neg 0 Height]def 167 | currentdict dup/ImageMask known{ImageMask}{F}ifelse exch 168 | L3?{ 169 | dup/MaskedImage known 170 | { 171 | pop 172 | << 173 | /ImageType 3 174 | /InterleaveType 2 175 | /DataDict currentdict 176 | /MaskDict 177 | << /ImageType 1 178 | /Width Width 179 | /Height Height 180 | /ImageMatrix ImageMatrix 181 | /BitsPerComponent 1 182 | /Decode [0 1] 183 | currentdict/Interpolate known 184 | {/Interpolate Interpolate}if 185 | >> 186 | >> 187 | }if 188 | }if 189 | exch 190 | {imagemask}{image}ifelse 191 | end 192 | }bd 193 | /cguidfix{statusdict begin mark version end 194 | {cvr}stopped{cleartomark 0}{exch pop}ifelse 195 | 2012 lt{dup findfont dup length dict begin 196 | {1 index/FID ne 2 index/UniqueID ne and 197 | {def} {pop pop} ifelse}forall 198 | currentdict end definefont pop 199 | }{pop}ifelse 200 | }bd 201 | /t_array 0 def 202 | /t_i 0 def 203 | /t_c 1 string def 204 | /x_proc{ 205 | exch t_array t_i get add exch moveto 206 | /t_i t_i 1 add store 207 | }bd 208 | /y_proc{ 209 | t_array t_i get add moveto 210 | /t_i t_i 1 add store 211 | }bd 212 | /xy_proc{ 213 | 214 | t_array t_i 2 copy 1 add get 3 1 roll get 215 | 4 -1 roll add 3 1 roll add moveto 216 | /t_i t_i 2 add store 217 | }bd 218 | /sop 0 def 219 | /cp_proc/x_proc ld 220 | /base_charpath 221 | { 222 | /t_array xs 223 | /t_i 0 def 224 | { 225 | t_c 0 3 -1 roll put 226 | currentpoint 227 | t_c cply sop 228 | cp_proc 229 | }forall 230 | /t_array 0 def 231 | }bd 232 | /sop/stroke ld 233 | /nop{}def 234 | /xsp/base_charpath ld 235 | /ysp{/cp_proc/y_proc ld base_charpath/cp_proc/x_proc ld}bd 236 | /xysp{/cp_proc/xy_proc ld base_charpath/cp_proc/x_proc ld}bd 237 | /xmp{/sop/nop ld /cp_proc/x_proc ld base_charpath/sop/stroke ld}bd 238 | /ymp{/sop/nop ld /cp_proc/y_proc ld base_charpath/sop/stroke ld}bd 239 | /xymp{/sop/nop ld /cp_proc/xy_proc ld base_charpath/sop/stroke ld}bd 240 | /refnt{ 241 | findfont dup length dict copy dup 242 | /Encoding 4 -1 roll put 243 | definefont pop 244 | }bd 245 | /renmfont{ 246 | findfont dup length dict copy definefont pop 247 | }bd 248 | L3? dup dup{save exch}if 249 | /Range 0 def 250 | /DataSource 0 def 251 | /val 0 def 252 | /nRange 0 def 253 | /mulRange 0 def 254 | /d0 0 def 255 | /r0 0 def 256 | /di 0 def 257 | /ri 0 def 258 | /a0 0 def 259 | /a1 0 def 260 | /r1 0 def 261 | /r2 0 def 262 | /dx 0 def 263 | /Nsteps 0 def 264 | /sh3tp 0 def 265 | /ymax 0 def 266 | /ymin 0 def 267 | /xmax 0 def 268 | /xmin 0 def 269 | /setupFunEval 270 | { 271 | begin 272 | /nRange Range length 2 idiv store 273 | /mulRange 274 | 275 | [ 276 | 0 1 nRange 1 sub 277 | { 278 | 2 mul/nDim2 xd 279 | Range nDim2 get 280 | Range nDim2 1 add get 281 | 1 index sub 282 | 283 | 255 div 284 | exch 285 | }for 286 | ]store 287 | end 288 | }bd 289 | /FunEval 290 | { 291 | begin 292 | 293 | nRange mul /val xd 294 | 295 | 0 1 nRange 1 sub 296 | { 297 | dup 2 mul/nDim2 xd 298 | val 299 | add DataSource exch get 300 | mulRange nDim2 get mul 301 | mulRange nDim2 1 add get 302 | add 303 | }for 304 | end 305 | }bd 306 | /max 307 | { 308 | 2 copy lt 309 | {exch pop}{pop}ifelse 310 | }bd 311 | /sh2 312 | { 313 | /Coords load aload pop 314 | 3 index 3 index translate 315 | 316 | 3 -1 roll sub 317 | 3 1 roll exch 318 | sub 319 | 2 copy 320 | dup mul exch dup mul add sqrt 321 | dup 322 | scale 323 | atan 324 | 325 | rotate 326 | 327 | /Function load setupFunEval 328 | 329 | 330 | clippath {pathbbox}stopped {0 0 0 0}if newpath 331 | /ymax xs 332 | /xmax xs 333 | /ymin xs 334 | /xmin xs 335 | currentdict/Extend known 336 | { 337 | /Extend load 0 get 338 | { 339 | 0/Function load FunEval sc 340 | xmin ymin xmin abs ymax ymin sub rectfill 341 | }if 342 | }if 343 | 344 | /Nsteps/Function load/Size get 0 get 1 sub store 345 | /dx 1 Nsteps div store 346 | gsave 347 | /di ymax ymin sub store 348 | /Function load 349 | 350 | 0 1 Nsteps 351 | { 352 | 1 index FunEval sc 353 | 0 ymin dx di rectfill 354 | dx 0 translate 355 | }for 356 | pop 357 | grestore 358 | currentdict/Extend known 359 | { 360 | /Extend load 1 get 361 | { 362 | Nsteps/Function load FunEval sc 363 | 1 ymin xmax 1 sub abs ymax ymin sub rectfill 364 | }if 365 | }if 366 | }bd 367 | /shp 368 | { 369 | 4 copy 370 | 371 | dup 0 gt{ 372 | 0 exch a1 a0 arc 373 | }{ 374 | pop 0 moveto 375 | }ifelse 376 | dup 0 gt{ 377 | 0 exch a0 a1 arcn 378 | }{ 379 | pop 0 lineto 380 | }ifelse 381 | 382 | fill 383 | 384 | dup 0 gt{ 385 | 0 exch a0 a1 arc 386 | }{ 387 | pop 0 moveto 388 | }ifelse 389 | dup 0 gt{ 390 | 0 exch a1 a0 arcn 391 | }{ 392 | pop 0 lineto 393 | }ifelse 394 | 395 | fill 396 | }bd 397 | /calcmaxs 398 | { 399 | 400 | xmin dup mul ymin dup mul add sqrt 401 | xmax dup mul ymin dup mul add sqrt 402 | xmin dup mul ymax dup mul add sqrt 403 | xmax dup mul ymax dup mul add sqrt 404 | max max max 405 | }bd 406 | /sh3 407 | { 408 | /Coords load aload pop 409 | 5 index 5 index translate 410 | 3 -1 roll 6 -1 roll sub 411 | 3 -1 roll 5 -1 roll sub 412 | 2 copy dup mul exch dup mul add sqrt 413 | /dx xs 414 | 2 copy 0 ne exch 0 ne or 415 | { 416 | 417 | exch atan rotate 418 | }{ 419 | pop pop 420 | }ifelse 421 | 422 | /r2 xs 423 | /r1 xs 424 | /Function load 425 | dup/Size get 0 get 1 sub 426 | /Nsteps xs 427 | setupFunEval 428 | 429 | 430 | 431 | 432 | 433 | dx r2 add r1 lt{ 434 | 435 | 0 436 | }{ 437 | dx r1 add r2 le 438 | { 439 | 1 440 | }{ 441 | r1 r2 eq 442 | { 443 | 2 444 | }{ 445 | 3 446 | }ifelse 447 | }ifelse 448 | }ifelse 449 | /sh3tp xs 450 | clippath {pathbbox}stopped {0 0 0 0}if 451 | newpath 452 | /ymax xs 453 | /xmax xs 454 | /ymin xs 455 | /xmin xs 456 | 457 | dx dup mul r2 r1 sub dup mul sub dup 0 gt 458 | { 459 | sqrt r2 r1 sub atan 460 | /a0 exch 180 exch sub store 461 | /a1 a0 neg store 462 | }{ 463 | pop 464 | /a0 0 store 465 | /a1 360 store 466 | }ifelse 467 | currentdict/Extend known 468 | { 469 | /Extend load 0 get r1 0 gt and 470 | { 471 | 0/Function load FunEval sc 472 | 473 | 474 | 475 | 476 | { 477 | { 478 | dx 0 r1 360 0 arcn 479 | xmin ymin moveto 480 | xmax ymin lineto 481 | xmax ymax lineto 482 | xmin ymax lineto 483 | xmin ymin lineto 484 | eofill 485 | } 486 | { 487 | r1 0 gt{0 0 r1 0 360 arc fill}if 488 | } 489 | { 490 | 491 | 492 | 493 | 494 | 0 r1 xmin abs r1 add neg r1 shp 495 | } 496 | { 497 | 498 | 499 | r2 r1 gt{ 500 | 501 | 0 r1 502 | r1 neg r2 r1 sub div dx mul 503 | 0 504 | shp 505 | }{ 506 | 507 | 508 | 509 | 0 r1 calcmaxs 510 | dup 511 | 512 | r2 add dx mul dx r1 r2 sub sub div 513 | neg 514 | exch 1 index 515 | abs exch sub 516 | shp 517 | }ifelse 518 | } 519 | }sh3tp get exec 520 | }if 521 | }if 522 | 523 | /d0 0 store 524 | /r0 r1 store 525 | /di dx Nsteps div store 526 | /ri r2 r1 sub Nsteps div store 527 | /Function load 528 | 0 1 Nsteps 529 | { 530 | 1 index FunEval sc 531 | d0 di add r0 ri add d0 r0 shp 532 | { 533 | 534 | d0 0 r0 a1 a0 arc 535 | d0 di add 0 r0 ri add a0 a1 arcn 536 | fill 537 | 538 | 539 | d0 0 r0 a0 a1 arc 540 | d0 di add 0 r0 ri add a1 a0 arcn 541 | fill 542 | }pop 543 | 544 | 545 | /d0 d0 di add store 546 | /r0 r0 ri add store 547 | }for 548 | pop 549 | 550 | currentdict/Extend known 551 | { 552 | /Extend load 1 get r2 0 gt and 553 | { 554 | Nsteps/Function load FunEval sc 555 | 556 | 557 | 558 | 559 | { 560 | { 561 | dx 0 r2 0 360 arc fill 562 | } 563 | { 564 | dx 0 r2 360 0 arcn 565 | xmin ymin moveto 566 | xmax ymin lineto 567 | xmax ymax lineto 568 | xmin ymax lineto 569 | xmin ymin lineto 570 | eofill 571 | } 572 | { 573 | 574 | 575 | xmax abs r1 add r1 dx r1 shp 576 | } 577 | { 578 | 579 | r2 r1 gt{ 580 | 581 | 582 | 583 | calcmaxs dup 584 | 585 | r1 add dx mul dx r2 r1 sub sub div 586 | exch 1 index 587 | exch sub 588 | dx r2 589 | shp 590 | }{ 591 | 592 | r1 neg r2 r1 sub div dx mul 593 | 0 594 | dx 595 | r2 596 | shp 597 | }ifelse 598 | } 599 | } 600 | sh3tp get exec 601 | }if 602 | }if 603 | }bd 604 | /sh 605 | { 606 | begin 607 | /ShadingType load dup dup 2 eq exch 3 eq or 608 | { 609 | gsave 610 | newpath 611 | /ColorSpace load scs 612 | currentdict/BBox known 613 | { 614 | /BBox load aload pop 615 | 2 index sub 616 | 3 index 617 | 3 -1 roll exch sub 618 | exch rectclip 619 | }if 620 | 2 eq 621 | {sh2}{sh3}ifelse 622 | grestore 623 | }{ 624 | 625 | pop 626 | (DEBUG: shading type unimplemented\n)print flush 627 | }ifelse 628 | end 629 | }bd 630 | {restore}if not dup{save exch}if 631 | L3?{ 632 | /sh/shfill ld 633 | /csq/clipsave ld 634 | /csQ/cliprestore ld 635 | }if 636 | {restore}if 637 | end 638 | setpacking 639 | %%EndFile 640 | %%EndProlog 641 | %%BeginSetup 642 | %%EndSetup 643 | %%Page: 1 1 644 | %%PageBoundingBox: 0 0 148 77 645 | %%BeginPageSetup 646 | cg_md begin 647 | bp 648 | sdmtx 649 | %RBIBeginFontSubset: Helvetica 650 | %!FontType1-1.0: Helvetica 1.0000.0.0000 651 | 14 dict begin/FontName /Helvetica def 652 | /PaintType 0 def 653 | /Encoding 256 array 0 1 255{1 index exch/.notdef put}for 654 | dup 33 /A put 655 | dup 34 /B put 656 | dup 35 /C put 657 | readonly def 658 | 42/FontType resourcestatus{pop pop false}{true}ifelse 659 | %APLsfntBegin 660 | {currentfile 0(%APLsfntEnd\n)/SubFileDecode filter flushfile}if 661 | /FontType 42 def 662 | /FontMatrix matrix def 663 | /FontBBox[2048 -1947 1 index div -985 2 index div 2961 3 index div 2297 5 -1 roll div]cvx def 664 | /sfnts [< 665 | 74727565000900000000000063767420000000000000009C0000036C6670676D000000000000040800000A1D676C79660000000000000E28000003A86865616400000000000011D00000003668686561000000000000120800000024686D7478000000000000122C000000106C6F6361000000000000123C0000000A6D617870000000000000124800000020707265700000000000001268000003CF05C0001005BD00280580001A042F001F0000FFD90000FFDA0000FFD9FE55FFE605C70010FE6DFFF1033B000000B9000000B902FE3F3C00C0008D009B00AF000600A800C00028005E009800C9016A00B9015C00B400D6011E002E0080000400B8004C00CC01FFFFD1006600A400AF007400C2009500B1000C0028006D0015004C008E0125FF7A000C0040004C00620084FFA200240038008600BD0039005E008E00EDFFA9FFB300400052005500AA00AB00C200CB012302B10413FFAEFFE4000800510074008400AA00D1FF4CFFAF0012002C004200500051008400BE012503DAFF680018003B0098009C009F00A100C100EC018201B4FF68FF76FFD0FFE100020018001C00530053007D01B401E103AF0486FF9CFFEAFFFE001F0028002A00520060009300A300AA00AF00AF00C001000145016B0174019301950240028202B404850517FEFD00060029004700470048006F008800B400B900C400F200F901EF02180310037403C5FF35FFF3000B004B004C0052005500650076007600870087008E00AB00BB0106013001430150017D0194019501D3022A025502580277027802E6034E035C037903D3047304B2058C0598060BFEF5FFBBFFC7FFD50017001D005B0072007E009C00C200D000F400FA01030106011C0125013B0142015E015E0180019B02B901A101B9025001C001D002AA01DF01E301EF01FB0205020C0215022B0274029302AB02C202CE03690395039903DF03F5043E050205A105E5062507DBFE62FE89FECEFF3BFFE1FFF800030008002100390042004E005F0061006F00700034007F008E00AD00AD00AF00BD00C400C500C900C900C900E3011C00ED00F800F901000112011A0132014D014D014E014F01660169019E01BA01BA01BE01E301EF01F602000200020902110217021C02530262026D028002D50280031B032A034A035A03AF03AF03C803D603FB03FB04050413041504470449008C046D049A049A04A604A804B204CF0539053E054E055605800589058C036305D105D6067E068E06B206EF06F00728074C076F078C00B400C900C000C10000000000000000000000000004012400AF0032006E0063014401620096014301A10161008A00740064018801EF01700028FF5D037E0347023000AA00BE007B0062009A007D0089035C00A1FFD803AA00D70093006C0000008000A70442001D0597001D00820030002A 666 | 002A002A002A002A40292A292827262524232221201F1E1D1C1B1A191817161514131211100D0C0B0A090807060504030201002C4523466020B02660B004262348482D2C452346236120B02661B004262348482D2C45234660B0206120B04660B004262348482D2C4523462361B0206020B02661B02061B004262348482D2C45234660B0406120B06660B004262348482D2C4523462361B0406020B02661B04061B004262348482D2C0110203C003C2D2C20452320B0CD442320B8015A51582320B08D44235920B0ED51582320B04D44235920B09051582320B00D44235921212D2C20204518684420B001602045B04676688A4560442D2C01B9400000000A2D2C00B9000040000B2D2C2045B00043617D6818B0004360442D2C45B01A234445B01923442D2C2045B00325456164B050515845441B2121592D2C20B0032552582359212D2C69B04061B0008B0C6423648BB8400062600C642364615C58B0036159B002602D2C45B0112BB0172344B0177AE5182D2C45B0112BB01723442D2C45B0112BB017458CB0172344B0177AE5182D2CB002254661658A46B040608B482D2CB0022546608A46B040618C482D2C4B53205C58B002855958B00185592D2C20B0032545B019236A4445B01A23444565234520B00325606A20B009234223688A6A606120B0005258B21A401A4523614459B0005058B219401945236144592D2CB9187E3B210B2D2CB92D412D410B2D2CB93B21187E0B2D2CB93B21E7830B2D2CB92D41D2C00B2D2CB9187EC4E00B2D2C4B525845441B2121592D2C0120B003252349B04060B0206320B000525823B002253823B002256538008A63381B212121212159012D2C456920B00943B0022660B00325B005254961B0805358B21940194523616844B21A401A4523606A44B209191A45652345604259B00943608A103A2D2C01B005251023208AF500B0016023EDEC2D2C01B005251023208AF500B0016123EDEC2D2C01B0062510F500EDEC2D2C20B001600110203C003C2D2C20B001610110203C003C2D2C764520B003254523616818236860442D2C7645B00325452361682318456860442D2C7645B0032545616823452361442D2C4569B014B0324B505821B0205961442DB8002B2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8002C2C2020456944B001602DB8002D2CB8002C2A212DB8002E2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8002F2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800302C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800312C2020456944B0016020 667 | 20457D691844B001602DB800322CB800312A2DB800332C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800342C4B535845441B2121592DB800352C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800362C2020456944B001602DB800372CB800362A212DB800382C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800392C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8003A2C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB8003B2C2020456944B001602020457D691844B001602DB8003C2CB8003B2A2DB8003D2C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8003E2C4B535845441B2121592DB8003F2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800402C2020456944B001602DB800412CB800402A212DB800422C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800432C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800442C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800452C2020456944B001602020457D691844B001602DB800462CB800452A2DB800472C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800482C4B535845441B2121592DB800492C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8004A2C2020456944B001602DB8004B2CB8004A2A212DB8004C2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8004D2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8004E2C4B20B0032650585158 668 | B080441BB04044591B21212045B0C05058B0C0441B2159592DB8004F2C2020456944B001602020457D691844B001602DB800502CB8004F2A2DB800512C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800522C4B535845441B2121592DB800532C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800542C2020456944B001602DB800552CB800542A212DB800562C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800572C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800582C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800592C2020456944B001602020457D691844B001602DB8005A2CB800592A2DB8005B2C4B20B003265358B0401BB000598A8A20B0032653582321B0808A8A1B8A235920B0032653582321B800C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8005C2C4B535845441B2121592D00000000020042000004D005BD00030007003FB800532BB800082FB800092FB8000810B80000D0B800002FB8000910B80003DCB80004DCB8000010B80007DC00BA0007000000562BBA0002000500562B3031331121112711211142048EB8FCE205BDFA43B8044DFBB300000003001E0000053D05BD0002000A000B00DA40504801580168010388039704980AA90AB809B80A06280A010007060601020809090102080A000705018C01030420140A0A251209090114050525120606010B0B0503090A040605010B02010300021E0708B80159400904030206090A030508B801A840120D0D17171A059E019E0A190C0DA1218C5E182B2B194EF4184DFDFD194E456544E6464418003F173C3F3C4DFD3CFD3C11393F011112393912393911392F872E2B7D104B5158B004C01BB004C459872E182B7D104B5158B003C01BB003C4592B1112393912393987103C3C07103C3C3130015D5D005D010B01133301230321032301038EDFED85E10215DA95FDBB9FCC0290025A0289FD770363FA4301B8FE4805BD000300970000050405BD000A00150028008240385A0D5A116A026A0D6A117A02772107490D4811021D081F0F041F131E000027081E17020B1E270804311B690F31231A2A091525281619292AB8015FB3217666182B2B4EF4 669 | 3C4DFD3C4E10F64DEDF4ED003FFD3FED12392FFD3901111239313043794012181A0508192506260718042B01051A082B01002B012B2B2B8181015D5D013237363534272623211101323736353427262321110321201716151407060716171615140706290102C47E466E754282FE9D01ADB74E318F4C7DFE75C3027701026D404F294D7138635985FEDEFD93035023378F90321CFE39FD5A6A435FA03A1FFDFB05139A5B778B592F272B3660A98E73AC0002005AFFDA057105E5001D001E00B1403B1B0597019605031F011F0482018705891305530803861D111115063A1D030C3A15091E021E1E190331023B1031111A20093119191F20A1216A66182B2B4EF44DED4E10F64DEDF4ED12392F003F3FED3FED12392F10ED31304379403A001C172513260E251B260B160932000D1410320112110F10071C0932000500033201010204030A180C32000F120C3200081A06320104010632012B2B2B2B01103C103C2B2B103C103C2B2B2B2B2B2B815D015D080117232E0123220011101233323736373306070621202726111037362123041E013411C221C5B2D9FEF5F1EFDC733D1EC21A92AFFED7FF00AEE5ACBA01472805E5FEDABB8EA6FECFFEC5FEFEFEBFA95991E89DBD9BCD01AC0145D0E200000001000000000000642C0B935F0F3CF500110800000000005F4D8F0000000000C621BCD6F865FC270B9108F9000000090001000000000000000100000629FE2900000C01F865FCED0B91000100000000000000000000000000000004051200420556001E0556009705C7005A0000003400C0014401D40000000100000004006F0009006B0007000200100010005D000007E80A1D00040001B800532BB800492BB8003F2BB800352BB8002B2B4118008001A6009001A600A001A600030069018B0079018B0089018B0099018B00040089018B0099018B00A9018B00B9018BB2040840BA0179001A014A400B041F5414191F180A0B1FD2B80106B49E1FD918E3BB0119000D00E10119B20D0009410A01A0019F0064001F01A50025017A00480028019AB3296C1F60410A01A9007001A9008001A90003008001A9000101A9B21E321FBE012C00250401001F0126001E0401B61FE7312D1FE531B80201B21FC227B80401B21FC11EB80201400F1FC01D9E1FBF1D671FBE1D671FAB27B80401B21FAA29B80401B61FA91D6C1F931EB8019AB21F921DB80101B21F911DB80101B21F751DB80201B61F6D29961F6431B8019AB21F4C96B802ABB21F391DB80156400B1F3638211F351DE41F2F27B80801400B1F2D1D4C1F2A31CD1F241DB802ABB21F201EB8012540111F1C1D931F3A1D4C1F1E1D45273A1D4527BB01AA019B002A019BB2254A1FBA019B0025017AB349293896B8017BB348283125B8017A403648289629482725294C1F252946272729482756 670 | C80784075B07410732072B072807260721071B071408120810080E080C080A08080807B801ACB23F1F06BB01AB003F001F01ABB308060805B801AEB23F1F04BB01AD003F001F01ADB70804080208000814B8FFE0B40000010014B801ABB41000000100B801ABB606100000010006B801ADB300000100B801AD401F04000001000410000001001002000001000200000001000002010802004A00B0018DB806008516763F183F123E113946443E113946443E113946443E113946443E113946443E11394660443E11394660443E11394660442B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B18011DB0964B5358B0AA1D59B0324B5358B0FF1D592B2B2B2B2B2B2B2B182B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B74752B2B2B65422B2B4B5279B376706A66456523456023456560234560B08B766818B080622020B16A704565234520B003266062636820B003266165B070236544B06A234420B176664565234520B003266062636820B003266165B066236544B0762344B10066455458B166406544B27640764523614459B36242725D456523456023456560234560B089766818B080622020B172424565234520B003266062636820B003266165B042236544B072234420B1625D4565234520B003266062636820B003266165B05D236544B0622344B1005D455458B15D406544B262406245236144592B2B2B2B456953427374B8019A2045694B20B02853B049515A58B020615944B801A6204569447500 671 | 00>] def 672 | /CharStrings 4 dict dup begin 673 | /.notdef 0 def 674 | /A 1 def 675 | /B 2 def 676 | /C 3 def 677 | end readonly def 678 | currentdict dup/FontName get exch definefont pop end 679 | %APLsfntEnd 680 | 42/FontType resourcestatus{pop pop true}{false}ifelse 681 | {currentfile 0(%APLT1End\n)/SubFileDecode filter flushfile}if 682 | /FontType 1 def 683 | /FontMatrix [ 0.00048828125 0 0 0.00048828125 0 0 ] def 684 | /FontBBox{-1947 -985 2961 2297}def 685 | /UniqueID 4265107 def 686 | currentdict currentfile eexec 687 | 54544758EC884CF30C3CD503CEDBFF3839C47C3C3333173232E3FDBFF439491DB843E1924E63AA7726BBB0485AB56D93D8C0906F647A47162891E73FFC2A9873C4B1EAC5EEBDFFC4D06084FBD84139DF4583C6E259D10699944D1068C9C45667DCCCFB9B7EA01B606435EDCBD273ABAC093D14085CCBAC149BD7382E842CFE0D7FE4FD2EF589A2471F6074A80A8B675C2F7A50D63AC1EF90D787BADD11633CB01CF6EE3B37AAF9078A69AC4740E9B6525D78BBD839551A1CB80DB8682FA5E87591BBD6EE8B946063A2A58D9CA3685AB305495DC5FB5747EB8A9A059C4976C0FE4EEAB1D56FF47F1E9664ED9F4A7DAB763AF92B2F6CF2FA7DEC24710E0B9096E30F772BA7FEA9BDBE496C42ED2CEB58F54E80BDF57CE7B4DB6CCFE7182F43BF93CCA0767AF95D62C5D2C3DC6AE1E6D139F51A2C63432117F1714C5566572EE9967A715420ABDCD1D7BD74F8450B89965FCC81C6ACA565C5F3CCF91D430D1F953E4F1A645300A98DD8C47CD64555F08F422340A85404EAE0D3229C4F9336B9470CACBD6BBF3395104750A915CC6EAAC197668267B8C62D2764C8CD69FD937CA3C924D997A0EDE7964BEB9EA2F92EF70C5E5DA0AA5567765E71F2B911B3C5586B741EEB93F3C73016EC16BFF283758900903D203992EFC8BAFAF13579C602F38C94CF017316529A80F552C33559AB2C21302561FE61E935C1E32B3C98FAD5EE6DEF8E2A946709BA3E02871DE2815743DB8E498E69E94CB8A7501EED33553FB0969440DDC44F6C8FF2DBE00656FA8545D720AB78CDD5DB83A2D48C3AF46C7C4E0FE7CF8597D4F7C6391AFF7C3C772DC3981B6ABECE9B41CE720EB5F73E8A7CAD5B2A879A03809FE9129FF7EAFD89EAF2FB4B0E556F669EF025767A5C6A15AF5E63DBC3615FF315AA34F4A23E55AD16E20597B6583367E6954E447B3981E8E1051612AE2DEF18D9158197922D38132D0C268EAE2CA84AFDBCF74A894E10C5E8C5A11957CD2EE66068425C874A8C8A89BC741E72E67C088E0CA9C1B22A5B4D7EA0C8A0D43BEA66BB122CF5D084855C584A3CF056A53622F8B5E1C5E6554626DC9600B884C7C6D52B36C2713EEA3B20B54C0BA642809C4072CD776CA826422A633514AF6F4FD3B8AE754759A45C1943492DFDC47A8218FD894BB0D1EBF361D1001D2553B5F191CC678FF6D5C98945217DE42628BA0370BB1AE43C76693BE0F0A56371EFF360DBC11378BD28B6D5FA5C8E73A52CC2AC29EADC6E875A8E7B606D6773EC7FE99FF2ED96C0DA6A00791FE2E8BAE4E79CFE35E8BC8BD70374253D34EA8DA6B26362411234964F3847694B5E1F12D58D7BBEC30CD9522EC59607BDEB0AB7845AC41A452B7C35A84031AE11007667F8DB99496FC09ED21DB1092689B1D88E4DCA3CE992444C25E6A18C77BAEE1995353700616CF3BF1065020FA618343DAC4A42 688 | D966A9C73D39752CF15FBD437188DB13C6606AD3DEDBF7829F973CADF7DF357CF30E87DA6591C227FF76AEC89A0C31D6B9CB25074C821BC4BBC8E6C6A79EEEAE1B28EB6031DBF430C0F2208CBA098E7978959C83AD55FBBB2F5E30A405309A92F7 689 | 0000000000000000000000000000000000000000000000000000000000000000 690 | 0000000000000000000000000000000000000000000000000000000000000000 691 | 0000000000000000000000000000000000000000000000000000000000000000 692 | 0000000000000000000000000000000000000000000000000000000000000000 693 | 0000000000000000000000000000000000000000000000000000000000000000 694 | 0000000000000000000000000000000000000000000000000000000000000000 695 | 0000000000000000000000000000000000000000000000000000000000000000 696 | 0000000000000000000000000000000000000000000000000000000000000000 697 | cleartomark end 698 | %APLT1End 699 | %RBIEndFontSubset 700 | /Helvetica cguidfix 701 | /F1.1/Helvetica renmfont 702 | [ /CIEBasedABC 4 dict dup begin 703 | /WhitePoint [ 0.9505 1.0000 1.0891 ] def 704 | /DecodeABC [ 705 | { 1.0 0.0 3 -1 roll 1 index 1 index le { exch pop} { pop } ifelse 706 | 1 index 1 index ge { exch pop } { pop } ifelse < 707 | 0000000000000000000000000000000000000000000000000000000000000000 708 | 0000000000000000000000000000000000000001010101010101010101010101 709 | 0101010101010101010101010101010101010101010101020202020202020202 710 | 0202020202020202020202020202020202030303030303030303030303030303 711 | 0303030303030304040404040404040404040404040404040404050505050505 712 | 0505050505050505050506060606060606060606060606060607070707070707 713 | 0707070707070708080808080808080808080808090909090909090909090909 714 | 0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c 715 | 0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f10101010 716 | 1010101010111111111111111112121212121212121313131313131313141414 717 | 1414141414151515151515151616161616161616171717171717171818181818 718 | 18181919191919191a1a1a1a1a1a1a1b1b1b1b1b1b1c1c1c1c1c1c1c1d1d1d1d 719 | 1d1d1e1e1e1e1e1e1f1f1f1f1f1f202020202020212121212121222222222223 720 | 2323232323242424242425252525252526262626262727272727282828282829 721 | 292929292a2a2a2a2a2b2b2b2b2b2c2c2c2c2c2d2d2d2d2d2e2e2e2e2e2f2f2f 722 | 2f2f303030303131313131323232323333333333343434343535353535363636 723 | 36373737373838383839393939393a3a3a3a3b3b3b3b3c3c3c3c3d3d3d3d3e3e 724 | 3e3e3f3f3f3f4040404041414141424242424343434444444445454545464646 725 | 4647474748484848494949494a4a4a4b4b4b4b4c4c4c4d4d4d4d4e4e4e4f4f4f 726 | 4f50505051515151525252535353535454545555555656565657575758585859 727 | 59595a5a5a5a5b5b5b5c5c5c5d5d5d5e5e5e5f5f5f6060606061616162626263 728 | 63636464646565656666666767676868686969696a6a6a6b6b6b6c6c6d6d6d6e 729 | 6e6e6f6f6f707070717171727273737374747475757576767677777878787979 730 | 797a7a7b7b7b7c7c7c7d7d7e7e7e7f7f7f808081818182828283838484848585 731 | 86868687878888888989898a8a8b8b8b8c8c8d8d8d8e8e8f8f90909091919292 732 | 9293939494949595969697979798989999999a9a9b9b9c9c9c9d9d9e9e9f9f9f 733 | a0a0a1a1a2a2a3a3a3a4a4a5a5a6a6a6a7a7a8a8a9a9aaaaabababacacadadae 734 | aeafafb0b0b0b1b1b2b2b3b3b4b4b5b5b6b6b6b7b7b8b8b9b9bababbbbbcbcbd 735 | bdbebebebfbfc0c0c1c1c2c2c3c3c4c4c5c5c6c6c7c7c8c8c9c9cacacbcbcccc 736 | cdcdcececfcfd0d0d1d1d2d2d3d3d4d4d5d5d6d6d7d7d8d8d9d9dadadbdcdcdd 737 | dddededfdfe0e0e1e1e2e2e3e3e4e4e5e6e6e7e7e8e8e9e9eaeaebebecededee 738 | eeefeff0f0f1f1f2f3f3f4f4f5f5f6f6f7f8f8f9f9fafafbfcfcfdfdfefeffff 739 | > dup length 1 sub 3 -1 roll mul dup dup floor cvi exch ceiling 740 | cvi 3 index exch get 4 -1 roll 3 -1 roll get 741 | dup 3 1 roll sub 3 -1 roll dup floor cvi sub mul add 255 div } bind 742 | 743 | { 1.0 0.0 3 -1 roll 1 index 1 index le { exch pop} { pop } ifelse 744 | 1 index 1 index ge { exch pop } { pop } ifelse < 745 | 0000000000000000000000000000000000000000000000000000000000000000 746 | 0000000000000000000000000000000000000001010101010101010101010101 747 | 0101010101010101010101010101010101010101010101020202020202020202 748 | 0202020202020202020202020202020202030303030303030303030303030303 749 | 0303030303030304040404040404040404040404040404040404050505050505 750 | 0505050505050505050506060606060606060606060606060607070707070707 751 | 0707070707070708080808080808080808080808090909090909090909090909 752 | 0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c 753 | 0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f10101010 754 | 1010101010111111111111111112121212121212121313131313131313141414 755 | 1414141414151515151515151616161616161616171717171717171818181818 756 | 18181919191919191a1a1a1a1a1a1a1b1b1b1b1b1b1c1c1c1c1c1c1c1d1d1d1d 757 | 1d1d1e1e1e1e1e1e1f1f1f1f1f1f202020202020212121212121222222222223 758 | 2323232323242424242425252525252526262626262727272727282828282829 759 | 292929292a2a2a2a2a2b2b2b2b2b2c2c2c2c2c2d2d2d2d2d2e2e2e2e2e2f2f2f 760 | 2f2f303030303131313131323232323333333333343434343535353535363636 761 | 36373737373838383839393939393a3a3a3a3b3b3b3b3c3c3c3c3d3d3d3d3e3e 762 | 3e3e3f3f3f3f4040404041414141424242424343434444444445454545464646 763 | 4647474748484848494949494a4a4a4b4b4b4b4c4c4c4d4d4d4d4e4e4e4f4f4f 764 | 4f50505051515151525252535353535454545555555656565657575758585859 765 | 59595a5a5a5a5b5b5b5c5c5c5d5d5d5e5e5e5f5f5f6060606061616162626263 766 | 63636464646565656666666767676868686969696a6a6a6b6b6b6c6c6d6d6d6e 767 | 6e6e6f6f6f707070717171727273737374747475757576767677777878787979 768 | 797a7a7b7b7b7c7c7c7d7d7e7e7e7f7f7f808081818182828283838484848585 769 | 86868687878888888989898a8a8b8b8b8c8c8d8d8d8e8e8f8f90909091919292 770 | 9293939494949595969697979798989999999a9a9b9b9c9c9c9d9d9e9e9f9f9f 771 | a0a0a1a1a2a2a3a3a3a4a4a5a5a6a6a6a7a7a8a8a9a9aaaaabababacacadadae 772 | aeafafb0b0b0b1b1b2b2b3b3b4b4b5b5b6b6b6b7b7b8b8b9b9bababbbbbcbcbd 773 | bdbebebebfbfc0c0c1c1c2c2c3c3c4c4c5c5c6c6c7c7c8c8c9c9cacacbcbcccc 774 | cdcdcececfcfd0d0d1d1d2d2d3d3d4d4d5d5d6d6d7d7d8d8d9d9dadadbdcdcdd 775 | dddededfdfe0e0e1e1e2e2e3e3e4e4e5e6e6e7e7e8e8e9e9eaeaebebecededee 776 | eeefeff0f0f1f1f2f3f3f4f4f5f5f6f6f7f8f8f9f9fafafbfcfcfdfdfefeffff 777 | > dup length 1 sub 3 -1 roll mul dup dup floor cvi exch ceiling 778 | cvi 3 index exch get 4 -1 roll 3 -1 roll get 779 | dup 3 1 roll sub 3 -1 roll dup floor cvi sub mul add 255 div } bind 780 | 781 | { 1.0 0.0 3 -1 roll 1 index 1 index le { exch pop} { pop } ifelse 782 | 1 index 1 index ge { exch pop } { pop } ifelse < 783 | 0000000000000000000000000000000000000000000000000000000000000000 784 | 0000000000000000000000000000000000000001010101010101010101010101 785 | 0101010101010101010101010101010101010101010101020202020202020202 786 | 0202020202020202020202020202020202030303030303030303030303030303 787 | 0303030303030304040404040404040404040404040404040404050505050505 788 | 0505050505050505050506060606060606060606060606060607070707070707 789 | 0707070707070708080808080808080808080808090909090909090909090909 790 | 0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c 791 | 0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f10101010 792 | 1010101010111111111111111112121212121212121313131313131313141414 793 | 1414141414151515151515151616161616161616171717171717171818181818 794 | 18181919191919191a1a1a1a1a1a1a1b1b1b1b1b1b1c1c1c1c1c1c1c1d1d1d1d 795 | 1d1d1e1e1e1e1e1e1f1f1f1f1f1f202020202020212121212121222222222223 796 | 2323232323242424242425252525252526262626262727272727282828282829 797 | 292929292a2a2a2a2a2b2b2b2b2b2c2c2c2c2c2d2d2d2d2d2e2e2e2e2e2f2f2f 798 | 2f2f303030303131313131323232323333333333343434343535353535363636 799 | 36373737373838383839393939393a3a3a3a3b3b3b3b3c3c3c3c3d3d3d3d3e3e 800 | 3e3e3f3f3f3f4040404041414141424242424343434444444445454545464646 801 | 4647474748484848494949494a4a4a4b4b4b4b4c4c4c4d4d4d4d4e4e4e4f4f4f 802 | 4f50505051515151525252535353535454545555555656565657575758585859 803 | 59595a5a5a5a5b5b5b5c5c5c5d5d5d5e5e5e5f5f5f6060606061616162626263 804 | 63636464646565656666666767676868686969696a6a6a6b6b6b6c6c6d6d6d6e 805 | 6e6e6f6f6f707070717171727273737374747475757576767677777878787979 806 | 797a7a7b7b7b7c7c7c7d7d7e7e7e7f7f7f808081818182828283838484848585 807 | 86868687878888888989898a8a8b8b8b8c8c8d8d8d8e8e8f8f90909091919292 808 | 9293939494949595969697979798989999999a9a9b9b9c9c9c9d9d9e9e9f9f9f 809 | a0a0a1a1a2a2a3a3a3a4a4a5a5a6a6a6a7a7a8a8a9a9aaaaabababacacadadae 810 | aeafafb0b0b0b1b1b2b2b3b3b4b4b5b5b6b6b6b7b7b8b8b9b9bababbbbbcbcbd 811 | bdbebebebfbfc0c0c1c1c2c2c3c3c4c4c5c5c6c6c7c7c8c8c9c9cacacbcbcccc 812 | cdcdcececfcfd0d0d1d1d2d2d3d3d4d4d5d5d6d6d7d7d8d8d9d9dadadbdcdcdd 813 | dddededfdfe0e0e1e1e2e2e3e3e4e4e5e6e6e7e7e8e8e9e9eaeaebebecededee 814 | eeefeff0f0f1f1f2f3f3f4f4f5f5f6f6f7f8f8f9f9fafafbfcfcfdfdfefeffff 815 | > dup length 1 sub 3 -1 roll mul dup dup floor cvi exch ceiling 816 | cvi 3 index exch get 4 -1 roll 3 -1 roll get 817 | dup 3 1 roll sub 3 -1 roll dup floor cvi sub mul add 255 div } bind 818 | ] def 819 | /MatrixABC [ 0.4124 0.2126 0.0193 0.3576 0.7151 0.1192 0.1805 0.0722 0.9508 ] def 820 | /RangeLMN [ 0.0 0.9505 0.0 1.0000 0.0 1.0891 ] def 821 | end ] /Cs1 exch/ColorSpace dr pop 822 | [ /CIEBasedABC 4 dict dup begin 823 | /WhitePoint [ 0.9505 1.0000 1.0891 ] def 824 | /DecodeABC [ { 1.8008 exp } bind { 1.8008 exp } bind { 1.8008 exp } bind ] def 825 | /MatrixABC [ 0.4295 0.2318 0.0204 0.3278 0.6722 0.1111 0.1933 0.0960 0.9578 ] def 826 | /RangeLMN [ 0.0 0.9505 0.0 1.0000 0.0 1.0891 ] def 827 | end ] /Cs2 exch/ColorSpace dr pop 828 | [ /CIEBasedA 5 dict dup begin /WhitePoint [ 0.9505 1.0000 1.0891 ] def 829 | /DecodeA { { 1.8008 exp } bind exec} bind 830 | def 831 | /MatrixA [ 0.9642 1.0000 0.8249 ] def 832 | /RangeLMN [ 0.0 2.0000 0.0 2.0000 0.0 2.0000 ] def 833 | /DecodeLMN [ { 0.9857 mul} bind { 1.0000 mul} bind { 1.3202 mul} bind ] def 834 | end ] /Cs3 exch/ColorSpace dr pop 835 | %%EndPageSetup 836 | /Cs1 SC 837 | q 838 | 0 0 148 76.800003 rc 839 | 47 0 0 21 57 56 cm 840 | BI 841 | /Width 141 842 | /Height 63 843 | /BitsPerComponent 8 844 | /Decode[ 845 | 0 1 846 | 0 1 847 | 0 1 848 | ] 849 | /DataSource cg_aiproc 850 | ID 851 | JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI( 852 | T)XB@jSlXfV#Re$o)=4=hYj_Xo)?3"^]4!+l2BlEJboKFqp50+r9=1Qrl+oVs7lTarTX7NqgnVAqU562 853 | qr[hLrUp05s2G$5rq66hr9!m-qXF@!qW[nSr:p6`rlb>_s82fdrVl`fqs=1Yq18>7prW=1q<[tNqu6Na 854 | rVQT>s3^l>rqQHer;QTdqY9mWpjr25pWWC#q"X[XqYpBhr:U$]rn%1ts7lTgrVQNlqtU$eq>9sOpOW&3 855 | pgp%\7Xp\ss_qYU0hr:p6frn[V+s8N#jrVl`oqtp6hq"XU_p%%bPoC_\CnVHbj 858 | o'c,Do(_hIo`"OYp\t!cqYpBkr:U$frn[V.s8N#mrVl`lqu6Hkq>9sap\sjbo_A%To)A1PnG_nUnFc8L 859 | nG_mqnEfW!nF5r?nb_hEn*fcFnb_nSoDA1Zp%\:\q#:*gqYpBkr:U$fro!h7s7lTjrVQNlqtp6eq"sgb 860 | p&=U_o(DPAnG_nUnFc8LnG_n.nB::dnD<['n*0?7nc&+Yo`"O\p\Xa_qYU0hr;6Hiro=%:s7lTmrVl`o 861 | qtU$_q"sa`o`"F\nbDVKn+H,8mFq!pmGmR%mI]i9me-&Dmd0?6mf)\SnG_nOnG_tWo)A:\p&=^\q"spe 862 | qtpU0gp\sjbo_\7Znb_hQmecD'm.0Pqm-3inm.p#7mF:M"mJcPQn,)VR 863 | nc&.Zo_\=Yq#:*dqYpBkr;6Hlro=%:s82fmrVl]hqYp9ep\sjbo`"I]o)A+WnG)GKm*t@om+UdflJLq' 864 | lfmcflhg&DmecMQo)A7[o`"O\p\t!`qYpBhrVlfVs5.ul1jQC 867 | li->On,DhUoDA1Zp&"LYqYpEirVQTYs5X.YrqQHkqu6Hkq>U0dp\sgaoD\:ZnG_nUmf)SPlMg&:kj7L* 868 | kjRd2kkO??k4Rj2jSS!.ir8!8jRqX3k54??kkXH8l1jQ@l14',kORj6l2KuIm/HGPn,)YSoD\CZp\sse 869 | q>U6iqtp?hrosICs8N#prVl`oqu6Hhq#:$epAX^`oD\:ZnG_nUmf)SPlKma'kPj]?l2Ku:li-2Hl2Ko; 870 | kPjW=jo4?0j7q^4jnS!2kPjZFklL&5rp&P0rp':Croih6m-+H6rp9XPrpTaSrq$-]rq?6`rqQKhrql]m 871 | rr)`nl2TfDrr2fnrqucmrqcNerqHEbrq-3\rpg!WrpTjSrp9XKh<=k&qs*5-q!.kCqrmq?roX+>qrIb: 872 | o&BZ/qrIY9pu_S=qrmqA!9sUMlLjK3m.K]DlMKi%kl0iGm/HGPn,)YSo)A:\p&"L_q#:-hqu6NmrVQTY 873 | s5X.YrqlZnr;QTmqYp9ep\sjbo`"F\nc&%Wn,DbSli-/)kl0iDlMKoEm/-2Fm/H>GlMg&Ckl0cEk5498 874 | j6u")j87s8k5OQ=kkjTEl2g28rp07Dp$MP@qs47Hqrur#rosFJrpKdSrp]pWrpp'\rq60_rqQKhrql]m 875 | rr)`nl2TfDrr2fnrquclrqZQgqtL*_rq-3\rpg!VrpKdQrp0RJk32U)rp'1Brp9XOq!S%Hq!7qEros4A 876 | roa:CroO.?rolLjKBm.g#>n,DbSmJcJLli-2HkkjNAjo4<>ir7p3i;VX5i;VX/ 881 | i;V^7ir8!;jSS'rpB^Qq![eCrpTXMqs=+Drp'1@n*'c9rp9XPrpTjUrpg!Zrq-3` 882 | rqHEerqZQirqlKhl2TfDrr)ioqtpBhqtU'^rq-3\rpg!WrpTjSrp9XLn*'Z5qs*tBrpBLKq!\+Mrp]gR 883 | rpKdQrp9XMrp'CEqrRhMlMg#HkPOB? 886 | jSn0GlMg&=kl0lHli->On,DhUnc&+Yo`"R` 890 | p\XabqYpBkr;6HWs5X.YrVl`lqu6Hhq"sa`o`"F\nc&%Wmf)VQli-2Hkl0cBkl0iGlMKoEm/HDLmf)\S 891 | nGDbTo(DVRo)A1YnG_nUmJcGNlMg#HkPjQAj8S$:hu;L0h#?(-g%*epgA]n,hYuF3iVqj9j8S0>kPj]E 892 | li-5Nm/cVAqsXOSrq#UNrq$-[qsj[TrpTaPrpB^Oq!7qEros";rp'LKrpKdSrp]pWrpp'\rq69bqtU0e 893 | rql]mqu,dZj8],WrquZjrqcNeqt9s\rpp'Yrp]pTrpB^Nrp'CEroa:ErosFIq!7qGrpBUNrpTXPrpp'[ 894 | p%87Trpg!WrpTjRrp0RKroj@DroF(=ro!e5rnRM-qq:kurmpturn.5'rn@A,rndY3ro!e8roO.Broj@I 895 | rp0XQ!UfCTnG_tWo)A7Xo`"O\pA":Wo)A1YnG_nRmf)VNm/-,JlMg&@kl0lHli->On,DhUnc&+Yo`"O_ 896 | p\XabqYpBkr;6HWs5X.YrVl`lqu6Hkq#:$bp&=U_o)%qUmf)VQli-2Bkl0iGlMKoHm/HDOmeH8Jnc&.W 897 | o_A+Vo`"F\nG_nUmf)SPlMg#Hk5OE?ir7j7hYu=0g&BY'fDa@rebdqsf`'S'g]$%.hu;R5ir8'=kPj]E 898 | li-5NmK)bDqsaLSrq-3`q"O[Zqt0mZrpg!Wq!\4MrpB^Oqs47Hros+>rp'LKrpKdSqsaUUrq-3_rq??c 899 | rqQKhrql]mqu,dZj8],WrquZjrqcWhrqH<_rq-3\qsaUQrpB^Nrp'1?rp'LKqs=+Grp]pUrpg!Zq"4RY 900 | rq?6`rq??`rq$-ZrpTjSrp9XLroj@Dro=";rnm_2rn@A)rn%/#rmgShrn%/%rn7;+rnm_5ro3qMlLjB?lMg,Kmf)\PnG`"Xo`"O_pAXgcq#:-h 902 | qu6NjrTX@Bs8Murr;QTmqYpNnGDbQoD\C]p&=[U 903 | p\sjboD\:ZnG_nUmJcDMkPjTBj8S$:hu;F1g&BY'fDa@ieGe"tfDaJ&h#?41i;V^7jSn?Akl0oIli?JT 904 | n*g8Grq$-^qtL!_qtg:$cq#:$epAXa^o`"IZnc&%Wn+c;Lm/H;Ll1jKAlMg/Lmf)\PnG`"Xo`"O\ 908 | pAXjdq>U6ir;6HWs5X.YrVl`oqu6Hkq>U-fpA=O^o`"F\nc&%Wn,DbSm/H>JkkjZEli-8Jmf)\SnGDbT 909 | o)A:Yp&=^Vq#:$epAX^`o)A.Xn,DbSli-,Ik5OE?iVqa6h#?"+f`'G#eFM)ceGe%ug&Be+hYuF3iVqp; 910 | kl0lHm/HDQn,`%Jrpg![rq??crqQKgqtgU-fpA=O^o`"F\nc&%W 922 | n,DbSmJcGKlMg,Km/HDLn,DkVo)A7[o`"O_pAXgcq#:*gqYU0er;6BjqYp6gpAX^`oD\4XmJcDMkl0ZB 923 | j8Rs8h>Z.-f_a8!eFh;ieGe"tfDaJ&h#?41i;Va8k5OWEm/HJQn,W"[o()ePrqHEerql]mrr)iqqu?Qm 924 | rr)inrqcWirqQKerq??arq-3\qsj[SrpKdQrp0@Erp0RNrpKdSrp]pWrpp'\rq60^rqQKgrqcWkrquco 925 | rr29ak5YG[rr)iorql]krqZQfrq?6^rq-3\rpg!WrpTjSrpB^Nqs+1Hrp9XOqsXOSrpp'[rq-3_rq??c 926 | rqQKgrqcWkq#($drqcWgrq??`rq$-XrpB^Mroj@Bro="8rn[S-rn.,!rm^Virm^qtrn%/&rnRM1ro!e8 927 | roX4Erp9XQrpTpY!V5g\o`"Uaq#:0ir;QZorql`mrr2lqqu6Hkq>U0gp\smcp&=U_o)%tVn,DbSmJcGH 928 | lMg,KmJcPQn,DhUnc&+Yo`"O\pAXjdq>U6iqu6NmrVlf_s5s@\rr2lqr;QTmqYpU6iqtU*dqu6Hkp\sjbo`"I]n,D_RlMfuG 930 | jSn3=hu;F1g&BY'fDaA#eFh;ieGe"tf)FA%h#?41i;Va8jo4NDm/HJQn,W"[o()ePrqHEerqcWkrquco 931 | qu?Qmrr)inrqcWirqQKerq??arq-3\qsj[SrpKdQrp0@Erp0RNrpKdSrp]pWrpp'\rq60^rqQKgrqcWk 932 | rqucorr29ak5YG[rr)iorql]krqZQfrq?6^rq-3\rpg!WrpTjSrpB^Nqs+1Hrp9XOqsXOSrpp'[rq-3_ 933 | rq??crqQKgrqcWkq#($drqcWgrq69_rq$-XrpB^Mroj@Bro="8rnRM,rn.5%rmq)!rm^_lrm^qtrn%/& 934 | rnRM1ro!e8roX4Erp9XQrpTpY!V5g\o`"Uaq#:-hqu6NmrVQWlrr2lqqu6Hkq>U0gp\smcp&=U_o)%tV 935 | n,DbSmJcGHlMg,KmJcPQn,DhUnc&+Yo`"O\pAXjdq>U6iqu6NmrVlf_s5s@\rr2lqr;QTmqYp:$fqtpU-fpA=O^ 943 | o`"F\nc&%Wn,DbSmJcGKl2L#Gm/-8NnGDbToDA1ZpAXg`q#:*^qYpFl2L#JmJcPQn,DhUnc&+Yo`"O\pAXjdq>U6i 949 | qu6NmrVlf_s5X.YrVl`oqu6Hkq>U-fpA=O^o`"F\nc&%Tmf)SPlhfrDlMg,KmJH>Nn,DhUnc&.Zo`"O\ 950 | p?D>Np&=U_o)A.Xn,D_RlMg#Hk5OH@ir7j7hYu:,g?dMlg]$"-hu;R5ir8$U6ir;6HWs5X.YrVl`oqu6Hkq>U-fpA=O^o`"FYnGDYQm/H;IkkjWDlMg,HmJcPQn,DhRnb_qWo_\=Y 956 | pA=U`pAX^`oD\=[nc&%Wmf)SPlMg#Hk5OH@j87d6hYZ-qh#?.,hu;U6j8S3?kl0lHm/HGPmf;hXnF6GI 957 | rq$-]qt9j\qt^6dqtL*`rq60\rq$$Wrp]pUq!J(Hrp'LIpuq_Brp9XPrpTaRrpp'\rq60^rqQKgrqcWl 958 | qu,dZj8],WrquZjrqcWgrq?6^rq-3\qsaUQrpB^Nrp'1?rp'LKqs=4JrpTjUqsj[Wp%7qMrq-3]rpg!W 959 | rpTjSrpB^Nqrn%BroO.=qr%8,o%s0!ro*k:roF(Aroj@Hrp9XPrpKjV!V#UXnc&+So`"R`p\=O_p\sm` 960 | o`"IWnb_eSmeH/Jli-2Bkl0lHli->On,)VRo)A:\p&"I^q#:-hqu6NjrTX@Bs8Murr;6BjqYp6gpA=O^ 961 | o`"FYnG_kTmJcGNlLjB?l2KuFm/-2Ln,)VOnc&+Do`"F\nc&%Wn,DbSmJcGNl2KoGkPjTBj8S';iVqd% 962 | htu@2ir8!;jSn9Fp%87Vrq??cqtBgWq!n@QqsXOOq!A"Fros+>rp'LKrpKdS 963 | qsaUUrq-3_qtC$arqcWkrquZll2TfDrr)ioqtpBhrqQKeqt9s\rposUrpKdQrp0RKqrn%Broj@Grp'CH 964 | rp9XOrpKRMqsiqBrpp'Yrp]pUrpKdQrp0RJroj@EroO.?qr7M3m,7m%ro3qlMg,Kmf)\PnG`"Xo`"O_pAXgcq#:-h 966 | qu6NjrTX@Bs8Murr;6BjqYU'bp&=U_o)A1YnG_kTmJcGNlMKfEkPj]El2KuCli-8MmJH>Kn,DhRnc&+P 967 | oD\=Xnc&%Wn,DbSmJcGNlMg#HkPjWCjo4;uir8!;jo4EAkPj]El2L#Jm/-2NmfDnGqsaUUrq#pWqt9aV 968 | qssaVrp]pUqsOINqs=4Grp'LIp#uD?rp0ROrpTjUrpg!Yrq-3_rqH %APLeod 973 | EI 974 | 47 0 0 21 0 56 cm 975 | BI 976 | /Width 141 977 | /Height 63 978 | /BitsPerComponent 8 979 | /Decode[ 980 | 0 1 981 | 0 1 982 | 0 1 983 | ] 984 | /DataSource cg_aiproc 985 | ID 986 | JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI( 987 | V#Q#FhYt4fT)ZA$o)=4=f_r;Xo)>uq`W,W1l2BuHJc#0U6iqu6NmrVQTPs69R\ 1001 | rqlZnr:p-cp\sj_o`"I]nG_nUmf)PIlMg&"kjRd)kkjQ.ul1jQC 1002 | li->On,DhUnc&.Zo`"O\p\ssbqYpEfrVlfVs69R\rqlZnqu6Hkq>U0dp\sgaoDA(Wn,DbSm/H;Il14', 1003 | kORj*l1O9;kPOE:jnn-6j7;4/j87p1jnn3>kOds=kih^(p$2P@p#tc*n*'c8rp'LLrpKdSrp]pWrq$-] 1004 | qtL*brqZQirqlKhrr1sXl2UY[rr)iorql]krqQBbrq??`rq$$WrpTjSrp9XLm-*p$roj.Arp&tqs+1Fqrmq?roX+> 1007 | puLo'qrIP6qr[e=qrn%Drp'IJp?VD 1009 | roEt:n)F6)puVD8p#uD>rp'LK!:9FGo'Q>@qs4.Eror8&rosFJrpKdSrp]pWrpp'\rq60_rqQKhrql]m 1010 | qu-Nnj8\BDqu6TnrquclrqZQgqtL*_rq-3\rpg!WrpKdQrp0RJk32U)qs*tBrp9OLqsO@Krp9OJrp'LI 1011 | qrmq?roX4AqrIb:qr7;-qr7V8roEk9roX+@qs"+Fqs+7K!UT1MmHj9?m.K]DlM0W+kl0iGli-;Nmf)\S 1012 | nc&+Yo`"O\p\sseq>U6ir;6Hlro=%Cs7lQlr;QQlq>U0dp\sjboD\:ZnG_nUmf)SPlfRF.l20c@li-8M 1013 | mJH>Hn,)PPmJcJLli-/Gkl0cEk5OKAjSn3:ir7m,htu@2iqqd8jSn9?k54?=l2KuIli-5Nm/cVAqsO%E 1014 | qsXOPrpBULqs4.Eq!%&,rp0RMrpKdSrp]pWrq$-^qtL*brqZQirquQij8\BDq#13hrqcWirqQKerq??` 1015 | rq$-Zrp]pUrpKdPrp&t9p$)J@q!7hDq!R_ArpK[Nrp9XMrp'CEroa:CroO.>ro3h6p#,i,pu)/1ro3q; 1016 | roEtMm.K]DlLjE1kl0lHm/HGPn,DhUnc&.Zo_\@]q#:*g 1017 | qYpBkr;6HQs69R\rVl`oqu6Hhq#:$epAX^`o)A1YnG_nUmf)SPlL3s3l2KuCli-8MmJH>Hn,DhUnb_hT 1018 | n,)PPmJcGNlMKfEkPjTBjSn0Nn,DhRnc&+Y 1026 | oDA1ZoD\=[nc&%Wn,DbSli-2Kkl0cEk5OH@iVqd7hYu=-g]#msf`'V(h#?10hu;R5ir8!;jo4HBkl0iG 1027 | li-;NmJu\Vn*g/Drq#UNrposVrp]pUqsOINqs=4Grp'LIqrn%Bqrn%Erp0RNrpKdTrpg!Yrq-*\qtU0e 1028 | qtpBjrr(mWl2UYZrqucmrqcNerqHEbrq-3\rpg!WrpTjSrp0RKp#uD>rp'CHqs==LqsOIPrp]gTrposX 1029 | q"4RWrpg!WrpTjSrp0RKroj@DroF(=qr%A,rnIG*rn.5%rmpturn.5'rn@A,qqh>1ro3q=roa:ErosFJ 1030 | rpKdS!:^*[nc&+YoDA1Zp%\7Xo_\4Vnc&"Smf)VQm.foGlMg&Ikl0cBkl0lHli-;Nmf)_Tnc&+Yo_\=Y 1031 | q#:-equ6NmrT!qBs82cor;QTmqYp9hp\smcp&=U_o)%qUn,DbSli-2Bkl0iGlMKoHm/HDOmeH8MnG_tW 1032 | oDA1Tp&"C\o)A.Xn,DbSm/H;Lkl0`DjSn09hu;F1gA]b(fDa@oec+/!fDaJ&g]$"-hYuI4ir8'=kPj]E 1033 | l2L#Jmf)YTn,`%Jrq$$Zrq?$Zrq?6]rq$$Wq!\4MrpB^Oqs47Hros+>rp'LKrpB^QqsaUUrq-*\rqHEe 1034 | rqcNhrqucoj8\BDqu-Nlrql]krqQKerq??arq-3\qsaURrpKdOrp'1?rp'LKq!@nGqsXFPrq$$Zrq60^ 1035 | rqHEcrq-3]rpg!WrpKdPrp'LHroX4@ro3q7rndY.rn7;'rmq)!o$mZirn.5'rnIG-ro!e8roF(Aroj@G 1036 | rp0IM!:g0]o)A7[o`"OPp\sm]o`"I]nc&"VnG)GKm/H>MlLjB?lMg,KmJcPNnG`"Xo_\=\p\sseqYU0h 1037 | r;QZTs69R\rVl`oqYpU6i 1043 | qu6NmrT!qBs82cor;QQlq>U0dpAXaao`"F\nc&%Wn,DbSm/H>Gkl0lHli-8Jmf)\SnGDbTo)A7[o`"O_ 1044 | p@%eUpAX^`oD\=[n,DbSli-,Ik5OH@iVqa6h#?"+f`'M%eaLudeGe%uf`'Y)h#?41iVqp;kPjcGli->O 1045 | nG_qXoE"UVrq??crqQKgqtg3erqcEbqt9s\rposVrp]pUqsOIMrp0IHqrn%Frp9XPrpTjUrpg!Yrq-*\ 1046 | rq??crqZQirql]mrr(mWl2Ub]rqucmrqcWirqQBarq69_rpp'Yrp]pUrpKdPrp0@Drp'LKrpB^QrpTaR 1047 | rpg!Zrq-*\rq??crqQKgq"k!crqHEbrq-3]rp]pTrp0RIroX4@ro*k6rnRM+rn.5%rmgnppsT/jrm^qu 1048 | rn.5)rnRM1ro*kU6iqu6NmrT!qEs8N#srVl`oqu6Hkq>U0dpAXaao`"F\ 1050 | nc&%Wn,DbSmJcGHl2L#Jm/HGMn,DhUnc&+Vo_\@]q"smXqYU'eo`"I]nG_nUm/H8Kk5OH@iVqa6h#?"+ 1051 | f`'M%eaLudeGe%uf`'Y)h#?72ir8'=kPjfHm/HJQnc&.\p&Xm\rqHEerqcWkrquHfrql]krqZQgrqHEc 1052 | qt0mYrpg!WqsXOPqs==Jqs"+GrpB^QrpTjUrpg!Yrq-*\rq??crqZQirql]mrr)iqk5XfJrr2oqrqucm 1053 | rqcWirqQBarq69_rpp'Yrp]pUrpKdQrp0@Erp0RNrpKdSrp]pWrpp'\rq69arqHroj@Irp9XRrpp'\!;?Ngp\sseq>U9jrVlfks8N#srVl]nqYpJlMg,KmJcPQn,DhUnc&+Yo_\=\pAXgcq>U6iqu6NmrVlfYs6Tdbrr2lqr;QTm 1060 | qYpU6iqt9mdqu6Hk 1068 | q#9sco`"I]n,DbSlMg#Hk5OE?hu;I2gA]b(fDaA#ec+(qe,.Yoec+2"f`'Y)h>Z@3ir8*>kl0oImJcVS 1069 | o)A7]pAt$_rqQKgrqcWlrr)Wlrr2oqrql]krqZQgrqHEcrq69_rq$-[rpfmSrpB^Orp0IHrp0RNrpKdS 1070 | rp]pWrpp'\qt9s^rqHEfrqcWkrqucorr2'[m/R(arr)iorql]krqZQgqtC$^rq-3\rpg!WrpTjSrpB^N 1071 | q!.kErpB^QrpTaSrpp'\rq69arqHEerqZHfqtp9grql]jrqQKcrq-3]rp]pUrp0RIroa:Aro!e4rnIG* 1072 | rn.5%rmpbmqptc!rn@A+rnRM2ro="?roj@JrpB^Srpp'\!;?Ngp\sseq>U6ir;QZorql`prr2lqqu6Hk 1073 | q>U0gp\smcp&=U_oD\=[nb_eSmJcJOlhfuHli-;Nmf)\SnG_tWo)A:Yp&=[ap\t!fqYpBkr;QZoroX7I 1074 | s8N#srVl`oqu6Hkq>U0dpAXaao`"F\nc&%Wn,DbSmJcGHlMg,KmJcPQn,)YSo)A:\p&=[ap\sseq=sg] 1075 | qu6Hkq>U0gp&=U_oD\7Yn,DYPkl0cEjo43;hu;F1gA]b%fCIMlfDaJ&g]$%.hu;R5jSn?Al2L&Kmf)_T 1076 | o)A7]p\adbq#:-hqu6Qhrr2lqr;QTmqYpJlMg,KmJcPQn,DhU 1077 | nc&+Yo_\=\pAXgcq>U6iqu6NmrVlfYs6Tdbrr2lqr;QTmqYpU6iqu6NmrVlfYs69R_ 1084 | rVl`oqu6Hkq>U0dpAXaao`"F\nc&%Wn,DbSm/H>Gl2KuIli-;Hmf)_Tnc&.Zo_\=\p@\1Zq"XU_p&=U_ 1085 | oD\7Yn,D_RlMg#HkPjTBir7m8hYu=0g]#png&Bb*h#?41i;V^7jSn?Akl0oIm/HJQnc&+[oE"UVqtBp^ 1086 | rqc?+/i;Va8jo4KClMg,Km/HJQnG_qXoDJ4Zo`"O\p\ssbq>9pc 1092 | pAXaao_\7Wnc&%Wn,DbPmJcGNlMKiCkl0lHm/-5JnG`"Xo_\=\pAXgcq>U6iqu6NmrT!qBs82cor;QTm 1093 | qYp9epAXaao`"FYnG_nUmf)POlLjB?lMg,Em/HGMn+cGPoD%tNp&=U_oDA(Wn,DbSmJcGNkkjQBjo49: 1094 | i:u4#hY?"-iVqm:jSn<@kl0lHli-8Mn,DhUnGr+\o()eOqt0m]qtL!_rqHEcq"4RWqsj[TrpTaPqs==J 1095 | rp'1?rp'LKrpB^QqsaUUrq-*\rq??crqcNhrqucoj8\BDqu-Nlrql]krqQBarq69_rposUrpTjSrp0RK 1096 | p#uD>rp':FrpBUOrp]^Ql1FuGqsj[SrpKdQrp0RJroj@EroO.>ro3h6m,.g#rnm_7ro="=roO.Broj7F 1097 | rp9XQrp]mV!V,^ZoD%tWp&=[^p\sm]o`"FYnb_hTn,)MLm/H;Ll1O9>lMg,KmJcPNnG`"Xo_\=\pAXgc 1098 | qYU0hr;QZTs69R\rVl`oqu6Hkq#:$epAXaao`"FYnG_nUmf)POlLjB?l2KuFli-8MmJcPKn,DhUnb)MN 1099 | o_\7Zo)A1YnG_nUmf)VQlhfrGkPjTBjS7a6iU#M%iVqj9j8S-=k54B>li-8MmecJRnH&1Mq"+LWrq69a 1100 | qtL*`rq-*ZqsjIMrpKdQrp9OJrp'LIroj@Eqrn%Erp0RNrpK[Qrpp'\qt9s_rqQKhqtpBjrr(mWl2UYZ 1101 | rqucmrqcNerqHEbrq-3\rpg!WrpTjSrp0RKp#uD>rp'CHqs==LqsOIPqsaLQrpp'[qt0mZrposVrp]pU 1102 | rpKdQrp0IHroa:CroO.>i8XarroF(?roa:Eros=Grp9XPqsOOS!V#UUo)A7Xo_A+Vo_\4Ync&%Wn,)PP 1103 | mJcJIli-2Kl2KoGkPOKBlMg,KmJcPQnG_tWo)A:Yp&"O`qYU0hr;QZTs69R\rVl`oqu6Hhq#:$ep&=U_ 1104 | o)A1YnG_nUmf)POlLO0 %APLeod 1108 | EI 1109 | 104 0 0 12 0 44 cm 1110 | BI 1111 | /Width 312 1112 | /Height 36 1113 | /BitsPerComponent 8 1114 | /Decode[ 1115 | 0 1 1116 | 0 1 1117 | 0 1 1118 | ] 1119 | /DataSource cg_aiproc 1120 | ID 1121 | l2UYZrqucmrqcNerqHEcrq-3\rpg!WrpTjSrp0RKo'$);q!.bBrp9XOqsOIPq!dkEqsaURqsOIMrp0IH 1122 | rosFGroVqrroX4Cqrn%Eqs47JrpB^QrU0dUn,)VOnb_nSoD\=[nbDVQn,DbSmJcJIlhfuHl20]DkPOKB 1123 | lMg,KmJcPQnG_tWo)A:YpA=XaqYU0hr;QYPs5O(XrVl`lqu6Hhq"sdao`"F\nc&%Wmf)VQli-2Hkl0cB 1124 | kl0iDlM0]Em/HDLmf)\MnFH,HnG_nRmf)SPli-2Hl2KlFk1\qrk5OQ@kl0lHli-8JmJcPQnG_nUnG)PN 1125 | o)A7Xo)A1SnGDYQmJcJLlhKcEl14';lMg,Kmf)\SnG_tWo)A:\pAXg`q#:-hqu6NjrTX@Hs82cor;QTm 1126 | qYU'ep\smco`"F\nc&%Wn,DbSm/H;=kkOEAlM0]Em/HDImf)\PnG_tQnG_nRmf)VQm/H>JlMg&Ikl0c< 1127 | k3V4,k5OQ@kl0iGlMKoHm/HDKmK)bDrpTaRn+$2BqsOINq!7hBqs!n>roa1Brp'LLqsOIQrpg!Yrq-*] 1128 | qtU0eqtpBjrr%`SirB#VrquZjrqcNeqtC$]rpp'Yrp]gQrp9XLqrn%BpuqV>qs*tBrpBLKqsXORqsjIN 1129 | rpTaPrpB^Orp0RKqs""@p#bW&qr[e=roj@Grp'LKrp9OLq!S.Mqsa(Erp]pUrp]pTrpB^Oq!7qEq!%82 1130 | rp'LLrpKdSrp]pWrpp'\rq??cqtU0erql]mqu,dZl2UPWrql]krqZQgrqHEcrq-3]rpg!WrpTjSrp9XL 1131 | n*'H/rp':Eqs==LqsOIPqsaLOq!S%Hrp9XMqs+1Froi_3pu_/1qrn%Drp'CHqs==LrU0UOrpTOLqsjRP 1132 | qsO7Gqs47Hp$)88roa1Brp'LLrpKdSrp]pWrq$-]qtC$arqZQirql]mqu)EPirAoSrqucmrqcWirqQBa 1133 | rq-3]rpg!WrpTjSrp9XLqrn%BpuqD8rp'CHq!A"IqsO@Mrp]pUq!RqErp9XMrp'CFl0%s+m-"B3rosFI 1134 | rp0@GrpBLKrpTOLrpg!WqsXFMqs=+Drp'1@n*'c9rp9XPrpTjUrpg!Zrq-3`rqHEerqZQirqlKhl2U#J 1135 | q#13irqcWirqQKerq??`rq$-Zrp]pUrpKdPrp&t9p$)J@o'?;Bp$V_Gp$V_Eqs4.Eror\2roa:Cro`Y3 1136 | rosFIqs4.GrpB[Pqrp]pUq!R_=rp'1@n*'c9rp9XPrpTjUrpg!Zrq-3`rqHEerqZQirquQil2U#Jq#13irqcWi 1139 | rqQBbrq69^rpg!WrpTjSrp9XMk32^,qs*tBqs==Lo'Z;?qs=4Gq!.kCcKP8lrp'CHq!@tH!U]:FmeH8J 1140 | mf)VNm/-,GlM0W.kl0oIm/HGPn,DhUnc&.Zp&"L_q#:*gqYpEfrJLX7s7lQlr;QQlq>U0dp\sjboD\:Z 1141 | nG_nUmf)SPlfmX.l20cClhKiGmIK]BmJ-&FlhKcEl-AMll2KuCli-8Mm/-2@mecJJmf)VQm.foDlMKi. 1142 | kl0oIm/HGPn,DhUnc&.Zp&"L_q#:*gqYpEfrTX@Hs82fprVl`oqYpdKRp&4mf 1173 | rqlKeq"Od\o(;_Kq"!nDK(@mko'u_KqsjRQo'u_KrpTjUrposVrpp'\rq$-]rq69aq"=X[JbT0c=2 1175 | qu6Bhqu$Hjq"k!cqtKmZqt9FMl19`'jRhp4rpp'[p%&"Mrp]UNrp]pWrq$$Xrq$$Zqt9s\qt5O6rq=q: 1176 | qt9s\qt9jYrq$$Xrq$-Zrp]UNrp]gTp%&+RrpoOLN:c'#l1=B9qt9aXqtL*cq"k!equ$6fqu5FOgAh0O 1177 | p&4[`rqlThqtTjYp%J1Rk4FT)kOn<9rq$-[qt'^Urq$-[rpg!YqsjRQrpg!Zrpp'Yrpp'[rpojUrpp'[ 1178 | n+?VPQ1Y"Ijn8*7rq$-[q"+LUrq$-[rpg!Yrq$-ZqsaLQrpp'Yrpp'[qssXUrpp'[n+;\6j7VR,q"==R 1179 | p%S@Yqtgs3(H8rq66_r:9`9qWdq9qYU*`q#:$epAXa^pA"7Yo)A1YnFc8ImeH8JnEfW7nFc8Lme,uB 1187 | m,RF)m/-2Lmd9HCn(mL%n,)VLn,)PGn,DhUnc&+SoDA7\p&=[ap\=O\q2+sbqXXOVr:U$]rlb>\s7QBU 1188 | rTsH5qtBpGqtp6hq>U6iq>U0dp\XX_o`"O_oD\=[nc&%Wn,)PMn+,o,mJcPHmJH8@li-2?l14'5l1jQ: 1189 | lhKiBmJZG4mcj-0mecJMmf)\SnG_tWo)A7[p&=U\p&"L_q#:*gqYpKnG_tW 1191 | o)A7Xp&=[ap\XaYqYpAKr6bH#rUTrus1/1#rdk%#rSd_Sr;6BjqYpNn,DhUnc&.Wp&=[ap\Xabq>U6fqu6MMrNQ7krji') 1193 | s+11+ro*kUrVl`oqtp6hq>U0gp\X[`o_\7WnG_nUmecADldY4skjR^6k549>jSn37iq;:*iqqd8jSS'< 1194 | k47^7kl0fIlK\?5j6PXgp$;MArpKdSqsaLSrq-*]rqHEerqZHfrql]mrr%]Q[f3*&JcC<$jT#5Yqu-Nl 1195 | rqlThqtU']rq-3]rpg!WrpKdQrp0IHroqMfroa1@qrRhj6-F*ro`t 1198 | !U&VGkOn'3l2KuIl14'&kOn'U6iqu6NjrVleTs+14's+13$s5a4Z 1199 | rr2lnr;QTmqYp9hp\smco_\7Znc&%Wn,D\Qli-2?kiV(*kl0cEkkjWDkkO??k5OKAjSn3:ir7j7i;VR' 1200 | h##jsh##q)i;V^7ir8!;jSn9?k5"0?kPj]El20c7li-2Bl07C%kl0lHli-8Mn,DhUnb_qWo`"R`p\sse 1201 | qYpBhr;QZorf$l.s4RF's+142s8N#srVQNlqu6Hkq#:$ep&=U_oD\=[nc&%Wn,D\Qli-/)kkjW5lMg&I 1202 | kkjQBk5OKAjSn3=ir7p6htu4(g]#q%g&'Osh#?41i;V^7ir8!;jSn9?k54Ml07F)l2Ku7li-2Hl20ZCjo4??j8S$7 1207 | hu;I2g\]\$f_*kkf`'S'g\]e*hYuF3iVqm:jSn9?k5OTDklL)7rTa:Grp9XOo'ZDAq!7qEp$(`)rosFJ 1208 | rp9XOrpTjUrpp'[rq-3_qtL*brqcWkrqucorr.lVJcFF'JcC<$jT#,UrqucmrqcWhqtL*_rq-3]rpfmS 1209 | qs==Jl0/$/q!.#-qs""@roO.>ro3q9rnm_3rnRM+rn.,"m+2'cqq:u'rn[S2ro!e9roF(?roa:ErojIL 1210 | lh]rHm/-5Mn,)VRn,DhUmecDNm/-,DlMKi1kl0oFm/-8Nnc&.Zo`"O\p\sseqYpBkr;6GOs+14's*t 1211 | ~> %APLeod 1212 | EI 1213 | 47 0 0 10 28 34 cm 1214 | BI 1215 | /Width 141 1216 | /Height 30 1217 | /BitsPerComponent 8 1218 | /Decode[ 1219 | 0 1 1220 | 0 1 1221 | 0 1 1222 | ] 1223 | /DataSource cg_aiproc 1224 | ID 1225 | i;`]QrqlThrqQKerq?6]rq$-ZqsXONrp0RKn*'Q2rp'1Bm-O`;qs+(AroO.>ro*k7rnm_1rn@A(rn%/# 1226 | qpk8ermgnsrn%/%rn7;+rndY3ro3q;roO.Broa@I!UAtLlhg&JmJcPNn,)VRn,DhLmf)SGli-2El0mj8 1227 | lMg,Km/-8Nnc&.Wo`"R`p\ssbqYpBhrTX@?s8Murr;QTjqYU$dpAX^`oD\=[nb_eSm/H>MlL3s6l2Ku@ 1228 | lhg)KmdfcBm/H>Mkl0cEjo49=i;VX5hYu=0g&BY'eG.M`dehMmeGe(sf`'V(h>Z=2ir8!;jo4HBkQ'lK 1229 | lK\B7rp9XOrpK[Prp]gTrpp'Yrp]gRqsOINp$;VBqs!S5rp'LKrp9ONrpg!Yrq$-]rq?6`qtg$ 1234 | g]$(/i;V^7j8S3?kQ'lKlK\B7rp9XPqsXOSrq#pWrq$-ZqsaLOrpKdQq!A"Gqs+(Cqrmq?qs+1HrpKdS 1235 | rp]pXrq$-]rq?6`qtgO 1241 | n,DhUo)A7[o`"O\p\Xgdqu6NmrTX@?s8Murr;QTjqYp6gpAXaao`"I]o)%nTmf)PLlM0TBl20cCli-;N 1242 | mecJMnFH,HnG_kTm/H>MlMg#Hjo49=hu;I2gA]_'e,I_ncMl&bbPoZ`anX$UbPoccci2;jdf.erg&Be+ 1243 | hu;R5j8S3?klC#Mlg+Q;rpKdTrpg!Zrq-*]qtL*`rq69_qt'gWqsaLOrpKdQqs4.Eros4Aqs+1HrpK[P 1244 | rpp'[rq-3_rq??cqtgLn,DnWoD\C] 1247 | p&=[ap\Xgdqu6NmrTX@?s8Murr;QQlq>U0gp\smcp&=U_oD\=Xn,DbSlhfuEkl0iGlMg,Km/-2Lmf)\S 1248 | nGDbBoD\=[nG_kTmJcGNl2KfDir7m8hYu7.fDa7ud/M8gbPoZ`an!OPao9H^bl5oeci2;jec+8$h#?41 1249 | iVqp;kPjcIm/cVArpTjUrpg!Zrq60_rqQKgrqcNeqtC$^qt'^Trp]pUrpK[Nrp9XMrp'LIqrmqBrp0RO 1250 | qsXOTrq$-]rq69arqHEerqZQirqucol2T]Arr)iorqcWirqQKerq??arq-3]rposTrpKdPrp0RKqrn%D 1251 | rp'LKrp9OLrpKdSq!m_Crpp'XrpTjSrp9XKroO.=ro!e4rn@A'rmUknrlkAbrlY5^o#UgPrlY5`rltGg 1252 | rm:Yprn7;+rnm_6roO.Crp'RO!U]:Rn,DhUnc&1[p&=^_q#:*gqYpU6ir;QZZs5Z@3ir8*>kl0lJmK)bDrpTjUrpp'\rq??cqt^6frql]krqZQgqtL*_ 1256 | rq-3\q!n7MrpKdPqs47Hqrn%Fqs=4Krpg!Yrq$-]rq69arqHEerqZQirqucol2T]Arr)inrqcWirqQKe 1257 | rq??arq-3]rpp'YqsXFKrp0IGrp'LKrp9XOrpKdTrpTjVrq$$Zrq60^p%A=Vrpp'XrpTjSrp0RHroF(; 1258 | rnm_0rn%.urm:Yhrlb;`rlO`PrlP/^rlb;crm1Skrmh#$rn[S4ro="?rosFK!:KsWn,DhUo)A:\p&=^b 1259 | q#:-hqtpU6iqu6QYs5X.Yrr2lqqu6Hkq>U0gp\smcp&=U_oD\=[nb_eSmJcJOlhfrGli-8Jmf)\PnG`"XoDA1Z 1261 | p@@tWpAXaao`"F\nG_kTli-,Ik5O?=hu;F1f`'D"d/M;hbl5fbb5TNUaSs<\bPo`bcMl/hdf.hsgA]t. 1262 | iVqm:kPjcGm/ZSUn*g8Grq$-]rqHEerqcWkrquQirqlThrqQKerq?6]rq$-[qsaURqsOIMrp0IGrp0RM 1263 | rpBUOrpg!Yrq$-]rq69arqHEerqZQirql]nrr29aj8],Xrr)inrqcWirqQKerq??arq-3]rpp'YqsXOO 1264 | rp9XMqs+1HrpBUNrp]pWrpp'\qt9s^l1b)Irpp'WrpB^Mroa:@ro*k5rn7;%rmC_krm(MerlalTqoeu` 1265 | rm1SjrmUkurnIG0ro3qU6iqu6Qnrp9[Fs8N#srVl]nqYpJlMg,KmJcPQn,DhUnc&+Yo_\=\pAXg]q>U0ap\smco`"I]nG_kT 1268 | li-,IjSn0QnH&1Mrq$-]qtL*d 1269 | rql]mrr)`orr2oqrqucmrqcWirqHEcqt9s\rpp'Yrp]pUrpKdQrp0IHrp0RMrpBUOrpg!Yrq$-]rq69a 1270 | rqHEerqZQirql]nrr29aj8],Xrr)inrqcWirqQKerq??arq-3]rpp'YqsXOOrp9XMqs+1HrpB^QrpTjU 1271 | rpg!Yrq-*\rq??cp%eL[rqHEcrq-3]rp]pTrp0RIroO.>rnm_1rn.5"rm:Yjrm(Mfn'(dVqp58hrmh## 1272 | rnRM1roF(@roj@JrpKjW!V,^ZoD\CZq#:-hr;6His8N#srVl`oqu6Hkq>U-fpA=O^o`"F\nc&%Wn,DbS 1273 | mJcGKlMg,Km/HDLn,DkVo)A7[o`"O_pAXgcq#:*gqYpBkrVlf_s5X.Yrr2lqqu6Hkq>U0gp\smcp&=U_ 1274 | oD\=[nb_eSmJcJOlhfuHli-;Nmf)\SnG_tWo)A:Yp&=[ap\"@Wp\smco`"I]nG_kTli-,Ijo4<>hu;F1 1275 | f`'D"d/MAgcLT6WcMl/hdf._pf)FA%h>Z@3jSn<@l2L&Kmf;kYnaZVMrq-3brqZQirquZlqu?Zprr)io 1276 | rql]krqZQfrq?6^rq-3\rpg!WrpTjSrpB^Nqs+1Hrp9XOqsXOSrpp'[rq-3_rq??crqQKgrqcWkrr)iq 1277 | m/Q,Grr2oqrql]krqZQgrqHEcrq69_rq$-[rpfmSrpB^Orp0IHrp0RNqsOIQrpg!Yrq-*\rq??cp%\=V 1278 | rq69_rq$-YrpKdOroj@Cro="8rnRM*rmh"rrmC_kn':gVrm:Ynrm^r!rn7;,ro!e:roX4Erp9XQ!:U$Y 1279 | nG`%Yo`"Uaq#:-hr;6Hlrr2rprVl`oqu6Hkq>U-fpA=O^o`"F\nc&%Tmf)VQlhfuHli-8MmJHAOnc&+Y 1280 | oD\C]p&=[ap\sseq>U6iqu6Qnrp9[Fs8N#srVl]nqYpJl2L#J 1281 | m/HGPn,)VRnc&+YoDA1Zp@%bTpAX^`oD\=[n,DbSli-,IjSn3=hu;F1f`'G#df.VjcgT0Vci2DmeGe)! 1282 | g&Bh,i;Vg:k5OTDli-;Pn,`%Jrq$-]rq69brqZQirql]mq#13hqtgMlMKiFlhg&Gn,DkVo)A7[o`"O_pAXgcq#:*gqYpBkrTX@?s8Mur 1287 | qu6Hkq>U0gp\smcp&=U_oD\=[nb_ePm/H>Jkl0lEli-8MmecJJnc&.Wo`"OPo`"F\nG_kTm/H8Kkl0ZB 1288 | ir7j7h#?"+f)F1ue,Iboci2;achl)gdf._peGe)!gA]q-i;Vg:k5OTDli-8OmfDnGrpg!Yrq-3_qtL!a 1289 | rql]mrqcWirqQBbrq69_rq#pTqsXOPrp9OJrp'CErp0IJqsXOSrpp'[rq-3_rq??crqQKgrqcWkrr)*] 1290 | i;`fTrquclrqZQgrqHEcrq69_rq$-[rp]pUrpK[Mrp0IFrp'CHrp9OMqsXFPrpp'[rq-3_o(;qQrpg!W 1291 | rpKdProsFGroF(=rnm_1rn7;%rm^qrrmC)ZrmC_nrmUkrrn.5(rn[S3roF(@roj@Irp9^S!UoLVnG_tW 1292 | oD\F[p\t!cqYpBkqYU'bp\sjboD\=Xnb_ePmf)SMli-2Hkl0oFm/HGPn,DhUo)A7[o`"O_pAXgcq#:*g 1293 | qYpElrTX@?s8Murr;QQlq>U0gp\smcp&=U_oD\=Xn,DbSm/H>MlMKfEl2KuIli-8JmJcPQn,DhRnc&.H 1294 | o`"F\nG_nUmf)SPl2KoGjSn3=hu;I2gA]b(eGI_odf.Yhd/25idf._peGe%uf`'Y)hYuL5jSn<@kl0oI 1295 | m/ZSUn*g8Frpg!Zrq-3`qtL*brqZQiqtU'^rq69_rq$$Wrp]pUrpK[Nrp9XMrp'LIqrn%Erp0RMrpK[P 1296 | rpp'[rq-3_rq??crqQKgrqcWlrr)*]i;`fTrqucmrqcWirqHEcrq69_rq$-[qsXOPrp0IHpuq_Brp0@G 1297 | qsOIPqsaUTrpoOLrpg!WrpTjSrp9XKroj@Bro=":rnm_2rn.5%rmq)!rm^Dcrmh#!rn%/%rn7;,rnm_7 1298 | roF(@roj@Irp9^S!UoLVnG_tWo)A:\p&=[ap\=O_p\sm]o`"I]nb_hTn,)PJm/H>MlM0T?lMg,KmecJP 1299 | o)A7[o`"O_pAXgcq>U6iqu6NmrTX@?s8Murr;QTjqYp6gpAXaao`"I]o)%nTmf)PLlM0TBl20cCli-;N 1300 | mf)\PnGDbTo)%tPo)A1YnG_nUmf)SPlMg#Hk5OH@iVqa6hYu:/g&BY$fC.;ifDaG%gA]k+h#?72hu;^9 1301 | k5OQCl2L#Jm/ZPTmdC)Crp]pWrq$-]rq60^qtL*`rq69_qt'^TqsaURrpKdQqs4.Eros4Aqs+1HrpK[P 1302 | rpp'[rq-3_rq??cqtglMg,Kmf)\SnG`"XoD\C]p&"L\ 1305 | qYpBkr;QZZs5Z:1i;V^7j8S0>kPj]El2L#Jm/ZPTmdC)Crp]gTrpoOMrq#pT 1307 | qsXOPqsF:Irp0RKqs""AqrdkArp0ROrpTjUrpp'[rq-3_qtL!arql]mrr)*]i;`fTrqucmqtg3arq69_ 1308 | rq$-[rp]pUrpKdOqs+(AqrmqArp':Erp9XOqsO.Grp]gTrp]gQrpB^Nrp'CEroa:Bro3q9ro!e3i8"=g 1309 | rnm_5ro*k;roO.Broj@Grp0RN!:BmUmf)\SnGDbTo'c2Lo)%tVnG_nRmf)VQm.foGlMKiCkkjQ?lMg,K 1310 | mf)\SnG`"XoD\C]p&"L\qYpBkr;QZZs5mf)VQli-2Hkl0cEjo4<>iqq[5hu;L0h=]S&h>Z:1htu@2iVqj9jSn<@kPj]El2L#Jli?JL 1312 | mf)_QnbD\PoD\=[nc&%Tn,)PPmJcJIlhfuEl20]AkPOQDlhg/Mnc&+YoD\C]pA=U]qYpBkr;QZZs5 1314 | iSEGhiVqj9j8S0;kPj]ElMg,Kli?DRmHsf=q!\4Oq!n@Srpg!WqsXFMrpBCErp'CFp#u;9rp'LKrp9ON 1315 | rpg!Yrq$-]rq?6`qtg %APLeod 1317 | EI 1318 | 47 0 0 12 86 22 cm 1319 | BI 1320 | /Width 141 1321 | /Height 36 1322 | /BitsPerComponent 8 1323 | /Decode[ 1324 | 0 1 1325 | 0 1 1326 | 0 1 1327 | ] 1328 | /DataSource cg_aiproc 1329 | ID 1330 | JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI(JcC<$JcFI( 1331 | JcC<$JcFI(JcC<$JcFI(U&T]CiVpFfU&VS$o)=4=g\nDUp&;E"^]4*.k5FZEJc#BBdeiD/l2C;S_Z.^W 1332 | p&=O\q#'^[Jbnd1_trs$q#'^]q#8A7bQ%J=o)8.Wrql0\Jbeg2anbE%rql9ao)8@_cMu)fqu60bo)%eM 1333 | rqV-?oD$Q)rqYgTp&"adp&4[bcMu;lq#9sbqu$Hjp%n[`qtPa:jS-@^qtU'aq"jmbqu$6fp&dKRp&4mfrql]krqZQgq"Od\rq-!WqssXSo'l,:i:*u>rp]pU!:\b4n*fr=rpfdS 1339 | qt'gZrq5sYrqZQirqlTjq#1*hi;_a8qu6BhrqucmqtglM'WBlh0W;mJH87lh0W>mJcPQnG_nU 1343 | nc&+YoD\C]p&"L\q>:$fr:p6iro=%:s8N#srVQNlqu6Hkq>9sap&"C\nc&%Wn,DbGm.fo2lMg,J 1344 | lMg&7kkjQ!k54?4kkjTElMTrHlfRQrlMKo9m/HGPn,DkVo)&(Yp&"L_q#:*gqYU3frVlfVs59pcp&=U\oDA%Vmf)SPlhfuHl20]2kNqF3l1jK8 1347 | kPjW=jnn-U6iqu6NjrVlfYs5X.Yrr2lq 1350 | r;QTjqYU$dpA=L]oD\:Wn,D\Qli-2$kkjW8lM0W@kl0cEk4n';jSn37ir7p'i;;L.ir8!;jS7j9k5OQB 1351 | kQ0o2qs""Cn*BulMg,3m/H>MlMg&FkkjNAjo4<>ir7p9i8EMiiVqj9j87s;kP49?l2^/JlhKiD 1357 | mJ-,KmJ-&Fli-2Bl07F2l2L#Jm/HDOn,DkVo)A7[o`"O\p\t!fqYpBkr;QZoroX7@s82cor;QQlq>U0d 1358 | p\sjboDA(Wn,DbSm/H>5kkjW>lMKo?m.fuFm/-,Jl20]Ak5OKAj8S';iVqcnhu;R5iVqj9j87s;kPOKB 1359 | l2BrGli-8JmJH>Nn,DhUn,)PPmJcJIlhfuBl07F/li-8Mn,DhUnc&.Zo`"O\p\t!fqYpBkr;6HTs5X.V 1360 | rVl]nqYplLjKBm/-2@mf)VQm/-,JlMKfBk5OKAj8S$:i:u3u 1361 | hY#e*i;;O5jSn9?kPOKBlMg)LliHJ>qsFCNqsX4IrpTjUq!S.Jq!7hBq!%82rp'LKrp9XQrp]pWqt'gZ 1362 | rq??crqZQirql]mqu,[WJ, 1363 | ~> %APLeod 1364 | EI 1365 | 47 0 0 12 28 22 cm 1366 | BI 1367 | /Width 141 1368 | /Height 36 1369 | /BitsPerComponent 8 1370 | /Decode[ 1371 | 0 1 1372 | 0 1 1373 | 0 1 1374 | ] 1375 | /DataSource cg_aiproc 1376 | ID 1377 | i;`]QrqlThrqQKerq?6]rq$-ZqsXONrp0RKn*'Q2rp'1Brp9FIp$V_Erp9XMrp'LIroj@EroX4AroEk6 1378 | m,.g#rnmM1ro8kkjW>lMKo?m/HDOmf)VQm.foG 1380 | lMg&IkkjQ?jo4;rir8!8jSn9?k54?@kl0iDlN$8Pm-ON7qsO@MqsaURrp]pTqsFCLqs4%Bqs!A/rp0IJ 1381 | qsXOSrq$-]rq60_rqQKhrql]mqu,dZi;`fUrr)iorql]krqQBbrq69_rq$-[rp]pUrpB^Orp0RJl0.g) 1382 | rp'LKl0S<5rp'LIqrmq?roX4AqrIP4p#>Q&roEtp#Q,4qr7V8n)XB-qrdk?rosFIrTj1Crp9XOo'ZMEo'?;? 1385 | p$(`)rosFJrp9XOrpTjUrpp'[rq-3_rqHEerqZQirql]mrr)iql2T]Arr2oqqu$HjrqcWhrqHEbrq-3] 1386 | rpp'Yrp]pUrp9XMror8&ros+@n*Bl9ros=Dqrdt@p#Yu0qr@A1p#Z28qrdk?ros=F!:07Bqs="Crp9=D 1387 | rp'LIh<=k&rp0RMrpTjUrpg!Yrq$-]rq69brqQKhrqlTjrr)iql2T]Arr2oqqu$HjrqcWhrqHEcrq-*Z 1388 | rpg!WrpTjQrp0RKfBDnlrp'LKq!.b@puqV!:'CFk3N$3p$(2orp'LKrp9XQ 1389 | rp]pWqt'gZrq??crqQKhrqlTjrr)iql2T]Arr2fnrqucmrqcWiqtL*^qt'gWrp]pUrp9XMrp'LIp#tH! 1390 | j66C'pu_A5h;n7jqr[e=pZV>7o'-&:ros";l0%a'rosFIrp0RMrpTjUrpfmWrq-*^rqZQirql]mqu-Nn 1391 | l2T]Arr2fnrqucmqtg3aqt9s\rq$-Zrp]pTrpB^Nqs+1Fqrm)'p#u;;p#tu0pu^Dop#br1pZMYAkiq@/ 1392 | lMg&=kiq:-kl0iDlMg,KmJcPQnG_tWoD\CZp&"L\qYpBkr;6HlrosI=s8N#srVl`lqu6Hkq>U0dp\sj_ 1393 | oDA%Vn,D_Cleq'mlhfuBl1O8rkP49lMKo>m+^n+lfm^3lgO3> 1395 | mf)\SnG_tTo`"O_p\Xabq>U6cr;QZoroX7:s8N#mrVl`lqYpdBOqu-NlrqlThrqQ9_ 1397 | rq69_rq$-[rpf[NqsX=Jl0Zmdi9f=foBu)9qsN_9q!S%Jp$htNrpp'[rq-3_q"Od_qtgdBOq#13irqlKeq"Od\rq-3]rpp'Yq!dY=n*Z,&g[FV!m-j`=rpg!Yrq$-]rq6'\q"k!erquQiqu5aX 1399 | gAh0Op&4mfrqlThrqQ9_qt9s\qt'URrpf[Nn*c)%oC25=q!db@p$htNq""=Rrq-*\q"Od_qtg %APLeod 1409 | EI 1410 | 47 0 0 22 86 0 cm 1411 | BI 1412 | /Width 141 1413 | /Height 66 1414 | /BitsPerComponent 8 1415 | /Decode[ 1416 | 0 1 1417 | 0 1 1418 | 0 1 1419 | ] 1420 | /DataSource cg_aiproc 1421 | ID 1422 | j8],WrqucmrqcWhqtL*`rq-3\qsj[SrpKdPrp'LHro`tMmIffElMKi@ 1424 | kkjQBkl0lHli-8Mn,DhUnc&+YoD\C]pAXgcq#:-hqtpNn+cDF 1431 | nc&%Wn,)PPm/H>Jkl0]CjSn09htYt*g@EqogABY(h#?./i;V^7j8S0>kPj]El2L#Jli?GSmdC)CqsaUT 1432 | rpoXPrq#pTrpTaPrpBLIrp0RKros=DqrdtBrp'LKrp9XPqsaUUrq$-]rq69brqQKhrqlTjrr)!Zj8],W 1433 | rqucmrqcWhqtL*_rq-3\rpg!WrpTjSrp0RKp#uD>rp':Erp9XOqsOIPrp]1Brp]pUrpKdPrp0IFroO.? 1434 | ro*k6rn[S.qq:u$p"02qqq:u&qqM,*rndY4ro*krp'LKrp9XPrp]pUrpp'[rq-3_rq??drqcWkqu$Hlk5XKArr)iorql]krqQKerq??arq-3\ 1439 | rp]gRrpKdOrp'1?rp'CHqs=4JqsXORrpf[Qqt0mZrpp'Yrp]pUrpKdOrosFGroO.?ro*k6rnRM,qq:Pl 1440 | qq1f!rn@A+rnRM/ro!e7roO.Broj@Irp9XP!:KsWn,DhUnc&.Zo`"O_p@\1ZpA=LZoD\:WnG)GKm/H>J 1441 | lM0TBlMg,Km/HGPnG_nUo)A7[o`"O_pAXgcq>U9gr;QZWs5X.YrVl`oqYp:$fq=XL]p&=R^o)A1Y 1447 | nGD\OmeH,IlMKfBli-8MmecMQo)A7[o`"O_pAXgcq#:-hqu6NmrT=.?s8Murqu6Hkq>U0gp\smcp&=U_ 1448 | o)%tVn,DbSm/H>Gkl0lHli-8Jmf)\SnGDbToD%tHp&=U_oDA(Wn,D_Rli-,Ik5OKAjSn'9hYu7+g$dSj 1449 | g&Bb*h#?./hYuI4ir8$KnG_tToD\C]p&=[^p\ss_p\sjbo`"F\nc&"Vmf)POl2KoGkPjQAi;VX5gZI2ggAB\) 1452 | hYuF3i;Va8jo4HBli-8Mn,DhUnc8:_o^r%RqtU0dq"k!eqtg3brqHEcrq69_rq$$WqsXOPrpB^Orp0RK 1453 | qs""Drp9XQrp]pWrpp'[rq-3_rq??crqQBerql]nk5X]Gqu6Tnrql]krqZQgrqHEcrq69_rposVrpTjS 1454 | rpB^Nq!%eDrp9XPrpTaRrpg!Yq"4RZq"Od_p%S@Urq$-YrpTjRrp'LHroa:Bro*k7rnRM-qqChuqqD&( 1455 | qqV2-rnm_5ro*k;roa:Frp0RNrp]pWrpp-^!VH$]pAXjdq>U6fqu6NmrVl`oqu6Hkq>U0gp\sm`o`"I] 1456 | o)A1VnG_nUm/-,Gl2L#Jm/HDOn,DhUnc&+YoD\C]p&=[ap\ssbqYpBkrVlf\s69R\rr2lqqu6Hkq>U0g 1457 | p\smcp&=U_o)%tVn,DbSmJcGHlMg,KmJcPQn,DhUnc&+Yo`"O\pA=XRq>U-fpAX^`oD\:Zn,DbSli-,I 1458 | kPjTBiVqd7h>Z3ug\BS'h>?+/i;Va8jo4KCli-;Nn,DhUo)A7]p&Xm\rqHEerqZQirqlKhrr2oqrqucm 1459 | qtgZ:.hu;R5ir8'=kl0lHm/HGPnG_tWoDnObp%A=YqtU0d 1481 | rqcNhrqucorqucmrqcNfrqHEcqt0mZrpp'YqsaURrp9OJqs"+Grp9XOrpTjUrpg!Yrq$-]rq69arqHEe 1482 | qtggU 1483 | rqHEbrq-3]rpfmSrp9XLroj@EroF(Gl2KuIli-;HmecMNoD\C]p&=[O 1486 | p\sjbo`"I]nb_eSli-/Jkl0cEjSn0rp':Erp9XOqsOIPrp]^Qrpp'[q"4RVqsj[SqsO@Jrp0RI 1501 | roa:CroO.?qr@/)puDA7roO.Aroa:Fqs47JrpKdTrpKjW!V,^Zo)A7Ro_A+Vo`"IZo)A1Vn,DbPmJcJL 1502 | li-2Hl1jKAlMg,Km/HGMnG`"XoD\C]p&=^bq#:-hqtpHn,DhLnc&%Tn,DbSmJH8L 1509 | li-2Kkl0cEk4n')jSS'9k54BAl20fGm/HDLmJu_Rn,DhRnb_nPoD\=[nc&%Tn,)PPmJH8IlhfuHl20]A 1510 | kPj]ElMg,Km/HJQnG_tWo)A7[o`"R`p\sseqYpBhr;QZWs5X.YrVl`oqu6Hkq"sgbpAX^`o)A1YnG_nU 1511 | mf)SPlMg#HkOn'6l2KuCli-8MmJH>Kn,)VRnbDVQn,)PPmJ-#HlMKfEkM>7sk54BAl2KuIlhg&JmJZGR 1512 | mdC)Cq!dbBq!e:OrpKdQp$;VBqs!n>qrdtBrp'LKrp9XPqsaUUrq$-]rq??crqQKhrqlTjrr)!Zj8]#T 1513 | rql]krqZQgrqHEcrq-3]qsj[SrpKdPrp'LHro`tl0%s-qs""Crp0ROrpTjUrpfmWrq60_rqQBe 1527 | rql]mqu-Nnk5XKArr2fnrqucmqtg3brq?-Zrpg!WrpTjQq!7qDeEH/]V!%gCmHOE2ror%uqs""Drp9XP 1528 | rpTjUrpfmXrq69bqtU'brquQirr2'[i;`fUrr)`lrql]krqZHdqt9s\rq$-Zrp]pUrpK[Mp$:Z'cKimC 1529 | kj.*ki9L+'q!A"JrpTaSrq$-]rq60_rqQKgrqcWkrquZlrr1sXi;`fUqu-NlrqlThrqZQgqtL*_rq-3\ 1530 | rpg!WqsXOPqsF(Ck3Mp2k3]D>qX*A2qsrp]pUrpp'[rq-3_q"OR[rql]mrr)Wk 1532 | j8\';qu6BhrqucmqtgdKRp&4dbrqcWirqQ9_rq69_q"+CRqsj7Hn*g/Ci:4AIp[R>7q!db@p$htNq""4Orq5sYrqZQi 1534 | q"sjbqu5ORh>dKRp&4dcrqcNfqtU0brq5sVqt':Hn*l&$hXU((n+$;Hp%87VrqH3_rqZQirqlTjq#1*h 1535 | i;_O2rr2Thrqucmq"jd\qt9OPqt'URn*u,&hX^.*p%&"Oo(;qSqtL!_qtg3erquQirr1XOgAgsIqu-m/6,Hp&;i.[f>ptJc4@%Z2O@p[f<'$Jc=X-])JE'U&T]CiVpFfU&T]DJcC<$ 1541 | gAca(JcC<$gAca(JcC<$gAca(JcC<$gAca(JcC<$gAca(JcC<$gAca(JcC<$gAca(JcC<$gAc[ 1542 | ~> %APLeod 1543 | EI 1544 | 1 J 1545 | 1 j 1546 | 0.60000002 i 1547 | /Cs2 SC 1548 | 0 0 0 sc 1549 | 0.80000001 0 0 -0.80000001 -48.799999 113.60001 cm 1550 | 72 52.999992 m 1551 | 108 52.999992 l 1552 | 108 71.999992 l 1553 | 72 71.999992 l 1554 | h 1555 | 72 52.999992 m 1556 | S 1557 | /Cs3 SC 1558 | 0 sc 1559 | 0 i 1560 | 0.80000001 0 0 -0.80000001 23.200003 63.600006 cm 1561 | /F1.1[ 12 0 0 -12 0 0]sf 1562 | -4.0019531 4 m 1563 | (!)s 1564 | 0.60000002 i 1565 | /Cs2 SC 1566 | 0 0 0 sc 1567 | 0.80000001 0 0 -0.80000001 -48.799999 113.60001 cm 1568 | 72 71.999992 m 1569 | 223.60001 71.999992 l 1570 | S 1571 | CM 1572 | 136.48001 56.000004 m 1573 | 130.08 58.400005 l 1574 | 130.08 53.600006 l 1575 | h 1576 | 136.48001 56.000004 m 1577 | f 1578 | 0 J 1579 | 0 j 1580 | 0.80000001 0 0 -0.80000001 -48.799999 113.60001 cm 1581 | 231.60001 71.999992 m 1582 | 223.60001 68.999992 l 1583 | 223.60001 74.999992 l 1584 | h 1585 | 231.60001 71.999992 m 1586 | S 1587 | 1 J 1588 | 1 j 1589 | 72 98.999992 m 1590 | 223.60019 99.93869 l 1591 | S 1592 | CM 1593 | 136.48003 33.609417 m 1594 | 130.09502 36.048996 l 1595 | 130.06529 31.24909 l 1596 | h 1597 | 136.48003 33.609417 m 1598 | f 1599 | 0 J 1600 | 0 j 1601 | 0.80000001 0 0 -0.80000001 -48.799999 113.60001 cm 1602 | 231.60004 99.988228 m 1603 | 223.61877 96.938751 l 1604 | 223.58162 102.93864 l 1605 | h 1606 | 231.60004 99.988228 m 1607 | S 1608 | 1 J 1609 | 1 j 1610 | 72 125.99999 m 1611 | 223.60019 126.93869 l 1612 | S 1613 | CM 1614 | 136.48003 12.009417 m 1615 | 130.09502 14.448997 l 1616 | 130.06529 9.6490889 l 1617 | h 1618 | 136.48003 12.009417 m 1619 | f 1620 | 0 J 1621 | 0 j 1622 | 0.80000001 0 0 -0.80000001 -48.799999 113.60001 cm 1623 | 231.60004 126.98823 m 1624 | 223.61877 123.93875 l 1625 | 223.58162 129.93864 l 1626 | h 1627 | 231.60004 126.98823 m 1628 | S 1629 | 1 J 1630 | 1 j 1631 | 107.5 79.999992 m 1632 | 143.5 79.999992 l 1633 | 143.5 98.999992 l 1634 | 107.5 98.999992 l 1635 | h 1636 | 107.5 79.999992 m 1637 | S 1638 | /Cs3 SC 1639 | 0 sc 1640 | 0 i 1641 | 0.80000001 0 0 -0.80000001 51.600002 42.000004 cm 1642 | -4.0019531 4 m 1643 | (")s 1644 | 0.60000002 i 1645 | /Cs2 SC 1646 | 0 0 0 sc 1647 | 0.80000001 0 0 -0.80000001 -48.799999 113.60001 cm 1648 | 144 52.999992 m 1649 | 180 52.999992 l 1650 | 180 71.999992 l 1651 | 144 71.999992 l 1652 | h 1653 | 144 52.999992 m 1654 | S 1655 | /Cs3 SC 1656 | 0 sc 1657 | 0 i 1658 | 0.80000001 0 0 -0.80000001 80.800003 63.600006 cm 1659 | -4.0019531 4 m 1660 | (!)s 1661 | 0.60000002 i 1662 | /Cs2 SC 1663 | 0 0 0 sc 1664 | 0.80000001 0 0 -0.80000001 -48.799999 113.60001 cm 1665 | 180 107.49999 m 1666 | 216 107.49999 l 1667 | 216 126.49999 l 1668 | 180 126.49999 l 1669 | h 1670 | 180 107.49999 m 1671 | S 1672 | /Cs3 SC 1673 | 0 sc 1674 | 0 i 1675 | 0.80000001 0 0 -0.80000001 109.60001 20.000004 cm 1676 | -4.3330078 4 m 1677 | (#)s 1678 | ep 1679 | end 1680 | %%Trailer 1681 | %%EOF 1682 | --------------------------------------------------------------------------------